diff --git a/.ghci b/.ghci
deleted file mode 100644
--- a/.ghci
+++ /dev/null
@@ -1,1 +0,0 @@
-:set -isrc
diff --git a/.gitignore b/.gitignore
deleted file mode 100644
--- a/.gitignore
+++ /dev/null
@@ -1,45 +0,0 @@
-dist
-cabal-dev
-.hsenv
-*.md
-*.o
-*.hi
-*.chi
-*.chs.h
-.virthualenv
-*.a
-*.cmxa
-*.cm[oxai]
-*.annot
-*.vmap
-*.di?
-*.native
-*.fqout
-*.out
-*.fq
-*.bfq
-*.annot
-*.cgi
-*.log
-*.html
-*.pyc
-build.sh
-config.make
-*.scalarlog
-*.tags
-_build
-*~
-*.swp
-*.swo
-
-/.stack-work/
-/.vagrant/
-TAGS
-a.out
-*.json
-js/
-css/
-
-*.smt2
-.liquid
-.dir-locals.el
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644
--- a/.gitmodules
+++ /dev/null
@@ -1,6 +0,0 @@
-[submodule "liquid-fixpoint"]
-	path = liquid-fixpoint
-	url = https://github.com/ucsd-progsys/liquid-fixpoint.git
-[submodule "ghc-options"]
-	path = ghc-options
-	url = https://github.com/ranjitjhala/ghc-options.git
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
--- a/.travis.yml
+++ /dev/null
@@ -1,70 +0,0 @@
-sudo: false
-language: c
-
-# Only build master, develop, and PRs
-branches:
-  only:
-  - master
-  - develop
-
-addons:
-  apt:
-    packages:
-    - libgmp-dev
-    - z3
-
-# Caching so the next build will be fast too.
-cache:
-  directories:
-    - $HOME/.stack
-    - .stack-work
-
-before_install:
-# Download and unpack the stack executable
-- mkdir -p ~/.local/bin
-- export PATH=$HOME/.local/bin:$PATH
-- travis_retry curl -L https://www.stackage.org/stack/linux-x86_64 | tar xz --wildcards --strip-components=1 -C ~/.local/bin '*/stack'
-- travis_retry stack install cabal-install
-# - scripts/travis install_smt "$SMT"
-
-env:
-  global:
-  # - STACK=1.0.0.0
-  - SMT=z3
-  - GHC=ghc-8.0.2
-  matrix:
-  - TESTS=Unit/
-  - TESTS=Benchmarks/text
-  - TESTS=Benchmarks/bytestring
-  - TESTS=Benchmarks/esop
-  - TESTS=Benchmarks/vect-algs
-  - TESTS=Benchmarks/icfp*
-
- # ugh... Classify.hs is too slow and makes travis think the build is stalled
- # - TESTS=hscolour
-
-# This line does all of the work: installs GHC if necessary, build the library,
-# executables, and test suites, and runs the test suites. --no-terminal works
-# around some quirks in Travis's terminal implementation.
-#script:
-#- stack $ARGS --no-terminal --install-ghc test liquidhaskell --haddock --no-haddock-deps --test-arguments "-j2 -p $TESTS"
-
-install:
- # - scripts/travis install_stack "$STACK"
- - scripts/travis configure_stack "$GHC"
- - scripts/travis setup_ghc
- - scripts/travis install_dependencies
-
-script:
- - scripts/travis do_build && scripts/travis do_test "$TESTS" "$SMT"
-
-after_failure:
- - scripts/travis dump_fail_logs
-
-notifications:
-  slack:
-    rooms:
-      secure: CPaI+XVTUSM9gLQefB8zSXazawNIaUnClS7FwaujPfM37hNBm5UIoiC80KBEe0KZKBr+Gt/LWq0zv506Zl/vILuPpVmfSi2BQ8zyyKCBbUrE/E0uBTjmT7wjaITf/mn3mqiLLcHbAVXI1bn7HzVvAq4S4eIpttgCapF7pbMhZCk=
-    on_success: change
-    on_failure: always
-    on_start: never
diff --git a/AwakeTODO.md b/AwakeTODO.md
deleted file mode 100644
--- a/AwakeTODO.md
+++ /dev/null
@@ -1,6 +0,0 @@
-- see the Category issue
-- set-up atom
-- see Jeff's thread on Monoids
-- write a prefix checker
-- check the parser paper
-- check gab's slides
diff --git a/CHANGES.md b/CHANGES.md
deleted file mode 100644
--- a/CHANGES.md
+++ /dev/null
@@ -1,169 +0,0 @@
-# Changes
-
-## NEXT
-
-- **breaking change** Remove the `Bool` vs. `Prop` distinction. This means that: 
-
-    * signatures that use(d) `Prop` as a type, e.g. 
-      `foo :: Int -> Prop` should just be `foo :: Int -> Bool`.
-
-    * refinements that use(d) `Prop v` e.g. 
-      `isNull :: xs:[a] -> {v:Bool | Prop v <=> len xs > 0}`
-      should just be `isNull :: xs:[a] -> {v:Bool | v <=> len xs > 0}`.
-
-- Add `--eliminate={none, some, all}`. Here
-  * `none` means don't use eliminate at all, use qualifiers everywhere (old-style)
-  * `some` which is the **DEFAULT**  -- means eliminate all the **non-cut** variables
-  * `all`  means eliminate where you can, and solve *cut* variables to `True`.
-
-- Change `--higherorder` so that it uses *only* the qualifiers obtained from
-  type aliases (e.g. `type Nat = {v:Int | ... }`) and nothing else. This
-  requires `eliminate=some`.
-
-- Add a `--json` flag that runs in quiet mode where all output is
-  suppressed and only the list of errors is returned as a JSON object to be
-  consumed by an editor.
-
-- Add `--checks` flag (formerly `--binders`), which checks a given binder's
-  definition, assuming specified types for all callees (but inferring types for
-  callees without signatures.)
-
-- Add `--time-binds` which is like the above, but checks all binders in a module
-  and prints out time taken for each.
-
-## 0.5.0.1
-
-- Fixed a bug in the specification for `Data.Traversable.sequence`
-- Make interpreted mul and div the default, when `solver = z3`
-- Use `--higherorder` to allow higher order binders into the fixpoint environment 
-
-## 0.5.0.0
-
-- Added support for building with `stack`
-
-- Added support for GHC 7.10 (in addition to 7.8)
-
-- Added '--cabaldir' option that will automatically find a .cabal file in the ancestor
-  path from which the target file belongs, and then add the relevant source and dependencies
-  to the paths searched for by LiquidHaskell.
-
-  This means we don't have to manually do `-i src` etc. when checking large projects,
-  which can be tedious e.g. within emacs.
-
-
-## 0.4.0.0
-
-- Bounds as an alternative for logical constraints see `benchmarks/icfp15/pos/Overview.lhs`
-
-## 0.3.0.0
-
-- Logical constraints: add extra subtyping constraints to signatures, e.g.
-
-    {-@ 
-    (.) :: forall <p :: b -> c -> Prop, q :: a -> b -> Prop, r :: a -> c -> Prop>. 
-           {x::a, w::b<q x> |- c<p w> <: c<r x>}
-           (y:b -> c<p y>)
-        -> (z:a -> b<q z>)
-        ->  x:a -> c<r x>
-    @-}
-    (.) f g x = f (g x)
-
-- Inlining haskell functions as predicates and expressions, e.g.
-
-    {-@ inline max @-}
-    max x y = if x >= y then x else y
-
-- Refining class instances. For example
-
-    {-@ instance Compare Int where
-        cmax :: Odd -> Odd -> Odd @-}
-
-- Major restructuring of internal APIs
-
-## 0.2.1.0
-- Experimental support for lifting haskell functions to measures
-If you annotate a Haskell function `foo` with {-@ measure foo @-}, LiquidHaskell will attempt to derive an equivalent measure from `foo`'s definition. This should help eliminate some boilerplate measures that used to be required.
-
-## 0.2.0.0
-
-- Move to GHC-7.8.3
-LiquidHaskell now *requires* ghc-7.8.3.
-
-- Termination
-LiquidHaskell will now attempt to prove all recursive functions terminating. It tries to prove that some parameter (or combination thereof) decreases at each recursive callsite. By default, this will be the first parameter with an associated size measure (see Size Measures), but can be overridden with the `Decreases` annotation or a termination expression (see Termination Expressions). 
-
-If proving termination is too big of burden, it can be disabled on a per-module basis with the `--no-termination` flag, or on a per-function basis with the `Lazy` annotation.
-
-- Size Measures
-Data declarations now optionally take a *size measure*, which LiquidHaskell will use to prove termination of recursive functions. The syntax is:
-
-    {-@ data List a [len] = Nil | Cons a (List a) @-}
-
-- Termination Expressions
-Termination Expressions can be used to specify the decreasing metric of a recursive function. They can be any valid LiquidHaskell expression and must be placed after the function's LiquidHaskell type, e.g.
-
-    {-@ map :: (a -> b) -> xs:[a] -> [a] / [len xs] @-}
-
-- Type Holes
-To reduce the annotation burden, LiquidHaskell now accepts `_` as a placeholder for types and refinements. It can take the place of any base Haskell type and LiquidHaskell will query GHC to fill in the blanks, or it can take the place of a refinement predicate, in which case LiquidHaskell will infer an appropriate refinement. For example,
-
-    {-@ add :: x:_ -> y:_ -> {v:_ | v = x + y} @-}
-    add x y = x + y
-
-becomes
-
-    {-@ add :: Num a => x:a -> y:a -> {v:a | v = x + y} @-}
-    add x y = x + y
-
-- Assumed Specifications
-The `assume` annotation now works as you might expect it to, i.e. LiquidHaskell will *not* verify that the implementation is correct. Furthermore, `assume` can be used to locally override the type of an imported function.
-
-- Derived Measure Selectors
-Given a data definition
-
-    {-@ data Foo = Foo { bar :: Int, baz :: Bool } @-}
-
-LiquidHaskell will automatically derive measures
-
-    {-@ measure bar :: Foo -> Int @-}
-    {-@ measure baz :: Foo -> Bool @-}
-
-- Type-Class Specifications
-LiquidHaskell can now verify prove that type-class instances satisfy a specification. Simply use the new `class` annotation
-
-    {-@ class Num a where
-          (+) :: x:a -> y:a -> {v:a | v = x + y}
-          (-) :: x:a -> y:a -> {v:a | v = x - y}
-          ...
-      @-}
-
-and LiquidHaskell will attempt to prove at each instance declaration that the implementations satisfy the class specification.
-
-When defining type-class specifications you may find the need to use overloaded measures, to allow for type-specific definitions (see Type-Indexed Measures).
-
-- Type-Indexed Measures
-LiquidHaskell now accepts measures with *type-specific* definitions, e.g. a measure to describe the size of a value. Such measures are defined using the `class measure` syntax
-
-    {-@ class measure size :: forall a. a -> Int @-}
-
-and instances can be defined using the `instance measure` syntax, which mirrors the regular measure syntax
-
-    {-@ instance measure size :: [a] -> Int
-        size ([])   = 0
-        size (x:xs) = 1 + size xs
-      @-}
-    {-@ instance measure size :: Tree a -> Int
-        size (Leaf)       = 0
-        size (Node l x r) = 1 + size l + size r
-      @-}
-
-- Parsing
-We have greatly improved our parser to require fewer parentheses! Yay!
-
-- Emacs/Vim Support
-LiquidHaskell now comes with syntax checkers for [flycheck](https://github.com/flycheck/flycheck) in Emacs and [syntastic](https://github.com/scrooloose/syntastic) in Vim. 
-
-- Incremental Checking
-LiquidHaskell has a new `--diffcheck` flag that will only check binders that have changed since the last run, which can drastically improve verification times.
-
-- Experimental Support for Z3's theory of real numbers with the `--real` flag.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
deleted file mode 100644
--- a/CONTRIBUTING.md
+++ /dev/null
@@ -1,4 +0,0 @@
-Contributing
-------------
-
-Pull requests should be created against *develop* branch.
diff --git a/FAILING_TESTS.txt b/FAILING_TESTS.txt
deleted file mode 100644
--- a/FAILING_TESTS.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-      
-Language/Haskell/HsColour/Anchors.hs:         FAIL (683.88s)
-  Wrong exit code
-  expected: ExitSuccess
-  but got: ExitFailure 1
-
-Language/Haskell/HsColour/ACSS.hs:            FAIL (1.70s)
-  Wrong exit code
-  expected: ExitSuccess
-  but got: ExitFailure 2
-
-FindRec.hs:                                   FAIL (9.65s)
-  --eliminate crashes due to `cannot unify Tuple with FHandle error`.
-  A cons-gen bug tickled by --eliminate?
-
-CopyRec.hs:                                   FAIL (42.90s)
-  --eliminate seems to blow up (lack of pattern-inline)?
-
diff --git a/HLint.hs b/HLint.hs
deleted file mode 100644
--- a/HLint.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-import "hint" HLint.Default
-import "hint" HLint.Dollar
-
-ignore "Eta reduce"
-ignore "Use ."
diff --git a/INSTALL.md b/INSTALL.md
deleted file mode 100644
--- a/INSTALL.md
+++ /dev/null
@@ -1,76 +0,0 @@
-# Install LiquidHaskell
-
-To run `liquid` you need to install:
-
-1. An SMT solver
-2. The `liquid` binary via package manager *or* source.
-
-
-## Step 1: Install SMT Solver
-
-Download and install *at least one* of
-
-+ [Z3](https://github.com/Z3Prover/z3/releases)
-+ [CVC4](http://cvc4.cs.nyu.edu/)
-+ [MathSat](http://mathsat.fbk.eu/download.html)
-
-
-## Step 2: Install `liquid` via Package Manager
-
-Simply do:
-
-    cabal install liquidhaskell
-
-We are working to put `liquid` on `stackage`.
-
-Note: Currently, LiquidHaskell on hackage does not compile against GHC 8.
-Please make sure you are installing with GHC version less than 8. You can
-designate a specific version of LiquidHaskell to ensure that the correct
-GHC version is in the environment. As an example,
-
-    cabal install liquidhaskell-0.6.0.0
-
-## Step 2: Install `liquid` from Source
-
-If you want the most recent version, you can build from source as follows,
-either using `stack` (recommended) or `cabal`. In either case: *recursively*
-clone the repo and then build:
-
-### Build with `stack` (recommended)
-
-This requires that you have installed [stack][stack] (which we strongly recommend!)
-
-    git clone --recursive git@github.com:ucsd-progsys/liquidhaskell.git
-    cd liquidhaskell
-    stack install
-
-## Build with `cabal`
-
-    git clone --recursive git@github.com:ucsd-progsys/liquidhaskell.git
-    cd liquidhaskell
-
-    cabal sandbox init
-    cabal sandbox add-source ./liquid-fixpoint
-    cabal install
-
-## Troubleshooting
-
-
-1. If you're on Windows, please make sure the SMT solver is installed
-    in the **same** directory as LiquidHaskell itself (i.e. wherever
-    `cabal` or `stack` puts your binaries). That is, do:
-
-    ```
-    which liquid
-    ```
-
-    and make sure that `z3` or `cvc4` or `mathsat` are in the `PATH`
-    returned by the above.
-
-2. If you installed via `stack` and are experiencing path related woes, try:
-
-    ```
-    stack exec -- liquid path/to/file.hs
-    ```
-
-[stack]: https://github.com/commercialhaskell/stack/blob/master/doc/install_and_upgrade.md
diff --git a/Makefile b/Makefile
deleted file mode 100644
--- a/Makefile
+++ /dev/null
@@ -1,110 +0,0 @@
-THREADS=1
-SMTSOLVER=z3
-
-FASTOPTS=-O0
-DISTOPTS=-O2
-PROFOPTS=-O2 --enable-library-profiling --enable-executable-profiling
-LIQUIDOPTS=
-
-CABAL=cabal
-CABALI=$(CABAL) install
-CABALP=$(CABAL) install --enable-library-profiling
-
-# to deal with cabal sandboxes using dist/dist-sandbox-xxxxxx/build/test/test
-# TASTY=find dist -type f -name test | head -n1
-TASTY=./dist/build/test/test
-
-DEPS=--dependencies-only
-
-##############################################################################
-##############################################################################
-##############################################################################
-
-fast:
-	$(CABAL) install -fdevel $(FASTOPTS)
-
-first:
-	$(CABAL) install $(FASTOPTS) --only-dependencies --enable-tests --enable-benchmarks
-
-dist:
-	# $(CABAL) install $(DISTOPTS)
-	$(CABAL) configure -fdevel --enable-tests --disable-library-profiling -O2
-	$(CABAL) build
-	
-prof:
-	$(CABAL) install $(PROFOPTS)
-
-igotgoto:
-	$(CABAL) build $(OPTS)
-	cp dist/build/liquid/liquid ~/.cabal/bin/
-
-clean:
-	cabal clean
-
-docs:
-	$(CABAL) hscolour
-	$(CABAL) haddock --hoogle
-
-deps:
-	$(CABALI) $(DEPS)
-
-pdeps:
-	$(CABALP) $(DEPS)
-
-all-test-py:
-	cd tests && ./regrtest.py -a -t $(THREADS) && cd ../
-
-test-py:
-	cd tests && ./regrtest.py -t $(THREADS) && cd ../
-
-test:
-	$(CABAL) configure -fdevel --enable-tests --disable-library-profiling -O2
-	$(CABAL) build
-	$(CABAL) exec $(TASTY) -- --smtsolver $(SMTSOLVER) --hide-successes --rerun-update -p 'Unit/' -j$(THREADS) +RTS -N$(THREADS) -RTS
-	# $(CABAL) exec $(TASTY) -- --smtsolver $(SMTSOLVER) --liquid-opts='$(LIQUIDOPTS)' --hide-successes --rerun-update -p 'Unit/' -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-test710:
-	$(CABAL) configure -fdevel --enable-tests --disable-library-profiling -O2
-	$(CABAL) build
-	$(TASTY) --smtsolver $(SMTSOLVER) --hide-successes --rerun-update -p 'Unit/' -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-
-retest:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	cabal exec $(TASTY) -- --smtsolver $(SMTSOLVER) --hide-successes --rerun-filter "exceptions,failures,new" --rerun-update -p 'Unit/' -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-all-test:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	cabal exec $(TASTY) -- --smtsolver $(SMTSOLVER) --hide-successes --rerun-update -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-all-test-710:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	$(TASTY) --smtsolver $(SMTSOLVER) --hide-successes --rerun-update -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-
-
-all-retest:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	cabal exec $(TASTY) -- --smtsolver $(SMTSOLVER) --hide-successes --rerun-filter "exceptions,failures,new" --rerun-update -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-all-retest-710:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	$(TASTY) --smtsolver $(SMTSOLVER) --hide-successes --rerun-filter "exceptions,failures,new" --rerun-update -j$(THREADS) +RTS -N$(THREADS) -RTS
-
-
-
-lint:
-	hlint --colour --report .
-
-tags:
-	hasktags -x -c src/
-	# hasktags -c src/
-	# hasktags -e src/
-
-ghcid:
-	ghcid --command "stack ghci --main-is liquidhaskell:exe:liquid"
diff --git a/NVTODO.md b/NVTODO.md
deleted file mode 100644
--- a/NVTODO.md
+++ /dev/null
@@ -1,16 +0,0 @@
-- Porting to ghc-8
-  - restore benchmarks
-  - look at Target's model
-
-- Gradual Refinement Types
- - [x] clean up code
- - [x] compare numbers
- - [x] pull request 
- - [ ] without elimination Interpratations.f has an bad/interesting result
- - [ ] Implement Eric's validity with measures 
- - [x] Check how elimination interacts with graduals (eg Interpretation fails with elimination now)
- - [ ] Find interesting application
- - [ ] Present weakest result 
-
-
-- Proof by Symbolic Evaluation 
diff --git a/README.md b/README.md
deleted file mode 100644
--- a/README.md
+++ /dev/null
@@ -1,1250 +0,0 @@
-![LiquidHaskell](/resources/logo.png)
-
-
-[![Hackage](https://img.shields.io/hackage/v/liquidhaskell.svg)](https://hackage.haskell.org/package/liquidhaskell) [![Hackage-Deps](https://img.shields.io/hackage-deps/v/liquidhaskell.svg)](http://packdeps.haskellers.com/feed?needle=liquidhaskell) [![Build Status](https://img.shields.io/circleci/project/ucsd-progsys/liquidhaskell/master.svg)](https://circleci.com/gh/ucsd-progsys/liquidhaskell)
-
-Main Web site
--------------
-
-The UCSD web site for liquid haskell is [here](https://ucsd-progsys.github.io/liquidhaskell-blog/)
-
-Examples
---------
-
-Jump to examples here [TODO]
-
-
-
-Contributing Guide
-------------------
-
-Please see the [contributing guide](CONTRIBUTING.md)
-
-Requirements
-------------
-
-LiquidHaskell requires (in addition to the cabal dependencies)
-
-- SMTLIB2 compatible solver
-
-How To Clone, Build and Install
--------------------------------
-
-See [install instructions](INSTALL.md)
-
-How To Run
-----------
-
-To verify a file called `foo.hs` at type
-
-    $ liquid foo.hs
-
-How to Run inside GHCi
-----------------------
-
-To run inside `ghci` e.g. when developing do:
-
-    $ stack ghci liquidhaskell
-    ghci> :m +Language.Haskell.Liquid.Liquid
-    ghci> liquid ["tests/pos/Abs.hs"]
-
-How To Run Regression Tests
----------------------------
-
-    $ stack test
-
-To use threads to speed up the tests
-
-    $ make THREADS=30 test
-
-Or your favorite number of threads, depending on cores etc.
-
-You can directly extend and run the tests by modifying
-
-    tests/test.hs
-
-To run the regression test *and* the benchmarks run
-
-    $ make all-test
-
-How to Profile
---------------
-
-1. Build with profiling on
-
-    ```
-    $ make pdeps && make prof
-    ```
-
-2. Run with profiling
-
-    ```
-    $ time liquid range.hs +RTS -hc -p
-    $ time liquid range.hs +RTS -hy -p
-    ```
-
-    Followed by this which shows the stats file
-
-    ```
-    $ more liquid.prof
-    ```
-
-    or by this to see the graph
-
-    ```
-    $ hp2ps -e8in -c liquid.hp
-    $ gv liquid.ps
-    ```
-
-    etc.
-
-How to Get Stack Traces On Exceptions
--------------------------------------
-
-1. Build with profiling on
-
-    ```
-    $ make pdeps && make prof
-    ```
-
-2. Run with backtraces
-
-    ```
-    $ liquid +RTS -xc -RTS foo.hs
-    ```
-
-Working With Submodules
------------------------
-
- - To update the `liquid-fixpoint` submodule, run
-
-    ```
-    cd ./liquid-fixpoint
-    git fetch --all
-    git checkout <remote>/<branch>
-    cd ..
-    ```
-
-   This will update `liquid-fixpoint` to the latest version on `<branch>`
-   (usually `master`) from `<remote>` (usually `origin`).
-
- - After updating `liquid-fixpoint`, make sure to include this change in a
-   commit! Running
-
-    ```
-    git add ./liquid-fixpoint
-    ```
-
-   will save the current commit hash of `liquid-fixpoint` in your next commit
-   to the `liquidhaskell` repository.
-
- - For the best experience, **don't** make changes directly to the
-   `./liquid-fixpoint` submodule, or else git may get confused. Do any
-   `liquid-fixpoint` development inside a separate clone/copy elsewhere.
-
- - If something goes wrong, run
-
-    ```
-    rm -r ./liquid-fixpoint
-    git submodule update --init
-    ```
-
-   to blow away your copy of the `liquid-fixpoint` submodule and revert to the
-   last saved commit hash.
-
- - Want to work fully offline? git lets you add a local directory as a remote.
-   Run
-
-    ```
-    cd ./liquid-fixpoint
-    git remote add local /path/to/your/fixpoint/clone
-    cd ..
-    ```
-
-   Then to update the submodule from your local clone, you can run
-
-    ```
-    cd ./liquid-fixpoint
-    git fetch local
-    git checkout local/<branch>
-    cd ..
-    ```
-
-Command Line Options
-====================
-
-LiquidHaskell supports several command line options, to configure the
-checking. Each option can be passed in at the command line, or directly
-added to the source file via:
-
-    {-@ LIQUID "option-within-quotes" @-}
-
-for example, to disable termination checking (see below)
-
-    {-@ LIQUID "--notermination" @-}
-
-You may also put command line options in the environment variable
-`LIQUIDHASKELL_OPTS`. For example, if you add the line:
-
-    LIQUIDHASKELL_OPTS="--diff"
-
-to your `.bashrc` then, by default, all files will be
-*incrementally checked* unless you run with the overriding
-`--full` flag (see below).
-
-Incremental Checking
---------------------
-
-LiquidHaskell supports *incremental* checking where each run only checks
-the part of the program that has been modified since the previous run.
-
-    $ liquid --diff foo.hs
-
-Each run of `liquid` saves the file to a `.bak` file and the *subsequent*
-run
-    + does a `diff` to see what has changed w.r.t. the `.bak` file
-    + only generates constraints for the `[CoreBind]` corresponding to the
-       changed top-level binders and their transitive dependencies.
-
-The time savings are quite significant. For example:
-
-    $ time liquid --notermination -i . Data/ByteString.hs > log 2>&1
-
-    real	7m3.179s
-    user	4m18.628s
-    sys	    0m21.549s
-
-Now if you go and tweak the definition of `spanEnd` on line 1192 and re-run:
-
-    $ time liquid -d --notermination -i . Data/ByteString.hs > log 2>&1
-
-    real	0m11.584s
-    user	0m6.008s
-    sys	    0m0.696s
-
-The diff is only performed against **code**, i.e. if you only change
-specifications, qualifiers, measures, etc. `liquid -d` will not perform
-any checks. In this case, you may specify individual definitions to verify:
-
-    $ liquid -b bar -b baz foo.hs
-
-This will verify `bar` and `baz`, as well as any functions they use.
-
-If you always want to run a given file with diff-checking, add
-the pragma:
-
-    {-@ LIQUID "--diff" @-}
-
-
-Full Checking (DEFAULT)
------------------------
-
-To force LiquidHaskell to check the **whole** file (DEFAULT), use:
-
-    $ liquid --full foo.hs
-
-to the file. This will override any other `--diff` incantation
-elsewhere (e.g. inside the file.)
-
-
-If you always want to run a given file with full-checking, add
-the pragma:
-
-    {-@ LIQUID "--full" @-}
-
-Specifying Different SMT Solvers
---------------------------------
-
-By default, LiquidHaskell uses the SMTLIB2 interface for Z3.
-
-To run a different solver (supporting SMTLIB2) do:
-
-    $ liquid --smtsolver=NAME foo.hs
-
-Currently, LiquidHaskell supports
-
-+ [CVC4](http://cvc4.cs.nyu.edu/)
-+ [MathSat](http://mathsat.fbk.eu/download.html )
-
-To use these solvers, you must install the corresponding binaries
-from the above web-pages into your `PATH`.
-
-You can also build and link against the Z3 API (faster but requires more
-dependencies). If you do so, you can use that interface with:
-
-    $ liquid --smtsolver=z3mem foo.hs
-
-
-Short Error Messages
---------------------
-
-By default, subtyping error messages will contain the inferred type, the
-expected type -- which is **not** a super-type, hence the error -- and a
-context containing relevant variables and their type to help you understand
-the error. If you don't want the above and instead, want only the
-**source position** of the error use:
-
-    --short-errors
-
-Short (Unqualified) Module Names
--------------------------------
-
-By default, the inferred types will have fully qualified module names.
-To use unqualified names, much easier to read, use:
-
-    --short-names
-
-
-Totality Check
---------------
-
-LiquidHaskell can prove the absence of pattern match failures.
-Use the `totality` flag to prove that all defined functions are total.
-
-    liquid --totality test.hs
-
-For example, the definition
-
-    fromJust :: Maybe a -> a
-    fromJust (Just a) = a
-
-is not total and it will create an error message.
-If we exclude `Nothing` from its domain, for example using the following specification
-
-    {-@ fromJust :: {v:Maybe a | (isJust v)} -> a @-}
-
-`fromJust` will be safe.
-
-Termination Check
------------------
-
-By **default** a termination check is performed on all recursive functions.
-
-Use the `no-termination` option to disable the check
-
-    liquid --no-termination test.hs
-
-In recursive functions the *first* algebraic or integer argument should be decreasing.
-
-The default decreasing measure for lists is length and Integers its value.
-
-The user can specify the decreasing measure in data definitions:
-
-    {-@ data L [llen] a = Nil | Cons (x::a) (xs:: L a) @-}
-
-Defines that `llen` is the decreasing measure (to be defined by the user).
-
-For example, in the function `foldl`
-
-    foldl k acc N           = acc
-    foldl k acc (Cons x xs) = foldl k (x `k` acc) xs
-
-by default the *second* argument (the first non-function argument) will be
-checked to be decreasing. However, the explicit hint
-
-    {-@ Decrease foo 3 @-}
-
-tells LiquidHaskell to instead use the *third* argument.
-
-Apart from specifying a specific decreasing measure for an Algebraic Data Type,
-the user can specify that the ADT follows the expected decreasing measure by
-
-    {-@ autosize L @-}
-
-Then, LiquidHaskell will define an instance of the function `autosize` for `L` that decreases by 1 at each recursive call and use `autosize` at functions that recurse on `L`.
-
-For example, `autosize L` will refine the data constructors of `L a` with the `autosize :: a -> Int` information, such that
-
-    Nil  :: {v:L a | autosize v = 0}
-    Cons :: x:a -> xs:L a -> {v:L a | autosize v = 1 + autosize xs}
-
-Also, an invariant that `autosize` is non negative will be generated
-
-    invariant  {v:L a| autosize v >= 0 }
-
-This information is all LiquidHaskell needs to prove termination on functions that recurse on `L a` (on ADTs in general.)
-
-
-To *disable* termination checking for `foo` that is, to *assume* that it
-is terminating (possibly for some complicated reason currently beyond the
-scope of LiquidHaskell) you can write
-
-    {-@ Lazy foo @-}
-
-Some functions do not decrease on a single argument, but rather a
-combination of arguments, e.g. the Ackermann function.
-
-    ack m n
-      | m == 0          = n + 1
-      | m > 0 && n == 0 = ack (m-1) 1
-      | m > 0 && n >  0 = ack (m-1) (ack m (n-1))
-
-In all but one recursive call `m` decreases, in the final call `m`
-does not decrease but `n` does. We can capture this notion of "x
-normally decreases, but if it does not, y will" with an extended
-annotation
-
-    {-@ Decrease ack 1 2 @-}
-
-An alternative way to express this specification is by annotating
-the function's type with the appropriate *numeric* decreasing expressions.
-As an example, you can give `ack` a type
-
-    {-@ ack :: m:Nat -> n:Nat -> Nat / [m,n] @-}
-
-stating that the *numeric* expressions `[m, n]` are lexicographically decreasing.
-
-Decreasing expressions can be arbitrary refinement expressions, e.g.,
-
-    {-@ merge :: Ord a => xs:[a] -> ys:[a] -> [a] / [(len xs) + (len ys)] @-}
-
-states that at each recursive call of `merge` the sum of the lengths
-of its arguments will be decreased.
-
-When dealing with mutually recursive functions you may run into a
-situation where the decreasing parameter must be measured *across* a
-series of invocations, e.g.
-
-    even 0 = True
-    even n = odd (n-1)
-
-    odd  n = not $ even n
-
-In this case, you can introduce a ghost parameter that orders the *functions*
-
-    even 0 _ = True
-    even n _ = odd (n-1) 1
-
-    odd  n _ = not $ even n 0
-
-thus recovering a decreasing measure for the pair of functions, the
-pair of arguments. This can be encoded with the lexicographic
-termination annotation `{-@ Decrease even 1 2 @-}` (see
-[tests/pos/mutrec.hs](tests/pos/mutrec.hs) for the full example).
-
-
-
-Total Haskell
---------------
-
-LiquidHaskell provides a total Haskell flag that checks both totallity and termination of the program,
-overriding a potential no-termination flag.
-
-    liquid --total-Haskell test.hs
-
-
-Lazy Variables
---------------
-
-A variable can be specified as `LAZYVAR`
-
-    {-@ LAZYVAR z @-}
-
-With this annotation the definition of `z` will be checked at the points where
-it is used. For example, with the above annotation the following code is SAFE:
-
-    foo   = if x > 0 then z else x
-      where
-        z = 42 `safeDiv` x
-        x = choose 0
-
-By default, all the variables starting with `fail` are marked as LAZY, to defer
-failing checks at the point where these variables are used.
-
-No measure fields
-------------------
-
-When a data type is refined, Liquid Haskell automatically turns the data constructor fields into measures.
-For example,
-
-   {-@ data L a = N | C {hd :: a, tl :: L a} @-}
-
-will automatically create two measures `hd` and `td`.
-To deactivate this automatic measure definition, and speed up verification, you can use the `no-measure-fields` flag.
-
-  liquid --no-measure-fields test.hs
-
-
-
-Prune Unsorted Predicates
--------------------------
-
-Consider a measure over lists of integers
-
-  sum :: [Int] -> Int
-  sum [] = 0 
-  sum (x:xs) = 1 + sum xs 
-
-This measure will translate into strengthening the types of list constructors 
-
-  [] :: {v:[Int] | sum v = 0 }
-  (:) :: x:Int -> xs:[Int] -> {v:[Int] | sum v = x + sum xs}
-
-But what if our list is polymorphic `[a]` and later instantiate to list of ints?
-The hack we do right now is to strengthen the polymorphic list with the `sum` information 
-
-  [] :: {v:[a] | sum v = 0 }
-  (:) :: x:a -> xs:[a] -> {v:[a] | sum v = x + sum xs}
-
-But for non numeric `a`s, expressions like `x + sum xs` is unsorted causing the logic to crash. 
-We use the flag `--prune-unsorted` to prune away unsorted expressions (like `x + sum xs`) in the logic. 
-
-
-    liquid --prune-unsorted test.hs
-
-
-Case Expansion
--------------------------
-
-By default LiquidHaskell expands all data constructors to the case statements.
-For example,
-if `F = A1 | A2 | .. | A10`,
-then LiquidHaskell will expand the code
-`case f of {A1 -> True; _ -> False}`
-to `case f of {A1 -> True; A2 -> False; ...; A10 -> False}`.
-This expansion can lead to more precise code analysis
-but it can get really expensive due to code explosion.
-The `no-case-expand` flag prevents this expansion and keeps the user
-provided cases for the case expression.
-
-    liquid --no-case-expand test.hs
-
-
-Higher order logic
--------------------
-The flag `--higherorder` allows reasoning about higher order functions.
-
-
-Restriction to Linear Arithmetic
----------------------------------
-When using `z3` as the solver, LiquidHaskell allows for non-linear arithmetic:
-division and multiplication on integers are interpreted by `z3`. To treat division
-and multiplication as uninterpreted functions use the `linear` flag
-
-    liquid --linear test.hs
-
-Counter examples (Experimental!)
---------------------------------
-When given the `--counter-examples` flag, LiquidHaskell will attempt to produce
-counter-examples for the type errors it discovers. For example, see
-[tests/neg/ListElem.hs](https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/neg/ListElem.hs)
-
-```
-% liquid --counter-examples tests/neg/ListElem.hs
-
-...
-
-tests/neg/ListElem.hs:12:1-8: Error: Liquid Type Mismatch
-
- 12 | listElem _ []      = False
-      ^^^^^^^^
-
-   Inferred type
-     VV : {VV : Bool | VV == True}
-     VV = True
-
-   not a subtype of Required type
-     VV : {VV : Bool | Prop VV <=> Set_mem ?b (listElts ?a)}
-
-   In Context
-     ?a : {?a : [a] | len ?a >= 0}
-     ?a = [1]
-
-     ?b : a
-     ?b = 0
-```
-
-The `--counter-examples` flag requires that each type in the context be
-an instance of `GHC.Generics.Generic` or `Test.Targetable.Targetable`
-(provided as part of LiquidHaskell).  LiquidHaskell cannot generate
-counter-examples for polymorphic types, but will try (naively) to
-instantiate type variables with `Int` (as seen in the example above).
-
-Writing Specifications
-======================
-
-Modules WITHOUT code
---------------------
-
-When checking a file `target.hs`, you can specify an _include_ directory by
-
-    liquid -i /path/to/include/  target.hs
-
-Now, to write specifications for some **external module** `Foo.Bar.Baz` for which
-you **do not have the code**, you can create a `.spec` file at:
-
-    /path/to/include/Foo/Bar/Baz.spec
-
-See, for example, the contents of
-
-+ [include/Prelude.spec](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Prelude.spec)
-+ [include/Data/List.spec](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/List.spec)
-+ [include/Data/Vector.spec](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/Vector.spec)
-
-**Note**:
-
-+ The above directories are part of the LH prelude, and included by
-  default when running `liquid`.
-+ The `.spec` mechanism is *only for external modules** without code,
-  see below for standalone specifications for **internal** or **home** modules.
-
-
-Modules WITH code: Data
------------------------
-
-Write the specification directly into the .hs or .lhs file,
-above the data definition. See, for example, [tests/pos/Map.hs](tests/pos/Map.hs)
-
-    {-@
-    data Map k a <l :: k -> k -> Prop, r :: k -> k -> Prop>
-      = Tip
-      | Bin (sz    :: Size)
-            (key   :: k)
-            (value :: a)
-            (left  :: Map <l, r> (k <l key>) a)
-            (right :: Map <l, r> (k <r key>) a)
-    @-}
-    data Map k a = Tip
-                 | Bin Size k a (Map k a) (Map k a)
-
-You can also write invariants for data type definitions
-together with the types. For example, see [tests/pos/record0.hs](tests/pos/record0.hs)
-
-    {-@ data LL a = BXYZ { size  :: {v: Int | v > 0 }
-                         , elems :: {v: [a] | (len v) = size }
-                         }
-    @-}
-
-Finally you can specify the variance of type variables for data types.
-For example, see [tests/pos/Variance.hs](tests/pos/Variance.hs), where data type `Foo` has four
-type variables `a`, `b`, `c`, `d`, specified as invariant, bivariant,
-covariant and contravariant, respectively.
-
-    data Foo a b c d
-    {-@ data variance Foo invariant bivariant covariant contravariant @-}
-
-
-Modules WITH code: Functions
-----------------------------
-
-Write the specification directly into the .hs or .lhs file,
-above the function definition. [For example](tests/pos/spec0.hs)
-
-    {-@ incr :: x:{v: Int | v > 0} -> {v: Int | v > x} @-}
-    incr   :: Int -> Int
-    incr x = x + 1
-
-Modules WITH code: Type Classes
--------------------------------
-
-Write the specification directly into the .hs or .lhs file,
-above the type class definition. [For example](tests/pos/Class.hs)
-
-    {-@ class Sized s where
-          size :: forall a. x:s a -> {v:Int | v = (size x)}
-    @-}
-    class Sized s where
-      size :: s a -> Int
-
-Any measures used in the refined class definition will need to be
-*generic* (see [Specifying Measures](#specifying-measures)).
-
-
-As an alternative, you can refine class instances.
-[For example](tests/pos/LiquidClass.hs)
-
-~~~~
-instance Compare Int where
-
-{-@ instance Compare Int where
-    cmax :: Odd -> Odd -> Odd
-  @-}
-
-cmax y x = if x >= y then x else y
-~~~~
-
-When `cmax` method is used on `Int`, liquidHaskell will give it
-the refined type `Odd -> Odd -> Odd`.
-
-Note that currently liquidHaskell does not allow refining instances of
-refined classes.
-
-Modules WITH code: QuasiQuotation
----------------------------------
-
-Instead of writing both a Haskell type signature *and* a
-LiquidHaskell specification for a function, the `lq`
-quasiquoter in the `LiquidHaskell` module can be used
-to generate both from just the LiquidHaskell specification.
-
-```haskell
-module Nats (nats) where
-
-{-@ nats :: [{v:Int | 0 <= v}] @-}
-nats :: [Int]
-nats = [1,2,3]
-```
-
-can be written as
-
-```haskell
-{-# LANGUAGE QuasiQuotes #-}
-module Nats (nats) where
-
-import LiquidHaskell
-
-[lq| nats :: [{v:Int | 0 <= v}] |]
-nats = [1,2,3]
-```
-
-and the `lq` quasiquoter will generate the plain `nats :: [Int]` when GHC
-compiles the module.
-
-Refined type aliases (see the next section) can also be written inside `lq`; for
-example:
-
-```haskell
-{-# LANGUAGE QuasiQuoters #-}
-module Nats (Nat, nats) where
-
-[lq| type Nat = {v:Int | 0 <= v} |]
-
-[lq| nats :: [Nat] |]
-nats = [1,2,3]
-```
-
-Here, the `lq` quasiquoter will generate a plain Haskell
-type synonym for `Nat` as well as the refined one.
-
-Note that this is still an experimental feature, and
-currently requires that one depend on LiquidHaskell
-as a build dependency for your project; the quasiquoter
-will be split out eventually into an independent,
-dependency-light package. Also, at this time, writing
-a type inside `lq` which refers to a refined type alias
-for which there is not a plain Haskell type synonym of the
-same name will result in a "not in scope" error from GHC.
-
-Standalone Specifications for Internal Modules
-----------------------------------------------
-
-Recall that the `.spec` mechanism is only for modules whose
-code is absent; if code is present then there can be multiple,
-possibly conflicting specifications. Nevertheless, you may want,
-for one reason or another, to write (assumed) specifications
-outside the file implementing the module.
-
-You can do this as follows.
-
-`Lib.hs`
-
-```haskell
-module Lib (foo) where
-
-foo a = a
-```
-
-now, instead of a `.spec` file, just use a haskell module, e.g. `LibSpec.hs`
-
-```haskell
-module LibSpec ( module Lib ) where
-
-import Lib
-
--- Don't forget to qualify the name!
-
-{-@ Lib.foo :: {v:a | false} -> a @-}
-```
-
-and then here's `Client.hs`
-
-```haskell
-module Client where
-
-import Lib      -- use this if you DON'T want the spec
-import LibSpec  -- use this if you DO want the spec, in addition to OR instead of the previous import.
-
-bar = foo 1     -- if you `import LibSpec` then this call is rejected by LH
-```
-Refinement Type Aliases
------------------------
-
-#### Predicate Aliases
-
-Often, the propositions in the refinements can get rather long and
-verbose. You can write predicate aliases like so:
-
-    {-@ predicate Lt X Y = X < Y        @-}
-    {-@ predicate Ge X Y = not (Lt X Y) @-}
-
-and then use the aliases inside refinements, [for example](tests/pos/pred.hs)
-
-    {-@ incr :: x:{v:Int | (Pos v)} -> { v:Int | ((Pos v) && (Ge v x))} @-}
-    incr :: Int -> Int
-    incr x = x + 1
-
-See [Data.Map](benchmarks/esop2013-submission/Base.hs) for a more substantial
-and compelling example.
-
-**Syntax:** The key requirements for type aliases are:
-
-- Value parameters are specified in **upper**case: `X`, `Y`, `Z` etc.
-
-
-#### Type Aliases
-
-
-Similarly, it is often quite tedious to keep writing
-
-    {v: Int | v > 0}
-
-Thus, LiquidHaskell supports refinement-type aliases of the form:
-
-    {-@ type Gt      N = {v: Int | N <  v} @-}
-    {-@ type GeNum a N = {v: a   | N <= v} @-}
-
-or
-
-    {-@ type SortedList a = [a]<{\fld v -> (v >= fld)}> @-}
-
-or
-
-    {-@ type OMap k a = Map <{\root v -> v < root}, {\root v -> v > root}> k a @-}
-
-or
-
-    {-@ type MinSPair a = (a, OSplay a) <\fld -> {v : Splay {v:a|v>fld} | 0=0}> @-}
-
-and then use the above in signatures like:
-
-    {-@ incr: x: Int -> GeNum Int x @-}
-
-or
-
-    {-@ incr: x: Int -> Gt x @-}
-
-and:
-
-    {-@ assert insert :: (Ord a) => a -> SortedList a -> SortedList a @-}
-
-see [tests/pos/ListSort.hs](tests/pos/ListSort.hs)
-
-and:
-
-    {-@ assert insert :: (Ord k) => k -> a -> OMap k a -> OMap k a @-}
-
-see [tests/pos/Map.hs](tests/pos/Map.hs)
-
-**Syntax:** The key requirements for type aliases are:
-
-1. Type parameters are specified in **lower**case: `a`, `b`, `c` etc.
-2. Value parameters are specified in **upper**case: `X`, `Y`, `Z` etc.
-
-
-Infix Logic Operators
----------------------
-
-You can define infix operators in logic, following [Haskell's infix notation](Build in Haskell ops https://www.haskell.org/onlinereport/decls.html#fixity).
-For example, if (+++) is defined as a measure or reflected function, you can use it infix by declaring
-
-   {-@ infixl 9 +++ @-}
-
-
-Note: infix operators cannot contain the dot character `.`.
-
-
-Specifying Measures
--------------------
-
-Can be placed in .spec file or in .hs/.lhs file wrapped around `{-@ @-}`
-
-Value measures: [include/GHC/Base.spec](include/GHC/Base.spec)
-
-    measure len :: forall a. [a] -> GHC.Types.Int
-    len ([])     = 0
-    len (y:ys)   = 1 + len(ys)
-
-Propositional measures: [tests/pos/LambdaEval.hs](tests/pos/LambdaEval.hs)
-
-    {-@
-    measure isValue      :: Expr -> Bool
-    isValue (Const i)    = true
-    isValue (Lam x e)    = true
-    isValue (Var x)      = false
-    isValue (App e1 e2)  = false
-    isValue (Plus e1 e2) = false
-    isValue (Fst e)      = false
-    isValue (Snd e)      = false
-    isValue (Pair e1 e2) = ((? (isValue(e1))) && (? (isValue(e2))))
-    @-}
-
-Raw measures: [tests/pos/meas8.hs](tests/pos/meas8.hs)
-
-    {-@ measure rlen :: [a] -> Int
-    rlen ([])   = {v | v = 0}
-    rlen (y:ys) = {v | v = (1 + rlen(ys))}
-    @-}
-
-Generic measures: [tests/pos/Class.hs](tests/pos/Class.hs)
-
-    {-@ class measure size :: a -> Int @-}
-    {-@ instance measure size :: [a] -> Int
-        size ([])   = 0
-        size (x:xs) = 1 + (size xs)
-    @-}
-    {-@ instance measure size :: Tree a -> Int
-        size (Leaf)       = 0
-        size (Node x l r) = 1 + (size l) + (size r)
-    @-}
-
-**Note:** Measure names **do not** have to be the same as
-field name, e.g. we could call the measure `sz` in the above
-as shown in [tests/pos/Class2.hs](tests/pos/Class2.hs).
-
-
-Haskell Functions as Measures (beta): [tests/pos/HaskellMeasure.hs](tests/pos/HaskellMeasure.hs)
-
-Inductive Haskell Functions from Data Types to some type can be lifted to logic
-
-    {-@ measure llen @-}
-    llen        :: [a] -> Int
-    llen []     = 0
-    llen (x:xs) = 1 + llen xs
-
-The above definition
-  - refines list's data constructors types with the llen information, and
-  - specifies a singleton type for the haskell function
-        `llen :: xs:[a] -> {v:Int | v == llen xs}`
-    If the user specifies another type for llen, say
-        `llen :: xs:[a] -> {v:Int | llen xs >= 0}`
-    then the auto generated singleton type is overwritten.
-
-Self-Invariants
-===============
-
-Sometimes, we require specifications that allow *inner* components of a
-type to refer to the *outer* components, typically, to measure-based
-properties of outer components. For example, the following invariant
-about `Maybe` values
-
-    {-@ type IMaybe a = {v0 : Maybe {v : a | ((isJust v0) && v = (fromJust v0))} | 0 = 0 } @-}
-
-states that the *inner* `a` enjoys the property that the *outer* container
-is definitely a `Just` and furthermore, the inner value is exactly the same
-as the `fromJust` property of the outer container.
-
-As another example, suppose we have a [measure](include/Data/Set.spec):
-
-    measure listElts :: [a] -> (Set a)
-    listElts([])   = {v | (? Set_emp(v))}
-    listElts(x:xs) = {v | v = Set_cup(Set_sng(x), listElts(xs)) }
-
-Now, all lists enjoy the property
-
-    {-@ type IList a = {v0 : List  {v : a | (Set_mem v (listElts v0)) } | true } @-}
-
-which simply states that each *inner* element is indeed, a member of the
-set of the elements belonging to the entire list.
-
-One often needs these *circular* or *self* invariants to connect different
-levels (or rather, to *reify* the connections between the two levels.) See
-[this test](tests/pos/maybe4.hs) for a simple example and `hedgeUnion` and
-[Data.Map.Base](benchmarks/esop2013-submission/Base.hs) for a complex one.
-
-Abstract and Bounded Refinements
-================================
-
-This is probably the best example of the abstract refinement syntax:
-
-+ [Abstract Refinements](tests/pos/Map.hs)
-+ [Bounded Refinements](benchmarks/icfp15/pos/Overview.lhs)
-
-Unfortunately, the best documentation for these two advanced features
-is the relevant papers at
-
-+ [ESOP 2013](https://ranjitjhala.github.io/static/abstract_refinement_types.pdf)
-+ [ICFP 2015](https://arxiv.org/abs/1507.00385)
-
-The bounds correspond to Horn implications between abstract refinements,
-which, as in the classical setting, correspond to subtyping constraints
-that must be satisfied by the concrete refinements used at any call-site.
-
-Invariants
-==========
-
-LH lets you locally associate invariants with specific data types.
-
-For example, in [tests/pos/StreamInvariants.hs](tests/pos/StreamInvariants.hs) every
-list is treated as a Stream. To establish this local invariant one can use the
-`using` declaration
-
-    {-@ using ([a]) as  {v:[a] | (len v > 0)} @-}
-
-denoting that each list is not empty.
-
-Then, LiquidHaskell will prove that this invariant holds, by proving that *all
-calls* to List's constructors (ie., `:` and `[]`) satisfy it, and
-will assume that each list element that is created satisfies
-this invariant.
-
-With this, at the [above](tests/neg/StreamInvariants.hs) test LiquidHaskell
-proves that taking the `head` of a list is safe.
-But, at [tests/neg/StreamInvariants.hs](tests/neg/StreamInvariants.hs) the usage of
-`[]` falsifies this local invariant resulting in an "Invariant Check" error.
-
-
-**WARNING:** There is an older _global_ invariant mechanism that 
-attaches a refinement to a datatype globally.
-Do not use this mechanism -- it is *unsound* and about to 
-deprecated in favor of something that is [actually sound](https://github.com/ucsd-progsys/liquidhaskell/issues/126)
-
-Forexample,  the length of a list cannot be negative
-
-    {-@ invariant {v:[a] | (len v >= 0)} @-}
-
-LiquidHaskell can prove that this invariant holds, by proving that all List's
-constructors (ie., `:` and `[]`) satisfy it.(TODO!) Then, LiquidHaskell 
-assumes that each list element that is created satisfies
-this invariant.
-
-Formal Grammar of Refinement Predicates
-=======================================
-
-(C)onstants
------------
-
-    c := 0, 1, 2, ...
-
-(V)ariables
------------
-
-    v := x, y, z, ...
-
-
-(E)xpressions
--------------
-
-    e := v                      -- variable
-       | c                      -- constant
-       | (e + e)                -- addition
-       | (e - e)                -- subtraction
-       | (c * e)                -- multiplication by constant
-       | (v e1 e2 ... en)       -- uninterpreted function application
-       | (if p then e else e)   -- if-then-else
-
-(R)elations
------------
-
-    r := ==               -- equality
-       | /=               -- disequality
-       | >=               -- greater than or equal
-       | <=               -- less than or equal
-       | >                -- greater than
-       | <                -- less than
-
-
-(P)redicates
-------------
-
-    p := (e r e)          -- binary relation
-       | (v e1 e2 ... en) -- predicate (or alias) application
-       | (p && p)         -- and
-       | (p || p)         -- or
-       | (p => p)         -- implies
-       | (not p)          -- negation
-       | true
-       | false
-
-
-Specifying Qualifiers
-=====================
-
-There are several ways to specify qualifiers.
-
-By Separate `.hquals` Files
----------------------------
-
-You can write qualifier files e.g. [Prelude.hquals](include/Prelude.hquals)
-
-If a module is called or imports
-
-    Foo.Bar.Baz
-
-Then the system automatically searches for
-
-    include/Foo/Bar/Baz.hquals
-
-By Including `.hquals` Files
-----------------------------
-
-Additional qualifiers may be used by adding lines of the form:
-
-    {-@ include <path/to/file.hquals> @-}
-
-to the Haskell source. See, [this](tests/pos/meas5.hs) for example.
-
-
-In Haskell Source or Spec Files
--------------------------------
-
-Finally, you can specifiers directly inside source (.hs or .lhs) or spec (.spec)
-files by writing as shown [here](tests/pos/qualTest.hs)
-
-    {-@ qualif Foo(v:Int, a: Int) : (v = a + 100)   @-}
-
-
-**Note** In addition to these, LiquidHaskell scrapes qualifiers from all
-the specifications you write i.e.
-
-1. all imported type signatures,
-2. measure bodies and,
-3. data constructor definitions.
-
-
-Generating HTML Output
-======================
-
-The system produces HTML files with colorized source, and mouseover
-inferred type annotations, which are quite handy for debugging failed
-verification attempts.
-
-- **Regular Haskell** When you run: `liquid foo.hs` you get a file
-  `foo.hs.html` with the annotations. The coloring is done using
-  `hscolour`.
-
-- **Markdown + Literate Haskell** You can also feed in literate haskell files
-  where the comments are in [Pandoc markdown](http://johnmacfarlane.net/pandoc/demo/example9/pandocs-markdown.html).
-  In this case, the tool will run `pandoc` to generate the HTML from the comments.
-  Of course, this requires that you have `pandoc` installed as a binary on
-  your system. If not, `hscolour` is used to render the HTML.
-
-  It is also possible to generate *slide shows* from the above.
-  See the [slides directory](docs/slides) for an example.
-
-Editor Integration
-==================
-
-+ [Emacs/Flycheck](https://github.com/ucsd-progsys/liquid-types.el)
-+ [Vim/Syntastic](https://github.com/ucsd-progsys/liquid-types.vim)
-
-Command Line Options
-====================
-
-To see all options, run `liquid --help`. Here are some common options:
-
-- `--cabaldir` will automatically find a .cabal file in the ancestor
-  path from which the target file belongs, and then add the relevant
-  source and dependencies to the paths searched for by LiquidHaskell.
-
-  This means we don't have to manually do `-i src` etc. when checking
-  large projects, which can be tedious e.g. within emacs.
-
-- `--diff` performs differential checking, i.e. only checks those binders
-  that have transitively affected by edits since the previous check.
-  Can speed things up greatly during editing.
-
-- `--short-names` prints out non-qualified names i.e. `Int` instead of
-  `GHC.Types.Int` for inferred type annotations and error messages.
-
-**Pragmas** are useful for embedding options directly within the source file,
-that is, somewhere in the file (perhaps at the top) put in:
-
-    {-@ LIQUID "--diff"        @-}
-    {-@ LIQUID "--short-names" @-}
-    {-@ LIQUID "--cabaldir"    @-}
-
-to have the relevant option be used for that file.
-
-Generating Performance Reports
-------------------------------
-
-We have set up infrastructure to generate performance reports using [Gipeda](https://github.com/nomeata/gipeda).
-
-Gipeda will generate a static webpage that tracks the performance improvements
-and regressions between commits. To generate the site, first ensure you have the
-following dependencies available:
-
-* Git
-* Cabal >= 1.18
-* GHC
-* Make
-* Bash (installed at `/bin/bash`)
-
-After ensuring all dependencies are available, from the Liquid Haskell
-directory, execute:
-
-    cd scripts/performance
-    ./deploy-gipeda.bash
-
-This will download and install all the relevant repositories and files. Next, to
-generate the performance report, use the `generate-site.bash` script. This script
-has a few options:
-
-* `-s [hash]`: Do not attempt to generate performance reports for any commit
-older than the commit specified by the entered git hash
-* `-e [hash]`: Do not attempt to generate performance reports for any commit
-newer than the commit specified by the entered git hash
-* `-f`: The default behavior of `generate-site.bash` is to first check if logs
-have been created for a given hash. If logs already exist, `generate-site.bash`
-will not recreate them. Specify this option to skip this check and regenerate
-all logs.
-
-You should expect this process to take a very long time. `generate-site.bash`
-will compile each commit, then run the entire test suite and benchmark suite
-for each commit. It is suggested to provide a manageable range to `generate-site.bash`:
-
-    ./generate-site.bash -s [starting hash] -e [ending hash]
-
-...will generate reports for all commits between (inclusive) [starting hash]
-and [ending hash].
-
-    ./generate-site.bash -s [starting hash]
-
-... will generate reports for all commits newer than [starting hash]. This command
-can be the basis for some automated report generation process (i.e. a cron job).
-
-Finally, to remove the Gipeda infrastructure from your computer, you may execute:
-
-    ./cleanup-gipeda.bash
-
-...which will remove any files created by `deploy-gipeda.bash` and `generate-site.bash`
-from your computer.
-
-
-Configuration Management
-------------------------
-
-It is very important that the version of Liquid Haskell be maintained properly.
-
-Suppose that the current version of Liquid Haskell is `A.B.C.D`:
-
-+ After a release to hackage is made, if any of the components `B`, `C`, or `D` are missing, they shall be added and set to `0`. Then the `D` component of Liquid Haskell shall be incremented by `1`. The version of Liquid Haskell is now `A.B.C.(D + 1)`
-
-+ The first time a new function or type is exported from Liquid Haskell, if any of the components `B`, or `C` are missing, they shall be added and set to `0`. Then the `C` component shall be incremented by `1`, and the `D` component shall stripped. The version of Liquid Haskell is now `A.B.(C + 1)`
-
-+ The first time the signature of an exported function or type is changed, or an exported function or type is removed (this includes functions or types that Liquid Haskell re-exports from its own dependencies), if the `B` component is missing, it shall be added and set to `0`. Then the `B` component shall be incremented by `1`, and the `C` and `D` components shall be stripped. The version of Liquid Haskell is now `A.(B + 1)`
-
-+ The `A` component shall be updated at the sole discretion of the project owners.
-
-Proof Automation
-----------------
-The `liquidinstances` automatically generates proof terms using symbolic evaluation. [See](https://github.com/ucsd-progsys/liquidhaskell/blob/develop/benchmarks/proofautomation/pos/MonoidList.hs).
-
-```
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-```
-
-This flag is **global** and will symbolically evaluation all the terms that appear in the specifications. 
-
-As an alternative, the `liquidinstanceslocal` flag has local behavior. [See](https://github.com/ucsd-progsys/liquidhaskell/blob/develop/benchmarks/proofautomation/pos/Unification.hs)
-
-```
-{-@ LIQUID "--automatic-instances=liquidinstanceslocal" @-}
-```
-
-will only evaluate terms appearing in the specifications of the function `theorem`, in the function `theorem` is annotated 
-for automatic instantiation using the following liquid annotation
-
-```
-{-@ automatic-instances theorem @-}
-```
diff --git a/Syntax.md b/Syntax.md
deleted file mode 100644
--- a/Syntax.md
+++ /dev/null
@@ -1,40 +0,0 @@
-- Niki Vazou
-
-|                      | Current Syntax                | Future Syntax                 |
-|----------------------|-------------------------------|-------------------------------|
-| Abstract Refinements | `List <{\x v -> v >= x}> Int` | `List Int (\x v -> v >= x)`   |
-|                      | `[a<p>]<{\x v -> v >= x}>`    | `[a p] (\x v -> v >= x) (??)` |
-|                      | `Int<p>`                      | `Int p`                       |
-|                      | `Int<\x -> x >=0>`            | `Int (\x -> x >= 0)`          |
-|                      | `Maybe <<p>> (a<q>) (?)`      | `Maybe (a q) p`               |
-|                      | `Map <l, r> <<p>> k v  (?)`   | `Maybe k v l r p`             |
-| Type Arguments       | `ListN a {len xs + len ys}`   | `ListN a (len xs + len ys)`   |
-
-Q: How do I distinguish `Int p` with `ListN a n`?
-(`p` is a abstract refinement and `n` is an `Integer`)
-
-A: From the context!
-Use simple kinds, i.e.
-`ListN :: * -> Int -> *`
-`Int :: ?AR -> *`
-
-----------------------------
-
-- Chris Tetreault
-
-Currently for specifications, we write them as such:
-
-`{-@ unsafeLookup :: n:Nat ->  {v:Vector a | n < (vlen v)} -> a @-}`
-
-... where we bind `n` as a `Nat` and `v` as a `Vector a` _such that_ `[stuff]`. As a Haskeller, I find it strange to put logic into something that appears to be a function signature. I propose:
-
-```
-{-@
-   unsafeLookup :: Nat -> Vector a -> a
-   unsafeLookup n v _ | n < vlen v
-@-}
-```
-
-Here we have a "function" that takes a refined type `Nat` and a Haskell type `Vector a` and returns a Haskell type `a`. The definition of this refinement binds the `Nat` to `n` and the `Vector a` to `v`, and doesn't care about the `a`. Next, it specifies that `n < vlen v`.
-
-We could mix the syntax up a bit more to address my previous concern that it not look "too much like haskell", presuably drawing from the list of symbols that get used elsewhere, but I'm more concerned with getting this sort of "function syntax" than with what specific glyphs get used.
diff --git a/TODO.EASY.md b/TODO.EASY.md
deleted file mode 100644
--- a/TODO.EASY.md
+++ /dev/null
@@ -1,22 +0,0 @@
-- Verification of Libraries 
-  - [zlib](https://hackage.haskell.org/package/zlib)
-  - [probability](https://github.com/nikivazou/probability)
-  
-- fix parser error message
-  - Parse Errors [#241](https://github.com/ucsd-progsys/liquidhaskell/issues/241)
-  - Liquid Haskell doesn't accept Haskell names containing ' (single-quote) [#273](https://github.com/ucsd-progsys/liquidhaskell/issues/273)
-  - Error messages [#400](https://github.com/ucsd-progsys/liquidhaskell/issues/400)
-  - Add list of reserved tokens
-
-- Parse Propositional Variables in Refinements [#338](https://github.com/ucsd-progsys/liquidhaskell/issues/338)
-
-- Combine GHC and Liquid Type Aliases [#381](https://github.com/ucsd-progsys/liquidhaskell/issues/381)
-
-- Applying data type with wrong number of abstract refinement params could give better errors [#297](https://github.com/ucsd-progsys/liquidhaskell/issues/297)
-
-- Export qualifiers from measure types [#302](https://github.com/ucsd-progsys/liquidhaskell/issues/302)
-
-- systematically remove all error calls 
-
- NV: Not sure how easy this is, as it requires deep understanding of the code
-    to distinguish dead code from our errors.
diff --git a/TODO.markdown b/TODO.markdown
deleted file mode 100644
--- a/TODO.markdown
+++ /dev/null
@@ -1,1264 +0,0 @@
-GHC-8 integration 
-==================
-- bring back bench
-- ES: fix Target 
-- RJ: fix pattern inlines in 
-  - `tests/todo/NoInlines.hs`
-  - `tests/pos/monad1.hs`, 
-  - `tests/pos/TemplateHaskell.hs`, 
-  - `tests/pos/dropWhile.hs`
-  - `tests/todo/NoInlines.hs`
-- NV: Termination requires Haskell signature in `tests/pos/Term.hs`
-- NV: bound syntax `tests/todo/dropWhile.hs`
-- NV: bound `icfp/pos/FindRec.hs`
-- NV: HACK IO TyCon lookup, it appears as a data con (in Lookup)
-
-
-```
-showTy' :: Type -> String 
-showTy' (TyConApp c ts) = "(RApp   " ++ showPpr c ++ " " ++ sep' ", " (showTy' <$> ts) ++ ")"
-showTy' (AppTy t1 t2)   = "(TAppTy " ++ (showTy' t1 ++ " " ++ showTy' t2) ++ ")" 
-showTy' t@(TyVarTy v)     = "[" ++ show (isKind t) ++ " " ++ showPpr (varType v) ++ "](RVar " ++ showPpr v ++ ")" 
-showTy' (ForAllTy v t)  = "ForAllTy " ++ showPpr v ++ "." ++  showTy' t 
-showTy' (CastTy _ _)    = "CastTy"
-showTy' (CoercionTy _)  = "CoercionTy"
-showTy' (LitTy _)       = "LitTy"
-
-
-showTy :: ( PPrint r, Reftable r, SubsTy RTyVar RSort r, Reftable (RTProp RTyCon RTyVar r))
-          => RType RTyCon RTyVar r -> String 
-showTy t@(RApp c ts _ _)  = "[" ++ show (isKind $ toType t) ++ "](RApp   " ++ show c ++ " " ++ sep' ", " (showTy <$> ts) ++ ")"
-showTy (RAppTy t1 t2 _) = "(TAppTy " ++ (showTy t1 ++ " " ++ showTy t2) ++ ")" 
-showTy t@(RVar v _) = "[" ++ show (isKind $ toType t) ++ "](RVar " ++ show v ++ ")" 
-showTy (RFun _ _ _ _) = "RFun"
-showTy (RAllT v t) = "RAllT " ++ show v ++ "." ++ showTy t 
-showTy (RAllP _ _) = "RAllP"
-showTy (RAllS _ _) = "RAllS"
-showTy (RAllE _ _ _) = "RAllE"
-showTy (REx _ _ _) = "REx"
-showTy (RExprArg _) = "RExprArg"
-showTy (RRTy _ _ _ _) = "RRTy"
-showTy (RHole _) = "RHole"
-
-sep' :: String -> [String] -> String
-sep' _ [] = []
-sep' _ [x] = x 
-sep' s (x:xs) = x ++ s ++ sep' s xs 
-```
-
-- Reader
-  - Applicative crashing
-  - Functor crashing
-  - Functor.NoEx
-  - Monad (...)
-
-TODO
-====
-
-Prune Unsorted Refs
--------------------
-
-* mergeDataConTypes
-* makeMeasureSpec'
-* meetDataConSpec
-
-The below gives a nice SORT error
-
-```haskell
-import Data.Set
-
-data RBTree a = Leaf | Node
-
-{-@ measure isB :: RBTree a -> (Set a)
-    isB (Leaf) = 1
-    isB (Node) = (Set_empty 0)
-  @-}
-```
-
-rjhala@borscht ~/r/s/liquidhaskell (prune-unsorted-error)> stack exec -- liquid tests/todo/prune.hs
-
- /Users/rjhala/research/stack/liquidhaskell/tests/todo/prune.hs:7:13-15: Error: Bad Type Specification
- measure isB :: (RBTree a b) -> (Set a)
-     Type constructor Prune.RBTree expects a maximum 1 arguments but was given 2 arguments
-
- /Users/rjhala/research/stack/liquidhaskell/tests/todo/prune.hs:14:13: Error: Bad Measure Specification
- measure  isB
-     The sort (Set_Set  @(42)) is not numeric
-     because
-        Cannot unify (Set_Set  @(42)) with int in expression: 1
-     because
-        Cannot cast 1 of sort int to incompatible sort func(1, [(Set_Set  @(0))])
-
-now put another SORT CHECK for measures:
-
-  * Input type should be "isGeneric"
-
-    isGeneric T if
-
-    * T is a TyConApp `c [t1...tn]`
-
-    where t1 .. tn are DISTINCT type variables.
-
-If the above SORT CHECK fails for any measure print an ERROR message saying:
-
-   please rerun with --prune-unsorted
-
-```haskell
-
-(:) :: Int -> [Int] -> [Int]
-
-sum :: [Int] -> Int
-sum []     = 0
-sum (x:xs) = x + sum xs
-
-
-sum :: Tree Int a -> Int
-sum Leaf         = 0
-sum Node k _ l r = k + sum l + sum r
-```
-
-Check Covariance
-----------------
-
-See https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/todo/kmpMonad.hs#L55
-It is safe is 100 is changed to 0. WHY?
-
-LAZYVAR
--------
-
-Restore LAZYVARS in `Data/Text.hs`, `Data/Text/Unsafe.hs`
-
-
-Automatically refine *inductors*
---------------------------------
-
-Proposed by Valentine: in dependent languages (Coq)
-inductors (like our `loop` for natural numbers)
-automatically get types abstracted over properties.
-Traversal should create such functions.
-Maybe we can automatically refine them.
-
-benchmarks
------------
-
-* benchmarks: Data.Bytestring
-    ? readsPrec
-    ? big constants issue : _word64 34534523452134213524525 due to (deriving Typeable)
-    - see others below
-
-* hmatrix
-
-* error messages (see issues on github)
-
-Benchmarks
-==========
-
-                        time(O|N|C)    TOTAL(O|N)   solve (O|N)      refines       iterfreq
-    Map.hs          :    54/50/32/10    21/15/8.7      14/8/4.3    9100/4900/2700    16/28/7
-    ListSort.hs     :   */7.5/5.5/2    */2.5/1.8     */1.5/1.0      */1100/600       */9/7
-    GhcListSort.hs  :    23/22/17/5    7.3/7.8/5   4.5/5.0/2.7    3700/4400/1900   10/23/6
-    LambdaEval.hs   :    36/32/25/12    17/12/10     11.7/6.0/5    8500/3100/2400   12/5/5
-    Base.hs         :        26mi/2m
-
-
-Benchmarks
-==========
-
-[OK]    Data.KMeans
-[OK]    GHC.List   (../benchmarks/ghc-7.4.1/List.lhs)
-[OK]    bytestring
-[OK]    text
-
-[??-PP] Data.Map (supersedes set)
-        - ordering [OK]
-        - size
-        - key-set-properties
-        - key-dependence
-        - balance (NO)
-
--   vector-algorithms "vector bounds checking"
-      - e.g. "unsafeSlice"
-      - maybe only specify types for Vector?
-
--   vector
--   repa
--   repa-algorithms
-- 	xmonad (stackset)
--   snap/security
--   hmatrix
-      > http://hackage.haskell.org/packages/archive/hmatrix/0.12.0.1/doc/html/src/Data-Packed-Internal-Matrix.html#Matrix
-      > http://hackage.haskell.org/packages/archive/hmatrix/0.12.0.1/doc/html/src/Data-Packed-Internal-Vector.html#fromList
-
-Other Benchmarks
-================
-
-->   FingerTrees (containers / Data.Seq)
-->   Union-Find (PLDI09 port if necessary?)
-->   BDD        (PLDI09 port if necessary?)
-
-[NO] Data.Set (Map redux)
-        > ordering
-        > size
-        > set-properties
-        > balance (NO)
-
-[NO] Data.IntSet
-     > tricky bit-level operations/invariants
-
-Paper #2
-
--> Haskell + DB / Yesod / Snap
--> NDM/catch benchmarks (with refinements)
-
-Known Bugs
-==========
-
--> tests/todo/fft.hs
-
--> binsearch crashes because you have chains like:
-
-        x1 = 2
-        x2 = x1
-        x3 = x2
-        z  = x3 / 2
-
-  so I guess you need some constprop inside the constraint simplification.
-
-- tests/pos/data-mono0.hs
-  partial pattern match desugars into exception syntax with unhandled
-  casts. Throws an error in fixpoint. At least throw error in Constraint Gen?
-          (\ _ ->
-             (Control.Exception.Base.irrefutPatError
-                @ () "pos/data-mono0.hs:8:9-23|(Test.Cons x _)")
-             `cast` (UnsafeCo () GHC.Types.Int :: () ~ GHC.Types.Int))
-            GHC.Prim.realWorld#;
-
-
-Xmonad Case Study
-=================
-
-Theorems (from Wouter Swierstra's Coq Development)
-
-    - Invariant: NoDuplicates
-
-    - prop_empty_I      : new  : ? -> {v | invariant(v)}
-    - prop_view_I       : view : ? -> {v | invariant(v)}
-    - prop_greedyView_I : view : ? -> {v | invariant(v)}
-    - prop_focusUp_I
-    - prop_focusMaster_I
-    - prop_focusDown_I
-    - prop_focus_I
-    - prop_insertUp_I
-    - prop_delete_I
-    - prop_swap_master_I
-    - prop_swap_left_I  
-    - prop_swap_right_I
-    - prop_shift_I
-    - prop_shift_win_I
-
-[prop_FOO_I] check that various functions outputs satisfy "invariant"
-
-    FOO :: ??? -> {v: StackSet | invariant(v)}
-
-    > Theorem prop_swap_master_I (s : StackSet.stackSet i l a sd) :
-    > Theorem prop_view_I (l a sd : Set) (n : nat) (s : StackSet.stackSet nat l a sd) :
-    > Theorem prop_greedyView_I (l a sd : Set) (n : nat) (s : StackSet.stackSet nat l a sd) :
-    > Theorem prop_focusUp_I (l a sd : Set) (n : nat) (s : StackSet.stackSet nat l a sd) :
-    > Theorem prop_focusDown_I (l a sd : Set) (n : nat) (s : StackSet.stackSet nat l a sd) :
-    > Theorem prop_focusMaster_I (l a sd : Set) (n : nat) (s : StackSet.stackSet nat l a sd) :
-    > Theorem prop_empty_I (m : l) (wids : {wids : list i | wids <> nil})
-    > Theorem prop_empty (m : l) (wids : {wids : list i | wids <> nil})
-    > Theorem prop_differentiate (xs : list a) :
-
-[prop_FOO_local] check that various functions preserve a [hidden_spaces] MEASURE
-
-    FOO :: x: StackSet -> {v: StackSet | hidden_spaces(v) = hidden_spaces(x) }
-
-    > Theorem prop_focus_down_local (s : stackSet i l a sd) :
-    > Theorem prop_focus_up_local (s : stackSet i l a sd) :
-    > Theorem prop_focus_master_local (s : stackSet i l a sd) :
-    > Theorem prop_delete_local (s : stackSet i l a sd) (eq_dec : forall x y, {x = y} + {x <> y}) :
-    > Theorem prop_swap_master_local (s : stackSet i l a sd) :
-    > Theorem prop_swap_left_local (s : stackSet i l a sd) :
-    > Theorem prop_swap_right_local (s : stackSet i l a sd) :
-    > Theorem prop_shift_master_local (s : stackSet i l a sd) :
-    > Theorem prop_insert_local (x : stackSet i l a sd) (eq_dec : forall x y, {x = y} + {x <> y}) :
-
-
-BAD: these check that: forall x: foo (bar x) == x
-
-    > Theorem prop_focus_right (s : StackSet.stackSet i l a sd) :
-    > Theorem prop_focus_left (s : StackSet.stackSet i l a sd) :
-
-[prop_swap_*_focus] check that various functions preserve a [peek] MEASURE
-    > Theorem prop_swap_master_focus (x : StackSet.stackSet i l a sd) :
-    > Theorem prop_swap_left_focus (x : StackSet.stackSet i l a sd) :
-    > Theorem prop_swap_right_focus (x : StackSet.stackSet i l a sd) :
-
-
-BAD? forall x. swapMaster (swapMaster x) == x
-    > Theorem prop_swap_master_idempotent (x : StackSet.stackSet i l a sd) :
-
-BAD? forall x. view i (view i x) == (view i x)
-    > Theorem prop_focusMaster_idem (x : StackSet.stackSet i l a sd) :
-
-    NO. Prove: view :: i -> x -> {v: focus(v) = i}
-                    :: i -> x -> {v: focus(x) = i => x = v }
-
-    To prove foo_IDEMPOTENT, find a property P such that:
-
-                foo :: x:t -> {v:t | P(v)}
-                foo :: x:t -> {v:t | P(x) => v = x }
-
-SETS:
-    > Theorem prop_screens (s : stackSet i l a sd) :
-
-
-TRIV/HARD: (function definition)
-    > [TRIV]  Theorem prop_screens_work (x : stackSet i l a sd) :
-    > Theorem prop_mapWorkspaceId (x : stackSet i l a sd) :
-    > Theorem prop_mapLayoutId (s : stackSet i l a sd) :
-    > Theorem prop_mapLayoutInverse (s : stackSet i nat a sd) :
-    > Theorem prop_mapWorkspaceInverse (s : stackSet nat l a sd) :
-
-Theorem prop_lookup_current (x : stackSet i l a sd) :
-Theorem prop_lookup_visible (x : stackSet i l a sd) :
-
-
-Random Links
-============
-
-- Useful for DIGRAPH VIZ: http://arborjs.org/halfviz/#
-
-
-Benchmark Tags
-==============
-
-- LIQUIDFAIL : impossible to do verify the spec here
-- LIQUIDTODO : possible with some further hacking
-
-
-
-----------------------------------------------------------------------------
-
-http://www.cs.st-andrews.ac.uk/~eb/writings/fi-cbc.pdf
-
-McBride's Stack Machine youtube mcbride icfp 2012 monday keynote agda-curious
-
-    data Instr = Push Val | Add
-    type Val   = Int
-
-    measure needs                :: [Instr] -> Int
-    needs (Add    : is)          = min (2, 1 + needs(is))
-    needs (Push v : is)          = 0
-
-    run                          :: is:[Instr] -> {v:[Val] | len(v) >= needs(is)} -> [Val]
-    run (Add:is)      (x1:x2:vs) = run is (x1 + x2 : vs)
-    run (Push v : is) vs         = run is (v : vs)
-
-PROJECT: Termination for Combinator-based Parsers
--------------------------------------------------
-
-btw, did you guys see this:
-
-http://www.reddit.com/r/haskell/comments/1okcmh/odd_space_leak_when_using_parsec/
-
-the poster probably feels silly, but I have, on several occasions, hit
-this issue with parsec. Wonder whether our termination checker could be used... hmm...
-
-Sure! You just have to give
-
-type GenParser tok st = Parsec [tok] st
-
-a size, I guess (len [tok]). The hard part will be to prove it when the size is actually decreasing...
-
-Hmm... Surely we need to track somehow the "effect" of executing a single parsing action.
-
-For example,
-
-    chars :: Char -> Parser [Char]
-    chars c = do z  <- char c
-                 zs <- chars c
-                 return (z:zs)
-
-What is the machinery by which the "recursive call" is run on a "smaller" GenParser?
-Does it help if we remove the `do` block?
-
-    chars :: Char -> Parser [Char]
-    chars c = char c  >>= \z  ->   
-              chars c >>= \zs ->
-              return (z:zs)
-
-I guess the question becomes, how/where do we specify (let alone verify) that the function
-`char c` *consumes* one character, hence causing the `chars` to run on a *smaller* input?
-
-
-Phew, after banging my head against this all day, this is what I came up with.
-
-You need a measure
-
-   measure eats :: Parser a -> Nat
-
-which describes (a lower bound) on the number of tokens consumed by the action `Parser a`.
-
-Now, you give
-
-   return :: a -> {v: Parser a | (eats v) = 0}
-
-and most importantly,
-
-   (>>=)  :: forall <Q :: Parser b -> Prop>
-             x: Parser a
-          -> f:{v: a -> Parser b <Q> | (rec v) => (eats x) > 0}
-          -> exists z:Parser b <Q>. {v:Parser b | (eats v) = (eats z) + (eats x)}
-
-(Of course you have to give appropriate signatures for the parsec combinators
--- perhaps one can even PROVE the `eats` measure. However, note that
-
-   type Parser a = [Char] -> (a, [Char])
-
-roughly speaking, and here `eats` is actually the DIFFERENCE of the lengths of
-the input and output [Char] ... so I'm not sure how exactly we would reason about
-the IMPLEMENTATION of `eats` but certainly we should be able to USE it in clients
-of parsec.
-
-Note that you need a refinement ON the function type, the idea being that:
-
-1. the BODY of a recursive function is checked in the termination-strengthened
-environment that constrains the function to satisfy the predicate `rec`
-
-2. whenever you use >>= on a recursive function, the PRECEDING action must have
-consumed some tokens.
-
-3. the number of tokens consumed by the combined action equals the sum of the two
-actions (all the business about exists z and Q is to allow us to depend on the output
-value of `f` (c.f. tests/pos/cont1.hs)
-
-
-PROJECT: HTT style ST/IO reasoning with Abstract Refinements
-------------------------------------------------------------
-
-+ Create a test case: `tests/todo/Eff*.hs`
-
-+ Introduce a new sort of refinement `Ref` (with alias `RTProp`)
-   + Types.hs: Add to `Ref` -- in addition to `RMono` [---> `RPropP`] and `RPoly` [---> `RProp`]
-   + Types.hs: Add a `World t` for SL formulas...
-
-
-+ Allow `PVar` to have the sort `HProp`
-   + CHANGE `ptype :: PVKind t` where `data PVKind t = PVProp t | PVHProp`
-   + Can we reuse `RAllP` to encode `HProp`-quantification? (YES)
-   + Update `RTyCon` to store `HProp` vars
-
-- Update consgen
-   + Can we reuse type-application sites for `HProp`-instantiation? (Yes)
-   - Constraint.hs  :1642:   = errorstar "TODO:EFFECTS:freshPredRef"
-   - PredType.hs         : go _ (_, RHProp _ _)    = errorstar "TODO:EFFECTS:replacePreds"
-
-- Write cons-solve
-  - eliminate/solve `HProp` constraints prior to subtype splitting.
-
-- Index `IO` or `State` by `HProp`
-   - Parse.hs: Update `data` parser to allow `TyCon` to be indexed by abstract `HProp`
-   - Bare.hs        :482 : addSymSortRef _ (RHProp _ _)   = errorstar "TODO:EFFECTS:addSymSortRef"
-
-**TODO:EFFECTS:ASKNIKI**
-+ What is `isBind`,`pushConsBind` in Constraint.hs?
-
-
-3. Suitable signatures for monadic operators
-
-### RHProp
-
-a. Following `RProp` we should have
-
-	* RHProp := x1:t1,...,xn:tn -> World
-
-b. Where `World` is a _spatial conjunction_ of
-
-	* WPreds : (h v1 ... vn), h2, ...
-	* Wbinds : x1 := T1, x2 := T2, ...
-
-c. Such that each `World` has _at most one_ `WPred` (that is _not rigid_ i.e. can be solved for.)
-
-**Problem:** rejigger _inference_ to account for parameters in heap variables.
-
-
-
-### RPoly  (---> RProp)
-
-Per Niki:
-
-	RProp := x1:t1,...,xn:tn -> RType
-
-with the 'predicate' application implicitly buried as a `ur_pred` inside the RType
-
-For example, we represent
-
-	[a]<p>
-
-as
-
-	RApp [] a (RPoly  [(h:a)] {v:a<p>}) true
-
-which is the `RTycon` for lists `[]` applied to:
-
-+ Tyvar `a`
-
-+ RPoly with:
-	* _params_ `h:a`
-	* _body_   `{v:a<p> | true}` which is really, `RVar a {ur_reft = true, ur_pred = (Predicate 'p' with params 'h')}`
-
-+ Outer refinement `true`
-
-
-
-
-
-
-
-**Heap Propositions** `HProp`
-
-```haskell
-CP := l :-> T * CP  -- Concrete Heap
-    | emp
-
-HP := CP       
-    | CP * H        -- Heap Variable
-```
-
-That is, an `HProp` is of the form:
-
-    H * l1 |-> T1 * ... * ln |-> Tn
-
-or
-
-    l1 |-> T1 * ... * ln |-> Tn
-
-I am disallowing multiple variables because it causes problems...
-
-
-**Abstractly Refined ST/IO**
-
-```haskell
-data IO a <Pre :: HProp, Post :: a -> HProp>
-```
-
-**Refined Monadic Operators**
-
-```haskell
-return :: forall a, <H :: HProp>.
-            a -> IO <H, \_ -> H> a
-
-(>>=)  :: forall a, b, <P :: HProp, Q :: a -> HProp, R :: b -> HProp>.
-            IO<P, Q> a -> (x:a -> IO<Q x, R> b) -> IO<P, R> b
-```
-
-**Q1.** How does LH *reason* about `HProp`?
-
-Via subtyping as always, so:
-
-         forall i. Γ |- Ti <: Ti'
-    -----------------------------------
-    Γ |- *_i li :-> Ti <: *_i li -> Ti'
-
-For this, we need to put in explicit `HProp` instantiations, just like
-tyvar (α) and  predvar (π) instinstatntiations. This is doable with a
-pre-pass that generates and solves `HProp` constraints as follows:
-
-1. At each instantiation, make up _fresh_ variables `h`
-2. Treat _bound_ heap-variables as **constants**
-3. Instantiation yields a set of constraints over `h`
-4. Solve constraints via algorithm below.
-
-**Q2.** Can you _name_ values inside `HProp`?
-
-Nope. There's no reason for this, but its tedious to have to make up
-new heap binders and what not. Clutters stuff. This is _slightly_
-problematic. For example, how do you write a function of the form:
-
-```haskell
-incr :: p:IORef Int -> IO Int
-```
-
-which _increments_ the value stored at the reference? Solution is slightly
-clunky: rather than the _implicit_ heap binder, add an explicit pure parameter:
-
-```haskell
-incr :: p:IORef Int -> i:Int -> IO {v:Int| v = i} <p |-> {v = i}, p |-> {v = i + 1}>
-```
-
-**Q3.** How to relate `Post`-condition to the `Pre`-conditions?
-
-Note that the `Post`-condition is a unary predicate -- i.e. _does not_
-refer to the input world. How then do we relate the input and output heaps?
-As above: _name_ the values of the input heap that you care about, and then
-relate `Post` to `Pre` via the name.
-
-**Q4.** How to _read_ values off the heap?
-
-Given that we don't have heap binders, this might seem like a problem? Not
-really. Just write signatures like:
-
-    read :: IORef a -> IO a
-
-aha, but there's a problem: the `a` is too _coarse_ or flow-insensitive: it
-holds a supertype of all the values written at the location, as opposed to the
-_current_ value. No matter, abstract refinements to the rescue:
-
-    read :: forall <I :: a -> Prop>.
-              p:IORef a -> IO <p |-> a<I>, p |-> a<I>> a<I>
-
-**Q5.** How do you do _subtyping_ on heaps/frame rule?
-
-Wait, how do I write _compositional_ signatures that only talk about a
-particular part of the state but allow me to say _other_ parts are unmodified
-etc? Don't you need heap subtyping? No: we can make the frame rule explicit by
-abstracting over heaps:
-
-    read :: forall <I :: a -> Prop, H :: HProp>.
-              p:IORef a -> IO <p |-> a<I> * H, p |-> a<I> * H> a<I>
-
-**Q6.** How to solve heap constraints?
-
-Heap constraints are of the form:
-
-+ (C0)  `ch1      = ch2`        -- constants
-+ (C1)  `H1 * ch1 = ch2`        -- 1-variable
-+ (C2)  `H1 * ch1 = H2 * ch2`   -- 2-variable
-
-Here, each `ch` is of the form:
-
-    l1 |-> τ1 * ... * ln -> τn * A1 * ... * An
-
-where each `Ai` is a _rigid_ or quantified heap var that is atomic,
-i.e. cannot be further solved for. For solving, we throw away _all_
-refinements, and just use the shape τ.
-
-```
-solve :: Sol -> [Constraint] -> Maybe Sol
-solve σ []     
-  = Just σ
-solve σ (c:cs)
-  = case c of
-      C0 ch1 ch2 ->
-        if ch1 `equals` ch2  then
-          -- c is trivially SAT,
-          solve σ cs
-        else
-          -- c and hence all constraints are unsat
-          Nothing
-
-      C1 (H1 * ch1) ch2 ->
-        if ch1 `subset` ch2 then
-          let σ' = [H1 := c2 `minus` c1]
-          solve (σ . σ') (σ' <$> cs)
-        else
-          -- c and hence all constraints are unsat
-          Nothing
-
-      C2 (H1 * ch1) (H2 * ch2) ->
-        let H = fresh heap variable
-        let σ'  = [H1 := H * ch2, H2 := H * ch1]
-        solve (σ . σ') (σ' <$> cs)
-```
-
-
-
-PROJECT: (OLD) HTT style ST/IO reasoning with Abstract Refinements
-------------------------------------------------------------------
-
-
-Can we use abstract refinements to do "stateful reasoning",
-e.g. about stuff in `IO` ? For example, to read files, this
-is the API:
-
-    open  :: FilePath -> IO Handle
-    read  :: Handle   -> IO String
-    write :: Handle   -> String -> IO ()
-    close :: Handle   -> IO ()
-
-The catch is that:
-
-+ `read` and `write` require the `Handle` to be in an "open" state,
-+ which is the state of the `Handle` returned by `open`,
-+ while `close` presumably puts the `Handle` in a "closed" state.
-
-So, suppose we parameterize IO with two predicates a `Pre` and `Post` condition
-
-    data IO a <Pre :: World -> Prop> <Post :: a -> World -> World -> Prop>
-
-where `World` is some abstract type denoting the global machine state.
-Now, it should be possible to give types like:
-
-   (>>=)  :: IO a <P, Q> -> (x:a -> IO b<Q x, R>) -> IO b<P, R>
-   return :: a -> IO a <P, P>
-
-which basically state whats going on with connecting the conditions, and then,
-give types to the File API:
-
-   open  :: FilePath -> IO Handle <\_ -> True> <\h _ w -> (IsOpen h w)>
-   read  :: h:Handle -> IO String <\w -> (IsOpen h w)> <\_ _ w -> (IsOpen h w)>
-   close :: h:Handle -> IO ()     <\w -> (IsOpen h w)> <\_ _ w -> not (IsOpen h w)>
-
-Wonder if something like this would work?
-
-Niki:
-My question is how do you make Q from a post-condition (Q :: a -> Word -> Word -> Prop)
-to a pre-condition.
-I guess you need to apply a value x :: a and a w :: Word to write (a -> IO b<Q x w, R>).
-
-I think the problem is that the "correct" values x and w are not "in scope"
-
-
-So assume
-
-    data IO a <P :: Word -> Prop, Q: a -> Word -> Word -> Prop>
-      = IO (x:Word<P> -> (y:a, Word<Q y x>))
-
-and you want to type
-
-    bind :: IO a <P,Q> -> (a -> IO b <Q x w, R>) -> IO b <P,R>
-    bind (IO m) k = IO $ \s -> case m s of
-                                 (a, s') -> unIO (k a) s'
-
-
-You have
-
-    IO m :: IO a <P. Q> => m :: xx:Word <P> -> (y:a, Word <Q y xx>)
-
-you can assume
-
-    s:: Word <P>
-
-so
-
-    m s         :: (y:a, Word <Q y s>)
-    k a         :: IO b <Q x w, R>
-    uniIO (k a) :: z:Word <Q x w> -> (xx:b, Word <R xx z>)
-
-and we want
-
-    (uniIO k a) s :: (xx:b , Word <R xx s>)
-
-so basically we need
-
-    P  => Q x w
-
-to be able to make the final application
-
-**Ranjit**
-You are right. We need to convert the "post" of the first action into the "pre"
-of the second, which is a problem since the former takes three, parameters while
-the latter takes only one.
-
-BUT, how about this (basically, all you need is an EXISTS).
-
-   -- | the type for `return` says that the output world satisfies
-   --   whatever predicate the input world satisfied.
-
-   return :: a -> IO a <P, {\_ _ w' -> (P w')}>
-
-   -- | the type for `bind` says that its action requires as input a world that satisfies
-   --   Q (for SOME input world w0) and produces as output an R world.
-   (>>=)  :: IO a <P, Q>
-          -> (x:a -> \exists w0:World. IO b<{\w -> (Q x w0 w)}, R>)
-          -> IO b<P, {\xb w w' -> \exists xa:a w0:World<Q xa w>.(R xb w0 w')}>
-
-
-
-Basically, I am using exists in the same way as in the "compose"
-
-https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/funcomposition.hs
-
-to name the intermediate worlds and results (after all, this seems
-like a super fancy version of `.` ) -- may have not put them in the
-right place...
-
-Btw, the existential is also how the HOARE rule for strongest postcondition works,
-if you recall:
-
-   {P} x := e {exists x'. P[x'/x] /\ x = e[x'/x]}
-
-
-
-
-One of the hardest steps seem to type the monad function (>>=):
-
-
-So, suppose we parameterize IO with two predicates a `Pre` and `Post` condition
-
-    data IO a <Pre :: World -> Prop> <Post :: a -> World -> World -> Prop>
-
-where `World` is some abstract type denoting the global machine state.
-Now, it should be possible to give types like:
-
-   (>>=)  :: IO a <P, Q> -> (a -> IO b<Q, R>) -> IO b<P, R>
-   return :: a -> IO a <P, P>
-
-
-
-My question is how do you make Q from a post-condition (Q :: a -> Word -> Word -> Prop)
-to a pre-condition.
-I guess you need to apply a value x :: a and a w :: Word to write (a -> IO b<Q x w, R>).
-
-I think the problem is that the "correct" values x and w are not "in scope"
-
-
-So assume
-data IO a <P :: Word -> Prop, Q: a -> Word -> Word -> Prop> = IO (x:Word<P> -> (y:a, Word<Q y x>))
-
-and you want to type
-
-bind :: IO a <P,Q> -> (a -> IO b <Q x w, R>) -> IO b <P,R>
-bind (IO m) k = IO $ \s -> case m s of (a, s') -> (unIO (k a)) s'
-
-You have
-
-IO m :: IO a <P. Q>  
-             => m :: xx:Word <P> -> (y:a, Word <Q y xx>)
-
-you can assume
-s:: Word <P>
-
-so
-m s :: (y:a, Word <Q y s>)
-
-k a :: IO b <Q x w, R>
-
-uniIO (k a) :: z:Word <Q x w> -> (xx:b, Word <R xx z>)
-
-and we want
-(uniIO k a) s :: (xx:b , Word <R xx s>)
-
-so basically we need
-P  => Q x w
-to be able to make the final application
-
-
-bind :: ST a <P,Q> -> (a -> ST b <Q x w, R>) -> ST b <P,R>
-bind (ST f1) k = ST $ \s0 -> let (x, s1) = f1 s0  
-                                 ST f2   = k x
-                                 (y, s2) = f2 s1
-                             in
-                                 (y, s2)
-
-
-PROJECT: Using `Dynamic` + Refinements for Mixed Records
---------------------------------------------------------
-
-Haskell has a class (and related functions)
-
-    toDyn   :: (Typeable a) => a -> Dynamic
-    fromDyn :: (Typeable a) => Dynamic -> Maybe a
-
-Q: How to encode *heterogenous* maps like:
-
-    d1 = { "name"  : "Ranjit"
-         , "age"   : 36
-         , "alive" : True
-         }
-
-   and also:
-
-    d2 = { "name"    : "Jupiter"
-         , "position": 5
-         }
-
-   so that you can write generic *duck-typed* functions like
-
-    showName :: Dict -> String
-
-   and write
-
-    showName d1
-    showName d2
-
-   or even
-
-    map showName [d1, d2]
-
-Step 1: Encode dictionary as vanilla Haskell type
-
-    type Dict <Q :: String -> Dynamic -> Prop> = Map String Dynamic <Q>
-    empty :: Dict
-    put   :: (Dynamic a) => String -> a -> Dict -> Dict
-    get   :: (Dynamic a) => String -> Dict -> Dict
-
-Step 2: **Create** dictionaries
-
-    d1 = put "name"   "RJ"
-       $ put "age"    36
-       $ put "alive"  True
-       $ empty
-
-    d1 = put "name"   "Jupiter"
-       $ put "pos"    5
-       $ empty
-
-Step 3: **Lookup** dictionaries
-
-    showName :: Dict -> String
-    showName d = get "name" d
-
-    -- TODO: how to support
-    showName :: Dict -> Dict
-    incrAge d = put "age" (n + 1) d
-      where
-            n = get "age" d
-
-    -- TODO: how to support
-    concat :: Dict -> Dict -> Dict
-
-Step 4: Can directly, without any casting nonsense, call
-
-    showName d1
-    showName d2
-
-Need to reflect *Haskell Type* (or at least, `TypeRep` values)
-inside logic, so you can write measures like
-
-    measure TypeOf :: a -> Type
-
-and use it to define refinements like
-
-    (TypeOf v = Int)
-
-(TODO: too bad we don't have relational measures... or multi-param measures ... yet!)
-
-which we can macro up thus.
-
-    predicate HasType V T = (TypeOf V = T)
-
-    predicate Fld K V N T = (K = N => (HasType V T))
-
-Step 5: Refined Signatures for `Dict` API
-
-    put :: (Dynamic a) => key:String
-                       -> {value:a | (Q key value)}
-                       -> d:Dict <Q /\ {\k _ -> k /= key}>
-                       -> Dict <Q /\ {\k v -> (Fld k v key a)}>
-
-    get :: (Dynamic a) => key:String
-                       -> d:Dict <{\k v -> (Fld k v key a)}>
-                       -> a
-
-Step 6: Now, for example, we should be able to type our dictionaries as
-
-    {-@ d1 :: Dict<Q1> @-}
-
-where
-
-    Q1 == \k v -> Fld k v "name"  String /\
-                  Fld k v "age"   Int    /\
-                  Fld k v "alive" Bool   
-
-and
-
-    {-@ d2 :: Dict<Q2> @-}
-
-where
-
-    Q2 == \k v -> Fld k v "name"  String /\
-                  Fld k v "pos"   Int    /\
-
-**TODO:**
-
-+ add support for `Type` inside logic
-  + needed for `TypeOf` measure, equality checks
-  + requires doing type-substitutions inside refinements
-
-+ add support for
-  + update [isn't that just `put`?]
-  + concat
-
-+ add support traversals (cf. *Ur*)
-  - Fold   (over all fields, eg. to serialize into a String)
-  - Map?   (transform all fields to serialize) toDB?
-  - Filter (takes a predicate that should only read valid columns of the record)
-
-
-PROJECT: Equational Reasoning
------------------------------
-
-e.g. Type class laws.
-
-Many type-classes come with a set of laws that instances are expected
-to abide by, e.g.
-
-```
-fmap id  ==  id
-
-fmap (f . g)  ==  fmap f . fmap g
-```
-
-```
-mappend mempty x = x
-
-mappend x mempty = x
-
-mappend x (mappend y z) = mappend (mappend x y) z
-```
-
-**Strategy**
-
-**1. Representing Proofs**
-
-```
-data Proof  = Proof           -- void, pure refinement
-
-type Pf P   = {v:Proof | P}
-
-type Eq X Y = Pf (X == Y)
-```
-
-**2. Combining Proofs**
-
-```
-bound Imp P Q R = P => Q => R
-
-eq, imp :: (Imp P Q R) => Pf P -> Pf Q -> Pf R
-
-refl    :: x:a -> Eq a x x
-```
-
-**3. Axiomatizing arithmetic**
-
-```
-add :: x:Int -> y:Int -> {z:Int | z = x + y} -> Eq (x + y) z
-add x y z = auto
-```
-
-
-**Example 1: Arithmetic**
-
-Lets drill in: how to represent the following "equational" proof in LH?
-
-```
-     (1 + 2) + (3 + 4)       -- e0
-
-     { 1 + 2 == 3}
-
-  == 3 + (3 + 4)             -- e1
-
-     { 3 + 4 == 7}
-
-  == 3 + 7                   -- e2
-
-     { 3 + 7 == 10}
-
-  == 10                      -- e3
-```
-
-Now the above proof looks like this:
-
-```
-e0 :: Int
-e0 = (1 + 2) + (3 + 4)
-
-prop :: Eq e0 10
-prop = (((refl e0  `imp` (add 1 2 3))   -- :: Eq e0 (3 + (3 + 4))
-
-                   `imp` (add 3 4 7))   -- :: Eq e0 (3 + 7)
-
-                   `imp` (add 3 7 10))  -- :: Eq e0 10  
-```
-
-
-**Example 2: Lists**
-
-A more interesting example: Lets prove `prop_app_nil`:
-
-    prop_app_nil: forall xs. append xs [] = xs
-
-The definition of
-
-```
-append []     ys = ys
-append (x:xs) ys = x : append xs ys
-```
-
-yields the *axioms*
-
-```
-append_nil  :: ys:_ -> Eq (append [] ys) ys
-append_cons :: x:_ -> xs:_ -> ys:_ -> Eq (append (x:xs) ys) (x : append xs ys)
-```
-
-Code on left, "equations" on right.
-
-```
-prop_app_nil    :: xs:[a] -> Eq (append xs []) xs
-
-prop_app_nil []     = refl (append [] [])             
-                                                   -- append [] []
-                       `by` (append_nil [])        -- { append_nil [] }    
-                                                   -- == []  
-
-prop_app_nil (x:xs) = refl (append (x:xs) [])       
-                                                   -- append (x:xs) []
-                       `by` (append_cons x xs [])  -- { append_cons x xs [] }
-                                                   -- == x : append xs []
-                       `by` (prop_app_nil xs)      -- { IH: prop_app xs }
-                                                   -- == x : xs
-```
-
-**Example 4: Append Associates**
-
-
-```
-prop_app_assoc :: xs:_ -> ys:_ -> zs:_ ->
-                     Eq ((xs ++ ys) ++ zs) (xs ++ (ys ++ zs))
-
-prop_app_assoc [] ys zs
-  ([] ++ ys) ++ zs
-  { append_nil _ }    
-  == ys ++ zs
-  { append_nil _ }
-  == [] ++ (ys ++ zs)
-
-prop_app_assoc (x:xs) ys zs
-  ((x:xs) ++ ys) ++ zs
-  { append_cons _ _ _ }    
-  == (x : (xs ++ ys)) ++ zs
-  { append_cons _ _ _ }
-  == x : ((xs ++ ys) ++ zs)
-  { prop_app_assoc _ _ _ }
-  == x : (xs ++ (ys ++ zs))
-  { append_cons _ _ _ }
-  == (x : xs) ++ (ys ++ zs)
-```
-
-
-**Example 4: Map Fusion**
-
-Lets go fancier:
-
-
-    forall xs. map (f . g) xs = (map f . map g) xs
-
-Here's the classical (?) equational proof:
-
-```
-map (f . g) []   
-   { map_nil (f . g) }
-   == []
-   { map_nil f }
-   == map f []
-   { map_nil g }
-   == map f (map g [])
-   { dot f g }
-   == (map f . map g) []
-
-map (f . g) (x:xs)  
-   { map_cons (f . g) x xs }
-   == (f . g) x : map (f . g) xs
-   { map_dot f g xs }
-   == (f . g) x : (map f . map g) xs
-   { dot (map f) (map g) }
-   == (f . g) x : map f (map g xs)
-   { dot f g }
-   == f (g x) : map f (map g xs)
-   {map_cons f (g x) (map g xs) }
-   == map f (g x : map g xs)
-   {map_cons g x xs}
-   == map f (map g (x : xs))
-   { dot (map f) (map g) }
-   ==  (map f . map g) (x : xs)
-```
-
-Formalize thus (with functions/axioms)
-
-```
-map f []     = []               -- map_nil
-map f (x:xs) = f x  : map f xs  -- map_cons
-
-(f . g) x    =  f (g x)         -- dot
-```
-
-Now, we formalize map-fusion as:
-
-```
-map_fusion :: f:_ -> g:_ -> xs:_ ->
-              Eq (map (f . g) xs) (map f . map g) xs
-
-map_fusion f g []     = map_dot_nil f g
-map_fusion f g (x:xs) = map_dot_cons f g x xs
-```
-
-The hard work happens in the two "lemmas"
-
-```
-map_dot_nil :: f:_ -> g:_ ->
-               Eq (map (f . g) []) ((map f . map g) [])
-map_dot_nil f g
-  = refl (map (f . g) [])   
-                              -- map (f . g) []
-     `by` (map_nil (f . g))
-                              -- == []
-     `by` (map_nil f)
-                              -- == map f []
-     `by` (map_nil g)
-                              -- == map f (map g [])
-     `by` (dot f g)
-                              -- == (map f . map g) []
-```
-
-and
-
-```
-map_dot_cons :: f:_ -> g:_ -> x:_ -> xs:_ ->
-               Eq (map (f . g) (x:xs)) ((map f . map g) (x:xs))
-map_dot_cons f g x xs
-  = refl (map (f . g) (x:xs))
-                                          -- map (f . g) (x : xs)
-      `by` (map_cons (f . g) x xs)
-                                          -- == (f . g) x : map (f . g) xs
-      `by` (map_dot f g xs)
-                                          -- == (f . g) x : (map f . map g) xs
-      `by` (dot (map f) (map g))
-                                          -- == (f . g) x : map f (map g xs)
-      `by` (dot f g)
-                                          -- == f (g x) : map f (map g xs)
-      `by` (map_cons f (g x) (map g xs))
-                                          -- == map f (g x : map g xs)
-      `by` (map_cons g x xs)
-                                          -- == map f (map g (x : xs))
-      `by` (dot (map f) (map g))
-                                          -- ==  (map f . map g) (x : xs)
-```
-
-
-
-GHC 7.10
---------
-
-- **DONE** singleton type classes represented by newtype
-  - tried to work around by translating
-
-      foo `cast` (co :: a -> b ~ Foo)
-
-    to
-
-      D:Foo foo
-
-    but it still breaks when we don't have an LH class decl
-  - without LH class decl we never see D:Foo, so it doesn't go in CGEnv
-  - SOLUTION: put ALL visible dict constructors in CGEnv
-
-- `cast`s are used more often and we seem to lose information..
-  - seems particularly problematic with ST
-
-- srcloc annotations
-  - -g adds SourceNotes, but the html output is borked
-  - in particular, infix operators aren't annotated correctly (at all?)
-  - are we missing some SrcLocs??
-    - clearly not, if you look at the output of
-
-          ghc -g -ddump-ds -dppr-ticks <file.hs>
-
-      somewhere along our pipeline the ticks are either being dropped,
-      or the SrcSpans don't quite match the way they used to...
-
-- termination metrics are required in a few places where they were not previously
-  - my guess is that ghc's behaviour for grouping functions in a `Rec` binder have changed
diff --git a/cabal.project b/cabal.project
deleted file mode 100644
--- a/cabal.project
+++ /dev/null
@@ -1,12 +0,0 @@
--- For more information see
---  http://cabal.readthedocs.io/en/latest/nix-local-build-overview.html
-
-packages: .
-          ./liquid-fixpoint
-          ./liquiddesugar
-
-package liquid-fixpoint
-  flags: devel
-
-package liquidhaskell
-  flags: devel
diff --git a/circle.yml b/circle.yml
deleted file mode 100644
--- a/circle.yml
+++ /dev/null
@@ -1,55 +0,0 @@
-machine:
-  #ghc:
-  #  version: 7.10.2
-  pre:
-    - sudo add-apt-repository -y ppa:hvr/z3
-    # - sudo add-apt-repository -y ppa:hvr/ghc
-    - sudo apt-get -y update
-    - sudo apt-get -y install z3 # ghc-7.10.3
-
-checkout:
-  post:
-    - git submodule sync
-    - sed -i '/fixpoint.git/a fetch = +refs/pull/*/head:refs/remotes/origin/pr/*' .git/modules/liquid-fixpoint/config
-    - git submodule update --init
-    - pwd
-
-dependencies:
-  cache_directories:
-    - "~/.stack"
-    - ".stack-work"
-  pre:
-    # - curl -sSL https://get.haskellstack.org/ | sh
-    - curl -SL https://www.stackage.org/stack/linux-x86_64-static | tar zx -C /tmp
-    # - curl -L https://github.com/commercialhaskell/stack/releases/download/v1.0.4/stack-1.0.4-linux-x86_64.tar.gz | tar zx -C /tmp
-    - sudo mv /tmp/stack-*-linux-x86_64-static/stack /usr/bin
-  override:
-    - stack setup
-    - rm -fr $(stack path --dist-dir) $(stack path --local-install-root)
-    - stack build liquidhaskell --fast --only-dependencies --test --no-run-tests
-    
-compile:
-  override:
-    # - stack build liquidhaskell --fast --pedantic --flag liquidhaskell:include --flag liquidhaskell:devel
-    - stack build liquidhaskell --fast --flag liquidhaskell:include --flag liquidhaskell:devel
-    - stack build liquidhaskell --fast --flag liquidhaskell:include --flag liquidhaskell:devel --test --no-run-tests
-
-test:
-  override:
-    - mkdir -p $CIRCLE_TEST_REPORTS/junit
-    - stack test liquidhaskell:test --flag liquidhaskell:include --flag liquidhaskell:devel --test-arguments="-j1 --xml=$CIRCLE_TEST_REPORTS/junit/main-test-results.xml --liquid-opts='--cores=1'":
-        timeout: 1800
-    - stack test liquidhaskell:liquidhaskell-parser --test-arguments="-j2 --xml=$CIRCLE_TEST_REPORTS/junit/parser-test-results.xml":
-        timeout: 1800
-    # - git ls-files | grep '\.l\?hs$' | xargs stack exec -- hlint -X QuasiQuotes "$@"
-    # - stack exec -- cabal update
-    # - stack exec --no-ghc-package-path -- cabal install --only-dependencies --dry-run --reorder-goals
-    # - stack exec -- packdeps *.cabal || true
-    # - stack exec -- cabal check
-    - stack sdist
-  post:
-    - stack haddock liquidhaskell --no-haddock-deps --haddock-arguments="--no-print-missing-docs --odir=$CIRCLE_ARTIFACTS"
-    # - cp -r dist/doc $CIRCLE_ARTIFACTS
-    - mkdir -p $CIRCLE_TEST_REPORTS/tasty
-    - cp -r tests/logs/cur $CIRCLE_TEST_REPORTS/tasty/log
-    # - hpc-coveralls --exclude-dir=tests --repo-token=$COVERALLS_REPO_TOKEN
diff --git a/cleanup b/cleanup
deleted file mode 100644
--- a/cleanup
+++ /dev/null
@@ -1,1 +0,0 @@
-find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf
diff --git a/default.nix b/default.nix
deleted file mode 100644
--- a/default.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ fetchgitLocal }:
-{ mkDerivation, aeson, array, base, bifunctors, bytestring, Cabal
-, cereal, cmdargs, containers, cpphs, daemons, data-default
-, deepseq, Diff, directory, filepath, fingertree, ghc, ghc-paths
-, hashable, hpc, hscolour, liquid-fixpoint, located-base, mtl
-, network, optparse-applicative, parsec, pretty, process
-, stdenv, stm, syb, tagged, tasty, tasty-hunit, tasty-rerun
-, template-haskell, text, time, transformers, unix
-, unordered-containers, vector, z3
-, tasty-ant-xml
-}:
-mkDerivation {
-  pname = "liquidhaskell";
-  version = "9.9.9.9";
-  src = fetchgitLocal ./.;
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    aeson array base bifunctors bytestring Cabal cereal cmdargs
-    containers cpphs data-default deepseq Diff directory filepath
-    fingertree ghc ghc-paths hashable hpc hscolour liquid-fixpoint
-    located-base mtl parsec pretty process syb template-haskell
-    text time unordered-containers vector hscolour
-  ];
-  executableHaskellDepends = [
-    base bytestring cereal cmdargs daemons data-default deepseq
-    directory ghc liquid-fixpoint located-base network pretty process
-    unix unordered-containers
-  ];
-  testHaskellDepends = [
-    base containers directory filepath mtl optparse-applicative process
-    stm tagged tasty tasty-hunit tasty-rerun transformers tasty-ant-xml
-  ];
-  testSystemDepends = [ z3 ];
-  homepage = "http://goto.ucsd.edu/liquidhaskell";
-  description = "Liquid Types for Haskell";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/devel/Paths_liquidhaskell.hs b/devel/Paths_liquidhaskell.hs
deleted file mode 100644
--- a/devel/Paths_liquidhaskell.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-module Paths_liquidhaskell where
-
-import Language.Haskell.TH
-import System.Directory
-import System.FilePath
-
-getDataFileName :: FilePath -> IO FilePath
-getDataFileName f = do
-  let loc = $(do { loc <- location; f <- runIO (canonicalizePath (loc_filename loc)); litE (stringL f); })
-  let root = takeDirectory (takeDirectory loc)
-  return (root </> f)
diff --git a/docs/blog/2013-01-01-refinement-types-101.lhs b/docs/blog/2013-01-01-refinement-types-101.lhs
deleted file mode 100644
--- a/docs/blog/2013-01-01-refinement-types-101.lhs
+++ /dev/null
@@ -1,312 +0,0 @@
----
-layout: post
-title: "Refinement Types 101"
-date: 2013-01-01 16:12
-author: Ranjit Jhala
-published: true
-comments: true
-external-url:
-categories: basic
-demo: refinements101.hs
----
-
-One of the great things about Haskell is its brainy type system that
-allows one to enforce a variety of invariants at compile time, thereby
-nipping a large swathe of run-time errors in the bud. Refinement types
-allow us to use modern logic solvers (*aka* SAT and SMT engines) to
-dramatically extend the scope of invariants that can be statically
-verified.
-
-What is a Refinement Type?
---------------------------
-
-In a nutshell, 
-
-<blockquote><p>
-Refinement Types = Types + Logical Predicates
-</p></blockquote>
-
-That is, refinement types allow us to decorate types with 
-*logical predicates* (think *boolean-valued* Haskell expressions) 
-which constrain the set of values described by the type, and hence 
-allow us to specify sophisticated invariants of the underlying values. 
-
-Say what? 
-
-<!-- more -->
-
-(Btw, *click the title* to demo LiquidHaskell on the code in this article)
-
-\begin{code}
-module Intro where
-
-import Language.Haskell.Liquid.Prelude  (liquidAssert)
-\end{code}
-
-Let us jump right in with a simple example, the number `0 :: Int`. 
-As far as Haskell is concerned, the number is simply an `Int` (lets not
-worry about things like `Num` for the moment). So are `2`, `7`, and 
-`904`. With refinements we can dress up these values so that they 
-stand apart. For example, consider the binder
-
-\begin{code}
-zero' :: Int
-zero' = 0
-\end{code}
-
-We can ascribe to the variable `zero'` the refinement type
-
-\begin{code}
-{-@ zero' :: {v: Int | 0 <= v} @-}
-\end{code}
-
-which is simply the basic type `Int` dressed up with a predicate.
-The binder `v` is called the *value variable*, and so the above denotes 
-the set of `Int` values which are greater than `0`. Of course, we can
-attach other predicates to the above value, for example
-
-**Note:** We will use `@`-marked comments to write refinement type 
-annotations the Haskell source file, making these types, quite literally,
-machine-checked comments!
-
-
-\begin{code}
-{-@ zero'' :: {v: Int | (0 <= v && v < 100) } @-}
-zero'' :: Int
-zero'' = 0
-\end{code}
-
-which states that the number is in the range `0` to `100`, or
-
-\begin{code}
-{-@ zero''' :: {v: Int | ((v mod 2) = 0) } @-}
-zero''' :: Int
-zero''' = 0
-\end{code}
-
-where `mod` is the *modulus* operator in the refinement logic. Thus, the type
-above states that zero is an *even* number.
-
-We can also use a singleton type that precisely describes the constant
-
-\begin{code}
-{-@ zero'''' :: {v: Int | v = 0 } @-}
-zero'''' :: Int
-zero'''' = 0
-\end{code}
-
-(Aside: we use a different names `zero'`, `zero''` etc. for a silly technical 
-reason -- LiquidHaskell requires that we ascribe a single refinement type to 
-a top-level name.)
-
-Finally, we could write a single type that captures all the properties above:
-
-\begin{code}
-{-@ zero :: {v: Int | ((0 <= v) && ((v mod 2) = 0) && (v < 100)) } @-}
-zero     :: Int
-zero     =  0
-\end{code}
-
-The key points are:
-
-1. A refinement type is just a type *decorated* with logical predicates.
-2. A value can have *different* refinement types that describe different properties.
-3. If we *erase* the green bits (i.e. the logical predicates) we get back *exactly* 
-   the usual Haskell types that we know and love.
-4. A vanilla Haskell type, say `Int` has the trivial refinement `true` i.e. is 
-   really `{v: Int | true}`.
-
-We have built a refinement type-based verifier called LiquidHaskell. 
-Lets see how we can use refinement types to specify and verify interesting 
-program invariants in LiquidHaskell.
-
-Writing Safety Specifications
------------------------------
-
-We can use refinement types to write various kinds of more interesting
-safety specifications.
-
-First, we can write a wrapper around the usual `error` function 
-
-\begin{code}
-{-@ error' :: {v: String | false } -> a  @-}
-error'     :: String -> a
-error'     = error
-\end{code}
-
-The interesting thing about the type signature for `error'` is that the
-input type has the refinement `false`. That is, the function must only be
-called with `String`s that satisfy the predicate `false`. Of course, there
-are *no* such values. Thus, a program containing the above function
-typechecks *exactly* when LiquidHaskell can prove that the function
-`error'` is *never called*.
-
-Next, we can use refinements to encode arbitrary programmer-specified 
-**assertions** by defining a function
-
-\begin{code}
-{-@ lAssert     :: {v:Bool | (Prop v)} -> a -> a  @-}
-lAssert         :: Bool -> a -> a 
-lAssert True  x = x
-lAssert False _ = error' "lAssert failure" 
-\end{code}
-
-In the refinement, `(Prop v)` denotes the Haskell `Bool` value `v` 
-interpreted as a logical predicate. In other words, the input type for 
-this function specifies that the function must *only* be called with
-the value `True`.
-
-
-Refining Function Types : Preconditions
----------------------------------------
-
-Lets use the above to write a *divide* function that *only accepts* non-zero
-denominators. 
-
-\begin{code}
-divide     :: Int -> Int -> Int
-divide n 0 = error' "divide by zero"
-divide n d = n `div` d
-\end{code}
-
-We can specify that the non-zero denominator *precondition* with a suitable 
-refinement on the *input* component of the function's type 
-
-\begin{code}
-{-@ divide :: Int -> {v: Int | v != 0 } -> Int @-}
-\end{code}
-
-How *does* LiquidHaskell verify the above function? 
-
-The key step is that LiquidHaskell deduces that the expression 
-`"divide by zero"` is not merely of type `String`, but in fact 
-has the the refined type `{v:String | false}` *in the context* 
-in which the call to `error'` occurs.
-
-LiquidHaskell arrives at this conclusion by using the fact that 
-in the first equation for `divide` the *denominator* parameter 
-is in fact `0 :: {v: Int | v = 0}` which *contradicts* the 
-precondition (i.e. input) type.
-
-In other words, LiquidHaskell deduces by contradiction, that 
-the first equation is **dead code** and hence `error'` will 
-not be called at run-time.
-
-If you are paranoid, you can put in an explicit assertion
-
-\begin{code}
-{-@ divide' :: Int  -> {v:Int | v /= 0} -> Int @-}
-divide'     :: Int -> Int -> Int
-divide' n 0 = error' "divide by zero"
-divide' n d = lAssert (d /= 0) $ n `div` d
-\end{code}
-
-and LiquidHaskell will verify the assertion (by verifying the call to
-`lAssert`) for you.
-
-Refining Function Types : Postconditions
-----------------------------------------
-
-Next, lets see how we can use refinements to describe the *outputs* of a
-function. Consider the following simple *absolute value* function
-
-\begin{code}
-abz               :: Int -> Int
-abz n | 0 < n     = n
-      | otherwise = 0 - n
-\end{code}
-
-We can use a refinement on the output type to specify that the function 
-returns non-negative values
-
-\begin{code}
-{-@ abz :: Int -> {v: Int | 0 <= v } @-}
-\end{code}
-
-LiquidHaskell *verifies* that `abz` indeed enjoys the above type by
-deducing that `n` is trivially non-negative when `0 < n` and that in 
-the `otherwise` case, i.e. when `not (0 < n)` the value `0 - n` is
-indeed non-negative (lets not worry about underflows for the moment.)
-LiquidHaskell is able to automatically make these arithmetic deductions
-by using an [SMT solver](http://rise4fun.com/Z3/) which has decision
-built-in procedures for arithmetic, to reason about the logical
-refinements.
-
-
-
-Putting It All Together
------------------------
-
-Lets wrap up this introduction with a simple `truncate` function 
-that connects all the dots. 
-
-\begin{code}
-{-@ truncate :: Int -> Int -> Int @-}
-truncate i max  
-  | i' <= max' = i
-  | otherwise  = max' * (i `divide` i')
-    where i'   = abz i
-          max' = abz max 
-\end{code}
-
-`truncate i n` simply returns `i` if its absolute value is less the
-upper bound `max`, and otherwise *truncates* the value at the maximum.
-LiquidHaskell verifies that the use of `divide` is safe by inferring that 
-at the call site
-
-1. `i' > max'` from the branch condition.
-2. `0 <= i'`   from the `abz` postcondition (hover mouse over `i'`).
-3. `0 <= max'` from the `abz` postcondition (hover mouse over `max'`).
-
-From the above, LiquidHaskell infers that `i' != 0`. That is, at the
-call site `i' :: {v: Int | v != 0}`, thereby satisfying the
-precondition for `divide` and verifying that the program has no pesky 
-divide-by-zero errors. Again, if you *really* want to make sure, put 
-in an assertion
-
-\begin{code}
-{-@ truncate' :: Int -> Int -> Int @-}
-truncate' i max  
-  | i' <= max' = i
-  | otherwise  = lAssert (i' /= 0) $ max' * (i `divide` i')
-    where i'   = abz i
-          max' = abz max 
-\end{code}
-
-and *lo!* LiquidHaskell will verify it for you.
-
-Modular Verification
---------------------
-
-Incidentally, note the `import` statement at the top. Rather than rolling
-our own `lAssert` we can import and use a pre-defined version `liquidAssert` 
-defined in an external [module](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Language/Haskell/Liquid/Prelude.hs)
-
-\begin{code}
-{-@ truncate'' :: Int -> Int -> Int @-}
-truncate'' i max  
-  | i' <= max' = i
-  | otherwise  = liquidAssert (i' /= 0) $ max' * (i `divide` i')
-    where i'   = abz i
-          max' = abz max 
-\end{code}
-
-In fact, LiquidHaskell comes equipped with suitable refinements for
-standard functions and it is easy to add refinements as we shall
-demonstrate in subsequent articles.
-
-Conclusion
-----------
-
-This concludes our quick introduction to Refinement Types and
-LiquidHaskell. Hopefully you have some sense of how to 
-
-1. **Specify** fine-grained properties of values by decorating their
-   types with logical predicates.
-2. **Encode** assertions, preconditions, and postconditions with suitable
-   function types.
-3. **Verify** semantic properties of code by using automatic logic engines 
-   (SMT solvers) to track and establish the key relationships between 
-   program values.
-
-
diff --git a/docs/blog/2013-01-27-refinements101-reax.lhs b/docs/blog/2013-01-27-refinements101-reax.lhs
deleted file mode 100644
--- a/docs/blog/2013-01-27-refinements101-reax.lhs
+++ /dev/null
@@ -1,262 +0,0 @@
----
-layout: post
-title: "Refinements 101 (contd.)" 
-date: 2013-01-27 16:12
-author: Ranjit Jhala
-published: true 
-comments: true
-external-url:
-categories: basic
-demo: refinements101reax.hs
----
-
-Hopefully, the [previous][ref101] article gave you a basic idea about what
-refinement types look like. Several folks had interesting questions, that
-are worth discussing in a separate post, since they throw a lot of light 
-on the strengths (or weaknesses, depending on your point of view!) of
-LiquidHaskell.
-
-<!-- more -->
-
-\begin{code}
-module Refinements101Reax where
-\end{code}
-
-How to relate outputs and inputs 
---------------------------------
-
-Recall the function `divide`
-
-\begin{code}
-{-@ divide :: Int -> {v: Int | v /= 0 } -> Int @-}
-divide     :: Int -> Int -> Int
-divide n 0 = error "divide by zero"
-divide n d = n `div` d
-\end{code}
-
-and `abz` was the absolute value function
-
-\begin{code}
-abz               :: Int -> Int
-abz n | 0 < n     = n
-      | otherwise = 0 - n
-\end{code}
-
-[nanothief](http://www.reddit.com/user/nanothief) [remarked][qreddit101]
-that LiquidHaskell was unable to verify the safety of the following call to
-`divide` (i.e. was unable to show that `x` was non-zero at the callsite).
-
-\begin{code}
-{-@ f :: Int -> Int @-}
-f x | abz x == 0 = 3
-    | otherwise  = 3 `divide` x
-\end{code}
-
-Nanothief correctly argues that the code is clearly safe as *"`abz x == 0` being false implies `x /= 0`"*. 
-Indeed, the code *is safe*, however, the reason that LiquidHaskell
-rejected it has nothing to do with its inability
-to  *"track the constraints of values based on tests using new values derived from that value"* as Nanothief surmised,
-but instead, because LiquidHaskell supports **modular verification** 
-where the *only* thing known about `abz` at a *use site* is 
-whatever is specified in its *type*. 
-
-\begin{code}Concretely speaking, the type 
-abz :: Int -> {v: Int | 0 <= v }
-\end{code}
-
-is too anemic to verify `f` above, as it tells us nothing 
-about the *relationship* between the output and input -- looking at it,
-we have now way of telling that when the *output* (of `abz`) is 
-non-zero, the *input*  must also have been non-zero.
-
-\begin{code}Instead, we can write a *stronger* type which does capture this information, for example
-abz :: x:Int -> {v:Int | v = (if (x > 0) then x else (0 - x))}
-\end{code}
-
-\begin{code} where 
-v = (if p then e1 else e2)
-\end{code}
-
-\begin{code} is an abbreviation for the formula 
-(p => v == e1) && ((not p) => v = e2)
-\end{code}
-
-With this specification for `abz`, LiquidHaskell is able to reason that
-when `abz x` is non-zero, `x` is also non-zero. Of course, `abz` is trivial 
-enough that we can very precisely capture its *exact* semantics in the 
-refinement type, but thats is rarely the case. 
-
-Nevertheless, even here, you could write a somewhat *weaker* specification,
-that still had enough juice to allow the verification of the `divide` call
-in `f`. In particular, we might write
-
-\begin{code}
-{-@ abz :: x:Int -> {v:Int | ((0 <= v) && ((v = 0) <=> (x = 0))) } @-}
-\end{code}
-
-which states the output is `0` *if and only if* the input is `0`.
-LiquidHaskell will happily verify that `abz` implements this specification,
-and will use it to verify the safety of `f` above.
-
-(BTW, follow the link above to *demo this code*  yourself.)
-
-How to tell a Fib
------------------
-
-[Chris Done](https://twitter.com/christopherdone) [asked][qblog101]
-why LiquidHaskell refused to verify the following definition of `fib`.
-
-\begin{code}
-{-@ fib :: n:Int -> { b:Int | (n >= 0 && b >= n) } @-}
-fib :: Int -> Int
-fib 0 = 0
-fib 1 = 1
-fib n = fib (n-1) + fib (n-2)
-\end{code}
-
-Indeed, the both the *specification* and the *implementation* look pretty
-legit, so what gives?  It turns out that there are *two* different reasons why. 
-
-**Reason 1: Assumptions vs. Guarantees**
-
-What we really want to say over here is that the *input* `n` 
-is non-negative. However, putting the refinement `n >= 0` in 
-the *output* constraint means that it becomes something that 
-LiquidHaskell checks that the function `fib` **guarantees** 
-(or **ensures**).
-That is, the type states that we can pass `fib` *any* value 
-`n` (including *negative* values) and yet, `fib` must return 
-values `b` such that `b >= n` *and* `n >= 0`. 
-
-The latter requirement is a rather tall order when an arbitrary `n` 
-is passed in as input. `fib` can make no such guarantees since 
-it was *given* the value `n` as a parameter. The only way `n` could 
-be non-negative was that if the caller had sent in a non-negative value. 
-Thus, we want to put the *burden of proof* on the right entity here, 
-namely the caller.
-
-To assign the burden of proof appropriately, we place the
-non-negative refinement on the *input type*
-
-\begin{code}
-{-@ fib' :: n:{v:Int | v >= 0} -> {b:Int | (n >= 0 && b >= n) } @-}
-fib' :: Int -> Int
-fib' 0 = 0
-fib' 1 = 1
-fib' n = fib (n-1) + fib (n-2)
-\end{code}
-
-where now at *calls to* `fib'` LiquidHaskell will check that the argument
-is non-negative, and furthermore, when checking `fib'` LiquidHaskell will 
-**assume** that the parameter `n` is indeed non-negative. So now the
-constraint `n >= 0` on the output is somewhat redundant, and the
-non-negative `n` guarantee holds trivially.
-
-**Reason 2: The Specification is a Fib**
-
-If you run the above in the demo, you will see that LiquidHaskell still
-doth protest loudly, and frankly, one might start getting a little
-frustrated at the stubbornness and petulance of the checker.
-
-\begin{code} However, if you stare at the implementation, you will see that it in fact, *does not* meet the specification, as
-fib' 2  == fib' 1 + fib' 0
-        == 0 + 1
-        == 1
-\end{code}
-
-LiquidHaskell is reluctant to prove things that are false. Rather than 
-anthropomorphize frivolously, lets see why it is unhappy. 
-
-\begin{code}First, recall the somewhat simplified specification 
-fib' :: n:Int -> { b:Int | (b >= n) } 
-\end{code}
-
-As we saw in the discussion about `abz`, at each recursive callsite
-the *only information* LiquidHaskell uses about the returned value, 
-is that described in the *output type* for that function call.
-
-\begin{code}Thus, LiquidHaskell reasons that the expression:
-fib' (n-1) + fib' (n-2)
-\end{code}
-
-\begin{code}has the type
-{b: Int | exists b1, b2. b  == b1 + b2 
-                      && b1 >= n-1 
-                      && b2 >= n-2     }
-\end{code}
-
-where the `b1` and `b2` denote the values returned by the 
-recursive calls --- we get the above by plugging the parameters
-`n-1` and `n-2` in for the parameter `n` in output type for `fib'`.
-
-\begin{code}The SMT solver simplifies the above to
-{b: Int | b >= 2n - 3}
-\end{code}
-
-\begin{code} Finally, to check the output guarantee is met, LiquidHaskell asks the SMT solver to prove that
-(b >= 2n - 2)  =>  (b >= n)
-\end{code}
-
-The SMT solver will refuse, of course, since the above implication is 
-*not valid* (e.g. when `n` is `2`) Thus, via SMT, LiquidHaskell proclaims
-that the function `fib'` does not implement the advertised type and hence
-marks it *unsafe*.
-
-Fixing The Code
----------------
-
-How then, do we get Chris' specification to work out? It seems like it 
-*should* hold (except for that pesky case where `n=2`. Indeed,
-let's rig the code, so that all the base cases return `1`.
-
-\begin{code}
-{-@ fibOK :: n:Int -> {b:Int | ((b >= n) && (b >= 1))} @-}
-fibOK :: Int -> Int
-fibOK 0 = 1
-fibOK 1 = 1
-fibOK n = fibOK (n-1) + fibOK (n-2)
-\end{code}
-
-Here' we specify that not only is the output greater than the input, it is
-**also** greater than `1`. 
-
-\begin{code} Now in the recursive case, LiquidHaskell reasons that the value being output is
-{b: Int | exists b1, b2. b  == b1 + b2 
-                      && b1 >= n-1 && b1 >= 1 
-                      && b2 >= n-2 && b2 >= 1 }
-\end{code}
-
-\begin{code}which reduces to 
-{b: Int | b = 2n - 3 && n >= 2 }
-\end{code}
-
-\begin{code}which, the SMT solver is happy to verify, is indeed a subtype
-of (i.e. implies the refinement of) the specified output
-{b: Int | b >= n && b >= 1 } 
-\end{code}
-
-Conclusion
-----------
-
-There are several things to take away. 
-
-1. We need to distinguish between *assumptions* and *guarantees* 
-   when writing specifications for functions.
-
-2. For *modularity*, LiquidHaskell, like every type system, uses only
-   the (refinement) *type*  of each function at each use site, and not the 
-   function's *body*.
-
-3. Some seemingly intuitive specifications often aren't; in future work it
-   would be useful to actually [generate][mlton]  [tests][concolic] as 
-   [counterexamples][icse04] that illustrate when a specification
-   [fails][dsd].
-
-[qblog101]: /blog/2013/01/01/refinement-types-101.lhs/#comment-772807850
-[qreddit101]: http://www.reddit.com/r/haskell/comments/16w3hp/liquidhaskell_refinement_types_in_haskell_via_smt/c809160
-[ref101]:  /blog/2013/01/01/refinement-types-101.lhs/ 
-[concolic]: http://en.wikipedia.org/wiki/Concolic_testing
-[icse04]: http://goto.ucsd.edu/~rjhala/papers/generating_tests_from_counterexamples.html
-[dsd]: http://dl.acm.org/citation.cfm?doid=1348250.1348254
-[mlton]: http://www.cs.purdue.edu/homes/zhu103/pubs/vmcai13.pdf
-
diff --git a/docs/blog/2013-01-31-safely-catching-a-list-by-its-tail.lhs b/docs/blog/2013-01-31-safely-catching-a-list-by-its-tail.lhs
deleted file mode 100644
--- a/docs/blog/2013-01-31-safely-catching-a-list-by-its-tail.lhs
+++ /dev/null
@@ -1,378 +0,0 @@
----
-layout: post
-title: "Safely Catching A List By Its Tail"
-date: 2013-01-31 16:12
-author: Ranjit Jhala
-published: true 
-comments: true
-external-url:
-categories: measures 
-demo: lenMapReduce.hs
----
-
-[Previously][ref101] we [saw][ref102] some examples of how refinements
-could be used to encode invariants about basic `Int` values.  Today, let's
-see how refinements allow us specify and verify *structural invariants*
-about recursive data types like lists. In particular, we will
-learn about at a new mechanism called a `measure`, 
-use measures to describe the **length** of a list, and 
-use the resulting refinement types to obtain compile-time assurances
-that canonical list manipulating operations like `head`, `tail`, `foldl1`
-and (incomplete) pattern matches will not *blow up* at run-time.
-
-<!-- more -->
-
-\begin{code}
-module ListLengths where
-
-import Prelude hiding (length, map, filter, head, tail, foldl1)
-import Language.Haskell.Liquid.Prelude (liquidError)
-import qualified Data.HashMap.Strict as M
-import Data.Hashable 
-\end{code}
-
-Measuring the Length of a List
-------------------------------
-
-To begin, we need some instrument by which to measure the length of a list.
-To this end, let's introduce a new mechanism called **measures** which 
-define auxiliary (or so-called **ghost**) properties of data values.
-These properties are useful for specification and verification, but
-**don't actually exist at run-time**.
-That is, measures will appear in specifications but *never* inside code.
-
-
-
-
-\begin{code} Let's reuse this mechanism, this time, providing a [definition](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/Base.spec) for the measure
-measure len :: forall a. [a] -> GHC.Types.Int
-len ([])     = 0
-len (y:ys)   = 1 + (len ys) 
-\end{code}
-
-The description of `len` above should be quite easy to follow. Underneath the 
-covers, LiquidHaskell transforms the above description into refined versions 
-of the types for the constructors `(:)` and `[]`,
-\begin{code}Something like 
-data [a] where 
-  []  :: forall a. {v: [a] | (len v) = 0 }
-  (:) :: forall a. y:a -> ys:[a] -> {v: [a] | (len v) = 1 + (len ys) } 
-\end{code}
-
-To appreciate this, note that we can now check that
-
-\begin{code}
-{-@ xs :: {v:[String] | (len v) = 1 } @-}
-xs = "dog" : []
-
-{-@ ys :: {v:[String] | (len v) = 2 } @-}
-ys = ["cat", "dog"]
-
-{-@ zs :: {v:[String] | (len v) = 3 } @-}
-zs = "hippo" : ys
-\end{code}
-
-Dually, when we *de-construct* the lists, LiquidHaskell is able to relate
-the type of the outer list with its constituents. For example,
-
-\begin{code}
-{-@ zs' :: {v:[String] | (len v) = 2 } @-}
-zs' = case zs of 
-        h : t -> t
-\end{code}
-
-Here, from the use of the `:` in the pattern, LiquidHaskell can determine
-that `(len zs) = 1 + (len t)`; by combining this fact with the nugget
-that `(len zs) = 3` LiquidHaskell concludes that `t`, and hence, `zs'`
-contains two elements.
-
-Reasoning about Lengths
------------------------
-
-Let's flex our new vocabulary by uttering types that describe the
-behavior of the usual list functions. 
-
-First up: a version of the [standard][ghclist] 
-`length` function, slightly simplified for exposition.
-
-\begin{code}
-{-@ length :: xs:[a] -> {v: Int | v = (len xs)} @-}
-length :: [a] -> Int
-length []     = 0
-length (x:xs) = 1 + length xs
-\end{code}
-
-**Note:** Recall that `measure` values don't actually exist at run-time.
-However, functions like `length` are useful in that they allow us to
-effectively *pull* or *materialize* the ghost values from the refinement
-world into the actual code world (since the value returned by `length` is
-logically equal to the `len` of the input list.)
-
-Similarly, we can speak and have confirmed, the types for the usual
-list-manipulators like
-
-\begin{code}
-{-@ map      :: (a -> b) -> xs:[a] -> {v:[b] | (len v) = (len xs)} @-}
-map _ []     = [] 
-map f (x:xs) = (f x) : (map f xs)
-\end{code}
-
-and
-
-\begin{code}
-{-@ filter :: (a -> Bool) -> xs:[a] -> {v:[a] | (len v) <= (len xs)} @-}
-filter _ []     = []
-filter f (x:xs) 
-  | f x         = x : filter f xs
-  | otherwise   = filter f xs
-\end{code}
-
-and, since doubtless you are wondering,
-
-\begin{code}
-{-@ append :: xs:[a] -> ys:[a] -> {v:[a] | (len v) = (len xs) + (len ys)} @-}
-append [] ys     = ys 
-append (x:xs) ys = x : append xs ys
-\end{code}
-
-We will return to the above at some later date. Right now, let's look at
-some interesting programs that LiquidHaskell can prove safe, by reasoning
-about the size of various lists.
-
-
-
-Example 1: Safely Catching A List by Its Tail (or Head) 
--------------------------------------------------------
-
-Now, let's see how we can use these new incantations to banish, forever,
-certain irritating kinds of errors. 
-\begin{code}Recall how we always summon functions like `head` and `tail` with a degree of trepidation, unsure whether the arguments are empty, which will awaken certain beasts
-Prelude> head []
-*** Exception: Prelude.head: empty list
-\end{code}
-
-LiquidHaskell allows us to use these functions with 
-confidence and surety! First off, let's define a predicate
-alias that describes non-empty lists:
-
-\begin{code}
-{-@ predicate NonNull X = ((len X) > 0) @-}
-\end{code}
-
-Now, we can type the potentially dangerous `head` as:
-
-\begin{code}
-{-@ head   :: {v:[a] | (NonNull v)} -> a @-}
-head (x:_) = x
-head []    = liquidError "Fear not! 'twill ne'er come to pass"
-\end{code}
-
-As with the case of [divide-by-zero][ref101], LiquidHaskell deduces that
-the second equation is *dead code* since the precondition (input) type
-states that the length of the input is strictly positive, which *precludes*
-the case where the parameter is `[]`.
-
-Similarly, we can write
-
-\begin{code}
-{-@ tail :: {v:[a] | (NonNull v)} -> [a] @-}
-tail (_:xs) = xs
-tail []     = liquidError "Relaxeth! this too shall ne'er be"
-\end{code}
-
-Once again, LiquidHaskell will use the precondition to verify that the 
-`liquidError` is never invoked. 
-
-Let's use the above to write a function that eliminates stuttering, that
-is which converts `"ssstringssss liiiiiike thisss"` to `"strings like this"`.
-
-\begin{code}
-{-@ eliminateStutter :: (Eq a) => [a] -> [a] @-}
-eliminateStutter xs = map head $ groupEq xs 
-\end{code}
-
-The heavy lifting is done by `groupEq`
-
-\begin{code}
-groupEq []     = []
-groupEq (x:xs) = (x:ys) : groupEq zs
-                 where (ys,zs) = span (x ==) xs
-\end{code}
-
-which gathers consecutive equal elements in the list into a single list.
-By using the fact that *each element* in the output returned by 
-`groupEq` is in fact of the form `x:ys`, LiquidHaskell infers that
-`groupEq` returns a *list of non-empty lists*. 
-(Hover over the `groupEq` identifier in the code above to see this.)
-Next, by automatically instantiating the type parameter for the `map` 
-in `eliminateStutter` to `(len v) > 0` LiquidHaskell deduces `head` 
-is only called on non-empty lists, thereby verifying the safety of 
-`eliminateStutter`. (Hover your mouse over `map` above to see the
-instantiated type for it!)
-
-Example 2: Risers 
------------------
-
-The above examples of `head` and `tail` are simple, but non-empty lists pop
-up in many places, and it is rather convenient to have the type system
-track non-emptiness without having to make up special types. Let's look at a
-more interesting example, popularized by [Neil Mitchell][risersMitchell]
-which is a key step in an efficient sorting procedure, which we may return
-to in the future when we discuss sorting algorithms.
-
-\begin{code}
-risers           :: (Ord a) => [a] -> [[a]]
-risers []        = []
-risers [x]       = [[x]]
-risers (x:y:etc) = if x <= y then (x:s):ss else [x]:(s:ss)
-    where 
-      (s, ss)    = safeSplit $ risers (y:etc)
-\end{code}
-
-The bit that should cause some worry is `safeSplit` which 
-simply returns the `head` and `tail` of its input, if they
-exist, and otherwise, crashes and burns
-
-\begin{code}
-safeSplit (x:xs)  = (x, xs)
-safeSplit _       = liquidError "don't worry, be happy"
-\end{code}
-
-How can we verify that `safeSplit` *will not crash* ?
-
-The matter is complicated by the fact that since `risers` 
-*does* sometimes return an empty list, we cannot blithely 
-specify that its output type has a `NonNull` refinement.
-
-Once again, logic rides to our rescue!
-
-The crucial property upon which the safety of `risers` rests
-is that when the input list is non-empty, the output list 
-returned by risers is *also* non-empty. It is quite easy to clue 
-LiquidHaskell in on this, namely through a type specification:
-
-\begin{code}
-{-@ risers :: (Ord a) 
-           => zs:[a] 
-           -> {v: [[a]] | ((NonNull zs) => (NonNull v)) } @-} 
-\end{code}
-
-Note how we relate the output's non-emptiness to the input's
-non-emptiness,through the (dependent) refinement type. With this 
-specification in place, LiquidHaskell is pleased to verify `risers` 
-(i.e. the call to `safeSplit`).
-
-Example 3: MapReduce 
---------------------
-
-Here's a longer example that illustrates this: a toy *map-reduce* implementation.
-
-First, let's write a function `keyMap` that expands a list of inputs into a 
-list of key-value pairs:
-
-\begin{code}
-keyMap :: (a -> [(k, v)]) -> [a] -> [(k, v)]
-keyMap f xs = concatMap f xs
-\end{code}
-
-Next, let's write a function `group` that gathers the key-value pairs into a
-`Map` from *keys* to the lists of values with that same key.
-
-\begin{code}
-group kvs = foldr (\(k, v) m -> inserts k v m) M.empty kvs 
-\end{code}
-
-The function `inserts` simply adds the new value `v` to the list of 
-previously known values `lookupDefault [] k m` for the key `k`.
-
-\begin{code}
-inserts k v m = M.insert k (v : vs) m 
-  where vs    = M.lookupDefault [] k m
-\end{code}
-
-Finally, a function that *reduces* the list of values for a given
-key in the table to a single value:
-
-\begin{code}
-reduce    :: (v -> v -> v) -> M.HashMap k [v] -> M.HashMap k v
-reduce op = M.map (foldl1 op)
-\end{code}
-
-where `foldl1` is a [left-fold over *non-empty* lists][foldl1]
-
-\begin{code}
-{-@ foldl1      :: (a -> a -> a) -> {v:[a] | (NonNull v)} -> a @-}
-foldl1 f (x:xs) =  foldl f x xs
-foldl1 _ []     =  liquidError "will. never. happen."
-\end{code}
-
-We can put the whole thing together to write a (*very*) simple *Map-Reduce* library
-
-\begin{code}
-mapReduce   :: (Eq k, Hashable k) 
-            => (a -> [(k, v)])    -- ^ key-mapper
-            -> (v -> v -> v)      -- ^ reduction operator
-            -> [a]                -- ^ inputs
-            -> [(k, v)]           -- ^ output key-values
-
-mapReduce f op  = M.toList 
-                . reduce op 
-                . group 
-                . keyMap f
-\end{code}
-
-Now, if we want to compute the frequency of `Char` in a given list of words, we can write:
-
-\begin{code}
-{-@ charFrequency :: [String] -> [(Char, Int)] @-}
-charFrequency     :: [String] -> [(Char, Int)]
-charFrequency     = mapReduce wordChars (+)
-  where wordChars = map (\c -> (c, 1)) 
-\end{code}
-
-You can take it out for a spin like so:
-
-\begin{code}
-f0 = charFrequency [ "the", "quick" , "brown"
-                   , "fox", "jumped", "over"
-                   , "the", "lazy"  , "cow"   ]
-\end{code}
-
-**Look Ma! No Types:** LiquidHaskell will gobble the whole thing up, and
-verify that none of the undesirable `liquidError` calls are triggered. By
-the way, notice that we didn't write down any types for `mapReduce` and
-friends.  The main invariant, from which safety follows is that the `Map`
-returned by the `group` function binds each key to a *non-empty* list of
-values.  LiquidHaskell deduces this invariant by inferring suitable types
-for `group`, `inserts`, `foldl1` and `reduce`, thereby relieving us of that
-tedium. In short, by riding on the broad and high shoulders of SMT and
-abstract interpretation, LiquidHaskell makes a little typing go a long way. 
-
-
-Conclusions
------------
-
-Well folks, thats all for now. I trust this article gave you a sense of
-
-1. How we can describe certain *structural properties* of data types, 
-   such as the length of a list, 
-
-2. How we might use refinements over these properties to describe key
-   invariants and establish, at compile-time, the safety of operations that
-   might blow up on unexpected values at run-time, and perhaps, most
-   importantly,
-
-3. How we can achieve the above, whilst just working with good old lists, 
-   without having to [make up new types][risersApple] (which have the 
-   unfortunate effect of cluttering programs with their attendant new 
-   functions) in order to enforce special invariants.
-
-
-[vecbounds]:  /blog/2013/01/05/bounding-vectors.lhs/ 
-[ghclist]:    https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/List.lhs#L125
-[foldl1]:     http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html#foldl1
-[risersMitchell]: http://neilmitchell.blogspot.com/2008/03/sorting-at-speed.html
-[risersApple]: http://blog.jbapple.com/2008/01/extra-type-safety-using-polymorphic.html
-[ref101]:  /blog/2013/01/01/refinement-types-101.lhs/ 
-[ref102]:  /blog/2013/01/27/refinements101-reax.lhs/ 
-
diff --git a/docs/blog/2013-02-16-kmeans-clustering-I.lhs b/docs/blog/2013-02-16-kmeans-clustering-I.lhs
deleted file mode 100644
--- a/docs/blog/2013-02-16-kmeans-clustering-I.lhs
+++ /dev/null
@@ -1,335 +0,0 @@
----
-layout: post
-title: "KMeans Clustering I"
-date: 2013-02-16 16:12
-author: Ranjit Jhala
-published: true
-comments: true
-external-url:
-categories: basic measures
-demo: KMeansHelper.hs
----
-
-[Last time][safeList] we introduced a new specification mechanism called a
-*measure* and demonstrated how to use it to encode the *length* of a list.
-We saw how measures could be used to verify that functions like `head` and
-`tail` were only called with non-empty lists (whose length was strictly
-positive). As several folks pointed out, once LiquidHaskell can reason about
-lengths, it can do a lot more than just analyze non-emptiness.
-
-Indeed!
-
-Over the next *two* posts, lets see how one might implement a Kmeans
-algorithm that clusters `n`-dimensional points groups, and how LiquidHaskell
-can help us write and enforce various dimensionality invariants along the way.
-
-<!-- more -->
-
-<!-- For example, XXX pointed out that we can use the type system to give an *upper* bound on the size of a list, e.g. using lists
-     upper bounded by a gigantic `MAX_INT` value as a proxy for finite lists. -->
-
-
-\begin{code}
-module KMeansHelper where
-
-import Prelude                          hiding  (zipWith)
-import Data.List                                (span)
-import Language.Haskell.Liquid.Prelude          (liquidError)
-\end{code}
-
-Rather than reinvent the wheel, we will modify an existing implementation
-of K-Means, [available on hackage][URL-kmeans]. This may not be the
-most efficient implementation, but its a nice introduction to the algorithm,
-and the general invariants will hold for more sophisticated implementations.
-
-We have broken this entry into two convenient, bite-sized chunks:
-
-+ **Part I**  Introduces the basic types and list operations needed by KMeans,
-
-+ **Part II** Describes how the operations are used in the KMeans implementation.
-
-The Game: Clustering Points
----------------------------
-
-The goal of [K-Means clustering](http://en.wikipedia.org/wiki/K-means_clustering)
-is the following. Given
-
-- **Input** : A set of *points* represented by *n-dimensional points*
-  in *Euclidian* space, return
-
-- **Output** : A partitioning of the points, into K clusters, in a manner that
-  minimizes sum of distances between each point and its cluster center.
-
-
-The Players: Types
-------------------
-
-Lets make matters concrete by creating types for the different elements of the algorithm.
-
-**1. Fixed-Length Lists**  We will represent n-dimensional points using
-good old Haskell lists, refined with a predicate that describes the
-dimensionality (i.e. length.) To simplify matters, lets package this
-into a *type alias* that denotes lists of a given length `N`.
-
-\begin{code}
-{-@ type List a N = {v : [a] | (len v) = N} @-}
-\end{code}
-
-**2. Points** Next, we can represent an `N`-dimensional point as list of `Double` of length `N`,
-
-\begin{code}
-{-@ type Point N = List Double N @-}
-\end{code}
-
-**3. Clusters** A cluster is a **non-empty** list of points,
-
-\begin{code}
-{-@ type NonEmptyList a = {v : [a] | (len v) > 0} @-}
-\end{code}
-
-**4. Clustering** And finally, a clustering is a list of (non-empty) clusters.
-
-\begin{code}
-{-@ type Clustering a  = [(NonEmptyList a)] @-}
-\end{code}
-
-**Notation:** When defining refinement type aliases, we use uppercase variables like `N`
-to distinguish value- parameters from the lowercase type parameters like `a`.
-
-
-**Aside:** By the way, if you are familiar with the *index-style* length
-encoding e.g. as found in [DML][dml] or [Agda][agdavec], then its worth
-noting that despite appearances, our `List` and `Point` definitions are
-*not* indexed. We're just using the indices to define abbreviations for the
-refinement predicates, and we have deliberately chosen the predicates to
-facilitate SMT based checking and inference.
-
-Basic Operations on Points and Clusters
-=======================================
-
-Ok, with the types firmly in hand, let us go forth and develop the KMeans
-clustering implementation. We will use a variety of small helper functions
-(of the kind found in `Data.List`.) Lets get started by looking at them
-through our newly *refined* eyes.
-
-Grouping
---------
-
-The first such function is [groupBy][URL-groupBy]. We can
-refine its type so that instead of just producing a `[[a]]`
-we know that it produces a `Clustering a` which is a list
-of *non-empty* lists.
-
-\begin{code}
-{-@ groupBy       ::(a -> a -> Bool) -> [a] -> (Clustering a) @-}
-groupBy _  []     = []
-groupBy eq (x:xs) = (x:ys) : groupBy eq zs
-  where (ys,zs)   = span (eq x) xs
-\end{code}
-
-Intuitively, its pretty easy to see how LiquidHaskell verifies the refined
-specification:
-
-- Each element of the output list is of the form `x:ys`
-- For any list `ys` the length is non-negative, i.e. `(len ys) >= 0`
-- The `len` of `x:ys` is `1 + (len ys)`, that is, strictly positive.
-
-Partitioning
-------------
-
-Next, lets look the function
-
-\begin{code}
-{-@ partition :: size:PosInt -> [a] -> (Clustering a) @-}
-{-@ type PosInt = {v: Int | v > 0 } @-}
-\end{code}
-
-which is given a *strictly positive* integer argument,
-a list of `a` values, and returns a `Clustering a`,
-that is, a list of non-empty lists. (Each inner list has a length
-that is less than `size`, but we shall elide this for simplicity.)
-
-The function is implemented in a straightforward manner, using the
-library functions `take` and `drop`
-
-\begin{code}
-partition size []       = []
-partition size ys@(_:_) = zs : partition size zs'
-  where
-    zs                  = take size ys
-    zs'                 = drop size ys
-\end{code}
-
-To verify that a valid `Clustering` is produced, LiquidHaskell needs only
-verify that the list `zs` above is non-empty, by suitably connecting the
-properties of the inputs `size` and `ys` with the output.
-
-\begin{code} We have [verified elsewhere][URL-take] that
-take :: n:{v: Int | v >= 0 }
-     -> xs:[a]
-     -> {v:[a] | (len v) = (if ((len xs) < n) then (len xs) else n) }
-\end{code}
-
-In other words, the output list's length is the *smaller of* the input
-list's length and `n`.  Thus, since both `size` and the `(len ys)` are
-greater than `1`, LiquidHaskell deduces that the list returned by `take
-size ys` has a length greater than `1`, i.e., is non-empty.
-
-Zipping
--------
-
-To compute the *Euclidean distance* between two points, we will use
-the `zipWith` function. We must make sure that it is invoked on points
-with the same number of dimensions, so we write
-
-\begin{code}
-{-@ zipWith :: (a -> b -> c)
-            -> xs:[a] -> (List b (len xs)) -> (List c (len xs)) @-}
-zipWith f (a:as) (b:bs) = f a b : zipWith f as bs
-zipWith _ [] []         = []
-\end{code}
-
-The type stipulates that the second input list and the output have
-the same length as the first input. Furthermore, it rules out the
-case where one list is empty and the other is not, as in that case
-the former's length is zero while the latter's is not.
-
-Transposing
------------
-
-The last basic operation that we will require is a means to
-*transpose* a `Matrix`, which itself is just a list of lists:
-
-\begin{code}
-{-@ type Matrix a Rows Cols = (List (List a Cols) Rows) @-}
-\end{code}
-
-The `transpose` operation flips the rows and columns. I confess that I
-can never really understand matrices without concrete examples,
-and even then, barely.
-
-\begin{code} So, lets say we have a *matrix*
-m1  :: Matrix Int 4 2
-m1  =  [ [1, 2]
-       , [3, 4]
-       , [5, 6]
-       , [7, 8] ]
-\end{code}
-
-\begin{code} then the matrix `m2 = transpose 2 3 m1` should be
-m2 :: Matrix Int 2 4
-m2  =  [ [1, 3, 5, 7]
-       , [2, 4, 6, 8] ]
-\end{code}
-
-We will use a `Matrix a m n` to represent a *single cluster* of `m` points
-each of which has `n` dimensions. We will transpose the matrix to make it
-easy to *sum* and *average* the points along *each* dimension, in order to
-compute the *center* of the cluster.
-
-As you can work out from the above, the code for `transpose` is quite
-straightforward: each *output row* is simply the list of `head`s of
-the *input rows*:
-
-\begin{code}
-transpose       :: Int -> Int -> [[a]] -> [[a]]
-
-transpose 0 _ _ = []
-
-transpose c r ((col00 : col01s) : row1s)
-  = row0' : row1s'
-    where
-      row0'  = col00  : [ col0  | (col0 : _)  <- row1s ]
-      rest   = col01s : [ col1s | (_ : col1s) <- row1s ]
-      row1s' = transpose (c-1) r rest
-\end{code}
-
-LiquidHaskell verifies that
-
-\begin{code}
-{-@ transpose :: c:Int -> r:PosInt -> Matrix a r c -> Matrix a c r @-}
-\end{code}
-
-Try to work it out for yourself on pencil and paper.
-
-If you like you can get a hint by seeing how LiquidHaskell figures it out.
-Lets work *backwards*.
-
-\begin{code} LiquidHaskell verifies the output type by inferring that
-row0'        :: (List a r)
-row1s'       :: List (List a r) (c - 1) -- i.e. Matrix a (c - 1) r
-\end{code}
-
-\begin{code} and so, by simply using the *measure-refined* type for `:`
-(:)          :: x:a -> xs:[a] -> { v : [a] | (len v) = 1 + (len xs) }
-\end{code}
-
-\begin{code} LiquidHaskell deduces that
-row0 : rows' :: List (List a r) c
-\end{code}
-
-\begin{code} That is,
-row0 : rows' :: Matrix a c r
-\end{code}
-
-Excellent! Now, lets work backwards. How does it infer the types of `row0'` and `row1s'`?
-
-The first case is easy: `row0'` is just the list of *heads* of each row, hence a `List a r`.
-
-\begin{code} Now, lets look at `row1s'`. Notice that `row1s` is the matrix of all *except* the first row of the input Matrix, and so
-row1s        :: Matrix a (r-1) c
-\end{code}
-
-\begin{code} and so, as
-col01s       :: List a (c-1)
-col1s        :: List a (c-1)
-\end{code}
-
-\begin{code} LiquidHaskell deduces that since `rest` is the concatenation of `r-1` tails from `row1s`
-rest         = col01s : [ col1s | (_ : col1s) <- row1s ]
-\end{code}
-
-\begin{code} the type of `rest` is
-rest         :: List (List a (c - 1)) r
-\end{code}
-
-\begin{code} which is just
-rest         :: Matrix a r (c-1)
-\end{code}
-
-Now, LiquidHaskell deduces `row1s' :: Matrix a (c-1) r` by inductively
-plugging in the output type of the recursive call, thereby checking the
-function's signature.
-
-
-*Whew!* That was a fair bit of work, wasn't it!
-
-Happily, we didn't have to do *any* of it. Instead, using the SMT solver,
-LiquidHaskell ploughs through calculations like that and guarantees to us
-that `transpose` indeed flips the dimensions of the inner and outer lists.
-
-**Aside: Comprehensions vs. Map** Incidentally, the code above is essentially
-that of `transpose` [from the Prelude][URL-transpose] with some extra
-local variables for exposition. You could instead use a `map head` and `map tail`
-and I encourage you to go ahead and [see for yourself.][demo]
-
-Intermission
-------------
-
-Time for a break -- [go see a cat video!][maru] -- or skip it, stretch your
-legs, and return post-haste for the [next installment][kmeansII], in which
-we will use the types and functions described above, to develop the clustering
-algorithm.
-
-[safeList]:      /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
-[kmeansI]:       /blog/2013/02/16/kmeans-clustering-I.lhs/
-[kmeansII]:      /blog/2013/02/17/kmeans-clustering-II.lhs/
-[URL-take]:      https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/List.lhs#L334
-[URL-groupBy]:   http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-List.html#v:groupBy
-[URL-transpose]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html#transpose
-[maru]:          http://www.youtube.com/watch?v=8uDuls5TyNE
-[demo]:          http://goto.ucsd.edu/~rjhala/liquid/haskell/demo/#?demo=KMeansHelper.hs
-[URL-kmeans]:    http://hackage.haskell.org/package/kmeans
-[dml]:           http://www.cs.bu.edu/~hwxi/DML/DML.html
-[agdavec]:       http://code.haskell.org/Agda/examples/Vec.agda
-
diff --git a/docs/blog/2013-02-17-kmeans-clustering-II.lhs b/docs/blog/2013-02-17-kmeans-clustering-II.lhs
deleted file mode 100644
--- a/docs/blog/2013-02-17-kmeans-clustering-II.lhs
+++ /dev/null
@@ -1,436 +0,0 @@
----
-layout: post
-title: "KMeans Clustering II"
-date: 2013-02-17 16:12
-author: Ranjit Jhala
-published: true
-comments: true
-external-url:
-categories: basic measures
-demo: KMeans.hs
----
-
-**The story so far:** [Previously][kmeansI] we saw
-
-- how to encode `n`-dimensional points using plain old Haskell lists,
-- how to encode a matrix with `r` rows and `c` columns as a list of lists,
-- some basic operations on points and matrices via list-manipulating functions
-
-More importantly, we saw how easy it was to encode dimensionality with refinements over
-the `len` measure, thereby allowing LiquidHaskell to precisely track the dimensions across
-the various operations.
-
-Next, lets use the basic types and operations to develop the actual *KMeans clustering*
-algorithm, and, along the way, see how LiquidHaskell lets us write precise module
-contracts which will ward against various unpleasant *lumpenexceptions*.
-
-<!-- more -->
-
-\begin{code}
-{-# LANGUAGE ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances #-}
-
-module KMeans (kmeans, kmeansGen) where
-
-import KMeansHelper
-import Prelude              hiding      (zipWith)
-import Data.List                        (sort, span, minimumBy)
-import Data.Function                    (on)
-import Data.Ord                         (comparing)
-import Language.Haskell.Liquid.Prelude  (liquidAssert, liquidError)
-
-instance Eq (WrapType [Double] a) where
-   (==) = (==) `on` getVect
-
-instance Ord (WrapType [Double] a) where
-    compare = comparing getVect
-\end{code}
-
-Recall that we are using a modified version of an [existing KMeans implementation][URL-kmeans].
-While not the swiftest implementation, it serves as a nice introduction to the algorithm,
-and the general invariants carry over to more sophisticated implementations.
-
-A Quick Recap
--------------
-
-Before embarking on the journey, lets remind ourselves of our destination:
-the goal of [K-Means clustering](http://en.wikipedia.org/wiki/K-means_clustering) is
-
-- **Take as Input** : A set of *points* represented by *n-dimensional points* in *Euclidian* space
-
-- **Return as Ouptut** : A partitioning of the points, into upto K clusters, in a manner that
-  minimizes the sum of distances between each point and its cluster center.
-
-Last time, we introduced a variety of refinement type aliases for Haskell lists
-
-\begin{code} **Fixed Length Lists**
-type List a N = {v : [a] | (len v) = N}
-\end{code}
-
-\begin{code} **Non-empty Lists**
-type NonEmptyList a = {v : [a] | (len v) > 0}
-\end{code}
-
-\begin{code} **N-Dimensional Points**
-type Point N = List Double N
-\end{code}
-
-\begin{code} **Matrices**
-type Matrix a Rows Cols = List (List a Cols) Rows
-\end{code}
-
-\begin{code} We also saw several basic list operations
-groupBy   :: (a -> a -> Bool) -> [a] -> (Clustering a)
-partition :: PosInt -> [a] -> (Clustering a)
-zipWith   :: (a -> b -> c) -> xs:[a] -> (List b (len xs)) -> (List c (len xs))
-transpose :: c:Int -> r:PosInt -> Matrix a r c -> Matrix a c r
-\end{code}
-
-whose types will prove essential in order to verify the invariants of the
-clustering algorithm. You might open the [previous episode][kmeansI] in a
-separate tab to keep those functions handy, but fear not, we will refresh
-our memory about them when we get around to using them below.
-
-Generalized Points
-------------------
-
-To be more flexible, we will support *arbitrary* points as long as they can
-be **projected** to Euclidian space. In addition to supporting, say, an
-image or a [cat video][maru] as a point, this will allow us to *weight*
-different dimensions to different degrees.
-
-We represent generalized points with a record
-
-\begin{code}
-data WrapType b a = WrapType {getVect :: b, getVal :: a}
-\end{code}
-
-and we can define an alias that captures the dimensionality of the point
-
-\begin{code}
-{-@ type GenPoint a N  = WrapType (Point N) a @-}
-\end{code}
-
-That is, `GenPoint a N` denotes a general `a` value that has an
-`N`-dimensional projection into Euclidean space.
-
-Algorithm: Iterative Clustering
--------------------------------
-
-Terrific, now that all the pieces are in place lets look at the KMeans
-algorithm. We have implemented a function `kmeans'`, which takes as input a
-dimension `n`, the maximum number of clusters `k` (which must be positive),
-a list of *generalized points* of dimension `n`, and returns a `Clustering`
-(i.e. a list of *non-empty lists*) of the generalized points.
-
-So much verbiage -- a type is worth a thousand comments!
-
-\begin{code}
-{-@ kmeans' :: n:Int
-            -> k:PosInt
-            -> points:[(GenPoint a n)]
-            -> (Clustering (GenPoint a n)) @-}
-\end{code}
-
-There! Crisp and to the point. Sorry. Anyhoo, the function implements the
-above type.
-
-\begin{code}
-kmeans' n k points    = fixpoint (refineCluster n) initialClustering
-  where
-    initialClustering = partition clusterSize points
-    clusterSize       = max 1 ((length points + k - 1) `div` k)
-
-    fixpoint          :: (Eq a) => (a -> a) -> a -> a
-    fixpoint f x      = if (f x) == x then x else fixpoint f (f x)
-\end{code}
-
-That is, `kmeans'` creates an `initialClustering` by
-`partition`-ing the `points` into chunks with `clusterSize` elements.
-Then, it invokes `fixpoint` to *iteratively refine* the initial
-clustering  with `refineCluster` until it converges to a stable
-clustering that cannot be improved upon. This stable clustering
-is returned as the output.
-
-LiquidHaskell verifies that `kmeans'` adheres to the given signature in two steps.
-
-**1. Initial Clustering**
-
-\begin{code} First, LiquidHaskell determines from
-max       :: (Ord a) => x:a -> y:a -> {v: a | (v >= x) && ( v >= y) }
-\end{code}
-
-\begin{code} that `clusterSize` is strictly positive, and hence, from
-partition :: size:PosInt -> [a] -> (Clustering a)
-\end{code}
-
-which we saw [last time][kmeansI], that `initialClustering` is indeed
-a valid `Clustering` of `(GenPoint a n)`.
-
-**2. Fixpoint**
-
-Next, LiquidHaskell infers that at the call `fixpoint (refineCluster n)
-...`, that the type parameter `a` of `fixpoint` can be *instantiated* with
-`Clustering (GenPoint a n)`.  This is because `initialClustering` is a
-valid clustering, as we saw above, and because `refineCluster` takes -- and
-returns -- valid `n`-dimensional clusterings, as we shall see below.
-Consequently, the value returned by `kmeans'` is also `Clustering` of
-`GenPoint a n` as required.
-
-Refining A Clustering
----------------------
-
-Thus, the real work in KMeans happens inside `refineCluster`, which takes a
-clustering and improves it, like so:
-
-\begin{code}
-refineCluster n clusters = clusters'
-  where
-    -- 1. Compute cluster centers
-    centers        = map (clusterCenter n) clusters
-
-    -- 2. Map points to their nearest center
-    points         = concat clusters
-    centeredPoints = sort [(nearestCenter n p centers, p) | p <- points]
-
-    -- 3. Group points by nearest center to get new clusters
-    centeredGroups = groupBy ((==) `on` fst) centeredPoints
-    clusters'      = map (map snd) centeredGroups
-\end{code}
-
-The behavior of `refineCluster` is pithily captured by its type
-
-\begin{code}
-{-@ refineCluster :: n:Int
-                  -> Clustering (GenPoint a n)
-                  -> Clustering (GenPoint a n) @-}
-\end{code}
-
-The refined clustering is computed in three steps.
-
-1. First, we compute the `centers :: [(Point n)]` of the current `clusters`.
-   This is achieved by using `clusterCenter`, which maps a list of generalized
-   `n`-dimensional points to a *single* `n` dimensional point (i.e. `Point n`).
-
-2. Next, we pair each point `p` in the list of all `points` with its `nearestCenter`.
-
-3. Finally, the pairs in the list of `centeredPoints` are grouped by the
-   center, i.e. the first element of the tuple. The resulting groups are
-   projected back to the original generalized points yielding the new
-   clustering.
-
-\begin{code} The type of the output follows directly from
-groupBy :: (a -> a -> Bool) -> [a] -> (Clustering a)
-\end{code}
-
-from [last time][kmeansI]. At the call site above, LiquidHaskell infers that
-`a` can be instantiated with `((Point n), (GenPoint a n))` thereby establishing
-that, after *projecting away* the first element, the output is a list of
-non-empty lists of generalized `n`-dimensional points.
-
-That leaves us with the two crucial bits of the algorithm: `clusterCenter`
-and `nearestCenter`.
-
-Computing the Center of a Cluster
----------------------------------
-
-The center of an `n`-dimensional cluster is simply an `n`-dimensional point
-whose value in each dimension is equal to the *average* value of that
-dimension across all the points in the cluster.
-
-\begin{code} For example, consider a cluster of 2-dimensional points,
-exampleCluster = [ [0,  0]
-                 , [1, 10]
-                 , [2, 20]
-                 , [4, 40]
-                 , [5, 50] ]
-\end{code}
-
-\begin{code} The center of the cluster is
-exampleCenter = [ (0 + 1  + 2  + 4  + 5 ) / 5
-                , (0 + 10 + 20 + 40 + 50) / 5 ]
-\end{code}
-
-\begin{code} which is just
-exampleCenter = [ 3, 30 ]
-\end{code}
-
-Thus, we can compute a `clusterCenter` via the following procedure
-
-\begin{code}
-clusterCenter n xs = map average xs'
-  where
-    numPoints      = length xs
-    xs'            = transpose n numPoints (map getVect xs)
-
-    average        :: [Double] -> Double
-    average        = (`safeDiv` numPoints) . sum
-\end{code}
-
-First, we `transpose` the matrix of points in the cluster.
-Suppose that `xs` is the `exampleCluster` from above
-(and so `n` is `2` and `numPoints` is `5`.)
-
-\begin{code} In this scenario, `xs'` is
-xs' = [ [0,  1,  2,  4,  5]
-      , [0, 10, 20, 40, 50] ]
-\end{code}
-
-and so `map average xs'` evaluates to `exampleCenter` from above.
-
-We have ensured that the division in the average does not lead to
-any nasty surprises via a *safe division* function whose precondition
-checks that the denominator is non-zero, [as illustrated here][ref101].
-
-\begin{code}
-{- safeDiv   :: (Fractional a) => a -> {v:Int | v != 0} -> a -}
-safeDiv     :: (Fractional a) => a -> Int -> a
-safeDiv n 0 = liquidError "divide by zero"
-safeDiv n d = n / (fromIntegral d)
-\end{code}
-
-LiquidHaskell verifies that the divide-by-zero never occurs, and furthermore,
-that `clusterCenter` indeed computes an `n`-dimensional center by inferring that
-
-\begin{code}
-{-@ clusterCenter :: n:Int -> NonEmptyList (GenPoint a n) -> Point n @-}
-\end{code}
-
-LiquidHaskell deduces that the *input* list of points `xs` is non-empty
-from the fact that `clusterCenter` is only invoked on the elements of a
-`Clustering` which comprise only non-empty lists. Since `xs` is non-empty,
-i.e. `(len xs) > 0`, LiquidHaskell infers that `numPoints` is positive
-(hover over `length` to understand why), and hence, LiquidHaskell is
-satisfied that the call to `safeDiv` will always proceed without any
-incident.
-
-\begin{code} To establish the *output* type `Point n` LiquidHaskell leans on the fact that
-transpose :: n:Int -> m:PosInt -> Matrix a m n -> Matrix a n m
-\end{code}
-
-to deduce that `xs'` is of type `Matrix Double n numPoints`, that is to
-say, a list of length `n` containing lists of length `numPoints`. Since
-`map` preserves the length, the value `map average xs'` is also a list
-of length `n`, i.e. `Point n`.
-
-
-Finding the Nearest Center
---------------------------
-
-The last piece of the puzzle is `nearestCenter` which maps each
-(generalized) point to the center that it is nearest. The code is
-pretty self-explanatory:
-
-\begin{code}
-nearestCenter     :: Int -> WrapType [Double] a -> [[Double]] -> [Double]
-nearestCenter n x = minKey . map (\c -> (c, distance c (getVect x)))
-\end{code}
-
-We `map` the centers to a tuple of center `c` and the `distance` between
-`x` and `c`, and then we select the tuple with the smallest distance
-
-\begin{code}
-minKey  :: (Ord v) => [(k, v)] -> k
-minKey  = fst . minimumBy (\x y -> compare (snd x) (snd y))
-\end{code}
-
-The interesting bit is that the `distance` function uses `zipWith` to
-ensure that the dimensionality of the center and the point match up.
-
-\begin{code}
-distance     :: [Double] -> [Double] -> Double
-distance a b = sqrt . sum $ zipWith (\v1 v2 -> (v1 - v2) ^ 2) a b
-\end{code}
-
-LiquidHaskell verifies `distance` by inferring that
-
-\begin{code}
-{-@ nearestCenter :: n:Int -> (GenPoint a n) -> [(Point n)] -> (Point n) @-}
-\end{code}
-
-First, LiquidHaskell deduces that each center in `cs` is indeed `n`-dimensional, which
-follows from the output type of `clusterCenter`. Since `x` is a `(GenPoint a n)`
-LiquidHaskell infers that both `c` and `getVect x` are of an equal length `n`.
-
-\begin{code} Consequently, the call to
-zipWith :: (a -> b -> c) -> xs:[a] -> (List b (len xs)) -> (List c (len xs))
-\end{code}
-
-[discussed last time][kmeansI] is determined to be safe.
-
-Finally, the value returned is just one of the input centers and so is a `(Point n)`.
-
-
-Putting It All Together: Top-Level API
---------------------------------------
-
-We can bundle the algorithm into two top-level API functions.
-
-First, a version that clusters *generalized* points. In this case, we
-require a function that can `project` an `a` value to an `n`-dimensional
-point. This function just wraps each `a`, clusters via `kmeans'` and then
-unwraps the points.
-
-\begin{code}
-{-@ kmeansGen :: n:Int
-              -> (a -> (Point n))
-              -> k:PosInt
-              -> xs:[a]
-              -> (Clustering a)
-  @-}
-
-kmeansGen n project k = map (map getVal)
-                      . kmeans' n k
-                      . map (\x -> WrapType (project x) x)
-\end{code}
-
-Second, a specialized version that operates directly on `n`-dimensional
-points. The specialized version just calls the general version with a
-trivial `id` projection.
-
-\begin{code}
-{-@ kmeans :: n:Int
-           -> k:PosInt
-           -> points:[(Point n)]
-           -> (Clustering (Point n))
-  @-}
-
-kmeans n   = kmeansGen n id
-\end{code}
-
-Conclusions
------------
-
-I hope that over the last two posts you have gotten a sense of
-
-1. What KMeans clustering is all about,
-
-2. How measures and refinements can be used to describe the behavior
-   of common list operations like `map`, `transpose`, `groupBy`, `zipWith`, and so on,
-
-3. How LiquidHaskell's automated inference makes it easy to write and
-   verify invariants of non-trivial programs.
-
-The sharp reader will have noticed that the one *major*, non syntactic, change to the
-[original code][URL-kmeans] is the addition of the dimension parameter `n` throughout
-the code. This is critically required so that we can specify the relevant
-invariants (which are in terms of `n`.) The value is actually a ghost, and
-never ever used. Fortunately, Haskell's laziness means that we don't have
-to worry about it (or other ghost variables) imposing any run-time overhead
-at all.
-
-**Exercise:** Incidentally, if you have followed thus far I would
-encourage you to ponder about how you might modify the types (and
-implementation) to verify that KMeans indeed produces at most `k` clusters...
-
-[ref101]:        /blog/2013/01/01/refinement-types-101.lhs/
-[safeList]:      /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
-[kmeansI]:       /blog/2013/02/16/kmeans-clustering-I.lhs/
-[kmeansII]:      /blog/2013/02/17/kmeans-clustering-II.lhs/
-[URL-take]:      https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/List.lhs#L334
-[URL-groupBy]:   http://hackage.haskell.org/packages/archive/base/latest/doc/html/Data-List.html#v:groupBy
-[URL-transpose]: http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html#transpose
-[maru]:          http://www.youtube.com/watch?v=8uDuls5TyNE
-[demo]:          http://goto.ucsd.edu/~rjhala/liquid/haskell/demo/#?demo=KMeansHelper.hs
-[URL-kmeans]:    http://hackage.haskell.org/package/kmeans
-
-
diff --git a/docs/blog/2013-03-04-bounding-vectors.lhs b/docs/blog/2013-03-04-bounding-vectors.lhs
deleted file mode 100644
--- a/docs/blog/2013-03-04-bounding-vectors.lhs
+++ /dev/null
@@ -1,428 +0,0 @@
----
-layout: post
-title: "Bounding Vectors"
-date: 2013-03-04 16:12
-author: Ranjit Jhala
-published: true 
-comments: true
-external-url:
-categories: basic
-demo: vectorbounds.hs
----
-
-Today, lets look at a classic use-case for refinement types, namely, 
-the static verification of **vector access bounds**. Along the way, 
-we'll see some examples that illustrate how LiquidHaskell reasons 
-about *recursion*, *higher-order functions*, *data types*, and 
-*polymorphism*.
-
-<!-- more -->
-
-\begin{code}
-module VectorBounds (
-    safeLookup 
-  , unsafeLookup, unsafeLookup'
-  , absoluteSum, absoluteSum'
-  , dotProduct
-  , sparseProduct, sparseProduct'
-  ) where
-
-import Prelude      hiding (length)
-import Data.List    (foldl')
-import Data.Vector  hiding (foldl') 
-\end{code}
-
-Specifying Bounds for Vectors
------------------------------
-
-One [classical][dmlarray] use-case for refinement types is to verify
-the safety of accesses of arrays and vectors and such, by proving that
-the indices used in such accesses are *within* the vector bounds. 
-Lets see how to do this with LiquidHaskell by writing a few short
-functions that manipulate vectors, in particular, those from the 
-popular [vector][vec] library. 
-
-First things first. Lets **specify** bounds safety by *refining* 
-the types for the [key functions][vecspec] exported by the module 
-`Data.Vector`. 
-
-\begin{code}Specifications for `Data.Vector`
-module spec Data.Vector where
-
-import GHC.Base
-
-measure vlen  ::   (Vector a) -> Int 
-assume length :: x:(Vector a) -> {v:Int | v = (vlen x)}
-assume !      :: x:(Vector a) -> {v:Int | 0 <= v && v < (vlen x)} -> a 
-\end{code}
-
-In particular, we 
-
-- **define** a *property* called `vlen` which denotes the size of the vector,
-- **assume** that the `length` function *returns* an integer equal to the vector's size, and
-- **assume** that the lookup function `!` *requires* an index between `0` and the vector's size.
-
-There are several things worth paying close attention to in the above snippet.
-
-**Measures**
-
-[Recall][listtail] that measures define auxiliary (or so-called **ghost**)
-properties of data values that are useful for specification and verification, 
-but which *don't actually exist at run-time*. Thus, they will 
-*only appear in specifications*, i.e. inside type refinements, but *never* 
-inside code. Often we will use helper functions like `length` in this case, 
-which *pull* or *materialize* the ghost values from the refinement world 
-into the actual code world.
-
-**Assumes**
-
-We write `assume` because in this scenario we are not *verifying* the
-implementation of `Data.Vector`, we are simply *using* the properties of
-the library to verify client code.  If we wanted to verify the library
-itself, we would ascribe the above types to the relevant functions in the
-Haskell source for `Data.Vector`. 
-
-**Dependent Refinements**
-
-Notice that in the function type (e.g. for `length`) we have *named* the *input*
-parameter `x` so that we can refer to it in the *output* refinement. 
-
-\begin{code} In this case, the type 
-assume length   :: x:(Vector a) -> {v : Int | v = (vlen x)}
-\end{code}
-
-states that the `Int` output is exactly equal to the size of the input `Vector` named `x`.
-
-In other words, the output refinement **depends on** the input value, which
-crucially allows us to write properties that *relate* different program values.
-
-**Verifying a Simple Wrapper**
-
-Lets try write some simple functions to sanity check the above specifications. 
-First, consider an *unsafe* vector lookup function:
-
-\begin{code}
-unsafeLookup vec index = vec ! index
-\end{code}
-
-If we run this through LiquidHaskell, it will spit back a type error for
-the expression `x ! i` because (happily!) it cannot prove that `index` is
-between `0` and the `vlen vec`. Of course, we can specify the bounds 
-requirement in the input type
-
-\begin{code}
-{-@ unsafeLookup :: vec:Vector a 
-                 -> {v: Int | (0 <= v && v < (vlen vec))} 
-                 -> a 
-  @-}
-\end{code}
-
-then LiquidHaskell is happy to verify the lookup. Of course, now the burden
-of ensuring the index is valid is pushed to clients of `unsafeLookup`.
-
-Instead, we might write a *safe* lookup function that performs the *bounds check*
-before looking up the vector:
-
-\begin{code}
-{-@ safeLookup :: Vector a -> Int -> Maybe a @-}
-safeLookup x i 
-  | 0 <= i && i < length x = Just (x ! i)
-  | otherwise              = Nothing 
-\end{code}
-
-**Predicate Aliases**
-
-The type for `unsafeLookup` above is rather verbose as we have to spell out
-the upper and lower bounds and conjoin them. Just as we enjoy abstractions
-when programming, we will find it handy to have abstractions in the
-specification mechanism. To this end, LiquidHaskell supports 
-*predicate aliases*, which are best illustrated by example
-
-\begin{code}
-{-@ predicate Btwn Lo I Hi = (Lo <= I && I < Hi) @-}
-{-@ predicate InBounds I A = (Btwn 0 I (vlen A)) @-}
-\end{code}
-
-Now, we can simplify the type for the unsafe lookup function to
-
-\begin{code}
-{-@ unsafeLookup' :: x:Vector a -> {v:Int | (InBounds v x)} -> a @-}
-unsafeLookup' :: Vector a -> Int -> a
-unsafeLookup' x i = x ! i
-\end{code}
-
-
-Our First Recursive Function
-----------------------------
-
-OK, with the tedious preliminaries out of the way, lets write some code!
-
-To start: a vanilla recursive function that adds up the absolute values of
-the elements of an integer vector.
-
-\begin{code}
-absoluteSum       :: Vector Int -> Int 
-absoluteSum vec   = if 0 < n then go 0 0 else 0
-  where
-    go acc i 
-      | i /= n    = go (acc + abz (vec ! i)) (i + 1)
-      | otherwise = acc 
-    n             = length vec
-\end{code}
-
-where the function `abz` is the absolute value function from [before][ref101].
-
-\begin{code}
-abz n = if 0 <= n then n else (0 - n) 
-\end{code}
-
-Digression: Introducing Errors  
-------------------------------
-
-If you are following along in the demo page -- I heartily 
-recommend that you try the following modifications, 
-one at a time, and see what happens.
-
-**What happens if:** 
-
-1. You *remove* the check `0 < n` (see `absoluteSumNT` in the demo code)
-
-2. You *replace* the guard with `i <= n`
-
-In the *former* case, LiquidHaskell will *verify* safety, but
-in the *latter* case, it will grumble that your program is *unsafe*. 
-
-Do you understand why? 
-(Thanks to [smog_alado][smog_alado] for pointing this out :))
-
-
-Refinement Type Inference
--------------------------
-
-LiquidHaskell happily verifies `absoluteSum` -- or, to be precise, 
-the safety of the vector accesses `vec ! i`. The verification works 
-out because LiquidHaskell is able to automatically infer a suitable 
-type for `go`. Shuffle your mouse over the identifier above to see 
-the inferred type. Observe that the type states that the first 
-parameter `acc` (and the output) is `0 <= V`. That is, the returned
-value is non-negative.
-
-More importantly, the type states that the second parameter `i` is 
-`0 <= V` and `V <= n` and `V <= (vlen vec)`. That is, the parameter `i` 
-is between `0` and the vector length (inclusive). LiquidHaskell uses these 
-and the test that `i /= n` to establish that `i` is in fact between `0` 
-and `(vlen vec)` thereby verifing safety. 
-
-In fact, if we want to use the function externally (i.e. in another module) 
-we can go ahead and strengthen its type to specify that the output is 
-non-negative.
-
-\begin{code}
-{-@ absoluteSum :: Vector Int -> {v: Int | 0 <= v}  @-} 
-\end{code}
-
-**What happens if:** You *replace* the output type for `absoluteSum` with `{v: Int | 0 < v }` ?
-
-Bottling Recursion With a Higher-Order `loop`
----------------------------------------------
-
-Next, lets refactor the above low-level recursive function 
-into a generic higher-order `loop`.
-
-\begin{code}
-loop :: Int -> Int -> a -> (Int -> a -> a) -> a 
-loop lo hi base f = go base lo
-  where
-    go acc i     
-      | i /= hi   = go (f i acc) (i + 1)
-      | otherwise = acc
-\end{code}
-
-**Using `loop` to compute `absoluteSum`**
-
-We can now use `loop` to implement `absoluteSum` like so:
-
-\begin{code}
-absoluteSum' vec = if 0 < n then loop 0 n 0 body else 0
-  where body     = \i acc -> acc + (vec ! i)
-        n        = length vec
-\end{code}
-
-LiquidHaskell verifies `absoluteSum'` without any trouble.
-
-It is very instructive to see the type that LiquidHaskell *infers* 
-for `loop` -- it looks something like
-
-\begin{code}
-{-@ loop :: lo: {v: Int | (0 <= v) }  
-         -> hi: {v: Int | (lo <= v) } 
-         -> a 
-         -> (i: {v: Int | (Btwn lo v hi)} -> a -> a)
-         -> a 
-  @-}
-\end{code}
-
-In english, the above type states that 
-
-- `lo` the loop *lower* bound is a non-negative integer
-- `hi` the loop *upper* bound is a greater than `lo`,
-- `f`  the loop *body* is only called with integers between `lo` and `hi`.
-
-Inference is a rather convenient option -- it can be tedious to have to keep 
-typing things like the above! Of course, if we wanted to make `loop` a
-public or exported function, we could use the inferred type to generate 
-an explicit signature too.
-
-\begin{code}At the call 
-loop 0 n 0 body 
-\end{code}
-
-the parameters `lo` and `hi` are instantiated with `0` and `n` respectively
-(which, by the way is where the inference engine deduces non-negativity
-from) and thus LiquidHaskell concludes that `body` is only called with
-values of `i` that are *between* `0` and `(vlen vec)`, which shows the 
-safety of the call `vec ! i`.
-
-**Using `loop` to compute `dotProduct`**
-
-Here's another use of `loop` -- this time to compute the `dotProduct` 
-of two vectors. 
-
-\begin{code}
-dotProduct     :: Vector Int -> Vector Int -> Int
-dotProduct x y = loop 0 (length x) 0 (\i -> (+ (x ! i) * (y ! i))) 
-\end{code}
-
-The gimlet-eyed reader will realize that the above is quite unsafe -- what
-if `x` is a 10-dimensional vector while `y` has only 3-dimensions? 
-
-\begin{code}A nasty
-*** Exception: ./Data/Vector/Generic.hs:244 ((!)): index out of bounds ...
-\end{code}
-
-*Yech*. 
-
-This is precisely the sort of unwelcome surprise we want to do away with at 
-compile-time. Refinements to the rescue! We can specify that the vectors 
-have the same dimensions quite easily
-
-\begin{code}
-{-@ dotProduct :: x:(Vector Int) 
-               -> y:{v: (Vector Int) | (vlen v) = (vlen x)} 
-               -> Int 
-  @-}
-\end{code}
-
-after which LiquidHaskell will gladly verify that the implementation of
-`dotProduct` is indeed safe!
-
-Refining Data Types
--------------------
-
-Next, suppose we want to write a *sparse dot product*, that is, 
-the dot product of a vector and a **sparse vector** represented
-by a list of index-value tuples.
-
-**Representing Sparse Vectors**
-
-We can represent the sparse vector with a **refinement type alias** 
-
-\begin{code}
-{-@ type SparseVector a N = [({v: Int | (Btwn 0 v N)}, a)] @-}
-\end{code}
-
-As with usual types, the alias `SparseVector` on the left is just a 
-shorthand for the (longer) type on the right, it does not actually 
-define a new type. Thus, the above alias is simply a refinement of
-Haskell's `[(Int, a)]` type, with a size parameter `N` that facilitates 
-easy specification reuse. In this way, refinements let us express 
-invariants of containers like lists in a straightforward manner. 
-
-**Aside:** If you are familiar with the *index-style* length 
-encoding e.g. as found in [DML][dml] or [Agda][agdavec], then note
-that despite appearances, our `SparseVector` definition is *not* 
-indexed. Instead, we deliberately choose to encode properties 
-with logical refinement predicates, to facilitate SMT based 
-checking and inference.
-
-**Verifying Uses of Sparse Vectors**
-
-Next, we can write a recursive procedure that computes the sparse product
-
-\begin{code}
-{-@ sparseProduct :: (Num a) => x:(Vector a) 
-                             -> SparseVector a (vlen x) 
-                             -> a 
-  @-}
-sparseProduct x y  = go 0 y
-  where 
-    go sum ((i, v) : y') = go (sum + (x ! i) * v) y' 
-    go sum []            = sum
-\end{code}
-
-LiquidHaskell verifies the above by using the specification for `y` to
-conclude that for each tuple `(i, v)` in the list, the value of `i` is 
-within the bounds of the vector `x`, thereby proving the safety of the 
-access `x ! i`.
-
-Refinements and Polymorphism
-----------------------------
-
-The sharp reader will have undoubtedly noticed that the sparse product 
-can be more cleanly expressed as a [fold][foldl]. 
-
-\begin{code} Indeed! Let us recall the type of the `foldl` operation
-foldl' :: (a -> b -> a) -> a -> [b] -> a
-\end{code}
-
-Thus, we can simply fold over the sparse vector, accumulating the `sum`
-as we go along
-
-\begin{code}
-{-@ sparseProduct' :: (Num a) => x:(Vector a) 
-                             -> SparseVector a (vlen x) 
-                             -> a 
-  @-}
-sparseProduct' x y  = foldl' body 0 y   
-  where 
-    body sum (i, v) = sum + (x ! i) * v
-\end{code}
-
-LiquidHaskell digests this too, without much difficulty. 
-
-The main trick is in how the polymorphism of `foldl'` is instantiated. 
-
-1. The GHC type inference engine deduces that at this site, the type variable
-   `b` from the signature of `foldl'` is instantiated to the Haskell type `(Int, a)`. 
-
-2. Correspondingly, LiquidHaskell infers that in fact `b` can be instantiated
-   to the *refined* type `({v: Int | (Btwn 0 v (vlen x))}, a)`. 
-   
-Walk the mouse over to `i` to see this inferred type. (You can also hover over
-`foldl'`above to see the rather more verbose fully instantiated type.)
-
-Thus, the inference mechanism saves us a fair bit of typing and allows us to
-reuse existing polymorphic functions over containers and such without ceremony.
-
-Conclusion
-----------
-
-That's all for now folks! Hopefully the above gives you a reasonable idea of
-how one can use refinements to verify size related properties, and more
-generally, to specify and verify properties of recursive, and polymorphic
-functions operating over datatypes. Next time, we'll look at how we can
-teach LiquidHaskell to think about properties of recursive structures
-like lists and trees.
-
-[smog_alado]: http://www.reddit.com/user/smog_alado
-
-[vecspec]:  https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/Vector.spec
-[vec]:      http://hackage.haskell.org/package/vector
-[dml]:      http://www.cs.bu.edu/~hwxi/DML/DML.html
-[agdavec]:  http://code.haskell.org/Agda/examples/Vec.agda
-[ref101]:   /blog/2013/01/01/refinement-types-101.lhs/ 
-[ref102]:   /blog/2013/01/27/refinements-101-reax.lhs/ 
-[foldl]:    http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html
-[listtail]: /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
-[dmlarray]: http://www.cs.bu.edu/~hwxi/academic/papers/pldi98.pdf
-
diff --git a/docs/blog/2013-03-26-talking-about-sets.lhs b/docs/blog/2013-03-26-talking-about-sets.lhs
deleted file mode 100644
--- a/docs/blog/2013-03-26-talking-about-sets.lhs
+++ /dev/null
@@ -1,383 +0,0 @@
----
-layout: post
-title: "Talking About Sets"
-date: 2013-03-26 16:12
-comments: true
-external-url:
-categories: basic measures sets
-author: Ranjit Jhala
-published: true 
-demo: TalkingAboutSets.hs
----
-
-In the posts so far, we've seen how LiquidHaskell allows you to use SMT 
-solvers to specify and verify *numeric* invariants -- denominators 
-that are non-zero, integer indices that are within the range of an 
-array, vectors that have the right number of dimensions and so on.
-
-However, SMT solvers are not limited to numbers, and in fact, support
-rather expressive logics. In the next couple of posts, let's see how
-LiquidHaskell uses SMT to talk about **sets of values**, for example, 
-the contents of a list, and to specify and verify properties about 
-those sets.
-
-<!-- more -->
-
-\begin{code}
-module TalkingAboutSets where
-
-import Data.Set hiding (filter, split)
-import Prelude  hiding (reverse, filter)
-
-\end{code}
-
-Talking about Sets (In Logic)
-=============================
-
-First, we need a way to talk about sets in the refinement logic. We could
-roll our own special Haskell type, but why not just use the `Set a` type
-from `Data.Set`.
-
-The `import Data.Set` , also instructs LiquidHaskell to import in the various 
-specifications defined for the `Data.Set` module that we have *predefined* 
-in [Data/Set.spec][setspec] 
-
-\begin{code} Let's look at the specifications.
-module spec Data.Set where
-
-embed Set as Set_Set
-\end{code}
-
-The `embed` directive tells LiquidHaskell to model the **Haskell** 
-type constructor `Set` with the **SMT** type constructor `Set_Set`.
-
-\begin{code} First, we define the logical operators (i.e. `measure`s) 
-measure Set_sng  :: a -> (Set a)                    -- ^ singleton
-measure Set_cup  :: (Set a) -> (Set a) -> (Set a)   -- ^ union
-measure Set_cap  :: (Set a) -> (Set a) -> (Set a)   -- ^ intersection
-measure Set_dif  :: (Set a) -> (Set a) -> (Set a)   -- ^ difference 
-\end{code}
-
-\begin{code} Next, we define predicates on `Set`s 
-measure Set_emp  :: (Set a) -> Prop                 -- ^ emptiness
-measure Set_mem  :: a -> (Set a) -> Prop            -- ^ membership
-measure Set_sub  :: (Set a) -> (Set a) -> Prop      -- ^ inclusion 
-\end{code}
-
-
-Interpreted Operations
-----------------------
-
-The above operators are *interpreted* by the SMT solver. 
-
-\begin{code} That is, just like the SMT solver "knows that"
-2 + 2 == 4
-\end{code}
-
-\begin{code} the SMT solver also "knows that"
-(Set_sng 1) == (Set_cap (Set_sng 1) (Set_cup (Set_sng 2) (Set_sng 1)))
-\end{code}
-
-This is because, the above formulas belong to a decidable Theory of Sets
-which can be reduced to McCarthy's more general [Theory of Arrays][mccarthy]. 
-See [this recent paper][z3cal] if you want to learn more about how modern SMT 
-solvers "know" the above equality holds...
-
-Talking about Sets (In Code)
-============================
-
-Of course, the above operators exist purely in the realm of the 
-refinement logic, beyond the grasp of the programmer.
-
-To bring them down (or up, or left or right) within reach of Haskell code, 
-we can simply *assume* that the various public functions in `Data.Set` do 
-the *Right Thing* i.e. produce values that reflect the logical set operations:
-
-\begin{code} First, the functions that create `Set` values
-empty     :: {v:(Set a) | (Set_emp v)}
-singleton :: x:a -> {v:(Set a) | v = (Set_sng x)}
-\end{code}
-
-\begin{code} Next, the functions that operate on elements and `Set` values
-insert :: Ord a => x:a 
-                -> xs:(Set a) 
-                -> {v:(Set a) | v = (Set_cup xs (Set_sng x))}
-
-delete :: Ord a => x:a 
-                -> xs:(Set a) 
-                -> {v:(Set a) | v = (Set_dif xs (Set_sng x))}
-\end{code}
-
-\begin{code} Then, the binary `Set` operators
-union        :: Ord a => xs:(Set a) 
-                      -> ys:(Set a) 
-                      -> {v:(Set a) | v = (Set_cup xs ys)}
-
-intersection :: Ord a => xs:(Set a) 
-                      -> ys:(Set a) 
-                      -> {v:(Set a) | v = (Set_cap xs ys)}
-
-difference   :: Ord a => xs:(Set a) 
-                      -> ys:(Set a) 
-                      -> {v:(Set a) | v = (Set_dif xs ys)}
-\end{code}
-
-\begin{code} And finally, the predicates on `Set` values:
-isSubsetOf :: Ord a => xs:(Set a) 
-                    -> ys:(Set a) 
-                    -> {v:Bool | (Prop v) <=> (Set_sub xs ys)}
-
-member     :: Ord a => x:a 
-                    -> xs:(Set a) 
-                    -> {v:Bool | (Prop v) <=> (Set_mem x xs)}
-\end{code}
-
-**Note:** Of course we shouldn't and needn't really *assume*, but should and
-will *guarantee* that the functions from `Data.Set` implement the above types. 
-But thats a story for another day...
-
-Proving Theorems With LiquidHaskell
-===================================
-
-OK, let's take our refined operators from `Data.Set` out for a spin!
-One pleasant consequence of being able to precisely type the operators 
-from `Data.Set` is that we have a pleasant interface for using the SMT
-solver to *prove theorems* about sets, while remaining firmly rooted in
-Haskell. 
-
-First, let's write a simple function that asserts that its input is `True`
-
-\begin{code}
-{-@ boolAssert :: {v: Bool | (Prop v)} -> {v:Bool | (Prop v)} @-}
-boolAssert True   = True
-boolAssert False  = error "boolAssert: False? Never!"
-\end{code}
-
-Now, we can use `boolAssert` to write some simple properties. (Yes, these do
-indeed look like QuickCheck properties -- but here, instead of generating
-tests and executing the code, the type system is proving to us that the
-properties will *always* evaluate to `True`) 
-
-Let's check that `intersection` is commutative ...
-
-\begin{code}
-prop_cap_comm x y 
-  = boolAssert 
-  $ (x `intersection` y) == (y `intersection` x)
-\end{code}
-
-that `union` is associative ...
-
-\begin{code}
-prop_cup_assoc x y z 
-  = boolAssert 
-  $ (x `union` (y `union` z)) == (x `union` y) `union` z
-\end{code}
-
-and that `union` distributes over `intersection`.
-
-\begin{code}
-prop_cap_dist x y z 
-  = boolAssert 
-  $  (x `intersection` (y `union` z)) 
-  == (x `intersection` y) `union` (x `intersection` z) 
-\end{code}
-  
-Of course, while we're at it, let's make sure LiquidHaskell
-doesn't prove anything that *isn't* true ...
-
-\begin{code}
-prop_cup_dif_bad x y
-   = boolAssert 
-   $ x == (x `union` y) `difference` y
-\end{code}
-
-Hmm. You do know why the above doesn't hold, right? It would be nice to
-get a *counterexample* wouldn't it? Well, for the moment, there is
-QuickCheck!
-
-Thus, the refined types offer a nice interface for interacting with the SMT
-solver in order to prove theorems in LiquidHaskell. (BTW, The [SBV project][sbv]
-describes another approach for using SMT solvers from Haskell, without the 
-indirection of refinement types.)
-
-While the above is a nice warm up exercise to understanding how
-LiquidHaskell reasons about sets, our overall goal is not to prove 
-theorems about set operators, but instead to specify and verify 
-properties of programs. 
-
-
-
-The Set of Values in a List
-===========================
-
-Let's see how we might reason about sets of values in regular Haskell programs.
-
-We'll begin with Lists, the jack-of-all-data-types. Now, instead of just
-talking about the **number of** elements in a list, we can write a measure
-that describes the **set of** elements in a list:
-
-\begin{code} A measure for the elements of a list, from [Data/Set.spec][setspec]
-
-measure listElts :: [a] -> (Set a) 
-listElts ([])    = {v | (? Set_emp(v))}
-listElts (x:xs)  = {v | v = (Set_cup (Set_sng x) (listElts xs)) }
-\end{code}
-
-That is, `(listElts xs)` describes the set of elements contained in a list `xs`.
-
-Next, to make the specifications concise, let's define a few predicate aliases:
-
-\begin{code}
-{-@ predicate EqElts  X Y = 
-      ((listElts X) = (listElts Y))                        @-}
-
-{-@ predicate SubElts   X Y = 
-      (Set_sub (listElts X) (listElts Y))                  @-}
-
-{-@ predicate UnionElts X Y Z = 
-      ((listElts X) = (Set_cup (listElts Y) (listElts Z))) @-}
-\end{code}
-
-A Trivial Identity
-------------------
-
-OK, now let's write some code to check that the `listElts` measure is sensible!
-
-\begin{code}
-{-@ listId    :: xs:[a] -> {v:[a] | (EqElts v xs)} @-}
-listId []     = []
-listId (x:xs) = x : listId xs
-\end{code}
-
-That is, LiquidHaskell checks that the set of elements of the output list
-is the same as those in the input.
-
-A Less Trivial Identity
------------------------
-
-Next, let's write a function to `reverse` a list. Of course, we'd like to
-verify that `reverse` doesn't leave any elements behind; that is that the 
-output has the same set of values as the input list. This is somewhat more 
-interesting because of the *tail recursive* helper `go`. Do you understand 
-the type that is inferred for it? (Put your mouse over `go` to see the 
-inferred type.)
-
-\begin{code}
-{-@ reverse       :: xs:[a] -> {v:[a] | (EqElts v xs)} @-}
-reverse           = go [] 
-  where 
-    go acc []     = acc
-    go acc (y:ys) = go (y:acc) ys
-\end{code}
-
-Appending Lists
----------------
-
-Next, here's good old `append`, but now with a specification that states
-that the output indeed includes the elements from both the input lists.
-
-\begin{code}
-{-@ append       :: xs:[a] -> ys:[a] -> {v:[a]| (UnionElts v xs ys)} @-}
-append []     ys = ys
-append (x:xs) ys = x : append xs ys
-\end{code}
-
-Filtering Lists
----------------
-
-Let's round off the list trilogy, with `filter`. Here, we can verify
-that it returns a **subset of** the values of the input list.
-
-\begin{code}
-{-@ filter      :: (a -> Bool) -> xs:[a] -> {v:[a]| (SubElts v xs)} @-}
-
-filter f []     = []
-filter f (x:xs) 
-  | f x         = x : filter f xs 
-  | otherwise   = filter f xs
-\end{code}
-
-Merge Sort
-==========
-
-Let's conclude this entry with one larger example: `mergeSort`.
-We'd like to verify that, well, the list that is returned 
-contains the same set of elements as the input list. 
-
-And so we will!
-
-But first, let's remind ourselves of how `mergeSort` works:
-
-1. `split` the input list into two halves, 
-2. `sort`  each half, recursively, 
-3. `merge` the sorted halves to obtain the sorted list.
-
-
-Split
------
-
-We can `split` a list into two, roughly equal parts like so:
-
-\begin{code}
-split []     = ([], [])
-split (x:xs) = (x:zs, ys)
-  where 
-    (ys, zs) = split xs
-\end{code}
-
-LiquidHaskell verifies that the relevant property of split is
-
-\begin{code} 
-{-@ split :: xs:[a] -> ([a], [a])<{\ys zs -> (UnionElts xs ys zs)}> @-}
-\end{code}
-
-The funny syntax with angle brackets simply says that the output of `split` 
-is a *pair* `(ys, zs)` whose union is the list of elements of the input `xs`.
-(Yes, this is indeed a dependent pair; we will revisit these later to
-understand whats going on with the odd syntax.)
-
-Merge
------
-
-Next, we can `merge` two (sorted) lists like so:
-
-\begin{code}
-merge xs []         = xs
-merge [] ys         = ys
-merge (x:xs) (y:ys) 
-  | x <= y          = x : merge xs (y : ys)
-  | otherwise       = y : merge (x : xs) ys
-\end{code}
-
-As you might expect, the elements of the returned list are the union of the
-elements of the input, or as LiquidHaskell might say,
-
-\begin{code}
-{-@ merge :: (Ord a) => x:[a] -> y:[a] -> {v:[a]| (UnionElts v x y)} @-}
-\end{code}
-
-Sort
-----
-
-Finally, we put all the pieces together by
-
-\begin{code}
-{-@ mergeSort :: (Ord a) => xs:[a] -> {v:[a] | (EqElts v xs)} @-}
-mergeSort []  = []
-mergeSort [x] = [x]
-mergeSort xs  = merge (mergeSort ys) (mergeSort zs) 
-  where 
-    (ys, zs)  = split xs
-\end{code}
-
-The type given to `mergeSort`guarantees that the set of elements in the 
-output list is indeed the same as in the input list. Of course, it says 
-nothing about whether the list is *actually sorted*. 
-
-Well, Rome wasn't built in a day...
-
-[sbv]:      https://github.com/LeventErkok/sbv
-[setspec]:  https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/Set.spec
-[mccarthy]: http://www-formal.stanford.edu/jmc/towards.ps
-[z3cal]:    http://research.microsoft.com/en-us/um/people/leonardo/fmcad09.pdf
diff --git a/docs/blog/2013-05-16-unique-zippers.lhs b/docs/blog/2013-05-16-unique-zippers.lhs
deleted file mode 100644
--- a/docs/blog/2013-05-16-unique-zippers.lhs
+++ /dev/null
@@ -1,313 +0,0 @@
----
-layout: post
-title: "Unique Zippers"
-date: 2013-05-10 16:12
-comments: true
-external-url:
-categories: basic measures sets zipper uniqueness
-author: Niki Vazou
-published: false 
-demo: TalkingAboutUniqueSets.hs
----
-
-**The story so far:** [Previously][talking-about-sets] we saw
-how we can use LiquidHaskell to talk about set of values and specifically
-the set of values in a list.
-
-In this post, we will extend this vocabulary to talk about the 
-set of duplicate values in a list. 
-If we constrain this set to be empty, 
-we encode a list without duplicates, or an **unique list**. 
-Once we express uniqueness on lists, it is straightforward to 
-describe uniqueness on other data structures that contain lists.
-As an example, we will illustrate the properties of a **unique zipper**.
-
-\begin{code}
-module UniqueZipper where
-
-import Prelude  hiding (reverse, (++), filter)
-import Data.Set hiding (filter)
-\end{code}
-
-
-A Quick Recap
-=============
-
-\begin{code} In the previous post we used a measure for the elements of a list, from [Data/Set.spec][setspec]
-measure listElts :: [a] -> (Set a)
-listElts ([])    = {v | (? Set_emp(v))}
-listElts (x:xs)  = {v | v = (Set_cup (Set_sng x) (listElts xs)) }
-\end{code}
-
-With this measure we defined predicate aliases 
-that describe relations between lists:
-
-\begin{code}
-{-@ predicate EqElts  X Y      = ((listElts X) = (listElts Y))                        @-}
-
-{-@ predicate DisjointElts X Y = (Set_emp (Set_cap (listElts X) (listElts Y)))        @-}
-
-{-@ predicate SubElts X Y      = (Set_sub (listElts X) (listElts Y))                  @-}
-
-{-@ predicate UnionElts X Y Z  = ((listElts X) = (Set_cup (listElts Y) (listElts Z))) @-}
-
-{-@ predicate ListElt N X      = (Set_mem N (listElts X))                             @-}
-\end{code}
-
-
-These predicates were our vocabulary on specifying properties of list functions.
-Remember, that `reverse` returns an output list that has the same elements, i.e., `EqElts`, with the input list.
-We can extend these predicates and express list uniqueness.
-So reversing a unique list should again return an output list that has the same
-elements as the input list, and also it is unique.
-
-Describing Unique Lists
-======================
-
-To describe unique lists, we follow two steps:
-first, we describe the set of duplicate values of
-a list;
-then, we demand this set to be empty.
-
-Towards the first step, we define a measure `listDup`
-that returns the duplicate values of its input list.
-This measure is recursively defined:
-The duplicates of an empty list is the empty set.
-We compute the duplicates of a non-empty list, 
-namely `x:xs`, as follows:
-
-- If `x` is member of the list values of `xs`, then `x` is a duplicate
-so `listDup` returns a set that contains `x` and the 
-list duplicates of `xs`, as computed recursively.
-
-- Otherwise, we can ignore `x` and recursively compute the duplicates of `xs`.
-
-\begin{code}
-{-@
-  measure listDup :: [a] -> (Set a)
-  listDup([])   = {v | (? (Set_emp v))}
-  listDup(x:xs) = {v | v = ((Set_mem x (listElts xs))?(Set_cup (Set_sng x) (listDup xs)):(listDup xs)) }
-  @-}
-\end{code}
-
-With `listDup` at hand, it is direct to describe unique lists.
-A list is unique, if the set of duplicates, 
-as computed by `listDup`
-is the empty set.
-We create a type alias for unique lists and name it `UList`.
-
-\begin{code}
-{-@ predicate ListUnique X = (Set_emp (listDup X)) @-}
-
-{-@ type UList a = {v:[a] | (ListUnique v)}        @-}
-\end{code}
-
-
-Functions on Unique Lists
-==========================
-
-In the previous post, we proved interesting properties about 
-the list trilogy, i.e., `append`, `reverse`, and `filter`.
-Now, we will prove that apart from these properties,
-all these function preserve list uniqueness.
-
-To begin with, 
-we proved that the output of append
-indeed includes the elements from both the input lists.
-Now, we can also prove that if both input lists are unique and 
-their values form disjoint sets, then the output list is also unique.
-
-\begin{code}
-infixr 5 ++
-{-@ UniqueZipper.++ :: xs:(UList a)
-                    -> ys:{v: UList a | (DisjointElts v xs)}
-                    -> {v: UList a | (UnionElts v xs ys)}
-  @-}
-(++)         :: [a] -> [a] -> [a]
-[] ++ ys     = ys
-(x:xs) ++ ys = x: (xs ++ ys)
-\end{code}
-
-Next, we can prove that if a unique list is reversed, 
-the output list has the same elements as the input,
-and also it is unique.
-\begin{code}
-{-@ reverse :: xs:(UList a)
-            -> {v: UList a | (EqElts v xs)} 
-  @-}
-reverse :: [a] -> [a]
-reverse = go []
-  where
-    go a []     = a
-    go a (x:xs) = go (x:a) xs 
-\end{code}
-
-Finally, filtering a unique list returns a list
-with a subset of values of the input list, that once again is unique! 
-
-\begin{code}
-{-@ filter :: (a -> Bool) -> xs:(UList a) -> {v:UList a | (SubElts v xs)} @-}
-filter      :: (a -> Bool) -> [a] -> [a]
-filter p [] = []
-filter p (x:xs) 
-  | p x       = x : filter p xs
-  | otherwise = filter p xs
-\end{code}
-
-Unique Zipper
-=============
-
-A [zipper][http://en.wikipedia.org/wiki/Zipper_(data_structure)] is an aggregate data stucture 
-that is used to arbitrary traverse the structure and update its contents.
-We define a zipper as a data type that contains 
-an element (called `focus`) that we are currently using,
-a list of elements (called `up`) before the current one,
-and a list of elements (called `down`) after the current one.
-
-\begin{code}
-data Zipper a = Zipper { focus :: a       -- focused element in this set
-                       , up    :: [a]     -- elements to the left
-                       , down  :: [a] }   -- elements to the right
-\end{code}
-
-
-We would like to state that all the values in the zipper 
-are unique.
-To start with, we would like to refine the `Zipper` data declaration
-to express that both the lists in the structure
-are unique **and** do not include `focus` in their values.
-
-LiquidHaskell allow us to refine data type declarations, 
-using the liquid comments.
-So, apart from above definition definition for the `Zipper`, 
-we add a refined one, stating that the data structure always enjoys 
-the desired properties.
-
-\begin{code}
-{-@ 
-data Zipper a = Zipper { focus :: a
-                       , up    :: UListDif a focus
-                       , down  :: UListDif a focus}
-  @-}
-
-{-@ type UListDif a N = {v:(UList a) | (not (ListElt N v))} @-}
-\end{code}
-
-With this annotation any time we use a `Zipper` in the code
-LiquidHaskell knows that 
-the `up` and `down` components are unique lists that do not include `focus`.
-Moreover, when a new `Zipper` is constructed we should prove that
-this property holds,
-otherwise a liquid error will occur.
-
-You may notice values inside the `Zipper` are not unique, as
-a value can appear in both the `up` and the `down` components.
-So, we have to specify that 
-these two elements form disjoint lists.
-To this end, we define two measures `getUp` and `getDown`
-that return the relevant parts of the `Zipper`
-
-\begin{code}
-{-@ measure getUp :: forall a. (Zipper a) -> [a] 
-    getUp (Zipper focus up down) = up
-  @-}
-
-{-@ measure getDown :: forall a. (Zipper a) -> [a] 
-    getDown (Zipper focus up down) = down
-  @-}
-\end{code}
-
-With these definitions, we create a type alias `UZipper` that states that 
-the two list components are disjoint.
-
-\begin{code}
-{-@ type UZipper a = {v:Zipper a | (DisjointElts (getUp v) (getDown v))} @-}
-\end{code}
-
-Functions on Unique Zipper
-===========================
-
-Since we defined a unique zipper, it is straightforward for
-LiquidHaskell to prove that
-operations on zippers preserve uniqueness.
-
-We can prove that a zipper that contains elements 
-from a unique list is indeed unique.
-
-\begin{code}
-{-@ differentiate :: UList a -> Maybe (UZipper a) @-}
-differentiate :: [a] -> Maybe (Zipper a)
-differentiate []     = Nothing
-differentiate (x:xs) = Just $ Zipper x [] xs
-\end{code}
-
-And vice versa, all elements of a unique zipper 
-can construct a unique list.
-
-\begin{code}
-{-@ integrate :: UZipper a -> UList a @-}
-integrate :: Zipper a -> [a]
-integrate (Zipper x l r) = reverse l ++ x : r
-\end{code}
-
-By the definition of `UZipper` we know that `l` is a unique list
-and that `x` is not an element of `l`.
-Thus, if `l` is reversed using the descriptive type of `reverse` 
-that we provided before, it preserves both these properties.
-The append operator also uses the 
-type that we show before. So LiquidHaskell, can prove that `x : r`
-is indeed a unique list with elements disjoint from `reverse l` and so we can append it to `reverse l` 
-and get a unique list.
-
-
-With the exact same reasoning, 
-we use the above list operations to create more zipper operations.
-
-So we can reverse a unique zipper
-\begin{code}
-{-@ reverseZipper :: UZipper a -> UZipper a @-}
-reverseZipper :: Zipper a -> Zipper a
-reverseZipper (Zipper t ls rs) = Zipper t rs ls
-\end{code}
-
-
-More the focus up or down
-\begin{code}
-{-@ focusUp, focusDown :: UZipper a -> UZipper a @-}
-focusUp, focusDown :: Zipper a -> Zipper a
-focusUp (Zipper t [] rs)     = Zipper x xs [] where (x:xs) = reverse (t:rs)
-focusUp (Zipper t (l:ls) rs) = Zipper l ls (t:rs)
-
-focusDown = reverseZipper . focusUp . reverseZipper
-
-{-@ q :: x:a ->  {v:[a] |(not (Set_mem x (listElts v)))} @-}
-q :: a -> [a]
-q _ = []
-\end{code}
-
-Finally, using the filter operation on lists
-allows LiquidHaskell to prove that filtering a zipper 
-also preserves uniqueness.
-\begin{code}
-{-@ filterZipper :: (a -> Bool) -> UZipper a -> Maybe (UZipper a) @-}
-filterZipper :: (a -> Bool) -> Zipper a -> Maybe (Zipper a)
-filterZipper p (Zipper f ls rs) = case filter p (f:rs) of
-    f':rs' -> Just $ Zipper f' (filter p ls) rs'    -- maybe move focus down
-    []     -> case filter p ls of                  -- filter back up
-                    f':ls' -> Just $ Zipper f' ls' [] -- else up
-                    []     -> Nothing
-\end{code}
-
-Conclusion
-==========
-
-That's all for now!
-This post illustrated
-
-- How we can use set theory to express properties the values of the list,
-such as list uniqueness.
-- How we can use LuquidHaskell to prove that these properties are preserved through list operations.
-- How we can embed this properties in complicated data structures that use lists, such as a zipper.
-
-
-
diff --git a/docs/blog/2013-05-24-unique-zipper.lhs b/docs/blog/2013-05-24-unique-zipper.lhs
deleted file mode 100644
--- a/docs/blog/2013-05-24-unique-zipper.lhs
+++ /dev/null
@@ -1,396 +0,0 @@
----
-layout: post
-title: "Unique Zippers"
-date: 2013-05-10 16:12
-comments: true
-external-url:
-categories: basic measures sets zipper uniqueness
-author: Niki Vazou
-published: true
-demo: UniqueZipper.hs
----
-
-**The story so far:** [Previously][about-sets] we saw
-how we can use LiquidHaskell to talk about set of values
-and specifically the *set of values* in a list.
-
-Often, we want to enforce the invariant that a particular data structure
-contains *no duplicates*. For example, we may have a structure that holds
-a collection of file handles, or other resources, where the presence of
-duplicates could lead to unpleasant leaks.
-
-In this post, we will see how to use LiquidHaskell to talk
-about the set of duplicate values in data structures, and 
-hence, let us specify and verify uniqueness, that is, the
-absence of duplicates.
-
-<!-- more -->
-
-To begin, lets extend our vocabulary to talk about the *set of duplicate
-values* in lists.  By constraining this set to be empty, we can specify a
-list without duplicates, or an **unique list**.  Once we express uniqueness
-on lists, it is straightforward to describe uniqueness on other data
-structures that contain lists.  As an example, we will illustrate the
-properties of a **unique zipper**.
-
-\begin{code}
-module UniqueZipper where
-
-import Prelude  hiding (reverse, (++), filter)
-import Data.Set hiding (filter)
-\end{code}
-
-
-A Quick Recap
-=============
-
-\begin{code} In the previous post we used a measure for the elements of a list, from [Data/Set.spec][setspec]
-measure listElts :: [a] -> (Set a)
-listElts ([])    = {v | (? (Set_emp v))}
-listElts (x:xs)  = {v | v = (Set_cup (Set_sng x) (listElts xs)) }
-\end{code}
-
-With this measure we defined predicate aliases 
-that describe relations between lists:
-
-\begin{code}
-{-@ predicate EqElts  X Y      = 
-      ((listElts X) = (listElts Y))                        @-}
-
-{-@ predicate DisjointElts X Y = 
-      (Set_emp (Set_cap (listElts X) (listElts Y)))        @-}
-
-{-@ predicate SubElts X Y      = 
-      (Set_sub (listElts X) (listElts Y))                  @-}
-
-{-@ predicate UnionElts X Y Z  = 
-      ((listElts X) = (Set_cup (listElts Y) (listElts Z))) @-}
-
-{-@ predicate ListElt N X      = 
-      (Set_mem N (listElts X))                             @-}
-\end{code}
-
-
-These predicates were our vocabulary on specifying properties of list functions.
-Remember, that `reverse` returns an output list that has the same elements, i.e., `EqElts`, with the input list.
-We can extend these predicates and express list uniqueness.
-So reversing a unique list should again return an output list that has the same
-elements as the input list, and also it is unique.
-
-Describing Unique Lists
-======================
-
-To describe unique lists, we follow two steps:
-
-1. we describe the set of duplicate values of a list; and 
-2. we demand this set to be empty.
-
-Towards the first step, we define a measure `dups`
-that returns the duplicate values of its input list.
-This measure is recursively defined:
-The duplicates of an empty list is the empty set.
-We compute the duplicates of a non-empty list, 
-namely `x:xs`, as follows:
-
-- If `x` is an element of `xs`, then `x` is a duplicate.
-  Hence, `dups` is `x` plus the (recursively computed) 
-  duplicates in `xs`.
-
-- Otherwise, we can ignore `x` and recursively compute 
-  the duplicates of `xs`.
-
-The above intuition can be formalized as a measure:
-
-\begin{code}
-{-@
-  measure dups :: [a] -> (Set a)
-  dups([])   = {v | (? (Set_emp v))}
-  dups(x:xs) = {v | v = (if (Set_mem x (listElts xs))
-                         then (Set_cup (Set_sng x) (dups xs))
-                         else (dups xs)) }
-  @-}
-\end{code}
-
-With `dups` in hand, it is direct to describe unique lists:
-
-A list is unique, if the set of duplicates, as computed by `dups` is empty.
-
-We create a type alias for unique lists and name it `UList`.
-
-\begin{code}
-{-@ predicate ListUnique X = (Set_emp (dups X)) @-}
-
-{-@ type UList a = {v:[a] | (ListUnique v)}     @-}
-\end{code}
-
-
-Functions on Unique Lists
-==========================
-
-In the previous post, we proved interesting properties about 
-the list trilogy, i.e., `append`, `reverse`, and `filter`.
-Now, we will prove that apart from these properties,
-all these functions preserve list uniqueness.
-
-Append
-------
-
-To begin with, we proved that the output of append
-indeed includes the elements from both the input lists.
-Now, we can also prove that if both input lists are 
-unique *and their elements are disjoint*, then the 
-output list is also unique.
-
-\begin{code}
-infixr 5 ++
-{-@ UniqueZipper.++ :: xs:(UList a)
-                    -> ys:{v: UList a | (DisjointElts v xs)}
-                    -> {v: UList a | (UnionElts v xs ys)}
-  @-}
-(++)         :: [a] -> [a] -> [a]
-[] ++ ys     = ys
-(x:xs) ++ ys = x:(xs ++ ys)
-\end{code}
-
-Reverse
--------
-
-Next, we can prove that if a unique list is reversed, 
-the output list has the same elements as the input,
-and also it is unique.
-
-\begin{code}
-{-@ reverse :: xs:(UList a) -> {v: UList a | (EqElts v xs)} @-}
-reverse :: [a] -> [a]
-reverse = go []
-  where
-    go a []     = a
-    go a (x:xs) = go (x:a) xs 
-\end{code}
-
-Filter
-------
-
-Finally, filtering a unique list returns a list with a subset of
-values of the input list, that once again is unique! 
-
-\begin{code}
-{-@ filter :: (a -> Bool) 
-           -> xs:(UList a) 
-           -> {v:UList a | (SubElts v xs)} 
-  @-}
-filter p [] = []
-filter p (x:xs) 
-  | p x       = x : filter p xs
-  | otherwise = filter p xs
-\end{code}
-
-
-Unique Zipper
-=============
-
-That was easy enough! Now, lets look at a slightly more interesting
-structure fashioned from lists.  A [zipper][wiki-zipper] is an aggregate
-data stucture that is used to arbitrary traverse the structure and update
-its contents.
-
-We define a zipper as a data type that contains an element (called `focus`)
-that we are currently using, a list of elements (called `up`) before
-the current one, and a list of elements (called `down`) after the current one.
-
-\begin{code}
-data Zipper a = Zipper { focus :: a       -- focused element in this set
-                       , up    :: [a]     -- elements to the left
-                       , down  :: [a] }   -- elements to the right
-\end{code}
-
-
-One well-known application of zippers is in the
-[XMonad](http://xmonad.org/) tiling window manager. 
-The set of windows being managed is stored in a zipper 
-similar to the above. The `focus` happily coincides with 
-the window currently in focus, and the `up` and `down` 
-to the list of windows that come before and after it.
-
-One crucial invariant maintained by XMonad is that the zipper structure is
-unique -- i.e. each window appears at most once inside the zipper.
-
-Lets see how we can state and check that all the values in a zipper are unique.
-
-To start with, we would like to refine the `Zipper` data declaration
-to express that both the lists in the structure are unique **and** 
-do not include `focus` in their values.
-
-LiquidHaskell allow us to refine data type declarations, using the liquid comments.
-So, apart from above definition definition for the `Zipper`, we add a refined one,
-stating that the data structure always enjoys the desired properties.
-
-\begin{code}
-{-@ data Zipper a = Zipper { focus :: a
-                           , up    :: UListDif a focus
-                           , down  :: UListDif a focus}
-  @-}
-
-{-@ type UListDif a N = {v:(UList a) | (not (ListElt N v))} @-}
-\end{code}
-
-It is worth noting that the above is kind of *dependent* record in that
-the types of the `up` and `down` fields depend on the value of the `focus`
-field.
-
-With this annotation any time we use a `Zipper` in the code LiquidHaskell
-knows that the `up` and `down` components are unique lists
-that do not include `focus`. Moreover, when a new `Zipper` is constructed
-LiquidHaskell proves that this property holds, otherwise a liquid type 
-error is reported.
-
-
-Hold on a minute!
-
-The awake reader will have noticed that values inside the `Zipper` as 
-specified so far, are *not unique*, as nothing prevents a value from 
-appearing in both the `up` and the `down` components.
-
-So, we have to specify that the contents of those two fields are *disjoint*.
-
-One way to achieve this is by defining two measures `getUp` and `getDown`
-that return the relevant parts of the `Zipper`
-
-\begin{code}
-{-@ measure getUp :: forall a. (Zipper a) -> [a] 
-    getUp (Zipper focus up down) = up
-  @-}
-
-{-@ measure getDown :: forall a. (Zipper a) -> [a] 
-    getDown (Zipper focus up down) = down
-  @-}
-\end{code}
-
-With these definitions, we create a type alias `UZipper`
-that states that the two list components are disjoint, and hence,
-that we have a *unique zipper* with no duplicates.
-
-\begin{code}
-{-@ 
-  type UZipper a = {v:Zipper a | (DisjointElts (getUp v) (getDown v))} 
-  @-}
-\end{code}
-
-
-Functions on Unique Zippers
-===========================
-
-Now that we have defined a unique zipper, it is straightforward for
-LiquidHaskell to prove that operations on zippers preserve uniqueness.
-
-Differentiation
----------------
-
-We can prove that a zipper that built from elements from a unique list is
-indeed unique.
-
-\begin{code}
-{-@ differentiate :: UList a -> Maybe (UZipper a) @-}
-differentiate []     = Nothing
-differentiate (x:xs) = Just $ Zipper x [] xs
-\end{code}
-
-Integration
------------
-
-And vice versa, all elements of a unique zipper yield a unique list.
-
-\begin{code}
-{-@ integrate :: UZipper a -> UList a @-}
-integrate (Zipper x l r) = reverse l ++ x : r
-\end{code}
-
-Recall the types for `++` and `reverse` that we proved earlier -- hover
-your mouse over the identifiers to refresh your memory. Those types are
-essential for establishing the type of `integrate`. 
-
-- By the definition of `UZipper` we know that `l` is a unique list
-  and that `x` is not an element of `l`.
-
-- Thus via the type of `reverse` we know that  `reverse l` is also
-  unique and disjoint from `x` and `r`.
-
-- Finally, using the previously established type for `++` 
-  LiquidHaskell can prove that since `x : r` is a unique 
-  list with elements disjoint from `reverse l` the concatenation
-  of the two lists is also a unique list.
-
-
-With the exact same reasoning, we use the above list operations to create more zipper operations.
-
-Reverse
--------
-
-We can reverse a unique zipper
-
-\begin{code}
-{-@ reverseZipper :: UZipper a -> UZipper a @-}
-reverseZipper :: Zipper a -> Zipper a
-reverseZipper (Zipper t ls rs) = Zipper t rs ls
-\end{code}
-
-Shifting Focus
---------------
-
-More the focus up or down
-
-\begin{code}
-{-@ focusUp   :: UZipper a -> UZipper a @-}
-focusUp (Zipper t [] rs)     = Zipper x xs [] 
-  where 
-    (x:xs)                   = reverse (t:rs)
-
-focusUp (Zipper t (l:ls) rs) = Zipper l ls (t:rs)
-
-{-@ focusDown :: UZipper a -> UZipper a @-}
-focusDown = reverseZipper . focusUp . reverseZipper
-\end{code}
-
-Filter
-------
-
-Finally, using the filter operation on lists allows LiquidHaskell to prove
-that filtering a zipper also preserves uniqueness.
-
-\begin{code}
-{-@ filterZipper :: (a -> Bool) -> UZipper a -> Maybe (UZipper a) @-}
-filterZipper p (Zipper f ls rs) 
-  = case filter p (f:rs) of
-      f':rs' -> Just $ Zipper f' (filter p ls) rs'
-      []     -> case filter p ls of                  
-                  f':ls' -> Just $ Zipper f' ls' []
-                  []     -> Nothing
-\end{code}
-
-Conclusion
-==========
-
-That's all for now! This post illustrated
-
-1. How we can use set theory to express properties the values of the list,
-   such as list uniqueness.
-
-2. How we can use LuquidHaskell to prove that these properties are
-   preserved through list operations.
-
-3. How we can embed this properties in complicated data structures that use
-   lists, such as a zipper.
-
-
-[wiki-zipper]: http://en.wikipedia.org/wiki/Zipper_(data_structure)
-[about-sets]:  blog/2013/03/26/talking-about-sets.lhs/
-[setspec]:     https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/Set.spec
-
-\begin{code}
--- TODO: Dummy function to provide qualifier hint.
-{-@ q :: x:a ->  {v:[a] |(not (Set_mem x (listElts v)))} @-}
-q :: a -> [a]
-q _ = []
-\end{code}
-
-
diff --git a/docs/blog/2013-06-03-abstracting-over-refinements.lhs b/docs/blog/2013-06-03-abstracting-over-refinements.lhs
deleted file mode 100644
--- a/docs/blog/2013-06-03-abstracting-over-refinements.lhs
+++ /dev/null
@@ -1,315 +0,0 @@
----
-layout: post
-title: "Abstracting Over Refinements"
-date: 2013-06-03 16:12
-comments: true
-external-url:
-author: Ranjit Jhala and Niki Vazou 
-published: true 
-categories: abstract-refinements
-demo: absref101.hs
----
-
-We've seen all sorts of interesting invariants that can be expressed with
-refinement predicates. For example, whether a divisor is [non-zero][blog-dbz], 
-the [dimension][blog-len] of lists, ensuring the safety of 
-[vector indices][blog-vec] and reasoning about the [set][blog-set] of values
-in containers and verifying their [uniqueness][blog-zip].
-In each of these cases, we were working with *specific* refinement predicates
-that described whatever property was of interest.
-
-Today, (drumroll please), I want to unveil a brand new feature of
-LiquidHaskell, which allows us to *abstract* over specific properties or
-invariants, which significantly increases the expressiveness of the 
-system, whilst still allowing our friend the SMT solver to carry 
-out verification and inference automatically.
-
-<!-- more -->
-
-\begin{code}
-
-module MickeyMouse where
-
-import Language.Haskell.Liquid.Prelude (isEven)
-\end{code}
-
-Pin The Specification On the Function 
--------------------------------------
-
-Lets look at some tiny *mickey-mouse* examples to see why we may want
-to abstract over refinements in the first place.
-
-Consider the following monomorphic `max` function on `Int` values:
-
-\begin{code}
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-\begin{code} We could give `maxInt` many, quite different and incomparable refinement types like
-maxInt :: {v:Int | v >= 0} -> {v:Int | v >= 0} -> {v:Int | v >= 0}
-\end{code}
-
-\begin{code}or
-maxInt :: {v:Int | v < 10} -> {v:Int | v < 10} -> {v:Int | v < 10}
-\end{code}
-
-\begin{code}or even 
-maxInt :: {v:Int | (Even v)} -> {v:Int | (Even v)} -> {v:Int | (Even v)}
-\end{code}
-
-All of the above are valid. 
-
-But which one is the *right* type? 
-
-At this point, you might be exasperated for one of two reasons.
-
-First, the type enthusiasts among you may cry out -- "What? Does this funny
-refinement type system not have **principal types**?"
-
-No. Or, to be precise, of course not!
-
-Principal typing is a lovely feature that is one of the many 
-reasons why Hindley-Milner is such a delightful sweet spot. 
-Unfortunately, the moment one wants fancier specifications 
-one must tearfully kiss principal typing good bye.
-
-Oh well.
-
-Second, you may very well say, "Yes yes, does it even matter? Just pick
-one and get on with it already!"
-
-Unfortunately, it matters quite a bit.
-
-Suppose we had a refined type describing valid RGB values:
-
-\begin{code}
-{-@ type RGB = {v: Int | ((0 <= v) && (v < 256)) } @-}
-\end{code}
-
-Now, if I wrote a function that selected the larger, that is to say, the
-more intense, of two RGB values, I would certainly like to check that it 
-produced an RGB value!
-
-\begin{code}
-{-@ intenser   :: RGB -> RGB -> RGB @-}
-intenser c1 c2 = maxInt c1 c2
-\end{code}
-
-Well, guess what. The first type (with `v >= 0`) one would tell us that 
-the output was non-negative, losing the upper bound. The second type (with
-`v < 10`) would cause LiquidHaskell to bellyache about `maxInt` being 
-called with improper arguments -- muttering darkly that an RGB value 
-is not necesarily less than `10`. As for the third type ... well, you get the idea.
-
-So alas, the choice of type *does* matter. 
-
-\begin{code} If we were clairvoyant, we would give `maxInt` a type like
-maxInt :: RGB -> RGB -> RGB 
-\end{code}
-
-but of course, that has its own issues. ("What? I have to write a
-*separate* function for picking the larger of two *4* digit numbers?!")
-
-Defining Parametric Invariants 
-------------------------------
-
-Lets take a step back from the types, and turn to a spot of handwaving.
-
-What's *really* going on with `maxInt`?
-
-Well, the function returns *one of* its two arguments `x` and `y`. 
-
-This means that if *both* arguments satisfy some property then the output
-*must* satisfy that property, *regardless of what that property was!*
-
-To teach LiquidHaskell to understand this notion of "regardless of
-property" we introduce the idea of **abstracting over refinements**
-or, if you prefer, parameterizing a type over its refinements.
-
-In particular, we type `maxInt` as
-
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. Int<p> -> Int<p> -> Int<p>@-}
-\end{code}
-
-Here, the definition says explicitly: *for any property* `p` that is a
-property of `Int`, the function takes two inputs each of which satisfy `p`
-and returns an output that satisfies `p`. That is to say, `Int<p>` is 
-just an abbreviation for `{v:Int | (p v)}`
-
-**Digression: Whither Decidability?** 
-At first glance, it may appear that these abstract `p` have taken us into
-the realm of higher-order logics, where we must leave decidable checking
-and our faithful SMT companion at that door, and instead roll up our 
-sleeves for interactive proofs (not that there's anything wrong with that!) 
-Fortunately, that's not the case. We simply encode abstract refinements `p` 
-as *uninterpreted function symbols* in the refinement logic. 
-
-\begin{code} Uninterpreted functions are special symbols `p` which satisfy only the *congruence axiom*.
-forall X, Y. if (X = Y) then  p(X) = p(Y)
-\end{code}
-
-Happily, reasoning with such uninterpreted functions is quite decidable
-(thanks to Ackermann, yes, *that* Ackermann) and actually rather efficient.
-Thus, via SMT, LiquidHaskell happily verifies that `maxInt` indeed behaves
-as advertised: the input types ensure that both `(p x)` and `(p y)` hold 
-and hence that the returned value in either branch of `maxInt` satisfies 
-the refinement  `{v:Int | p(v)}`, thereby ensuring the output type. 
-
-By the same reasoning, we can define the `maximumInt` operator on lists:
-
-\begin{code}
-{-@ maximumInt :: forall <p :: Int -> Prop>. x:[Int <p>] -> Int <p>@-}
-maximumInt (x:xs) = foldr maxInt x xs
-\end{code}
-
-Using Parametric Invariants
----------------------------
-
-Its only useful to parametrize over invariants if there is some easy way 
-to *instantiate* the parameters. 
-
-Concretely, consider the function:
-
-\begin{code}
-{-@ maxEvens1 :: xs:[Int] -> {v:Int | (Even v)} @-}
-maxEvens1 xs = maximumInt xs''
-  where 
-    xs'      = [ x | x <- xs, isEven x]
-    xs''     = 0 : xs'
-\end{code}
-
-\begin{code} where the function `isEven` is from the Language.Haskell.Liquid.Prelude library:
-{- isEven :: x:Int -> {v:Bool | (Prop(v) <=> (Even x))} -}
-isEven   :: Int -> Bool
-isEven x = x `mod` 2 == 0
-\end{code}
-
-where the predicate `Even` is defined as
-
-\begin{code}
-{-@ predicate Even X = ((X mod 2) = 0) @-}
-\end{code}
-
-To verify that `maxEvens1` returns an even number, LiquidHaskell 
-
-1. infers that the list `(0:xs')` has type `[{v:Int | (Even v)}]`, 
-   that is, is a list of even numbers.
-
-2. automatically instantiates the *refinement* parameter of 
-   `maximumInt` with the concrete refinement `{\v -> (Even v)}` and so
-
-3. concludes that the value returned by `maxEvens1` is indeed `Even`.
-
-Parametric Invariants and Type Classes
---------------------------------------
-
-Ok, lets be honest, the above is clearly quite contrived. After all,
-wouldn't you write a *polymorphic* `max` function? And having done so,
-we'd just get all the above goodness from old fashioned parametricity.
-
-\begin{code} That is to say, if we just wrote:
-max     :: forall a. a -> a -> a 
-max x y = if x > y then x else y
-
-maximum :: forall a. [a] -> a
-maximum (x:xs) = foldr max x xs
-\end{code}
-
-then we could happily *instantiate* the `a` with `{v:Int | v > 0}` or
-`{v:Int | (Even v)}` or whatever was needed at the call-site of `max`.
-Sigh. Perhaps we are still pining for Hindley-Milner.
-
-\begin{code} Well, if this was an ML perhaps we could but in Haskell, the types would be 
-(>)     :: (Ord a) => a -> a -> Bool
-max     :: (Ord a) => a -> a -> a
-maximum :: (Ord a) => [a] -> a
-\end{code}
-
-Our first temptation may be to furtively look over our shoulders, and
-convinced no one was watching, just pretend that funny `(Ord a)` business
-was not there, and quietly just treat `maximum` as `[a] -> a` and summon
-parametricity.
-
-That would be most unwise. We may get away with it with the harmless `Ord` but what of, say, `Num`. 
-
-\begin{code} Clearly a function 
-numCrunch :: (Num a) => [a] -> a
-\end{code}
-
-is not going to necessarily return one of its inputs as an output. 
-Thus, it is laughable to believe that `numCrunch` would, if given 
-a list of  of even (or positive, negative, prime, RGB, ...) integers, 
-return a even (or positive, negative, prime, RGB, ...) integer, since 
-the function might add or subtract or multiply or do other unspeakable
-things to the numbers in order to produce the output value.
-
-And yet, typeclasses are everywhere. 
-
-How could we possibly verify that
-
-\begin{code}
-{-@ maxEvens2 :: xs:[Int] -> {v:Int | (Even v) } @-}
-maxEvens2 xs = maximumPoly xs''
-  where 
-     xs'     = [ x | x <- xs, isEven x]
-     xs''    = 0 : xs'
-\end{code}
-
-where the helpers were in the usual `Ord` style?
-
-\begin{code}
-maximumPoly :: (Ord a) => [a] -> a
-maximumPoly (x:xs) = foldr maxPoly x xs
-
-maxPoly     :: (Ord a) => a -> a -> a 
-maxPoly x y = if x <= y then y else x
-\end{code}
-
-The answer: abstract refinements.
-
-First, via the same analysis as the monomorphic `Int` case, LiquidHaskell
-establishes that
-
-\begin{code}
-{-@ maxPoly :: forall <p :: a -> Prop>. 
-                 (Ord a) => x:a<p> -> y:a<p> -> a<p> @-}
-\end{code}
-
-and hence, that
-
-\begin{code}
-{-@ maximumPoly :: forall <p :: a -> Prop>. 
-                     (Ord a) => x:[a<p>] -> a<p>     @-}
-\end{code}
-
-Second, at the call-site for `maximumPoly` in `maxEvens2` LiquidHaskell 
-instantiates the type variable `a` with `Int`, and the abstract refinement
-parameter `p` with `{\v -> (Even v)}` after which, the verification proceeds 
-as described earlier (for the `Int` case).
-
-And So
-------
-
-If you've courageously slogged through to this point then you've learnt
-that 
-
-1. Sometimes, choosing the right type can be quite difficult! 
-
-2. But fortunately, with *abstract refinements* we needn't choose, but 
-   can write types that are parameterized over the actual concrete 
-   invariants or refinements, which
-
-3. Can be instantiated at the call-sites i.e. users of the functions.
-
-We started with some really frivolous examples, but buckle your seatbelt 
-and hold on tight, because we're going to see some rather nifty things that
-this new technique makes possible, including induction, reasoning about
-memoizing functions, and *ordering* and *sorting* data. Stay tuned.
-
-[blog-dbz]:     /blog/2013/01/01/refinement-types-101.lhs/ 
-[blog-len]:     /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/ 
-[blog-vec]:     /blog/2013/03/04/bounding-vectors.lhs/
-[blog-set]:     /blog/2013/03/26/talking/about/sets.lhs/
-[blog-zip]:     /blog/2013/05/16/unique-zipper.lhs/
diff --git a/docs/blog/2013-07-29-putting-things-in-order.lhs b/docs/blog/2013-07-29-putting-things-in-order.lhs
deleted file mode 100644
--- a/docs/blog/2013-07-29-putting-things-in-order.lhs
+++ /dev/null
@@ -1,608 +0,0 @@
----
-layout: post
-title: "Putting Things In Order"
-date: 2013-07-29 16:12
-comments: true
-external-url:
-categories: abstract-refinements
-author: Niki Vazou and Ranjit Jhala
-published: true 
-demo: Order.hs
----
-
-Hello again! Since we last met, much has happened that
-we're rather excited about, and which we promise to get
-to in the fullness of time.
-
-Today, however, lets continue with our exploration of
-abstract refinements. We'll see that this rather innocent 
-looking mechanism packs quite a punch, by showing how 
-it can encode various **ordering** properties of 
-recursive data structures.
-
-<!-- more -->
-
-\begin{code}
-module PuttingThingsInOrder where
-
-import Prelude hiding (break)
-
--- Haskell Type Definitions
-plusOnes                         :: [(Int, Int)]
-insertSort, mergeSort, quickSort :: (Ord a) => [a] -> [a]
-\end{code}
-
-Abstract Refinements
---------------------
-
-\begin{code} Recall that *abstract refinements* are a mechanism that let us write and check types of the form
-maxInt :: forall <p :: Int -> Prop>. Int<p> -> Int<p> -> Int<p>
-\end{code}
-
-which states that the output of `maxInt` preserves 
-*whatever* invariants held for its two inputs as 
-long as both those inputs *also* satisfied those 
-invariants. 
-
-First, lets see how we can (and why we may want to) 
-abstractly refine data types. 
-
-Polymorphic Association Lists
------------------------------
-
-Suppose, we require a type for association lists. 
-Lets define one that is polymorphic over keys `k` 
-and values `v` 
-
-\begin{code}
-data AssocP k v = KVP [(k, v)]
-\end{code}
-
-Now, in a program, you might have multiple association
-lists, whose keys satisfy different properties. 
-For example, we might have a table for mapping digits 
-to the corresponding English string
-
-\begin{code}
-digitsP :: AssocP Int String
-digitsP = KVP [ (1, "one")
-              , (2, "two")
-              , (3, "three") ]
-\end{code}
-
-We could have a separate table for *sparsely* storing 
-the contents of an array of size `1000`.
-
-\begin{code}
-sparseVecP :: AssocP Int Double
-sparseVecP = KVP [ (12 ,  34.1 )
-                 , (92 , 902.83)
-                 , (451,   2.95)
-                 , (877,   3.1 )]
-\end{code}
-
-The **keys** used in the two tables have rather 
-different properties, which we may want to track 
-at compile time.
-
-- In `digitsP` the keys are between `0` and `9` 
-- In `sparseVecP` the keys are between `0` and `999`. 
-
-Well, since we had the foresight to parameterize 
-the key type in `AssocP`, we can express the above 
-properties by appropriately **instantiating** the type
-of `k` with refined versions
-
-\begin{code}
-{-@ digitsP :: AssocP {v:Int | (Btwn 0 v 9)} String @-}
-\end{code}
-
-and 
-
-\begin{code}
-{-@ sparseVecP :: AssocP {v:Int | (Btwn 0 v 1000)} Double @-}
-\end{code}
-
-where `Btwn` is just an alias 
-
-\begin{code}
-{-@ predicate Btwn Lo V Hi = (Lo <= V && V <= Hi) @-}
-\end{code}
-
-Monomorphic Association Lists
------------------------------
-
-Now, suppose that for one reason or another, we want to 
-specialize our association list so that the keys are of 
-type `Int`. 
-
-\begin{code}
-data Assoc v = KV [(Int, v)]
-\end{code}
-
-(We'd probably also want to exploit the `Int`-ness 
-in the implementation but thats a tale for another day.)
-
-Now, we have our two tables
-
-\begin{code}
-digits    :: Assoc String
-digits    = KV [ (1, "one")
-               , (2, "two")
-               , (3, "three") ]
-
-sparseVec :: Assoc Double
-sparseVec = KV [ (12 ,  34.1 )
-               , (92 , 902.83)
-               , (451,   2.95)
-               , (877,   3.1 )]
-\end{code}
-
-but since we didn't make the key type generic, it seems 
-we have no way to distinguish between the invariants of 
-the two sets of keys. Bummer!
-
-Abstractly Refined Data
------------------------
-
-We *could* define *two separate* types of association 
-lists that capture different invariants, but frankly, 
-thats rather unfortunate, as we'd then have to 
-duplicate the code the manipulates the structures. 
-Of course, we'd like to have (type) systems help 
-keep an eye on different invariants, but we'd 
-*really* rather not have to duplicate code to 
-achieve that end. Thats the sort of thing that
-drives a person to JavaScript ;-).
-
-Fortunately, all is not lost. 
-
-If you were paying attention [last time][blog-absref] 
-then you'd realize that this is the perfect job for 
-an abstract refinement, this time applied to a `data` 
-definition:
-
-\begin{code}
-{-@ data Assoc v <p :: Int -> Prop> 
-      = KV (z :: [(Int<p>, v)]) @-} 
-\end{code}
-
-The definition refines the type for `Assoc` to introduce
-an abstract refinement `p` which is, informally speaking,
-a property of `Int`. The definition states that each `Int`
-in the association list in fact satisfies `p` as, `Int<p>`
-is an abbreviation for `{v:Int| (p v)}`.
-
-Now, we can *have* our `Int` keys and *refine* them too!
-For example, we can write:
-
-\begin{code}
-{-@ digits :: Assoc (String) <{\v -> (Btwn 0 v 9)}> @-}
-\end{code}
-
-to track the invariant for the `digits` map, and write
-
-\begin{code}
-{-@ sparseVec :: Assoc Double <{\v -> (Btwn 0 v 1000)}> @-}
-\end{code}
-
-Thus, we can recover (some of) the benefits of abstracting 
-over the type of the key by instead parameterizing the type
-directly over the possible invariants. We will have much 
-[more to say][blog-absref-vec] on association lists 
-(or more generally, finite maps) and abstract refinements, 
-but lets move on for the moment.
-
-Dependent Tuples
-----------------
-
-It is no accident that we have reused Haskell's function 
-type syntax to define abstract refinements (`p :: Int -> Prop`);
-interesting things start to happen if we use multiple parameters.
-
-Consider the function `break` from the Prelude. 
-
-\begin{code}
-break                   :: (a -> Bool) -> [a] -> ([a], [a])
-break _ xs@[]           =  (xs, xs)
-break p xs@(x:xs')
-           | p x        =  ([], xs)
-           | otherwise  =  let (ys, zs) = break p xs' 
-                           in (x:ys,zs)
-\end{code}
-
-From the comments in [Data.List][data-list], `break p xs`: 
-"returns a tuple where the first element is longest prefix (possibly empty)
-`xs` of elements that do not satisfy `p` and second element is the 
-remainder of the list."
-
-We could formalize the notion of the *second-element-being-the-remainder* 
-using sizes. That is, we'd like to specify that the length of the second 
-element equals the length of `xs` minus the length of the first element.  
-That is, we need a way to allow the refinement of the second element to 
-*depend on* the value in the first refinement.
-Again, we could define a special kind of tuple-of-lists-type that 
-has the above property *baked in*, but thats just not how we roll.
-
-\begin{code} Instead, lets use abstract refinements to give us **dependent tuples**
-data (a,b)<p :: a -> b -> Prop> = (x:a, b<p x>) 
-\end{code}
-
-Here, the abstract refinement takes two parameters, 
-an `a` and a `b`. In the body of the tuple, the 
-first element is named `x` and we specify that 
-the second element satisfies the refinement `p x`, 
-i.e. a partial application of `p` with the first element. 
-In other words, the second element is a value of type
-`{v:b | (p x v)}`.
-
-As before, we can instantiate the `p` in *different* ways. 
-For example the whimsical
-
-\begin{code}
-{-@ plusOnes :: [(Int, Int)<{\x1 x2 -> x2 = x1 + 1}>] @-}
-plusOnes = [(0,1), (5,6), (999,1000)]
-\end{code}
-
-and returning to the *remainder* property for  `break` 
-
-\begin{code}
-{-@ break :: (a -> Bool) -> x:[a] 
-          -> ([a], [a])<{\y z -> (Break x y z)}> @-}
-\end{code}
-
-using the predicate alias
-
-\begin{code}
-{-@ predicate Break X Y Z   = (len X) = (len Y) + (len Z) @-}
-\end{code}
-
-
-Abstractly Refined Lists
-------------------------
-
-Right, we've been going on for a bit. Time to put things *in order*.
-
-To recap: we've already seen one way to abstractly refine lists: 
-to recover a *generic* means of refining a *monomorphic* list 
-(e.g. the list of `Int` keys.) However, in that case we were 
-talking about *individual* keys.
-Next, we build upon the dependent-tuples technique we just 
-saw to use abstract refinements to relate *different* 
-elements inside containers.
-
-In particular, we can use them to specify that *every pair* 
-of elements inside the list is related according to some 
-abstract relation `p`. By *instantiating* `p` appropriately,
-we will be able to recover various forms of (dis) order. 
-
-\begin{code} Consider the refined definition of good old Haskell lists:
-data [a] <p :: a -> a -> Prop> where
-  | []  :: [a] <p>
-  | (:) :: h:a -> [a<p h>]<p> -> [a]<p>
-\end{code}
-
-Whoa! Thats a bit of a mouthful. Lets break it down.
-
-* The type is parameterized with a refinement `p :: a -> a -> Prop` 
-  Think of `p` as a *binary relation* over the `a` values comprising
-  the list.
-
-* The empty list `[]` is a `[]<p>`. Clearly, the empty list has no
-  elements whatsoever and so every pair is trivially, or rather, 
-  vacuously related by `p`.
-
-* The cons constructor `(:)` takes a head `h` of type `a` and a tail
-  of `a<p h>` values, each of which is *related to* `h` **and** which 
-  (recursively) are pairwise related `[...]<p>` and returns a list where 
-  *all* elements are pairwise related `[a]<p>`.
-
-Pairwise Related
-----------------
-
-Note that we're being a bit sloppy when we say *pairwise* related.
-
-\begin{code} What we really mean is that if a list
-[x1,...,xn] :: [a]<p>
-\end{code}
-
-then for each `1 <= i < j <= n` we have `(p xi xj)`.
-
-\begin{code} To see why, consider the list
-[x1, x2, x3, ...] :: [a]<p>
-\end{code}
-
-\begin{code} This list unfolds into a head and tail 
-x1                :: a
-[x2, x3,...]      :: [a<p x1>]<p>
-\end{code}
-
-\begin{code} The above tail unfolds into
-x2                :: a<p x1>
-[x3, ...]         :: [a<p x1 && p x2>]<p>
-\end{code}
-
-\begin{code} And finally into 
-x3                :: a<p x1 && p x2>
-[...]             :: [a<p x1 && p x2 && p x3>]<p>
-\end{code}
-
-That is, each element `xj` satisfies the refinement 
-`(p xi xj)` for each `i < j`.
-
-Using Abstractly Refined Lists
-------------------------------
-
-Urgh. *Math is hard!*  
-
-Lets see how we can *program* with these funnily refined lists.
-
-For starters, we can define a few helpful type aliases.
-
-\begin{code}
-{-@ type IncrList a = [a]<{\xi xj -> xi <= xj}> @-}      
-{-@ type DecrList a = [a]<{\xi xj -> xi >= xj}> @-}
-{-@ type UniqList a = [a]<{\xi xj -> xi /= xj}> @-}
-\end{code}
-
-As you might expect, an `IncrList` is a list of values in *increasing* order:
-
-\begin{code}
-{-@ whatGosUp :: IncrList Integer @-}
-whatGosUp = [1,2,3]
-\end{code}
-
-Similarly, a `DecrList` contains its values in *decreasing* order:
-
-\begin{code}
-{-@ mustGoDown :: DecrList Integer @-}
-mustGoDown = [3,2,1]
-\end{code}
-
-My personal favorite though, is a `UniqList` which has *no duplicates*:
-
-\begin{code}
-{-@ noDuplicates :: UniqList Integer @-}
-noDuplicates = [1,3,2]
-\end{code}
-
-Sorting Lists
--------------
-
-Its all very well to *specify* lists with various kinds of invariants. 
-The question is, how easy is it to *establish* these invariants?
-
-Lets find out, by turning inevitably to that staple of all forms of
-formal verification: your usual textbook sorting procedures.
-
-**Insertion Sort**
-
-First up: insertion sort. Well, no surprises here:
-
-\begin{code}
-{-@ insertSort    :: (Ord a) => xs:[a] -> (IncrList a) @-}
-insertSort []     = []
-insertSort (x:xs) = insert x (insertSort xs) 
-\end{code}
-
-The hard work is done by `insert` which places an 
-element into the correct position of a sorted list
-
-\begin{code}
-insert y []     = [y]
-insert y (x:xs) 
-  | y <= x      = y : x : xs 
-  | otherwise   = x : insert y xs
-\end{code}
-
-LiquidHaskell infers that if you give `insert` an element 
-and a sorted list, it returns a sorted list.
-
-\begin{code}
-{-@ insert :: (Ord a) => a -> IncrList a -> IncrList a @-}
-\end{code}
-
-If you prefer the more Haskelly way of writing insertion sort, 
-i.e. with a `foldr`, that works too. Can you figure out why?
-
-\begin{code}
-{-@ insertSort' :: (Ord a) => [a] -> IncrList a @-}
-insertSort' xs  = foldr insert [] xs
-\end{code}
-
-**Merge Sort**
-
-Well, you know the song goes. First, we write a function 
-that **splits** the input into two parts:
-
-\begin{code}
-split          :: [a] -> ([a], [a])
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-\end{code}
-
-Then we need a function that **merges** two (sorted) lists
-
-\begin{code}
-merge xs []         = xs
-merge [] ys         = ys
-merge (x:xs) (y:ys) 
-  | x <= y          = x : merge xs (y:ys)
-  | otherwise       = y : merge (x:xs) ys
-\end{code}
-
-LiquidHaskell deduces that if both inputs are 
-ordered, then so is the output.
-
-\begin{code}
-{-@ merge :: (Ord a) => IncrList a 
-                     -> IncrList a 
-                     -> IncrList a 
-  @-}
-\end{code}
-
-Finally, using the above functions we write `mergeSort`:
-
-\begin{code}
-{-@ mergeSort :: (Ord a) => [a] -> IncrList a @-}
-mergeSort []  = []
-mergeSort [x] = [x]
-mergeSort xs  = merge (mergeSort ys) (mergeSort zs) 
-  where 
-    (ys, zs)  = split xs
-\end{code}
-
-Lets see how LiquidHaskell proves the output type. 
-
-+ The first two cases are trivial: for an empty 
-  or singleton list, we can vacuously instantiate 
-  the abstract refinement with *any* concrete 
-  refinement.
-
-+ For the last case, we can inductively assume 
- `mergeSort ys` and `mergeSort zs` are sorted 
-  lists, after which the type inferred for 
-  `merge` kicks in, allowing LiquidHaskell to conclude
-  that the output is also sorted.
-
-**Quick Sort**
-
-The previous two were remarkable because they were, well, quite *unremarkable*. 
-Pretty much the standard textbook implementations work *as is*. 
-Unlike the [classical][omega-sort] [developments][hasochism] 
-using indexed types we don't have to define any auxiliary 
-types for increasing lists, or lists whose value is in a 
-particular range, or any specialized `cons` operators and 
-so on.
-
-With *quick sort* we need to do a tiny bit of work.
-
-
-\begin{code} We would like to define `quickSort` as
-{-@ quickSort'    :: (Ord a) => [a] -> IncrList a @-}
-quickSort' []     = []
-quickSort' (x:xs) = lts ++ (x : gts) 
-  where 
-    lts           = quickSort' [y | y <- xs, y < x]
-    gts           = quickSort' [z | z <- xs, z >= x]
-\end{code}
-
-But, if you try it out, you'll see that LiquidHaskell 
-*does not approve*. What could possibly be the trouble?
-
-The problem lies with *append*. What type do we give `++`? 
-
-\begin{code} We might try something like
-(++) :: IncrList a -> IncrList a -> IncrList a
-\end{code}
-
-\begin{code} but of course, this is bogus, as 
-[1,2,4] ++ [3,5,6]
-\end{code}
-
-is decidedly not an `IncrList`!
-
-Instead, at this particular use of `++`, there is
-an extra nugget of information: there is a *pivot*
-element `x` such that every element in the first 
-argument is less than `x` and every element in 
-the second argument is greater than `x`. 
-
-There is no way we can give the usual append `++` 
-a type that reflects the above as there is no pivot 
-`x` to refer to. Thus, with a heavy heart, we must
-write a specialized pivot-append that uses this fact:
-
-\begin{code}
-pivApp piv []     ys  = piv : ys
-pivApp piv (x:xs) ys  = x   : pivApp piv xs ys
-\end{code}
-
-Now, LiquidHaskell infers that 
-
-\begin{code}
-{-@ pivApp :: piv:a 
-           -> IncrList {v:a | v <  piv} 
-           -> IncrList {v:a | v >= piv} 
-           -> IncrList a 
-  @-}
-\end{code}
-
-And we can use `pivApp` to define `quickSort' simply as:
-
-\begin{code}
-{-@ quickSort    :: (Ord a) => [a] -> IncrList a @-}
-quickSort []     = []
-quickSort (x:xs) = pivApp x lts gts 
-  where 
-    lts          = quickSort [y | y <- xs, y < x ]
-    gts          = quickSort [z | z <- xs, z >= x]
-\end{code}
-
-Really Sorting Lists
---------------------
-
-The convenient thing about our encoding is that the 
-underlying datatype is plain Haskell lists. 
-This yields two very concrete benefits. 
-First, as mentioned before, we can manipulate 
-sorted lists with the same functions we'd use 
-for regular lists.
-Second, by decoupling (or rather, parameterizing)
-the relation or property or invariant from the actual 
-data structure we can plug in different invariants, 
-sometimes in the *same* program.
-
-To see why this is useful, lets look at a *real-world* 
-sorting algorithm: the one used inside GHC's 
-`Data.List` [module][data-list].
-
-\begin{code}
-sort :: (Ord a) => [a] -> [a]
-sort = mergeAll . sequences
-  where
-    sequences (a:b:xs)
-      | a `compare` b == GT = descending b [a]  xs
-      | otherwise           = ascending  b (a:) xs
-    sequences [x] = [[x]]
-    sequences []  = [[]]
-
-    descending a as (b:bs)
-      | a `compare` b == GT = descending b (a:as) bs
-    descending a as bs      = (a:as): sequences bs
-
-    ascending a as (b:bs)
-      | a `compare` b /= GT = ascending b (\ys -> as (a:ys)) bs
-    ascending a as bs       = as [a]: sequences bs
-
-    mergeAll [x] = x
-    mergeAll xs  = mergeAll (mergePairs xs)
-
-    mergePairs (a:b:xs) = merge a b: mergePairs xs
-    mergePairs [x]      = [x]
-    mergePairs []       = []
-\end{code}
-
-The interesting thing about the procedure is that it 
-generates some intermediate lists that are increasing 
-*and* others that are decreasing, and then somehow
-miraculously whips this whirlygig into a single 
-increasing list.
-
-Yet, to check this rather tricky algorithm with 
-LiquidHaskell we need merely write:
-
-\begin{code}
-{-@ sort :: (Ord a) => [a] -> IncrList a  @-}
-\end{code}
-
-
-
-[blog-absref]:     /blog/2013/06/3/abstracting-over-refinements.lhs/
-[blog-absref-vec]: http://goto.ucsd.edu/~rjhala/liquid/abstract_refinement_types.pdf
-[data-list]:        http://www.haskell.org/ghc/docs/latest/html/libraries/base/src/Data-List.html#sort
-[omega-sort]:      http://web.cecs.pdx.edu/~sheard/Code/InsertMergeSort.html
-[hasochism]:       https://personal.cis.strath.ac.uk/conor.mcbride/pub/hasochism.pdf
-
diff --git a/docs/blog/2013-11-23-telling_lies.lhs b/docs/blog/2013-11-23-telling_lies.lhs
deleted file mode 100644
--- a/docs/blog/2013-11-23-telling_lies.lhs
+++ /dev/null
@@ -1,128 +0,0 @@
----
-layout: post
-title: "LiquidHaskell Caught Telling Lies!"
-date: 2013-11-23 16:12
-comments: true
-external-url:
-categories: termination
-author: Ranjit Jhala, Niki Vazou 
-published: true
-demo: TellingLies.hs
----
-
-One crucial goal of a type system is to provide the guarantee, 
-memorably phrased by Milner as *well-typed programs don't go wrong*. 
-The whole point of LiquidHaskell (and related systems) is to provide
-the above guarantee for expanded notions of "going wrong". 
-All this time, we've claimed (and believed) that LiquidHaskell 
-provided such a guarantee.
-
-We were wrong. 
-
-LiquidHaskell tells lies.
-
-<!-- more -->
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-
-module TellingLies where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-
-divide  :: Int -> Int -> Int
-foo     :: Int -> Int
-explode :: Int
-\end{code}
-
-To catch LiquidHaskell red-handed, we require
-
-1. a notion of **going wrong**,
-2. a **program** that clearly goes wrong, and the smoking gun,
-3. a **lie** from LiquidHaskell that the program is safe.
-
-The Going Wrong
----------------
-
-Lets keep things simple with an old fashioned `div`-ision operator.
-A division by zero would be, clearly *going wrong*.
-
-To alert LiquidHaskell to this possibility, we encode "not going wrong"
-with the precondition that the denominator be  non-zero.
-
-\begin{code}
-{-@ divide :: n:Int -> d:{v:Int | v /= 0} -> Int @-}
-divide n 0 = liquidError "no you didn't!"
-divide n d = n `div` d
-\end{code}
-
-The Program 
------------
-
-Now, consider the function `foo`.
-
-\begin{code}
-{-@ foo :: n:Int -> {v:Nat | v < n} @-}
-foo n | n > 0     = n - 1
-      | otherwise = foo n
-\end{code}
-
-Now, `foo` should only be called with strictly positive values. 
-In which case, the function returns a `Nat` that is strictly 
-smaller than the input. 
-The function diverges when called with `0` or negative inputs. 
-
-Note that the signature of `foo` is slightly different, but 
-nevertheless, legitimate, as *when* the function returns an 
-output, the output is indeed a `Nat` that is *strictly less than* 
-the input parameter `n`. Hence, LiquidHaskell happily checks 
-that `foo` does indeed satisfy its given type.
-
-So far, nothing has gone wrong either in the program, or 
-with LiquidHaskell, but consider this innocent little 
-function:
-
-\begin{code}
-explode = let z = 0
-          in  (\x -> (2013 `divide` z)) (foo z)
-\end{code}
-
-Thanks to *lazy evaluation*, the call to `foo` is ignored,
-and hence evaluating `explode` leads to a crash! Ugh!
-
-The Lie
--------
-
-However, LiquidHaskell produces a polyannish prognosis and 
-cheerfully declares the program *safe*. 
-
-Huh?
-
-Well, LiquidHaskell deduces that
-
-a. `z == 0`  from the binding,
-b. `x : Nat` from the output type for `foo`
-c. `x <  z`  from the output type for `foo`
-
-\begin{code} Of course, no such `x` exists! Or, rather, the SMT solver reasons
-    z == 0 && x >= 0 && x < z  => z /= 0
-\end{code}
-
-as the hypotheses are inconsistent. In other words, LiquidHaskell 
-deduces that the call to `divide` happens in an *impossible* environment,
-i.e. is dead code, and hence, the program is safe.
-
-In our defence, the above, sunny prognosis is not *totally misguided*. 
-Indeed, if Haskell was like ML and had *strict evaluation* then 
-indeed the program would be safe in that we would *not* go wrong 
-i.e. would not crash with a divide-by-zero.  
-
-But of course, thats a pretty lame excuse, since Haskell doesn't have 
-strict semantics. So looks like LiquidHaskell (and hence, we) 
-have been caught red-handed.
-
-Well then, is there a way to prevent LiquidHaskell from telling lies?
-That is, can we get Milner's *well-typed programs don't go wrong* 
-guarantee under lazy evaluation? 
-
-Thankfully, there is.
diff --git a/docs/blog/2013-12-01-getting-to-the-bottom.lhs b/docs/blog/2013-12-01-getting-to-the-bottom.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-01-getting-to-the-bottom.lhs
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: post
-title: "Getting To the Bottom of The Lies"
-date: 2013-12-01 16:12
-comments: true
-external-url:
-categories: termination
-author: Ranjit Jhala, Niki Vazou
-published: true
-demo: BasicTermination.hs
----
-
-[Previously][ref-lies], we caught LiquidHaskell telling a lie. Today, lets try to
-get to the bottom of this mendacity, in order to understand how we can ensure
-that it always tells the truth.
-
-<!-- more -->
-
-\begin{code}
-module GettingToTheBottom where
-\end{code}
-The Truth Lies At the Bottom
-----------------------------
-
-To figure out how we might prevent such mendacity, lets try to understand 
-whats really going on. We need to go back to the beginning.
-
-\begin{code} Recall that the refinement type:
-{v:Int | 0 <= v}
-\end{code}
-
-is supposed to denote the set of `Int` values that are greater than `0`.
-
-\begin{code} Consider a function:
-fib :: {n:Int | 0 <= n} -> {v:Int | 0 <= v}
-fib n = e
-\end{code}
-
-Intuitively, the type signature states that when checking the body `e` 
-we can **assume** that `0 <= n`. 
-
-This is indeed the case with **strict** evaluation, as we are guaranteed 
-that `n` will be evaluated before `e`. Thus, either:
-
-1. `n` diverges and so we don't care about `e` as we won't evaluate it, or,
-2. `n` is a non-negative value.
-
-Thus, either way, `e` is only evaluated in a context where `0 <= n`.
-
-But of course, this is not the case with **lazy** evaluation, as we may 
-well start evaluating `e` without evaluating `n`. Indeed, we may *finish*
-evaluating `e` without evaluating `n`. 
-
-Now of course, we know that *if* `n` is evaluated, it will yield a 
-non-negative value, but if it is not (or does not) evaluate to a
-value, we **cannot assume** that the rest of the computation is dead 
-(as with eager evaluation). 
-
-\begin{code} Thus, really with lazy evaluation, the refinement type `{n:Int | 0 <= n}` *actually* means:
-(n = _|_) || (0 <= n)
-\end{code}
-
-Keeping LiquidHaskell Honest
-----------------------------
-
-One approach to forcing LiquidHaskell to telling the truth is to force 
-it to *always* split cases and reason about `_|_`.
-
-\begin{code} Lets revisit `explode`
-explode = let z = 0
-          in  (\x -> 2013 `divide` z) (foo z)
-\end{code}
-
-\begin{code}This prevents the cheerful but bogus prognosis that `explode` above was safe, because the SMT solver cannot prove that at the call to `divide` 
-    z == 0 && (x = _|_ || (x >= 0 && x < z))  => z /= 0
-\end{code}
-
-PIC: PESSIMISTIC-ALWAYS-NO
-
-But alas, this cure is worse than the disease. Effectively it would end up
-lobotomizing LiquidHaskell making it unable to prove even trivial things like:
-
-\begin{code}_
-{-@ trivial    :: x:Int -> y:Int -> {pf: () | x < y} -> Int @-}
-trivial x y pf = liquidAssert (x < y) 10
-\end{code}
-
-\begin{code}as the corresponding SMT query
-    (pf = _|_ || x < y) => (x < y)
-\end{code}
-
-is, thanks to the pesky `_|_`, not valid. 
-
-Terminating The Bottom
-----------------------
-
-Thus, to make LiquidHaskell tell the truth while also not just pessimistically 
-rejecting perfectly good programs, we need a way to get rid of the `_|_`. That 
-is, we require a means of teaching LiquidHaskell to determine when a value
-is *definitely* not bottom. 
-
-In other words, we need to teach LiquidHaskell how to prove that a computation 
-definitely terminates.
diff --git a/docs/blog/2013-12-02-getting-to-the-bottom.lhs b/docs/blog/2013-12-02-getting-to-the-bottom.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-02-getting-to-the-bottom.lhs
+++ /dev/null
@@ -1,103 +0,0 @@
----
-layout: post
-title: "Getting To the Bottom"
-date: 2013-12-02 16:12
-comments: true
-external-url:
-categories: termination
-author: Ranjit Jhala, Niki Vazou
-published: true 
-demo: TellingLies.hs
----
-
-[Previously][ref-lies], we caught LiquidHaskell telling a lie. Today, lets try to
-get to the bottom of this mendacity, in order to understand how we can ensure
-that it always tells the truth.
-
-<!-- more -->
-
-\begin{code}
-module GettingToTheBottom where
-\end{code}
-
-The Truth Lies At the Bottom
-----------------------------
-
-To figure out how we might prevent falsehoods, lets try to understand 
-whats really going on. We need to go back to the beginning.
-
-\begin{code} Recall that the refinement type:
-{v:Int | 0 <= v}
-\end{code}
-
-is supposed to denote the set of `Int` values that are greater than `0`.
-
-\begin{code} Consider a function:
-fib :: {n:Int | 0 <= n} -> {v:Int | 0 <= v}
-fib n = e
-\end{code}
-
-Intuitively, the type signature states that when checking the body `e` 
-we can **assume** that `0 <= n`. 
-
-This is indeed the case with **strict** evaluation, as we are guaranteed 
-that `n` will be evaluated before `e`. Thus, either:
-
-1. `n` diverges and so we don't care about `e` as we won't evaluate it, or,
-2. `n` is a non-negative value.
-
-Thus, either way, `e` is only evaluated in a context where `0 <= n`.
-
-But this is *not* the case with **lazy** evaluation, as we may 
-well start evaluating `e` without evaluating `n`. Indeed, we may
-*finish* evaluating `e` without evaluating `n`. 
-
-Of course, *if* `n` is evaluated, it will yield a non-negative value, 
-but if it is not (or does not) evaluate to a value, we **cannot assume** 
-that the rest of the computation is dead (as with eager evaluation). 
-
-\begin{code} That is, with lazy evaluation, the refinement type `{n:Int | 0 <= n}` *actually* means:
-(n = _|_) || (0 <= n)
-\end{code}
-
-Keeping LiquidHaskell Honest
-----------------------------
-
-One approach to forcing LiquidHaskell to telling the truth is to force 
-it to *always* split cases and reason about `_|_`.
-
-\begin{code} Lets revisit `explode`
-explode = let z = 0
-          in  (\x -> 2013 `divide` z) (foo z)
-\end{code}
-
-\begin{code}The case splitting prevents the cheerful but bogus prognosis that `explode` above was safe, because the SMT solver cannot prove that at the call to `divide` 
-    z == 0 && (x = _|_ || (x >= 0 && x < z))  => z /= 0
-\end{code}
-
-But alas, this cure is worse than the disease. 
-It would end up lobotomizing LiquidHaskell making it unable to prove even trivial things like:
-
-\begin{code}_
-{-@ trivial    :: x:Int -> y:Int -> {pf: () | x < y} -> Int @-}
-trivial x y pf = liquidAssert (x < y) 10
-\end{code}
-
-\begin{code}as the corresponding SMT query
-    (pf = _|_ || x < y) => (x < y)
-\end{code}
-
-is, thanks to the pesky `_|_`, not valid. 
-
-Terminating The Bottom
-----------------------
-
-Thus, to make LiquidHaskell tell the truth while also not just pessimistically 
-rejecting perfectly good programs, we need a way to get rid of the `_|_`. That 
-is, we require a means of teaching LiquidHaskell to determine when a value
-is *definitely* not bottom. 
-
-In other words, we need to teach LiquidHaskell how to prove that a computation 
-definitely terminates.
-
-[ref-lies]:  /blog/2013/11/23/telling_lies.lhs/ 
diff --git a/docs/blog/2013-12-09-checking-termination.lhs b/docs/blog/2013-12-09-checking-termination.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-09-checking-termination.lhs
+++ /dev/null
@@ -1,173 +0,0 @@
----
-layout: post
-title: "Checking Termination"
-date: 2013-12-09 16:12
-comments: true
-external-url:
-categories: termination
-author: Niki Vazou
-published: true 
-demo: Termination.hs
----
-
-As explained in the [last][ref-lies] [two][ref-bottom] posts, we need a termination
-checker to ensure that LiquidHaskell is not tricked by divergent, lazy
-computations into telling lies. Happily, it turns out that with very 
-little retrofitting, and a bit of jiu jitsu, we can use refinements 
-themselves to prove termination!
-
-<!-- more -->
-
-<div class="row-fluid">
-   <div class="span12 pagination-centered">
-       <img src="http://img.dailymail.co.uk/i/pix/2007/06_01/TombstoneSWNS_468x526.jpg"
-       alt="Falling Down" width="300">
-       <br>
-       <br>
-       <br>
-       How do you prove this fellow will <b>stop falling?</b>
-       <br>
-       <br>
-       <br>
-   </div>
-</div>
-
-
-
-\begin{code}
-module Termination where
-
-import Prelude     hiding (sum)
-import Data.Vector hiding (sum)
-\end{code}
-
-Lets first see how LiquidHaskell proves termination on simple 
-recursive functions, and then later, we'll see how to look at 
-fancier cases.
-
-Looping Over Vectors
---------------------
-
-Lets write a bunch of little functions that operate on 1-dimensional vectors
-
-\begin{code}
-type Val = Int
-type Vec = Vector Val
-\end{code}
-
-Next, lets write a simple recursive function that loops over to add up
-the first `n` elements of a vector:
-
-\begin{code}
-sum     :: Vec -> Int -> Val
-sum a 0 = 0
-sum a n = (a ! (n-1)) + sum a (n-1)
-\end{code}
-
-Proving Termination By Hand(waving) 
------------------------------------
-
-Does `sum` terminate? 
-
-First off, it is apparent that if we call `sum` with a
-negative `n` then it **will not** terminate. 
-Thus, we should only call `sum` with non-negative integers.
-
-Fine, lets assume `n` is non-negative. Why then does it terminate?
-
-Intuitively,
-
-1. If `n` is `0` then it trivially returns with the value `0`.
-
-2. If `n` is non-zero, then we recurse *but* with a strictly smaller `n` ...
-
-3. ... but ultimately hit `0` at which point it terminates.
-
-Thus we can, somewhat more formally, prove termination by induction on `n`. 
-
-**Base Case** `n == 0` The function clearly terminates for the base case input of `0`.
-
-**Inductive Hypothesis** Lets assume that `sum` terminates on all `0 <= k < n`.
-
-**Inductive Step** Prove that `sum n` only recursively invokes `sum` with values that
-satisfy the inductive hypothesis and hence, which terminate.
-
-This reasoning suffices to convince ourselves that `sum i` terminates for 
-every natural number `i`. That is, we have shown that `sum` terminates 
-because a *well-founded metric* (i.e., the natural number `i`) is decreasing 
-at each recursive call.
-
-Proving Termination By Types
-----------------------------
-
-We can teach LiquidHaskell to prove termination by applying the same reasoning 
-as above, by rephrasing it in terms of refinement types.
-
-First, we specify that the input is restricted to the set of `Nat`ural numbers
-
-\begin{code}
-{-@ sum :: a:Vec -> {v:Nat | v < (vlen a)} -> Val @-}
-\end{code}
-
-where recall that `Nat` is just the refinement type `{v:Int | v >= 0}`.
-
-Second, we typecheck the *body* of `sum` under an environment that
-restricts `sum` to only be called on inputs less than `n`, i.e. using
-an environment:
-
--  `a   :: Vec`
--  `n   :: Nat`
--  `sum :: Vec -> n':{v:Nat | v < n} -> Val`
-
-This ensures that any (recursive) call in the body only calls `sum` 
-with inputs smaller than the current parameter `n`. Since its body 
-typechecks in this environment, i.e. `sum` is called with `n-1` which 
-is smaller than `n` and, in this case, a `Nat`, LiquidHaskell proves 
-that sum terminates for all `n`.
-
-For those keeping track at home, this is the technique of 
-[sized types](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.124.5589), 
-, expressed using refinements. Sized types themselves are an instance of 
-the classical method of proving termination via well founded metrics that 
-goes back, at least, to [Turing](http://www.turingarchive.org/viewer/?id=462&title=01b).
-
-Choosing the Correct Argument
------------------------------
-
-The example above is quite straightforward, and you might well wonder if this
-method works well for ``real-world" programs. With a few generalizations
-and extensions, and by judiciously using the wealth of information captured in
-refinement types, the answer is an emphatic, yes!
-
-Lets see one extension today.
-
-We saw that liquidHaskell can happily check that some Natural number is decreasing
-at each iteration, but it uses a na&#239;ve heuristic to choose which one -- for
-now, assume that it always chooses *the first* `Int` parameter.
-
-As you might imagine, this is quite simpleminded. 
-
-Consider, a tail-recursive implementation of `sum`:
-
-\begin{code}
-{-@ sum' :: a:Vec -> Val -> {v:Nat| v < (vlen a)} -> Val @-}
-sum' :: Vec -> Val -> Int -> Val
-sum' a acc 0 = acc + a!0 
-sum' a acc n = sum' a (acc + a!n) (n-1)
-\end{code}
-
-Clearly, the proof fails as liquidHaskell wants to prove that the `acc`umulator 
-is a `Nat`ural number that decreases at each iteration, neither of which may be
-true.
-
-\begin{code}The remedy is easy. We can point liquidHaskell to the correct argument `n` using a `Decrease` annotation: 
-{-@ Decrease sum' 3 @-}
-\end{code}
-which directs liquidHaskell to verify that the *third* argument (i.e., `n`) is decreasing. 
-With this hint, liquidHaskell will happily verify that `sum'` is indeed a terminating function.
-
-Thats all for now, next time we'll see how the basic technique can be extended
-to a variety of real-world settings.
-
-[ref-lies]:  /blog/2013/11/23/telling-lies.lhs/ 
-[ref-bottom]: /blog/2013/12/01/getting-to-the-bottom.lhs/
diff --git a/docs/blog/2013-12-14-gcd.lhs b/docs/blog/2013-12-14-gcd.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-14-gcd.lhs
+++ /dev/null
@@ -1,110 +0,0 @@
----
-layout: post
-title: "Termination Requires Refinements"
-date: 2013-12-14 16:12
-comments: true
-external-url:
-categories: termination 
-author: Niki Vazou
-published: true 
-demo: GCD.hs
----
-
-We've seen how, in the presence of [lazy evaluation][ref-lies], refinements
-[require termination][ref-bottom]. [Next][ref-termination], we saw how 
-LiquidHaskell can be used to prove termination. 
-
-Today, lets see how **termination requires refinements**. 
-
-That is, a crucial feature of LiquidHaskell's termination prover is that it is 
-not syntactically driven, i.e. is not limited to say, structural recursion. 
-Instead, it uses the wealth of information captured by refinements that are
-at our disposal, in order to prove termination. 
-
-This turns out to be crucial in practice.
-As a quick toy example -- motivated by a question by [Elias][comment-elias] -- 
-lets see how, unlike purely syntax-directed (structural) approaches, 
-LiquidHaskell proves that recursive functions, such as Euclid's GCD 
-algorithm, terminates.
-
-<!-- more -->
-
-<br>
-<br>
-<br>
-
-<div class="row-fluid">
-  <div class="span12 pagination-centered">
-  <img src="http://faculty.etsu.edu/gardnerr/Geometry-History/Euclid_7-Raphael.jpg"
-       alt="Euclid" width="300">
-       <br>
-       <br>
-       <br>
-       With LiquidHaskell, Euclid wouldn't have had to wave his hands.
-       <br>
-       <br>
-       <br>
-  </div>
-</div>
-
-\begin{code}
-module GCD where
-
-import Prelude hiding (gcd, mod)
-
-mod :: Int -> Int -> Int
-gcd :: Int -> Int -> Int
-\end{code}
-
-The [Euclidean algorithm][ref-euclidean] is one of the oldest numerical algorithms 
-still in common use and calculates the the greatest common divisor (GCD) of two 
-natural numbers `a` and `b`.
-
-Assume that `a > b` and consider the following implementation of `gcd`
-
-\begin{code}
-{-@ gcd :: a:Nat -> b:{v:Nat | v < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-From our previous post, to prove that `gcd` is terminating, it suffices to prove
-that the first argument decreases as each recursive call.
-
-By `gcd`'s type signature, `a < b` holds at each iteration, thus liquidHaskell 
-will happily discharge the terminating condition.
-
-The only condition left to prove is that `gcd`'s second argument, ie., `a `mod`
-b` is less that `b`. 
-
-This property follows from the behavior of the `mod` operator.
-
-So, to prove `gcd` terminating, liquidHaskell needs a refined signature for 
-`mod` that captures this behavior, i.e., that for any `a` and `b` the value 
-`mod a b` is less than `b`. Fortunately, we can stipulate this via a refined
-type:
-
-\begin{code}
-{-@ mod :: a:Nat -> b:{v:Nat| 0 < v} -> {v:Nat | v < b} @-}
-mod a b
-  | a < b = a
-  | otherwise = mod (a - b) b
-\end{code}
-
-\begin{code}Euclid's original version of `gcd` is different
-gcd' :: Int -> Int -> Int
-gcd' a b | a == b = a
-         | a >  b = gcd' (a - b) b 
-         | a <  b = gcd' a (b - a) 
-\end{code}
-
-Though this version is simpler, turns out that LiquidHaskell needs 
-a more sophisticated mechanism, called **lexicographic ordering**, to 
-prove it terminates. Stay tuned!
-
-
-[ref-euclidean]:    http://en.wikipedia.org/wiki/Euclidean_algorithm
-[ref-termination]:  /blog/2013/12/09/checking-termination.lhs/ 
-[ref-lies]:  /blog/2013/11/23/telling-lies.lhs/ 
-[ref-bottom]: /blog/2013/12/01/getting-to-the-bottom.lhs/
-[comment-elias]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2013/12/09/checking-termination.lhs/#comment-1159606500
diff --git a/docs/blog/2013-12-22-measuring-the-size-of-structures.lhs b/docs/blog/2013-12-22-measuring-the-size-of-structures.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-22-measuring-the-size-of-structures.lhs
+++ /dev/null
@@ -1,184 +0,0 @@
----
-layout: post
-title: "Measuring the size of Structures"
-date: 2013-12-22 16:12
-comments: false
-external-url:
-categories: termination, measures
-author: Niki Vazou
-published: false
-demo: TheSizeOfStructures.hs
----
-
-In the [previous][ref-termination] [two][ref-lexicographic] posts we saw how refinements can be used to prove
-termination. 
-In both posts functions recurse on integers.
-In Haskell the most common type of recursion is over recursive data structures.
-
-Today lets see how to prove termination on functions defined over
-recursive data structures.
-
-<!-- more -->
-
-\begin{code}
-module TheSizeOfStructures where
-
-import Prelude hiding (map)
-\end{code}
-
-Does list map Terminate?
-------------------------
-
-Lets define a `List` structure
-
-\begin{code}
-infixr `C`
-data List a = N | C a (List a)
-\end{code}
-
-and a map function `lmap` on it
-
-\begin{code}
-lmap              :: (a -> b) -> (List a) -> (List b)
-lmap _ N          = N
-lmap f (x `C` xs) = f x `C` lmap f xs
-\end{code}
-
-Does `lmap` terminate?
-
-At each iteration `lmap` is called with the tail of the input list.
-So, the *length* of the list is decreasing at each iteration
-and 
-if the input list is finite, its length will reach `0` and `lmap` will terminate.
-
-Since the length of the list is a natural number, it is
-a *well-founded metric*.
-
-From the [previous][ref-lexicographic] [two][ref-termination] posts a
-well-founded metric that decreases at each iteration is all
-liquidHaskell needs to prove termination on a recursive function.
-
-Two things are left to do: teach liquidHaskell to
-
-1. compute the length of a List
-
-2. use this length as the decreasing metric that decreases in `lmap`.
-
-
-Express Termination Metric
---------------------------
-
-First things first,
-we need to teach liquidHaskell to compute the length of the list.
-
-Remember *measures*?
-They were introduced in a [previous][ref-measure] post and in short measures
-provide a mechanism to define auxiliary properties on data
-values.
-
-Now we can define a measure `llen` than maps a list to its length:
-\begin{code}
-{-@ measure llen  :: (List a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)
-  @-}
-\end{code}
-
-
-and then, inform liquidHaskell that this measure is *well-formed*, ie., cannot
-be negative:
-
-\begin{code}
-{-@ invariant {v:(List a) | (llen v) >= 0}@-}
-\end{code}
-
-
-Relate List with its length
----------------------------
-
-The final step towards verification of `lmap`'s termination is to relate the List
-structure with its length `llen`.
-We can do this with the usual `data` annotation
-
-\begin{code}
-{-@ data List [llen] @-}
-\end{code}
-
-that informs the tool that `llen` measures the size of a list. 
-So each time the termination checker checks if a list is decreasing, it
-checks if its *default* size `llen` decreases. 
-
-
-Choosing the correct argument
------------------------------
-
-To prove termination liquidHaskell chooses one argument and tries to prove that
-is decreasing.
-But which argument? 
-It chooses the first one for which decreasing information exists.
-We have that for an integer to decrease its value should decrease 
-and we specified that a list decreases if its length `llen` decreases.
-
-In `lmap` there is no decreasing information for the function `f`, 
-so liquidHaskell will correclty guess that the list argument (ie., the second
-argument) should be
-decreasing.
-
-In a function that many arguments with decreasing information exist,
-liquidHaskell will na&#239;vely choose the first one.
-
-As an example, the following `posSum` function could not be proven to terminate
-without our `Decrease` hint.
-
-\begin{code}
-{-@ Decrease posSum 2 @-}
-posSum                            :: Int -> (List Int) -> Int
-posSum acc N                      = acc
-posSum acc (x `C` xs) | x > 0     = posSum (acc + x) xs
-                      | otherwise = posSum (acc)     xs
-\end{code}
-
-Standard lists
---------------
-You may think that all this is much work to prove that a function on a recursive
-structure is terminating.
-You have to both define the size of the structure and relate it with the
-structure.
-The good news is that this work is just performed once!
-
-Even better, for structures like standard lists liquidHaskell has done all this
-work for you!
-
-
-\begin{code} The standard list `[a]` comes with the build in measure 'len', defined as
- measure len :: [a] -> Int
- len ([])   = 1
- len (x:xs) = 1 + (len xs)
-\end{code}
-
-Thus liquidHaskell will just prove that functions recursive on standard lists
-shall terminate:
-
-\begin{code}
-map          :: (a -> b) -> [a] -> [b]
-map _ []     = []
-map f (x:xs) = f x : map f xs
-\end{code}
-
-Today we shaw how to prove termination on functions recursive over a data
-structure.
-You need to 
-
-1. define the size of the structure
-
-2. associate this size with the structure.
-
-In the next post, 
-we shall see our final mechanism to prove termination: *decreasing expressions*
-Stay tuned!
-
-[ref-measure]:       /blog/2013/01/31/sately-catching-a-list-by-its-tails.lhs/
-[ref-lies]:          /blog/2013/11/23/telling-lies.lhs/ 
-[ref-bottom]:        /blog/2013/12/01/getting-to-the-bottom.lhs/
-[ref-termination]:   /blog/2013/12/08/termination-checking.lhs/
-[ref-lexicographic]: /blog/2013/12/15/lexicographic-termination.lhs/
diff --git a/docs/blog/2013-12-24-lexicographic-termination.lhs b/docs/blog/2013-12-24-lexicographic-termination.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-24-lexicographic-termination.lhs
+++ /dev/null
@@ -1,125 +0,0 @@
----
-layout: post
-title: "Lexicographic Termination"
-date: 2013-12-15 16:12
-comments: true
-external-url:
-categories: termination, lexicographic ordering
-author: Niki Vazou
-published: true 
-demo: LexicographicTermination.hs
----
-
-[Previously][ref-termination] we saw how refinements can be used to prove termination
-and we promised to extend our termination checker to handle "real-word" programs.
-
-Keeping our promise, today we shall see a trick that allows liquidHaskell to prove termination on
-more recursive functions, namely *lexicographic termination*.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-module LexicographicTermination where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-\end{code}
-
-</div>
-
-Does Ackermann Function Terminate?
-----------------------------------
-
-Consider the famous [Ackermann
-function](http://en.wikipedia.org/wiki/Ackermann_function)
-
-\begin{code}
-{-@ ack :: m:Nat -> n:Nat -> Nat @-}
-ack :: Int -> Int -> Int
-ack m n
-    | m == 0          = n + 1
-    | m > 0 && n == 0 = ack (m-1) 1
-    | m > 0 && n >  0 = ack (m-1) (ack m (n-1))
-    | otherwise       = liquidError "Bad arguments!!!"
-\end{code}
-
-Does `ack` terminate?
-
-At each iteration
-
-1. Either `m` decreases, 
-
-2. or `m` remains the same and `n` decreases.
-
-Each time that `n` reaches `0`, `m` decreases, so `m` will
-eventaully reach `0` and `ack` will terminate.
-
-Expressed more technically the pair `(m, n)`
-decreases in the [lexicographic order](htpp://en.wikipedia/wiki/Lexicographic_order)
-on pairs, which is a well-ordering, ie.,
-we cannot go down infinitely many times.
-
-Express Termination Metric
---------------------------
-
-Great! The pair `(m, n)` is a *well-founded metric* on the Ackermann function that decreases.
-From the [previous post][ref-termination] a well-founded metric is all
-liquidHaskell needs to prove termination.
-So, we should feed the tool with this information.
-
-Remember the `Decrease` token?
-We used it [previously][ref-termination]
-to specify which is the decreasing argument.
-Now, we will use it with more arguments to specify 
-our decreasing pair. So,
-
-\begin{code}
-{-@ Decrease ack 1 2 @-}
-\end{code}
-
-says that the decreasing metric is the pair of the first
-and the second arguments, 
-ie., the pair `(m, n)`.
-
-Finally, we will see how liquidHaskell uses this annotation to prove
-termination.
-
-Proving Termination By Types
-----------------------------
-
-Following once more our [previous post][ref-termination],
-liquidHaskell typechecks the *body* of `ack` under an environment that
-restricts `ack` to only be called on inputs *less than* `(m,n)`.
-This time "less than" referes not to ordering on natural numbers, but to lexicographic
-ordering
-, i.e., using
-an environment:
-
--  `m   :: Nat`
--  `n   :: Nat`
--  `ack :: m':Nat -> n':{v:Nat | m' < m || (m' = m && v < n)} -> Nat`
-
-This ensures that any (recursive) call in the body only calls `ack` 
-with inputs smaller than the current parameter `(m, n)`. Since its body 
-typechecks in this environment, i.e. `ack` is called with smaller parameters, LiquidHaskell proves 
-that `ack` terminates.
-
-
-Someone may find the `Decrease` token annoying:
-if we insert another argument we should also update the decrease information.
-LiquidHaskell supports an alternative notation, 
-which lets you annotate the type signature 
-with a list of *decreasing expressions*.
-
-\begin{code} So, `ack` will also typecheck against the signature:
-{-@ ack :: m:Nat -> n:Nat -> Nat / [m, n] @-}
-\end{code}
-
-But what is the syntax of the decreasing expressions?
-Are they restricted to function parameters?
-No, but that is the subject of a next post!
-
-[ref-lies]:        /blog/2013/11/23/telling-lies.lhs/ 
-[ref-bottom]:      /blog/2013/12/01/getting-to-the-bottom.lhs/
-[ref-termination]: /blog/2013/12/08/termination-checking.lhs/
diff --git a/docs/blog/2013-12-29-decreasing-expressions.lhs b/docs/blog/2013-12-29-decreasing-expressions.lhs
deleted file mode 100644
--- a/docs/blog/2013-12-29-decreasing-expressions.lhs
+++ /dev/null
@@ -1,153 +0,0 @@
----
-layout: post
-title: "Decreasing Expressions"
-date: 2013-12-29 16:12
-comments: true
-external-url:
-categories: termination, measures
-author: Niki Vazou
-published: false
-demo: DecreasingExpressions.hs
----
-
-So far we proved that many recursive functions terminate.
-All the functions we used share a characteristic.
-They had (a list of) arguments that were (lexicographically) decreasing.
-
-What if no argument decreases?
-Consider an argument `i` that increases up to a higher value `hi`.
-As `i` increases the difference `hi - i` decreases and will eventually reach
-`0`.
-This difference "witnesses" termination.
-
-Today we will describe 
-the last mechanism liquidHaskell uses to prove termination:
-*decreasing expressions*
-that allow us to annotate functions with termination withnesses.
-
-<!-- more -->
-
-\begin{code}
-module DecreasingExpressions where
-
-range ::          Int -> Int -> [Int]
-merge :: Ord a => [a] -> [a] -> [a]
-\end{code}
-
-Termination on Increasing Arguments
------------------------------------
-
-Consider a `range` function that takes two integers 
-a `lo`wer and a `hi`gher and returns the list `[lo, lo+1, ..., hi-1]`
-
-\begin{code}
-range lo hi | lo < hi   = lo : range (lo + 1) hi
-            | otherwise = []
-\end{code}
-
-Clearly the difference `hi - lo` is decreasing at each iteration and will
-eventually reach `0`.
-That is, `hi - lo` is a *well-founded metric* that decreases.
-[Previously][ref-termination] we discussed that this is exactly what 
-liquidHaksell needs to prove termination.
-
-Sadly, liquidHaskell cannot synthesize this metric.
-But provides a mechanism for the user to specify it.
-With *decreasing expressions*, 
-we can annotate the type of a recursive function
-with the termination witness. Thus
-
-\begin{code}
-{-@ range :: lo:Int -> hi:Int -> [Int] / [(hi - lo)] @-}
-\end{code}
-
-makes liquidHaskell 
-prove that `hi - lo` is a non-negative quantily that decreases at
-each iteration, 
-
-Termination on a Function of the Arguments
-------------------------------------------
-
-Lets illustrate the power of decreasing expressions with a more involved
-example.
-
-Consider the standard `merge` from the homonymous sorting function 
-
-\begin{code}
-merge (x:xs) (y:ys) 
-  | x < y     = x : merge xs     (y:ys)
-  | otherwise = y : merge (x:xs) ys
-\end{code}
-
-Does `merge` terminate?
-Well it does because at each iteration the sum of the lengths of the two
-arguments decreases. 
-Using liquidHaskell's build in [measure][ref-measure] `len`
-to get the length of a list, we can specify 
-`(len xs) + (len ys)`
-as the decreasing expression for `merge`
-
-\begin{code}_
-{-@ merge :: Ord a => xs:[a] -> ys:[a] -> [a] / [(len xs) + (len ys)] @-}
-\end{code}
-
-
-By the way, the power of liquidHaskell does not stop at proving `merge`
-terminating. 
-It extends to proving that given two sorted lists, `merge` will actually return
-a sorted list!
-
-[Some time ago][ref-slist], we represented Sorted Lists as
-\begin{code}
-{-@ type SL a = [a]<{\x v -> x <= v}> @-}
-\end{code}
-
-With this, all we need to prove that sortedness is preserved is to type `merge`
-as
-\begin{code}
-{-@ merge :: Ord a => xs:(SL a) -> ys:(SL a) -> (SL a) 
-           / [(len xs) + (len ys)]                                    @-}
-\end{code}
-
-
-Wrapping Up Termination Checking
---------------------------------
-
-In the last couple of posts, we presented the mechanisms liquidHaskell uses to
-prove termination
-
-- We [started][ref-termination] with functions recursive on some natural namber
-  `i` that served as a decreasing metric to prove termination.
-
-- [Then][ref-lex], we used lexicographic ordering to prove termination on functions where
-  the decreasing metric constists of a list of arguments.
-
-- [After][ref-structures], we saw how to handle recursion on data structures: by proving the size of
-  this structure is decreasing, and
-
-- Today, we saw how to express more complicated decreasing metrics.
-
-Obviously liquidHaskell does not solve the halting problem: there do exist
-terminating functions that cannot be proven terminating.
-Worse, there do exist some cases of non-terminating functions tha fool
-liquidHaskell: 
-for instance, you can trick the tool 
-if you encode termination via [recursive types][ref-rec] or
-[references][ref-ref].
-We aim to soon address such corner cases.
-
-We claim that the above mechanisms suffice to prove 
-termination on numerous functions.
-Even *mutually recursive* ones, as we shall soon see.
-
-
-
-[ref-ref]:          https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/todo/Recursion1.hs
-[ref-rec]:          http://en.wikipedia.org/wiki/Fixed-point_combinator#Example_of_encoding_via_recursive_types 
-[ref-lies]:        /blog/2013/11/23/telling-lies.lhs/ 
-[ref-bottom]:      /blog/2013/12/01/getting-to-the-bottom.lhs/
-[ref-termination]: /blog/2013/12/08/termination-checking.lhs/
-[ref-lex]:         /blog/2013/12/15/lexicographic-termination.lhs/
-[ref-structures]:  /blog/2013/12/22/measuring-the-size-of-structures.lhs/
-[ref-measure]:     /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
-[ref-slist]:       /blog/2013/07/29/putting-things-in-order.lhs/
diff --git a/docs/blog/2014-02-11-the-advantage-of-measures.lhs b/docs/blog/2014-02-11-the-advantage-of-measures.lhs
deleted file mode 100644
--- a/docs/blog/2014-02-11-the-advantage-of-measures.lhs
+++ /dev/null
@@ -1,375 +0,0 @@
----
-layout: post
-title: "The Advantage of Measures"
-date: 2014-02-11
-author: Eric Seidel
-published: true
-comments: true
-external-url:
-categories: basic measures
----
-
-Yesterday someone asked on [Reddit][] how one might define GHC's [OrdList][] 
-in a way that statically enforces its three key invariants. The accepted
-solution required rewriting `OrdList` as a `GADT` indexed by a proof of
-*emptiness* (which is essentially created by a run-time check), and used
-the new Closed Type Families extension in GHC 7.8 to define a type-level 
-join of the Emptiness index.
-
-Today, let's see a somewhat more direct way of tackling this problem in 
-LiquidHaskell, in which we need not change a single line of code 
-(well.. maybe one), and need not perform any dynamic checks. 
-
-<!-- more -->
-
-<div class="hidden">
-\begin{code}
-module OrdList(
-    OrdList, 
-        nilOL, isNilOL, unitOL, appOL, consOL, snocOL, concatOL,
-        mapOL, fromOL, toOL, foldrOL, foldlOL, foldr', concatOL'
-) where
-
-infixl 5  `appOL`
-infixl 5  `snocOL`
-infixr 5  `consOL`
--- UGH parsing issues...
-{-@
-data OrdList [olen] a = None
-                      | One  (x  :: a)
-                      | Many (xs :: ListNE a)
-                      | Cons (x  :: a)           (xs :: OrdList a)
-                      | Snoc (xs :: OrdList a)   (x  :: a)
-                      | Two  (x  :: OrdListNE a) (y  :: OrdListNE a)
-@-}
-\end{code}
-</div>
-
-The OrdList Type
-----------------
-
-The `OrdList` type is defined as follows:
-
-\begin{code}
-data OrdList a
-  = None
-  | One a
-  | Many [a]        -- Invariant: non-empty
-  | Cons a (OrdList a)
-  | Snoc (OrdList a) a
-  | Two (OrdList a) -- Invariant: non-empty
-        (OrdList a) -- Invariant: non-empty
-\end{code}
-
-As indicated by the comments the key invariants are that:
-
-* `Many` should take a *non-empty* list,
-* `Two` takes two non-empty `OrdList`s. 
-
-What is a Non-Empty OrdList?
-----------------------------
-
-To proceed, we must tell LiquidHaskell what non-empty means. We do this
-with a [measure][] that describes the *number of elements* in a structure.
-When this number is strictly positive, the structure is non-empty.
-
-\begin{code} We've previously seen how to measure the size of a list.
-measure len :: [a] -> Int
-len ([])   = 0
-len (x:xs) = 1 + (len xs)
-\end{code}
-
-We can use the same technique to measure the size of an `OrdList`.
-
-\begin{code}
-{-@ measure olen :: OrdList a -> Int
-    olen (None)      = 0
-    olen (One x)     = 1
-    olen (Many xs)   = (len xs)
-    olen (Cons x xs) = 1 + (olen xs)
-    olen (Snoc xs x) = 1 + (olen xs)
-    olen (Two x y)   = (olen x) + (olen y)
-  @-}
-
-{-@ invariant {v:OrdList a | (olen v) >= 0} @-}
-\end{code}
-
-Now, we can use the measures to define aliases for **non-empty** lists and `OrdList`s.
-
-\begin{code}
-{-@ type ListNE    a = {v:[a]       | (len v)  > 0} @-}
-{-@ type OrdListNE a = {v:OrdList a | (olen v) > 0} @-}
-\end{code}
-
-Capturing the Invariants In a Refined Type
-------------------------------------------
-
-Let's return to the original type, and refine it with the above non-empty
-variants to specify the invariants as
-\begin{code} part of the data declaration
-{-@ data OrdList [olen] a
-      = None
-      | One  (x  :: a)
-      | Many (xs :: ListNE a)
-      | Cons (x  :: a)           (xs :: OrdList a)
-      | Snoc (xs :: OrdList a)   (x  :: a)
-      | Two  (x  :: OrdListNE a) (y  :: OrdListNE a)
-  @-}
-\end{code}
-
-Notice immediately that LiquidHaskell can use the refined definition to warn us 
-about malformed `OrdList` values.
-
-\begin{code}
-ok     = Many [1,2,3]
-bad    = Many []
-badder = Two None ok
-\end{code}
-
-All of the above are accepted by GHC, but only the first one is actually a valid
-`OrdList`. Happily, LiquidHaskell will reject the latter two, as they violate
-the invariants.
-
-
-Basic Functions
----------------
-
-Now let's look at some of the functions!
-
-First, we'll define a handy alias for `OrdList`s of a given size:
-
-\begin{code}
-{-@ type OrdListN a N = {v:OrdList a | (olen v) = N} @-}
-\end{code}
-
-Now, the `nilOL` constructor returns an empty `OrdList`:
-
-\begin{code}
-{-@ nilOL :: OrdListN a {0} @-}
-nilOL = None
-\end{code}
-
-the `unitOL` constructor returns an `OrdList` with one element:
-
-\begin{code}
-{-@ unitOL :: a -> OrdListN a {1} @-}
-unitOL as = One as
-\end{code}
-
-and `snocOL` and `consOL` return outputs with precisely one more element:
-
-\begin{code}
-{-@ snocOL :: xs:OrdList a -> a -> OrdListN a {1 + (olen xs)} @-}
-snocOL as b = Snoc as b
-
-{-@ consOL :: a -> xs:OrdList a -> OrdListN a {1 + (olen xs)} @-}
-consOL a bs = Cons a bs
-\end{code}
-
-**Note:** The `OrdListN a {e}` syntax just lets us use LiquidHaskell 
-expressions `e` as a parameter to the type alias `OrdListN`.
-
-
-<div class="hidden">
-\begin{code}
-{-@ isNilOL :: xs:OrdList a -> {v:Bool | ((Prop v) <=> ((olen xs) = 0))} @-}
-isNilOL None = True
-isNilOL _    = False
-\end{code}
-</div>
-
-Appending `OrdList`s
---------------------
-
-The above functions really aren't terribly interesting, however, since their 
-types fall right out of the definition of `olen`. 
-
-So how about something that takes a little thinking?
-
-\begin{code}
-{-@ appOL :: xs:OrdList a -> ys:OrdList a
-          -> OrdListN a {(olen xs) + (olen ys)}
-  @-}
-None  `appOL` b     = b
-a     `appOL` None  = a
-One a `appOL` b     = Cons a b
-a     `appOL` One b = Snoc a b
-a     `appOL` b     = Two a b
-\end{code}
-
-`appOL` takes two `OrdList`s and returns a list whose length is the **sum of** 
-the two input lists. The most important thing to notice here is that we haven't 
-had to insert any extra checks in `appOL`, unlike the [GADT][] solution. 
-
-LiquidHaskell uses the definition of `olen` to infer that in the last case of 
-`appOL`, `a` and `b` *must be non-empty*, so they are valid arguments to `Two`.
-
-We can prove other things about `OrdList`s as well, like the fact
-that converting an `OrdList` to a Haskell list preserves length
-
-\begin{code}
-{-@ toOL :: xs:[a] -> OrdListN a {(len xs)} @-}
-toOL [] = None
-toOL xs = Many xs
-\end{code}
-
-as does mapping over an `OrdList`
-
-\begin{code}
-{-@ mapOL :: (a -> b) -> xs:OrdList a -> OrdListN b {(olen xs)} @-}
-mapOL _ None        = None
-mapOL f (One x)     = One (f x)
-mapOL f (Cons x xs) = Cons (f x) (mapOL f xs)
-mapOL f (Snoc xs x) = Snoc (mapOL f xs) (f x)
-mapOL f (Two x y)   = Two (mapOL f x) (mapOL f y)
-mapOL f (Many xs)   = Many (map f xs)
-\end{code}
-
-as does converting a Haskell list to an `OrdList`.
-
-\begin{code}
-{-@ type ListN a N = {v:[a] | (len v) = N} @-}
-
-{-@ fromOL :: xs:OrdList a -> ListN a {(olen xs)} @-}
-fromOL a = go a []
-  where
-    {-@ go :: xs:_ -> ys:_
-           -> {v:_ | (len v) = (olen xs) + (len ys)}
-      @-}
-    go None       acc = acc
-    go (One a)    acc = a : acc
-    go (Cons a b) acc = a : go b acc
-    go (Snoc a b) acc = go a (b:acc)
-    go (Two a b)  acc = go a (go b acc)
-    go (Many xs)  acc = xs ++ acc
-\end{code}
-
-<div class="hidden">
-though for this last one we actually need to provide an explicit
-qualifier, which we haven't really seen so far. Can anyone guess why?
-
-\begin{code}
-{-@ qualif Go(v:List a, xs:OrdList a, ys:List a):
-      (len v) = (olen xs) + (len ys)
-  @-}
-\end{code}
-
-The answer is that the return type of `go` must refer to the length
-of the `OrdList` that it's folding over *as well as* the length of
-the accumulator `acc`! We haven't written a refinement like that in
-any of our type signatures in this module, so LiquidHaskell doesn't
-know to guess that type.
-</div>
-
-There's nothing super interesting to say about the `foldOL`s but I'll
-include them here for completeness' sake.
-
-\begin{code}
-foldrOL :: (a->b->b) -> b -> OrdList a -> b
-foldrOL _ z None        = z
-foldrOL k z (One x)     = k x z
-foldrOL k z (Cons x xs) = k x (foldrOL k z xs)
-foldrOL k z (Snoc xs x) = foldrOL k (k x z) xs
-foldrOL k z (Two b1 b2) = foldrOL k (foldrOL k z b2) b1
-foldrOL k z (Many xs)   = foldr k z xs
-
-foldlOL :: (b->a->b) -> b -> OrdList a -> b
-foldlOL _ z None        = z
-foldlOL k z (One x)     = k z x
-foldlOL k z (Cons x xs) = foldlOL k (k z x) xs
-foldlOL k z (Snoc xs x) = k (foldlOL k z xs) x
-foldlOL k z (Two b1 b2) = foldlOL k (foldlOL k z b1) b2
-foldlOL k z (Many xs)   = foldl k z xs
-\end{code}
-
-
-Concatenatation: Nested Measures
---------------------------------
-
-Now, the astute readers will have probably noticed that I'm missing 
-one function, `concatOL`, which glues a list of `OrdList`s into a 
-single long `OrdList`.
-
-With LiquidHaskell we can give `concatOL` a super precise type, which 
-states that the size of the output list equals the *sum-of-the-sizes* 
-of the input `OrdLists`.
-
-\begin{code}
-{-@ concatOL :: xs:[OrdList a] -> OrdListN a {(olens xs)} @-}
-concatOL []       = None
-concatOL (ol:ols) = ol `appOL` concatOL ols
-\end{code}
-
-The notion of *sum-of-the-sizes* of the input lists is specifed by the measure
-
-\begin{code}
-{-@ measure olens :: [OrdList a] -> Int
-    olens ([])     = 0
-    olens (ol:ols) = (olen ol) + (olens ols)
-  @-}
-
-{-@ invariant {v:[OrdList a] | (olens v) >= 0} @-}
-\end{code}
-
-LiquidHaskell is happy to verify the above signature, again without 
-requiring any explict proofs. 
-
-Conclusion
-----------
-
-The above illustrates the flexibility provided by LiquidHaskell *measures*.
-
-Instead of having to bake particular invariants into a datatype using indices
-or phantom types (as in the [GADT][] approach), we are able to split our 
-properties out into independent *views* of the datatype, yielding an approach
-that is more modular as 
-
-* we didn't have to go back and change the definition of `[]` to talk about `OrdList`s,
-* we didn't have to provide explict non-emptiness witnesses,
-* we obtained extra information about the behavior of API functions like `concatOL`.
-
-
-<div class="hidden">
-We can actually even verify the original definition of `concatOL` with a
-clever use of *abstract refinements*, but we have to slightly change
-the signature of `foldr`.
-
-\begin{code}
-{- UGH CAN'T PARSE `GHC.Types.:`...
-foldr' :: forall <p :: [a] -> b -> Prop>.
-          (xs:[a] -> x:a -> b<p xs> -> b<p (GHC.Types.: x xs)>)
-       -> b<p GHC.Types.[]>
-       -> ys:[a]
-       -> b<p ys>
-@-}
-foldr' f z []     = z
-foldr' f z (x:xs) = f xs x (foldr' f z xs)
-\end{code}
-
-We've added a *ghost parameter* to the folding function, letting us
-refer to the tail of the list at each folding step. This lets us
-encode inductive reasoning in the type of `foldr`, specifically that
-
-1. given a base case `z` that satisfies `p []`
-2. and a function that, given a value that satisfies `p xs`, returns
-a value satisfying `p (x:xs)`
-3. the value returned by `foldr f z ys` must satisfy `p ys`!
-
-LiquidHaskell can use this signature, instantiating `p` with `\xs
--> {v:OrdList a | (olen v) = (olens xs)}` to prove the original
-definition of `concatOL`!
-
-\begin{code}
-{- concatOL' :: xs:[OrdList a] -> OrdListN a {(olens xs)} @-}
-concatOL' aas = foldr' (const appOL) None aas
-\end{code}
-
-We haven't added the modified version of `foldr` to the LiquidHaskell
-Prelude yet because it adds the ghost variable to the Haskell
-type-signature.
-</div>
-
-[GADT]: http://www.reddit.com/r/haskell/comments/1xiurm/how_to_define_append_for_ordlist_defined_as_gadt/cfbrinr
-[Reddit]: http://www.reddit.com/r/haskell/comments/1xiurm/how_to_define_append_for_ordlist_defined_as_gadt/
-[OrdList]: http://www.haskell.org/platform/doc/2013.2.0.0/ghc-api/OrdList.html
-[measure]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/
diff --git a/docs/blog/2014-02-16-text-read.lhs b/docs/blog/2014-02-16-text-read.lhs
deleted file mode 100644
--- a/docs/blog/2014-02-16-text-read.lhs
+++ /dev/null
@@ -1,345 +0,0 @@
----
-layout: post
-title: "Text Read"
-date: 2014-02-16
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextRead.hs
----
-
-Welcome back! Last time we left off on a bit of a cliffhanger with the
-`unstream` example. Remember, the issue we found was that some `Char`s
-can't fit into a single `Word16`, so the safety of a write depends not
-only on the *index*, but also on the *value* being written! Before we
-can resolve this issue with `unstream` we'll have to learn about
-UTF-16, so let's take a short detour and look at how one *consumes* a
-`Text`.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextRead where
-
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "Data.Text.Array.new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (tarr :: Array)
-                            (toff :: TValidO tarr)
-                            (tlen :: TValidL toff tarr)
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
-{-@ axiom_lead_surr :: x:Word16 -> a:Array -> o:Nat -> l:Nat -> i:Nat
-                  -> {v:Bool | ((Prop v) <=> (if (55296 <= x && x <= 56319)
-                                              then (SpanChar 2 a o l i)
-                                              else (SpanChar 1 a o l i)))}
-  @-}
-axiom_lead_surr :: Word16 -> Array -> Int -> Int -> Int -> Bool
-axiom_lead_surr = undefined
-
-{-@ empty :: {v:Text | (tlen v) = 0} @-}
-empty :: Text
-empty = Text arrEmpty 0 0
-  where
-    {-@ arrEmpty :: (ArrayN {0}) @-}
-    arrEmpty = runST $ new 0 >>= unsafeFreeze
-
-unsafeChr :: Word16 -> Char
-unsafeChr (W16# w#) = C# (chr# (word2Int# w#))
-
-chr2 :: Word16 -> Word16 -> Char
-chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
-    where
-      !x# = word2Int# a#
-      !y# = word2Int# b#
-      !upper# = uncheckedIShiftL# (x# -# 0xD800#) 10#
-      !lower# = y# -# 0xDC00#
-
-{-@ qualif Min(v:int, t:Text, i:int):
-      (if ((tlength t) < i)
-       then ((numchars (tarr t) (toff t) v) = (tlength t))
-       else ((numchars (tarr t) (toff t) v) = i))
-  @-}
-
-{-@ qualif NumChars(v:int, t:Text, i:int): v = (numchars (tarr t) (toff t) i) @-}
-
-{-@ qualif TLengthLE(v:int, t:Text): v <= (tlength t) @-}
-
-\end{code}
-
-</div>
-
-Let's begin with a simple example, `unsafeHead`.
-
-\begin{code}
-{-@ type TextNE = {v:Text | (tlen v) > 0} @-}
-
-{-@ unsafeHead :: TextNE -> Char @-}
-unsafeHead :: Text -> Char
-unsafeHead (Text arr off _len)
-    | m < 0xD800 || m > 0xDBFF = unsafeChr m
-    | otherwise                = chr2 m n
-    where m = unsafeIndex arr off
-          n = unsafeIndex arr (off+1)
-\end{code}
-
-LiquidHaskell can prove the first `unsafeIndex` is safe because the
-precondition states that the `Text` must not be empty, i.e. `_len > 0`
-must hold. Combine this with the core `Text` invariant that
-`off + _len <= alen arr` and we get that `off < alen arr`, which satisfies
-the precondition for `unsafeIndex`.
-
-However, the same calculation *fails* for the second index because we
-can't prove that `off + 1 < alen arr`. The solution is going to
-require some understanding of UTF-16, so let's take a brief detour.
-
-The UTF-16 standard represents all code points below `U+10000` with a
-single 16-bit word; all others are split into two 16-bit words, known
-as a *surrogate pair*. The first word, or *lead*, is guaranteed to be
-in the range `[0xD800, 0xDBFF]` and the second, or *trail*, is
-guaranteed to be in the range `[0xDC00, 0xDFFF]`.
-
-Armed with this knowledge of UTF-16 we can return to
-`unsafeHead`. Note the case-split on `m`, which determines whether `m`
-is a lead surrogate. If `m` is a lead surrogate then we know there
-must be a trail surrogate at `off+1`; we can define a specialized
-version of `unsafeIndex` that encodes this domain knowledge.
-
-\begin{code}
-{-@ unsafeIndexF :: a:Array -> o:AValidO a -> l:AValidL o a
-                 -> i:{v:Nat | (o <= v && v < (o + l))}
-                 -> {v:Word16 | (if (55296 <= v && v <= 56319)
-                                 then (SpanChar 2 a o l i)
-                                 else (SpanChar 1 a o l i))}
-  @-}
-unsafeIndexF :: Array -> Int -> Int -> Int -> Word16
-unsafeIndexF a o l i = let x = unsafeIndex a i
-                       in liquidAssume (axiom_lead_surr x a o l i) x
-\end{code}
-
-Our variant `unsafeIndexF` (F as in "forward") takes an array, an
-offset, and a length (which together must form a valid `Text`); a
-valid index into the `Text`; and returns a `Word16` with an
-interesting type. The best way to read this type would be "if `v` is
-in the range `[0xD800, 0xDBFF]`, then the character that starts at
-index `i` in the array `a` spans two slots, otherwise it only spans
-one slot." Intuitively, we know what it means for a character to span
-`n` slots, but LiquidHaskell needs to know three things:
-
-1. `a[o:i+n]` contains one more character than `a[o:i]` (borrowing
-   Python's wonderful slicing syntax)
-2. `a[o:i+n]` contains no more characters than `a[o:l]`
-3. `i-o+n <= l`
-
-2 and 3 encode the well-formedness of a `Text` value, i.e. `i+1`
-*must* be a valid index if a lead surrogate is at index `i`.
-
-We can encode these properties in the refinement logic as follows.
-
-\begin{code}
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ predicate SpanChar N A O L I =
-      (((numchars (A) (O) ((I-O)+N)) = (1 + (numchars (A) (O) (I-O))))
-    && ((numchars (A) (O) ((I-O)+N)) <= (numchars A O L))
-    && (((I-O)+N) <= L))
-  @-}
-\end{code}
-
-The `numchars` measure takes an array, an offset, and a length
-(e.g. the `arr`, `off`, and `len` fields of a `Text`) and denotes the
-number of characters contained in the `length` slots beginning at
-`offset`. Since we can't compute this in the refinement logic, we
-leave the measure abstract. We can, however, provide LiquidHaskell
-with a few invariants about the behavior of `numchars`, specifically
-that (1) `numchars` always returns a `Nat`, (2) there are no
-characters contained in a empty span, and (3) there are at most as
-many characters as words in a `Text`. We encode these using a special
-`invariant` annotation.
-
-\begin{code}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) (tlen v)) >= 0}        @-}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) 0)         = 0}        @-}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) (tlen v)) <= (tlen v)} @-}
-\end{code}
-
-Finally returning to `unsafeHead`, we can use `unsafeIndexF` to
-strengthen the inferred type for `m`. LiquidHaskell can now prove that
-the second `unsafeIndex` is in fact safe, because it is only demanded
-if `m` is a lead surrogate.
-
-\begin{code}
-{-@ unsafeHead' :: TextNE -> Char @-}
-unsafeHead' :: Text -> Char
-unsafeHead' (Text arr off _len)
-    | m < 0xD800 || m > 0xDBFF = unsafeChr m
-    | otherwise                = chr2 m n
-    where m = unsafeIndexF arr off _len off
-          {-@ LAZYVAR n @-}
-          n = unsafeIndex arr (off+1)
-\end{code}
-
-The `LAZYVAR` annotation is currently required because LiquidHaskell
-doesn't know that `n` will only be demanded in one branch; one can
-imagine a transformation that would push the `where` bindings inward
-to the use-site, which would alleviate this issue.
-
-Before signing off, let's take a look at a slightly more interesting
-function, `take`.
-
-\begin{code}
-{-@ take :: n:Nat -> t:Text -> {v:Text | (Min (tlength v) (tlength t) n)} @-}
-take :: Int -> Text -> Text
-take n t@(Text arr off len)
-    | n <= 0    = empty
-    | n >= len  = t
-    | otherwise = Text arr off (loop 0 0)
-  where
-     loop !i !cnt
-          | i >= len || cnt >= n = i
-          | otherwise            = let d = iter_ t i
-                                   in loop (i+d) (cnt+1)
-\end{code}
-
-`take` gets a `Nat` and a `Text`, and returns a `Text` that contains
-the first `n` characters of `t`. That is, unless `n >= tlength t`, in
-which case it just returns `t`.
-
-`tlength` is a simple wrapper around `numchars`.
-
-\begin{code}
-{-@ measure tlength :: Text -> Int
-    tlength (Text a o l) = (numchars a o l)
-  @-}
-\end{code}
-
-The bulk of the work is done by the
-inner `loop`, which has to track the current index `i` and the number
-of characters we have seen, `cnt`. `loop` uses an auxiliary function
-`iter_` to determine the *width* of the character that starts at `i`,
-bumps `cnt`, and recursively calls itself at `i+d` until it either
-reaches the end of `t` or sees `n` characters, returning the final
-index.
-
-The `iter_` function is quite simple, it just determines whether the
-word at index `i` is a lead surrogate, and returns the appropriate
-span.
-
-\begin{code}
-{-@ predicate SpanCharT N T I =
-      (SpanChar N (tarr T) (toff T) (tlen T) ((toff T)+I))
-  @-}
-
-{-@ iter_ :: t:Text -> i:TValidI t
-          -> {v:Nat | (SpanCharT v t i)}
-  @-}
-iter_ :: Text -> Int -> Int
-iter_ (Text arr off len) i
-    | m < 0xD800 || m > 0xDBFF = 1
-    | otherwise                = 2
- where m = unsafeIndexF arr off len (off+i)
-\end{code}
-
-Again, we use `unsafeIndexF` to learn more about the structure of `t`
-by observing a small piece of it. It's also worth noting that we've
-encoded all of the domain knowledge we need into a single function,
-which has the benefit of letting us focus our attention on one type
-when we try to ensure that we've encoded it correctly.
-
-Next time, we'll continue our exploration of `text` and see how to
-construct a `Text` while ensuring the absence of out-of-bounds writes.
diff --git a/docs/blog/2014-02-23-text-write.lhs b/docs/blog/2014-02-23-text-write.lhs
deleted file mode 100644
--- a/docs/blog/2014-02-23-text-write.lhs
+++ /dev/null
@@ -1,323 +0,0 @@
----
-layout: post
-title: "Text Write"
-date: 2014-02-23
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextWrite.hs
----
-
-Last time, we showed how to reason about Unicode and a variable-width
-encoding of `Char`s when consuming a `Text` value, today we'll look at
-the same issue from the perspective of *building* a `Text`.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextWrite where
-
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Foreign.C.Types (CSize)
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ measure isUnknown :: Size -> Prop
-    isUnknown (Exact n) = false
-    isUnknown (Max   n) = false
-    isUnknown (Unknown) = true
-  @-}
-{-@ measure getSize :: Size -> Int
-    getSize (Exact n) = n
-    getSize (Max   n) = n
-  @-}
-
-{-@ invariant {v:Size | (getSize v) >= 0} @-}
-
-data Size = Exact {-# UNPACK #-} !Int -- ^ Exact size.
-          | Max   {-# UNPACK #-} !Int -- ^ Upper bound on size.
-          | Unknown                   -- ^ Unknown size.
-            deriving (Eq, Show)
-
-{-@ upperBound :: k:Nat -> s:Size -> {v:Nat | v = ((isUnknown s) ? k : (getSize s))} @-}
-upperBound :: Int -> Size -> Int
-upperBound _ (Exact n) = n
-upperBound _ (Max   n) = n
-upperBound k _         = k
-
-data Step s a = Done
-              | Skip !s
-              | Yield !a !s
-
-data Stream a =
-    forall s. Stream
-    (s -> Step s a)             -- stepper function
-    !s                          -- current state
-    !Size                       -- size hint
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidI MA = {v:Nat | v <  (malen MA)} @-}
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "Data.Text.Array.new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = liquidError "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-
-{-@ copyM :: dest:MArray s 
-          -> didx:MAValidO dest
-          -> src:MArray s 
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (malen dest))
-                    && ((sidx + v) <= (malen src)))}
-          -> ST s ()
-  @-}
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    liquidAssert (sidx + count <= maLen src) .
-    liquidAssert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (tarr :: Array)
-                            (toff :: TValidO tarr)
-                            (tlen :: TValidL toff tarr)
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- From TextRead
---------------------------------------------------------------------------------
-
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ measure tlength :: Text -> Int @-}
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ qualif Ord(v:int, i:int, x:Char)
-        : ((((ord x) <  65536) => (v = i))
-        && (((ord x) >= 65536) => (v = (i + 1))))
-  @-}
-
-\end{code}
-
-</div>
-
-We mentioned previously that `text` uses stream fusion to optimize
-multiple loops over a `Text` into a single loop; as a result many of
-the top-level API functions are simple wrappers around equivalent
-functions over `Stream`s. The creation of `Text` values is then
-largely handled by a single function, `unstream`, which converts a
-`Stream` into a `Text`.
-
-\begin{code}
-unstream :: Stream Char -> Text
-unstream (Stream next0 s0 len) = runST $ do
-  let mlen = upperBound 4 len
-  arr0 <- new mlen
-  let outer arr top = loop
-       where
-        loop !s !i =
-            case next0 s of
-              Done          -> do
-                arr' <- unsafeFreeze arr
-                return $! Text arr' 0 i
-              Skip s'       -> loop s' i
-              Yield x s'
-                | j >= top  -> do
-                  let top' = (top + 1) `shiftL` 1
-                  arr' <- new top'
-                  copyM arr' 0 arr 0 top
-                  outer arr' top' s i
-                | otherwise -> do
-                  d <- writeChar arr i x
-                  loop s' (i+d)
-                where j | ord x < 0x10000 = i
-                        | otherwise       = i + 1
-  outer arr0 mlen s0 0
-\end{code}
-
-Since we're focusing on memory safety here we won't go into detail
-about how `Stream`s work. Let's instead jump right into the inner
-`loop` and look at the `Yield` case. Here we need to write a char `x`
-into `arr`, so we compute the maximal index `j` to which we will
-write -- i.e. if `x >= U+10000` then `j = i + 1` -- and determine
-whether we can safely write at `j`. If the write is unsafe we have to
-allocate a larger array before continuing, otherwise we write `x` and
-increment `i` by `x`s width.
-
-Since `writeChar` has to handle writing *any* Unicode value, we need
-to assure it that there will always be room to write `x` into `arr`,
-regardless of `x`s width. Indeed, this is expressed in the type we
-give to `writeChar`.
-
-\begin{code}
-{-@ writeChar :: ma:MArray s -> i:Nat -> {v:Char | (Room v ma i)}
-              -> ST s {v:Nat | (RoomN v ma i)}
-  @-}
-\end{code}
-
-The predicate aliases `Room` and `RoomN` express that a character can
-fit in the array at index `i` and that there are at least `n` slots
-available starting at `i` respectively.
-
-\begin{code}
-{-@ predicate Room C MA I = (((One C) => (RoomN 1 MA I))
-                          && ((Two C) => (RoomN 2 MA I)))
-  @-}
-{-@ predicate RoomN N MA I = (I+N <= (malen MA)) @-}
-\end{code}
-
-The `One` and `Two` predicates express that a character will be
-encoded in one or two 16-bit words, by reasoning about its ordinal
-value.
-
-\begin{code}
-{-@ predicate One C = ((ord C) <  65536) @-}
-{-@ predicate Two C = ((ord C) >= 65536) @-}
-\end{code}
-
-As with `numchars`, we leave `ord` abstract, but inform LiquidHaskell
-that the `ord` *function* does in fact return the ordinal value of the
-character.
-
-\begin{code}
-{-@ measure ord :: Char -> Int @-}
-{-@ ord :: c:Char -> {v:Int | v = (ord c)} @-}
-\end{code}
-
-Since `writeChar` assumes that it will never be called unless there is room to
-write `c`, it is safe to just split `c` into 16-bit words and write them into
-the array.
-
-\begin{code}
-writeChar :: MArray s -> Int -> Char -> ST s Int
-writeChar marr i c
-    | n < 0x10000 = do
-        unsafeWrite marr i (fromIntegral n)
-        return 1
-    | otherwise = do
-        unsafeWrite marr i lo
-        unsafeWrite marr (i+1) hi
-        return 2
-    where n = ord c
-          m = n - 0x10000
-          lo = fromIntegral $ (m `shiftR` 10) + 0xD800
-          hi = fromIntegral $ (m .&. 0x3FF) + 0xDC00
-\end{code}
-
-In typical design-by-contract style, we're putting the burden of proof to
-establish safety on `writeChar`s caller. Now, scroll back up to
-`unstream` and mouse over `j` to see its inferred type.
-\begin{code} You should see something like
-{v:Int | ((ord x >= 65536) => (v == i+1))
-      && ((ord x <  65536) => (v == i))}
-\end{code}
-which, combined with the case-split on `j >= top`, provides the proof that
-writing `x` will be safe!
-
-Stay tuned, next time we'll look at another example of building a `Text` where
-LiquidHaskell fails to infer this crucial refinement...
diff --git a/docs/blog/2014-03-01-text-bug.lhs b/docs/blog/2014-03-01-text-bug.lhs
deleted file mode 100644
--- a/docs/blog/2014-03-01-text-bug.lhs
+++ /dev/null
@@ -1,333 +0,0 @@
----
-layout: post
-title: "Text Bug"
-date: 2014-03-01
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextBug.hs
----
-
-For our last post on `text`, we return to the topic of building a new `Text`
-value, i.e. proving the safety of write operations.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextBug where
-
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Foreign.C.Types (CSize)
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ measure isUnknown :: Size -> Prop
-    isUnknown (Exact n) = false
-    isUnknown (Max   n) = false
-    isUnknown (Unknown) = true
-  @-}
-{-@ measure getSize :: Size -> Int
-    getSize (Exact n) = n
-    getSize (Max   n) = n
-  @-}
-
-{-@ invariant {v:Size | (getSize v) >= 0} @-}
-
-data Size = Exact {-# UNPACK #-} !Int -- ^ Exact size.
-          | Max   {-# UNPACK #-} !Int -- ^ Upper bound on size.
-          | Unknown                   -- ^ Unknown size.
-            deriving (Eq, Show)
-
-{-@ upperBound :: k:Nat -> s:Size -> {v:Nat | v = ((isUnknown s) ? k : (getSize s))} @-}
-upperBound :: Int -> Size -> Int
-upperBound _ (Exact n) = n
-upperBound _ (Max   n) = n
-upperBound k _         = k
-
-data Step s a = Done
-              | Skip !s
-              | Yield !a !s
-
-data Stream a =
-    forall s. Stream
-    (s -> Step s a)             -- stepper function
-    !s                          -- current state
-    !Size                       -- size hint
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidI MA = {v:Nat | v <  (malen MA)} @-}
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "Data.Text.Array.new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = liquidError "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-
-{-@ copyM :: dest:MArray s 
-          -> didx:MAValidO dest
-          -> src:MArray s 
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (malen dest))
-                    && ((sidx + v) <= (malen src)))}
-          -> ST s ()
-  @-}
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    liquidAssert (sidx + count <= maLen src) .
-    liquidAssert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (tarr :: Array)
-                            (toff :: TValidO tarr)
-                            (tlen :: TValidL toff tarr)
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- From TextRead
---------------------------------------------------------------------------------
-
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ measure tlength :: Text -> Int @-}
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
---------------------------------------------------------------------------------
---- From TextWrite
---------------------------------------------------------------------------------
-
-{-@ qualif Ord(v:int, i:int, x:Char)
-        : ((((ord x) <  65536) => (v = i))
-        && (((ord x) >= 65536) => (v = (i + 1))))
-  @-}
-
-{-@ predicate Room C MA I = (((One C) => (RoomN 1 MA I))
-                          && ((Two C) => (RoomN 2 MA I)))
-  @-}
-{-@ predicate RoomN N MA I = (I+N <= (malen MA)) @-}
-
-{-@ measure ord :: Char -> Int @-}
-{-@ ord :: c:Char -> {v:Int | v = (ord c)} @-}
-{-@ predicate One C = ((ord C) <  65536) @-}
-{-@ predicate Two C = ((ord C) >= 65536) @-}
-
-{-@ writeChar :: ma:MArray s -> i:Nat -> {v:Char | (Room v ma i)}
-              -> ST s {v:Nat | (RoomN v ma i)}
-  @-}
-writeChar :: MArray s -> Int -> Char -> ST s Int
-writeChar marr i c
-    | n < 0x10000 = do
-        unsafeWrite marr i (fromIntegral n)
-        return 1
-    | otherwise = do
-        unsafeWrite marr i lo
-        unsafeWrite marr (i+1) hi
-        return 2
-    where n = ord c
-          m = n - 0x10000
-          lo = fromIntegral $ (m `shiftR` 10) + 0xD800
-          hi = fromIntegral $ (m .&. 0x3FF) + 0xDC00
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ qualif MALenLE(v:int, a:MArray s): v <= (malen a) @-}
-{-@ qualif ALenLE(v:int, a:Array): v <= (alen a) @-}
-
-\end{code}
-
-</div>
-
-Let's take a look at `mapAccumL`, which combines a map and a fold
-over a `Stream` and bundles the result of the map into a new `Text`.
-Again, we'll want to focus our attention on the `Yield` case of the
-inner loop.
-
-\begin{code}
-mapAccumL f z0 (Stream next0 s0 len) =
-  (nz, Text na 0 nl)
- where
-  mlen = upperBound 4 len
-  (na,(nz,nl)) = runST $ do
-       (marr,x) <- (new mlen >>= \arr ->
-                    outer arr mlen z0 s0 0)
-       arr      <- unsafeFreeze marr
-       return (arr,x)
-  outer arr top = loop
-   where
-    loop !z !s !i =
-      case next0 s of
-        Done          -> return (arr, (z,i))
-        Skip s'       -> loop z s' i
-        Yield x s'
-          | j >= top  -> do
-            let top' = (top + 1) `shiftL` 1
-            arr' <- new top'
-            copyM arr' 0 arr 0 top
-            outer arr' top' z s i
-          | otherwise -> do
-            let (z',c) = f z x
-            d <- writeChar arr i c
-            loop z' s' (i+d)
-          where j | ord x < 0x10000 = i
-                  | otherwise       = i + 1
-\end{code}
-
-If you recall `unstream` from last time, you'll notice that this loop body
-looks almost identical to the one found in `unstream`, but LiquidHaskell has
-flagged the `writeChar` call as unsafe! What's going on here?
-
-Let's take a look at `j`, recalling that it carried a crucial part of the safety
-\begin{code} proof last time, and see what LiquidHaskell was able to infer.
-{v:Int | ((ord x >= 65536) => (v == i+1))
-      && ((ord x <  65536) => (v == i))}
-\end{code}
-
-Well that's not very useful at all! LiquidHaskell can prove that it's safe to
-write `x` but here we are trying to write `c` into the array. This is actually
-a *good* thing though, because `c` is the result of calling an arbitrary
-function `f` on `x`! We haven't constrained `f` in any way, so it could easily
-return a character above `U+10000` given any input.
-
-So `mapAccumL` is actually *unsafe*, and our first wild bug caught by
-LiquidHaskell! The fix is luckily easy, we simply have to lift the
-`let (z',c) = f z x` binder into the `where` clause, and change `j` to
-depend on `ord c` instead.
-
-\begin{code}
-mapAccumL' f z0 (Stream next0 s0 len) =
-  (nz, Text na 0 nl)
- where
-  mlen = upperBound 4 len
-  (na,(nz,nl)) = runST $ do
-       (marr,x) <- (new mlen >>= \arr ->
-                    outer arr mlen z0 s0 0)
-       arr      <- unsafeFreeze marr
-       return (arr,x)
-  outer arr top = loop
-   where
-    loop !z !s !i =
-      case next0 s of
-        Done          -> return (arr, (z,i))
-        Skip s'       -> loop z s' i
-        Yield x s'
-          | j >= top  -> do
-            let top' = (top + 1) `shiftL` 1
-            arr' <- new top'
-            copyM arr' 0 arr 0 top
-            outer arr' top' z s i
-          | otherwise -> do
-            d <- writeChar arr i c
-            loop z' s' (i+d)
-          where (z',c) = f z x
-                j | ord c < 0x10000 = i
-                  | otherwise       = i + 1
-\end{code}
-
-LiquidHaskell happily accepts our revised `mapAccumL`, as did the `text`
-maintainers.
-
-We hope you've enjoyed this whirlwind tour of using LiquidHaskell to verify
-production code, we have many more examples in the `benchmarks` folder of
-our GitHub repository for the intrepid reader.
diff --git a/docs/blog/2014-05-28-pointers-gone-wild.lhs b/docs/blog/2014-05-28-pointers-gone-wild.lhs
deleted file mode 100644
--- a/docs/blog/2014-05-28-pointers-gone-wild.lhs
+++ /dev/null
@@ -1,467 +0,0 @@
----
-layout: post
-title: "Pointers Gone Wild"
-date: 2014-05-28
-comments: true
-external-url:
-author: Eric Seidel
-published: true
-categories: benchmarks, text
-demo: TextInternal.hs
----
-
-A large part of the allure of Haskell is its elegant, high-level ADTs
-that ensure[^compilercorrectness] that programs won't be plagued by problems
-like the infamous [SSL heartbleed bug](http://en.wikipedia.org/wiki/Heartbleed).
-
-[^compilercorrectness]: Assuming the absence of errors in the compiler and run-time...
-
-However, another part of Haskell's charm is that when you really really 
-need to, you can drop down to low-level pointer twiddling to squeeze the 
-most performance out of your machine. But of course, that opens the door 
-to the #heartbleeds.
-
-Can we have have our cake and eat it too? 
-
-Can we twiddle pointers and still get the nice safety assurances of high-level types?
-
-<!-- more -->
-
-To understand the potential for potential bleeding,
-let's study the popular `text` library for efficient 
-text processing. The library provides the high-level 
-API Haskellers have come to expect while using stream 
-fusion and byte arrays under the hood to guarantee 
-high performance.
-
-Suppose we wanted to get the *i*th `Char` of a `Text`,
-\begin{code} we could write a function[^bad]
-charAt (Text a o l) i = word2char $ unsafeIndex a (o+i)
-  where 
-    word2char         = chr . fromIntegral
-\end{code}
-which extracts the underlying array `a`, indexes into it starting
-at the offset `o` and casts the `Word16` to a `Char`, using 
-functions exported by `text`.
-
-[^bad]: This function is bad for numerous reasons, least of which is that `Data.Text.index` is already provided, but stay with us...
-
-\begin{code}Let's try this out in GHCi.
-ghci> let t = pack ['d','o','g']
-ghci> charAt t 0
-'d'
-ghci> charAt t 2
-'g'
-\end{code}
-
-\begin{code}Looks good so far, what happens if we keep going?
-ghci> charAt t 3
-'\NUL'
-ghci> charAt t 100
-'\8745'
-\end{code}
-
-Oh dear, not only did we not get any sort of exception from Haskell, 
-we weren't even stopped by the OS with a segfault. This is quite 
-dangerous since we have no idea what sort of data we just read! 
-To be fair to the library's authors, we did use a function that 
-was clearly branded `unsafe`, but these functions, while not 
-intended for *clients*, pervade the implementation of the *library*.
-
-Wouldn't it be nice to have these last two calls *rejected at compile time*?
-
-In this post we'll see exactly how prevent invalid memory accesses 
-like this with LiquidHaskell.
-
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextInternal (test, goodMain, badMain, charAt, charAt') where
-
-import qualified Control.Exception as Ex
-import Control.Applicative     ((<$>))
-import Control.Monad           (when)
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Data.Bits (shiftR, xor, (.&.))
-import Data.Char
-import Foreign.C.Types (CSize)
-import GHC.Base (Int(..), ByteArray#, MutableByteArray#, newByteArray#,
-                 writeWord16Array#, indexWord16Array#, unsafeCoerce#, ord,
-                 iShiftL#)
-import GHC.ST (ST(..), runST)
-import GHC.Word (Word16(..))
-
-import qualified Data.Text.Lazy.IO as TIO
-import qualified Data.Text as T
-import qualified Data.Text.Internal as T
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ aLen :: a:Array -> {v:Nat | v = (aLen a)}  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (maLen a)}  @-}
-
-new          :: forall s. Int -> ST s (MArray s)
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeFreeze :: MArray s -> ST s Array
-unsafeIndex  :: Array -> Int -> Word16
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
---------------------------------------------------------------------------------
---- Helper Code
---------------------------------------------------------------------------------
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-pack :: String -> Text
-pack = undefined -- not "actually" using
-
-assert b a = Ex.assert b a
-
-
-data Text = Text Array Int Int
-
-{-@ tLength :: t:Text -> {v:_ | v = (tLen t)} @-}
-tLength (Text _ _ n)  =  n
-\end{code}
-
-</div>
-
-The `Text` Lifecycle
---------------------
-`text` splits the reading and writing array operations between two
-types of arrays, immutable `Array`s and mutable `MArray`s. This leads to
-the following general lifecycle:
-
-![The lifecycle of a `Text`](/images/text-lifecycle.png)
-
-The main four array operations we care about are:
-
-1. **creating** an `MArray`,
-2. **writing** into an `MArray`,
-3. **freezing** an `MArray` into an `Array`, and
-4. **reading** from an `Array`.
-
-Creating an `MArray`
---------------------
-
-The (mutable) `MArray` is a thin wrapper around GHC's primitive
-`MutableByteArray#`, additionally carrying the number of `Word16`s it
-can store.
-
-\begin{code}
-data MArray s = MArray { maBA  :: MutableByteArray# s
-                       , maLen :: !Int
-                       }
-\end{code}
-
-It doesn't make any sense to have a negative length, so we *refine*
-the data definition to require that `maLen` be non-negative. 
-
-\begin{code}
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat
-                           }
-  @-}
-\end{code}
-
-
-\begin{code} As an added bonus, the above specification generates **field-accessor measures** that we will use inside the refined types:
-{-@ measure maLen :: MArray s -> Int
-    maLen (MArray a l) = l
-  @-}
-\end{code}
-
-We can use these accessor measures to define `MArray`s of size `N`:
-
-\begin{code}
-{-@ type MArrayN a N = {v:MArray a | (maLen v) = N} @-}
-\end{code}
-
-and we can use the above alias, to write a type that tracks the size
-of an `MArray` at the point where it is created:
-
-\begin{code}
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new n
-  | n < 0 || n .&. highBit /= 0 = error "size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-\end{code}
-
-`new n` is an `ST` action that produces an `MArray s` with `n` slots each 
-of which is 2 bytes (as internally `text` manipulates `Word16`s).
-
-The verification process here is quite simple; LH recognizes that 
-the `n` used to construct the returned array (`MArray marr# n`) 
-the same `n` passed to `new`. 
-
-Writing into an `MArray`
-------------------------
-
-Once we have *created* an `MArray`, we'll want to write our data into it. 
-
-A `Nat` is a valid index into an `MArray` if it is *strictly less than* 
-the size of the array.
-
-\begin{code}
-{-@ type MAValidI MA = {v:Nat | v < (maLen MA)} @-}
-\end{code}
-
-We use this valid index alias to refine the type of `unsafeWrite`
-
-\begin{code}
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = assert False $ error "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-\end{code}
-
-Note that, when compiled with appropriate options, the implementation of
-`text` checks the bounds at run-time. However, LiquidHaskell can statically
-prove that the error branch is unreachable, i.e. the `assert` **cannot fail**
-(as long as the inputs adhere to the given specification) by giving `assert`
-the type:
-
-\begin{code}
-{-@ assert assert :: {v:Bool | (Prop v)} -> a -> a @-}
-\end{code}
-
-Bulk Writing into an `MArray`
------------------------------
-
-So now we can write individual `Word16`s into an array, but maybe we
-have a whole bunch of text we want to dump into the array. Remember,
-`text` is supposed to be fast! C has `memcpy` for cases like this but 
-it's notoriously unsafe; with the right type however, we can regain safety. 
-`text` provides a wrapper around `memcpy` to copy `n` elements from 
-one `MArray` to another.
-
-`copyM` requires two `MArray`s and valid offsets into each -- note
-that a valid offset is **not** necessarily a valid *index*, it may
-be one element out-of-bounds
-
-\begin{code}
-{-@ type MAValidO MA = {v:Nat | v <= (maLen MA)} @-}
-\end{code}
-
--- and a `count` of elements to copy.
-The `count` must represent a valid region in each `MArray`, in
-other words `offset + count <= length` must hold for each array.
-
-\begin{code}
-{-@ copyM :: dest:MArray s
-          -> didx:MAValidO dest
-          -> src:MArray s
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (maLen dest))
-                    && ((sidx + v) <= (maLen src)))}
-          -> ST s ()
-  @-}
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    assert (sidx + count <= maLen src) .
-    assert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-\end{code}
-
-Again, the two `assert`s in the function were in the original code as 
-(optionally compiled out) run-time checks of the precondition, but with 
-LiquidHaskell we can actually *prove* that the `assert`s **always succeed**.
-
-Freezing an `MArray` into an `Array`
-------------------------------------
-
-Before we can package up our `MArray` into a `Text`, we need to
-*freeze* it, preventing any further mutation. The key property 
-here is of course that the frozen `Array` should have the same 
-length as the `MArray`.
-
-Just as `MArray` wraps a mutable array, `Array` wraps an *immutable*
-`ByteArray#` and carries its length in `Word16`s.
-
-\begin{code}
-data Array = Array { aBA  :: ByteArray#
-                   , aLen :: !Int
-                   }
-\end{code}
-
-As before, we get free accessor measures `aBA` and `aLen` just by
-refining the data definition
-
-\begin{code}
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat
-                       }
-  @-}
-\end{code}
-
-so we can refer to the components of an `Array` in our refinements.
-Using these measures, we can define
-
-\begin{code}
-{-@ type ArrayN N = {v:Array | (aLen v) = N} @-}
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (maLen ma)) @-}
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-\end{code}
-
-Again, LiquidHaskell is happy to prove our specification as we simply
-copy the length parameter `maLen` over into the `Array`.
-
-Reading from an `Array`
-------------------------
-Finally, we will eventually want to read a value out of the
-`Array`. As with `unsafeWrite` we require a valid index into the
-`Array`, which we denote using the `AValidI` alias.
-
-\begin{code}
-{-@ type AValidI A = {v:Nat | v < (aLen A)} @-}
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = assert False $ error "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-\end{code}
-
-As before, LiquidHaskell can easily prove that the error branch
-is unreachable, i.e. is *never* executed at run-time.
-
-Wrapping it all up
-------------------
-
-Now we can finally define the core datatype of the `text` package!
-A `Text` value consists of three fields:
-
-A. an `Array`,
-
-B. an `Int` offset into the *middle* of the array, and
-
-C. an `Int` length denoting the number of valid indices *after* the offset.
-
-We can specify the invariants for fields (b) and (c) with the refined type:
-
-\begin{code}
-{-@ data Text
-      = Text { tArr :: Array
-             , tOff :: {v:Nat | v      <= (aLen tArr)}
-             , tLen :: {v:Nat | v+tOff <= (aLen tArr)}
-             }
-  @-}
-\end{code}
-
-These invariants ensure that any *index* we pick between `tOff` and
-`tOff + tLen` will be a valid index into `tArr`. 
-
-As shown above with `new`, `unsafeWrite`, and `unsafeFreeze`, we can type the
-top-level function that creates a `Text` from a `[Char]` as:
-
-\begin{code}
-{-@ pack :: s:String -> {v:Text | (tLen v) = (len s)} @-}
-\end{code}
-
-Preventing Bleeds
------------------
-
-Now, let us close the circle and return to potentially *bleeding* function:
-
-\begin{code}
-charAt' (Text a o l) i = word2char $ unsafeIndex a (o+i)
-  where 
-    word2char          = chr . fromIntegral
-\end{code}
-
-Aha! LiquidHaskell flags the call to `unsafeIndex` because of course, `i` may fall
-outside the bounds of the given array `a`! We can remedy that by specifying
-a bound for the index:
-
-\begin{code}
-{-@ charAt :: t:Text -> {v:Nat | v < (tLen t)} -> Char @-}
-charAt (Text a o l) i = word2char $ unsafeIndex a (o+i)
-  where 
-    word2char         = chr . fromIntegral
-\end{code}
-
-That is, we can access the `i`th `Char` as long as `i` is a `Nat` less
-than the the size of the text, namely `tLen t`. Now LiquidHaskell is convinced
-that the call to `unsafeIndex` is safe, but of course, we have passed
-the burden of proof onto users of `charAt`.
-
-Now, if we try calling `charAt` as we did at the beginning
-
-\begin{code}
-test = [good,bad]
-  where
-    dog  = ['d','o','g']
-    good = charAt (pack dog) 2
-    bad  = charAt (pack dog) 3
-\end{code}
-
-we see that LiquidHaskell verifies the `good` call, but flags `bad` as
-**unsafe**.
-
-Enforcing Sanitization
-----------------------
-
-EDIT: As several folks have pointed out, the #heartbleed error was
-due to inputs not being properly sanitized. The above approach 
-**ensures, at compile time**, that proper sanitization has been 
-performed. 
-
-To see this in action, lets write a little function that just shows the 
-character at a given position:
-
-\begin{code}
-{-@ showCharAt :: t:_ -> {v:Nat | v < (tLen t)} -> _ @-}
-showCharAt t i = putStrLn $ show $ charAt t i
-\end{code}
-
-Now, the following function, that correctly sanitizes is **accepted**
-
-\begin{code}
-goodMain :: IO ()
-goodMain 
-  = do txt <- pack <$> getLine
-       i   <- readLn
-       if 0 <= i && i < tLength txt 
-         then showCharAt txt i 
-         else putStrLn "Bad Input!"
-\end{code}
-
-but this function, which has insufficient sanitization, is **rejected**
-
-\begin{code}
-badMain :: IO ()
-badMain 
-  = do txt <- pack <$> getLine 
-       i   <- readLn
-       if 0 <= i 
-         then showCharAt txt i 
-         else putStrLn "Bad Input!"
-\end{code}
-
-Thus, we can use LiquidHaskell to block, at compile time, any serious bleeding
-from pointers gone wild.
diff --git a/docs/blog/2014-08-15-a-finer-filter.lhs b/docs/blog/2014-08-15-a-finer-filter.lhs
deleted file mode 100644
--- a/docs/blog/2014-08-15-a-finer-filter.lhs
+++ /dev/null
@@ -1,303 +0,0 @@
----
-layout: post
-title: "A Finer Filter"
-date: 2014-08-15 16:12
-author: Ranjit Jhala
-published: true
-comments: true
-external-url:
-categories: abstract-refinements 
-demo: filter.hs
----
-
-This morning, I came across this [nice post](https://twitter.com/ertesx/status/500034598042996736) which describes how one can write a very expressive type for 
-`filter` using [singletons](https://hackage.haskell.org/package/singletons).
-
-Lets see how one might achieve this with [abstract refinements][absref].
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-
-{-@ LIQUID "--short-names" @-}
-
-module Filter (filter) where
-
-import Prelude hiding (filter)
-import Data.Set (Set)
-
-import Prelude hiding (filter)
-isPos, isEven, isOdd :: Int -> Maybe Int
-filter, filter3 :: (a -> Maybe a) -> [a] -> [a]
-
-{-@ measure elts :: [a] -> (Set a) 
-    elts ([])   = {v | Set_emp v }
-    elts (x:xs) = {v | v = Set_cup (Set_sng x) (elts xs) }
-  @-}
- 
-\end{code}
-
-</div>
-
-Goal
-----
-
-What we're after is a way to write a `filter` function such that:
-
-\begin{code} 
-{-@ getPoss  :: [Int] -> [Pos] @-}
-getPoss      = filter isPos
-
-{-@ getEvens :: [Int] -> [Even] @-}
-getEvens     = filter isEven
-
-{-@ getOdds  :: [Int] -> [Odd] @-}
-getOdds      = filter isOdd
-\end{code}
-
-where `Pos`, `Even` and `Odd` are just subsets of `Int`:
-
-\begin{code}
-{-@ type Pos  = {v:Int| 0 < v}        @-}
-
-{-@ type Even = {v:Int| v mod 2 == 0} @-}
-
-{-@ type Odd  = {v:Int| v mod 2 /= 0} @-}
-\end{code}
-
-Take 1: Map, maybe?
--------------------
-
-Bowing to the anti-boolean sentiment currently in the air, lets eschew 
-the classical approach where the predicates (`isPos` etc.) return `True` 
-or `False` and instead implement `filter` using a map.
-
-\begin{code}
-filter1          :: (a -> Maybe b) -> [a] -> [b]
-
-filter1 f []     = []
-filter1 f (x:xs) = case f x of
-                     Just y  -> y : filter1 f xs 
-                     Nothing ->     filter1 f xs
-\end{code}
-
-To complete the picture, we need just define the predicates as
-functions returning a `Maybe`:
-
-\begin{code}
-{- isPos          :: Int -> Maybe Pos  @-}
-isPos x
-  | x > 0          = Just x
-  | otherwise      = Nothing
-
-{- isEven         :: Int -> Maybe Even @-}
-isEven x
-  | x `mod` 2 == 0 = Just x
-  | otherwise      = Nothing
-
-{- isOdd          :: Int -> Maybe Odd  @-}
-isOdd x
-  | x `mod` 2 /= 0 = Just x
-  | otherwise      = Nothing
-\end{code}
-
-and now, we can achieve our goal!
-
-\begin{code}
-{-@ getPoss1 :: [Int] -> [Pos] @-}
-getPoss1     = filter1 isPos
-
-{-@ getEvens1 :: [Int] -> [Even] @-}
-getEvens1    = filter1 isEven
-
-{-@ getOdds1 :: [Int] -> [Odd] @-}
-getOdds1     = filter1 isOdd
-\end{code}
-
-**The Subset Guarantee**
-
-Well that was easy! Or was it?
-
-I fear we've *cheated* a little bit.
-
-One of the nice things about the *classical* `filter` is that by eyeballing
-the signature:
-
-\begin{spec}
-filter :: (a -> Bool) -> [a] -> [a]
-\end{spec}
-
-we are guaranteed, via parametricity, that the output list's elements are
-a *subset of* the input list's elements. The signature for our new-fangled
-
-\begin{spec}
-filter1 :: (a -> Maybe b) -> [a] -> [b]
-\end{spec}
-
-yields no such guarantee!
-
-In this case, things work out, because in each case, LiquidHaskell *instantiates*
-the type variables `a` and `b` in the signature of `filter1` suitably:
-
-* In `getPoss ` LH instantiates `a := Int` and `b := Pos`
-* In `getEvens` LH instantiates `a := Int` and `b := Even`
-* In `getOdds ` LH instantiates `a := Int` and `b := Odd`
-
-(Hover over the different instances of `filter1` above to confirm this.)
-
-But in general, we'd rather *not* lose the nice "subset" guarantee that the
-classical `filter` provides.
-
-
-Take 2: One Type Variable
--------------------------
-
-Easy enough! Why do we need *two* type variables anyway?
-
-\begin{code}
-filter2          :: (a -> Maybe a) -> [a] -> [a]
-
-filter2 f []     = []
-filter2 f (x:xs) = case f x of
-                     Just y  -> y : filter2 f xs 
-                     Nothing ->     filter2 f xs
-\end{code}
-
-There! Now the `f` is forced to take or leave its input `x`, 
-and so we can breathe easy knowing that `filter2` returns a 
-subset of its inputs.
-
-But...
-
-\begin{code}
-{-@ getPoss2 :: [Int] -> [Pos] @-}
-getPoss2     = filter2 isPos
-
-{-@ getEvens2 :: [Int] -> [Even] @-}
-getEvens2    = filter2 isEven
-
-{-@ getOdds2 :: [Int] -> [Odd] @-}
-getOdds2     = filter2 isOdd
-\end{code}
-
-Yikes, LH is not impressed -- the red highlight indicates that LH is not
-convinced that the functions have the specified types.
-
-Perhaps you know why already?
-
-Since we used **the same** type variable `a` for *both* the 
-input *and* output, LH must instantiate `a` with a type that 
-matches *both* the input and output, i.e. is a *super-type*
-of both, which is simply `Int` in all the cases. 
-
-Consequently, we get the errors above -- "expected `Pos` but got `Int`".
-
-Take 3: Add Abstract Refinement
--------------------------------
-
-What we need is a generic way of specifying that the 
-output of the predicate is not just an `a` but an `a` 
-that *also* enjoys whatever property we are filtering for. 
-
-This sounds like a job for [abstract refinements][absref] which
-let us parameterize a signature over its refinements:
-
-\begin{code}
-{-@ filter3      :: forall a <p :: a -> Prop>.
-                      (a -> Maybe a<p>) -> [a] -> [a<p>] @-}
-filter3 f []     = []
-filter3 f (x:xs) = case f x of
-                     Just x'  -> x' : filter3 f xs 
-                     Nothing ->       filter3 f xs
-\end{code}
-
- Now, we've **decoupled** the filter-property from the type variable `a`.
-
-The input still is a mere `a`, but the output is an `a` with bells on,
-specifically, which satisfies the (abstract) refinement `p`.
-
-Voila!
-
-\begin{code}
-{-@ getPoss3  :: [Int] -> [Pos] @-}
-getPoss3      = filter3 isPos
-
-{-@ getEvens3 :: [Int] -> [Even] @-}
-getEvens3     = filter3 isEven
-
-{-@ getOdds3  :: [Int] -> [Odd] @-}
-getOdds3      = filter3 isOdd
-\end{code}
-
-Now, LH happily accepts each of the above.
-
-At each *use* of `filter` LH separately *instantiates* the `a` and
-the `p`. In each case, the `a` is just `Int` but the `p` is instantiated as:
-
-+ In `getPoss ` LH instantiates `p := \v -> 0 <= v`
-+ In `getEvens` LH instantiates `p := \v -> v mod 2 == 0`
-+ In `getOdds ` LH instantiates `p := \v -> v mod 2 /= 0`
-
-That is, in each case, LH instantiates `p` with the refinement that describes
-the output type we are looking for.
-
-**Edit:** At this point, I was ready to go to bed, and so happily 
-declared victory and turned in. The next morning, [mypetclone](http://www.reddit.com/r/haskell/comments/2dozs5/liquidhaskell_a_finer_filter/cjrrx3y)
-graciously pointed out my folly: the signature for `filter3` makes no guarantees
-about the subset property. In fact, 
-
-\begin{code}
-doubles = filter3 (\x -> Just (x + x)) 
-\end{code}
-
-typechecks just fine, while `doubles` clearly violates the subset property. 
-
-Take 4: 
--------
-
-I suppose the moral is that it may be tricky -- for me at least! -- to read more into
-a type than what it *actually says*. Fortunately, with refinements, our types can say
-quite a lot.
-
-In particular, lets make the subset property explicit, by
-
-1. Requiring the predicate return its input (or nothing), and,
-2. Ensuring  the output is indeed a subset of the inputs.
-
-\begin{code}
-{-@ filter      :: forall a <p :: a -> Prop>.
-                       (x:a -> Maybe {v:a<p> | v = x})
-                    -> xs:[a]
-                    -> {v:[a<p>] | Set_sub (elts v) (elts xs)} @-}
-
-filter f []     = []
-filter f (x:xs) = case f x of
-                    Just x'  -> x' : filter f xs 
-                    Nothing ->       filter f xs
-\end{code}
-
-where `elts` describes the [set of elements in a list][sets].
-
-**Note:** The *implementation* of each of the above `filter` functions are
-the same; they only differ in their type *specification*.
-
-Conclusion
-----------
-
-And so, using abstract refinements, we've written a `filter` whose signature guarantees:
-
-* The outputs must be a *subset* of the inputs, and
-* The outputs indeed satisfy the property being filtered for.
-
-Another thing that I've learnt from this exercise, is that the old 
-school `Boolean` approach has its merits. Take a look at the clever 
-"latent predicates" technique of [Tobin-Hochstadt and Felleisen][racket]
-or this lovely new [paper by Kaki and Jagannathan][catalyst] which
-shows how refinements can be further generalized to make Boolean filters fine.
-
-[sets]:   /blog/2013/03/26/talking-about-sets.lhs/ 
-[absref]:   /blog/2013/06/03/abstracting-over-refinements.lhs/ 
-[racket]:   http://www.ccs.neu.edu/racket/pubs/popl08-thf.pdf
-[catalyst]: http://gowthamk.github.io/docs/icfp77-kaki.pdf
diff --git a/docs/blog/2015-01-30-okasakis-lazy-queue.lhs b/docs/blog/2015-01-30-okasakis-lazy-queue.lhs
deleted file mode 100644
--- a/docs/blog/2015-01-30-okasakis-lazy-queue.lhs
+++ /dev/null
@@ -1,338 +0,0 @@
----
-layout: post
-title: "Okasaki's Lazy Queues"
-date: 2015-01-28
-comments: true
-external-url:
-author: Ranjit Jhala 
-published: true
-categories: measures
-demo: LazyQueue.hs
----
-
-The "Hello World!" example for fancy type systems is probably the sized vector
-or list `append` function ("The output has size equal to the *sum* of the
-inputs!").  One the one hand, it is perfect: simple enough to explain without
-pages of code, yet complex enough to show off whats cool about dependency. On
-the other hand, like the sweater I'm sporting right now, it's a bit well-worn and
-worse, was never wholly convincing ("Why do I *care* what the *size* of the
-output list is anyway?")
-
-Recently, I came across a nice example that is almost as simple, but is also
-well motivated: Okasaki's beautiful [Lazy Amortized Queues][okasaki95].  This
-structure leans heavily on an invariant to provide fast *insertion* and
-*deletion*. Let's see how to enforce that invariant with LiquidHaskell.
-
-<!-- more -->
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--total"          @-}
-{-@ LIQUID "--maxparams=3"    @-}
-
-module LazyQueue (Queue, insert, remove, emp) where
-
-import Prelude hiding (length)
-
--- | Size function actually returns the size: (Duh!)
-
-{-@ size :: q:SList a -> {v:Nat | v = size q} @-}
-data Queue a = Q  { front :: SList a
-                  , back  :: SList a
-                  }
-
--- Source: Okasaki, JFP 1995
--- http://www.westpoint.edu/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp95queue.pdf
-
-\end{code}
-</div>
-
-Queues 
-------
-
-A [queue][queue-wiki] is a structure into which we can `insert` and `remove` data
-such that the order in which the data is removed is the same as the order in which
-it was inserted.
-
-![A Queue](/images/queue.png)
-
-To implement a queue *efficiently* one needs to have rapid access to both
-the "head" as well as the "tail" because we `remove` elements from former
-and `insert` elements into the latter. This is quite straightforward with
-explicit pointers and mutation -- one uses an old school linked list and
-maintains pointers to the head and the tail. But can we implement the
-structure efficiently without having stoop so low?
-
-Queues = Pair of Lists
-----------------------
-
-Almost two decades ago, Chris Okasaki came up with a very cunning way
-to implement queues using a *pair* of lists -- let's call them `front`
-and `back` which represent the corresponding parts of the Queue.
-
-+ To `insert` elements, we just *cons* them onto the `back` list,
-+ To `remove` elements, we just *un-cons* them from the `front` list.
-
-![A Queue is Two Lists](/images/queue-lists.png)
-
-
-The catch is that we need to shunt elements from the back to the
-front every so often, e.g. when
-
-1. a `remove` call is triggered, and
-2. the `front` list is empty,
-
-We can transfer the elements from the `back` to the `front`.
-
-
-![Transferring Elements from Back to Front](/images/queue-rotate.png)
-
-Okasaki observed that every element is only moved *once* from the
-front to the back; hence, the time for `insert` and `lookup` could be
-`O(1)` when *amortized* over all the operations. Awesome, right?!
-
-Almost. Some set of unlucky `remove` calls (which occur when
-the `front` is empty) are stuck paying the bill. They have a
-rather high latency up to `O(n)` where `n` is the total number
-of operations. Oops.
-
-Queue = Balanced Lazy Lists
----------------------------
-
-This is where Okasaki's beautiful insights kick in. Okasaki
-observed that all we need to do is to enforce a simple invariant:
-
-**Invariant:** Size of `front` >= Size of `back`
-
-Now, if the lists are *lazy* i.e. only constructed as the head
-value is demanded, then a single `remove` needs only a tiny `O(log n)`
-in the worst case, and so no single `remove` is stuck paying the bill.
-
-Let's see how to represent these Queues and ensure the crucial invariant(s)
-with LiquidHaskell. What we need are the following ingredients:
-
-1. A type for `List`s, and a way to track their `size`,
-
-2. A type for `Queue`s which encodes the *balance* invariant -- ``front longer than back",
-
-3. A way to implement the `insert`, `remove` and `transfer` operations.
-
-Sized Lists
-------------
-
-The first part is super easy. Let's define a type:
-
-\begin{code}
-data SList a = SL { size :: Int, elems :: [a]}
-\end{code}
-
-We have a special field that saves the `size` because otherwise, we
-have a linear time computation that wrecks Okasaki's careful
-analysis. (Actually, he presents a variant which does *not* require
-saving the size as well, but that's for another day.)
-
-But how can we be sure that `size` is indeed the *real size* of `elems`?
-
-Let's write a function to *measure* the real size:
-
-\begin{code}
-{-@ measure realSize @-}
-realSize      :: [a] -> Int
-realSize []     = 0
-realSize (_:xs) = 1 + realSize xs
-\end{code}
-
-and now, we can simply specify a *refined* type for `SList` that ensures
-that the *real* size is saved in the `size` field:
-
-\begin{code}
-{-@ data SList a = SL {
-       size  :: Nat 
-     , elems :: {v:[a] | realSize v = size}
-     }
-  @-}
-\end{code}
-
-As a sanity check, consider this:
-
-\begin{code}
-okList  = SL 1 ["cat"]    -- accepted
-
-badList = SL 1 []         -- rejected
-\end{code}
-
-It is helpful to define a few aliases for `SList`s of a size `N` and
-non-empty `SList`s:
-
-\begin{code}
--- | SList of size N
-
-{-@ type SListN a N = {v:SList a | size v = N} @-}
-
--- | Non-Empty SLists:
-
-{-@ type NEList a = {v:SList a | size v > 0} @-}
-
-\end{code}
-
-Finally, we can define a basic API for `SList`.
-
-**To Construct** lists, we use `nil` and `cons`:
-
-\begin{code}
-{-@ nil          :: SListN a 0  @-}
-nil              = SL 0 []
-
-{-@ cons         :: a -> xs:SList a -> SListN a {size xs + 1}   @-}
-cons x (SL n xs) = SL (n+1) (x:xs)
-\end{code}
-
-**To Destruct** lists, we have `hd` and `tl`.
-
-\begin{code}
-{-@ tl           :: xs:NEList a -> SListN a {size xs - 1}  @-}
-tl (SL n (_:xs)) = SL (n-1) xs
-
-{-@ hd           :: xs:NEList a -> a @-}
-hd (SL _ (x:_))  = x 
-\end{code}
-
-Don't worry, they are perfectly *safe* as LiquidHaskell will make
-sure we *only* call these operators on non-empty `SList`s. For example,
-
-\begin{code}
-okHd  = hd okList       -- accepted
-
-badHd = hd (tl okList)  -- rejected
-\end{code}
-
-
-Queue Type
------------
-
-Now, it is quite straightforward to define the `Queue` type, as a pair of lists,
-`front` and `back`, such that the latter is always smaller than the former:
-
-\begin{code}
-{-@ data Queue a = Q {
-       front :: SList a 
-     , back  :: SListLE a (size front)
-     }
-  @-}
-\end{code}
-
-Where the alias `SListLE a L` corresponds to lists with less than `N` elements:
-
-\begin{code}
-{-@ type SListLE a N = {v:SList a | size v <= N} @-}
-\end{code}
-
-As a quick check, notice that we *cannot represent illegal Queues*:
-
-\begin{code}
-okQ  = Q okList nil  -- accepted, |front| > |back| 
-
-badQ = Q nil okList  -- rejected, |front| < |back|
-\end{code}
-
-**To Measure Queue Size** let us define a function
-
-\begin{code}
-{-@ measure qsize @-}
-qsize         :: Queue a -> Int
-qsize (Q l r) = size l + size r
-\end{code}
-
-This will prove helpful to define `Queue`s of a given size `N` and
-non-empty `Queue`s (from which values can be safely removed.)
-
-\begin{code}
-{-@ type QueueN a N = {v:Queue a | N = qsize v} @-}
-{-@ type NEQueue a  = {v:Queue a | 0 < qsize v} @-}
-\end{code}
-
-
-Queue Operations
-----------------
-
-Almost there! Now all that remains is to define the `Queue` API. The
-code below is more or less identical to Okasaki's (I prefer `front`
-and `back` to his `left` and `right`.)
-
-
-**The Empty Queue** is simply one where both `front` and `back` are `nil`.
-
-\begin{code}
-{-@ emp :: QueueN a 0 @-}
-emp = Q nil nil
-\end{code}
-
-**To Insert** an element we just `cons` it to the `back` list, and call
-the *smart constructor* `makeq` to ensure that the balance invariant holds:
-
-\begin{code}
-{-@ insert       :: a -> q:Queue a -> QueueN a {qsize q + 1}   @-}
-insert e (Q f b) = makeq f (e `cons` b)
-\end{code}
-
-**To Remove** an element we pop it off the `front` by using `hd` and `tl`.
-Notice that the `remove` is only called on non-empty `Queue`s, which together
-with the key balance invariant, ensures that the calls to `hd` and `tl` are safe.
-
-\begin{code}
-{-@ remove       :: q:NEQueue a -> (a, QueueN a {qsize q - 1}) @-}
-remove (Q f b)   = (hd f, makeq (tl f) b)
-\end{code}
-
-*Aside:* Why didn't we (or Okasaki) use a pattern match here?
-
-**To Ensure the Invariant** we use the smart constructor `makeq`,
-which is where the heavy lifting, such as it is, happens. The
-constructor takes two lists, the front `f` and back `b` and if they
-are balanced, directly returns the `Queue`, and otherwise transfers
-the elements from `b` over using `rot`ate.
-
-\begin{code}
-{-@ makeq :: f:SList a
-          -> b:SListLE a {size f + 1 }
-          -> QueueN a {size f + size b}
-  @-}
-makeq l r
-  | size r <= size l = Q l r
-  | otherwise        = Q (rot l r nil) nil
-\end{code}
-
-**The Rotate** function is only called when the `back` is one larger
-than the `front` (we never let things drift beyond that). It is
-arranged so that it the `hd` is built up fast, before the entire
-computation finishes; which, combined with laziness provides the
-efficient worst-case guarantee.
-
-\begin{code}
-{-@ rot :: l:SList a
-        -> r:SListN _ {1 + size l}
-        -> a:SList _
-        -> SListN _ {size l + size r + size a}
-  @-}
-rot l r a
-  | size l == 0 = hd r `cons` a
-  | otherwise   = hd l `cons` rot (tl l) (tl r) (hd r `cons` a)
-\end{code}
-
-Conclusion
-----------
-
-Well there you have it; Okasaki's beautiful lazy Queue, with the
-invariants easily expressed and checked with LiquidHaskell. I find
-this example particularly interesting because the refinements express
-invariants that are critical for efficiency, and furthermore the code
-introspects on the `size` in order to guarantee the invariants.  Plus,
-it's just marginally more complicated than `append` and so, (I hope!)
-was easy to follow.
-
-
-
-[okasaki95]: http://www.westpoint.edu/eecs/SiteAssets/SitePages/Faculty%20Publication%20Documents/Okasaki/jfp95queue.pdf
-
-[queue-wiki]: http://en.wikipedia.org/wiki/Queue_%28abstract_data_type%29
diff --git a/docs/blog/2015-06-13-bounded-refinement-types.lhs b/docs/blog/2015-06-13-bounded-refinement-types.lhs
deleted file mode 100644
--- a/docs/blog/2015-06-13-bounded-refinement-types.lhs
+++ /dev/null
@@ -1,337 +0,0 @@
----
-layout: post
-title: "Bounded Refinement Types"
-date: 2015-06-13
-comments: true
-external-url:
-author: Niki Vazou
-published: true
-categories: bounded-refinements, abstract-refinements, function-composition
-demo: BoundedRefinementTypes.hs
----
-
-While refinement types let SMT solvers do a lot of the "boring" analysis,
-they are limited to decidable (first order) logics which can prevent us
-from writing *modular* and *reusable* specifications for *higher-order*
-functions. Next, lets see why modularity is important, and how we can
-recover it using a new technique called **Bounded Refinements**.
-
-<!-- more -->
-
-<div class="hidden">
-\begin{code}
-module BoundedRefinementTypes where
-import Prelude hiding ((.), maximum)
-import Language.Haskell.Liquid.Prelude
-
-incr  :: Int -> Int
-incr2 :: Int -> Int
-incr3 :: Int -> Int
-
-compose1 :: (Int -> Int) -> (Int -> Int) -> Int -> Int
-compose1 f g x = f (g x)
-incr2'     :: Int -> Int
-compose2 :: (b -> c) -> (a -> b) -> a -> c
-\end{code}
-</div>
-
-Reusable Specifications
------------------------
-
-Let us suppose, for just a moment, that we live in a dystopian future
-where parametric polymorphism and typeclasses have been eliminated
-from Haskell. Now, consider the function that returns the largest
-element of a list:
-
-\begin{code}
-maximum         :: [Int] -> Int
-maximum [x]    = x
-maximum (x:xs) = max x (maximum xs)
-  where
-    max a b    = if a < b then b else a
-\end{code}
-
-Now, suppose we have refinements:
-
-\begin{code}
-{-@ type Pos  = {v:Int | 0 < v} @-}
-{-@ type Neg  = {v:Int | 0 > v} @-}
-\end{code}
-
-**Here's the problem:** how can *specify* the behavior of `maximum`
-in a way that lets us verify that:
-
-\begin{code}
-{-@ posMax :: [Int] -> Pos @-}
-posMax xs = maximum [x | x <- xs, x > 0]
-
-{-@ negMax :: [Int] -> Neg @-}
-negMax xs = maximum [x | x <- xs, x < 0]
-\end{code}
-
-In the first case, the output of `maximum` must be
-a `Pos` because *every* input was a `Pos`. Thus, we
-might try to type:
-
-\begin{spec}
-maximum :: [Pos] -> Pos
-\end{spec}
-
-But this specification will not let us verify `negMax`.
-Thus, we have a problem: how can we write a precise
-specification for `maximum` that we can *reuse* at
-different call-sites. Further, how can we do so
-enumerating *a priori* the possible contexts (e.g.
-`Pos` and `Neg` lists) in which the function may
-be used?
-
-Abstracting Refinements
------------------------
-
-The first idea is one we've [seen before][AbstractRefinements].
-Notice that `maximum` returns _one of_ the elements in its input
-list. Thus, if *every* element of the list satisfies some
-refinement `p` then the output value is also guaranteed to
-satisfy `p`. We formalize this notion by *abstracting refinements*
-over type specifications. That is, we can type `maximum` as:
-
-\begin{code}
-{-@ maximum :: forall <p:: Int -> Prop>. [Int<p>] -> Int<p> @-}
-\end{code}
-
-Informally, `Int<p>` stands for `{v:Int | p v}`, that is, `Int`s that
-satisfy the property `p`. The signature states that for any property
-`p` (of `Int`s), if the input is a list of elements satisfying `p` then
-the output is an `Int` satisfying `p`. We can coax SMT solvers into
-proving the above type by encoding `p v` as an [uninterpreted function](https://en.wikipedia.org/wiki/Uninterpreted_function)
-in the refinement logic.
-
-Thus, refinement abstraction is analagous to type abstraction: it lets us
-parameterize signatures over *all* refinements (analogously, types) that
-may be _passed in_ at the call-site.
-
-Capturing Dependencies between Relations
-----------------------------------------
-
-Unfortunately, in the dependent setting, this is not enough.
-Consider `incr` which bumps up its input by 1:
-
-\begin{code}
-{-@ incr :: x:Int -> {v:Int | v = x + 1} @-}
-incr x = x + 1
-\end{code}
-
-We can use `incr` to write and check:
-
-\begin{code}
-{-@ incr2 :: x:Int -> {v:Int | v = x + 2} @-}
-incr2 x = let y = incr x
-              z = incr y
-          in
-              z
-\end{code}
-
-LH uses the specification of `incr` to infer that
-
-+ `y :: {v:Int | v = x + 1}`
-+ `z :: {v:Int | v = y + 1}`
-
-and hence, that the result `z` equals `x + 2`.
-
-Now, you're probably wondering to yourself: isn't
-this what _function composition_ is for? Indeed!
-Lets define:
-
-\begin{code}
-{-@ compose' :: (b -> c) -> (a -> b) -> a -> c @-}
-compose' f g x = f (g x)
-\end{code}
-
-Now, we might try:
-
-\begin{code}
-{-@ incr2' :: x:Int -> {v:Int | v = x + 2} @-}
-incr2' = compose' incr incr
-\end{code}
-
-**Problem 1: Cannot Relate Abstracted Types**
-
-LH _rejects_ the above. This might seem counterintuitive but
-in fact, its the right thing to do given the specification of
-`compose'` -- at this call-site, each of `a`, `b` and `c` are
-instantiated with `Int` as we have no way of *relating* the
-invariants associated with those types, e.g. that `b` is one
-greater than `a` and `c` is one greater than `b`.
-
-**Problem 2: Cannot Reuse Concrete Types**
-
-At the other extreme, we might try to give compose a concrete
-signature:
-
-\begin{code}
-{-@ compose'' :: (y:Int -> {z:Int | z = y + 1})
-              -> (x:Int -> {z:Int | z = x + 1})
-              ->  x:Int -> {z:Int | z = x + 2} @-}
-compose'' f g x = f (g x)
-\end{code}
-
-This time, LH does verify
-
-\begin{code}
-{-@ incr2'' :: x:Int -> {v:Int | v = x + 2} @-}
-incr2'' = compose'' incr incr
-\end{code}
-
-but this is a pyrhhic victory as we can only `compose` the
-toy `incr` function (with itself!) and any attempt to use
-it elsewhere will throw a type error.
-
-Goal: Relate Refinements But Keep them Abstract
------------------------------------------------
-
-The above toy example illustrates the _real_ problem: how
-can we **relate** the invariants of the type parameters for
-`compose` while simultaneously keeping them **abstract** ?
-
-**Can Abstract Refinements Help?**
-
-HEREHEREHERE
-
-Onto abstracting the type of compose we follow the route of [Abstract Refinements][AbstractRefinements].
-We make a second attempt to type function composition and give
-`compose2` a type that states that
-forall abstract refinements `p`, `q` and `r`
-if (1) the first functional argument `f` returns a value that satisfies a relation `p` with respect to its argument `y`, and
-   (2) the second functional argument `g` returns a value that satisfies a relation `q` with respect to its argument `x`,
-then the result function returns a value that satisfies a relation `r` with respect to its argument `x`:
-
-\begin{code}
-{-@ compose''' :: forall <p :: b -> c -> Prop,
-                          q :: a -> b -> Prop,
-                          r :: a -> c -> Prop>.
-                   (y:b -> c<p y>)
-                -> (x:a -> b<q x>)
-                -> x:a -> c<r x>                   @-}
-\end{code}
-
-With this type for `compose2` liquidHaskell will prove that composing `incr` by itself
-gives a function that increased its argument by `2`:
-
-\begin{code}
-{-@ incr2'' :: x:Int -> {v:Int | v = x + 2} @-}
-incr2''      = compose2 incr incr
-\end{code}
-
-To do so, liquidHaskell will employ the Abstract Refinement Types inference and guess
-the appropriate instantiations for `p`, `q`, and `r`.
-That is, liquidHaskell will infer that `p` and `q` relate two consecutive numbers
-`p, q := \x v -> v = x + 1`
-while `r` relates two numbers with distance `2`:
-`r := \x v -> v = x + 2`.
-Thus, at this specific call site the abstract type of `compose2` will be instantiated to
-the concrete type we gave to `compose1`.
-And, verification of `incr2''` will succeed.
-
-
-What is the catch now?
-In this second attempt we abstracted the type of `compose2` too much!
-In fact, LiquidHaskell cannot prove that the body of `compose2` satisfies its type, just because it does not.
-
-\begin{code}
-compose2 f g x = let z = g x in f z
-\end{code}
-
-By the precondition of `compose2` we know the result refinements of the functional arguments `f` and `g`.
-From the type of `g` we know that `z` satisfies `q` on `x`, i.e. `q x z` holds.
-Similarly, from the type of `f` we know that `f z` satisfies `q` on `x`, i.e. `q x z` holds.
-
-With these, liquidHaskell needs to prove that the result `f z` satisfies `r` on `x`, i.e., `r x z` holds.
-The required property `r x z` is not satisfied for _arbitrary_ abstract refinements `p`, `q` and `r`, but only for ones that satisfy a _chain property_ that states that for all `x`, `y` and `z`, if `q x y` and `p y z` holds, then `r x z` holds:
-
-<br>
-
-`\ x y z -> q x y ==> p y z ==> r x z`
-
-Bound Abstract Refinements by the Chain Property
-------------------------------------------------
-
-We made two attempts to type `compose`.
-The first one "failed" as our type was unrealistically specific.
-The second failed as it was unsoundly general.
-In our third and final attempt
-we give `compose` a type that is abstracted over three abstract refinements `p`, `q` and `r`.
-But, this time the three refinements are not arbitrary:
-they are bounded to satisfy the chain property.
-
-We encode the chain property as a boolean Haskell function:
-
-\begin{code}
-chain :: (b -> c -> Bool) -> (a -> b -> Bool)
-      -> (a -> c -> Bool) ->  a -> b -> c -> Bool
-chain p q r = \ x y z -> q x y ==> p y z ==> r x z
-\end{code}
-
-Then we use the new liquidHaskell keyword `bound` to lift the
-`chain` function into the a logical bound that
-can be used to constrain abstract refinements
-
-\begin{code}
-{-@ bound chain @-}
-\end{code}
-
-The above bound annotation defines the bound `Chain` that is used as a
-constraint that relates the abstract refinements `p`, `q` and `r`
-in the type signature of `compose`
-
-\begin{code}
-{-@
-compose :: forall <p :: b -> c -> Prop,
-                   q :: a -> b -> Prop,
-                   r :: a -> c -> Prop>.
-           (Chain b c a p q r)
-        => (y:b -> c<p y>)
-        -> (z:a -> b<q z>)
-        ->  x:a -> c<r x>
-@-}
-\end{code}
-
-This type of `compose` is both sound and general enough,
-as now we can easily prove that composing `incr` with `incr2`
-results in a function that increases its argument by `3`.
-
-\begin{code}
-{-@ incr2''' :: x:Int -> {v:Int | v = x + 2} @-}
-incr2'''      = compose incr incr
-
-{-@ incr3'' :: x:Int -> {v:Int | v = x + 3} @-}
-incr3''      = compose incr2'' incr
-\end{code}
-
-
-Conclusion
-----------
-We saw how bounds in refinement types allow us to specify a
-precise and general type for function composition.
-Bounds in refinement types are (haskell typeclases-like) constraints
-that constraint the abstract refinement variables to specify certain properties.
-
-We note that liquidHaskell desugars bounds to unbounded refinement types,
-thus verification is still performed decidably using the power of the SMT solvers.
-
-Moreover, function composition is not the exclusive user of
-Bounded Refinement Types.
-On the contrary, we used Bounded Refinement Types
-to verify a variety of code, from list-filtering to relational databases.
-
-Read more about bounds in our [ICFP'15 paper][icfp15],
-and stay tuned!
-
-<div class="hidden">
-\begin{code}
-\end{code}
-</div>
-
-
-[icfp15]: http://goto.ucsd.edu/~nvazou/icfp15/main.pdf
-[AbstractRefinements]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2013/06/03/abstracting-over-refinements.lhs
-[queue-wiki]: http://en.wikipedia.org/wiki/Queue_%28abstract_data_type%29
diff --git a/docs/blog/2016-09-01-normal-forms.lhs b/docs/blog/2016-09-01-normal-forms.lhs
deleted file mode 100644
--- a/docs/blog/2016-09-01-normal-forms.lhs
+++ /dev/null
@@ -1,411 +0,0 @@
----
-layout: post
-title: "Normal Forms"
-date: 2016-09-05
-comments: true
-external-url:
-author: Ranjit Jhala
-published: true
-categories: measures
-demo: ANF.hs
----
-
-I have been preparing an undergraduate course on
-Compilers in which we build a compiler that crunches
-an ML-like language to X86 assembly.
-One of my favorite steps in the compilation is the
-[conversion to A-Normal Form (ANF)][anf-felleisen]
-where, informally speaking, each call or primitive
-operation's arguments are **immediate** values,
-i.e. constants or variable lookups whose values can
-be loaded with a single machine instruction. For example,
-the expression
-
-```haskell
-((2 + 3) * (12 - 4)) * (7 + 8)
-```
-
-has the A-Normal Form:
-
-```haskell
-"let anf0 = 2 + 3
-     anf1 = 12 - 4
-     anf2 = anf0 * anf1
-     anf3 = 7 + 8
-  in
-    anf2 * anf3
-```
-
-The usual presentation of ANF conversion
-is very elegant but relies upon a clever
-use of [continuations][anf-might].
-Lets look at another perhaps simpler approach,
-where we can use refinements to light the way.
-
-<!-- more -->
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--total"          @-}
-
-module ANF (Op (..), Expr (..), isImm, isAnf, toAnf) where
-
-import Control.Monad.State.Lazy
-
-mkLet :: [(Var, AnfExpr)] -> AnfExpr -> AnfExpr
-imm, immExpr :: Expr -> AnfM ([(Var, AnfExpr)], ImmExpr)
-anf   :: Expr -> AnfM AnfExpr
-
--- data IExpr
-  -- = IInt Int
-  -- | IVar Var
---
--- data AExpr
-  -- = AImm IExpr
-  -- | ABin Op    IExpr IExpr
-  -- | ALet Var   AExpr AExpr
-  -- | ALam Var   AExpr
-  -- | AApp IExpr IExpr
-
-type AnfExpr = Expr
-type ImmExpr = Expr
-\end{code}
-</div>
-
-Source Language
----------------
-
-Lets commence by defining the source language that we wish to work with:
-
-\begin{code}
-data Expr
-  = EInt  Int               -- ^ Integers
-  | EVar  Var               -- ^ Variables
-  | EBin  Op   Expr Expr    -- ^ Binary Operators
-  | ELet  Var  Expr Expr    -- ^ Let-binders
-  | ELam  Var  Expr         -- ^ Function definitions
-  | EApp  Expr Expr         -- ^ Function applications
-  deriving (Show)
-\end{code}
-
-The language, defined by `Expr` has integers, variables, binary operators,
-let-binders and function definitions (lambdas) and calls (applications).
-In the above, `Var` and `Op` are simply:
-
-\begin{code}
-type Var = String
-
-data Op  = Plus | Minus | Times
-         deriving (Show)
-\end{code}
-
-For example, the source expression above corresponds to the value:
-
-\begin{code}
--- ((2 + 3) * (12 - 4)) * (7 + 8)
-srcExpr :: Expr
-srcExpr = EBin Times
-            (EBin Times
-              (EBin Plus  (EInt  2) (EInt 3))
-              (EBin Minus (EInt 12) (EInt 4)))
-            (EBin Plus (EInt 7) (EInt 8))
-\end{code}
-
-A-Normal Form
--------------
-
-Before we can describe a _conversion_ to A-Normal Form (ANF),
-we must pin down what ANF _is_. Our informal description was:
-``each call or primitive operation's arguments are immediate
-  values, i.e. constants or variable lookups''.
-
-We _could_ define a brand new datatypes, say `IExpr` and `AExpr`
-whose values correspond to _immediate_ and _ANF_ terms.
-(Try it, as an exercise.) Unfortunately, doing so leads to a
-bunch of code duplication, e.g. duplicate printers for `Expr`
-and `AExpr`. Instead, lets see how we can use refinements to
-carve out suitable subsets.
-
-**Immediate Expressions**
-
-An `Expr` is **immediate** if it is a `Number` or a `Var`;
-we can formalize this as a Haskell predicate:
-
-\begin{code}
-{-@ measure isImm @-}
-isImm :: Expr -> Bool
-isImm (EInt _) = True
-isImm (EVar _) = True
-isImm _        = False
-\end{code}
-
-and then we can use the predicate to define a refinement type
-for _immediate_ expressions:
-
-\begin{code}
-{-@ type ImmExpr = {v:Expr | isImm v} @-}
-\end{code}
-
-For example, `e1` is immediate but `e2` is not:
-
-\begin{code}
-{-@ e1 :: ImmExpr @-}
-e1 = EInt 7
-
-{-@ e2 :: ImmExpr @-}
-e2 = EBin Plus e1 e1
-\end{code}
-
-**ANF Expressions**
-
-Similiarly, an `Expr` is in **ANF** if all arguments for operators
-and applications are **immediate**. Once again, we can formalize
-this intuition as a Haskell predicate:
-
-\begin{code}
-{-@ measure isAnf @-}
-isAnf :: Expr -> Bool
-isAnf (EInt {})      = True
-isAnf (EVar {})      = True
-isAnf (EBin _ e1 e2) = isImm e1 && isImm e2  -- args for operators
-isAnf (EApp e1 e2)   = isImm e1 && isImm e2  -- must be immediate,
-isAnf (ELet _ e1 e2) = isAnf e1 && isAnf e2  -- and sub-expressions
-isAnf (ELam _ e)     = isAnf e               -- must be in ANF
-\end{code}
-
-and then use the predicate to define the subset of _legal_ ANF expressions:
-
-\begin{code}
-{-@ type AnfExpr = {v:Expr | isAnf v} @-}
-\end{code}
-
-For example, `e2` above _is_ in ANF but `e3` is not:
-
-\begin{code}
-{-@ e2' :: AnfExpr @-}
-e2' = EBin Plus e1 e1
-
-{-@ e3 :: AnfExpr @-}
-e3 = EBin Plus e2' e2'
-\end{code}
-
-ANF Conversion: Intuition
--------------------------
-
-Now that we have clearly demarcated the territories belonging to plain `Expr`,
-immediate `ImmExpr` and A-Normal `AnfExpr`, lets see how we can convert the
-former to the latter.
-
-Our goal is to convert expressions like
-
-```haskell
-((2 + 3) * (12 - 4)) * (7 + 8)
-```
-
-into
-
-```haskell
-let anf0 = 2 + 3
-    anf1 = 12 - 4
-    anf2 = anf0 * anf1
-    anf3 = 7 + 8
-in
-    anf2 * anf3
-```
-
-Generalising a bit, we want to convert
-
-```haskell
-e1 + e2
-```
-
-into
-
-```
-let x1  = a1  ... xn  = an
-    x1' = a1' ... xm' = am'
-in
-    v1 + v2
-```
-
-where, `v1` and `v2` are immediate, and `ai` are ANF.
-
-**Making Arguments Immediate**
-
-In other words, the key requirement is a way to crunch
-arbitrary _argument expressions_ like `e1` into **a pair**
-
-```haskell
-([(x1, a1) ... (xn, an)], v1)
-```
-
-where
-
-1. `a1...an` are `AnfExpr`, and
-2. `v1` is an immediate `ImmExpr`
-
-such that `e1` is _equivalent_ to `let x1 = a1 ... xn = an in v1`.
-Thus, we need a function
-
-```haskell
-imm :: Expr -> ([(Var, AnfExpr)], ImmExpr)
-```
-
-which we will use to **make arguments immediate** thereby yielding
-a top level conversion function
-
-```haskell
-anf :: Expr -> AnfExpr
-```
-
-As we need to generate "temporary" intermediate
-binders, it will be convenient to work within a
-monad that generates `fresh` variables:
-
-\begin{code}
-type AnfM a = State Int a
-
-fresh :: AnfM Var
-fresh = do
-  n <- get
-  put (n+1)
-  return ("anf" ++ show n)
-\end{code}
-
-Thus, the conversion functions will have the types:
-
-```haskell
-anf :: Expr -> AnfM AnfExpr
-imm :: Expr -> AnfM ([(Var, AnfExpr)], ImmExpr)
-```
-
-ANF Conversion: Code
---------------------
-
-We can now define the top-level conversion thus:
-
-\begin{code}
---------------------------------------------------------------------------------
-{-@ anf :: Expr -> AnfM AnfExpr @-}
---------------------------------------------------------------------------------
-anf (EInt n) =
-  return (EInt n)
-
-anf (EVar x) =
-  return (EVar x)
-
-anf (ELet x e1 e2) = do
-  a1 <- anf e1
-  a2 <- anf e2
-  return (ELet x a1 a2)
-
-anf (EBin o e1 e2) = do
-  (b1s, v1) <- imm e1
-  (b2s, v2) <- imm e2
-  return (mkLet (b1s ++ b2s) (EBin o v1 v2))
-
-anf (ELam x e) = do
-  a <- anf e
-  return (ELam x a)
-
-anf (EApp e1 e2) = do
-  (b1s, v1) <- imm e1
-  (b2s, v2) <- imm e2
-  return (mkLet (b1s ++ b2s) (EApp v1 v2))
-\end{code}
-
-In `anf` the real work happens inside `imm` which takes an arbitary
-_argument_ expression and makes it **immediate** by generating temporary
-(ANF) bindings. The resulting bindings (and immediate values) are
-composed by the helper `mkLet` that takes a list of binders and a body
-`AnfExpr` and stitches them into a single `AnfExpr`:
-
-\begin{code}
-{-@ mkLet :: [(Var, AnfExpr)] -> AnfExpr -> AnfExpr @-}
-mkLet []         e' = e'
-mkLet ((x,e):bs) e' = ELet x e (mkLet bs e')
-\end{code}
-
-The arguments are made immediate by `imm` defined as:
-
-\begin{code}
---------------------------------------------------------------------------------
-{-@ imm :: Expr -> AnfM ([(Var, AnfExpr)], ImmExpr) @-}
---------------------------------------------------------------------------------
-imm (EInt n)       = return ([], EInt n)
-imm (EVar x)       = return ([], EVar x)
-imm e@(ELet {})    = immExpr e
-imm e@(ELam {})    = immExpr e
-imm (EBin o e1 e2) = imm2 e1 e2 (EBin o)
-imm (EApp e1 e2)   = imm2 e1 e2 EApp
-\end{code}
-
-* Numbers and variables are already immediate, and are returned directly.
-
-* Let-binders and lambdas are simply converted to ANF, and assigned to a fresh
-  binder:
-
-\begin{code}
-{-@ immExpr :: Expr -> AnfM ([(Var, AnfExpr)], ImmExpr) @-}
-immExpr e = do
-  a <- anf e
-  t <- fresh
-  return ([(t, a)], EVar t)
-\end{code}
-
-* Finally, binary operators and applications are converted by `imm2` that
-  takes two arbitrary expressions and an expression constructor, yielding
-  the anf-binders and immediate expression.
-
-\begin{code}
-imm2 :: Expr -> Expr -> (ImmExpr -> ImmExpr -> AnfExpr)
-     -> AnfM ([(Var, AnfExpr)], ImmExpr)
-imm2 e1 e2 f = do
-  (b1s, v1) <- imm e1
-  (b2s, v2) <- imm e2
-  t         <- fresh
-  let bs'    = b1s ++ b2s ++ [(t, f v1 v2)]
-  return      (bs', EVar t)
-\end{code}
-
-
-You can run it thus:
-
-\begin{code}
-toAnf :: Expr -> AnfExpr
-toAnf e = evalState (anf e) 0
-\end{code}
-
-```haskell
-ghci> toAnf srcExpr
-ELet "anf0" (EBin Plus (EInt 2) (EInt 3))
- (ELet "anf1" (EBin Minus (EInt 12) (EInt 4))
-   (ELet "anf2" (EBin Times (EVar "anf0") (EVar "anf1"))
-     (ELet "anf3" (EBin Plus (EInt 7) (EInt 8))
-       (EBin Times (EVar "anf2") (EVar "anf3")))))
-```
-
-which, can be pretty-printed to yield exactly the outcome desired at the top:
-
-```haskell
-let anf0 = 2 + 3
-    anf1 = 12 - 4
-    anf2 = anf0 * anf1
-    anf3 = 7 + 8
-in
-    anf2 * anf3
-```
-
-
-There! The refinements make this tricky conversion quite
-straightforward and natural, without requiring us to
-duplicate types and code. As an exercise, can you use
-refinements to:
-
-1. Port the classic [continuation-based conversion ?][anf-might]
-2. Check that the conversion yields [well-scoped terms ?][lh-scoped]
-
-[lh-scoped]: http://ucsd-progsys.github.io/liquidhaskell-tutorial/10-case-study-associative-maps.html#/using-maps-well-scoped-expressions
-[anf-felleisen]: https://users.soe.ucsc.edu/~cormac/papers/pldi93.pdf
-[anf-might]: http://matt.might.net/articles/a-normalization/
diff --git a/docs/blog/2016-09-18-refinement-reflection.lhs b/docs/blog/2016-09-18-refinement-reflection.lhs
deleted file mode 100644
--- a/docs/blog/2016-09-18-refinement-reflection.lhs
+++ /dev/null
@@ -1,408 +0,0 @@
----
-layout: post
-title: "Refinement Reflection: Haskell as a theorem prover"
-date: 2016-09-18
-comments: true
-external-url:
-author: Niki Vazou
-published: true
-categories: reflection
-demo: RefinementReflection.hs
----
-
-We've taught LiquidHaskell a new trick that we call ``Refinement Reflection''
-which lets us turn Haskell into a theorem prover capable of proving arbitrary
-properties of code. The key idea is to **reflect** the code of the function into
-its **output type**, which lets us then reason about the function at the
-(refinement) type level. Lets see how to use refinement types to express a
-theorem, for example that fibonacci is a monotonically increasing function, 
-then write plain Haskell code to reify a paper-and-pencil-style proof 
-for that theorem, that can be machine checked by LiquidHaskell.
-
-<!-- more -->
-
-<br>
-<br>
-<br>
-
-<div class="row-fluid">
-  <div class="span12 pagination-centered">
-  <img src="https://eyesofodysseus.files.wordpress.com/2013/06/full-moon-over-ocean-reflection.jpg"
-       alt="Reflection" width="300">
-       <br>
-       <br>
-       <br>
-       The beauty of Liquid Reflection.
-       <br>
-       <br>
-       <br>
-  </div>
-</div>
-
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-module RefinementReflection where
-import Language.Haskell.Liquid.ProofCombinators
-
-fib :: Int -> Int
-propPlusComm :: Int -> Int -> Proof 
-propOnePlueOne :: () -> Proof 
-fibTwo :: () -> Proof 
-fibCongruence :: Int -> Int -> Proof
-fibUp :: Int -> Proof 
-fibTwoPretty :: Proof 
-fibThree :: () -> Proof 
-fMono :: (Int -> Int)
-      -> (Int -> Proof)
-      -> Int
-      -> Int 
-      -> Proof 
-fibMono :: Int -> Int -> Proof 
-
-\end{code}
-</div>
-
-Shallow vs. Deep Specifications
--------------------------------
-
-Up to now, we have been using Liquid Haskell to specify and verify "shallow"
-specifications that abstractly describe the behavior of functions.  For example,
-below, we specify and verify that `fib`restricted to natural numbers, always
-terminates returning a natural number.
-
-\begin{code}
-{-@ fib :: i:Nat -> Nat / [i] @-}
-fib i | i == 0    = 0 
-      | i == 1    = 1 
-      | otherwise = fib (i-1) + fib (i-2)
-\end{code}
-
-In this post we present how refinement reflection is used to verify 
-"deep" specifications that use the exact definition of Haskell functions. 
-For example, we will prove that the Haskell `fib` function is increasing.
-
-
-
-Propositions
-------------
-
-To begin, we import [ProofCombinators][proofcomb], a (Liquid) Haskell 
-library that defines and manipulates logical proofs. 
-
-```haskell
-import Language.Haskell.Liquid.ProofCombinators
-```
-
-A `Proof` is a data type that carries no run time information
-
-```haskell
-type Proof = ()
-```
-
-but can be refined with desired logical propositions.
-For example, the following type states that `1 + 1 == 2`
-
-\begin{code}
-{-@ type OnePlusOne = {v: Proof | 1 + 1 == 2} @-}
-\end{code}
-
-Since the `v` and `Proof` are irrelevant, we may as well abbreviate 
-the above to 
-
-\begin{code}
-{-@ type OnePlusOne' = { 1 + 1 == 2 } @-}
-\end{code}
-
-
-As another example, the following function type declares 
-that _for each_ `x` and `y` the plus operator commutes. 
-
-\begin{code}
-{-@ type PlusComm = x:Int -> y:Int -> {x + y == y + x} @-} 
-\end{code}
-
-
-
-Trivial Proofs
---------------
-
-We prove the above theorems using Haskell programs. 
-The `ProofCombinators` module defines the `trivial` proof
-
-```haskell
-trivial :: Proof 
-trivial = ()
-```
-
-and the "casting" operator `(***)` that makes proof terms look 
-nice:
-
-```haskell
-data QED = QED
-
-(***) :: a -> QED -> Proof
-_ *** _ = ()
-```
-
-Using the underlying SMT's knowledge on linear arithmetic, 
-we can trivially prove the above propositions.
-
-\begin{code}
-{-@ propOnePlusOne :: _ -> OnePlusOne @-} 
-propOnePlusOne _ = trivial *** QED 
-
-{-@ propPlusComm :: PlusComm @-} 
-propPlusComm _ _ = trivial *** QED 
-\end{code}
-
-
-We saw how we use SMT's knowledge on linear arithmetic 
-to trivially prove arithmetic properties. But how can 
-we prove ``deep'' properties on Haskell's functions?
-
-
-Refinement Reflection 
----------------------
-
-Refinement Reflection allows deep specification and 
-verification by reflecting the code implementing a Haskell
-function into the function’s output refinement type.
-
-Refinement Reflection proceeds in 3 steps: definition, reflection, and application.
-Consider reflecting the definition of `fib` into the logic
-
-\begin{code}
-{-@ reflect fib @-}
-\end{code}
-
-then the following three reflection steps will occur. 
-
-Step 1: Definition 
-------------------
-
-Reflection of the Haskell function `fib` defines in logic 
-an _uninterpreted_ function `fib` that satisfies the congruence axiom.
-
-In the logic the function `fib` is defined.
-
-```haskell
-fib :: Int -> Int 
-```
-
-SMT only knows that `fib` satisfies the congruence axiom.
-
-\begin{code}
-{-@ fibCongruence :: i:Nat -> j:Nat -> {i == j => fib i == fib j} @-}
-fibCongruence _ _ = trivial *** QED 
-\end{code}
-
-Other than congruence, SMT knowns nothing for the function `fib`,
-until reflection happens!
-
-
-Step 2: Reflection
-------------------
-
-As a second step, Liquid Haskell connects the Haskell function `fib`
-with the homonymous logical function, 
-by reflecting the implementation of `fib` in its result type. 
-
-
-The result type of `fib` is automatically strengthened to the following.
-
-```haskell
-fib :: i:Nat -> {v:Nat | v == fib i && v = fibP i }
-```
-
-That is, the result satisfies the `fibP` predicate
-exactly reflecting the implementation of `fib`.
-
-```haskell
-fibP i = if i == 0 then 0 else
-         if i == 1 then 1 else
-         fib (i-1) + fib (i-2)
-```
-
-Step 3: Application 
--------------------
-
-With the reflected refinement type,
-each application of `fib` automatically unfolds the definition of `fib` 
-once. 
-As an example, applying `fib` to `0`, `1`, and `2` allows us to prove that `fib 2 == 1`:
-
-\begin{code}
-{-@ fibTwo :: _ -> { fib 2 == 1 } @-}
-fibTwo _ = [fib 0, fib 1, fib 2] *** QED
-\end{code}
-
-Though valid, the above `fibTwo` proof is not pretty! 
-
-
-Structuring Proofs 
-------------------
-
-To make our proofs look nice, we use combinators from 
-the `ProofCombinators` library, which exports a family 
-of operators `(*.)` where `*` comes from the theory of 
-linear arithmetic and the refinement type of `x *. y` 
-
-+ **requires** that `x *. y` holds and 
-+ **ensures** that the returned value is equal to `x`.
-
-For example, `(==.)` and `(<=.)` are predefined in `ProofCombinators` as
-
-```haskell
-(==.) :: x:a -> y:{a| x==y} -> {v:a| v==x}
-x ==. _ = x
-
-(<=.) :: x:a -> y:{a| x<=y} -> {v:a| v==x}
-x <=. _ = x
-```
-
-Using these predefined operators, we construct paper and pencil-like proofs 
-for the `fib` function.
-
-\begin{code}
-{-@ fibTwoPretty :: { fib 2 == 1 } @-}
-fibTwoPretty 
-  =   fib 2 
-  ==. fib 1 + fib 0 
-  *** QED
-\end{code}
-
-
-
-Because operator 
------------------
-
-To allow the reuse of existing proofs, `ProofCombinators` defines the because 
-operator `(∵)`
-
-```haskell
-(∵) :: (Proof -> a) -> Proof -> a
-f ∵ y = f y
-```
-
-For example, `fib 3 == 2` holds because `fib 2 == 1`:
-
-\begin{code}
-{-@ fibThree :: _ -> { fib 3 == 2 } @-}
-fibThree _ 
-  =   fib 3 
-  ==. fib 2 + fib 1
-  ==. 1     + 1      ∵ fibTwoPretty
-  ==. 2 
-  *** QED
-\end{code}
-
-
-
-Proofs by Induction (i.e. Recursion) 
-------------------------------------
-
-Next, combining the above operators we specify and prove that 
-`fib` is increasing, that is for each natural number `i`, 
-`fib i <= fib (i+1)`. 
-
-We specify the theorem as a refinement type for `fibUp`
-and use Haskell code to persuade Liquid Haskell that 
-the theorem holds. 
-
-\begin{code}
-{-@ fibUp :: i:Nat -> {fib i <= fib (i+1)} @-}
-fibUp i
-  | i == 0
-  =   fib 0 <. fib 1
-  *** QED
-
-  | i == 1
-  =   fib 1 <=. fib 1 + fib 0 <=. fib 2
-  *** QED
-
-  | otherwise
-  =   fib i
-  ==. fib (i-1) + fib (i-2)
-  <=. fib i     + fib (i-2) ∵ fibUp (i-1)
-  <=. fib i     + fib (i-1) ∵ fibUp (i-2)
-  <=. fib (i+1)
-  *** QED
-\end{code}
-
-The proof proceeds _by induction on_ `i`. 
-
-+ The base cases `i == 0` and `i == 1` are represented 
-  as Haskell's case splitting. 
-
-+ The inductive hypothesis is represented by recursive calls 
-  on smaller inputs. 
-
-Finally, the SMT solves arithmetic reasoning to conclude the proof.  
-
-Higher Order Theorems
-----------------------
-
-Refinement Reflection can be used to express and verify higher order theorems!
-For example, `fMono` specifies that each locally increasing function is monotonic! 
-
-\begin{code}
-{-@ fMono :: f:(Nat -> Int)
-          -> fUp:(z:Nat -> {f z <= f (z+1)})
-          -> x:Nat
-          -> y:{Nat|x < y}
-          -> {f x <= f y} / [y] 
-  @-}
-fMono f thm x y  
-  | x + 1 == y
-  = f y ==. f (x + 1)
-         >. f x       ∵ thm x
-        *** QED
-
-  | x + 1 < y
-  = f x
-  <.  f (y-1)         ∵ fMono f thm x (y-1)
-  <.  f y             ∵ thm (y-1)
-  *** QED
-\end{code}
-
-Again, the recursive implementation of `fMono` depicts the paper and pencil 
-proof of `fMono` by induction on the decreasing argument `/ [y]`. 
-
-Since `fib` is proven to be locally increasing by `fUp`, we use `fMono` 
-to prove that `fib` is monotonic. 
-
-\begin{code}
-{-@ fibMono :: n:Nat -> m:{Nat | n < m }  -> {fib n <= fib m} @-}
-fibMono = fMono fib fibUp
-\end{code}
-
-
-Conclusion
-----------
-
-We saw how refinement reflection turns Haskell
-into a theorem prover by reflecting the code 
-implementing a Haskell function into the 
-function’s output refinement type.
-
-Refinement Types are used to express theorems, 
-Haskell code is used to prove such theorems
-expressing paper pencil proofs, and Liquid Haskell 
-verifies the validity of the proofs!
-
-Proving `fib` monotonic is great, but this is Haskell!
-Wouldn’t it be nice to prove theorems about inductive data types 
-and higher order functions? Like fusions and folds? 
-Or program equivalence on run-time optimizations like map-reduce?
-
-Stay tuned!
-
-Even better, if you happen you be in Nara for ICFP'16, 
-come to my [CUFP tutorial][cufp16] for more!
-
-
-[cufp16]: http://cufp.org/2016/t6-niki-vazou-liquid-haskell-intro.html
-[proofcomb]:https://github.com/ucsd-progsys/liquidhaskell/blob/develop/include/Language/Haskell/Liquid/ProofCombinators.hs
diff --git a/docs/blog/2016-10-06-structural-induction.lhs b/docs/blog/2016-10-06-structural-induction.lhs
deleted file mode 100644
--- a/docs/blog/2016-10-06-structural-induction.lhs
+++ /dev/null
@@ -1,280 +0,0 @@
----
-layout: post
-title: "Refinement Reflection on ADTs: Lists are Monoids"
-date: 2016-10-06
-comments: true
-external-url:
-author: Niki Vazou
-published: true
-categories: reflection, induction, measures, monoids
-demo: MonoidList.hs
----
-
-[Previously][refinement-reflection] we saw how Refinement Reflection
-can be used to write and prove **in Haskell** theorems **about Haskell**
-functions and have such proofs machine checked.
-
-Today, we will see how Refinement Reflection works on **recursive data types**.
-
-As an example, we will prove that **lists are monoids** (under nil and append).
-
-Lets see how to express
-
-* the (monoid) laws as liquid types,
-* the (monoid) proofs as plain haskell functions,
-
-and have LiquidHaskell check that the code indeed
-proves the corresponding laws.
-
-<!-- more -->
-
-<br>
-<br>
-<br>
-
-<div class="row-fluid">
-  <div class="span12 pagination-centered">
-  <img src="http://www.aaronartprints.org/images/Paintings/4597.jpg"
-       alt="Recursion" width="300">
-       <br>
-       <br>
-       <br>
-       Recursive Paper and Pencil Proofs.
-       "Drawing Hands" by Escher.
-       <br>
-       <br>
-       <br>
-  </div>
-</div>
-
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-module StructuralInduction where
-import Language.Haskell.Liquid.ProofCombinators
-
-import Prelude hiding (length)
-
-length :: List a -> Int
-leftId :: List a -> Proof
-rightId :: List a -> Proof
-associativity :: List a -> List a -> List a -> Proof
-\end{code}
-</div>
-
-Lists
------
-
-First, lets define the `List a` data type
-
-\begin{code}
-data List a = N | C a (List a)
-\end{code}
-
-Induction on Lists
-------------------
-
-As we will see, *proofs* by structural induction will correspond to
-*programs* that perform *recursion* on lists. To keep things legit,
-we must verify that those programs are total and terminating.
-
-To that end, lets define a `length` function that
-computes the natural number that is the size of a
-list.
-
-\begin{code}
-{-@ measure length               @-}
-{-@ length      :: List a -> Nat @-}
-length N        = 0
-length (C x xs) = 1 + length xs
-\end{code}
-
-We lift `length` in the logic, as a [measure][the-advantage-of-measures].
-
-We can now tell Liquid Haskell that when proving termination
-on recursive functions with a list argument `xs`, it should
-check whether the `length xs` is decreasing.
-
-\begin{code}
-{-@ data List [length] a = N | C {hd :: a, tl :: List a} @-}
-\end{code}
-
-
-Reflecting Lists into the Logic
--------------------------------
-
-To talk about lists in the logic, we use the annotation
-
-\begin{code}
-{-@ LIQUID "--exact-data-cons" @-}
-\end{code}
-
-which **automatically** derives measures for
-
-* *testing* if a value has a given data constructor, and
-* *extracting* the corresponding field's value.
-
-For our example, LH will automatically derive the following
-functions in the refinement logic.
-
-\begin{spec}
-isN :: L a -> Bool         -- Haskell's null
-isC :: L a -> Bool         -- Haskell's not . null
-
-select_C_1 :: L a -> a     -- Haskell's head
-select_C_2 :: L a -> L a   -- Haskell's tail
-\end{spec}
-
-A programmer *never* sees the above operators; they are internally
-used by LH to **reflect** Haskell functions into the refinement logic,
-as we shall see shortly.
-
-Defining the Monoid Operators
------------------------------
-
-A structure is a monoid, when it has two operators:
-
-* the identity element `empty` and
-* an associative operator `<>`.
-
-Lets define these two operators for our `List`.
-
-* the identity element is the empty list, and
-* the associative operator `<>` is list append.
-
-\begin{code}
-{-@ reflect empty @-}
-empty  :: List a
-empty  = N
-
-{-@ infix   <> @-}
-{-@ reflect <> @-}
-(<>)           :: List a -> List a -> List a
-N        <> ys = ys
-(C x xs) <> ys = C x (xs <> ys)
-\end{code}
-
-LiquidHaskell automatically checked that the recursive `(<>)` 
-is terminating, by checking that the `length` of its first
-argument is decreasing. Since both the above operators are 
-provably terminating, LH lets us reflect them into logic.
-
-As with our [previous][refinement-reflection]
-`fibonacci` example, reflection of a function
-into logic, means strengthening the result type
-of the function with its implementation.
-
-Thus, the **automatically** derived, strengthened
-types for `empty` and `(<>)` will be
-
-\begin{spec}
-empty   :: {v:List a | v == empty && v == N }
-
-(<>) :: xs:List a -> ys:List a
-     -> {v:List a | v == xs <> ys &&
-                    v == if isN xs then ys else
-                         C (select_C_1 xs) (select_C_2 xs <> ys)
-        }
-\end{spec}
-
-In effect, the derived checker and selector functions are used
-to translate Haskell to logic. The above is just to *explain*
-how LH reasons about the operators; the programmer never (directly) 
-reads or writes the operators `isN` or `select_C_1` etc.
-
-Proving the Monoid Laws
-------------------------
-
-Finally, we have set everything up, (actually LiquidHaskell
-did most of the work for us) and we are ready to prove the
-monoid laws for the `List`.
-
-First we prove left identity of `empty`.
-
-\begin{code}
-{-@ leftId  :: x:List a -> { empty <> x == x } @-}
-leftId x
-   =   empty <> x
-   ==. N <> x
-   ==. x
-   *** QED
-\end{code}
-
-This proof was trivial, because left identity is satisfied
-by the way we defined `(<>)`.
-
-Next, we prove right identity of `empty`.
-
-\begin{code}
-{-@ rightId  :: x:List a -> { x <> empty  == x } @-}
-rightId N
-   =   N <> empty
-   ==. N
-   *** QED
-
-rightId (C x xs)
-   =   (C x xs) <> empty
-   ==. C x (xs <> empty)
-   ==. C x xs        ∵ rightId xs
-   *** QED
-\end{code}
-
-This proof is more tricky, as it requires **structural induction** which is
-encoded in LH proofs simply as **recursion**.  LH ensures that the inductive
-hypothesis is appropriately applied by checking that the recursive proof is
-total and terminating.  In the `rightId` case, for termination, Liquid Haskell
-checked that `length xs < length (C x xs)`.
-
-It turns out that we can prove lots of properties about lists using structural 
-induction, encoded in Haskell as
-
-* case splitting,
-* recursive calls, and
-* rewriting,
-
-To see a last example, lets prove the associativity of `(<>)`.
-
-\begin{code}
-{-@ associativity :: x:List a -> y:List a -> z:List a
-                  -> { x <> (y <> z) == (x <> y) <> z } @-}
-associativity N y z
-  =   N <> (y <> z)
-  ==. y <> z
-  ==. (N <> y) <> z
-  *** QED
-
-associativity (C x xs) y z
-  =  (C x xs) <> (y <> z)
-  ==. C x (xs <> (y <> z))
-  ==. C x ((xs <> y) <> z) ∵ associativity xs y z
-  ==. (C x (xs <> y)) <> z
-  ==. ((C x xs) <> y) <> z
-  *** QED
-\end{code}
-
-The above proof of associativity reifies the paper and pencil 
-proof by structural induction.
-
-With that, we can safely conclude that our user defined list
-is a monoid!
-
-
-Conclusion
-----------
-
-We saw how Refinement Reflection can be used to
-
-- specify properties of `ADTs`,
-- naturally encode structural inductive proofs of these properties, and
-- have these proofs machine checked by Liquid Haskell.
-
-Why is this useful? Because the theorems we prove refer to your Haskell
-functions!  Thus you (or in the future, the compiler) can use properties like
-monoid or monad laws to optimize your Haskell code.  In the future, we will
-present examples of code optimizations using monoid laws. Stay tuned!
-
-
-[refinement-reflection]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2016/09/18/refinement-reflection.lhs/
-[the-advantage-of-measures]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2014/02/11/the-advantage-of-measures.lhs/
diff --git a/docs/blog/2016-12-25-isomorphisms.lhs b/docs/blog/2016-12-25-isomorphisms.lhs
deleted file mode 100644
--- a/docs/blog/2016-12-25-isomorphisms.lhs
+++ /dev/null
@@ -1,342 +0,0 @@
----
-layout: post
-title: Isomorphisms for Proof Reductions
-date: 2016-12-25
-comments: true
-external-url:
-author: Vikraman Choudhury and Niki Vazou
-published: true
-categories: reflection 
-demo: Iso.hs
----
-
-[Previously][refinement-reflection] we saw how Refinement Reflection
-can be used to write and prove **in Haskell** theorems **about Haskell**
-functions and have such proofs machine checked by Liquid Haskell.
-
-As a limitation, Liquid Haskell offers no proof generation techniques: 
-The user needs to manually provide all the proofs. 
-
-Today we will see how proof generation can be simplified by data type isomorphisms. 
-
-As an example, a user defined `Peano` data type enjoyes all the 
-arithmetic properties of natural numbers since `Peano` and natural numbers 
-are provably **isomorphic**. 
-
-<!-- more -->
-
-<br>
-<br>
-<br>
-
-<div class="row-fluid">
-  <div class="span12 pagination-centered">
-  <img src="http://www.aaronartprints.org/images/Paintings/4597.jpg"
-       alt="Recursion" width="300">
-       <br>
-       <br>
-       <br>
-       Recursive Paper and Pencil Proofs.
-       "Drawing Hands" by Escher.
-       <br>
-       <br>
-       <br>
-  </div>
-</div>
-
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--higherorder" @-}
-{-@ LIQUID "--totalhaskell" @-}
-{-@ LIQUID "--exactdc" @-}
-{-@ LIQUID "--diffcheck" @-}
-{-@ LIQUID "--eliminate=some" @-}
-
-module Iso where
-
-import Language.Haskell.Liquid.ProofCombinators
-\end{code}
-
-</div>
-
-First, we define `Peano` numbers as a data type 
-and the function `leqPeano` that compares two peano numbers.
-
-
-\begin{code}
-{-@ data Peano [toNat] = Z | S Peano @-}
-data Peano = Z | S Peano deriving (Eq)
-
-{-@ axiomatize leqPeano @-}
-leqPeano :: Peano -> Peano -> Bool
-leqPeano Z _         = True
-leqPeano _ Z         = False
-leqPeano (S n) (S m) = leqPeano n m
-\end{code}
-
-We can use Refinement Reflection to provide an 
-explicit proof that comparison on peano numbers is *total*, 
-that is, for every two numbers `n` and `m` 
-either `leqPeano n m` or `leqPeano m n` always holds. 
-
-\begin{code}
-{-@ leqNTotal :: n:Peano -> m:Peano 
-              -> {(leqPeano n m) || (leqPeano m n)} 
-              / [toNat n + toNat m] @-}
-leqNTotal :: Peano -> Peano -> Proof
-leqNTotal Z m = leqPeano Z m *** QED
-leqNTotal n Z = leqPeano Z n *** QED
-leqNTotal (S n) (S m)
-  =   (leqPeano (S n) (S m) || leqPeano (S m) (S n))
-  ==. (leqPeano n m || leqPeano (S m) (S n)) 
-      ? (leqNTotal n m)
-  ==. (leqPeano n m || leqPeano m n) 
-      ? (leqNTotal m n)
-  *** QED
-\end{code}
-
-The proof proceeds by induction on the sum of `n` and `m`. 
-Liquid Haskell captures this generalized induction by 
-ensuring that the value `toNat n + toNat m` is decreasing
-where `toNat` maps Peano to Natural numbers. 
-
-\begin{code}
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat Z = 0
-toNat (S n) = 1 + toNat n
-\end{code}
-
-Note, that the type `Nat` is just a refinement for the Haskell's integers
-\begin{spec}
-type Nat = {v:Int | 0 <= v}
-\end{spec}
-
-
-First, we'll express verified typeclasses using Haskell records, but with LiquidHaskell refinements to express laws. As
-an example, let's define `VerifiedOrd`, which is the same as the `Ord` typeclass, but with total order laws added.
-
-\begin{code}
-{-@ data VerifiedOrd a = VerifiedOrd {
-      leq     :: a -> a -> Bool
-    , refl    :: x:a -> { leq x x }
-    , antisym :: x:a -> y:a -> { leq x y && leq y x ==> x == y }
-    , trans   :: x:a -> y:a -> z:a -> { leq x y && leq y z ==> leq x z }
-    , total   :: x:a -> y:a -> { leq x y || leq y x }
-    }
-@-}
-data VerifiedOrd a = VerifiedOrd {
-    leq     :: a -> a -> Bool
-  , refl    :: a -> Proof
-  , antisym :: a -> a -> Proof
-  , trans   :: a -> a -> a -> Proof
-  , total   :: a -> a -> Proof
-}
-\end{code}
-
-The `leq` function represents the `<=` operator in `Ord`, and `refl`, `antisym`, `trans`, `total`, express the
-reflexivity, antisymmetry, transitivity and totality properties respectively, that a total order requires. Notice how
-the refinements express the laws, and the actual code is simply a function that returns `Proof` or `()`.
-
-Now, let's see how to define some simple verified instances. We need to instantiate `leq` for our type, "reflect" it
-into the logic, and prove all the required properties. For primitive types like `Int` or `Double`, it's "trivial"
-because we trust the SMT solver which already knows about integers.
-
-\begin{code}
-{-@ axiomatize leqInt @-}
-leqInt :: Int -> Int -> Bool
-leqInt x y = x <= y
-
-{-@ leqIntRefl :: x:Int -> { leqInt x x } @-}
-leqIntRefl :: Int -> Proof
-leqIntRefl x = leqInt x x ==. x <= x *** QED
-
-{-@ leqIntAntisym :: x:Int -> y:Int -> { leqInt x y && leqInt y x ==> x == y } @-}
-leqIntAntisym :: Int -> Int -> Proof
-leqIntAntisym x y = (leqInt x y && leqInt y x) ==. (x <= y && y <= x) ==. x == y *** QED
-
-{-@ leqIntTrans :: x:Int -> y:Int -> z:Int -> { leqInt x y && leqInt y z ==> leqInt x z } @-}
-leqIntTrans :: Int -> Int -> Int -> Proof
-leqIntTrans x y z = (leqInt x y && leqInt y z) ==. (x <= y && y <= z) ==. x <= z ==. leqInt x z *** QED
-
-{-@ leqIntTotal :: x:Int -> y:Int -> { leqInt x y || leqInt y x } @-}
-leqIntTotal :: Int -> Int -> Proof
-leqIntTotal x y = (leqInt x y || leqInt y x) ==. (x <= y || y <= x) *** QED
-
-vordInt :: VerifiedOrd Int
-vordInt = VerifiedOrd leqInt leqIntRefl leqIntAntisym leqIntTrans leqIntTotal
-\end{code}
-
-How about a complex datatype? Let's consider an inductive datatype, the peano natural numbers. Not surprisingly, the
-proofs follow by induction. For conciseness, we only show totality and elide the rest.
-
-Writing down proofs for more complex datatypes is tedious, it requires case analysis for each constructor and using the
-induction hypothesis. However, we can decompose Haskell datatypes into sums and products, and we can build up compound
-proofs using isomorphisms! To that end, we design some machinery to express isomorphisms, and prove that laws are
-preserved under isomorphic images.
-
-\begin{code}
-{-@ data Iso a b = Iso {
-      to   :: a -> b
-    , from :: b -> a
-    , tof  :: y:b -> { to (from y) == y }
-    , fot  :: x:a -> { from (to x) == x }
-    }
-@-}
-data Iso a b = Iso {
-    to   :: a -> b
-  , from :: b -> a
-  , tof  :: b -> Proof
-  , fot  :: a -> Proof
-}
-\end{code}
-
-An isomorphism between types `a` and `b` is a pair of functions `to :: a -> b` and `from :: b -> a` that are mutually
-inverse to each other. We now claim that total order laws are preserved under `Iso`; this amounts to building up a
-`VerifiedOrd b`, given a `VerifiedOrd a` and an `Iso a b`.
-
-\begin{code}
-{-@ axiomatize leqFrom @-}
-leqFrom :: (a -> a -> Bool)
-        -> (b -> a)
-        -> (b -> b -> Bool)
-leqFrom leqa from x y = leqa (from x) (from y)
-
-{-@ leqFromRefl :: leqa:(a -> a -> Bool) -> leqaRefl:(x:a -> { leqa x x })
-                -> from:(b -> a)
-                -> x:b -> { leqFrom leqa from x x }
-@-}
-leqFromRefl :: (a -> a -> Bool) -> (a -> Proof)
-            -> (b -> a)
-            -> b -> Proof
-leqFromRefl leqa leqaRefl from x =
-      leqFrom leqa from x x
-  ==. leqa (from x) (from x)
-  ==. True ? leqaRefl (from x)
-  *** QED
-
-{-@ leqFromAntisym :: leqa:(a -> a -> Bool)
-                   -> leqaAntisym:(x:a -> y:a -> { leqa x y && leqa y x ==> x == y })
-                   -> to:(a -> b) -> from:(b -> a) -> tof:(y:b -> { to (from y) == y })
-                   -> x:b -> y:b -> { leqFrom leqa from x y && leqFrom leqa from y x ==> x == y }
-@-}
-leqFromAntisym :: (Eq a, Eq b)
-               => (a -> a -> Bool) -> (a -> a -> Proof)
-               -> (a -> b) -> (b -> a) -> (b -> Proof)
-               -> b -> b -> Proof
-leqFromAntisym leqa leqaAntisym to from tof x y
-  =   (leqFrom leqa from x y && leqFrom leqa from y x)
-  ==. (leqa (from x) (from y) && leqa (from y) (from x))
-  ==. from x == from y ? leqaAntisym (from x) (from y)
-  ==. to (from x) == to (from y)
-  ==. x == to (from y) ? tof x
-  ==. x == y           ? tof y
-  *** QED
-
-{-@ leqFromTrans :: leqa:(a -> a -> Bool)
-                 -> leqaTrans:(x:a -> y:a -> z:a -> { (leqa x y) && (leqa y z) ==> (leqa x z) })
-                 -> from:(b -> a)
-                 -> x:b -> y:b -> z:b
-                 -> { leqFrom leqa from x y && leqFrom leqa from y z ==> leqFrom leqa from x z }
-@-}
-leqFromTrans :: (a -> a -> Bool) -> (a -> a -> a -> Proof)
-             -> (b -> a)
-             -> b -> b -> b -> Proof
-leqFromTrans leqa leqaTrans from x y z =
-      (leqFrom leqa from x y && leqFrom leqa from y z)
-  ==. (leqa (from x) (from y) && leqa (from y) (from z))
-  ==. leqa (from x) (from z) ? leqaTrans (from x) (from y) (from z)
-  ==. leqFrom leqa from x z
-  *** QED
-
-{-@ leqFromTotal :: leqa:(a -> a -> Bool) -> leqaTotal:(x:a -> y:a -> { (leqa x y) || (leqa y x) })
-                 -> from:(b -> a) -> x:b -> y:b -> { leqFrom leqa from x y || leqFrom leqa from y x }
-@-}
-leqFromTotal :: (a -> a -> Bool) -> (a -> a -> Proof)
-             -> (b -> a) -> b -> b -> Proof
-leqFromTotal leqa leqaTotal from x y =
-      (leqFrom leqa from x y || leqFrom leqa from y x)
-  ==. (leqa (from x) (from y) || leqa (from y) (from x))
-  ==. True ? leqaTotal (from x) (from y)
-  ==. leqFrom leqa from y x
-  *** QED
-
-vordIso :: (Eq a, Eq b) => Iso a b -> VerifiedOrd a -> VerifiedOrd b
-vordIso (Iso to from tof fot) (VerifiedOrd leqa leqaRefl leqaAntisym leqaTrans leqaTotal) =
-  VerifiedOrd
-    (leqFrom leqa from)
-    (leqFromRefl leqa leqaRefl from)
-    (leqFromAntisym leqa leqaAntisym to from tof)
-    (leqFromTrans leqa leqaTrans from)
-    (leqFromTotal leqa leqaTotal from)
-\end{code}
-
-We can now write a `VerifiedOrd` for `Peano` by mapping it onto `type Nat = { n:Int | 0 <= n }`, which is easier to
-prove properties about because it's just an integer!
-
-\begin{code}
-{-@ type Nat = { n:Int | 0 <= n } @-}
-type Nat = Int
-
-{-@ axiomatize fromNat @-}
-{-@ fromNat :: Nat -> Peano @-}
-fromNat :: Nat -> Peano
-fromNat n
-  | n == 0 = Z
-  | otherwise = S (fromNat (n - 1))
-
-{-@ toFrom :: x:Nat -> { toNat (fromNat x) == x } @-}
-toFrom :: Nat -> Proof
-toFrom n
-  | n == 0 = toNat (fromNat 0) ==. toNat Z ==. 0 *** QED
-  | n > 0 = toNat (fromNat n)
-        ==. toNat (S (fromNat (n - 1)))
-        ==. 1 + toNat (fromNat (n - 1))
-        ==. 1 + (n - 1) ? toFrom (n - 1)
-        ==. n
-        *** QED
-
-{-@ fromTo :: x:Peano -> { fromNat (toNat x) == x } @-}
-fromTo :: Peano -> Proof
-fromTo Z = fromNat (toNat Z) ==. fromNat 0 ==. Z *** QED
-fromTo (S n) = fromNat (toNat (S n))
-           ==. fromNat (1 + toNat n)
-           ==. S (fromNat ((1 + toNat n) - 1))
-           ==. S (fromNat (toNat n))
-           ==. S n ? fromTo n
-           *** QED
-
-{-@ isoNatPeano :: Iso Nat Peano @-}
-isoNatPeano :: Iso Nat Peano
-isoNatPeano = Iso fromNat toNat fromTo toFrom
-
-vordNat :: VerifiedOrd Nat
-vordNat = VerifiedOrd leqInt leqIntRefl leqIntAntisym leqIntTrans leqIntTotal
-
-vordPeano :: VerifiedOrd Peano
-vordPeano = vordIso isoNatPeano vordNat
-\end{code}
-
-Similarly, we can break down compound datatypes into sums and products, just like what happens in `GHC.Generics`, and
-use the isomorphism to write down `VerifiedOrd` instances. We do however need to provide instances of `VerifiedOrd` for
-sums and products.
-
-\begin{code}
-vordProd :: VerifiedOrd a -> VerifiedOrd b -> VerifiedOrd (a, b)
-vordSum :: VerifiedOrd a -> VerifiedOrd b -> VerifiedOrd (Either a b)
-\end{code}
-
-\begin{comment}
-\begin{code}
-vordSum = undefined
-vordProd = undefined
-\end{code}
-\end{comment}
-
-Our [library](https://github.com/iu-parfunc/verified-instances) explores this idea to build some verified typeclasses,
-such as `VerifiedOrd` and `VerifiedMonoid`. We also provide combinators to build verified instances by using
-isomorphisms. Also, using a [reflection hack](https://www.schoolofhaskell.com/user/thoughtpolice/using-reflection), we
-can reify these "verified" terms to typeclass dictionaries at runtime, to call legacy functions which require `Ord`
-constraints and so on.
diff --git a/docs/blog/2017-01-06-reductions.lhs b/docs/blog/2017-01-06-reductions.lhs
deleted file mode 100644
--- a/docs/blog/2017-01-06-reductions.lhs
+++ /dev/null
@@ -1,261 +0,0 @@
----
-layout: post
-title: Proof Reductions on Homomorphisms
-date: 2017-01-02
-comments: true
-external-url:
-author: Niki Vazou and Vikraman Choudhury
-published: true
-categories: reflection, abstract-refinements
-demo: Reductions.hs
----
-
-[Previously][refinement-reflection] we saw how Refinement Reflection
-can be used to specify and prove theorems about Haskell code.
-
-Today we will see how proof generation can be simplified by 
-proof reduction on homomorphic data types. 
-
-As an example, we define a user-defined `Peano` data type
-and prove that it enjoys various arithmetic properties 
-(like totality of comparison) by 
-
-1. creating a proof that an arithmetic property holds on Natural numbers, and then 
-2. reduce the proof from Natural numbers to Peano numbers. 
-This proof reduction is possible since Peano numbers are homomorphic to Natural numbers. 
-
-<!-- more -->
-
-<br>
-<br>
-<br>
-
-<div class="row-fluid">
-  <div class="span12 pagination-centered">
-  <img src="http://4.bp.blogspot.com/-oltF9WI2KhY/VBMwdj15IvI/AAAAAAAAAtg/V3-k6IylIZM/s1600/picasso_bull.jpg"
-       alt="Picasso bull" width="400">
-       <br>
-       <br>
-       <br>
-  </div>
-</div>
-
-
-<div class="hidden">
-\begin{code}
-{-@ LIQUID "--higherorder"    @-}
-{-@ LIQUID "--totalhaskell"   @-}
-{-@ LIQUID "--exactdc"        @-}
-{-@ LIQUID "--diffcheck"      @-}
-{-@ LIQUID "--pruneunsorted"  @-}
-{-@ LIQUID "--eliminate=some" @-}
-
-module Reductions where
-
-import Language.Haskell.Liquid.ProofCombinators
-
-geqZero  :: Peano -> Proof 
-leqTotal :: Peano -> Peano -> Proof
-toNat    :: Peano -> Int
-
-geqZeroNat          :: Nat -> Proof 
-geqZeroByReduction  :: Peano -> Proof 
-leqTotalByReduction :: Peano -> Peano -> Proof 
-leqTotalNat         :: Nat -> Nat -> Proof
-
-\end{code}
-
-</div>
-
-Properties of Peano Numbers
-----------------------------
-
-First, we define `Peano` numbers as a data type 
-and the function `leqPeano` that compares two Peano numbers.
-
-
-\begin{code}
-{-@ data Peano [toNat] = Z | S {prev :: Peano } @-}
-data Peano = Z | S { prev :: Peano } deriving (Eq)
-
-{-@ reflect leqPeano @-}
-leqPeano :: Peano -> Peano -> Bool
-leqPeano Z _         = True
-leqPeano _ Z         = False
-leqPeano (S n) (S m) = leqPeano n m
-\end{code}
-
-We can use Refinement Reflection to provide an 
-**explicit proof** that no Peano number is greater than zero (`Z`).
-
-\begin{code}
-{-@ geqZero :: n:Peano -> {leqPeano Z n} @-}
-geqZero n = leqPeano Z n *** QED 
-\end{code}
-
-The proof proceeds simply by invocation of the 
-first case of the `leqPeano` definition. 
-
-As another Peano property, we can use Refinement Reflection to 
-show that comparison on Peano numbers is *total*, 
-that is, for every two numbers `n` and `m` 
-either `leqPeano n m` or `leqPeano m n` always holds. 
-
-\begin{code}
-{-@ leqTotal :: n:Peano -> m:Peano 
-             -> {(leqPeano n m) || (leqPeano m n)} 
-             /  [toNat n + toNat m] @-}
-leqTotal Z m = leqPeano Z m *** QED
-leqTotal n Z = leqPeano Z n *** QED
-leqTotal (S n) (S m)
-  =   (leqPeano (S n) (S m) || leqPeano (S m) (S n))
-  ==. (leqPeano n m || leqPeano (S m) (S n)) 
-      ? (leqTotal n m)
-  ==. (leqPeano n m || leqPeano m n) 
-      ? (leqTotal m n)
-  *** QED
-\end{code}
-
-The proof proceeds by induction on the sum of `n` and `m`. 
-Liquid Haskell captures this generalized induction by 
-ensuring that the value `toNat n + toNat m` is decreasing
-where `toNat` maps Peano to Natural numbers. 
-
-\begin{code}
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat Z     = 0
-toNat (S n) = 1 + toNat n
-\end{code}
-
-Note, that the type `Nat` is just a refinement on the Haskell's integers
-\begin{code}
-{-@ type Nat = { n:Int | 0 <= n } @-}
-type Nat     = Int
-\end{code}
-
-Following the totality proof, 
-one can prove further properties of Peano comparisons, 
-like reflexivity and transitivity.
-
-The above totality proof is verbose! 
-Moreover, it is very similar 
-to the classic totality on Natural numbers. 
-Since the SMT knowns that comparison of Nat is total, we can just reduce 
-Peano to Natural number totality!
-
-
-Reduction of Operators 
------------------------
-
-Since `toNat` is a homomorphism (i.e., a transformation) from `Peano` to `Nat`
-one can compare two Peano numbers via comparison of Natural numbers. 
-
-\begin{code}
-{-@ reflect leqPeanoNat @-}
-leqPeanoNat :: Peano -> Peano -> Bool 
-leqPeanoNat n m = toNat n `leqInt` toNat m  
-\end{code}
-
-where `leqInt` the Haskell comparison operator restricted to `Ints`.
-
-\begin{code}
-{-@ reflect leqInt @-}
-leqInt :: Int -> Int -> Bool 
-leqInt x y = x <= y
-\end{code}
-
-Note that `leqPeanoNat` is exactly equivalent to `leqPeano`. 
-For this blog post, we leave the equivalence proof as an exercise for the reader.
-
-
-Proof Reductions
------------------
-
-After reducing the Peano comparison operator to
-comparison on Natural numbers, we can reduce 
-proofs on Peano numbers to proofs on Natural numbers.
-The great benefit of this reduction is that proofs on Natural number
-are automated by the underlying SMT solver!
-
-For example, we prove that no Natural number is less than `0`
-by unfolding `leqInt` on `0` 
-and then let linear arithmetic decision procedure of the SMT complete the proof. 
-\begin{code}
-{-@ geqZeroNat :: n:Nat -> {leqInt 0 n} @-}
-geqZeroNat n = leqInt 0 n *** QED 
-\end{code}
-
-
-We then reduce the above property to the respective property on Peano numbers.
-\begin{code}
-{-@ geqZeroByReduction :: n:Peano -> {leqPeanoNat Z n} @-}
-geqZeroByReduction n 
-  = leqPeanoNat Z n ==. True 
-  ? reduction toNat geqZeroNat n 
-  *** QED 
-\end{code}
-
-The reduction occurs via the function `reduction`.
-The function `reduction f thm n`, for each homomorphism `f :: a -> b`, 
-reduces a theorem `thm x` on `a`s to the respective theorems on `b` via 
-[Abstract Refinements][abstract-refinements].
-\begin{code}
-{-@ reduction :: forall<p :: a -> Proof -> Bool>. 
-                 f:(b -> a) 
-              -> (x:a -> Proof<p x>) 
-              -> (y:b -> Proof<p (f y)>) @-}
-reduction :: (b -> a) -> (a -> Proof) -> (b -> Proof)
-reduction f thm y = thm (f y)              
-\end{code}
-
-Users with model theoretic background may observe that `reduction` 
-is actually encoding [Łoś–Tarski preservation theorem][preservation-theorem]!
-
-Similarly, `reduction2` reduces theorems with two `a` arguments
-to theorems with two `b` arguments via a homomorphism. 
-
-\begin{code}
-{-@ reduction2 :: forall<p :: a -> a -> Proof -> Bool >. 
-                  f:(b -> a) 
-               -> (x1:a -> x2:a -> Proof<p x1 x2>) 
-               -> (y1:b -> y2:b-> Proof<p (f y1) (f y2)>) @-}
-reduction2 :: (b -> a) -> (a -> a -> Proof) -> (b -> b -> Proof)
-reduction2 f thm y1 y2  = thm (f y1) (f y2)
-\end{code}
-
-For example, the SMT-automated proof of totality on Natural numbers 
-\begin{code}
-{-@ leqTotalNat :: n:Nat -> m:Nat -> { leqInt n m || leqInt m n } @-}
-leqTotalNat n m = (leqInt n m || leqInt m n) *** QED 
-\end{code}
-
-can be easily reduced to totality on Peano numbers
-
-\begin{code}
-{-@ leqTotalByReduction :: n:Peano -> m:Peano
-   -> { leqPeanoNat n m || leqPeanoNat m n } @-}
-leqTotalByReduction n m 
-  = (leqPeanoNat n m || leqPeanoNat m n) ==. True 
-  ? reduction2 toNat leqTotalNat n m  
-  *** QED 
-\end{code}
-
-
-Conclusion
------------
-
-We presented an example of how the SMT-automated proofs on 
-Natural numbers can be reduced to the respective proofs on the 
-Peano numbers, because Peano are homomorphic to Natural numbers. 
-
-Proof reduction greatly simplifies proof composition
-as it allows for shorter and more elegant proofs 
-that take advantage of SMT-automated or other existing
-proofs on homomorphic data structures. 
-
-
-[refinement-reflection]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2016/09/18/refinement-reflection.lhs/
-[reduction-lib]: https://github.com/ucsd-progsys/liquidhaskell/tree/develop/include/Language/Haskell/Liquid/Reduction.hs
-[abstract-refinements]: http://goto.ucsd.edu/~rjhala/liquid/haskell/blog/blog/2013/06/03/abstracting-over-refinements.lhs/
-[preservation-theorem]: https://en.wikipedia.org/wiki/%C5%81o%C5%9B%E2%80%93Tarski_preservation_theorem
diff --git a/docs/blog/2017-03-20-arithmetic-overflows.lhs b/docs/blog/2017-03-20-arithmetic-overflows.lhs
deleted file mode 100644
--- a/docs/blog/2017-03-20-arithmetic-overflows.lhs
+++ /dev/null
@@ -1,363 +0,0 @@
----
-layout: post
-title: Arithmetic Overflows
-date: 2017-03-20
-author: Ranjit Jhala
-published: true
-comments: true
-tags: basic
-demo: overflow.hs
----
-
-
-Computers are great at crunching numbers.
-However, if programmers aren't careful, their
-machines can end up biting off more than
-they can chew: simple arithmetic operations
-over very large (or very tiny) inputs can
-*overflow* leading to bizarre crashes
-or vulnerabilities. For example,
-[Joshua Bloch's classic post][bloch]
-argues that nearly all binary searches
-are broken due to integer overflows.
-Lets see how we can teach LiquidHaskell
-to spot such overflows.
-
-<!-- more -->
-
-<div class="hidden">
-\begin{code}
-module Bounded where
-
-import           Control.Exception (assert)
-import           Prelude hiding (Num (..))
-import qualified Prelude
-
-plusStrict :: Int -> Int -> Int
-plusLazy   :: Int -> Int -> Int
-mono       :: Int -> Bool
-\end{code}
-</div>
-
-1. The Problem
---------------
-
-
-LiquidHaskell, like some programmers, likes to make believe
-that `Int` represents the set of integers. For example, you
-might define a function `plus` as:
-
-\begin{code}
-{-@ plus :: x:Int -> y:Int -> {v:Int | v == x + y} @-}
-plus :: Int -> Int -> Int
-plus x y = x Prelude.+ y
-\end{code}
-
-The output type of the function states that the returned value
-is equal to the \emph{logical} result of adding the two inputs.
-
-The above signature lets us "prove" facts like addition by one
-yields a bigger number:
-
-\begin{code}
-{-@ monoPlus :: Int -> {v:Bool | v <=> true } @-}
-monoPlus :: Int -> Bool
-monoPlus x = x < plus x 1
-\end{code}
-
-Unfortunately, the signature for plus and hence, the above
-"fact" are both lies.
-
-LH _checks_ `plus` as the same signature is _assumed_
-for the primitive `Int` addition operator `Prelude.+`.
-LH has to assume _some_ signature for this "foreign"
-machine operation, and by default, LH assumes that
-machine addition behaves like logical addition.
-
-However, this assumption, and its consequences are
-only true upto a point:
-
-```haskell
-λ>  monoPlus 0
-True
-λ>  monoPlus 100
-True
-λ>  monoPlus 10000
-True
-λ>  monoPlus 1000000
-True
-```
-
-Once we get to `maxBound` at the very edge of `Int`,
-a tiny bump is enough to send us tumbling backwards
-into a twilight zone.
-
-```haskell
-λ> monoPlus maxBound
-False
-
-λ> plus maxBound 1
--9223372036854775808
-```
-
-2. Keeping Int In Their Place
------------------------------
-
-The news isn't all bad: the glass half full
-view is that for "reasonable" values
-like 10, 100, 10000 and 1000000, the
-machine's arithmetic _is_ the same as
-logical arithmetic. Lets see how to impart
-this wisdom to LH. We do this in two steps:
-define the *biggest* `Int` value, and then,
-use this value to type the arithmetic operations.
-
-**A. The Biggest Int**
-
-First, we need a way to talk about
-"the edge" -- i.e. the largest `Int`
-value at which overflows occur.
-
-We could use the concrete number
-
-```haskell
-λ> maxBound :: Int
-9223372036854775807
-```
-
-However, instead of hardwiring a particular number,
-a more general strategy is to define a symbolic
-constant `maxInt` to represent _any_ arbitrary
-overflow value and thus, make the type checking
-robust to different machine integer widths.
-
-\begin{code}
--- defines an Int constant called `maxInt`
-{-@ measure maxInt :: Int @-}
-\end{code}
-
-To tell LH that `maxInt` is the "biggest" `Int`,
-we write a predicate that describes values bounded
-by `maxInt`:
-
-\begin{code}
-{-@ predicate Bounded N = 0 < N + maxInt && N < maxInt @-}
-\end{code}
-
-Thus, `Bounded n` means that the number `n` is in
-the range `[-maxInt, maxInt]`.
-
-**B.  Bounded Machine Arithmetic**
-
-Next, we can assign the machine arithmetic operations
-types that properly capture the possibility of arithmetic
-overflows. Here are _two_ possible specifications.
-
-**Strict: Thou Shalt Not Overflow** A _strict_ specification
-simply prohibits any overflow:
-
-\begin{code}
-{-@ plusStrict :: x:Int -> y:{Int|Bounded(x+y)} -> {v:Int|v = x+y} @-}
-plusStrict x y = x Prelude.+ y
-\end{code}
-
-The inputs `x` and `y` _must_ be such that the result is `Bounded`,
-and in that case, the output value is indeed their logical sum.
-
-**Lazy: Overflow at Thine Own Risk** Instead, a _lazy_
-specification could permit overflows but gives no
-guarantees about the output when they occur.
-
-\begin{code}
-{-@ plusLazy :: x:Int -> y:Int -> {v:Int|Bounded(x+y) => v = x+y} @-}
-plusLazy x y = x Prelude.+ y
-\end{code}
-
-The lazy specification says that while `plusLazy`
-can be called with any values you like, the
-result is the logical sum
-*only if there is no overflow*.
-
-
-To understand the difference between the two
-specifications, lets revisit the `monoPlus`
-property using the new machine-arithmetic
-sensitive signatures:
-
-\begin{code}
-{-@ monoPlusStrict :: Int -> {v:Bool | v <=> true } @-}
-monoPlusStrict x = x < plusStrict x 1
-
-{-@ monoPlusLazy :: Int -> {v:Bool | v <=> true } @-}
-monoPlusLazy x = x < plusLazy x 1
-\end{code}
-
-Both are rejected by LH, since, as we saw earlier,
-the functions _do not_ always evaluate to `True`.
-However, in the strict version the error is at the
-possibly overflowing call to `plusStrict`.
-In the lazy version, the call to `plusLazy` is
-accepted, but as the returned value is some
-arbitrary `Int` (not the logical `x+1`), the
-comparison may return `False` hence the output
-is not always `True`.
-
-**Exercise:** Can you fix the specification
-for `monoPlusStrict` and `monoPlusLazy` to
-get LH to verify the implementation?
-
-
-3. A Typeclass for Machine Arithmetic
--------------------------------------
-
-Its a bit inconvenient to write `plusStrict` and `plusLazy`,
-and really, we'd just like to write `+` and `-` and so on.
-We can do so, by tucking the above specifications into
-a _bounded numeric_ typeclass whose signatures capture machine
-arithmetic. First, we define a `BoundedNum` variant of `Num`
-
-\begin{code}
-class BoundedNum a where
-  (+) :: a -> a -> a
-  (-) :: a -> a -> a
-  -- other operations ...
-\end{code}
-
-and now, we can define its `Int` instance just as wrappers
-around the `Prelude` operations:
-
-\begin{code}
-instance BoundedNum Int where
-  x + y = x Prelude.+ y
-  x - y = x Prelude.- y
-\end{code}
-
-Finally, we can tell LH that the above above instance obeys the
-(strict) specifications for machine arithmetic:
-
-\begin{code}
-{-@ instance BoundedNum Int where
-      + :: x:Int -> y:{Int | Bounded (x+y)} -> {v:Int | v == x+y };
-      - :: x:Int -> y:{Int | Bounded (x-y)} -> {v:Int | v == x-y }
-  @-}
-\end{code}
-
-With the above instance in scope, we can just use the plain `+`
-operator and have LH flag potential overflows:
-
-\begin{code}
-{-@ mono :: Int -> {v:Bool | v <=> true} @-}
-mono x = x < x + 1
-\end{code}
-
-
-4. An Application: Binary Search
---------------------------------
-
-The above seems a bit paranoid. Do overflows _really_ matter?
-And if they do, is it really practical to check for them using
-the above?
-
-[Joshua Bloch's][bloch] famous article describes a
-tricky overflow bug in an implementation of binary-search
-that lay hidden in plain sight in classic textbooks and his
-own implementation in the JDK for nearly a decade.
-Gabriel Gonzalez wrote a lovely [introduction to LH][lh-gonzalez]
-using binary-search as an example, and a careful reader
-[pointed out][lh-overflow-reddit] that it had the same
-overflow bug!
-
-Lets see how we might spot and fix such bugs using `BoundedNum`.
-
-<div class="row">
-<div class="col-md-4">
-**A. Off by One** Lets begin by just using
-the default `Num Int` which ignores overflow.
-As Gabriel explains, LH flags a bunch of errors
-if we start the search with `loop x v 0 n` as
-the resulting search can access `v` at any
-index between `0` and `n` inclusive, which
-may lead to an out of bounds at `n`.
-We can fix the off-by-one by correcting the
-upper bound to `n-1`, at which point LH
-reports the code free of errors.
-</div>
-
-<div class="col-md-8">
-<img id="splash-binarySearch-A"
-     class="center-block anim"
-     png="/liquidhaskell-blog/static/img/splash-binarySearch-A.png"
-     src="/liquidhaskell-blog/static/img/splash-binarySearch-A.png">
-</div>
-</div>
-
-<br>
-
-
-<div class="row">
-<div class="col-md-8">
-<img id="splash-binarySearch-B"
-     class="center-block anim"
-     png="/liquidhaskell-blog/static/img/splash-binarySearch-B.png"
-     src="/liquidhaskell-blog/static/img/splash-binarySearch-B.png">
-</div>
-
-<div class="col-md-4">
-**B. Lots of Overflows** To spot arithmetic overflows, we need
-only hide the default `Prelude` and instead import the `BoundedNum`
-instance described above. Upon doing so, LH flags a whole bunch of
-potential errors -- essentially *all* the arithmetic operations which
-seems rather dire!
-</div>
-</div>
-
-
-<div class="row">
-<div class="col-md-4">
-**C. Vector Sizes are Bounded** Of course, things
-aren't _so_ bad. LH is missing the information that
-the size of any `Vector` must be `Bounded`. Once we
-inform LH about this invariant with the
-[`using` directive][lh-invariants], it infers that
-as the `lo` and `hi` indices are upper-bounded by
-the `Vector`'s size, all the arithmetic on them is
-also `Bounded` and hence, free of overflows.
-</div>
-
-<div class="col-md-8">
-<img id="splash-binarySearch-C"
-     class="center-block anim"
-     png="/liquidhaskell-blog/static/img/splash-binarySearch-C.png"
-     src="/liquidhaskell-blog/static/img/splash-binarySearch-C.png">
-</div>
-</div>
-
-<br>
-
-<div class="row">
-<div class="col-md-8">
-<img id="splash-binarySearch-D"
-     class="center-block anim"
-     png="/liquidhaskell-blog/static/img/splash-binarySearch-D.png"
-     src="/liquidhaskell-blog/static/img/splash-binarySearch-D.png">
-</div>
-
-<div class="col-md-4">
-**D. Staying In The Middle**
-Well, *almost* all. The one pesky pink highlight that
-remains is exactly the bug that Bloch made famous. Namely:
-the addition used to compute the new midpoint between `lo`
-and `hi` could overflow e.g. if the array was large and both
-those indices were near the end. To ensure the machine doesn't
-choke, we follow Bloch's suggestion and re-jigger the computation
-to instead compute the midpoint by splitting the difference
-between `hi` and `lo`! the code is now free of arithmetic
-overflows and truly memory safe.
-</div>
-</div>
-
-
-[lh-invariants]: https://github.com/ucsd-progsys/liquidhaskell/blob/develop/README.md#invariants
-[lh-gonzalez]: http://www.haskellforall.com/2015/12/compile-time-memory-safety-using-liquid.html
-[bloch]: https://research.googleblog.com/2006/06/extra-extra-read-all-about-it-nearly.html
-[lh-overflow-reddit]: https://www.reddit.com/r/haskell/comments/3ysh9k/haskell_for_all_compiletime_memory_safety_using/cyg8g60/
diff --git a/docs/blog/todo/Iso.lhs b/docs/blog/todo/Iso.lhs
deleted file mode 100644
--- a/docs/blog/todo/Iso.lhs
+++ /dev/null
@@ -1,281 +0,0 @@
----
-layout: post
-title: "Isomorphisms"
-date: 2016-24-12 
-author: Vikraman Choudhury 
-published: false
-comments: true
-external-url:
-categories: basic
-demo: Iso.hs
----
-
-\begin{comment}
-\begin{code}
-{-@ LIQUID "--higherorder" @-}
-{-@ LIQUID "--totalhaskell" @-}
-{-@ LIQUID "--exactdc" @-}
-{-@ LIQUID "--diffcheck" @-}
-
-module Iso where
-
-import Language.Haskell.Liquid.ProofCombinators
-\end{code}
-\end{comment}
-
-In this blog post, we show how to use Liquid Haskell to build "verified" typeclasses. A verified typeclass allows one to
-express typeclass laws directly as Haskell code. We also show a technique to build verified instances and scale them up
-to compound datatypes using isomorphisms.
-
-First, we'll express verified typeclasses using Haskell records, but with LiquidHaskell refinements to express laws. As
-an example, let's define `VerifiedOrd`, which is the same as the `Ord` typeclass, but with total order laws added.
-
-\begin{code}
-{-@ data VerifiedOrd a = VerifiedOrd {
-      leq     :: a -> a -> Bool
-    , refl    :: x:a -> { Prop (leq x x) }
-    , antisym :: x:a -> y:a -> { Prop (leq x y) && Prop (leq y x) ==> x == y }
-    , trans   :: x:a -> y:a -> z:a -> { Prop (leq x y) && Prop (leq y z) ==> Prop (leq x z) }
-    , total   :: x:a -> y:a -> { Prop (leq x y) || Prop (leq y x) }
-    }
-@-}
-data VerifiedOrd a = VerifiedOrd {
-    leq     :: a -> a -> Bool
-  , refl    :: a -> Proof
-  , antisym :: a -> a -> Proof
-  , trans   :: a -> a -> a -> Proof
-  , total   :: a -> a -> Proof
-}
-\end{code}
-
-The `leq` function represents the `<=` operator in `Ord`, and `refl`, `antisym`, `trans`, `total`, express the
-reflexivity, antisymmetry, transitivity and totality properties respectively, that a total order requires. Notice how
-the refinements express the laws, and the actual code is simply a function that returns `Proof` or `()`.
-
-Now, let's see how to define some simple verified instances. We need to instantiate `leq` for our type, "reflect" it
-into the logic, and prove all the required properties. For primitive types like `Int` or `Double`, it's "trivial"
-because we trust the SMT solver which already knows about integers.
-
-\begin{code}
-{-@ axiomatize leqInt @-}
-leqInt :: Int -> Int -> Bool
-leqInt x y = x <= y
-
-{-@ leqIntRefl :: x:Int -> { leqInt x x } @-}
-leqIntRefl :: Int -> Proof
-leqIntRefl x = leqInt x x ==. x <= x *** QED
-
-{-@ leqIntAntisym :: x:Int -> y:Int -> { leqInt x y && leqInt y x ==> x == y } @-}
-leqIntAntisym :: Int -> Int -> Proof
-leqIntAntisym x y = (leqInt x y && leqInt y x) ==. (x <= y && y <= x) ==. x == y *** QED
-
-{-@ leqIntTrans :: x:Int -> y:Int -> z:Int -> { leqInt x y && leqInt y z ==> leqInt x z } @-}
-leqIntTrans :: Int -> Int -> Int -> Proof
-leqIntTrans x y z = (leqInt x y && leqInt y z) ==. (x <= y && y <= z) ==. x <= z ==. leqInt x z *** QED
-
-{-@ leqIntTotal :: x:Int -> y:Int -> { leqInt x y || leqInt y x } @-}
-leqIntTotal :: Int -> Int -> Proof
-leqIntTotal x y = (leqInt x y || leqInt y x) ==. (x <= y || y <= x) *** QED
-
-vordInt :: VerifiedOrd Int
-vordInt = VerifiedOrd leqInt leqIntRefl leqIntAntisym leqIntTrans leqIntTotal
-\end{code}
-
-How about a complex datatype? Let's consider an inductive datatype, the peano natural numbers. Not surprisingly, the
-proofs follow by induction. For conciseness, we only show totality and elide the rest.
-
-\begin{code}
-{-@ data Peano [toNat] = Z | S Peano @-}
-data Peano = Z | S Peano deriving (Eq)
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> { n:Int | 0 <= n } @-}
-toNat :: Peano -> Int
-toNat Z = 0
-toNat (S n) = 1 + toNat n
-
-{-@ axiomatize leqPeano @-}
-leqPeano :: Peano -> Peano -> Bool
-leqPeano Z _ = True
-leqPeano _ Z = False
-leqPeano (S n) (S m) = leqPeano n m
-
-{-@ leqNTotal :: n:Peano -> m:Peano -> {(leqPeano n m) || (leqPeano m n)} / [toNat n + toNat m] @-}
-leqNTotal :: Peano -> Peano -> Proof
-leqNTotal Z m = leqPeano Z m *** QED
-leqNTotal n Z = leqPeano Z n *** QED
-leqNTotal (S n) (S m)
-  =   (leqPeano (S n) (S m) || leqPeano (S m) (S n))
-  ==. (leqPeano n m || leqPeano (S m) (S n)) ? (leqNTotal n m )
-  ==. (leqPeano n m || leqPeano m n) ? (leqNTotal m n)
-  *** QED
-\end{code}
-
-Writing down proofs for more complex datatypes is tedious, it requires case analysis for each constructor and using the
-induction hypothesis. However, we can decompose Haskell datatypes into sums and products, and we can build up compound
-proofs using isomorphisms! To that end, we design some machinery to express isomorphisms, and prove that laws are
-preserved under isomorphic images.
-
-\begin{code}
-{-@ data Iso a b = Iso {
-      to   :: a -> b
-    , from :: b -> a
-    , tof  :: y:b -> { to (from y) == y }
-    , fot  :: x:a -> { from (to x) == x }
-    }
-@-}
-data Iso a b = Iso {
-    to   :: a -> b
-  , from :: b -> a
-  , tof  :: b -> Proof
-  , fot  :: a -> Proof
-}
-\end{code}
-
-An isomorphism between types `a` and `b` is a pair of functions `to :: a -> b` and `from :: b -> a` that are mutually
-inverse to each other. We now claim that total order laws are preserved under `Iso`; this amounts to building up a
-`VerifiedOrd b`, given a `VerifiedOrd a` and an `Iso a b`.
-
-\begin{code}
-{-@ axiomatize leqFrom @-}
-leqFrom :: (a -> a -> Bool)
-        -> (b -> a)
-        -> (b -> b -> Bool)
-leqFrom leqa from x y = leqa (from x) (from y)
-
-{-@ leqFromRefl :: leqa:(a -> a -> Bool) -> leqaRefl:(x:a -> { Prop (leqa x x) })
-                -> from:(b -> a)
-                -> x:b -> { leqFrom leqa from x x }
-@-}
-leqFromRefl :: (a -> a -> Bool) -> (a -> Proof)
-            -> (b -> a)
-            -> b -> Proof
-leqFromRefl leqa leqaRefl from x =
-      leqFrom leqa from x x
-  ==. leqa (from x) (from x)
-  ==. True ? leqaRefl (from x)
-  *** QED
-
-{-@ leqFromAntisym :: leqa:(a -> a -> Bool)
-                   -> leqaAntisym:(x:a -> y:a -> { Prop (leqa x y) && Prop (leqa y x) ==> x == y })
-                   -> to:(a -> b) -> from:(b -> a) -> tof:(y:b -> { to (from y) == y })
-                   -> x:b -> y:b -> { leqFrom leqa from x y && leqFrom leqa from y x ==> x == y }
-@-}
-leqFromAntisym :: (Eq a, Eq b)
-               => (a -> a -> Bool) -> (a -> a -> Proof)
-               -> (a -> b) -> (b -> a) -> (b -> Proof)
-               -> b -> b -> Proof
-leqFromAntisym leqa leqaAntisym to from tof x y
-  =   (leqFrom leqa from x y && leqFrom leqa from y x)
-  ==. (leqa (from x) (from y) && leqa (from y) (from x))
-  ==. from x == from y ? leqaAntisym (from x) (from y)
-  ==. to (from x) == to (from y)
-  ==. x == to (from y) ? tof x
-  ==. x == y           ? tof y
-  *** QED
-
-{-@ leqFromTrans :: leqa:(a -> a -> Bool)
-                 -> leqaTrans:(x:a -> y:a -> z:a -> { Prop (leqa x y) && Prop (leqa y z) ==> Prop (leqa x z) })
-                 -> from:(b -> a)
-                 -> x:b -> y:b -> z:b
-                 -> { leqFrom leqa from x y && leqFrom leqa from y z ==> leqFrom leqa from x z }
-@-}
-leqFromTrans :: (a -> a -> Bool) -> (a -> a -> a -> Proof)
-             -> (b -> a)
-             -> b -> b -> b -> Proof
-leqFromTrans leqa leqaTrans from x y z =
-      (leqFrom leqa from x y && leqFrom leqa from y z)
-  ==. (leqa (from x) (from y) && leqa (from y) (from z))
-  ==. leqa (from x) (from z) ? leqaTrans (from x) (from y) (from z)
-  ==. leqFrom leqa from x z
-  *** QED
-
-{-@ leqFromTotal :: leqa:(a -> a -> Bool) -> leqaTotal:(x:a -> y:a -> { Prop (leqa x y) || Prop (leqa y x) })
-                 -> from:(b -> a) -> x:b -> y:b -> { leqFrom leqa from x y || leqFrom leqa from y x }
-@-}
-leqFromTotal :: (a -> a -> Bool) -> (a -> a -> Proof)
-             -> (b -> a) -> b -> b -> Proof
-leqFromTotal leqa leqaTotal from x y =
-      (leqFrom leqa from x y || leqFrom leqa from y x)
-  ==. (leqa (from x) (from y) || leqa (from y) (from x))
-  ==. True ? leqaTotal (from x) (from y)
-  ==. leqFrom leqa from y x
-  *** QED
-
-vordIso :: (Eq a, Eq b) => Iso a b -> VerifiedOrd a -> VerifiedOrd b
-vordIso (Iso to from tof fot) (VerifiedOrd leqa leqaRefl leqaAntisym leqaTrans leqaTotal) =
-  VerifiedOrd
-    (leqFrom leqa from)
-    (leqFromRefl leqa leqaRefl from)
-    (leqFromAntisym leqa leqaAntisym to from tof)
-    (leqFromTrans leqa leqaTrans from)
-    (leqFromTotal leqa leqaTotal from)
-\end{code}
-
-We can now write a `VerifiedOrd` for `Peano` by mapping it onto `type Nat = { n:Int | 0 <= n }`, which is easier to
-prove properties about because it's just an integer!
-
-\begin{code}
-{-@ type Nat = { n:Int | 0 <= n } @-}
-type Nat = Int
-
-{-@ axiomatize fromNat @-}
-{-@ fromNat :: Nat -> Peano @-}
-fromNat :: Nat -> Peano
-fromNat n
-  | n == 0 = Z
-  | otherwise = S (fromNat (n - 1))
-
-{-@ toFrom :: x:Nat -> { toNat (fromNat x) == x } @-}
-toFrom :: Nat -> Proof
-toFrom n
-  | n == 0 = toNat (fromNat 0) ==. toNat Z ==. 0 *** QED
-  | n > 0 = toNat (fromNat n)
-        ==. toNat (S (fromNat (n - 1)))
-        ==. 1 + toNat (fromNat (n - 1))
-        ==. 1 + (n - 1) ? toFrom (n - 1)
-        ==. n
-        *** QED
-
-{-@ fromTo :: x:Peano -> { fromNat (toNat x) == x } @-}
-fromTo :: Peano -> Proof
-fromTo Z = fromNat (toNat Z) ==. fromNat 0 ==. Z *** QED
-fromTo (S n) = fromNat (toNat (S n))
-           ==. fromNat (1 + toNat n)
-           ==. S (fromNat ((1 + toNat n) - 1))
-           ==. S (fromNat (toNat n))
-           ==. S n ? fromTo n
-           *** QED
-
-{-@ isoNatPeano :: Iso Nat Peano @-}
-isoNatPeano :: Iso Nat Peano
-isoNatPeano = Iso fromNat toNat fromTo toFrom
-
-vordNat :: VerifiedOrd Nat
-vordNat = VerifiedOrd leqInt leqIntRefl leqIntAntisym leqIntTrans leqIntTotal
-
-vordPeano :: VerifiedOrd Peano
-vordPeano = vordIso isoNatPeano vordNat
-\end{code}
-
-Similarly, we can break down compound datatypes into sums and products, just like what happens in `GHC.Generics`, and
-use the isomorphism to write down `VerifiedOrd` instances. We do however need to provide instances of `VerifiedOrd` for
-sums and products.
-
-\begin{code}
-vordProd :: VerifiedOrd a -> VerifiedOrd b -> VerifiedOrd (a, b)
-vordSum :: VerifiedOrd a -> VerifiedOrd b -> VerifiedOrd (Either a b)
-\end{code}
-
-\begin{comment}
-\begin{code}
-vordSum = undefined
-vordProd = undefined
-\end{code}
-\end{comment}
-
-Our [library](https://github.com/iu-parfunc/verified-instances) explores this idea to build some verified typeclasses,
-such as `VerifiedOrd` and `VerifiedMonoid`. We also provide combinators to build verified instances by using
-isomorphisms. Also, using a [reflection hack](https://www.schoolofhaskell.com/user/thoughtpolice/using-reflection), we
-can reify these "verified" terms to typeclass dictionaries at runtime, to call legacy functions which require `Ord`
-constraints and so on.
diff --git a/docs/blog/todo/LambdaEval.hs b/docs/blog/todo/LambdaEval.hs
deleted file mode 100644
--- a/docs/blog/todo/LambdaEval.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-module LambdaEval where
-
-import Data.List        (lookup)
-
-import Language.Haskell.Liquid.Prelude   
-
----------------------------------------------------------------------
------------------------ Datatype Definition -------------------------
----------------------------------------------------------------------
-
-type Bndr 
-  = Int
-
-data Expr 
-  = Lam Bndr Expr
-  | Var Bndr  
-  | App Expr Expr
-  | Const Int
-  | Plus Expr Expr
-  | Pair Expr Expr
-  | Fst Expr
-  | Snd Expr
-
-{-@
-measure isValue      :: Expr -> Prop
-isValue (Const i)    = true 
-isValue (Lam x e)    = true 
-isValue (Var x)      = false
-isValue (App e1 e2)  = false
-isValue (Plus e1 e2) = false 
-isValue (Fst e)      = false
-isValue (Snd e)      = false
-isValue (Pair e1 e2) = ((? (isValue(e1))) && (? (isValue(e2))))
-@-}
-
-{-@ type Value = {v: Expr | (? (isValue([v]))) } @-}
-
----------------------------------------------------------------------
--------------------------- The Evaluator ----------------------------
----------------------------------------------------------------------
-
-evalVar :: Bndr -> [(Bndr, Expr)] -> Expr
-evalVar x ((y,v):sto) 
-  | x == y
-  = v
-  | otherwise
-  = evalVar x sto
-
-evalVar x []      
-  = error "unbound variable"
-
-
-{-@ eval :: [(Bndr, Value)] -> Expr -> ([(Bndr, Value)], Value) @-}
-eval sto (Const i) 
-  = (sto, Const i)
-
-eval sto (Var x)  
-  = (sto, evalVar x sto) 
-
-eval sto (Plus e1 e2)
-  = let (_, e1') = eval sto e1
-        (_, e2') = eval sto e2
-    in case (e1, e2) of
-         (Const i1, Const i2) -> (sto, Const (i1 + i2))
-         _                    -> error "non-integer addition"
-
-eval sto (App e1 e2)
-  = let (_,    v2 ) = eval sto e2 
-        (sto1, e1') = eval sto e1
-    in case e1' of
-         (Lam x e) -> eval ((x, v2): sto1) e
-         _         -> error "non-function application"
-
-eval sto (Lam x e) 
-  = (sto, Lam x e)
-
-eval sto (Pair e1 e2)
-  = (sto, Pair v1 v2)
-  where (_, v1) = eval sto e1
-        (_, v2) = eval sto e2
-
-eval sto (Fst e)
-  = let (sto', e') = eval sto e in
-    case e' of
-      Pair v _ -> (sto', v)
-      _        -> error "non-tuple fst"
-
-eval sto (Snd e)
-  = let (sto', e') = eval sto e in
-    case e' of
-      Pair _ v -> (sto', v)
-      _        -> error "non-tuple snd"
-
----------------------------------------------------------------------
--------------------------- Value Checker ----------------------------
----------------------------------------------------------------------
-
-{-@ assert check :: {v: Expr | (? (isValue([v]))) } -> Bool @-}
-check (Const _)    = True
-check (Lam _ _)    = True
-check (Var _)      = liquidAssertB False
-check (App _ _)    = liquidAssertB False
-check (Pair v1 v2) = check v1 && check v2
-check (Fst _)      = liquidAssertB False
-check (Snd _)      = liquidAssertB False
-check (Plus _ _)   = liquidAssertB False
-
----------------------------------------------------------------------
--------------------------- Unit Tests -------------------------------
----------------------------------------------------------------------
-
-tests =
-  let (f,g,x) = (0,1,2) 
-      e1      = Lam x (Var x)
-      e2      = App e1 e1 
-      e3      = Lam f (Lam g (Lam x (App (Var f)  (App (Var g) (Var x)))))
-      e4      = Const 10
-      e5      = App e1 e4
-      e6      = Lam x (Plus (Var x) e4)
-      e7      = App (App e3 e6) e6
-      e8      = Pair (App e7 (Const 0)) (App e7 (Const 100))
-      e9      = Fst e8
-      e10     = Snd e9
-      vs      = map (snd . eval []) [e1, e2, e3, e4, e5, e6, e7, e8, e9, e10]
-  in map check vs
diff --git a/docs/blog/todo/Termination.hs b/docs/blog/todo/Termination.hs
deleted file mode 100644
--- a/docs/blog/todo/Termination.hs
+++ /dev/null
@@ -1,29 +0,0 @@
-{-# LANGUAGE BangPatterns #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module Term where
-
-import Data.Vector.Algorithms.Common (shiftRI)
-import Language.Haskell.Liquid.Prelude (choose)
-
-
-{-@ loop :: twit:Nat -> l:Nat -> u:{v:Nat | v = l + twit} -> Int @-}
-loop :: Int -> Int -> Int -> Int
-loop twit l u 
-   | u <= l    = l
-   | otherwise = case compare (choose 0) 0 of
-                   LT -> loop (u - (k + 1)) (k+1) u 
-                   EQ -> k
-                   GT -> loop (k - l) l     k 
-  where k = (u + l) `shiftRI` 1
-
-{-@ loop1 :: l:Nat -> u:{v:Nat | l <= v} -> Int / [u + l] @-}
-loop1 :: Int -> Int -> Int
-loop1 l u 
-   | u <= l    = l
-   | otherwise = case compare (choose 0) 0 of
-                   LT -> loop1 (k+1) u 
-                   EQ -> k
-                   GT -> loop1 l     k 
-  where k = (u + l) `shiftRI` 1
-
diff --git a/docs/blog/todo/TextBug.lhs b/docs/blog/todo/TextBug.lhs
deleted file mode 100644
--- a/docs/blog/todo/TextBug.lhs
+++ /dev/null
@@ -1,345 +0,0 @@
----
-layout: post
-title: "Text Bug"
-date: 2014-03-01
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextBug.hs
----
-
-For our last post on `text`, we return to the topic of building a new `Text`
-value, i.e. proving the safety of write operations.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextBug where
-
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Foreign.C.Types (CSize)
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ measure isUnknown :: Size -> Prop
-    isUnknown (Exact n) = false
-    isUnknown (Max   n) = false
-    isUnknown (Unknown) = true
-  @-}
-{-@ measure getSize :: Size -> Int
-    getSize (Exact n) = n
-    getSize (Max   n) = n
-  @-}
-
-{-@ invariant {v:Size | (getSize v) >= 0} @-}
-
-data Size = Exact {-# UNPACK #-} !Int -- ^ Exact size.
-          | Max   {-# UNPACK #-} !Int -- ^ Upper bound on size.
-          | Unknown                   -- ^ Unknown size.
-            deriving (Eq, Show)
-
-{-@ upperBound :: k:Nat -> s:Size -> {v:Nat | v = ((isUnknown s) ? k : (getSize s))} @-}
-upperBound :: Int -> Size -> Int
-upperBound _ (Exact n) = n
-upperBound _ (Max   n) = n
-upperBound k _         = k
-
-data Step s a = Done
-              | Skip !s
-              | Yield !a !s
-
-data Stream a =
-    forall s. Stream
-    (s -> Step s a)             -- stepper function
-    !s                          -- current state
-    !Size                       -- size hint
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidI MA = {v:Nat | v <  (malen MA)} @-}
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = liquidError "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-
-{-@ copyM :: dest:MArray s 
-          -> didx:MAValidO dest
-          -> src:MArray s 
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (malen dest))
-                    && ((sidx + v) <= (malen src)))}
-          -> ST s ()
-  @-}
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    liquidAssert (sidx + count <= maLen src) .
-    liquidAssert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (arr :: Array)
-                            (off :: TValidO arr)
-                            (len :: TValidL off arr)
-  @-}
-
-{-@ measure tarr :: Text -> Array
-    tarr (Text a o l) = a
-  @-}
-
-{-@ measure toff :: Text -> Int
-    toff (Text a o l) = o
-  @-}
-
-{-@ measure tlen :: Text -> Int
-    tlen (Text a o l) = l
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- From TextRead
---------------------------------------------------------------------------------
-
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ measure tlength :: Text -> Int @-}
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
---------------------------------------------------------------------------------
---- From TextWrite
---------------------------------------------------------------------------------
-
-{-@ qualif Ord(v:int, i:int, x:Char)
-        : ((((ord x) <  65536) => (v = i))
-        && (((ord x) >= 65536) => (v = (i + 1))))
-  @-}
-
-{-@ predicate Room C MA I = (((One C) => (RoomN 1 MA I))
-                          && ((Two C) => (RoomN 2 MA I)))
-  @-}
-{-@ predicate RoomN N MA I = (I+N <= (malen MA)) @-}
-
-{-@ measure ord :: Char -> Int @-}
-{-@ ord :: c:Char -> {v:Int | v = (ord c)} @-}
-{-@ predicate One C = ((ord C) <  65536) @-}
-{-@ predicate Two C = ((ord C) >= 65536) @-}
-
-{-@ writeChar :: ma:MArray s -> i:Nat -> {v:Char | (Room v ma i)}
-              -> ST s {v:Nat | (RoomN v ma i)}
-  @-}
-writeChar :: MArray s -> Int -> Char -> ST s Int
-writeChar marr i c
-    | n < 0x10000 = do
-        unsafeWrite marr i (fromIntegral n)
-        return 1
-    | otherwise = do
-        unsafeWrite marr i lo
-        unsafeWrite marr (i+1) hi
-        return 2
-    where n = ord c
-          m = n - 0x10000
-          lo = fromIntegral $ (m `shiftR` 10) + 0xD800
-          hi = fromIntegral $ (m .&. 0x3FF) + 0xDC00
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ qualif MALenLE(v:int, a:MArray s): v <= (malen a) @-}
-{-@ qualif ALenLE(v:int, a:Array): v <= (alen a) @-}
-
-\end{code}
-
-</div>
-
-Let's take a look at `mapAccumL`, which combines a map and a fold
-over a `Stream` and bundles the result of the map into a new `Text`.
-Again, we'll want to focus our attention on the `Yield` case of the
-inner loop.
-
-\begin{code}
-mapAccumL f z0 (Stream next0 s0 len) =
-  (nz, Text na 0 nl)
- where
-  mlen = upperBound 4 len
-  (na,(nz,nl)) = runST $ do
-       (marr,x) <- (new mlen >>= \arr ->
-                    outer arr mlen z0 s0 0)
-       arr      <- unsafeFreeze marr
-       return (arr,x)
-  outer arr top = loop
-   where
-    loop !z !s !i =
-      case next0 s of
-        Done          -> return (arr, (z,i))
-        Skip s'       -> loop z s' i
-        Yield x s'
-          | j >= top  -> do
-            let top' = (top + 1) `shiftL` 1
-            arr' <- new top'
-            copyM arr' 0 arr 0 top
-            outer arr' top' z s i
-          | otherwise -> do
-            let (z',c) = f z x
-            d <- writeChar arr i c
-            loop z' s' (i+d)
-          where j | ord x < 0x10000 = i
-                  | otherwise       = i + 1
-\end{code}
-
-If you recall `unstream` from last time, you'll notice that this loop body
-looks almost identical to the one found in `unstream`, but LiquidHaskell has
-flagged the `writeChar` call as unsafe! What's going on here?
-
-Let's take a look at `j`, recalling that it carried a crucial part of the safety
-\begin{code} proof last time, and see what LiquidHaskell was able to infer.
-{v:Int | ((ord x >= 65536) => (v == i+1))
-      && ((ord x <  65536) => (v == i))}
-\end{code}
-
-Well that's not very useful at all! LiquidHaskell can prove that it's safe to
-write `x` but here we are trying to write `c` into the array. This is actually
-a *good* thing though, because `c` is the result of calling an arbitrary
-function `f` on `x`! We haven't constrained `f` in any way, so it could easily
-return a character above `U+10000` given any input.
-
-So `mapAccumL` is actually *unsafe*, and our first wild bug caught by
-LiquidHaskell! The fix is luckily easy, we simply have to lift the
-`let (z',c) = f z x` binder into the `where` clause, and change `j` to
-depend on `ord c` instead.
-
-\begin{code}
-mapAccumL' f z0 (Stream next0 s0 len) =
-  (nz, Text na 0 nl)
- where
-  mlen = upperBound 4 len
-  (na,(nz,nl)) = runST $ do
-       (marr,x) <- (new mlen >>= \arr ->
-                    outer arr mlen z0 s0 0)
-       arr      <- unsafeFreeze marr
-       return (arr,x)
-  outer arr top = loop
-   where
-    loop !z !s !i =
-      case next0 s of
-        Done          -> return (arr, (z,i))
-        Skip s'       -> loop z s' i
-        Yield x s'
-          | j >= top  -> do
-            let top' = (top + 1) `shiftL` 1
-            arr' <- new top'
-            copyM arr' 0 arr 0 top
-            outer arr' top' z s i
-          | otherwise -> do
-            d <- writeChar arr i c
-            loop z' s' (i+d)
-          where (z',c) = f z x
-                j | ord c < 0x10000 = i
-                  | otherwise       = i + 1
-\end{code}
-
-LiquidHaskell happily accepts our revised `mapAccumL`, as did the `text`
-maintainers.
-
-We hope you've enjoyed this whirlwind tour of using LiquidHaskell to verify
-production code, we have many more examples in the `benchmarks` folder of
-our GitHub repository for the intrepid reader.
diff --git a/docs/blog/todo/TextInternal.lhs b/docs/blog/todo/TextInternal.lhs
deleted file mode 100644
--- a/docs/blog/todo/TextInternal.lhs
+++ /dev/null
@@ -1,384 +0,0 @@
----
-layout: post
-title: "Text Internals"
-date: 2014-02-09
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextInternal.hs
----
-
-So far we have mostly discussed LiquidHaskell in the context of
-recursive data structures like lists, but there comes a time in 
-many programs when you have to put down the list and pick up an 
-array for the sake of performance. 
-In this series we're going to examine the `text` library, which 
-does exactly this in addition to having extensive Unicode support.
-
-`text` is a popular library for efficient text processing. 
-It provides the high-level API haskellers have come to expect while 
-using stream fusion and byte arrays under the hood to guarantee high
-performance. 
-
-The thing that makes `text` stand out as an interesting target for 
-LiquidHaskell, however, is its use of Unicode. 
-Specifically, `text` uses UTF-16 as its internal encoding, where 
-each character is represented with either two or four bytes. 
-We'll see later on how this encoding presents a challenge for 
-verifying memory-safety, but first let us look at how a `Text` 
-is represented.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextInternal where
-
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Data.Bits (shiftR, xor, (.&.))
-import Foreign.C.Types (CSize)
-import GHC.Base (Int(..), ByteArray#, MutableByteArray#, newByteArray#,
-                 writeWord16Array#, indexWord16Array#, unsafeCoerce#, ord,
-                 iShiftL#)
-import GHC.ST (ST(..), runST)
-import GHC.Word (Word16(..))
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-new          :: forall s. Int -> ST s (MArray s)
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeFreeze :: MArray s -> ST s Array
-unsafeIndex  :: Array -> Int -> Word16
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-
---------------------------------------------------------------------------------
---- Helper Code
---------------------------------------------------------------------------------
-{-@ predicate RoomN N MA I = (I+N <= (malen MA)) @-}
-
-{-@ writeChar :: ma:MArray s -> i:{Nat | i < (malen ma) - 1} -> Char
-              -> ST s {v:Nat | (RoomN v ma i)}
-  @-}
-writeChar :: MArray s -> Int -> Char -> ST s Int
-writeChar marr i c
-    | n < 0x10000 = do
-        unsafeWrite marr i (fromIntegral n)
-        return 1
-    | otherwise = do
-        unsafeWrite marr i lo
-        unsafeWrite marr (i+1) hi
-        return 2
-    where n = ord c
-          m = n - 0x10000
-          lo = fromIntegral $ (m `shiftR` 10) + 0xD800
-          hi = fromIntegral $ (m .&. 0x3FF) + 0xDC00
-
-
-{-@ measure isUnknown :: Size -> Prop
-    isUnknown (Exact n) = false
-    isUnknown (Max   n) = false
-    isUnknown (Unknown) = true
-  @-}
-{-@ measure getSize :: Size -> Int
-    getSize (Exact n) = n
-    getSize (Max   n) = n
-  @-}
-
-{-@ invariant {v:Size | (getSize v) >= 0} @-}
-
-data Size = Exact {-# UNPACK #-} !Int -- ^ Exact size.
-          | Max   {-# UNPACK #-} !Int -- ^ Upper bound on size.
-          | Unknown                   -- ^ Unknown size.
-            deriving (Eq, Show)
-
-{-@ upperBound :: k:Nat -> s:Size -> {v:Nat | v = ((isUnknown s) ? k : (getSize s))} @-}
-upperBound :: Int -> Size -> Int
-upperBound _ (Exact n) = n
-upperBound _ (Max   n) = n
-upperBound k _         = k
-
-data Step s a = Done
-              | Skip !s
-              | Yield !a !s
-
-data Stream a =
-    forall s. Stream
-    (s -> Step s a)             -- stepper function
-    !s                          -- current state
-    !Size                       -- size hint
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
-\end{code}
-
-</div>
-
-`text` splits the reading and writing array operations between two
-types of arrays, immutable `Array`s and mutable `MArray`s. This leads to
-the following general lifecycle:
-
-![The lifecycle of a `Text`](/images/text-lifecycle.png)
-
-
-\begin{code}
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-\end{code}
-
-Both types carry around with them the number of `Word16`s they can
-hold (this is actually only true when you compile with asserts turned
-on, but we use this to ease the verification process).
-
-The main three array operations we care about are: 
-
-1. **writing** into an `MArray`, 
-2. **reading** from an `Array`, and 
-3. **freezing** an `MArray` into an `Array`. 
-
-But first, let's see how one creates an `MArray`.
-
-\begin{code}
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-\end{code}
-
-`new n` is an `ST` action that produces an `MArray s` with `n` slots,
-denoted by the type alias `MArrayN s n`. Note that we are not talking
-about bytes here, `text` deals with `Word16`s internally and as such
-we actualy allocate `2*n` bytes.  While this may seem like a lot of
-code to just create an array, the verification process here is quite
-simple. LiquidHaskell simply recognizes that the `n` used to construct
-the returned array (`MArray marr# n`) is the same `n` passed to
-`new`. It should be noted that we're abstracting away some detail here
-with respect to the underlying `MutableByteArray#`, specifically we're
-making the assumption that any *unsafe* operation will be caught and
-dealt with before the `MutableByteArray#` is touched.
-
-Once we have an `MArray` in hand, we'll want to be able to write our
-data into it. A `Nat` is a valid index into an `MArray` `ma` if it is
-less than the number of slots, for which we have another type alias
-`MAValidI ma`. `text` includes run-time assertions that check this
-property, but LiquidHaskell can statically prove the assertions will
-always pass.
-
-\begin{code}
-{-@ type MAValidI MA = {v:Nat | v < (malen MA)} @-}
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = liquidError "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-\end{code}
-
-So now we can write individual `Word16`s into an array, but maybe we
-have a whole bunch of text we want to dump into the array. Remember,
-`text` is supposed to be fast!
-C has `memcpy` for cases like this but it's notoriously unsafe; with
-the right type however, we can regain safety. `text` provides a wrapper around
-`memcpy` to copy `n` elements from one `MArray` to another.
-
-\begin{code}
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-{-@ copyM :: dest:MArray s
-          -> didx:MAValidO dest
-          -> src:MArray s 
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (malen dest))
-                    && ((sidx + v) <= (malen src)))}
-          -> ST s ()
-  @-}
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    liquidAssert (sidx + count <= maLen src) .
-    liquidAssert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-\end{code}
-
-`copyM` requires two `MArray`s and valid offsets into each -- note 
-that a valid offset is **not** necessarily a valid *index*, it may 
-be one element out-of-bounds -- and a `count` of elements to copy.
-The `count` must represent a valid region in each `MArray`, in 
-other words `offset + count <= length` must hold for each array. 
-`memcpyM` is an FFI function writen in C, which we don't currently
-support, so we simply leave it `undefined`.
-
-Before we can package up our `MArray` into a `Text`, we need to
-*freeze* it, preventing any further mutation. The key property here is
-of course that the frozen `Array` should have the same length as the
-`MArray`.
-
-\begin{code}
-{-@ type ArrayN N = {v:Array | (alen v) = N} @-}
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-\end{code}
-
-Again, LiquidHaskell is happy to prove our specification as we simply
-copy the length parameter `maLen` over into the `Array`.
-
-Finally, we will eventually want to read a value out of the
-`Array`. As with `unsafeWrite` we require a valid index into the
-`Array`, which we denote using the `AValidI` alias.
-
-\begin{code}
-{-@ type AValidI A = {v:Nat | v < (alen A)} @-}
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-\end{code}
-
-As before, LiquidHaskell can easily prove that the run-time assertions
-will never fail.
-
-
-Now we can finally define the core datatype of the `text` package! 
-A `Text` value consists of an *array*, an *offset*, and a *length*. 
-The offset and length are `Nat`s satisfying two properties: 
-
-1. `off <= alen arr`, and 
-2. `off + len <= alen arr`
-
-These invariants ensure that any *index* we pick between `off` and
-`off + len` will be a valid index into `arr`. If you're not quite
-convinced, consider the following `Text`s.
-
-![Multiple valid `Text` configurations, all using an `Array` with 10 slots. The valid slots are shaded. Note that the key invariant is that `off + len <= alen`.](/images/text-layout.png)
-
-\begin{code}
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (arr :: Array)
-                            (off :: TValidO arr)
-                            (len :: TValidL off arr)
-  @-}
-
-{-@ measure tarr :: Text -> Array
-    tarr (Text a o l) = a
-  @-}
-
-{-@ measure toff :: Text -> Int
-    toff (Text a o l) = o
-  @-}
-
-{-@ measure tlen :: Text -> Int
-    tlen (Text a o l) = l
-  @-}
-\end{code}
-
-The liquid-type for `Text` makes use of the following two type-aliases to
-express the core invariant.
-
-\begin{code}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-\end{code}
-
-Before we go, let's take a quick look at a function that combines
-`MArray`s, `Array`s, and `Text`s. `unstream` is a major workhorse of
-the `text` library. It transforms a `Stream` of `Char`s into a `Text`,
-and enables GHC use a technique called *stream fusion* to combine
-multiple loops over a sequence into a single loop.
-
-\begin{code}
-unstream :: Stream Char -> Text
-unstream (Stream next0 s0 len) = runST $ do
-  let mlen = upperBound 4 len
-  arr0 <- new mlen
-  let outer arr top = loop
-       where
-        loop !s !i =
-            case next0 s of
-              Done          -> do
-                arr' <- unsafeFreeze arr
-                return $! Text arr' 0 i
-              Skip s'       -> loop s' i
-              Yield x s'
-                | j >= top  -> do
-                  let top' = (top + 1) `shiftL` 1
-                  arr' <- new top'
-                  copyM arr' 0 arr 0 top
-                  outer arr' top' s i
-                | otherwise -> do
-                  d <- writeChar arr i x
-                  loop s' (i+d)
-                where j | ord x < 0x10000 = i
-                        | otherwise       = i + 1
-  outer arr0 mlen s0 0
-\end{code}
-
-`unstream` repeatedly writes the characters coming out of the `Stream`
-into the `arr`, until it runs out of room. Then it has to allocate a
-new, larger `MArray` and copy everything into the new array before
-continuing. Note that LiquidHaskell has successfully inferred that
-`arr'` is longer than `arr` and that `top` is a valid offset into
-both, thus proving that the call to `copyM` is safe! Unfortunately for
-us, however, the `writeChar` call is flagged as *unsafe*.. Astute
-readers will notice that `writeChar` (whose implementation we haven't
-yet seen) has a slightly odd type, it requires that the index `i` be
-less than `malen arr - 1`. This is indeed odd and, I should add, not
-the final type, but it is a safe approximation because not all `Char`s
-are created equal. Depending on your encoding, some won't fit into a
-single `Word16`, so we may need extra room to write!
-
-Stay tuned, next time we'll dig into how `text` uses Unicode to
-represent `Char`s internally.
diff --git a/docs/blog/todo/TextRead.lhs b/docs/blog/todo/TextRead.lhs
deleted file mode 100644
--- a/docs/blog/todo/TextRead.lhs
+++ /dev/null
@@ -1,357 +0,0 @@
----
-layout: post
-title: "Text Read"
-date: 2014-02-16
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextRead.hs
----
-
-Welcome back! Last time we left off on a bit of a cliffhanger with the
-`unstream` example. Remember, the issue we found was that some `Char`s
-can't fit into a single `Word16`, so the safety of a write depends not
-only on the *index*, but also on the *value* being written! Before we
-can resolve this issue with `unstream` we'll have to learn about
-UTF-16, so let's take a short detour and look at how one *consumes* a
-`Text`.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextRead where
-
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (arr :: Array)
-                            (off :: TValidO arr)
-                            (len :: TValidL off arr)
-  @-}
-
-{-@ measure tarr :: Text -> Array
-    tarr (Text a o l) = a
-  @-}
-
-{-@ measure toff :: Text -> Int
-    toff (Text a o l) = o
-  @-}
-
-{-@ measure tlen :: Text -> Int
-    tlen (Text a o l) = l
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
-{-@ axiom_lead_surr :: x:Word16 -> a:Array -> o:Nat -> l:Nat -> i:Nat
-                  -> {v:Bool | ((Prop v) <=> (if (55296 <= x && x <= 56319)
-                                              then (SpanChar 2 a o l i)
-                                              else (SpanChar 1 a o l i)))}
-  @-}
-axiom_lead_surr :: Word16 -> Array -> Int -> Int -> Int -> Bool
-axiom_lead_surr = undefined
-
-{-@ empty :: {v:Text | (tlen v) = 0} @-}
-empty :: Text
-empty = Text arrEmpty 0 0
-  where
-    {-@ arrEmpty :: (ArrayN {0}) @-}
-    arrEmpty = runST $ new 0 >>= unsafeFreeze
-
-unsafeChr :: Word16 -> Char
-unsafeChr (W16# w#) = C# (chr# (word2Int# w#))
-
-chr2 :: Word16 -> Word16 -> Char
-chr2 (W16# a#) (W16# b#) = C# (chr# (upper# +# lower# +# 0x10000#))
-    where
-      !x# = word2Int# a#
-      !y# = word2Int# b#
-      !upper# = uncheckedIShiftL# (x# -# 0xD800#) 10#
-      !lower# = y# -# 0xDC00#
-
-{-@ qualif Min(v:int, t:Text, i:int):
-      (if ((tlength t) < i)
-       then ((numchars (tarr t) (toff t) v) = (tlength t))
-       else ((numchars (tarr t) (toff t) v) = i))
-  @-}
-
-{-@ qualif NumChars(v:int, t:Text, i:int): v = (numchars (tarr t) (toff t) i) @-}
-
-{-@ qualif TLengthLE(v:int, t:Text): v <= (tlength t) @-}
-
-\end{code}
-
-</div>
-
-Let's begin with a simple example, `unsafeHead`.
-
-\begin{code}
-{-@ type TextNE = {v:Text | (tlen v) > 0} @-}
-
-{-@ unsafeHead :: TextNE -> Char @-}
-unsafeHead :: Text -> Char
-unsafeHead (Text arr off _len)
-    | m < 0xD800 || m > 0xDBFF = unsafeChr m
-    | otherwise                = chr2 m n
-    where m = unsafeIndex arr off
-          n = unsafeIndex arr (off+1)
-\end{code}
-
-LiquidHaskell can prove the first `unsafeIndex` is safe because the
-precondition states that the `Text` must not be empty, i.e. `_len > 0`
-must hold. Combine this with the core `Text` invariant that
-`off + _len <= alen arr` and we get that `off < alen arr`, which satisfies
-the precondition for `unsafeIndex`.
-
-However, the same calculation *fails* for the second index because we
-can't prove that `off + 1 < alen arr`. The solution is going to
-require some understanding of UTF-16, so let's take a brief detour.
-
-The UTF-16 standard represents all code points below `U+10000` with a
-single 16-bit word; all others are split into two 16-bit words, known
-as a *surrogate pair*. The first word, or *lead*, is guaranteed to be
-in the range `[0xD800, 0xDBFF]` and the second, or *trail*, is
-guaranteed to be in the range `[0xDC00, 0xDFFF]`.
-
-Armed with this knowledge of UTF-16 we can return to
-`unsafeHead`. Note the case-split on `m`, which determines whether `m`
-is a lead surrogate. If `m` is a lead surrogate then we know there
-must be a trail surrogate at `off+1`; we can define a specialized
-version of `unsafeIndex` that encodes this domain knowledge.
-
-\begin{code}
-{-@ unsafeIndexF :: a:Array -> o:AValidO a -> l:AValidL o a
-                 -> i:{v:Nat | (o <= v && v < (o + l))}
-                 -> {v:Word16 | (if (55296 <= v && v <= 56319)
-                                 then (SpanChar 2 a o l i)
-                                 else (SpanChar 1 a o l i))}
-  @-}
-unsafeIndexF :: Array -> Int -> Int -> Int -> Word16
-unsafeIndexF a o l i = let x = unsafeIndex a i
-                       in liquidAssume (axiom_lead_surr x a o l i) x
-\end{code}
-
-Our variant `unsafeIndexF` (F as in "forward") takes an array, an
-offset, and a length (which together must form a valid `Text`); a
-valid index into the `Text`; and returns a `Word16` with an
-interesting type. The best way to read this type would be "if `v` is
-in the range `[0xD800, 0xDBFF]`, then the character that starts at
-index `i` in the array `a` spans two slots, otherwise it only spans
-one slot." Intuitively, we know what it means for a character to span
-`n` slots, but LiquidHaskell needs to know three things:
-
-1. `a[o:i+n]` contains one more character than `a[o:i]` (borrowing
-   Python's wonderful slicing syntax)
-2. `a[o:i+n]` contains no more characters than `a[o:l]`
-3. `i-o+n <= l`
-
-2 and 3 encode the well-formedness of a `Text` value, i.e. `i+1`
-*must* be a valid index if a lead surrogate is at index `i`.
-
-We can encode these properties in the refinement logic as follows.
-
-\begin{code}
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ predicate SpanChar N A O L I =
-      (((numchars (A) (O) ((I-O)+N)) = (1 + (numchars (A) (O) (I-O))))
-    && ((numchars (A) (O) ((I-O)+N)) <= (numchars A O L))
-    && (((I-O)+N) <= L))
-  @-}
-\end{code}
-
-The `numchars` measure takes an array, an offset, and a length
-(e.g. the `arr`, `off`, and `len` fields of a `Text`) and denotes the
-number of characters contained in the `length` slots beginning at
-`offset`. Since we can't compute this in the refinement logic, we
-leave the measure abstract. We can, however, provide LiquidHaskell
-with a few invariants about the behavior of `numchars`, specifically
-that (1) `numchars` always returns a `Nat`, (2) there are no
-characters contained in a empty span, and (3) there are at most as
-many characters as words in a `Text`. We encode these using a special
-`invariant` annotation.
-
-\begin{code}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) (tlen v)) >= 0}        @-}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) 0)         = 0}        @-}
-{-@ invariant {v:Text | (numchars (tarr v) (toff v) (tlen v)) <= (tlen v)} @-}
-\end{code}
-
-Finally returning to `unsafeHead`, we can use `unsafeIndexF` to
-strengthen the inferred type for `m`. LiquidHaskell can now prove that
-the second `unsafeIndex` is in fact safe, because it is only demanded
-if `m` is a lead surrogate.
-
-\begin{code}
-{-@ unsafeHead' :: TextNE -> Char @-}
-unsafeHead' :: Text -> Char
-unsafeHead' (Text arr off _len)
-    | m < 0xD800 || m > 0xDBFF = unsafeChr m
-    | otherwise                = chr2 m n
-    where m = unsafeIndexF arr off _len off
-          {-@ LAZYVAR n @-}
-          n = unsafeIndex arr (off+1)
-\end{code}
-
-The `LAZYVAR` annotation is currently required because LiquidHaskell
-doesn't know that `n` will only be demanded in one branch; one can
-imagine a transformation that would push the `where` bindings inward
-to the use-site, which would alleviate this issue.
-
-Before signing off, let's take a look at a slightly more interesting
-function, `take`.
-
-\begin{code}
-{-@ take :: n:Nat -> t:Text -> {v:Text | (Min (tlength v) (tlength t) n)} @-}
-take :: Int -> Text -> Text
-take n t@(Text arr off len)
-    | n <= 0    = empty
-    | n >= len  = t
-    | otherwise = Text arr off (loop 0 0)
-  where
-     loop !i !cnt
-          | i >= len || cnt >= n = i
-          | otherwise            = let d = iter_ t i
-                                   in loop (i+d) (cnt+1)
-\end{code}
-
-`take` gets a `Nat` and a `Text`, and returns a `Text` that contains
-the first `n` characters of `t`. That is, unless `n >= tlength t`, in
-which case it just returns `t`.
-
-`tlength` is a simple wrapper around `numchars`.
-
-\begin{code}
-{-@ measure tlength :: Text -> Int
-    tlength (Text a o l) = (numchars a o l)
-  @-}
-\end{code}
-
-The bulk of the work is done by the
-inner `loop`, which has to track the current index `i` and the number
-of characters we have seen, `cnt`. `loop` uses an auxiliary function
-`iter_` to determine the *width* of the character that starts at `i`,
-bumps `cnt`, and recursively calls itself at `i+d` until it either
-reaches the end of `t` or sees `n` characters, returning the final
-index.
-
-The `iter_` function is quite simple, it just determines whether the
-word at index `i` is a lead surrogate, and returns the appropriate
-span.
-
-\begin{code}
-{-@ predicate SpanCharT N T I =
-      (SpanChar N (tarr T) (toff T) (tlen T) ((toff T)+I))
-  @-}
-
-{-@ iter_ :: t:Text -> i:TValidI t
-          -> {v:Nat | (SpanCharT v t i)}
-  @-}
-iter_ :: Text -> Int -> Int
-iter_ (Text arr off len) i
-    | m < 0xD800 || m > 0xDBFF = 1
-    | otherwise                = 2
- where m = unsafeIndexF arr off len (off+i)
-\end{code}
-
-Again, we use `unsafeIndexF` to learn more about the structure of `t`
-by observing a small piece of it. It's also worth noting that we've
-encoded all of the domain knowledge we need into a single function,
-which has the benefit of letting us focus our attention on one type
-when we try to ensure that we've encoded it correctly.
-
-Next time, we'll continue our exploration of `text` and see how to
-construct a `Text` while ensuring the absence of out-of-bounds writes.
diff --git a/docs/blog/todo/TextWrite.lhs b/docs/blog/todo/TextWrite.lhs
deleted file mode 100644
--- a/docs/blog/todo/TextWrite.lhs
+++ /dev/null
@@ -1,335 +0,0 @@
----
-layout: post
-title: "Text Write"
-date: 2014-02-23
-comments: true
-external-url:
-author: Eric Seidel
-published: false
-categories: benchmarks, text
-demo: TextWrite.hs
----
-
-Last time, we showed how to reason about Unicode and a variable-width
-encoding of `Char`s when consuming a `Text` value, today we'll look at
-the same issue from the perspective of *building* a `Text`.
-
-<!-- more -->
-
-<div class="hidden">
-
-\begin{code}
-{-# LANGUAGE BangPatterns, CPP, MagicHash, Rank2Types,
-    RecordWildCards, UnboxedTuples, ExistentialQuantification #-}
-{-@ LIQUID "--no-termination" @-}
-module TextWrite where
-
-import Control.Monad.ST.Unsafe (unsafeIOToST)
-import Foreign.C.Types (CSize)
-import GHC.Base hiding (unsafeChr)
-import GHC.ST
-import GHC.Word (Word16(..))
-import Data.Bits hiding (shiftL)
-import Data.Word
-
-import Language.Haskell.Liquid.Prelude
-
---------------------------------------------------------------------------------
---- From TextInternal
---------------------------------------------------------------------------------
-
-{-@ shiftL :: i:Nat -> n:Nat -> {v:Nat | ((n = 1) => (v = (i * 2)))} @-}
-shiftL :: Int -> Int -> Int
-shiftL = undefined -- (I# x#) (I# i#) = I# (x# `iShiftL#` i#)
-
-{-@ measure isUnknown :: Size -> Prop
-    isUnknown (Exact n) = false
-    isUnknown (Max   n) = false
-    isUnknown (Unknown) = true
-  @-}
-{-@ measure getSize :: Size -> Int
-    getSize (Exact n) = n
-    getSize (Max   n) = n
-  @-}
-
-{-@ invariant {v:Size | (getSize v) >= 0} @-}
-
-data Size = Exact {-# UNPACK #-} !Int -- ^ Exact size.
-          | Max   {-# UNPACK #-} !Int -- ^ Upper bound on size.
-          | Unknown                   -- ^ Unknown size.
-            deriving (Eq, Show)
-
-{-@ upperBound :: k:Nat -> s:Size -> {v:Nat | v = ((isUnknown s) ? k : (getSize s))} @-}
-upperBound :: Int -> Size -> Int
-upperBound _ (Exact n) = n
-upperBound _ (Max   n) = n
-upperBound k _         = k
-
-data Step s a = Done
-              | Skip !s
-              | Yield !a !s
-
-data Stream a =
-    forall s. Stream
-    (s -> Step s a)             -- stepper function
-    !s                          -- current state
-    !Size                       -- size hint
-
-{-@ data Array = Array { aBA  :: ByteArray#
-                       , aLen :: Nat 
-                       } 
-  @-}
-
-data Array = Array {
-    aBA  :: ByteArray#
-  , aLen :: !Int
-  }
-
-{-@ measure alen     :: Array -> Int
-    alen (Array a n) = n
-  @-}
-
-{-@ aLen :: a:Array -> {v:Nat | v = (alen a)}  @-}
-
-{-@ type ArrayN  N   = {v:Array | (alen v) = N} @-}
-
-{-@ type AValidI A   = {v:Nat | v     <  (alen A)} @-}
-{-@ type AValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type AValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-{-@ data MArray s = MArray { maBA  :: MutableByteArray# s
-                           , maLen :: Nat } @-}
-
-data MArray s = MArray {
-    maBA  :: MutableByteArray# s
-  , maLen :: !Int
-  }
-
-{-@ measure malen :: MArray s -> Int
-    malen (MArray a n) = n
-  @-}
-
-{-@ maLen :: a:MArray s -> {v:Nat | v = (malen a)}  @-}
-
-{-@ type MArrayN s N = {v:MArray s | (malen v) = N} @-}
-
-{-@ type MAValidI MA = {v:Nat | v <  (malen MA)} @-}
-{-@ type MAValidO MA = {v:Nat | v <= (malen MA)} @-}
-
-{-@ new :: forall s. n:Nat -> ST s (MArrayN s n) @-}
-new          :: forall s. Int -> ST s (MArray s)
-new n
-  | n < 0 || n .&. highBit /= 0 = error $ "new: size overflow"
-  | otherwise = ST $ \s1# ->
-       case newByteArray# len# s1# of
-         (# s2#, marr# #) -> (# s2#, MArray marr# n #)
-  where !(I# len#) = bytesInArray n
-        highBit    = maxBound `xor` (maxBound `shiftR` 1)
-        bytesInArray n = n `shiftL` 1
-
-{-@ unsafeWrite :: ma:MArray s -> MAValidI ma -> Word16 -> ST s () @-}
-unsafeWrite  :: MArray s -> Int -> Word16 -> ST s ()
-unsafeWrite MArray{..} i@(I# i#) (W16# e#)
-  | i < 0 || i >= maLen = liquidError "out of bounds"
-  | otherwise = ST $ \s1# ->
-      case writeWord16Array# maBA i# e# s1# of
-        s2# -> (# s2#, () #)
-
-{-@ copyM :: dest:MArray s 
-          -> didx:MAValidO dest
-          -> src:MArray s 
-          -> sidx:MAValidO src
-          -> {v:Nat | (((didx + v) <= (malen dest))
-                    && ((sidx + v) <= (malen src)))}
-          -> ST s ()
-  @-}
-copyM        :: MArray s               -- ^ Destination
-             -> Int                    -- ^ Destination offset
-             -> MArray s               -- ^ Source
-             -> Int                    -- ^ Source offset
-             -> Int                    -- ^ Count
-             -> ST s ()
-copyM dest didx src sidx count
-    | count <= 0 = return ()
-    | otherwise =
-    liquidAssert (sidx + count <= maLen src) .
-    liquidAssert (didx + count <= maLen dest) .
-    unsafeIOToST $ memcpyM (maBA dest) (fromIntegral didx)
-                           (maBA src) (fromIntegral sidx)
-                           (fromIntegral count)
-
-{-@ memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO () @-}
-memcpyM :: MutableByteArray# s -> CSize -> MutableByteArray# s -> CSize -> CSize -> IO ()
-memcpyM = undefined
-
-{-@ unsafeFreeze :: ma:MArray s -> ST s (ArrayN (malen ma)) @-}
-unsafeFreeze :: MArray s -> ST s Array
-unsafeFreeze MArray{..} = ST $ \s# ->
-                          (# s#, Array (unsafeCoerce# maBA) maLen #)
-
-{-@ unsafeIndex :: a:Array -> AValidI a -> Word16 @-}
-unsafeIndex  :: Array -> Int -> Word16
-unsafeIndex Array{..} i@(I# i#)
-  | i < 0 || i >= aLen = liquidError "out of bounds"
-  | otherwise = case indexWord16Array# aBA i# of
-                  r# -> (W16# r#)
-
-data Text = Text Array Int Int
-{-@ data Text [tlen] = Text (arr :: Array)
-                            (off :: TValidO arr)
-                            (len :: TValidL off arr)
-  @-}
-
-{-@ measure tarr :: Text -> Array
-    tarr (Text a o l) = a
-  @-}
-
-{-@ measure toff :: Text -> Int
-    toff (Text a o l) = o
-  @-}
-
-{-@ measure tlen :: Text -> Int
-    tlen (Text a o l) = l
-  @-}
-
-{-@ type TValidI T   = {v:Nat | v     <  (tlen T)} @-}
-{-@ type TValidO A   = {v:Nat | v     <= (alen A)} @-}
-{-@ type TValidL O A = {v:Nat | (v+O) <= (alen A)} @-}
-
-
---------------------------------------------------------------------------------
---- From TextRead
---------------------------------------------------------------------------------
-
-{-@ measure numchars :: Array -> Int -> Int -> Int @-}
-{-@ measure tlength :: Text -> Int @-}
-{-@ invariant {v:Text | (tlength v) = (numchars (tarr v) (toff v) (tlen v))} @-}
-
---------------------------------------------------------------------------------
---- Helpers
---------------------------------------------------------------------------------
-
-{-@ qualif Ord(v:int, i:int, x:Char)
-        : ((((ord x) <  65536) => (v = i))
-        && (((ord x) >= 65536) => (v = (i + 1))))
-  @-}
-
-\end{code}
-
-</div>
-
-We mentioned previously that `text` uses stream fusion to optimize
-multiple loops over a `Text` into a single loop; as a result many of
-the top-level API functions are simple wrappers around equivalent
-functions over `Stream`s. The creation of `Text` values is then
-largely handled by a single function, `unstream`, which converts a
-`Stream` into a `Text`.
-
-\begin{code}
-unstream :: Stream Char -> Text
-unstream (Stream next0 s0 len) = runST $ do
-  let mlen = upperBound 4 len
-  arr0 <- new mlen
-  let outer arr top = loop
-       where
-        loop !s !i =
-            case next0 s of
-              Done          -> do
-                arr' <- unsafeFreeze arr
-                return $! Text arr' 0 i
-              Skip s'       -> loop s' i
-              Yield x s'
-                | j >= top  -> do
-                  let top' = (top + 1) `shiftL` 1
-                  arr' <- new top'
-                  copyM arr' 0 arr 0 top
-                  outer arr' top' s i
-                | otherwise -> do
-                  d <- writeChar arr i x
-                  loop s' (i+d)
-                where j | ord x < 0x10000 = i
-                        | otherwise       = i + 1
-  outer arr0 mlen s0 0
-\end{code}
-
-Since we're focusing on memory safety here we won't go into detail
-about how `Stream`s work. Let's instead jump right into the inner
-`loop` and look at the `Yield` case. Here we need to write a char `x`
-into `arr`, so we compute the maximal index `j` to which we will
-write -- i.e. if `x >= U+10000` then `j = i + 1` -- and determine
-whether we can safely write at `j`. If the write is unsafe we have to
-allocate a larger array before continuing, otherwise we write `x` and
-increment `i` by `x`s width.
-
-Since `writeChar` has to handle writing *any* Unicode value, we need
-to assure it that there will always be room to write `x` into `arr`,
-regardless of `x`s width. Indeed, this is expressed in the type we
-give to `writeChar`.
-
-\begin{code}
-{-@ writeChar :: ma:MArray s -> i:Nat -> {v:Char | (Room v ma i)}
-              -> ST s {v:Nat | (RoomN v ma i)}
-  @-}
-\end{code}
-
-The predicate aliases `Room` and `RoomN` express that a character can
-fit in the array at index `i` and that there are at least `n` slots
-available starting at `i` respectively.
-
-\begin{code}
-{-@ predicate Room C MA I = (((One C) => (RoomN 1 MA I))
-                          && ((Two C) => (RoomN 2 MA I)))
-  @-}
-{-@ predicate RoomN N MA I = (I+N <= (malen MA)) @-}
-\end{code}
-
-The `One` and `Two` predicates express that a character will be
-encoded in one or two 16-bit words, by reasoning about its ordinal
-value.
-
-\begin{code}
-{-@ predicate One C = ((ord C) <  65536) @-}
-{-@ predicate Two C = ((ord C) >= 65536) @-}
-\end{code}
-
-As with `numchars`, we leave `ord` abstract, but inform LiquidHaskell
-that the `ord` *function* does in fact return the ordinal value of the
-character.
-
-\begin{code}
-{-@ measure ord :: Char -> Int @-}
-{-@ ord :: c:Char -> {v:Int | v = (ord c)} @-}
-\end{code}
-
-Since `writeChar` assumes that it will never be called unless there is room to
-write `c`, it is safe to just split `c` into 16-bit words and write them into
-the array.
-
-\begin{code}
-writeChar :: MArray s -> Int -> Char -> ST s Int
-writeChar marr i c
-    | n < 0x10000 = do
-        unsafeWrite marr i (fromIntegral n)
-        return 1
-    | otherwise = do
-        unsafeWrite marr i lo
-        unsafeWrite marr (i+1) hi
-        return 2
-    where n = ord c
-          m = n - 0x10000
-          lo = fromIntegral $ (m `shiftR` 10) + 0xD800
-          hi = fromIntegral $ (m .&. 0x3FF) + 0xDC00
-\end{code}
-
-In typical design-by-contract style, we're putting the burden of proof to
-establish safety on `writeChar`s caller. Now, scroll back up to
-`unstream` and mouse over `j` to see its inferred type.
-\begin{code} You should see something like
-{v:Int | ((ord x >= 65536) => (v == i+1))
-      && ((ord x <  65536) => (v == i))}
-\end{code}
-which, combined with the case-split on `j >= top`, provides the proof that
-writing `x` will be safe!
-
-Stay tuned, next time we'll look at another example of building a `Text` where
-LiquidHaskell fails to infer this crucial refinement...
diff --git a/docs/blog/todo/basic_termination.lhs b/docs/blog/todo/basic_termination.lhs
deleted file mode 100644
--- a/docs/blog/todo/basic_termination.lhs
+++ /dev/null
@@ -1,192 +0,0 @@
----
-layout: post
-title: "Termination Checking"
-date: 2013-11-18 16:12
-comments: true
-external-url:
-categories: termination
-author: Niki Vazou
-published: false 
-demo: TerminationBasic.hs
----
-
-As explained in the [last](LINK) [two](LINK) posts, we need a termination
-checker to ensure that LiquidHaskell is not tricked by divergent, lazy
-computations into telling lies. Well, proving termination is not easy, but
-happily, it turns out that with very little retrofitting, we can use 
-refinements to prove termination.
-
-In this post, lets see how LiquidHaskell proves termination on simple 
-recursive functions, and then later, we'll see how to look at fancier 
-cases.
-
-<!-- more -->
-
-\begin{code}
-module Termination where
-
-import Prelude hiding (sum, (!!))
-import Data.List      (lookup)
-\end{code}
-
-Termination Check with Refinement Types
----------------------------------------
-
-Consider a `Vec`tor that maps `Int`egers to `Val`ues:
-
-\begin{code}
-type Val   = Int
-data Vec   = V [(Int, Val)]
-
-(!!)       :: Vec -> Int -> Val
-(V a) !! i = case i `lookup` a of {Just v -> v; _ -> 0}
-\end{code}
-
-Let `sum a i` add the `i` first elements of the vector `a`:
-
-\begin{code}
-sum     :: Vec -> Int -> Val
-sum a 0 = 0
-sum a i = (a !! (i-1)) + sum a (i-1)
-\end{code}
-
-Does `sum` terminate?
-We observe that if `i` is not `0` then `sum i` will call `sum (i-1)`, otherwise
-it will return.
-This reasoning suffices to convince ourselves that `sum i` terminates for every
-natural number `i`.
-Formally, we shown that `sum` terminates because a *well-founded metric* (i.e., the
-natural number `i`) is decreasing at each iteration.
-Thus, to ensure termination it suffices to restrict `i` on Natural numbers,
-which we can do with a liquid-type signature.
-\begin{code}
-{-@ sum :: Vec -> Nat -> Val @-}
-\end{code}
-
-LiquidHaskell will apply the same reasoning to prove `sum`
-terminates:
-Conventionally, to typecheck `sum` we would check the body assuming an
-environment
-
-`a:Vec`, `i:Nat`, `sum:Vec -> Nat -> Val`
-
-Instead, we *weaken* the environment to 
-
-`a:Vec`, `i:Nat`, `sum:Vec -> {v:Nat| v < i} -> Val`
-
-Now, the type of `sum` stipulates that it *only* be recursively called with
-`Nat` (so well-founded) values that are *strictly less than* the current parameter `i`. 
-Since its body typechecks in this environment, `sum` terminates for
-every `i` on `Nat`s.
-
-Choosing the correct argument
------------------------------
-
-We saw that liquidHaskell can happily check that a Natural number is decreasing
-at each iteration; but it uses a na&#239;ve heuristic to choose which one. 
-For this post we can assume that it always chooses *the first* Integer. 
-
-So, a tail-recursive implementation of `sum`:
-\begin{code}
-{-@ sum' :: Vec -> Val -> Nat -> Val @-}
-sum' :: Vec -> Val -> Int -> Val
-sum' a acc 0 = acc + a!!0 
-sum' a acc i = sum' a (acc + a!!i) (i-1)
-\end{code}
-
-will fail, as liquidHaskell wants to prove that the `acc`umulator is the `Nat`ural
-number that
-decreases at each iteration.
-
-\begin{code}The remedy is simple. We can direct liquidHaskell to the correct argument `i` using a `Decrease` annotation: 
-{-@ Decrease sum' 3 @-}
-\end{code}
-which directs liquidHaskell to check whether the *third*
-argument (i.e., `i`) is decreasing.
-With this hint, liquidHaskell will happily verify that `sum'` is indeed a
-terminating function.
-
-
-Lexicographic Termination
--------------------------
-
-Lets complicate the things a little bit.
-To do so, lets compute the `sum` of a 2D `Vec`tor:
-
-\begin{code}
-data Vec2D    = V2D [((Int, Int), Val)]
-
-(!!!)         :: Vec2D -> (Int,Int) -> Val
-(V2D a) !!! i = case i `lookup` a of {Just v -> v; _ -> 0}
-\end{code}
-
-Now we write a `sum2D a n m` function that computes the sum of the first 
-`(n+1)(m+1)` elements of `a`
-
-\begin{code}
-{-@ sum2D :: Vec2D -> Nat -> Nat -> Val @-}
-sum2D :: Vec2D -> Int -> Int -> Val
-sum2D a n m = go n m
-  where 
-       {-@ Decrease go 1 2 @-}
-        go 0 0             = 0
-        go i j | j == 0    =  a!!!(i, 0) + go (i-1) m
-               | otherwise =  a!!!(i, j) + go i (j-1)
-\end{code}
-
-Here there is no decreasing argument, 
-if `j>0`, `j` decreases (line `139`), otherwise `i` decreases (line `138`).
-Though, liquidHaskell succeed in verifying that `sum2D` terminates and the reason
-is our `Decrease go 1 2` annotation.
-This annotation informs the tool that the decreasing measure is the
-*lexicographically ordered* pair `[i,j]`. 
-LiquidHaskell will verify that this pair is indeed decreasing: at each
-iteration either `i` decreases (line `138`) or `i` remains the same and `j`
-decreases (line `139`).
-
-\begin{code}An alternative annotation to express the above decreasing measure is:
-       {-@ go :: i:Nat -> j:Nat -> Val / [i, j] @-}
-\end{code}
-where after the type signature for `go` we write the list of lexicographic
-decreasing *expressions*.
-This mechanism, as we shall see, allows us to prove termination in functions
-where the decreasing measure in a *function* of the arguments.
-
-Decreasing expressions
-----------------------
-Back to our `1D` Vector, 
-we now define a function `sumFromTo a lo hi` that sums the elements form `a!!lo`
-to `a!!hi`:
-
-\begin{code}
-{-@ sumFromTo :: Vec -> lo:Nat -> hi:{v:Nat|v>=lo} -> Val @-}
-sumFromTo :: Vec -> Int -> Int ->  Val
-sumFromTo a lo hi = go lo hi
-  where 
-       {-@ go :: lo:Nat -> hi:{v:Nat|v>=lo} -> Val / [hi-lo] @-}
-        go lo hi | lo == hi  =  a!!lo
-                 | otherwise =  a!!lo + go (lo+1) hi
-\end{code}
-
-No argument is decreasing in this function, 
-but still it does terminate, as at each iteration `lo` is increased and
-execution will terminate when `lo` reaches `hi`.
-Here the decreasing measure is the expression `hi-lo`.
-LiquidHaskell has no way to generate such a measure, but,
-if the user generates it, i.e., by annotating `go`'s signature,
-liquidHaskell will happily check that `lo-hi` is indeed a well-founded measure (as it is
-a natural number) that decreases at each iteration.
-
-
-Powered with decreasing expressions and the `Decrease` hint,
-we can prove termination on a great number of functions 
-ranging from 
-ones defined on recursive data structures
-to mutual recursive ones. 
-We shall soon see how to prove termination on more complicated functions, why
-is termination analysis required by liquidHaskell and when is it safe to
-deactivate it.
-
-\begin{code}Until then, bear in mind that you can disable termination checking using the `no-termination` flag:
-{-@ LIQUID "--no-termination" @-}
-\end{code}
diff --git a/docs/blog/todo/binary-search-trees.lhs b/docs/blog/todo/binary-search-trees.lhs
deleted file mode 100644
--- a/docs/blog/todo/binary-search-trees.lhs
+++ /dev/null
@@ -1,167 +0,0 @@
----
-layout: post
-title: "Binary Search Trees"
-date: 2013-02-15 16:12
-comments: true
-external-url:
-categories: abstract-refinements
-author: Niki Vazou
-published: false
----
-
-In this example, we show how we can use multi-parameter abstract refinements 
-to encode ordering invarants on tree structures.
-
-\begin{code}
-module Map where
-\end{code}
-
-Take for example the following refined type used to encode functional maps (from Data.Map):
-
-\begin{code}
-{-@ 
-  data Map k a <l :: root:k -> k -> Prop, r :: root:k -> k -> Prop>
-      = Tip 
-      | Bin (sz    :: Size) 
-            (key   :: k) 
-            (value :: a) 
-            (left  :: Map <l, r> (k <l key>) a) 
-            (right :: Map <l, r> (k <r key>) a) 
-  @-}
-
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-
-The abstract refinements `l` and `r` relate each `key` of the tree with `all` the keys in the `left` and `right` subtrees of `key`, as those keys are respectively of type `k <l key>` and `k <r key>`.
-
-Thus, if we instantiate the refinements with the following predicates
-
-\begin{code}
-{-@ type BST k a     = Map <\r -> {v:k | v < r }, \r -> {v:k | v > r }> k a @-}
-{-@ type MinHeap k a = Map <\r -> {v:k | r <= v}, \r -> {v:k | r <= v}> k a @-}
-{-@ type MaxHeap k a = Map <\r -> {v:k | r >= v}, \r -> {v:k | r >= v}> k a @-}
-\end{code}
-
-then `BST k v`, `MinHeap k v` and `MaxHeap k v` denote exactly binary-search-ordered, min-heap-ordered, and max-heap-ordered trees (with keys and values of types `k` and `v`).  
-
-We can use the above types to automatically verify ordering properties of complex libraries.
-
-For example, we cab use `BST` to prove that `Data.Map`'s `insert` and `delete` functions return a binary search tree:
-
-\begin{code}
-{-@ insert :: Ord k => k:k -> a:a -> t:BST k a -> BST k a @-}
-insert :: Ord k => k -> a -> Map k a -> Map k a
-insert kx x t
-  = case t of 
-     Tip -> singleton kx x
-     Bin sz ky y l r
-         -> case compare kx ky of
-              LT -> balance ky y (insert kx x l) r
-              GT -> balance ky y l (insert kx x r)
-              EQ -> Bin sz kx x l r
-
-{-@ delete :: (Ord k) => k:k -> t:BST k a -> BST k a @-}
-delete :: Ord k => k -> Map k a -> Map k a
-delete k t 
-  = case t of 
-      Tip -> Tip
-      Bin _ kx x l r
-          -> case compare k kx of 
-               LT -> balance kx x (delete k l) r
-               GT -> balance kx x l (delete k r)
-               EQ -> glue kx l r
-\end{code}
-
-
-Below are the functions used by `insert` and `delete`:
-
-\begin{code}
-singleton :: k -> a -> Map k a
-singleton k x
-  = Bin 1 k x Tip Tip
-
-
-glue :: k -> Map k a -> Map k a -> Map k a
-glue k Tip r = r
-glue k l Tip = l
-glue k l r
-  | size l > size r = let (km1, vm, lm) = deleteFindMax l in balance km1 vm lm r
-  | otherwise       = let (km2, vm, rm) = deleteFindMin r in balance km2 vm l rm
-
-deleteFindMax t 
-  = case t of
-      Bin _ k x l Tip -> (k, x, l)
-      Bin _ k x l r -> let (km3, vm, rm) = deleteFindMax r in 
-                       (km3, vm, (balance k x l rm))
-      Tip           -> (error ms, error ms, Tip)
-  where ms = "Map.deleteFindMax : can not return the maximal element of an empty Map"   
-
-
-deleteFindMin t 
-  = case t of
-      Bin _ k x Tip r -> (k, x, r)
-      Bin _ k x l r -> let (km4, vm, lm) = deleteFindMin l in 
-                       (km4, vm, (balance k x lm r))
-      Tip             -> (error ms, error ms, Tip)
-  where ms = "Map.deleteFindMin : can not return the maximal element of an empty Map"   
-
-
--------------------------------------------------------------------------------
---------------------------------- BALANCE -------------------------------------
--------------------------------------------------------------------------------
-
-delta, ratio :: Int
-delta = 5
-ratio = 2
-
-balance :: k -> a -> Map k a -> Map k a -> Map k a 
-balance k x l r 
-  | sizeL + sizeR <= 1   = Bin sizeX k x l r
-  | sizeR >= delta*sizeL = rotateL k x l r
-  | sizeL >= delta*sizeR = rotateR k x l r
-  | otherwise            = Bin sizeX k x l r
-  where sizeL = size l
-        sizeR = size r
-        sizeX = sizeL + sizeR + 1
-
--- rotate
-rotateL :: a -> b -> Map a b -> Map a b -> Map a b
-rotateL k x l r@(Bin _ _ _ ly ry) 
-  | size ly < ratio*size ry  = singleL k x l r
-  | otherwise                = doubleL k x l r
-rotateL _ _ _ Tip = error "rotateL Tip"
-
-rotateR :: a -> b -> Map a b -> Map a b -> Map a b
-rotateR k x l@(Bin _ _ _ ly ry) r
-  | size ry < ratio*size ly  = singleR k x l r
-  | otherwise                = doubleR k x l r
-rotateR _ _ _ Tip = error "rotateR Tip"
-
--- basic rotations
-singleL, singleR :: a -> b -> Map a b -> Map a b -> Map a b
-singleL k1 x1 t1 (Bin _ k2 x2 t2 t3) = bin k2 x2 (bin k1 x1 t1 t2) t3
-singleL _  _  _ Tip = error "sinlgeL Tip"
-singleR k1 x1 (Bin _ k2 x2 t1 t2) t3 = Bin 0 k2 x2 t1 (Bin 0 k1 x1 t2 t3)
-singleR _  _  _ Tip = error "sinlgeR Tip"
-
-doubleL, doubleR :: a -> b -> Map a b -> Map a b -> Map a b
-doubleL k1 x1 t1 (Bin _ k2 x2 (Bin _ k3 x3 t2 t3) t4)
- =bin k3 x3 (bin k1 x1 t1 t2) (bin k2 x2 t3 t4)
-doubleL _ _ _ _ = error "doubleL" 
-doubleR k1 x1 (Bin _ k2 x2 t1 (Bin _ k3 x3 t2 t3)) t4 
-  = bin k3 x3 (bin k2 x2 t1 t2) (bin k1 x1 t3 t4)
-doubleR _ _ _ _ = error "doubleR" 
-
-bin :: k -> a -> Map k a -> Map k a -> Map k a
-bin k x l r 
-  = Bin (size l + size r + 1) k x l r
-
-size :: Map k a -> Int
-size t 
-  = case t of 
-      Tip            -> 0
-      Bin sz _ _ _ _ -> sz
-\end{code}
diff --git a/docs/blog/todo/encoding-induction.lhs b/docs/blog/todo/encoding-induction.lhs
deleted file mode 100644
--- a/docs/blog/todo/encoding-induction.lhs
+++ /dev/null
@@ -1,122 +0,0 @@
-
----
-layout: post
-title: "Encoding Induction with Abstract Refinements"
-date: 2013-02-20 16:12
-comments: true
-external-url:
-categories: abstract-refinements 
-author: Niki Vazou
-published: false
----
-
-In this example, we explain how abstract refinements allow us to formalize
-some kinds of structural induction within the type system. 
-
-\begin{code}
-module Inductive where
-\end{code}
-
-Measures
---------
-First, lets define an inductive data type `Vec`
-
-\begin{code}
-data Vec a = Nil | Cons a (Vec a)
-\end{code}
-
-And let us formalize a notion of _length_ for lists within the refinement logic. 
-
-To do so, we define a special `llen` measure by structural induction
-
-\begin{code}
-{-@ measure llen     :: forall a. Vec a -> Int 
-    llen (Nil)       = 0 
-    llen (Cons x xs) = 1 + llen(xs)
-  @-}
-\end{code}
-
-
-Note that the symbol `llen` is encoded as an _uninterpreted_ function in the refinement logic, and is, except for the congruence axiom, opaque to the SMT solver. The measures are guaranteed, by construction, to terminate, and so we can soundly use them as uninterpreted functions in the refinement logic. Notice also, that we can define _multiple_ measures for a type; in this case we simply conjoin the refinements from each measure when refining each data constructor.
-
-As a warmup, lets check that a _real_ length function indeed computes the length of the list:
-
-\begin{code}
-{-@ sizeOf :: xs:Vec a -> {v: Int | v = llen(xs)} @-}
-sizeOf             :: Vec a -> Int
-sizeOf Nil         = 0
-sizeOf (Cons _ xs) = 1 + sizeOf xs
-\end{code}
-
-
-
-With these strengthened constructor types, we can verify, for example, that `myappend` produces a list whose length is the sum of the input lists'
-lengths:
-
-\begin{code}
-{-@ myappend :: l: (Vec a) -> m: (Vec a) -> {v: Vec a | llen(v)=llen(l)+llen(m)} @-}
-myappend Nil         zs = zs
-myappend (Cons y ys) zs = Cons y (myappend ys zs)
-\end{code}
-
-
-\begin{code}However, consider an alternate definition of `myappend` that uses `foldr`
-myappend' ys zs = foldr (:) zs ys 
-\end{code}
-
-where `foldr :: (a -> b -> b) -> b -> [a] -> b`.
-It is unclear how to give `foldr` a (first-order) refinement type that captures the rather complex fact that the fold-function is ''applied'' all over the list argument, or, that it is a catamorphism. Hence, hitherto, it has not been possible to verify the second definition of `append`.
-
-
-Typing Folds
-------------
-
-Abstract refinements allow us to solve this problem with a very expressive type for _foldr_ whilst remaining firmly within the boundaries of SMT-based decidability. We write a slightly modified fold:
-
-\begin{code}
-{-@ efoldr :: forall a b <p :: x0:Vec a -> x1:b -> Prop>. 
-                op:(xs:Vec a -> x:a -> b:b <p xs> -> 
-                  exists [xxs : {v: Vec a | v = (Inductive.Cons x xs)}].
-                     b <p xxs>) 
-              -> vs:(exists [zz: {v: Vec a | v = Inductive.Nil}]. b <p zz>) 
-              -> ys: Vec a
-              -> b <p ys>
-  @-}
-efoldr :: (Vec a -> a -> b -> b) -> b -> Vec a -> b
-efoldr op b Nil         = b
-efoldr op b (Cons x xs) = op xs x (efoldr op b xs) 
-\end{code}
-
-The trick is simply to quantify over the relationship `p` that `efoldr` establishes between the input list `xs` and the output `b` value. This is formalized by the type signature, which encodes an induction principle for lists: 
-the base value `b` must (1) satisfy the relation with the empty list, and the function `op` must take (2) a value that satisfies the relationship with the tail `xs` (we have added the `xs` as an extra "ghost" parameter to `op`), (3) a head value `x`, and return (4) a new folded value that satisfies the relationship with `x:xs`.
-If all the above are met, then the value returned by `efoldr` satisfies the relation with the input list `ys`.
-
-This scheme is not novel in itself --- what is new is the encoding, via uninterpreted predicate symbols, in an SMT-decidable refinement type system.
-
-Using Folds
------------
-
-Finally, we can use the expressive type for the above `foldr` to verify various inductive properties of client functions:
-
-\begin{code}
-{-@ size :: xs:Vec a -> {v: Int | v = llen(xs)} @-}
-size :: Vec a -> Int
-size = efoldr (\_ _ n -> suc n) 0
-
-{-@ suc :: x:Int -> {v: Int | v = x + 1} @-}
-suc :: Int -> Int
-suc x = x + 1 
-
-{-@ 
-   myappend'  :: xs: Vec a -> ys: Vec a -> {v: Vec a | llen(v) = llen(xs) + llen(ys)} 
-  @-} 
-myappend' xs ys = efoldr (\_ z zs -> Cons z zs) ys xs 
-\end{code}
-
-
-\begin{code}The verification proceeds by just (automatically) instantiating the refinement parameter `p` of `efoldr` with the concrete refinements, via Liquid typing:
-
-{\xs v -> v = llen(xs)}                   -- for size
-{\xs v -> llen(v) = llen(xs) + llen(zs)}  -- for myappend'
-\end{code}
-
diff --git a/docs/blog/todo/index-dependent-maps.hs b/docs/blog/todo/index-dependent-maps.hs
deleted file mode 100644
--- a/docs/blog/todo/index-dependent-maps.hs
+++ /dev/null
@@ -1,217 +0,0 @@
--- ---
--- layout: post
--- title: "Index-Dependent Maps"
--- date: 2013-01-20 16:12
--- comments: true
--- external-url:
--- categories: abstract-refinement, basic
--- author: Niki Vazou
--- published: false
--- ---
-
--- In this example, we illustrate how abstract invariants allow us to specify
--- and verify index-dependent invariants of key-value maps.  To this end, we
--- develop a small library of _extensible vectors_ encoded, for purposes of
--- illustration, as functions from `Int` to some generic range `a`.
-
-
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume)
-
-
--- \begin{code}We specify vectors as
--- type Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
---   = (i:Int <dom> -> a<rng i>)
--- \end{code}
-
-
-type Vec a = Int -> a
-
-
--- Here, we are parametrizing the definition of the type `Vec` with _two_ abstract refinements, `dom` and `rng`, which respectively describe the _domain_ and _range_ of the vector.
--- That is, `dom` describes the set of _valid_ indices, and `rng` specifies an invariant relating each `Int` index with the value stored at that index.
-
--- Creating Vectors
--- ----------------
-
--- We can use the following basic functions to create vectors:
-
-
-{- empty :: forall <rng :: Int -> a -> Prop>.
-              i:{v: Int | 0 = 1} ->  a<rng> -}
-
-{-@ empty :: i: {v: Int | 0 = 1} -> a @-}
-empty :: Vec a
-empty = \_ -> (error "Empty Vec")
-
-{-@ create :: x:a -> (i:Int -> {v:a | v = x}) @-}
-create :: a -> Vec a
-create x = (\_ -> x)
-
-
--- The signature for `empty` states that its domain is empty (ie is the set of indices satisfying the predicate `False`), and that the range satisfies _any_ invariant. The signature for `create`, instead, defines a _constant_ vector that maps every index to the constant `x`.
-
--- Accessing Vectors
--- -----------------
-
--- We can write the following `get` function for reading the contents of a vector at a given index:
-
-
-{-@ get :: forall a <d :: x0:Int -> Prop, r :: x0: Int -> x1:a -> Prop>.
-             i: Int<d> ->
-             a: (j: Int<d> -> a<r j>) ->
-             a<r i>
-  @-}
-get :: Int -> Vec a -> a
-get i a = a i
-
-
--- The signature states that for any domain `d` and range `r`, if the index `i` is a valid index, ie is of type, `Int<d>` then the returned value is an `a` that additionally satisfies the range refinement at the index `i`.
-
--- The type for `set`, which _updates_ the vector at a given index, is even more interesting, as it allows us to _extend_ the domain of the vector:
-
-
-{-@ set :: forall a <r :: x0: Int -> x1: a -> Prop, d :: x0: Int -> Prop>.
-      i: Int<d> ->
-      x: a<r i> ->
-      a: (j: {v: Int<d> | v != i} -> a<r j>) ->
-      (k : Int<d> -> a<r k>)
-  @-}
-set :: Int -> a -> Vec a -> Vec a
-set i x a = \k -> if k == i then x else a k
-
-
--- The signature for `set` requires that (a) the input vector is defined everywhere at `d` _except_ the index `i`, and (b) the value supplied must be of type `a<r i>`, ie satisfy the range relation at the index `i` at which the vector is being updated.
--- The signature ensures that the output vector is defined at `d` and each value satisfies the index-dependent range refinement `r`.
-
--- Note that it is legal to call `get` with a vector that is _also_ defined at the index `i` since, by contravariance, such a vector is a subtype of that required by (a).
-
-
--- Initializing Vectors
--- --------------------
-
--- Next, we can write the following function, `init`, that ''loops'' over a vector, to `set` each index to a value given by some function.
-
-
-{-@ initialize :: forall a <r :: x0: Int -> x1: a -> Prop>.
-      f: (z: Int -> a<r z>) ->
-      i: {v: Int | v >= 0} ->
-      n: Int ->
-      a: (j: {v: Int | (0 <= v && v < i)} -> a<r j>) ->
-      (k: {v: Int | (0 <= v && v < n)} -> a<r k>) @-}
-initialize :: (Int -> a) -> Int -> Int -> Vec a -> Vec a
-initialize f i n a
-  | i >= n    = a
-  | otherwise = initialize f (i + 1) n (set i (f i) a)
-
-
--- The signature requires that (a) the higher-order function `f` produces values that satisfy the range refinement `r`, and (b) the vector is initialized from `0` to `i`.
--- The function ensures that the output vector is initialized from `0`
--- through `n`.
-
--- We can thus verify that
-
-
-{-@ idVec :: n:Int -> (k: {v: Int | (0 <= v && v < n)} -> {v: Int | v = k}) @-}
-idVec :: Int -> (Vec Int)
-idVec n = initialize (\i -> i) 0 n empty
-
-
--- ie `idVec` returns an vector of size `n` where each key is mapped to itself. Thus, abstract refinement types allow us to verify low-level idioms such as the incremental initialization of vectors, which have previously required special analyses.
-
--- Null-Terminated Strings
--- -----------------------
-
--- We can also use abstract refinements to verify code which manipulates C-style null-terminated strings, where each character is represented as an `Int` and the termination character `\0`, and only that, is represented as `0`.
-
--- \begin{code}Formally, a null-terminated string, represented by `Int`s, of size `n` has the type
--- type NullTerm n
---      = Vec <{\v -> 0<=v<n}, {\i v -> i=n-1 => v=0}> Int
--- \end{code}
-
--- The above type describes a length-`n` vector of characters whose last element must be a null character, signalling the end of the string.
-
--- We can use this type in the specification of a function, `upperCase`, which iterates through the characters of a string, uppercasing each one until it encounters the null terminator:
-
-
-ucs :: Int -> Int -> Vec Int -> Vec Int
-ucs n i s =
-  case get i s of
-  0 -> s
-  c -> ucs n (i + 1) (set i (c + 32) s)
-
-{-@ upperCaseString ::
-      n: {v: Int | v > 0} ->
-      s: (j: {v : Int | (0 <= v && v < n)} ->
-          {v: Int | (j = n - 1 => v = 0)}) ->
-      (j: {v : Int | (0 <= v && v < n)} ->
-       {v: Int | (j = n - 1 => v = 0)})
-@-}
-upperCaseString :: Int -> Vec Int -> Vec Int
-upperCaseString n s = ucs n 0 s
-
-
-
--- Note that the length parameter `n` is provided solely as a ''witness'' for the length of the string `s`, which allows us to use the length of `s` in the type of `upperCaseString`; `n` is not used in the computation.
-
--- In order to establish that each call to `get` accesses string `s` within its bounds, our type system must establish that, at each call to the inner function `ucs`, `i` satisfies the type `{v: Int | 0 <= v && v < n}`.
-
--- This invariant is established as follows:
-
--- First, the invariant trivially holds on the first call to `ucs`, as
--- `n` is positive and `i` is `0`.
--- Second, we assume that `i` satisfies the type `{v: Int | 0 <= v && v < n}`, and, further, we know from the types of `s` and `get` that `c` has the type `{v: Int | i = n - 1 => c = 0}`.
--- Thus, if `c` is non-null, then `i` cannot be equal to `n - 1`.
--- This allows us to strengthen our type for `i` in the else branch to `{v: Int | 0 <= v && v < n - 1}` and thus to conclude that the value `i + 1` recursively passed as the `i` parameter to `ucs` satisfies the type `{v: Int | 0 <= v && v < n}`, establishing the inductive invariant and thus the safety of the `upperCaseString` function.
-
-
-
--- Memoization
--- -----------
-
--- Next, let us illustrate how the same expressive signatures allow us to verify memoizing functions. We can specify to the SMT solver the definition of the Fibonacci function via an uninterpreted function `fib` and an axiom:
-
-
-{-@ measure fib :: Int -> Int @-}
-
-{-@ axiom_fib :: i:Int -> {v: Bool | (Prop(v) <=>
-                            (fib(i) = ((i <= 1) ? 1 : ((fib(i-1)) + (fib(i-2))))))}
-  @-}
-axiom_fib :: Int -> Bool
-axiom_fib i = undefined
-
-
--- Next, we define a type alias `FibV` for the vector whose values are either `0` (ie undefined), or equal to the Fibonacci number of the corresponding index.
-
-
-{-@ type FibV = j:Int -> {v:Int| ((v != 0) => (v = fib(j)))} @-}
-
-
--- Finally, we can use the above alias to verify `fastFib`, an implementation of the Fibonacci function, which uses an vector memoize intermediate results
-
-
-{-@ fastFib :: x:Int -> {v:Int | v = fib(x)} @-}
-fastFib     :: Int -> Int
-fastFib n   = snd $ fibMemo (\_ -> 0) n
-
-{-@ fibMemo :: FibV -> i:Int -> (FibV, {v: Int | v = fib(i)}) @-}
-fibMemo t i
-  | i <= 1
-  = (t, liquidAssume (axiom_fib i) (1 :: Int))
-
-  | otherwise
-  = case get i t of
-      0 -> let (t1, n1) = fibMemo t  (i-1)
-               (t2, n2) = fibMemo t1 (i-2)
-               n        = liquidAssume (axiom_fib i) (n1 + n2)
-           in  (set i n t2,  n)
-      n -> (t, n)
-
-
--- Thus, abstract refinements allow us to define key-value maps with index-dependent refinements for the domain and range.
--- Quantification over the domain and range refinements allows us to define generic access operations (eg. `get`, `set`, `create`, `empty`) whose types enable us establish a variety of precise invariants.
-
-
-
-
diff --git a/docs/blog/todo/index-dependent-maps.lhs b/docs/blog/todo/index-dependent-maps.lhs
deleted file mode 100644
--- a/docs/blog/todo/index-dependent-maps.lhs
+++ /dev/null
@@ -1,217 +0,0 @@
----
-layout: post
-title: "Index-Dependent Maps"
-date: 2013-01-20 16:12
-comments: true
-external-url:
-categories: abstract-refinement, basic
-author: Niki Vazou
-published: false
----
-
-In this example, we illustrate how abstract invariants allow us to specify
-and verify index-dependent invariants of key-value maps.  To this end, we
-develop a small library of _extensible vectors_ encoded, for purposes of
-illustration, as functions from `Int` to some generic range `a`. 
-
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume)
-\end{code}
-
-\begin{code}We specify vectors as 
-type Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
-  = (i:Int <dom> -> a<rng i>)
-\end{code}
-
-\begin{code}
-type Vec a = Int -> a
-\end{code}
-
-Here, we are parametrizing the definition of the type `Vec` with _two_ abstract refinements, `dom` and `rng`, which respectively describe the _domain_ and _range_ of the vector.
-That is, `dom` describes the set of _valid_ indices, and `rng` specifies an invariant relating each `Int` index with the value stored at that index.
-
-Creating Vectors
-----------------
-
-We can use the following basic functions to create vectors:
-
-\begin{code}
-{- empty :: forall <rng :: Int -> a -> Prop>. 
-              i:{v: Int | 0 = 1} ->  a<rng> -}
-
-{-@ empty :: i: {v: Int | 0 = 1} -> a @-}
-empty :: Vec a
-empty = \_ -> (error "Empty Vec")
-
-{-@ create :: x:a -> (i:Int -> {v:a | v = x}) @-}
-create :: a -> Vec a
-create x = (\_ -> x)
-\end{code}
-
-The signature for `empty` states that its domain is empty (ie is the set of indices satisfying the predicate `False`), and that the range satisfies _any_ invariant. The signature for `create`, instead, defines a _constant_ vector that maps every index to the constant `x`.
-
-Accessing Vectors
------------------
-
-We can write the following `get` function for reading the contents of a vector at a given index:
-
-\begin{code}
-{-@ get :: forall a <d :: x0:Int -> Prop, r :: x0: Int -> x1:a -> Prop>.
-             i: Int<d> ->
-             a: (j: Int<d> -> a<r j>) ->
-             a<r i> 
-  @-}
-get :: Int -> Vec a -> a
-get i a = a i
-\end{code}
-
-The signature states that for any domain `d` and range `r`, if the index `i` is a valid index, ie is of type, `Int<d>` then the returned value is an `a` that additionally satisfies the range refinement at the index `i`.
-
-The type for `set`, which _updates_ the vector at a given index, is even more interesting, as it allows us to _extend_ the domain of the vector:
-
-\begin{code}
-{-@ set :: forall a <r :: x0: Int -> x1: a -> Prop, d :: x0: Int -> Prop>.
-      i: Int<d> ->
-      x: a<r i> ->
-      a: (j: {v: Int<d> | v != i} -> a<r j>) ->
-      (k : Int<d> -> a<r k>)
-  @-}
-set :: Int -> a -> Vec a -> Vec a
-set i x a = \k -> if k == i then x else a k
-\end{code}
-
-The signature for `set` requires that (a) the input vector is defined everywhere at `d` _except_ the index `i`, and (b) the value supplied must be of type `a<r i>`, ie satisfy the range relation at the index `i` at which the vector is being updated.
-The signature ensures that the output vector is defined at `d` and each value satisfies the index-dependent range refinement `r`.
-
-Note that it is legal to call `get` with a vector that is _also_ defined at the index `i` since, by contravariance, such a vector is a subtype of that required by (a).
-
-
-Initializing Vectors
---------------------
-
-Next, we can write the following function, `init`, that ''loops'' over a vector, to `set` each index to a value given by some function.
-
-\begin{code}
-{-@ initialize :: forall a <r :: x0: Int -> x1: a -> Prop>.
-      f: (z: Int -> a<r z>) ->
-      i: {v: Int | v >= 0} ->
-      n: Int ->
-      a: (j: {v: Int | (0 <= v && v < i)} -> a<r j>) ->
-      (k: {v: Int | (0 <= v && v < n)} -> a<r k>) @-}
-initialize :: (Int -> a) -> Int -> Int -> Vec a -> Vec a
-initialize f i n a 
-  | i >= n    = a
-  | otherwise = initialize f (i + 1) n (set i (f i) a)
-\end{code}
-
-The signature requires that (a) the higher-order function `f` produces values that satisfy the range refinement `r`, and (b) the vector is initialized from `0` to `i`.
-The function ensures that the output vector is initialized from `0`
-through `n`.
-
-We can thus verify that
-
-\begin{code}
-{-@ idVec :: n:Int -> (k: {v: Int | (0 <= v && v < n)} -> {v: Int | v = k}) @-}
-idVec :: Int -> (Vec Int)
-idVec n = initialize (\i -> i) 0 n empty
-\end{code}
-
-ie `idVec` returns an vector of size `n` where each key is mapped to itself. Thus, abstract refinement types allow us to verify low-level idioms such as the incremental initialization of vectors, which have previously required special analyses.
-
-Null-Terminated Strings
------------------------
-
-We can also use abstract refinements to verify code which manipulates C-style null-terminated strings, where each character is represented as an `Int` and the termination character `\0`, and only that, is represented as `0`.
-
-\begin{code}Formally, a null-terminated string, represented by `Int`s, of size `n` has the type
-type NullTerm n 
-     = Vec <{\v -> 0<=v<n}, {\i v -> i=n-1 => v=0}> Int
-\end{code}
-
-The above type describes a length-`n` vector of characters whose last element must be a null character, signalling the end of the string.
-
-We can use this type in the specification of a function, `upperCase`, which iterates through the characters of a string, uppercasing each one until it encounters the null terminator:
-
-\begin{code}
-ucs :: Int -> Int -> Vec Int -> Vec Int
-ucs n i s =
-  case get i s of
-  0 -> s
-  c -> ucs n (i + 1) (set i (c + 32) s)
-
-{-@ upperCaseString ::
-      n: {v: Int | v > 0} ->
-      s: (j: {v : Int | (0 <= v && v < n)} ->
-          {v: Int | (j = n - 1 => v = 0)}) ->
-      (j: {v : Int | (0 <= v && v < n)} ->
-       {v: Int | (j = n - 1 => v = 0)})
-@-}
-upperCaseString :: Int -> Vec Int -> Vec Int
-upperCaseString n s = ucs n 0 s
-\end{code}
-
-
-Note that the length parameter `n` is provided solely as a ''witness'' for the length of the string `s`, which allows us to use the length of `s` in the type of `upperCaseString`; `n` is not used in the computation.
-
-In order to establish that each call to `get` accesses string `s` within its bounds, our type system must establish that, at each call to the inner function `ucs`, `i` satisfies the type `{v: Int | 0 <= v && v < n}`.
-
-This invariant is established as follows:
-
-First, the invariant trivially holds on the first call to `ucs`, as
-`n` is positive and `i` is `0`.
-Second, we assume that `i` satisfies the type `{v: Int | 0 <= v && v < n}`, and, further, we know from the types of `s` and `get` that `c` has the type `{v: Int | i = n - 1 => c = 0}`.
-Thus, if `c` is non-null, then `i` cannot be equal to `n - 1`.
-This allows us to strengthen our type for `i` in the else branch to `{v: Int | 0 <= v && v < n - 1}` and thus to conclude that the value `i + 1` recursively passed as the `i` parameter to `ucs` satisfies the type `{v: Int | 0 <= v && v < n}`, establishing the inductive invariant and thus the safety of the `upperCaseString` function.
-
-
-
-Memoization 
------------
-
-Next, let us illustrate how the same expressive signatures allow us to verify memoizing functions. We can specify to the SMT solver the definition of the Fibonacci function via an uninterpreted function `fib` and an axiom:
-
-\begin{code}
-{-@ measure fib :: Int -> Int @-}
-
-{-@ axiom_fib :: i:Int -> {v: Bool | (Prop(v) <=> 
-                            (fib(i) = ((i <= 1) ? 1 : ((fib(i-1)) + (fib(i-2))))))} 
-  @-}
-axiom_fib :: Int -> Bool
-axiom_fib i = undefined
-\end{code}
-
-Next, we define a type alias `FibV` for the vector whose values are either `0` (ie undefined), or equal to the Fibonacci number of the corresponding index. 
-
-\begin{code}
-{-@ type FibV = j:Int -> {v:Int| ((v != 0) => (v = fib(j)))} @-}
-\end{code}
-
-Finally, we can use the above alias to verify `fastFib`, an implementation of the Fibonacci function, which uses an vector memoize intermediate results 
-
-\begin{code}
-{-@ fastFib :: x:Int -> {v:Int | v = fib(x)} @-}
-fastFib     :: Int -> Int
-fastFib n   = snd $ fibMemo (\_ -> 0) n
-
-{-@ fibMemo :: FibV -> i:Int -> (FibV, {v: Int | v = fib(i)}) @-}
-fibMemo t i 
-  | i <= 1    
-  = (t, liquidAssume (axiom_fib i) (1 :: Int))
-  
-  | otherwise 
-  = case get i t of   
-      0 -> let (t1, n1) = fibMemo t  (i-1)
-               (t2, n2) = fibMemo t1 (i-2)
-               n        = liquidAssume (axiom_fib i) (n1 + n2)
-           in  (set i n t2,  n)
-      n -> (t, n)
-\end{code}
-
-Thus, abstract refinements allow us to define key-value maps with index-dependent refinements for the domain and range. 
-Quantification over the domain and range refinements allows us to define generic access operations (eg. `get`, `set`, `create`, `empty`) whose types enable us establish a variety of precise invariants.
-
-
-
-
diff --git a/docs/blog/todo/kmeans-full.lhs b/docs/blog/todo/kmeans-full.lhs
deleted file mode 100644
--- a/docs/blog/todo/kmeans-full.lhs
+++ /dev/null
@@ -1,270 +0,0 @@
----
-layout: post
-title: "KMeans Clustering N-Dimensional Points"
-date: 2013-02-14 16:12
-author: Ranjit Jhala
-published: false 
-comments: true
-external-url:
-categories: basic measures 
-demo: kmeans.hs
----
-
-[Last time][safeList] we introduced a new specification called a *measure*
-and demonstrated how to use it to encode the *length* of a list, and
-thereby verify that functions like `head` and `tail` were only called with
-non-empty lists (whose length was *strictly* greater than `0`.) As several
-folks pointed out, once LiquidHaskell can reason about lengths, it can do a
-lot more than just analyze non-emptiness. 
-
-Indeed! 
-
-So today, let me show you how one might implement a k-means algorithm that
-clusters `n`-dimensional points into at most k groups, and how
-LiquidHaskell can help us write and enforce these size requirements. 
-
-<!-- For example, XXX pointed out that we can use the type
-system to give an *upper* bound on the size of a list, e.g. 
-using lists upper bounded by a gigantic `MAX_INT` value as
-a proxy for finite lists.
--->
-
-<!-- more -->
-
-Rather than reinvent the wheel, lets start with an existing implementation
-of K-Means, available [on hackage](hackage-kmeans). This may not be the most 
-efficient implementation, but its a nice introduction to the algorithm, and we 
-speculate that the general invariants will hold for more sophisticated
-implementations.
-
-
-\begin{code}
-
-nearest centers x   = minimumKey distances
-  where distances   = M.map (distance x) centers
-
-minimumKey   :: (Ord v) => M.Map k v -> k
-minimumKey   = fst . minimumBy (\x y -> compare (snd x) (snd y)) . M.toList 
-
-distance     :: [Double] -> [Double] -> [Double]
-distance a b = sqrt . sum $ zipWith (\x y -> (x - y) ^ 2) a b
-
-normalize (n :: Int) = M.map (\(c, s) -> map (`safeDiv` s) c) 
-
-initialCenters :: [a] -> M.HashMap Int [a] -> 
-
-{-@ NNList a      = {v: [a] | ((len v) > 0) }           @-}
-{-@ BoundInt  K   = {v: Int | (0 <= v) && (v < K) }     @-}
-{-@ Point a   N   = {v: [a] | (len v) = N }             @-}
-{-@ Points a  N   = NNList (Point a n)                  @-}
-{-@ Cluster a K N = M.HashMap (BoundInt K) (Point a N)  @-}
-
-{-@ initialCenters  :: k:{k:Int | k > 0} -> [a] -> M.HashMap (BoundInt k) (NNList a) @-}
-initialCenters      :: Int -> [a] -> M.HashMap Int [a]  
-initialCenters k xs = M.fromList $ zip indices partitions 
-  where 
-    clusterSize     = max 1 ((length points + k - 1) `div` k)
-    parts           = partition clusterSize points
-    nParts          = length parts
-    indices         = liquidAssume (nParts <= k) [1..nParts]
-
-{-@ partition        :: {v:Int | v > 0} -> [a] -> [(NNList a)] @-}
-partition n []       = []
-partition n ys@(_:_) = zs : part n zs' 
-  where 
-    zs               = take n ys
-    zs'              = drop n ys
-
-kmeansStep :: n:Int -> [Point Double n] -> M.Map k (Point Double n) -> M.Map k (Point Double n) 
-kmeansStep (n :: Int) centers = M.fromList . mapReduce newCenter mergeCluster
-  where
-    recenter x              = [(nearest centers x, (x, 1))]
-    merge (c1, s1) (c2, s2) = (zipWith (+) c1 c2, s1 + s2)
-
-           
-kmeans n k xs  = initialCenters k xs
-
--- kgroupBy :: k:Int -> (a -> BoundInt k) -> [a] -> {v: [(NNList a)] | (len v) <= k }
-\end{code}
-
-
-
--- let rec ffor i j f = 
---   if i < j then (
---     f i; 
---     ffor (i+1) j f
---   )
--- 
--- let min_index a =
---   let min = ref 0 in
---   ffor 0 (Array.length a) (fun i ->
---     if a.(i) < a.(!min) then            (* ARRAY BOUNDS *)
---       min := i
---   );
---   !min
--- 
--- let nearest dist ctra x  =
---   let da = Array.map (dist x) ctra in
---   (min_index da, (x, 1))
--- 
--- let centroid plus p1 p2 = 
---   let (x1, size1) = p1 in
---   let (x2, size2) = p2 in 
---   (plus x1 x2, size1 + size2)
--- 
--- let update_centers div a ixs =
---   List.iter (fun (i, (x, size)) -> a.(i) <- div x size) ixs
---             (* ARRAY BOUNDS, DIV BY ZERO *)
--- 
--- let kmeans n dist plus div (points : 'a list) (centera : 'a array) =
---   assert (Array.length centera > 0); 
---   ffor 0 n begin fun _ ->
---     let point_centers   = map      (nearest dist centera) points      in
---     let center_clusters = group    point_centers                      in 
---     let new_centers     = reduce   (centroid plus) center_clusters    in
---     update_centers div centera new_centers
---   end  
-
-
-\begin{code}
-
-{-# LANGUAGE ScopedTypeVariables, TypeSynonymInstances, FlexibleInstances #-}
-
-module Data.KMeans (kmeans, kmeansGen) where
-
-import Data.List (sort, span, minimumBy)
-import Data.Function (on)
-import Data.Ord (comparing)
-import Language.Haskell.Liquid.Prelude (liquidAssert, liquidError)
-
-{-@ groupBy :: (a -> a -> Bool) 
-            -> [a] 
-            -> [{v:[a] | len(v) > 0}] 
-  @-}
-
-groupBy           :: (a -> a -> Bool) -> [a] -> [[a]]
-groupBy _  []     =  []
-groupBy eq (x:xs) =  (x:ys) : groupBy eq zs
-                     where (ys,zs) = span (eq x) xs
-
-{-@ type Vec a N      = { v : [a] | (len v) = N } @-}
-
-{-@ type Matrix a N M = Vec (Vec a N) M           @-}
-
-{-@ type PosInt       = {v:Int | v > 0}           @-}
-
-
-{-@ transpose :: n:Int -> m:PosInt -> Matrix a n m -> Matrix a m n @-}
-transpose     :: Int -> Int -> [[a]] -> [[a]]
-
-transpose 0 _ _              = []
-transpose n m ((x:xs) : xss) = (x : map head xss) : transpose (n - 1) m (xs : map tail xss)
--- transpose n m ((x:xs) : xss) = (x : [h | (h:_) <- xss]) : transpose (xs : [ t | (_:t) <- xss])
-transpose n m ([] : _)       = liquidError "transpose1" 
-transpose n m []             = liquidError "transpose2"
-
-
-data WrapType b a = WrapType {getVect :: b, getVal :: a}
-
-instance Eq (WrapType [Double] a) where
-   (==) = (==) `on` getVect
-
-instance Ord (WrapType [Double] a) where
-    compare = comparing getVect
-
--- dist ::  [Double] -> [Double] -> Double 
-dist a b = sqrt . sum $ zipWith (\x y -> (x - y) ^ 2) a b      -- zipWith dimensions
-
-safeDiv     :: (Fractional a) => a -> Int -> a
-safeDiv n 0 = liquidError "divide by zero"
-safeDiv n d = n / (fromIntegral d)
-
-
-centroid n points = map ((`safeDiv` m) . sum) points'              -- divide By Zero
-  where 
-    m             = length points 
-    points'       = transpose n m (map getVect points)
-
-
-recluster n clusters = recluster' n centroids points 
-  where 
-    points         = concat clusters 
-    centroids      = indexList $ map (centroid n) clusters
-    centeredPoints = [(closest n centroids (getVect p), p) | p <- points]
-    clusters'      = map (map snd)
-
-
-recluster' n centroids points = map (map snd) $ groupBy ((==) `on` fst) reclustered
-    where reclustered = sort [(closest n centroids (getVect p), p) | p <- points]
-
-
-closest :: Int -> [(Int, [Double])] -> [Double] -> Int
-closest (n :: Int) centroids point = minimumKey distances 
-  where 
-    distances = [(i, dist point ci) | (i, ci) <- icentroids ]
-
-minimumKey :: (Ord v) => [(k, v)] -> k
-minimumKey kvs = minimumBy (\x y -> compare (snd x) (snd y)) kvs
-
-indexList :: [a] -> [(Int, a)]
-indexList xs         = zip [1..(length xs)] xs
-
-
-
-
-
-{-@ part        :: n:{v:Int | v > 0} -> [a] -> [{v:[a] | len(v) > 0}] @-}
-part n []       = []
-part n ys@(_:_) = zs : part n zs' 
-                  where zs  = take n ys
-                        zs' = drop n ys
-
--- | Recluster points
-kmeans'' n clusters
-  | clusters == clusters' = clusters
-  | otherwise             = kmeans'' n clusters'
-  where clusters'         = recluster n clusters
-
-kmeans' n k points = kmeans'' n $ part l points
-    where l = max 1 ((length points + k - 1) `div` k)
-
--- | Cluster points in a Euclidian space, represented as lists of Doubles, into at most k clusters.
--- The initial clusters are chosen arbitrarily.
-{-@ kmeans :: n:Int 
-           -> k:Int 
-           -> points:[(Vec Double n)] 
-           -> [[(Vec Double n)]] 
-  @-}
-kmeans :: Int -> Int -> [[Double]] -> [[[Double]]]
-kmeans n = kmeansGen n id
-
--- | A generalized kmeans function. This function operates not on points, but an arbitrary type 
---   which may be projected into a Euclidian space. Since the projection may be chosen freely, 
--- this allows for weighting dimensions to different degrees, etc.
-
-{-@ kmeansGen :: n: Int -> f:(a -> (Vec Double n)) -> k:Int -> points:[a] -> [[a]] @-}
-kmeansGen :: Int -> (a -> [Double]) -> Int -> [a] -> [[a]]
-kmeansGen n f k points = map (map getVal) . kmeans' n k . map (\x -> WrapType (f x) x) $ points
-
-
-\end{code}
-
-
-
-Conclusions
------------
-
-1. How to do *K-Means Clustering* !
-
-2. Track precise length properties with **measures**
-
-3. Circumvent limitations of SMT with a touch of **dynamic** checking using **assumes**
-
-
-[vecbounds]:  /blog/2013/01/05/bounding-vectors.lhs/ 
-[ghclist]:    https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/List.lhs#L125
-[foldl1]:     http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html#foldl1
-[safeList]:   /blog/2013/01/31/safely-catching-a-list-by-its-tail.lhs/ 
-
-
-
diff --git a/docs/blog/todo/lets-talk-about-sets.lhs.markdown b/docs/blog/todo/lets-talk-about-sets.lhs.markdown
deleted file mode 100644
--- a/docs/blog/todo/lets-talk-about-sets.lhs.markdown
+++ /dev/null
@@ -1,671 +0,0 @@
----
-layout: post
-title: "Lets Talk About Sets"
-date: 2013-01-05 16:12
-comments: true
-external-url:
-categories: basic, measures, sets
-author: Ranjit Jhala
-published: false 
----
-
-In the posts so far, we've seen how LiquidHaskell allows you to use SMT 
-solvers to specify and verify *numeric* invariants -- denominators 
-that are non-zero, integer indices that are within the range of an 
-array, vectors that have the right number of dimensions and so on.
-
-However, SMT solvers are not limited to numbers, and in fact, support
-rather expressive logics. In the next couple of posts, lets see how 
-LiquidHaskell uses SMT to talk about **sets of values**, for example, 
-the contents of a list, and to specify and verify properties about 
-those sets.
-
-
-<pre><span class=hs-linenum>24: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>ListSets</span> <span class='hs-keyword'>where</span>
-</pre>
-
-Talking about Sets (In Logic)
-=============================
-
-First, we need a way to talk about sets in the refinement logic. We could
-roll our own special Haskell type, but why not just use the `Set a` type
-from `Data.Set`.
-
-
-<pre><span class=hs-linenum>35: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>filter</span><span class='hs-layout'>,</span> <span class='hs-varid'>split</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>36: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span>  <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>reverse</span><span class='hs-layout'>,</span> <span class='hs-varid'>filter</span><span class='hs-layout'>)</span>
-</pre>
-
-The above, also instructs LiquidHaskell to import in the various 
-specifications defined for the `Data.Set` module that we have *predefined* 
-in [Data/Set.spec][setspec] 
-
-Lets look at the specifications.
-
- The `embed` directive tells LiquidHaskell to model the **Haskell** 
-<pre><span class=hs-linenum>46: </span><span class='hs-keyword'>type</span> <span class='hs-varid'>constructor</span> <span class='hs-varop'>`Set`</span> <span class='hs-varid'>with</span> <span class='hs-varid'>the</span> <span class='hs-varop'>**</span><span class='hs-conid'>SMT</span><span class='hs-varop'>**</span> <span class='hs-keyword'>type</span> <span class='hs-varid'>constructor</span> <span class='hs-varop'>`Set_Set`</span><span class='hs-varop'>.</span>
-<span class=hs-linenum>47: </span>
-<span class=hs-linenum>48: </span><span class='hs-keyword'>module</span> <span class='hs-varid'>spec</span> <span class='hs-conid'>Data</span><span class='hs-varop'>.</span><span class='hs-conid'>Set</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>49: </span>
-<span class=hs-linenum>50: </span><span class='hs-definition'>embed</span> <span class='hs-conid'>Set</span> <span class='hs-keyword'>as</span> <span class='hs-conid'>Set_Set</span>
-</pre>
-
- First, we define the logical operators (i.e. `measure`s) 
-<pre><span class=hs-linenum>54: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_sng</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>                    <span class='hs-comment'>-- ^ singleton</span>
-<span class=hs-linenum>55: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_cup</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>   <span class='hs-comment'>-- ^ union</span>
-<span class=hs-linenum>56: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_cap</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>   <span class='hs-comment'>-- ^ intersection</span>
-<span class=hs-linenum>57: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_dif</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>   <span class='hs-comment'>-- ^ difference </span>
-</pre>
-
- Next, we define predicates on `Set`s 
-<pre><span class=hs-linenum>61: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_emp</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>                 <span class='hs-comment'>-- ^ emptiness</span>
-<span class=hs-linenum>62: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_mem</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>            <span class='hs-comment'>-- ^ membership</span>
-<span class=hs-linenum>63: </span><span class='hs-definition'>measure</span> <span class='hs-conid'>Set_sub</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>      <span class='hs-comment'>-- ^ inclusion </span>
-</pre>
-
-
-Interpreted Operations
-----------------------
-
-The above operators are *interpreted* by the SMT solver. That is, just 
-like the SMT solver *"knows that"* 
-
-    2 + 2 == 4
-
-the SMT solver *"knows that"* 
-
-    (Set_sng 1) == (Set_cap (Set_sng 1) (Set_cup (Set_sng 2) (Set_sng 1)))
-
-This is because, the above formulas belong to a decidable Theory of Sets
-which can be reduced to McCarthy's more general [Theory of Arrays][mccarthy]. 
-See [this recent paper][z3cal] if you want to learn more about how modern SMT 
-solvers *"know"* the above equality holds...
-
-Talking about Sets (In Code)
-============================
-
-Of course, the above operators exist purely in the realm of the 
-refinement logic, beyond the grasp of the programmer.
-
-To bring them down (or up, or left or right) within reach of Haskell code, 
-we can simply *assume* that the various public functions in `Data.Set` do 
-the *Right Thing* i.e. produce values that reflect the logical set operations:
-
- First, the functions that create `Set` values
-<pre><span class=hs-linenum>95: </span><span class='hs-definition'>empty</span>     <span class='hs-keyglyph'>::</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_emp</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>96: </span><span class='hs-definition'>singleton</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sng</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
- Next, the functions that operate on elements and `Set` values
-<pre><span class=hs-linenum>100: </span><span class='hs-definition'>insert</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_cup</span> <span class='hs-varid'>xs</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sng</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>101: </span><span class='hs-definition'>delete</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_dif</span> <span class='hs-varid'>xs</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sng</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
- Then, the binary `Set` operators
-<pre><span class=hs-linenum>105: </span><span class='hs-definition'>union</span>        <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_cup</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>106: </span><span class='hs-definition'>intersection</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_cap</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>107: </span><span class='hs-definition'>difference</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_dif</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
- And finally, the predicates on `Set` values:
-<pre><span class=hs-linenum>111: </span><span class='hs-definition'>isSubsetOf</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conid'>Prop</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;=&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sub</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>112: </span><span class='hs-definition'>member</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Bool</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conid'>Prop</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-varop'>&lt;=&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_mem</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
-**Note:** Oh quite. We shouldn't and needn't really *assume*, but should and
-will *guarantee* that the functions from `Data.Set` implement the above types. 
-But thats a story for another day...
-
-Proving Theorems With LiquidHaskell
-===================================
-
-OK, lets take our refined operators from `Data.Set` out for a spin!
-One pleasant consequence of being able to precisely type the operators 
-from `Data.Set` is that we have a pleasant interface for using the SMT
-solver to *prove theorems* about sets, while remaining firmly rooted in
-Haskell. 
-
-First, lets write a simple function that asserts that its input is `True`
-
-
-<pre><span class=hs-linenum>131: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>boolAssert</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>{v:</span> <span class='hs-conid'>Bool</span> <span class='hs-keyword'>| (Prop v)}</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Bool</span> <span class='hs-keyword'>| (Prop v)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>132: </span><a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV]))}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV]))}</span><span class='hs-definition'>boolAssert</span></a> <span class='hs-conid'>True</span>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV])),(VV = True)}</span><span class='hs-conid'>True</span></a>
-<span class=hs-linenum>133: </span><span class='hs-definition'>boolAssert</span> <span class='hs-conid'>False</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>[(GHC.Types.Char)] -&gt; {VV : (GHC.Types.Bool) | false}</span><span class='hs-varid'>error</span></a> <a class=annot href="#"><span class=annottext>{VV : [(GHC.Types.Char)] | (len([VV]) &gt;= 0)}</span><span class='hs-str'>"boolAssert: False? Never!"</span></a>
-</pre>
-
-Now, we can use `boolAssert` to write some simple properties. (Yes, these do
-indeed look like QuickCheck properties -- but here, instead of generating
-tests and executing the code, the type system is proving to us that the
-properties will *always* evaluate to `True`) 
-
-Lets check that `intersection` is commutative ...
-
-
-<pre><span class=hs-linenum>144: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>prop_cap_comm</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>145: </span><span class='hs-definition'>prop_cap_comm</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span>
-<span class=hs-linenum>146: </span><a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int)) -&gt; (GHC.Types.Bool)</span><span class='hs-definition'>prop_cap_comm</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>y</span></a> 
-<span class=hs-linenum>147: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV]))}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV]))}</span><span class='hs-varid'>boolAssert</span></a> 
-<span class=hs-linenum>148: </span>  <a class=annot href="#"><span class=annottext>({VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
- -&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)})
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}</span><span class='hs-varop'>$</span></a> <a class=annot href="#"><span class=annottext>(GHC.Types.Bool)</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cap([xs;
-                                                              ys]))}</span><span class='hs-varop'>`intersection`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>GHC.Classes.Eq (Data.Set.Base.Set GHC.Types.Int)</span><span class='hs-varop'>==</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cap([xs;
-                                                              ys]))}</span><span class='hs-varop'>`intersection`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a><span class='hs-layout'>)</span>
-</pre>
-
-that `union` is associative ...
-
-
-<pre><span class=hs-linenum>154: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>prop_cup_assoc</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>155: </span><span class='hs-definition'>prop_cup_assoc</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span>
-<span class=hs-linenum>156: </span><a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int))
--&gt; (GHC.Types.Bool)</span><span class='hs-definition'>prop_cup_assoc</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>z</span></a> 
-<span class=hs-linenum>157: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV]))}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV]))}</span><span class='hs-varid'>boolAssert</span></a> 
-<span class=hs-linenum>158: </span>  <a class=annot href="#"><span class=annottext>({VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
- -&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)})
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}</span><span class='hs-varop'>$</span></a> <a class=annot href="#"><span class=annottext>(GHC.Types.Bool)</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = z)}</span><span class='hs-varid'>z</span></a><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>x:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; y:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (GHC.Types.Bool) | ((? Prop([VV])) &lt;=&gt; (x = y))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = z)}</span><span class='hs-varid'>z</span></a>
-</pre>
-
-and that `union` distributes over `intersection`.
-
-
-<pre><span class=hs-linenum>164: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>prop_cap_dist</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>165: </span><span class='hs-definition'>prop_cap_dist</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span>
-<span class=hs-linenum>166: </span><a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int))
--&gt; (GHC.Types.Bool)</span><span class='hs-definition'>prop_cap_dist</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>z</span></a> 
-<span class=hs-linenum>167: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV]))}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV]))}</span><span class='hs-varid'>boolAssert</span></a> 
-<span class=hs-linenum>168: </span>  <a class=annot href="#"><span class=annottext>({VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
- -&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)})
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}</span><span class='hs-varop'>$</span></a>  <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cap([xs;
-                                                              ys]))}</span><span class='hs-varop'>`intersection`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = z)}</span><span class='hs-varid'>z</span></a><span class='hs-layout'>)</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>169: </span>  <a class=annot href="#"><span class=annottext>x:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; y:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (GHC.Types.Bool) | ((? Prop([VV])) &lt;=&gt; (x = y))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cap([xs;
-                                                              ys]))}</span><span class='hs-varop'>`intersection`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cap([xs;
-                                                              ys]))}</span><span class='hs-varop'>`intersection`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = z)}</span><span class='hs-varid'>z</span></a><span class='hs-layout'>)</span> 
-</pre>
-  
-Of course, while we're at it, lets make sure LiquidHaskell 
-doesn't prove anything thats *not* true ...
-
-
-<pre><span class=hs-linenum>176: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>prop_cup_dif_bad</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>177: </span><span class='hs-definition'>prop_cup_dif_bad</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Set</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span>
-<span class=hs-linenum>178: </span><a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))
--&gt; (Data.Set.Base.Set (GHC.Types.Int)) -&gt; (GHC.Types.Bool)</span><span class='hs-definition'>prop_cup_dif_bad</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-varid'>y</span></a>
-<span class=hs-linenum>179: </span>   <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>{VV : (GHC.Types.Bool) | (? Prop([VV]))}
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV]))}</span><span class='hs-varid'>boolAssert</span></a></span> 
-<span class=hs-linenum>180: </span>   <a class=annot href="#"><span class=annottext>((GHC.Types.Bool)
- -&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)})
--&gt; (GHC.Types.Bool)
--&gt; {VV : (GHC.Types.Bool) | (? Prop([VV])),(VV != False)}</span><span class='hs-varop'>$</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; y:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (GHC.Types.Bool) | ((? Prop([VV])) &lt;=&gt; (x = y))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>(Data.Set.Base.Set (GHC.Types.Int))</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_cup([xs;
-                                                              ys]))}</span><span class='hs-varop'>`union`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>xs:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; ys:(Data.Set.Base.Set (GHC.Types.Int))
--&gt; {VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = Set_dif([xs;
-                                                              ys]))}</span><span class='hs-varop'>`difference`</span></a> <a class=annot href="#"><span class=annottext>{VV : (Data.Set.Base.Set (GHC.Types.Int)) | (VV = y)}</span><span class='hs-varid'>y</span></a>
-</pre>
-
-Hmm. You do know why the above doesn't hold, right? It would be nice to
-get a *counterexample* wouldn't it. Well, for the moment, there is
-QuickCheck!
-
-Thus, the refined types offer a nice interface for interacting with the SMT
-solver in order to prove theorems in LiquidHaskell. (BTW, The [SBV project][sbv]
-describes another approach for using SMT solvers from Haskell, without the 
-indirection of refinement types.)
-
-While the above is a nice warm up exercise to understanding how
-LiquidHaskell reasons about sets, our overall goal is not to prove 
-theorems about set operators, but instead to specify and verify 
-properties of programs. 
-
-
-The Set of Values in a List
-===========================
-
-Lets see how we might reason about sets of values in regular Haskell programs. 
-
-Lets begin with Lists, the jack-of-all-data-types. Now, instead of just
-talking about the **number of** elements in a list, we can write a measure
-that describes the **set of** elements in a list:
-
- A measure for the elements of a list, from [Data/Set.spec][setspec]
-<pre><span class=hs-linenum>208: </span>
-<span class=hs-linenum>209: </span><span class='hs-definition'>measure</span> <span class='hs-varid'>listElts</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>210: </span><span class='hs-definition'>listElts</span> <span class='hs-layout'>(</span><span class='hs-conid'>[]</span><span class='hs-layout'>)</span>    <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varop'>?</span> <span class='hs-conid'>Set_emp</span><span class='hs-layout'>(</span><span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>211: </span><span class='hs-definition'>listElts</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_cup</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sng</span> <span class='hs-varid'>x</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>}</span>
-</pre>
-
-That is, `(elts xs)` describes the set of elements contained in a list `xs`.
-
-Next, to make the specifications concise, lets define a few predicate aliases:
-
-
-<pre><span class=hs-linenum>219: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>predicate</span> <span class='hs-conid'>SameElts</span>  <span class='hs-conid'>X</span> <span class='hs-conid'>Y</span>   <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>X</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>Y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>                        <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>220: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>predicate</span> <span class='hs-conid'>SubElts</span>   <span class='hs-conid'>X</span> <span class='hs-conid'>Y</span>   <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_sub</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>X</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>Y</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>                   <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>221: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>predicate</span> <span class='hs-conid'>UnionElts</span> <span class='hs-conid'>X</span> <span class='hs-conid'>Y</span> <span class='hs-conid'>Z</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>X</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>Set_cup</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>Y</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>listElts</span> <span class='hs-conid'>Z</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-A Trivial Identity
-------------------
-
-OK, now lets write some code to check that the `elts` measure is sensible!
-
-
-<pre><span class=hs-linenum>230: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>listId</span>    <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-keyword'>| (SameElts v xs)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>231: </span><a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; {VV : [a] | (len([VV]) = len([x1])),
-               (listElts([VV]) = Set_cup([listElts([x1]); listElts([x1])])),
-               (listElts([VV]) = listElts([x1])),
-               (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-definition'>listId</span></a> <span class='hs-conid'>[]</span>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-{VV : [{VV : a | false}]&lt;p&gt; | (? Set_emp([listElts([VV])])),
-                              (len([VV]) = 0)}</span><span class='hs-conid'>[]</span></a>
-<span class=hs-linenum>232: </span><span class='hs-definition'>listId</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; {VV : [a] | (len([VV]) = len([x1])),
-               (listElts([VV]) = Set_cup([listElts([x1]); listElts([x1])])),
-               (listElts([VV]) = listElts([x1])),
-               (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>listId</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-That is, LiquidHaskell checks that the set of elements of the output list
-is the same as those in the input.
-
-A Less Trivial Identity
------------------------
-
-Next, lets write a function to `reverse` a list. Of course, we'd like to
-verify that `reverse` doesn't leave any elements behind; that is that the 
-output has the same set of values as the input list. This is somewhat more 
-interesting because of the *tail recursive* helper `go`. Do you understand 
-the type that is inferred for it? (Put your mouse over `go` to see the 
-inferred type.)
-
-
-<pre><span class=hs-linenum>249: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>reverse</span>       <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-keyword'>| (SameElts v xs)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>250: </span><a class=annot href="#"><span class=annottext>forall a. xs:[a] -&gt; {VV : [a] | (listElts([VV]) = listElts([xs]))}</span><span class='hs-definition'>reverse</span></a>           <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{VV : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (len([VV]) = 0)}
--&gt; x2:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([x2])])),
-               (listElts([VV]) = Set_cup([listElts([x2]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{VV : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (? Set_emp([listElts([VV])])),
-                                           (len([VV]) = 0),
-                                           (len([VV]) &gt;= 0)}</span><span class='hs-conid'>[]</span></a> 
-<span class=hs-linenum>251: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>252: </span>    <a class=annot href="#"><span class=annottext>acc:{VV : [a] | (len([VV]) &gt;= 0)}
--&gt; x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([acc]);
-                                          listElts([x1])])),
-               (listElts([VV]) = Set_cup([listElts([x1]); listElts([acc])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (len([VV]) &gt;= 0)}</span><span class='hs-varid'>acc</span></a> <span class='hs-conid'>[]</span>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = acc),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>acc</span></a>
-<span class=hs-linenum>253: </span>    <span class='hs-varid'>go</span> <span class='hs-varid'>acc</span> <span class='hs-layout'>(</span><span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-varid'>ys</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>acc:{VV : [a] | (len([VV]) &gt;= 0)}
--&gt; x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([acc]);
-                                          listElts([x1])])),
-               (listElts([VV]) = Set_cup([listElts([x1]); listElts([acc])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>go</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV = y)}</span><span class='hs-varid'>y</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{VV : [a] | (VV = acc),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>acc</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-</pre>
-
-Appending Lists
----------------
-
-Next, here's good old `append`, but now with a specification that states
-that the output indeed includes the elements from both the input lists.
-
-
-<pre><span class=hs-linenum>263: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>append</span>       <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyword'>| (UnionElts v xs ys) }</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>264: </span><a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; ys:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([ys])])),
-               (listElts([VV]) = Set_cup([listElts([ys]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-definition'>append</span></a> <span class='hs-conid'>[]</span>     <a class=annot href="#"><span class=annottext>[a]</span><span class='hs-varid'>ys</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-<span class=hs-linenum>265: </span><span class='hs-definition'>append</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-varid'>ys</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; ys:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([ys])])),
-               (listElts([VV]) = Set_cup([listElts([ys]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>append</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-</pre>
-
-Filtering Lists
----------------
-
-Lets round off the list trilogy, with `filter`. Here, we can verify
-that it returns a **subset of** the values of the input list.
-
-
-<pre><span class=hs-linenum>275: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>filter</span>      <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-keyword'>| (SubElts v xs)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>276: </span>
-<span class=hs-linenum>277: </span><a class=annot href="#"><span class=annottext>forall a.
-(a -&gt; (GHC.Types.Bool))
--&gt; x2:[a]
--&gt; {VV : [a] | (? Set_sub([listElts([VV]); listElts([x2])])),
-               (listElts([x2]) = Set_cup([listElts([x2]); listElts([VV])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-definition'>filter</span></a> <a class=annot href="#"><span class=annottext>a -&gt; (GHC.Types.Bool)</span><span class='hs-varid'>f</span></a> <span class='hs-conid'>[]</span>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-{VV : [{VV : a | false}]&lt;p&gt; | (? Set_emp([listElts([VV])])),
-                              (len([VV]) = 0)}</span><span class='hs-conid'>[]</span></a>
-<span class=hs-linenum>278: </span><span class='hs-definition'>filter</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>279: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>a -&gt; (GHC.Types.Bool)</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a>         <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(a -&gt; (GHC.Types.Bool))
--&gt; x2:[a]
--&gt; {VV : [a] | (? Set_sub([listElts([VV]); listElts([x2])])),
-               (listElts([x2]) = Set_cup([listElts([x2]); listElts([VV])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>filter</span></a> <a class=annot href="#"><span class=annottext>a -&gt; (GHC.Types.Bool)</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> 
-<span class=hs-linenum>280: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(a -&gt; (GHC.Types.Bool))
--&gt; x2:[a]
--&gt; {VV : [a] | (? Set_sub([listElts([VV]); listElts([x2])])),
-               (listElts([x2]) = Set_cup([listElts([x2]); listElts([VV])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>filter</span></a> <a class=annot href="#"><span class=annottext>a -&gt; (GHC.Types.Bool)</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-Merge Sort
-==========
-
-Lets conclude this entry with one larger example: `mergeSort`. 
-We'd like to verify that, well, the list that is returned 
-contains the same set of elements as the input list. 
-
-And so we will!
-
-But first, lets remind ourselves of how `mergeSort` works
-
-1. `split` the input list into two halves, 
-2. `sort`  each half, recursively, 
-3. `merge` the sorted halves to obtain the sorted list.
-
-
-Split
------
-
-We can `split` a list into two, roughly equal parts like so:
-
-
-<pre><span class=hs-linenum>305: </span><a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; ({VV : [a] | (? Set_sub([listElts([VV]); listElts([x1])])),
-                (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])])),
-                (len([VV]) &gt;= 0)} , {VV : [a] | (? Set_sub([listElts([VV]);
-                                                            listElts([x1])])),
-                                                (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                           listElts([VV])])),
-                                                (len([VV]) &gt;= 0)})&lt;\x1 VV -&gt; (? Set_sub([listElts([VV]);
-                                                                                         listElts([x1])])),
-                                                                             (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                                                        listElts([VV])])),
-                                                                             (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                                                        listElts([VV])])),
-                                                                             (len([VV]) &gt;= 0)&gt;</span><span class='hs-definition'>split</span></a> <span class='hs-conid'>[]</span>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a -&gt; b -&gt; Bool&gt;. x1:a -&gt; b&lt;p2 x1&gt; -&gt; (a , b)&lt;p2&gt;</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (? Set_emp([listElts([VV])])),
-                                           (len([VV]) = 0),
-                                           (len([VV]) &gt;= 0)}</span><span class='hs-conid'>[]</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (? Set_emp([listElts([VV])])),
-                                           (len([VV]) = 0),
-                                           (len([VV]) &gt;= 0)}</span><span class='hs-conid'>[]</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>306: </span><span class='hs-definition'>split</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a -&gt; b -&gt; Bool&gt;. x1:a -&gt; b&lt;p2 x1&gt; -&gt; (a , b)&lt;p2&gt;</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{VV : [a] | (? Set_sub([listElts([VV]); listElts([xs])])),
-            (VV = zs),
-            (VV = zs),
-            (len([VV]) = len([zs])),
-            (listElts([VV]) = Set_cup([listElts([zs]); listElts([zs])])),
-            (listElts([VV]) = listElts([zs])),
-            (listElts([xs]) = Set_cup([listElts([xs]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (listElts([zs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>zs</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (? Set_sub([listElts([VV]); listElts([xs])])),
-            (VV = ys),
-            (VV = ys),
-            (len([VV]) = len([ys])),
-            (listElts([VV]) = Set_cup([listElts([ys]); listElts([ys])])),
-            (listElts([VV]) = listElts([ys])),
-            (listElts([xs]) = Set_cup([listElts([xs]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (listElts([ys]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>307: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>308: </span>    <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : [a] | (? Set_sub([listElts([VV]); listElts([xs])])),
-            (VV = ys),
-            (len([VV]) = len([ys])),
-            (listElts([VV]) = Set_cup([listElts([ys]); listElts([ys])])),
-            (listElts([VV]) = listElts([ys])),
-            (listElts([xs]) = Set_cup([listElts([xs]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (listElts([ys]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (? Set_sub([listElts([VV]); listElts([xs])])),
-            (VV = zs),
-            (len([VV]) = len([zs])),
-            (listElts([VV]) = Set_cup([listElts([zs]); listElts([zs])])),
-            (listElts([VV]) = listElts([zs])),
-            (listElts([xs]) = Set_cup([listElts([xs]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (listElts([xs]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (listElts([zs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>zs</span></a><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-x1:[a]
--&gt; ({VV : [a] | (? Set_sub([listElts([VV]); listElts([x1])])),
-                (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])])),
-                (len([VV]) &gt;= 0)} , {VV : [a] | (? Set_sub([listElts([VV]);
-                                                            listElts([x1])])),
-                                                (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                           listElts([VV])])),
-                                                (len([VV]) &gt;= 0)})&lt;\x1 VV -&gt; (? Set_sub([listElts([VV]);
-                                                                                         listElts([x1])])),
-                                                                             (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                                                        listElts([VV])])),
-                                                                             (listElts([x1]) = Set_cup([listElts([x1]);
-                                                                                                        listElts([VV])])),
-                                                                             (len([VV]) &gt;= 0)&gt;</span><span class='hs-varid'>split</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-LiquidHaskell verifies that the relevant property of `split` is
-
-
-<pre><span class=hs-linenum>314: </span><span class='hs-keyword'>{-@</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>ys</span> <span class='hs-varid'>zs</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>UnionElts</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span> <span class='hs-varid'>zs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-The funny syntax with angle brackets simply says that the output is a 
-a *pair* `(ys, zs)` whose union is the list of elements of the input.
-
-(**Aside** yes, this is indeed a dependent tuple; we will revisit tuples
-later to understand whats going on with the odd syntax.)
-
-Merge
------
-
-Dually, we `merge` two (sorted) lists like so:
-
-
-<pre><span class=hs-linenum>329: </span><a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-xs:[a]
--&gt; x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([xs])])),
-               (listElts([VV]) = Set_cup([listElts([xs]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-definition'>merge</span></a> <a class=annot href="#"><span class=annottext>[a]</span><span class='hs-varid'>xs</span></a> <span class='hs-conid'>[]</span>         <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>330: </span><span class='hs-definition'>merge</span> <span class='hs-conid'>[]</span> <span class='hs-varid'>ys</span>         <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-<span class=hs-linenum>331: </span><span class='hs-definition'>merge</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>yozz</span><span class='hs-conop'>:</span><span class='hs-varid'>ys</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>332: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x:a
--&gt; y:a -&gt; {VV : (GHC.Types.Bool) | ((? Prop([VV])) &lt;=&gt; (x &lt;= y))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV = yozz)}</span><span class='hs-varid'>yozz</span></a>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-xs:[a]
--&gt; x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([xs])])),
-               (listElts([VV]) = Set_cup([listElts([xs]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV = yozz)}</span><span class='hs-varid'>yozz</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>333: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV = yozz)}</span><span class='hs-varid'>yozz</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-xs:[a]
--&gt; x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([xs])])),
-               (listElts([VV]) = Set_cup([listElts([xs]); listElts([x1])])),
-               (len([VV]) &gt;= 0)}</span><span class='hs-varid'>merge</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-y:a
--&gt; ys:[a&lt;p y&gt;]&lt;p&gt;
--&gt; {VV : [a]&lt;p&gt; | (len([VV]) = (1 + len([ys]))),
-                  (listElts([VV]) = Set_cup([Set_sng([y]); listElts([ys])]))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{VV : [a] | (VV = xs),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),(len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-</pre>
-
-As you might expect, the elements of the returned list are the union of the
-elements of the input, or as LiquidHaskell might say,
-
-
-<pre><span class=hs-linenum>340: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>merge</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyword'>| (UnionElts v x y)}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-Sort
-----
-
-Finally, we put all the pieces together by
-
-
-<pre><span class=hs-linenum>349: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>mergeSort</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyword'>| (SameElts v xs)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>350: </span><a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([x1])])),
-               (listElts([VV]) = listElts([x1])),
-               (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])]))}</span><span class='hs-definition'>mergeSort</span></a> <span class='hs-conid'>[]</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: a -&gt; a -&gt; Bool&gt;.
-{VV : [{VV : a | false}]&lt;p&gt; | (? Set_emp([listElts([VV])])),
-                              (len([VV]) = 0)}</span><span class='hs-conid'>[]</span></a>
-<span class=hs-linenum>351: </span><span class='hs-definition'>mergeSort</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (? Set_emp([listElts([VV])])),
-                                           (len([VV]) = 0),
-                                           (len([VV]) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV = x)}</span><span class='hs-varid'>x</span></a><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>352: </span><span class='hs-definition'>mergeSort</span> <span class='hs-varid'>xs</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x:[a]
--&gt; y:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x]);
-                                          listElts([y])]))}</span><span class='hs-varid'>merge</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([x1])])),
-               (listElts([VV]) = listElts([x1])),
-               (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])]))}</span><span class='hs-varid'>mergeSort</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),
-            (VV = ys),
-            (len([VV]) = len([ys])),
-            (listElts([VV]) = Set_cup([listElts([ys]); listElts([ys])])),
-            (listElts([VV]) = listElts([ys])),
-            (listElts([ys]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall a.
-(GHC.Classes.Ord a) =&gt;
-x1:[a]
--&gt; {VV : [a] | (listElts([VV]) = Set_cup([listElts([x1]);
-                                          listElts([x1])])),
-               (listElts([VV]) = listElts([x1])),
-               (listElts([x1]) = Set_cup([listElts([x1]); listElts([VV])]))}</span><span class='hs-varid'>mergeSort</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = zs),
-            (VV = zs),
-            (len([VV]) = len([zs])),
-            (listElts([VV]) = Set_cup([listElts([zs]); listElts([zs])])),
-            (listElts([VV]) = listElts([zs])),
-            (listElts([zs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>zs</span></a><span class='hs-layout'>)</span> 
-<span class=hs-linenum>353: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>354: </span>    <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : [a] | (VV = ys),
-            (len([VV]) = len([ys])),
-            (listElts([VV]) = Set_cup([listElts([ys]); listElts([ys])])),
-            (listElts([VV]) = listElts([ys])),
-            (listElts([ys]) = Set_cup([listElts([ys]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV = zs),
-            (len([VV]) = len([zs])),
-            (listElts([VV]) = Set_cup([listElts([zs]); listElts([zs])])),
-            (listElts([VV]) = listElts([zs])),
-            (listElts([zs]) = Set_cup([listElts([zs]); listElts([VV])])),
-            (len([VV]) &gt;= 0)}</span><span class='hs-varid'>zs</span></a><span class='hs-layout'>)</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>xs:[a]
--&gt; ([a] , [a])&lt;\ys VV -&gt; (listElts([xs]) = Set_cup([listElts([ys]);
-                                                    listElts([VV])]))&gt;</span><span class='hs-varid'>split</span></a> <a class=annot href="#"><span class=annottext>{VV : [a] | (len([VV]) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-The type given to `mergeSort`guarantees that the set of elements in the 
-output list is indeed the same as in the input list. Of course, it says 
-nothing about whether the list is *actually sorted*. 
-
-Well, Rome wasn't built in a day...
-
-[sbv]:      https://github.com/LeventErkok/sbv
-[setspec]:  https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/Data/Set.spec
-[mccarthy]: http://www-formal.stanford.edu/jmc/towards.ps
-[z3cal]:    http://research.microsoft.com/en-us/um/people/leonardo/fmcad09.pdf
diff --git a/docs/blog/todo/red-black-intro.lhs b/docs/blog/todo/red-black-intro.lhs
deleted file mode 100644
--- a/docs/blog/todo/red-black-intro.lhs
+++ /dev/null
@@ -1,111 +0,0 @@
----
-layout: post
-title: "Composing Specifications: Red Black Trees" 
-date: 2014-04-05 16:12
-author: Ranjit Jhala
-published: false 
-comments: true
-external-url:
-categories: measures, abstract-refinements, red-black 
----
-
-TODO: **Conjoining Specifications** lamport. 
-TODO: composing, and, for example, 
-TODO: red-black trees.
-
-[Red Black trees][RBTwiki] trees are a classic, cold-war era, 
-data structure used to efficiently represent sets, using trees
-whose nodes are labeled by the set's elements, and additionally, 
-are colored *red* or *black*. 
-
-The key to efficiency is that the the trees be *balanced*. 
-
-Of course, the easiest way to do this is to just add a *height* 
-label and check that the difference of heights at each node is 
-bounded (cf. [AVL trees][AVLTwiki]). But, back in the olden 
-days, every bit counted -- the super cunning thing about 
-Red-Black Trees is that they ensure balancedness, at the 
-throwaway price of a *single bit* per node.
-
-The catch is that the invariants are devilishly tricky.
-
-<!-- more -->
-
-1. **Order:** Each node's value is between those in its left and right subtrees,
-2. **Color:** Each red node's children are colored black,
-3. **Height:** Each root-to-leaf path has the same number of black nodes.
-
-There are ways to encode various subsets of these using 
-GADTs and such, but, like [Appel][RBTappel], I find the 
-encodings rather too clever as they require a variety 
-of different types and constructors to capture each 
-invariant. 
-
-One advantage of refinements is we fix the data type, 
-and can then *pick and choose* which invariants we want
-to verify, and *compose* them, quite trivially, via
-conjunction.
-
-Red Black Trees
----------------
-
-Lets start with the basic type describing trees.
-
-\begin{code}
-data RBTree a = Leaf 
-              | Node Color a !(RBTree a) !(RBTree a)
-              deriving (Show)
-\end{code}
-
-A tree is either a `Leaf` (an empty set) or a `Node c x l r` where:
-
-* `x` is the value at the node, 
-* `l` and `r` are the left and right subtrees, and
-* `c` is either `B` (black) or `R` (red). 
-
-\begin{code}
-data Color    = B -- ^ Black
-              | R -- ^ Red
-              deriving (Eq,Show)
-\end{code}
-
-Intuitively, the set denoted by a tree is the set of values at 
-the nodes of the tree.
-
-Over the next few posts, we will develop an implementation 
-([based off this][coqRBT]) of a set library using the `RBTree` 
-datatype. In particular, we will implement the API:
-
-\begin{code} <div/>
-empty  :: RBTree a
-member :: a -> RBTree a -> Bool
-insert :: a -> RBTree a -> RBTree a
-delete :: a -> RBTree a -> RBTree a
-toList :: RBTree a -> [a] 
-\end{code}
-
-and will use LiquidHaskell to *directly* and *compositionally* 
-specify and enforce the various invariants.
-
-Continue to:
-
-* [Order][rbtOrder]
-
-Coming soon:
-
-* Color
-* Height
-* Compose
-
-[rbtOrder]   : /blog/2014/04/07/red-black-order.lhs/ 
-
-<!--
-
-* [Color][rbtColor]
-* [Height][rbtHeight]
-* [Compose][rbtAll]
-
-[rbtColor]   : /blog/2014/04/14/red-black-color.lhs/ 
-[rbtHeight]  : /blog/2014/04/21/red-black-height.lhs/ 
-[rbtCompose] : /blog/2014/04/28/red-black-compose.lhs/
--->
diff --git a/docs/blog/todo/red-black-order.lhs b/docs/blog/todo/red-black-order.lhs
deleted file mode 100644
--- a/docs/blog/todo/red-black-order.lhs
+++ /dev/null
@@ -1,254 +0,0 @@
----
-layout: post
-title: "Red-Black Trees: Order"
-date: 2014-04-05 16:12
-author: Ranjit Jhala
-published: false 
-comments: true
-external-url:
-categories: measures, abstract-refinements 
-demo: RBTree-ord.hs
----
-
-A data structure that implements a *set* interface, must 
-provide an efficient way to determine *membership*, i.e. 
-a function 
-
-\begin{code}
-member :: a -> RBTree a -> Bool
-\end{code}
-
-where `elem x xs` returns `True` iff `x` is in the set denoted by `xs`.
-
-Red Black trees are use 
-
-To enable effici
-
-Abstract Refinements vs. Indices
---------------------------------
-
-Most formal accounts of Red Black trees eschew the order 
-invariant as it is rather cumbersome to encode using GADTs
-and indexed-types -- one must index the structure with lower
-and upper bounds, and appropriately adjust these bounds at 
-rotations. 
-
-
-TODO: **Conjoining Specifications** lamport. 
-TODO: composing, and, for example, 
-TODO: red-black trees.
-
-[Red Black trees][RBTwiki] trees are a classic, cold-war era, 
-data structure used to efficiently represent sets, using trees
-whose nodes are labeled by the set's elements, and additionally, 
-are colored *red* or *black*. 
-
-The key to efficiency is that the the trees be *balanced*. 
-
-Of course, the easiest way to do this is to just add a *height* 
-label and check that the difference of heights at each node is 
-bounded (cf. [AVL trees][AVLTwiki]). But, back in the olden 
-days, every bit counted -- the super cunning thing about 
-Red-Black Trees is that they ensure balancedness, at the 
-throwaway price of a *single bit* per node.
-
-The catch is that the invariants are devilishly tricky.
-
-<!-- more -->
-
-1. **Order:** Each node's value is between those in its left and right subtrees,
-2. **Color:** Each red node's children are colored black,
-3. **Height:** Each root-to-leaf path has the same number of black nodes.
-
-There are ways to encode various subsets of these using 
-GADTs and such, but, like [Appel][RBTappel], I find the 
-encodings rather too clever as they require a variety 
-of different types and constructors to capture each 
-invariant. 
-
-One advantage of refinements is we fix the data type, 
-and can then *pick and choose* which invariants we want
-to verify, and *compose* them, quite trivially, via
-conjunction.
-
-Continue to:
-
-* [Order][rbtOrder]
-* [Color][rbtColor]
-* [Height][rbtHeight]
-* [Composition][rbtAll]
-
-[rbtOrder]   : /blog/2014/04/07/red-black-order.lhs/ 
-[rbtColor]   : /blog/2014/04/14/red-black-color.lhs/ 
-[rbtHeight]  : /blog/2014/04/21/red-black-height.lhs/ 
-[rbtCompose] : /blog/2014/04/28/red-black-compose.lhs/
-
-
-Red-Black Trees
----------------
-
-Abstract Refinements
---------------------
-
-Ordered Trees
--------------
-
-
-Over the next several posts, lets see how to develop an
-RBTree library, using LiquidHaskell to directly and 
-compositionally specify and enforce the above invariants.
-
-
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination"   @-}
-module Foo (add, remove, deleteMin, deleteMin') where
-import Language.Haskell.Liquid.Prelude
-\end{code}
-
-</div>
-
-ADD
-
-\begin{code}
-data Color    = B -- ^ Black
-              | R -- ^ Red
-              deriving (Eq,Show)
-\end{code}
-
-\begin{code}
-data RBTree a = Leaf 
-              | Node Color a !(RBTree a) !(RBTree a)
-              deriving (Show)
-\end{code}
-
----------------------------------------------------------------------------
--- | Add an element -------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ add :: (Ord a) => a -> ORBT a -> ORBT a @-}
-add x s = makeBlack (ins x s)
-
-{-@ ins :: (Ord a) => a -> ORBT a -> ORBT a @-}
-ins kx Leaf             = Node R kx Leaf Leaf
-ins kx s@(Node B x l r) = case compare kx x of
-                            LT -> let t = lbal x (ins kx l) r in t 
-                            GT -> let t = rbal x l (ins kx r) in t 
-                            EQ -> s
-ins kx s@(Node R x l r) = case compare kx x of
-                            LT -> Node R x (ins kx l) r
-                            GT -> Node R x l (ins kx r)
-                            EQ -> s
-
----------------------------------------------------------------------------
--- | Delete an element ----------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ remove :: (Ord a) => a -> ORBT a -> ORBT a @-}
-remove x t = makeBlack (del x t)
-
-{-@ del              :: (Ord a) => a -> ORBT a -> ORBT a @-}
-del x Leaf           = Leaf
-del x (Node _ y a b) = case compare x y of
-   EQ -> append y a b 
-   LT -> case a of
-           Leaf         -> Node R y Leaf b
-           Node B _ _ _ -> lbalS y (del x a) b
-           _            -> let t = Node R y (del x a) b in t 
-   GT -> case b of
-           Leaf         -> Node R y a Leaf 
-           Node B _ _ _ -> rbalS y a (del x b)
-           _            -> Node R y a (del x b)
-
-{-@ append  :: y:a -> ORBT {v:a | v < y} -> ORBT {v:a | y < v} -> ORBT a @-}
-append :: a -> RBTree a -> RBTree a -> RBTree a
-
-append _ Leaf r                               
-  = r
-
-append _ l Leaf                               
-  = l
-
-append piv (Node R lx ll lr) (Node R rx rl rr)  
-  = case append piv lr rl of 
-      Node R x lr' rl' -> Node R x (Node R lx ll lr') (Node R rx rl' rr)
-      lrl              -> Node R lx ll (Node R rx lrl rr)
-
-append piv (Node B lx ll lr) (Node B rx rl rr)  
-  = case append piv lr rl of 
-      Node R x lr' rl' -> Node R x (Node B lx ll lr') (Node B rx rl' rr)
-      lrl              -> lbalS lx ll (Node B rx lrl rr)
-
-append piv l@(Node B _ _ _) (Node R rx rl rr)   
-  = Node R rx (append piv l rl) rr
-
-append piv l@(Node R lx ll lr) r@(Node B _ _ _) 
-  = Node R lx ll (append piv lr r)
-
----------------------------------------------------------------------------
--- | Delete Minimum Element -----------------------------------------------
----------------------------------------------------------------------------
-
-{-@ deleteMin  :: ORBT a -> ORBT a @-}
-deleteMin (Leaf)         = Leaf
-deleteMin (Node _ x l r) = makeBlack t
-  where 
-    (_, t)               = deleteMin' x l r
-
-
-{-@ deleteMin' :: k:a -> ORBT {v:a | v < k} -> ORBT {v:a | k < v} -> (a, ORBT a) @-}
-deleteMin' k Leaf r              = (k, r)
-deleteMin' x (Node R lx ll lr) r = (k, Node R x l' r)   where (k, l') = deleteMin' lx ll lr 
-deleteMin' x (Node B lx ll lr) r = (k, lbalS x l' r )   where (k, l') = deleteMin' lx ll lr 
-
----------------------------------------------------------------------------
--- | Rotations ------------------------------------------------------------
----------------------------------------------------------------------------
-
-lbalS k (Node R x a b) r              = Node R k (Node B x a b) r
-lbalS k l (Node B y a b)              = let t = rbal k l (Node R y a b) in t 
-lbalS k l (Node R z (Node B y a b) c) = Node R y (Node B k l a) (rbal z b (makeRed c))
-lbalS k l r                           = error "nein" 
-
-rbalS k l (Node R y b c)              = Node R k l (Node B y b c)
-rbalS k (Node B x a b) r              = let t = lbal k (Node R x a b) r in t 
-rbalS k (Node R x a (Node B y b c)) r = Node R y (lbal x (makeRed a) b) (Node B k c r)
-rbalS k l r                           = error "nein"
-
-lbal k (Node R y (Node R x a b) c) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k (Node R x a (Node R y b c)) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k l r                            = Node B k l r
-
-rbal x a (Node R y b (Node R z c d))  = Node R y (Node B x a b) (Node B z c d)
-rbal x a (Node R z (Node R y b c) d)  = Node R y (Node B x a b) (Node B z c d)
-rbal x l r                            = Node B x l r
-
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-
-makeRed (Node _ x l r)   = Node R x l r
-makeRed Leaf             = error "nein" 
-
-makeBlack Leaf           = Leaf
-makeBlack (Node _ x l r) = Node B x l r
-
----------------------------------------------------------------------------
--- | Specifications -------------------------------------------------------
----------------------------------------------------------------------------
-
--- | Ordered Red-Black Trees
-
-{-@ type ORBT a = RBTree <{\root v -> v < root }, {\root v -> v > root}> a @-}
-
--- | Binary Search Ordering
-
-{-@ data RBTree a <l :: a -> a -> Prop, r :: a -> a -> Prop>
-            = Leaf
-            | Node (c    :: Color)
-                   (key  :: a)
-                   (left :: RBTree <l, r> (a <l key>))
-                   (left :: RBTree <l, r> (a <r key>))
-  @-}
diff --git a/docs/blog/todo/telling-lies-old.lhs b/docs/blog/todo/telling-lies-old.lhs
deleted file mode 100644
--- a/docs/blog/todo/telling-lies-old.lhs
+++ /dev/null
@@ -1,122 +0,0 @@
----
-layout: post
-title: "LiquidHaskell Caught Telling Lies!"
-date: 2013-11-19 16:12
-comments: true
-external-url:
-categories: termination
-author: Niki Vazou
-published: false
-demo: TellingLies.hs
----
-
-If you used liquidHaskell lately, you may have noticed some type errors that
-just make no sense.
-Well, that is not a bug, but a ... **termination checker** failing to prove that
-your function terminates.
-
-LiquidHaskell, *by default*, performs a termination check while verifying your
-code.
-Of course the tool would be useless if it required all your functions
-to terminate.
-Instead, it just requires that non-terminating functions return unrefined
-results.
-We will shortly explain when and how one can turn off termination checking while preserve
-sound type checking.
-To do so, we should start by explaining why termination is requied. 
-
-<!-- more -->
-
-\begin{code}
-module TellingLies where
-
-import Prelude  hiding (repeat)
-import Language.Haskell.Liquid.Prelude (liquidAssert)
-\end{code}
-
-Why is Termination Analysis Required
--------------------------------------
-
-Consider a no-terminating function:
-
-\begin{code}
-{-@ foo :: Int -> {v:Int | false} @-}
-foo     :: Int -> Int
-foo n   = foo n
-\end{code}
-
-According to the *partial correctness property*
-the type signature for `foo` means that any
-value `foo` returns will satisfy the result refinement
-`false`. 
-Since `foo` never returns, 
-it can return *none* value, thus it trivially satisfies its
-type.
-
-Now, in an environment where `false` (i.e., `foo`'s result)
-exists, liquidHaskell can prove anything, 
-even the contradiction `0==1`:
-
-\begin{code}
-prop = liquidAssert ((\_ -> 0==1) (foo 0))
-\end{code}
-
-This is totally valid under *eager* evaluation, where
-to execute the assertion one should first compute the argument
-`foo 0` which never returns.
-But, it is not valid under haskell's *lazy* semantics
-where execution ignores the unused argument, and fails.
-
-From the above discussion we see that partial correctness is not enough to
-verify Haskell's lazy code.
-To restore soundness we require *total correctness*, or
-that each function terminates.
-This explains why termination checking is set as default to liquidHaskell (as is
-in many other verifiers, like Coq or Agda.)
-
-Turning off Termination Checking
---------------------------------
-
-Of course, you cannot prove termination of functions like `repeat`
-
-\begin{code}
-{-@ repeat :: a -> [a] @-}
-repeat     :: a -> [a]
-repeat a   = a : repeat a
-\end{code}
-
-Instead, you can mark `repeat` as `Lazy` to disable termination for these
-functions:
-\begin{code}
-{-@ Lazy repeat @-}
-\end{code}
-
-But, be careful!
-By marking a function as `Lazy` *you* also guarantee that *the result type
-cannot contain inconsistencies*.
-In our previous example, liquidHaskell typechecked the unsafe `prop`, just
-because we marked `foo` (who's return type contains inconsistency) as `Lazy`
-\begin{code}
-{-@ Lazy foo @-}
-\end{code}
-
-Even though it is hard to decide if a type can contain inconsistencies,
-trivially *unrefined types* (or types refined to `true`) cannot ever be resolved
-to `false`.
-In other words, it is always safe to mark as `Lazy` functions with unrefined
-result.
-
-\begin{code}Finally, you have the option to totally disable termination checking, using the `no-termination` flag:
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-
-Prevent liquidHaskell from Telling Lies
----------------------------------------
-
-In this post, we saw why termination is required for sound type checking and when
-it is safe to deactivate it.
-But still, we didn't discuss how to prevent the tool from telling lies, i.e., how
-to actually prove termination.
-Turns out that liquidHaskell is powerful enough to prove
-termination on a great number of functions, but this is a topic of another post.
diff --git a/docs/blog/todo/termination.lhs b/docs/blog/todo/termination.lhs
deleted file mode 100644
--- a/docs/blog/todo/termination.lhs
+++ /dev/null
@@ -1,288 +0,0 @@
----
-layout: post
-title: "Termination Checking"
-date: 2013-11-18 16:12
-comments: true
-external-url:
-categories: termination
-author: Niki Vazou
-published: false
-demo: Termination.hs
----
-
-If you used liquidHaskell lately, you may have noticed some type errors that
-just make no sense.
-Well, that is not a bug, but a ... **termination checker** failing to prove that
-your function terminates.
-
-In this post, we present how you can use liquidHaskell to prove termination on
-simple recursive functions and explain why termination is required for sound
-type checking.
-Of course liquidHaskell would be useless if it required that all your functions
-do terminate.
-Instead, it just requires that non-terminating functions return unrefined
-results.
-We will shortly explain how one can turn off termination checking while preserve
-sound type checking.
-
-<!-- more -->
-
-\begin{code}
-module Termination where
-
-import Prelude hiding (sum, (!!), repeat)
-import Data.List      (lookup)
-import Data.Maybe     (fromJust)
-
-import Language.Haskell.Liquid.Prelude (liquidAssert)
-\end{code}
-
-Termination Check with Refinement Types
----------------------------------------
-
-Consider a `Vec`tor that maps `Int`egers to `Val`ues:
-
-\begin{code}
-type Val   = Int
-data Vec   = V [(Int, Val)]
-
-(!!)       :: Vec -> Int -> Val
-(V a) !! i = case i `lookup` a of {Just v -> v; _ -> 0}
-\end{code}
-
-Let `sum a i` add the `i` first elements of the vector `a`:
-
-\begin{code}
-sum     :: Vec -> Int -> Val
-sum a 0 = 0
-sum a i = (a !! (i-1)) + sum a (i-1)
-\end{code}
-
-Does `sum` terminate?
-We observe that if `i` is not `0` then `sum i` will call `sum (i-1)`, otherwise
-it will return.
-This reasoning suffices to convince ourselves that `sum i` terminates for every
-natural number `i`.
-Formally, we shown that `sum` terminates because a *well-founded metric* (i.e., the
-natural number `i`) is decreasing at each iteration.
-Thus, to ensure termination it suffices to restrict `i` on Natural numbers,
-which we can do with a liquid-type signature.
-\begin{code}
-{-@ sum :: Vec -> Nat -> Val @-}
-\end{code}
-
-LiquidHaskell will apply the same reasoning to prove `sum`
-terminates:
-Conventionally, to typecheck `sum` we would check the body assuming an
-environment
-
-`a:Vec`, `i:Nat`, `sum:Vec -> Nat -> Val`
-
-Instead, we *weaken* the environment to 
-
-`a:Vec`, `i:Nat`, `sum:Vec -> {v:Nat| v < i} -> Val`
-
-Now, the type of `sum` stipulates that it *only* be recursively called with
-`Nat` (so well-founded) values that are *strictly less than* the current parameter `i`. 
-Since its body typechecks in this environment, `sum` terminates for
-every `i` on `Nat`s.
-
-Choosing the correct argument
------------------------------
-
-We saw that liquidHaskell can happily check that a Natural number is decreasing
-at each iteration; but it uses a na&#239;ve heuristic to choose which one. 
-For this post we can assume that it always chooses *the first* Integer. 
-
-So, a tail-recursive implementation of `sum`:
-\begin{code}
-{-@ sum' :: Vec -> Val -> Nat -> Val @-}
-sum' :: Vec -> Val -> Int -> Val
-sum' a acc 0 = acc + a!!0 
-sum' a acc i = sum' a (acc + a!!i) (i-1)
-\end{code}
-
-will fail, as liquidHaskell wants to prove that the `acc`umulator is the `Nat`ural
-number that
-decreases at each iteration.
-
-\begin{code}The remedy is simple. We can direct liquidHaskell to the correct argument `i` using a `Decrease` annotation: 
-{-@ Decrease sum' 3 @-}
-\end{code}
-which directs liquidHaskell to check whether the *third*
-argument (i.e., `i`) is decreasing.
-With this hint, liquidHaskell will happily verify that `sum'` is indeed a
-terminating function.
-
-Lexicographic Termination
--------------------------
-
-Lets complicate the things a little bit.
-To do so, lets compute the `sum` of a 2D `Vec`tor:
-
-\begin{code}
-data Vec2D    = V2D [((Int, Int), Val)]
-
-(!!!)         :: Vec2D -> (Int,Int) -> Val
-(V2D a) !!! i = case i `lookup` a of {Just v -> v; _ -> 0}
-\end{code}
-
-Now we write a `sum2D a n m` function that computes the sum of the first 
-`(n+1) (m+1)` elements of `a`
-
-\begin{code}
-{-@ sum2D :: Vec2D -> Nat -> Nat -> Val @-}
-sum2D :: Vec2D -> Int -> Int -> Val
-sum2D a n m = go n m
-  where 
-    {-@ Decrease go 1 2 @-}
-    go 0 0             = 0
-    go i j | j == 0    =  a!!!(i, 0) + go (i-1) m
-           | otherwise =  a!!!(i, j) + go i (j-1)
-\end{code}
-
-Here there is no decreasing argument, 
-if `j>0`, `j` decreases (line `139`), otherwise `i` decreases (line `138`).
-Though, liquidHaskell succeed in verifying that `sum2D` terminates and the reason
-is our `Decrease go 1 2` annotation.
-This annotation informs the tool that the decreasing measure is the
-*lexicographically ordered* pair `[i,j]`. 
-LiquidHaskell will verify that this pair is indeed decreasing: at each
-iteration either `i` decreases (line `138`) or `i` remains the same and `j`
-decreases (line `139`).
-
-\begin{code}An alternative annotation to express the above decreasing measure is:
-       {-@ go :: i:Nat -> j:Nat -> Val / [i, j] @-}
-\end{code}
-where after the type signature for `go` we write the list of lexicographic
-decreasing *expressions*.
-This mechanism, as we shall see, allows us to prove termination in functions
-where the decreasing measure in a *function* of the arguments.
-
-Decreasing expressions
-----------------------
-Back to our `1D` Vector, 
-we now define a function `sumFromTo a lo hi` that sums the elements form `a!!lo`
-to `a!!hi`:
-
-\begin{code}
-{-@ sumFromTo :: Vec -> lo:Nat -> hi:{v:Nat|v>=lo} -> Val @-}
-sumFromTo :: Vec -> Int -> Int ->  Val
-sumFromTo a lo hi = go lo hi
-  where 
-       {-@ go :: lo:Nat -> hi:{v:Nat|v>=lo} -> Val / [hi-lo] @-}
-        go lo hi | lo == hi  =  a!!lo
-                 | otherwise =  a!!lo + go (lo+1) hi
-\end{code}
-
-No argument is decreasing in this function, 
-but still it does terminate, as at each iteration `lo` is increased and
-execution will terminate when `lo` reaches `hi`.
-Here the decreasing measure is the expression `hi-lo`.
-LiquidHaskell has no way to generate such a measure, but,
-if the user generates it, i.e., by annotating `go`'s signature,
-liquidHaskell will happily check that `lo-hi` is indeed a well-founded measure (as it is
-a natural number) that decreases at each iteration.
-
-
-Powered with decreasing expressions and the `Decrease` hint,
-we can prove termination on a great number of functions 
-ranging from 
-ones defined on recursive data structures
-to mutual recursive ones. 
-Of course, we can never prove termination on non-terminating functions that
-naturally exist on haskell source code.
-So, we postpone 
-proving termination on more interesting functions
-and instead lets see how and when you can safely turn termination check off.
-
-Why is Termination Analysis Required
--------------------------------------
-
-Consider a no-terminating function:
-
-\begin{code}
-{-@ foo :: Int -> {v:Int | false} @-}
-foo     :: Int -> Int
-foo n   = foo n
-\end{code}
-
-According to the *partial correctness property*
-the type signature for `foo` means that any
-value `foo` returns will satisfy the result refinement
-`false`. 
-Since `foo` never returns, 
-it can return *none* value, thus it trivially satisfies its
-type.
-
-Now, in an environment where `false` (i.e., `foo`'s result)
-exists, liquidHaskell can prove anything, 
-even the contradiction `0==1`:
-
-\begin{code}
-prop = liquidAssert ((\_ -> 0==1) (foo 0))
-\end{code}
-
-This is totally valid under *eager* evaluation, where
-to execute the assertion one should first compute the argument
-`foo 0` which never returns.
-But, it is not valid under haskell's *lazy* semantics
-where execution ignores the unused argument, and fails.
-
-From the above discussion we see that partial correctness is not enough to
-verify Haskell's lazy code.
-To restore soundness we require *total correctness*, or
-that each function terminates.
-This explains why termination checking is set as default to liquidHaskell (as is
-in many other verifiers, like Coq or Agda.)
-
-Turning off Termination Checking
---------------------------------
-
-Of course, you cannot prove termination of functions like `repeat`
-
-\begin{code}
-{-@ repeat :: a -> [a] @-}
-repeat     :: a -> [a]
-repeat a   = a : repeat a
-\end{code}
-
-Instead, you can mark `repeat` as `Lazy` to disable termination for these
-functions:
-\begin{code}
-{-@ Lazy repeat @-}
-\end{code}
-
-But, be careful!
-By marking a function as `Lazy` *you* also guarantee that *the result type
-cannot contain inconsistencies*.
-In our previous example, liquidHaskell typechecked the unsafe `prop`, just
-because we marked `foo` (who's return type contains inconsistency) as `Lazy`
-\begin{code}
-{-@ Lazy foo @-}
-\end{code}
-
-Even though it is hard to decide if a type can contain inconsistencies,
-trivially *unrefined types* (or types refined to `true`) cannot ever be resolved
-to `false`.
-In other words, it is always safe to mark as `Lazy` functions with unrefined
-result.
-
-\begin{code} Finally, you have the option to totally disable termination checking, using the `no-termination` flag:
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-Conclusion
-----------
-
-In this post, 
-
-- We saw how to use liquidHaskell to prove termination of simple recursive
-  functions, and
-
-- We learned why termination is required for sound type checking and when
-  it is safe to deactivate it.
-
-Termination checking may sound a big demand,
-but soon we will see that liquidHaskell is powerful enough to prove
-termination on a great number of functions
diff --git a/docs/blog/todo/text-layout.png b/docs/blog/todo/text-layout.png
deleted file mode 100644
Binary files a/docs/blog/todo/text-layout.png and /dev/null differ
diff --git a/docs/blog/todo/text-lifecycle.png b/docs/blog/todo/text-lifecycle.png
deleted file mode 100644
Binary files a/docs/blog/todo/text-lifecycle.png and /dev/null differ
diff --git a/docs/blog/todo/verifying-efficient-sorting-algorithms.lhs b/docs/blog/todo/verifying-efficient-sorting-algorithms.lhs
deleted file mode 100644
--- a/docs/blog/todo/verifying-efficient-sorting-algorithms.lhs
+++ /dev/null
@@ -1,185 +0,0 @@
----
-layout: post
-title: "Verifing Efficient Sorting Algorithms"
-date: 2013-02-15 16:12
-comments: true
-external-url:
-categories: abstract-refinements
-author: Niki Vazou
-published: false
----
-
-
-In this example, we will see how abstract refinements can be used to verify
-complex sorting algorithms, like the ones implemented in `Data.List`.
-
-\begin{code}
-module GhcSort (sort, sort1, sort2) where
-\end{code}
-
-Once again, we defined the type of sorted lists as:
-
-\begin{code}
-{-@ type SList a = [a]<{v: a | (v >= fld)}> @-}
-\end{code}
-
-and we aim to prove that all sorting functions return a list if this type.
-
-QuickSort
----------
-
-Prelude used to implement the below variant of quicksort, as its sorting algorithm.
-
-First, we define `qsort`:
-\begin{code}
-qsort :: (Ord a) =>  a -> [a] -> [a] -> [a]
-qsort _ []     r = r
-qsort _ [x]    r = x:r
-qsort w (x:xs) r = qpart w x xs [] [] r
-\end{code}
-
-
-In `qsort w ys r`, `r` is a sorted list with values greater than `w` and `ys` is a non-sorted list with values lower or equal to `w`.
-If there is at most one element in `ys`, `qsort` returns the sorted list `ys++r`.
-Otherwise, `ys=(x:xs)`, and to short `ys`, `qsort` choses as _pivot element_ the `x` and calls `qpart`:
-
-\begin{code}
-qpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-qpart w x [] rlt rge r =
-    -- rlt and rge are in reverse order and must be sorted with an
-    -- anti-stable sorting
-    rqsort x rlt (x:rqsort w rge r)
-qpart w x (y:ys) rlt rge r =
-    case compare x y of
-        GT -> qpart w x ys (y:rlt) rge r
-        _  -> qpart w x ys rlt (y:rge) r
-\end{code}
-
-In `qpart w x xs rlt rge r`, `r` is a sorted list with values greater than `w`, all other argument lists are not sorted and their values are less or equal to `w`. Moreover, `rge` (`rlt`) has values greater or equal (less) than the pivot element `x`.
-`qpart` splits `xs` values between `rlt` and `rge` and when there are no more values in `xs` it calls `qsort` on these two lists to recursively sort them.
-But, since `qpart` reverses the order of equal values, it actually calls `rqsort` that behaves similar to `qsort`, apart from reversing once more the order of equal values: 
-
-\begin{code}
--- rqsort is as qsort but anti-stable, i.e. reverses equal elements
-rqsort :: (Ord a) => a -> [a] -> [a] -> [a]
-rqsort _ []     r = r
-rqsort _ [x]    r = x:r
-rqsort w (x:xs) r = rqpart w x xs [] [] r
-
-rqpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-rqpart w x [] rle rgt r =
-    qsort x rle (x:qsort w rgt r)
-rqpart w x (y:ys) rle rgt r =
-    case compare y x of
-        GT -> rqpart w x ys rle (y:rgt) r
-        _  -> rqpart w x ys (y:rle) rgt r
-\end{code}
-
-Finally, to sort a list `ls` we have to call `qsort` with an empty initially sorted list. Also, we have to provide a `w` such that all elements in `ls` are less or equal to `w`. So, we have the sorting function:
-
-\begin{code}
-{-@ sort1 :: (Ord a) => w:a -> ls:[{v:a|v<=w}] -> SList a @-}
-sort1 :: (Ord a) => a -> [a] -> [a]
-sort1 w ls = qsort w ls []
-\end{code}
-
-We note that the `w` that appears in all functions is a ``ghost'' variable that we added so we can prove the correctness of the function. In other words, `w` is not actually used by the functions, but it is needed so that we can prove that always any value in the sorted list `r` is greater than any value in the other lists.
-
-
-
-Mergesort
----------
-In 2002, Ian Lynagh proposed that GHC should use a sorting algorithm with nlogn worst case performance, so he proposed proposed the below mergesort function:
-
-
-\begin{code}
-mergesort :: (Ord a) => [a] -> [a]
-mergesort = mergesort' . map wrap
-
-mergesort' :: (Ord a) => [[a]] -> [a]
-mergesort' [] = []
-mergesort' [xs] = xs
-mergesort' xss = mergesort' (merge_pairs xss)
-
-merge_pairs :: (Ord a) => [[a]] -> [[a]]
-merge_pairs [] = []
-merge_pairs [xs] = [xs]
-merge_pairs (xs:ys:xss) = merge xs ys : merge_pairs xss
-
-merge :: (Ord a) => [a] -> [a] -> [a]
-merge [] ys = ys
-merge xs [] = xs
-merge (x:xs) (y:ys)
- = case x `compare` y of
-        GT -> y : merge (x:xs)   ys
-        _  -> x : merge    xs (y:ys)
-
-wrap :: a -> [a]
-wrap x = [x]
-\end{code}
-
-This is a usual merge sort function: Initially each element of the list is wrapped in an one-element list. So, a list of sorted lists in constructed and applied to `mergesort'`. `mergesort'` is always called on list of sorted lists, so if its argument has zero or one elements it trivially returns a sorted list, otherwise it merges all consequtive pairs, with `merge_pairs`, and recursivelly calls itself. In the same way, `merge_pairs` either returns a trivially sorted list, or it merges two consequtive lists and recursivelly calls itself on the rest. Finally, two sorted lists are merged by `merge` in the expected way.
-
-
-Without any code modifications, our system can prove that all invariants are kept, and ultimately `mergesort` returns a sorted list:
-
-\begin{code}
-{-@ sort2 :: (Ord a) => [a] -> SList a @-}
-sort2 :: (Ord a) => [a] -> [a]
-sort2 = mergesort
-\end{code}
-
-
-Official GHC Sort
------------------
-In 2009 `mergesort` was replaced by the bellow function, which is similar to "A smooth applicative merge sort", as proposed in 1982 by Richard O'Keefe:
-
-First we define `descending a as bs`, that has the invariant tha all values in `as` are greater than `a` and returns a list whose first element is the greatest descending prefix list in `bs`, reversed. 
-
-\begin{code}
-descending a as (b:bs)
-  | a `compare` b == GT = descending b (a:as) bs
-descending a as bs      = (a:as): sequences bs
-\end{code}
-
-Then we define `ascending a as bs`, that has the invariant tha all arguments of `as` are greater than or equal to `a` and returns a list whose first element is the greatest ascending prefix list in `bs`. To avoid reversing this sublist, `as` is not a list, but a function that every time stores the beggining of the lists and expects its ending.
-
-\begin{code}  
-ascending a as (b:bs)
-  | a `compare` b /= GT = ascending b (\ys -> as (a:ys)) bs
-ascending a as bs       = as [a]: sequences bs
-\end{code}
-
-Since, an arbitrary list can be split in consecutive ascending or descending sublists we define the function `sequences ls` that recursively uses `ascending` and `descending` to split `ls` in these sublists.
-
-\begin{code}
-sequences (a:b:xs)
-  | a `compare` b == GT = descending b [a]  xs
-  | otherwise           = ascending  b (a:) xs
-sequences [x] = [[x]]
-sequences []  = [[]]
-\end{code}
-
-Then, we define a `mergeAll` function that merges sorted lists: 
-
-\begin{code}
-mergeAll [x] = x
-mergeAll xs  = mergeAll (mergePairs xs)
-
-mergePairs (a:b:xs) = merge a b: mergePairs xs
-mergePairs [x]      = [x]
-mergePairs []       = []
-\end{code}
-
-Finally, we define the sorting function that applies `mergeAll` to the result of `sequences` applied in the initial list.
-
-\begin{code}
-{-@ sort :: (Ord a) => [a] -> SList a @-}
-sort :: (Ord a) => [a] -> [a]
-sort = mergeAll . sequences
-\end{code}
-
-Our system can again prove that all the above invariants hold, and `sort` produces a sorted list.
-
-We have to note that the initial ghc functions take comparing function as an argument. But to prove sortedness, we have to transfer the information we get from comparison to the type system. So we actually modified all the above code, by inlining the `compare` function instead of passing it as an argument.
-
diff --git a/docs/language/Makefile b/docs/language/Makefile
deleted file mode 100644
--- a/docs/language/Makefile
+++ /dev/null
@@ -1,55 +0,0 @@
-TARGET= main
-
-TECH=main
-URL=nvazou@goto.ucsd.edu:~/public_html/lazytechreport.pdf
-
-STY = liquidHaskell.sty commands.sty
-TEX = main.tex language.tex typeInference.tex 
-BIB = sw.bib
-CLS = sigplanconf.cls
-SRCFILES = Makefile ${TEX} ${STY} ${CLS}
-
-
-all: ${TEX}
-	pdflatex main
-	bibtex main
-	pdflatex main
-	bibtex main
-	pdflatex main
-
-tech: ${SRCFILES}
-	cp $(SHOWPROOFS) $(PROOFCNF)
-	pdflatex ${TECH}
-	bibtex ${TECH}
-	pdflatex ${TECH}
-	bibtex ${TECH}
-	pdflatex ${TECH}
-	cp $(HIDEPROOFS) $(PROOFCNF)
-
-
-uploadtech: ${TECH}.pdf
-	scp ${TECH}.pdf ${URL}
-withproofs:
-	cp $(SHOWPROOFS) $(PROOFCNF)
-
-noproofs:
-	cp $(HIDEPROOFS) $(PROOFCNF)
-
-clean:
-	$(RM) *.log *.aux *.ps *.dvi *.bbl *.blg *.bak *.fdb_latexmk *.out *~ proofs/*.log
-
-reallyclean: clean
-	$(RM) *.ps *.pdf
-
-distclean: reallyclean
-
-pdfshow: $(TARGET).pdf
-	xpdf $(TARGET).pdf
-
-acroshow: $(TARGET).pdf
-	acroread $(TARGET).pdf
-
-pack: reallyclean
-	tar cvfz liquidHaskell_tex.tar.gz ${SRCFILES}
-
-PHONY : ps all clean reallyclean distclean
diff --git a/docs/language/commands.sty b/docs/language/commands.sty
deleted file mode 100644
--- a/docs/language/commands.sty
+++ /dev/null
@@ -1,41 +0,0 @@
-\usepackage[usenames,dvipsnames]{xcolor}
-
-%% \def\mynote#1{{\sf $\clubsuit$ #1$\clubsuit$}}
-%% \def\RJ#1{\textcolor{Red}{\sf RJ:$\clubsuit$ #1$\clubsuit$}}
-%% \def\NV#1{\textcolor{Plum}{\sf NV:$\clubsuit$ #1$\clubsuit$}}
-\def\NV#1{\textcolor{Green}{\sf NV:$\clubsuit$ #1$\clubsuit$}}
-%% \def\ES#1{\textcolor{Blue}{\sf ES:$\clubsuit$ #1$\clubsuit$}}
-
-
-\def\myex#1{\smallskip\noindent{\emphbf{Example: {#1}.}}}
-\newcommand\spara[1]{\smallskip\noindent\textbf{\emph{#1}}\xspace}
-\newcommand\mypara[1]{\spara{#1}}
-%\def\mypara#1{\smallskip\noindent\textbf{#1.}\ }
-
-
-
-\newcommand\etc{\textit{etc.}\xspace}
-\newcommand\eg{\textit{e.g.}\xspace}
-\newcommand\ie{\textit{i.e.}\xspace}
-\newcommand\ala{\textit{a la}\xspace}
-\newcommand\etal{\textit{et al.}\xspace}
-
-\def\emphbf#1{\textbf{\emph{#1}}}
-\def\spmid{\ \mid \ }
-
-\def\colon{\ensuremath{\text{:}}}
-
-\newcommand{\relDescription}[1]{\ensuremath{\textrm{\textbf{#1}}}}
-\newcommand{\judgementHead}[2]{\ensuremath{\relDescription{#1}\hfill\fbox{#2}}}
-\newcommand{\judgementHeadNameOnly}[1]{\ensuremath{\relDescription{#1}\hfill}}
-
-\newenvironment{sitemize}{\begin{list}
-   {$\bullet$}
-   {\setlength{\topsep}{0pt}
-    \setlength{\itemsep}{0pt}
-    \setlength{\leftmargin}{15pt}
-    }
-  }
-  {\end{list}}
-
-
diff --git a/docs/language/haskellListings.tex b/docs/language/haskellListings.tex
deleted file mode 100644
--- a/docs/language/haskellListings.tex
+++ /dev/null
@@ -1,113 +0,0 @@
-\usepackage{listings}
-
-% uncomment next line to restore colors
-% \def\withcolor{}
-
-\ifdefined\withcolor
-	\definecolor{haskellblue}{rgb}{0.0, 0.0, 1.0}
-	\definecolor{haskellblue}{rgb}{1.0, 0.0, 0.0}
-	\definecolor{gray_ulisses}{gray}{0.55}
-	\definecolor{castanho_ulisses}{rgb}{0.71,0.33,0.14}
-	\definecolor{preto_ulisses}{rgb}{0.41,0.20,0.04}
-	\definecolor{green_ulisses}{rgb}{0.0,0.4,0.0}
-\else
-	\definecolor{haskellblue}{gray}{0.1}
-	\definecolor{haskellred}{gray}{0.1}
-	\definecolor{gray_ulisses}{gray}{0.1}
-	\definecolor{castanho_ulisses}{gray}{0.1}
-	\definecolor{preto_ulisses}{gray}{0.1}
-	\definecolor{green_ulisses}{gray}{0.1}
-\fi
-
-
-\def\codesize{\normalsize}
-
-\lstdefinelanguage{HaskellUlisses} {
-	basicstyle=\ttfamily\codesize,
-	sensitive=true,
-	morecomment=[l][\color{gray_ulisses}\ttfamily\codesize]{--},
-	%% morecomment=[s][\color{gray_ulisses}\ttfamily\codesize]{\{-}{-\}},
-	morestring=[b]",
-	stringstyle=\color{haskellred},
-	showstringspaces=false,
-	numberstyle=\codesize,
-	numberblanklines=true,
-	showspaces=false,
-	breaklines=true,
-	showtabs=false,
-	emph=
-	{[1]
-		FilePath,IOError,abs,acos,acosh,all,and,any,appendFile,approxRational,asTypeOf,asin,
-		asinh,atan,atan2,atanh,basicIORun,break,catch,ceiling,chr,compare,concat,concatMap,
-		const,cos,cosh,curry,cycle,decodeFloat,denominator,digitToInt,div,divMod,drop,
-		dropWhile,either,elem,encodeFloat,enumFrom,enumFromThen,enumFromThenTo,enumFromTo,
-		error,even,exp,exponent,fail,filter,flip,floatDigits,floatRadix,floatRange,floor,
-		fmap,foldl,foldl1,foldr,foldr1,fromDouble,fromEnum,fromInt,fromInteger,
-		fromRational,fst,gcd,getChar,getContents,getLine,head,id,inRange,index,init,intToDigit,
-		interact,ioError,isAlpha,isAlphaNum,isAscii,isControl,isDenormalized,isDigit,isHexDigit,
-		isIEEE,isInfinite,isLower,isNaN,isNegativeZero,isOctDigit,isPrint,isSpace,isUpper,iterate,
-		last,lcm,length,lex,lexDigits,lexLitChar,lines,log,logBase,lookup,map,mapM,mapM_,max,
-		maxBound,maximum,maybe,min,minBound,minimum,mod,negate,not,notElem,numerator,odd,
-		or,pi,pred,primExitWith,print,product,properFraction,putChar,putStr,putStrLn,quot,
-		quotRem,range,rangeSize,read,readDec,readFile,readFloat,readHex,readIO,readInt,readList,readLitChar,
-		readLn,readOct,readParen,readSigned,reads,readsPrec,realToFrac,recip,rem,repeat,replicate,
-		reverse,round,scaleFloat,scanl,scanl1,scanr,scanr1,seq,sequence,sequence_,show,showChar,showInt,
-		showList,showLitChar,showParen,showSigned,showString,shows,showsPrec,significand,signum,sin,
-		sinh,snd,span,splitAt,sqrt,subtract,succ,sum,tail,take,takeWhile,tan,tanh,threadToIOResult,toEnum,
-		toInt,toInteger,toLower,toRational,toUpper,truncate,uncurry,undefined,unlines,until,unwords,unzip,
-		unzip3,userError,words,writeFile,zip,zip3,zipWith,zipWith3,listArray,doParse,for,initTo,
-        maxEvens,create,get,set,initialize,idVec,fastFib,fibMemo,
-        insert,union,split,size,fromList,initUpto,trim,quickSort,insertSort,append,upperCase,
-        copy, group, doDownLoop, mapAccumR, peekByteOff,
-        pokeByteOff,spanByte, 
-        good, bad, foo, explode, 
-        fib, ack, 
-        tLen,
-        memcpy,writeChar,unsafeWrite,unsafeFreeze,
-        singleton
-	},
-	emphstyle={[1]\color{haskellblue}},
-	emph=
-	{[2]
-		Bool,Char,Double,Either,Float,IO,Integer,Int,Maybe,Ordering,Rational,Ratio,ReadS,ShowS,String,
-		Word8,Nat,NonZero,Nat64,Text,ByteString,ByteStringSZ,ByteStringN,
-        Ptr,ForeignPtr,CSize
-        InPacket,Tree,Prop,TreeEq,TreeLt,Vec,
-        NullTerm,IncrList,DecrList,UniqList,BST,MinHeap,MaxHeap,
-        PtrN,ByteStringN,ByteStringEq,VO,ByteStringsEq,ByteStringNE
-	},
-	emphstyle={[2]\color{castanho_ulisses}},
-	emph=
-	{[3]
-		case,class,data,deriving,do,else,if,import,in,infixl,infixr,instance,let,
-		module,measure,predicate,of,primitive,then,refinement,type,where
-	},
-	emphstyle={[3]\color{preto_ulisses}\textbf},
-	emph=
-	{[4]
-		quot,rem,div,mod,elem,notElem,seq
-	},
-	emphstyle={[4]\color{castanho_ulisses}\textbf},
-	emph=
-	{[5]
-		PS,Tip,Node,EQ,False,GT,Just,LT,Left,Nothing,Right,True,Show,Eq,Ord,Num
-	},
-	emphstyle={[5]\color{green_ulisses}}
-}
-
-%%%ORIG
-%%%\lstnewenvironment{code}
-%%%{\textbf{Haskell Code} \hspace{1cm} \hrulefill \lstset{language=HaskellUlisses}}
-%%%{\hrule\smallskip}
-
-%V1
-%\lstnewenvironment{code}
-%{\smallskip \lstset{language=HaskellUlisses}}
-%{\smallskip}
-
-\lstnewenvironment{code}
-{\lstset{language=HaskellUlisses}}
-{}
-
-\lstMakeShortInline[language=HaskellUlisses]@
-
diff --git a/docs/language/language.tex b/docs/language/language.tex
deleted file mode 100644
--- a/docs/language/language.tex
+++ /dev/null
@@ -1,82 +0,0 @@
-
-
-
-\begin{figure}[t!]
-\centering
-$$
-\begin{array}{rrcl}
-\emphbf{Basic Types} \quad
-  & b 
-  & ::=
-  & \alpha
-  \spmid \tfun{x}{\tau}{\tau}
-  \spmid \tcon{C}{\bar{\tau}}{\bar{\ref}}
-  \spmid \tapp{\tau}{\tau}
-  \\[0.05in]
-
-\emphbf{Types} \quad
-  & \tau 
-  & ::=
-  & \tref{v}{b}{\ref}
-  \spmid \tcl{Cl}{\bar{\tau}}
-  \\[0.05in]
-
-\emphbf{Abstract Refinements} \quad
-  & \pi
-  & ::=
-  & \forall \left\langle p \colon \tau \right\rangle . \pi 
-  \spmid \tau
-  \\[0.05in]
-
-\emphbf{Type Schemata} \quad
-  & \sigma
-  & ::=
-  & \tall{\alpha}{\sigma} 
-  \spmid \pi
-  \\[0.05in]
-
-\emphbf{Refinements} \quad
-  & \ref
-  & ::=
-  & (\aref,\cref)
-  \\[0.05in]
-
-\emphbf{Abstract Refinements} \quad
-  & \aref
-  & ::= 
-  &  [] \spmid p\ \bar{e}, \aref
-  \\[0.05in]
-
-\emphbf{Concrete Refinements} \quad
-  & \cref
-  & ::=
-  &  k \sub{x}{e}
-  \spmid \pr
-  \spmid \cref \land \cref
-  \\[0.05in]
-
-\emphbf{Predicates} \quad
-  & \pr
-  & ::=
-  &  \ptrue \spmid \pfalse 
-  \spmid \pand{\bar{\pr}}
-  \spmid \por{\bar{\pr}}
-  \spmid \pnot{\pr}
-  \spmid \pimp{\pr}{\pr}
-  \spmid \piff{\pr}{\pr}
-  \\ && \spmid &  e 
-  \spmid e \left[= \mid \neq \mid > \mid < \mid \geq \mid \leq \right] e
-  \\[0.05in]
-
-\emphbf{Expressions} \quad
-  & e
-  & ::=
-  &  c \spmid n \spmid x \spmid \eapp{c}{\bar{e}} \spmid \eif{\pr}{e}{e} 
-  \spmid e \left[+ \mid - \mid * \mid / \mid \% \right] e 
-
-
-  \end{array}
-$$
-\caption{Syntax of \corelan}
-\label{fig:syntax}
-\end{figure}
diff --git a/docs/language/liquidHaskell.sty b/docs/language/liquidHaskell.sty
deleted file mode 100644
--- a/docs/language/liquidHaskell.sty
+++ /dev/null
@@ -1,199 +0,0 @@
-\newcommand{\C}{\textsc{C}\xspace}
-\newcommand{\toolname}{\textsc{LiquidHaskell}\xspace}
-%\newcommand{\bytestring}{\textsc{bytestring}\xspace}
-%\newcommand{\libtext}{\textsc{text}\xspace}
-\newcommand{\bytestring}{\texttt{Bytestring}\xspace}
-\newcommand{\libtext}{\texttt{Text}\xspace}
-
-%% 
-
-\newcommand{\CRASH}{\ensuremath{\mathtt{crash}}\xspace}
-\newcommand{\defeq}{\ \doteq\ }
-\providecommand{\dbrkts}[1]{[\![#1]\!]}
-%\newcommand\embed[1]{\dbrkts{#1}}
-\newcommand\embed[1]{\dbrkts{#1}}
-\newcommand\R{\ensuremath{\mathsf{Fin}\xspace}}
-\newcommand\FORCE[1]{#1 \in \R}
-\newcommand\NOFORCE[1]{#1 \not \in \R}
-
-\newcommand\corelan{$\lambda_\downarrow$\xspace}
-\newcommand\ttbind[2]{\ensuremath{\mathtt{#1}:\mathtt{#2}}}
-\newcommand\tbind[2]{{#1} \colon {#2}}
-\newcommand\ttref[1]{\ensuremath{\mathtt{\{#1\}}}}
-\newcommand\ttreft[3]{\ttref{\tbind{#1}{#2}\mid {#3}}}
-
-\newcommand\subt[2]{\ensuremath{#1 \preceq #2}}
-\newcommand\subtref[2]{\subt{\ttref{#1}}{\ttref{#2}}}
-
-\newcommand\hastypet[3]{\ensuremath{#1 \vdash \tbind{#2}{#3}}}
-\newcommand\hastype[3]{\ensuremath{#1 \vdash #2 : #3}}
-
-\newcommand\issubtype[3]{\ensuremath{#1 \vdash #2 \preceq #3}}
-\newcommand\iswellformed[2]{\ensuremath{#1 \vdash #2}}
-\newcommand\wellformedsub[2]{\ensuremath{#1 \models #2}}
-\newcommand\ismodeled[2]{\ensuremath{#1 \models #2}}
-\newcommand\wfmodels[2]{\ismodeled{#1}{#2}}
-
-\newcommand\stepsym{\hookrightarrow}
-\newcommand\stepv{\stepsym_v}
-\newcommand\stepn{\stepsym_n}
-\newcommand\stepo{\stepsym_o}
-
-\newcommand\eval[2]{\evalR{\stepsym}{#1}{#2}}
-\newcommand\evalR[3]{\ensuremath{#2 #1 #3}}
-\newcommand\evalGen[4]{\evalR{\stepsym_{#3}^{#4}}{#1}{#2}}
-
-\newcommand\evalv[2]{\evalGen{#1}{#2}{v}{}}
-\newcommand\evaln[2]{\evalGen{#1}{#2}{n}{}}
-\newcommand\evalo[2]{\evalGen{#1}{#2}{o}{}}
-\newcommand\evalvs[2]{\evalGen{#1}{#2}{v}{*}}
-\newcommand\evalns[2]{\evalGen{#1}{#2}{n}{*}}
-\newcommand\evalos[2]{\evalGen{#1}{#2}{o}{*}}
-
-% termination eval
-\newcommand\evalt[3]{\evalGen{#1}{#2}{o}{#3}}
-\newcommand\evalts[2]{\evalGen{#1}{#2}{o}{*}}
-
-
-
-
-
-
-\newcommand\sub[2]{\ensuremath{\left[#2/#1\right]}}
-%\newcommand\sub[2]{\ensuremath{\left[#1 \mapsto #2\right]}}
-\newcommand{\SUBST}[3]{{#1}\sub{#2}{#3}}
-
-\newcommand\shape{\ensuremath{\text{shape}}\xspace}
-\newcommand\termincon[1]{\ensuremath\textcolor{Red}{#1}}
-
-%TT
-\newcommand\Env{\Gamma}
-
-\newcommand\ttack{\mathtt{ack}}
-
-\newcommand\tttLen{\mathtt{tLen}}
-\newcommand\ttsz{\mathtt{sz}}
-\newcommand\ttt{\mathtt{t}}
-\newcommand\tttp{\mathtt{t'}}
-\newcommand\ttb{\mathtt{b}}
-\newcommand\tta{\mathtt{a}}
-\newcommand\ttm{\mathtt{m}}
-\newcommand\ttmp{\mathtt{m'}}
-\newcommand\ttnp{\mathtt{n'}}
-\newcommand\ttn{\mathtt{n}}
-\newcommand\ttp{\mathtt{p}}
-\newcommand\ttv{\mathtt{v}}
-\newcommand\ttx{\mathtt{x}}
-\newcommand\tty{\mathtt{y}}
-\newcommand\ttz{\mathtt{z}}
-\newcommand\tte{\mathtt{e}}
-\newcommand\ttf{\mathtt{e}}
-\newcommand\ttg{\mathtt{e}}
-\newcommand\ttInt{\mathtt{Int}}
-\newcommand\ttNonzero{\mathtt{NonZero}}
-\newcommand\ttNat{\mathtt{Nat}}
-\newcommand\ttfib{\mathtt{fib}}
-
-% MISC 
-
-\newcommand\smtvalid[1]{\ensuremath{\mathsf{SmtValid}(#1)}}
-\newcommand\strict{\ensuremath{\mathsf{Trivial}}}
-\newcommand\constty[1]{\ensuremath{\mathsf{Ty}(#1)}}
-\newcommand\serious{serious\xspace}
-\newcommand\trivial{trivial\xspace}
-
-
-% Expressions
-\newcommand\efun[3]{\ensuremath{\lambda #1. #3}}
-\newcommand\eapp[2]{\ensuremath{#1 \ #2}}
-\newcommand\eif[3]{\ensuremath{\mathtt{if}\ #1\ \mathtt{then}\ #2\ \mathtt{else}\ #3}}
-\newcommand\elet[3]{\ensuremath{\mathtt{let}\ #1 = #2\ \mathtt{in}\ #3}}
-\newcommand\erec[3]{\ensuremath{\mu #1.\lambda #2. #3}}
-\newcommand\etabs[2]{\ensuremath{\left[\Lambda #1\right] #2}}
-\newcommand\etapp[2]{\ensuremath{#1 \left[ #2 \right]}}
-\newcommand\etrue{\ensuremath{\mathtt{true}}\xspace}
-\newcommand\efalse{\ensuremath{\mathtt{false}}\xspace}
-\newcommand\eletsub[2]{\ensuremath{#1 #2}}
-
-%Labels
-\newcommand\ltop{\ensuremath{\downarrow}\xspace}
-\newcommand\lbot{\ensuremath{\uparrow}\xspace}
-
-% Types
-\newcommand\tbool{\ensuremath{\mathtt{bool}}\xspace}
-\newcommand\tint{\ensuremath{\mathtt{nat}}\xspace}
-\newcommand\tref[4]{\ensuremath{\{ \tbind{#1}{#2^{#3}} \mid #4 \}}}
-\newcommand\tfun[3]{\ensuremath{\tbind{#1}{#2} \rightarrow #3}}
-\newcommand\tabs[2]{\ensuremath{\forall #1 . #2}}
-
-%Rule Names
-\newcommand\rulename[1]{\textsc{#1}\xspace}
-\newcommand{\rtsub}{\rulename{T-Sub}}
-\newcommand{\rtvara}{\rulename{T-Var-Base}}
-\newcommand{\rtvarb}{\rulename{T-Var}}
-\newcommand{\rtconst}{\rulename{T-Con}}
-\newcommand{\rtfun}{\rulename{T-Fun}}
-\newcommand{\rtapp}{\rulename{T-App}}
-\newcommand{\rtappa}{\rulename{T-App-$\lbot$}}
-\newcommand{\rtappb}{\rulename{T-App-$\ltop$}}
-\newcommand{\rtif}{\rulename{T-If}}
-\newcommand{\rtlet}{\rulename{T-Let}}
-\newcommand{\rtgen}{\rulename{T-Gen}}
-\newcommand{\rtinst}{\rulename{T-Inst}}
-\newcommand{\rtrec}{\rulename{T-Rec}}
-\newcommand{\rtrecs}{\rulename{T-Rec-$\lbot$}}
-\newcommand{\rtrect}{\rulename{T-Rec-$\ltop$}}
-%% \newcommand{\rtrecs}{\rulename{TR-Ser}}
-%% \newcommand{\rtrect}{\rulename{TR-Tr}}
-
-\newcommand{\rsbasetop}{\rulename{$\preceq$-Base-$\ltop$}}
-\newcommand{\rsbasebot}{\rulename{$\preceq$-Base-$\lbot$}}
-\newcommand{\rsvar}{\rulename{$\preceq$-Var}}
-\newcommand{\rsfun}{\rulename{$\preceq$-Fun}}
-\newcommand{\rspoly}{\rulename{$\preceq$-Poly}}
-
-\newcommand{\rwbasetop}{\rulename{WF-Base-$\ltop$}}
-\newcommand{\rwbasebot}{\rulename{WF-Base-$\lbot$}}
-\newcommand{\rwbase}{\NV{TODO}}
-\newcommand{\rwvar}{\rulename{WF-Var}}
-\newcommand{\rwfun}{\rulename{WF-Fun}}
-\newcommand{\rwpoly}{\rulename{WF-Poly}}
-
-\newcommand{\rwsempty}{\rulename{WS-Empty}}
-\newcommand{\rwsext}{\rulename{WS-Ext}}
-\newcommand{\rwsgxt}{\rulename{WS-Gxt}}
-
-
-\newcommand{\reapp}{\rulename{E-AppL}}
-\newcommand{\reappb}{\rulename{E-App}}
-\newcommand{\reappc}{\rulename{E-AppT}}
-\newcommand{\reappd}{\rulename{E-AppTB}}
-\newcommand{\reconsta}{\rulename{E-ConstA}}
-\newcommand{\reconstb}{\rulename{E-Con}}
-\newcommand{\reif}{\rulename{E-If}}
-\newcommand{\reiftrue}{\rulename{E-If-True}}
-\newcommand{\reiffalse}{\rulename{E-If-False}}
-\newcommand{\rereca}{\rulename{E-Rec}}
-\newcommand{\rerecb}{\NV{UNIFIED}}
-\newcommand{\rerecc}{\rulename{E-RecC}}
-\newcommand{\reinst}{\NV{TODO}}
-\newcommand{\reinsta}{\rulename{E-InstA}}
-\newcommand{\reinstb}{\rulename{E-InstB}}
-\newcommand{\reinstc}{\rulename{E-InstC}}
-\newcommand{\releta}{\rulename{E-Let}}
-\newcommand{\reletb}{\rulename{E-LetX}}
-\newcommand{\recntx}{\rulename{E-Com}}
-\newcommand{\reletc}{\rulename{E-LetTB}}
-
-%%%%%%%% TABLE
-
-\newcommand\bfModule{\textbf{Module}\xspace}
-\newcommand\bfAnnot{\textbf{Annot}\xspace}
-\newcommand\bfQualif{\textbf{Qualif}\xspace}
-\newcommand\bfLOC{\textbf{LOC}\xspace}
-\newcommand\bfSpecs{\textbf{Specs}\xspace}
-\newcommand\bfLetRec{\textbf{Rec}\xspace}
-\newcommand\bfMutRec{\textbf{Mut}\xspace}
-\newcommand\bfHint{\textbf{Hint}\xspace}
-\newcommand\bfWitness{\textbf{Wit}\xspace}
-
diff --git a/docs/language/main.pdf b/docs/language/main.pdf
deleted file mode 100644
Binary files a/docs/language/main.pdf and /dev/null differ
diff --git a/docs/language/main.tex b/docs/language/main.tex
deleted file mode 100644
--- a/docs/language/main.tex
+++ /dev/null
@@ -1,110 +0,0 @@
-\documentclass[10pt,a4paper]{article}
-
-%\documentclass{llncs}
-%\documentclass[nocopyrightspace]{sigplanconf}
-%%% \usepackage[top=1.5cm,bottom=1.5cm,left=2.3cm,right=2cm]{geometry}
-
-\pagestyle{plain}
-\usepackage{times}
-%\usepackage[nocompress]{cite} % AR: comment this out if you wish hyperrefs 
-\usepackage{hyperref}
-
-\usepackage{amsmath,amssymb, latexsym}
-
-\usepackage{amsmath}
-\usepackage{amsthm}
-
-\newtheorem{lemma}{Lemma}
-\newtheorem{theorem}{Theorem}
-\newtheorem*{theorem*}{Theorem}
-\newtheorem{definition}{Definition}
-\newtheorem*{lemma*}{Lemma}
-
-\usepackage{amsfonts}
-\usepackage{amssymb}
-
-\usepackage{commands}
-\usepackage{liquidHaskell}
-\usepackage[inference]{semantic}
-
-\usepackage{enumerate}
-\def\url{}
-\usepackage{xspace}
-\usepackage{epsfig}
-\usepackage{booktabs}
-\usepackage{listings}
-\usepackage{comment}
-\usepackage{ifthen}
-
-\newcommand{\isTechReport}{false} % true or false
-\newcommand{\includeProof}[1]{
-  \ifthenelse{\equal{\isTechReport}{true}}{
-    #1
-  }{
-  }
-}
-
-%%%%%\usepackage{fancyvrb}
-%%%%%\DefineVerbatimEnvironment{code}{Verbatim}{fontsize=\small}
-%%%%%\DefineVerbatimEnvironment{example}{Verbatim}{fontsize=\small}
-%%%%%\newcommand{\ignore}[1]{}
-
-% command to end a proof or definition:
-%\def\qed{\rule{0.4em}{1.4ex}}
-\def\qed{\hfill$\Box$}
-
-% space at the beginning of an environment:
-\def\@envspa{\hspace{0.3em}}
-\def\@sa{\hspace{-0.2em}}
-\def\@sb{\hspace{0.5em}}
-\def\@sc{\hspace{-0.1em}}
-
-\def\sk{\smallskip}		% space before and after theorems
-
-\newtheorem{notation}{Notation}{\itshape}{}
-\newtheorem{invariant}{Invariant}
-\newtheorem*{hypothesis}{Hypothesis}
-
-\input{haskellListings}
-
-
-\begin{document}
-%% BEGIN MOVE 
-% these are mostly redefined commands, move them to commands
-
-\renewcommand\tref[3]{\ensuremath{\{#1 : #2 \mid #3 \}}}
-\renewcommand\tfun[3]{\ensuremath{#1 : #2 \rightarrow #3}}
-\newcommand\tcon[3]{\ensuremath{#1 \ #2 \ #3}}
-\newcommand\tapp[2]{\ensuremath{#1 \ #2}}
-\newcommand\tall[2]{\ensuremath{ \forall #1 .  #2}}
-\newcommand\tcl[2]{\ensuremath{#1 \ #2}}
-\renewcommand\ref{r}
-\newcommand\pr{pr}
-\newcommand\aref{ar}
-\newcommand\cref{cr}
-
-\newcommand\ptrue{\ensuremath{true}}
-\newcommand\pfalse{\ensuremath{false}}
-\newcommand\pand[1]{\ensuremath{\bigwedge \ #1}}
-\newcommand\por[1]{\ensuremath{\bigvee \ #1}}
-\newcommand\pnot[1]{\ensuremath{\lnot #1}}
-\newcommand\pimp[2]{\ensuremath{#1 \Rightarrow #2}}
-\newcommand\piff[2]{\ensuremath{#1 \Leftrightarrow #2}}
-
-\renewcommand\eapp[2]{\ensuremath{#1 \ #2}}
-\renewcommand\eif[3]{\ensuremath{if \ #1 \ then \ #2 \ else \ #3}}
-\renewcommand\corelan{\texttt{liquidHaskell}}
-
-%% END MOVE
-
-% \maketitle
-
-\input{language}
-\input{typeInference}
-
-% {
-% \bibliographystyle{plain}
-% \bibliography{sw}
-% }
-
-\end{document}
diff --git a/docs/language/typeInference.tex b/docs/language/typeInference.tex
deleted file mode 100644
--- a/docs/language/typeInference.tex
+++ /dev/null
@@ -1,325 +0,0 @@
-\renewcommand\hastype[4]{\ensuremath{#1 \vdash #2 \uparrow #3 ; #4}}
-\newcommand\checktype[4]{\ensuremath{#1 \vdash #2 \downarrow #3 ; #4}}
-\newcommand\hastypealt[5]{\ensuremath{#1 ; #2 \downarrow #3 \colon #4 ; #5}}
-\newcommand\ty[1]{\ensuremath{ty(#1)}}
-
-\NV{TODO : \\
-1. Add termination checker.}
-
-\section*{Constraint Generation (without the termination checker)}
-
-\hfill\textbf{Type synthesis}\qquad\mbox{\hastype{\Gamma}{e}{\sigma}{C}}
-
-
-$$
-\inference{
-	(x, \tref{v}{b}{e}) \in \Gamma
-}{
-	\hastype{\Gamma}{x}{\tref{v}{b}{e \land x = v}}{\emptyset}
-}
-\qquad
-\inference{
-	(x, \sigma \in \Gamma) &&
-	\sigma \neq \tref{v}{b}{e}
-}{
-	\hastype{\Gamma}{x}{\sigma}{\emptyset}
-}
-$$
-
-$$
-\inference{
-}{
-	\hastype{\Gamma}{c}{\tref{v}{\ty{c}}{v = c}}{\emptyset}
-}
-$$
-
-\newcommand\wfc[2]{\ensuremath{\texttt{WfC}\ #1 \ #2}}
-\newcommand\subc[3]{\ensuremath{\texttt{SubC}\ #1 \ #2\ #3}}
-\newcommand\freshty[1]{\ensuremath{freshTy(#1)}}
-\newcommand\truety[1]{\ensuremath{trueTy(#1)}}
-\newcommand\truetyExpr[1]{\ensuremath{trueTyExpr(#1)}}
-\newcommand\isGenericty[2]{\ensuremath{isGeneric(#1, #2)}}
-\newcommand\freshPredsty[1]{\ensuremath{freshPreds(\Gamma, #1)}}
-\newcommand\varTemplate[1]{\ensuremath{varTemplate(#1)}}
-\newcommand\dataconty[2]{\ensuremath{dataConTy(#1, #2)}}
-
-$$
-\inference{
-	\hastype{\Gamma}{e}{\tall{\alpha}{\sigma}}{C} \\
-	\tau' = if\ \isGenericty{\alpha}{\sigma}\ then\ \freshty{\tau}\ else\ \truety{\tau}
-}{
-	\hastype{\Gamma}{\etapp{e}{\tau}}{\sigma\sub{\alpha}{\tau'}}{(\wfc{\Gamma}{\tau'}, C)}
-}
-$$
-
-$$
-\inference{
-	\hastype{\Gamma}{e_1}{\tau_1}{C_1} &&
-	\checktype{\Gamma}{e_2}{\tau_x}{C_2} &&\\
-	(\tau_1', C_p) = \freshPredsty{\tau_1} &&
-	\tfun{x}{\tau_x}{\tau} = \tau_1'
-}{
-	\hastype{\Gamma}{\eapp{e_1}{e_2}}{\tau\sub{x}{e_2}}
-			{(C_1, C_2, C_p)}
-}
-$$
-
-
-$$
-\inference{
-	\hastype{\Gamma}{e}{\sigma}{C}
-}{
-	\hastype{\Gamma}{\etabs{\alpha}{e}}{\tall{\alpha}{\sigma}}{C}
-}
-$$
-
-$$
-\inference{
-	\hastype{\Gamma, x : \tau_x}{e}{\tau}{C} &&
-	t_x = freshty(varType\ x)
-}{
-	\hastype{\Gamma}{(\efun{x}{}{e})}{(\tfun{x}{\tau_x}{\tau})}{(\wfc{\Gamma}{\tau_x}, C)}
-}
-$$
-
-$$
-\inference{
-	\hastype{\Gamma}{e}{\sigma}{C}
-}{
-	\hastype{\Gamma}{Tick\ t\ e}{\sigma}{C}
-}
-$$
-
-$$
-\inference{
-}{
-	\hastype{\Gamma}{Cast\ e\ c}{\truetyExpr{Cast\ e\ c}}{\emptyset}
-}
-$$
-
-$$
-\inference{
-}{
-	\hastype{\Gamma}{Coercion\ c}{\truetyExpr{Coercion\ c}}{\emptyset}
-}
-$$
-
-$$
-\inference{
-	\sigma = \freshty{e} &&
-	\checktype{\Gamma}{\elet{{x_i}}{e_{x_i}}{e}}{\sigma}{C}
-}{
-	\hastype{\Gamma}{\elet{{x_i}}{e_{x_i}}{e}}{\sigma}{(\wfc \Gamma \sigma, C)}
-}
-$$
-
-$$
-\inference{
-	\sigma = \freshty{e} &&
-	\checktype{\Gamma}{Case\ e\ x\ alt_i}{\sigma}{C}
-}{
-	\hastype{\Gamma}{Case\ e\ x\ alt_i}{\sigma}{(\wfc \Gamma \sigma, C)}
-}
-$$
-
-
-
-\hfill\textbf{Type checking}\qquad\mbox{\checktype{\Gamma}{e}{\sigma}{C}}
-
-
-
-
-%% This rule allows more general types for let binds.
-%% Eg. (tests/pos/meas1.hs)
-%% goo x = [x] :: a -> {v:[a] | ((null v) <=> false)} -- by default
-%% this rule also allows 
-%% goo :: a -> {v:[a] | ((len v) > 0)}
-
-\newcommand\userType[1]{\ensuremath{userType(#1)}}
-
-$$
-\inference{
-	\tau_x  = userTypes(x) &&
-	\checktype{\Gamma}{e_x}{\tau_x}{C_x} \\&&
-	\checktype{\Gamma, x\colon\tau_x}{e}{\sigma}{C}
-}{
-	\checktype{\Gamma}{\elet{x}{e_x}{e}}{\sigma}{(C_x,C)}
-}
-$$
-
-$$
-\inference{
-	x \notin userTypes &&
-	\hastype{\Gamma}{e_x}{\tau_x}{C_x} \\&&
-	\checktype{\Gamma, x\colon\tau_x}{e}{\sigma}{C}
-}{
-	\checktype{\Gamma}{\elet{x}{e_x}{e}}{\sigma}{(C_x,C)}
-}
-$$
-
-$$
-\inference{
-	\checktype{\Gamma, \overline{{x_i} : \tau_{x_i}}}{e}{\sigma}{C} &&\\
-	(C_{x_i}, \tau_{x_i}) = \varTemplate{x_i} &&
-	\checktype{\Gamma, \overline{{x_i} : \tau_{x_i}}}{e_{x_i}}{\tau_{x_i}}{C_{x_i}'}
-}{
-	\hastype{\Gamma}{\elet{{x_i}}{e_{x_i}}{e}}{\sigma}{(C_{x_i}, C_{x_i}', C)}
-}
-$$
-
-$$
-\inference{
-	\hastype{\Gamma}{e}{\tau_x}{C_x} &&
-	\hastypealt{(\Gamma, x:\tau_x)}{x}{alt_i}{\sigma}{C_i}
-}{
-	\checktype{\Gamma}{Case\ e\ x\ alt_i}{\sigma}{(C_x, C_i)}
-}
-$$
-
-$$
-\inference{
-	\checktype{\Gamma}{e}{\sigma\sub{\alpha'}{\alpha}}{C}
-}{
-	\checktype{\Gamma}{\etabs{\alpha}{e}}{\tall{\alpha'}{\sigma}}{C}
-}
-$$
-
-$$
-\inference{
-	\checktype{\Gamma, x : \tau_y}{e}{\tau\sub{y}{x}}{C}
-}{
-	\checktype{\Gamma}{\efun{x}{\tau}{e}}{(\tfun{y}{\tau_y}{\tau})}{C}
-}
-$$
-
-$$
-\inference{
-	\checktype{\Gamma}{e}{\sigma}{C}
-}{
-	\checktype{\Gamma}{Tick\ t\ e}{\sigma}{C}
-}
-$$
-
-$$
-\inference{
-	\sigma' = \truety{Cast\ c\ e}
-}{
-	\checktype{\Gamma}{Cast\ c\ e}{\sigma}{(C, \subc{\Gamma}{\sigma'}{\sigma})}
-}
-$$
-
-$$
-\inference{
-	\checktype{\Gamma, p \colon \tau}
-	{e}{\sigma}{C} %% here replacePredsWithRefs is used
-}{
-	\checktype{\Gamma}{e}
-	{\forall \left\langle p \colon \tau \right\rangle . \sigma}{C}
-}
-$$
-
-$$
-\inference{
-	\hastype{\Gamma}{e}{\sigma'}{C} &&
-	(\sigma'', C_p) = \freshPredsty{\sigma'}
-}{
-	\checktype{\Gamma}{e}{\sigma}
-	{(C, C_p, \subc{\Gamma}{\sigma''}{\sigma})}
-}
-$$
-
-
-\hfill\mbox{\hastypealt{\Gamma}{x}{alt}{\sigma}{C}}
-$$
-\inference{
-	(x,\tau_x^0) \in \Gamma  && \tau_x^0 = \tref{v}{C\ {t_C}_l\ {r_C}_j }{r}  &&
-	\ty{C} = \forall \alpha_l p_j . y_1\colon t_1 \rightarrow \dots y_n \colon t_n \rightarrow t &&\\
-	\theta = \sub{\alpha_l}{{t_C}_l}\sub{p_j}{{r_C}_j}\sub{y_i}{x_i} &&\\
-	\tau_{x_i} = \theta t_i && \tau_x = \theta t \land \tau_x^0 \land \dataconty{C}{x_i} &&\\
-	\checktype{\Gamma, x\colon \tau_x, x_i \colon \tau_{x_i}}{e}{\sigma}{C}
-}{
-	\hastypealt{\Gamma}{x}{(C, x_i, e)}{\sigma}{C}
-}
-$$
-
-
-% FUNCTIONS
-\section*{Helper Functions}
-\hfill\isGenericty{\alpha}{\sigma} -- not constrained by class predicates
-$$\isGenericty{\alpha}{\sigma} \Leftrightarrow \alpha \notin ClassConstraints(\sigma)$$ 
-
-\begin{align*}
-classConstraints(\tall{\alpha}{\sigma}) &= classConstraints(\sigma)\\ 
-classConstraints(\tall{p}{\sigma}) &= classConstraints(\sigma)\\ 
-classConstraints(C \alpha_i \rightarrow \tau) &= \alpha_i \cup classConstraints(\tau) 
-\end{align*}
-
-\hfill\freshty{\sigma} { -- type with liquid variables for all refinements}\\
-
-\newcommand\freshref{\ensuremath{fref}} %([], k_i)}}
-\newcommand\trueref{\ensuremath{tref}}  %([], true)}}
-$$
-\begin{array}{lcl}
-\freshty{\tref{v}{\alpha}{r}} &=& \tref{v}{\alpha}{\freshref}\\
-\freshty{\tref{v}{\tfun{x}{\tau_x}{\tau}}{r}} &=& \tref{v}{\tfun{x}{\freshty{\tau_x}}{\freshty{\tau}}}{\trueref}\\
-\freshty{\tref{v}{\tcon{C}{\overline{\tau}}{\overline{\ref}}}{r}} 
-	&=& \tref{v}{\tcon{C}{\overline{\freshty{\tau}}}{\overline{\freshref}}}{\freshref}\\
-\freshty{\tref{v}{\tapp{\tau_1}{\tau_2}}{r}} &=& \tref{v}{\tapp{\freshty{\tau_1}}{\freshty{\tau_2}}}{\trueref}\\
-\freshty{\tcl{Cl}{\bar{\tau}}} &=& \tcl{Cl}{\bar{\tau}}\\
-\freshty{\tall{\alpha}{\sigma}} &=& \tall{\alpha}{\freshty{\sigma}}\\
-\freshty{\forall \left\langle p \colon \tau \right\rangle . \sigma} 
-	&=& {\forall \left\langle p \colon \tau \right\rangle . \freshty{\sigma}}
-\end{array}
-$$
-where $fref = {([], k_i)}$, $tref = {([], true)}$
-
-\hfill\truety{\sigma} { -- type with true for all refinements}\\
-$$
-\begin{array}{lcl}
-\truety{\tref{v}{\alpha}{r}} 
-	&=& \tref{v}{\alpha}{\trueref}\\
-\truety{\tref{v}{\tfun{x}{\tau_x}{\tau}}{r}} 
-	&=& \tref{v}{\tfun{x}{\truety{\tau_x}}{\truety{\tau}}}{\trueref}\\
-\truety{\tref{v}{\tcon{C}{\overline{\tau}}{\overline{\ref}}}{r}} 
-	&=& \tref{v}{\tcon{C}{\overline{\truety{\tau}}}{\overline{\trueref}}}{\trueref}\\
-\truety{\tref{v}{\tapp{\tau_1}{\tau_2}}{r}} 
-	&=& \tref{v}{\tapp{\truety{\tau_1}}{\truety{\tau_2}}}{\trueref}\\
-\truety{\tcl{Cl}{\bar{\tau}}} &=& \tcl{Cl}{\bar{\tau}}\\
-\truety{\tall{\alpha}{\sigma}} &=& \tall{\alpha}{\truety{\sigma}}\\
-\truety{\forall \left\langle p \colon \tau \right\rangle . \sigma} 
-	&=& {\forall \left\langle p \colon \tau \right\rangle . \truety{\sigma}}
-\end{array}
-$$
-
-
-\hfill \freshPredsty{\sigma}  -- replace predicate occurrences with liquid variables
-$$
-\begin{array}{lclll}
-\freshPredsty{\tall{\alpha}{\sigma}}  
-	&=& (\tall{\alpha}{\sigma'}, C) & where& (\sigma', C) = \freshPredsty{\sigma}\\
-\freshPredsty{\forall \left\langle p \colon \tau \right\rangle .\sigma}  
-	&=& (\sigma'\sub{p}{k_i}, (C,\wfc{\Gamma'}{k_i})) & where& (\sigma', C) = \freshPredsty{\sigma}\\ 
-	&&&&  x_1\colon\tau_1 \rightarrow \dots x_n \colon\tau_n \rightarrow Prop= \tau\\
-	&&&&  \Gamma' = \Gamma, x_1\colon\tau_1 \rightarrow \dots x_{n-1} \colon\tau_{n-1}\\
-\freshPredsty{\tau}  
-	&=& (\tau, \emptyset) && \\
-\end{array}
-$$
-
-\begin{align*}
-%\isGenericty{\alpha}{\sigma} & \text{ -- not constrained by class predicates}\\
-%\freshty{\sigma} & \text{ -- type with liquid variables for all refinements}\\
-%\truety{\sigma} & \text{ -- type with true for all refinements}\\
-\truetyExpr{e} & \text{ -- type of expression with true for all refinements}\\
-\varTemplate{x} & \text{ -- type for variable x, user specified type or a fresh type}\\
-\end{align*}
-
-\begin{align*}
-\dataconty{C}{x_i} = 
-\left\lbrace \begin{array}{l l}
-Prop\ v & C = True\\
-\lnot (Prop\ v) & C = False\\
-v = x_1 & C = I\# \\
-v= C x_i & \text{otherwise}
-\end{array}\right.
-\end{align*}
diff --git a/docs/slides/BOS14/Makefile b/docs/slides/BOS14/Makefile
deleted file mode 100644
--- a/docs/slides/BOS14/Makefile
+++ /dev/null
@@ -1,95 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-RJSERVER=rjhala@goto.ucsd.edu:~/public_html/liquid/haskell/plpv/lhs/
-## LOCAL
-## MATHJAX=file:///Users/rjhala/research/MathJax
-## REMOTE 
-## MATHJAX=https://c328740.ssl.cf1.rackcdn.com/mathjax/latest
-## MATHJAX=https://c328740.ssl.cf1.rackcdn.com/mathjax/latest
-MATHJAX=http://cdn.mathjax.org/mathjax/latest
-
-####################################################################
-
-STRIPCODE=./MkCode.hs
-
-REVEAL=pandoc \
-	   --from=markdown\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js \
-	   --variable mathjax=$(MATHJAX)
-
-FREVEAL=pandoc \
- 	   --from=markdown+lhs\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js
-
-PANDOC=pandoc --columns=80  -s --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid --short-names 
-
-mdObjects   := $(patsubst %.lhs,%.lhs.markdown,$(wildcard lhs/*.lhs))
-htmlObjects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-pdfObjects  := $(patsubst %.lhs,%.lhs.slides.pdf,$(wildcard lhs/*.lhs))
-fhtmlObjects := $(patsubst %.lhs,%.fast.html,$(wildcard lhs/*.lhs))
-
-####################################################################
-
-
-all: slides 
-
-fast: $(fhtmlObjects)
-
-one: $(mdObjects)
-	$(REVEAL) lhs/.liquid/00_Index.lhs.markdown > lhs/index.html
-
-tut: $(mdObjects)
-	$(REVEAL) lhs/.liquid/*.markdown > lhs/tutorial.html 
-
-slides: $(htmlObjects)
-
-pdfslides: $(pdfObjects)
-
-lhs/.liquid/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-
-lhs/%.fast: lhs/%.lhs
-	$(STRIPCODE) $? > $@ 
-
-lhs/%.fast.html: lhs/%.fast
-	$(FREVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.html: lhs/.liquid/%.lhs.markdown
-	$(REVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/.liquid/%.lhs.markdown
-	$(BEAMER) $? -o $@
-
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/BOS14/README.md b/docs/slides/BOS14/README.md
deleted file mode 100644
--- a/docs/slides/BOS14/README.md
+++ /dev/null
@@ -1,262 +0,0 @@
-Todo
-----
-
-+ CREATE 00_Motivation_Bugs.lhs **TUFTS**
-  + sequence, BUGs, 1984, etc.
-
-+ UPDATE 11_Evaluation.lhs **TUFTS,BOS** 
-  + Add bits about "comments" ---> "types"
-  + Nicer GRAPHS
-  
-+ CREATE HARDWIRED-RED-BLACK-BST.lhs **TUFTS**
-  + INV 1: COLOR
-  + INV 2: HEIGHT
-  + INV 3: ORDER
-
-+ CREATE 03_Memory.lhs **TUFTS, BOS**
-  + and associated demo file, from eseidel's BS demo.
-
-+ UPDATE 09_Laziness.lhs **BOS**
-  + Use math fonts
-  
-+ CHECK 10_Termination.lhs **BOS**
-  + link to Termination.hs demo
-  
-Comparison with DT
-------------------
-
--- Grisly HS+DT proof
-https://github.com/jstolarek/dep-typed-wbl-heaps-hs/blob/master/src/TwoPassMerge/CombinedProofs.hs#L68
-
--- HS (no proof)
-https://github.com/jstolarek/dep-typed-wbl-heaps-hs/blob/master/src/TwoPassMerge/NoProofs.hs#L96
-
--- HS+LH proof
-https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/WBL.hs#L129
-
-
-BOS-Haskell Plan
-----------------
-
-[35] PART I "refinement types"
-
-* [5]  00_Motivation: "Go Wrong"
-
-* [15] 01_SimpleRefinements (upto VC, Abs) but no Kvar
-    + Demo : hs/000_Refinements.hs
-	+ Demo : hs/001_Refinements.hs
-	
-* [15] 02_Measures
-    + Demo : hs/01_Elements.hs
-
-[20] PART II "case studies"
-
-* [5]  lhs/02_RedBlack.lhs	
-* [15] lhs/13_Memory.lhs
-
-
-[25] PART III "haskell"
-
-* [10] lhs/09_Laziness.lhs
-* [10] lhs/10_Termination.lhs
-* [3]  lhs/11_Evaluation.lhs 
-* [2]  lhs/12_Conclusion.lhs
-
-[20] PART IV "abstract refinements"
-
-* [5]  04_Abstract Refinements.lhs
-    + Demo : 02_AbstractRefinements.hs (listMax)
-
-* [7] Demo Inductive
-    + Demo:  02_AbstractRefinements.hs (ifoldr, append, filter)
-	  
-* [8] Demo Recursive
-	+ Demo:  02_AbstractRefinements.hs (insertSort, ifoldr-insertSort)
-	+ Demo:  04_Streams.hs (repeat, take)
-
-? [10] Demo Indexed
-	+ Demo: KMP.hs
-
-Tufts Plan
-----------
-
-* [7]  00_Motivation_Long
-        + Bugs
-		+ Well typed Program Go Wrong
-		
-* [10]  01_SimpleRefinements
-        + upto VC, Abs
-
-* [10] 02_Measures 
-        + Demo    : 00_Refinements.hs
-        + Demo    : 01_Elements.hs
-
-* [5]  02_RedBlack 
-		+ Complex : RED-BLACK Trees
-
-* [5] 03_Memory_short?
-		+ Upto just the low-level API?
-		
-* [5]  11_Evaluation.lhs 
-		+ Add bits about "comments" ---> "types"
-		
-* [2]  12_Conclusion.lhs
-
-
-
-Brown Plan
-----------
-
-* [5]  00_Motivation: "Go Wrong"
-
-* [5]  01_SimpleRefinements (upto VC, Abs, but no Kvar)
-
-* [10] 02_Measures [TODO: cut RED-BLACK]
-    + Demo : 00_Refinements.hs
-    + Demo : 01_Elements.hs
-
-* [5]  04_Abstract Refinements
-    + Demo : 02_AbstractRefinements.hs (listMax)
-	
-* [5]  06_Inductive
-	+ Describe: [TODO: CUT ?foldn] foldr
-    + Demo:  02_AbstractRefinements.hs (foldr, append, filter)
-
-* [5]  08_Recursive
-	+ Describe: list-ord
-	+ Demo:  02_AbstractRefinements.hs (insertSort, ifoldr-insertSort)
-	+ Show:  GhcListSort.hs 
-	+ Describe: tree-ord
-	+ Demo:     Stream
- 
-* [3]  11_Evaluation.lhs 
-
-* [2]  12_Conclusion.lhs
-
-
-
-Harvard Plan
-------------
-
-* [5] 00_Motivation: "Go Wrong"
-
-* [5] 01_SimpleRefinements (upto VC, Abs, but no Kvar)
-
-* [10] 02_Measures [TODO: cut RED-BLACK]
-    + Demo : 00_Refinements.hs (upto "wtAverage")
-    + Demo : 01_Elements.hs
-
-* [5] 04_Abstract Refinements
-    + Demo : 02_AbstractRefinements.hs (listMax)
-	
-* [5] 06_Inductive
-	+ Describe: [TODO: CUT ?foldn] foldr
-    + Demo:  02_AbstractRefinements.hs (foldr, append, filter)
-
-* [5] 08_Recursive
-	+ Describe: list-ord
-	+ Demo:  02_AbstractRefinements.hs (insertSort, ifoldr-insertSort)
-
-	+ Show:  GhcListSort.hs 
-	+ Describe: tree-ord
-	+ [TODO: CUT] Demo:     RBTree-Ord
-	+ Demo:     Stream
-
-* [TODO: CUT] [5] 07_Array
-  [TODO: CUT] 	+ Describe: Array
-  [TODO: CUT] 	+ Demo:     KMP
-  
-* [3] 11_Evaluation.lhs 
-
-* [2] 12_Conclusion.lhs
-
-Bytestring Details
-------------------
-
--- | A variety of 'head' for non-empty ByteStrings. 'unsafeHead' omits
--- the check for the empty case, which is good for performance, but
--- there is an obligation on the programmer to provide a proof that the
--- ByteString is non-empty.
-{-@ unsafeHead :: ByteStringNE -> Char @-}
-unsafeHead :: ByteString -> Char
-unsafeHead  = w2c . B.unsafeHead
-{-# INLINE unsafeHead #-}
-
-
-type ByteStringNE = {v:ByteString | 0 < bLength v}
-
-
--- | Unsafe 'ByteString' index (subscript) operator, starting from 0, returning a 'Word8'
--- This omits the bounds check, which means there is an accompanying
--- obligation on the programmer to ensure the bounds are checked in some
--- other way.
-
-{-@ type OkIdx B = {v:Nat | v < bLength B} @-}
-
-{-@ unsafeIndex :: b:ByteString -> OkIdx b -> Word8 @-}
-unsafeIndex :: ByteString -> Int -> Word8
-unsafeIndex (PS x s l) i = assert (i >= 0 && i < l) $
-    inlinePerformIO $ withForeignPtr x $ \p -> peekByteOff p (s+i)
-
-
-Low-Level Memory
-----------------
-
-1. "Haskell HeartBleed" (using BS)
-
-2. Memory API (calls out to C)
-	+ mallocForeignPtrBytes
-	+ withForeignPtr 
-	+ peek
-	+ poke
-	+ plusPtr
-
-   First with types, then with Refined Types.
-
-3. Examples
-    + okPtr
-	+ badPtr (replace 3 with 6)
-
-4. `ByteString`
-   + invariant 
-   + goodBS1, goodBS2
-   + badBS1, badBS2
-
-5. `create`
-   + good call
-   + bad call
-   
-6. `pack`
-7. `unpack`
-8. `unsafeTake`
-9. `heartBleed` redux.
-
-`peekByteOff p i == peek (p `plusPtr` i)`
-
-\begin{code}
-module BSCrash where
-
-import Data.ByteString.Char8  as C
-import Data.ByteString        as B
-import Data.ByteString.Unsafe as U
-
-heartBleed s n = s'
-  where 
-    b          = C.pack s         -- "Ranjit"
-    b'         = U.unsafeTake n b -- 20
-    s'         = C.unpack b'
-
--- > let ex = "Ranjit Loves Burritos"
-    
--- > heartBleed ex 1
---   "R"
-    
--- > heartBleed ex 6
--- > "Ranjit"
-
--- > heartBleed ex 10
--- > "Ranjit Lov"
-    
--- > heartBleed ex 30
--- > "Ranjit Loves Burritos\NUL\NUL\NUL\201\&1j\DC3\SOH\NUL"
-\end{code}
diff --git a/docs/slides/BOS14/_support/liquid.css b/docs/slides/BOS14/_support/liquid.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/BOS14/_support/liquidhaskell.css b/docs/slides/BOS14/_support/liquidhaskell.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/liquidhaskell.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/BOS14/_support/reveal.js/.travis.yml b/docs/slides/BOS14/_support/reveal.js/.travis.yml
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-before_script:
-  - npm install -g grunt-cli
diff --git a/docs/slides/BOS14/_support/reveal.js/Gruntfile.js b/docs/slides/BOS14/_support/reveal.js/Gruntfile.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/Gruntfile.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* global module:false */
-module.exports = function(grunt) {
-	var port = grunt.option('port') || 8000;
-	// Project configuration
-	grunt.initConfig({
-		pkg: grunt.file.readJSON('package.json'),
-		meta: {
-			banner:
-				'/*!\n' +
-				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
-				' * http://lab.hakim.se/reveal-js\n' +
-				' * MIT licensed\n' +
-				' *\n' +
-				' * Copyright (C) 2014 Hakim El Hattab, http://hakim.se\n' +
-				' */'
-		},
-
-		qunit: {
-			files: [ 'test/*.html' ]
-		},
-
-		uglify: {
-			options: {
-				banner: '<%= meta.banner %>\n'
-			},
-			build: {
-				src: 'js/reveal.js',
-				dest: 'js/reveal.min.js'
-			}
-		},
-
-		cssmin: {
-			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
-			}
-		},
-
-		sass: {
-			main: {
-				files: {
-					'css/theme/default.css': 'css/theme/source/default.scss',
-					'css/theme/beige.css': 'css/theme/source/beige.scss',
-					'css/theme/night.css': 'css/theme/source/night.scss',
-					'css/theme/serif.css': 'css/theme/source/serif.scss',
-					'css/theme/simple.css': 'css/theme/source/simple.scss',
-					'css/theme/sky.css': 'css/theme/source/sky.scss',
-					'css/theme/moon.css': 'css/theme/source/moon.scss',
-					'css/theme/solarized.css': 'css/theme/source/solarized.scss',
-					'css/theme/blood.css': 'css/theme/source/blood.scss'
-				}
-			}
-		},
-
-		jshint: {
-			options: {
-				curly: false,
-				eqeqeq: true,
-				immed: true,
-				latedef: true,
-				newcap: true,
-				noarg: true,
-				sub: true,
-				undef: true,
-				eqnull: true,
-				browser: true,
-				expr: true,
-				globals: {
-					head: false,
-					module: false,
-					console: false,
-					unescape: false
-				}
-			},
-			files: [ 'Gruntfile.js', 'js/reveal.js' ]
-		},
-
-		connect: {
-			server: {
-				options: {
-					port: port,
-					base: '.'
-				}
-			}
-		},
-
-		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**'
-			]
-		},
-
-		watch: {
-			main: {
-				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-				tasks: 'default'
-			},
-			theme: {
-				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
-				tasks: 'themes'
-			}
-		}
-
-	});
-
-	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
-	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
-	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-contrib-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
-	grunt.loadNpmTasks( 'grunt-zip' );
-
-	// Default task
-	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );
-
-	// Theme task
-	grunt.registerTask( 'themes', [ 'sass' ] );
-
-	// Package presentation to archive
-	grunt.registerTask( 'package', [ 'default', 'zip' ] );
-
-	// Serve presentation locally
-	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
-
-	// Run tests
-	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
-
-};
diff --git a/docs/slides/BOS14/_support/reveal.js/LICENSE b/docs/slides/BOS14/_support/reveal.js/LICENSE
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2014 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/BOS14/_support/reveal.js/README.md b/docs/slides/BOS14/_support/reveal.js/README.md
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/README.md
+++ /dev/null
@@ -1,933 +0,0 @@
-# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.png?branch=master)](https://travis-ci.org/hakimel/reveal.js)
-
-A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/).
-
-reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a browser with support for CSS 3D transforms but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere.
-
-
-#### More reading:
-- [Installation](#installation): Step-by-step instructions for getting reveal.js running on your computer.
-- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history.
-- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own!
-- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks.
-
-## Online Editor
-
-Presentations are written using HTML or markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [http://slid.es](http://slid.es).
-
-
-## Instructions
-
-### Markup
-
-Markup hierarchy needs to be ``<div class="reveal"> <div class="slides"> <section>`` where the ``<section>`` represents one slide and can be repeated indefinitely. If you place multiple ``<section>``'s inside of another ``<section>`` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example:
-
-```html
-<div class="reveal">
-	<div class="slides">
-		<section>Single Horizontal Slide</section>
-		<section>
-			<section>Vertical Slide 1</section>
-			<section>Vertical Slide 2</section>
-		</section>
-	</div>
-</div>
-```
-
-### Markdown
-
-It's possible to write your slides using Markdown. To enable Markdown, add the ```data-markdown``` attribute to your ```<section>``` elements and wrap the contents in a ```<script type="text/template">``` like the example below.
-
-This is based on [data-markdown](https://gist.github.com/1343518) from [Paul Irish](https://github.com/paulirish) modified to use [marked](https://github.com/chjj/marked) to support [Github Flavoured Markdown](https://help.github.com/articles/github-flavored-markdown). Sensitive to indentation (avoid mixing tabs and spaces) and line breaks (avoid consecutive breaks).
-
-```html
-<section data-markdown>
-	<script type="text/template">
-		## Page title
-
-		A paragraph with some text and a [link](http://hakim.se).
-	</script>
-</section>
-```
-
-#### External Markdown
-
-You can write your content as a separate file and have reveal.js load it at runtime. Note the separator arguments which determine how slides are delimited in the external file. The ```data-charset``` attribute is optional and specifies which charset to use when loading the external file.
-
-When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup).
-
-```html
-<section data-markdown="example.md"  
-         data-separator="^\n\n\n"  
-         data-vertical="^\n\n"  
-         data-notes="^Note:"  
-         data-charset="iso-8859-15">
-</section>
-```
-
-#### Element Attributes
-
-Special syntax (in html comment) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things.
-
-```html
-<section data-markdown>
-	<script type="text/template">
-		- Item 1 <!-- .element: class="fragment" data-fragment-index="2" -->
-		- Item 2 <!-- .element: class="fragment" data-fragment-index="1" -->
-	</script>
-</section>
-```
-
-#### Slide Attributes
-
-Special syntax (in html comment) is available for adding attributes to the slide `<section>` elements generated by your Markdown.
-
-```html
-<section data-markdown>
-	<script type="text/template">
-	<!-- .slide: data-background="#ff0000" -->
-		Markdown content
-	</script>
-</section>
-```
-
-
-### Configuration
-
-At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below.
-
-```javascript
-Reveal.initialize({
-
-	// Display controls in the bottom right corner
-	controls: true,
-
-	// Display a presentation progress bar
-	progress: true,
-
-	// Display the page number of the current slide
-	slideNumber: false,
-
-	// Push each slide change to the browser history
-	history: false,
-
-	// Enable keyboard shortcuts for navigation
-	keyboard: true,
-
-	// Enable the slide overview mode
-	overview: true,
-
-	// Vertical centering of slides
-	center: true,
-
-	// Enables touch navigation on devices with touch input
-	touch: true,
-
-	// Loop the presentation
-	loop: false,
-
-	// Change the presentation direction to be RTL
-	rtl: false,
-
-	// Turns fragments on and off globally
-	fragments: true,
-
-	// Flags if the presentation is running in an embedded mode,
-	// i.e. contained within a limited portion of the screen
-	embedded: false,
-
-	// Number of milliseconds between automatically proceeding to the
-	// next slide, disabled when set to 0, this value can be overwritten
-	// by using a data-autoslide attribute on your slides
-	autoSlide: 0,
-
-	// Stop auto-sliding after user input
-	autoSlideStoppable: true,
-
-	// Enable slide navigation via mouse wheel
-	mouseWheel: false,
-
-	// Hides the address bar on mobile devices
-	hideAddressBar: true,
-
-	// Opens links in an iframe preview overlay
-	previewLinks: false,
-
-	// Transition style
-	transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-	// Transition speed
-	transitionSpeed: 'default', // default/fast/slow
-
-	// Transition style for full page slide backgrounds
-	backgroundTransition: 'default', // default/none/slide/concave/convex/zoom
-
-	// Number of slides away from the current that are visible
-	viewDistance: 3,
-
-	// Parallax background image
-	parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'"
-
-	// Parallax background size
-	parallaxBackgroundSize: '' // CSS syntax, e.g. "2100px 900px"
-
-
-});
-```
-
-Note that the new default vertical centering option will break compatibility with slides that were using transitions with backgrounds (`cube` and `page`). To restore the previous behavior, set `center` to `false`.
-
-
-The configuration can be updated after initialization using the ```configure``` method:
-
-```javascript
-// Turn autoSlide off
-Reveal.configure({ autoSlide: 0 });
-
-// Start auto-sliding every 5s
-Reveal.configure({ autoSlide: 5000 });
-```
-
-
-### Dependencies
-
-Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example:
-
-```javascript
-Reveal.initialize({
-	dependencies: [
-		// Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/
-		{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
-
-		// Interpret Markdown in <section> elements
-		{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-
-		// Syntax highlight for <code> elements
-		{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-
-		// Zoom in and out with Alt+click
-		{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// Speaker notes
-		{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// Remote control your reveal.js presentation using a touch device
-		{ src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// MathJax
-		{ src: 'plugin/math/math.js', async: true }
-	]
-});
-```
-
-You can add your own extensions using the same syntax. The following properties are available for each dependency object:
-- **src**: Path to the script to load
-- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false
-- **callback**: [optional] Function to execute when the script has loaded
-- **condition**: [optional] Function which must return true for the script to be loaded
-
-
-### Presentation Size
-
-All presentations have a normal size, that is the resolution at which they are authored. The framework will automatically scale presentations uniformly based on this size to ensure that everything fits on any given display or viewport.
-
-See below for a list of configuration options related to sizing, including default values:
-
-```javascript
-Reveal.initialize({
-
-	...
-
-	// The "normal" size of the presentation, aspect ratio will be preserved
-	// when the presentation is scaled to fit different resolutions. Can be
-	// specified using percentage units.
-	width: 960,
-	height: 700,
-
-	// Factor of the display size that should remain empty around the content
-	margin: 0.1,
-
-	// Bounds for smallest/largest possible scale to apply to content
-	minScale: 0.2,
-	maxScale: 1.0
-
-});
-```
-
-
-### Auto-sliding
-
-Presentations can be configure to progress through slides automatically, without any user input. To enable this you will need to tell the framework how many milliseconds it should wait between slides:
-
-```javascript
-// Slide every five seconds
-Reveal.configure({
-  autoSlide: 5000
-});
-```
-
-When this is turned on a control element will appear that enables users to pause and resume auto-sliding. Sliding is also paused automatically as soon as the user starts navigating. You can disable these controls by specifying ```autoSlideStoppable: false``` in your reveal.js config.
-
-You can also override the slide duration for individual slides by using the ```data-autoslide``` attribute on individual sections:
-
-```html
-<section data-autoslide="10000">This will remain on screen for 10 seconds</section>
-```
-
-
-### Keyboard Bindings
-
-If you're unhappy with any of the default keyboard bindings you can override them using the ```keyboard``` config option:
-
-```javascript
-Reveal.configure({
-  keyboard: {
-    13: 'next', // go to the next slide when the ENTER key is pressed
-    27: function() {}, // do something custom when ESC is pressed
-    32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding)
-  }
-});
-```
-
-
-### API
-
-The ``Reveal`` class provides a JavaScript API for controlling navigation and reading state:
-
-```javascript
-// Navigation
-Reveal.slide( indexh, indexv, indexf );
-Reveal.left();
-Reveal.right();
-Reveal.up();
-Reveal.down();
-Reveal.prev();
-Reveal.next();
-Reveal.prevFragment();
-Reveal.nextFragment();
-Reveal.toggleOverview();
-Reveal.togglePause();
-
-// Retrieves the previous and current slide elements
-Reveal.getPreviousSlide();
-Reveal.getCurrentSlide();
-
-Reveal.getIndices(); // { h: 0, v: 0 } }
-
-// State checks
-Reveal.isFirstSlide();
-Reveal.isLastSlide();
-Reveal.isOverview();
-Reveal.isPaused();
-```
-
-### Ready Event
-
-The 'ready' event is fired when reveal.js has loaded all (synchronous) dependencies and is ready to start navigating.
-
-```javascript
-Reveal.addEventListener( 'ready', function( event ) {
-	// event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-### Slide Changed Event
-
-An 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes.
-
-Some libraries, like MathJax (see [#226](https://github.com/hakimel/reveal.js/issues/226#issuecomment-10261609)), get confused by the transforms and display states of slides. Often times, this can be fixed by calling their update or render function from this callback.
-
-```javascript
-Reveal.addEventListener( 'slidechanged', function( event ) {
-	// event.previousSlide, event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-
-### States
-
-If you set ``data-state="somestate"`` on a slide ``<section>``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide.
-
-Furthermore you can also listen to these changes in state via JavaScript:
-
-```javascript
-Reveal.addEventListener( 'somestate', function() {
-	// TODO: Sprinkle magic
-}, false );
-```
-
-### Slide Backgrounds
-
-Slides are contained within a limited portion of the screen by default to allow them to fit any display and scale uniformly. You can apply full page background colors or images by applying a ```data-background``` attribute to your ```<section>``` elements. Below are a few examples.
-
-```html
-<section data-background="#ff0000">
-	<h2>All CSS color formats are supported, like rgba() or hsl().</h2>
-</section>
-<section data-background="http://example.com/image.png">
-	<h2>This slide will have a full-size background image.</h2>
-</section>
-<section data-background="http://example.com/image.png" data-background-size="100px" data-background-repeat="repeat">
-	<h2>This background image will be sized to 100px and repeated.</h2>
-</section>
-```
-
-Backgrounds transition using a fade animation by default. This can be changed to a linear sliding transition by passing ```backgroundTransition: 'slide'``` to the ```Reveal.initialize()``` call. Alternatively you can set ```data-background-transition``` on any section with a background to override that specific transition.
-
-
-### Parallax Background
-
-If you want to use a parallax scrolling background, set the two following config properties when initializing reveal.js (the third one is optional).
-
-```javascript
-Reveal.initialize({
-
-	// Parallax background image
-	parallaxBackgroundImage: '', // e.g. "https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg"
-
-	// Parallax background size
-	parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - currently only pixels are supported (don't use % or auto)
-
-	// This slide transition gives best results:
-	transition: linear
-
-});
-```
-
-Make sure that the background size is much bigger than screen size to allow for some scrolling. [View example](http://lab.hakim.se/reveal-js/?parallaxBackgroundImage=https%3A%2F%2Fs3.amazonaws.com%2Fhakim-static%2Freveal-js%2Freveal-parallax-1.jpg&parallaxBackgroundSize=2100px%20900px).
-
-
-
-### Slide Transitions
-The global presentation transition is set using the ```transition``` config value. You can override the global transition for a specific slide by using the ```data-transition``` attribute:
-
-```html
-<section data-transition="zoom">
-	<h2>This slide will override the presentation transition and zoom!</h2>
-</section>
-
-<section data-transition-speed="fast">
-	<h2>Choose from three transition speeds: default, fast or slow!</h2>
-</section>
-```
-
-Note that this does not work with the page and cube transitions.
-
-
-### Internal links
-
-It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```<section id="some-slide">```):
-
-```html
-<a href="#/2/2">Link</a>
-<a href="#/some-slide">Link</a>
-```
-
-You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an ```enabled``` class when it's a valid navigation route based on the current slide.
-
-```html
-<a href="#" class="navigate-left">
-<a href="#" class="navigate-right">
-<a href="#" class="navigate-up">
-<a href="#" class="navigate-down">
-<a href="#" class="navigate-prev"> <!-- Previous vertical or horizontal slide -->
-<a href="#" class="navigate-next"> <!-- Next vertical or horizontal slide -->
-```
-
-
-### Fragments
-Fragments are used to highlight individual elements on a slide. Every element with the class ```fragment``` will be stepped through before moving on to the next slide. Here's an example: http://lab.hakim.se/reveal-js/#/fragments
-
-The default fragment style is to start out invisible and fade in. This style can be changed by appending a different class to the fragment:
-
-```html
-<section>
-	<p class="fragment grow">grow</p>
-	<p class="fragment shrink">shrink</p>
-	<p class="fragment roll-in">roll-in</p>
-	<p class="fragment fade-out">fade-out</p>
-	<p class="fragment current-visible">visible only once</p>
-	<p class="fragment highlight-current-blue">blue only once</p>
-	<p class="fragment highlight-red">highlight-red</p>
-	<p class="fragment highlight-green">highlight-green</p>
-	<p class="fragment highlight-blue">highlight-blue</p>
-</section>
-```
-
-Multiple fragments can be applied to the same element sequentially by wrapping it, this will fade in the text on the first step and fade it back out on the second.
-
-```html
-<section>
-	<span class="fragment fade-in">
-		<span class="fragment fade-out">I'll fade in, then out</span>
-	</span>
-</section>
-```
-
-The display order of fragments can be controlled using the ```data-fragment-index``` attribute.
-
-```html
-<section>
-	<p class="fragment" data-fragment-index="3">Appears last</p>
-	<p class="fragment" data-fragment-index="1">Appears first</p>
-	<p class="fragment" data-fragment-index="2">Appears second</p>
-</section>
-```
-
-### Fragment events
-
-When a slide fragment is either shown or hidden reveal.js will dispatch an event.
-
-Some libraries, like MathJax (see #505), get confused by the initially hidden fragment elements. Often times this can be fixed by calling their update or render function from this callback.
-
-```javascript
-Reveal.addEventListener( 'fragmentshown', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-Reveal.addEventListener( 'fragmenthidden', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-```
-
-### Code syntax highlighting
-
-By default, Reveal is configured with [highlight.js](http://softwaremaniacs.org/soft/highlight/en/) for code syntax highlighting. Below is an example with clojure code that will be syntax highlighted. When the `data-trim` attribute is present surrounding whitespace is automatically removed.
-
-```html
-<section>
-	<pre><code data-trim>
-(def lazy-fib
-  (concat
-   [0 1]
-   ((fn rfib [a b]
-        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
-	</code></pre>
-</section>
-```
-
-### Slide number
-If you would like to display the page number of the current slide you can do so using the ```slideNumber``` configuration value.
-
-```javascript
-Reveal.configure({ slideNumber: true });
-```
-
-
-### Overview mode
-
-Press "Esc" or "o" keys to toggle the overview mode on and off. While you're in this mode, you can still navigate between slides,
-as if you were at 1,000 feet above your presentation. The overview mode comes with a few API hooks:
-
-```javascript
-Reveal.addEventListener( 'overviewshown', function( event ) { /* ... */ } );
-Reveal.addEventListener( 'overviewhidden', function( event ) { /* ... */ } );
-
-// Toggle the overview mode programmatically
-Reveal.toggleOverview();
-```
-
-### Fullscreen mode
-Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode.
-
-
-### Embedded media
-Embedded HTML5 `<video>`/`<audio>` and YouTube iframes are automatically paused when you navigate away from a slide. This can be disabled by decorating your element with a `data-ignore` attribute.
-
-Add `data-autoplay` to your media element if you want it to automatically start playing when the slide is shown:
-
-```html
-<video data-autoplay src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>
-```
-
-Additionally the framework automatically pushes two [post messages](https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage) to all iframes, ```slide:start``` when the slide containing the iframe is made visible and ```slide:stop``` when it is hidden.
-
-
-### Stretching elements
-Sometimes it's desirable to have an element, like an image or video, stretch to consume as much space as possible within a given slide. This can be done by adding the ```.stretch``` class to an element as seen below:
-
-```html
-<section>
-	<h2>This video will use up the remaining space on the slide</h2>
-    <video class="stretch" src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>
-</section>
-```
-
-Limitations:
-- Only direct descendants of a slide section can be stretched
-- Only one descendant per slide section can be stretched
-
-
-## PDF Export
-
-Presentations can be exported to PDF via a special print stylesheet. This feature requires that you use [Google Chrome](http://google.com/chrome).
-Here's an example of an exported presentation that's been uploaded to SlideShare: http://www.slideshare.net/hakimel/revealjs-13872948.
-
-1. Open your presentation with [css/print/pdf.css](https://github.com/hakimel/reveal.js/blob/master/css/print/pdf.css) included on the page. The default index HTML lets you add *print-pdf* anywhere in the query to include the stylesheet, for example: [lab.hakim.se/reveal-js?print-pdf](http://lab.hakim.se/reveal-js?print-pdf).
-2. Open the in-browser print dialog (CMD+P).
-3. Change the **Destination** setting to **Save as PDF**.
-4. Change the **Layout** to **Landscape**.
-5. Change the **Margins** to **None**.
-6. Click **Save**.
-
-![Chrome Print Settings](https://s3.amazonaws.com/hakim-static/reveal-js/pdf-print-settings.png)
-
-## Theming
-
-The framework comes with a few different themes included:
-
-- default: Gray background, white text, blue links
-- beige: Beige background, dark text, brown links
-- sky: Blue background, thin white text, blue links
-- night: Black background, thick white text, orange links
-- serif: Cappuccino background, gray text, brown links
-- simple: White background, black text, blue links
-- solarized: Cream-colored background, dark green text, blue links
-
-Each theme is available as a separate stylesheet. To change theme you will need to replace **default** below with your desired theme name in index.html:
-
-```html
-<link rel="stylesheet" href="css/theme/default.css" id="theme">
-```
-
-If you want to add a theme of your own see the instructions here: [/css/theme/README.md](https://github.com/hakimel/reveal.js/blob/master/css/theme/README.md).
-
-
-## Speaker Notes
-
-reveal.js comes with a speaker notes plugin which can be used to present per-slide notes in a separate browser window. The notes window also gives you a preview of the next upcoming slide so it may be helpful even if you haven't written any notes. Press the 's' key on your keyboard to open the notes window.
-
-Notes are defined by appending an ```<aside>``` element to a slide as seen below. You can add the ```data-markdown``` attribute to the aside element if you prefer writing notes using Markdown.
-
-When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup).
-
-```html
-<section>
-	<h2>Some Slide</h2>
-
-	<aside class="notes">
-		Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).
-	</aside>
-</section>
-```
-
-If you're using the external Markdown plugin, you can add notes with the help of a special delimiter:
-
-```html
-<section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n" data-notes="^Note:"></section>
-
-# Title
-## Sub-title
-
-Here is some content...
-
-Note:
-This will only display in the notes window.
-```
-
-## Server Side Speaker Notes
-
-In some cases it can be desirable to run notes on a separate device from the one you're presenting on. The Node.js-based notes plugin lets you do this using the same note definitions as its client side counterpart. Include the required scripts by adding the following dependencies:
-
-```javascript
-Reveal.initialize({
-	...
-
-	dependencies: [
-		{ src: 'socket.io/socket.io.js', async: true },
-		{ src: 'plugin/notes-server/client.js', async: true }
-	]
-});
-```
-
-Then:
-
-1. Install [Node.js](http://nodejs.org/)
-2. Run ```npm install```
-3. Run ```node plugin/notes-server```
-
-
-## Multiplexing
-
-The multiplex plugin allows your audience to view the slides of the presentation you are controlling on their own phone, tablet or laptop. As the master presentation navigates the slides, all client presentations will update in real time. See a demo at [http://revealjs.jit.su/](http://revealjs.jit.su).
-
-The multiplex plugin needs the following 3 things to operate:
-
-1. Master presentation that has control
-2. Client presentations that follow the master
-3. Socket.io server to broadcast events from the master to the clients
-
-More details:
-
-#### Master presentation
-Served from a static file server accessible (preferably) only to the presenter. This need only be on your (the presenter's) computer. (It's safer to run the master presentation from your own computer, so if the venue's Internet goes down it doesn't stop the show.) An example would be to execute the following commands in the directory of your master presentation: 
-
-1. ```npm install node-static```
-2. ```static```
-
-If you want to use the speaker notes plugin with your master presentation then make sure you have the speaker notes plugin configured correctly along with the configuration shown below, then execute ```node plugin/notes-server``` in the directory of your master presentation. The configuration below will cause it to connect to the socket.io server as a master, as well as launch your speaker-notes/static-file server.
-
-You can then access your master presentation at ```http://localhost:1947```
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
-		id: '1ea875674b17ca76', // Obtained from socket.io server
-		url: 'revealjs.jit.su:80' // Location of socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/master.js', async: true },
-
-		// and if you want speaker notes
-		{ src: 'plugin/notes-server/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-#### Client presentation
-Served from a publicly accessible static file server. Examples include: GitHub Pages, Amazon S3, Dreamhost, Akamai, etc. The more reliable, the better. Your audience can then access the client presentation via ```http://example.com/path/to/presentation/client/index.html```, with the configuration below causing them to connect to the socket.io server as clients.
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: null, // null so the clients do not have control of the master presentation
-		id: '1ea875674b17ca76', // id, obtained from socket.io server
-		url: 'revealjs.jit.su:80' // Location of socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-#### Socket.io server
-Server that receives the slideChanged events from the master presentation and broadcasts them out to the connected client presentations. This needs to be publicly accessible. You can run your own socket.io server with the commands:
-
-1. ```npm install```
-2. ```node plugin/multiplex```
-
-Or you use the socket.io server at [http://revealjs.jit.su](http://revealjs.jit.su).
-
-You'll need to generate a unique secret and token pair for your master and client presentations. To do so, visit ```http://example.com/token```, where ```http://example.com``` is the location of your socket.io server. Or if you're going to use the socket.io server at [http://revealjs.jit.su](http://revealjs.jit.su), visit [http://revealjs.jit.su/token](http://revealjs.jit.su/token).
-
-You are very welcome to point your presentations at the Socket.io server running at [http://revealjs.jit.su](http://revealjs.jit.su), but availability and stability are not guaranteed. For anything mission critical I recommend you run your own server. It is simple to deploy to nodejitsu, heroku, your own environment, etc.
-
-##### socket.io server as file static server
-
-The socket.io server can play the role of static file server for your client presentation, as in the example at [http://revealjs.jit.su](http://revealjs.jit.su). (Open [http://revealjs.jit.su](http://revealjs.jit.su) in two browsers. Navigate through the slides on one, and the other will update to match.) 
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: null, // null so the clients do not have control of the master presentation
-		id: '1ea875674b17ca76', // id, obtained from socket.io server
-		url: 'example.com:80' // Location of your socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-```
-
-It can also play the role of static file server for your master presentation and client presentations at the same time (as long as you don't want to use speaker notes). (Open [http://revealjs.jit.su](http://revealjs.jit.su) in two browsers. Navigate through the slides on one, and the other will update to match. Navigate through the slides on the second, and the first will update to match.) This is probably not desirable, because you don't want your audience to mess with your slides while you're presenting. ;)
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
-		id: '1ea875674b17ca76', // Obtained from socket.io server
-		url: 'example.com:80' // Location of your socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/master.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-## Leap Motion
-The Leap Motion plugin lets you utilize your [Leap Motion](https://www.leapmotion.com/) device to control basic navigation of your presentation. The gestures currently supported are:
-
-##### 1 to 2 fingers
-Pointer &mdash; Point to anything on screen. Move your finger past the device to expand the pointer.
-
-##### 1 hand + 3 or more fingers (left/right/up/down)
-Navigate through your slides. See config options to invert movements.
-
-##### 2 hands upwards
-Toggle the overview mode. Do it a second time to exit the overview.
-
-#### Config Options
-You can edit the following options:
-
-| Property          | Default           | Description
-| ----------------- |:-----------------:| :-------------
-| autoCenter        | true              | Center the pointer based on where you put your finger into the leap motions detection field.
-| gestureDelay      | 500               | How long to delay between gestures in milliseconds.
-| naturalSwipe      | true              | Swipe as though you were touching a touch screen. Set to false to invert.
-| pointerColor      | #00aaff           | The color of the pointer.
-| pointerOpacity    | 0.7               | The opacity of the pointer.
-| pointerSize       | 15                | The minimum height and width of the pointer.
-| pointerTolerance  | 120               | Bigger = slower pointer.
-
-
-Example configuration:
-```js
-Reveal.initialize({
-
-	// other options...
-
-	leap: {
-		naturalSwipe   : false,    // Invert swipe gestures
-		pointerOpacity : 0.5,      // Set pointer opacity to 0.5
-		pointerColor   : '#d80000' // Red pointer
-	},
-
-	dependencies: [
-		{ src: 'plugin/leap/leap.js', async: true }
-	]
-
-});
-```
-
-## MathJax
-
-If you want to display math equations in your presentation you can easily do so by including this plugin. The plugin is a very thin wrapper around the [MathJax](http://www.mathjax.org/) library. To use it you'll need to include it as a reveal.js dependency, [find our more about dependencies here](#dependencies).
-
-The plugin defaults to using [LaTeX](http://en.wikipedia.org/wiki/LaTeX) but that can be adjusted through the ```math``` configuration object. Note that MathJax is loaded from a remote server. If you want to use it offline you'll need to download a copy of the library and adjust the ```mathjax``` configuration value. 
-
-Below is an example of how the plugin can be configured. If you don't intend to change these values you do not need to include the ```math``` config object at all.
-
-```js
-Reveal.initialize({
-
-	// other options ...
-
-	math: {
-		mathjax: 'http://cdn.mathjax.org/mathjax/latest/MathJax.js',
-		config: 'TeX-AMS_HTML-full'  // See http://docs.mathjax.org/en/latest/config-files.html
-	},
-	
-	dependencies: [
-		{ src: 'plugin/math/math.js', async: true }
-	]
-
-});
-```
-
-Read MathJax's documentation if you need [HTTPS delivery](http://docs.mathjax.org/en/latest/start.html#secure-access-to-the-cdn) or serving of [specific versions](http://docs.mathjax.org/en/latest/configuration.html#loading-mathjax-from-the-cdn) for stability.
-
-
-## Installation
-
-The **basic setup** is for authoring presentations only. The **full setup** gives you access to all reveal.js features and plugins such as speaker notes as well as the development tasks needed to make changes to the source.
-
-### Basic setup
-
-The core of reveal.js is very easy to install. You'll simply need to download a copy of this repository and open the index.html file directly in your browser.
-
-1. Download the latest version of reveal.js from <https://github.com/hakimel/reveal.js/releases>
-
-2. Unzip and replace the example contents in index.html with your own
-
-3. Open index.html in a browser to view it
-
-
-### Full setup
-
-Some reveal.js features, like external markdown and speaker notes, require that presentations run from a local web server. The following instructions will set up such a server as well as all of the development tasks needed to make edits to the reveal.js source code.
-
-1. Install [Node.js](http://nodejs.org/)
-
-2. Install [Grunt](http://gruntjs.com/getting-started#installing-the-cli)
-
-4. Clone the reveal.js repository
-   ```sh
-   $ git clone https://github.com/hakimel/reveal.js.git
-   ```
-
-5. Navigate to the reveal.js folder
-   ```sh
-   $ cd reveal.js
-   ```
-
-6. Install dependencies
-   ```sh
-   $ npm install
-   ```
-
-7. Serve the presentation and monitor source files for changes
-   ```sh
-   $ grunt serve
-   ```
-
-8. Open <http://localhost:8000> to view your presentation
-
-   You can change the port by using `grunt serve --port 8001`.
-
-
-### Folder Structure
-- **css/** Core styles without which the project does not function
-- **js/** Like above but for JavaScript
-- **plugin/** Components that have been developed as extensions to reveal.js
-- **lib/** All other third party assets (JavaScript, CSS, fonts)
-
-
-### Contributing
-
-Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. If you are reporting a bug make sure to include information about which browser and operating system you are using as well as the necessary steps to reproduce the issue.
-
-If you have personal support questions use [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
-
-
-#### Pull requests
-
-- Should follow the coding style of the file you work in, most importantly:
-  - Tabs to indent
-  - Single-quoted strings
-- Should be made towards the **dev branch**
-- Should be submitted from a feature/topic branch (not your master)
-- Should not include the minified **reveal.min.js** file
-
-
-## License
-
-MIT licensed
-
-Copyright (C) 2014 Hakim El Hattab, http://hakim.se
diff --git a/docs/slides/BOS14/_support/reveal.js/css/print/paper.css b/docs/slides/BOS14/_support/reveal.js/css/print/paper.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/print/paper.css
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-body {
-	background: #fff;
-	font-size: 13pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-html {
-	background: #fff;
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print.
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow,
-.controls,
-.reveal .progress,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display: none !important;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 16pt!important;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	color: #000;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Differentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	color: #000!important;
-	height: auto;
-	line-height: normal;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	text-shadow: 0 0 0 #000 !important;
-	text-align: left;
-	letter-spacing: normal;
-}
-/* Need to reduce the size of the fonts for printing */
-h1 { font-size: 26pt !important;  }
-h2 { font-size: 22pt !important; }
-h3 { font-size: 20pt !important; }
-h4 { font-size: 20pt !important; font-variant: small-caps; }
-h5 { font-size: 19pt !important; }
-h6 { font-size: 18pt !important; font-style: italic; }
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link,
-a:visited {
-	color: #000 !important;
-	font-weight: bold;
-	text-decoration: underline;
-}
-/*
-.reveal a:link:after,
-.reveal a:visited:after {
-	content: " (" attr(href) ") ";
-	color: #222 !important;
-	font-size: 90%;
-}
-*/
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-	text-align: left !important;
-}
-.reveal .slides {
-	position: static;
-	width: auto;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section,
-.reveal .slides>section>section {
-
-	visibility: visible !important;
-	position: static !important;
-	width: 90% !important;
-	height: auto !important;
-	display: block !important;
-	overflow: visible !important;
-
-	left: 0% !important;
-	top: 0% !important;
-	margin-left: 0px !important;
-	margin-top: 0px !important;
-	padding: 20px 0px !important;
-
-	opacity: 1 !important;
-
-	-webkit-transform-style: flat !important;
-	   -moz-transform-style: flat !important;
-	    -ms-transform-style: flat !important;
-	        transform-style: flat !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section {
-	page-break-after: always !important;
-	display: block !important;
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-	visibility: visible !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section:last-of-type {
-	page-break-after: avoid !important;
-}
-.reveal section img {
-	display: block;
-	margin: 15px 0px;
-	background: rgba(255,255,255,1);
-	border: 1px solid #666;
-	box-shadow: none;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/print/pdf.css b/docs/slides/BOS14/_support/reveal.js/css/print/pdf.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/print/pdf.css
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-
-* {
-	-webkit-print-color-adjust: exact;
-}
-
-body {
-	font-size: 18pt;
-	width: 297mm;
-	height: 229mm;
-	margin: 0 auto !important;
-	border: 0;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-
-html {
-	width: 100%;
-	height: 100%;
-	overflow: visible;
-}
-
-@page {
-	size: letter landscape;
-	margin: 0;
-}
-
-/* SECTION 2: Remove any elements not needed in print.
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow,
-.controls,
-.reveal .progress,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display: none !important;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div {
-	font-size: 18pt;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Differentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	text-shadow: 0 0 0 #000 !important;
-}
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link,
-a:visited {
-	font-weight: normal;
-	text-decoration: underline;
-}
-
-.reveal pre code {
-	overflow: hidden !important;
-	font-family: monospace !important;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-}
-.reveal {
-	width: auto !important;
-	height: auto !important;
-	overflow: hidden !important;
-}
-.reveal .slides {
-	position: static;
-	width: 100%;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin: 0 !important;
-	padding: 0 !important;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides section {
-
-	page-break-after: always !important;
-
-	visibility: visible !important;
-	position: relative !important;
-	width: 100% !important;
-	height: 229mm !important;
-	min-height: 229mm !important;
-	display: block !important;
-	overflow: hidden !important;
-
-	left: 0 !important;
-	top: 0 !important;
-	margin: 0 !important;
-	padding: 2cm 2cm 0 2cm !important;
-	box-sizing: border-box !important;
-
-	opacity: 1 !important;
-
-	-webkit-transform-style: flat !important;
-	   -moz-transform-style: flat !important;
-	    -ms-transform-style: flat !important;
-	        transform-style: flat !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section.stack {
-	margin: 0 !important;
-	padding: 0 !important;
-	page-break-after: avoid !important;
-	height: auto !important;
-	min-height: auto !important;
-}
-.reveal .absolute-element {
-	margin-left: 2.2cm;
-	margin-top: 1.8cm;
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-	visibility: visible !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section .slide-background {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	z-index: 0;
-}
-.reveal section>* {
-	position: relative;
-	z-index: 1;
-}
-.reveal img {
-	box-shadow: none;
-}
-.reveal .roll {
-	overflow: visible;
-	line-height: 1em;
-}
-.reveal small a {
-	font-size: 16pt !important;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/reveal.css b/docs/slides/BOS14/_support/reveal.js/css/reveal.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/reveal.css
+++ /dev/null
@@ -1,1882 +0,0 @@
-@charset "UTF-8";
-
-/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-
-
-/*********************************************
- * RESET STYLES
- *********************************************/
-
-html, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe,
-.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre,
-.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code,
-.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp,
-.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var,
-.reveal b, .reveal u, .reveal i, .reveal center,
-.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li,
-.reveal fieldset, .reveal form, .reveal label, .reveal legend,
-.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td,
-.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed,
-.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup,
-.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary,
-.reveal time, .reveal mark, .reveal audio, video {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	font-size: 100%;
-	font: inherit;
-	vertical-align: baseline;
-}
-
-.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure,
-.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section {
-	display: block;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-html,
-body {
-	width: 100%;
-	height: 100%;
-	overflow: hidden;
-}
-
-body {
-	position: relative;
-	line-height: 1;
-}
-
-::selection {
-	background: #FF5E99;
-	color: #fff;
-	text-shadow: none;
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-	-webkit-hyphens: auto;
-	   -moz-hyphens: auto;
-	        hyphens: auto;
-
-	word-wrap: break-word;
-	line-height: 1;
-}
-
-.reveal h1 { font-size: 3.77em; }
-.reveal h2 { font-size: 1.85em;	}
-.reveal h3 { font-size: 1.55em;	}
-.reveal h4 { font-size: 1em;	}
-
-
-/*********************************************
- * VIEW FRAGMENTS
- *********************************************/
-
-.reveal .slides section .fragment {
-	opacity: 0;
-
-	-webkit-transition: all .2s ease;
-	   -moz-transition: all .2s ease;
-	    -ms-transition: all .2s ease;
-	     -o-transition: all .2s ease;
-	        transition: all .2s ease;
-}
-	.reveal .slides section .fragment.visible {
-		opacity: 1;
-	}
-
-.reveal .slides section .fragment.grow {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.grow.visible {
-		-webkit-transform: scale( 1.3 );
-		   -moz-transform: scale( 1.3 );
-		    -ms-transform: scale( 1.3 );
-		     -o-transform: scale( 1.3 );
-		        transform: scale( 1.3 );
-	}
-
-.reveal .slides section .fragment.shrink {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.shrink.visible {
-		-webkit-transform: scale( 0.7 );
-		   -moz-transform: scale( 0.7 );
-		    -ms-transform: scale( 0.7 );
-		     -o-transform: scale( 0.7 );
-		        transform: scale( 0.7 );
-	}
-
-.reveal .slides section .fragment.zoom-in {
-	opacity: 0;
-
-	-webkit-transform: scale( 0.1 );
-	   -moz-transform: scale( 0.1 );
-	    -ms-transform: scale( 0.1 );
-	     -o-transform: scale( 0.1 );
-	        transform: scale( 0.1 );
-}
-
-	.reveal .slides section .fragment.zoom-in.visible {
-		opacity: 1;
-
-		-webkit-transform: scale( 1 );
-		   -moz-transform: scale( 1 );
-		    -ms-transform: scale( 1 );
-		     -o-transform: scale( 1 );
-		        transform: scale( 1 );
-	}
-
-.reveal .slides section .fragment.roll-in {
-	opacity: 0;
-
-	-webkit-transform: rotateX( 90deg );
-	   -moz-transform: rotateX( 90deg );
-	    -ms-transform: rotateX( 90deg );
-	     -o-transform: rotateX( 90deg );
-	        transform: rotateX( 90deg );
-}
-	.reveal .slides section .fragment.roll-in.visible {
-		opacity: 1;
-
-		-webkit-transform: rotateX( 0 );
-		   -moz-transform: rotateX( 0 );
-		    -ms-transform: rotateX( 0 );
-		     -o-transform: rotateX( 0 );
-		        transform: rotateX( 0 );
-	}
-
-.reveal .slides section .fragment.fade-out {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.fade-out.visible {
-		opacity: 0;
-	}
-
-.reveal .slides section .fragment.semi-fade-out {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.semi-fade-out.visible {
-		opacity: 0.5;
-	}
-
-.reveal .slides section .fragment.current-visible {
-	opacity:0;
-}
-
-.reveal .slides section .fragment.current-visible.current-fragment {
-	opacity:1;
-}
-
-.reveal .slides section .fragment.highlight-red,
-.reveal .slides section .fragment.highlight-current-red,
-.reveal .slides section .fragment.highlight-green,
-.reveal .slides section .fragment.highlight-current-green,
-.reveal .slides section .fragment.highlight-blue,
-.reveal .slides section .fragment.highlight-current-blue {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.highlight-red.visible {
-		color: #ff2c2d
-	}
-	.reveal .slides section .fragment.highlight-green.visible {
-		color: #17ff2e;
-	}
-	.reveal .slides section .fragment.highlight-blue.visible {
-		color: #1b91ff;
-	}
-
-.reveal .slides section .fragment.highlight-current-red.current-fragment {
-	color: #ff2c2d
-}
-.reveal .slides section .fragment.highlight-current-green.current-fragment {
-	color: #17ff2e;
-}
-.reveal .slides section .fragment.highlight-current-blue.current-fragment {
-	color: #1b91ff;
-}
-
-
-/*********************************************
- * DEFAULT ELEMENT STYLES
- *********************************************/
-
-/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */
-.reveal:after {
-  content: '';
-  font-style: italic;
-}
-
-.reveal iframe {
-	z-index: 1;
-}
-
-/* Ensure certain elements are never larger than the slide itself */
-.reveal img,
-.reveal video,
-.reveal iframe {
-	max-width: 95%;
-	max-height: 95%;
-}
-
-/** Prevents layering issues in certain browser/transition combinations */
-.reveal a {
-	position: relative;
-}
-
-.reveal strong,
-.reveal b {
-	font-weight: bold;
-}
-
-.reveal em,
-.reveal i {
-	font-style: italic;
-}
-
-.reveal ol,
-.reveal ul {
-	display: inline-block;
-
-	text-align: left;
-	margin: 0 0 0 1em;
-}
-
-.reveal ol {
-	list-style-type: decimal;
-}
-
-.reveal ul {
-	list-style-type: disc;
-}
-
-.reveal ul ul {
-	list-style-type: square;
-}
-
-.reveal ul ul ul {
-	list-style-type: circle;
-}
-
-.reveal ul ul,
-.reveal ul ol,
-.reveal ol ol,
-.reveal ol ul {
-	display: block;
-	margin-left: 40px;
-}
-
-.reveal p {
-	margin-bottom: 10px;
-	line-height: 1.2em;
-}
-
-.reveal q,
-.reveal blockquote {
-	quotes: none;
-}
-
-.reveal blockquote {
-	display: block;
-	position: relative;
-	width: 70%;
-	margin: 5px auto;
-	padding: 5px;
-
-	font-style: italic;
-	background: rgba(255, 255, 255, 0.05);
-	box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
-}
-	.reveal blockquote p:first-child,
-	.reveal blockquote p:last-child {
-		display: inline-block;
-	}
-
-.reveal q {
-	font-style: italic;
-}
-
-.reveal pre {
-	display: block;
-	position: relative;
-	width: 90%;
-	margin: 10px auto;
-
-	text-align: left;
-	font-size: 0.81em;
-	font-family: monospace;
-	line-height: 1.2em;
-
-	word-wrap: break-word;
-
-	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
-}
-.reveal code {
-	font-family: monospace;
-	font-size: 0.81em;
-}
-.reveal pre code {
-	padding: 5px;
-	overflow: auto;
-	max-height: 400px;
-	word-wrap: normal;
-}
-.reveal pre.stretch code {
-	height: 100%;
-	max-height: 100%;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-
-.reveal table th,
-.reveal table td {
-	text-align: left;
-	padding-right: .3em;
-}
-
-.reveal table th {
-	font-weight: bold;
-}
-
-.reveal sup {
-	vertical-align: super;
-}
-.reveal sub {
-	vertical-align: sub;
-}
-
-.reveal small {
-	display: inline-block;
-	font-size: 0.6em;
-	line-height: 1.2em;
-	vertical-align: top;
-}
-
-.reveal small * {
-	vertical-align: top;
-}
-
-.reveal .stretch {
-	max-width: none;
-	max-height: none;
-}
-
-
-/*********************************************
- * CONTROLS
- *********************************************/
-
-.reveal .controls {
-	display: none;
-	position: fixed;
-	width: 110px;
-	height: 110px;
-	z-index: 30;
-	right: 10px;
-	bottom: 10px;
-}
-
-.reveal .controls div {
-	position: absolute;
-	opacity: 0.05;
-	width: 0;
-	height: 0;
-	border: 12px solid transparent;
-
-	-moz-transform: scale(.9999);
-
-	-webkit-transition: all 0.2s ease;
-	   -moz-transition: all 0.2s ease;
-	    -ms-transition: all 0.2s ease;
-	     -o-transition: all 0.2s ease;
-	        transition: all 0.2s ease;
-}
-
-.reveal .controls div.enabled {
-	opacity: 0.7;
-	cursor: pointer;
-}
-
-.reveal .controls div.enabled:active {
-	margin-top: 1px;
-}
-
-	.reveal .controls div.navigate-left {
-		top: 42px;
-
-		border-right-width: 22px;
-		border-right-color: #eee;
-	}
-		.reveal .controls div.navigate-left.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-right {
-		left: 74px;
-		top: 42px;
-
-		border-left-width: 22px;
-		border-left-color: #eee;
-	}
-		.reveal .controls div.navigate-right.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-up {
-		left: 42px;
-
-		border-bottom-width: 22px;
-		border-bottom-color: #eee;
-	}
-		.reveal .controls div.navigate-up.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-down {
-		left: 42px;
-		top: 74px;
-
-		border-top-width: 22px;
-		border-top-color: #eee;
-	}
-		.reveal .controls div.navigate-down.fragmented {
-			opacity: 0.3;
-		}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	position: fixed;
-	display: none;
-	height: 3px;
-	width: 100%;
-	bottom: 0;
-	left: 0;
-	z-index: 10;
-}
-	.reveal .progress:after {
-		content: '';
-		display: 'block';
-		position: absolute;
-		height: 20px;
-		width: 100%;
-		top: -20px;
-	}
-	.reveal .progress span {
-		display: block;
-		height: 100%;
-		width: 0px;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-
-.reveal .slide-number {
-	position: fixed;
-	display: block;
-	right: 15px;
-	bottom: 15px;
-	opacity: 0.5;
-	z-index: 31;
-	font-size: 12px;
-}
-
-/*********************************************
- * SLIDES
- *********************************************/
-
-.reveal {
-	position: relative;
-	width: 100%;
-	height: 100%;
-
-	-ms-touch-action: none;
-}
-
-.reveal .slides {
-	position: absolute;
-    max-width: 1024px;
-	width: 120%;
-	height: 100%;
-	left: 50%;
-	top: 50%;
-
-	overflow: visible;
-	z-index: 1;
-	text-align: center;
-
-	-webkit-transition: -webkit-perspective .4s ease;
-	   -moz-transition: -moz-perspective .4s ease;
-	    -ms-transition: -ms-perspective .4s ease;
-	     -o-transition: -o-perspective .4s ease;
-	        transition: perspective .4s ease;
-
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-
-	-webkit-perspective-origin: 0px -100px;
-	   -moz-perspective-origin: 0px -100px;
-	    -ms-perspective-origin: 0px -100px;
-	        perspective-origin: 0px -100px;
-}
-
-.reveal .slides>section {
-	-ms-perspective: 600px;
-}
-
-.reveal .slides>section,
-.reveal .slides>section>section {
-	display: none;
-	position: absolute;
-	width: 100%;
-	padding: 20px 0px;
-
-	z-index: 10;
-	line-height: 1.2em;
-	font-weight: inherit;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-transition: -webkit-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-webkit-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	   -moz-transition: -moz-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-moz-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	    -ms-transition: -ms-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-ms-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	     -o-transition: -o-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-o-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	        transition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-}
-
-/* Global transition speed settings */
-.reveal[data-transition-speed="fast"] .slides section {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal[data-transition-speed="slow"] .slides section {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-/* Slide-specific transition speed overrides */
-.reveal .slides section[data-transition-speed="fast"] {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal .slides section[data-transition-speed="slow"] {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-.reveal .slides>section {
-	left: -50%;
-	top: -50%;
-}
-
-.reveal .slides>section.stack {
-	padding-top: 0;
-	padding-bottom: 0;
-}
-
-.reveal .slides>section.present,
-.reveal .slides>section>section.present {
-	display: block;
-	z-index: 11;
-	opacity: 1;
-}
-
-.reveal.center,
-.reveal.center .slides,
-.reveal.center .slides section {
-	min-height: auto !important;
-}
-
-/* Don't allow interaction with invisible slides */
-.reveal .slides>section.future,
-.reveal .slides>section>section.future,
-.reveal .slides>section.past,
-.reveal .slides>section>section.past {
-	pointer-events: none;
-}
-
-.reveal.overview .slides>section,
-.reveal.overview .slides>section>section {
-	pointer-events: auto;
-}
-
-
-
-/*********************************************
- * DEFAULT TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=default].past,
-.reveal .slides>section.past {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section[data-transition=default].future,
-.reveal .slides>section.future {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section[data-transition=default].past,
-.reveal .slides>section>section.past {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	   -moz-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	    -ms-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	        transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-}
-.reveal .slides>section>section[data-transition=default].future,
-.reveal .slides>section>section.future {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	   -moz-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	    -ms-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	        transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-}
-
-
-/*********************************************
- * CONCAVE TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=concave].past,
-.reveal.concave  .slides>section.past {
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section[data-transition=concave].future,
-.reveal.concave .slides>section.future {
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section[data-transition=concave].past,
-.reveal.concave .slides>section>section.past {
-	-webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	   -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	    -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	        transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-}
-.reveal .slides>section>section[data-transition=concave].future,
-.reveal.concave .slides>section>section.future {
-	-webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	   -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	    -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	        transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-}
-
-
-/*********************************************
- * ZOOM TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=zoom],
-.reveal.zoom .slides>section {
-	-webkit-transition-timing-function: ease;
-	   -moz-transition-timing-function: ease;
-	    -ms-transition-timing-function: ease;
-	     -o-transition-timing-function: ease;
-	        transition-timing-function: ease;
-}
-
-.reveal .slides>section[data-transition=zoom].past,
-.reveal.zoom .slides>section.past {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(16);
-	   -moz-transform: scale(16);
-	    -ms-transform: scale(16);
-	     -o-transform: scale(16);
-	        transform: scale(16);
-}
-.reveal .slides>section[data-transition=zoom].future,
-.reveal.zoom .slides>section.future {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-.reveal .slides>section>section[data-transition=zoom].past,
-.reveal.zoom .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal .slides>section>section[data-transition=zoom].future,
-.reveal.zoom .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-
-/*********************************************
- * LINEAR TRANSITION
- *********************************************/
-
-.reveal.linear section {
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-
-.reveal .slides>section[data-transition=linear].past,
-.reveal.linear .slides>section.past {
-	-webkit-transform: translate(-150%, 0);
-	   -moz-transform: translate(-150%, 0);
-	    -ms-transform: translate(-150%, 0);
-	     -o-transform: translate(-150%, 0);
-	        transform: translate(-150%, 0);
-}
-.reveal .slides>section[data-transition=linear].future,
-.reveal.linear .slides>section.future {
-	-webkit-transform: translate(150%, 0);
-	   -moz-transform: translate(150%, 0);
-	    -ms-transform: translate(150%, 0);
-	     -o-transform: translate(150%, 0);
-	        transform: translate(150%, 0);
-}
-
-.reveal .slides>section>section[data-transition=linear].past,
-.reveal.linear .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal .slides>section>section[data-transition=linear].future,
-.reveal.linear .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-
-/*********************************************
- * CUBE TRANSITION
- *********************************************/
-
-.reveal.cube .slides {
-	-webkit-perspective: 1300px;
-	   -moz-perspective: 1300px;
-	    -ms-perspective: 1300px;
-	        perspective: 1300px;
-}
-
-.reveal.cube .slides section {
-	padding: 30px;
-	min-height: 700px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.center.cube .slides section {
-		min-height: auto;
-	}
-	.reveal.cube .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.1);
-		border-radius: 4px;
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.cube .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-		   -moz-transform: translateZ(-90px) rotateX( 65deg );
-		    -ms-transform: translateZ(-90px) rotateX( 65deg );
-		     -o-transform: translateZ(-90px) rotateX( 65deg );
-		        transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.cube .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.cube .slides>section.past {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-}
-
-.reveal.cube .slides>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg);
-}
-
-.reveal.cube .slides>section>section.past {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg);
-}
-
-.reveal.cube .slides>section>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg);
-}
-
-
-/*********************************************
- * PAGE TRANSITION
- *********************************************/
-
-.reveal.page .slides {
-	-webkit-perspective-origin: 0% 50%;
-	   -moz-perspective-origin: 0% 50%;
-	    -ms-perspective-origin: 0% 50%;
-	        perspective-origin: 0% 50%;
-
-	-webkit-perspective: 3000px;
-	   -moz-perspective: 3000px;
-	    -ms-perspective: 3000px;
-	        perspective: 3000px;
-}
-
-.reveal.page .slides section {
-	padding: 30px;
-	min-height: 700px;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.page .slides section.past {
-		z-index: 12;
-	}
-	.reveal.page .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.1);
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.page .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.page .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.page .slides>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	   -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	    -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	        transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-}
-
-.reveal.page .slides>section.future {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-.reveal.page .slides>section>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	   -moz-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	    -ms-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	        transform: translate3d(0, -40%, 0) rotateX(80deg);
-}
-
-.reveal.page .slides>section>section.future {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-
-/*********************************************
- * FADE TRANSITION
- *********************************************/
-
-.reveal .slides section[data-transition=fade],
-.reveal.fade .slides section,
-.reveal.fade .slides>section>section {
-    -webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-
-	-webkit-transition: opacity 0.5s;
-	   -moz-transition: opacity 0.5s;
-	    -ms-transition: opacity 0.5s;
-	     -o-transition: opacity 0.5s;
-	        transition: opacity 0.5s;
-}
-
-
-.reveal.fade.overview .slides section,
-.reveal.fade.overview .slides>section>section,
-.reveal.fade.overview-deactivating .slides section,
-.reveal.fade.overview-deactivating .slides>section>section {
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-
-/*********************************************
- * NO TRANSITION
- *********************************************/
-
-.reveal .slides section[data-transition=none],
-.reveal.none .slides section {
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-
-/*********************************************
- * OVERVIEW
- *********************************************/
-
-.reveal.overview .slides {
-	-webkit-perspective-origin: 0% 0%;
-	   -moz-perspective-origin: 0% 0%;
-	    -ms-perspective-origin: 0% 0%;
-	        perspective-origin: 0% 0%;
-
-	-webkit-perspective: 700px;
-	   -moz-perspective: 700px;
-	    -ms-perspective: 700px;
-	        perspective: 700px;
-}
-
-.reveal.overview .slides section {
-	height: 600px;
-	top: -300px !important;
-	overflow: hidden;
-	opacity: 1 !important;
-	visibility: visible !important;
-	cursor: pointer;
-	background: rgba(0,0,0,0.1);
-}
-.reveal.overview .slides section .fragment {
-	opacity: 1;
-}
-.reveal.overview .slides section:after,
-.reveal.overview .slides section:before {
-	display: none !important;
-}
-.reveal.overview .slides section>section {
-	opacity: 1;
-	cursor: pointer;
-}
-	.reveal.overview .slides section:hover {
-		background: rgba(0,0,0,0.3);
-	}
-	.reveal.overview .slides section.present {
-		background: rgba(0,0,0,0.3);
-	}
-.reveal.overview .slides>section.stack {
-	padding: 0;
-	top: 0 !important;
-	background: none;
-	overflow: visible;
-}
-
-
-/*********************************************
- * PAUSED MODE
- *********************************************/
-
-.reveal .pause-overlay {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	background: black;
-	visibility: hidden;
-	opacity: 0;
-	z-index: 100;
-
-	-webkit-transition: all 1s ease;
-	   -moz-transition: all 1s ease;
-	    -ms-transition: all 1s ease;
-	     -o-transition: all 1s ease;
-	        transition: all 1s ease;
-}
-.reveal.paused .pause-overlay {
-	visibility: visible;
-	opacity: 1;
-}
-
-
-/*********************************************
- * FALLBACK
- *********************************************/
-
-.no-transforms {
-	overflow-y: auto;
-}
-
-.no-transforms .reveal .slides {
-	position: relative;
-	width: 80%;
-	height: auto !important;
-	top: 0;
-	left: 50%;
-	margin: 0;
-	text-align: center;
-}
-
-.no-transforms .reveal .controls,
-.no-transforms .reveal .progress {
-	display: none !important;
-}
-
-.no-transforms .reveal .slides section {
-	display: block !important;
-	opacity: 1 !important;
-	position: relative !important;
-	height: auto;
-	min-height: auto;
-	top: 0;
-	left: -50%;
-	margin: 70px 0;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-}
-
-.no-transforms .reveal .slides section section {
-	left: 0;
-}
-
-.reveal .no-transition,
-.reveal .no-transition * {
-	-webkit-transition: none !important;
-	   -moz-transition: none !important;
-	    -ms-transition: none !important;
-	     -o-transition: none !important;
-	        transition: none !important;
-}
-
-
-/*********************************************
- * BACKGROUND STATES [DEPRECATED]
- *********************************************/
-
-.reveal .state-background {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	background: rgba( 0, 0, 0, 0 );
-
-	-webkit-transition: background 800ms ease;
-	   -moz-transition: background 800ms ease;
-	    -ms-transition: background 800ms ease;
-	     -o-transition: background 800ms ease;
-	        transition: background 800ms ease;
-}
-.alert .reveal .state-background {
-	background: rgba( 200, 50, 30, 0.6 );
-}
-.soothe .reveal .state-background {
-	background: rgba( 50, 200, 90, 0.4 );
-}
-.blackout .reveal .state-background {
-	background: rgba( 0, 0, 0, 0.6 );
-}
-.whiteout .reveal .state-background {
-	background: rgba( 255, 255, 255, 0.6 );
-}
-.cobalt .reveal .state-background {
-	background: rgba( 22, 152, 213, 0.6 );
-}
-.mint .reveal .state-background {
-	background: rgba( 22, 213, 75, 0.6 );
-}
-.submerge .reveal .state-background {
-	background: rgba( 12, 25, 77, 0.6);
-}
-.lila .reveal .state-background {
-	background: rgba( 180, 50, 140, 0.6 );
-}
-.sunset .reveal .state-background {
-	background: rgba( 255, 122, 0, 0.6 );
-}
-
-
-/*********************************************
- * PER-SLIDE BACKGROUNDS
- *********************************************/
-
-.reveal>.backgrounds {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-}
-	.reveal .slide-background {
-		position: absolute;
-		width: 100%;
-		height: 100%;
-		opacity: 0;
-		visibility: hidden;
-
-		background-color: rgba( 0, 0, 0, 0 );
-		background-position: 50% 50%;
-		background-repeat: no-repeat;
-		background-size: cover;
-
-		-webkit-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-	.reveal .slide-background.present {
-		opacity: 1;
-		visibility: visible;
-	}
-
-	.print-pdf .reveal .slide-background {
-		opacity: 1 !important;
-		visibility: visible !important;
-	}
-
-/* Immediate transition style */
-.reveal[data-background-transition=none]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=none] {
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-/* 2D slide */
-.reveal[data-background-transition=slide]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=slide] {
-	opacity: 1;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,
-	.reveal>.backgrounds .slide-background.past[data-background-transition=slide] {
-		-webkit-transform: translate(-100%, 0);
-		   -moz-transform: translate(-100%, 0);
-		    -ms-transform: translate(-100%, 0);
-		     -o-transform: translate(-100%, 0);
-		        transform: translate(-100%, 0);
-	}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,
-	.reveal>.backgrounds .slide-background.future[data-background-transition=slide] {
-		-webkit-transform: translate(100%, 0);
-		   -moz-transform: translate(100%, 0);
-		    -ms-transform: translate(100%, 0);
-		     -o-transform: translate(100%, 0);
-		        transform: translate(100%, 0);
-	}
-
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,
-	.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] {
-		-webkit-transform: translate(0, -100%);
-		   -moz-transform: translate(0, -100%);
-		    -ms-transform: translate(0, -100%);
-		     -o-transform: translate(0, -100%);
-		        transform: translate(0, -100%);
-	}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,
-	.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] {
-		-webkit-transform: translate(0, 100%);
-		   -moz-transform: translate(0, 100%);
-		    -ms-transform: translate(0, 100%);
-		     -o-transform: translate(0, 100%);
-		        transform: translate(0, 100%);
-	}
-
-
-/* Convex */
-.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-}
-.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-}
-
-
-/* Concave */
-.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	        transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-}
-.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	        transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-}
-
-/* Zoom */
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=zoom] {
-	-webkit-transition-timing-function: ease;
-	   -moz-transition-timing-function: ease;
-	    -ms-transition-timing-function: ease;
-	     -o-transition-timing-function: ease;
-	        transition-timing-function: ease;
-}
-
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(16);
-	   -moz-transform: scale(16);
-	    -ms-transform: scale(16);
-	     -o-transform: scale(16);
-	        transform: scale(16);
-}
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom] {
-	opacity: 0;
-		visibility: hidden;
-
-		-webkit-transform: scale(16);
-		   -moz-transform: scale(16);
-		    -ms-transform: scale(16);
-		     -o-transform: scale(16);
-		        transform: scale(16);
-}
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-
-/* Global transition speed settings */
-.reveal[data-transition-speed="fast"]>.backgrounds .slide-background {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal[data-transition-speed="slow"]>.backgrounds .slide-background {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-
-/*********************************************
- * RTL SUPPORT
- *********************************************/
-
-.reveal.rtl .slides,
-.reveal.rtl .slides h1,
-.reveal.rtl .slides h2,
-.reveal.rtl .slides h3,
-.reveal.rtl .slides h4,
-.reveal.rtl .slides h5,
-.reveal.rtl .slides h6 {
-	direction: rtl;
-	font-family: sans-serif;
-}
-
-.reveal.rtl pre,
-.reveal.rtl code {
-	direction: ltr;
-}
-
-.reveal.rtl ol,
-.reveal.rtl ul {
-	text-align: right;
-}
-
-.reveal.rtl .progress span {
-	float: right
-}
-
-/*********************************************
- * PARALLAX BACKGROUND
- *********************************************/
-
-.reveal.has-parallax-background .backgrounds {
-	-webkit-transition: all 0.8s ease;
-	   -moz-transition: all 0.8s ease;
-	    -ms-transition: all 0.8s ease;
-	        transition: all 0.8s ease;
-}
-
-/* Global transition speed settings */
-.reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-
-/*********************************************
- * LINK PREVIEW OVERLAY
- *********************************************/
-
- .reveal .preview-link-overlay {
- 	position: absolute;
- 	top: 0;
- 	left: 0;
- 	width: 100%;
- 	height: 100%;
- 	z-index: 1000;
- 	background: rgba( 0, 0, 0, 0.9 );
- 	opacity: 0;
- 	visibility: hidden;
-
- 	-webkit-transition: all 0.3s ease;
- 	   -moz-transition: all 0.3s ease;
- 	    -ms-transition: all 0.3s ease;
- 	        transition: all 0.3s ease;
- }
- 	.reveal .preview-link-overlay.visible {
- 		opacity: 1;
- 		visibility: visible;
- 	}
-
- 	.reveal .preview-link-overlay .spinner {
- 		position: absolute;
- 		display: block;
- 		top: 50%;
- 		left: 50%;
- 		width: 32px;
- 		height: 32px;
- 		margin: -16px 0 0 -16px;
- 		z-index: 10;
- 		background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
-
- 		visibility: visible;
- 		opacity: 0.6;
-
- 		-webkit-transition: all 0.3s ease;
- 		   -moz-transition: all 0.3s ease;
- 		    -ms-transition: all 0.3s ease;
- 		        transition: all 0.3s ease;
- 	}
-
- 	.reveal .preview-link-overlay header {
- 		position: absolute;
- 		left: 0;
- 		top: 0;
- 		width: 100%;
- 		height: 40px;
- 		z-index: 2;
- 		border-bottom: 1px solid #222;
- 	}
- 		.reveal .preview-link-overlay header a {
- 			display: inline-block;
- 			width: 40px;
- 			height: 40px;
- 			padding: 0 10px;
- 			float: right;
- 			opacity: 0.6;
-
- 			box-sizing: border-box;
- 		}
- 			.reveal .preview-link-overlay header a:hover {
- 				opacity: 1;
- 			}
- 			.reveal .preview-link-overlay header a .icon {
- 				display: inline-block;
- 				width: 20px;
- 				height: 20px;
-
- 				background-position: 50% 50%;
- 				background-size: 100%;
- 				background-repeat: no-repeat;
- 			}
- 			.reveal .preview-link-overlay header a.close .icon {
- 				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC);
- 			}
- 			.reveal .preview-link-overlay header a.external .icon {
- 				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==);
- 			}
-
- 	.reveal .preview-link-overlay .viewport {
- 		position: absolute;
- 		top: 40px;
- 		right: 0;
- 		bottom: 0;
- 		left: 0;
- 	}
-
- 	.reveal .preview-link-overlay .viewport iframe {
- 		width: 100%;
- 		height: 100%;
- 		max-width: 100%;
- 		max-height: 100%;
- 		border: 0;
-
- 		opacity: 0;
- 		visibility: hidden;
-
- 		-webkit-transition: all 0.3s ease;
- 		   -moz-transition: all 0.3s ease;
- 		    -ms-transition: all 0.3s ease;
- 		        transition: all 0.3s ease;
- 	}
-
- 	.reveal .preview-link-overlay.loaded .viewport iframe {
- 		opacity: 1;
- 		visibility: visible;
- 	}
-
- 	.reveal .preview-link-overlay.loaded .spinner {
- 		opacity: 0;
- 		visibility: hidden;
-
- 		-webkit-transform: scale(0.2);
- 		   -moz-transform: scale(0.2);
- 		    -ms-transform: scale(0.2);
- 		        transform: scale(0.2);
- 	}
-
-
-
-/*********************************************
- * PLAYBACK COMPONENT
- *********************************************/
-
-.reveal .playback {
-	position: fixed;
-	left: 15px;
-	bottom: 15px;
-	z-index: 30;
-	cursor: pointer;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-}
-
-.reveal.overview .playback {
-	opacity: 0;
-	visibility: hidden;
-}
-
-
-/*********************************************
- * ROLLING LINKS
- *********************************************/
-
-.reveal .roll {
-	display: inline-block;
-	line-height: 1.2;
-	overflow: hidden;
-
-	vertical-align: top;
-
-	-webkit-perspective: 400px;
-	   -moz-perspective: 400px;
-	    -ms-perspective: 400px;
-	        perspective: 400px;
-
-	-webkit-perspective-origin: 50% 50%;
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-	.reveal .roll:hover {
-		background: none;
-		text-shadow: none;
-	}
-.reveal .roll span {
-	display: block;
-	position: relative;
-	padding: 0 2px;
-
-	pointer-events: none;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal .roll:hover span {
-	    background: rgba(0,0,0,0.5);
-
-	    -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	       -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	        -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	            transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	}
-.reveal .roll span:after {
-	content: attr(data-title);
-
-	display: block;
-	position: absolute;
-	left: 0;
-	top: 0;
-	padding: 0 2px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	   -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	    -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	        transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-}
-
-
-/*********************************************
- * SPEAKER NOTES
- *********************************************/
-
-.reveal aside.notes {
-	display: none;
-}
-
-
-/*********************************************
- * ZOOM PLUGIN
- *********************************************/
-
-.zoomed .reveal *,
-.zoomed .reveal *:before,
-.zoomed .reveal *:after {
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-
-	-webkit-backface-visibility: visible !important;
-	   -moz-backface-visibility: visible !important;
-	    -ms-backface-visibility: visible !important;
-	        backface-visibility: visible !important;
-}
-
-.zoomed .reveal .progress,
-.zoomed .reveal .controls {
-	opacity: 0;
-}
-
-.zoomed .reveal .roll span {
-	background: none;
-}
-
-.zoomed .reveal .roll span:after {
-	visibility: hidden;
-}
-
-
diff --git a/docs/slides/BOS14/_support/reveal.js/css/reveal.min.css b/docs/slides/BOS14/_support/reveal.js/css/reveal.min.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/reveal.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@charset "UTF-8";/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */ html,body,.reveal div,.reveal span,.reveal applet,.reveal object,.reveal iframe,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6,.reveal p,.reveal blockquote,.reveal pre,.reveal a,.reveal abbr,.reveal acronym,.reveal address,.reveal big,.reveal cite,.reveal code,.reveal del,.reveal dfn,.reveal em,.reveal img,.reveal ins,.reveal kbd,.reveal q,.reveal s,.reveal samp,.reveal small,.reveal strike,.reveal strong,.reveal sub,.reveal sup,.reveal tt,.reveal var,.reveal b,.reveal u,.reveal i,.reveal center,.reveal dl,.reveal dt,.reveal dd,.reveal ol,.reveal ul,.reveal li,.reveal fieldset,.reveal form,.reveal label,.reveal legend,.reveal table,.reveal caption,.reveal tbody,.reveal tfoot,.reveal thead,.reveal tr,.reveal th,.reveal td,.reveal article,.reveal aside,.reveal canvas,.reveal details,.reveal embed,.reveal figure,.reveal figcaption,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal output,.reveal ruby,.reveal section,.reveal summary,.reveal time,.reveal mark,.reveal audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.reveal article,.reveal aside,.reveal details,.reveal figcaption,.reveal figure,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal section{display:block}html,body{width:100%;height:100%;overflow:hidden}body{position:relative;line-height:1}::selection{background:#FF5E99;color:#fff;text-shadow:none}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;word-wrap:break-word;line-height:1}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal .slides section .fragment{opacity:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .slides section .fragment.visible{opacity:1}.reveal .slides section .fragment.grow{opacity:1}.reveal .slides section .fragment.grow.visible{-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-ms-transform:scale(1.3);-o-transform:scale(1.3);transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1}.reveal .slides section .fragment.shrink.visible{-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);-o-transform:scale(0.7);transform:scale(0.7)}.reveal .slides section .fragment.zoom-in{opacity:0;-webkit-transform:scale(0.1);-moz-transform:scale(0.1);-ms-transform:scale(0.1);-o-transform:scale(0.1);transform:scale(0.1)}.reveal .slides section .fragment.zoom-in.visible{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.reveal .slides section .fragment.roll-in{opacity:0;-webkit-transform:rotateX(90deg);-moz-transform:rotateX(90deg);-ms-transform:rotateX(90deg);-o-transform:rotateX(90deg);transform:rotateX(90deg)}.reveal .slides section .fragment.roll-in.visible{opacity:1;-webkit-transform:rotateX(0);-moz-transform:rotateX(0);-ms-transform:rotateX(0);-o-transform:rotateX(0);transform:rotateX(0)}.reveal .slides section .fragment.fade-out{opacity:1}.reveal .slides section .fragment.fade-out.visible{opacity:0}.reveal .slides section .fragment.semi-fade-out{opacity:1}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5}.reveal .slides section .fragment.current-visible{opacity:0}.reveal .slides section .fragment.current-visible.current-fragment{opacity:1}.reveal .slides section .fragment.highlight-red,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue{opacity:1}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal a{position:relative}.reveal strong,.reveal b{font-weight:700}.reveal em,.reveal i{font-style:italic}.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal p{margin-bottom:10px;line-height:1.2em}.reveal q,.reveal blockquote{quotes:none}.reveal blockquote{display:block;position:relative;width:70%;margin:5px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:15px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 0 6px rgba(0,0,0,.3)}.reveal code{font-family:monospace}.reveal pre code{padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal pre.stretch code{height:100%;max-height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal table th,.reveal table td{text-align:left;padding-right:.3em}.reveal table th{font-weight:700}.reveal sup{vertical-align:super}.reveal sub{vertical-align:sub}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal .stretch{max-width:none;max-height:none}.reveal .controls{display:none;position:fixed;width:110px;height:110px;z-index:30;right:10px;bottom:10px}.reveal .controls div{position:absolute;opacity:.05;width:0;height:0;border:12px solid transparent;-moz-transform:scale(.9999);-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .controls div.enabled{opacity:.7;cursor:pointer}.reveal .controls div.enabled:active{margin-top:1px}.reveal .controls div.navigate-left{top:42px;border-right-width:22px;border-right-color:#eee}.reveal .controls div.navigate-left.fragmented{opacity:.3}.reveal .controls div.navigate-right{left:74px;top:42px;border-left-width:22px;border-left-color:#eee}.reveal .controls div.navigate-right.fragmented{opacity:.3}.reveal .controls div.navigate-up{left:42px;border-bottom-width:22px;border-bottom-color:#eee}.reveal .controls div.navigate-up.fragmented{opacity:.3}.reveal .controls div.navigate-down{left:42px;top:74px;border-top-width:22px;border-top-color:#eee}.reveal .controls div.navigate-down.fragmented{opacity:.3}.reveal .progress{position:fixed;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10}.reveal .progress:after{content:'';display:'block';position:absolute;height:20px;width:100%;top:-20px}.reveal .progress span{display:block;height:100%;width:0;-webkit-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);transition:width 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-number{position:fixed;display:block;right:15px;bottom:15px;opacity:.5;z-index:31;font-size:12px}.reveal{position:relative;width:100%;height:100%;-ms-touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;left:50%;top:50%;overflow:visible;z-index:1;text-align:center;-webkit-transition:-webkit-perspective .4s ease;-moz-transition:-moz-perspective .4s ease;-ms-transition:-ms-perspective .4s ease;-o-transition:-o-perspective .4s ease;transition:perspective .4s ease;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px;-webkit-perspective-origin:0 -100px;-moz-perspective-origin:0 -100px;-ms-perspective-origin:0 -100px;perspective-origin:0 -100px}.reveal .slides>section{-ms-perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;z-index:10;line-height:1.2em;font-weight:inherit;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:-webkit-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-webkit-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:-moz-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-moz-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:-ms-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-ms-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:-o-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-o-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);transition:transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow] .slides section{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides section[data-transition-speed=fast]{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal .slides section[data-transition-speed=slow]{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides>section{left:-50%;top:-50%}.reveal .slides>section.stack{padding-top:0;padding-bottom:0}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:auto!important}.reveal .slides>section.future,.reveal .slides>section>section.future,.reveal .slides>section.past,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section[data-transition=default].past,.reveal .slides>section.past{display:block;opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section.future{display:block;opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section.past{display:block;opacity:0;-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-moz-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-ms-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section.future{display:block;opacity:0;-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-moz-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-ms-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides>section[data-transition=concave].past,.reveal.concave .slides>section.past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal.concave .slides>section.future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal.concave .slides>section>section.past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-moz-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-ms-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal.concave .slides>section>section.future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-moz-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-ms-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides>section[data-transition=zoom],.reveal.zoom .slides>section{-webkit-transition-timing-function:ease;-moz-transition-timing-function:ease;-ms-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal.zoom .slides>section.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal.zoom .slides>section.future{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal.zoom .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=zoom].future,.reveal.zoom .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal.linear .slides>section.past{-webkit-transform:translate(-150%,0);-moz-transform:translate(-150%,0);-ms-transform:translate(-150%,0);-o-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal.linear .slides>section.future{-webkit-transform:translate(150%,0);-moz-transform:translate(150%,0);-ms-transform:translate(150%,0);-o-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal.linear .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal.linear .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.cube .slides{-webkit-perspective:1300px;-moz-perspective:1300px;-ms-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.center.cube .slides section{min-height:auto}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg);-moz-transform:translateZ(-90px) rotateX(65deg);-ms-transform:translateZ(-90px) rotateX(65deg);-o-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);-moz-transform:translate3d(100%,0,0) rotateY(90deg);-ms-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);-moz-transform:translate3d(0,-100%,0) rotateX(90deg);-ms-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);-moz-transform:translate3d(0,100%,0) rotateX(-90deg);-ms-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;-moz-perspective-origin:0 50%;-ms-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;-moz-perspective:3000px;-ms-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);-moz-transform:translate3d(-40%,0,0) rotateY(-80deg);-ms-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);-moz-transform:translate3d(0,-40%,0) rotateX(80deg);-ms-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section,.reveal.fade .slides>section>section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-ms-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section,.reveal.fade.overview-deactivating .slides section,.reveal.fade.overview-deactivating .slides>section>section{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal.overview .slides{-webkit-perspective-origin:0 0;-moz-perspective-origin:0 0;-ms-perspective-origin:0 0;perspective-origin:0 0;-webkit-perspective:700px;-moz-perspective:700px;-ms-perspective:700px;perspective:700px}.reveal.overview .slides section{height:600px;top:-300px!important;overflow:hidden;opacity:1!important;visibility:visible!important;cursor:pointer;background:rgba(0,0,0,.1)}.reveal.overview .slides section .fragment{opacity:1}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides section>section{opacity:1;cursor:pointer}.reveal.overview .slides section:hover{background:rgba(0,0,0,.3)}.reveal.overview .slides section.present{background:rgba(0,0,0,.3)}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0;overflow:visible}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal .slides{position:relative;width:80%;height:auto!important;top:0;left:50%;margin:0;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none!important}.no-transforms .reveal .slides section{display:block!important;opacity:1!important;position:relative!important;height:auto;min-height:auto;top:0;left:-50%;margin:70px 0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.no-transforms .reveal .slides section section{left:0}.reveal .no-transition,.reveal .no-transition *{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important}.reveal .state-background{position:absolute;width:100%;height:100%;background:rgba(0,0,0,0);-webkit-transition:background 800ms ease;-moz-transition:background 800ms ease;-ms-transition:background 800ms ease;-o-transition:background 800ms ease;transition:background 800ms ease}.alert .reveal .state-background{background:rgba(200,50,30,.6)}.soothe .reveal .state-background{background:rgba(50,200,90,.4)}.blackout .reveal .state-background{background:rgba(0,0,0,.6)}.whiteout .reveal .state-background{background:rgba(255,255,255,.6)}.cobalt .reveal .state-background{background:rgba(22,152,213,.6)}.mint .reveal .state-background{background:rgba(22,213,75,.6)}.submerge .reveal .state-background{background:rgba(12,25,77,.6)}.lila .reveal .state-background{background:rgba(180,50,140,.6)}.sunset .reveal .state-background{background:rgba(255,122,0,.6)}.reveal>.backgrounds{position:absolute;width:100%;height:100%;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px}.reveal .slide-background{position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;background-color:rgba(0,0,0,0);background-position:50% 50%;background-repeat:no-repeat;background-size:cover;-webkit-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);transition:all 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-background.present{opacity:1;visibility:visible}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal[data-background-transition=none]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=none]{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-ms-transform:translate(-100%,0);-o-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{-webkit-transform:translate(100%,0);-moz-transform:translate(100%,0);-ms-transform:translate(100%,0);-o-transform:translate(100%,0);transform:translate(100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{-webkit-transform:translate(0,-100%);-moz-transform:translate(0,-100%);-ms-transform:translate(0,-100%);-o-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{-webkit-transform:translate(0,100%);-moz-transform:translate(0,100%);-ms-transform:translate(0,100%);-o-transform:translate(0,100%);transform:translate(0,100%)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=zoom]{-webkit-transition-timing-function:ease;-moz-transition-timing-function:ease;-ms-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal.has-parallax-background .backgrounds{-webkit-transition:all .8s ease;-moz-transition:all .8s ease;-ms-transition:all .8s ease;transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .preview-link-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.visible{opacity:1;visibility:visible}.reveal .preview-link-overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal .preview-link-overlay header a{display:inline-block;width:40px;height:40px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal .preview-link-overlay header a:hover{opacity:1}.reveal .preview-link-overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal .preview-link-overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal .preview-link-overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal .preview-link-overlay .viewport{position:absolute;top:40px;right:0;bottom:0;left:0}.reveal .preview-link-overlay .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.loaded .viewport iframe{opacity:1;visibility:visible}.reveal .preview-link-overlay.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);transform:scale(0.2)}.reveal .playback{position:fixed;left:15px;bottom:15px;z-index:30;cursor:pointer;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;-moz-perspective:400px;-ms-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;-moz-perspective-origin:50% 50%;-ms-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);-webkit-transform:translate3d(0px,0,-45px) rotateX(90deg);-moz-transform:translate3d(0px,0,-45px) rotateX(90deg);-ms-transform:translate3d(0px,0,-45px) rotateX(90deg);transform:translate3d(0px,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0px,110%,0) rotateX(-90deg);-moz-transform:translate3d(0px,110%,0) rotateX(-90deg);-ms-transform:translate3d(0px,110%,0) rotateX(-90deg);transform:translate3d(0px,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.zoomed .reveal *,.zoomed .reveal :before,.zoomed .reveal :after{-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;-moz-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:0}.zoomed .reveal .roll span:after{visibility:hidden}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/README.md b/docs/slides/BOS14/_support/reveal.js/css/theme/README.md
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-## Dependencies
-
-Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup
-
-You also need to install Ruby and then Sass (with `gem install sass`).
-
-## Creating a Theme
-
-To create your own theme, start by duplicating any ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source) and adding it to the compilation list in the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js).
-
-Each theme file does four things in the following order:
-
-1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)**
-Shared utility functions.
-
-2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)**
-Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3.
-
-3. **Override**
-This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding full selectors with hardcoded styles.
-
-4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
-The template theme file which will generate final CSS output based on the currently defined variables.
-
-When you are done, run `grunt themes` to compile the Sass file to CSS and you are ready to use your new theme.
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/beige.css b/docs/slides/BOS14/_support/reveal.js/css/theme/beige.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/beige.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Beige theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f7f2d3;
-  background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
-  background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background-color: #f7f3de; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #333333; }
-
-::selection {
-  color: white;
-  background: rgba(79, 64, 28, 0.99);
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #333333;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #8b743d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #c0a86e;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #564826; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #333333;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #8b743d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #8b743d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #8b743d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #8b743d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #8b743d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #c0a86e; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #c0a86e; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #c0a86e; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #c0a86e; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #8b743d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #8b743d; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/blood.css b/docs/slides/BOS14/_support/reveal.js/css/theme/blood.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/blood.css
+++ /dev/null
@@ -1,175 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
-/**
- * Blood theme for reveal.js
- * Author: Walther http://github.com/Walther
- *
- * Designed to be used with highlight.js theme
- * "monokai_sublime.css" available from
- * https://github.com/isagalaev/highlight.js/
- *
- * For other themes, change $codeBackground accordingly.
- *
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #222222;
-  background: -moz-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #626262), color-stop(100%, #222222));
-  background: -webkit-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -o-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -ms-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background-color: #2b2b2b; }
-
-.reveal {
-  font-family: Ubuntu, "sans-serif";
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #aa2233;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: Ubuntu, "sans-serif";
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: 2px 2px 2px #222222; }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #aa2233;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #dd5566;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #6a1520; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #aa2233;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #aa2233; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #aa2233; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #aa2233; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #aa2233; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #dd5566; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #dd5566; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #dd5566; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #dd5566; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #aa2233;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #aa2233; }
-
-.reveal p {
-  font-weight: 300;
-  text-shadow: 1px 1px #222222; }
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  font-weight: 700; }
-
-.reveal a:not(.image),
-.reveal a:not(.image):hover {
-  text-shadow: 2px 2px 2px #000; }
-
-.reveal small a:not(.image),
-.reveal small a:not(.image):hover {
-  text-shadow: 1px 1px 1px #000; }
-
-.reveal p code {
-  background-color: #23241f;
-  display: inline-block;
-  border-radius: 7px; }
-
-.reveal small code {
-  vertical-align: baseline; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/default.css b/docs/slides/BOS14/_support/reveal.js/css/theme/default.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/default.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Default theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #1c1e20;
-  background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
-  background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background-color: #2b2b2b; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #ff5e99;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #13daec;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #71e9f4;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #0d99a5; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #13daec;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #13daec; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #13daec; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #13daec; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #13daec; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #71e9f4; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #71e9f4; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #71e9f4; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #71e9f4; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #13daec;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #13daec; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/moon.css b/docs/slides/BOS14/_support/reveal.js/css/theme/moon.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/moon.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Solarized Dark theme for reveal.js.
- * Author: Achim Staebler
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-  color-profile: sRGB;
-  rendering-intent: auto; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #002b36;
-  background-color: #002b36; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #93a1a1; }
-
-::selection {
-  color: white;
-  background: #d33682;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eee8d5;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #268bd2;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #78b9e6;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #1a6091; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #93a1a1;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #268bd2;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #268bd2; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #268bd2; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #268bd2; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #268bd2; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #78b9e6; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #78b9e6; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #78b9e6; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #78b9e6; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #268bd2;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #268bd2; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/night.css b/docs/slides/BOS14/_support/reveal.js/css/theme/night.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/night.css
+++ /dev/null
@@ -1,136 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Montserrat:700);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
-/**
- * Black theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #111111;
-  background-color: #111111; }
-
-.reveal {
-  font-family: "Open Sans", sans-serif;
-  font-size: 30px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #e7ad52;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: "Montserrat", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: -0.03em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #e7ad52;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #f3d7ac;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #d08a1d; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #e7ad52;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #e7ad52; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #e7ad52; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #e7ad52; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #e7ad52; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #f3d7ac; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #f3d7ac; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #f3d7ac; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #f3d7ac; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #e7ad52;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #e7ad52; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.css b/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.css
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-.reveal a {
-  color: #8b7c69;
-  text-decoration: none;
-}
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	// :color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-/*
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-*/
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.orig.css b/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.orig.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/seminar.orig.css
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.ttf') format('truetype');
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'OpenSans', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/*--DW-- uncomment below to undo globally centered text from main.css*/
-
-/*.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-.reveal ul ul {
-	padding-left: 8%;
-	padding-top: 0.7em;
-	font-size: 85%;
-}*/
-
-/*--DW--
-* override list width to make multiline list items
-* a bit more manageable
-*/
-.reveal ul {
-	max-width: 80%;
-}
-
-.reveal li {
-	padding-bottom: 0.3em;
-}
-
-/*--DW-- uncenter pararagraph blocks*/
-.reveal .slides p {
-	text-align: left
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-
-
-/*********************************************
- * BLOCKQUOTES
- *********************************************/
-
-/*--DW--*/
-.reveal blockquote
-{   background: rgba(255,255,255, .2);
-    font-size: 75%;
-    text-align: justify;
-    width: 70%;
-    padding: 0.5em 5% 0.2em;
-    margin: 0 10%;
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-    -moz-box-shadow: .1em .1em .5em black inset;
-    box-shadow: .1em .1em .5em black inset;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-.reveal a:not(.image):hover {
-	color: hsl(185, 85%, 70%);
-	
-	text-shadow: none;
-	border: none;
-	border-radius: 2px;
-}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES AND FIGURES
- *********************************************/
-
-/*--DW-- added figures; changed img styling*/
-/*pandoc*/
-.reveal figure {
-	margin-left: auto;
-	margin-right: auto;
-}
-
-/*pandoc*/
-.reveal figcaption {
-	text-align: center;
-	font-size: 75%;
-	font-style: italic;
-}
-.reveal section img,
-.reveal section embed {
-/*	width: 80%;
-	height: 80%;
-*/	display: block;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 15px;
-	background: rgba(255,255,255, .75);
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-       -moz-box-shadow: .1em .1em .5em black inset;
-            box-shadow: .1em .1em .5em black inset;
-
-/*--DW-- original image box styling*/
-/*
--webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
--webkit-transition: all .2s linear;
-   -moz-transition: all .2s linear;
-    -ms-transition: all .2s linear;
-     -o-transition: all .2s linear;
-        transition: all .2s linear;
-*/
-}
-
-.reveal a:hover img {
-	background: rgba(255,255,255,0.2);
-	border-color: #13DAEC;
-	
-	-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		/*color: hsl(185, 85%, 70%);*/
-		color: rgba(138, 201, 85, 0.60);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		/*background: hsl(185, 85%, 50%);*/
-		background: rgba(138, 201, 85, 0.60);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/serif.css b/docs/slides/BOS14/_support/reveal.js/css/theme/serif.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/serif.css
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/simple.css b/docs/slides/BOS14/_support/reveal.js/css/theme/simple.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/simple.css
+++ /dev/null
@@ -1,138 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is darkblue.
- *
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: white;
-  background-color: white; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: rgba(0, 0, 0, 0.99);
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: black;
-  font-family: "News Cycle", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: darkblue;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #0000f1;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #00003f; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: darkblue;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: darkblue; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: darkblue; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: darkblue; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: darkblue; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #0000f1; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #0000f1; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #0000f1; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #0000f1; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: darkblue;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: darkblue; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/sky.css b/docs/slides/BOS14/_support/reveal.js/css/theme/sky.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/sky.css
+++ /dev/null
@@ -1,145 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-/**
- * Sky theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #add9e4;
-  background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));
-  background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background-color: #f7fbfc; }
-
-.reveal {
-  font-family: "Open Sans", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #333333; }
-
-::selection {
-  color: white;
-  background: #134674;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #333333;
-  font-family: "Quicksand", sans-serif;
-  line-height: 0.9em;
-  letter-spacing: -0.08em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #3b759e;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #74a7cb;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #264c66; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #333333;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #3b759e;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #3b759e; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #3b759e; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #3b759e; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #3b759e; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #74a7cb; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #74a7cb; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #74a7cb; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #74a7cb; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #3b759e;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #3b759e; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/solarized.css b/docs/slides/BOS14/_support/reveal.js/css/theme/solarized.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/solarized.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Solarized Light theme for reveal.js.
- * Author: Achim Staebler
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-  color-profile: sRGB;
-  rendering-intent: auto; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #fdf6e3;
-  background-color: #fdf6e3; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #657b83; }
-
-::selection {
-  color: white;
-  background: #d33682;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #586e75;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #268bd2;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #78b9e6;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #1a6091; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #657b83;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #268bd2;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #268bd2; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #268bd2; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #268bd2; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #268bd2; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #78b9e6; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #78b9e6; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #78b9e6; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #78b9e6; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #268bd2;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #268bd2; }
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/beige.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/beige.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/beige.scss
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Beige theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: #333;
-$headingColor: #333;
-$headingTextShadow: none;
-$backgroundColor: #f7f3de;
-$linkColor: #8b743d;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: rgba(79, 64, 28, 0.99);
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/blood.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/blood.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/blood.scss
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Blood theme for reveal.js
- * Author: Walther http://github.com/Walther
- *
- * Designed to be used with highlight.js theme
- * "monokai_sublime.css" available from
- * https://github.com/isagalaev/highlight.js/
- *
- * For other themes, change $codeBackground accordingly.
- *
- */
-
- // Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-// Include theme-specific fonts
-
-@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
-
-// Colors used in the theme
-$blood: #a23;
-$coal: #222;
-$codeBackground: #23241f;
-
-// Main text
-$mainFont: Ubuntu, 'sans-serif';
-$mainFontSize: 36px;
-$mainColor: #eee;
-
-// Headings
-$headingFont: Ubuntu, 'sans-serif';
-$headingTextShadow: 2px 2px 2px $coal;
-
-// h1 shadow, borrowed humbly from 
-// (c) Default theme by Hakim El Hattab
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Links
-$linkColor: $blood;
-$linkColorHover: lighten( $linkColor, 20% );
-
-// Text selection
-$selectionBackgroundColor: $blood;
-$selectionColor: #fff;
-
-// Background generator
-@mixin bodyBackground() {
-    @include radial-gradient( $coal, lighten( $coal, 25% ) );
-}
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
-
-// some overrides after theme template import
-
-.reveal p {
-    font-weight: 300;
-    text-shadow: 1px 1px $coal;
-}
-
-.reveal h1, 
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-    font-weight: 700;
-}
-
-.reveal a:not(.image),
-.reveal a:not(.image):hover {
-    text-shadow: 2px 2px 2px #000;
-}
-
-.reveal small a:not(.image),
-.reveal small a:not(.image):hover {
-    text-shadow: 1px 1px 1px #000;
-}
-
-.reveal p code {
-    background-color: $codeBackground;
-    display: inline-block;
-    border-radius: 7px;
-}
-
-.reveal small code {
-    vertical-align: baseline;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/default.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/default.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/default.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Default theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-// Override theme settings (see ../template/settings.scss)
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/moon.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/moon.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/moon.scss
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Solarized Dark theme for reveal.js.
- * Author: Achim Staebler
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-	color-profile: sRGB;
-	rendering-intent: auto;
-}
-
-// Solarized colors
-$base03:    #002b36;
-$base02:    #073642;
-$base01:    #586e75;
-$base00:    #657b83;
-$base0:     #839496;
-$base1:     #93a1a1;
-$base2:     #eee8d5;
-$base3:     #fdf6e3;
-$yellow:    #b58900;
-$orange:    #cb4b16;
-$red:       #dc322f;
-$magenta:   #d33682;
-$violet:    #6c71c4;
-$blue:      #268bd2;
-$cyan:      #2aa198;
-$green:     #859900;
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: $base1;
-$headingColor: $base2;
-$headingTextShadow: none;
-$backgroundColor: $base03;
-$linkColor: $blue;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: $magenta;
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/night.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/night.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/night.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Black theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=Montserrat:700);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$backgroundColor: #111;
-
-$mainFont: 'Open Sans', sans-serif;
-$linkColor: #e7ad52;
-$linkColorHover: lighten( $linkColor, 20% );
-$headingFont: 'Montserrat', Impact, sans-serif;
-$headingTextShadow: none;
-$headingLetterSpacing: -0.03em;
-$headingTextTransform: none;
-$selectionBackgroundColor: #e7ad52;
-$mainFontSize: 30px;
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/serif.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/serif.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/serif.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
-$mainColor: #000;
-$headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
-$headingColor: #383D3D;
-$headingTextShadow: none;
-$headingTextTransform: none;
-$backgroundColor: #F0F1EB;
-$linkColor: #51483D;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: #26351C;
-
-.reveal a:not(.image) {
-  line-height: 1.3em;
-}
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/simple.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/simple.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/simple.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is darkblue.
- *
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Lato', sans-serif;
-$mainColor: #000;
-$headingFont: 'News Cycle', Impact, sans-serif;
-$headingColor: #000;
-$headingTextShadow: none;
-$headingTextTransform: none;
-$backgroundColor: #fff;
-$linkColor: #00008B;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: rgba(0, 0, 0, 0.99);
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/sky.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/sky.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/sky.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Sky theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Open Sans', sans-serif;
-$mainColor: #333;
-$headingFont: 'Quicksand', sans-serif;
-$headingColor: #333;
-$headingLetterSpacing: -0.08em;
-$headingTextShadow: none;
-$backgroundColor: #f7fbfc;
-$linkColor: #3b759e;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: #134674;
-
-// Fix links so they are not cut off
-.reveal a:not(.image) {
-	line-height: 1.3em;
-}
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( #add9e4, #f7fbfc );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/source/solarized.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/source/solarized.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/source/solarized.scss
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Solarized Light theme for reveal.js.
- * Author: Achim Staebler
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-	color-profile: sRGB;
-	rendering-intent: auto;
-}
-
-// Solarized colors
-$base03:    #002b36;
-$base02:    #073642;
-$base01:    #586e75;
-$base00:    #657b83;
-$base0:     #839496;
-$base1:     #93a1a1;
-$base2:     #eee8d5;
-$base3:     #fdf6e3;
-$yellow:    #b58900;
-$orange:    #cb4b16;
-$red:       #dc322f;
-$magenta:   #d33682;
-$violet:    #6c71c4;
-$blue:      #268bd2;
-$cyan:      #2aa198;
-$green:     #859900;
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: $base00;
-$headingColor: $base01;
-$headingTextShadow: none;
-$backgroundColor: $base3;
-$linkColor: $blue;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: $magenta;
-
-// Background generator
-// @mixin bodyBackground() {
-// 	@include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );
-// }
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/template/mixins.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/template/mixins.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/template/mixins.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-@mixin vertical-gradient( $top, $bottom ) {
-	background: $top;
-	background: -moz-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) );
-	background: -webkit-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -o-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -ms-linear-gradient( top, $top 0%, $bottom 100% );
-	background: linear-gradient( top, $top 0%, $bottom 100% );
-}
-
-@mixin horizontal-gradient( $top, $bottom ) {
-	background: $top;
-	background: -moz-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) );
-	background: -webkit-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -o-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -ms-linear-gradient( left, $top 0%, $bottom 100% );
-	background: linear-gradient( left, $top 0%, $bottom 100% );
-}
-
-@mixin radial-gradient( $outer, $inner, $type: circle ) {
-	background: $outer;
-	background: -moz-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) );
-	background: -webkit-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -o-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -ms-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/template/settings.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/template/settings.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/template/settings.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-// Base settings for all themes that can optionally be
-// overridden by the super-theme
-
-// Background of the presentation
-$backgroundColor: #2b2b2b;
-
-// Primary/body text
-$mainFont: 'Lato', sans-serif;
-$mainFontSize: 36px;
-$mainColor: #eee;
-
-// Headings
-$headingMargin: 0 0 20px 0;
-$headingFont: 'League Gothic', Impact, sans-serif;
-$headingColor: #eee;
-$headingLineHeight: 0.9em;
-$headingLetterSpacing: 0.02em;
-$headingTextTransform: uppercase;
-$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2);
-$heading1TextShadow: $headingTextShadow;
-
-// Links and actions
-$linkColor: #13DAEC;
-$linkColorHover: lighten( $linkColor, 20% );
-
-// Text selection
-$selectionBackgroundColor: #FF5E99;
-$selectionColor: #fff;
-
-// Generates the presentation background, can be overridden
-// to return a background image or gradient
-@mixin bodyBackground() {
-	background: $backgroundColor;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/css/theme/template/theme.scss b/docs/slides/BOS14/_support/reveal.js/css/theme/template/theme.scss
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/css/theme/template/theme.scss
+++ /dev/null
@@ -1,170 +0,0 @@
-// Base theme template for reveal.js
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	@include bodyBackground();
-	background-color: $backgroundColor;
-}
-
-.reveal {
-	font-family: $mainFont;
-	font-size: $mainFontSize;
-	font-weight: normal;
-	letter-spacing: -0.02em;
-	color: $mainColor;
-}
-
-::selection {
-	color: $selectionColor;
-	background: $selectionBackgroundColor;
-	text-shadow: none;
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-	margin: $headingMargin;
-	color: $headingColor;
-
-	font-family: $headingFont;
-	line-height: $headingLineHeight;
-	letter-spacing: $headingLetterSpacing;
-
-	text-transform: $headingTextTransform;
-	text-shadow: $headingTextShadow;
-}
-
-.reveal h1 {
-	text-shadow: $heading1TextShadow;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: $linkColor;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		color: $linkColorHover;
-
-		text-shadow: none;
-		border: none;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: darken( $linkColor, 15% );
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 15px 0px;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid $mainColor;
-
-	box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: $linkColor;
-
-		box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-	border-right-color: $linkColor;
-}
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-	border-left-color: $linkColor;
-}
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-	border-bottom-color: $linkColor;
-}
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-	border-top-color: $linkColor;
-}
-
-.reveal .controls div.navigate-left.enabled:hover {
-	border-right-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-right.enabled:hover {
-	border-left-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-up.enabled:hover {
-	border-bottom-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-down.enabled:hover {
-	border-top-color: $linkColorHover;
-}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: $linkColor;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: $linkColor;
-}
-
-
diff --git a/docs/slides/BOS14/_support/reveal.js/index.html b/docs/slides/BOS14/_support/reveal.js/index.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/index.html
+++ /dev/null
@@ -1,394 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - The HTML Presentation Framework</title>
-
-		<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
-		<meta name="author" content="Hakim El Hattab">
-
-		<meta name="apple-mobile-web-app-capable" content="yes" />
-		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="css/reveal.min.css">
-		<link rel="stylesheet" href="css/theme/default.css" id="theme">
-
-		<!-- For syntax highlighting -->
-		<link rel="stylesheet" href="lib/css/zenburn.css">
-
-		<!-- If the query includes 'print-pdf', include the PDF print sheet -->
-		<script>
-			if( window.location.search.match( /print-pdf/gi ) ) {
-				var link = document.createElement( 'link' );
-				link.rel = 'stylesheet';
-				link.type = 'text/css';
-				link.href = 'css/print/pdf.css';
-				document.getElementsByTagName( 'head' )[0].appendChild( link );
-			}
-		</script>
-
-		<!--[if lt IE 9]>
-		<script src="lib/js/html5shiv.js"></script>
-		<![endif]-->
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<!-- Any section element inside of this container is displayed as a slide -->
-			<div class="slides">
-				<section>
-					<h1>Reveal.js</h1>
-					<h3>HTML Presentations Made Easy</h3>
-					<p>
-						<small>Created by <a href="http://hakim.se">Hakim El Hattab</a> / <a href="http://twitter.com/hakimel">@hakimel</a></small>
-					</p>
-				</section>
-
-				<section>
-					<h2>Heads Up</h2>
-					<p>
-						reveal.js is a framework for easily creating beautiful presentations using HTML. You'll need a browser with
-						support for CSS 3D transforms to see it in its full glory.
-					</p>
-
-					<aside class="notes">
-						Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).
-					</aside>
-				</section>
-
-				<!-- Example of nested vertical slides -->
-				<section>
-					<section>
-						<h2>Vertical Slides</h2>
-						<p>
-							Slides can be nested inside of other slides,
-							try pressing <a href="#" class="navigate-down">down</a>.
-						</p>
-						<a href="#" class="image navigate-down">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 1</h2>
-						<p>Press down or up to navigate.</p>
-					</section>
-					<section>
-						<h2>Basement Level 2</h2>
-						<p>Cornify</p>
-						<a class="test" href="http://cornify.com">
-							<img width="280" height="326" src="https://s3.amazonaws.com/hakim-static/reveal-js/cornify.gif" alt="Unicorn">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 3</h2>
-						<p>That's it, time to go back up.</p>
-						<a href="#/2" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(180deg);">
-						</a>
-					</section>
-				</section>
-
-				<section>
-					<h2>Slides</h2>
-					<p>
-						Not a coder? No problem. There's a fully-featured visual editor for authoring these, try it out at <a href="http://slid.es" target="_blank">http://slid.es</a>.
-					</p>
-				</section>
-
-				<section>
-					<h2>Point of View</h2>
-					<p>
-						Press <strong>ESC</strong> to enter the slide overview.
-					</p>
-					<p>
-						Hold down alt and click on any element to zoom in on it using <a href="http://lab.hakim.se/zoom-js">zoom.js</a>. Alt + click anywhere to zoom back out.
-					</p>
-				</section>
-
-				<section>
-					<h2>Works in Mobile Safari</h2>
-					<p>
-						Try it out! You can swipe through the slides and pinch your way to the overview.
-					</p>
-				</section>
-
-				<section>
-					<h2>Marvelous Unordered List</h2>
-					<ul>
-						<li>No order here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-					</ul>
-				</section>
-
-				<section>
-					<h2>Fantastic Ordered List</h2>
-					<ol>
-						<li>One is smaller than...</li>
-						<li>Two is smaller than...</li>
-						<li>Three!</li>
-					</ol>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Markdown support
-
-						For those of you who like that sort of thing. Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
-
-						```
-						<section data-markdown>
-						  ## Markdown support
-
-						  For those of you who like that sort of thing.
-						  Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
-						</section>
-						```
-					</script>
-				</section>
-
-				<section id="transitions">
-					<h2>Transition Styles</h2>
-					<p>
-						You can select from different transitions, like: <br>
-						<a href="?transition=cube#/transitions">Cube</a> -
-						<a href="?transition=page#/transitions">Page</a> -
-						<a href="?transition=concave#/transitions">Concave</a> -
-						<a href="?transition=zoom#/transitions">Zoom</a> -
-						<a href="?transition=linear#/transitions">Linear</a> -
-						<a href="?transition=fade#/transitions">Fade</a> -
-						<a href="?transition=none#/transitions">None</a> -
-						<a href="?#/transitions">Default</a>
-					</p>
-				</section>
-
-				<section id="themes">
-					<h2>Themes</h2>
-					<p>
-						Reveal.js comes with a few themes built in: <br>
-						<a href="?#/themes">Default</a> -
-						<a href="?theme=sky#/themes">Sky</a> -
-						<a href="?theme=beige#/themes">Beige</a> -
-						<a href="?theme=simple#/themes">Simple</a> -
-						<a href="?theme=serif#/themes">Serif</a> -
-						<a href="?theme=night#/themes">Night</a> <br>
-						<a href="?theme=moon#/themes">Moon</a> -
-						<a href="?theme=solarized#/themes">Solarized</a>
-					</p>
-					<p>
-						<small>
-							* Theme demos are loaded after the presentation which leads to flicker. In production you should load your theme in the <code>&lt;head&gt;</code> using a <code>&lt;link&gt;</code>.
-						</small>
-					</p>
-				</section>
-
-				<section>
-					<h2>Global State</h2>
-					<p>
-						Set <code>data-state="something"</code> on a slide and <code>"something"</code>
-						will be added as a class to the document element when the slide is open. This lets you
-						apply broader style changes, like switching the background.
-					</p>
-				</section>
-
-				<section data-state="customevent">
-					<h2>Custom Events</h2>
-					<p>
-						Additionally custom events can be triggered on a per slide basis by binding to the <code>data-state</code> name.
-					</p>
-					<pre><code data-trim contenteditable style="font-size: 18px; margin-top: 20px;">
-Reveal.addEventListener( 'customevent', function() {
-	console.log( '"customevent" has fired' );
-} );
-					</code></pre>
-				</section>
-
-				<section>
-					<section data-background="#007777">
-						<h2>Slide Backgrounds</h2>
-						<p>
-							Set <code>data-background="#007777"</code> on a slide to change the full page background to the given color. All CSS color formats are supported.
-						</p>
-						<a href="#" class="image navigate-down">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section data-background="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png">
-						<h2>Image Backgrounds</h2>
-						<pre><code>&lt;section data-background="image.png"&gt;</code></pre>
-					</section>
-					<section data-background="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" data-background-repeat="repeat" data-background-size="100px">
-						<h2>Repeated Image Backgrounds</h2>
-						<pre><code style="word-wrap: break-word;">&lt;section data-background="image.png" data-background-repeat="repeat" data-background-size="100px"&gt;</code></pre>
-					</section>
-				</section>
-
-				<section data-transition="linear" data-background="#4d7e65" data-background-transition="slide">
-					<h2>Background Transitions</h2>
-					<p>
-						Pass reveal.js the <code>backgroundTransition: 'slide'</code> config argument to make backgrounds slide rather than fade.
-					</p>
-				</section>
-
-				<section data-transition="linear" data-background="#8c4738" data-background-transition="slide">
-					<h2>Background Transition Override</h2>
-					<p>
-						You can override background transitions per slide by using <code>data-background-transition="slide"</code>.
-					</p>
-				</section>
-
-				<section>
-					<h2>Clever Quotes</h2>
-					<p>
-						These guys come in two forms, inline: <q cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						&ldquo;The nice thing about standards is that there are so many to choose from&rdquo;</q> and block:
-					</p>
-					<blockquote cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						&ldquo;For years there has been a theory that millions of monkeys typing at random on millions of typewriters would
-						reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.&rdquo;
-					</blockquote>
-				</section>
-
-				<section>
-					<h2>Pretty Code</h2>
-					<pre><code data-trim contenteditable>
-function linkify( selector ) {
-  if( supports3DTransforms ) {
-
-    var nodes = document.querySelectorAll( selector );
-
-    for( var i = 0, len = nodes.length; i &lt; len; i++ ) {
-      var node = nodes[i];
-
-      if( !node.className ) {
-        node.className += ' roll';
-      }
-    }
-  }
-}
-					</code></pre>
-					<p>Courtesy of <a href="http://softwaremaniacs.org/soft/highlight/en/description/">highlight.js</a>.</p>
-				</section>
-
-				<section>
-					<h2>Intergalactic Interconnections</h2>
-					<p>
-						You can link between slides internally,
-						<a href="#/2/3">like this</a>.
-					</p>
-				</section>
-
-				<section>
-					<section id="fragments">
-						<h2>Fragmented Views</h2>
-						<p>Hit the next arrow...</p>
-						<p class="fragment">... to step through ...</p>
-						<ol>
-							<li class="fragment"><code>any type</code></li>
-							<li class="fragment"><em>of view</em></li>
-							<li class="fragment"><strong>fragments</strong></li>
-						</ol>
-
-						<aside class="notes">
-							This slide has fragments which are also stepped through in the notes window.
-						</aside>
-					</section>
-					<section>
-						<h2>Fragment Styles</h2>
-						<p>There's a few styles of fragments, like:</p>
-						<p class="fragment grow">grow</p>
-						<p class="fragment shrink">shrink</p>
-						<p class="fragment roll-in">roll-in</p>
-						<p class="fragment fade-out">fade-out</p>
-						<p class="fragment highlight-red">highlight-red</p>
-						<p class="fragment highlight-green">highlight-green</p>
-						<p class="fragment highlight-blue">highlight-blue</p>
-						<p class="fragment current-visible">current-visible</p>
-						<p class="fragment highlight-current-blue">highlight-current-blue</p>
-					</section>
-				</section>
-
-				<section>
-					<h2>Spectacular image!</h2>
-					<a class="image" href="http://lab.hakim.se/meny/" target="_blank">
-						<img width="320" height="299" src="http://s3.amazonaws.com/hakim-static/portfolio/images/meny.png" alt="Meny">
-					</a>
-				</section>
-
-				<section>
-					<h2>Export to PDF</h2>
-					<p>Presentations can be <a href="https://github.com/hakimel/reveal.js#pdf-export">exported to PDF</a>, below is an example that's been uploaded to SlideShare.</p>
-					<iframe id="slideshare" src="http://www.slideshare.net/slideshow/embed_code/13872948" width="455" height="356" style="margin:0;overflow:hidden;border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe>
-					<script>
-						document.getElementById('slideshare').attributeName = 'allowfullscreen';
-					</script>
-				</section>
-
-				<section>
-					<h2>Take a Moment</h2>
-					<p>
-						Press b or period on your keyboard to enter the 'paused' mode. This mode is helpful when you want to take distracting slides off the screen
-						during a presentation.
-					</p>
-				</section>
-
-				<section>
-					<h2>Stellar Links</h2>
-					<ul>
-						<li><a href="http://slid.es">Try the online editor</a></li>
-						<li><a href="https://github.com/hakimel/reveal.js">Source code on GitHub</a></li>
-						<li><a href="http://twitter.com/hakimel">Follow me on Twitter</a></li>
-					</ul>
-				</section>
-
-				<section>
-					<h1>THE END</h1>
-					<h3>BY Hakim El Hattab / hakim.se</h3>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="lib/js/head.min.js"></script>
-		<script src="js/reveal.min.js"></script>
-
-		<script>
-
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
-			Reveal.initialize({
-				controls: true,
-				progress: true,
-				history: true,
-				center: true,
-
-				theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
-				transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-				// Parallax scrolling
-				// parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
-				// parallaxBackgroundSize: '2100px 900px',
-
-				// Optional libraries used to extend on reveal.js
-				dependencies: [
-					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
-					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-					{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
-					{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/js/reveal.js b/docs/slides/BOS14/_support/reveal.js/js/reveal.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/js/reveal.js
+++ /dev/null
@@ -1,3382 +0,0 @@
-/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-var Reveal = (function(){
-
-	'use strict';
-
-	var SLIDES_SELECTOR = '.reveal .slides section',
-		HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section',
-		VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
-		HOME_SLIDE_SELECTOR = '.reveal .slides>section:first-of-type',
-
-		// Configurations defaults, can be overridden at initialization time
-		config = {
-
-			// The "normal" size of the presentation, aspect ratio will be preserved
-			// when the presentation is scaled to fit different resolutions
-			width: 960,
-			height: 700,
-
-			// Factor of the display size that should remain empty around the content
-			margin: 0.1,
-
-			// Bounds for smallest/largest possible scale to apply to content
-			minScale: 0.2,
-			maxScale: 1.0,
-
-			// Display controls in the bottom right corner
-			controls: true,
-
-			// Display a presentation progress bar
-			progress: true,
-
-			// Display the page number of the current slide
-			slideNumber: false,
-
-			// Push each slide change to the browser history
-			history: false,
-
-			// Enable keyboard shortcuts for navigation
-			keyboard: true,
-
-			// Enable the slide overview mode
-			overview: true,
-
-			// Vertical centering of slides
-			center: true,
-
-			// Enables touch navigation on devices with touch input
-			touch: true,
-
-			// Loop the presentation
-			loop: false,
-
-			// Change the presentation direction to be RTL
-			rtl: false,
-
-			// Turns fragments on and off globally
-			fragments: true,
-
-			// Flags if the presentation is running in an embedded mode,
-			// i.e. contained within a limited portion of the screen
-			embedded: false,
-
-			// Number of milliseconds between automatically proceeding to the
-			// next slide, disabled when set to 0, this value can be overwritten
-			// by using a data-autoslide attribute on your slides
-			autoSlide: 0,
-
-			// Stop auto-sliding after user input
-			autoSlideStoppable: true,
-
-			// Enable slide navigation via mouse wheel
-			mouseWheel: false,
-
-			// Apply a 3D roll to links on hover
-			rollingLinks: false,
-
-			// Hides the address bar on mobile devices
-			hideAddressBar: true,
-
-			// Opens links in an iframe preview overlay
-			previewLinks: false,
-
-			// Focuses body when page changes visiblity to ensure keyboard shortcuts work
-			focusBodyOnPageVisiblityChange: true,
-
-			// Theme (see /css/theme)
-			theme: null,
-
-			// Transition style
-			transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-			// Transition speed
-			transitionSpeed: 'default', // default/fast/slow
-
-			// Transition style for full page slide backgrounds
-			backgroundTransition: 'default', // default/linear/none
-
-			// Parallax background image
-			parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg"
-
-			// Parallax background size
-			parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px"
-
-			// Number of slides away from the current that are visible
-			viewDistance: 3,
-
-			// Script dependencies to load
-			dependencies: []
-
-		},
-
-		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
-		loaded = false,
-
-		// The horizontal and vertical index of the currently active slide
-		indexh,
-		indexv,
-
-		// The previous and current slide HTML elements
-		previousSlide,
-		currentSlide,
-
-		previousBackground,
-
-		// Slides may hold a data-state attribute which we pick up and apply
-		// as a class to the body. This list contains the combined state of
-		// all current slides.
-		state = [],
-
-		// The current scale of the presentation (see width/height config)
-		scale = 1,
-
-		// Cached references to DOM elements
-		dom = {},
-
-		// Features supported by the browser, see #checkCapabilities()
-		features = {},
-
-		// Client is a mobile device, see #checkCapabilities()
-		isMobileDevice,
-
-		// Throttles mouse wheel navigation
-		lastMouseWheelStep = 0,
-
-		// Delays updates to the URL due to a Chrome thumbnailer bug
-		writeURLTimeout = 0,
-
-		// A delay used to activate the overview mode
-		activateOverviewTimeout = 0,
-
-		// A delay used to deactivate the overview mode
-		deactivateOverviewTimeout = 0,
-
-		// Flags if the interaction event listeners are bound
-		eventsAreBound = false,
-
-		// The current auto-slide duration
-		autoSlide = 0,
-
-		// Auto slide properties
-		autoSlidePlayer,
-		autoSlideTimeout = 0,
-		autoSlideStartTime = -1,
-		autoSlidePaused = false,
-
-		// Holds information about the currently ongoing touch input
-		touch = {
-			startX: 0,
-			startY: 0,
-			startSpan: 0,
-			startCount: 0,
-			captured: false,
-			threshold: 40
-		};
-
-	/**
-	 * Starts up the presentation if the client is capable.
-	 */
-	function initialize( options ) {
-
-		checkCapabilities();
-
-		if( !features.transforms2d && !features.transforms3d ) {
-			document.body.setAttribute( 'class', 'no-transforms' );
-
-			// If the browser doesn't support core features we won't be
-			// using JavaScript to control the presentation
-			return;
-		}
-
-		// Force a layout when the whole page, incl fonts, has loaded
-		window.addEventListener( 'load', layout, false );
-
-		var query = Reveal.getQueryHash();
-
-		// Do not accept new dependencies via query config to avoid
-		// the potential of malicious script injection
-		if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];
-
-		// Copy options over to our config object
-		extend( config, options );
-		extend( config, query );
-
-		// Hide the address bar in mobile browsers
-		hideAddressBar();
-
-		// Loads the dependencies and continues to #start() once done
-		load();
-
-	}
-
-	/**
-	 * Inspect the client to see what it's capable of, this
-	 * should only happens once per runtime.
-	 */
-	function checkCapabilities() {
-
-		features.transforms3d = 'WebkitPerspective' in document.body.style ||
-								'MozPerspective' in document.body.style ||
-								'msPerspective' in document.body.style ||
-								'OPerspective' in document.body.style ||
-								'perspective' in document.body.style;
-
-		features.transforms2d = 'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-		features.requestAnimationFrameMethod = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;
-		features.requestAnimationFrame = typeof features.requestAnimationFrameMethod === 'function';
-
-		features.canvas = !!document.createElement( 'canvas' ).getContext;
-
-		isMobileDevice = navigator.userAgent.match( /(iphone|ipod|android)/gi );
-
-	}
-
-
-    /**
-     * Loads the dependencies of reveal.js. Dependencies are
-     * defined via the configuration option 'dependencies'
-     * and will be loaded prior to starting/binding reveal.js.
-     * Some dependencies may have an 'async' flag, if so they
-     * will load after reveal.js has been started up.
-     */
-	function load() {
-
-		var scripts = [],
-			scriptsAsync = [],
-			scriptsToPreload = 0;
-
-		// Called once synchronous scripts finish loading
-		function proceed() {
-			if( scriptsAsync.length ) {
-				// Load asynchronous scripts
-				head.js.apply( null, scriptsAsync );
-			}
-
-			start();
-		}
-
-		function loadScript( s ) {
-			head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], function() {
-				// Extension may contain callback functions
-				if( typeof s.callback === 'function' ) {
-					s.callback.apply( this );
-				}
-
-				if( --scriptsToPreload === 0 ) {
-					proceed();
-				}
-			});
-		}
-
-		for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
-			var s = config.dependencies[i];
-
-			// Load if there's no condition or the condition is truthy
-			if( !s.condition || s.condition() ) {
-				if( s.async ) {
-					scriptsAsync.push( s.src );
-				}
-				else {
-					scripts.push( s.src );
-				}
-
-				loadScript( s );
-			}
-		}
-
-		if( scripts.length ) {
-			scriptsToPreload = scripts.length;
-
-			// Load synchronous scripts
-			head.js.apply( null, scripts );
-		}
-		else {
-			proceed();
-		}
-
-	}
-
-	/**
-	 * Starts up reveal.js by binding input events and navigating
-	 * to the current URL deeplink if there is one.
-	 */
-	function start() {
-
-		// Make sure we've got all the DOM elements we need
-		setupDOM();
-
-		// Resets all vertical slides so that only the first is visible
-		resetVerticalSlides();
-
-		// Updates the presentation to match the current configuration values
-		configure();
-
-		// Read the initial hash
-		readURL();
-
-		// Update all backgrounds
-		updateBackground( true );
-
-		// Notify listeners that the presentation is ready but use a 1ms
-		// timeout to ensure it's not fired synchronously after #initialize()
-		setTimeout( function() {
-			// Enable transitions now that we're loaded
-			dom.slides.classList.remove( 'no-transition' );
-
-			loaded = true;
-
-			dispatchEvent( 'ready', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'currentSlide': currentSlide
-			} );
-		}, 1 );
-
-	}
-
-	/**
-	 * Finds and stores references to DOM elements which are
-	 * required by the presentation. If a required element is
-	 * not found, it is created.
-	 */
-	function setupDOM() {
-
-		// Cache references to key DOM elements
-		dom.theme = document.querySelector( '#theme' );
-		dom.wrapper = document.querySelector( '.reveal' );
-		dom.slides = document.querySelector( '.reveal .slides' );
-
-		// Prevent transitions while we're loading
-		dom.slides.classList.add( 'no-transition' );
-
-		// Background element
-		dom.background = createSingletonNode( dom.wrapper, 'div', 'backgrounds', null );
-
-		// Progress bar
-		dom.progress = createSingletonNode( dom.wrapper, 'div', 'progress', '<span></span>' );
-		dom.progressbar = dom.progress.querySelector( 'span' );
-
-		// Arrow controls
-		createSingletonNode( dom.wrapper, 'aside', 'controls',
-			'<div class="navigate-left"></div>' +
-			'<div class="navigate-right"></div>' +
-			'<div class="navigate-up"></div>' +
-			'<div class="navigate-down"></div>' );
-
-		// Slide number
-		dom.slideNumber = createSingletonNode( dom.wrapper, 'div', 'slide-number', '' );
-
-		// State background element [DEPRECATED]
-		createSingletonNode( dom.wrapper, 'div', 'state-background', null );
-
-		// Overlay graphic which is displayed during the paused mode
-		createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
-
-		// Cache references to elements
-		dom.controls = document.querySelector( '.reveal .controls' );
-
-		// There can be multiple instances of controls throughout the page
-		dom.controlsLeft = toArray( document.querySelectorAll( '.navigate-left' ) );
-		dom.controlsRight = toArray( document.querySelectorAll( '.navigate-right' ) );
-		dom.controlsUp = toArray( document.querySelectorAll( '.navigate-up' ) );
-		dom.controlsDown = toArray( document.querySelectorAll( '.navigate-down' ) );
-		dom.controlsPrev = toArray( document.querySelectorAll( '.navigate-prev' ) );
-		dom.controlsNext = toArray( document.querySelectorAll( '.navigate-next' ) );
-
-	}
-
-	/**
-	 * Creates an HTML element and returns a reference to it.
-	 * If the element already exists the existing instance will
-	 * be returned.
-	 */
-	function createSingletonNode( container, tagname, classname, innerHTML ) {
-
-		var node = container.querySelector( '.' + classname );
-		if( !node ) {
-			node = document.createElement( tagname );
-			node.classList.add( classname );
-			if( innerHTML !== null ) {
-				node.innerHTML = innerHTML;
-			}
-			container.appendChild( node );
-		}
-		return node;
-
-	}
-
-	/**
-	 * Creates the slide background elements and appends them
-	 * to the background container. One element is created per
-	 * slide no matter if the given slide has visible background.
-	 */
-	function createBackgrounds() {
-
-		if( isPrintingPDF() ) {
-			document.body.classList.add( 'print-pdf' );
-		}
-
-		// Clear prior backgrounds
-		dom.background.innerHTML = '';
-		dom.background.classList.add( 'no-transition' );
-
-		// Helper method for creating a background element for the
-		// given slide
-		function _createBackground( slide, container ) {
-
-			var data = {
-				background: slide.getAttribute( 'data-background' ),
-				backgroundSize: slide.getAttribute( 'data-background-size' ),
-				backgroundImage: slide.getAttribute( 'data-background-image' ),
-				backgroundColor: slide.getAttribute( 'data-background-color' ),
-				backgroundRepeat: slide.getAttribute( 'data-background-repeat' ),
-				backgroundPosition: slide.getAttribute( 'data-background-position' ),
-				backgroundTransition: slide.getAttribute( 'data-background-transition' )
-			};
-
-			var element = document.createElement( 'div' );
-			element.className = 'slide-background';
-
-			if( data.background ) {
-				// Auto-wrap image urls in url(...)
-				if( /^(http|file|\/\/)/gi.test( data.background ) || /\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test( data.background ) ) {
-					element.style.backgroundImage = 'url('+ data.background +')';
-				}
-				else {
-					element.style.background = data.background;
-				}
-			}
-
-			if( data.background || data.backgroundColor || data.backgroundImage ) {
-				element.setAttribute( 'data-background-hash', data.background + data.backgroundSize + data.backgroundImage + data.backgroundColor + data.backgroundRepeat + data.backgroundPosition + data.backgroundTransition );
-			}
-
-			// Additional and optional background properties
-			if( data.backgroundSize ) element.style.backgroundSize = data.backgroundSize;
-			if( data.backgroundImage ) element.style.backgroundImage = 'url("' + data.backgroundImage + '")';
-			if( data.backgroundColor ) element.style.backgroundColor = data.backgroundColor;
-			if( data.backgroundRepeat ) element.style.backgroundRepeat = data.backgroundRepeat;
-			if( data.backgroundPosition ) element.style.backgroundPosition = data.backgroundPosition;
-			if( data.backgroundTransition ) element.setAttribute( 'data-background-transition', data.backgroundTransition );
-
-			container.appendChild( element );
-
-			return element;
-
-		}
-
-		// Iterate over all horizontal slides
-		toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) {
-
-			var backgroundStack;
-
-			if( isPrintingPDF() ) {
-				backgroundStack = _createBackground( slideh, slideh );
-			}
-			else {
-				backgroundStack = _createBackground( slideh, dom.background );
-			}
-
-			// Iterate over all vertical slides
-			toArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) {
-
-				if( isPrintingPDF() ) {
-					_createBackground( slidev, slidev );
-				}
-				else {
-					_createBackground( slidev, backgroundStack );
-				}
-
-			} );
-
-		} );
-
-		// Add parallax background if specified
-		if( config.parallaxBackgroundImage ) {
-
-			dom.background.style.backgroundImage = 'url("' + config.parallaxBackgroundImage + '")';
-			dom.background.style.backgroundSize = config.parallaxBackgroundSize;
-
-			// Make sure the below properties are set on the element - these properties are
-			// needed for proper transitions to be set on the element via CSS. To remove
-			// annoying background slide-in effect when the presentation starts, apply
-			// these properties after short time delay
-			setTimeout( function() {
-				dom.wrapper.classList.add( 'has-parallax-background' );
-			}, 1 );
-
-		}
-		else {
-
-			dom.background.style.backgroundImage = '';
-			dom.wrapper.classList.remove( 'has-parallax-background' );
-
-		}
-
-	}
-
-	/**
-	 * Applies the configuration settings from the config
-	 * object. May be called multiple times.
-	 */
-	function configure( options ) {
-
-		var numberOfSlides = document.querySelectorAll( SLIDES_SELECTOR ).length;
-
-		dom.wrapper.classList.remove( config.transition );
-
-		// New config options may be passed when this method
-		// is invoked through the API after initialization
-		if( typeof options === 'object' ) extend( config, options );
-
-		// Force linear transition based on browser capabilities
-		if( features.transforms3d === false ) config.transition = 'linear';
-
-		dom.wrapper.classList.add( config.transition );
-
-		dom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );
-		dom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );
-
-		dom.controls.style.display = config.controls ? 'block' : 'none';
-		dom.progress.style.display = config.progress ? 'block' : 'none';
-
-		if( config.rtl ) {
-			dom.wrapper.classList.add( 'rtl' );
-		}
-		else {
-			dom.wrapper.classList.remove( 'rtl' );
-		}
-
-		if( config.center ) {
-			dom.wrapper.classList.add( 'center' );
-		}
-		else {
-			dom.wrapper.classList.remove( 'center' );
-		}
-
-		if( config.mouseWheel ) {
-			document.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.addEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-		else {
-			document.removeEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.removeEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-
-		// Rolling 3D links
-		if( config.rollingLinks ) {
-			enableRollingLinks();
-		}
-		else {
-			disableRollingLinks();
-		}
-
-		// Iframe link previews
-		if( config.previewLinks ) {
-			enablePreviewLinks();
-		}
-		else {
-			disablePreviewLinks();
-			enablePreviewLinks( '[data-preview-link]' );
-		}
-
-		// Auto-slide playback controls
-		if( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable && features.canvas && features.requestAnimationFrame ) {
-			autoSlidePlayer = new Playback( dom.wrapper, function() {
-				return Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );
-			} );
-
-			autoSlidePlayer.on( 'click', onAutoSlidePlayerClick );
-			autoSlidePaused = false;
-		}
-		else if( autoSlidePlayer ) {
-			autoSlidePlayer.destroy();
-			autoSlidePlayer = null;
-		}
-
-		// Load the theme in the config, if it's not already loaded
-		if( config.theme && dom.theme ) {
-			var themeURL = dom.theme.getAttribute( 'href' );
-			var themeFinder = /[^\/]*?(?=\.css)/;
-			var themeName = themeURL.match(themeFinder)[0];
-
-			if(  config.theme !== themeName ) {
-				themeURL = themeURL.replace(themeFinder, config.theme);
-				dom.theme.setAttribute( 'href', themeURL );
-			}
-		}
-
-		sync();
-
-	}
-
-	/**
-	 * Binds all event listeners.
-	 */
-	function addEventListeners() {
-
-		eventsAreBound = true;
-
-		window.addEventListener( 'hashchange', onWindowHashChange, false );
-		window.addEventListener( 'resize', onWindowResize, false );
-
-		if( config.touch ) {
-			dom.wrapper.addEventListener( 'touchstart', onTouchStart, false );
-			dom.wrapper.addEventListener( 'touchmove', onTouchMove, false );
-			dom.wrapper.addEventListener( 'touchend', onTouchEnd, false );
-
-			// Support pointer-style touch interaction as well
-			if( window.navigator.msPointerEnabled ) {
-				dom.wrapper.addEventListener( 'MSPointerDown', onPointerDown, false );
-				dom.wrapper.addEventListener( 'MSPointerMove', onPointerMove, false );
-				dom.wrapper.addEventListener( 'MSPointerUp', onPointerUp, false );
-			}
-		}
-
-		if( config.keyboard ) {
-			document.addEventListener( 'keydown', onDocumentKeyDown, false );
-		}
-
-		if( config.progress && dom.progress ) {
-			dom.progress.addEventListener( 'click', onProgressClicked, false );
-		}
-
-		if( config.focusBodyOnPageVisiblityChange ) {
-			var visibilityChange;
-
-			if( 'hidden' in document ) {
-				visibilityChange = 'visibilitychange';
-			}
-			else if( 'msHidden' in document ) {
-				visibilityChange = 'msvisibilitychange';
-			}
-			else if( 'webkitHidden' in document ) {
-				visibilityChange = 'webkitvisibilitychange';
-			}
-
-			if( visibilityChange ) {
-				document.addEventListener( visibilityChange, onPageVisibilityChange, false );
-			}
-		}
-
-		[ 'touchstart', 'click' ].forEach( function( eventName ) {
-			dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
-			dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
-			dom.controlsUp.forEach( function( el ) { el.addEventListener( eventName, onNavigateUpClicked, false ); } );
-			dom.controlsDown.forEach( function( el ) { el.addEventListener( eventName, onNavigateDownClicked, false ); } );
-			dom.controlsPrev.forEach( function( el ) { el.addEventListener( eventName, onNavigatePrevClicked, false ); } );
-			dom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );
-		} );
-
-	}
-
-	/**
-	 * Unbinds all event listeners.
-	 */
-	function removeEventListeners() {
-
-		eventsAreBound = false;
-
-		document.removeEventListener( 'keydown', onDocumentKeyDown, false );
-		window.removeEventListener( 'hashchange', onWindowHashChange, false );
-		window.removeEventListener( 'resize', onWindowResize, false );
-
-		dom.wrapper.removeEventListener( 'touchstart', onTouchStart, false );
-		dom.wrapper.removeEventListener( 'touchmove', onTouchMove, false );
-		dom.wrapper.removeEventListener( 'touchend', onTouchEnd, false );
-
-		if( window.navigator.msPointerEnabled ) {
-			dom.wrapper.removeEventListener( 'MSPointerDown', onPointerDown, false );
-			dom.wrapper.removeEventListener( 'MSPointerMove', onPointerMove, false );
-			dom.wrapper.removeEventListener( 'MSPointerUp', onPointerUp, false );
-		}
-
-		if ( config.progress && dom.progress ) {
-			dom.progress.removeEventListener( 'click', onProgressClicked, false );
-		}
-
-		[ 'touchstart', 'click' ].forEach( function( eventName ) {
-			dom.controlsLeft.forEach( function( el ) { el.removeEventListener( eventName, onNavigateLeftClicked, false ); } );
-			dom.controlsRight.forEach( function( el ) { el.removeEventListener( eventName, onNavigateRightClicked, false ); } );
-			dom.controlsUp.forEach( function( el ) { el.removeEventListener( eventName, onNavigateUpClicked, false ); } );
-			dom.controlsDown.forEach( function( el ) { el.removeEventListener( eventName, onNavigateDownClicked, false ); } );
-			dom.controlsPrev.forEach( function( el ) { el.removeEventListener( eventName, onNavigatePrevClicked, false ); } );
-			dom.controlsNext.forEach( function( el ) { el.removeEventListener( eventName, onNavigateNextClicked, false ); } );
-		} );
-
-	}
-
-	/**
-	 * Extend object a with the properties of object b.
-	 * If there's a conflict, object b takes precedence.
-	 */
-	function extend( a, b ) {
-
-		for( var i in b ) {
-			a[ i ] = b[ i ];
-		}
-
-	}
-
-	/**
-	 * Converts the target object to an array.
-	 */
-	function toArray( o ) {
-
-		return Array.prototype.slice.call( o );
-
-	}
-
-	/**
-	 * Measures the distance in pixels between point a
-	 * and point b.
-	 *
-	 * @param {Object} a point with x/y properties
-	 * @param {Object} b point with x/y properties
-	 */
-	function distanceBetween( a, b ) {
-
-		var dx = a.x - b.x,
-			dy = a.y - b.y;
-
-		return Math.sqrt( dx*dx + dy*dy );
-
-	}
-
-	/**
-	 * Applies a CSS transform to the target element.
-	 */
-	function transformElement( element, transform ) {
-
-		element.style.WebkitTransform = transform;
-		element.style.MozTransform = transform;
-		element.style.msTransform = transform;
-		element.style.OTransform = transform;
-		element.style.transform = transform;
-
-	}
-
-	/**
-	 * Retrieves the height of the given element by looking
-	 * at the position and height of its immediate children.
-	 */
-	function getAbsoluteHeight( element ) {
-
-		var height = 0;
-
-		if( element ) {
-			var absoluteChildren = 0;
-
-			toArray( element.childNodes ).forEach( function( child ) {
-
-				if( typeof child.offsetTop === 'number' && child.style ) {
-					// Count # of abs children
-					if( child.style.position === 'absolute' ) {
-						absoluteChildren += 1;
-					}
-
-					height = Math.max( height, child.offsetTop + child.offsetHeight );
-				}
-
-			} );
-
-			// If there are no absolute children, use offsetHeight
-			if( absoluteChildren === 0 ) {
-				height = element.offsetHeight;
-			}
-
-		}
-
-		return height;
-
-	}
-
-	/**
-	 * Returns the remaining height within the parent of the
-	 * target element after subtracting the height of all
-	 * siblings.
-	 *
-	 * remaining height = [parent height] - [ siblings height]
-	 */
-	function getRemainingHeight( element, height ) {
-
-		height = height || 0;
-
-		if( element ) {
-			var parent = element.parentNode;
-			var siblings = parent.childNodes;
-
-			// Subtract the height of each sibling
-			toArray( siblings ).forEach( function( sibling ) {
-
-				if( typeof sibling.offsetHeight === 'number' && sibling !== element ) {
-
-					var styles = window.getComputedStyle( sibling ),
-						marginTop = parseInt( styles.marginTop, 10 ),
-						marginBottom = parseInt( styles.marginBottom, 10 );
-
-					height -= sibling.offsetHeight + marginTop + marginBottom;
-
-				}
-
-			} );
-
-			var elementStyles = window.getComputedStyle( element );
-
-			// Subtract the margins of the target element
-			height -= parseInt( elementStyles.marginTop, 10 ) +
-						parseInt( elementStyles.marginBottom, 10 );
-
-		}
-
-		return height;
-
-	}
-
-	/**
-	 * Checks if this instance is being used to print a PDF.
-	 */
-	function isPrintingPDF() {
-
-		return ( /print-pdf/gi ).test( window.location.search );
-
-	}
-
-	/**
-	 * Hides the address bar if we're on a mobile device.
-	 */
-	function hideAddressBar() {
-
-		if( config.hideAddressBar && isMobileDevice ) {
-			// Events that should trigger the address bar to hide
-			window.addEventListener( 'load', removeAddressBar, false );
-			window.addEventListener( 'orientationchange', removeAddressBar, false );
-		}
-
-	}
-
-	/**
-	 * Causes the address bar to hide on mobile devices,
-	 * more vertical space ftw.
-	 */
-	function removeAddressBar() {
-
-		setTimeout( function() {
-			window.scrollTo( 0, 1 );
-		}, 10 );
-
-	}
-
-	/**
-	 * Dispatches an event of the specified type from the
-	 * reveal DOM element.
-	 */
-	function dispatchEvent( type, properties ) {
-
-		var event = document.createEvent( "HTMLEvents", 1, 2 );
-		event.initEvent( type, true, true );
-		extend( event, properties );
-		dom.wrapper.dispatchEvent( event );
-
-	}
-
-	/**
-	 * Wrap all links in 3D goodness.
-	 */
-	function enableRollingLinks() {
-
-		if( features.transforms3d && !( 'msPerspective' in document.body.style ) ) {
-			var anchors = document.querySelectorAll( SLIDES_SELECTOR + ' a:not(.image)' );
-
-			for( var i = 0, len = anchors.length; i < len; i++ ) {
-				var anchor = anchors[i];
-
-				if( anchor.textContent && !anchor.querySelector( '*' ) && ( !anchor.className || !anchor.classList.contains( anchor, 'roll' ) ) ) {
-					var span = document.createElement('span');
-					span.setAttribute('data-title', anchor.text);
-					span.innerHTML = anchor.innerHTML;
-
-					anchor.classList.add( 'roll' );
-					anchor.innerHTML = '';
-					anchor.appendChild(span);
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * Unwrap all 3D links.
-	 */
-	function disableRollingLinks() {
-
-		var anchors = document.querySelectorAll( SLIDES_SELECTOR + ' a.roll' );
-
-		for( var i = 0, len = anchors.length; i < len; i++ ) {
-			var anchor = anchors[i];
-			var span = anchor.querySelector( 'span' );
-
-			if( span ) {
-				anchor.classList.remove( 'roll' );
-				anchor.innerHTML = span.innerHTML;
-			}
-		}
-
-	}
-
-	/**
-	 * Bind preview frame links.
-	 */
-	function enablePreviewLinks( selector ) {
-
-		var anchors = toArray( document.querySelectorAll( selector ? selector : 'a' ) );
-
-		anchors.forEach( function( element ) {
-			if( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {
-				element.addEventListener( 'click', onPreviewLinkClicked, false );
-			}
-		} );
-
-	}
-
-	/**
-	 * Unbind preview frame links.
-	 */
-	function disablePreviewLinks() {
-
-		var anchors = toArray( document.querySelectorAll( 'a' ) );
-
-		anchors.forEach( function( element ) {
-			if( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {
-				element.removeEventListener( 'click', onPreviewLinkClicked, false );
-			}
-		} );
-
-	}
-
-	/**
-	 * Opens a preview window for the target URL.
-	 */
-	function openPreview( url ) {
-
-		closePreview();
-
-		dom.preview = document.createElement( 'div' );
-		dom.preview.classList.add( 'preview-link-overlay' );
-		dom.wrapper.appendChild( dom.preview );
-
-		dom.preview.innerHTML = [
-			'<header>',
-				'<a class="close" href="#"><span class="icon"></span></a>',
-				'<a class="external" href="'+ url +'" target="_blank"><span class="icon"></span></a>',
-			'</header>',
-			'<div class="spinner"></div>',
-			'<div class="viewport">',
-				'<iframe src="'+ url +'"></iframe>',
-			'</div>'
-		].join('');
-
-		dom.preview.querySelector( 'iframe' ).addEventListener( 'load', function( event ) {
-			dom.preview.classList.add( 'loaded' );
-		}, false );
-
-		dom.preview.querySelector( '.close' ).addEventListener( 'click', function( event ) {
-			closePreview();
-			event.preventDefault();
-		}, false );
-
-		dom.preview.querySelector( '.external' ).addEventListener( 'click', function( event ) {
-			closePreview();
-		}, false );
-
-		setTimeout( function() {
-			dom.preview.classList.add( 'visible' );
-		}, 1 );
-
-	}
-
-	/**
-	 * Closes the iframe preview window.
-	 */
-	function closePreview() {
-
-		if( dom.preview ) {
-			dom.preview.setAttribute( 'src', '' );
-			dom.preview.parentNode.removeChild( dom.preview );
-			dom.preview = null;
-		}
-
-	}
-
-	/**
-	 * Applies JavaScript-controlled layout rules to the
-	 * presentation.
-	 */
-	function layout() {
-
-		if( dom.wrapper && !isPrintingPDF() ) {
-
-			// Available space to scale within
-			var availableWidth = dom.wrapper.offsetWidth,
-				availableHeight = dom.wrapper.offsetHeight;
-
-			// Reduce available space by margin
-			availableWidth -= ( availableHeight * config.margin );
-			availableHeight -= ( availableHeight * config.margin );
-
-			// Dimensions of the content
-			var slideWidth = config.width,
-				slideHeight = config.height,
-				slidePadding = 20; // TODO Dig this out of DOM
-
-			// Layout the contents of the slides
-			layoutSlideContents( config.width, config.height, slidePadding );
-
-			// Slide width may be a percentage of available width
-			if( typeof slideWidth === 'string' && /%$/.test( slideWidth ) ) {
-				slideWidth = parseInt( slideWidth, 10 ) / 100 * availableWidth;
-			}
-
-			// Slide height may be a percentage of available height
-			if( typeof slideHeight === 'string' && /%$/.test( slideHeight ) ) {
-				slideHeight = parseInt( slideHeight, 10 ) / 100 * availableHeight;
-			}
-
-			dom.slides.style.width = slideWidth + 'px';
-			dom.slides.style.height = slideHeight + 'px';
-
-			// Determine scale of content to fit within available space
-			scale = Math.min( availableWidth / slideWidth, availableHeight / slideHeight );
-
-			// Respect max/min scale settings
-			scale = Math.max( scale, config.minScale );
-			scale = Math.min( scale, config.maxScale );
-
-			// Prefer applying scale via zoom since Chrome blurs scaled content
-			// with nested transforms
-			if( typeof dom.slides.style.zoom !== 'undefined' && !navigator.userAgent.match( /(iphone|ipod|ipad|android)/gi ) ) {
-				dom.slides.style.zoom = scale;
-			}
-			// Apply scale transform as a fallback
-			else {
-				transformElement( dom.slides, 'translate(-50%, -50%) scale('+ scale +') translate(50%, 50%)' );
-			}
-
-			// Select all slides, vertical and horizontal
-			var slides = toArray( document.querySelectorAll( SLIDES_SELECTOR ) );
-
-			for( var i = 0, len = slides.length; i < len; i++ ) {
-				var slide = slides[ i ];
-
-				// Don't bother updating invisible slides
-				if( slide.style.display === 'none' ) {
-					continue;
-				}
-
-				if( config.center || slide.classList.contains( 'center' ) ) {
-					// Vertical stacks are not centred since their section
-					// children will be
-					if( slide.classList.contains( 'stack' ) ) {
-						slide.style.top = 0;
-					}
-					else {
-						slide.style.top = Math.max( - ( getAbsoluteHeight( slide ) / 2 ) - slidePadding, -slideHeight / 2 ) + 'px';
-					}
-				}
-				else {
-					slide.style.top = '';
-				}
-
-			}
-
-			updateProgress();
-			updateParallax();
-
-		}
-
-	}
-
-	/**
-	 * Applies layout logic to the contents of all slides in
-	 * the presentation.
-	 */
-	function layoutSlideContents( width, height, padding ) {
-
-		// Handle sizing of elements with the 'stretch' class
-		toArray( dom.slides.querySelectorAll( 'section > .stretch' ) ).forEach( function( element ) {
-
-			// Determine how much vertical space we can use
-			var remainingHeight = getRemainingHeight( element, ( height - ( padding * 2 ) ) );
-
-			// Consider the aspect ratio of media elements
-			if( /(img|video)/gi.test( element.nodeName ) ) {
-				var nw = element.naturalWidth || element.videoWidth,
-					nh = element.naturalHeight || element.videoHeight;
-
-				var es = Math.min( width / nw, remainingHeight / nh );
-
-				element.style.width = ( nw * es ) + 'px';
-				element.style.height = ( nh * es ) + 'px';
-
-			}
-			else {
-				element.style.width = width + 'px';
-				element.style.height = remainingHeight + 'px';
-			}
-
-		} );
-
-	}
-
-	/**
-	 * Stores the vertical index of a stack so that the same
-	 * vertical slide can be selected when navigating to and
-	 * from the stack.
-	 *
-	 * @param {HTMLElement} stack The vertical stack element
-	 * @param {int} v Index to memorize
-	 */
-	function setPreviousVerticalIndex( stack, v ) {
-
-		if( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {
-			stack.setAttribute( 'data-previous-indexv', v || 0 );
-		}
-
-	}
-
-	/**
-	 * Retrieves the vertical index which was stored using
-	 * #setPreviousVerticalIndex() or 0 if no previous index
-	 * exists.
-	 *
-	 * @param {HTMLElement} stack The vertical stack element
-	 */
-	function getPreviousVerticalIndex( stack ) {
-
-		if( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {
-			// Prefer manually defined start-indexv
-			var attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';
-
-			return parseInt( stack.getAttribute( attributeName ) || 0, 10 );
-		}
-
-		return 0;
-
-	}
-
-	/**
-	 * Displays the overview of slides (quick nav) by
-	 * scaling down and arranging all slide elements.
-	 *
-	 * Experimental feature, might be dropped if perf
-	 * can't be improved.
-	 */
-	function activateOverview() {
-
-		// Only proceed if enabled in config
-		if( config.overview ) {
-
-			// Don't auto-slide while in overview mode
-			cancelAutoSlide();
-
-			var wasActive = dom.wrapper.classList.contains( 'overview' );
-
-			// Vary the depth of the overview based on screen size
-			var depth = window.innerWidth < 400 ? 1000 : 2500;
-
-			dom.wrapper.classList.add( 'overview' );
-			dom.wrapper.classList.remove( 'overview-deactivating' );
-
-			clearTimeout( activateOverviewTimeout );
-			clearTimeout( deactivateOverviewTimeout );
-
-			// Not the pretties solution, but need to let the overview
-			// class apply first so that slides are measured accurately
-			// before we can position them
-			activateOverviewTimeout = setTimeout( function() {
-
-				var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-				for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) {
-					var hslide = horizontalSlides[i],
-						hoffset = config.rtl ? -105 : 105;
-
-					hslide.setAttribute( 'data-index-h', i );
-
-					// Apply CSS transform
-					transformElement( hslide, 'translateZ(-'+ depth +'px) translate(' + ( ( i - indexh ) * hoffset ) + '%, 0%)' );
-
-					if( hslide.classList.contains( 'stack' ) ) {
-
-						var verticalSlides = hslide.querySelectorAll( 'section' );
-
-						for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) {
-							var verticalIndex = i === indexh ? indexv : getPreviousVerticalIndex( hslide );
-
-							var vslide = verticalSlides[j];
-
-							vslide.setAttribute( 'data-index-h', i );
-							vslide.setAttribute( 'data-index-v', j );
-
-							// Apply CSS transform
-							transformElement( vslide, 'translate(0%, ' + ( ( j - verticalIndex ) * 105 ) + '%)' );
-
-							// Navigate to this slide on click
-							vslide.addEventListener( 'click', onOverviewSlideClicked, true );
-						}
-
-					}
-					else {
-
-						// Navigate to this slide on click
-						hslide.addEventListener( 'click', onOverviewSlideClicked, true );
-
-					}
-				}
-
-				updateSlidesVisibility();
-
-				layout();
-
-				if( !wasActive ) {
-					// Notify observers of the overview showing
-					dispatchEvent( 'overviewshown', {
-						'indexh': indexh,
-						'indexv': indexv,
-						'currentSlide': currentSlide
-					} );
-				}
-
-			}, 10 );
-
-		}
-
-	}
-
-	/**
-	 * Exits the slide overview and enters the currently
-	 * active slide.
-	 */
-	function deactivateOverview() {
-
-		// Only proceed if enabled in config
-		if( config.overview ) {
-
-			clearTimeout( activateOverviewTimeout );
-			clearTimeout( deactivateOverviewTimeout );
-
-			dom.wrapper.classList.remove( 'overview' );
-
-			// Temporarily add a class so that transitions can do different things
-			// depending on whether they are exiting/entering overview, or just
-			// moving from slide to slide
-			dom.wrapper.classList.add( 'overview-deactivating' );
-
-			deactivateOverviewTimeout = setTimeout( function () {
-				dom.wrapper.classList.remove( 'overview-deactivating' );
-			}, 1 );
-
-			// Select all slides
-			toArray( document.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) {
-				// Resets all transforms to use the external styles
-				transformElement( slide, '' );
-
-				slide.removeEventListener( 'click', onOverviewSlideClicked, true );
-			} );
-
-			slide( indexh, indexv );
-
-			cueAutoSlide();
-
-			// Notify observers of the overview hiding
-			dispatchEvent( 'overviewhidden', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'currentSlide': currentSlide
-			} );
-
-		}
-	}
-
-	/**
-	 * Toggles the slide overview mode on and off.
-	 *
-	 * @param {Boolean} override Optional flag which overrides the
-	 * toggle logic and forcibly sets the desired state. True means
-	 * overview is open, false means it's closed.
-	 */
-	function toggleOverview( override ) {
-
-		if( typeof override === 'boolean' ) {
-			override ? activateOverview() : deactivateOverview();
-		}
-		else {
-			isOverview() ? deactivateOverview() : activateOverview();
-		}
-
-	}
-
-	/**
-	 * Checks if the overview is currently active.
-	 *
-	 * @return {Boolean} true if the overview is active,
-	 * false otherwise
-	 */
-	function isOverview() {
-
-		return dom.wrapper.classList.contains( 'overview' );
-
-	}
-
-	/**
-	 * Checks if the current or specified slide is vertical
-	 * (nested within another slide).
-	 *
-	 * @param {HTMLElement} slide [optional] The slide to check
-	 * orientation of
-	 */
-	function isVerticalSlide( slide ) {
-
-		// Prefer slide argument, otherwise use current slide
-		slide = slide ? slide : currentSlide;
-
-		return slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );
-
-	}
-
-	/**
-	 * Handling the fullscreen functionality via the fullscreen API
-	 *
-	 * @see http://fullscreen.spec.whatwg.org/
-	 * @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode
-	 */
-	function enterFullscreen() {
-
-		var element = document.body;
-
-		// Check which implementation is available
-		var requestMethod = element.requestFullScreen ||
-							element.webkitRequestFullscreen ||
-							element.webkitRequestFullScreen ||
-							element.mozRequestFullScreen ||
-							element.msRequestFullScreen;
-
-		if( requestMethod ) {
-			requestMethod.apply( element );
-		}
-
-	}
-
-	/**
-	 * Enters the paused mode which fades everything on screen to
-	 * black.
-	 */
-	function pause() {
-
-		var wasPaused = dom.wrapper.classList.contains( 'paused' );
-
-		cancelAutoSlide();
-		dom.wrapper.classList.add( 'paused' );
-
-		if( wasPaused === false ) {
-			dispatchEvent( 'paused' );
-		}
-
-	}
-
-	/**
-	 * Exits from the paused mode.
-	 */
-	function resume() {
-
-		var wasPaused = dom.wrapper.classList.contains( 'paused' );
-		dom.wrapper.classList.remove( 'paused' );
-
-		cueAutoSlide();
-
-		if( wasPaused ) {
-			dispatchEvent( 'resumed' );
-		}
-
-	}
-
-	/**
-	 * Toggles the paused mode on and off.
-	 */
-	function togglePause() {
-
-		if( isPaused() ) {
-			resume();
-		}
-		else {
-			pause();
-		}
-
-	}
-
-	/**
-	 * Checks if we are currently in the paused mode.
-	 */
-	function isPaused() {
-
-		return dom.wrapper.classList.contains( 'paused' );
-
-	}
-
-	/**
-	 * Steps from the current point in the presentation to the
-	 * slide which matches the specified horizontal and vertical
-	 * indices.
-	 *
-	 * @param {int} h Horizontal index of the target slide
-	 * @param {int} v Vertical index of the target slide
-	 * @param {int} f Optional index of a fragment within the
-	 * target slide to activate
-	 * @param {int} o Optional origin for use in multimaster environments
-	 */
-	function slide( h, v, f, o ) {
-
-		// Remember where we were at before
-		previousSlide = currentSlide;
-
-		// Query all horizontal slides in the deck
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-		// If no vertical index is specified and the upcoming slide is a
-		// stack, resume at its previous vertical index
-		if( v === undefined ) {
-			v = getPreviousVerticalIndex( horizontalSlides[ h ] );
-		}
-
-		// If we were on a vertical stack, remember what vertical index
-		// it was on so we can resume at the same position when returning
-		if( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {
-			setPreviousVerticalIndex( previousSlide.parentNode, indexv );
-		}
-
-		// Remember the state before this slide
-		var stateBefore = state.concat();
-
-		// Reset the state array
-		state.length = 0;
-
-		var indexhBefore = indexh || 0,
-			indexvBefore = indexv || 0;
-
-		// Activate and transition to the new slide
-		indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );
-		indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );
-
-		// Update the visibility of slides now that the indices have changed
-		updateSlidesVisibility();
-
-		layout();
-
-		// Apply the new state
-		stateLoop: for( var i = 0, len = state.length; i < len; i++ ) {
-			// Check if this state existed on the previous slide. If it
-			// did, we will avoid adding it repeatedly
-			for( var j = 0; j < stateBefore.length; j++ ) {
-				if( stateBefore[j] === state[i] ) {
-					stateBefore.splice( j, 1 );
-					continue stateLoop;
-				}
-			}
-
-			document.documentElement.classList.add( state[i] );
-
-			// Dispatch custom event matching the state's name
-			dispatchEvent( state[i] );
-		}
-
-		// Clean up the remains of the previous state
-		while( stateBefore.length ) {
-			document.documentElement.classList.remove( stateBefore.pop() );
-		}
-
-		// If the overview is active, re-activate it to update positions
-		if( isOverview() ) {
-			activateOverview();
-		}
-
-		// Find the current horizontal slide and any possible vertical slides
-		// within it
-		var currentHorizontalSlide = horizontalSlides[ indexh ],
-			currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );
-
-		// Store references to the previous and current slides
-		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;
-
-		// Show fragment, if specified
-		if( typeof f !== 'undefined' ) {
-			navigateFragment( f );
-		}
-
-		// Dispatch an event if the slide changed
-		var slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );
-		if( slideChanged ) {
-			dispatchEvent( 'slidechanged', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'previousSlide': previousSlide,
-				'currentSlide': currentSlide,
-				'origin': o
-			} );
-		}
-		else {
-			// Ensure that the previous slide is never the same as the current
-			previousSlide = null;
-		}
-
-		// Solves an edge case where the previous slide maintains the
-		// 'present' class when navigating between adjacent vertical
-		// stacks
-		if( previousSlide ) {
-			previousSlide.classList.remove( 'present' );
-
-			// Reset all slides upon navigate to home
-			// Issue: #285
-			if ( document.querySelector( HOME_SLIDE_SELECTOR ).classList.contains( 'present' ) ) {
-				// Launch async task
-				setTimeout( function () {
-					var slides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.stack') ), i;
-					for( i in slides ) {
-						if( slides[i] ) {
-							// Reset stack
-							setPreviousVerticalIndex( slides[i], 0 );
-						}
-					}
-				}, 0 );
-			}
-		}
-
-		// Handle embedded content
-		if( slideChanged ) {
-			stopEmbeddedContent( previousSlide );
-			startEmbeddedContent( currentSlide );
-		}
-
-		updateControls();
-		updateProgress();
-		updateBackground();
-		updateParallax();
-		updateSlideNumber();
-
-		// Update the URL hash
-		writeURL();
-
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Syncs the presentation with the current DOM. Useful
-	 * when new slides or control elements are added or when
-	 * the configuration has changed.
-	 */
-	function sync() {
-
-		// Subscribe to input
-		removeEventListeners();
-		addEventListeners();
-
-		// Force a layout to make sure the current config is accounted for
-		layout();
-
-		// Reflect the current autoSlide value
-		autoSlide = config.autoSlide;
-
-		// Start auto-sliding if it's enabled
-		cueAutoSlide();
-
-		// Re-create the slide backgrounds
-		createBackgrounds();
-
-		sortAllFragments();
-
-		updateControls();
-		updateProgress();
-		updateBackground( true );
-		updateSlideNumber();
-
-	}
-
-	/**
-	 * Resets all vertical slides so that only the first
-	 * is visible.
-	 */
-	function resetVerticalSlides() {
-
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-		horizontalSlides.forEach( function( horizontalSlide ) {
-
-			var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-			verticalSlides.forEach( function( verticalSlide, y ) {
-
-				if( y > 0 ) {
-					verticalSlide.classList.remove( 'present' );
-					verticalSlide.classList.remove( 'past' );
-					verticalSlide.classList.add( 'future' );
-				}
-
-			} );
-
-		} );
-
-	}
-
-	/**
-	 * Sorts and formats all of fragments in the
-	 * presentation.
-	 */
-	function sortAllFragments() {
-
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-		horizontalSlides.forEach( function( horizontalSlide ) {
-
-			var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-			verticalSlides.forEach( function( verticalSlide, y ) {
-
-				sortFragments( verticalSlide.querySelectorAll( '.fragment' ) );
-
-			} );
-
-			if( verticalSlides.length === 0 ) sortFragments( horizontalSlide.querySelectorAll( '.fragment' ) );
-
-		} );
-
-	}
-
-	/**
-	 * Updates one dimension of slides by showing the slide
-	 * with the specified index.
-	 *
-	 * @param {String} selector A CSS selector that will fetch
-	 * the group of slides we are working with
-	 * @param {Number} index The index of the slide that should be
-	 * shown
-	 *
-	 * @return {Number} The index of the slide that is now shown,
-	 * might differ from the passed in index if it was out of
-	 * bounds.
-	 */
-	function updateSlides( selector, index ) {
-
-		// Select all slides and convert the NodeList result to
-		// an array
-		var slides = toArray( document.querySelectorAll( selector ) ),
-			slidesLength = slides.length;
-
-		if( slidesLength ) {
-
-			// Should the index loop?
-			if( config.loop ) {
-				index %= slidesLength;
-
-				if( index < 0 ) {
-					index = slidesLength + index;
-				}
-			}
-
-			// Enforce max and minimum index bounds
-			index = Math.max( Math.min( index, slidesLength - 1 ), 0 );
-
-			for( var i = 0; i < slidesLength; i++ ) {
-				var element = slides[i];
-
-				var reverse = config.rtl && !isVerticalSlide( element );
-
-				element.classList.remove( 'past' );
-				element.classList.remove( 'present' );
-				element.classList.remove( 'future' );
-
-				// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute
-				element.setAttribute( 'hidden', '' );
-
-				if( i < index ) {
-					// Any element previous to index is given the 'past' class
-					element.classList.add( reverse ? 'future' : 'past' );
-
-					var pastFragments = toArray( element.querySelectorAll( '.fragment' ) );
-
-					// Show all fragments on prior slides
-					while( pastFragments.length ) {
-						var pastFragment = pastFragments.pop();
-						pastFragment.classList.add( 'visible' );
-						pastFragment.classList.remove( 'current-fragment' );
-					}
-				}
-				else if( i > index ) {
-					// Any element subsequent to index is given the 'future' class
-					element.classList.add( reverse ? 'past' : 'future' );
-
-					var futureFragments = toArray( element.querySelectorAll( '.fragment.visible' ) );
-
-					// No fragments in future slides should be visible ahead of time
-					while( futureFragments.length ) {
-						var futureFragment = futureFragments.pop();
-						futureFragment.classList.remove( 'visible' );
-						futureFragment.classList.remove( 'current-fragment' );
-					}
-				}
-
-				// If this element contains vertical slides
-				if( element.querySelector( 'section' ) ) {
-					element.classList.add( 'stack' );
-				}
-			}
-
-			// Mark the current slide as present
-			slides[index].classList.add( 'present' );
-			slides[index].removeAttribute( 'hidden' );
-
-			// If this slide has a state associated with it, add it
-			// onto the current state of the deck
-			var slideState = slides[index].getAttribute( 'data-state' );
-			if( slideState ) {
-				state = state.concat( slideState.split( ' ' ) );
-			}
-
-		}
-		else {
-			// Since there are no slides we can't be anywhere beyond the
-			// zeroth index
-			index = 0;
-		}
-
-		return index;
-
-	}
-
-	/**
-	 * Optimization method; hide all slides that are far away
-	 * from the present slide.
-	 */
-	function updateSlidesVisibility() {
-
-		// Select all slides and convert the NodeList result to
-		// an array
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ),
-			horizontalSlidesLength = horizontalSlides.length,
-			distanceX,
-			distanceY;
-
-		if( horizontalSlidesLength ) {
-
-			// The number of steps away from the present slide that will
-			// be visible
-			var viewDistance = isOverview() ? 10 : config.viewDistance;
-
-			// Limit view distance on weaker devices
-			if( isMobileDevice ) {
-				viewDistance = isOverview() ? 6 : 1;
-			}
-
-			for( var x = 0; x < horizontalSlidesLength; x++ ) {
-				var horizontalSlide = horizontalSlides[x];
-
-				var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ),
-					verticalSlidesLength = verticalSlides.length;
-
-				// Loops so that it measures 1 between the first and last slides
-				distanceX = Math.abs( ( indexh - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;
-
-				// Show the horizontal slide if it's within the view distance
-				horizontalSlide.style.display = distanceX > viewDistance ? 'none' : 'block';
-
-				if( verticalSlidesLength ) {
-
-					var oy = getPreviousVerticalIndex( horizontalSlide );
-
-					for( var y = 0; y < verticalSlidesLength; y++ ) {
-						var verticalSlide = verticalSlides[y];
-
-						distanceY = x === indexh ? Math.abs( indexv - y ) : Math.abs( y - oy );
-
-						verticalSlide.style.display = ( distanceX + distanceY ) > viewDistance ? 'none' : 'block';
-					}
-
-				}
-			}
-
-		}
-
-	}
-
-	/**
-	 * Updates the progress bar to reflect the current slide.
-	 */
-	function updateProgress() {
-
-		// Update progress if enabled
-		if( config.progress && dom.progress ) {
-
-			var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-			// The number of past and total slides
-			var totalCount = document.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ).length;
-			var pastCount = 0;
-
-			// Step through all slides and count the past ones
-			mainLoop: for( var i = 0; i < horizontalSlides.length; i++ ) {
-
-				var horizontalSlide = horizontalSlides[i];
-				var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-
-				for( var j = 0; j < verticalSlides.length; j++ ) {
-
-					// Stop as soon as we arrive at the present
-					if( verticalSlides[j].classList.contains( 'present' ) ) {
-						break mainLoop;
-					}
-
-					pastCount++;
-
-				}
-
-				// Stop as soon as we arrive at the present
-				if( horizontalSlide.classList.contains( 'present' ) ) {
-					break;
-				}
-
-				// Don't count the wrapping section for vertical slides
-				if( horizontalSlide.classList.contains( 'stack' ) === false ) {
-					pastCount++;
-				}
-
-			}
-
-			dom.progressbar.style.width = ( pastCount / ( totalCount - 1 ) ) * window.innerWidth + 'px';
-
-		}
-
-	}
-
-	/**
-	 * Updates the slide number div to reflect the current slide.
-	 */
-	function updateSlideNumber() {
-
-		// Update slide number if enabled
-		if( config.slideNumber && dom.slideNumber) {
-
-			// Display the number of the page using 'indexh - indexv' format
-			var indexString = indexh;
-			if( indexv > 0 ) {
-				indexString += ' - ' + indexv;
-			}
-
-			dom.slideNumber.innerHTML = indexString;
-		}
-
-	}
-
-	/**
-	 * Updates the state of all control/navigation arrows.
-	 */
-	function updateControls() {
-
-		var routes = availableRoutes();
-		var fragments = availableFragments();
-
-		// Remove the 'enabled' class from all directions
-		dom.controlsLeft.concat( dom.controlsRight )
-						.concat( dom.controlsUp )
-						.concat( dom.controlsDown )
-						.concat( dom.controlsPrev )
-						.concat( dom.controlsNext ).forEach( function( node ) {
-			node.classList.remove( 'enabled' );
-			node.classList.remove( 'fragmented' );
-		} );
-
-		// Add the 'enabled' class to the available routes
-		if( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' );	} );
-		if( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-		if( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' );	} );
-		if( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-
-		// Prev/next buttons
-		if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-		if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-
-		// Highlight fragment directions
-		if( currentSlide ) {
-
-			// Always apply fragment decorator to prev/next buttons
-			if( fragments.prev ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			if( fragments.next ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-
-			// Apply fragment decorators to directional buttons based on
-			// what slide axis they are in
-			if( isVerticalSlide( currentSlide ) ) {
-				if( fragments.prev ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-				if( fragments.next ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			}
-			else {
-				if( fragments.prev ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-				if( fragments.next ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			}
-
-		}
-
-	}
-
-	/**
-	 * Updates the background elements to reflect the current
-	 * slide.
-	 *
-	 * @param {Boolean} includeAll If true, the backgrounds of
-	 * all vertical slides (not just the present) will be updated.
-	 */
-	function updateBackground( includeAll ) {
-
-		var currentBackground = null;
-
-		// Reverse past/future classes when in RTL mode
-		var horizontalPast = config.rtl ? 'future' : 'past',
-			horizontalFuture = config.rtl ? 'past' : 'future';
-
-		// Update the classes of all backgrounds to match the
-		// states of their slides (past/present/future)
-		toArray( dom.background.childNodes ).forEach( function( backgroundh, h ) {
-
-			if( h < indexh ) {
-				backgroundh.className = 'slide-background ' + horizontalPast;
-			}
-			else if ( h > indexh ) {
-				backgroundh.className = 'slide-background ' + horizontalFuture;
-			}
-			else {
-				backgroundh.className = 'slide-background present';
-
-				// Store a reference to the current background element
-				currentBackground = backgroundh;
-			}
-
-			if( includeAll || h === indexh ) {
-				toArray( backgroundh.childNodes ).forEach( function( backgroundv, v ) {
-
-					if( v < indexv ) {
-						backgroundv.className = 'slide-background past';
-					}
-					else if ( v > indexv ) {
-						backgroundv.className = 'slide-background future';
-					}
-					else {
-						backgroundv.className = 'slide-background present';
-
-						// Only if this is the present horizontal and vertical slide
-						if( h === indexh ) currentBackground = backgroundv;
-					}
-
-				} );
-			}
-
-		} );
-
-		// Don't transition between identical backgrounds. This
-		// prevents unwanted flicker.
-		if( currentBackground ) {
-			var previousBackgroundHash = previousBackground ? previousBackground.getAttribute( 'data-background-hash' ) : null;
-			var currentBackgroundHash = currentBackground.getAttribute( 'data-background-hash' );
-			if( currentBackgroundHash && currentBackgroundHash === previousBackgroundHash && currentBackground !== previousBackground ) {
-				dom.background.classList.add( 'no-transition' );
-			}
-
-			previousBackground = currentBackground;
-		}
-
-		// Allow the first background to apply without transition
-		setTimeout( function() {
-			dom.background.classList.remove( 'no-transition' );
-		}, 1 );
-
-	}
-
-	/**
-	 * Updates the position of the parallax background based
-	 * on the current slide index.
-	 */
-	function updateParallax() {
-
-		if( config.parallaxBackgroundImage ) {
-
-			var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),
-				verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-			var backgroundSize = dom.background.style.backgroundSize.split( ' ' ),
-				backgroundWidth, backgroundHeight;
-
-			if( backgroundSize.length === 1 ) {
-				backgroundWidth = backgroundHeight = parseInt( backgroundSize[0], 10 );
-			}
-			else {
-				backgroundWidth = parseInt( backgroundSize[0], 10 );
-				backgroundHeight = parseInt( backgroundSize[1], 10 );
-			}
-
-			var slideWidth = dom.background.offsetWidth;
-			var horizontalSlideCount = horizontalSlides.length;
-			var horizontalOffset = -( backgroundWidth - slideWidth ) / ( horizontalSlideCount-1 ) * indexh;
-
-			var slideHeight = dom.background.offsetHeight;
-			var verticalSlideCount = verticalSlides.length;
-			var verticalOffset = verticalSlideCount > 0 ? -( backgroundHeight - slideHeight ) / ( verticalSlideCount-1 ) * indexv : 0;
-
-			dom.background.style.backgroundPosition = horizontalOffset + 'px ' + verticalOffset + 'px';
-
-		}
-
-	}
-
-	/**
-	 * Determine what available routes there are for navigation.
-	 *
-	 * @return {Object} containing four booleans: left/right/up/down
-	 */
-	function availableRoutes() {
-
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),
-			verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-		var routes = {
-			left: indexh > 0 || config.loop,
-			right: indexh < horizontalSlides.length - 1 || config.loop,
-			up: indexv > 0,
-			down: indexv < verticalSlides.length - 1
-		};
-
-		// reverse horizontal controls for rtl
-		if( config.rtl ) {
-			var left = routes.left;
-			routes.left = routes.right;
-			routes.right = left;
-		}
-
-		return routes;
-
-	}
-
-	/**
-	 * Returns an object describing the available fragment
-	 * directions.
-	 *
-	 * @return {Object} two boolean properties: prev/next
-	 */
-	function availableFragments() {
-
-		if( currentSlide && config.fragments ) {
-			var fragments = currentSlide.querySelectorAll( '.fragment' );
-			var hiddenFragments = currentSlide.querySelectorAll( '.fragment:not(.visible)' );
-
-			return {
-				prev: fragments.length - hiddenFragments.length > 0,
-				next: !!hiddenFragments.length
-			};
-		}
-		else {
-			return { prev: false, next: false };
-		}
-
-	}
-
-	/**
-	 * Start playback of any embedded content inside of
-	 * the targeted slide.
-	 */
-	function startEmbeddedContent( slide ) {
-
-		if( slide && !isSpeakerNotes() ) {
-			// HTML5 media elements
-			toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					el.play();
-				}
-			} );
-
-			// iframe embeds
-			toArray( slide.querySelectorAll( 'iframe' ) ).forEach( function( el ) {
-				el.contentWindow.postMessage( 'slide:start', '*' );
-			});
-
-			// YouTube embeds
-			toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					el.contentWindow.postMessage( '{"event":"command","func":"playVideo","args":""}', '*' );
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * Stop playback of any embedded content inside of
-	 * the targeted slide.
-	 */
-	function stopEmbeddedContent( slide ) {
-
-		if( slide ) {
-			// HTML5 media elements
-			toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( !el.hasAttribute( 'data-ignore' ) ) {
-					el.pause();
-				}
-			} );
-
-			// iframe embeds
-			toArray( slide.querySelectorAll( 'iframe' ) ).forEach( function( el ) {
-				el.contentWindow.postMessage( 'slide:stop', '*' );
-			});
-
-			// YouTube embeds
-			toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
-				if( !el.hasAttribute( 'data-ignore' ) && typeof el.contentWindow.postMessage === 'function' ) {
-					el.contentWindow.postMessage( '{"event":"command","func":"pauseVideo","args":""}', '*' );
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * Checks if this presentation is running inside of the
-	 * speaker notes window.
-	 */
-	function isSpeakerNotes() {
-
-		return !!window.location.search.match( /receiver/gi );
-
-	}
-
-	/**
-	 * Reads the current URL (hash) and navigates accordingly.
-	 */
-	function readURL() {
-
-		var hash = window.location.hash;
-
-		// Attempt to parse the hash as either an index or name
-		var bits = hash.slice( 2 ).split( '/' ),
-			name = hash.replace( /#|\//gi, '' );
-
-		// If the first bit is invalid and there is a name we can
-		// assume that this is a named link
-		if( isNaN( parseInt( bits[0], 10 ) ) && name.length ) {
-			// Find the slide with the specified name
-			var element = document.querySelector( '#' + name );
-
-			if( element ) {
-				// Find the position of the named slide and navigate to it
-				var indices = Reveal.getIndices( element );
-				slide( indices.h, indices.v );
-			}
-			// If the slide doesn't exist, navigate to the current slide
-			else {
-				slide( indexh || 0, indexv || 0 );
-			}
-		}
-		else {
-			// Read the index components of the hash
-			var h = parseInt( bits[0], 10 ) || 0,
-				v = parseInt( bits[1], 10 ) || 0;
-
-			if( h !== indexh || v !== indexv ) {
-				slide( h, v );
-			}
-		}
-
-	}
-
-	/**
-	 * Updates the page URL (hash) to reflect the current
-	 * state.
-	 *
-	 * @param {Number} delay The time in ms to wait before
-	 * writing the hash
-	 */
-	function writeURL( delay ) {
-
-		if( config.history ) {
-
-			// Make sure there's never more than one timeout running
-			clearTimeout( writeURLTimeout );
-
-			// If a delay is specified, timeout this call
-			if( typeof delay === 'number' ) {
-				writeURLTimeout = setTimeout( writeURL, delay );
-			}
-			else {
-				var url = '/';
-
-				// If the current slide has an ID, use that as a named link
-				if( currentSlide && typeof currentSlide.getAttribute( 'id' ) === 'string' ) {
-					url = '/' + currentSlide.getAttribute( 'id' );
-				}
-				// Otherwise use the /h/v index
-				else {
-					if( indexh > 0 || indexv > 0 ) url += indexh;
-					if( indexv > 0 ) url += '/' + indexv;
-				}
-
-				window.location.hash = url;
-			}
-		}
-
-	}
-
-	/**
-	 * Retrieves the h/v location of the current, or specified,
-	 * slide.
-	 *
-	 * @param {HTMLElement} slide If specified, the returned
-	 * index will be for this slide rather than the currently
-	 * active one
-	 *
-	 * @return {Object} { h: <int>, v: <int>, f: <int> }
-	 */
-	function getIndices( slide ) {
-
-		// By default, return the current indices
-		var h = indexh,
-			v = indexv,
-			f;
-
-		// If a slide is specified, return the indices of that slide
-		if( slide ) {
-			var isVertical = isVerticalSlide( slide );
-			var slideh = isVertical ? slide.parentNode : slide;
-
-			// Select all horizontal slides
-			var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-			// Now that we know which the horizontal slide is, get its index
-			h = Math.max( horizontalSlides.indexOf( slideh ), 0 );
-
-			// If this is a vertical slide, grab the vertical index
-			if( isVertical ) {
-				v = Math.max( toArray( slide.parentNode.querySelectorAll( 'section' ) ).indexOf( slide ), 0 );
-			}
-		}
-
-		if( !slide && currentSlide ) {
-			var hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;
-			if( hasFragments ) {
-				var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );
-				f = visibleFragments.length - 1;
-			}
-		}
-
-		return { h: h, v: v, f: f };
-
-	}
-
-	/**
-	 * Return a sorted fragments list, ordered by an increasing
-	 * "data-fragment-index" attribute.
-	 *
-	 * Fragments will be revealed in the order that they are returned by
-	 * this function, so you can use the index attributes to control the
-	 * order of fragment appearance.
-	 *
-	 * To maintain a sensible default fragment order, fragments are presumed
-	 * to be passed in document order. This function adds a "fragment-index"
-	 * attribute to each node if such an attribute is not already present,
-	 * and sets that attribute to an integer value which is the position of
-	 * the fragment within the fragments list.
-	 */
-	function sortFragments( fragments ) {
-
-		fragments = toArray( fragments );
-
-		var ordered = [],
-			unordered = [],
-			sorted = [];
-
-		// Group ordered and unordered elements
-		fragments.forEach( function( fragment, i ) {
-			if( fragment.hasAttribute( 'data-fragment-index' ) ) {
-				var index = parseInt( fragment.getAttribute( 'data-fragment-index' ), 10 );
-
-				if( !ordered[index] ) {
-					ordered[index] = [];
-				}
-
-				ordered[index].push( fragment );
-			}
-			else {
-				unordered.push( [ fragment ] );
-			}
-		} );
-
-		// Append fragments without explicit indices in their
-		// DOM order
-		ordered = ordered.concat( unordered );
-
-		// Manually count the index up per group to ensure there
-		// are no gaps
-		var index = 0;
-
-		// Push all fragments in their sorted order to an array,
-		// this flattens the groups
-		ordered.forEach( function( group ) {
-			group.forEach( function( fragment ) {
-				sorted.push( fragment );
-				fragment.setAttribute( 'data-fragment-index', index );
-			} );
-
-			index ++;
-		} );
-
-		return sorted;
-
-	}
-
-	/**
-	 * Navigate to the specified slide fragment.
-	 *
-	 * @param {Number} index The index of the fragment that
-	 * should be shown, -1 means all are invisible
-	 * @param {Number} offset Integer offset to apply to the
-	 * fragment index
-	 *
-	 * @return {Boolean} true if a change was made in any
-	 * fragments visibility as part of this call
-	 */
-	function navigateFragment( index, offset ) {
-
-		if( currentSlide && config.fragments ) {
-
-			var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment' ) );
-			if( fragments.length ) {
-
-				// If no index is specified, find the current
-				if( typeof index !== 'number' ) {
-					var lastVisibleFragment = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop();
-
-					if( lastVisibleFragment ) {
-						index = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 0, 10 );
-					}
-					else {
-						index = -1;
-					}
-				}
-
-				// If an offset is specified, apply it to the index
-				if( typeof offset === 'number' ) {
-					index += offset;
-				}
-
-				var fragmentsShown = [],
-					fragmentsHidden = [];
-
-				toArray( fragments ).forEach( function( element, i ) {
-
-					if( element.hasAttribute( 'data-fragment-index' ) ) {
-						i = parseInt( element.getAttribute( 'data-fragment-index' ), 10 );
-					}
-
-					// Visible fragments
-					if( i <= index ) {
-						if( !element.classList.contains( 'visible' ) ) fragmentsShown.push( element );
-						element.classList.add( 'visible' );
-						element.classList.remove( 'current-fragment' );
-
-						if( i === index ) {
-							element.classList.add( 'current-fragment' );
-						}
-					}
-					// Hidden fragments
-					else {
-						if( element.classList.contains( 'visible' ) ) fragmentsHidden.push( element );
-						element.classList.remove( 'visible' );
-						element.classList.remove( 'current-fragment' );
-					}
-
-
-				} );
-
-				if( fragmentsHidden.length ) {
-					dispatchEvent( 'fragmenthidden', { fragment: fragmentsHidden[0], fragments: fragmentsHidden } );
-				}
-
-				if( fragmentsShown.length ) {
-					dispatchEvent( 'fragmentshown', { fragment: fragmentsShown[0], fragments: fragmentsShown } );
-				}
-
-				updateControls();
-
-				return !!( fragmentsShown.length || fragmentsHidden.length );
-
-			}
-
-		}
-
-		return false;
-
-	}
-
-	/**
-	 * Navigate to the next slide fragment.
-	 *
-	 * @return {Boolean} true if there was a next fragment,
-	 * false otherwise
-	 */
-	function nextFragment() {
-
-		return navigateFragment( null, 1 );
-
-	}
-
-	/**
-	 * Navigate to the previous slide fragment.
-	 *
-	 * @return {Boolean} true if there was a previous fragment,
-	 * false otherwise
-	 */
-	function previousFragment() {
-
-		return navigateFragment( null, -1 );
-
-	}
-
-	/**
-	 * Cues a new automated slide if enabled in the config.
-	 */
-	function cueAutoSlide() {
-
-		cancelAutoSlide();
-
-		if( currentSlide ) {
-
-			var parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;
-			var slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );
-
-			// Pick value in the following priority order:
-			// 1. Current slide's data-autoslide
-			// 2. Parent slide's data-autoslide
-			// 3. Global autoSlide setting
-			if( slideAutoSlide ) {
-				autoSlide = parseInt( slideAutoSlide, 10 );
-			}
-			else if( parentAutoSlide ) {
-				autoSlide = parseInt( parentAutoSlide, 10 );
-			}
-			else {
-				autoSlide = config.autoSlide;
-			}
-
-			// If there are media elements with data-autoplay,
-			// automatically set the autoSlide duration to the
-			// length of that media
-			toArray( currentSlide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					if( autoSlide && el.duration * 1000 > autoSlide ) {
-						autoSlide = ( el.duration * 1000 ) + 1000;
-					}
-				}
-			} );
-
-			// Cue the next auto-slide if:
-			// - There is an autoSlide value
-			// - Auto-sliding isn't paused by the user
-			// - The presentation isn't paused
-			// - The overview isn't active
-			// - The presentation isn't over
-			if( autoSlide && !autoSlidePaused && !isPaused() && !isOverview() && ( !Reveal.isLastSlide() || config.loop === true ) ) {
-				autoSlideTimeout = setTimeout( navigateNext, autoSlide );
-				autoSlideStartTime = Date.now();
-			}
-
-			if( autoSlidePlayer ) {
-				autoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );
-			}
-
-		}
-
-	}
-
-	/**
-	 * Cancels any ongoing request to auto-slide.
-	 */
-	function cancelAutoSlide() {
-
-		clearTimeout( autoSlideTimeout );
-		autoSlideTimeout = -1;
-
-	}
-
-	function pauseAutoSlide() {
-
-		autoSlidePaused = true;
-		clearTimeout( autoSlideTimeout );
-
-		if( autoSlidePlayer ) {
-			autoSlidePlayer.setPlaying( false );
-		}
-
-	}
-
-	function resumeAutoSlide() {
-
-		autoSlidePaused = false;
-		cueAutoSlide();
-
-	}
-
-	function navigateLeft() {
-
-		// Reverse for RTL
-		if( config.rtl ) {
-			if( ( isOverview() || nextFragment() === false ) && availableRoutes().left ) {
-				slide( indexh + 1 );
-			}
-		}
-		// Normal navigation
-		else if( ( isOverview() || previousFragment() === false ) && availableRoutes().left ) {
-			slide( indexh - 1 );
-		}
-
-	}
-
-	function navigateRight() {
-
-		// Reverse for RTL
-		if( config.rtl ) {
-			if( ( isOverview() || previousFragment() === false ) && availableRoutes().right ) {
-				slide( indexh - 1 );
-			}
-		}
-		// Normal navigation
-		else if( ( isOverview() || nextFragment() === false ) && availableRoutes().right ) {
-			slide( indexh + 1 );
-		}
-
-	}
-
-	function navigateUp() {
-
-		// Prioritize hiding fragments
-		if( ( isOverview() || previousFragment() === false ) && availableRoutes().up ) {
-			slide( indexh, indexv - 1 );
-		}
-
-	}
-
-	function navigateDown() {
-
-		// Prioritize revealing fragments
-		if( ( isOverview() || nextFragment() === false ) && availableRoutes().down ) {
-			slide( indexh, indexv + 1 );
-		}
-
-	}
-
-	/**
-	 * Navigates backwards, prioritized in the following order:
-	 * 1) Previous fragment
-	 * 2) Previous vertical slide
-	 * 3) Previous horizontal slide
-	 */
-	function navigatePrev() {
-
-		// Prioritize revealing fragments
-		if( previousFragment() === false ) {
-			if( availableRoutes().up ) {
-				navigateUp();
-			}
-			else {
-				// Fetch the previous horizontal slide, if there is one
-				var previousSlide = document.querySelector( HORIZONTAL_SLIDES_SELECTOR + '.past:nth-child(' + indexh + ')' );
-
-				if( previousSlide ) {
-					var v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;
-					var h = indexh - 1;
-					slide( h, v );
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * Same as #navigatePrev() but navigates forwards.
-	 */
-	function navigateNext() {
-
-		// Prioritize revealing fragments
-		if( nextFragment() === false ) {
-			availableRoutes().down ? navigateDown() : navigateRight();
-		}
-
-		// If auto-sliding is enabled we need to cue up
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-
-	// --------------------------------------------------------------------//
-	// ----------------------------- EVENTS -------------------------------//
-	// --------------------------------------------------------------------//
-
-	/**
-	 * Called by all event handlers that are based on user
-	 * input.
-	 */
-	function onUserInput( event ) {
-
-		if( config.autoSlideStoppable ) {
-			pauseAutoSlide();
-		}
-
-	}
-
-	/**
-	 * Handler for the document level 'keydown' event.
-	 */
-	function onDocumentKeyDown( event ) {
-
-		onUserInput( event );
-
-		// Check if there's a focused element that could be using
-		// the keyboard
-		var activeElement = document.activeElement;
-		var hasFocus = !!( document.activeElement && ( document.activeElement.type || document.activeElement.href || document.activeElement.contentEditable !== 'inherit' ) );
-
-		// Disregard the event if there's a focused element or a
-		// keyboard modifier key is present
-		if( hasFocus || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		// While paused only allow "unpausing" keyboard events (b and .)
-		if( isPaused() && [66,190,191].indexOf( event.keyCode ) === -1 ) {
-			return false;
-		}
-
-		var triggered = false;
-
-		// 1. User defined key bindings
-		if( typeof config.keyboard === 'object' ) {
-
-			for( var key in config.keyboard ) {
-
-				// Check if this binding matches the pressed key
-				if( parseInt( key, 10 ) === event.keyCode ) {
-
-					var value = config.keyboard[ key ];
-
-					// Callback function
-					if( typeof value === 'function' ) {
-						value.apply( null, [ event ] );
-					}
-					// String shortcuts to reveal.js API
-					else if( typeof value === 'string' && typeof Reveal[ value ] === 'function' ) {
-						Reveal[ value ].call();
-					}
-
-					triggered = true;
-
-				}
-
-			}
-
-		}
-
-		// 2. System defined key bindings
-		if( triggered === false ) {
-
-			// Assume true and try to prove false
-			triggered = true;
-
-			switch( event.keyCode ) {
-				// p, page up
-				case 80: case 33: navigatePrev(); break;
-				// n, page down
-				case 78: case 34: navigateNext(); break;
-				// h, left
-				case 72: case 37: navigateLeft(); break;
-				// l, right
-				case 76: case 39: navigateRight(); break;
-				// k, up
-				case 75: case 38: navigateUp(); break;
-				// j, down
-				case 74: case 40: navigateDown(); break;
-				// home
-				case 36: slide( 0 ); break;
-				// end
-				case 35: slide( Number.MAX_VALUE ); break;
-				// space
-				case 32: isOverview() ? deactivateOverview() : event.shiftKey ? navigatePrev() : navigateNext(); break;
-				// return
-				case 13: isOverview() ? deactivateOverview() : triggered = false; break;
-				// b, period, Logitech presenter tools "black screen" button
-				case 66: case 190: case 191: togglePause(); break;
-				// f
-				case 70: enterFullscreen(); break;
-				default:
-					triggered = false;
-			}
-
-		}
-
-		// If the input resulted in a triggered action we should prevent
-		// the browsers default behavior
-		if( triggered ) {
-			event.preventDefault();
-		}
-		// ESC or O key
-		else if ( ( event.keyCode === 27 || event.keyCode === 79 ) && features.transforms3d ) {
-			if( dom.preview ) {
-				closePreview();
-			}
-			else {
-				toggleOverview();
-			}
-
-			event.preventDefault();
-		}
-
-		// If auto-sliding is enabled we need to cue up
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Handler for the 'touchstart' event, enables support for
-	 * swipe and pinch gestures.
-	 */
-	function onTouchStart( event ) {
-
-		touch.startX = event.touches[0].clientX;
-		touch.startY = event.touches[0].clientY;
-		touch.startCount = event.touches.length;
-
-		// If there's two touches we need to memorize the distance
-		// between those two points to detect pinching
-		if( event.touches.length === 2 && config.overview ) {
-			touch.startSpan = distanceBetween( {
-				x: event.touches[1].clientX,
-				y: event.touches[1].clientY
-			}, {
-				x: touch.startX,
-				y: touch.startY
-			} );
-		}
-
-	}
-
-	/**
-	 * Handler for the 'touchmove' event.
-	 */
-	function onTouchMove( event ) {
-
-		// Each touch should only trigger one action
-		if( !touch.captured ) {
-			onUserInput( event );
-
-			var currentX = event.touches[0].clientX;
-			var currentY = event.touches[0].clientY;
-
-			// If the touch started with two points and still has
-			// two active touches; test for the pinch gesture
-			if( event.touches.length === 2 && touch.startCount === 2 && config.overview ) {
-
-				// The current distance in pixels between the two touch points
-				var currentSpan = distanceBetween( {
-					x: event.touches[1].clientX,
-					y: event.touches[1].clientY
-				}, {
-					x: touch.startX,
-					y: touch.startY
-				} );
-
-				// If the span is larger than the desire amount we've got
-				// ourselves a pinch
-				if( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) {
-					touch.captured = true;
-
-					if( currentSpan < touch.startSpan ) {
-						activateOverview();
-					}
-					else {
-						deactivateOverview();
-					}
-				}
-
-				event.preventDefault();
-
-			}
-			// There was only one touch point, look for a swipe
-			else if( event.touches.length === 1 && touch.startCount !== 2 ) {
-
-				var deltaX = currentX - touch.startX,
-					deltaY = currentY - touch.startY;
-
-				if( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.captured = true;
-					navigateLeft();
-				}
-				else if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.captured = true;
-					navigateRight();
-				}
-				else if( deltaY > touch.threshold ) {
-					touch.captured = true;
-					navigateUp();
-				}
-				else if( deltaY < -touch.threshold ) {
-					touch.captured = true;
-					navigateDown();
-				}
-
-				// If we're embedded, only block touch events if they have
-				// triggered an action
-				if( config.embedded ) {
-					if( touch.captured || isVerticalSlide( currentSlide ) ) {
-						event.preventDefault();
-					}
-				}
-				// Not embedded? Block them all to avoid needless tossing
-				// around of the viewport in iOS
-				else {
-					event.preventDefault();
-				}
-
-			}
-		}
-		// There's a bug with swiping on some Android devices unless
-		// the default action is always prevented
-		else if( navigator.userAgent.match( /android/gi ) ) {
-			event.preventDefault();
-		}
-
-	}
-
-	/**
-	 * Handler for the 'touchend' event.
-	 */
-	function onTouchEnd( event ) {
-
-		touch.captured = false;
-
-	}
-
-	/**
-	 * Convert pointer down to touch start.
-	 */
-	function onPointerDown( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchStart( event );
-		}
-
-	}
-
-	/**
-	 * Convert pointer move to touch move.
-	 */
-	function onPointerMove( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchMove( event );
-		}
-
-	}
-
-	/**
-	 * Convert pointer up to touch end.
-	 */
-	function onPointerUp( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchEnd( event );
-		}
-
-	}
-
-	/**
-	 * Handles mouse wheel scrolling, throttled to avoid skipping
-	 * multiple slides.
-	 */
-	function onDocumentMouseScroll( event ) {
-
-		if( Date.now() - lastMouseWheelStep > 600 ) {
-
-			lastMouseWheelStep = Date.now();
-
-			var delta = event.detail || -event.wheelDelta;
-			if( delta > 0 ) {
-				navigateNext();
-			}
-			else {
-				navigatePrev();
-			}
-
-		}
-
-	}
-
-	/**
-	 * Clicking on the progress bar results in a navigation to the
-	 * closest approximate horizontal slide using this equation:
-	 *
-	 * ( clickX / presentationWidth ) * numberOfSlides
-	 */
-	function onProgressClicked( event ) {
-
-		onUserInput( event );
-
-		event.preventDefault();
-
-		var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length;
-		var slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal );
-
-		slide( slideIndex );
-
-	}
-
-	/**
-	 * Event handler for navigation control buttons.
-	 */
-	function onNavigateLeftClicked( event ) { event.preventDefault(); onUserInput(); navigateLeft(); }
-	function onNavigateRightClicked( event ) { event.preventDefault(); onUserInput(); navigateRight(); }
-	function onNavigateUpClicked( event ) { event.preventDefault(); onUserInput(); navigateUp(); }
-	function onNavigateDownClicked( event ) { event.preventDefault(); onUserInput(); navigateDown(); }
-	function onNavigatePrevClicked( event ) { event.preventDefault(); onUserInput(); navigatePrev(); }
-	function onNavigateNextClicked( event ) { event.preventDefault(); onUserInput(); navigateNext(); }
-
-	/**
-	 * Handler for the window level 'hashchange' event.
-	 */
-	function onWindowHashChange( event ) {
-
-		readURL();
-
-	}
-
-	/**
-	 * Handler for the window level 'resize' event.
-	 */
-	function onWindowResize( event ) {
-
-		layout();
-
-	}
-
-	/**
-	 * Handle for the window level 'visibilitychange' event.
-	 */
-	function onPageVisibilityChange( event ) {
-
-		var isHidden =  document.webkitHidden ||
-						document.msHidden ||
-						document.hidden;
-
-		// If, after clicking a link or similar and we're coming back,
-		// focus the document.body to ensure we can use keyboard shortcuts
-		if( isHidden === false && document.activeElement !== document.body ) {
-			document.activeElement.blur();
-			document.body.focus();
-		}
-
-	}
-
-	/**
-	 * Invoked when a slide is and we're in the overview.
-	 */
-	function onOverviewSlideClicked( event ) {
-
-		// TODO There's a bug here where the event listeners are not
-		// removed after deactivating the overview.
-		if( eventsAreBound && isOverview() ) {
-			event.preventDefault();
-
-			var element = event.target;
-
-			while( element && !element.nodeName.match( /section/gi ) ) {
-				element = element.parentNode;
-			}
-
-			if( element && !element.classList.contains( 'disabled' ) ) {
-
-				deactivateOverview();
-
-				if( element.nodeName.match( /section/gi ) ) {
-					var h = parseInt( element.getAttribute( 'data-index-h' ), 10 ),
-						v = parseInt( element.getAttribute( 'data-index-v' ), 10 );
-
-					slide( h, v );
-				}
-
-			}
-		}
-
-	}
-
-	/**
-	 * Handles clicks on links that are set to preview in the
-	 * iframe overlay.
-	 */
-	function onPreviewLinkClicked( event ) {
-
-		var url = event.target.getAttribute( 'href' );
-		if( url ) {
-			openPreview( url );
-			event.preventDefault();
-		}
-
-	}
-
-	/**
-	 * Handles click on the auto-sliding controls element.
-	 */
-	function onAutoSlidePlayerClick( event ) {
-
-		// Replay
-		if( Reveal.isLastSlide() && config.loop === false ) {
-			slide( 0, 0 );
-			resumeAutoSlide();
-		}
-		// Resume
-		else if( autoSlidePaused ) {
-			resumeAutoSlide();
-		}
-		// Pause
-		else {
-			pauseAutoSlide();
-		}
-
-	}
-
-
-	// --------------------------------------------------------------------//
-	// ------------------------ PLAYBACK COMPONENT ------------------------//
-	// --------------------------------------------------------------------//
-
-
-	/**
-	 * Constructor for the playback component, which displays
-	 * play/pause/progress controls.
-	 *
-	 * @param {HTMLElement} container The component will append
-	 * itself to this
-	 * @param {Function} progressCheck A method which will be
-	 * called frequently to get the current progress on a range
-	 * of 0-1
-	 */
-	function Playback( container, progressCheck ) {
-
-		// Cosmetics
-		this.diameter = 50;
-		this.thickness = 3;
-
-		// Flags if we are currently playing
-		this.playing = false;
-
-		// Current progress on a 0-1 range
-		this.progress = 0;
-
-		// Used to loop the animation smoothly
-		this.progressOffset = 1;
-
-		this.container = container;
-		this.progressCheck = progressCheck;
-
-		this.canvas = document.createElement( 'canvas' );
-		this.canvas.className = 'playback';
-		this.canvas.width = this.diameter;
-		this.canvas.height = this.diameter;
-		this.context = this.canvas.getContext( '2d' );
-
-		this.container.appendChild( this.canvas );
-
-		this.render();
-
-	}
-
-	Playback.prototype.setPlaying = function( value ) {
-
-		var wasPlaying = this.playing;
-
-		this.playing = value;
-
-		// Start repainting if we weren't already
-		if( !wasPlaying && this.playing ) {
-			this.animate();
-		}
-		else {
-			this.render();
-		}
-
-	};
-
-	Playback.prototype.animate = function() {
-
-		var progressBefore = this.progress;
-
-		this.progress = this.progressCheck();
-
-		// When we loop, offset the progress so that it eases
-		// smoothly rather than immediately resetting
-		if( progressBefore > 0.8 && this.progress < 0.2 ) {
-			this.progressOffset = this.progress;
-		}
-
-		this.render();
-
-		if( this.playing ) {
-			features.requestAnimationFrameMethod.call( window, this.animate.bind( this ) );
-		}
-
-	};
-
-	/**
-	 * Renders the current progress and playback state.
-	 */
-	Playback.prototype.render = function() {
-
-		var progress = this.playing ? this.progress : 0,
-			radius = ( this.diameter / 2 ) - this.thickness,
-			x = this.diameter / 2,
-			y = this.diameter / 2,
-			iconSize = 14;
-
-		// Ease towards 1
-		this.progressOffset += ( 1 - this.progressOffset ) * 0.1;
-
-		var endAngle = ( - Math.PI / 2 ) + ( progress * ( Math.PI * 2 ) );
-		var startAngle = ( - Math.PI / 2 ) + ( this.progressOffset * ( Math.PI * 2 ) );
-
-		this.context.save();
-		this.context.clearRect( 0, 0, this.diameter, this.diameter );
-
-		// Solid background color
-		this.context.beginPath();
-		this.context.arc( x, y, radius + 2, 0, Math.PI * 2, false );
-		this.context.fillStyle = 'rgba( 0, 0, 0, 0.4 )';
-		this.context.fill();
-
-		// Draw progress track
-		this.context.beginPath();
-		this.context.arc( x, y, radius, 0, Math.PI * 2, false );
-		this.context.lineWidth = this.thickness;
-		this.context.strokeStyle = '#666';
-		this.context.stroke();
-
-		if( this.playing ) {
-			// Draw progress on top of track
-			this.context.beginPath();
-			this.context.arc( x, y, radius, startAngle, endAngle, false );
-			this.context.lineWidth = this.thickness;
-			this.context.strokeStyle = '#fff';
-			this.context.stroke();
-		}
-
-		this.context.translate( x - ( iconSize / 2 ), y - ( iconSize / 2 ) );
-
-		// Draw play/pause icons
-		if( this.playing ) {
-			this.context.fillStyle = '#fff';
-			this.context.fillRect( 0, 0, iconSize / 2 - 2, iconSize );
-			this.context.fillRect( iconSize / 2 + 2, 0, iconSize / 2 - 2, iconSize );
-		}
-		else {
-			this.context.beginPath();
-			this.context.translate( 2, 0 );
-			this.context.moveTo( 0, 0 );
-			this.context.lineTo( iconSize - 2, iconSize / 2 );
-			this.context.lineTo( 0, iconSize );
-			this.context.fillStyle = '#fff';
-			this.context.fill();
-		}
-
-		this.context.restore();
-
-	};
-
-	Playback.prototype.on = function( type, listener ) {
-		this.canvas.addEventListener( type, listener, false );
-	};
-
-	Playback.prototype.off = function( type, listener ) {
-		this.canvas.removeEventListener( type, listener, false );
-	};
-
-	Playback.prototype.destroy = function() {
-
-		this.playing = false;
-
-		if( this.canvas.parentNode ) {
-			this.container.removeChild( this.canvas );
-		}
-
-	};
-
-
-	// --------------------------------------------------------------------//
-	// ------------------------------- API --------------------------------//
-	// --------------------------------------------------------------------//
-
-
-	return {
-		initialize: initialize,
-		configure: configure,
-		sync: sync,
-
-		// Navigation methods
-		slide: slide,
-		left: navigateLeft,
-		right: navigateRight,
-		up: navigateUp,
-		down: navigateDown,
-		prev: navigatePrev,
-		next: navigateNext,
-
-		// Fragment methods
-		navigateFragment: navigateFragment,
-		prevFragment: previousFragment,
-		nextFragment: nextFragment,
-
-		// Deprecated aliases
-		navigateTo: slide,
-		navigateLeft: navigateLeft,
-		navigateRight: navigateRight,
-		navigateUp: navigateUp,
-		navigateDown: navigateDown,
-		navigatePrev: navigatePrev,
-		navigateNext: navigateNext,
-
-		// Forces an update in slide layout
-		layout: layout,
-
-		// Returns an object with the available routes as booleans (left/right/top/bottom)
-		availableRoutes: availableRoutes,
-
-		// Returns an object with the available fragments as booleans (prev/next)
-		availableFragments: availableFragments,
-
-		// Toggles the overview mode on/off
-		toggleOverview: toggleOverview,
-
-		// Toggles the "black screen" mode on/off
-		togglePause: togglePause,
-
-		// State checks
-		isOverview: isOverview,
-		isPaused: isPaused,
-
-		// Adds or removes all internal event listeners (such as keyboard)
-		addEventListeners: addEventListeners,
-		removeEventListeners: removeEventListeners,
-
-		// Returns the indices of the current, or specified, slide
-		getIndices: getIndices,
-
-		// Returns the slide at the specified index, y is optional
-		getSlide: function( x, y ) {
-			var horizontalSlide = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR )[ x ];
-			var verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );
-
-			if( typeof y !== 'undefined' ) {
-				return verticalSlides ? verticalSlides[ y ] : undefined;
-			}
-
-			return horizontalSlide;
-		},
-
-		// Returns the previous slide element, may be null
-		getPreviousSlide: function() {
-			return previousSlide;
-		},
-
-		// Returns the current slide element
-		getCurrentSlide: function() {
-			return currentSlide;
-		},
-
-		// Returns the current scale of the presentation content
-		getScale: function() {
-			return scale;
-		},
-
-		// Returns the current configuration object
-		getConfig: function() {
-			return config;
-		},
-
-		// Helper method, retrieves query string as a key/value hash
-		getQueryHash: function() {
-			var query = {};
-
-			location.search.replace( /[A-Z0-9]+?=([\w\.%-]*)/gi, function(a) {
-				query[ a.split( '=' ).shift() ] = a.split( '=' ).pop();
-			} );
-
-			// Basic deserialization
-			for( var i in query ) {
-				var value = query[ i ];
-
-				query[ i ] = unescape( value );
-
-				if( value === 'null' ) query[ i ] = null;
-				else if( value === 'true' ) query[ i ] = true;
-				else if( value === 'false' ) query[ i ] = false;
-				else if( value.match( /^\d+$/ ) ) query[ i ] = parseFloat( value );
-			}
-
-			return query;
-		},
-
-		// Returns true if we're currently on the first slide
-		isFirstSlide: function() {
-			return document.querySelector( SLIDES_SELECTOR + '.past' ) == null ? true : false;
-		},
-
-		// Returns true if we're currently on the last slide
-		isLastSlide: function() {
-			if( currentSlide ) {
-				// Does this slide has next a sibling?
-				if( currentSlide.nextElementSibling ) return false;
-
-				// If it's vertical, does its parent have a next sibling?
-				if( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;
-
-				return true;
-			}
-
-			return false;
-		},
-
-		// Checks if reveal.js has been loaded and is ready for use
-		isReady: function() {
-			return loaded;
-		},
-
-		// Forward event binding to the reveal DOM element
-		addEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture );
-			}
-		},
-		removeEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture );
-			}
-		}
-	};
-
-})();
diff --git a/docs/slides/BOS14/_support/reveal.js/js/reveal.min.js b/docs/slides/BOS14/_support/reveal.js/js/reveal.min.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/js/reveal.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * reveal.js 2.6.1 (2014-03-13, 09:22)
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-var Reveal=function(){"use strict";function a(a){if(b(),!ec.transforms2d&&!ec.transforms3d)return document.body.setAttribute("class","no-transforms"),void 0;window.addEventListener("load",A,!1);var d=Reveal.getQueryHash();"undefined"!=typeof d.dependencies&&delete d.dependencies,k(_b,a),k(_b,d),r(),c()}function b(){ec.transforms3d="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,ec.transforms2d="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,ec.requestAnimationFrameMethod=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,ec.requestAnimationFrame="function"==typeof ec.requestAnimationFrameMethod,ec.canvas=!!document.createElement("canvas").getContext,Vb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){e.length&&head.js.apply(null,e),d()}function b(b){head.ready(b.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],function(){"function"==typeof b.callback&&b.callback.apply(this),0===--f&&a()})}for(var c=[],e=[],f=0,g=0,h=_b.dependencies.length;h>g;g++){var i=_b.dependencies[g];(!i.condition||i.condition())&&(i.async?e.push(i.src):c.push(i.src),b(i))}c.length?(f=c.length,head.js.apply(null,c)):a()}function d(){e(),Q(),h(),cb(),X(!0),setTimeout(function(){dc.slides.classList.remove("no-transition"),ac=!0,t("ready",{indexh:Qb,indexv:Rb,currentSlide:Tb})},1)}function e(){dc.theme=document.querySelector("#theme"),dc.wrapper=document.querySelector(".reveal"),dc.slides=document.querySelector(".reveal .slides"),dc.slides.classList.add("no-transition"),dc.background=f(dc.wrapper,"div","backgrounds",null),dc.progress=f(dc.wrapper,"div","progress","<span></span>"),dc.progressbar=dc.progress.querySelector("span"),f(dc.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),dc.slideNumber=f(dc.wrapper,"div","slide-number",""),f(dc.wrapper,"div","state-background",null),f(dc.wrapper,"div","pause-overlay",null),dc.controls=document.querySelector(".reveal .controls"),dc.controlsLeft=l(document.querySelectorAll(".navigate-left")),dc.controlsRight=l(document.querySelectorAll(".navigate-right")),dc.controlsUp=l(document.querySelectorAll(".navigate-up")),dc.controlsDown=l(document.querySelectorAll(".navigate-down")),dc.controlsPrev=l(document.querySelectorAll(".navigate-prev")),dc.controlsNext=l(document.querySelectorAll(".navigate-next"))}function f(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function g(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),(c.background||c.backgroundColor||c.backgroundImage)&&d.setAttribute("data-background-hash",c.background+c.backgroundSize+c.backgroundImage+c.backgroundColor+c.backgroundRepeat+c.backgroundPosition+c.backgroundTransition),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}q()&&document.body.classList.add("print-pdf"),dc.background.innerHTML="",dc.background.classList.add("no-transition"),l(document.querySelectorAll(Yb)).forEach(function(b){var c;c=q()?a(b,b):a(b,dc.background),l(b.querySelectorAll("section")).forEach(function(b){q()?a(b,b):a(b,c)})}),_b.parallaxBackgroundImage?(dc.background.style.backgroundImage='url("'+_b.parallaxBackgroundImage+'")',dc.background.style.backgroundSize=_b.parallaxBackgroundSize,setTimeout(function(){dc.wrapper.classList.add("has-parallax-background")},1)):(dc.background.style.backgroundImage="",dc.wrapper.classList.remove("has-parallax-background"))}function h(a){var b=document.querySelectorAll(Xb).length;if(dc.wrapper.classList.remove(_b.transition),"object"==typeof a&&k(_b,a),ec.transforms3d===!1&&(_b.transition="linear"),dc.wrapper.classList.add(_b.transition),dc.wrapper.setAttribute("data-transition-speed",_b.transitionSpeed),dc.wrapper.setAttribute("data-background-transition",_b.backgroundTransition),dc.controls.style.display=_b.controls?"block":"none",dc.progress.style.display=_b.progress?"block":"none",_b.rtl?dc.wrapper.classList.add("rtl"):dc.wrapper.classList.remove("rtl"),_b.center?dc.wrapper.classList.add("center"):dc.wrapper.classList.remove("center"),_b.mouseWheel?(document.addEventListener("DOMMouseScroll",Bb,!1),document.addEventListener("mousewheel",Bb,!1)):(document.removeEventListener("DOMMouseScroll",Bb,!1),document.removeEventListener("mousewheel",Bb,!1)),_b.rollingLinks?u():v(),_b.previewLinks?w():(x(),w("[data-preview-link]")),b>1&&_b.autoSlide&&_b.autoSlideStoppable&&ec.canvas&&ec.requestAnimationFrame?(Wb=new Pb(dc.wrapper,function(){return Math.min(Math.max((Date.now()-mc)/kc,0),1)}),Wb.on("click",Ob),nc=!1):Wb&&(Wb.destroy(),Wb=null),_b.theme&&dc.theme){var c=dc.theme.getAttribute("href"),d=/[^\/]*?(?=\.css)/,e=c.match(d)[0];_b.theme!==e&&(c=c.replace(d,_b.theme),dc.theme.setAttribute("href",c))}P()}function i(){if(jc=!0,window.addEventListener("hashchange",Jb,!1),window.addEventListener("resize",Kb,!1),_b.touch&&(dc.wrapper.addEventListener("touchstart",vb,!1),dc.wrapper.addEventListener("touchmove",wb,!1),dc.wrapper.addEventListener("touchend",xb,!1),window.navigator.msPointerEnabled&&(dc.wrapper.addEventListener("MSPointerDown",yb,!1),dc.wrapper.addEventListener("MSPointerMove",zb,!1),dc.wrapper.addEventListener("MSPointerUp",Ab,!1))),_b.keyboard&&document.addEventListener("keydown",ub,!1),_b.progress&&dc.progress&&dc.progress.addEventListener("click",Cb,!1),_b.focusBodyOnPageVisiblityChange){var a;"hidden"in document?a="visibilitychange":"msHidden"in document?a="msvisibilitychange":"webkitHidden"in document&&(a="webkitvisibilitychange"),a&&document.addEventListener(a,Lb,!1)}["touchstart","click"].forEach(function(a){dc.controlsLeft.forEach(function(b){b.addEventListener(a,Db,!1)}),dc.controlsRight.forEach(function(b){b.addEventListener(a,Eb,!1)}),dc.controlsUp.forEach(function(b){b.addEventListener(a,Fb,!1)}),dc.controlsDown.forEach(function(b){b.addEventListener(a,Gb,!1)}),dc.controlsPrev.forEach(function(b){b.addEventListener(a,Hb,!1)}),dc.controlsNext.forEach(function(b){b.addEventListener(a,Ib,!1)})})}function j(){jc=!1,document.removeEventListener("keydown",ub,!1),window.removeEventListener("hashchange",Jb,!1),window.removeEventListener("resize",Kb,!1),dc.wrapper.removeEventListener("touchstart",vb,!1),dc.wrapper.removeEventListener("touchmove",wb,!1),dc.wrapper.removeEventListener("touchend",xb,!1),window.navigator.msPointerEnabled&&(dc.wrapper.removeEventListener("MSPointerDown",yb,!1),dc.wrapper.removeEventListener("MSPointerMove",zb,!1),dc.wrapper.removeEventListener("MSPointerUp",Ab,!1)),_b.progress&&dc.progress&&dc.progress.removeEventListener("click",Cb,!1),["touchstart","click"].forEach(function(a){dc.controlsLeft.forEach(function(b){b.removeEventListener(a,Db,!1)}),dc.controlsRight.forEach(function(b){b.removeEventListener(a,Eb,!1)}),dc.controlsUp.forEach(function(b){b.removeEventListener(a,Fb,!1)}),dc.controlsDown.forEach(function(b){b.removeEventListener(a,Gb,!1)}),dc.controlsPrev.forEach(function(b){b.removeEventListener(a,Hb,!1)}),dc.controlsNext.forEach(function(b){b.removeEventListener(a,Ib,!1)})})}function k(a,b){for(var c in b)a[c]=b[c]}function l(a){return Array.prototype.slice.call(a)}function m(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function n(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function o(a){var b=0;if(a){var c=0;l(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function p(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;l(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function q(){return/print-pdf/gi.test(window.location.search)}function r(){_b.hideAddressBar&&Vb&&(window.addEventListener("load",s,!1),window.addEventListener("orientationchange",s,!1))}function s(){setTimeout(function(){window.scrollTo(0,1)},10)}function t(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),k(c,b),dc.wrapper.dispatchEvent(c)}function u(){if(ec.transforms3d&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Xb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function v(){for(var a=document.querySelectorAll(Xb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function w(a){var b=l(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Nb,!1)})}function x(){var a=l(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Nb,!1)})}function y(a){z(),dc.preview=document.createElement("div"),dc.preview.classList.add("preview-link-overlay"),dc.wrapper.appendChild(dc.preview),dc.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),dc.preview.querySelector("iframe").addEventListener("load",function(){dc.preview.classList.add("loaded")},!1),dc.preview.querySelector(".close").addEventListener("click",function(a){z(),a.preventDefault()},!1),dc.preview.querySelector(".external").addEventListener("click",function(){z()},!1),setTimeout(function(){dc.preview.classList.add("visible")},1)}function z(){dc.preview&&(dc.preview.setAttribute("src",""),dc.preview.parentNode.removeChild(dc.preview),dc.preview=null)}function A(){if(dc.wrapper&&!q()){var a=dc.wrapper.offsetWidth,b=dc.wrapper.offsetHeight;a-=b*_b.margin,b-=b*_b.margin;var c=_b.width,d=_b.height,e=20;B(_b.width,_b.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),dc.slides.style.width=c+"px",dc.slides.style.height=d+"px",cc=Math.min(a/c,b/d),cc=Math.max(cc,_b.minScale),cc=Math.min(cc,_b.maxScale),"undefined"==typeof dc.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?n(dc.slides,"translate(-50%, -50%) scale("+cc+") translate(50%, 50%)"):dc.slides.style.zoom=cc;for(var f=l(document.querySelectorAll(Xb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=_b.center||i.classList.contains("center")?i.classList.contains("stack")?0:Math.max(-(o(i)/2)-e,-d/2)+"px":"")}U(),Y()}}function B(a,b,c){l(dc.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=p(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function C(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function D(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function E(){if(_b.overview){kb();var a=dc.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;dc.wrapper.classList.add("overview"),dc.wrapper.classList.remove("overview-deactivating"),clearTimeout(hc),clearTimeout(ic),hc=setTimeout(function(){for(var c=document.querySelectorAll(Yb),d=0,e=c.length;e>d;d++){var f=c[d],g=_b.rtl?-105:105;if(f.setAttribute("data-index-h",d),n(f,"translateZ(-"+b+"px) translate("+(d-Qb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Qb?Rb:D(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),n(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Mb,!0)}else f.addEventListener("click",Mb,!0)}T(),A(),a||t("overviewshown",{indexh:Qb,indexv:Rb,currentSlide:Tb})},10)}}function F(){_b.overview&&(clearTimeout(hc),clearTimeout(ic),dc.wrapper.classList.remove("overview"),dc.wrapper.classList.add("overview-deactivating"),ic=setTimeout(function(){dc.wrapper.classList.remove("overview-deactivating")},1),l(document.querySelectorAll(Xb)).forEach(function(a){n(a,""),a.removeEventListener("click",Mb,!0)}),O(Qb,Rb),jb(),t("overviewhidden",{indexh:Qb,indexv:Rb,currentSlide:Tb}))}function G(a){"boolean"==typeof a?a?E():F():H()?F():E()}function H(){return dc.wrapper.classList.contains("overview")}function I(a){return a=a?a:Tb,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function J(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function K(){var a=dc.wrapper.classList.contains("paused");kb(),dc.wrapper.classList.add("paused"),a===!1&&t("paused")}function L(){var a=dc.wrapper.classList.contains("paused");dc.wrapper.classList.remove("paused"),jb(),a&&t("resumed")}function M(){N()?L():K()}function N(){return dc.wrapper.classList.contains("paused")}function O(a,b,c,d){Sb=Tb;var e=document.querySelectorAll(Yb);void 0===b&&(b=D(e[a])),Sb&&Sb.parentNode&&Sb.parentNode.classList.contains("stack")&&C(Sb.parentNode,Rb);var f=bc.concat();bc.length=0;var g=Qb||0,h=Rb||0;Qb=S(Yb,void 0===a?Qb:a),Rb=S(Zb,void 0===b?Rb:b),T(),A();a:for(var i=0,j=bc.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===bc[i]){f.splice(k,1);continue a}document.documentElement.classList.add(bc[i]),t(bc[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());H()&&E();var m=e[Qb],n=m.querySelectorAll("section");Tb=n[Rb]||m,"undefined"!=typeof c&&gb(c);var o=Qb!==g||Rb!==h;o?t("slidechanged",{indexh:Qb,indexv:Rb,previousSlide:Sb,currentSlide:Tb,origin:d}):Sb=null,Sb&&(Sb.classList.remove("present"),document.querySelector($b).classList.contains("present")&&setTimeout(function(){var a,b=l(document.querySelectorAll(Yb+".stack"));for(a in b)b[a]&&C(b[a],0)},0)),o&&(ab(Sb),_(Tb)),W(),U(),X(),Y(),V(),db(),jb()}function P(){j(),i(),A(),kc=_b.autoSlide,jb(),g(),R(),W(),U(),X(!0),V()}function Q(){var a=l(document.querySelectorAll(Yb));a.forEach(function(a){var b=l(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&(a.classList.remove("present"),a.classList.remove("past"),a.classList.add("future"))})})}function R(){var a=l(document.querySelectorAll(Yb));a.forEach(function(a){var b=l(a.querySelectorAll("section"));b.forEach(function(a){fb(a.querySelectorAll(".fragment"))}),0===b.length&&fb(a.querySelectorAll(".fragment"))})}function S(a,b){var c=l(document.querySelectorAll(a)),d=c.length;if(d){_b.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=_b.rtl&&!I(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e){f.classList.add(g?"future":"past");for(var h=l(f.querySelectorAll(".fragment"));h.length;){var i=h.pop();i.classList.add("visible"),i.classList.remove("current-fragment")}}else if(e>b){f.classList.add(g?"past":"future");for(var j=l(f.querySelectorAll(".fragment.visible"));j.length;){var k=j.pop();k.classList.remove("visible"),k.classList.remove("current-fragment")}}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var m=c[b].getAttribute("data-state");m&&(bc=bc.concat(m.split(" ")))}else b=0;return b}function T(){var a,b,c=l(document.querySelectorAll(Yb)),d=c.length;if(d){var e=H()?10:_b.viewDistance;Vb&&(e=H()?6:1);for(var f=0;d>f;f++){var g=c[f],h=l(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Qb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=D(g),k=0;i>k;k++){var m=h[k];b=f===Qb?Math.abs(Rb-k):Math.abs(k-j),m.style.display=a+b>e?"none":"block"}}}}function U(){if(_b.progress&&dc.progress){var a=l(document.querySelectorAll(Yb)),b=document.querySelectorAll(Xb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=l(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}dc.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){if(_b.slideNumber&&dc.slideNumber){var a=Qb;Rb>0&&(a+=" - "+Rb),dc.slideNumber.innerHTML=a}}function W(){var a=Z(),b=$();dc.controlsLeft.concat(dc.controlsRight).concat(dc.controlsUp).concat(dc.controlsDown).concat(dc.controlsPrev).concat(dc.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&dc.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&dc.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&dc.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&dc.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&dc.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&dc.controlsNext.forEach(function(a){a.classList.add("enabled")}),Tb&&(b.prev&&dc.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),I(Tb)?(b.prev&&dc.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&dc.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function X(a){var b=null,c=_b.rtl?"future":"past",d=_b.rtl?"past":"future";if(l(dc.background.childNodes).forEach(function(e,f){Qb>f?e.className="slide-background "+c:f>Qb?e.className="slide-background "+d:(e.className="slide-background present",b=e),(a||f===Qb)&&l(e.childNodes).forEach(function(a,c){Rb>c?a.className="slide-background past":c>Rb?a.className="slide-background future":(a.className="slide-background present",f===Qb&&(b=a))})}),b){var e=Ub?Ub.getAttribute("data-background-hash"):null,f=b.getAttribute("data-background-hash");f&&f===e&&b!==Ub&&dc.background.classList.add("no-transition"),Ub=b}setTimeout(function(){dc.background.classList.remove("no-transition")},1)}function Y(){if(_b.parallaxBackgroundImage){var a,b,c=document.querySelectorAll(Yb),d=document.querySelectorAll(Zb),e=dc.background.style.backgroundSize.split(" ");1===e.length?a=b=parseInt(e[0],10):(a=parseInt(e[0],10),b=parseInt(e[1],10));var f=dc.background.offsetWidth,g=c.length,h=-(a-f)/(g-1)*Qb,i=dc.background.offsetHeight,j=d.length,k=j>0?-(b-i)/(j-1)*Rb:0;dc.background.style.backgroundPosition=h+"px "+k+"px"}}function Z(){var a=document.querySelectorAll(Yb),b=document.querySelectorAll(Zb),c={left:Qb>0||_b.loop,right:Qb<a.length-1||_b.loop,up:Rb>0,down:Rb<b.length-1};if(_b.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function $(){if(Tb&&_b.fragments){var a=Tb.querySelectorAll(".fragment"),b=Tb.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function _(a){a&&!bb()&&(l(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),l(a.querySelectorAll("iframe")).forEach(function(a){a.contentWindow.postMessage("slide:start","*")}),l(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function ab(a){a&&(l(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),l(a.querySelectorAll("iframe")).forEach(function(a){a.contentWindow.postMessage("slide:stop","*")}),l(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function bb(){return!!window.location.search.match(/receiver/gi)}function cb(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);O(e.h,e.v)}else O(Qb||0,Rb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Qb||g!==Rb)&&O(f,g)}}function db(a){if(_b.history)if(clearTimeout(gc),"number"==typeof a)gc=setTimeout(db,a);else{var b="/";Tb&&"string"==typeof Tb.getAttribute("id")?b="/"+Tb.getAttribute("id"):((Qb>0||Rb>0)&&(b+=Qb),Rb>0&&(b+="/"+Rb)),window.location.hash=b}}function eb(a){var b,c=Qb,d=Rb;if(a){var e=I(a),f=e?a.parentNode:a,g=l(document.querySelectorAll(Yb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(l(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Tb){var h=Tb.querySelectorAll(".fragment").length>0;if(h){var i=Tb.querySelectorAll(".fragment.visible");b=i.length-1}}return{h:c,v:d,f:b}}function fb(a){a=l(a);var b=[],c=[],d=[];a.forEach(function(a){if(a.hasAttribute("data-fragment-index")){var d=parseInt(a.getAttribute("data-fragment-index"),10);b[d]||(b[d]=[]),b[d].push(a)}else c.push([a])}),b=b.concat(c);var e=0;return b.forEach(function(a){a.forEach(function(a){d.push(a),a.setAttribute("data-fragment-index",e)}),e++}),d}function gb(a,b){if(Tb&&_b.fragments){var c=fb(Tb.querySelectorAll(".fragment"));if(c.length){if("number"!=typeof a){var d=fb(Tb.querySelectorAll(".fragment.visible")).pop();a=d?parseInt(d.getAttribute("data-fragment-index")||0,10):-1}"number"==typeof b&&(a+=b);var e=[],f=[];return l(c).forEach(function(b,c){b.hasAttribute("data-fragment-index")&&(c=parseInt(b.getAttribute("data-fragment-index"),10)),a>=c?(b.classList.contains("visible")||e.push(b),b.classList.add("visible"),b.classList.remove("current-fragment"),c===a&&b.classList.add("current-fragment")):(b.classList.contains("visible")&&f.push(b),b.classList.remove("visible"),b.classList.remove("current-fragment"))}),f.length&&t("fragmenthidden",{fragment:f[0],fragments:f}),e.length&&t("fragmentshown",{fragment:e[0],fragments:e}),W(),!(!e.length&&!f.length)}}return!1}function hb(){return gb(null,1)}function ib(){return gb(null,-1)}function jb(){if(kb(),Tb){var a=Tb.parentNode?Tb.parentNode.getAttribute("data-autoslide"):null,b=Tb.getAttribute("data-autoslide");kc=b?parseInt(b,10):a?parseInt(a,10):_b.autoSlide,l(Tb.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&kc&&1e3*a.duration>kc&&(kc=1e3*a.duration+1e3)}),!kc||nc||N()||H()||Reveal.isLastSlide()&&_b.loop!==!0||(lc=setTimeout(sb,kc),mc=Date.now()),Wb&&Wb.setPlaying(-1!==lc)}}function kb(){clearTimeout(lc),lc=-1}function lb(){nc=!0,clearTimeout(lc),Wb&&Wb.setPlaying(!1)}function mb(){nc=!1,jb()}function nb(){_b.rtl?(H()||hb()===!1)&&Z().left&&O(Qb+1):(H()||ib()===!1)&&Z().left&&O(Qb-1)}function ob(){_b.rtl?(H()||ib()===!1)&&Z().right&&O(Qb-1):(H()||hb()===!1)&&Z().right&&O(Qb+1)}function pb(){(H()||ib()===!1)&&Z().up&&O(Qb,Rb-1)}function qb(){(H()||hb()===!1)&&Z().down&&O(Qb,Rb+1)}function rb(){if(ib()===!1)if(Z().up)pb();else{var a=document.querySelector(Yb+".past:nth-child("+Qb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Qb-1;O(c,b)}}}function sb(){hb()===!1&&(Z().down?qb():ob()),jb()}function tb(){_b.autoSlideStoppable&&lb()}function ub(a){tb(a),document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(N()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof _b.keyboard)for(var d in _b.keyboard)if(parseInt(d,10)===a.keyCode){var e=_b.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:rb();break;case 78:case 34:sb();break;case 72:case 37:nb();break;case 76:case 39:ob();break;case 75:case 38:pb();break;case 74:case 40:qb();break;case 36:O(0);break;case 35:O(Number.MAX_VALUE);break;case 32:H()?F():a.shiftKey?rb():sb();break;case 13:H()?F():c=!1;break;case 66:case 190:case 191:M();break;case 70:J();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!ec.transforms3d||(dc.preview?z():G(),a.preventDefault()),jb()}}function vb(a){oc.startX=a.touches[0].clientX,oc.startY=a.touches[0].clientY,oc.startCount=a.touches.length,2===a.touches.length&&_b.overview&&(oc.startSpan=m({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:oc.startX,y:oc.startY}))}function wb(a){if(oc.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{tb(a);var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===oc.startCount&&_b.overview){var d=m({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:oc.startX,y:oc.startY});Math.abs(oc.startSpan-d)>oc.threshold&&(oc.captured=!0,d<oc.startSpan?E():F()),a.preventDefault()}else if(1===a.touches.length&&2!==oc.startCount){var e=b-oc.startX,f=c-oc.startY;e>oc.threshold&&Math.abs(e)>Math.abs(f)?(oc.captured=!0,nb()):e<-oc.threshold&&Math.abs(e)>Math.abs(f)?(oc.captured=!0,ob()):f>oc.threshold?(oc.captured=!0,pb()):f<-oc.threshold&&(oc.captured=!0,qb()),_b.embedded?(oc.captured||I(Tb))&&a.preventDefault():a.preventDefault()}}}function xb(){oc.captured=!1}function yb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],vb(a))}function zb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],wb(a))}function Ab(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],xb(a))}function Bb(a){if(Date.now()-fc>600){fc=Date.now();var b=a.detail||-a.wheelDelta;b>0?sb():rb()}}function Cb(a){tb(a),a.preventDefault();var b=l(document.querySelectorAll(Yb)).length,c=Math.floor(a.clientX/dc.wrapper.offsetWidth*b);O(c)}function Db(a){a.preventDefault(),tb(),nb()}function Eb(a){a.preventDefault(),tb(),ob()}function Fb(a){a.preventDefault(),tb(),pb()}function Gb(a){a.preventDefault(),tb(),qb()}function Hb(a){a.preventDefault(),tb(),rb()}function Ib(a){a.preventDefault(),tb(),sb()}function Jb(){cb()}function Kb(){A()}function Lb(){var a=document.webkitHidden||document.msHidden||document.hidden;a===!1&&document.activeElement!==document.body&&(document.activeElement.blur(),document.body.focus())}function Mb(a){if(jc&&H()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(F(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);O(c,d)}}}function Nb(a){var b=a.target.getAttribute("href");b&&(y(b),a.preventDefault())}function Ob(){Reveal.isLastSlide()&&_b.loop===!1?(O(0,0),mb()):nc?mb():lb()}function Pb(a,b){this.diameter=50,this.thickness=3,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=a,this.progressCheck=b,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}var Qb,Rb,Sb,Tb,Ub,Vb,Wb,Xb=".reveal .slides section",Yb=".reveal .slides>section",Zb=".reveal .slides>section.present>section",$b=".reveal .slides>section:first-of-type",_b={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,slideNumber:!1,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,autoSlideStoppable:!0,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,focusBodyOnPageVisiblityChange:!0,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",parallaxBackgroundImage:"",parallaxBackgroundSize:"",viewDistance:3,dependencies:[]},ac=!1,bc=[],cc=1,dc={},ec={},fc=0,gc=0,hc=0,ic=0,jc=!1,kc=0,lc=0,mc=-1,nc=!1,oc={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return Pb.prototype.setPlaying=function(a){var b=this.playing;this.playing=a,!b&&this.playing?this.animate():this.render()},Pb.prototype.animate=function(){var a=this.progress;this.progress=this.progressCheck(),a>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&ec.requestAnimationFrameMethod.call(window,this.animate.bind(this))},Pb.prototype.render=function(){var a=this.playing?this.progress:0,b=this.diameter/2-this.thickness,c=this.diameter/2,d=this.diameter/2,e=14;this.progressOffset+=.1*(1-this.progressOffset);var f=-Math.PI/2+a*2*Math.PI,g=-Math.PI/2+this.progressOffset*2*Math.PI;this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(c,d,b+2,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(c,d,b,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#666",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(c,d,b,g,f,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(c-e/2,d-e/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,e/2-2,e),this.context.fillRect(e/2+2,0,e/2-2,e)):(this.context.beginPath(),this.context.translate(2,0),this.context.moveTo(0,0),this.context.lineTo(e-2,e/2),this.context.lineTo(0,e),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()},Pb.prototype.on=function(a,b){this.canvas.addEventListener(a,b,!1)},Pb.prototype.off=function(a,b){this.canvas.removeEventListener(a,b,!1)},Pb.prototype.destroy=function(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)},{initialize:a,configure:h,sync:P,slide:O,left:nb,right:ob,up:pb,down:qb,prev:rb,next:sb,navigateFragment:gb,prevFragment:ib,nextFragment:hb,navigateTo:O,navigateLeft:nb,navigateRight:ob,navigateUp:pb,navigateDown:qb,navigatePrev:rb,navigateNext:sb,layout:A,availableRoutes:Z,availableFragments:$,toggleOverview:G,togglePause:M,isOverview:H,isPaused:N,addEventListeners:i,removeEventListeners:j,getIndices:eb,getSlide:function(a,b){var c=document.querySelectorAll(Yb)[a],d=c&&c.querySelectorAll("section");
-return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Sb},getCurrentSlide:function(){return Tb},getScale:function(){return cc},getConfig:function(){return _b},getQueryHash:function(){var a={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()});for(var b in a){var c=a[b];a[b]=unescape(c),"null"===c?a[b]=null:"true"===c?a[b]=!0:"false"===c?a[b]=!1:c.match(/^\d+$/)&&(a[b]=parseFloat(c))}return a},isFirstSlide:function(){return null==document.querySelector(Xb+".past")?!0:!1},isLastSlide:function(){return Tb?Tb.nextElementSibling?!1:I(Tb)&&Tb.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return ac},addEventListener:function(a,b,c){"addEventListener"in window&&(dc.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(dc.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}();
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/css/zenburn.css b/docs/slides/BOS14/_support/reveal.js/lib/css/zenburn.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/css/zenburn.css
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-
-Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
-based on dark.css by Ivan Sagalaev
-
-*/
-
-pre code {
-  display: block; padding: 0.5em;
-  background: #3F3F3F;
-  color: #DCDCDC;
-}
-
-pre .keyword,
-pre .tag,
-pre .css .class,
-pre .css .id,
-pre .lisp .title,
-pre .nginx .title,
-pre .request,
-pre .status,
-pre .clojure .attribute {
-  color: #E3CEAB;
-}
-
-pre .django .template_tag,
-pre .django .variable,
-pre .django .filter .argument {
-  color: #DCDCDC;
-}
-
-pre .number,
-pre .date {
-  color: #8CD0D3;
-}
-
-pre .dos .envvar,
-pre .dos .stream,
-pre .variable,
-pre .apache .sqbracket {
-  color: #EFDCBC;
-}
-
-pre .dos .flow,
-pre .diff .change,
-pre .python .exception,
-pre .python .built_in,
-pre .literal,
-pre .tex .special {
-  color: #EFEFAF;
-}
-
-pre .diff .chunk,
-pre .subst {
-  color: #8F8F8F;
-}
-
-pre .dos .keyword,
-pre .python .decorator,
-pre .title,
-pre .haskell .type,
-pre .diff .header,
-pre .ruby .class .parent,
-pre .apache .tag,
-pre .nginx .built_in,
-pre .tex .command,
-pre .prompt {
-    color: #efef8f;
-}
-
-pre .dos .winutils,
-pre .ruby .symbol,
-pre .ruby .symbol .string,
-pre .ruby .string {
-  color: #DCA3A3;
-}
-
-pre .diff .deletion,
-pre .string,
-pre .tag .value,
-pre .preprocessor,
-pre .built_in,
-pre .sql .aggregate,
-pre .javadoc,
-pre .smalltalk .class,
-pre .smalltalk .localvars,
-pre .smalltalk .array,
-pre .css .rules .value,
-pre .attr_selector,
-pre .pseudo,
-pre .apache .cbracket,
-pre .tex .formula {
-  color: #CC9393;
-}
-
-pre .shebang,
-pre .diff .addition,
-pre .comment,
-pre .java .annotation,
-pre .template_comment,
-pre .pi,
-pre .doctype {
-  color: #7F9F7F;
-}
-
-pre .coffeescript .javascript,
-pre .javascript .xml,
-pre .tex .formula,
-pre .xml .javascript,
-pre .xml .vbscript,
-pre .xml .css,
-pre .xml .cdata {
-  opacity: 0.5;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.eot b/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.eot
deleted file mode 100644
Binary files a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.eot and /dev/null differ
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.svg b/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.svg
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="LeagueGothicRegular" horiz-adv-x="724" >
-<font-face units-per-em="2048" ascent="1505" descent="-543" />
-<missing-glyph horiz-adv-x="315" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="682" />
-<glyph unicode=" "  horiz-adv-x="315" />
-<glyph unicode="&#x09;" horiz-adv-x="315" />
-<glyph unicode="&#xa0;" horiz-adv-x="315" />
-<glyph unicode="!" horiz-adv-x="387" d="M74 1505h239l-55 -1099h-129zM86 0v227h215v-227h-215z" />
-<glyph unicode="&#x22;" horiz-adv-x="329" d="M57 1505h215l-30 -551h-154z" />
-<glyph unicode="#" horiz-adv-x="1232" d="M49 438l27 195h198l37 258h-196l26 194h197l57 420h197l-57 -420h260l57 420h197l-58 -420h193l-27 -194h-192l-37 -258h190l-26 -195h-191l-59 -438h-197l60 438h-261l-59 -438h-197l60 438h-199zM471 633h260l37 258h-260z" />
-<glyph unicode="$" horiz-adv-x="692" d="M37 358l192 13q12 -186 129 -187q88 0 93 185q0 74 -61 175q-21 36 -34 53l-40 55q-28 38 -65.5 90t-70.5 101.5t-70.5 141.5t-37.5 170q4 293 215 342v131h123v-125q201 -23 235 -282l-192 -25q-14 129 -93 125q-80 -2 -84 -162q0 -102 94 -227l41 -59q30 -42 37 -52 t33 -48l37 -52q41 -57 68 -109l26 -55q43 -94 43 -186q-4 -338 -245 -369v-217h-123v221q-236 41 -250 352z" />
-<glyph unicode="%" horiz-adv-x="1001" d="M55 911v437q0 110 82 156q33 18 90.5 18t97.5 -44t44 -87l4 -43v-437q0 -107 -81 -157q-32 -19 -77 -19q-129 0 -156 135zM158 0l553 1505h131l-547 -1505h-137zM178 911q-4 -55 37 -55q16 0 25.5 14.5t9.5 26.5v451q2 55 -35 55q-18 0 -27.5 -13.5t-9.5 -27.5v-451z M631 158v436q0 108 81 156q33 20 79 20q125 0 153 -135l4 -41v-436q0 -110 -80 -156q-32 -18 -90.5 -18t-98.5 43t-44 88zM754 158q-4 -57 37 -58q37 0 34 58v436q2 55 -34 55q-18 0 -27.5 -13t-9.5 -28v-450z" />
-<glyph unicode="&#x26;" horiz-adv-x="854" d="M49 304q0 126 44 225.5t126 222.5q-106 225 -106 442v18q0 94 47 180q70 130 223 130q203 0 252 -215q14 -61 12 -113q0 -162 -205 -434q76 -174 148 -285q33 96 47 211l176 -33q-16 -213 -92 -358q55 -63 92 -76v-235q-23 0 -86 37.5t-123 101.5q-123 -139 -252 -139 t-216 97t-87 223zM263 325.5q1 -65.5 28.5 -107.5t78.5 -42t117 86q-88 139 -174 295q-18 -30 -34.5 -98t-15.5 -133.5zM305 1194q0 -111 55 -246q101 156 101 252q-2 2 0 15.5t-2 36t-11 42.5q-19 52 -61.5 52t-62 -38t-19.5 -75v-39z" />
-<glyph unicode="'" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="(" horiz-adv-x="561" d="M66 645q0 143 29.5 292.5t73.5 261.5q92 235 159 343l30 47l162 -84q-38 -53 -86.5 -148t-82.5 -189.5t-61.5 -238t-27.5 -284.5t26.5 -282.5t64.5 -240.5q80 -207 141 -296l26 -39l-162 -84q-41 61 -96 173t-94 217.5t-70.5 257t-31.5 294.5z" />
-<glyph unicode=")" horiz-adv-x="561" d="M41 -213q36 50 85.5 147t83.5 190t61.5 236.5t27.5 284.5t-26.5 282.5t-64.5 240.5q-78 205 -140 298l-27 39l162 84q41 -61 96 -173.5t94 -217t71 -257.5t32 -296t-30 -292.5t-74 -260.5q-92 -233 -159 -342l-30 -47z" />
-<glyph unicode="*" horiz-adv-x="677" d="M74 1251l43 148l164 -70l-19 176h154l-19 -176l164 70l43 -148l-172 -34l115 -138l-131 -80l-78 152l-76 -152l-131 80l115 138z" />
-<glyph unicode="+" horiz-adv-x="1060" d="M74 649v172h370v346h172v-346h371v-172h-371v-346h-172v346h-370z" />
-<glyph unicode="," horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="-" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="." horiz-adv-x="321" d="M53 0v227h215v-227h-215z" />
-<glyph unicode="/" horiz-adv-x="720" d="M8 -147l543 1652h162l-537 -1652h-168z" />
-<glyph unicode="0" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="1" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="2" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="3" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="4" horiz-adv-x="684" d="M25 328v194l323 983h221v-983h103v-194h-103v-328h-202v328h-342zM213 522h154v516h-13z" />
-<glyph unicode="5" horiz-adv-x="704" d="M74 438h221v-59q0 -115 14.5 -159t52 -44t53 45t15.5 156v336q0 111 -70 110q-33 0 -59.5 -40t-26.5 -70h-186v792h535v-219h-344v-313q74 55 127 51q78 0 133 -40t77 -100q35 -98 35 -171v-336q0 -393 -289 -393q-78 0 -133 29.5t-84.5 71.5t-46.5 109q-24 98 -24 244z " />
-<glyph unicode="6" horiz-adv-x="700" d="M66 309v856q0 356 288.5 356.5t288.5 -356.5v-94h-221q0 162 -11.5 210t-53.5 48t-56 -37t-14 -127v-268q59 37 124.5 37t119 -36t75.5 -93q37 -92 37 -189v-307q0 -90 -42 -187q-26 -61 -89 -99.5t-157.5 -38.5t-158 38.5t-88.5 99.5q-42 98 -42 187zM287 244 q0 -20 17.5 -44t49 -24t50 24.5t18.5 43.5v450q0 18 -18.5 43t-49 25t-48 -20.5t-19.5 -41.5v-456z" />
-<glyph unicode="7" horiz-adv-x="589" d="M8 1286v219h557v-221l-221 -1284h-229l225 1286h-332z" />
-<glyph unicode="8" horiz-adv-x="696" d="M53 322v176q0 188 115 297q-102 102 -102 276v127q0 213 147 293q57 31 135 31t135.5 -31t84 -71t42.5 -93q21 -66 21 -129v-127q0 -174 -103 -276q115 -109 115 -297v-176q0 -222 -153 -306q-60 -32 -142 -32t-141.5 32.5t-88 73.5t-44.5 96q-21 69 -21 136zM269 422 q1 -139 16.5 -187.5t57.5 -48.5t59.5 30t21.5 71t4 158t-13.5 174t-66.5 57t-66.5 -57.5t-12.5 -196.5zM284 1116q-1 -123 11 -173t53 -50t53.5 50t12.5 170t-12.5 167t-51.5 47t-52 -44t-14 -167z" />
-<glyph unicode="9" horiz-adv-x="700" d="M57 340v94h222q0 -162 11 -210t53 -48t56.5 37t14.5 127v283q-59 -37 -125 -37t-119 35.5t-76 92.5q-37 96 -37 189v293q0 87 43 188q25 60 88.5 99t157.5 39t157.5 -39t88.5 -99q43 -101 43 -188v-856q0 -356 -289 -356t-289 356zM279 825q0 -18 18 -42.5t49 -24.5 t48.5 20.5t19.5 40.5v443q0 20 -17.5 43.5t-49.5 23.5t-50 -24.5t-18 -42.5v-437z" />
-<glyph unicode=":" horiz-adv-x="362" d="M74 0v227h215v-227h-215zM74 893v227h215v-227h-215z" />
-<glyph unicode=";" horiz-adv-x="362" d="M74 0v227h215v-227l-113 -266h-102l71 266h-71zM74 893v227h215v-227h-215z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="=" horiz-adv-x="1058" d="M74 477v172h911v-172h-911zM74 864v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="?" horiz-adv-x="645" d="M25 1260q24 67 78 131q105 128 235 122q82 -2 138 -33.5t82 -81.5q46 -88 46 -170.5t-80 -219.5l-57 -96q-18 -32 -42 -106.5t-24 -143.5v-256h-190v256q0 102 24.5 195t48 140t65.5 118t50 105t-9 67.5t-60 34.5t-78 -48t-49 -98zM199 0h215v227h-215v-227z" />
-<glyph unicode="@" horiz-adv-x="872" d="M66 303v889q0 97 73 200q39 56 117 93t184.5 37t184 -37t116.5 -93q74 -105 74 -200v-793h-164l-20 56q-14 -28 -46 -48t-67 -20q-145 0 -145 172v485q0 170 145 170q71 0 113 -67v45q0 51 -45 104.5t-145.5 53.5t-145.5 -53.5t-45 -104.5v-889q0 -53 44 -103t153.5 -50 t160.5 63l152 -86q-109 -143 -320 -143q-106 0 -184 35.5t-117 90.5q-73 102 -73 193zM535 573q0 -53 48 -53t48 53v455q0 53 -48 53t-48 -53v-455z" />
-<glyph unicode="A" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="B" horiz-adv-x="745" d="M82 0v1505h194q205 0 304.5 -91t99.5 -308q0 -106 -29.5 -175t-107.5 -136q14 -5 47 -38.5t54 -71.5q52 -97 52 -259q0 -414 -342 -426h-272zM303 219q74 0 109 31q55 56 55 211t-63 195q-42 26 -93 26h-8v-463zM303 885q87 0 119 39q45 55 45 138t-14.5 124t-30.5 60.5 t-45 28.5q-35 11 -74 11v-401z" />
-<glyph unicode="C" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175z" />
-<glyph unicode="D" horiz-adv-x="761" d="M82 0v1505h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174zM303 221q117 0 140.5 78t23.5 399v111q0 322 -23.5 398.5t-140.5 76.5v-1063z" />
-<glyph unicode="E" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506z" />
-<glyph unicode="F" horiz-adv-x="616" d="M82 0v1505h526v-227h-305v-395h205v-228h-205v-655h-221z" />
-<glyph unicode="G" horiz-adv-x="737" d="M67 271.5q0 26.5 1 37.5v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-231h-221v231q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-905q0 -46 19.5 -78.5t54 -32.5t53 28t18.5 54l2 29v272h-88v187h309v-750h-131l-26 72 q-70 -88 -172 -88q-203 0 -250 213q-11 48 -11 74.5z" />
-<glyph unicode="H" horiz-adv-x="778" d="M82 0v1505h221v-622h172v622h221v-1505h-221v655h-172v-655h-221z" />
-<glyph unicode="I" horiz-adv-x="385" d="M82 0v1505h221v-1505h-221z" />
-<glyph unicode="J" horiz-adv-x="423" d="M12 -14v217q4 0 12.5 -1t29 2t35.5 12t28.5 34.5t13.5 62.5v1192h221v-1226q0 -137 -74 -216q-74 -78 -223 -78h-4q-19 0 -39 1z" />
-<glyph unicode="K" horiz-adv-x="768" d="M82 0v1505h221v-526h8l195 526h215l-203 -495l230 -1010h-216l-153 655l-6 31h-6l-64 -154v-532h-221z" />
-<glyph unicode="L" horiz-adv-x="604" d="M82 0v1505h221v-1300h293v-205h-514z" />
-<glyph unicode="M" horiz-adv-x="991" d="M82 0v1505h270l131 -688l11 -80h4l10 80l131 688h270v-1505h-204v1010h-13l-149 -1010h-94l-142 946l-8 64h-12v-1010h-205z" />
-<glyph unicode="N" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203z" />
-<glyph unicode="O" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="P" horiz-adv-x="720" d="M82 0v1505h221q166 0 277.5 -105.5t111.5 -345t-111.5 -346t-277.5 -106.5v-602h-221zM303 827q102 0 134 45.5t32 175.5t-33 181t-133 51v-453z" />
-<glyph unicode="Q" horiz-adv-x="729" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -94 -45 -182q33 -43 88 -53v-189q-160 0 -227 117q-55 -18 -125 -18t-130 33.5t-88 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887 q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="R" horiz-adv-x="739" d="M82 0v1505h221q377 0 377 -434q0 -258 -123 -342l141 -729h-221l-115 635h-59v-635h-221zM303 840q117 0 149 98q15 49 15 125t-15.5 125t-45.5 68q-44 30 -103 30v-446z" />
-<glyph unicode="S" horiz-adv-x="702" d="M37 422l217 20q0 -256 104 -256q90 0 91 166q0 59 -32 117.5t-45 79.5l-54 79q-40 58 -77 113t-73.5 117t-68 148.5t-31.5 162.5q0 139 71.5 245t216.5 108h10q88 0 152 -36t94 -100q54 -120 54 -264l-217 -20q0 217 -89 217q-75 -2 -75 -146q0 -59 23 -105 q32 -66 58 -104l197 -296q31 -49 67 -139.5t36 -166.5q0 -378 -306 -378h-2q-229 0 -290 188q-31 99 -31 250z" />
-<glyph unicode="T" horiz-adv-x="647" d="M4 1278v227h639v-227h-209v-1278h-221v1278h-209z" />
-<glyph unicode="U" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175z" />
-<glyph unicode="V" horiz-adv-x="716" d="M18 1505h215l111 -827l8 -64h13l118 891h215l-229 -1505h-221z" />
-<glyph unicode="W" horiz-adv-x="1036" d="M25 1505h204l88 -782l5 -49h16l100 831h160l100 -831h17l92 831h205l-203 -1505h-172l-115 801h-8l-115 -801h-172z" />
-<glyph unicode="X" horiz-adv-x="737" d="M16 0l244 791l-240 714h218l120 -381l7 -18h8l127 399h217l-240 -714l244 -791h-217l-127 449l-4 18h-8l-132 -467h-217z" />
-<glyph unicode="Y" horiz-adv-x="700" d="M14 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641z" />
-<glyph unicode="Z" horiz-adv-x="626" d="M20 0v238l347 1048h-297v219h536v-219l-352 -1067h352v-219h-586z" />
-<glyph unicode="[" horiz-adv-x="538" d="M82 -213v1718h399v-196h-202v-1325h202v-197h-399z" />
-<glyph unicode="\" horiz-adv-x="792" d="M8 1692h162l614 -1872h-168z" />
-<glyph unicode="]" horiz-adv-x="538" d="M57 -16h203v1325h-203v196h400v-1718h-400v197z" />
-<glyph unicode="^" horiz-adv-x="1101" d="M53 809l381 696h234l381 -696h-199l-299 543l-299 -543h-199z" />
-<glyph unicode="_" horiz-adv-x="1210" d="M74 -154h1063v-172h-1063v172z" />
-<glyph unicode="`" horiz-adv-x="1024" d="M293 1489h215l106 -184h-159z" />
-<glyph unicode="a" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="b" horiz-adv-x="686" d="M82 0v1505h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-74h-207zM289 246q0 -29 19.5 -48.5t42 -19.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -21.5t-19.5 -46.5v-628z" />
-<glyph unicode="c" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331z" />
-<glyph unicode="d" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v458h207v-1505h-207v74q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 19.5t19.5 48.5v628q0 25 -19.5 46.5t-42 21.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="e" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="f" horiz-adv-x="475" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-65 0 -65 -175v-5v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="g" horiz-adv-x="700" d="M12 -184q0 94 162 170q-125 35 -125 149q0 45 40 93t89 75q-51 35 -80.5 95.5t-34.5 105.5l-4 43v305q0 35 16.5 91t41 94t79 69t126.5 31q135 0 206 -103q102 102 170 103v-185q-72 0 -120 -24l10 -70v-317q0 -37 -17.5 -90.5t-42 -90t-79 -66.5t-104.5 -30t-62 2 q-29 -25 -29 -46t11 -33.5t42 -20.5t45.5 -10t65.5 -10.5t95 -21.5t89 -41q96 -60 96 -205t-103 -212q-100 -65 -250 -65h-9q-156 2 -240 50t-84 165zM213 -150q0 -77 132 -77h3q59 0 108.5 19t49.5 54t-20.5 52.5t-90.5 29.5l-106 21q-76 -43 -76 -99zM262 509 q0 -17 15.5 -45t44.5 -28q63 6 63 101v307q-2 0 0 10q1 3 1 7q0 8 -3 19q-4 15 -9 30q-11 36 -46 36t-50.5 -25.5t-15.5 -52.5v-359z" />
-<glyph unicode="h" horiz-adv-x="690" d="M82 0v1505h207v-479l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="i" horiz-adv-x="370" d="M82 0v1120h207v-1120h-207zM82 1298v207h207v-207h-207z" />
-<glyph unicode="j" horiz-adv-x="364" d="M-45 -182q29 -8 57 -8q64 0 64 142v1168h207v-1149q0 -186 -51 -266q-23 -35 -71 -62.5t-115 -27.5t-91 12v191zM76 1298v207h207v-207h-207z" />
-<glyph unicode="k" horiz-adv-x="641" d="M82 0v1505h207v-714h10l113 329h186l-149 -364l188 -756h-199l-102 453l-4 16h-10l-33 -82v-387h-207z" />
-<glyph unicode="l" horiz-adv-x="370" d="M82 0v1505h207v-1505h-207z" />
-<glyph unicode="m" horiz-adv-x="1021" d="M82 0v1120h207v-94q2 0 33 30q80 81 139 81q100 0 139 -125q125 125 194.5 125t109.5 -69t40 -150v-918h-194v887q-1 49 -56 49q-41 0 -78 -53v-883h-194v887q0 49 -55 49q-41 0 -78 -53v-883h-207z" />
-<glyph unicode="n" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="o" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="p" horiz-adv-x="686" d="M82 -385v1505h207v-73q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="q" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v73h207v-1505h-207v459q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 21.5t19.5 46.5v628q0 29 -19.5 48.5t-42 19.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="r" horiz-adv-x="503" d="M82 0v1120h207v-125q8 41 58.5 91.5t148.5 50.5v-230q-34 11 -77 11t-86.5 -39t-43.5 -101v-778h-207z" />
-<glyph unicode="s" horiz-adv-x="630" d="M37 326h192q0 -170 97 -170q71 0 71 131q0 78 -129 202q-68 66 -98.5 99t-64 101.5t-33.5 134t12 114.5t39 95q59 100 201 104h11q161 0 211 -105q42 -86 42 -198h-193q0 131 -67 131q-63 -2 -64 -131q0 -33 23.5 -73t45 -62.5t66.5 -65.5q190 -182 191 -342 q0 -123 -64.5 -215t-199.5 -92q-197 0 -260 170q-29 76 -29 172z" />
-<glyph unicode="t" horiz-adv-x="501" d="M20 934v186h105v277h207v-277h141v-186h-141v-557q0 -184 65 -184l76 8v-203q-45 -14 -112 -14t-114.5 28.5t-70 64.5t-34.5 96q-17 79 -17 187v574h-105z" />
-<glyph unicode="u" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5z" />
-<glyph unicode="v" horiz-adv-x="602" d="M16 1120h201l68 -649l8 -72h16l76 721h201l-183 -1120h-204z" />
-<glyph unicode="w" horiz-adv-x="905" d="M20 1120h189l65 -585l9 -64h12l96 649h123l86 -585l10 -64h13l73 649h189l-166 -1120h-172l-80 535l-10 63h-8l-91 -598h-172z" />
-<glyph unicode="x" horiz-adv-x="618" d="M16 0l193 578l-176 542h194l74 -262l6 -31h4l6 31l74 262h195l-176 -542l192 -578h-201l-84 283l-6 30h-4l-6 -30l-84 -283h-201z" />
-<glyph unicode="y" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5z" />
-<glyph unicode="z" horiz-adv-x="532" d="M12 0v168l285 764h-240v188h459v-168l-285 -764h285v-188h-504z" />
-<glyph unicode="{" horiz-adv-x="688" d="M61 453v163q72 0 102 49.5t30 90.5v397q0 223 96 298t342 71v-172q-135 2 -188.5 -38t-53.5 -159v-397q0 -143 -127 -221q127 -82 127 -222v-397q0 -119 53.5 -159t188.5 -38v-172q-246 -4 -342 71t-96 298v397q0 57 -41 97.5t-91 42.5z" />
-<glyph unicode="|" horiz-adv-x="356" d="M82 -512v2204h192v-2204h-192z" />
-<glyph unicode="}" horiz-adv-x="688" d="M57 -281q135 -2 188.5 38t53.5 159v397q0 139 127 222q-127 78 -127 221v397q0 119 -53 159t-189 38v172q246 4 342.5 -71t96.5 -298v-397q0 -63 41 -101.5t90 -38.5v-163q-72 -4 -101.5 -52.5t-29.5 -87.5v-397q0 -223 -96.5 -298t-342.5 -71v172z" />
-<glyph unicode="~" horiz-adv-x="1280" d="M113 1352q35 106 115 200q34 41 94.5 74t121 33t116.5 -18.5t82 -33t83 -51.5q106 -72 174 -71q109 0 178 153l13 29l135 -57q-63 -189 -206 -276q-56 -34 -120 -34q-121 0 -272 101q-115 74 -178.5 74t-113.5 -45.5t-69 -90.5l-18 -45z" />
-<glyph unicode="&#xa1;" horiz-adv-x="387" d="M74 -385l55 1100h129l55 -1100h-239zM86 893v227h215v-227h-215z" />
-<glyph unicode="&#xa2;" horiz-adv-x="636" d="M66 508v489q0 297 208 328v242h123v-244q98 -16 144.5 -88t46.5 -227v-88h-189v135q0 90 -72.5 90t-72.5 -90v-604q0 -90 72 -91q74 0 73 91v155h189v-108q0 -156 -46 -228.5t-145 -89.5v-303h-123v301q-209 31 -208 330z" />
-<glyph unicode="&#xa3;" horiz-adv-x="817" d="M4 63q8 20 23.5 53.5t70 91.5t117.5 68q37 111 37 189t-31 184h-188v137h147l-6 21q-78 254 -78 333t15.5 140t48.5 116q72 122 231 126q190 4 267 -126q65 -108 65 -276h-213q0 201 -115 197q-47 -2 -68.5 -51t-21.5 -139.5t70 -315.5l6 -25h211v-137h-174 q25 -100 24.5 -189t-57.5 -204q16 -8 44 -24q59 -35 89 -35q74 4 82 190l188 -22q-12 -182 -81.5 -281.5t-169.5 -99.5q-51 0 -143.5 51t-127.5 51t-63.5 -25.5t-40.5 -52.5l-12 -24z" />
-<glyph unicode="&#xa5;" horiz-adv-x="720" d="M25 1505h217l110 -481l6 -14h4l7 14l110 481h217l-196 -753h147v-138h-176v-137h176v-137h-176v-340h-221v340h-176v137h176v137h-176v138h147z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1024" d="M272 1305v200h191v-200h-191zM561 1305v200h191v-200h-191z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM627 487v531q0 122 97 174q40 22 95 22 q147 0 182 -147l7 -49v-125h-138v142q0 11 -12 28.5t-37 17.5q-47 -2 -49 -63v-531q0 -63 49 -63q53 2 49 63v125h138v-125q0 -68 -40 -127q-18 -26 -57 -47.5t-108.5 -21.5t-117.5 49t-54 98z" />
-<glyph unicode="&#xaa;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xad;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#xae;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM625 313v879h196q231 0 232 -258 q0 -76 -16.5 -125t-71.5 -96l106 -400h-151l-95 365h-55v-365h-145zM770 805h45q43 0 65.5 21.5t27.5 45t5 61.5t-5 62.5t-27.5 46t-65.5 21.5h-45v-258z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M313 1315v162h398v-162h-398z" />
-<glyph unicode="&#xb2;" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="&#xb3;" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1024" d="M410 1305l106 184h215l-162 -184h-159z" />
-<glyph unicode="&#xb7;" horiz-adv-x="215" d="M0 649v228h215v-228h-215z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1024" d="M426 -111h172v-141l-45 -133h-104l40 133h-63v141z" />
-<glyph unicode="&#xb9;" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="&#xba;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="&#xbf;" horiz-adv-x="645" d="M41 -106q0 82 80 219l57 95q18 32 42 106.5t24 144.5v256h190v-256q0 -102 -24.5 -195.5t-48 -140.5t-65.5 -118t-50 -104.5t9 -67.5t60 -35t78 48.5t49 98.5l179 -84q-24 -66 -78 -132q-104 -126 -236 -122q-163 4 -220 115q-46 90 -46 172zM231 893v227h215v-227h-215z " />
-<glyph unicode="&#xc0;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM141 1823h215l107 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc1;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM293 1638l106 185h215l-161 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc2;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM133 1638l141 185h220l141 -185h-189l-63 72l-61 -72h-189zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc3;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM184 1632v152q49 39 95.5 39t104.5 -18.5t100.5 -19.5t97.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-98 19.5t-102 -33zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc4;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM143 1638v201h191v-201h-191zM307 541h152l-64 475l-6 39h-12zM432 1638v201h191v-201h-191z" />
-<glyph unicode="&#xc5;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM231 1761.5q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM307 541h152l-64 475l-6 39h-12zM309 1761.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50 t-23.5 50t-52.5 21.5t-52.5 -21.5t-23.5 -50z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1099" d="M16 0l420 1505h623v-227h-285v-395h205v-242h-205v-414h285v-227h-506v307h-227l-90 -307h-220zM393 541h160v514h-10z" />
-<glyph unicode="&#xc7;" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM268 -111v-141h64l-41 -133h104l45 133v141h-172z" />
-<glyph unicode="&#xc8;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM111 1823h215l106 -185h-160z" />
-<glyph unicode="&#xc9;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM236 1638l106 185h215l-162 -185h-159z" />
-<glyph unicode="&#xca;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM84 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xcb;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM94 1638v201h191v-201h-191zM383 1638v201h190v-201h-190z" />
-<glyph unicode="&#xcc;" horiz-adv-x="401" d="M-6 1823h215l106 -185h-159zM98 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcd;" horiz-adv-x="401" d="M82 0v1505h221v-1505h-221zM86 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xce;" horiz-adv-x="370" d="M-66 1638l142 185h219l141 -185h-188l-64 72l-61 -72h-189zM74 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcf;" horiz-adv-x="372" d="M-53 1638v201h190v-201h-190zM76 0v1505h221v-1505h-221zM236 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd0;" horiz-adv-x="761" d="M20 655v228h62v622h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174v655h-62zM303 221q117 0 141.5 81t22.5 452q2 371 -22.5 450.5t-141.5 79.5v-401h84v-228h-84v-434z " />
-<glyph unicode="&#xd1;" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203zM207 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39t-102.5 19.5t-100 19.5t-99.5 -33z" />
-<glyph unicode="&#xd2;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM121 1823h215l106 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd3;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM285 1638l106 185h215l-162 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5 t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd4;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM113 1638l141 185h219l141 -185h-188l-64 72l-61 -72h-188zM289 309q0 -46 19.5 -78 t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd5;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM164 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39 t-102.5 19.5t-100 19.5t-99.5 -33zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd6;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM123 1638v201h190v-201h-190zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887zM412 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd8;" d="M59 -20l47 157q-36 74 -36 148l-2 24v887q0 42 17 106t45 107t88.5 78t148 35t153.5 -43l15 47h122l-45 -150q43 -84 43 -155l2 -25v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-150.5 -34.5t-153 43l-15 -47h-129zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v488zM289 727l147 479q-8 100 -74 101q-35 0 -53 -28t-18 -54l-2 -29v-469z" />
-<glyph unicode="&#xd9;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM145 1823h215l107 -185h-160z" />
-<glyph unicode="&#xda;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM307 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xdb;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM125 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xdc;" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175zM135 1638v201h191v-201h-191zM424 1638v201h190v-201h-190z" />
-<glyph unicode="&#xdd;" horiz-adv-x="704" d="M16 1505l226 -864v-641h221v641l225 864h-217l-111 -481l-6 -14h-4l-6 14l-111 481h-217zM254 1638l106 185h215l-161 -185h-160z" />
-<glyph unicode="&#xde;" d="M82 0v1505h219v-241h2q166 0 277.5 -105.5t111.5 -345.5t-111.5 -346.5t-277.5 -106.5v-360h-221zM303 586q102 0 134 45t32 175t-33 181t-133 51v-452z" />
-<glyph unicode="&#xdf;" horiz-adv-x="733" d="M66 0v1235q0 123 70.5 205t206.5 82t204.5 -81t68.5 -197t-88 -181q152 -88 152 -488q0 -362 -87 -475q-46 -59 -102.5 -79.5t-144.5 -20.5v193q45 0 70 25q57 57 57 357q0 316 -57 377q-25 27 -70 27v141q35 0 60.5 33t25.5 84q0 100 -86 100q-74 0 -74 -102v-1235h-206 z" />
-<glyph unicode="&#xe0;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1489h215 l107 -184h-160zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe1;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xe2;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM90 1305 l141 184h220l141 -184h-189l-63 71l-61 -71h-189zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe3;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM143 1305v151 q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe4;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1305v200 h191v-200h-191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM391 1305v200h191v-200h-191z" />
-<glyph unicode="&#xe5;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM188 1421.5 q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM266 1421.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50t-23.5 50t-52.5 21.5t-52.5 -21.5 t-23.5 -50z" />
-<glyph unicode="&#xe6;" horiz-adv-x="989" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t197.5 88q84 0 152 -52q66 51 162 52q199 0 251 -197q14 -51 15 -92v-326h-342v-256q0 -60 38 -88q17 -12 38 -12q70 10 73 113v122h193v-129 q0 -37 -16.5 -93t-41 -95t-80 -69.5t-130.5 -30.5q-158 0 -226 131q-102 -131 -221 -131q-59 0 -112.5 60t-53.5 191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM588 684h149v158q0 48 -19.5 81t-53 33t-53 -28.5t-21.5 -57.5l-2 -28v-158z " />
-<glyph unicode="&#xe7;" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331zM238 -111v-141h63l-41 -133h105l45 133v141h-172z " />
-<glyph unicode="&#xe8;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM102 1489h215l107 -184 h-160zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xe9;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xea;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM80 1305l141 184h219 l142 -184h-189l-63 71l-62 -71h-188zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xeb;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM90 1305v200h191v-200 h-191zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-33 1489h215l107 -184h-160zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M82 0h207v1120h-207v-1120zM82 1305l106 184h215l-161 -184h-160z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-66 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xef;" horiz-adv-x="372" d="M-53 1305v200h190v-200h-190zM82 0v1120h207v-1120h-207zM236 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf0;" horiz-adv-x="673" d="M76 279v579q0 279 172 279q63 0 155 -78q-12 109 -51 203l-82 -72l-55 63l100 88l-45 66l109 100q25 -27 53 -61l94 82l56 -66l-101 -88q125 -201 125 -446v-656q0 -102 -56 -188q-26 -39 -80 -69.5t-129 -30.5t-130 30.5t-80 73.5q-53 91 -53 160zM270 267.5 q-2 -11.5 2 -29t10 -34.5q16 -38 58 -38q70 10 72 113v563q-2 0 0 11t-2 28.5t-10 34.5q-16 40 -60 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207zM147 1305v151q49 39 95.5 39t105 -18.5t97 -19.5t100.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#xf2;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM98 1489h215l107 -184h-160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf3;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5 t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM260 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xf4;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM78 1305l141 184h219l142 -184h-189l-63 71l-62 -71h-188zM258 267.5q-2 -11.5 2 -29 t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf5;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM131 1305v151q49 39 95.5 39t104.5 -18.5t98.5 -19.5t98.5 32v-152q-51 -39 -95 -39 t-102 19.5t-101 19.5t-99 -32zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf6;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM90 1305v200h191v-200h-191zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf8;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t118 32t117.5 -19l21 80h75l-30 -121q88 -84 94 -229v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-120.5 -30.5t-112 16l-20 -78h-80l31 121q-41 39 -64.5 97.5t-25.5 97.5zM258 436l125 486q-18 35 -55 34q-68 -10 -70 -114 v-406zM274 197q17 -31 54 -31q70 10 71 113v403z" />
-<glyph unicode="&#xf9;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM113 1489h215l106 -184h-160z" />
-<glyph unicode="&#xfa;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM274 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfb;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM94 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189z" />
-<glyph unicode="&#xfc;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM106 1305v200h191v-200h-191zM395 1305v200h191v-200h-191z" />
-<glyph unicode="&#xfd;" horiz-adv-x="634" d="M25 1120l190 -1153q0 -68 -36 -123t-97 -61l-49 4v-184q70 -4 92 -4q115 0 192.5 95t94.5 222l198 1204h-202l-82 -688l-4 -57h-9l-4 57l-82 688h-202zM231 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfe;" horiz-adv-x="686" d="M82 -385v1890h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="&#xff;" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5zM78 1305v200h190v-200h-190zM367 1305v200h190v-200h-190z" />
-<glyph unicode="&#x152;" horiz-adv-x="983" d="M68 309v887q0 41 17 101.5t45 100.5t88.5 73.5t143.5 33.5h580v-227h-285v-395h205v-242h-205v-414h285v-227h-580q-84 0 -144 31.5t-88 78.5q-55 91 -60 169zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v901q-6 96 -74 97q-35 0 -53 -28t-18 -54l-2 -29 v-887z" />
-<glyph unicode="&#x153;" horiz-adv-x="995" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t145.5 32t156 -60q66 59 170 60q199 0 252 -197q14 -51 14 -92v-326h-342v-250q0 -46 22.5 -76t53.5 -30q70 10 73 113v122h193v-129q0 -37 -16.5 -93t-41 -95t-80 -69.5t-146 -30.5t-154.5 57q-68 -57 -156 -57t-143.5 30.5 t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM594 684h149v158q0 48 -19 81t-58 33t-55.5 -37.5t-16.5 -70.5v-164z" />
-<glyph unicode="&#x178;" horiz-adv-x="704" d="M16 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641zM113 1638v201h190v-201h-190zM401 1638v201h191v-201h-191z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1021" d="M260 1305l141 184h220l141 -184h-189l-63 71l-61 -71h-189z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1024" d="M313 1305v151q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#x2000;" horiz-adv-x="952" />
-<glyph unicode="&#x2001;" horiz-adv-x="1905" />
-<glyph unicode="&#x2002;" horiz-adv-x="952" />
-<glyph unicode="&#x2003;" horiz-adv-x="1905" />
-<glyph unicode="&#x2004;" horiz-adv-x="635" />
-<glyph unicode="&#x2005;" horiz-adv-x="476" />
-<glyph unicode="&#x2006;" horiz-adv-x="317" />
-<glyph unicode="&#x2007;" horiz-adv-x="317" />
-<glyph unicode="&#x2008;" horiz-adv-x="238" />
-<glyph unicode="&#x2009;" horiz-adv-x="381" />
-<glyph unicode="&#x200a;" horiz-adv-x="105" />
-<glyph unicode="&#x2010;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2011;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2012;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2013;" horiz-adv-x="806" d="M74 649v195h659v-195h-659z" />
-<glyph unicode="&#x2014;" horiz-adv-x="972" d="M74 649v195h825v-195h-825z" />
-<glyph unicode="&#x2018;" horiz-adv-x="309" d="M49 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x2019;" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="&#x201a;" horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="&#x201c;" horiz-adv-x="624" d="M53 1012v227l113 266h102l-71 -266h71v-227h-215zM356 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x201d;" horiz-adv-x="624" d="M53 1012l72 266h-72v227h215v-227l-112 -266h-103zM356 1012l72 266h-72v227h215v-227l-112 -266h-103z" />
-<glyph unicode="&#x201e;" horiz-adv-x="624" d="M53 0v227h215v-227l-112 -266h-103l72 266h-72zM356 0v227h215v-227l-112 -266h-103l72 266h-72z" />
-<glyph unicode="&#x2022;" horiz-adv-x="663" d="M82 815q0 104 72.5 177t177 73t177.5 -72.5t73 -177t-73 -177.5t-177 -73t-177 73t-73 177z" />
-<glyph unicode="&#x2026;" horiz-adv-x="964" d="M53 0v227h215v-227h-215zM375 0v227h215v-227h-215zM696 0v227h215v-227h-215z" />
-<glyph unicode="&#x202f;" horiz-adv-x="381" />
-<glyph unicode="&#x2039;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="&#x203a;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="&#x205f;" horiz-adv-x="476" />
-<glyph unicode="&#x20ac;" horiz-adv-x="813" d="M53 547v137h107v137h-107v137h107v238q0 42 17.5 106t45 107t88 78t144.5 35t144 -34t88 -81q53 -90 61 -178l2 -33v-84h-207v84q-2 0 0 11.5t-3 27.5t-12 33q-18 39 -69 39q-70 -10 -78 -111v-238h233v-137h-233v-137h233v-137h-233v-238q0 -43 21.5 -76.5t59.5 -33.5 t58.5 27.5t20.5 56.5l2 26v84h207v-84q0 -38 -17.5 -104t-45.5 -109t-88 -77.5t-144 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175l-2 35v238h-107z" />
-<glyph unicode="&#x2122;" horiz-adv-x="937" d="M74 1401v104h321v-104h-104v-580h-113v580h-104zM440 821v684h138l67 -319h6l68 319h137v-684h-104v449l-78 -449h-51l-80 449v-449h-103z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 0v1120h1120v-1120h-1120z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2v-184q-41 12 -91 12t-69.5 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h358v-1120h-207v934h-151v-934h-207v934h-105z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2h164v-1505h-207v1329q-37 4 -67.5 4t-50 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="&#xfb03;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1120h207v-1120h-207zM1032 1298v207h207v-207h-207z" />
-<glyph unicode="&#xfb04;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1505h207v-1505h-207z" />
-</font>
-</defs></svg> 
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.ttf b/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.woff b/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.woff
deleted file mode 100644
Binary files a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic-webfont.woff and /dev/null differ
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic_license b/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic_license
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/font/league_gothic_license
+++ /dev/null
@@ -1,2 +0,0 @@
-SIL Open Font License (OFL)
-http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/js/classList.js b/docs/slides/BOS14/_support/reveal.js/lib/js/classList.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/js/classList.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
-if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/js/head.min.js b/docs/slides/BOS14/_support/reveal.js/lib/js/head.min.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/js/head.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
-    Head JS     The only script in your <HEAD>
-    Copyright   Tero Piirainen (tipiirai)
-    License     MIT / http://bit.ly/mit-license
-    Version     0.96
-
-    http://headjs.com
-*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c<a.length;c++)b.call(a,a[c],c)}}function r(a){var b;if(typeof a=="object")for(var c in a)a[c]&&(b={name:c,url:a[c]});else b={name:q(a),url:a};var d=h[b.name];if(d&&d.url===b.url)return d;h[b.name]=b;return b}function q(a){var b=a.split("/"),c=b[b.length-1],d=c.indexOf("?");return d!=-1?c.substring(0,d):c}function p(a){a._done||(a(),a._done=1)}var b=a.documentElement,c,d,e=[],f=[],g={},h={},i=a.createElement("script").async===!0||"MozAppearance"in a.documentElement.style||window.opera,j=window.head_conf&&head_conf.head||"head",k=window[j]=window[j]||function(){k.ready.apply(null,arguments)},l=1,m=2,n=3,o=4;i?k.js=function(){var a=arguments,b=a[a.length-1],c={};t(b)||(b=null),s(a,function(d,e){d!=b&&(d=r(d),c[d.name]=d,x(d,b&&e==a.length-2?function(){u(c)&&p(b)}:null))});return k}:k.js=function(){var a=arguments,b=[].slice.call(a,1),d=b[0];if(!c){f.push(function(){k.js.apply(null,a)});return k}d?(s(b,function(a){t(a)||w(r(a))}),x(r(a[0]),t(d)?d:function(){k.js.apply(null,b)})):x(r(a[0]));return k},k.ready=function(b,c){if(b==a){d?p(c):e.push(c);return k}t(b)&&(c=b,b="ALL");if(typeof b!="string"||!t(c))return k;var f=h[b];if(f&&f.state==o||b=="ALL"&&u()&&d){p(c);return k}var i=g[b];i?i.push(c):i=g[b]=[c];return k},k.ready(a,function(){u()&&s(g.ALL,function(a){p(a)}),k.feature&&k.feature("domloaded",!0)});if(window.addEventListener)a.addEventListener("DOMContentLoaded",z,!1),window.addEventListener("load",z,!1);else if(window.attachEvent){a.attachEvent("onreadystatechange",function(){a.readyState==="complete"&&z()});var A=1;try{A=window.frameElement}catch(B){}!A&&b.doScroll&&function(){try{b.doScroll("left"),z()}catch(a){setTimeout(arguments.callee,1);return}}(),window.attachEvent("onload",z)}!a.readyState&&a.addEventListener&&(a.readyState="loading",a.addEventListener("DOMContentLoaded",handler=function(){a.removeEventListener("DOMContentLoaded",handler,!1),a.readyState="complete"},!1)),setTimeout(function(){c=!0,s(f,function(a){a()})},300)})(document)
diff --git a/docs/slides/BOS14/_support/reveal.js/lib/js/html5shiv.js b/docs/slides/BOS14/_support/reveal.js/lib/js/html5shiv.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/lib/js/html5shiv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-document.createElement('header');
-document.createElement('nav');
-document.createElement('section');
-document.createElement('article');
-document.createElement('aside');
-document.createElement('footer');
-document.createElement('hgroup');
diff --git a/docs/slides/BOS14/_support/reveal.js/package.json b/docs/slides/BOS14/_support/reveal.js/package.json
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "name": "reveal.js",
-  "version": "2.6.2",
-  "description": "The HTML Presentation Framework",
-  "homepage": "http://lab.hakim.se/reveal-js",
-  "subdomain": "revealjs",
-  "scripts": {
-    "test": "grunt test",
-    "start": ""
-  },
-  "author": {
-    "name": "Hakim El Hattab",
-    "email": "hakim.elhattab@gmail.com",
-    "web": "http://hakim.se"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/hakimel/reveal.js.git"
-  },
-  "engines": {
-    "node": "~0.8.0"
-  },
-  "dependencies": {
-    "underscore": "~1.5.1",
-    "express": "~2.5.9",
-    "mustache": "~0.7.2",
-    "socket.io": "~0.9.13"
-  },
-  "devDependencies": {
-    "grunt-contrib-qunit": "~0.2.2",
-    "grunt-contrib-jshint": "~0.6.4",
-    "grunt-contrib-cssmin": "~0.4.1",
-    "grunt-contrib-uglify": "~0.2.4",
-    "grunt-contrib-watch": "~0.5.3",
-    "grunt-contrib-sass": "~0.5.0",
-    "grunt-contrib-connect": "~0.4.1",
-    "grunt-zip": "~0.7.0",
-    "grunt": "~0.4.0"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://github.com/hakimel/reveal.js/blob/master/LICENSE"
-    }
-  ]
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/highlight/highlight.js b/docs/slides/BOS14/_support/reveal.js/plugin/highlight/highlight.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/highlight/highlight.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// START CUSTOM REVEAL.JS INTEGRATION
-(function() {
-	if( typeof window.addEventListener === 'function' ) {
-		var hljs_nodes = document.querySelectorAll( 'pre code' );
-
-		for( var i = 0, len = hljs_nodes.length; i < len; i++ ) {
-			var element = hljs_nodes[i];
-
-			// trim whitespace if data-trim attribute is present
-			if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) {
-				element.innerHTML = element.innerHTML.trim();
-			}
-
-			// Now escape html unless prevented by author
-			if( ! element.hasAttribute( 'data-noescape' )) {
-				element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
-			}
-
-			// re-highlight when focus is lost (for edited code)
-			element.addEventListener( 'focusout', function( event ) {
-				hljs.highlightBlock( event.currentTarget );
-			}, false );
-		}
-	}
-})();
-// END CUSTOM REVEAL.JS INTEGRATION
-
-// highlight.js build includes support for:
-// All languages in master + fsharp
-
-
-var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+(q.parentNode?q.parentNode.className:"")).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(r){function o(s){return(s&&s.source)||s}function p(t,s){return RegExp(o(t),"m"+(r.cI?"i":"")+(s?"g":""))}function q(z,x){if(z.compiled){return}z.compiled=true;var u=[];if(z.k){var s={};function A(B,t){t.split(" ").forEach(function(C){var D=C.split("|");s[D[0]]=[B,D[1]?Number(D[1]):1];u.push(D[0])})}z.lR=p(z.l||hljs.IR+"(?!\\.)",true);if(typeof z.k=="string"){A("keyword",z.k)}else{for(var y in z.k){if(!z.k.hasOwnProperty(y)){continue}A(y,z.k[y])}}z.k=s}if(x){if(z.bWK){z.b="\\b("+u.join("|")+")\\b(?!\\.)\\s*"}z.bR=p(z.b?z.b:"\\B|\\b");if(!z.e&&!z.eW){z.e="\\B|\\b"}if(z.e){z.eR=p(z.e)}z.tE=o(z.e)||"";if(z.eW&&x.tE){z.tE+=(z.e?"|":"")+x.tE}}if(z.i){z.iR=p(z.i)}if(z.r===undefined){z.r=1}if(!z.c){z.c=[]}for(var w=0;w<z.c.length;w++){if(z.c[w]=="self"){z.c[w]=z}q(z.c[w],z)}if(z.starts){q(z.starts,x)}var v=[];for(var w=0;w<z.c.length;w++){v.push(o(z.c[w].b))}if(z.tE){v.push(o(z.tE))}if(z.i){v.push(o(z.i))}z.t=v.length?p(v.join("|"),true):{exec:function(t){return null}}}q(r)}function d(E,F,C){function o(r,N){for(var M=0;M<N.c.length;M++){var L=N.c[M].bR.exec(r);if(L&&L.index==0){return N.c[M]}}}function s(L,r){if(L.e&&L.eR.test(r)){return L}if(L.eW){return s(L.parent,r)}}function t(r,L){return !C&&L.i&&L.iR.test(r)}function y(M,r){var L=G.cI?r[0].toLowerCase():r[0];return M.k.hasOwnProperty(L)&&M.k[L]}function H(){var L=l(w);if(!A.k){return L}var r="";var O=0;A.lR.lastIndex=0;var M=A.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=y(A,M);if(N){v+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=A.lR.lastIndex;M=A.lR.exec(L)}return r+L.substr(O)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function K(){return A.sL!==undefined?z():H()}function J(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){x+=L;w=""}else{if(M.eB){x+=l(r)+L;w=""}else{x+=L;w=r}}A=Object.create(M,{parent:{value:A}})}function D(L,r){w+=L;if(r===undefined){x+=K();return 0}var N=o(r,A);if(N){x+=K();J(N,r);return N.rB?0:r.length}var O=s(A,r);if(O){var M=A;if(!(M.rE||M.eE)){w+=r}x+=K();do{if(A.cN){x+="</span>"}B+=A.r;A=A.parent}while(A!=O.parent);if(M.eE){x+=l(r)}w="";if(O.starts){J(O.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw new Error('Illegal lexem "'+r+'" for mode "'+(A.cN||"<unnamed>")+'"')}w+=r;return r.length||1}var G=e[E];f(G);var A=G;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(F);if(!u){break}q=D(F.substr(p,u.index-p),u[0]);p=u.index+q}D(F.substr(p));return{r:B,keyword_count:v,value:x,language:E}}catch(I){if(I.message.indexOf("Illegal")!=-1){return{r:0,keyword_count:0,value:l(F)}}else{throw I}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s,false);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v,true):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.apache=function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,k:{keyword:"acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",literal:"on off"},c:[a.HCM,{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,{cN:"tag",b:"</?",e:">"},a.QSM]}}(hljs);hljs.LANGUAGES.applescript=function(a){var b=a.inherit(a.QSM,{i:""});var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bWK:true,k:"on",i:"[${=;\\n]",c:[e,d]}].concat(c),i:"//"}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);hljs.LANGUAGES.asciidoc=function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{4,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}}(hljs);hljs.LANGUAGES.avrasm=function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$"},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}}(hljs);hljs.LANGUAGES.axapta=function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"{",i:":",k:"class interface",c:[{cN:"inheritance",bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]}]}}(hljs);hljs.LANGUAGES.bash=function(a){var c={cN:"variable",b:/\$[\w\d#@][\w\d_]*/};var b={cN:"variable",b:/\$\{(.*?)\}/};var e={cN:"string",b:/"/,e:/"/,c:[a.BE,c,b,{cN:"variable",b:/\$\(/,e:/\)/,c:a.BE}],r:0};var d={cN:"string",b:/'/,e:/'/,r:0};return{l:/-?[a-z]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[{cN:"title",b:/\w[\w\d_]*/}],r:0},a.HCM,a.NM,e,d,c,b]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f={cN:"title",b:a};var e={cN:"subst",b:"#\\{",e:"}",k:b,};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",b:"'''",e:"'''",c:[c.BE]},{cN:"string",b:"'",e:"'",c:[c.BE],r:0},{cN:"string",b:'"""',e:'"""',c:[c.BE,e]},{cN:"string",b:'"',e:'"',c:[c.BE,e],r:0},{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*",r:0},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bWK:true,k:"class",e:"$",i:"[:\\[\\]]",c:[{bWK:true,k:"extends",eW:true,i:":",c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true}])}}(hljs);hljs.LANGUAGES.cpp=function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"<",e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.css=function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.d=function(x){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r={b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?',r:0};var f={cN:"string",b:'[rq]"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,t,j,m,s,e,g,d]}}(hljs);hljs.LANGUAGES.delphi=function(b){var f="and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure";var e="safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static";var a={cN:"comment",b:"{",e:"}",r:0};var g={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var d={cN:"string",b:"(#\\d+)+"};var h={cN:"function",bWK:true,e:"[:;]",k:"function constructor|10 destructor|10 procedure|10",c:[{cN:"title",b:b.IR},{cN:"params",b:"\\(",e:"\\)",k:f,c:[c,d]},a,g]};return{cI:true,k:f,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,g,b.CLCM,c,d,b.NM,h,{cN:"class",b:"=\\bclass\\b",e:"end;",k:e,c:[c,d,a,g,b.CLCM,h]}]}}(hljs);hljs.LANGUAGES.diff=function(a){return{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}if(e(l,k)){m=b.concat(m)}if(m.length){g.c=m}}return g}var d={cN:"filter",b:"\\|[A-Za-z]+\\:?",k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:'"',e:'"'}]};var b=[{cN:"template_comment",b:"{%\\s*comment\\s*%}",e:"{%\\s*endcomment\\s*%}"},{cN:"template_comment",b:"{#",e:"#}"},{cN:"template_tag",b:"{%",e:"%}",k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[d]},{cN:"variable",b:"{{",e:"}}",c:[d]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.dos=function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.fsharp=function(a){var b="'[a-zA-Z0-9_]+";return{k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun|10 function global if in inherit inline interface internal lazy let match member module mutable|10 namespace new null of open or override private public rec|10 return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"//",e:"$",rB:true},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bWK:true,e:"\\(|=|$",k:"type",c:[{cN:"title",b:a.UIR}]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"typeparam",b:"<",e:">",c:[{cN:"title",b:b}]},a.CLCM,a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.haml=function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(-#|/).*$",r:0},{b:"^\\s*-(?!#)",starts:{e:"\\n",sL:"ruby"},r:0},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+",r:0},{cN:"value",b:"[#\\.]\\w+",r:0},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,r:0,c:[{cN:"symbol",b:":\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,r:0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0}],r:10},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"},r:0}]}}(hljs);hljs.LANGUAGES.handlebars=function(c){function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}m=d.concat(m);if(m.length){g.c=m}}return g}var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";var e={cN:"variable",b:"[a-zA-Z.]+",k:b};var d=[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z .]+",k:b},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z .]+",k:b},{cN:"variable",b:"[a-zA-Z.]+",k:b}]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"},{b:"->|<-"}]}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",eE:true,i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,sL:"xml"}],r:0},{cN:"function",bWK:true,e:/{/,k:"function",c:[{cN:"title",b:/[A-Za-z$_][0-9A-Za-z$_]*/},{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.lasso=function(b){var a="[a-zA-Z_][a-zA-Z0-9_.]*|&[lg]t;";var c="<\\?(lasso(script)?|=)";return{cI:true,l:a,k:{literal:"true false none minimal full all infinity nan and or not bw ew cn lt lte gt gte eq neq ft rx nrx",built_in:"array date decimal duration integer map pair string tag xml null list queue set stack staticarray local var variable data global self inherited void",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require skip split_thread sum take thread to trait type where with yield"},c:[{cN:"preprocessor",b:"\\]|\\?>",r:0,starts:{cN:"markup",e:"\\[|"+c,rE:true}},{cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true}},{cN:"preprocessor",b:"\\[no_square_brackets|\\[/noprocess|"+c},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10},b.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},b.CBLCLM,b.CNM,b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",b:"#\\d+|[#$]"+a},{cN:"tag",b:"::",e:a},{cN:"attribute",b:"\\.\\.\\.|-"+b.UIR},{cN:"class",bWK:true,k:"define",eE:true,e:"\\(|=>",c:[{cN:"title",b:b.UIR+"=?"}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var l="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var m="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var k={cN:"shebang",b:"^#!",e:"$"};var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:m},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+m+" +"+m,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var n={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var o={cN:"keyword",b:"[:&]"+l};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,o,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,o,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={eW:true,r:0};j.c=[{cN:"title",b:l},f];f.c=[e,c,j,a].concat(d).concat([h,n,g,o]);return{i:"[^\\s]",c:d.concat([k,a,h,n,e,c,j])}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^    ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.mel=function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variable",b:"\\$\\d",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},a.CLCM,a.CBLCLM]}}(hljs);hljs.LANGUAGES.mizar=function(a){return{k:["environ vocabularies notations constructors definitions registrations theorems schemes requirements","begin end definition registration cluster existence pred func defpred deffunc theorem proof","let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from","be being by means equals implies iff redefine define now not or attr is mode suppose per cases set","thesis contradiction scheme reserve struct","correctness compatibility coherence symmetry assymetry reflexivity irreflexivity","connectedness uniqueness commutativity idempotence involutiveness projectivity"].join(" "),c:[{cN:"comment",b:"::",e:"$"}]}}(hljs);hljs.LANGUAGES.nginx=function(b){var c=[{cN:"variable",b:"\\$\\d+"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+b.UIR}];var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[b.HCM,{cN:"string",b:'"',e:'"',c:[b.BE].concat(c),r:0},{cN:"string",b:"'",e:"'",c:[b.BE].concat(c),r:0},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[b.BE].concat(c)},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[b.BE].concat(c)},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0}].concat(c)};return{c:[b.HCM,{b:b.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:b.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property self synchronized end synthesize id optional required nonatomic super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}(hljs);hljs.LANGUAGES.parser3=function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.profile=function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:a.UIR,r:0}],r:0}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var c=[{cN:"string",b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{cN:"string",b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{cN:"string",b:/(u|r|ur)'/,e:/'/,c:[a.BE],r:10},{cN:"string",b:/(u|r|ur)"/,e:/"/,c:[a.BE],r:10},{cN:"string",b:/(b|br)'/,e:/'/,c:[a.BE]},{cN:"string",b:/(b|br)"/,e:/"/,c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:/\(/,e:/\)/,c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:/:/,i:/[${=;\n]/,c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}])}}(hljs);hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);hljs.LANGUAGES.rib=function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}}(hljs);hljs.LANGUAGES.rsl=function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bWK:true,e:"\\(",k:"surface displacement light volume imager"},{cN:"shading",bWK:true,e:"\\(",k:"illuminate illuminance gather"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.ruleslanguage=function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEMASK|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN DELETE SAVE SAVE_UPDATE CLEAR DETERMINANT LABEL REPORT REVENUE ABORT CALL DONE LEAVE EACH IN LIST NOVALUE FROM TOTAL CHARGE BLOCK AND OR CSV_FILE BILL_PERIOD RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ABORT WARN NUMDAYS RATE_CODE READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}}(hljs);hljs.LANGUAGES.rust=function(b){var d={cN:"title",b:b.UIR};var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char check claim comm const cont copy dir do drop else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut priv pub pure ref return self static str struct task true trait type u16 u32 u64 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b.QSM,{i:null}),b.ASM,c,{cN:"function",bWK:true,e:"(\\(|<)",k:"fn",c:[d]},{cN:"preprocessor",b:"#\\[",e:"\\]"},{bWK:true,e:"(=|<)",k:"type",c:[d],i:"\\S"},{bWK:true,e:"({|<)",k:"trait enum",c:[d],i:"\\S"}]}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.scss=function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include for extend charset import media page font-face namespace",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*"+b+"(\\s+"+b+")*\\s*\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,c:[{cN:"operator",b:"(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.tex=function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",i:"[^,:\\n\\s\\.]",c:[{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.vbnet=function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"(//|endif|gosub|variant|wend)",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}}(hljs);hljs.LANGUAGES.vbscript=function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$"},a.CNM]}}(hljs);hljs.LANGUAGES.vhdl=function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/leap/leap.js b/docs/slides/BOS14/_support/reveal.js/plugin/leap/leap.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/leap/leap.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2013, Leap Motion, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Version 0.2.0 - http://js.leapmotion.com/0.2.0/leap.min.js
- * Grab latest versions from http://js.leapmotion.com/
- */
-
-!function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){var chooseProtocol=require("./protocol").chooseProtocol,EventEmitter=require("events").EventEmitter,_=require("underscore");var BaseConnection=module.exports=function(opts){this.opts=_.defaults(opts||{},{host:"127.0.0.1",enableGestures:false,port:6437,enableHeartbeat:true,heartbeatInterval:100,requestProtocolVersion:3});this.host=opts.host;this.port=opts.port;this.on("ready",function(){this.enableGestures(this.opts.enableGestures);if(this.opts.enableHeartbeat)this.startHeartbeat()});this.on("disconnect",function(){if(this.opts.enableHeartbeat)this.stopHeartbeat()});this.heartbeatTimer=null};BaseConnection.prototype.getUrl=function(){return"ws://"+this.host+":"+this.port+"/v"+this.opts.requestProtocolVersion+".json"};BaseConnection.prototype.sendHeartbeat=function(){if(this.protocol){this.setHeartbeatState(true);this.protocol.sendHeartbeat(this)}};BaseConnection.prototype.handleOpen=function(){this.emit("connect")};BaseConnection.prototype.enableGestures=function(enabled){this.gesturesEnabled=enabled?true:false;this.send(this.protocol.encode({enableGestures:this.gesturesEnabled}))};BaseConnection.prototype.handleClose=function(){this.disconnect();this.startReconnection()};BaseConnection.prototype.startReconnection=function(){var connection=this;setTimeout(function(){connection.connect()},1e3)};BaseConnection.prototype.disconnect=function(){if(!this.socket)return;this.socket.close();delete this.socket;delete this.protocol;this.emit("disconnect")};BaseConnection.prototype.handleData=function(data){var message=JSON.parse(data);var messageEvent;if(this.protocol===undefined){messageEvent=this.protocol=chooseProtocol(message);this.emit("ready")}else{messageEvent=this.protocol(message)}this.emit(messageEvent.type,messageEvent)};BaseConnection.prototype.connect=function(){if(this.socket)return;this.socket=this.setupSocket();return true};BaseConnection.prototype.send=function(data){this.socket.send(data)};BaseConnection.prototype.stopHeartbeat=function(){if(!this.heartbeatTimer)return;clearInterval(this.heartbeatTimer);delete this.heartbeatTimer;this.setHeartbeatState(false)};BaseConnection.prototype.setHeartbeatState=function(state){if(this.heartbeatState===state)return;this.heartbeatState=state;this.emit(this.heartbeatState?"focus":"blur")};_.extend(BaseConnection.prototype,EventEmitter.prototype)},{"./protocol":12,events:17,underscore:20}],2:[function(require,module,exports){var CircularBuffer=module.exports=function(size){this.pos=0;this._buf=[];this.size=size};CircularBuffer.prototype.get=function(i){if(i==undefined)i=0;if(i>=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:<br/>";out+=this.toString();out+="<br/><br/>Hands:<br/>";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+="  "+this.hands[handIdx].toString()+"<br/>"}out+="<br/><br/>Pointables:<br/>";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+="  "+this.pointables[pointableIdx].toString()+"<br/>"}if(this.gestures){out+="<br/><br/>Gestures:<br/>";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+="  "+this.gestures[gestureIdx].toString()+"<br/>"}}out+="<br/><br/>Raw JSON:<br/>";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);
-out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1]}return a}}();vec2.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};if(typeof exports!=="undefined"){exports.vec2=vec2}var vec3={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec3.create=function(){return new Float32Array(3)};vec3.clone=function(a){var out=new Float32Array(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.fromValues=function(x,y,z){var out=new Float32Array(3);out[0]=x;out[1]=y;out[2]=z;return out};vec3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.set=function(out,x,y,z){out[0]=x;out[1]=y;out[2]=z;return out};vec3.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out};vec3.sub=vec3.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out};vec3.mul=vec3.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out};vec3.div=vec3.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out};vec3.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out};vec3.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out};vec3.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out};vec3.dist=vec3.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrDist=vec3.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z};vec3.len=vec3.length=function(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrLen=vec3.squaredLength=function(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z};vec3.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out};vec3.normalize=function(out,a){var x=a[0],y=a[1],z=a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();vec3.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};if(typeof exports!=="undefined"){exports.vec3=vec3}var vec4={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec4.create=function(){return new Float32Array(4)};vec4.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.fromValues=function(x,y,z,w){var out=new Float32Array(4);out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.set=function(out,x,y,z,w){out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];out[3]=a[3]+b[3];return out};vec4.sub=vec4.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];out[3]=a[3]-b[3];return out};vec4.mul=vec4.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];out[3]=a[3]*b[3];return out};vec4.div=vec4.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];out[3]=a[3]/b[3];return out};vec4.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);out[3]=Math.min(a[3],b[3]);return out};vec4.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);out[3]=Math.max(a[3],b[3]);return out};vec4.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;out[3]=a[3]*b;return out};vec4.dist=vec4.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrDist=vec4.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return x*x+y*y+z*z+w*w};vec4.len=vec4.length=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrLen=vec4.squaredLength=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return x*x+y*y+z*z+w*w};vec4.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=-a[3];return out};vec4.normalize=function(out,a){var x=a[0],y=a[1],z=a[2],w=a[3];var len=x*x+y*y+z*z+w*w;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];vec[3]=a[i+3];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2];a[i+3]=vec[3]}return a}}();vec4.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.vec4=vec4}var mat2={};var mat2Identity=new Float32Array([1,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat2.create=function(){return new Float32Array(mat2Identity)};mat2.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;return out};mat2.transpose=function(out,a){if(out===a){var a1=a[1];out[1]=a[2];out[2]=a1}else{out[0]=a[0];out[1]=a[2];out[2]=a[1];out[3]=a[3]}return out};mat2.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],det=a0*a3-a2*a1;if(!det){return null}det=1/det;out[0]=a3*det;out[1]=-a1*det;out[2]=-a2*det;out[3]=a0*det;return out};mat2.adjoint=function(out,a){var a0=a[0];out[0]=a[3];out[1]=-a[1];out[2]=-a[2];out[3]=a0;return out};mat2.determinant=function(a){return a[0]*a[3]-a[2]*a[1]};mat2.mul=mat2.multiply=function(out,a,b){var a0=a[0],a1=a[1],a2=a[2],a3=a[3];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=a0*b0+a1*b2;out[1]=a0*b1+a1*b3;out[2]=a2*b0+a3*b2;out[3]=a2*b1+a3*b3;return out};mat2.rotate=function(out,a,rad){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],s=Math.sin(rad),c=Math.cos(rad);out[0]=a0*c+a1*s;out[1]=a0*-s+a1*c;out[2]=a2*c+a3*s;out[3]=a2*-s+a3*c;return out};mat2.scale=function(out,a,v){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],v0=v[0],v1=v[1];out[0]=a0*v0;out[1]=a1*v1;out[2]=a2*v0;out[3]=a3*v1;return out};mat2.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.mat2=mat2}var mat3={};var mat3Identity=new Float32Array([1,0,0,0,1,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat3.create=function(){return new Float32Array(mat3Identity)};mat3.clone=function(a){var out=new Float32Array(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out};mat3.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out};mat3.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det){return null}det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out};mat3.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02*a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out};mat3.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)};mat3.mul=mat3.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02=b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out};mat3.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};if(typeof exports!=="undefined"){exports.mat3=mat3}var mat4={};var mat4Identity=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat4.create=function(){return new Float32Array(mat4Identity)};mat4.clone=function(a){var out=new Float32Array(16);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=1;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=1;out[11]=0;out[12]=0;out[13]=0;out[14]=0;out[15]=1;return out};mat4.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a03=a[3],a12=a[6],a13=a[7],a23=a[11];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a01;out[6]=a[9];out[7]=a[13];out[8]=a02;out[9]=a12;out[11]=a[14];out[12]=a03;out[13]=a13;out[14]=a23}else{out[0]=a[0];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a[1];out[5]=a[5];out[6]=a[9];out[7]=a[13];out[8]=a[2];out[9]=a[6];out[10]=a[10];out[11]=a[14];out[12]=a[3];out[13]=a[7];out[14]=a[11];out[15]=a[15]}return out};mat4.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det){return null}det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a02*b10-a01*b11-a03*b09)*det;out[2]=(a31*b05-a32*b04+a33*b03)*det;out[3]=(a22*b04-a21*b05-a23*b03)*det;out[4]=(a12*b08-a10*b11-a13*b07)*det;out[5]=(a00*b11-a02*b08+a03*b07)*det;out[6]=(a32*b02-a30*b05-a33*b01)*det;out[7]=(a20*b05-a22*b02+a23*b01)*det;out[8]=(a10*b10-a11*b08+a13*b06)*det;out[9]=(a01*b08-a00*b10-a03*b06)*det;out[10]=(a30*b04-a31*b02+a33*b00)*det;out[11]=(a21*b02-a20*b04-a23*b00)*det;out[12]=(a11*b07-a10*b09-a12*b06)*det;out[13]=(a00*b09-a01*b07+a02*b06)*det;out[14]=(a31*b01-a30*b03-a32*b00)*det;out[15]=(a20*b03-a21*b01+a22*b00)*det;return out};mat4.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];out[0]=a11*(a22*a33-a23*a32)-a21*(a12*a33-a13*a32)+a31*(a12*a23-a13*a22);out[1]=-(a01*(a22*a33-a23*a32)-a21*(a02*a33-a03*a32)+a31*(a02*a23-a03*a22));out[2]=a01*(a12*a33-a13*a32)-a11*(a02*a33-a03*a32)+a31*(a02*a13-a03*a12);out[3]=-(a01*(a12*a23-a13*a22)-a11*(a02*a23-a03*a22)+a21*(a02*a13-a03*a12));out[4]=-(a10*(a22*a33-a23*a32)-a20*(a12*a33-a13*a32)+a30*(a12*a23-a13*a22));out[5]=a00*(a22*a33-a23*a32)-a20*(a02*a33-a03*a32)+a30*(a02*a23-a03*a22);out[6]=-(a00*(a12*a33-a13*a32)-a10*(a02*a33-a03*a32)+a30*(a02*a13-a03*a12));out[7]=a00*(a12*a23-a13*a22)-a10*(a02*a23-a03*a22)+a20*(a02*a13-a03*a12);out[8]=a10*(a21*a33-a23*a31)-a20*(a11*a33-a13*a31)+a30*(a11*a23-a13*a21);out[9]=-(a00*(a21*a33-a23*a31)-a20*(a01*a33-a03*a31)+a30*(a01*a23-a03*a21));out[10]=a00*(a11*a33-a13*a31)-a10*(a01*a33-a03*a31)+a30*(a01*a13-a03*a11);out[11]=-(a00*(a11*a23-a13*a21)-a10*(a01*a23-a03*a21)+a20*(a01*a13-a03*a11));out[12]=-(a10*(a21*a32-a22*a31)-a20*(a11*a32-a12*a31)+a30*(a11*a22-a12*a21));out[13]=a00*(a21*a32-a22*a31)-a20*(a01*a32-a02*a31)+a30*(a01*a22-a02*a21);out[14]=-(a00*(a11*a32-a12*a31)-a10*(a01*a32-a02*a31)+a30*(a01*a12-a02*a11));out[15]=a00*(a11*a22-a12*a21)-a10*(a01*a22-a02*a21)+a20*(a01*a12-a02*a11);return out};mat4.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32;return b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06};mat4.mul=mat4.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=b0*a00+b1*a10+b2*a20+b3*a30;out[1]=b0*a01+b1*a11+b2*a21+b3*a31;out[2]=b0*a02+b1*a12+b2*a22+b3*a32;out[3]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[4];b1=b[5];b2=b[6];b3=b[7];out[4]=b0*a00+b1*a10+b2*a20+b3*a30;out[5]=b0*a01+b1*a11+b2*a21+b3*a31;out[6]=b0*a02+b1*a12+b2*a22+b3*a32;out[7]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[8];b1=b[9];b2=b[10];b3=b[11];out[8]=b0*a00+b1*a10+b2*a20+b3*a30;out[9]=b0*a01+b1*a11+b2*a21+b3*a31;out[10]=b0*a02+b1*a12+b2*a22+b3*a32;out[11]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[12];b1=b[13];b2=b[14];b3=b[15];out[12]=b0*a00+b1*a10+b2*a20+b3*a30;out[13]=b0*a01+b1*a11+b2*a21+b3*a31;out[14]=b0*a02+b1*a12+b2*a22+b3*a32;out[15]=b0*a03+b1*a13+b2*a23+b3*a33;return out};mat4.translate=function(out,a,v){var x=v[0],y=v[1],z=v[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(a===out){out[12]=a[0]*x+a[4]*y+a[8]*z+a[12];out[13]=a[1]*x+a[5]*y+a[9]*z+a[13];out[14]=a[2]*x+a[6]*y+a[10]*z+a[14];out[15]=a[3]*x+a[7]*y+a[11]*z+a[15]}else{a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];out[0]=a00;out[1]=a01;out[2]=a02;out[3]=a03;out[4]=a10;out[5]=a11;out[6]=a12;out[7]=a13;out[8]=a20;out[9]=a21;out[10]=a22;out[11]=a23;out[12]=a00*x+a10*y+a20*z+a[12];out[13]=a01*x+a11*y+a21*z+a[13];out[14]=a02*x+a12*y+a22*z+a[14];out[15]=a03*x+a13*y+a23*z+a[15]}return out};mat4.scale=function(out,a,v){var x=v[0],y=v[1],z=v[2];out[0]=a[0]*x;out[1]=a[1]*x;out[2]=a[2]*x;out[3]=a[3]*x;out[4]=a[4]*y;out[5]=a[5]*y;out[6]=a[6]*y;out[7]=a[7]*y;out[8]=a[8]*z;out[9]=a[9]*z;out[10]=a[10]*z;out[11]=a[11]*z;out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.rotate=function(out,a,rad,axis){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(Math.abs(len)<GLMAT_EPSILON){return null}len=1/len;x*=len;y*=len;z*=len;s=Math.sin(rad);c=Math.cos(rad);t=1-c;a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;out[0]=a00*b00+a10*b01+a20*b02;out[1]=a01*b00+a11*b01+a21*b02;out[2]=a02*b00+a12*b01+a22*b02;out[3]=a03*b00+a13*b01+a23*b02;out[4]=a00*b10+a10*b11+a20*b12;out[5]=a01*b10+a11*b11+a21*b12;out[6]=a02*b10+a12*b11+a22*b12;out[7]=a03*b10+a13*b11+a23*b12;out[8]=a00*b20+a10*b21+a20*b22;out[9]=a01*b20+a11*b21+a21*b22;out[10]=a02*b20+a12*b21+a22*b22;out[11]=a03*b20+a13*b21+a23*b22;if(a!==out){out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}return out};mat4.rotateX=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[4]=a10*c+a20*s;out[5]=a11*c+a21*s;out[6]=a12*c+a22*s;out[7]=a13*c+a23*s;out[8]=a20*c-a10*s;out[9]=a21*c-a11*s;out[10]=a22*c-a12*s;out[11]=a23*c-a13*s;return out};mat4.rotateY=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c-a20*s;out[1]=a01*c-a21*s;out[2]=a02*c-a22*s;out[3]=a03*c-a23*s;out[8]=a00*s+a20*c;out[9]=a01*s+a21*c;out[10]=a02*s+a22*c;out[11]=a03*s+a23*c;return out};mat4.rotateZ=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7];if(a!==out){out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c+a10*s;out[1]=a01*c+a11*s;out[2]=a02*c+a12*s;out[3]=a03*c+a13*s;out[4]=a10*c-a00*s;out[5]=a11*c-a01*s;out[6]=a12*c-a02*s;out[7]=a13*c-a03*s;return out};mat4.fromRotationTranslation=function(out,q,v){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-(yy+zz);out[1]=xy+wz;out[2]=xz-wy;out[3]=0;out[4]=xy-wz;out[5]=1-(xx+zz);out[6]=yz+wx;out[7]=0;out[8]=xz+wy;out[9]=yz-wx;out[10]=1-(xx+yy);out[11]=0;out[12]=v[0];out[13]=v[1];out[14]=v[2];out[15]=1;return out};mat4.frustum=function(out,left,right,bottom,top,near,far){var rl=1/(right-left),tb=1/(top-bottom),nf=1/(near-far);out[0]=near*2*rl;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=near*2*tb;out[6]=0;out[7]=0;out[8]=(right+left)*rl;out[9]=(top+bottom)*tb;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=far*near*2*nf;out[15]=0;return out};mat4.perspective=function(out,fovy,aspect,near,far){var f=1/Math.tan(fovy/2),nf=1/(near-far);out[0]=f/aspect;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=f;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=2*far*near*nf;out[15]=0;return out};mat4.ortho=function(out,left,right,bottom,top,near,far){var lr=1/(left-right),bt=1/(bottom-top),nf=1/(near-far);out[0]=-2*lr;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=-2*bt;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=2*nf;out[11]=0;out[12]=(left+right)*lr;out[13]=(top+bottom)*bt;out[14]=(far+near)*nf;out[15]=1;return out};mat4.lookAt=function(out,eye,center,up){var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(Math.abs(eyex-centerx)<GLMAT_EPSILON&&Math.abs(eyey-centery)<GLMAT_EPSILON&&Math.abs(eyez-centerz)<GLMAT_EPSILON){return mat4.identity(out)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}out[0]=x0;out[1]=y0;out[2]=z0;out[3]=0;out[4]=x1;out[5]=y1;out[6]=z1;out[7]=0;out[8]=x2;out[9]=y2;out[10]=z2;out[11]=0;out[12]=-(x0*eyex+x1*eyey+x2*eyez);out[13]=-(y0*eyex+y1*eyey+y2*eyez);out[14]=-(z0*eyex+z1*eyey+z2*eyez);out[15]=1;return out};mat4.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};if(typeof exports!=="undefined"){exports.mat4=mat4}var quat={};var quatIdentity=new Float32Array([0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}quat.create=function(){return new Float32Array(quatIdentity)};quat.clone=vec4.clone;quat.fromValues=vec4.fromValues;quat.copy=vec4.copy;quat.set=vec4.set;quat.identity=function(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out};quat.setAxisAngle=function(out,axis,rad){rad=rad*.5;var s=Math.sin(rad);out[0]=s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out};quat.add=vec4.add;quat.mul=quat.multiply=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out};quat.scale=vec4.scale;quat.rotateX=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out};quat.rotateY=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out};quat.rotateZ=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out};quat.calculateW=function(out,a){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out};quat.dot=vec4.dot;quat.lerp=vec4.lerp;quat.slerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=a[3];var cosHalfTheta=ax*bx+ay*by+az*bz+aw*bw,halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{for(var key in obj){if(_.has(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker)return}}}};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;
-var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={};var iterator=lookupIterator(value||_.identity);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key){if(!_.has(result,key))result[key]=0;result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n!=null&&!guard){return slice.call(array,Math.max(array.length-n,0))}else{return array[array.length-1]}};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){each(input,function(value){if(_.isArray(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(args,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,l=list.length;i<l;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,l+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};_.bind=function(func,context){if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));var args=slice.call(arguments,2);return function(){return func.apply(context,args.concat(slice.call(arguments)))}};_.partial=function(func){var args=slice.call(arguments,1);return function(){return func.apply(this,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)funcs=_.functions(obj);each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,result;var previous=0;var later=function(){previous=new Date;timeout=null;result=func.apply(context,args)};return function(){var now=new Date;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args)}else if(!timeout){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]);
-
-/*
- * Leap Motion integration for Reveal.js.
- * James Sun  [sun16]
- * Rory Hardy [gneatgeek]
- */
-
-(function () {
-  var body        = document.body,
-      controller  = new Leap.Controller({ enableGestures: true }),
-      lastGesture = 0,
-      leapConfig  = Reveal.getConfig().leap,
-      pointer     = document.createElement( 'div' ),
-      config      = {
-        autoCenter       : true,      // Center pointer around detected position.
-        gestureDelay     : 500,       // How long to delay between gestures.
-        naturalSwipe     : true,      // Swipe as if it were a touch screen.
-        pointerColor     : '#00aaff', // Default color of the pointer.
-        pointerOpacity   : 0.7,       // Default opacity of the pointer.
-        pointerSize      : 15,        // Default minimum height/width of the pointer.
-        pointerTolerance : 120        // Bigger = slower pointer.
-      },
-      entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare.
-
-      // Merge user defined settings with defaults
-      if( leapConfig ) {
-        for( key in leapConfig ) {
-          config[key] = leapConfig[key];
-        }
-      }
-
-      pointer.id = 'leap';
-
-      pointer.style.position        = 'absolute';
-      pointer.style.visibility      = 'hidden';
-      pointer.style.zIndex          = 50;
-      pointer.style.opacity         = config.pointerOpacity;
-      pointer.style.backgroundColor = config.pointerColor;
-
-      body.appendChild( pointer );
-
-  // Leap's loop
-  controller.on( 'frame', function ( frame ) {
-    // Timing code to rate limit gesture execution
-    now = new Date().getTime();
-
-    // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies.
-    // The innaccuracies were observed on a development model and may not be an issue with consumer models.
-    if( frame.fingers.length > 0 && frame.fingers.length < 3 ) {
-      // Invert direction and multiply by 3 for greater effect.
-      size = -3 * frame.fingers[0].tipPosition[2];
-
-      if( size < config.pointerSize ) {
-        size = config.pointerSize;
-      }
-
-      pointer.style.width        = size     + 'px';
-      pointer.style.height       = size     + 'px';
-      pointer.style.borderRadius = size - 5 + 'px';
-      pointer.style.visibility   = 'visible';
-
-      if( config.autoCenter ) {
-        tipPosition = frame.fingers[0].tipPosition;
-
-        // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option.
-        if( !entered ) {
-          entered         = true;
-          enteredPosition = frame.fingers[0].tipPosition;
-        }
-
-        pointer.style.top =
-          (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) +
-            ( body.offsetHeight / 2 ) + 'px';
-
-        pointer.style.left =
-          (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) +
-            ( body.offsetWidth / 2 ) + 'px';
-      }
-      else {
-        pointer.style.top  = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) *
-          body.offsetHeight + 'px';
-
-        pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) +
-          ( body.offsetWidth / 2 ) + 'px';
-      }
-    }
-    else {
-      // Hide pointer on exit
-      entered                  = false;
-      pointer.style.visibility = 'hidden';
-    }
-
-    // Gestures
-    if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) {
-      var gesture = frame.gestures[0];
-
-      // One hand gestures
-      if( frame.hands.length === 1 ) {
-        // Swipe gestures. 3+ fingers.
-        if( frame.fingers.length > 2 && gesture.type === 'swipe' ) {
-          // Define here since some gestures will throw undefined for these.
-          var x = gesture.direction[0],
-              y = gesture.direction[1];
-
-          // Left/right swipe gestures
-          if( Math.abs( x ) > Math.abs( y )) {
-            if( x > 0 ) {
-              config.naturalSwipe ? Reveal.left() : Reveal.right();
-            }
-            else {
-              config.naturalSwipe ? Reveal.right() : Reveal.left();
-            }
-          }
-          // Up/down swipe gestures
-          else {
-            if( y > 0 ) {
-              config.naturalSwipe ? Reveal.down() : Reveal.up();
-            }
-            else {
-              config.naturalSwipe ? Reveal.up() : Reveal.down();
-            }
-          }
-
-          lastGesture = now;
-        }
-      }
-      // Two hand gestures
-      else if( frame.hands.length === 2 ) {
-        // Upward two hand swipe gesture
-        if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) {
-          Reveal.toggleOverview();
-        }
-
-        lastGesture = now;
-      }
-    }
-  });
-
-  controller.connect();
-})();
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.html b/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Markdown Demo</title>
-
-		<link rel="stylesheet" href="../../css/reveal.css">
-		<link rel="stylesheet" href="../../css/theme/default.css" id="theme">
-
-        <link rel="stylesheet" href="../../lib/css/zenburn.css">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-                <!-- Use external markdown resource, separate slides by three newlines; vertical slides by two newlines -->
-                <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section>
-
-                <!-- Slides are separated by three dashes (quick 'n dirty regular expression) -->
-                <section data-markdown data-separator="---">
-                    <script type="text/template">
-                        ## Demo 1
-                        Slide 1
-                        ---
-                        ## Demo 1
-                        Slide 2
-                        ---
-                        ## Demo 1
-                        Slide 3
-                    </script>
-                </section>
-
-                <!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-                <section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$">
-                    <script type="text/template">
-                        ## Demo 2
-                        Slide 1.1
-
-                        --
-
-                        ## Demo 2
-                        Slide 1.2
-
-                        ---
-
-                        ## Demo 2
-                        Slide 2
-                    </script>
-                </section>
-
-                <!-- No "extra" slides, since there are no separators defined (so they'll become horizontal rulers) -->
-                <section data-markdown>
-                    <script type="text/template">
-                        A
-
-                        ---
-
-                        B
-
-                        ---
-
-                        C
-                    </script>
-                </section>
-
-                <!-- Slide attributes -->
-                <section data-markdown>
-                    <script type="text/template">
-                        <!-- .slide: data-background="#000000" -->
-                        ## Slide attributes
-                    </script>
-                </section>
-
-                <!-- Element attributes -->
-                <section data-markdown>
-                    <script type="text/template">
-                        ## Element attributes
-                        - Item 1 <!-- .element: class="fragment" data-fragment-index="2" -->
-                        - Item 2 <!-- .element: class="fragment" data-fragment-index="1" -->
-                    </script>
-                </section>
-
-                <!-- Code -->
-                <section data-markdown>
-                    <script type="text/template">
-                        ```php
-                        public function foo()
-                        {
-                            $foo = array(
-                                'bar' => 'bar'
-                            )
-                        }
-                        ```
-                    </script>
-                </section>
-
-            </div>
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				controls: true,
-				progress: true,
-				history: true,
-				center: true,
-
-				// Optional libraries used to extend on reveal.js
-				dependencies: [
-					{ src: '../../lib/js/classList.js', condition: function() { return !document.body.classList; } },
-					{ src: 'marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-                    { src: 'markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-                    { src: '../highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-					{ src: '../notes/notes.js' }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.md b/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.md
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/example.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Markdown Demo
-
-
-
-## External 1.1
-
-Content 1.1
-
-Note: This will only appear in the speaker notes window.
-
-
-## External 1.2
-
-Content 1.2
-
-
-
-## External 2
-
-Content 2.1
-
-
-
-## External 3.1
-
-Content 3.1
-
-
-## External 3.2
-
-Content 3.2
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/markdown.js b/docs/slides/BOS14/_support/reveal.js/plugin/markdown/markdown.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/markdown.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * The reveal.js markdown plugin. Handles parsing of
- * markdown inside of presentations as well as loading
- * of external markdown documents.
- */
-(function( root, factory ) {
-	if( typeof exports === 'object' ) {
-		module.exports = factory( require( './marked' ) );
-	}
-	else {
-		// Browser globals (root is window)
-		root.RevealMarkdown = factory( root.marked );
-		root.RevealMarkdown.initialize();
-	}
-}( this, function( marked ) {
-
-	if( typeof marked === 'undefined' ) {
-		throw 'The reveal.js Markdown plugin requires marked to be loaded';
-	}
-
-	if( typeof hljs !== 'undefined' ) {
-		marked.setOptions({
-			highlight: function( lang, code ) {
-				return hljs.highlightAuto( lang, code ).value;
-			}
-		});
-	}
-
-	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
-		DEFAULT_NOTES_SEPARATOR = 'note:',
-		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
-		DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
-
-
-	/**
-	 * Retrieves the markdown contents of a slide section
-	 * element. Normalizes leading tabs/whitespace.
-	 */
-	function getMarkdownFromSlide( section ) {
-
-		var template = section.querySelector( 'script' );
-
-		// strip leading whitespace so it isn't evaluated as code
-		var text = ( template || section ).textContent;
-
-		var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
-			leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
-
-		if( leadingTabs > 0 ) {
-			text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-		}
-		else if( leadingWs > 1 ) {
-			text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-		}
-
-		return text;
-
-	}
-
-	/**
-	 * Given a markdown slide section element, this will
-	 * return all arguments that aren't related to markdown
-	 * parsing. Used to forward any other user-defined arguments
-	 * to the output markdown slide.
-	 */
-	function getForwardedAttributes( section ) {
-
-		var attributes = section.attributes;
-		var result = [];
-
-		for( var i = 0, len = attributes.length; i < len; i++ ) {
-			var name = attributes[i].name,
-				value = attributes[i].value;
-
-			// disregard attributes that are used for markdown loading/parsing
-			if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
-
-			if( value ) {
-				result.push( name + '=' + value );
-			}
-			else {
-				result.push( name );
-			}
-		}
-
-		return result.join( ' ' );
-
-	}
-
-	/**
-	 * Inspects the given options and fills out default
-	 * values for what's not defined.
-	 */
-	function getSlidifyOptions( options ) {
-
-		options = options || {};
-		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
-		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
-		options.attributes = options.attributes || '';
-
-		return options;
-
-	}
-
-	/**
-	 * Helper function for constructing a markdown slide.
-	 */
-	function createMarkdownSlide( content, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
-
-		if( notesMatch.length === 2 ) {
-			content = notesMatch[0] + '<aside class="notes" data-markdown>' + notesMatch[1].trim() + '</aside>';
-		}
-
-		return '<script type="text/template">' + content + '</script>';
-
-	}
-
-	/**
-	 * Parses a data string into multiple slides based
-	 * on the passed in separator arguments.
-	 */
-	function slidify( markdown, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-			horizontalSeparatorRegex = new RegExp( options.separator );
-
-		var matches,
-			lastIndex = 0,
-			isHorizontal,
-			wasHorizontal = true,
-			content,
-			sectionStack = [];
-
-		// iterate until all blocks between separators are stacked up
-		while( matches = separatorRegex.exec( markdown ) ) {
-			notes = null;
-
-			// determine direction (horizontal by default)
-			isHorizontal = horizontalSeparatorRegex.test( matches[0] );
-
-			if( !isHorizontal && wasHorizontal ) {
-				// create vertical stack
-				sectionStack.push( [] );
-			}
-
-			// pluck slide content from markdown input
-			content = markdown.substring( lastIndex, matches.index );
-
-			if( isHorizontal && wasHorizontal ) {
-				// add to horizontal stack
-				sectionStack.push( content );
-			}
-			else {
-				// add to vertical stack
-				sectionStack[sectionStack.length-1].push( content );
-			}
-
-			lastIndex = separatorRegex.lastIndex;
-			wasHorizontal = isHorizontal;
-		}
-
-		// add the remaining slide
-		( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
-
-		var markdownSections = '';
-
-		// flatten the hierarchical stack, and insert <section data-markdown> tags
-		for( var i = 0, len = sectionStack.length; i < len; i++ ) {
-			// vertical
-			if( sectionStack[i] instanceof Array ) {
-				markdownSections += '<section '+ options.attributes +'>';
-
-				sectionStack[i].forEach( function( child ) {
-					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
-				} );
-
-				markdownSections += '</section>';
-			}
-			else {
-				markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
-			}
-		}
-
-		return markdownSections;
-
-	}
-
-	/**
-	 * Parses any current data-markdown slides, splits
-	 * multi-slide markdown into separate sections and
-	 * handles loading of external markdown.
-	 */
-	function processSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]'),
-			section;
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			section = sections[i];
-
-			if( section.getAttribute( 'data-markdown' ).length ) {
-
-				var xhr = new XMLHttpRequest(),
-					url = section.getAttribute( 'data-markdown' );
-
-				datacharset = section.getAttribute( 'data-charset' );
-
-				// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
-				if( datacharset != null && datacharset != '' ) {
-					xhr.overrideMimeType( 'text/html; charset=' + datacharset );
-				}
-
-				xhr.onreadystatechange = function() {
-					if( xhr.readyState === 4 ) {
-						if ( xhr.status >= 200 && xhr.status < 300 ) {
-
-							section.outerHTML = slidify( xhr.responseText, {
-								separator: section.getAttribute( 'data-separator' ),
-								verticalSeparator: section.getAttribute( 'data-vertical' ),
-								notesSeparator: section.getAttribute( 'data-notes' ),
-								attributes: getForwardedAttributes( section )
-							});
-
-						}
-						else {
-
-							section.outerHTML = '<section data-state="alert">' +
-								'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
-								'Check your browser\'s JavaScript console for more details.' +
-								'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
-								'</section>';
-
-						}
-					}
-				};
-
-				xhr.open( 'GET', url, false );
-
-				try {
-					xhr.send();
-				}
-				catch ( e ) {
-					alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
-				}
-
-			}
-			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) {
-
-				section.outerHTML = slidify( getMarkdownFromSlide( section ), {
-					separator: section.getAttribute( 'data-separator' ),
-					verticalSeparator: section.getAttribute( 'data-vertical' ),
-					notesSeparator: section.getAttribute( 'data-notes' ),
-					attributes: getForwardedAttributes( section )
-				});
-
-			}
-			else {
-				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
-			}
-		}
-
-	}
-
-	/**
-	 * Check if a node value has the attributes pattern.
-	 * If yes, extract it and add that value as one or several attributes
-	 * the the terget element.
-	 *
-	 * You need Cache Killer on Chrome to see the effect on any FOM transformation
-	 * directly on refresh (F5)
-	 * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
-	 */
-	function addAttributeInElement( node, elementTarget, separator ) {
-
-		var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
-		var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-		var nodeValue = node.nodeValue;
-		if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
-
-			var classes = matches[1];
-			nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
-			node.nodeValue = nodeValue;
-			while( matchesClass = mardownClassRegex.exec( classes ) ) {
-				elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add attributes to the parent element of a text node,
-	 * or the element of an attribute node.
-	 */
-	function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
-
-		if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
-			previousParentElement = element;
-			for( var i = 0; i < element.childNodes.length; i++ ) {
-				childElement = element.childNodes[i];
-				if ( i > 0 ) {
-					j = i - 1;
-					while ( j >= 0 ) {
-						aPreviousChildElement = element.childNodes[j];
-						if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
-							previousParentElement = aPreviousChildElement;
-							break;
-						}
-						j = j - 1;
-					}
-				}
-				parentSection = section;
-				if( childElement.nodeName ==  "section" ) {
-					parentSection = childElement ;
-					previousParentElement = childElement ;
-				}
-				if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
-					addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
-				}
-			}
-		}
-
-		if ( element.nodeType == Node.COMMENT_NODE ) {
-			if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
-				addAttributeInElement( element, section, separatorSectionAttributes );
-			}
-		}
-	}
-
-	/**
-	 * Converts any current data-markdown slides in the
-	 * DOM to HTML.
-	 */
-	function convertSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]');
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			var section = sections[i];
-
-			// Only parse the same slide once
-			if( !section.getAttribute( 'data-markdown-parsed' ) ) {
-
-				section.setAttribute( 'data-markdown-parsed', true )
-
-				var notes = section.querySelector( 'aside.notes' );
-				var markdown = getMarkdownFromSlide( section );
-
-				section.innerHTML = marked( markdown );
-				addAttributes( 	section, section, null, section.getAttribute( 'data-element-attributes' ) ||
-								section.parentNode.getAttribute( 'data-element-attributes' ) ||
-								DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
-								section.getAttribute( 'data-attributes' ) ||
-								section.parentNode.getAttribute( 'data-attributes' ) ||
-								DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
-
-				// If there were notes, we need to re-add them after
-				// having overwritten the section's HTML
-				if( notes ) {
-					section.appendChild( notes );
-				}
-
-			}
-
-		}
-
-	}
-
-	// API
-	return {
-
-		initialize: function() {
-			processSlides();
-			convertSlides();
-		},
-
-		// TODO: Do these belong in the API?
-		processSlides: processSlides,
-		convertSlides: convertSlides,
-		slidify: slidify
-
-	};
-
-}));
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/marked.js b/docs/slides/BOS14/_support/reveal.js/plugin/markdown/marked.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/markdown/marked.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * marked - a markdown parser
- * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
- * https://github.com/chjj/marked
- */
-
-(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
-text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",
-/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1",
-"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};
-Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,
-"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,
-"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]="center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].split(/ *\| */);this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=
-src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);
-bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+
-1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&&
-(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]=
-"center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1][cap[1].length-1]==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",
-text:cap[0]});continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
-code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
-em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;
-if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);
-out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length);
-out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src=
-src.substring(cap[0].length);out+="<strong>"+this.output(cap[2]||cap[1])+"</strong>";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+="<em>"+this.output(cap[2]||cap[1])+"</em>";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+="<code>"+escape(cap[2],true)+"</code>";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="<br>";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+="<del>"+
-this.output(cap[1])+"</del>";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'<a href="'+escape(link.href)+'"'+(link.title?' title="'+escape(link.title)+'"':"")+">"+this.output(cap[1])+"</a>";else return'<img src="'+escape(link.href)+'" alt="'+escape(cap[1])+'"'+(link.title?' title="'+
-escape(link.title)+'"':"")+">"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null;
-this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;
-while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"<hr>\n";case "heading":return"<h"+this.token.depth+">"+this.inline.output(this.token.text)+"</h"+this.token.depth+">\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text=
-escape(this.token.text,true);return"<pre><code"+(this.token.lang?' class="'+this.options.langPrefix+this.token.lang+'"':"")+">"+this.token.text+"</code></pre>\n";case "table":var body="",heading,i,row,cell,j;body+="<thead>\n<tr>\n";for(i=0;i<this.token.header.length;i++){heading=this.inline.output(this.token.header[i]);body+=this.token.align[i]?'<th align="'+this.token.align[i]+'">'+heading+"</th>\n":"<th>"+heading+"</th>\n"}body+="</tr>\n</thead>\n";body+="<tbody>\n";for(i=0;i<this.token.cells.length;i++){row=
-this.token.cells[i];body+="<tr>\n";for(j=0;j<row.length;j++){cell=this.inline.output(row[j]);body+=this.token.align[j]?'<td align="'+this.token.align[j]+'">'+cell+"</td>\n":"<td>"+cell+"</td>\n"}body+="</tr>\n"}body+="</tbody>\n";return"<table>\n"+body+"</table>\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"<blockquote>\n"+body+"</blockquote>\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+=
-this.tok();return"<"+type+">\n"+body+"</"+type+">\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"<li>"+body+"</li>\n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"<li>"+body+"</li>\n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"<p>"+this.inline.output(this.token.text)+
-"</p>\n";case "text":return"<p>"+this.parseText()+"</p>\n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=
-1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target)if(Object.prototype.hasOwnProperty.call(target,key))obj[key]=target[key]}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}if(opt)opt=merge({},marked.defaults,opt);var tokens=Lexer.lex(tokens,opt),highlight=opt.highlight,pending=0,l=tokens.length,i=0;if(!highlight||highlight.length<3)return callback(null,Parser.parse(tokens,opt));var done=function(){delete opt.highlight;
-var out=Parser.parse(tokens,opt);opt.highlight=highlight;return callback(null,out)};for(;i<l;i++)(function(token){if(token.type!=="code")return;pending++;return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text)return--pending||done();token.text=code;token.escaped=true;--pending||done()})})(tokens[i]);return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";
-if((opt||marked.defaults).silent)return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;
-marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}());
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/math/math.js b/docs/slides/BOS14/_support/reveal.js/plugin/math/math.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/math/math.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for MathJax.
- *
- * @author Hakim El Hattab
- */
-var RevealMath = window.RevealMath || (function(){
-
-	var options = Reveal.getConfig().math || {};
-	options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
-	options.config = options.config || 'TeX-AMS_HTML-full';
-
-	loadScript( options.mathjax + '?config=' + options.config, function() {
-
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
-			skipStartupTypeset: true
-		});
-
-		// Typeset followed by an immediate reveal.js layout since
-		// the typesetting process could affect slide height
-		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
-		MathJax.Hub.Queue( Reveal.layout );
-
-		// Reprocess equations in slides when they turn visible
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-
-			MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
-
-		} );
-
-	} );
-
-	function loadScript( url, callback ) {
-
-		var head = document.querySelector( 'head' );
-		var script = document.createElement( 'script' );
-		script.type = 'text/javascript';
-		script.src = url;
-
-		// Wrapper for callback to make sure it only fires once
-		var finish = function() {
-			if( typeof callback === 'function' ) {
-				callback.call();
-				callback = null;
-			}
-		}
-
-		script.onload = finish;
-
-		// IE
-		script.onreadystatechange = function() {
-			if ( this.readyState === 'loaded' ) {
-				finish();
-			}
-		}
-
-		// Normal browsers
-		head.appendChild( script );
-
-	}
-
-})();
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/client.js b/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/client.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/client.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
-	var multiplex = Reveal.getConfig().multiplex;
-	var socketId = multiplex.id;
-	var socket = io.connect(multiplex.url);
-
-	socket.on(multiplex.id, function(data) {
-		// ignore data from sockets that aren't ours
-		if (data.socketId !== socketId) { return; }
-		if( window.location.host === 'localhost:1947' ) return;
-
-		Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
-	});
-}());
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/index.js b/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/index.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var express		= require('express');
-var fs			= require('fs');
-var io			= require('socket.io');
-var crypto		= require('crypto');
-
-var app			= express.createServer();
-var staticDir	= express.static;
-
-io				= io.listen(app);
-
-var opts = {
-	port: 1948,
-	baseDir : __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
-		if (createHash(slideData.secret) === slideData.socketId) {
-			slideData.secret = null;
-			socket.broadcast.emit(slideData.socketId, slideData);
-		};
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/token", function(req,res) {
-	var ts = new Date().getTime();
-	var rand = Math.floor(Math.random()*9999999);
-	var secret = ts.toString() + rand.toString();
-	res.send({secret: secret, socketId: createHash(secret)});
-});
-
-var createHash = function(secret) {
-	var cipher = crypto.createCipher('blowfish', secret);
-	return(cipher.final('hex'));
-};
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/master.js b/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/master.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/multiplex/master.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function() {
-	// Don't emit events from inside of notes windows
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var multiplex = Reveal.getConfig().multiplex;
-
-	var socket = io.connect(multiplex.url);
-
-	var notify = function( slideElement, indexh, indexv, origin ) {
-		if( typeof origin === 'undefined' && origin !== 'remote' ) {
-			var nextindexh;
-			var nextindexv;
-
-			var fragmentindex = Reveal.getIndices().f;
-			if (typeof fragmentindex == 'undefined') {
-				fragmentindex = 0;
-			}
-
-			if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-				nextindexh = indexh;
-				nextindexv = indexv + 1;
-			} else {
-				nextindexh = indexh + 1;
-				nextindexv = 0;
-			}
-
-			var slideData = {
-				indexh : indexh,
-				indexv : indexv,
-				indexf : fragmentindex,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				secret: multiplex.secret,
-				socketId : multiplex.id
-			};
-
-			socket.emit('slidechanged', slideData);
-		}
-	}
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		notify( event.currentSlide, event.indexh, event.indexv, event.origin );
-	} );
-
-	var fragmentNotify = function( event ) {
-		notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
-	};
-
-	Reveal.addEventListener( 'fragmentshown', fragmentNotify );
-	Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
-}());
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/client.js b/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/client.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/client.js
+++ /dev/null
@@ -1,57 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-	window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
-
-	// Fires when a fragment is shown
-	Reveal.addEventListener( 'fragmentshown', function( event ) {
-		var fragmentData = {
-			fragment : 'next',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when a fragment is hidden
-	Reveal.addEventListener( 'fragmenthidden', function( event ) {
-		var fragmentData = {
-			fragment : 'previous',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when slide is changed
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId,
-			markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
-
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/index.js b/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/index.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-	socket.on('fragmentchanged', function(fragmentData) {
-		socket.broadcast.emit('fragmentdata', fragmentData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/notes.html b/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/notes.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/notes-server/notes.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<meta name="viewport" content="width=1150">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				font-size: 24px;
-				width: 640px;
-				margin-top: 5px;
-				clear: left;
-			}
-
-			#wrap-current-slide {
-				width: 640px;
-				height: 512px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-				    -ms-transform-origin: 0 0;
-				     -o-transform-origin: 0 0;
-				        transform-origin: 0 0;
-
-				-webkit-transform: scale(0.5);
-				   -moz-transform: scale(0.5);
-				    -ms-transform: scale(0.5);
-				     -o-transform: scale(0.5);
-				        transform: scale(0.5);
-			}
-
-			#wrap-next-slide {
-				width: 448px;
-				height: 358px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-				    -ms-transform-origin: 0 0;
-				     -o-transform-origin: 0 0;
-				        transform-origin: 0 0;
-
-				-webkit-transform: scale(0.35);
-				   -moz-transform: scale(0.35);
-				    -ms-transform: scale(0.35);
-				     -o-transform: scale(0.35);
-				        transform: scale(0.35);
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-		</style>
-	</head>
-
-	<body>
-
-		<div id="wrap-current-slide" class="slides">
-			<iframe src="/?receiver" width="1280" height="1024" id="current-slide"></iframe>
-		</div>
-
-		<div id="wrap-next-slide" class="slides">
-			<iframe src="/?receiver" width="640" height="512" id="next-slide"></iframe>
-			<span>UPCOMING:</span>
-		</div>
-		<div id="notes"></div>
-
-		<script src="/socket.io/socket.io.js"></script>
-		<script src="/plugin/markdown/marked.js"></script>
-
-		<script>
-		var socketId = '{{socketId}}';
-		var socket = io.connect(window.location.origin);
-		var notes = document.getElementById('notes');
-		var currentSlide = document.getElementById('current-slide');
-		var nextSlide = document.getElementById('next-slide');
-
-		socket.on('slidedata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			if (data.markdown) {
-				notes.innerHTML = marked(data.notes);
-			}
-			else {
-				notes.innerHTML = data.notes;
-			}
-
-			currentSlide.contentWindow.Reveal.slide(data.indexh, data.indexv);
-			nextSlide.contentWindow.Reveal.slide(data.nextindexh, data.nextindexv);
-		});
-		socket.on('fragmentdata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			if (data.fragment === 'next') {
-				currentSlide.contentWindow.Reveal.nextFragment();
-			}
-			else if (data.fragment === 'previous') {
-				currentSlide.contentWindow.Reveal.prevFragment();
-			}
-		});
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.html b/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				font-size: 24px;
-				width: 640px;
-				margin-top: 5px;
-				clear: left;
-			}
-
-			#wrap-current-slide {
-				width: 640px;
-				height: 512px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-					-ms-transform-origin: 0 0;
-					 -o-transform-origin: 0 0;
-						transform-origin: 0 0;
-
-				-webkit-transform: scale(0.5);
-				   -moz-transform: scale(0.5);
-					-ms-transform: scale(0.5);
-					 -o-transform: scale(0.5);
-						transform: scale(0.5);
-			}
-
-			#wrap-next-slide {
-				width: 448px;
-				height: 358px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-					-ms-transform-origin: 0 0;
-					 -o-transform-origin: 0 0;
-						transform-origin: 0 0;
-
-				-webkit-transform: scale(0.35);
-				   -moz-transform: scale(0.35);
-					-ms-transform: scale(0.35);
-					 -o-transform: scale(0.35);
-						transform: scale(0.35);
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-
-			.error {
-				font-weight: bold;
-				color: red;
-				font-size: 1.5em;
-				text-align: center;
-				margin-top: 10%;
-			}
-
-			.error code {
-				font-family: monospace;
-			}
-
-			.time {
-				width: 448px;
-				margin: 30px 0 0 10px;
-				float: left;
-				text-align: center;
-				opacity: 0;
-
-				-webkit-transition: opacity 0.4s;
-				   -moz-transition: opacity 0.4s;
-				     -o-transition: opacity 0.4s;
-				        transition: opacity 0.4s;
-			}
-
-			.elapsed,
-			.clock {
-				color: #333;
-				font-size: 2em;
-				text-align: center;
-				display: inline-block;
-				padding: 0.5em;
-				background-color: #eee;
-				border-radius: 10px;
-			}
-
-			.elapsed h2,
-			.clock h2 {
-				font-size: 0.8em;
-				line-height: 100%;
-				margin: 0;
-				color: #aaa;
-			}
-
-			.elapsed .mute {
-				color: #ddd;
-			}
-
-		</style>
-	</head>
-
-	<body>
-
-		<script>
-			function getNotesURL( controls ) {
-				return window.opener.location.protocol + '//' + window.opener.location.host + window.opener.location.pathname + '?receiver&controls='+ ( controls || 'false' ) +'&progress=false&overview=false' + window.opener.location.hash;
-			}
-			var notesCurrentSlideURL = getNotesURL( true );
-			var notesNextSlideURL = getNotesURL( false );
-		</script>
-
-		<div id="wrap-current-slide" class="slides">
-			<script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ notesCurrentSlideURL +'"></iframe>' );</script>
-		</div>
-
-		<div id="wrap-next-slide" class="slides">
-			<script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ notesNextSlideURL +'"></iframe>' );</script>
-			<span>UPCOMING:</span>
-		</div>
-
-		<div class="time">
-			<div class="clock">
-				<h2>Time</h2>
-				<span id="clock">0:00:00 AM</span>
-			</div>
-			<div class="elapsed">
-				<h2>Elapsed</h2>
-				<span id="hours">00</span><span id="minutes">:00</span><span id="seconds">:00</span>
-			</div>
-		</div>
-
-		<div id="notes"></div>
-
-		<script src="../../plugin/markdown/marked.js"></script>
-		<script>
-
-			window.addEventListener( 'load', function() {
-
-				if( window.opener && window.opener.location && window.opener.location.href ) {
-
-					var notes = document.getElementById( 'notes' ),
-						currentSlide = document.getElementById( 'current-slide' ),
-						nextSlide = document.getElementById( 'next-slide' ),
-						silenced = false;
-
-					window.addEventListener( 'message', function( event ) {
-						var data = JSON.parse( event.data );
-
-						// No need for updating the notes in case of fragment changes
-						if ( data.notes !== undefined) {
-							if( data.markdown ) {
-								notes.innerHTML = marked( data.notes );
-							}
-							else {
-								notes.innerHTML = data.notes;
-							}
-						}
-
-						silenced = true;
-
-						// Update the note slides
-						currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf );
-						nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
-
-						silenced = false;
-
-					}, false );
-
-					var start = new Date(),
-						timeEl = document.querySelector( '.time' ),
-						clockEl = document.getElementById( 'clock' ),
-						hoursEl = document.getElementById( 'hours' ),
-						minutesEl = document.getElementById( 'minutes' ),
-						secondsEl = document.getElementById( 'seconds' );
-
-					setInterval( function() {
-
-						timeEl.style.opacity = 1;
-
-						var diff, hours, minutes, seconds,
-							now = new Date();
-
-						diff = now.getTime() - start.getTime();
-						hours = Math.floor( diff / ( 1000 * 60 * 60 ) );
-						minutes = Math.floor( ( diff / ( 1000 * 60 ) ) % 60 );
-						seconds = Math.floor( ( diff / 1000 ) % 60 );
-
-						clockEl.innerHTML = now.toLocaleTimeString();
-						hoursEl.innerHTML = zeroPadInteger( hours );
-						hoursEl.className = hours > 0 ? "" : "mute";
-						minutesEl.innerHTML = ":" + zeroPadInteger( minutes );
-						minutesEl.className = minutes > 0 ? "" : "mute";
-						secondsEl.innerHTML = ":" + zeroPadInteger( seconds );
-
-					}, 1000 );
-
-					// Broadcasts the state of the notes window to synchronize
-					// the main window
-					function synchronizeMainWindow() {
-
-						if( !silenced ) {
-							var indices = currentSlide.contentWindow.Reveal.getIndices();
-							window.opener.Reveal.slide( indices.h, indices.v, indices.f );
-						}
-
-					}
-
-					// Navigate the main window when the notes slide changes
-					currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', synchronizeMainWindow );
-					currentSlide.contentWindow.Reveal.addEventListener( 'fragmentshown', synchronizeMainWindow );
-					currentSlide.contentWindow.Reveal.addEventListener( 'fragmenthidden', synchronizeMainWindow );
-
-				}
-				else {
-
-					document.body.innerHTML =  '<p class="error">Unable to access <code>window.opener.location</code>.<br>Make sure the presentation is running on a web server.</p>';
-
-				}
-
-
-			}, false );
-
-			function zeroPadInteger( num ) {
-				var str = "00" + parseInt( num );
-				return str.substring( str.length - 2 );
-			}
-
-		</script>
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.js b/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/notes/notes.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Handles opening of and synchronization with the reveal.js
- * notes window.
- */
-var RevealNotes = (function() {
-
-	function openNotes() {
-		var jsFileLocation = document.querySelector('script[src$="notes.js"]').src;  // this js file path
-		jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, '');   // the js folder path
-		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
-
-		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', post );
-
-		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', post );
-
-		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', post );
-
-		/**
-		 * Posts the current slide data to the notes window
-		 */
-		function post() {
-			var slideElement = Reveal.getCurrentSlide(),
-				slideIndices = Reveal.getIndices(),
-				messageData;
-
-			var notes = slideElement.querySelector( 'aside.notes' ),
-				nextindexh,
-				nextindexv;
-
-			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-				nextindexh = slideIndices.h;
-				nextindexv = slideIndices.v + 1;
-			} else {
-				nextindexh = slideIndices.h + 1;
-				nextindexv = 0;
-			}
-
-			messageData = {
-				notes : notes ? notes.innerHTML : '',
-				indexh : slideIndices.h,
-				indexv : slideIndices.v,
-				indexf : slideIndices.f,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-			};
-
-			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
-		}
-
-		// Navigate to the current slide when the notes are loaded
-		notesPopup.addEventListener( 'load', function( event ) {
-			post();
-		}, false );
-	}
-
-	// If the there's a 'notes' query set, open directly
-	if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
-		openNotes();
-	}
-
-	// Open the notes when the 's' key is hit
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openNotes();
-		}
-	}, false );
-
-	return { open: openNotes };
-})();
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/example.html b/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/example.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/example.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-	<body>
-
-		<iframe id="reveal" src="../../index.html" style="border: 0;" width="500" height="500"></iframe>
-
-		<div>
-			<input id="back" type="button" value="go back"/>
-			<input id="ahead" type="button" value="go ahead"/>
-			<input id="slideto" type="button" value="slideto 2-2"/>
-		</div>
-
-		<script>
-
-			(function (){
-
-				var back = document.getElementById( 'back' ),
-						ahead = document.getElementById( 'ahead' ),
-						slideto = document.getElementById( 'slideto' ),
-						reveal =  window.frames[0];
-
-					back.addEventListener( 'click', function () {
-						
-					reveal.postMessage( JSON.stringify({method: 'prev', args: []}), '*' );
-				}, false );
-
-				ahead.addEventListener( 'click', function (){
-					reveal.postMessage( JSON.stringify({method: 'next', args: []}), '*' );
-				}, false );
-
-				slideto.addEventListener( 'click', function (){
-					reveal.postMessage( JSON.stringify({method: 'slide', args: [2,2]}), '*' );
-				}, false );
-
-			}());
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/postmessage.js b/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/postmessage.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/postmessage/postmessage.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-	simple postmessage plugin
-
-	Useful when a reveal slideshow is inside an iframe.
-	It allows to call reveal methods from outside.
-
-	Example:
-		 var reveal =  window.frames[0];
-
-		 // Reveal.prev(); 
-		 reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
-		 // Reveal.next(); 
-		 reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
-		 // Reveal.slide(2, 2); 
-		 reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
-
-	Add to the slideshow:
-
-		dependencies: [
-			...
-			{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
-		]
-
-*/
-
-(function (){
-
-	window.addEventListener( "message", function ( event ) {
-		var data = JSON.parse( event.data ),
-				method = data.method,
-				args = data.args;
-
-		if( typeof Reveal[method] === 'function' ) {
-			Reveal[method].apply( Reveal, data.args );
-		}
-	}, false);
-
-}());
-
-
-
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/print-pdf/print-pdf.js b/docs/slides/BOS14/_support/reveal.js/plugin/print-pdf/print-pdf.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/print-pdf/print-pdf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * phantomjs script for printing presentations to PDF.
- *
- * Example:
- * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
- *
- * By Manuel Bieh (https://github.com/manuelbieh)
- */
-
-// html2pdf.js
-var page = new WebPage();
-var system = require( 'system' );
-
-page.viewportSize  = {
-	width: 1024,
-	height: 768
-};
-
-page.paperSize = {
-	format: 'letter',
-	orientation: 'landscape',
-	margin: {
-		left: '0',
-		right: '0',
-		top: '0',
-		bottom: '0'
-	}
-};
-
-var revealFile = system.args[1] || 'index.html?print-pdf';
-var slideFile = system.args[2] || 'slides.pdf';
-
-if( slideFile.match( /\.pdf$/gi ) === null ) {
-	slideFile += '.pdf';
-}
-
-console.log( 'Printing PDF...' );
-
-page.open( revealFile, function( status ) {
-	console.log( 'Printed succesfully' );
-	page.render( slideFile );
-	phantom.exit();
-} );
-
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/remotes/remotes.js b/docs/slides/BOS14/_support/reveal.js/plugin/remotes/remotes.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/remotes/remotes.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Touch-based remote controller for your presentation courtesy 
- * of the folks at http://remotes.io
- */
-
-(function(window){
-
-    /**
-     * Detects if we are dealing with a touch enabled device (with some false positives)
-     * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js   
-     */
-    var hasTouch  = (function(){
-        return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
-    })();
-
-    /**
-     * Detects if notes are enable and the current page is opened inside an /iframe
-     * this prevents loading Remotes.io several times
-     */
-    var isNotesAndIframe = (function(){
-        return window.RevealNotes && !(self == top);
-    })();
-
-    if(!hasTouch && !isNotesAndIframe){
-        head.ready( 'remotes.ne.min.js', function() {
-            new Remotes("preview")
-                .on("swipe-left", function(e){ Reveal.right(); })
-                .on("swipe-right", function(e){ Reveal.left(); })
-                .on("swipe-up", function(e){ Reveal.down(); })
-                .on("swipe-down", function(e){ Reveal.up(); })
-                .on("tap", function(e){ Reveal.next(); })
-                .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
-                .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
-            ;
-        } );
-
-        head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
-    }
-})(window);
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/search/search.js b/docs/slides/BOS14/_support/reveal.js/plugin/search/search.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/search/search.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
- * by navigatating to that slide and highlighting it.
- *
- * By Jon Snyder <snyder.jon@gmail.com>, February 2013
- */
-
-var RevealSearch = (function() {
-
-	var matchedSlides;
-	var currentMatchedIndex;
-	var searchboxDirty;
-	var myHilitor;
-
-// Original JavaScript code by Chirp Internet: www.chirp.com.au
-// Please acknowledge use of this code by including this header.
-// 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
-
-function Hilitor(id, tag)
-{
-
-  var targetNode = document.getElementById(id) || document.body;
-  var hiliteTag = tag || "EM";
-  var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
-  var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
-  var wordColor = [];
-  var colorIdx = 0;
-  var matchRegex = "";
-  var matchingSlides = [];
-
-  this.setRegex = function(input)
-  {
-    input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
-    matchRegex = new RegExp("(" + input + ")","i");
-  }
-
-  this.getRegex = function()
-  {
-    return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
-  }
-
-  // recursively apply word highlighting
-  this.hiliteWords = function(node)
-  {
-    if(node == undefined || !node) return;
-    if(!matchRegex) return;
-    if(skipTags.test(node.nodeName)) return;
-
-    if(node.hasChildNodes()) {
-      for(var i=0; i < node.childNodes.length; i++)
-        this.hiliteWords(node.childNodes[i]);
-    }
-    if(node.nodeType == 3) { // NODE_TEXT
-      if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
-      	//find the slide's section element and save it in our list of matching slides
-      	var secnode = node.parentNode;
-      	while (secnode.nodeName != 'SECTION') {
-      		secnode = secnode.parentNode;
-      	}
-      	
-      	var slideIndex = Reveal.getIndices(secnode);
-      	var slidelen = matchingSlides.length;
-      	var alreadyAdded = false;
-      	for (var i=0; i < slidelen; i++) {
-      		if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
-      			alreadyAdded = true;
-      		}
-      	}
-      	if (! alreadyAdded) {
-      		matchingSlides.push(slideIndex);
-      	}
-      	
-        if(!wordColor[regs[0].toLowerCase()]) {
-          wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
-        }
-
-        var match = document.createElement(hiliteTag);
-        match.appendChild(document.createTextNode(regs[0]));
-        match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
-        match.style.fontStyle = "inherit";
-        match.style.color = "#000";
-
-        var after = node.splitText(regs.index);
-        after.nodeValue = after.nodeValue.substring(regs[0].length);
-        node.parentNode.insertBefore(match, after);
-      }
-    }
-  };
-
-  // remove highlighting
-  this.remove = function()
-  {
-    var arr = document.getElementsByTagName(hiliteTag);
-    while(arr.length && (el = arr[0])) {
-      el.parentNode.replaceChild(el.firstChild, el);
-    }
-  };
-
-  // start highlighting at target node
-  this.apply = function(input)
-  {
-    if(input == undefined || !input) return;
-    this.remove();
-    this.setRegex(input);
-    this.hiliteWords(targetNode);
-    return matchingSlides;
-  };
-
-}
-
-	function openSearch() {
-		//ensure the search term input dialog is visible and has focus:
-		var inputbox = document.getElementById("searchinput");
-		inputbox.style.display = "inline";
-		inputbox.focus();
-		inputbox.select();
-	}
-
-	function toggleSearch() {
-		var inputbox = document.getElementById("searchinput");
-		if (inputbox.style.display !== "inline") {
-			openSearch();
-		}
-		else {
-			inputbox.style.display = "none";
-			myHilitor.remove();
-		}
-	}
-
-	function doSearch() {
-		//if there's been a change in the search term, perform a new search:
-		if (searchboxDirty) {
-			var searchstring = document.getElementById("searchinput").value;
-
-			//find the keyword amongst the slides
-			myHilitor = new Hilitor("slidecontent");
-			matchedSlides = myHilitor.apply(searchstring);
-			currentMatchedIndex = 0;
-		}
-
-		//navigate to the next slide that has the keyword, wrapping to the first if necessary
-		if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
-			currentMatchedIndex = 0;
-		}
-		if (matchedSlides.length > currentMatchedIndex) {
-			Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
-			currentMatchedIndex++;
-		}
-	}
-
-	var dom = {};
-	dom.wrapper = document.querySelector( '.reveal' );
-
-	if( !dom.wrapper.querySelector( '.searchbox' ) ) {
-			var searchElement = document.createElement( 'div' );
-			searchElement.id = "searchinputdiv";
-			searchElement.classList.add( 'searchdiv' );
-      searchElement.style.position = 'absolute';
-      searchElement.style.top = '10px';
-      searchElement.style.left = '10px';
-      //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
-			searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
-			dom.wrapper.appendChild( searchElement );
-	}
-
-	document.getElementById("searchbutton").addEventListener( 'click', function(event) {
-		doSearch();
-	}, false );
-
-	document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
-		switch (event.keyCode) {
-			case 13:
-				event.preventDefault();
-				doSearch();
-				searchboxDirty = false;
-				break;
-			default:
-				searchboxDirty = true;
-		}
-	}, false );
-
-	// Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
-	/*
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openSearch();
-		}
-	}, false );
-*/
-	return { open: openSearch };
-})();
diff --git a/docs/slides/BOS14/_support/reveal.js/plugin/zoom-js/zoom.js b/docs/slides/BOS14/_support/reveal.js/plugin/zoom-js/zoom.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/plugin/zoom-js/zoom.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Custom reveal.js integration
-(function(){
-	var isEnabled = true;
-
-	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
-		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
-
-		if( event[ modifier ] && isEnabled ) {
-			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
-		}
-	} );
-
-	Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
-	Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
-})();
-
-/*!
- * zoom.js 0.2 (modified version for use with reveal.js)
- * http://lab.hakim.se/zoom-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var zoom = (function(){
-
-	// The current zoom level (scale)
-	var level = 1;
-
-	// The current mouse position, used for panning
-	var mouseX = 0,
-		mouseY = 0;
-
-	// Timeout before pan is activated
-	var panEngageTimeout = -1,
-		panUpdateInterval = -1;
-
-	var currentOptions = null;
-
-	// Check for transform support so that we can fallback otherwise
-	var supportsTransforms = 	'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-	if( supportsTransforms ) {
-		// The easing that will be applied when we zoom in/out
-		document.body.style.transition = 'transform 0.8s ease';
-		document.body.style.OTransition = '-o-transform 0.8s ease';
-		document.body.style.msTransition = '-ms-transform 0.8s ease';
-		document.body.style.MozTransition = '-moz-transform 0.8s ease';
-		document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
-	}
-
-	// Zoom out if the user hits escape
-	document.addEventListener( 'keyup', function( event ) {
-		if( level !== 1 && event.keyCode === 27 ) {
-			zoom.out();
-		}
-	}, false );
-
-	// Monitor mouse movement for panning
-	document.addEventListener( 'mousemove', function( event ) {
-		if( level !== 1 ) {
-			mouseX = event.clientX;
-			mouseY = event.clientY;
-		}
-	}, false );
-
-	/**
-	 * Applies the CSS required to zoom in, prioritizes use of CSS3
-	 * transforms but falls back on zoom for IE.
-	 *
-	 * @param {Number} pageOffsetX
-	 * @param {Number} pageOffsetY
-	 * @param {Number} elementOffsetX
-	 * @param {Number} elementOffsetY
-	 * @param {Number} scale
-	 */
-	function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
-
-		if( supportsTransforms ) {
-			var origin = pageOffsetX +'px '+ pageOffsetY +'px',
-				transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
-
-			document.body.style.transformOrigin = origin;
-			document.body.style.OTransformOrigin = origin;
-			document.body.style.msTransformOrigin = origin;
-			document.body.style.MozTransformOrigin = origin;
-			document.body.style.WebkitTransformOrigin = origin;
-
-			document.body.style.transform = transform;
-			document.body.style.OTransform = transform;
-			document.body.style.msTransform = transform;
-			document.body.style.MozTransform = transform;
-			document.body.style.WebkitTransform = transform;
-		}
-		else {
-			// Reset all values
-			if( scale === 1 ) {
-				document.body.style.position = '';
-				document.body.style.left = '';
-				document.body.style.top = '';
-				document.body.style.width = '';
-				document.body.style.height = '';
-				document.body.style.zoom = '';
-			}
-			// Apply scale
-			else {
-				document.body.style.position = 'relative';
-				document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
-				document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
-				document.body.style.width = ( scale * 100 ) + '%';
-				document.body.style.height = ( scale * 100 ) + '%';
-				document.body.style.zoom = scale;
-			}
-		}
-
-		level = scale;
-
-		if( level !== 1 && document.documentElement.classList ) {
-			document.documentElement.classList.add( 'zoomed' );
-		}
-		else {
-			document.documentElement.classList.remove( 'zoomed' );
-		}
-	}
-
-	/**
-	 * Pan the document when the mosue cursor approaches the edges
-	 * of the window.
-	 */
-	function pan() {
-		var range = 0.12,
-			rangeX = window.innerWidth * range,
-			rangeY = window.innerHeight * range,
-			scrollOffset = getScrollOffset();
-
-		// Up
-		if( mouseY < rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
-		}
-		// Down
-		else if( mouseY > window.innerHeight - rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
-		}
-
-		// Left
-		if( mouseX < rangeX ) {
-			window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
-		}
-		// Right
-		else if( mouseX > window.innerWidth - rangeX ) {
-			window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
-		}
-	}
-
-	function getScrollOffset() {
-		return {
-			x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
-			y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
-		}
-	}
-
-	return {
-		/**
-		 * Zooms in on either a rectangle or HTML element.
-		 *
-		 * @param {Object} options
-		 *   - element: HTML element to zoom in on
-		 *   OR
-		 *   - x/y: coordinates in non-transformed space to zoom in on
-		 *   - width/height: the portion of the screen to zoom in on
-		 *   - scale: can be used instead of width/height to explicitly set scale
-		 */
-		to: function( options ) {
-			// Due to an implementation limitation we can't zoom in
-			// to another element without zooming out first
-			if( level !== 1 ) {
-				zoom.out();
-			}
-			else {
-				options.x = options.x || 0;
-				options.y = options.y || 0;
-
-				// If an element is set, that takes precedence
-				if( !!options.element ) {
-					// Space around the zoomed in element to leave on screen
-					var padding = 20;
-
-					options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
-					options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
-					options.x = options.element.getBoundingClientRect().left - padding;
-					options.y = options.element.getBoundingClientRect().top - padding;
-				}
-
-				// If width/height values are set, calculate scale from those values
-				if( options.width !== undefined && options.height !== undefined ) {
-					options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
-				}
-
-				if( options.scale > 1 ) {
-					options.x *= options.scale;
-					options.y *= options.scale;
-
-					var scrollOffset = getScrollOffset();
-
-					if( options.element ) {
-						scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
-					}
-
-					magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
-
-					if( options.pan !== false ) {
-
-						// Wait with engaging panning as it may conflict with the
-						// zoom transition
-						panEngageTimeout = setTimeout( function() {
-							panUpdateInterval = setInterval( pan, 1000 / 60 );
-						}, 800 );
-
-					}
-				}
-
-				currentOptions = options;
-			}
-		},
-
-		/**
-		 * Resets the document zoom state to its default.
-		 */
-		out: function() {
-			clearTimeout( panEngageTimeout );
-			clearInterval( panUpdateInterval );
-
-			var scrollOffset = getScrollOffset();
-
-			if( currentOptions && currentOptions.element ) {
-				scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
-			}
-
-			magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
-
-			level = 1;
-		},
-
-		// Alias
-		magnify: function( options ) { this.to( options ) },
-		reset: function() { this.out() },
-
-		zoomLevel: function() {
-			return level;
-		}
-	}
-
-})();
-
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image1.png b/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image1.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image1.png and /dev/null differ
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image2.png b/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image2.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/_support/reveal.js/test/examples/assets/image2.png and /dev/null differ
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/barebones.html b/docs/slides/BOS14/_support/reveal.js/test/examples/barebones.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/examples/barebones.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Barebones</title>
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>Barebones Presentation</h2>
-					<p>This example contains the bare minimum includes and markup required to run a reveal.js presentation.</p>
-				</section>
-
-				<section>
-					<h2>No Theme</h2>
-					<p>There's no theme included, so it will fall back on browser defaults.</p>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize();
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/embedded-media.html b/docs/slides/BOS14/_support/reveal.js/test/examples/embedded-media.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/examples/embedded-media.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Embedded Media</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/default.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>Embedded Media Test</h2>
-				</section>
-
-				<section>
-					<iframe data-autoplay width="420" height="345" src="http://www.youtube.com/embed/l3RQZ4mcr1c"></iframe>
-				</section>
-
-				<section>
-					<h2>Empty Slide</h2>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				transition: 'linear'
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/math.html b/docs/slides/BOS14/_support/reveal.js/test/examples/math.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/examples/math.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Math Plugin</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/night.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>reveal.js Math Plugin</h2>
-					<p>A thin wrapper for MathJax</p>
-				</section>
-
-				<section>
-					<h3>The Lorenz Equations</h3>
-
-					\[\begin{aligned}
-					\dot{x} &amp; = \sigma(y-x) \\
-					\dot{y} &amp; = \rho x - y - xz \\
-					\dot{z} &amp; = -\beta z + xy
-					\end{aligned} \]
-				</section>
-
-				<section>
-					<h3>The Cauchy-Schwarz Inequality</h3>
-
-					<script type="math/tex; mode=display">
-						\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)
-					</script>
-				</section>
-
-				<section>
-					<h3>A Cross Product Formula</h3>
-
-					\[\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
-					\mathbf{i} &amp; \mathbf{j} &amp; \mathbf{k} \\
-					\frac{\partial X}{\partial u} &amp;  \frac{\partial Y}{\partial u} &amp; 0 \\
-					\frac{\partial X}{\partial v} &amp;  \frac{\partial Y}{\partial v} &amp; 0
-					\end{vmatrix}  \]
-				</section>
-
-				<section>
-					<h3>The probability of getting \(k\) heads when flipping \(n\) coins is</h3>
-
-					\[P(E)   = {n \choose k} p^k (1-p)^{ n-k} \]
-				</section>
-
-				<section>
-					<h3>An Identity of Ramanujan</h3>
-
-					\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
-					1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
-					{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
-				</section>
-
-				<section>
-					<h3>A Rogers-Ramanujan Identity</h3>
-
-					\[  1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
-					\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
-				</section>
-
-				<section>
-					<h3>Maxwell&#8217;s Equations</h3>
-
-					\[  \begin{aligned}
-					\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\   \nabla \cdot \vec{\mathbf{E}} &amp; = 4 \pi \rho \\
-					\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} &amp; = \vec{\mathbf{0}} \\
-					\nabla \cdot \vec{\mathbf{B}} &amp; = 0 \end{aligned}
-					\]
-				</section>
-
-				<section>
-					<section>
-						<h3>The Lorenz Equations</h3>
-
-						<div class="fragment">
-							\[\begin{aligned}
-							\dot{x} &amp; = \sigma(y-x) \\
-							\dot{y} &amp; = \rho x - y - xz \\
-							\dot{z} &amp; = -\beta z + xy
-							\end{aligned} \]
-						</div>
-					</section>
-
-					<section>
-						<h3>The Cauchy-Schwarz Inequality</h3>
-
-						<div class="fragment">
-							\[ \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \]
-						</div>
-					</section>
-
-					<section>
-						<h3>A Cross Product Formula</h3>
-
-						<div class="fragment">
-							\[\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
-							\mathbf{i} &amp; \mathbf{j} &amp; \mathbf{k} \\
-							\frac{\partial X}{\partial u} &amp;  \frac{\partial Y}{\partial u} &amp; 0 \\
-							\frac{\partial X}{\partial v} &amp;  \frac{\partial Y}{\partial v} &amp; 0
-							\end{vmatrix}  \]
-						</div>
-					</section>
-
-					<section>
-						<h3>The probability of getting \(k\) heads when flipping \(n\) coins is</h3>
-
-						<div class="fragment">
-							\[P(E)   = {n \choose k} p^k (1-p)^{ n-k} \]
-						</div>
-					</section>
-
-					<section>
-						<h3>An Identity of Ramanujan</h3>
-
-						<div class="fragment">
-							\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
-							1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
-							{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
-						</div>
-					</section>
-
-					<section>
-						<h3>A Rogers-Ramanujan Identity</h3>
-
-						<div class="fragment">
-							\[  1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
-							\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
-						</div>
-					</section>
-
-					<section>
-						<h3>Maxwell&#8217;s Equations</h3>
-
-						<div class="fragment">
-							\[  \begin{aligned}
-							\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\   \nabla \cdot \vec{\mathbf{E}} &amp; = 4 \pi \rho \\
-							\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} &amp; = \vec{\mathbf{0}} \\
-							\nabla \cdot \vec{\mathbf{B}} &amp; = 0 \end{aligned}
-							\]
-						</div>
-					</section>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				history: true,
-				transition: 'linear',
-
-				math: {
-					// mathjax: 'http://cdn.mathjax.org/mathjax/latest/MathJax.js',
-					config: 'TeX-AMS_HTML-full'
-				},
-
-				dependencies: [
-					{ src: '../../lib/js/classList.js' },
-					{ src: '../../plugin/math/math.js', async: true }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/examples/slide-backgrounds.html b/docs/slides/BOS14/_support/reveal.js/test/examples/slide-backgrounds.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/examples/slide-backgrounds.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Backgrounds</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/serif.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section data-background="#00ffff">
-					<h2>data-background: #00ffff</h2>
-				</section>
-
-				<section data-background="#bb00bb">
-					<h2>data-background: #bb00bb</h2>
-				</section>
-
-				<section>
-					<section data-background="#ff0000">
-						<h2>data-background: #ff0000</h2>
-					</section>
-					<section data-background="rgba(0, 0, 0, 0.2)">
-						<h2>data-background: rgba(0, 0, 0, 0.2)</h2>
-					</section>
-					<section data-background="salmon">
-						<h2>data-background: salmon</h2>
-					</section>
-				</section>
-
-				<section data-background="rgba(0, 100, 100, 0.2)">
-					<section>
-						<h2>Background applied to stack</h2>
-					</section>
-					<section>
-						<h2>Background applied to stack</h2>
-					</section>
-					<section data-background="rgba(100, 0, 0, 0.2)">
-						<h2>Background applied to slide inside of stack</h2>
-					</section>
-				</section>
-
-				<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-					<h2>Background image</h2>
-				</section>
-
-				<section>
-					<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-						<h2>Background image</h2>
-					</section>
-					<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-						<h2>Background image</h2>
-					</section>
-				</section>
-
-				<section data-background="assets/image2.png" data-background-size="100px" data-background-repeat="repeat" data-background-color="#111" style="background: rgba(255,255,255,0.9)">
-					<h2>Background image</h2>
-					<pre>data-background-size="100px" data-background-repeat="repeat" data-background-color="#111"</pre>
-				</section>
-
-				<section data-background="#888888">
-					<h2>Same background twice (1/2)</h2>
-				</section>
-				<section data-background="#888888">
-					<h2>Same background twice (2/2)</h2>
-				</section>
-
-				<section>
-					<section data-background="#417203">
-						<h2>Same background twice vertical (1/2)</h2>
-					</section>
-					<section data-background="#417203">
-						<h2>Same background twice vertical (2/2)</h2>
-					</section>
-				</section>
-
-				<section data-background="#934f4d">
-					<h2>Same background from horizontal to vertical (1/3)</h2>
-				</section>
-				<section>
-					<section data-background="#934f4d">
-						<h2>Same background from horizontal to vertical (2/3)</h2>
-					</section>
-					<section data-background="#934f4d">
-						<h2>Same background from horizontal to vertical (3/3)</h2>
-					</section>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
-			Reveal.initialize({
-				center: true,
-				// rtl: true,
-
-				transition: 'linear',
-				// transitionSpeed: 'slow',
-				// backgroundTransition: 'slide'
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.css b/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.css
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-
-	border-radius: 5px 5px 0 0;
-	-moz-border-radius: 5px 5px 0 0;
-	-webkit-border-top-right-radius: 5px;
-	-webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-	padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 0 0.5em 2em;
-	color: #5E740B;
-	background-color: #eee;
-	overflow: hidden;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
-	float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {
-	display: none;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #c2ccd1;
-	text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #fff;
-
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: black; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3c510c;
-	background-color: #fff;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-	-moz-border-radius: 0 0 5px 5px;
-	-webkit-border-bottom-right-radius: 5px;
-	-webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
-	font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.js b/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/qunit-1.12.0.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
-	assert,
-	config,
-	onErrorFnPrev,
-	testId = 0,
-	fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	// Keep a local reference to Date (GH-283)
-	Date = window.Date,
-	setTimeout = window.setTimeout,
-	defined = {
-		setTimeout: typeof window.setTimeout !== "undefined",
-		sessionStorage: (function() {
-			var x = "qunit-test-string";
-			try {
-				sessionStorage.setItem( x, x );
-				sessionStorage.removeItem( x );
-				return true;
-			} catch( e ) {
-				return false;
-			}
-		}())
-	},
-	/**
-	 * Provides a normalized error string, correcting an issue
-	 * with IE 7 (and prior) where Error.prototype.toString is
-	 * not properly implemented
-	 *
-	 * Based on http://es5.github.com/#x15.11.4.4
-	 *
-	 * @param {String|Error} error
-	 * @return {String} error message
-	 */
-	errorString = function( error ) {
-		var name, message,
-			errorString = error.toString();
-		if ( errorString.substring( 0, 7 ) === "[object" ) {
-			name = error.name ? error.name.toString() : "Error";
-			message = error.message ? error.message.toString() : "";
-			if ( name && message ) {
-				return name + ": " + message;
-			} else if ( name ) {
-				return name;
-			} else if ( message ) {
-				return message;
-			} else {
-				return "Error";
-			}
-		} else {
-			return errorString;
-		}
-	},
-	/**
-	 * Makes a clone of an object using only Array or Object as base,
-	 * and copies over the own enumerable properties.
-	 *
-	 * @param {Object} obj
-	 * @return {Object} New object with only the own properties (recursively).
-	 */
-	objectValues = function( obj ) {
-		// Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
-		/*jshint newcap: false */
-		var key, val,
-			vals = QUnit.is( "array", obj ) ? [] : {};
-		for ( key in obj ) {
-			if ( hasOwn.call( obj, key ) ) {
-				val = obj[key];
-				vals[key] = val === Object(val) ? objectValues(val) : val;
-			}
-		}
-		return vals;
-	};
-
-function Test( settings ) {
-	extend( this, settings );
-	this.assertions = [];
-	this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
-	init: function() {
-		var a, b, li,
-			tests = id( "qunit-tests" );
-
-		if ( tests ) {
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml;
-
-			// `a` initialized at top of scope
-			a = document.createElement( "a" );
-			a.innerHTML = "Rerun";
-			a.href = QUnit.url({ testNumber: this.testNumber });
-
-			li = document.createElement( "li" );
-			li.appendChild( b );
-			li.appendChild( a );
-			li.className = "running";
-			li.id = this.id = "qunit-test-output" + testId++;
-
-			tests.appendChild( li );
-		}
-	},
-	setup: function() {
-		if (
-			// Emit moduleStart when we're switching from one module to another
-			this.module !== config.previousModule ||
-				// They could be equal (both undefined) but if the previousModule property doesn't
-				// yet exist it means this is the first test in a suite that isn't wrapped in a
-				// module, in which case we'll just emit a moduleStart event for 'undefined'.
-				// Without this, reporters can get testStart before moduleStart  which is a problem.
-				!hasOwn.call( config, "previousModule" )
-		) {
-			if ( hasOwn.call( config, "previousModule" ) ) {
-				runLoggingCallbacks( "moduleDone", QUnit, {
-					name: config.previousModule,
-					failed: config.moduleStats.bad,
-					passed: config.moduleStats.all - config.moduleStats.bad,
-					total: config.moduleStats.all
-				});
-			}
-			config.previousModule = this.module;
-			config.moduleStats = { all: 0, bad: 0 };
-			runLoggingCallbacks( "moduleStart", QUnit, {
-				name: this.module
-			});
-		}
-
-		config.current = this;
-
-		this.testEnvironment = extend({
-			setup: function() {},
-			teardown: function() {}
-		}, this.moduleTestEnvironment );
-
-		this.started = +new Date();
-		runLoggingCallbacks( "testStart", QUnit, {
-			name: this.testName,
-			module: this.module
-		});
-
-		/*jshint camelcase:false */
-
-
-		/**
-		 * Expose the current test environment.
-		 *
-		 * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
-		 */
-		QUnit.current_testEnvironment = this.testEnvironment;
-
-		/*jshint camelcase:true */
-
-		if ( !config.pollution ) {
-			saveGlobal();
-		}
-		if ( config.notrycatch ) {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-			return;
-		}
-		try {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-		} catch( e ) {
-			QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-		}
-	},
-	run: function() {
-		config.current = this;
-
-		var running = id( "qunit-testresult" );
-
-		if ( running ) {
-			running.innerHTML = "Running: <br/>" + this.nameHtml;
-		}
-
-		if ( this.async ) {
-			QUnit.stop();
-		}
-
-		this.callbackStarted = +new Date();
-
-		if ( config.notrycatch ) {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-			return;
-		}
-
-		try {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-		} catch( e ) {
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-
-			QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-			// else next test will carry the responsibility
-			saveGlobal();
-
-			// Restart the tests if they're blocking
-			if ( config.blocking ) {
-				QUnit.start();
-			}
-		}
-	},
-	teardown: function() {
-		config.current = this;
-		if ( config.notrycatch ) {
-			if ( typeof this.callbackRuntime === "undefined" ) {
-				this.callbackRuntime = +new Date() - this.callbackStarted;
-			}
-			this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			return;
-		} else {
-			try {
-				this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			} catch( e ) {
-				QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-			}
-		}
-		checkPollution();
-	},
-	finish: function() {
-		config.current = this;
-		if ( config.requireExpects && this.expected === null ) {
-			QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-		} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-			QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-		} else if ( this.expected === null && !this.assertions.length ) {
-			QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
-		}
-
-		var i, assertion, a, b, time, li, ol,
-			test = this,
-			good = 0,
-			bad = 0,
-			tests = id( "qunit-tests" );
-
-		this.runtime = +new Date() - this.started;
-		config.stats.all += this.assertions.length;
-		config.moduleStats.all += this.assertions.length;
-
-		if ( tests ) {
-			ol = document.createElement( "ol" );
-			ol.className = "qunit-assert-list";
-
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				assertion = this.assertions[i];
-
-				li = document.createElement( "li" );
-				li.className = assertion.result ? "pass" : "fail";
-				li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-				ol.appendChild( li );
-
-				if ( assertion.result ) {
-					good++;
-				} else {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-
-			// store result when possible
-			if ( QUnit.config.reorder && defined.sessionStorage ) {
-				if ( bad ) {
-					sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-				} else {
-					sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-				}
-			}
-
-			if ( bad === 0 ) {
-				addClass( ol, "qunit-collapsed" );
-			}
-
-			// `b` initialized at top of scope
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
-			addEvent(b, "click", function() {
-				var next = b.parentNode.lastChild,
-					collapsed = hasClass( next, "qunit-collapsed" );
-				( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-			});
-
-			addEvent(b, "dblclick", function( e ) {
-				var target = e && e.target ? e.target : window.event.srcElement;
-				if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-					target = target.parentNode;
-				}
-				if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-					window.location = QUnit.url({ testNumber: test.testNumber });
-				}
-			});
-
-			// `time` initialized at top of scope
-			time = document.createElement( "span" );
-			time.className = "runtime";
-			time.innerHTML = this.runtime + " ms";
-
-			// `li` initialized at top of scope
-			li = id( this.id );
-			li.className = bad ? "fail" : "pass";
-			li.removeChild( li.firstChild );
-			a = li.firstChild;
-			li.appendChild( b );
-			li.appendChild( a );
-			li.appendChild( time );
-			li.appendChild( ol );
-
-		} else {
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				if ( !this.assertions[i].result ) {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-		}
-
-		runLoggingCallbacks( "testDone", QUnit, {
-			name: this.testName,
-			module: this.module,
-			failed: bad,
-			passed: this.assertions.length - bad,
-			total: this.assertions.length,
-			duration: this.runtime
-		});
-
-		QUnit.reset();
-
-		config.current = undefined;
-	},
-
-	queue: function() {
-		var bad,
-			test = this;
-
-		synchronize(function() {
-			test.init();
-		});
-		function run() {
-			// each of these can by async
-			synchronize(function() {
-				test.setup();
-			});
-			synchronize(function() {
-				test.run();
-			});
-			synchronize(function() {
-				test.teardown();
-			});
-			synchronize(function() {
-				test.finish();
-			});
-		}
-
-		// `bad` initialized at top of scope
-		// defer when previous test run passed, if storage is available
-		bad = QUnit.config.reorder && defined.sessionStorage &&
-						+sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
-		if ( bad ) {
-			run();
-		} else {
-			synchronize( run, true );
-		}
-	}
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function( name, testEnvironment ) {
-		config.currentModule = name;
-		config.currentModuleTestEnvironment = testEnvironment;
-		config.modules[name] = true;
-	},
-
-	asyncTest: function( testName, expected, callback ) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		QUnit.test( testName, expected, callback, true );
-	},
-
-	test: function( testName, expected, callback, async ) {
-		var test,
-			nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
-		}
-
-		test = new Test({
-			nameHtml: nameHtml,
-			testName: testName,
-			expected: expected,
-			async: async,
-			callback: callback,
-			module: config.currentModule,
-			moduleTestEnvironment: config.currentModuleTestEnvironment,
-			stack: sourceFromStacktrace( 2 )
-		});
-
-		if ( !validTest( test ) ) {
-			return;
-		}
-
-		test.queue();
-	},
-
-	// Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
-	expect: function( asserts ) {
-		if (arguments.length === 1) {
-			config.current.expected = asserts;
-		} else {
-			return config.current.expected;
-		}
-	},
-
-	start: function( count ) {
-		// QUnit hasn't been initialized yet.
-		// Note: RequireJS (et al) may delay onLoad
-		if ( config.semaphore === undefined ) {
-			QUnit.begin(function() {
-				// This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-				setTimeout(function() {
-					QUnit.start( count );
-				});
-			});
-			return;
-		}
-
-		config.semaphore -= count || 1;
-		// don't start until equal number of stop-calls
-		if ( config.semaphore > 0 ) {
-			return;
-		}
-		// ignore if start is called more often then stop
-		if ( config.semaphore < 0 ) {
-			config.semaphore = 0;
-			QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-			return;
-		}
-		// A slight delay, to avoid any current callbacks
-		if ( defined.setTimeout ) {
-			setTimeout(function() {
-				if ( config.semaphore > 0 ) {
-					return;
-				}
-				if ( config.timeout ) {
-					clearTimeout( config.timeout );
-				}
-
-				config.blocking = false;
-				process( true );
-			}, 13);
-		} else {
-			config.blocking = false;
-			process( true );
-		}
-	},
-
-	stop: function( count ) {
-		config.semaphore += count || 1;
-		config.blocking = true;
-
-		if ( config.testTimeout && defined.setTimeout ) {
-			clearTimeout( config.timeout );
-			config.timeout = setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				config.semaphore = 1;
-				QUnit.start();
-			}, config.testTimeout );
-		}
-	}
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-	/**
-	 * Asserts rough true-ish result.
-	 * @name ok
-	 * @function
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function( result, msg ) {
-		if ( !config.current ) {
-			throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-		result = !!result;
-		msg = msg || (result ? "okay" : "failed" );
-
-		var source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: msg
-			};
-
-		msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
-		if ( !result ) {
-			source = sourceFromStacktrace( 2 );
-			if ( source ) {
-				details.source = source;
-				msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
-			}
-		}
-		runLoggingCallbacks( "log", QUnit, details );
-		config.current.assertions.push({
-			result: result,
-			message: msg
-		});
-	},
-
-	/**
-	 * Assert that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 * @name equal
-	 * @function
-	 * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-	 */
-	equal: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected == actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notEqual
-	 * @function
-	 */
-	notEqual: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected != actual, actual, expected, message );
-	},
-
-	/**
-	 * @name propEqual
-	 * @function
-	 */
-	propEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notPropEqual
-	 * @function
-	 */
-	notPropEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name deepEqual
-	 * @function
-	 */
-	deepEqual: function( actual, expected, message ) {
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notDeepEqual
-	 * @function
-	 */
-	notDeepEqual: function( actual, expected, message ) {
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name strictEqual
-	 * @function
-	 */
-	strictEqual: function( actual, expected, message ) {
-		QUnit.push( expected === actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notStrictEqual
-	 * @function
-	 */
-	notStrictEqual: function( actual, expected, message ) {
-		QUnit.push( expected !== actual, actual, expected, message );
-	},
-
-	"throws": function( block, expected, message ) {
-		var actual,
-			expectedOutput = expected,
-			ok = false;
-
-		// 'expected' is optional
-		if ( typeof expected === "string" ) {
-			message = expected;
-			expected = null;
-		}
-
-		config.current.ignoreGlobalErrors = true;
-		try {
-			block.call( config.current.testEnvironment );
-		} catch (e) {
-			actual = e;
-		}
-		config.current.ignoreGlobalErrors = false;
-
-		if ( actual ) {
-			// we don't want to validate thrown error
-			if ( !expected ) {
-				ok = true;
-				expectedOutput = null;
-			// expected is a regexp
-			} else if ( QUnit.objectType( expected ) === "regexp" ) {
-				ok = expected.test( errorString( actual ) );
-			// expected is a constructor
-			} else if ( actual instanceof expected ) {
-				ok = true;
-			// expected is a validation function which returns true is validation passed
-			} else if ( expected.call( {}, actual ) === true ) {
-				expectedOutput = null;
-				ok = true;
-			}
-
-			QUnit.push( ok, actual, expectedOutput, message );
-		} else {
-			QUnit.pushFailure( message, null, "No exception was thrown." );
-		}
-	}
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-	QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-	QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
-	function F() {}
-	F.prototype = QUnit;
-	QUnit = new F();
-	// Make F QUnit's constructor so that we can add to the prototype later
-	QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true,
-
-	// when enabled, show only failing tests
-	// gets persisted through sessionStorage and can be changed in UI via checkbox
-	hidepassed: false,
-
-	// by default, run previously failed tests first
-	// very useful in combination with "Hide passed tests" checked
-	reorder: true,
-
-	// by default, modify document.title when suite is done
-	altertitle: true,
-
-	// when enabled, all tests must call expect()
-	requireExpects: false,
-
-	// add checkboxes that are persisted in the query-string
-	// when enabled, the id is set to `true` as a `QUnit.config` property
-	urlConfig: [
-		{
-			id: "noglobals",
-			label: "Check for Globals",
-			tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-		},
-		{
-			id: "notrycatch",
-			label: "No try-catch",
-			tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-		}
-	],
-
-	// Set of all modules.
-	modules: {},
-
-	// logging callback queues
-	begin: [],
-	done: [],
-	log: [],
-	testStart: [],
-	testDone: [],
-	moduleStart: [],
-	moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-	extend( window, QUnit.constructor.prototype );
-
-	// Expose QUnit object
-	window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-	var i,
-		location = window.location || { search: "", protocol: "file:" },
-		params = location.search.slice( 1 ).split( "&" ),
-		length = params.length,
-		urlParams = {},
-		current;
-
-	if ( params[ 0 ] ) {
-		for ( i = 0; i < length; i++ ) {
-			current = params[ i ].split( "=" );
-			current[ 0 ] = decodeURIComponent( current[ 0 ] );
-			// allow just a key to turn on a flag, e.g., test.html?noglobals
-			current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-			urlParams[ current[ 0 ] ] = current[ 1 ];
-		}
-	}
-
-	QUnit.urlParams = urlParams;
-
-	// String search anywhere in moduleName+testName
-	config.filter = urlParams.filter;
-
-	// Exact match of the module name
-	config.module = urlParams.module;
-
-	config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-	assert: assert,
-
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend( config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date(),
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			filter: "",
-			queue: [],
-			semaphore: 1
-		});
-
-		var tests, banner, result,
-			qunit = id( "qunit" );
-
-		if ( qunit ) {
-			qunit.innerHTML =
-				"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-				"<h2 id='qunit-banner'></h2>" +
-				"<div id='qunit-testrunner-toolbar'></div>" +
-				"<h2 id='qunit-userAgent'></h2>" +
-				"<ol id='qunit-tests'></ol>";
-		}
-
-		tests = id( "qunit-tests" );
-		banner = id( "qunit-banner" );
-		result = id( "qunit-testresult" );
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-
-		if ( tests ) {
-			result = document.createElement( "p" );
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests );
-			result.innerHTML = "Running...<br/>&nbsp;";
-		}
-	},
-
-	// Resets the test setup. Useful for tests that modify the DOM.
-	/*
-	DEPRECATED: Use multiple tests instead of resetting inside a test.
-	Use testStart or testDone for custom cleanup.
-	This method will throw an error in 2.0, and will be removed in 2.1
-	*/
-	reset: function() {
-		var fixture = id( "qunit-fixture" );
-		if ( fixture ) {
-			fixture.innerHTML = config.fixture;
-		}
-	},
-
-	// Trigger an event on an element.
-	// @example triggerEvent( document.body, "click" );
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent( "MouseEvents" );
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
-			elem.dispatchEvent( event );
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent( "on" + type );
-		}
-	},
-
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) === type;
-	},
-
-	objectType: function( obj ) {
-		if ( typeof obj === "undefined" ) {
-				return "undefined";
-		// consider: typeof null === object
-		}
-		if ( obj === null ) {
-				return "null";
-		}
-
-		var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-			type = match && match[1] || "";
-
-		switch ( type ) {
-			case "Number":
-				if ( isNaN(obj) ) {
-					return "nan";
-				}
-				return "number";
-			case "String":
-			case "Boolean":
-			case "Array":
-			case "Date":
-			case "RegExp":
-			case "Function":
-				return type.toLowerCase();
-		}
-		if ( typeof obj === "object" ) {
-			return "object";
-		}
-		return undefined;
-	},
-
-	push: function( result, actual, expected, message ) {
-		if ( !config.current ) {
-			throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-		}
-
-		var output, source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: message,
-				actual: actual,
-				expected: expected
-			};
-
-		message = escapeText( message ) || ( result ? "okay" : "failed" );
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		if ( !result ) {
-			expected = escapeText( QUnit.jsDump.parse(expected) );
-			actual = escapeText( QUnit.jsDump.parse(actual) );
-			output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
-			if ( actual !== expected ) {
-				output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-				output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-			}
-
-			source = sourceFromStacktrace();
-
-			if ( source ) {
-				details.source = source;
-				output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-			}
-
-			output += "</table>";
-		}
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: !!result,
-			message: output
-		});
-	},
-
-	pushFailure: function( message, source, actual ) {
-		if ( !config.current ) {
-			throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-
-		var output,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: false,
-				message: message
-			};
-
-		message = escapeText( message ) || "error";
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		output += "<table>";
-
-		if ( actual ) {
-			output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-		}
-
-		if ( source ) {
-			details.source = source;
-			output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-		}
-
-		output += "</table>";
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: false,
-			message: output
-		});
-	},
-
-	url: function( params ) {
-		params = extend( extend( {}, QUnit.urlParams ), params );
-		var key,
-			querystring = "?";
-
-		for ( key in params ) {
-			if ( hasOwn.call( params, key ) ) {
-				querystring += encodeURIComponent( key ) + "=" +
-					encodeURIComponent( params[ key ] ) + "&";
-			}
-		}
-		return window.location.protocol + "//" + window.location.host +
-			window.location.pathname + querystring.slice( 0, -1 );
-	},
-
-	extend: extend,
-	id: id,
-	addEvent: addEvent,
-	addClass: addClass,
-	hasClass: hasClass,
-	removeClass: removeClass
-	// load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
-	// Logging callbacks; all receive a single argument with the listed properties
-	// run test/logs.html for any related changes
-	begin: registerLoggingCallback( "begin" ),
-
-	// done: { failed, passed, total, runtime }
-	done: registerLoggingCallback( "done" ),
-
-	// log: { result, actual, expected, message }
-	log: registerLoggingCallback( "log" ),
-
-	// testStart: { name }
-	testStart: registerLoggingCallback( "testStart" ),
-
-	// testDone: { name, failed, passed, total, duration }
-	testDone: registerLoggingCallback( "testDone" ),
-
-	// moduleStart: { name }
-	moduleStart: registerLoggingCallback( "moduleStart" ),
-
-	// moduleDone: { name, failed, passed, total }
-	moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-QUnit.load = function() {
-	runLoggingCallbacks( "begin", QUnit, {} );
-
-	// Initialize the config, saving the execution queue
-	var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-		urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-		numModules = 0,
-		moduleNames = [],
-		moduleFilterHtml = "",
-		urlConfigHtml = "",
-		oldconfig = extend( {}, config );
-
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	len = config.urlConfig.length;
-
-	for ( i = 0; i < len; i++ ) {
-		val = config.urlConfig[i];
-		if ( typeof val === "string" ) {
-			val = {
-				id: val,
-				label: val,
-				tooltip: "[no tooltip available]"
-			};
-		}
-		config[ val.id ] = QUnit.urlParams[ val.id ];
-		urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-			"' name='" + escapeText( val.id ) +
-			"' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-			" title='" + escapeText( val.tooltip ) +
-			"'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-			"' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
-	}
-	for ( i in config.modules ) {
-		if ( config.modules.hasOwnProperty( i ) ) {
-			moduleNames.push(i);
-		}
-	}
-	numModules = moduleNames.length;
-	moduleNames.sort( function( a, b ) {
-		return a.localeCompare( b );
-	});
-	moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-		( config.module === undefined  ? "selected='selected'" : "" ) +
-		">< All Modules ></option>";
-
-
-	for ( i = 0; i < numModules; i++) {
-			moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
-				( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
-				">" + escapeText(moduleNames[i]) + "</option>";
-	}
-	moduleFilterHtml += "</select>";
-
-	// `userAgent` initialized at top of scope
-	userAgent = id( "qunit-userAgent" );
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-
-	// `banner` initialized at top of scope
-	banner = id( "qunit-header" );
-	if ( banner ) {
-		banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
-	}
-
-	// `toolbar` initialized at top of scope
-	toolbar = id( "qunit-testrunner-toolbar" );
-	if ( toolbar ) {
-		// `filter` initialized at top of scope
-		filter = document.createElement( "input" );
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-
-		addEvent( filter, "click", function() {
-			var tmp,
-				ol = document.getElementById( "qunit-tests" );
-
-			if ( filter.checked ) {
-				ol.className = ol.className + " hidepass";
-			} else {
-				tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-				ol.className = tmp.replace( / hidepass /, " " );
-			}
-			if ( defined.sessionStorage ) {
-				if (filter.checked) {
-					sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
-				} else {
-					sessionStorage.removeItem( "qunit-filter-passed-tests" );
-				}
-			}
-		});
-
-		if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-			filter.checked = true;
-			// `ol` initialized at top of scope
-			ol = document.getElementById( "qunit-tests" );
-			ol.className = ol.className + " hidepass";
-		}
-		toolbar.appendChild( filter );
-
-		// `label` initialized at top of scope
-		label = document.createElement( "label" );
-		label.setAttribute( "for", "qunit-filter-pass" );
-		label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		urlConfigCheckboxesContainer = document.createElement("span");
-		urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-		urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-		// For oldIE support:
-		// * Add handlers to the individual elements instead of the container
-		// * Use "click" instead of "change"
-		// * Fallback from event.target to event.srcElement
-		addEvents( urlConfigCheckboxes, "click", function( event ) {
-			var params = {},
-				target = event.target || event.srcElement;
-			params[ target.name ] = target.checked ? true : undefined;
-			window.location = QUnit.url( params );
-		});
-		toolbar.appendChild( urlConfigCheckboxesContainer );
-
-		if (numModules > 1) {
-			moduleFilter = document.createElement( "span" );
-			moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
-			moduleFilter.innerHTML = moduleFilterHtml;
-			addEvent( moduleFilter.lastChild, "change", function() {
-				var selectBox = moduleFilter.getElementsByTagName("select")[0],
-					selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
-				window.location = QUnit.url({
-					module: ( selectedModule === "" ) ? undefined : selectedModule,
-					// Remove any existing filters
-					filter: undefined,
-					testNumber: undefined
-				});
-			});
-			toolbar.appendChild(moduleFilter);
-		}
-	}
-
-	// `main` initialized at top of scope
-	main = id( "qunit-fixture" );
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if ( config.autostart ) {
-		QUnit.start();
-	}
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-	var ret = false;
-	if ( onErrorFnPrev ) {
-		ret = onErrorFnPrev( error, filePath, linerNr );
-	}
-
-	// Treat return value as window.onerror itself does,
-	// Only do our handling if not suppressed.
-	if ( ret !== true ) {
-		if ( QUnit.config.current ) {
-			if ( QUnit.config.current.ignoreGlobalErrors ) {
-				return true;
-			}
-			QUnit.pushFailure( error, filePath + ":" + linerNr );
-		} else {
-			QUnit.test( "global failure", extend( function() {
-				QUnit.pushFailure( error, filePath + ":" + linerNr );
-			}, { validTest: validTest } ) );
-		}
-		return false;
-	}
-
-	return ret;
-};
-
-function done() {
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		runLoggingCallbacks( "moduleDone", QUnit, {
-			name: config.currentModule,
-			failed: config.moduleStats.bad,
-			passed: config.moduleStats.all - config.moduleStats.bad,
-			total: config.moduleStats.all
-		});
-	}
-	delete config.previousModule;
-
-	var i, key,
-		banner = id( "qunit-banner" ),
-		tests = id( "qunit-tests" ),
-		runtime = +new Date() - config.started,
-		passed = config.stats.all - config.stats.bad,
-		html = [
-			"Tests completed in ",
-			runtime,
-			" milliseconds.<br/>",
-			"<span class='passed'>",
-			passed,
-			"</span> assertions of <span class='total'>",
-			config.stats.all,
-			"</span> passed, <span class='failed'>",
-			config.stats.bad,
-			"</span> failed."
-		].join( "" );
-
-	if ( banner ) {
-		banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
-	}
-
-	if ( tests ) {
-		id( "qunit-testresult" ).innerHTML = html;
-	}
-
-	if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-		// show ✖ for good, ✔ for bad suite result in title
-		// use escape sequences in case file gets loaded with non-utf-8-charset
-		document.title = [
-			( config.stats.bad ? "\u2716" : "\u2714" ),
-			document.title.replace( /^[\u2714\u2716] /i, "" )
-		].join( " " );
-	}
-
-	// clear own sessionStorage items if all tests passed
-	if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-		// `key` & `i` initialized at top of scope
-		for ( i = 0; i < sessionStorage.length; i++ ) {
-			key = sessionStorage.key( i++ );
-			if ( key.indexOf( "qunit-test-" ) === 0 ) {
-				sessionStorage.removeItem( key );
-			}
-		}
-	}
-
-	// scroll back to top to show results
-	if ( window.scrollTo ) {
-		window.scrollTo(0, 0);
-	}
-
-	runLoggingCallbacks( "done", QUnit, {
-		failed: config.stats.bad,
-		passed: passed,
-		total: config.stats.all,
-		runtime: runtime
-	});
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-	var include,
-		filter = config.filter && config.filter.toLowerCase(),
-		module = config.module && config.module.toLowerCase(),
-		fullName = (test.module + ": " + test.testName).toLowerCase();
-
-	// Internally-generated tests are always valid
-	if ( test.callback && test.callback.validTest === validTest ) {
-		delete test.callback.validTest;
-		return true;
-	}
-
-	if ( config.testNumber ) {
-		return test.testNumber === config.testNumber;
-	}
-
-	if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-		return false;
-	}
-
-	if ( !filter ) {
-		return true;
-	}
-
-	include = filter.charAt( 0 ) !== "!";
-	if ( !include ) {
-		filter = filter.slice( 1 );
-	}
-
-	// If the filter matches, we need to honour include
-	if ( fullName.indexOf( filter ) !== -1 ) {
-		return include;
-	}
-
-	// Otherwise, do the opposite
-	return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-	offset = offset === undefined ? 3 : offset;
-
-	var stack, include, i;
-
-	if ( e.stacktrace ) {
-		// Opera
-		return e.stacktrace.split( "\n" )[ offset + 3 ];
-	} else if ( e.stack ) {
-		// Firefox, Chrome
-		stack = e.stack.split( "\n" );
-		if (/^error$/i.test( stack[0] ) ) {
-			stack.shift();
-		}
-		if ( fileName ) {
-			include = [];
-			for ( i = offset; i < stack.length; i++ ) {
-				if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-					break;
-				}
-				include.push( stack[ i ] );
-			}
-			if ( include.length ) {
-				return include.join( "\n" );
-			}
-		}
-		return stack[ offset ];
-	} else if ( e.sourceURL ) {
-		// Safari, PhantomJS
-		// hopefully one day Safari provides actual stacktraces
-		// exclude useless self-reference for generated Error objects
-		if ( /qunit.js$/.test( e.sourceURL ) ) {
-			return;
-		}
-		// for actual exceptions, this is useful
-		return e.sourceURL + ":" + e.line;
-	}
-}
-function sourceFromStacktrace( offset ) {
-	try {
-		throw new Error();
-	} catch ( e ) {
-		return extractStacktrace( e, offset );
-	}
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-	if ( !s ) {
-		return "";
-	}
-	s = s + "";
-	// Both single quotes and double quotes (for attributes)
-	return s.replace( /['"<>&]/g, function( s ) {
-		switch( s ) {
-			case "'":
-				return "&#039;";
-			case "\"":
-				return "&quot;";
-			case "<":
-				return "&lt;";
-			case ">":
-				return "&gt;";
-			case "&":
-				return "&amp;";
-		}
-	});
-}
-
-function synchronize( callback, last ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process( last );
-	}
-}
-
-function process( last ) {
-	function next() {
-		process( last );
-	}
-	var start = new Date().getTime();
-	config.depth = config.depth ? config.depth + 1 : 1;
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-			config.queue.shift()();
-		} else {
-			setTimeout( next, 13 );
-			break;
-		}
-	}
-	config.depth--;
-	if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-		done();
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			if ( hasOwn.call( window, key ) ) {
-				// in Opera sometimes DOM element ids show up here, ignore them
-				if ( /^qunit-test-output/.test( key ) ) {
-					continue;
-				}
-				config.pollution.push( key );
-			}
-		}
-	}
-}
-
-function checkPollution() {
-	var newGlobals,
-		deletedGlobals,
-		old = config.pollution;
-
-	saveGlobal();
-
-	newGlobals = diff( config.pollution, old );
-	if ( newGlobals.length > 0 ) {
-		QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-	}
-
-	deletedGlobals = diff( old, config.pollution );
-	if ( deletedGlobals.length > 0 ) {
-		QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var i, j,
-		result = a.slice();
-
-	for ( i = 0; i < result.length; i++ ) {
-		for ( j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice( i, 1 );
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function extend( a, b ) {
-	for ( var prop in b ) {
-		if ( hasOwn.call( b, prop ) ) {
-			// Avoid "Member not found" error in IE8 caused by messing with window.constructor
-			if ( !( prop === "constructor" && a === window ) ) {
-				if ( b[ prop ] === undefined ) {
-					delete a[ prop ];
-				} else {
-					a[ prop ] = b[ prop ];
-				}
-			}
-		}
-	}
-
-	return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
-	// Standards-based browsers
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	// IE
-	} else {
-		elem.attachEvent( "on" + type, fn );
-	}
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
-	var i = elems.length;
-	while ( i-- ) {
-		addEvent( elems[i], type, fn );
-	}
-}
-
-function hasClass( elem, name ) {
-	return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-	if ( !hasClass( elem, name ) ) {
-		elem.className += (elem.className ? " " : "") + name;
-	}
-}
-
-function removeClass( elem, name ) {
-	var set = " " + elem.className + " ";
-	// Class name may appear multiple times
-	while ( set.indexOf(" " + name + " ") > -1 ) {
-		set = set.replace(" " + name + " " , " ");
-	}
-	// If possible, trim it for prettiness, but not necessarily
-	elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
-	return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-		document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-	return function( callback ) {
-		config[key].push( callback );
-	};
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-	var i, callbacks;
-	if ( QUnit.hasOwnProperty( key ) ) {
-		QUnit[ key ].call(scope, args );
-	} else {
-		callbacks = config[ key ];
-		for ( i = 0; i < callbacks.length; i++ ) {
-			callbacks[ i ].call( scope, args );
-		}
-	}
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
-	// Call the o related callback with the given arguments.
-	function bindCallbacks( o, callbacks, args ) {
-		var prop = QUnit.objectType( o );
-		if ( prop ) {
-			if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
-				return callbacks[ prop ].apply( callbacks, args );
-			} else {
-				return callbacks[ prop ]; // or undefined
-			}
-		}
-	}
-
-	// the real equiv function
-	var innerEquiv,
-		// stack to decide between skip/abort functions
-		callers = [],
-		// stack to avoiding loops from circular referencing
-		parents = [],
-		parentsB = [],
-
-		getProto = Object.getPrototypeOf || function ( obj ) {
-			/*jshint camelcase:false */
-			return obj.__proto__;
-		},
-		callbacks = (function () {
-
-			// for string, boolean, number and null
-			function useStrictEquality( b, a ) {
-				/*jshint eqeqeq:false */
-				if ( b instanceof a.constructor || a instanceof b.constructor ) {
-					// to catch short annotation VS 'new' annotation of a
-					// declaration
-					// e.g. var i = 1;
-					// var j = new Number(1);
-					return a == b;
-				} else {
-					return a === b;
-				}
-			}
-
-			return {
-				"string": useStrictEquality,
-				"boolean": useStrictEquality,
-				"number": useStrictEquality,
-				"null": useStrictEquality,
-				"undefined": useStrictEquality,
-
-				"nan": function( b ) {
-					return isNaN( b );
-				},
-
-				"date": function( b, a ) {
-					return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
-				},
-
-				"regexp": function( b, a ) {
-					return QUnit.objectType( b ) === "regexp" &&
-						// the regex itself
-						a.source === b.source &&
-						// and its modifiers
-						a.global === b.global &&
-						// (gmi) ...
-						a.ignoreCase === b.ignoreCase &&
-						a.multiline === b.multiline &&
-						a.sticky === b.sticky;
-				},
-
-				// - skip when the property is a method of an instance (OOP)
-				// - abort otherwise,
-				// initial === would have catch identical references anyway
-				"function": function() {
-					var caller = callers[callers.length - 1];
-					return caller !== Object && typeof caller !== "undefined";
-				},
-
-				"array": function( b, a ) {
-					var i, j, len, loop, aCircular, bCircular;
-
-					// b could be an object literal here
-					if ( QUnit.objectType( b ) !== "array" ) {
-						return false;
-					}
-
-					len = a.length;
-					if ( len !== b.length ) {
-						// safe and faster
-						return false;
-					}
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-					for ( i = 0; i < len; i++ ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									parents.pop();
-									parentsB.pop();
-									return false;
-								}
-							}
-						}
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							parents.pop();
-							parentsB.pop();
-							return false;
-						}
-					}
-					parents.pop();
-					parentsB.pop();
-					return true;
-				},
-
-				"object": function( b, a ) {
-					/*jshint forin:false */
-					var i, j, loop, aCircular, bCircular,
-						// Default to true
-						eq = true,
-						aProperties = [],
-						bProperties = [];
-
-					// comparing constructors is more strict than using
-					// instanceof
-					if ( a.constructor !== b.constructor ) {
-						// Allow objects with no prototype to be equivalent to
-						// objects with Object as their constructor.
-						if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
-							( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
-								return false;
-						}
-					}
-
-					// stack constructor before traversing properties
-					callers.push( a.constructor );
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-
-					// be strict: don't ensure hasOwnProperty and go deep
-					for ( i in a ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									eq = false;
-									break;
-								}
-							}
-						}
-						aProperties.push(i);
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							eq = false;
-							break;
-						}
-					}
-
-					parents.pop();
-					parentsB.pop();
-					callers.pop(); // unstack, we are done
-
-					for ( i in b ) {
-						bProperties.push( i ); // collect b's properties
-					}
-
-					// Ensures identical properties name
-					return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
-				}
-			};
-		}());
-
-	innerEquiv = function() { // can take multiple arguments
-		var args = [].slice.apply( arguments );
-		if ( args.length < 2 ) {
-			return true; // end transition
-		}
-
-		return (function( a, b ) {
-			if ( a === b ) {
-				return true; // catch the most you can
-			} else if ( a === null || b === null || typeof a === "undefined" ||
-					typeof b === "undefined" ||
-					QUnit.objectType(a) !== QUnit.objectType(b) ) {
-				return false; // don't lose time with error prone cases
-			} else {
-				return bindCallbacks(a, callbacks, [ b, a ]);
-			}
-
-			// apply transition with (1..n) arguments
-		}( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
-	};
-
-	return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
-	}
-	function literal( o ) {
-		return o + "";
-	}
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join ) {
-			arr = arr.join( "," + s + inner );
-		}
-		if ( !arr ) {
-			return pre + post;
-		}
-		return [ pre, inner + arr, base + post ].join(s);
-	}
-	function array( arr, stack ) {
-		var i = arr.length, ret = new Array(i);
-		this.up();
-		while ( i-- ) {
-			ret[i] = this.parse( arr[i] , undefined , stack);
-		}
-		this.down();
-		return join( "[", ret, "]" );
-	}
-
-	var reName = /^function (\w+)/,
-		jsDump = {
-			// type is used mostly internally, you can fix a (custom)type in advance
-			parse: function( obj, type, stack ) {
-				stack = stack || [ ];
-				var inStack, res,
-					parser = this.parsers[ type || this.typeOf(obj) ];
-
-				type = typeof parser;
-				inStack = inArray( obj, stack );
-
-				if ( inStack !== -1 ) {
-					return "recursion(" + (inStack - stack.length) + ")";
-				}
-				if ( type === "function" )  {
-					stack.push( obj );
-					res = parser.call( this, obj, stack );
-					stack.pop();
-					return res;
-				}
-				return ( type === "string" ) ? parser : this.parsers.error;
-			},
-			typeOf: function( obj ) {
-				var type;
-				if ( obj === null ) {
-					type = "null";
-				} else if ( typeof obj === "undefined" ) {
-					type = "undefined";
-				} else if ( QUnit.is( "regexp", obj) ) {
-					type = "regexp";
-				} else if ( QUnit.is( "date", obj) ) {
-					type = "date";
-				} else if ( QUnit.is( "function", obj) ) {
-					type = "function";
-				} else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
-					type = "window";
-				} else if ( obj.nodeType === 9 ) {
-					type = "document";
-				} else if ( obj.nodeType ) {
-					type = "node";
-				} else if (
-					// native arrays
-					toString.call( obj ) === "[object Array]" ||
-					// NodeList objects
-					( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-				) {
-					type = "array";
-				} else if ( obj.constructor === Error.prototype.constructor ) {
-					type = "error";
-				} else {
-					type = typeof obj;
-				}
-				return type;
-			},
-			separator: function() {
-				return this.multiline ?	this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
-			},
-			// extra can be a number, shortcut for increasing-calling-decreasing
-			indent: function( extra ) {
-				if ( !this.multiline ) {
-					return "";
-				}
-				var chr = this.indentChar;
-				if ( this.HTML ) {
-					chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
-				}
-				return new Array( this.depth + ( extra || 0 ) ).join(chr);
-			},
-			up: function( a ) {
-				this.depth += a || 1;
-			},
-			down: function( a ) {
-				this.depth -= a || 1;
-			},
-			setParser: function( name, parser ) {
-				this.parsers[name] = parser;
-			},
-			// The next 3 are exposed so you can use them
-			quote: quote,
-			literal: literal,
-			join: join,
-			//
-			depth: 1,
-			// This is the list of parsers, to modify them, use jsDump.setParser
-			parsers: {
-				window: "[Window]",
-				document: "[Document]",
-				error: function(error) {
-					return "Error(\"" + error.message + "\")";
-				},
-				unknown: "[Unknown]",
-				"null": "null",
-				"undefined": "undefined",
-				"function": function( fn ) {
-					var ret = "function",
-						// functions never have name in IE
-						name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-					if ( name ) {
-						ret += " " + name;
-					}
-					ret += "( ";
-
-					ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
-					return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
-				},
-				array: array,
-				nodelist: array,
-				"arguments": array,
-				object: function( map, stack ) {
-					/*jshint forin:false */
-					var ret = [ ], keys, key, val, i;
-					QUnit.jsDump.up();
-					keys = [];
-					for ( key in map ) {
-						keys.push( key );
-					}
-					keys.sort();
-					for ( i = 0; i < keys.length; i++ ) {
-						key = keys[ i ];
-						val = map[ key ];
-						ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
-					}
-					QUnit.jsDump.down();
-					return join( "{", ret, "}" );
-				},
-				node: function( node ) {
-					var len, i, val,
-						open = QUnit.jsDump.HTML ? "&lt;" : "<",
-						close = QUnit.jsDump.HTML ? "&gt;" : ">",
-						tag = node.nodeName.toLowerCase(),
-						ret = open + tag,
-						attrs = node.attributes;
-
-					if ( attrs ) {
-						for ( i = 0, len = attrs.length; i < len; i++ ) {
-							val = attrs[i].nodeValue;
-							// IE6 includes all attributes in .attributes, even ones not explicitly set.
-							// Those have values like undefined, null, 0, false, "" or "inherit".
-							if ( val && val !== "inherit" ) {
-								ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
-							}
-						}
-					}
-					ret += close;
-
-					// Show content of TextNode or CDATASection
-					if ( node.nodeType === 3 || node.nodeType === 4 ) {
-						ret += node.nodeValue;
-					}
-
-					return ret + open + "/" + tag + close;
-				},
-				// function calls it internally, it's the arguments part of the function
-				functionArgs: function( fn ) {
-					var args,
-						l = fn.length;
-
-					if ( !l ) {
-						return "";
-					}
-
-					args = new Array(l);
-					while ( l-- ) {
-						// 97 is 'a'
-						args[l] = String.fromCharCode(97+l);
-					}
-					return " " + args.join( ", " ) + " ";
-				},
-				// object calls it internally, the key part of an item in a map
-				key: quote,
-				// function calls it internally, it's the content of the function
-				functionCode: "[code]",
-				// node calls it internally, it's an html attribute value
-				attribute: quote,
-				string: quote,
-				date: quote,
-				regexp: literal,
-				number: literal,
-				"boolean": literal
-			},
-			// if true, entities are escaped ( <, >, \t, space and \n )
-			HTML: false,
-			// indentation unit
-			indentChar: "  ",
-			// if true, items in a collection, are separated by a \n, else just a space.
-			multiline: true
-		};
-
-	return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
-	if ( array.indexOf ) {
-		return array.indexOf( elem );
-	}
-
-	for ( var i = 0, length = array.length; i < length; i++ ) {
-		if ( array[ i ] === elem ) {
-			return i;
-		}
-	}
-
-	return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	/*jshint eqeqeq:false, eqnull:true */
-	function diff( o, n ) {
-		var i,
-			ns = {},
-			os = {};
-
-		for ( i = 0; i < n.length; i++ ) {
-			if ( !hasOwn.call( ns, n[i] ) ) {
-				ns[ n[i] ] = {
-					rows: [],
-					o: null
-				};
-			}
-			ns[ n[i] ].rows.push( i );
-		}
-
-		for ( i = 0; i < o.length; i++ ) {
-			if ( !hasOwn.call( os, o[i] ) ) {
-				os[ o[i] ] = {
-					rows: [],
-					n: null
-				};
-			}
-			os[ o[i] ].rows.push( i );
-		}
-
-		for ( i in ns ) {
-			if ( hasOwn.call( ns, i ) ) {
-				if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-					n[ ns[i].rows[0] ] = {
-						text: n[ ns[i].rows[0] ],
-						row: os[i].rows[0]
-					};
-					o[ os[i].rows[0] ] = {
-						text: o[ os[i].rows[0] ],
-						row: ns[i].rows[0]
-					};
-				}
-			}
-		}
-
-		for ( i = 0; i < n.length - 1; i++ ) {
-			if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
-						n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
-				n[ i + 1 ] = {
-					text: n[ i + 1 ],
-					row: n[i].row + 1
-				};
-				o[ n[i].row + 1 ] = {
-					text: o[ n[i].row + 1 ],
-					row: i + 1
-				};
-			}
-		}
-
-		for ( i = n.length - 1; i > 0; i-- ) {
-			if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
-						n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
-				n[ i - 1 ] = {
-					text: n[ i - 1 ],
-					row: n[i].row - 1
-				};
-				o[ n[i].row - 1 ] = {
-					text: o[ n[i].row - 1 ],
-					row: i - 1
-				};
-			}
-		}
-
-		return {
-			o: o,
-			n: n
-		};
-	}
-
-	return function( o, n ) {
-		o = o.replace( /\s+$/, "" );
-		n = n.replace( /\s+$/, "" );
-
-		var i, pre,
-			str = "",
-			out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
-			oSpace = o.match(/\s+/g),
-			nSpace = n.match(/\s+/g);
-
-		if ( oSpace == null ) {
-			oSpace = [ " " ];
-		}
-		else {
-			oSpace.push( " " );
-		}
-
-		if ( nSpace == null ) {
-			nSpace = [ " " ];
-		}
-		else {
-			nSpace.push( " " );
-		}
-
-		if ( out.n.length === 0 ) {
-			for ( i = 0; i < out.o.length; i++ ) {
-				str += "<del>" + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if ( out.n[0].text == null ) {
-				for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
-					str += "<del>" + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-
-			for ( i = 0; i < out.n.length; i++ ) {
-				if (out.n[i].text == null) {
-					str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					// `pre` initialized at top of scope
-					pre = "";
-
-					for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
-						pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-
-		return str;
-	};
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
-	extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.html b/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown Element Attributes</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-				<section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$" data-element-attributes="{_\s*?([^}]+?)}">>
-					<script type="text/template">
-						## Slide 1.1
-						<!-- {_class="fragment fade-out" data-fragment-index="1"} -->
-
-						--
-
-						## Slide 1.2
-						<!-- {_class="fragment shrink"} -->
-
-						Paragraph 1
-						<!-- {_class="fragment grow"} -->
-
-						Paragraph 2
-						<!-- {_class="fragment grow"} -->
-
-						- list item 1 <!-- {_class="fragment roll-in"} -->
-						- list item 2 <!-- {_class="fragment roll-in"} -->
-						- list item 3 <!-- {_class="fragment roll-in"} -->
-
-
-						---
-
-						## Slide 2
-
-
-						Paragraph 1.2  
-						multi-line <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.2 <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.3 <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.4 <!-- {_class="fragment highlight-red"} -->
-
-						- list item 1 <!-- {_class="fragment highlight-green"} -->
-						- list item 2<!-- {_class="fragment highlight-green"} -->
-						- list item 3<!-- {_class="fragment highlight-green"} -->
-						- list item 4
-						<!-- {_class="fragment highlight-green"} -->
-						- list item 5<!-- {_class="fragment highlight-green"} -->
-
-						Test
-
-						![Example Picture](examples/assets/image2.png)
-						<!-- {_class="reveal stretch"} -->
-
-					</script>
-				</section>
-
-
-
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown with default separator
-						## Slide 1 Def <!-- .element: class="fragment highlight-red" data-fragment-index="1" -->
-
-
-						## Slide 2 Def
-						<!-- .element: class="fragment highlight-red" -->
-
-					</script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-					A paragraph
-					<!-- .element: class="fragment highlight-blue" -->
-				  </script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-
-					Multiple  
-					Line
-					<!-- .element: class="fragment highlight-blue" -->
-				  </script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-
-					Test<!-- .element: class="fragment highlight-blue" -->
-
-					More Test
-				  </script>
-				</section>
-
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown-element-attributes.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.js b/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-element-attributes.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
-	});
-
-
-	test( 'Attributes on element header in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
-	});
-
-	test( 'Attributes on element paragraphs in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
-	});
-
-	test( 'Attributes on element list items in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
-	});
-
-	test( 'Attributes on element paragraphs in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
-	});
-
-	test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
-	});
-
-	test( 'Attributes on elements in single slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.html b/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown Attributes</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by three lines, vertical slides by two lines, attributes are one any line starting with (spaces and) two dashes -->
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-attributes="--\s(.*?)$"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown
-						## Slide 1
-
-
-
-						## Slide 2
-						<!-- -- id="slide2" data-transition="zoom" data-background="#A0C66B" -->
-
-
-						## Slide 2.1
-						<!-- -- data-background="#ff0000" data-transition="fade" -->
-
-
-						## Slide 2.2
-						[Link to Slide2](#/slide2)
-
-
-
-						## Slide 3
-						<!-- -- data-transition="zoom" data-background="#C6916B" -->
-
-
-
-						## Slide 4
-					</script>
-				</section>
-
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown with default separator
-						## Slide 1 Def
-
-
-
-						## Slide 2 Def
-						<!-- .slide: id="slide2def" data-transition="concave" data-background="#A7C66B" -->
-
-
-						## Slide 2.1 Def
-						<!-- .slide: data-background="#f70000" data-transition="page" -->
-
-
-						## Slide 2.2 Def
-						[Link to Slide2](#/slide2def)
-
-
-
-						## Slide 3 Def
-						<!-- .slide: data-transition="concave" data-background="#C7916B" -->
-
-
-
-						## Slide 4
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						<!-- .slide: data-background="#ff0000" -->
-						## Hello world
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Hello world
-						<!-- .slide: data-background="#ff0000" -->
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Hello world
-
-						Test
-						<!-- .slide: data-background="#ff0000" -->
-
-						More Test
-					</script>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown-slide-attributes.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.js b/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown-slide-attributes.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
-	});
-
-	test( 'Id on slide', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
-	});
-
-	test( 'data-background attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-background attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-transition attributes with inline content', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown.html b/docs/slides/BOS14/_support/reveal.js/test/test-markdown.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-  		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-				<section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$">
-					<script type="text/template">
-						## Slide 1.1
-
-						--
-
-						## Slide 1.2
-
-						---
-
-						## Slide 2
-					</script>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test-markdown.js b/docs/slides/BOS14/_support/reveal.js/test/test-markdown.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test-markdown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test.html b/docs/slides/BOS14/_support/reveal.js/test/test.html
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Tests</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-  		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<section>
-					<h1>1</h1>
-				</section>
-
-				<section>
-					<section>
-						<h1>2.1</h1>
-					</section>
-					<section>
-						<h1>2.2</h1>
-					</section>
-					<section>
-						<h1>2.3</h1>
-					</section>
-				</section>
-
-				<section id="fragment-slides">
-					<section>
-						<h1>3.1</h1>
-						<ul>
-							<li class="fragment">4.1</li>
-							<li class="fragment">4.2</li>
-							<li class="fragment">4.3</li>
-						</ul>
-					</section>
-
-					<section>
-						<h1>3.2</h1>
-						<ul>
-							<li class="fragment" data-fragment-index="0">4.1</li>
-							<li class="fragment" data-fragment-index="0">4.2</li>
-						</ul>
-					</section>
-
-					<section>
-						<h1>3.3</h1>
-						<ul>
-							<li class="fragment" data-fragment-index="1">3.3.1</li>
-							<li class="fragment" data-fragment-index="4">3.3.2</li>
-							<li class="fragment" data-fragment-index="4">3.3.3</li>
-						</ul>
-					</section>
-				</section>
-
-				<section>
-					<h1>4</h1>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/BOS14/_support/reveal.js/test/test.js b/docs/slides/BOS14/_support/reveal.js/test/test.js
deleted file mode 100644
--- a/docs/slides/BOS14/_support/reveal.js/test/test.js
+++ /dev/null
@@ -1,438 +0,0 @@
-
-// These tests expect the DOM to contain a presentation
-// with the following slide structure:
-//
-// 1
-// 2 - Three sub-slides
-// 3 - Three fragment elements
-// 3 - Two fragments with same data-fragment-index
-// 4
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	// ---------------------------------------------------------------
-	// DOM TESTS
-
-	QUnit.module( 'DOM' );
-
-	test( 'Initial slides classes', function() {
-		var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
-
-		ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
-	});
-
-	// ---------------------------------------------------------------
-	// API TESTS
-
-	QUnit.module( 'API' );
-
-	test( 'Reveal.isReady', function() {
-		strictEqual( Reveal.isReady(), true, 'returns true' );
-	});
-
-	test( 'Reveal.isOverview', function() {
-		strictEqual( Reveal.isOverview(), false, 'false by default' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
-	});
-
-	test( 'Reveal.isPaused', function() {
-		strictEqual( Reveal.isPaused(), false, 'false by default' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), true, 'true after pausing' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), false, 'false after resuming' );
-	});
-
-	test( 'Reveal.isFirstSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-
-		Reveal.slide( 1, 0 );
-		strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.isLastSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-
-		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
-
-		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.getIndices', function() {
-		var indices = Reveal.getIndices();
-
-		ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
-		ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
-		ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
-
-		Reveal.slide( 1, 0 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
-
-		Reveal.slide( 1, 2 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
-
-		Reveal.slide( 0, 0 );
-	});
-
-	test( 'Reveal.getSlide', function() {
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-
-		equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
-
-		strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
-	});
-
-	test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
-		Reveal.slide( 0, 0 );
-		Reveal.slide( 1, 0 );
-
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-		var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
-
-		equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
-		equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
-	});
-
-	test( 'Reveal.getScale', function() {
-		ok( typeof Reveal.getScale() === 'number', 'has scale' );
-	});
-
-	test( 'Reveal.getConfig', function() {
-		ok( typeof Reveal.getConfig() === 'object', 'has config' );
-	});
-
-	test( 'Reveal.configure', function() {
-		strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
-
-		Reveal.configure({ loop: true });
-		strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
-
-		Reveal.configure({ loop: false, customTestValue: 1 });
-		strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
-	});
-
-	test( 'Reveal.availableRoutes', function() {
-		Reveal.slide( 0, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
-
-		Reveal.slide( 1, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
-	});
-
-	test( 'Reveal.next', function() {
-		Reveal.slide( 0, 0 );
-
-		// Step through vertical child slides
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
-
-		// Step through fragments
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
-	});
-
-	test( 'Reveal.next at end', function() {
-		Reveal.slide( 3 );
-
-		// We're at the end, this should have no effect
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-	});
-
-
-	// ---------------------------------------------------------------
-	// FRAGMENT TESTS
-
-	QUnit.module( 'Fragments' );
-
-	test( 'Sliding to fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
-
-		Reveal.slide( 2, 0, 0 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
-
-		Reveal.slide( 2, 0, 2 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
-
-		Reveal.slide( 2, 0, 1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
-	});
-
-	test( 'Hiding all fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
-
-		Reveal.slide( 2, 0, -1 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
-	});
-
-	test( 'Current fragment', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
-
-		Reveal.slide( 1, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
-	});
-
-	test( 'Stepping through fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-
-		// forwards:
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
-
-		Reveal.right();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
-
-		Reveal.down();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
-
-		Reveal.down(); // moves to f #3
-
-		// backwards:
-
-		Reveal.prev();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
-
-		Reveal.left();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
-
-		Reveal.up();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
-	});
-
-	test( 'Stepping past fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 0, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
-	});
-
-	test( 'Fragment indices', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
-	});
-
-	test( 'Index generation', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		// These have no indices defined to start with
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
-	});
-
-	test( 'Index normalization', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
-
-		// These start out as 1-4-4 and should normalize to 0-1-1
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
-	});
-
-	asyncTest( 'fragmentshown event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmentshown', _onEvent );
-
-		Reveal.slide( 2, 0 );
-		Reveal.slide( 2, 0 ); // should do nothing
-		Reveal.slide( 2, 0, 0 ); // should do nothing
-		Reveal.next();
-		Reveal.next();
-		Reveal.prev(); // shouldn't fire fragmentshown
-
-		start();
-
-		Reveal.removeEventListener( 'fragmentshown', _onEvent );
-	});
-
-	asyncTest( 'fragmenthidden event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmenthidden', _onEvent );
-
-		Reveal.slide( 2, 0, 2 );
-		Reveal.slide( 2, 0, 2 ); // should do nothing
-		Reveal.prev();
-		Reveal.prev();
-		Reveal.next(); // shouldn't fire fragmenthidden
-
-		start();
-
-		Reveal.removeEventListener( 'fragmenthidden', _onEvent );
-	});
-
-
-	// ---------------------------------------------------------------
-	// CONFIGURATION VALUES
-
-	QUnit.module( 'Configuration' );
-
-	test( 'Controls', function() {
-		var controlsElement = document.querySelector( '.reveal>.controls' );
-
-		Reveal.configure({ controls: false });
-		equal( controlsElement.style.display, 'none', 'controls are hidden' );
-
-		Reveal.configure({ controls: true });
-		equal( controlsElement.style.display, 'block', 'controls are visible' );
-	});
-
-	test( 'Progress', function() {
-		var progressElement = document.querySelector( '.reveal>.progress' );
-
-		Reveal.configure({ progress: false });
-		equal( progressElement.style.display, 'none', 'progress are hidden' );
-
-		Reveal.configure({ progress: true });
-		equal( progressElement.style.display, 'block', 'progress are visible' );
-	});
-
-	test( 'Loop', function() {
-		Reveal.configure({ loop: true });
-
-		Reveal.slide( 0, 0 );
-
-		Reveal.left();
-		notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
-
-		Reveal.right();
-		equal( Reveal.getIndices().h, 0, 'looped from end to start' );
-
-		Reveal.configure({ loop: false });
-	});
-
-
-	// ---------------------------------------------------------------
-	// EVENT TESTS
-
-	QUnit.module( 'Events' );
-
-	asyncTest( 'slidechanged', function() {
-		expect( 3 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'slidechanged', _onEvent );
-
-		Reveal.slide( 1, 0 ); // should trigger
-		Reveal.slide( 1, 0 ); // should do nothing
-		Reveal.next(); // should trigger
-		Reveal.slide( 3, 0 ); // should trigger
-		Reveal.next(); // should do nothing
-
-		start();
-
-		Reveal.removeEventListener( 'slidechanged', _onEvent );
-
-	});
-
-	asyncTest( 'paused', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'paused', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'paused', _onEvent );
-	});
-
-	asyncTest( 'resumed', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'resumed', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'resumed', _onEvent );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/BOS14/_support/template.reveal b/docs/slides/BOS14/_support/template.reveal
deleted file mode 100644
--- a/docs/slides/BOS14/_support/template.reveal
+++ /dev/null
@@ -1,128 +0,0 @@
-<!doctype html>  
-<html lang="en">
-	
-<head>
-<meta charset="utf-8">
-
-<title>Liquid Types</title>
-
-<meta name="description" content="Liquid Types IHP 2014">
-<meta name="author" content="Ranjit Jhala">
-
-<meta name="apple-mobile-web-app-capable" content="yes" />
-
-<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="$reveal$/css/reveal.css">
-<link rel="stylesheet" href="$reveal$/css/theme/seminar.css" id="theme">
-<!-- <link rel="stylesheet" href="$reveal$/css/print/pdf.css"> -->
-<link rel="stylesheet" href="../_support/liquidhaskell.css">
-
-<!-- For syntax highlighting -->
-<link rel="stylesheet" href="$reveal$/lib/css/zenburn.css">
-
-<script>
-	// If the query includes 'print-pdf' we'll use the PDF print sheet
-	document.write( '<link rel="stylesheet" href="$reveal$/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
-</script>
-
-<!--[if lt IE 9]>
-<script src="lib/js/html5shiv.js"></script>
-<![endif]-->
-</head>
-<body>
-
-\(
-\require{color}
-\definecolor{kvcol}{RGB}{203,23,206}
-\definecolor{tycol}{RGB}{5,177,93}
-\definecolor{refcol}{RGB}{18,110,213}
-
-\newcommand{\quals}{\mathbb{Q}}
-\newcommand{\defeq}{\ \doteq\ }
-\newcommand{\subty}{\preceq}
-\newcommand{\True}{\mathit{True}}
-\newcommand{\Int}{\mathtt{Int}}
-\newcommand{\Nat}{\mathtt{Nat}}
-\newcommand{\Zero}{\mathtt{Zero}}
-\newcommand{\foo}[4]{{#1}^{#4} + {#2}^{#4} = {#3}^{#4}}
-\newcommand{\reft}[3]{\{\bindx{#1}{#2} \mid {#3}\}}
-\newcommand{\ereft}[3]{\bindx{#1}{\{#2 \mid #3\}}}
-\newcommand{\bindx}[2]{{#1}\!:\!{#2}}
-\newcommand{\reftx}[2]{\{{#1}\mid{#2}\}}
-\newcommand{\inferrule}[3][]{\frac{#2}{#3}\;{#1}}
-\newcommand{\kvar}[1]{\color{kvcol}{\mathbf{\kappa_{#1}}}}
-\newcommand{\llen}[1]{\mathtt{llen}(#1)}
-\)
-
-<div class="reveal">
-<!-- 
-Used to fade in a background when a specific slide state is reached
--->
-<div class="state-background"></div>
-
-<!-- Slides
-Any section element inside of this "slides" container is displayed as a slide
--->
-<div class="slides">
-<!-- Pandoc -->
-$if(title)$
-<section class="titlepage">
-<h1 class="title">$title$</h1>
-$for(author)$
-<h2 class="author">$author$</h2>
-$endfor$
-<h3 class="date">$date$</h3>
-</section>
-$endif$
-$body$
-<!-- End Pandoc -->
-
-</div>
-<!-- End Slides -->
-
-<!-- Presentation progress bar -->
-<div class="progress"><span></span></div>
-</div>
-
-<!-- Initialize reveal.js :: make settings changes here -->
-<script src="$reveal$/lib/js/head.min.js"></script>
-<script src="$reveal$/js/reveal.js"></script>
-
-<!-- ORIGINAL <script type="text/javascript" src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-     -->
-
-<!-- LOCAL 
-<script type="text/javascript" src="file:///Users/rjhala/research/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
--->
-
-<script type="text/javascript" src="$mathjax$/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-<script>		
-	// Full list of configuration options available here:
-	// https://github.com/hakimel/reveal.js#configuration
-	Reveal.initialize({
-		controls: true,
-		progress: true,
-		history: true,
-		center: false,
-        rollingLinks: false,
-        theme: Reveal.getQueryHash().theme || 'seminar', // available themes are in /css/theme
-		transition: Reveal.getQueryHash().transition || 'fade', // default/cube/page/concave/linear(2d)
-
-		// Optional libraries used to extend on reveal.js
-		dependencies: [
-			//{ src: '$reveal$/lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-			{ src: '$reveal$/lib/js/classList.js', condition: function() { return !document.body.classList; } },
-			{ src: '$reveal$/lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-			{ src: '$reveal$/plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		]
-	});
-</script>
-
-</body>
-</html>
diff --git a/docs/slides/BOS14/hs/end/000_Refinements.hs b/docs/slides/BOS14/hs/end/000_Refinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/000_Refinements.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-divide    :: Int -> Int -> Int
-
-
------------------------------------------------------------------------
--- | 1. Simple Refinement Types
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-
-{-@ six :: NonZero @-}
-six = 10 :: Int
-
------------------------------------------------------------------------
--- | 2. Function Contracts: Preconditions & Dead Code 
------------------------------------------------------------------------
-
-{-@ dead :: {v:_ | false} -> a @-}
-dead msg = error msg
-
------------------------------------------------------------------------
--- | 3. Function Contracts: Safe Division 
------------------------------------------------------------------------
-
-abs :: Int -> Int
-abs x | x > 0     = x
-      | otherwise = 0 - x
-
-{-@ divide :: Int -> NonZero -> Int @-}
-divide x 0 = dead "divide-by-zero"
-divide x n = x `div` n
-
-
-
-
-avg2 x y   = divide (x + y)     2
-avg3 x y z = divide (x + y + z) 3
-
-
------------------------------------------------------------------------
--- | But whats the problem here?
------------------------------------------------------------------------
-
-avg xs     = divide total n
-  where
-    total  = sum xs
-    n      = length xs
diff --git a/docs/slides/BOS14/hs/end/001_Refinements.hs b/docs/slides/BOS14/hs/end/001_Refinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/001_Refinements.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-divide    :: Int -> Int -> Int
-wtAverage :: List (Int, Int) -> Int
-
------------------------------------------------------------------------
--- | Our first Data Type
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
------------------------------------------------------------------------
--- | A few Higher-Order Functions
------------------------------------------------------------------------
-
-{-@ map :: _ -> xs:_ -> {v:_ | size v = size xs} @-}
-map f (N)      = N
-map f (C x xs) = C (f x) (map f xs) 
-
-
-foldr                :: (a -> b -> b) -> b -> List a -> b 
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-
--- Uh oh. How shall we fix the error? Lets move on for now...
-
-{-@ foldr1           :: (a -> a -> a) -> {v:List a | size v > 0} -> a @-}   
-foldr1 f (C x xs)    = foldr f x xs
-foldr1 f N           = dead "foldr1"
-
-
------------------------------------------------------------------------
--- | 6. Weighted-Averages 
------------------------------------------------------------------------
-
--- Yikes, a divide-by-zero. How shall we fix it?
-{-@ wtAverage :: {v : List (Pos, Pos) | size v > 0} -> Int @-}
-wtAverage wxs = total `divide` weights
-  where
-    total     = sum $ map (\(w, x) -> w * x) wxs
-    weights   = sum $ map (\(w, _) -> w    ) wxs
-    sum       = foldr1 (+)
-
-
--- | Exercise: How would you modify the types to get output `Pos` above? 
-
-
-
-
-
- 
------------------------------------------------------------------------
--- | Measuring the Size of Data
------------------------------------------------------------------------
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-
-{-@ append :: xs:_ -> ys:_ -> {v: _ | size v = size ys + size xs} @-}
-append N        ys = ys
-append (C x xs) ys = C x (append xs ys)
-
-
------------------------------------------------------------------------
--- | But there are limitations: why does this not work? ...
------------------------------------------------------------------------
-
-{-@ append' :: xs:_ -> ys:_ -> {v: _ | size v = size xs + size ys} @-}
-append' xs ys =  foldr C ys xs
-
-
-
-
------------------------------------------------------------------------
--- | Definitions from 000_Refinements.hs
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-{-@ dead :: {v:_ | false} -> a @-}
-dead msg = error msg
-
-{-@ divide :: Int -> NonZero -> Int @-}
-divide x 0 = dead "divide-by-zero"
-divide x n = x `div` n
-
-
diff --git a/docs/slides/BOS14/hs/end/01_Elements.hs b/docs/slides/BOS14/hs/end/01_Elements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/01_Elements.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-module Elems where
-
-import Prelude hiding (elem)
-
-import Data.Set (Set (..))
-
-
------------------------------------------------------------------------------
--- | 1. Reasoning about the Set of Elements in a List ----------------------- 
------------------------------------------------------------------------------
-
--- | The set of `elems` of a list
-
-
-
-
-
-{-@ measure elems :: [a] -> (Set a)
-    elems ([])    = (Set_empty 0)
-    elems (x:xs)  = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-
-
-
--- | A few handy aliases
-
-{-@ predicate EqElts Xs Ys    = elems Xs = elems Ys                      @-}
-{-@ predicate UnElts Xs Ys Zs = elems Xs = Set_cup (elems Ys) (elems Zs) @-}
-
--- | Reasoning about `append` and `reverse`
-
-{-@ append  :: xs:_ -> ys:_ -> {v:_ | UnElts v xs ys} @-}  
-append [] ys     = ys
-append (x:xs) ys = x : append xs ys 
-
-
-{-@ reverse :: xs:_ -> {v:_ | EqElts v xs} @-}
-reverse xs           = revAcc xs []
-  where 
-   revAcc []     acc = acc
-   revAcc (x:xs) acc = revAcc xs (x:acc)
-
-
-
--- But, there are limitations...
-   
-{-@ append'  :: xs:_ -> ys:_ -> {v:_ | UnElts v xs ys} @-}  
-append' xs ys = foldr (:) ys xs
-
-
------------------------------------------------------------------------------
--- | 2. Checking for duplicates (xmonad) ------------------------------------ 
------------------------------------------------------------------------------
-
--- | Is a list free of duplicates?
-   
-{-@ measure nodups :: [a] -> Prop
-    nodups ([])   = true
-    nodups (x:xs) = (not (Set_mem x (elems xs)) && nodups xs)
-  @-}
-
--- | Weeding out duplicates.
-   
-{-@ nub :: xs:_ -> {v:_ | nodups v && EqElts v xs} @-}
-nub xs             = go xs []
-  where
-    go (x:xs) l
-      | x `elem` l = go xs l     
-      | otherwise  = go xs (x:l) 
-    go [] l        = l
-
-
-{-@ elem :: x:_ -> ys:_ -> {v:Bool | Prop v <=> Set_mem x (elems ys)} @-}
-elem x []     = False
-elem x (y:ys) = x == y || elem x ys
-
------------------------------------------------------------------------------
--- | 3. Associative Lookups ------------------------------------------------- 
------------------------------------------------------------------------------
-
--- The dread "key-not-found". How can we fix it?
-{-@ find :: k:_ -> {m:_ | ValidKey k m} -> _ @-}
-find key ((k,v) : kvs)
-  | key == k  = v
-  | otherwise = find key kvs
-find _ []     = die "Key not found! Lookup failed!"
-
-
-{-@ die :: {v:String | false} -> b @-}
-die x = error x
-
-
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-
-{-@ predicate ValidKey K M    = Set_mem K (keys M)                       @-}
-
-{-@ measure keys  :: [(a, b)] -> (Set a)
-    keys ([])     = (Set_empty 0)
-    keys (kv:kvs) = (Set_cup (Set_sng (fst kv)) (keys kvs))
-  @-}
- 
diff --git a/docs/slides/BOS14/hs/end/02_AbstractRefinements.hs b/docs/slides/BOS14/hs/end/02_AbstractRefinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/02_AbstractRefinements.hs
+++ /dev/null
@@ -1,252 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module AbstractRefinements (
-    listMax
-  , insertSort
-  , insertSort'
-  , insertSort''
-  ) where
-
-import Data.Set hiding (insert, foldr,size,filter, append) 
-import Prelude hiding (map, foldr, filter, append)
-
-listMax     :: [Int] -> Int
-
-
-
------------------------------------------------------------------------
--- | #1. Abstract Refinements 
------------------------------------------------------------------------
-
-{-@ listMax :: forall <p :: Int -> Prop>. {v:[Int<p>] | len v > 0} -> Int<p> @-} 
-listMax xs  = foldr1 max xs 
-
-
--- Lets define a few different subsets of Int
-
-{-@ type Even = {v:Int | v mod 2 == 0}      @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0}      @-}
-{-@ type RGB  = {v:Int | 0 <= v && v < 256} @-}
-
-
-{-@ xE :: Even @-}
-xE = listMax [0, 200, 4000, 60] 
-
-
-{-@ xO :: Odd @-}
-xO = listMax [1, 21, 4001, 961] 
-
-
-{-@ xR :: RGB @-}
-xR = listMax [1, 21, 41, 61] 
-
-
-
-
-
-
-
--- > RJ: Return to slides for 06_Inductive
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #2. Induction, as an Abstract Refinement 
------------------------------------------------------------------------
-
-
-{-@ ifoldr :: forall a b <p :: List a -> b -> Prop>. 
-                 (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-               -> b<p N> 
-               -> ys:List a
-               -> b<p ys>                            @-}
-ifoldr :: (List a -> a -> b -> b) -> b -> List a -> b
-ifoldr f b N        = b
-ifoldr f b (C x xs) = f xs x (ifoldr f b xs)
-
-
-
-
-
-
-
-
-{-@ append :: xs:List a -> ys:List a -> {v:List a | UnElems v xs ys} @-} 
-append xs ys = ifoldr (\_ -> C) ys xs 
-
-
-
-
-
-
-
-{-@ filter :: (a -> Bool) -> xs:List a -> {v:List a | SubElems v xs } @-} 
-filter f xs = ifoldr (id (\_ x ys -> if f x then C x ys else ys)) N xs
-
-
-
-
-
-
--- > RJ: Return to slides for 08_Recursive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #3. Abstract Refinement from List's Type 
------------------------------------------------------------------------
-
-
-{-@ data List a <p :: a -> a -> Prop> 
-     = N | C {hd :: a, tl :: List<p> (a<p hd>) } @-}
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #4. Instantiating Abstract Refinements on Lists 
------------------------------------------------------------------------
-
-
-{-@ type IncrList a = List <{\x y -> x <= y}> a @-} 
-{-@ type DecrList a = List <{\x y -> x >= y}> a @-} 
-{-@ type DiffList a = List <{\x y -> x /= y}> a @-} 
-
-{-@ ups   :: IncrList Integer @-}
-ups       = 1 `C` 2 `C` 4 `C` N
-
-{-@ downs :: DecrList Integer @-}
-downs     = 100 `C` 20 `C` 4 `C` N
-
-{-@ diffs :: DiffList Integer @-}
-diffs     = 100 `C` 1000 `C` 10 `C` 1 `C`  N
-
------------------------------------------------------------------------
--- | 5. Insertion Sort
------------------------------------------------------------------------
-
-{-@ insert         :: x:a -> xs:IncrList a -> {v:IncrList a | AddElt v x xs && size v = 1 + size xs} @-}
-insert x N         = x `C` N
-insert x (C y ys)
-  | x < y          = x `C` y `C` ys
-  | otherwise      = y `C` insert x ys 
-
-{-@ insertSort      :: xs:List a -> IncrList a @-}
-insertSort N        = N
-insertSort (C x xs) = insert x (insertSort xs)
-
------------------------------------------------------------------------
--- | 6. Insertion Sort: using a `foldr` 
------------------------------------------------------------------------
-
-{-@ insertSort' :: xs:List a -> IncrList a @-}
-insertSort' xs = foldr insert N xs
-
-
-
-
-
-
-
--- Or even better... we can use `ifoldr`
-
-{-@ insertSort'' :: xs:List a -> {v:IncrList a | EqSize v xs && EqElem v xs} @-}
-insertSort'' xs = ifoldr (\_ -> insert) N xs
-
-
-
-
-
-
-
-
--- > RJ: Return to slides for "07_Array"
-
-
-
-
-
-
-              
------------------------------------------------------------------------
--- | Boilerplate definitions from 00_Refinements.hs
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-{-@ predicate EqSize X Y    = size X  = size Y                         @-}
-{-@ predicate EqElem X Y    = elems X = elems Y                        @-}
-{-@ predicate UnElems X Y Z = elems X = Set_cup (elems Y) (elems Z)    @-}
-{-@ predicate SubElems X Y  = Set_sub (elems X) (elems Y)              @-}
-{-@ predicate AddElt V X Xs = elems V = Set_cup (Set_sng X) (elems Xs) @-}
-
-{-@ measure elems ::List a -> (Set a)
-    elems (N)      = (Set_empty 0)
-    elems (C x xs) = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{-@ predicate SubConsElems X Y Ys = Set_sub (elems X) (Set_cup (Set_sng Y) (elems Ys)) @-}
-
-{-@ qual1  :: y:_ -> ys:_ -> {v:_ | SubConsElems v y ys} @-}
-qual1 :: a -> List a -> List a 
-qual1 y ys = undefined 
-
-{-@ qual2  :: y:_ -> ys:_ -> {v:_ | size v <= 1 + size ys} @-}
-qual2 :: a -> List a -> List a 
-qual2 y ys = undefined 
-
-
-
diff --git a/docs/slides/BOS14/hs/end/03_Termination.hs b/docs/slides/BOS14/hs/end/03_Termination.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/03_Termination.hs
+++ /dev/null
@@ -1,142 +0,0 @@
-module Termination where
-
-import Prelude hiding (gcd, mod, map, repeat, take)
-import Language.Haskell.Liquid.Prelude
-
-fac   :: Int -> Int
-tfac  :: Int -> Int -> Int
-map   :: (a -> b) -> List a -> List b
-merge :: (Ord a) => List a -> List a -> List a
-
-
--------------------------------------------------------------------------
--- | Simple Termination
--------------------------------------------------------------------------
-
-{-@ fac :: Nat -> Nat @-}
-fac 0 = 1
-fac 1 = 1
-fac n = n * fac (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- | Semantic Termination
--------------------------------------------------------------------------
-
-{-@ gcd :: a:Nat -> b:{v:Nat | v < a} -> Int @-}
-gcd :: Int -> Int -> Int
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-
-
-{-@ mod :: a:Nat -> b:{v:Nat| 0 < v && v < a} -> {v:Nat | v < b} @-}
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
--------------------------------------------------------------------------
--- | Explicit Metrics #1 
--------------------------------------------------------------------------
-
-tfac acc 0 = acc
-tfac acc n = tfac (n * acc) (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- Explicit Metrics #2 
--------------------------------------------------------------------------
-
-range :: Int -> Int -> [Int]
-range lo hi
-  | lo < hi   = lo : range (lo + 1) hi
-  | otherwise = []
-
-
-
--------------------------------------------------------------------------
--- | Structural Recursion 
--------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-{-@ measure size @-}
-size :: List a -> Int 
-size (C x xs) = 1 + size xs
-size (N)      = 0
-
-{-@ map :: (a -> b) -> xs:List a -> (List b) / [size xs] @-}
-map _ N        = N
-map f (C x xs) = f x `C` map f xs
-
-
-
--------------------------------------------------------------------------
--- | Default Metrics
--------------------------------------------------------------------------
-
-{-@ data List a = N | C {x :: a, xs :: List a } @-}
-
-map' _ N        = N
-map' f (C x xs) = f x `C` map' f xs
-
-
-
--------------------------------------------------------------------------
--- | Termination Expressions Metrics
--------------------------------------------------------------------------
-
-merge (C x xs) (C y ys)
-  | x < y      = x `C` merge xs (y `C` ys)
-  | otherwise  = y `C` merge (x `C` xs) ys
-merge _   ys   = ys
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------
-take            :: Int -> List a -> List a
-{-@ invariant {v : List a | 0 <= size v} @-}
-
-
-
-
-
-
-
-
--- CHEAT CODES, in case I forget :)
-
-{- tfac :: Nat -> n:Nat -> Nat / [n] @-}
-{- range :: lo:Nat -> hi:Nat -> [Nat] / [hi-lo] @-}
-{- merge :: xs:_ -> ys:_ -> _ / [size xs + size ys] @-}
diff --git a/docs/slides/BOS14/hs/end/04_Streams.hs b/docs/slides/BOS14/hs/end/04_Streams.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/04_Streams.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-module Streams where
-
-import Prelude hiding (take, repeat)
-
-import Language.Haskell.Liquid.Prelude
-
--------------------------------------------------------------------------
--- | Lists 
--------------------------------------------------------------------------
- 
-data List a = N | C { x :: a, xs :: List a }
-
--- | Associate an abstract refinement with the _tail_ xs
-
-{-@ data List a <p :: List a -> Prop>
-      = N | C { x  :: a
-              , xs :: List <p> a <<p>>
-              }
-  @-}
-
--------------------------------------------------------------------------
--- | Infinite Streams
--------------------------------------------------------------------------
-
--- | Infinite List = List where _each_ tail is a `cons` ...
-
-{-@ type Stream a = {xs: List <{\v -> cons v}> a | cons xs} @-}
-
--- | A simple measure for when a `List` is a `Cons`
-
-{-@ measure cons  :: (List a) -> Prop
-    cons (C x xs) = true 
-    cons (N)      = false 
-  @-}
-
--------------------------------------------------------------------------
--- | Creating an Infinite Stream
--------------------------------------------------------------------------
-
-{-@ Lazy repeat @-}
-                 
-{-@ repeat :: a -> Stream a @-}
-repeat   :: a -> List a
-repeat x = x `C` repeat x
-
-
--------------------------------------------------------------------------
--- | Using an Infinite Stream
--------------------------------------------------------------------------
-
-{-@ take        :: n:Nat -> Stream a -> {v:List a | size v = n} @-}
-take 0 _        = N
-take n (C x xs) = x `C` take (n-1) xs
-take _ N        = liquidError "never happens"
-
--------------------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
--- | Other specs from before ...
-
-{-@ measure size :: List a -> Int 
-    size (N)      = 0
-    size (C x xs) = (1 + size xs)
-  @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------
-take            :: Int -> List a -> List a
-
-
-
-
-
-
-
-
-
diff --git a/docs/slides/BOS14/hs/end/05_Memory.hs b/docs/slides/BOS14/hs/end/05_Memory.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/05_Memory.hs
+++ /dev/null
@@ -1,387 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--diffcheck"     @-}
-
-module Memory where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Data.ByteString.Internal (c2w, w2c)
-import Language.Haskell.Liquid.Prelude
-
-
-------------------------------------------------------------------------
--- | 1. Low-level Pointer API  -----------------------------------------
-------------------------------------------------------------------------
-
--- | Create a buffer of size 4 and initialize it with zeros
-
-zero4  = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 3) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
--- But whats to prevent an overflow, e.g. writing to offset 5 or 50?
-            
-
-
--- | Types for Pointers
-
--- data Ptr a         
--- data ForeignPtr a 
-
--- | Size of Ptr and ForeignPtr
-
--- measure plen  :: Ptr a -> Int 
--- measure fplen :: ForeignPtr a -> Int 
-
-
-{-@ type PtrN a N        = {v:Ptr a        |  plen v  = N}  @-}
-{-@ type ForeignPtrN a N = {v:ForeignPtr a |  fplen v = N}  @-}
-
--- | Allocating Memory
-
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignPtrN a n) @-}
-
--- | Using a pointer
-
-{- withForeignPtr :: fp:ForeignPtr a 
-                  -> (PtrN a (fplen fp) -> IO b)  
-                  -> IO b             
--}
-
--- | Pointer Arithmetic
-
-{- plusPtr :: p:Ptr a
-           -> o:{Nat|o <= plen p}   -- in bounds
-           -> PtrN b (plen b - o)   -- remainder
--}
-
--- | Read and Write
-
-{- peek :: {v:Ptr a | 0 < plen v} -> IO a  
-   poke :: {v:Ptr a | 0 < plen v} -> a -> IO ()  
- -}
-
--- | Example: Preventing Overflows e.g. writing 5 or 50 zeros?
-
-zero4' = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 5) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
-
-
-------------------------------------------------------------------------
--- | 2. ByteString API -------------------------------------------------
-------------------------------------------------------------------------
-
-data ByteString = PS {
-    bPtr :: ForeignPtr Word8
-  , bOff :: !Int
-  , bLen :: !Int
-  }
-
-
--- | Refined Type, with invariants
-
-{-@ data ByteString = PS {
-      bPtr :: ForeignPtr Word8
-    , bOff :: {v:Nat| v        <= fplen bPtr}
-    , bLen :: {v:Nat| v + bOff <= fplen bPtr}
-    }
-
-  @-}
-
--- | Some useful abbreviations
-
-{-@ type ByteStringN N = {v:ByteString | bLen v = N} @-}
-{-@ type StringN N     = {v:String     | len v  = N} @-}
-
--- | Legal Bytestrings 
-
-{-@ good1 :: IO (ByteStringN 5) @-}
-good1 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 0 5
-
-{-@ good2 :: IO (ByteStringN 3) @-}
-good2 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 2 3
-
--- | Illegal Bytestrings 
-
-bad1 = do fp <- mallocForeignPtrBytes 3 
-          return $ PS fp 0 10 
-
-bad2 = do fp <- mallocForeignPtrBytes 3
-          return $ PS fp 2 2
-
-
-
--- | ByteString API: `create`
-
-create :: Int -> (Ptr Word8 -> IO ()) -> ByteString
-
-create n fill = unsafePerformIO $ do
-  fp  <- mallocForeignPtrBytes n
-  withForeignPtr fp fill 
-  return $! PS fp 0 n
-
-
--- Yikes, there is an error! How to fix?
-
--- | ByteStringN API: `unsafeTake`
-
-unsafeTake n (PS x s l) = PS x s n
-
--- Wow, thats super fast. O(1)! But how to fix the error?
-
--- | ByteString API: `pack`
-
-pack          :: String -> ByteString
-pack str      = create n $ \p -> go p xs
-  where
-  n           = length str
-  xs          = map c2w str
-  go p (x:xs) = poke p x >> go (plusPtr p 1) xs
-  go _ []     = return  ()
-
--- Hmm. How to fix the error?
-
-
-
--- | ByteString API: `unpack` 
-
-
-
-{-@ qualif Unpack(v:a, acc:b, n:int) : len v = 1 + n + len acc @-}
-
-unpack :: ByteString -> String 
-unpack (PS _  _ 0)  = []
-unpack (PS ps s l)  = unsafePerformIO $ withForeignPtr ps $ \p ->
-   go (p `plusPtr` s) (l - 1)  []
-  where
-   go p 0 acc = peek p >>= \e -> return (w2c e : acc)
-   go p n acc = peek (p `plusPtr` n) >>= \e -> go p (n-1) (w2c e : acc)
-
-
-
-------------------------------------------------------------------------
--- | 3. Application API (Heartbleed no more!) --------------------------
-------------------------------------------------------------------------
-
-chop     :: String -> Int -> String 
-chop s n =  s'
-  where 
-    b    = pack s          -- down to low-level
-    b'   = unsafeTake n b  -- grab n chars
-    s'   = unpack b'       -- up to high-level
-
--- Whats the problem?
-
-
-
-
-
--- | "HeartBleed" no more
-
-demo     = [ex6, ex30]
-  where
-    ex   = ['R','a','n','j','i','t']
-    ex6  = chop ex 6  -- ok
-    ex30 = chop ex 30 -- out of bounds
-
-
--- "Bleeding" `chop ex 30` *rejected* by compiler
-
-
-
-------------------------------------------------------------------------
--- | 3. Bonus Material -------------------------------------------------
-------------------------------------------------------------------------
-
--- | `group` ing ByteStrings 
-
-{- How shall we type `group` where
-
-     group "foobaaar"
-
-   returns
-
-     ["f","oo", "b", "aaa", "r"]
-
--}
-
--- | An alias for NON-EMPTY ByteStrings
-    
-{-@ type ByteStringNE = {v:ByteString | bLen v > 0} @-}
-
--- | A measure for the sum of sizes of a LIST of ByteStrings
-    
-{-@ measure bLens  :: [ByteString] -> Int
-    bLens ([])   = 0
-    bLens (x:xs) = (bLen x + bLens xs)
-  @-}
-
--- | @group@
-    
-{-@ group :: b:ByteString -> {v: [ByteStringNE] | bLens v = bLen b} @-}
-group xs
-    | null xs   = []
-    | otherwise = let y = unsafeHead xs
-                      (ys, zs) = spanByte (unsafeHead xs) (unsafeTail xs)
-                  in (y `cons` ys) : group zs
-
-
--- | @spanByte@ does the heavy lifting
-
-{-@ spanByte :: Word8 -> b:ByteString -> (ByteStringPair b) @-}
-spanByte :: Word8 -> ByteString -> (ByteString, ByteString)
-spanByte c ps@(PS x s l) = unsafePerformIO $ withForeignPtr x $ \p ->
-    go (p `plusPtr` s) 0
-  where
-    go p i | i >= l    = return (ps, empty)
-           | otherwise = do c' <- peekByteOff p i
-                            if c /= c'
-                                then return (unsafeTake i ps, unsafeDrop i ps)
-                                else go p (i+1)
-
--- | Using the alias
-                            
-{-@ type ByteStringPair B = (ByteString, ByteString)<{\x1 x2 ->
-       bLen x1 + bLen x2 = bLen B}> @-}
-
-
-
-
-
-
-
-
-
-
-----------------------------------------------------------------------------
--- | CHEAT AREA
-----------------------------------------------------------------------------
-
-{- create     :: n:Nat -> (PtrN Word8 n -> IO ()) -> ByteStringN n      @-}
-{- unsafeTake :: n:Nat -> b:{ByteString | n <= bLen b} -> ByteStringN n @-}
-{- pack       :: s:String -> ByteStringN (len s)                        @-}
-{- unpack     :: b:ByteString -> {v:String | len v = bLen b}            @-}
-{- chop       :: s:String -> n:{Nat | n <= len s} -> StringN n          @-} 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | Helper Code (Stuff from BS benchmark, to make demo self-contained)
------------------------------------------------------------------------
-
-{-@ unsafeCreate :: l:Nat -> ((PtrN Word8 l) -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = create n f -- unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLen  v >= 0} @-}
-{-@ invariant {v:[ByteString] | bLens v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
-{-@ unsafeHead :: {v:ByteString | (bLen v) > 0} -> Word8 @-}
-
-unsafeHead :: ByteString -> Word8
-unsafeHead (PS x s l) = liquidAssert (l > 0) $
-  unsafePerformIO  $  withForeignPtr x $ \p -> peekByteOff p s
-
-{-@ unsafeTail :: b:{v:ByteString | (bLen v) > 0}
-               -> {v:ByteString | (bLen v) = (bLen b) - 1} @-}
-unsafeTail :: ByteString -> ByteString
-unsafeTail (PS ps s l) = liquidAssert (l > 0) $ PS ps (s+1) (l-1)
-
-{-@ null :: b:ByteString -> {v:Bool | ((Prop v) <=> ((bLen b) = 0))} @-}
-null :: ByteString -> Bool
-null (PS _ _ l) = liquidAssert (l >= 0) $ l <= 0
-
-{-@ unsafeDrop :: n:Nat
-               -> b:{v: ByteString | n <= (bLen v)} 
-               -> {v:ByteString | (bLen v) = (bLen b) - n} @-}
-unsafeDrop  :: Int -> ByteString -> ByteString
-unsafeDrop n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x (s+n) (l-n)
-
-{-@ cons :: Word8 -> b:ByteString -> {v:ByteString | (bLen v) = 1 + (bLen b)} @-}
-cons :: Word8 -> ByteString -> ByteString
-cons c (PS x s l) = unsafeCreate (l+1) $ \p -> withForeignPtr x $ \f -> do
-        poke p c
-        memcpy (p `plusPtr` 1) (f `plusPtr` s) (fromIntegral l)
-
-{-@ empty :: {v:ByteString | (bLen v) = 0} @-} 
-empty :: ByteString
-empty = PS nullForeignPtr 0 0
-
-{-@ assume
-    c_memcpy :: dst:(PtrV Word8)
-             -> src:(PtrV Word8) 
-             -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-             -> IO (Ptr Word8)
-  @-}
-foreign import ccall unsafe "string.h memcpy" c_memcpy
-    :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8)
-
-{-@ memcpy :: dst:(PtrV Word8)
-           -> src:(PtrV Word8) 
-           -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-           -> IO () 
-  @-}
-memcpy :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
-memcpy p q s = c_memcpy p q s >> return ()
-
-{-@ assume nullForeignPtr :: {v: ForeignPtr Word8 | (fplen v) = 0} @-}
-nullForeignPtr :: ForeignPtr Word8
-nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr
-{-# NOINLINE nullForeignPtr #-}
-
-
-
diff --git a/docs/slides/BOS14/hs/end/06_Eval.hs b/docs/slides/BOS14/hs/end/06_Eval.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/end/06_Eval.hs
+++ /dev/null
@@ -1,71 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-
-module Eval (eval) where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-import Prelude hiding (lookup)
-import Data.Set (Set (..))
-
-lookup :: Bndr -> Env Expr -> Expr 
-
--------------------------------------------------------------------
--- | Binders, Expressions, Environments
--------------------------------------------------------------------
-
-type Bndr = String 
-
-data Expr = Const Int
-          | Var   Bndr
-          | Plus  Expr Expr
-          | Let   Bndr Expr Expr
-
-type Env a = [(Bndr, a)]
-
--------------------------------------------------------------------
--- | Values
--------------------------------------------------------------------
-
-{-@ type Val = {v:Expr | val v} @-}
-
-{-@ measure val       :: Expr -> Prop
-    val (Const i)     = true
-    val (Var x)       = false
-    val (Plus e1 e2)  = false
-    val (Let x e1 e2) = false
-  @-}
-
--------------------------------------------------------------------
-{-@ lookup :: x:Bndr -> {v:Env Val | Set_mem x (vars v)} -> Val @-}
--------------------------------------------------------------------
-lookup x ((y,v):env)   
-  | x == y             = v
-  | otherwise          = lookup x env
-lookup x []            = liquidError "Unbound Variable"
-
--------------------------------------------------------------------
-{-@ eval :: g:Env Val -> ClosedExpr g -> Val @-}
--------------------------------------------------------------------
-eval env i@(Const _)   = i
-eval env (Var x)       = lookup x env 
-eval env (Plus e1 e2)  = plus (eval env e1) (eval env e2) 
-eval env (Let x e1 e2) = eval env' e2 
-  where 
-    env'               = (x, eval env e1) : env
-
-plus (Const i) (Const j) = Const (i+j)
-plus _         _         = liquidError "Bad call to plus"
-
-
-{-@ type ClosedExpr G  = {v:Expr | Set_sub (free v) (vars G)} @-}
-
-{-@ measure vars :: Env a -> (Set Bndr)
-    vars ([])    = (Set_empty 0)
-    vars (b:env) = (Set_cup (Set_sng (fst b)) (vars env))
-  @-}
-
-{-@ measure free       :: Expr -> (Set Bndr) 
-    free (Const i)     = (Set_empty 0)
-    free (Var x)       = (Set_sng x) 
-    free (Plus e1 e2)  = (Set_cup (free e1) (free e2))
-    free (Let x e1 e2) = (Set_cup (free e1) (Set_dif (free e2) (Set_sng x)))
-  @-}
diff --git a/docs/slides/BOS14/hs/long/AlphaConvert.hs b/docs/slides/BOS14/hs/long/AlphaConvert.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/AlphaConvert.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--fullcheck"      @-}
-{-@ LIQUID "--maxparams=3"    @-}
-
--- | An example from "A Relational Framework for Higher-Order Shape Analysis",
---   by Gowtham Kaki Suresh Jagannathan, ICFP 2014.
-
-module AlphaConvert (subst, alpha) where
-
-import Prelude hiding ((++), elem)
-import Data.Set (Set (..))
-import Language.Haskell.Liquid.Prelude   
-
-alpha  :: [Bndr] -> Expr -> Expr 
-subst  :: Expr -> Bndr -> Expr -> Expr
-maxs   :: [Int] -> Int 
-lemma1 :: Int -> [Int] -> Bool
-fresh  :: [Bndr] -> Bndr
-free   :: Expr -> [Bndr]
-
----------------------------------------------------------------------
--- | Datatype Definition --------------------------------------------
----------------------------------------------------------------------
-
-type Bndr 
-  = Int
-
-data Expr 
-  = Var Bndr  
-  | Abs Bndr Expr
-  | App Expr Expr
-
-{-@ measure fv       :: Expr -> (Set Bndr)
-    fv (Var x)       = (Set_sng x)
-    fv (Abs x e)     = (Set_dif (fv e) (Set_sng x))
-    fv (App e a)     = (Set_cup (fv e) (fv a)) 
-  @-}
-
-{-@ measure isAbs    :: Expr -> Prop
-    isAbs (Var v)    = false
-    isAbs (Abs v e)  = true
-    isAbs (App e a)  = false             
-  @-}
-
-{-@ predicate AddV E E2 X E1   = fv E = Set_cup (Set_dif (fv E2) (Set_sng X)) (fv E1) @-}
-{-@ predicate EqV E1 E2        = fv E1 = fv E2                                        @-}
-{-@ predicate Occ X E          = Set_mem X (fv E)                                     @-}
-{-@ predicate Subst E E1 X E2  = if (Occ X E2) then (AddV E E2 X E1) else (EqV E E2)  @-}
-
-----------------------------------------------------------------------------
--- | Part 5: Capture Avoiding Substitution ---------------------------------
-----------------------------------------------------------------------------
-{-@ subst :: e1:Expr -> x:Bndr -> e2:Expr -> {e:Expr | Subst e e1 x e2} @-} 
-----------------------------------------------------------------------------
-
-subst e1 x e2@(Var y)
-  | x == y                = e1
-  | otherwise             = e2
-
-subst e1 x (App ea eb)    = App ea' eb'
-  where
-    ea'                   = subst e1 x ea
-    eb'                   = subst e1 x eb
-
-subst e1 x e2@(Abs y e)  
-  | x == y                = e2
-  | y `elem` xs           = subst e1 x (alpha xs e2) 
-  | otherwise             = Abs y      (subst e1 x e)
-     where
-      xs                  = free e1 
-
-----------------------------------------------------------------------------
--- | Part 4: Alpha Conversion ----------------------------------------------
-----------------------------------------------------------------------------
-{-@ alpha :: ys:[Bndr] -> e:{Expr | isAbs e} -> {v:Expr | EqV v e} @-}
-----------------------------------------------------------------------------
-alpha ys (Abs x e) = Abs x' (subst (Var x') x e)
-  where 
-    xs             = free e
-    x'             = fresh (x : ys ++ xs)
-
-alpha _  _         = liquidError "never"
-
-
-----------------------------------------------------------------------------
--- | Part 3: Fresh Variables -----------------------------------------------
-----------------------------------------------------------------------------
-{-@ fresh :: xs:[Bndr] -> {v:Bndr | NotElem v xs} @-}
-----------------------------------------------------------------------------
-fresh bs = liquidAssert (lemma1 n bs) n
-  where 
-    n    = 1 + maxs bs
-
-{-@ maxs :: xs:_ -> {v:_ | v = maxs xs} @-}
-maxs ([])   = 0
-maxs (x:xs) = if (x > maxs xs) then x else (maxs xs) 
- 
- 
-{-@ measure maxs :: [Int] -> Int 
-    maxs ([])   = 0
-    maxs (x:xs) = if (x > maxs xs) then x else (maxs xs) 
-  @-}
-
-{-@ lemma1 :: x:Int -> xs:{[Int] | x > maxs xs} -> {v:Bool | Prop v && NotElem x xs} @-}
-lemma1 _ []     = True 
-lemma1 x (_:ys) = lemma1 x ys 
-
-
-----------------------------------------------------------------------------
--- | Part 2: Free Variables ------------------------------------------------
-----------------------------------------------------------------------------
-
-----------------------------------------------------------------------------
-{-@ free         :: e:Expr -> {v:[Bndr] | elts v = fv e} @-}
-----------------------------------------------------------------------------
-free (Var x)     = [x]
-free (App e e')  = free e ++ free e'
-free (Abs x e)   = free e \\ x
-
-
-----------------------------------------------------------------------------
--- | Part I: Sets with Lists -----------------------------------------------
-----------------------------------------------------------------------------
-
-{-@ predicate IsCup X Y Z  = elts X = Set_cup (elts Y) (elts Z)    @-}
-{-@ predicate IsDel X Y Z  = elts X = Set_dif (elts Y) (Set_sng Z) @-}
-{-@ predicate Elem  X Ys   = Set_mem X (elts Ys)                   @-}
-{-@ predicate NotElem X Ys = not (Elem X Ys)                       @-}
-
-{-@ (++)      :: xs:[a] -> ys:[a] -> {v:[a] | IsCup v xs ys}  @-}
-[]     ++ ys  = ys
-(x:xs) ++ ys  = x : (xs ++ ys)
-
-{-@ (\\)      :: (Eq a) => xs:[a] -> y:a -> {v:[a] | IsDel v xs y} @-}
-xs   \\ y     = [x | x <- xs, x /= y]
-
-{-@ elem      :: (Eq a) => x:a -> ys:[a] -> {v:Bool | Prop v <=> Elem x ys} @-}
-elem x []     = False
-elem x (y:ys) = x == y || elem x ys
- 
-{-@ measure elts :: [a] -> (Set a) 
-    elts ([])    = {v | Set_emp v}
-    elts (x:xs)  = {v | v = Set_cup (Set_sng x) (elts xs) }
-  @-}
diff --git a/docs/slides/BOS14/hs/long/GhcListSort.hs b/docs/slides/BOS14/hs/long/GhcListSort.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/GhcListSort.hs
+++ /dev/null
@@ -1,128 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-
-module GhcSort () where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ type OList a =  [a]<{\fld v -> (v >= fld)}>  @-}
-
----------------------------------------------------------------------------
----------------------------  Official GHC Sort ----------------------------
----------------------------------------------------------------------------
-
-{-@ assert sort1 :: (Ord a) => [a] -> OList a  @-}
-sort1 :: (Ord a) => [a] -> [a]
-sort1 = mergeAll . sequences
-  where
-    sequences (a:b:xs)
-      | a `compare` b == GT = descending b [a]  xs
-      | otherwise           = ascending  b (a:) xs
-    sequences [x] = [[x]]
-    sequences []  = [[]]
-
-    descending a as (b:bs)
-      | a `compare` b == GT = descending b (a:as) bs
-    descending a as bs      = (a:as): sequences bs
-
-    ascending a as (b:bs)
-      | a `compare` b /= GT = ascending b (\ys -> as (a:ys)) bs
-    ascending a as bs       = as [a]: sequences bs
-
-    mergeAll [x] = x
-    mergeAll xs  = mergeAll (mergePairs xs)
-
-    mergePairs (a:b:xs) = merge1 a b: mergePairs xs
-    mergePairs [x]      = [x]
-    mergePairs []       = []
-
--- merge1 needs to be toplevel,
--- to get applied transformRec tx
-merge1 (a:as') (b:bs')
-  | a `compare` b == GT = b:merge1 (a:as')  bs'
-  | otherwise           = a:merge1 as' (b:bs')
-merge1 [] bs            = bs
-merge1 as []            = as
-
----------------------------------------------------------------------------
-------------------- Mergesort ---------------------------------------------
----------------------------------------------------------------------------
-
-{-@ assert sort2 :: (Ord a) => [a] -> OList a  @-}
-sort2 :: (Ord a) => [a] -> [a]
-sort2 = mergesort
-
-mergesort :: (Ord a) => [a] -> [a]
-mergesort = mergesort' . map wrap
-
-mergesort' :: (Ord a) => [[a]] -> [a]
-mergesort' [] = []
-mergesort' [xs] = xs
-mergesort' xss = mergesort' (merge_pairs xss)
-
-merge_pairs :: (Ord a) => [[a]] -> [[a]]
-merge_pairs [] = []
-merge_pairs [xs] = [xs]
-merge_pairs (xs:ys:xss) = merge xs ys : merge_pairs xss
-
-merge :: (Ord a) => [a] -> [a] -> [a]
-merge [] ys = ys
-merge xs [] = xs
-merge (x:xs) (y:ys)
- = case x `compare` y of
-        GT -> y : merge (x:xs)   ys
-        _  -> x : merge    xs (y:ys)
-
-wrap :: a -> [a]
-wrap x = [x]
-
-----------------------------------------------------------------------
--------------------- QuickSort ---------------------------------------
-----------------------------------------------------------------------
-
-{-@ assert sort3 :: (Ord a) => w:a -> [{v:a|v<=w}] -> OList a @-}
-sort3 :: (Ord a) => a -> [a] -> [a]
-sort3 w ls = qsort w ls []
-
--- qsort is stable and does not concatenate.
-qsort :: (Ord a) =>  a -> [a] -> [a] -> [a]
-qsort _ []     r = r
-qsort _ [x]    r = x:r
-qsort w (x:xs) r = qpart w x xs [] [] r
-
--- qpart partitions and sorts the sublists
-qpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-qpart w x [] rlt rge r =
-    -- rlt and rge are in reverse order and must be sorted with an
-    -- anti-stable sorting
-    rqsort x rlt (x:rqsort w rge r)
-qpart w x (y:ys) rlt rge r =
-    case compare x y of
-        GT -> qpart w x ys (y:rlt) rge r
-        _  -> qpart w x ys rlt (y:rge) r
-
--- rqsort is as qsort but anti-stable, i.e. reverses equal elements
-rqsort :: (Ord a) => a -> [a] -> [a] -> [a]
-rqsort _ []     r = r
-rqsort _ [x]    r = x:r
-rqsort w (x:xs) r = rqpart w x xs [] [] r
-
-rqpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-rqpart w x [] rle rgt r =
-    qsort x rle (x:qsort w rgt r)
-rqpart w x (y:ys) rle rgt r =
-    case compare y x of
-        GT -> rqpart w x ys rle (y:rgt) r
-        _  -> rqpart w x ys (y:rle) rgt r
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/docs/slides/BOS14/hs/long/KMP.hs b/docs/slides/BOS14/hs/long/KMP.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/KMP.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-
-module KMP (search) where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-import qualified Data.Map as M
-
-search pat str = kmpSearch (ofList pat) (ofList str) 
-
--------------------------------------------------------------
--- | Do the Search ------------------------------------------
--------------------------------------------------------------
-
-{-@ type Upto N = {v:Nat | v < N} @-} 
-
-{-@ kmpSearch :: (Eq a) => p:Arr a -> s:Arr a -> Maybe (Upto (alen s)) @-}
-kmpSearch p@(A m _) s@(A n _) = go 0 0 
-  where
-    t              = kmpTable p
-    go i j
-      | i >= n     = Nothing 
-      | j >= m     = Just (i - m)
-      | s!i == p!j = go (i+1) (j+1)
-      | j == 0     = go (i+1) j
-      | otherwise  = go i     (t!j) 
-
-
--------------------------------------------------------------
--- | Make Table ---------------------------------------------
--------------------------------------------------------------
-
-kmpTable p@(A m _) = go t 1 0 
-  where
-    t              = new m (\_ -> 0)
-    go t i j
-      | i >= m - 1 = t
-
-      | p!i == p!j = let i' = i + 1
-                         j' = j + 1
-                         t' = set t i' j'
-                     in go t' i' j'           
-    
-      | (j == 0)   = let i' = i + 1
-                         t' = set t i' 0
-                     in go t' i' j
-                             
-      | otherwise  = let j' = t ! j
-                     in go t i j' 
-
-
--------------------------------------------------------------
--- | A Pure Array -------------------------------------------
--------------------------------------------------------------
-
-data Arr a   = A { alen :: Int
-                 , aval :: Int -> a
-                 }
-
-{-@ data Arr a <p :: Int -> a -> Prop>
-             = A { alen :: Nat 
-                 , aval :: i:Upto alen -> a<p i>
-                 }
-  @-}
-
-
-{-@ new :: forall <p :: Int -> a -> Prop>.
-             n:Nat -> (i:Upto n -> a<p i>) -> {v: Arr<p> a | alen v = n}
-  @-}
-new n v = A n v
-
-{-@ (!) :: forall <p :: Int -> a -> Prop>.
-             a:Arr<p> a -> i:Upto (alen a) -> a<p i>
-  @-}
-(A _ f) ! i = f i
-  
-{-@ set :: forall <p :: Int -> a -> Prop>.
-             a:Arr<p> a -> i:Upto (alen a) -> a<p i> -> {v:Arr<p> a | alen v = alen a}
-  @-}
-set a@(A _ f) i v = a { aval = \j -> if (i == j) then v else f j }
-
-{-@ ofList :: xs:[a] -> {v:Arr a | alen v = len xs} @-} 
-ofList xs = new n f
-  where
-    n     = length xs
-    m     = M.fromList $ zip [0..] xs
-    f i   = (M.!) m i 
-
-{-@ map :: (a -> b) -> a:Arr a -> {v:Arr b | alen v = alen a} @-}
-map f a@(A n z) = A n (f . z) 
diff --git a/docs/slides/BOS14/hs/long/RBTree-ord.hs b/docs/slides/BOS14/hs/long/RBTree-ord.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/RBTree-ord.hs
+++ /dev/null
@@ -1,143 +0,0 @@
-
-{-@ LIQUID "--no-termination"   @-}
-
-module Foo (add, remove, deleteMin, deleteMin') where
-
-import Language.Haskell.Liquid.Prelude
-
-data RBTree a = Leaf 
-              | Node Color a !(RBTree a) !(RBTree a)
-              deriving (Show)
-
-data Color = B -- ^ Black
-           | R -- ^ Red
-           deriving (Eq,Show)
-
----------------------------------------------------------------------------
--- | Add an element -------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ add :: (Ord a) => a -> ORBT a -> ORBT a @-}
-add x s = makeBlack (ins x s)
-
-{-@ ins :: (Ord a) => a -> ORBT a -> ORBT a @-}
-ins kx Leaf             = Node R kx Leaf Leaf
-ins kx s@(Node B x l r) = case compare kx x of
-                            LT -> let t = lbal x (ins kx l) r in t 
-                            GT -> let t = rbal x l (ins kx r) in t 
-                            EQ -> s
-ins kx s@(Node R x l r) = case compare kx x of
-                            LT -> Node R x (ins kx l) r
-                            GT -> Node R x l (ins kx r)
-                            EQ -> s
-
----------------------------------------------------------------------------
--- | Delete an element ----------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ remove :: (Ord a) => a -> ORBT a -> ORBT a @-}
-remove x t = makeBlack (del x t)
-
-{-@ del              :: (Ord a) => a -> ORBT a -> ORBT a @-}
-del x Leaf           = Leaf
-del x (Node _ y a b) = case compare x y of
-   EQ -> append y a b 
-   LT -> case a of
-           Leaf         -> Node R y Leaf b
-           Node B _ _ _ -> lbalS y (del x a) b
-           _            -> let t = Node R y (del x a) b in t 
-   GT -> case b of
-           Leaf         -> Node R y a Leaf 
-           Node B _ _ _ -> rbalS y a (del x b)
-           _            -> Node R y a (del x b)
-
-{-@ append  :: y:a -> ORBT {v:a | v < y} -> ORBT {v:a | y < v} -> ORBT a @-}
-append :: a -> RBTree a -> RBTree a -> RBTree a
-
-append _ Leaf r                               
-  = r
-
-append _ l Leaf                               
-  = l
-
-append piv (Node R lx ll lr) (Node R rx rl rr)  
-  = case append piv lr rl of 
-      Node R x lr' rl' -> Node R x (Node R lx ll lr') (Node R rx rl' rr)
-      lrl              -> Node R lx ll (Node R rx lrl rr)
-
-append piv (Node B lx ll lr) (Node B rx rl rr)  
-  = case append piv lr rl of 
-      Node R x lr' rl' -> Node R x (Node B lx ll lr') (Node B rx rl' rr)
-      lrl              -> lbalS lx ll (Node B rx lrl rr)
-
-append piv l@(Node B _ _ _) (Node R rx rl rr)   
-  = Node R rx (append piv l rl) rr
-
-append piv l@(Node R lx ll lr) r@(Node B _ _ _) 
-  = Node R lx ll (append piv lr r)
-
----------------------------------------------------------------------------
--- | Delete Minimum Element -----------------------------------------------
----------------------------------------------------------------------------
-
-{-@ deleteMin  :: ORBT a -> ORBT a @-}
-deleteMin (Leaf)         = Leaf
-deleteMin (Node _ x l r) = makeBlack t
-  where 
-    (_, t)               = deleteMin' x l r
-
-
-{-@ deleteMin' :: k:a -> ORBT {v:a | v < k} -> ORBT {v:a | k < v} -> (a, ORBT a) @-}
-deleteMin' k Leaf r              = (k, r)
-deleteMin' x (Node R lx ll lr) r = (k, Node R x l' r)   where (k, l') = deleteMin' lx ll lr 
-deleteMin' x (Node B lx ll lr) r = (k, lbalS x l' r )   where (k, l') = deleteMin' lx ll lr 
-
----------------------------------------------------------------------------
--- | Rotations ------------------------------------------------------------
----------------------------------------------------------------------------
-
-lbalS k (Node R x a b) r              = Node R k (Node B x a b) r
-lbalS k l (Node B y a b)              = let t = rbal k l (Node R y a b) in t 
-lbalS k l (Node R z (Node B y a b) c) = Node R y (Node B k l a) (rbal z b (makeRed c))
-lbalS k l r                           = error "nein" 
-
-rbalS k l (Node R y b c)              = Node R k l (Node B y b c)
-rbalS k (Node B x a b) r              = let t = lbal k (Node R x a b) r in t 
-rbalS k (Node R x a (Node B y b c)) r = Node R y (lbal x (makeRed a) b) (Node B k c r)
-rbalS k l r                           = error "nein"
-
-lbal k (Node R y (Node R x a b) c) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k (Node R x a (Node R y b c)) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k l r                            = Node B k l r
-
-rbal x a (Node R y b (Node R z c d))  = Node R y (Node B x a b) (Node B z c d)
-rbal x a (Node R z (Node R y b c) d)  = Node R y (Node B x a b) (Node B z c d)
-rbal x l r                            = Node B x l r
-
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-
-makeRed (Node _ x l r) = Node R x l r
-makeRed Leaf           = error "nein" 
-
-makeBlack Leaf           = Leaf
-makeBlack (Node _ x l r) = Node B x l r
-
----------------------------------------------------------------------------
--- | Specifications -------------------------------------------------------
----------------------------------------------------------------------------
-
--- | Ordered Red-Black Trees
-
-{-@ type ORBT a = RBTree <{\root v -> v < root }, {\root v -> v > root}> a @-}
-
--- | Binary Search Ordering
-
-{-@ data RBTree a <l :: a -> a -> Prop, r :: a -> a -> Prop>
-            = Leaf
-            | Node (c    :: Color)
-                   (key  :: a)
-                   (left :: RBTree <l, r> (a <l key>))
-                   (left :: RBTree <l, r> (a <r key>))
-  @-}
diff --git a/docs/slides/BOS14/hs/long/RBTree.hs b/docs/slides/BOS14/hs/long/RBTree.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/RBTree.hs
+++ /dev/null
@@ -1,209 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diff"           @-}
-
-module Foo where
-
-import Language.Haskell.Liquid.Prelude
-
-data RBTree a = Leaf 
-              | Node Color a !(RBTree a) !(RBTree a)
-              deriving (Show)
-
-data Color = B -- ^ Black
-           | R -- ^ Red
-           deriving (Eq,Show)
-
----------------------------------------------------------------------------
--- | Add an element -------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ add :: (Ord a) => a -> RBT a -> RBT a @-}
-add x s = makeBlack (ins x s)
-
-{-@ ins :: (Ord a) => a -> t:RBT a -> {v: ARBTN a {bh t} | IsB t => isRB v} @-}
-ins kx Leaf             = Node R kx Leaf Leaf
-ins kx s@(Node B x l r) = case compare kx x of
-                            LT -> let t = lbal x (ins kx l) r in t 
-                            GT -> let t = rbal x l (ins kx r) in t 
-                            EQ -> s
-ins kx s@(Node R x l r) = case compare kx x of
-                            LT -> Node R x (ins kx l) r
-                            GT -> Node R x l (ins kx r)
-                            EQ -> s
-
----------------------------------------------------------------------------
--- | Delete an element ----------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ remove :: (Ord a) => a -> RBT a -> RBT a @-}
-remove x t = makeBlack (del x t)
-
-{-@ predicate HDel T V = bh V = if (isB T) then (bh T) - 1 else bh T @-}
-
-{-@ del              :: (Ord a) => a -> t:RBT a -> {v:ARBT a | HDel t v && (isB t || isRB v)} @-}
-del x Leaf           = Leaf
-del x (Node _ y a b) = case compare x y of
-   EQ -> append y a b 
-   LT -> case a of
-           Leaf         -> Node R y Leaf b
-           Node B _ _ _ -> lbalS y (del x a) b
-           _            -> let t = Node R y (del x a) b in t 
-   GT -> case b of
-           Leaf         -> Node R y a Leaf 
-           Node B _ _ _ -> rbalS y a (del x b)
-           _            -> Node R y a (del x b)
-
-{-@ append :: y:a -> l:RBT {v:a | v < y} -> r:RBTN {v:a | y < v} {bh l} -> ARBT2 a l r @-}
-append :: a -> RBTree a -> RBTree a -> RBTree a
-append _ Leaf r                               = r
-append _ l Leaf                               = l
-append piv (Node R lx ll lr) (Node R rx rl rr)  = case append piv lr rl of 
-                                                    Node R x lr' rl' -> Node R x (Node R lx ll lr') (Node R rx rl' rr)
-                                                    lrl              -> Node R lx ll (Node R rx lrl rr)
-append piv (Node B lx ll lr) (Node B rx rl rr)  = case append piv lr rl of 
-                                                    Node R x lr' rl' -> Node R x (Node B lx ll lr') (Node B rx rl' rr)
-                                                    lrl              -> lbalS lx ll (Node B rx lrl rr)
-append piv l@(Node B _ _ _) (Node R rx rl rr)   = Node R rx (append piv l rl) rr
-append piv l@(Node R lx ll lr) r@(Node B _ _ _) = Node R lx ll (append piv lr r)
-
----------------------------------------------------------------------------
--- | Delete Minimum Element -----------------------------------------------
----------------------------------------------------------------------------
-
-{-@ deleteMin            :: RBT a -> RBT a @-}
-deleteMin (Leaf)         = Leaf
-deleteMin (Node _ x l r) = makeBlack t
-  where 
-    (_, t)               = deleteMin' x l r
-
-
-{-@ deleteMin'                   :: k:a -> l:RBT {v:a | v < k} -> r:RBTN {v:a | k < v} {bh l} -> (a, ARBT2 a l r) @-}
-deleteMin' k Leaf r              = (k, r)
-deleteMin' x (Node R lx ll lr) r = (k, Node R x l' r)   where (k, l') = deleteMin' lx ll lr 
-deleteMin' x (Node B lx ll lr) r = (k, lbalS x l' r )   where (k, l') = deleteMin' lx ll lr 
-
----------------------------------------------------------------------------
--- | Rotations ------------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ lbalS                             :: k:a -> l:ARBT {v:a | v < k} -> r:RBTN {v:a | k < v} {1 + bh l} -> {v: ARBTN a {1 + bh l} | IsB r => isRB v} @-}
-lbalS k (Node R x a b) r              = Node R k (Node B x a b) r
-lbalS k l (Node B y a b)              = let t = rbal k l (Node R y a b) in t 
-lbalS k l (Node R z (Node B y a b) c) = Node R y (Node B k l a) (rbal z b (makeRed c))
-lbalS k l r                           = liquidError "nein"
-
-{-@ rbalS                             :: k:a -> l:RBT {v:a | v < k} -> r:ARBTN {v:a | k < v} {bh l - 1} -> {v: ARBTN a {bh l} | IsB l => isRB v} @-}
-rbalS k l (Node R y b c)              = Node R k l (Node B y b c)
-rbalS k (Node B x a b) r              = let t = lbal k (Node R x a b) r  in t 
-rbalS k (Node R x a (Node B y b c)) r = Node R y (lbal x (makeRed a) b) (Node B k c r)
-rbalS k l r                           = liquidError "nein"
-
-{-@ lbal                              :: k:a -> l:ARBT {v:a | v < k} -> RBTN {v:a | k < v} {bh l} -> RBTN a {1 + bh l} @-}
-lbal k (Node R y (Node R x a b) c) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k (Node R x a (Node R y b c)) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k l r                            = Node B k l r
-
-{-@ rbal                              :: k:a -> l:RBT {v:a | v < k} -> ARBTN {v:a | k < v} {bh l} -> RBTN a {1 + bh l} @-}
-rbal x a (Node R y b (Node R z c d))  = Node R y (Node B x a b) (Node B z c d)
-rbal x a (Node R z (Node R y b c) d)  = Node R y (Node B x a b) (Node B z c d)
-rbal x l r                            = Node B x l r
-
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ type BlackRBT a = {v: RBT a | IsB v && bh v > 0} @-}
-
-{-@ makeRed :: l:BlackRBT a -> ARBTN a {bh l - 1} @-}
-makeRed (Node B x l r) = Node R x l r
-makeRed _              = liquidError "nein"
-
-{-@ makeBlack :: ARBT a -> RBT a @-}
-makeBlack Leaf           = Leaf
-makeBlack (Node _ x l r) = Node B x l r
-
----------------------------------------------------------------------------
--- | Specifications -------------------------------------------------------
----------------------------------------------------------------------------
-
--- | Red-Black Trees
-
-{-@ type RBT a    = {v: ORBT a | isRB v && isBH v } @-}
-{-@ type RBTN a N = {v: RBT a  | bh v = N }         @-}
-
--- | Invariant 1: Binary Search Ordering 
-
-{-@ data RBTree a <l :: a -> a -> Prop, r :: a -> a -> Prop>
-            = Leaf
-            | Node (c    :: Color)
-                   (key  :: a)
-                   (left :: RBTree <l, r> (a <l key>))
-                   (left :: RBTree <l, r> (a <r key>))
-  @-}
-
-{-@ type ORBT a = RBTree <{\root v -> v < root }, {\root v -> v > root}> a @-}
-
--- | Invariant 2: Black Height Same on All Paths 
-
-{-@ measure isBH        :: RBTree a -> Prop
-    isBH (Leaf)         = true
-    isBH (Node c x l r) = (isBH l && isBH r && bh l = bh r)
-  @-}
-
-{-@ measure bh        :: RBTree a -> Int
-    bh (Leaf)         = 0
-    bh (Node c x l r) = bh l + if (c == R) then 0 else 1 
-  @-}
-
--- | Invariant 3: Red Nodes have Black Children
-
-{-@ measure isRB        :: RBTree a -> Prop
-    isRB (Leaf)         = true
-    isRB (Node c x l r) = isRB l && isRB r && (c == R => (IsB l && IsB r))
-  @-}
-
-{-@ measure col         :: RBTree a -> Color
-    col (Node c x l r)  = c
-    col (Leaf)          = B
-  @-}
-
-{-@ measure isB        :: RBTree a -> Prop
-    isB (Leaf)         = false
-    isB (Node c x l r) = c == B 
-  @-}
-
-{-@ predicate IsB T = not (col T == R) @-}
-
---------------------------------------------------------------------------
--- | Auxiliary Specifications --------------------------------------------
---------------------------------------------------------------------------
-
--- | Almost Red-Black Trees
-
-{-@ measure isARB        :: (RBTree a) -> Prop
-    isARB (Leaf)         = true 
-    isARB (Node c x l r) = (isRB l && isRB r)
-  @-}
-
-
--- | Conditionally Red-Black Tree
-
-{-@ type ARBT2 a L R = {v:ARBTN a {bh L} | (IsB L && IsB R) => isRB v} @-}
-{-@ type ARBT a      = {v: ORBT a | isARB v && isBH v} @-}
-{-@ type ARBTN a N   = {v: ARBT a | bh v = N }         @-}
-
-
--------------------------------------------------------------------------------
--- Auxiliary Invariants -------------------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ predicate Invs V = Inv1 V && Inv2 V && Inv3 V   @-}
-{-@ predicate Inv1 V = (isARB V && IsB V) => isRB V @-}
-{-@ predicate Inv2 V = isRB v => isARB v            @-}
-{-@ predicate Inv3 V = 0 <= bh v                    @-}
-{-@ invariant {v: Color | v = R || v = B}           @-}
-{-@ invariant {v: RBTree a | Invs v}                @-}
-
-{-@ inv :: RBTree a -> {v:RBTree a | Invs v}        @-}
-inv Leaf           = Leaf
-inv (Node c x l r) = Node c x (inv l) (inv r)
diff --git a/docs/slides/BOS14/hs/long/SoCalledHeartBleed.hs b/docs/slides/BOS14/hs/long/SoCalledHeartBleed.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/long/SoCalledHeartBleed.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module HeartBleed where
-
-import Data.ByteString.Char8  (pack, unpack) 
-import Data.ByteString.Unsafe (unsafeTake)
-
-heartBleed s n = s'
-  where 
-    b          = pack s         
-    b'         = unsafeTake n b
-    s'         = unpack b'
-
--- > let ex = "Ranjit Loves Burritos"
-    
--- > heartBleed ex 1
---   "R"
-    
--- > heartBleed ex 6
--- > "Ranjit"
-
--- > heartBleed ex 10
--- > "Ranjit Lov"
-    
--- > heartBleed ex 30
--- > "Ranjit Loves Burritos\NUL\NUL\NUL\201\&1j\DC3\SOH\NUL"
diff --git a/docs/slides/BOS14/hs/start/000_Refinements.hs b/docs/slides/BOS14/hs/start/000_Refinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/000_Refinements.hs
+++ /dev/null
@@ -1,109 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (abs)
-
-divide    :: Int -> Int -> Int
-
-
------------------------------------------------------------------------
--- | 1. Simple Refinement Types
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-
-{-@ six :: NonZero @-}
-six = 10 :: Int
-
-
-
------------------------------------------------------------------------
--- | 2. Function Contracts: Preconditions & Dead Code 
------------------------------------------------------------------------
-
-{-@ die :: {v:_ | false} -> a @-}
-die msg = error msg
-
--- Precondition says, there are **NO** valid inputs for @die@.
--- If program type-checks, means @die@ is **NEVER** called at run-time.
-
-
-
-
-
------------------------------------------------------------------------
--- | 3. Function Contracts: Safe Division 
------------------------------------------------------------------------
-
-divide x 0 = undefined -- die "divide-by-zero"
-divide x n = x `div` n
-
-
-
--- | What's the problem above? Nothing to *prevent*
---   us from calling `divide` with 0. Oops.
---   How shall we fix it?
-
-
-
-
-
-
-
-avg2 x y   = divide (x + y)     2
-avg3 x y z = divide (x + y + z) 3
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | But whats the problem here?
------------------------------------------------------------------------
-
-avg xs     = divide total n 
-  where
-    total  = sum xs
-    n      = length xs
-
-
-
--- | Try to fix the above using `abs`olute values?
-
-abs :: Int -> Int
-abs x | x > 0     = x
-      | otherwise = 0 - x
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------
--- | CHEAT AREA ----------------------------------------------
---------------------------------------------------------------
-
--- # START Errors 0
--- # END   Errors 1 (avg)
-
-{- abs    :: x:Int -> {v:Nat | x <= v} @-}
-{- divide :: Int -> NonZero -> Int     @-}
diff --git a/docs/slides/BOS14/hs/start/001_Refinements.hs b/docs/slides/BOS14/hs/start/001_Refinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/001_Refinements.hs
+++ /dev/null
@@ -1,107 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-divide    :: Int -> Int -> Int
-wtAverage :: List (Int, Int) -> Int
-
------------------------------------------------------------------------
--- | Our first Data Type
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
------------------------------------------------------------------------
--- | A few Higher-Order Functions
------------------------------------------------------------------------
-
-map                  :: (a -> b) -> List a -> List b
-map f N              = N
-map f (C x xs)       = C (f x) (map f xs) 
-
-
-foldr                :: (a -> b -> b) -> b -> List a -> b 
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-
--- Uh oh. How shall we fix the error? Lets move on for now...
-
-foldr1           :: (a -> a -> a) -> List a -> a   
-foldr1 f (C x xs)    = foldr f x xs
-foldr1 f N           = die "foldr1"
-
-
------------------------------------------------------------------------
--- | 6. Weighted-Averages 
------------------------------------------------------------------------
-
--- Yikes, a divide-by-zero. How shall we fix it?
-
-wtAverage wxs = total `divide` weights
-  where
-    total     = sum $ map (\(w, x) -> w * x) wxs
-    weights   = sum $ map (\(w, _) -> w    ) wxs
-    sum       = foldr1 (+)
-
-
--- | Exercise: How would you modify the types to get output `Pos` above? 
-
-
- 
------------------------------------------------------------------------
--- | Measuring the Size of Data
------------------------------------------------------------------------
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-
-append N        ys = ys
-append (C x xs) ys = C x (append xs ys)
-
-
------------------------------------------------------------------------
--- | But there are limitations: why does this not work? ...
------------------------------------------------------------------------
-
-{-@ append' :: xs:_ -> ys:_ -> {v: _ | size v = size xs + size ys} @-}
-append' xs ys =  foldr C ys  xs
-
-
-
-
------------------------------------------------------------------------
--- | Definitions from 000_Refinements.hs
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-{-@ die :: {v:_ | false} -> a @-}
-die msg = error msg
-
-{-@ divide :: Int -> NonZero -> Int @-}
-divide x 0 = die "divide-by-zero"
-divide x n = x `div` n
-
------------------------------------------------------------------------
--- | CHEAT AREA 
------------------------------------------------------------------------
-
--- # START-ERRORS 3 (foldr1, wtAverage, append')
--- # END-ERRORS   1 (append')
-
-{- map    :: _ -> xs:_ -> {v:_ | size v = size xs}               @-}
-{- append :: xs:_ -> ys:_ -> {v: _ | size v = size ys + size xs} @-}
-{- foldr1 :: (a -> a -> a) -> {v:List a | size v > 0} -> a       @-}   
-{- wtAverage :: {v : List (Pos, Pos) | size v > 0} -> Int        @-}
diff --git a/docs/slides/BOS14/hs/start/01_Elements.hs b/docs/slides/BOS14/hs/start/01_Elements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/01_Elements.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-module Elems where
-
-import Prelude hiding (elem)
-
-import Data.Set (Set (..))
-
-
------------------------------------------------------------------------------
--- | 1. Reasoning about the Set of Elements in a List ----------------------- 
------------------------------------------------------------------------------
-
--- | The set of `elems` of a list
-
-
-
-
-
-{-@ measure elems :: [a] -> (Set a)
-    elems ([])    = (Set_empty 0)
-    elems (x:xs)  = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-
-
-
--- | A few handy aliases
-
-{-@ predicate EqElts Xs Ys    = elems Xs = elems Ys                      @-}
-{-@ predicate UnElts Xs Ys Zs = elems Xs = Set_cup (elems Ys) (elems Zs) @-}
-
--- | Reasoning about `append` and `reverse`
-
-{-@ append  :: xs:_ -> ys:_ -> {v:_ | UnElts v xs ys} @-}  
-append [] ys     = ys
-append (x:xs) ys = x : append xs ys 
-
-
-{-@ reverse :: xs:_ -> {v:_ | EqElts v xs} @-}
-reverse xs           = revAcc xs []
-  where 
-   revAcc []     acc = acc
-   revAcc (x:xs) acc = revAcc xs (x:acc)
-
-
-
--- But, there are limitations...
-   
-{-@ append'  :: xs:_ -> ys:_ -> {v:_ | UnElts v xs ys} @-}  
-append' xs ys = foldr (:) ys xs
-
-
------------------------------------------------------------------------------
--- | 2. Checking for duplicates (xmonad) ------------------------------------ 
------------------------------------------------------------------------------
-
--- | Is a list free of duplicates?
-   
-{-@ measure nodups :: [a] -> Prop
-    nodups ([])   = true
-    nodups (x:xs) = (not (Set_mem x (elems xs)) && nodups xs)
-  @-}
-
--- | Weeding out duplicates.
-   
-{-@ nub :: xs:_ -> {v:_ | nodups v && EqElts v xs} @-}
-nub xs             = go xs []
-  where
-    go (x:xs) l
-      | x `elem` l = go xs l     
-      | otherwise  = go xs (x:l) 
-    go [] l        = l
-
-
-{-@ elem :: x:_ -> ys:_ -> {v:Bool | Prop v <=> Set_mem x (elems ys)} @-}
-elem x []     = False
-elem x (y:ys) = x == y || elem x ys
-
------------------------------------------------------------------------------
--- | 3. Associative Lookups ------------------------------------------------- 
------------------------------------------------------------------------------
-
--- The dread "key-not-found". How can we fix it?
-find key ((k,v) : kvs)
-  | key == k  = v
-  | otherwise = find key kvs
-find _ []     = die "Key not found! Lookup failed!"
-
-
-{-@ die :: {v:_ | false} -> b @-}
-die x = error x
-
-
-----------------------------------------------------------------------------
--- | CHEAT AREA ------------------------------------------------------------
-----------------------------------------------------------------------------
-
-{-@ predicate ValidKey K M    = Set_mem K (keys M)  @-}
-
-{-@ measure keys  :: [(a, b)] -> (Set a)
-    keys ([])     = (Set_empty 0)
-    keys (kv:kvs) = (Set_cup (Set_sng (fst kv)) (keys kvs))
-  @-}
-
--- # START ERRORS 2 (find, append')
--- # END   ERRORS 1 (append')
-
-{-@ find :: k:_ -> {m:_ | ValidKey k m} -> _ @-}
-
diff --git a/docs/slides/BOS14/hs/start/02_AbstractRefinements.hs b/docs/slides/BOS14/hs/start/02_AbstractRefinements.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/02_AbstractRefinements.hs
+++ /dev/null
@@ -1,252 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module AbstractRefinements (
-    listMax
-  , insertSort
-  , insertSort'
-  , insertSort''
-  ) where
-
-import Data.Set hiding (insert, foldr,size,filter, append) 
-import Prelude hiding (map, foldr, filter, append)
-
-listMax     :: [Int] -> Int
-
-
-
------------------------------------------------------------------------
--- | #1. Abstract Refinements 
------------------------------------------------------------------------
-
-{-@ listMax :: forall <p :: Int -> Prop>. {v:[Int<p>] | len v > 0} -> Int<p> @-} 
-listMax xs  = foldr1 max xs 
-
-
--- Lets define a few different subsets of Int
-
-{-@ type Even = {v:Int | v mod 2 == 0}      @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0}      @-}
-{-@ type RGB  = {v:Int | 0 <= v && v < 256} @-}
-
-
-{-@ xE :: Even @-}
-xE = listMax [0, 200, 4000, 60] 
-
-
-{-@ xO :: Odd @-}
-xO = listMax [1, 21, 4001, 961] 
-
-
-{-@ xR :: RGB @-}
-xR = listMax [1, 21, 41, 61] 
-
-
-
-
-
-
-
--- > RJ: Return to slides for 06_Inductive
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #2. Induction, as an Abstract Refinement 
------------------------------------------------------------------------
-
-
-{-@ ifoldr :: forall a b <p :: List a -> b -> Prop>. 
-                 (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-               -> b<p N> 
-               -> ys:List a
-               -> b<p ys>                            @-}
-ifoldr :: (List a -> a -> b -> b) -> b -> List a -> b
-ifoldr f b N        = b
-ifoldr f b (C x xs) = f xs x (ifoldr f b xs)
-
-
-
-
-
-
-
-
-{-@ append :: xs:List a -> ys:List a -> {v:List a | UnElems v xs ys} @-} 
-append xs ys = ifoldr (\_ -> C) ys xs 
-
-
-
-
-
-
-
-{-@ filter :: (a -> Bool) -> xs:List a -> {v:List a | SubElems v xs } @-} 
-filter f xs = ifoldr (id (\_ x ys -> if f x then C x ys else ys)) N xs
-
-
-
-
-
-
--- > RJ: Return to slides for 08_Recursive
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #3. Abstract Refinement from List's Type 
------------------------------------------------------------------------
-
-
-{-@ data List a <p :: a -> a -> Prop> 
-     = N | C {hd :: a, tl :: List<p> (a<p hd>) } @-}
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | #4. Instantiating Abstract Refinements on Lists 
------------------------------------------------------------------------
-
-
-{-@ type IncrList a = List <{\x y -> x <= y}> a @-} 
-{-@ type DecrList a = List <{\x y -> x >= y}> a @-} 
-{-@ type DiffList a = List <{\x y -> x /= y}> a @-} 
-
-{-@ ups   :: IncrList Integer @-}
-ups       = 1 `C` 2 `C` 4 `C` N
-
-{-@ downs :: DecrList Integer @-}
-downs     = 100 `C` 20 `C` 4 `C` N
-
-{-@ diffs :: DiffList Integer @-}
-diffs     = 100 `C` 1000 `C` 10 `C` 1 `C`  N
-
------------------------------------------------------------------------
--- | 5. Insertion Sort
------------------------------------------------------------------------
-
-{-@ insert         :: x:a -> xs:IncrList a -> {v:IncrList a | AddElt v x xs && size v = 1 + size xs} @-}
-insert x N         = x `C` N
-insert x (C y ys)
-  | x < y          = x `C` y `C` ys
-  | otherwise      = y `C` insert x ys 
-
-{-@ insertSort      :: xs:List a -> IncrList a @-}
-insertSort N        = N
-insertSort (C x xs) = insert x (insertSort xs)
-
------------------------------------------------------------------------
--- | 6. Insertion Sort: using a `foldr` 
------------------------------------------------------------------------
-
-{-@ insertSort' :: xs:List a -> IncrList a @-}
-insertSort' xs = foldr insert N xs
-
-
-
-
-
-
-
--- Or even better... we can use `ifoldr`
-
-{-@ insertSort'' :: xs:List a -> {v:IncrList a | EqSize v xs && EqElem v xs} @-}
-insertSort'' xs = ifoldr (\_ -> insert) N xs
-
-
-
-
-
-
-
-
--- > RJ: Return to slides for "07_Array"
-
-
-
-
-
-
-              
------------------------------------------------------------------------
--- | Boilerplate definitions from 00_Refinements.hs
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-{-@ predicate EqSize X Y    = size X  = size Y                         @-}
-{-@ predicate EqElem X Y    = elems X = elems Y                        @-}
-{-@ predicate UnElems X Y Z = elems X = Set_cup (elems Y) (elems Z)    @-}
-{-@ predicate SubElems X Y  = Set_sub (elems X) (elems Y)              @-}
-{-@ predicate AddElt V X Xs = elems V = Set_cup (Set_sng X) (elems Xs) @-}
-
-{-@ measure elems ::List a -> (Set a)
-    elems (N)      = (Set_empty 0)
-    elems (C x xs) = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{-@ predicate SubConsElems X Y Ys = Set_sub (elems X) (Set_cup (Set_sng Y) (elems Ys)) @-}
-
-{-@ qual1  :: y:_ -> ys:_ -> {v:_ | SubConsElems v y ys} @-}
-qual1 :: a -> List a -> List a 
-qual1 y ys = undefined 
-
-{-@ qual2  :: y:_ -> ys:_ -> {v:_ | size v <= 1 + size ys} @-}
-qual2 :: a -> List a -> List a 
-qual2 y ys = undefined 
-
-
-
diff --git a/docs/slides/BOS14/hs/start/03_Termination.hs b/docs/slides/BOS14/hs/start/03_Termination.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/03_Termination.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-module Termination where
-
-import Prelude hiding (gcd, mod, map, repeat, take)
-import Language.Haskell.Liquid.Prelude
-
-fac   :: Int -> Int
-
--------------------------------------------------------------------------
--- | Simple Termination
--------------------------------------------------------------------------
-
-{-@ fac :: Nat -> Nat @-}
-fac 0 = 1
-fac 1 = 1
-fac n = n * fac (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- | Semantic Termination
--------------------------------------------------------------------------
-
-gcd :: Int -> Int -> Int
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-
-
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
--------------------------------------------------------------------------
--- | Explicit Metrics #1 
--------------------------------------------------------------------------
-
-tfac       :: Int -> Int -> Int
-tfac acc 0 = acc
-tfac acc n = tfac (n * acc) (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- Explicit Metrics #2 
--------------------------------------------------------------------------
-
-range :: Int -> Int -> [Int]
-range lo hi
-  | lo < hi   = lo : range (lo + 1) hi
-  | otherwise = []
-
-
-
--------------------------------------------------------------------------
--- | Structural Recursion 
--------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-{-@ measure size @-}
-size          :: List a -> Int 
-size (C x xs) = 1 + size xs
-size (N)      = 0
-
-
-map            :: (a -> b) -> List a -> List b
-map _ N        = N
-map f (C x xs) = f x `C` map f xs
-
-
-
--------------------------------------------------------------------------
--- | Default Metrics
--------------------------------------------------------------------------
-
-map'            :: (a -> b) -> List a -> List b
-map' _ N        = N
-map' f (C x xs) = f x `C` map' f xs
-
-
-
-
-
-
--------------------------------------------------------------------------
--- | Termination Expressions Metrics
--------------------------------------------------------------------------
-
-merge          :: (Ord a) => List a -> List a -> List a
-
-merge (C x xs) (C y ys)
-  | x < y      = x `C` merge xs (y `C` ys)
-  | otherwise  = y `C` merge (x `C` xs) ys
-merge _   ys   = ys
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------------------------
--- | CHEAT AREA ----------------------------------------------------------------
---------------------------------------------------------------------------------
-
--- # START ERRORS 8
--- # END ERRORS   0
-
-{- gcd   :: a:Nat -> b:{v:Nat | v < a} -> Int @-}
-{- mod   :: a:Nat -> b:{v:Nat| 0 < v && v < a} -> {v:Nat | v < b} @-}
-{- tfac  :: Nat -> n:Nat -> Nat / [n] @-}
-{- range :: lo:Nat -> hi:Nat -> [Nat] / [hi-lo] @-}
-{- map   :: (a -> b) -> xs:List a -> (List b) / [size xs] @-}
-{- merge :: xs:_ -> ys:_ -> _ / [size xs + size ys] @-}
-{- data List [size] a = N | C {x :: a, xs :: List a } @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------------------------
--- | BOILERPLATE ---------------------------------------------------------------
---------------------------------------------------------------------------------
-                 
-{-@ invariant {v : List a | 0 <= size v} @-}
-
diff --git a/docs/slides/BOS14/hs/start/04_Streams.hs b/docs/slides/BOS14/hs/start/04_Streams.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/04_Streams.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-module Streams where
-
-import Prelude hiding (take, repeat)
-
-import Language.Haskell.Liquid.Prelude
-
--------------------------------------------------------------------------
--- | Lists 
--------------------------------------------------------------------------
- 
-data List a = N | C { x :: a, xs :: List a }
-
--- | Associate an abstract refinement with the _tail_ xs
-
-{-@ data List a <p :: List a -> Prop>
-      = N | C { x  :: a
-              , xs :: List <p> a <<p>>
-              }
-  @-}
-
--------------------------------------------------------------------------
--- | Infinite Streams
--------------------------------------------------------------------------
-
--- | Infinite List = List where _each_ tail is a `cons` ...
-
-{-@ type Stream a = {xs: List <{\v -> cons v}> a | cons xs} @-}
-
--- | A simple measure for when a `List` is a `Cons`
-
-{-@ measure cons  :: (List a) -> Prop
-    cons (C x xs) = true 
-    cons (N)      = false 
-  @-}
-
--------------------------------------------------------------------------
--- | Creating an Infinite Stream
--------------------------------------------------------------------------
-
-{-@ Lazy repeat @-}
-                 
-{-@ repeat :: a -> Stream a @-}
-repeat   :: a -> List a
-repeat x = x `C` repeat x
-
-
--------------------------------------------------------------------------
--- | Using an Infinite Stream
--------------------------------------------------------------------------
-
-{-@ take        :: n:Nat -> Stream a -> {v:List a | size v = n} @-}
-take 0 _        = N
-take n (C x xs) = x `C` take (n-1) xs
-take _ N        = liquidError "never happens"
-
--------------------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
--------------------------------------------------------------------------
--- | BOILERPLATE from before ...
--------------------------------------------------------------------------
-
-{-@ measure size :: List a -> Int 
-    size (N)      = 0
-    size (C x xs) = (1 + size xs)
-  @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------
-take            :: Int -> List a -> List a
-
-
-
-
-
-
-
-
-
diff --git a/docs/slides/BOS14/hs/start/05_Memory.hs b/docs/slides/BOS14/hs/start/05_Memory.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/05_Memory.hs
+++ /dev/null
@@ -1,391 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--diffcheck"     @-}
-
-module Memory where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Data.ByteString.Internal (c2w, w2c)
-import Language.Haskell.Liquid.Prelude
-
-
-------------------------------------------------------------------------
--- | 1. Low-level Pointer API  -----------------------------------------
-------------------------------------------------------------------------
-
--- | Create a buffer of size 4 and initialize it with zeros
-
-zero4  = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 3) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
--- But whats to prevent an overflow, e.g. writing to offset 5 or 50?
-            
-
-
--- | Types for Pointers
-
--- data Ptr a         
--- data ForeignPtr a 
-
--- | Size of Ptr and ForeignPtr
-
--- measure plen  :: Ptr a -> Int 
--- measure fplen :: ForeignPtr a -> Int 
-
-
-{-@ type PtrN a N        = {v:Ptr a        |  plen v  = N}  @-}
-{-@ type ForeignPtrN a N = {v:ForeignPtr a |  fplen v = N}  @-}
-
--- | Allocating Memory
-
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignPtrN a n) @-}
-
--- | Using a pointer
-
-{- withForeignPtr :: fp:ForeignPtr a 
-                  -> (PtrN a (fplen fp) -> IO b)  
-                  -> IO b             
--}
-
--- | Pointer Arithmetic
-
-{- plusPtr :: p:Ptr a
-           -> o:{Nat|o <= plen p}   -- in bounds
-           -> PtrN b (plen b - o)   -- remainder
--}
-
--- | Read and Write
-
-{- peek :: {v:Ptr a | 0 < plen v} -> IO a  
-   poke :: {v:Ptr a | 0 < plen v} -> a -> IO ()  
- -}
-
--- | Example: Preventing Overflows e.g. writing 5 or 50 zeros?
-
-zero4' = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 5) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
-
-
-------------------------------------------------------------------------
--- | 2. ByteString API -------------------------------------------------
-------------------------------------------------------------------------
-
-data ByteString = PS {
-    bPtr :: ForeignPtr Word8
-  , bOff :: !Int
-  , bLen :: !Int
-  }
-
-
--- | Refined Type, with invariants
-
-{-@ data ByteString = PS {
-      bPtr :: ForeignPtr Word8
-    , bOff :: {v:Nat| v        <= fplen bPtr}
-    , bLen :: {v:Nat| v + bOff <= fplen bPtr}
-    }
-
-  @-}
-
--- | Some useful abbreviations
-
-{-@ type ByteStringN N = {v:ByteString | bLen v = N} @-}
-{-@ type StringN N     = {v:String     | len v  = N} @-}
-
--- | Legal Bytestrings 
-
-{-@ good1 :: IO (ByteStringN 5) @-}
-good1 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 0 5
-
-{-@ good2 :: IO (ByteStringN 3) @-}
-good2 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 2 3
-
--- | Illegal Bytestrings 
-
-bad1 = do fp <- mallocForeignPtrBytes 3 
-          return $ PS fp 0 10 
-
-bad2 = do fp <- mallocForeignPtrBytes 3
-          return $ PS fp 2 2
-
-
-
--- | ByteString API: `create`
-
-create :: Int -> (Ptr Word8 -> IO ()) -> ByteString
-
-create n fill = unsafePerformIO $ do
-  fp  <- mallocForeignPtrBytes n
-  withForeignPtr fp fill 
-  return $! PS fp 0 n
-
-
--- Yikes, there is an error! How to fix?
-
--- | ByteStringN API: `unsafeTake`
-
-unsafeTake n (PS x s l) = PS x s n
-
--- Wow, thats super fast. O(1)! But how to fix the error?
-
--- | ByteString API: `pack`
-
-pack          :: String -> ByteString
-pack str      = create n $ \p -> go p xs
-  where
-  n           = length str
-  xs          = map c2w str
-  go p (x:xs) = poke p x >> go (plusPtr p 1) xs
-  go _ []     = return  ()
-
--- Hmm. How to fix the error?
-
-
-
--- | ByteString API: `unpack` 
-
-
-
-{-@ qualif Unpack(v:a, acc:b, n:int) : len v = 1 + n + len acc @-}
-
-unpack :: ByteString -> String 
-unpack (PS _  _ 0)  = []
-unpack (PS ps s l)  = unsafePerformIO $ withForeignPtr ps $ \p ->
-   go (p `plusPtr` s) (l - 1)  []
-  where
-   go p 0 acc = peek p >>= \e -> return (w2c e : acc)
-   go p n acc = peek (p `plusPtr` n) >>= \e -> go p (n-1) (w2c e : acc)
-
-
-
-------------------------------------------------------------------------
--- | 3. Application API (Heartbleed no more!) --------------------------
-------------------------------------------------------------------------
-
-chop     :: String -> Int -> String 
-chop s n =  s'
-  where 
-    b    = pack s          -- down to low-level
-    b'   = unsafeTake n b  -- grab n chars
-    s'   = unpack b'       -- up to high-level
-
--- Whats the problem?
-
-
-
-
-
--- | "HeartBleed" no more
-
-demo     = [ex6, ex30]
-  where
-    ex   = ['R','a','n','j','i','t']
-    ex6  = chop ex 6  -- ok
-    ex30 = chop ex 30 -- out of bounds
-
-
--- "Bleeding" `chop ex 30` *rejected* by compiler
-
-
-
-------------------------------------------------------------------------
--- | 3. Bonus Material -------------------------------------------------
-------------------------------------------------------------------------
-
--- | `group` ing ByteStrings 
-
-{- How shall we type `group` where
-
-     group "foobaaar"
-
-   returns
-
-     ["f","oo", "b", "aaa", "r"]
-
--}
-
--- | An alias for NON-EMPTY ByteStrings
-    
-{-@ type ByteStringNE = {v:ByteString | bLen v > 0} @-}
-
--- | A measure for the sum of sizes of a LIST of ByteStrings
-    
-{-@ measure bLens  :: [ByteString] -> Int
-    bLens ([])   = 0
-    bLens (x:xs) = (bLen x + bLens xs)
-  @-}
-
--- | @group@
-    
-{-@ group :: b:ByteString -> {v: [ByteStringNE] | bLens v = bLen b} @-}
-group xs
-    | null xs   = []
-    | otherwise = let y = unsafeHead xs
-                      (ys, zs) = spanByte (unsafeHead xs) (unsafeTail xs)
-                  in (y `cons` ys) : group zs
-
-
--- | @spanByte@ does the heavy lifting
-
-{-@ spanByte :: Word8 -> b:ByteString -> (ByteStringPair b) @-}
-spanByte :: Word8 -> ByteString -> (ByteString, ByteString)
-spanByte c ps@(PS x s l) = unsafePerformIO $ withForeignPtr x $ \p ->
-    go (p `plusPtr` s) 0
-  where
-    go p i | i >= l    = return (ps, empty)
-           | otherwise = do c' <- peekByteOff p i
-                            if c /= c'
-                                then return (unsafeTake i ps, unsafeDrop i ps)
-                                else go p (i+1)
-
--- | Using the alias
-                            
-{-@ type ByteStringPair B = (ByteString, ByteString)<{\x1 x2 ->
-       bLen x1 + bLen x2 = bLen B}> @-}
-
-
-
-
-
-
-
-
-
-
-
-----------------------------------------------------------------------------
--- | CHEAT AREA
-----------------------------------------------------------------------------
-
--- #START ERRORS 13
--- #END   ERRORS 4 (zero4', bad1, bad2, ex30) 
-                            
-{- create     :: n:Nat -> (PtrN Word8 n -> IO ()) -> ByteStringN n      @-}
-{- unsafeTake :: n:Nat -> b:{ByteString | n <= bLen b} -> ByteStringN n @-}
-{- pack       :: s:String -> ByteStringN (len s)                        @-}
-{- unpack     :: b:ByteString -> {v:String | len v = bLen b}            @-}
-{- chop       :: s:String -> n:{Nat | n <= len s} -> StringN n          @-} 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | Helper Code (Stuff from BS benchmark, to make demo self-contained)
------------------------------------------------------------------------
-
-{-@ unsafeCreate :: l:Nat -> ((PtrN Word8 l) -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = create n f -- unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLen  v >= 0} @-}
-{-@ invariant {v:[ByteString] | bLens v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
-{-@ unsafeHead :: {v:ByteString | (bLen v) > 0} -> Word8 @-}
-
-unsafeHead :: ByteString -> Word8
-unsafeHead (PS x s l) = liquidAssert (l > 0) $
-  unsafePerformIO  $  withForeignPtr x $ \p -> peekByteOff p s
-
-{-@ unsafeTail :: b:{v:ByteString | (bLen v) > 0}
-               -> {v:ByteString | (bLen v) = (bLen b) - 1} @-}
-unsafeTail :: ByteString -> ByteString
-unsafeTail (PS ps s l) = liquidAssert (l > 0) $ PS ps (s+1) (l-1)
-
-{-@ null :: b:ByteString -> {v:Bool | ((Prop v) <=> ((bLen b) = 0))} @-}
-null :: ByteString -> Bool
-null (PS _ _ l) = liquidAssert (l >= 0) $ l <= 0
-
-{-@ unsafeDrop :: n:Nat
-               -> b:{v: ByteString | n <= (bLen v)} 
-               -> {v:ByteString | (bLen v) = (bLen b) - n} @-}
-unsafeDrop  :: Int -> ByteString -> ByteString
-unsafeDrop n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x (s+n) (l-n)
-
-{-@ cons :: Word8 -> b:ByteString -> {v:ByteString | (bLen v) = 1 + (bLen b)} @-}
-cons :: Word8 -> ByteString -> ByteString
-cons c (PS x s l) = unsafeCreate (l+1) $ \p -> withForeignPtr x $ \f -> do
-        poke p c
-        memcpy (p `plusPtr` 1) (f `plusPtr` s) (fromIntegral l)
-
-{-@ empty :: {v:ByteString | (bLen v) = 0} @-} 
-empty :: ByteString
-empty = PS nullForeignPtr 0 0
-
-{-@ assume
-    c_memcpy :: dst:(PtrV Word8)
-             -> src:(PtrV Word8) 
-             -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-             -> IO (Ptr Word8)
-  @-}
-foreign import ccall unsafe "string.h memcpy" c_memcpy
-    :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8)
-
-{-@ memcpy :: dst:(PtrV Word8)
-           -> src:(PtrV Word8) 
-           -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-           -> IO () 
-  @-}
-memcpy :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
-memcpy p q s = c_memcpy p q s >> return ()
-
-{-@ assume nullForeignPtr :: {v: ForeignPtr Word8 | (fplen v) = 0} @-}
-nullForeignPtr :: ForeignPtr Word8
-nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr
-{-# NOINLINE nullForeignPtr #-}
-
-
-
diff --git a/docs/slides/BOS14/hs/start/06_Eval-done.hs b/docs/slides/BOS14/hs/start/06_Eval-done.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/06_Eval-done.hs
+++ /dev/null
@@ -1,83 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-
-module Eval (eval) where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-import Prelude hiding (lookup)
-import Data.Set (Set (..))
-
-lookup :: Bndr -> Env Expr -> Expr 
-
--------------------------------------------------------------------
--- | Binders, Expressions, Environments
--------------------------------------------------------------------
-
-type Bndr = String 
-
-data Expr = Const Int
-          | Var   Bndr
-          | Plus  Expr Expr
-          | Let   Bndr Expr Expr
-
-type Env a = [(Bndr, a)]
-
--------------------------------------------------------------------
--- | Values
--------------------------------------------------------------------
-
--------------------------------------------------------------------
-{-@ lookup :: x:Bndr -> {v:Env Val | Set_mem x (vars v)} -> Val @-}
--------------------------------------------------------------------
-lookup x ((y,v):env)   
-  | x == y             = v
-  | otherwise          = lookup x env
-lookup x []            = die "Unbound Variable"
-
--------------------------------------------------------------------
-{-@ eval :: g:Env Val -> ClosedExpr g -> Val @-}
--------------------------------------------------------------------
-eval env i@(Const _)   = i
-eval env (Var x)       = lookup x env 
-eval env (Plus e1 e2)  = plus (eval env e1) (eval env e2) 
-eval env (Let x e1 e2) = eval env' e2 
-  where 
-    env'               = (x, eval env e1) : env
-
-plus (Const i) (Const j) = Const (i+j)
-plus _         _         = die "Bad call to plus"
-
-
-{-@ die :: {v:_ | false} -> a @-}
-die x   = error x
-
-
-
-
-
-
-
-
-
-{-@ type Val           = {v:Expr | val v} @-}
-
-{-@ type ClosedExpr G  = {v:Expr | Set_sub (free v) (vars G)} @-}
-
-{-@ measure vars :: Env a -> (Set Bndr)
-    vars ([])    = (Set_empty 0)
-    vars (b:env) = (Set_cup (Set_sng (fst b)) (vars env))
-  @-}
-
-{-@ measure free       :: Expr -> (Set Bndr) 
-    free (Const i)     = (Set_empty 0)
-    free (Var x)       = (Set_sng x) 
-    free (Plus e1 e2)  = (Set_cup (free e1) (free e2))
-    free (Let x e1 e2) = (Set_cup (free e1) (Set_dif (free e2) (Set_sng x)))
-  @-}
-
-{-@ measure val       :: Expr -> Prop
-    val (Const i)     = true
-    val (Var x)       = false
-    val (Plus e1 e2)  = false
-    val (Let x e1 e2) = false
-  @-}
-
diff --git a/docs/slides/BOS14/hs/start/06_Eval.hs b/docs/slides/BOS14/hs/start/06_Eval.hs
deleted file mode 100644
--- a/docs/slides/BOS14/hs/start/06_Eval.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-
-module Eval (eval) where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-import Prelude hiding (lookup)
-import Data.Set (Set (..))
-
-
--------------------------------------------------------------------
--- | Binders, Expressions, Environments
--------------------------------------------------------------------
-
-type Bndr = String 
-
-data Expr = Const Int
-          | Var   Bndr
-          | Plus  Expr Expr
-          | Let   Bndr Expr Expr
-
-type Env a = [(Bndr, a)]
-
--------------------------------------------------------------------
-eval :: Env Expr -> Expr -> Expr
--------------------------------------------------------------------
-eval env i@(Const _)     = i
-eval env (Var x)         = lookup x env 
-eval env (Plus e1 e2)    = plus (eval env e1) (eval env e2) 
-eval env (Let x e1 e2)   = eval env' e2 
-  where 
-    env'                 = (x, eval env e1) : env
-
--------------------------------------------------------------------
-plus :: Expr -> Expr -> Expr
--------------------------------------------------------------------
-plus (Const i) (Const j) = Const (i+j)
-plus _         _         = die "Bad call to plus"
-
-
--------------------------------------------------------------------
-lookup :: Bndr -> Env Expr -> Expr 
--------------------------------------------------------------------
-lookup x ((y,v):env)   
-  | x == y             = v
-  | otherwise          = lookup x env
-lookup x []            = die "Unbound Variable"
-
-
-
-
--------------------------------------------------------------------
--- | Values
--------------------------------------------------------------------
-
--- Lets define `Value` as a refinement of `Expr`...
-
-
-
--------------------------------------------------------------------
--- | Closed Expressions
--------------------------------------------------------------------
-
--- Lets define `ClosedExpr` as a refinement of `Expr` ...
-
-
-
--------------------------------------------------------------------
--- | BOILERPLATE 
--------------------------------------------------------------------
-
-{-@ die :: {v:_ | false} -> a @-}
-die x   = error x
-
-
-
-
-
--------------------------------------------------------------------
--- | CHEAT AREA ---------------------------------------------------
--------------------------------------------------------------------
-
-{- lookup :: x:Bndr -> {v:Env Val | Set_mem x (vars v)} -> Val @-}
-
-{- eval :: g:Env Val -> ClosedExpr g -> Val @-}
-
-
--- | Values
-
-{- type Val           = {v:Expr | val v} @-}
-
-{- measure val       :: Expr -> Prop
-    val (Const i)     = true
-    val (Var x)       = false
-    val (Plus e1 e2)  = false
-    val (Let x e1 e2) = false
-  @-}
-
--- | Closed Expressions
-
-{- type ClosedExpr G  = {v:Expr | Set_sub (free v) (vars G)} @-}
-
-{- measure vars :: Env a -> (Set Bndr)
-    vars ([])    = (Set_empty 0)
-    vars (b:env) = (Set_cup (Set_sng (fst b)) (vars env))
-  @-}
-
-{- measure free       :: Expr -> (Set Bndr) 
-    free (Const i)     = (Set_empty 0)
-    free (Var x)       = (Set_sng x) 
-    free (Plus e1 e2)  = (Set_cup (free e1) (free e2))
-    free (Let x e1 e2) = (Set_cup (free e1) (Set_dif (free e2) (Set_sng x)))
-  @-}
diff --git a/docs/slides/BOS14/img/RedBlack.png b/docs/slides/BOS14/img/RedBlack.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/RedBlack.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/RobertMorris.png b/docs/slides/BOS14/img/RobertMorris.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/RobertMorris.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/bytestring.png b/docs/slides/BOS14/img/bytestring.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/bytestring.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/code-spec-indiv.png b/docs/slides/BOS14/img/code-spec-indiv.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/code-spec-indiv.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/code-spec-total.png b/docs/slides/BOS14/img/code-spec-total.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/code-spec-total.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/firstbug-crop.jpg b/docs/slides/BOS14/img/firstbug-crop.jpg
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/firstbug-crop.jpg and /dev/null differ
diff --git a/docs/slides/BOS14/img/firstbug-crop2.jpg b/docs/slides/BOS14/img/firstbug-crop2.jpg
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/firstbug-crop2.jpg and /dev/null differ
diff --git a/docs/slides/BOS14/img/firstbug.jpg b/docs/slides/BOS14/img/firstbug.jpg
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/firstbug.jpg and /dev/null differ
diff --git a/docs/slides/BOS14/img/george-orwell.jpg b/docs/slides/BOS14/img/george-orwell.jpg
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/george-orwell.jpg and /dev/null differ
diff --git a/docs/slides/BOS14/img/gotofail.png b/docs/slides/BOS14/img/gotofail.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/gotofail.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/heartbleed.png b/docs/slides/BOS14/img/heartbleed.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/heartbleed.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/minindex-classic.png b/docs/slides/BOS14/img/minindex-classic.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/minindex-classic.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/minindex-invariant.png b/docs/slides/BOS14/img/minindex-invariant.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/minindex-invariant.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/minindex-modern.png b/docs/slides/BOS14/img/minindex-modern.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/minindex-modern.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/minindex-reduce.png b/docs/slides/BOS14/img/minindex-reduce.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/minindex-reduce.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/overflow.png b/docs/slides/BOS14/img/overflow.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/overflow.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/rbtree-bad1.png b/docs/slides/BOS14/img/rbtree-bad1.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/rbtree-bad1.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/rbtree-bad2.png b/docs/slides/BOS14/img/rbtree-bad2.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/rbtree-bad2.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/rbtree-ok.png b/docs/slides/BOS14/img/rbtree-ok.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/rbtree-ok.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/tension0.png b/docs/slides/BOS14/img/tension0.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/tension0.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/tension1.png b/docs/slides/BOS14/img/tension1.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/tension1.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/tension2.png b/docs/slides/BOS14/img/tension2.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/tension2.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/tension3.png b/docs/slides/BOS14/img/tension3.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/tension3.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/termination-results.png b/docs/slides/BOS14/img/termination-results.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/termination-results.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/thoughtcrime.png b/docs/slides/BOS14/img/thoughtcrime.png
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/thoughtcrime.png and /dev/null differ
diff --git a/docs/slides/BOS14/img/ungood-small.jpg b/docs/slides/BOS14/img/ungood-small.jpg
deleted file mode 100644
Binary files a/docs/slides/BOS14/img/ungood-small.jpg and /dev/null differ
diff --git a/docs/slides/BOS14/lhs/00_Motivation.lhs b/docs/slides/BOS14/lhs/00_Motivation.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/00_Motivation.lhs
+++ /dev/null
@@ -1,233 +0,0 @@
-Well-Typed Programs Can Go Wrong
-================================
-
- {#asd}
--------
-
-
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-Division By Zero
-----------------
-
-
-
-
-<div class="fragment"> 
-\begin{spec}
-λ> let average xs = sum xs `div` length xs
-
-λ> average [1,2,3]
-2
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment"> 
-\begin{spec}  
-λ> average []
-*** Exception: divide by zero
-\end{spec}
-
-</div>
-
-Missing Keys
-------------
-
-<div class="fragment"> 
-\begin{spec}  
-λ> :m +Data.Map 
-λ> let m = fromList [ ("haskell", "lazy")
-                    , ("pyret"  , "eager")]
-
-λ> m ! "haskell"
-"lazy"
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment"> 
-\begin{spec}
-λ> m ! "racket"
-"*** Exception: key is not in the map
-\end{spec}
-</div>
-
-Segmentation Faults
--------------------
-
-<div class="fragment"> 
-\begin{spec}
-λ> :m +Data.Vector 
-λ> let v = fromList ["haskell", "pyret"]
-λ> unsafeIndex v 0
-"haskell"
-\end{spec}
-</div>
-
-<div class="fragment"> 
-<br>
-\begin{spec} 
-λ> V.unsafeIndex v 3
-
-
-'ghci' terminated by signal SIGSEGV ...
-\end{spec}
-</div>
-
-
-"HeartBleeds"
--------------
-
-\begin{spec}
-λ> :m + Data.Text Data.Text.Unsafe 
-λ> let t = pack "Shriram"
-λ> takeWord16 5 t
-"Shrir"
-\end{spec}
-
-<br>
-
-<div class="fragment"> 
-Memory overflows **leaking secrets**...
-
-<br>
-
-\begin{spec}
-λ> takeWord16 20 t
-"Shriram\1912\3148\SOH\NUL\15928\2486\SOH\NUL"
-\end{spec}
-</div>
-
-Goal
-----
-
-Extend Type System
-
-<br>
-
-+ To prevent *wider class* of errors
-
-+ To enforce *program specific* properties 
-
-
-Algorithmic Verification
-========================
-
-
-Tension
--------
-
-<img src="../img/tension0.png" height=300px>
-
-Automation vs. Expressiveness
-
-Tension
--------
-
-<img src="../img/tension1.png" height=300px>
-
-Extremes: Hindley-Milner vs. CoC
-
-Tension
--------
-
-<img src="../img/tension2.png" height=300px>
-
-Trading off Automation for Expressiveness
-
-Tension
--------
-
-<img src="../img/tension3.png" height=300px>
-
-**Goal:** Find a sweet spot?
-
-<!-- BEGIN CUT
-
-Program Logics
---------------
-
-<br>
-
-**Floyd-Hoare** (ESC, Dafny, SLAM/BLAST,...)
-
-<br>
-
-+ **Properties:**   Assertions & Pre- and Post-conditions
-
-+ **Proofs:**       Verification Conditions proved by SMT
-
-+ **Inference:**    Abstract Interpretation
-
-<br>
-
-<div class="fragment"> Automatic but **not** Expressive </div>
-
-
-Program Logics
---------------
-
-<br>
-
-**Floyd-Hoare** (ESC, Dafny, SLAM/BLAST,...)
-
-
-<br>
-
-Automatic but **not** Expressive
-
-<br>
-
-+ Rich Data Types ?
-
-+ Higher-order functions ?
-
-+ Polymorphism ?
-
-
-Refinement Types
-----------------
-
-<br>
-
-Generalize *Program Logics* with *Types*
-
-<div class="fragment"> 
-<br>
-
-+ **Properties:**  Types + Predicates
-
-+ **Proofs:**      Subtyping + Verification Conditions
-
-+ **Inference:**   Hindley-Milner + Abstract Interpretation
-
-</div>
-
-<div class="fragment"> 
-  <br>
-  Towards reconciling Automation and Expressiveness
-</div>
-
-END CUT -->
-
-Refinement Types
-----------------
-
-<br>
-<br>
-
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-
-
-
diff --git a/docs/slides/BOS14/lhs/00_Motivation_Long.lhs b/docs/slides/BOS14/lhs/00_Motivation_Long.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/00_Motivation_Long.lhs
+++ /dev/null
@@ -1,377 +0,0 @@
-
- {#intro}
-=========
-
- {#firstbug0}
--------------
-
-<img src="../img/firstbug-crop.jpg" height=400px>
-
-The First *Bug* 
----------------
-
-<img src="../img/firstbug-crop2.jpg" height=300px>
-
-**Page from Harvard Mark II log**
-
-A dead moth removed from the device
-
-<!-- BEGIN CUT
-
-Morris Worm (1988)
-------------------
-
-<img src="../img/RobertMorris.png" height=300px>
-
-+ **Buffer overflow** in `fingerd`
-
-+ "Breaks internet" for several days
-
-+ Harmless internet probe gone berserk
-
-END CUT -->
-
-Slammer Worm (2003)
--------------------
-
-<img src="../img/sapphire.gif" height=300px>
-
-**Buffer Overflow**
-
-Affected 90% of vulnerable machines in 10 mins
-
-Northeast Blackout (2003)
--------------------------
-
-<img src="../img/blackout.gif" height=300px>
-
-**Race Condition**
-
-Cut power for 55 million, trigger: lines hitting foliage
-
-HeartBleed (2014)
------------------
-
-<img src="../img/heartbleed.png" height=300px>
-
-**Buffer Overflow**
-
-Compromises secret keys, passwords ...
-
-
-Goto Fail (2014)
-----------------
-
-<img src="../img/gotofail.png" height=300px>
-
-**Typo (?!)**
-
-Bypass critical check, compromise cryptography
-
-A Possible Solution
-===================
-
- Modern Languages
------------------
-
-<div class="fragment">
-
-<img src="../img/george-orwell.jpg" height=250px>
-
-</div>
-
-<div class="fragment">
-
-<img src="../img/thoughtcrime.png" height=100px>
-
-</div>
-
-Modern Languages
-----------------
-
-<br>
-
-F#
-
-Rust
-
-Scala
-
-OCaml
-
-**Haskell**
-
-
-Modern Languages
-----------------
-
-<br>
-
-Static Typing
-
-<br>
-
-First-class Functions
-
-<br>
-
-Immutability by Default
-
-
-<br>
-
-<div class="fragment">
-
-Make **good** designs **easy** and **bad** designs **hard**
-
-</div>
-
-
-Modern Languages? 
--------------------
-
-<br>
-
-Not so fast ...
-
-<br>
-
-<div class="fragment">
-
-Well-typed programs **can go wrong!**
-
-</div>
-
-
-Well-Typed Programs Can Go Wrong
-================================
-
- {#asd}
--------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-Division By Zero
-----------------
-
-
-
-
-<div class="fragment"> 
-\begin{spec}
-λ> let average xs = sum xs `div` length xs
-
-λ> average [1,2,3]
-2
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment"> 
-\begin{spec}  
-λ> average []
-*** Exception: divide by zero
-\end{spec}
-
-</div>
-
-Missing Keys
-------------
-
-<div class="fragment"> 
-\begin{spec}  
-λ> :m +Data.Map 
-λ> let m = fromList [ ("haskell", "lazy")
-                    , ("racket" , "eager")]
-
-λ> m ! "haskell"
-"lazy"
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment"> 
-\begin{spec}
-λ> m ! "javascript"
-"*** Exception: key is not in the map
-\end{spec}
-</div>
-
-Segmentation Faults
--------------------
-
-<div class="fragment"> 
-\begin{spec}
-λ> :m +Data.Vector 
-λ> let v = fromList ["haskell", "racket"]
-λ> unsafeIndex v 0
-"haskell"
-\end{spec}
-</div>
-
-<div class="fragment"> 
-<br>
-\begin{spec} 
-λ> V.unsafeIndex v 3
-
-
-'ghci' terminated by signal SIGSEGV ...
-\end{spec}
-</div>
-
-
-"HeartBleeds"
--------------
-
-\begin{spec}
-λ> :m + Data.Text Data.Text.Unsafe 
-λ> let t = pack "Norman"
-λ> takeWord16 4 t
-"Norm"
-\end{spec}
-
-<br>
-
-<div class="fragment"> 
-Memory overflows **leaking secrets**...
-
-<br>
-
-\begin{spec}
-λ> takeWord16 20 t
-"Norman\1912\3148\SOH\NUL\15928\2486\SOH\NUL"
-\end{spec}
-</div>
-
-Goal
-----
-
-<br>
-
-Extend Type System
-
-<br>
-
-+ To prevent *wider class* of errors
-
-+ To enforce *program specific* properties 
-
-<br>
-
-<div class="fragment">
-
-**Without sacrificing automation** 
-
-</div>
-
-Algorithmic Verification
-========================
-
-Tension
--------
-
-<img src="../img/tension0.png" height=300px>
-
-Automation vs. Expressiveness
-
-Tension
--------
-
-<img src="../img/tension1.png" height=300px>
-
-Extremes: Hindley-Milner vs. CoC
-
-Tension
--------
-
-<img src="../img/tension2.png" height=300px>
-
-Trading off Automation for Expressiveness
-
-Tension
--------
-
-<img src="../img/tension3.png" height=300px>
-
-**Goal:** Find a sweet spot?
-
-<!-- BEGIN CUT
-
-Program Logics
---------------
-
-<br>
-
-**Floyd-Hoare** (ESC, Dafny, SLAM/BLAST,...)
-
-<br>
-
-+ **Properties:**   Assertions & Pre- and Post-conditions
-
-+ **Proofs:**       Verification Conditions proved by SMT
-
-+ **Inference:**    Abstract Interpretation
-
-<br>
-
-<div class="fragment"> Automatic but **not** Expressive </div>
-
-END CUT -->
-
-Program Logics
---------------
-
-<br>
-
-**Floyd-Hoare** (ESC, Dafny, SLAM/BLAST,...)
-
-
-<br>
-
-Automatic but **not** Expressive
-
-<br>
-
-+ Rich Data Types ?
-
-+ Higher-order functions ?
-
-+ Polymorphism ?
-
-Refinement Types
-----------------
-
-<br>
-
-Generalize *Program Logics* with *Types*
-
-<br>
-
-+ **Properties:**  Types + Predicates
-
-+ **Proofs:**      Subtyping + SMT Solvers
-
-<!-- BEGIN CUT
-+ **Inference:**   Hindley-Milner + Abstract Interpretation
-  -->
-
-<div class="fragment"> 
-  <br>
-  Towards reconciling Automation and Expressiveness
-</div>
-
-<br>
-
-<div class="fragment"> 
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-</div>
-
diff --git a/docs/slides/BOS14/lhs/01_SimpleRefinements.lhs b/docs/slides/BOS14/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,457 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example: Integers equal to `0`
-------------------------------
-
-<br>
-
-\begin{code}
-{-@ type Zero = {v:Int | v = 0} @-}
-
-{-@ zero :: Zero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}` 
-
-<br>
-
-<div class="fragment">
-[DEMO](../hs/000_Refinements.hs)
-
-
-<!-- BEGIN CUT
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
--->
-
-</div>
-
-Refinements Are Predicates
-==========================
-
-From A Decidable Logic
-----------------------
-
-<br> 
-
-1. Expressions
-
-2. Predicates
-
-<br>
-
-<div class="fragment">
-
-**Refinement Logic: QF-UFLIA**
-
-Quant.-Free. Uninterpreted Functions and Linear Arithmetic 
-
-</div>
-
-
-Expressions
------------
-
-<br>
-
-\begin{spec} <div/> 
-e := x, y, z,...    -- variable
-   | 0, 1, 2,...    -- constant
-   | (e + e)        -- addition
-   | (e - e)        -- subtraction
-   | (c * e)        -- linear multiplication
-   | (f e1 ... en)  -- uninterpreted function
-\end{spec}
-
-Predicates
-----------
-
-<br>
-
-\begin{spec} <div/>
-p := e           -- atom 
-   | e1 == e2    -- equality
-   | e1 <  e2    -- ordering 
-   | (p && p)    -- and
-   | (p || p)    -- or
-   | (not p)     -- negation
-\end{spec}
-
-<br>
-
-
-Refinement Types
-----------------
-
-
-<br>
-
-\begin{spec}<div/>
-b := Int 
-   | Bool 
-   | ...         -- base types
-   | a, b, c     -- type variables
-
-t := {x:b | p}   -- refined base 
-   | x:t -> t    -- refined function  
-\end{spec}
-
-
-Subtyping Judgment 
-------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-<div class="fragment">
-
-<br>
-
-Where **environment** $\Gamma$ is a sequence of binders
-
-<br>
-
-$$\Gamma \defeq \overline{\bindx{x_i}{t_i}}$$
-
-</div>
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-
-<br>
-
-[PVS' Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-<br>
-
-(For **Base** Types ...)
-
-
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-
-<br>
-
-$$
-\begin{array}{rl}
-{\mathbf{If\ VC\ is\ Valid}}   & \bigwedge_i P_i \Rightarrow  Q  \Rightarrow R \\
-                & \\
-{\mathbf{Then}} & \overline{\bindx{x_i}{P_i}} \vdash \reft{v}{b}{Q} \subty \reft{v}{b}{R} \\
-\end{array}
-$$ 
-
-
-Example: Natural Numbers
-------------------------
-
-<br>
-
-\begin{spec} <div/>  
-        type Nat = {v:Int | 0 <= v}
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-$$
-\begin{array}{rcrccll}
-\mathbf{VC\ is\ Valid:} & \True     & \Rightarrow &  v = 0   & \Rightarrow &  0 \leq v & \mbox{(by SMT)} \\
-%                &           &             &          &             &           \\
-\mathbf{So:}      & \emptyset & \vdash      & \Zero  & \subty      & \Nat   &   \\
-\end{array}
-$$
-</div>
-
-<br>
-
-<div class="fragment">
-
-Hence, we can type:
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero   -- zero :: Zero <: Nat
-\end{code}
-</div>
-
-Contracts: Function Types
-=========================
-
- {#as}
-------
-
-Pre-Conditions
---------------
-
-
-<br>
-
-\begin{code}
-safeDiv n d = n `div` d   -- crashes if d==0
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Requires** non-zero input divisor `d`
-
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-</div>
-
-<br>
-
-
-<div class="fragment">
-Specify pre-condition as **input type** 
-
-\begin{code}
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-</div>
-
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ bad :: Nat -> Int @-}
-bad n   = 10 `safeDiv` n
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Rejected As** 
-
-$$\bindx{n}{\Nat} \vdash \reftx{v}{v = n} \not \subty \reftx{v}{v \not = 0}$$
-
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Verifies As** 
-
-$\bindx{n}{\Nat} \vdash \reftx{v}{v = n+1} \subty \reftx{v}{v \not = 0}$
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{spec} <div/>
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{spec}
-
-<br>
-
-**Verifies As**
-
-$$(0 \leq n) \Rightarrow (v = n+1) \Rightarrow (v \not = 0)$$
-
-
-
-Post-Conditions
----------------
-
-**Ensures** output is a `Nat` greater than input `x`.
-
-\begin{code}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-<div class="fragment">
-Specify post-condition as **output type**
-
-\begin{code}
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-**Dependent Function Types**
-
-Outputs *refer to* inputs
-</div>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-Postcondition is checked at **return-site**
-
-<br>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-\bindx{x}{\Int},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\bindx{x}{\Int},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\end{array}$$
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-(0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow (0 \leq v \wedge x \leq v) \\
-(0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow (0 \leq v \wedge x \leq v) \\
-\end{array}$$
-
-
-Recipe Scales Up
-----------------
-
-<br>
-
-<div class="fragment">
-Define type *checker* and get *inference* for free [[PLDI 08]](http://goto.ucsd.edu/~rjhala/papers/liquid_types.pdf)
-</div>
-
-<br>
-
-<div class="fragment">
-Scales to Collections, HOFs, Polymorphism ...
-</div>
-
-<br>
-
-<div class="fragment">
-[DEMO](../hs/001_Refinements.hs)
-
-<br>
-
-[[continue...]](02_Measures.lhs.slides.html)
-
-</div>
diff --git a/docs/slides/BOS14/lhs/02_Measures.lhs b/docs/slides/BOS14/lhs/02_Measures.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/02_Measures.lhs
+++ /dev/null
@@ -1,299 +0,0 @@
- {#measures}
-============
-
-Recap
------
-
-<br>
-<br>
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-<br>
-<br>
-
-<div class="fragment">
-So far: only specify properties of **base values** (e.g. `Int`) ...
-</div>
-
-<br>
-
-<div class="fragment">
-How to specify properties of **structures**?
-</div>
-
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--full"           @-}
-
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-
--- length      :: L a -> Int
--- (!)         :: L a -> Int -> a
-
-infixr `C`
-\end{code}
-
-</div>
-
-
- {#meas}
-====================
-
-Measuring Data Types
---------------------
-
-Measuring Data Types
-====================
-
-
-Example: Length of a List
--------------------------
-
-Given a type for lists:
-
-<br>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<div class="fragment">
-<br>
-
-We can define the **length** as:
-
-<br>
-
-\begin{code}
-{-@ measure size  :: (L a) -> Int
-    size (N)      = 0
-    size (C x xs) = (1 + size xs)  @-}
-\end{code}
-
-<div class="hidden">
-
-\begin{code}
-{-@ data L [size] a = N | C {hd :: a, tl :: L a } @-}
-{-@ invariant {v: L a | 0 <= size v}              @-}
-\end{code}
-
-</div>
-
-Example: Length of a List
--------------------------
-
-\begin{spec}
-{-@ measure size  :: (L a) -> Int
-    size (N)      = 0
-    size (C x xs) = 1 + size xs  @-}
-\end{spec}
-
-<br>
-
-We **strengthen** data constructor types
-
-<br>
-
-\begin{spec} <div/>
-data L a where
-  N :: {v: L a | size v = 0}
-  C :: a -> t:_ -> {v:_| size v = 1 + size t}
-\end{spec}
-
-Measures Are Uninterpreted
---------------------------
-
-\begin{spec} <br>
-data L a where
-  N :: {v: L a | size v = 0}
-  C :: a -> t:_ -> {v:_| size v = 1 + size t}
-\end{spec}
-
-<br>
-
-`size` is an **uninterpreted function** in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-<br>
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) $f$ obeys **congruence** axiom:
-
-<br>
-
-$$\forall \overline{x}, \overline{y}. \overline{x} = \overline{y} \Rightarrow
-f(\overline{x}) = f(\overline{y})$$
-
-<br>
-
-<div class="fragment">
-Other properties of `size` asserted when typing **fold** & **unfold**
-</div>
-
-<br>
-
-<div class="fragment">
-Crucial for *efficient*, *decidable* and *predictable* verification.
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-Other properties of `size` asserted when typing **fold** & **unfold**
-
-<br>
-
-<div class="fragment">
-\begin{spec}**Fold**<br>
-z = C x y     -- z :: {v | size v = 1 + size y}
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{spec}**Unfold**<br>
-case z of
-  N     -> e1 -- z :: {v | size v = 0}
-  C x y -> e2 -- z :: {v | size v = 1 + size y}
-\end{spec}
-</div>
-
-Example: Using Measures
------------------------
-
-<br>
-<br>
-
-[DEMO: 001_Refinements.hs](../hs/001_Refinements.hs)
-
-
-
-Multiple Measures
-=================
-
- {#adasd}
----------
-
-Can support *many* measures for a type
-
-
-Ex: List Emptiness
-------------------
-
-Measure describing whether a `List` is empty
-
-\begin{code}
-{-@ measure isNull :: (L a) -> Prop
-    isNull (N)      = true
-    isNull (C x xs) = false           @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-LiquidHaskell **strengthens** data constructors
-
-\begin{spec}
-data L a where
-  N :: {v : L a | isNull v}
-  C :: a -> L a -> {v:(L a) | not (isNull v)}
-\end{spec}
-
-</div>
-
-Conjoining Refinements
-----------------------
-
-Data constructor refinements are **conjoined**
-
-\begin{spec}
-data L a where
-  N :: {v:L a |  size v = 0
-              && isNull v }
-  C :: a
-    -> xs:L a
-    -> {v:L a |  size v = 1 + size xs
-              && not (isNull v)      }
-\end{spec}
-
-Multiple Measures: Red Black Trees
-==================================
-
- {#elements}
-------------
-
-<br>
-<br>
-<br>
-
-<a href="13_RedBlack.lhs.slides.html" target="_blank">[continue]</a>
-
-
-
-<!-- BEGIN CUT
-
-Multiple Measures: Sets and Duplicates
-======================================
-
- {#elements}
-------------
-
-[DEMO: 01_Elements.hs](../hs/01_Elements.hs)
-
-Measures vs. Index Types
-========================
-
-Decouple Property & Type
-------------------------
-
-Unlike [indexed types](http://dl.acm.org/citation.cfm?id=270793) ...
-
-<br>
-
-<div class="fragment">
-
-+ Measures **decouple** properties from structures
-
-+ Support **multiple** properties over structures
-
-+ Enable  **reuse** of structures in different contexts
-
-</div>
-
-<br>
-
-<div class="fragment">Invaluable in practice!</div>
-
-END CUT -->
-
-
-Recap
------
-
-<br>
-<br>
-
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. **Measures:** Strengthened Constructors
-
-<br>
-
-<div class="fragment">Automatic Verification of Data Structures</div>
-
-<br>
-<br>
-
-<!-- BEGIN CUT
-<div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target="_blank">[continue]</a></div>
-     END CUT -->
diff --git a/docs/slides/BOS14/lhs/03_HigherOrderFunctions.lhs b/docs/slides/BOS14/lhs/03_HigherOrderFunctions.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/03_HigherOrderFunctions.lhs
+++ /dev/null
@@ -1,276 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-\begin{code}
-module Loop (
-    listSum
-  , sumNats
-  ) where
-
-import Prelude
-
-{-@ LIQUID "--no-termination"@-}
-sumNats  :: [Int] -> Int
-add         :: Int -> Int -> Int
-\end{code}
-</div>
-
-Higher-Order Functions 
-----------------------
-
-Types scale to *Higher-Order Functions*  
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications 
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-<br>
-
-\begin{code}
-loop :: Int -> Int -> α -> (Int -> α -> α) -> α
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-By subtyping, we infer `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-\begin{code}
-listSum xs     = loop 0 n 0 body 
-  where 
-    body i acc = acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Function Subtyping** 
-
-\begin{spec}
-loop :: l -> h -> α -> (Btwn l h -> α -> α) -> α
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-At callsite, since `l := 0` and `h := llen xs` 
-
-\begin{spec}
-body :: Btwn 0 (llen xs) -> Int -> Int
-\end{spec}
-</div>
-
-Example: Summing Lists
-----------------------
-
-\begin{spec}
-listSum xs     = loop 0 n 0 body 
-  where 
-    body i acc = acc + (xs !! i)
-    n          = length xs
-\end{spec}
-
-<br>
-
-**Function Subtyping** 
-
-\begin{spec}
-body :: Btwn 0 (llen xs) -> Int -> Int
-\end{spec}
-
-<br>
-
-So `i` is `Btwn 0 (llen xs)`; indexing `!!` is verified safe.
-
-
- {#polyinst}
-============
-
-Polymorphic Instantiation
--------------------------
-
-<br>
-<br>
-<br>
-
-<div class="fragment">
-"Plugging in" summaries at call-sites
-</div>
-
-Polymorphic Instantiation
-=========================
-
- {#poly}
---------
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code}
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{spec} Recall 
-foldl :: (α -> β -> α) -> α -> [β] -> α
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-How to **instantiate** `α` and `β` ?
-</div>
-
-Function Subtyping
-------------------
-
-\begin{spec}<div/>
-(+) ::  x:Int -> y:Int -> {v:Int|v=x+y} 
-    <:  Nat   -> Nat   -> Nat
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{spec}<div/>
-             |- Nat       <: Int  -- Contra (in)
-x:Nat, y:Nat |- {v = x+y} <: Nat  -- Co    (out)
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{spec}<div/>
-  0<=x && 0<=y && v = x+y   => 0 <= v
-\end{spec}
-</div>
-
-
-
-
-Example: Summing `Nat`s
------------------------
-
-\begin{spec} <div/> 
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{spec}
-
-<br>
-
-\begin{spec} Where:
-foldl :: (α -> β -> α) -> α -> [β] -> α
-(+)   :: Nat -> Nat -> Nat
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Hence, `sumNats` verified by **instantiating** `α,β := Nat`
-</div>
-
-<br>
-
-<div class="fragment">
-`α` is **loop invariant**, instantiation is invariant **inference**
-</div>
-
-Instantiation And Inference
----------------------------
-
-Polymorphism ubiquitous, so inference is critical!
-
-<br>
-
-<div class="fragment">
-**Step 1. Templates** 
-Instantiate with unknown refinements
-
-$$
-\begin{array}{rcl}
-\alpha & \defeq & \reft{v}{\Int}{\kvar{\alpha}}\\
-\beta  & \defeq & \reft{v}{\Int}{\kvar{\beta}}\\
-\end{array}
-$$
-</div>
-
-<br>
-<div class="fragment">
-**Step 2. Horn-Constraints** 
-By type checking the templates
-</div>
-
-<br>
-<div class="fragment">
-**Step 3. Fixpoint** 
-Abstract interpretation to get solution for $\kvar{}$
-</div>
-
-
-Iteration Dependence
---------------------
-
-**Problem:** Cannot use parametric polymorphism to verify
-
-<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-As property only holds after **last iteration** ...
-
-<br>
-
-... cannot instantiate $\alpha \defeq \reft{v}{\Int}{v = n + m}$
-</div>
-
-<br>
-
-<div class="fragment">
-**Problem:** *Iteration-dependent* invariants...? &nbsp; &nbsp; [[Continue]](04_AbstractRefinements.lhs.slides.html)
-</div>
-
diff --git a/docs/slides/BOS14/lhs/04_AbstractRefinements.lhs b/docs/slides/BOS14/lhs/04_AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/04_AbstractRefinements.lhs
+++ /dev/null
@@ -1,281 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude 
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
--- o,no        :: Int
-maxInt       :: Int -> Int -> Int
-\end{code}
-</div>
-
-
-Abstract Refinements
---------------------
-
-Abstract Refinements
-====================
-
-A Pervasive Problem
---------------------
-
-<br>
-
-<div class="fragment">
-
-Cannot use *context-independent* specifications.
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-Lets distill it to a simple example...
-
-</div>
-
-
-A Pervasive Problem
---------------------
-
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-\begin{code}
-{-@ type Odd  = {v:Int | (v mod 2) = 1} @-}
-{-@ type Even = {v:Int | (v mod 2) = 0} @-}
-\end{code}
-
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
-\begin{spec} <br> 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if y <= x then x else y
-\end{spec}
-
-
-
-Example: `maxInt` 
------------------
-
-Has **many incomparable** refinement types/summaries
-
-\begin{spec}<br>
-maxInt :: Nat  -> Nat  -> Nat
-maxInt :: Even -> Even -> Even
-maxInt :: Odd  -> Odd  -> Odd 
-\end{spec}
-
-<br>
-
-<div class="fragment">*Which* should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns **one of** its two inputs `x` and `y` 
-
-<div class="fragment">
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-</div>
-
-<div class="fragment">Above holds **for all properties**!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract properties over types**
-
-</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-\begin{spec}<div/>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html)
-&nbsp; `Int<p>` &nbsp; is just  &nbsp; $\reft{v}{\Int}{p(v)}$ 
-
-<br>
-
-Abstract Refinement is **uninterpreted function** in SMT logic
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = y} & \subty \reftx{v}{p(v)} \\
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = x} & \subty \reftx{v}{p(v)} \\
-\end{array}$$
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-{p(x)} \wedge {p(y)} & \Rightarrow {v = y} & \Rightarrow {p(v)} \\
-{p(x)} \wedge {p(y)} & \Rightarrow {v = x} & \Rightarrow {p(v)} \\
-\end{array}$$
-
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**If** we call `maxInt` with args satisfying *common property*,</div>
-- <div class="fragment">**Then** `p` instantiated property, *result* gets same property.</div>
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ xo :: Odd  @-}
-xo = maxInt 3 7     -- p := \v -> Odd v 
-
-{-@ xe :: Even @-}
-xe = maxInt 2 8     -- p := \v -> Even v 
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Automatically Infer Instantiation by Liquid Typing**
-<!-- CUT At call-site, instantiate `p` with unknown $\kvar{p}$ and solve! -->
-
-</div>
-
-Using Abstract Refinements
---------------------------
-
-<br>
-<br>
-<br>
-
-[DEMO 02_AbstractRefinements.hs](../hs/02_AbstractRefinements.hs)
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract Refinements** over functions 
-
-<br>
-<br>
-
-<div class="fragment">
-  Abstract Refinements decouple invariants from **code** ...
-<br>
-
-<a href="06_Inductive.lhs.slides.html" target="_blank">[continue]</a>
-</div>
-
diff --git a/docs/slides/BOS14/lhs/05_Composition.lhs b/docs/slides/BOS14/lhs/05_Composition.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/05_Composition.lhs
+++ /dev/null
@@ -1,161 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-\begin{code}
-module Composition where
-
-import Prelude hiding ((.))
-
-plus     :: Int -> Int -> Int
-plus3'   :: Int -> Int
-\end{code}
-</div>
-
-
-Example: `plus`
----------------
-
-\begin{code}
-{-@ plus :: x:_ -> y:_ -> {v:_ | v=x+y} @-}
-plus x y = x + y
-\end{code}
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     = plus 3
-\end{code}
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-\begin{code}
-(#) :: (b -> c) -> (a -> b) -> a -> c
-(#) f g x = f (g x)
-\end{code}
-
-
-`plus3` By Composition
------------------------
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     = plus 1 # plus 2
-\end{code}
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
-\begin{spec} <br>
-(#) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{spec}
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-\begin{code}
-{-@ (.) :: forall <p :: b->c->Prop, 
-                   q :: a->b->Prop>.
-             f:(x:b -> c<p x>) 
-          -> g:(x:a -> b<q x>) 
-          -> y:a -> exists[z:b<q y>].c<p z>
- @-}
-(.) f g y = f (g y)
-\end{code}
-
-Using (.) Operator 
-------------------
-
-<br>
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
-\begin{spec} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{spec}
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
-\begin{spec} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{spec}
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/BOS14/lhs/06_Inductive.lhs b/docs/slides/BOS14/lhs/06_Inductive.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/06_Inductive.lhs
+++ /dev/null
@@ -1,535 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Decoupling Invariants & Code
-----------------------------
-
-<br>
-
-Abstract refinements decouple invariants from code
-
-<br>
-
-<div class="fragment">
-
-**Next:** Precise Specifications for HOFs
-
-<div class="hidden">
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
-import Data.Set hiding (insert, foldr,size,filter, append) 
-
--- import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names" @-}
-
-{-@ measure size  :: (L a) -> Int
-    size (N)      = 0
-    size (C x xs) = 1 + (size xs)  @-}
-
-{-@ measure elems :: L a -> (Set a)
-    elems (N)      = (Set_empty 0)
-    elems (C x xs) = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-{-@ type UnElems Xs Ys = {v:_ | elems v = Set_cup (elems Xs) (elems Ys)} @-}
-
-size  :: L a -> Int
-add    :: Int -> Int -> Int
-loop   :: Int -> Int -> α -> (Int -> α -> α) -> α
-ifoldr :: (L a -> a -> b -> b) -> b -> L a -> b
-
-\end{code}
-</div>
-
-<!-- BEGIN CUT
-
-Induction
-=========
-
-Example: A Higher Order `loop` 
--------------------------------
-
-
-<br>
-<br>
-
-\begin{code}
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-
-Iteration Dependence
---------------------
-
-We can use `loop` to write 
-
-<br>
-
-\begin{spec} 
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop' 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-**Problem** But cannot prove `add n m :: {v:_ | v = n + m}`
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-<br>
-
-\begin{spec} 
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{spec} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**Base Case:** &nbsp; Initial accumulator `base` satisfies invariant
-
-
-`(p lo base)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**Inductive Step:** &nbsp; `f` *preserves* invariant at `i`
-
-
-`(p i acc) => (p (i+1) (f i acc))`
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**"By Induction"** &nbsp; `out` satisfies invariant at `hi` 
-
-`(p hi out)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-        lo:Int
-     -> hi:{Int | lo <= hi}
-     -> base:a<p lo>                      
-     -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-     -> a<p hi>                           @-}
-\end{code}
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-\begin{spec}<br> 
-p    :: Int -> a -> Prop             -- invt 
-base :: a<p lo>                      -- base 
-f    :: i:Int -> a<p i> -> a<p(i+1)> -- step
-out  :: a<p hi>                      -- goal
-\end{spec}
-
-
-
-Using Induction
----------------
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-**Verified** by *instantiating* the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-<br>
-<br>
-
-[DEMO 02_AbstractRefinements.hs #2](../hs/02_AbstractRefinements.hs) 
-
-
-END CUT -->
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over lists ...
-</div>
-
-
-Example: `foldr`
-----------------
-
-<br>
-<br>
-
-\begin{code}
-foldr :: (α -> β -> β) -> β -> L α -> β
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-\end{code}
-
-
-Problem
--------
-
-Recall our *failed attempt* to write `append` with `foldr`
-
-<br>
-
-\begin{spec} 
-{-@ app :: xs:_ -> ys:_ -> UnElems xs ys @-}
-app xs ys = foldr C ys xs
-\end{spec}
-
-<br>
-
-<div class="fragment">
-- Property holds after *last* iteration
-- Cannot instantiate `α` with `UnElems xs ys`
-</div>
-
-Problem
--------
-
-Recall our *failed attempt* to write `append` with `foldr`
-
-<br>
-
-\begin{spec} 
-{-@ app :: xs:_ -> ys:_ -> UnElems xs ys @-}
-app xs ys = foldr C ys xs
-\end{spec}
-
-
-<br>
-
-Need to **relate** each *iteration* with *accumulator* `acc` 
-
-
-
-
-Solution: Inductive `foldr`
----------------------------
-
-<br>
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Solution: Inductive `foldr`
----------------------------
-
-\begin{code}
-{-@ ifoldr :: 
-     forall a b <p :: L a -> b -> Prop>. 
-      (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-    -> b<p N> 
-    -> ys:L a
-    -> b<p ys>                            @-}
-ifoldr f b N        = b
-ifoldr f b (C x xs) = f xs x (ifoldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`ifoldr`: Abstract Refinement
------------------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  ::  b<p ys>                            
-\end{spec}
-
-<br>
-
-`(p xs b)` relates `b` with **folded** `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`ifoldr`: Base Case
--------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-`base` is related to **empty** list `N`
-
-`base :: b<p N>` 
-
-
-
-`ifoldr`: Ind. Step 
--------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-`step` **extends** relation from `xs` to `C x xs`
-
-`step :: xs:_ -> x:_ -> b<p xs> -> b<p (C x xs)>`
-
-
-`ifoldr`: Output
-----------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-Hence, relation holds between `out` and **entire input** list `ys`
-
-`out :: b<p ys>`
-
-Using `ifoldr`: Size
--------------------
-
-We can now verify
-
-<br>
-
-\begin{code}
-{-@ size :: xs:_ -> {v:Int| v = size xs} @-}
-size     = ifoldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-<div class="fragment">
-by *automatically instantiating* `p` with
-
-`\xs acc -> acc = size xs`
-</div>
-
-Using `foldr`: Append
----------------------
-
-We can now verify
-
-<br>
-
-\begin{code}
-{-@ (++) :: xs:_ -> ys:_ -> UnElems xs ys @-} 
-xs ++ ys = ifoldr (\_ -> C) ys xs 
-\end{code}
-
-<br>
-
-<br>
-
-<div class="fragment">
-By *automatically* instantiating `p` with
-
-`\xs acc -> elems acc = Set_cup (elems xs) (elems ys)`
-
-</div>
-
-More Examples
--------------
-
-Induction over *structures* from `GHC.List`
-
-<br>
-
-+ `length`
-+ `append`
-+ `filter`
-+ ...
-
-<br>
-
-[DEMO 02_AbstractRefinements.hs #2](../hs/02_AbstractRefinements.hs) 
-
-
-
-Recap
------
-
-<br>
-
-Abstract refinements *decouple* **invariant** from **iteration**
-
-<br>
-
-<div class="fragment">**Precise** specs for higher-order functions.</div>
-
-<br>
-
-<div class="fragment">**Automatic** checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + <div class="fragment">**Functions**</div>
-    + <div class="fragment">**Recursive Data** <a href="08_Recursive.lhs.slides.html" target="_blank">[continue]</a></div>
-5. <div class="fragment">[Evaluation](11_Evaluation.lhs.slides.html)</div>
diff --git a/docs/slides/BOS14/lhs/07_Array.lhs b/docs/slides/BOS14/lhs/07_Array.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/07_Array.lhs
+++ /dev/null
@@ -1,305 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-<br>
-
-**So far**
-
-Abstract Refinements decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *indexed data structures*
-
-</div>
-
-
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidError)
-
-{-@ LIQUID "--no-termination" @-}
-initialize :: Int -> Vec Int
-\end{code}
-</div>
-
-<div class="fragment">
-
-For simplicity, implemented as maps from `Int` to `a` 
-
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-\begin{code}
-{-@ data Vec a < dom :: Int -> Prop,
-                 rng :: Int -> a -> Prop >
-      = V {a :: i:Int<dom> -> a <rng i>}  @-}
-\end{code}
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-An alias for *segments* between `I` and `J`
-
-<br>
-
-\begin{code}
-{-@ predicate Btwn I V J = I <= V && V < J @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type IdVec N = Vec <{\v -> Btwn 0 v N}, 
-                        {\k v -> v = k}> 
-                       Int                  @-}
-\end{code}
-
-</div>
-
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> Btwn 0 v N}, 
-          {\k v -> k = N-1 => v = 0}> 
-          Int                         @-}
-\end{code}
-
-</div>
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> v = 0 || v = fib k}> 
-          Int                          @-}
-\end{code}
-
-
-An API for Vectors
-------------------
-
-
-<br>
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-API: Empty Vectors
------------------
-
-`empty` a Vector whose domain is `false` (defined at *no* key)
-
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. 
-               Vec <{v:Int|false}, p> a     @-}
-
-empty     = V $ \_ -> error "empty vector!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-API: `get` Key's Value 
-----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-<br>
-
-\begin{code}
-{-@ get :: forall a <d :: Int -> Prop,  
-                     r :: Int -> a -> Prop>.
-           key:Int <d>
-        -> vec:Vec <d, r> a
-        -> a<r key>                        @-}
-
-get k (V f) = f k
-\end{code}
-
-
-API: `set` Key's Value 
-----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-API: `set` Key's Value 
-----------------------
-
-\begin{code}
-{-@ set :: forall a <d :: Int -> Prop,
-                     r :: Int -> a -> Prop>.
-           key: Int<d> -> val: a<r key>
-        -> vec: Vec<{v:Int<d>| v /= key},r> a
-        -> Vec <d, r> a                     @-}
-
-set key val (V f) = V $ \k -> if k == key 
-                                then val 
-                                else f k
-\end{code}
-
-<br>
-
-<div class="hidden">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-Using the Vector API
---------------------
-
-Loop over vector, setting each key `i` equal to `i`:
-
-<br>
-
-\begin{code}
-{-@ initialize :: n:Nat -> IdVec n @-}
-initialize n      = loop 0 empty
-  where
-    loop i a 
-      | i < n     = let a' = set i i a
-                    in
-                        loop (i+1) a'
-      | otherwise = a 
-\end{code}
-
-Example: Knuth-Morris-Pratt
----------------------------
-
-<br>
-<br>
-<br>
-
-[DEMO KMP.hs](../hs/KMP.hs)
-
-
-Recap
------
-
-<br>
-
-+ Created a `Vec` (Array) container 
-
-+ Decoupled *domain* and *range* invariants from *data*
-
-+ Enabled analysis of *array segments*
-
-<br>
-
-Recap
------
-
-<br>
-
-Custom *array segment* program analyses: 
-
-<br>
-
-- Gopan-Reps-Sagiv, POPL 05
-- J.-McMillan, CAV 07
-- Logozzo-Cousot-Cousot, POPL 11
-- Dillig-Dillig, POPL 12 
-
-<br>
-
-Encoded in (abstract) refinement typed API.
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + Functions
-    + Recursive Data
-    + <div class="fragment">**Indexed Data**</div>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
diff --git a/docs/slides/BOS14/lhs/08_Recursive.lhs b/docs/slides/BOS14/lhs/08_Recursive.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/08_Recursive.lhs
+++ /dev/null
@@ -1,495 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Abstract Invariants from Functions
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from **recursive** data structures
-</div>
-
-
-
-Decouple Invariants From Data {#recursive} 
-==========================================
-
- {#asd}
--------
-
-Recursive Structures 
---------------------
-
-Lets see another example of decoupling...
-
-<div class="hidden">
-\begin{code}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module List (insertSort) where
-
-{-@ LIQUID "--no-termination" @-}
-
-mergeSort     :: Ord a => [a] -> [a]
-insertSort :: (Ord a) => [a] -> L a 
-slist :: L Int
-slist' :: L Int
-iGoUp, iGoDn, iDiff :: [Int]
-infixr `C`
-\end{code}
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-\begin{code}
-data L a = N 
-         | C { hd :: a, tl :: L a }
-\end{code}
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define **increasing** Lists with *strengthened constructors*:
-
-\begin{spec} <br>
-data L a where
-  N :: L a
-  C :: hd:a -> tl: L {v:a | hd <= v} -> L a
-\end{spec}
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing *and* decreasing lists?](http://hackage.haskell.org/package/base-4.7.0.0/docs/src/Data-List.html#sort)
-
-<br>
-
-<div class="hidden">
-[Separate (indexed) types](http://web.cecs.pdx.edu/~sheard/Code/QSort.html) get quite complicated ...
-</div>
-
-Abstract That Refinement!
--------------------------
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C { hd :: a, tl :: L <p> a<p hd> } @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> `p` is a **binary relation** between two `a` values</div>
-
-<br>
-
-<div class="fragment"> Definition relates `hd` with **all** the elements of `tl`</div>
-
-<br>
-
-<div class="fragment"> Recursive: `p` holds for **every pair** of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
-\begin{spec} <br>
-x1 `C` x2 `C` x3 `C` rest :: L <p> a 
-\end{spec}
-
-Example: Unfold Once
---------------------
-
-\begin{spec} <br> 
-x1                 :: a
-x2 `C` x3 `C` rest :: L <p> a<p x1> 
-\end{spec}
-
-Example: Unfold Twice
----------------------
-
-\begin{spec} <br> 
-x1          :: a
-x2          :: a<p x1>  
-x3 `C` rest :: L <p> a<p x1 && p x2> 
-\end{spec}
-
-Example: Unfold Thrice
-----------------------
-
-\begin{spec} <br> 
-x1   :: a
-x2   :: a<p x1>  
-x3   :: a<p x1 && p x2>  
-rest :: L <p> a<p x1 && p x2 && p x3> 
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair*?
-
-<br>
-
-<div class="fragment">**Instantiate** `p` with a *concrete* refinement</div>
-
-
-
-Example: Increasing Lists
--------------------------
-
-**Instantiate** `p` with a *concrete* refinement
-
-<br>
-
-\begin{code}
-{-@ type IncL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> Refinement says: &nbsp; `hd` less than **every** `v` in tail,</div>
-
-<br>
-
-<div class="fragment"> i.e., `IncL` denotes **increasing** lists. </div>
-
-<br>
-
-<div class="fragment"> [DEMO 02_AbstractRefinements.hs #3](02_AbstractRefinements.hs) </div>
-
-<!-- BEGIN CUT 
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell *verifies* that `slist` is indeed increasing...
-
-\begin{code}
-{-@ slist :: IncL Int @-}
-slist     = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> 
-
-<div class="fragment">
-
-... and *protests* that `slist'` is not: 
-
-\begin{code}
-{-@ slist' :: IncL Int @-}
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-</div>
-
-Insertion Sort
---------------
-
-\begin{code}
-{-@ insertSort :: (Ord a) => [a] -> IncL a @-}
-insertSort     = foldr insert N
-
-insert y N          = y `C` N
-insert y (x `C` xs) 
-  | y < x           = y `C` (x `C` xs)
-  | otherwise       = x `C` insert y xs
-\end{code}
-
-<br>
-
-(Mouseover `insert` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
-\begin{spec} <br> 
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) { h :: a, tl :: [a<p h>]<p> }
-\end{spec}
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Incs a = [a]<{\h v -> h <= v}> @-}
-
-{-@ iGoUp :: Incs Int @-}
-iGoUp     = [1,2,3]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Decs a = [a]<{\h v -> h >= v}> @-}
-
-{-@ iGoDn :: Decs Int @-}
-iGoDn     = [3,2,1]
-\end{code}
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-\begin{code}
-{-@ type Difs a = [a]<{\h v -> h /= v}> @-}
-
-{-@ iDiff :: Difs Int @-}
-iDiff     = [1,3,2]
-\end{code}
-
-END CUT -->
-
-Example: Sorting Lists
-----------------------
-
-Now we can check all the usual list sorting algorithms 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target="_blank">Demo:</a> List Sorting
-
-<br>
-<br>
-
-[DEMO GhcListSort.hs](../hs/GhcListSort.hs)
-
-<!-- BEGIN CUT 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-{-@ mergeSort  :: (Ord a) => [a] -> Incs a @-}
-mergeSort []   = []
-mergeSort [x]  = [x]
-mergeSort xs   = merge xs1' xs2' 
-  where 
-   (xs1, xs2)  = split xs
-   xs1'        = mergeSort xs1
-   xs2'        = mergeSort xs2
-\end{code}
-
-Example: `mergeSort` [2/2]
---------------------------
-
-\begin{code}
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-
-merge xs []    = xs
-merge [] ys    = ys
-merge (x:xs) (y:ys) 
-  | x <= y     = x : merge xs (y:ys)
-  | otherwise  = y : merge (x:xs) ys
-\end{code}
-
-END CUT -->
-
-Example: Binary Trees
----------------------
-
-`Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, as a binary tree:
-
-<br>
-
-\begin{code}
-data Map k a = Tip
-             | Bin Int k a (Map k a) (Map k a)
-\end{code}
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-<br>
-
-\begin{code}
-{-@ data Map k a < l :: k -> k -> Prop
-                 , r :: k -> k -> Prop >
-    = Tip
-    | Bin { sz    :: Int
-          , key   :: k
-          , val   :: a
-          , left  :: Map <l,r> k<l key> a
-          , right :: Map <l,r> k<r key> a} @-}
-\end{code}
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-\begin{code}
-{-@ type BST k a = 
-      Map <{\r v -> v < r }, 
-           {\r v -> v > r }> 
-          k a                   @-}
-\end{code}
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-\begin{code}
-{-@ type MinHeap k a = 
-      Map <{\r v -> r <= v}, 
-           {\r v -> r <= v}> 
-           k a               @-}
-\end{code}
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-\begin{code}
-{-@ type MaxHeap k a = 
-      Map <{\r v -> r >= v}, 
-           {\r v -> r >= v}> 
-           k a               @-}
-\end{code}
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-<br>
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<br>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a> Binary Search Maps
-</div>
-
-Example: Red-Black Tree 
------------------------
-
-<br>
-
-Binary-Search Ordered Keys
-
-<br>
-
-[DEMO RBTree-Ord.hs](../hs/RBTree-ord.hs)
-Example: Infinite Streams 
--------------------------
-
-<br>
-
-How to distinguish between **finite** and **infinite** lists?
-
-<br>
-
-[DEMO Streams.hs](../hs/Streams.hs)
-
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from **functions**
-
-+ `max`
-+ `foldr`
-
-</div>
-
-<br>
-
-<div class="fragment">
-Decouple invariants from **data**
-
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract Refinements over Functions
-5. **Abstract** Refinements over Recursive Data
-6. <div class="fragment">[Evaluation](11_Evaluation.lhs.slides.html)</div>
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
diff --git a/docs/slides/BOS14/lhs/09_Laziness.lhs b/docs/slides/BOS14/lhs/09_Laziness.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/09_Laziness.lhs
+++ /dev/null
@@ -1,241 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-\begin{code}
-module Laziness where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--no-termination" @-}
-
-safeDiv :: Int -> Int -> Int
-foo     :: Int -> Int
--- zero    :: Int 
--- diverge :: a -> b
-\end{code}
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for **strict** languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `Sage`, `F7`, `F*`, ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-\begin{code}
-{-@ safeDiv :: _ -> {v:_ |v /= 0} -> Int @-}
-safeDiv n 0 = liquidError "div-by-zero!"
-safeDiv n d = n `div` d
-\end{code}
-
-<br>
-
-<div class="fragment">
-Should only call `safeDiv` with **non-zero** values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value **strictly less than** input.
-
-<br>
-
-\begin{spec}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-\end{spec}
-
-LiquidHaskell Lies! 
--------------------
-
-\begin{code}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0    
-              a = foo z
-          in  
-              (\x -> 2014 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Why is this program **deemed safe**?! 
-</div>
-
-
-*Is Safe* With Eager Eval
--------------------------
-
-\begin{spec}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2014 `safeDiv` z) a 
-\end{spec}
-
-<br>
-
-**Safe** in Java, ML: program **never hits** divide-by-zero 
-
-*Unsafe* With Lazy Eval
------------------------
-
-\begin{spec} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2014 `safeDiv` z) a 
-\end{spec}
-
-<br>
-
-**Unsafe** in Haskell: skips `foo z` **hits** divide-by-zero!
-
-Problem: Divergence
--------------------
-
-What is denoted by:
-
-$$ e :: \reft{v}{\Int}{p}$$
-
-<br>
-
-<div class="fragment">
-$e$ evaluates to $\Int$ that satisfies $p$  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-\begin{spec} **Consider** <div/> 
-        {-@ e :: {v : Int | P} @-}
-
-        let x = e in body 
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Eager Evaluation** 
-
-*Can* assume `P(x)` when checking `body`
-</div>
-
-<br>
-
-<div class="fragment">
-**Lazy Evaluation** 
-
-*Cannot* assume `P(x)` when checking `body`
-</div>
-
-Eager vs. Lazy Binders 
-----------------------
-
-\begin{spec} 
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2014 `safeDiv` z) a 
-\end{spec}
-
-<br>
-
-Inconsistent `a` is sound for **eager**, unsound for **lazy**
-
-
-Panic! Now what?
----------------
-
-<div class="fragment">
-**Solution** 
-
-Assign *non-trivial* refinements to *non-diverging* terms!
-</div>
-
-<br>
-
-<div class="fragment">
-**Harder Problem?**
-
-Yikes, doesn't non-divergence mean tracking *permination?*
-</div>
-
-<br>
-
-<div class="fragment">
-**Relax**
-
-Its *easy* ... since we have *refinements*! [[continue...]](10_Termination.lhs.slides.html)
-</div>
-
-<br>
-
-
-
diff --git a/docs/slides/BOS14/lhs/10_Termination.lhs b/docs/slides/BOS14/lhs/10_Termination.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/10_Termination.lhs
+++ /dev/null
@@ -1,336 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-\begin{code}
-module Termination where
-
-import Prelude hiding (gcd, mod, map)
-fib :: Int -> Int
-gcd :: Int -> Int -> Int
-infixr `C`
-
-data L a = N | C a (L a)
-
-{-@ invariant {v: L a | 0 <= llen v} @-}
-
-mod :: Int -> Int -> Int
-mod a b
-  | a - b >  b = mod (a - b) b
-  | a - b <  b = a - b
-  | a - b == b = 0
-
-merge :: Ord a => L a -> L a -> L a
-\end{code}
-</div>
-
-<!-- BEGIN CUT
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
-END CUT -->
-
-Refinements & Termination
--------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination **using refinements**
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on **smaller** inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-+ [DML](http://dl.acm.org/citation.cfm?id=609232)
-+ [Size Change Principle](http://dl.acm.org/citation.cfm?id=360210)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
-\begin{spec} <div/>
-foo   :: Nat -> T
-foo x =  body
-\end{spec}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have `Nat` inputs *smaller than* `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-\begin{code}
-{-@ fib  :: Nat -> Nat @-}
-fib 0    = 1
-fib 1    = 1
-fib n    = fib (n-1) + fib (n-2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a> &nbsp; What if we drop the `fib 1` equation? 
-</div>
-
-Refinements Are Essential!
---------------------------
-
-\begin{code}
-{-@ gcd :: a:Nat -> {b:Nat | b < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ mod :: a:Nat 
-        -> b:{v:Nat|0 < v && v < a} 
-        -> {v:Nat| v < b}           @-}
-\end{code}
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-<br>
-
-What of input types other than `Nat` ?
-
-<br>
-
-[DEMO](../hs/03_Termination.hs)
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{spec}<div/>
-foo   :: S -> T
-foo x = body
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{spec}<div/>
-foo   :: S -> T
-foo x = body
-\end{spec}
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= mS v < mS x} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
-\begin{code} 
-map f N        = N
-map f (C x xs) = (f x) `C` (map f xs) 
-\end{code}
-
-<br>
-
-Terminates using **default** measure `llen` 
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ data L [llen] a = N 
-                    | C { x::a, xs :: L a} @-}
-
-{-@ measure llen :: L a -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)   @-}
-\end{code}
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of smallness spread across **multiple inputs**?
-
-<br>
-
-\begin{code}
-merge xs@(x `C` xs') ys@(y `C` ys')
-  | x < y     = x `C` merge xs' ys
-  | otherwise = y `C` merge xs ys'
-\end{code}
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their **sum** does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their **sum** does.
-
-<br>
-
-\begin{code}
-{-@ merge :: Ord a => xs:_ -> ys:_ -> _ 
-          /  [llen xs + llen ys]     @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Synthesize **ghost** parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-... thereby reducing to decreasing **single parameter** case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-<br>
-
-<div class="fragment">**Mutual** recursion</div>
-
-<br>
-
-<div class="fragment">**Lexicographic** ordering</div>
-
-<br>
-
-<div class="fragment">Fit easily into our framework ...</div>
-
-Recap
------
-
-Main idea: Recursive calls on **smaller** inputs
-
-<br>
-
-<div class="fragment">Use refinements to **check** smaller</div>
-
-<br>
-
-<div class="fragment">Use refinements to **establish** smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> Meta-theory is tricky, but all ends well.</div>
-
-Termination in Practice
------------------------
-
-<img src="../img/tension1.png" height=300px>
-
-96% proved *terminating*
-
-61% proved *automatically*
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. Lazy Evaluation: Requires Termination
-6. **Termination:** via Refinements!
-7. <div class="fragment">**Evaluation:** How good is this in practice?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/BOS14/lhs/11_Evaluation.lhs b/docs/slides/BOS14/lhs/11_Evaluation.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/11_Evaluation.lhs
+++ /dev/null
@@ -1,322 +0,0 @@
- {#ASda}
-========
-
-Evaluation
-----------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-Evaluation
-==========
-
-LiquidHaskell 
--------------
-
-<br>
-
-**Diverse Code Bases**
-
-<br>
-
-10KLoc
-
-<br>
-
-56 Modules
-
-LiquidHaskell 
--------------
-
-<br>
-
-**Complex Properties**
-
-<br>
-
-Memory Safety
-
-
-Functional Correctness*
-
-
-Termination
-
-<br>
-
-<div class="fragment">
-**Inference is Crucial**
-</div>
-
-Benchmarks
-----------
-
-<div align="center">
-
-**Library**                     
----------------------------   ---------
-`XMonad.StackSet`                      
-`Data.List`                         
-`Data.Set.Splay`                    
-`Data.Vector.Algorithms`           
-`HsColour`                        
-`Data.Map.Base`                
-`Data.Text`                        
-`Data.Bytestring`                  
----------------------------   ---------
-
-</div>
-
-
-Benchmarks 
-----------
-
-<div align="center">
-
-**Library**                     **LOC**
----------------------------   ---------
-`XMonad.StackSet`                   256 
-`Data.List`                         814
-`Data.Set.Splay`                    149
-`Data.Vector.Algorithms`           1219
-`HsColour`                         1047
-`Data.Map.Base`                    1396
-`Data.Text`                        3128
-`Data.Bytestring`                  3505
-**Total**                     **11512**
----------------------------   ---------
-
-</div>
-
-Benchmarks
-----------
-
-<div align="center">
-
-**Library**                     **LOC**     **Specs**    
----------------------------   ---------   -----------    
-`XMonad.StackSet`                   256            74    
-`Data.List`                         814            46    
-`Data.Set.Splay`                    149            27    
-`Data.Vector.Algorithms`           1219            76    
-`HsColour`                         1047            19    
-`Data.Map.Base`                    1396           125    
-`Data.Text`                        3128           305    
-`Data.Bytestring`                  3505           307    
-**Total**                     **11512**       **977**    
----------------------------   ---------   -----------    
-
-</div>
-
-
-Code v. Specs 
--------------
-
-<img src="../img/code-spec-indiv.png" height=400px>
-
-
-Code v. Specs 
--------------
-
-<br>
-
-<img src="../img/code-spec-total.png" height=100px>
- 
-**About 8.5%**
-
-*Very* coarse measure...
-
-Running Time
-------------
-
-<div align="center">
-
-**Library**                     **LOC**     **Specs**      **Time**
----------------------------   ---------   -----------    ----------
-`XMonad.StackSet`                   256            74          27s
-`Data.List`                         814            46          26s
-`Data.Set.Splay`                    149            27          27s
-`Data.Vector.Algorithms`           1219            76          89s 
-`HsColour`                         1047            19         196s
-`Data.Map.Base`                    1396           125         174s
-`Data.Text`                        3128           305         499s
-`Data.Bytestring`                  3505           307         294s
-**Total**                     **11512**       **977**    **1336s**
----------------------------   ---------   -----------    ----------
-
-</div>
-
-
-
- {#comments}
-============
-
-Types as Comments
------------------
-
-<br>
-
-**Types are Machine Checked Comments**
-
-<br>
-
-+ Express same *requirements*
-
-+ But *connected to* code
-
-<br>
-
-<div class="fragment">
-**Always in sync as code changes**
-</div>
-
-Liquid Types as Machine Checked Comments
-========================================
-
-Example: Data.Map
------------------
-
-<br>
-
-**Requirement**
-
-<br>
-
-`Map a b` is a *binary search* ordered tree
-
-Example: Data.Map
------------------
-
-**Comment**
-
-\begin{spec}
--- @join@ assumes that all values in [l] < [k]
--- and all values in [r] > [k], and
--- that [l] and [r] are valid trees.
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-**Type**
-
-\begin{spec}
-join :: k:a -> b
-     -> l:Map {v:a | v < k} b
-     -> r:Map {v:a | v > k} b
-     -> Map a b 
-\end{spec}
-
-</div>
-
-Example: Data.ByteString
-------------------------
-
-<br>
-
-**Requirement**
-
-<br>
-
-Fast, low-level indices into a `ByteString` must be in bounds.
-
-
-Example: Data.ByteString
-------------------------
-
-**Comment**
-
-\begin{spec}
--- Unsafe 'ByteString' index (subscript) ...
--- omits the bounds check, which means there
--- is an obligation to ensure the bounds are
--- checked in some other way.
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-**Type**
-
-\begin{spec}
-unsafeIndex :: b:ByteString
-            -> {v:Nat | v < bLength b}
-            -> Word8 
-\end{spec}
-
-</div>
-
-Example: Data.ByteString
-------------------------
-
-<br>
-
-**Requirement**
-
-<br>
-
-Fast *truncation* requires valid size.
-
-
-Example: Data.ByteString
-------------------------
-
-**Comment**
-
-\begin{spec}
--- omits the checks on @n@ so there is
--- an obligation to provide a proof
--- that @0 <= n <= 'length' xs@             
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Type**
-
-\begin{spec}
-unsafeTake :: n:Nat
-           -> {v:ByteString | n <= bLength v}
-           -> {v:ByteString | n = bLength v} 
-\end{spec}
-
-</div>
-
- {#cont}
-=========
-
-
-Continue
---------
-
-<br>
-<br>
-<br>
-
-[[continue...]](12_Conclusion.lhs.slides.html)
-
- {#recap}
-=========
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. **Evaluation**
-6. <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
-<br>
-<br>
-
diff --git a/docs/slides/BOS14/lhs/12_Conclusion.lhs b/docs/slides/BOS14/lhs/12_Conclusion.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/12_Conclusion.lhs
+++ /dev/null
@@ -1,82 +0,0 @@
- {#ASda}
-========
-
-Conclusion
-----------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-Conclusion
-==========
-
-Liquid Types
-------------
-
-<br>
-
-**Types** lift **Program Logic + Analysis** to Modern Programs
-
-<br>
-
-<div class="fragment">
-
--------------------       ------------------------------------------------
-**Properties:**           Predicates  *+ Types*
-**Proofs:**               SMT Solvers *+ Subtyping*
-**Inference:**            Abstract Interpretation *+ Hindley-Milner*
--------------------       ------------------------------------------------
-
-</div>
-
-Current & Future Work
----------------------
-
-<br>
-
-**Technology**
-
-<br>
-
-+ GHC
-+ Speed
-+ Effects
-+ *Error Messages*
-
-Current & Future Work
----------------------
-
-<br>
-
-**Applications**
-
-<br>
-
-+ Testing
-+ Web frameworks
-+ Concurrency
-+ Code Completion
-
- {#asd}
-=======
-
-Thank You!
-----------
-
-<br>
-<br>
-
-`cabal install liquidhaskell`
-
-Thank You!
-----------
-
-<br>
-<br>
-
-[`http://goto.ucsd.edu/liquid`](http://goto.ucsd.edu/liquid)
diff --git a/docs/slides/BOS14/lhs/13_RedBlack.lhs b/docs/slides/BOS14/lhs/13_RedBlack.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/13_RedBlack.lhs
+++ /dev/null
@@ -1,268 +0,0 @@
-
-
-Red-Black Trees
-===============
-
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diff"           @-}
-
-module RBTree (ok, bad1, bad2) where
-
-import Language.Haskell.Liquid.Prelude
-
-ok, bad1, bad2 :: RBTree Int
-
----------------------------------------------------------------------------
--- | Specifications -------------------------------------------------------
----------------------------------------------------------------------------
-
--- | Red-Black Trees
-{-@ type RBT a    = {v: RBTree a | isRB v && isBH v } @-}
-
-{-@ measure isRB        :: RBTree a -> Prop
-    isRB (Leaf)         = true
-    isRB (Node c x l r) = isRB l && isRB r && (c == R => (IsB l && IsB r))
-  @-}
-
--- | Almost Red-Black Trees
-{-@ type ARBT a    = {v: RBTree a | isARB v && isBH v} @-}
-
-{-@ measure isARB        :: (RBTree a) -> Prop
-    isARB (Leaf)         = true 
-    isARB (Node c x l r) = (isRB l && isRB r)
-  @-}
-
--- | Color of a tree
-{-@ measure col         :: RBTree a -> Color
-    col (Node c x l r)  = c
-    col (Leaf)          = B
-  @-}
-
-{-@ measure isB        :: RBTree a -> Prop
-    isB (Leaf)         = false
-    isB (Node c x l r) = c == B 
-  @-}
-
-{-@ predicate IsB T = not (col T == R) @-}
-
--- | Black Height
-{-@ measure isBH        :: RBTree a -> Prop
-    isBH (Leaf)         = true
-    isBH (Node c x l r) = (isBH l && isBH r && bh l = bh r)
-  @-}
-
-{-@ measure bh        :: RBTree a -> Int
-    bh (Leaf)         = 0
-    bh (Node c x l r) = bh l + if (c == R) then 0 else 1 
-  @-}
-
-
--- | Binary Search Ordering
-{-@ data RBTree a = Leaf
-      | Node { c     :: Color
-             , key   :: a
-             , left  :: RBTree ({v:a | v < key})
-             , right :: RBTree ({v:a | key < v}) } @-}
-\end{code}
-
-</div>
-
-
-
- {#asdad}
----------
-
-<img src="../img/RedBlack.png" height=300px>
-
-+ <div class="fragment">**Color Invariant:** `Red` nodes have `Black` children</div>
-+ <div class="fragment">**Height Invariant:** Number of `Black` nodes equal on *all paths*</div>
-+ <div class="fragment">**Order Invariant:** Left keys < root < Right keys </div>
-
-
-Basic Type 
-----------
-
-\begin{code}
-data Color = R | B
-
-data RBTree a = Leaf
-              | Node { c     :: Color
-                     , key   :: a
-                     , left  :: RBTree a 
-                     , right :: RBTree a }
-\end{code}
-
-
-1. Color Invariant 
-------------------
-
-`Red` nodes have `Black` children
-
-<div class="fragment">
-\begin{spec}
-measure isRB        :: Tree a -> Prop
-isRB (Leaf)         = true
-isRB (Node c x l r) = c == R => (isB l && isB r)
-                      && isRB l && isRB r
-\end{spec}
-</div>
-
-<div class="fragment">
-where 
-\begin{spec}
-measure isB         :: Tree a -> Prop 
-isB (Leaf)          = true
-isB (Node c x l r)  = c == B
-\end{spec}
-</div>
-
-
-1. *Almost* Color Invariant 
----------------------------
-
-<br>
-
-Color Invariant **except** at root. 
-
-<br>
-
-<div class="fragment">
-\begin{spec}
-measure isAlmost        :: RBTree a -> Prop
-isAlmost (Leaf)         = true
-isAlmost (Node c x l r) = isRB l && isRB r
-\end{spec}
-</div>
-
-<!-- BEGIN CUT END CUT -->
-
-2. Height Invariant
--------------------
-
-Number of `Black` nodes equal on **all paths**
-
-<div class="fragment">
-\begin{spec} 
-measure isBH        :: RBTree a -> Prop
-isBH (Leaf)         =  true
-isBH (Node c x l r) =  bh l == bh r 
-                    && isBH l && isBH r 
-\end{spec}
-</div>
-
-<div class="fragment">
-
-where
-
-\begin{spec}
-measure bh        :: RBTree a -> Int
-bh (Leaf)         = 0
-bh (Node c x l r) = bh l 
-                  + if c == R then 0 else 1
-\end{spec}
-</div>
-
-3. Order Invariant
-------------------
-
-**Binary Search Ordering**
-
-\begin{spec}
-data RBTree a
-  = Leaf
-  | Node { c     :: Color
-         , key   :: a
-         , left  :: RBTree {v:a | v < key}
-         , right :: RBTree {v:a | key < v}
-         }
-\end{spec}
-
-
-Valid Red-Black Trees
----------------------
-
-<br>
-
-**Conjoining Specifications**
-
-<br>
-
-\begin{spec}
--- | Red-Black Trees
-type RBT a  = {v:RBTree a|isRB v && isBH v}
-
--- | Almost Red-Black Trees
-type ARBT a = {v:RBTree a|isAlmost v && isBH v}
-\end{spec}
-
-<br>
-
-[Details](https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/RBTree.hs)
-
-Ex: Satisfies Invariants
--------------------------
-
-<img src="../img/rbtree-ok.png" height=200px>
-
-<br>
-
-\begin{code}
-{-@ ok   :: RBT Int @-}
-ok = Node R 2 
-          (Node B 1 Leaf Leaf)
-          (Node B 3 Leaf Leaf)
-\end{code}
-
-
-Ex: Violates Order Invariant
-----------------------------
-
-<img src="../img/rbtree-bad1.png" height=200px>
-
-<br>
-
-\begin{code}
-{-@ bad1 :: RBT Int @-}
-bad1 = Node R 1
-          (Node B 2 Leaf Leaf)
-          (Node B 3 Leaf Leaf)
-\end{code}
-
-Ex: Violates Color Invariant
-----------------------------
-
-<img src="../img/rbtree-bad2.png" height=200px>
-
-<br>
-
-\begin{code}
-{-@ bad2 :: RBT Int @-}
-bad2 = Node  R 2
-         (Node R 1 Leaf Leaf)
-         (Node B 3 Leaf Leaf)
-\end{code}
-
-
-Verified Red-Black Operations 
------------------------------
-
-<br>
-
-**Types Verify Correctness of**
-
-<br>
-
-+ Insertion
-
-+ Deletion
-
-+ Lookup ...
-
-<br>
-
-**In presence of rotation & rebalancing** [[details]](https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/RBTree.hs)
-
diff --git a/docs/slides/BOS14/lhs/14_Memory.lhs b/docs/slides/BOS14/lhs/14_Memory.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/14_Memory.lhs
+++ /dev/null
@@ -1,914 +0,0 @@
-Case Study: Low Level Memory
-============================
-
- {#mem}
--------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--diffcheck"     @-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-
-module Memory where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Data.ByteString.Internal (c2w, w2c)
-import Language.Haskell.Liquid.Prelude
-\end{code}
-
-</div>
-
-"HeartBleed" in Haskell
------------------------
-
-<br>
-
-**Modern languages are built on top of C**
-
-<br>
-
-<div class="fragment">
-Implementation errors could open up vulnerabilities
-</div>
-
-
-
-
-"HeartBleed" in Haskell (1/3)
------------------------------
-
-**A String Truncation Function**
-
-<br>
-
-<div class="hidden">
-\begin{spec}
-import Data.ByteString.Char8  (pack, unpack)
-import Data.ByteString.Unsafe (unsafeTake)
-\end{spec}
-</div>
-
-\begin{spec}
-chop     :: String -> Int -> String
-chop s n = s'
-  where
-    b    = pack s         -- down to low-level
-    b'   = unsafeTake n b -- grab n chars
-    s'   = unpack b'      -- up to high-level
-\end{spec}
-
-"HeartBleed" in Haskell (2/3)
------------------------------
-
-<img src="../img/overflow.png" height=100px>
-
-
-Works if you use the **valid prefix** size
-
-<br>
-
-\begin{spec}
-λ> let ex = "Ranjit Loves Burritos"
-
-λ> heartBleed ex 10
-"Ranjit Lov"
-\end{spec}
-
-
-"HeartBleed" in Haskell (3/3)
------------------------------
-
-<img src="../img/overflow.png" height=100px>
-
-Leaks *overflow buffer* if **invalid prefix** size!
-
-<br>
-
-\begin{spec}
-λ> let ex = "Ranjit Loves Burritos"
-
-λ> heartBleed ex 30
-"Ranjit Loves Burritos\NUL\201\&1j\DC3\SOH\NUL"
-\end{spec}
-
-Types Against Overflows
------------------------
-
-<br>
-
-**Strategy: Specify and Verify Types for**
-
-<br>
-
-1. <div class="fragment">Low-level `Pointer` API</div>
-2. <div class="fragment">Lib-level `ByteString` API</div>
-3. <div class="fragment">User-level `Application` API</div>
-
-<br>
-
-<div class="fragment">Errors at *each* level are prevented by types at *lower* levels</div>
-
- {#ptr}
-=======
-
-1. Low-level Pointer API
-------------------------
-
-<br>
-
-Strategy: Specify and Verify Types for
-
-<br>
-
-1. **Low-level `Pointer` API**
-2. Lib-level `ByteString` API
-3. User-level `Application` API
-
-<br>
-
-Errors at *each* level are prevented by types at *lower* levels
-
-
-
-
-1. Low-Level Pointer API
-========================
-
-API: Types
-----------
-
-<br>
-
-**Low-level Pointers**
-
-\begin{spec}
-data Ptr a
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Foreign Pointers**
-
-\begin{spec}
-data ForeignPtr a
-\end{spec}
-
-<br>
-
-`ForeignPtr` wraps around `Ptr`; can be exported to/from C.
-</div>
-
-
-API: Operations (1/2)
----------------------
-
-<div class="fragment">
-**Read**
-
-\begin{spec}
-peek     :: Ptr a -> IO a
-\end{spec}
-</div>
-
-<br>
-<div class="fragment">
-**Write**
-
-\begin{spec}
-poke     :: Ptr a -> a -> IO ()
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-**Arithmetic**
-\begin{spec}
-plusPtr  :: Ptr a -> Int -> Ptr b
-\end{spec}
-</div>
-
-API: Operations (2/2)
----------------------
-
-<div class="fragment">
-**Create**
-
-\begin{spec}
-malloc  :: Int -> ForeignPtr a
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-**Unwrap and Use**
-
-\begin{spec}
-withForeignPtr :: ForeignPtr a     -- pointer
-               -> (Ptr a -> IO b)  -- action
-               -> IO b             -- result
-\end{spec}
-</div>
-
-Example
--------
-
-**Allocate a block and write 4 zeros into it**
-
-<div class="fragment">
-
-\begin{code}
-zero4 = do fp <- malloc 4
-           withForeignPtr fp $ \p -> do
-             poke (p `plusPtr` 0) zero
-             poke (p `plusPtr` 1) zero
-             poke (p `plusPtr` 2) zero
-             poke (p `plusPtr` 3) zero
-           return fp
-        where
-           zero = 0 :: Word8
-\end{code}
-
-</div>
-
-Example
--------
-
-**Allocate a block and write 4 zeros into it**
-
-How to *prevent overflows* e.g. writing 5 or 50 zeros?
-
-<br>
-
-<div class="fragment">
-**Step 1**
-
-*Refine pointers* with allocated size
-</div>
-
-<br>
-
-<div class="fragment">
-**Step 2**
-
-*Track sizes* in pointer operations
-</div>
-
-Refined API: Types
-------------------
-
-<br>
-
-**1. Refine pointers with allocated size**
-
-\begin{spec}
-measure plen  :: Ptr a -> Int
-measure fplen :: ForeignPtr a -> Int
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Abbreviations for pointers of size `N`
-
-\begin{spec}
-type PtrN a N        = {v:_ |  plen v  = N}
-type ForeignPtrN a N = {v:_ |  fplen v = N}
-\end{spec}
-</div>
-
-
-Refined API: Ops (1/3)
-----------------------
-
-<div class="fragment">
-**Create**
-
-\begin{spec}
-malloc  :: n:Nat -> ForeignPtrN a n
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-**Unwrap and Use**
-
-\begin{spec}
-withForeignPtr :: fp:ForeignPtr a
-               -> (PtrN a (fplen fp) -> IO b)
-               -> IO b
-\end{spec}
-</div>
-
-Refined API: Ops (2/3)
-----------------------
-
-<br>
-
-**Arithmetic**
-
-Refine type to track *remaining* buffer size
-
-<br>
-
-<div class="fragment">
-\begin{spec}
-plusPtr :: p:Ptr a
-        -> o:{Nat|o <= plen p}   -- in bounds
-        -> PtrN b (plen b - o)   -- remainder
-\end{spec}
-
-</div>
-
-
-
-Refined API: Ops (3/3)
-----------------------
-
-**Read & Write require non-empty remaining buffer**
-
-<br>
-
-<div class="fragment">
-**Read**
-
-\begin{spec}
-peek :: {v:Ptr a | 0 < plen v} -> IO a
-\end{spec}
-</div>
-
-<br>
-<div class="fragment">
-**Write**
-
-\begin{spec}
-poke :: {v:Ptr a | 0 < plen v} -> a -> IO ()
-\end{spec}
-</div>
-
-Example: Overflow Prevented
----------------------------
-
-How to *prevent overflows* e.g. writing 5 or 50 zeros?
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-exBad = do fp <- malloc 4
-           withForeignPtr fp $ \p -> do
-             poke (p `plusPtr` 0) zero
-             poke (p `plusPtr` 1) zero
-             poke (p `plusPtr` 2) zero
-             poke (p `plusPtr` 5) zero
-           return fp
-        where
-           zero = 0 :: Word8
-\end{code}
-
-</div>
-
- {#bs}
-======
-
-2. ByteString API
------------------
-
-<br>
-
-Strategy: Specify and Verify Types for
-
-<br>
-
-1. Low-level `Pointer` API
-2. **Lib-level `ByteString` API**
-3. User-level `Application` API
-
-<br>
-
-Errors at *each* level are prevented by types at *lower* levels
-
-
-2. ByteString API
-=================
-
-Type
--------
-
-<img src="../img/bytestring.png" height=150px>
-
-\begin{code}
-data ByteString = PS {
-    bPtr :: ForeignPtr Word8
-  , bOff :: !Int
-  , bLen :: !Int
-  }
-\end{code}
-
-
-Refined Type
-------------
-
-<img src="../img/bytestring.png" height=150px>
-
-\begin{code}
-{-@ data ByteString = PS {
-      bPtr :: ForeignPtr Word8
-    , bOff :: {v:Nat| v        <= fplen bPtr}
-    , bLen :: {v:Nat| v + bOff <= fplen bPtr}
-    }                                       @-}
-\end{code}
-
-Refined Type
-------------
-
-<img src="../img/bytestring.png" height=150px>
-
-<br>
-
-**A Useful Abbreviation**
-
-\begin{spec}
-type ByteStringN N = {v:ByteString| bLen v = N}
-\end{spec}
-
-
-<div class="hidden">
-\begin{code}
-{-@ type ByteStringN N = {v:ByteString | bLen v = N} @-}
-\end{code}
-</div>
-
-
-
-Legal Bytestrings
------------------
-
-
-<br>
-
-\begin{code}
-{-@ good1 :: IO (ByteStringN 5) @-}
-good1 = do fp <- malloc 5
-           return (PS fp 0 5)
-
-{-@ good2 :: IO (ByteStringN 3) @-}
-good2 = do fp <- malloc 5
-           return (PS fp 2 3)
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** *length* of `good2` is `3` which is *less than* allocated size `5`
-</div>
-
-Illegal Bytestrings
------------------
-
-<br>
-
-\begin{code}
-bad1 = do fp <- malloc 3
-          return (PS fp 0 10)
-
-bad2 = do fp <- malloc 3
-          return (PS fp 2 2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Claimed length *exceeds* allocation ... **rejected** at compile time
-</div>
-
-API: `create`
--------------
-
-<div class="hidden">
-\begin{code}
-create :: Int -> (Ptr Word8 -> IO ()) -> ByteString
-\end{code}
-</div>
-
-*Allocate* and *fill* a `ByteString`
-
-<br>
-
-<div class="fragment">
-**Specification**
-\begin{code}
-{-@ create :: n:Nat -> (PtrN Word8 n -> IO ())
-           -> ByteStringN n                @-}
-\end{code}
-</div>
-
-
-<div class="fragment">
-**Implementation**
-
-\begin{code}
-create n fill = unsafePerformIO $ do
-  fp  <- malloc n
-  withForeignPtr fp fill
-  return (PS fp 0 n)
-\end{code}
-</div>
-
-<!-- CUT
-<div class="fragment">
-Yikes, there is an error! How to fix?
-</div>
--->
-
-API: `pack`
-------------
-
-**Specification**
-
-\begin{code}
-{-@ pack :: s:String -> ByteStringN (len s) @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-**Implementation**
-
-\begin{code}
-pack str      = create n $ \p -> go p xs
-  where
-  n           = length str
-  xs          = map c2w str
-  go p (x:xs) = poke p x >> go (plusPtr p 1) xs
-  go _ []     = return  ()
-\end{code}
-
-</div>
-
-
-
-API: `unsafeTake`
------------------
-
-Extract *prefix* string of size `n`
-
-<br>
-
-<div class="fragment">
-**Specification**
-
-\begin{code}
-{-@ unsafeTake :: n:Nat
-               -> b:{ByteString | n <= bLen b}
-               -> ByteStringN n            @-}
-\end{code}
-</div>
-
-
-<br>
-
-<div class="fragment">
-**Implementation**
-
-\begin{code}
-unsafeTake n (PS x s l) = PS x s n
-\end{code}
-</div>
-
-API: `unpack`
--------------
-
-**Specification**
-
-\begin{spec}
-unpack
- :: b:ByteString -> StringN (bLen b)
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Implementation**
-
-\begin{spec}
-unpack b = you . get . the . idea -- see source
-\end{spec}
-</div>
-
-<div class="hidden">
-\begin{code}
-{-@ qualif Unpack(v:a, acc:b, n:int) : len v = 1 + n + len acc @-}
-
-{-@ unpack :: b:ByteString -> StringN (bLen b) @-}
-unpack :: ByteString -> String
-unpack (PS _  _ 0)  = []
-unpack (PS ps s l)  = unsafePerformIO $ withForeignPtr ps $ \p ->
-   go (p `plusPtr` s) (l - 1)  []
-  where
-   go p 0 acc = peek p >>= \e -> return (w2c e : acc)
-   go p n acc = peek (p `plusPtr` n) >>=   \e -> go p (n-1) (w2c e : acc)
-\end{code}
-
-</div>
-
- {#heartbleedredux}
-==================
-
-
-3. Application API
--------------------
-
-
-<br>
-
-Strategy: Specify and Verify Types for
-
-<br>
-
-1. Low-level `Pointer` API
-2. Lib-level `ByteString` API
-3. **User-level `Application` API**
-
-<br>
-
-Errors at *each* level are prevented by types at *lower* levels
-
-3. Application API
-==================
-
-Revisit "HeartBleed"
---------------------
-
-Lets revisit our potentially "bleeding" `chop`
-
-<br>
-
-<div class="hidden">
-\begin{code}
-{-@ type StringN N = {v:String | len v = N} @-}
-\end{code}
-</div>
-<div class="fragment">
-
-\begin{code}
-{-@ chop :: s:String
-         -> n:{Nat | n <= len s}
-         -> StringN n
-  @-}
-chop s n =  s'
-  where
-    b    = pack s          -- down to low-level
-    b'   = unsafeTake n b  -- grab n chars
-    s'   = unpack b'       -- up to high-level
-\end{code}
-
-<!-- BEGIN CUT
-<br>
-
-Yikes! How shall we fix it?
-
-     END CUT -->
-</div>
-
-<!-- BEGIN CUT
-
-A Well Typed `chop`
--------------------
-
-\begin{spec}
-{-@ chop :: s:String
-         -> n:{Nat | n <= len s}
-         -> {v:String | len v = n} @-}
-chop s n = s'
-  where
-    b    = pack s          -- down to low-level
-    b'   = unsafeTake n b  -- grab n chars
-    s'   = unpack b'       -- up to high-level
-\end{spec}
-
-END CUT -->
-
-"HeartBleed" no more
---------------------
-
-<br>
-
-\begin{code}
-demo     = [ex6, ex30]
-  where
-    ex   = ['N','o','r','m','a','n']
-    ex6  = chop ex 6  -- ok
-    ex30 = chop ex 30  -- out of bounds
-\end{code}
-
-<br>
-
-"Bleeding" `chop ex 30` *rejected* by compiler
-
-Recap: Types vs Overflows
--------------------------
-
-<br>
-
-**Strategy: Specify and Verify Types for**
-
-<br>
-
-1. Low-level `Pointer` API
-2. Lib-level `ByteString` API
-3. User-level `Application` API
-
-<br>
-
-**Errors at *each* level are prevented by types at *lower* levels**
-
-
-
-
-
-
-
-
-
-
-
-
-
-<div class="hidden">
-Bonus Material
-==============
-
-Nested ByteStrings
-------------------
-
-For a more in depth example, let's take a look at `group`,
-which transforms strings like
-
-   `"foobaaar"`
-
-into *lists* of strings like
-
-   `["f","oo", "b", "aaa", "r"]`.
-
-The specification is that `group` should produce a list of `ByteStrings`
-
-1. that are all *non-empty* (safety)
-2. the sum of whose lengths is equal to the length of the input string (precision)
-
-We use the type alias
-
-\begin{code}
-{-@ type ByteStringNE = {v:ByteString | bLen v > 0} @-}
-\end{code}
-
-to specify (safety) and introduce a new measure
-
-\begin{code}
-{-@ measure bLens  :: [ByteString] -> Int
-    bLens ([])   = 0
-    bLens (x:xs) = (bLen x + bLens xs)
-  @-}
-\end{code}
-
-to specify (precision). The full type-specification looks like this:
-
-\begin{code}
-{-@ group :: b:ByteString -> {v: [ByteStringNE] | bLens v = bLen b} @-}
-group xs
-    | null xs   = []
-    | otherwise = let y = unsafeHead xs
-                      (ys, zs) = spanByte (unsafeHead xs) (unsafeTail xs)
-                  in (y `cons` ys) : group zs
-\end{code}
-
-As you can probably tell, `spanByte` appears to be doing a lot of the work here,
-so let's take a closer look at it to see why the post-condition holds.
-
-\begin{code}
-spanByte :: Word8 -> ByteString -> (ByteString, ByteString)
-spanByte c ps@(PS x s l) = unsafePerformIO $ withForeignPtr x $ \p ->
-    go (p `plusPtr` s) 0
-  where
-    go p i | i >= l    = return (ps, empty)
-           | otherwise = do c' <- peekByteOff p i
-                            if c /= c'
-                                then return (unsafeTake i ps, unsafeDrop i ps)
-                                else go p (i+1)
-\end{code}
-
-LiquidHaskell infers that `0 <= i <= l` and therefore that all of the memory
-accesses are safe. Furthermore, due to the precise specifications given to
-`unsafeTake` and `unsafeDrop`, it is able to prove that `spanByte` has the type
-
-\begin{code}
-{-@ spanByte :: Word8 -> b:ByteString -> (ByteStringPair b) @-}
-\end{code}
-
-where `ByteStringPair b` describes a pair of `ByteString`s whose
-lengths sum to the length of `b`.
-
-\begin{code}
-{-@ type ByteStringPair B = (ByteString, ByteString)<{\x1 x2 ->
-       bLen x1 + bLen x2 = bLen B}> @-}
-\end{code}
-
-
-
-
-
-
-
-
-\begin{code}
------------------------------------------------------------------------
--- Helper Code
------------------------------------------------------------------------
-
-{-@ unsafeCreate :: l:Nat -> ((PtrN Word8 l) -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = create n f -- unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLen  v >= 0} @-}
-{-@ invariant {v:[ByteString] | bLens v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
-{-@ unsafeHead :: {v:ByteString | (bLen v) > 0} -> Word8 @-}
-
-unsafeHead :: ByteString -> Word8
-unsafeHead (PS x s l) = liquidAssert (l > 0) $
-  unsafePerformIO  $  withForeignPtr x $ \p -> peekByteOff p s
-
-{-@ unsafeTail :: b:{v:ByteString | (bLen v) > 0}
-               -> {v:ByteString | (bLen v) = (bLen b) - 1} @-}
-unsafeTail :: ByteString -> ByteString
-unsafeTail (PS ps s l) = liquidAssert (l > 0) $ PS ps (s+1) (l-1)
-
-{-@ null :: b:ByteString -> {v:Bool | ((Prop v) <=> ((bLen b) = 0))} @-}
-null :: ByteString -> Bool
-null (PS _ _ l) = liquidAssert (l >= 0) $ l <= 0
-
-{-@ unsafeDrop :: n:Nat
-               -> b:{v: ByteString | n <= (bLen v)}
-               -> {v:ByteString | (bLen v) = (bLen b) - n} @-}
-unsafeDrop  :: Int -> ByteString -> ByteString
-unsafeDrop n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x (s+n) (l-n)
-
-{-@ cons :: Word8 -> b:ByteString -> {v:ByteString | (bLen v) = 1 + (bLen b)} @-}
-cons :: Word8 -> ByteString -> ByteString
-cons c (PS x s l) = unsafeCreate (l+1) $ \p -> withForeignPtr x $ \f -> do
-        poke p c
-        memcpy (p `plusPtr` 1) (f `plusPtr` s) (fromIntegral l)
-
-{-@ empty :: {v:ByteString | (bLen v) = 0} @-}
-empty :: ByteString
-empty = PS nullForeignPtr 0 0
-
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignPtrN a n) @-}
-{-@ type ForeignPtrN a N = {v:ForeignPtr a | fplen v = N} @-}
-{-@ malloc :: n:Nat -> IO (ForeignPtrN a n) @-}
-malloc = mallocForeignPtrBytes
-
-{-@ assume
-    c_memcpy :: dst:(PtrV Word8)
-             -> src:(PtrV Word8)
-             -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))}
-             -> IO (Ptr Word8)
-  @-}
-foreign import ccall unsafe "string.h memcpy" c_memcpy
-    :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8)
-
-{-@ memcpy :: dst:(PtrV Word8)
-           -> src:(PtrV Word8)
-           -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))}
-           -> IO ()
-  @-}
-memcpy :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
-memcpy p q s = c_memcpy p q s >> return ()
-
-{-@ assume nullForeignPtr :: {v: ForeignPtr Word8 | (fplen v) = 0} @-}
-nullForeignPtr :: ForeignPtr Word8
-nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr
-{-# NOINLINE nullForeignPtr #-}
-\end{code}
-
-</div>
diff --git a/docs/slides/BOS14/lhs/Index-Boston-Haskell.lhs b/docs/slides/BOS14/lhs/Index-Boston-Haskell.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/Index-Boston-Haskell.lhs
+++ /dev/null
@@ -1,160 +0,0 @@
-<div class="hidden">
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-</div>
-
-LiquidHaskell 
-==============
-
-Refinement Types for Haskell
-------------------------------
-
-
-<br>
-<br>
-
-<div class="fragment">
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, M. Kawaguchi
-
-D. Vytiniotis, S. Peyton-Jones
-
-</div>
-
-
- {#plan}
--------
-
-**Part I**
-
-Refinement Types
-
-<br>
-
-<div class="fragment">
-**Part II**
-
-Case Studies
-</div>
-
-<br>
-
-
-<div class="fragment">
-**Part III**
-
-Haskell (Lazy Evaluation)
-</div>
-
- {#plan}
---------
-
-
-<br>
-
-(And *if* we have time...)
-
-
-<br>
-
-**Part IV**
-
-Abstract Refinements
-
-I: Refinement Types
--------------------
-
-<br>
-
-<a href="00_Motivation.lhs.slides.html" target="_blank">**Motivation**</a>
-
-<br>
-
-<div class="fragment">
-<a href="01_SimpleRefinements.lhs.slides.html" target="_blank">**Refinements**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="02_Measures.lhs.slides.html" target= "_blank">**Measures**</a>
-</div>
-
-II: Case Studies 
-----------------
-
-<br>
-
-<a href="13_RedBlack.lhs.slides.html" target="_blank">**Red-Black Trees**</a>
-
-<br>
-
-<a href="14_Memory.lhs.slides.html" target="_blank">**Low-level Memory Safety**</a>
-
-
-III: Haskell
-------------
-
-<br>
-
-<a href="09_Laziness.lhs.slides.html" target="_blank">**Lazy Evaluation**</a>
-
-<br>
-
-<div class="fragment">
-<a href="10_Termination.lhs.slides.html" target="_blank">**Termination**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="11_Evaluation.lhs.slides.html" target="_blank">**Evaluation**</a>
-</div>
-
-
-IV: Abstract Refinements
-------------------------
-
-
-<br>
-
-<a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">**Abstracting Refinements over Types**</a>
-
-<br>
-
-<div class="fragment">
-
-**Demos**
-
-<br>
-
-+ [Basic](../hs/02_AbstractRefinements.hs)
-+ [Induction](../hs/02_AbstractRefinements.hs)
-+ [Recursion](../hs/02_AbstractRefinements.hs)
-+ [Key-Value](../hs/02_AbstractRefinements.hs)
-
-</div>
-
-
-Conclusion
-----------
-
-<br>
-<br>
-<br>
-
-<div class="fragment">
-
-<a href="12_Conclusion.lhs.slides.html" target="_blank">[Continue]</a>
-
-</div>
-
diff --git a/docs/slides/BOS14/lhs/Index-Tufts.lhs b/docs/slides/BOS14/lhs/Index-Tufts.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/Index-Tufts.lhs
+++ /dev/null
@@ -1,73 +0,0 @@
-<div class="hidden">
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-</div>
-
-LiquidHaskell 
-==============
-
-Refinement Types for Haskell
-------------------------------
-
-
-<br>
-<br>
-
-<div class="fragment">
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, M. Kawaguchi
-
-D. Vytiniotis, S. Peyton-Jones
-
-</div>
-
- {#motivation}
---------------
-
-
-<br>
-<br>
-
-<a href="00_Motivation_Long.lhs.slides.html" target="_blank">[Continue...]</a>
-
-
-Plan
-----
-
-<div class="fragment">
-<a href="01_SimpleRefinements.lhs.slides.html" target="_blank">**Refinement Types**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="02_Measures.lhs.slides.html" target= "_blank">**Data Structures**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="14_Memory.lhs.slides.html" target="_blank">**Low-level Memory Safety**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="11_Evaluation.lhs.slides.html" target="_blank">**Evaluation**</a>
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="12_Conclusion.lhs.slides.html" target="_blank">**Conclusion**</a>
-</div>
-
diff --git a/docs/slides/BOS14/lhs/Index.lhs b/docs/slides/BOS14/lhs/Index.lhs
deleted file mode 100644
--- a/docs/slides/BOS14/lhs/Index.lhs
+++ /dev/null
@@ -1,49 +0,0 @@
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-
- {#ASD}
-=======
-
-
-Abstract Refinement Types
--------------------------
-
-
-<br>
-<br>
-
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, D. Vytiniotis, S. Peyton-Jones
-
-<br>
-
-<div class="fragment">
-[[continue]](00_Motivation.lhs.slides.html)
-</div>
-
-
-Plan 
-----
-
-+ <a href="00_Motivation.lhs.slides.html" target="_blank">Motivation</a>
-+ <div class="fragment"><a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a></div>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Functions</a>,<a href="08_Inductive.lhs.slides.html" target="_blank">Trees</a>,<a href="07_Array.lhs.slides.html" target= "_blank">Arrays</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
diff --git a/docs/slides/ETH14/Makefile b/docs/slides/ETH14/Makefile
deleted file mode 100644
--- a/docs/slides/ETH14/Makefile
+++ /dev/null
@@ -1,92 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-RJSERVER=rjhala@goto.ucsd.edu:~/public_html/liquid/haskell/plpv/lhs/
-## LOCAL
-## MATHJAX=file:///Users/rjhala/research/MathJax
-## REMOTE 
-MATHJAX=https://c328740.ssl.cf1.rackcdn.com/mathjax/latest
-####################################################################
-
-STRIPCODE=./MkCode.hs
-
-REVEAL=pandoc \
-	   --from=markdown\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js \
-	   --variable mathjax=$(MATHJAX)
-
-FREVEAL=pandoc \
- 	   --from=markdown+lhs\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js
-
-PANDOC=pandoc --columns=80  -s --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid --short-names 
-
-mdObjects   := $(patsubst %.lhs,%.lhs.markdown,$(wildcard lhs/*.lhs))
-htmlObjects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-pdfObjects  := $(patsubst %.lhs,%.lhs.slides.pdf,$(wildcard lhs/*.lhs))
-fhtmlObjects := $(patsubst %.lhs,%.fast.html,$(wildcard lhs/*.lhs))
-
-####################################################################
-
-
-all: slides 
-
-fast: $(fhtmlObjects)
-
-one: $(mdObjects)
-	$(REVEAL) lhs/.liquid/00_Index.lhs.markdown > lhs/index.html
-
-tut: $(mdObjects)
-	$(REVEAL) lhs/.liquid/*.markdown > lhs/tutorial.html 
-
-slides: $(htmlObjects)
-
-pdfslides: $(pdfObjects)
-
-lhs/.liquid/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-
-lhs/%.fast: lhs/%.lhs
-	$(STRIPCODE) $? > $@ 
-
-lhs/%.fast.html: lhs/%.fast
-	$(FREVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.html: lhs/.liquid/%.lhs.markdown
-	$(REVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/.liquid/%.lhs.markdown
-	$(BEAMER) $? -o $@
-
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/ETH14/MkCode.hs b/docs/slides/ETH14/MkCode.hs
deleted file mode 100644
--- a/docs/slides/ETH14/MkCode.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env runhaskell
-
-import System.Environment   (getArgs)
-import System.FilePath      (replaceExtension)
-import Data.Char            (isSpace)
-import Data.List            (isPrefixOf)
-
-main     = getArgs >>= mapM txFile 
-
-txFile f = (putStrLn . unlines . map txLine . lines) =<< readFile f
-
-txLine l 
-  | pfx `isPrefixOf` l = pfx
-  | otherwise          = l
-  where
-    pfx                = "\\begin{code}"
-
diff --git a/docs/slides/ETH14/_support/liquid.css b/docs/slides/ETH14/_support/liquid.css
deleted file mode 100644
--- a/docs/slides/ETH14/_support/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/ETH14/_support/liquidhaskell.css b/docs/slides/ETH14/_support/liquidhaskell.css
deleted file mode 100644
--- a/docs/slides/ETH14/_support/liquidhaskell.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/ETH14/_support/reveal.js/.travis.yml b/docs/slides/ETH14/_support/reveal.js/.travis.yml
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-before_script:
-  - npm install -g grunt-cli
diff --git a/docs/slides/ETH14/_support/reveal.js/Gruntfile.js b/docs/slides/ETH14/_support/reveal.js/Gruntfile.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/Gruntfile.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* global module:false */
-module.exports = function(grunt) {
-	var port = grunt.option('port') || 8000;
-	// Project configuration
-	grunt.initConfig({
-		pkg: grunt.file.readJSON('package.json'),
-		meta: {
-			banner:
-				'/*!\n' +
-				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
-				' * http://lab.hakim.se/reveal-js\n' +
-				' * MIT licensed\n' +
-				' *\n' +
-				' * Copyright (C) 2014 Hakim El Hattab, http://hakim.se\n' +
-				' */'
-		},
-
-		qunit: {
-			files: [ 'test/*.html' ]
-		},
-
-		uglify: {
-			options: {
-				banner: '<%= meta.banner %>\n'
-			},
-			build: {
-				src: 'js/reveal.js',
-				dest: 'js/reveal.min.js'
-			}
-		},
-
-		cssmin: {
-			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
-			}
-		},
-
-		sass: {
-			main: {
-				files: {
-					'css/theme/default.css': 'css/theme/source/default.scss',
-					'css/theme/beige.css': 'css/theme/source/beige.scss',
-					'css/theme/night.css': 'css/theme/source/night.scss',
-					'css/theme/serif.css': 'css/theme/source/serif.scss',
-					'css/theme/simple.css': 'css/theme/source/simple.scss',
-					'css/theme/sky.css': 'css/theme/source/sky.scss',
-					'css/theme/moon.css': 'css/theme/source/moon.scss',
-					'css/theme/solarized.css': 'css/theme/source/solarized.scss',
-					'css/theme/blood.css': 'css/theme/source/blood.scss'
-				}
-			}
-		},
-
-		jshint: {
-			options: {
-				curly: false,
-				eqeqeq: true,
-				immed: true,
-				latedef: true,
-				newcap: true,
-				noarg: true,
-				sub: true,
-				undef: true,
-				eqnull: true,
-				browser: true,
-				expr: true,
-				globals: {
-					head: false,
-					module: false,
-					console: false,
-					unescape: false
-				}
-			},
-			files: [ 'Gruntfile.js', 'js/reveal.js' ]
-		},
-
-		connect: {
-			server: {
-				options: {
-					port: port,
-					base: '.'
-				}
-			}
-		},
-
-		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**'
-			]
-		},
-
-		watch: {
-			main: {
-				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-				tasks: 'default'
-			},
-			theme: {
-				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
-				tasks: 'themes'
-			}
-		}
-
-	});
-
-	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
-	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
-	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-contrib-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
-	grunt.loadNpmTasks( 'grunt-zip' );
-
-	// Default task
-	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );
-
-	// Theme task
-	grunt.registerTask( 'themes', [ 'sass' ] );
-
-	// Package presentation to archive
-	grunt.registerTask( 'package', [ 'default', 'zip' ] );
-
-	// Serve presentation locally
-	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
-
-	// Run tests
-	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
-
-};
diff --git a/docs/slides/ETH14/_support/reveal.js/LICENSE b/docs/slides/ETH14/_support/reveal.js/LICENSE
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2014 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.eot b/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.eot
deleted file mode 100644
Binary files a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.eot and /dev/null differ
diff --git a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.svg b/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.svg
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="LeagueGothicRegular" horiz-adv-x="724" >
-<font-face units-per-em="2048" ascent="1505" descent="-543" />
-<missing-glyph horiz-adv-x="315" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="682" />
-<glyph unicode=" "  horiz-adv-x="315" />
-<glyph unicode="&#x09;" horiz-adv-x="315" />
-<glyph unicode="&#xa0;" horiz-adv-x="315" />
-<glyph unicode="!" horiz-adv-x="387" d="M74 1505h239l-55 -1099h-129zM86 0v227h215v-227h-215z" />
-<glyph unicode="&#x22;" horiz-adv-x="329" d="M57 1505h215l-30 -551h-154z" />
-<glyph unicode="#" horiz-adv-x="1232" d="M49 438l27 195h198l37 258h-196l26 194h197l57 420h197l-57 -420h260l57 420h197l-58 -420h193l-27 -194h-192l-37 -258h190l-26 -195h-191l-59 -438h-197l60 438h-261l-59 -438h-197l60 438h-199zM471 633h260l37 258h-260z" />
-<glyph unicode="$" horiz-adv-x="692" d="M37 358l192 13q12 -186 129 -187q88 0 93 185q0 74 -61 175q-21 36 -34 53l-40 55q-28 38 -65.5 90t-70.5 101.5t-70.5 141.5t-37.5 170q4 293 215 342v131h123v-125q201 -23 235 -282l-192 -25q-14 129 -93 125q-80 -2 -84 -162q0 -102 94 -227l41 -59q30 -42 37 -52 t33 -48l37 -52q41 -57 68 -109l26 -55q43 -94 43 -186q-4 -338 -245 -369v-217h-123v221q-236 41 -250 352z" />
-<glyph unicode="%" horiz-adv-x="1001" d="M55 911v437q0 110 82 156q33 18 90.5 18t97.5 -44t44 -87l4 -43v-437q0 -107 -81 -157q-32 -19 -77 -19q-129 0 -156 135zM158 0l553 1505h131l-547 -1505h-137zM178 911q-4 -55 37 -55q16 0 25.5 14.5t9.5 26.5v451q2 55 -35 55q-18 0 -27.5 -13.5t-9.5 -27.5v-451z M631 158v436q0 108 81 156q33 20 79 20q125 0 153 -135l4 -41v-436q0 -110 -80 -156q-32 -18 -90.5 -18t-98.5 43t-44 88zM754 158q-4 -57 37 -58q37 0 34 58v436q2 55 -34 55q-18 0 -27.5 -13t-9.5 -28v-450z" />
-<glyph unicode="&#x26;" horiz-adv-x="854" d="M49 304q0 126 44 225.5t126 222.5q-106 225 -106 442v18q0 94 47 180q70 130 223 130q203 0 252 -215q14 -61 12 -113q0 -162 -205 -434q76 -174 148 -285q33 96 47 211l176 -33q-16 -213 -92 -358q55 -63 92 -76v-235q-23 0 -86 37.5t-123 101.5q-123 -139 -252 -139 t-216 97t-87 223zM263 325.5q1 -65.5 28.5 -107.5t78.5 -42t117 86q-88 139 -174 295q-18 -30 -34.5 -98t-15.5 -133.5zM305 1194q0 -111 55 -246q101 156 101 252q-2 2 0 15.5t-2 36t-11 42.5q-19 52 -61.5 52t-62 -38t-19.5 -75v-39z" />
-<glyph unicode="'" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="(" horiz-adv-x="561" d="M66 645q0 143 29.5 292.5t73.5 261.5q92 235 159 343l30 47l162 -84q-38 -53 -86.5 -148t-82.5 -189.5t-61.5 -238t-27.5 -284.5t26.5 -282.5t64.5 -240.5q80 -207 141 -296l26 -39l-162 -84q-41 61 -96 173t-94 217.5t-70.5 257t-31.5 294.5z" />
-<glyph unicode=")" horiz-adv-x="561" d="M41 -213q36 50 85.5 147t83.5 190t61.5 236.5t27.5 284.5t-26.5 282.5t-64.5 240.5q-78 205 -140 298l-27 39l162 84q41 -61 96 -173.5t94 -217t71 -257.5t32 -296t-30 -292.5t-74 -260.5q-92 -233 -159 -342l-30 -47z" />
-<glyph unicode="*" horiz-adv-x="677" d="M74 1251l43 148l164 -70l-19 176h154l-19 -176l164 70l43 -148l-172 -34l115 -138l-131 -80l-78 152l-76 -152l-131 80l115 138z" />
-<glyph unicode="+" horiz-adv-x="1060" d="M74 649v172h370v346h172v-346h371v-172h-371v-346h-172v346h-370z" />
-<glyph unicode="," horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="-" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="." horiz-adv-x="321" d="M53 0v227h215v-227h-215z" />
-<glyph unicode="/" horiz-adv-x="720" d="M8 -147l543 1652h162l-537 -1652h-168z" />
-<glyph unicode="0" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="1" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="2" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="3" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="4" horiz-adv-x="684" d="M25 328v194l323 983h221v-983h103v-194h-103v-328h-202v328h-342zM213 522h154v516h-13z" />
-<glyph unicode="5" horiz-adv-x="704" d="M74 438h221v-59q0 -115 14.5 -159t52 -44t53 45t15.5 156v336q0 111 -70 110q-33 0 -59.5 -40t-26.5 -70h-186v792h535v-219h-344v-313q74 55 127 51q78 0 133 -40t77 -100q35 -98 35 -171v-336q0 -393 -289 -393q-78 0 -133 29.5t-84.5 71.5t-46.5 109q-24 98 -24 244z " />
-<glyph unicode="6" horiz-adv-x="700" d="M66 309v856q0 356 288.5 356.5t288.5 -356.5v-94h-221q0 162 -11.5 210t-53.5 48t-56 -37t-14 -127v-268q59 37 124.5 37t119 -36t75.5 -93q37 -92 37 -189v-307q0 -90 -42 -187q-26 -61 -89 -99.5t-157.5 -38.5t-158 38.5t-88.5 99.5q-42 98 -42 187zM287 244 q0 -20 17.5 -44t49 -24t50 24.5t18.5 43.5v450q0 18 -18.5 43t-49 25t-48 -20.5t-19.5 -41.5v-456z" />
-<glyph unicode="7" horiz-adv-x="589" d="M8 1286v219h557v-221l-221 -1284h-229l225 1286h-332z" />
-<glyph unicode="8" horiz-adv-x="696" d="M53 322v176q0 188 115 297q-102 102 -102 276v127q0 213 147 293q57 31 135 31t135.5 -31t84 -71t42.5 -93q21 -66 21 -129v-127q0 -174 -103 -276q115 -109 115 -297v-176q0 -222 -153 -306q-60 -32 -142 -32t-141.5 32.5t-88 73.5t-44.5 96q-21 69 -21 136zM269 422 q1 -139 16.5 -187.5t57.5 -48.5t59.5 30t21.5 71t4 158t-13.5 174t-66.5 57t-66.5 -57.5t-12.5 -196.5zM284 1116q-1 -123 11 -173t53 -50t53.5 50t12.5 170t-12.5 167t-51.5 47t-52 -44t-14 -167z" />
-<glyph unicode="9" horiz-adv-x="700" d="M57 340v94h222q0 -162 11 -210t53 -48t56.5 37t14.5 127v283q-59 -37 -125 -37t-119 35.5t-76 92.5q-37 96 -37 189v293q0 87 43 188q25 60 88.5 99t157.5 39t157.5 -39t88.5 -99q43 -101 43 -188v-856q0 -356 -289 -356t-289 356zM279 825q0 -18 18 -42.5t49 -24.5 t48.5 20.5t19.5 40.5v443q0 20 -17.5 43.5t-49.5 23.5t-50 -24.5t-18 -42.5v-437z" />
-<glyph unicode=":" horiz-adv-x="362" d="M74 0v227h215v-227h-215zM74 893v227h215v-227h-215z" />
-<glyph unicode=";" horiz-adv-x="362" d="M74 0v227h215v-227l-113 -266h-102l71 266h-71zM74 893v227h215v-227h-215z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="=" horiz-adv-x="1058" d="M74 477v172h911v-172h-911zM74 864v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="?" horiz-adv-x="645" d="M25 1260q24 67 78 131q105 128 235 122q82 -2 138 -33.5t82 -81.5q46 -88 46 -170.5t-80 -219.5l-57 -96q-18 -32 -42 -106.5t-24 -143.5v-256h-190v256q0 102 24.5 195t48 140t65.5 118t50 105t-9 67.5t-60 34.5t-78 -48t-49 -98zM199 0h215v227h-215v-227z" />
-<glyph unicode="@" horiz-adv-x="872" d="M66 303v889q0 97 73 200q39 56 117 93t184.5 37t184 -37t116.5 -93q74 -105 74 -200v-793h-164l-20 56q-14 -28 -46 -48t-67 -20q-145 0 -145 172v485q0 170 145 170q71 0 113 -67v45q0 51 -45 104.5t-145.5 53.5t-145.5 -53.5t-45 -104.5v-889q0 -53 44 -103t153.5 -50 t160.5 63l152 -86q-109 -143 -320 -143q-106 0 -184 35.5t-117 90.5q-73 102 -73 193zM535 573q0 -53 48 -53t48 53v455q0 53 -48 53t-48 -53v-455z" />
-<glyph unicode="A" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="B" horiz-adv-x="745" d="M82 0v1505h194q205 0 304.5 -91t99.5 -308q0 -106 -29.5 -175t-107.5 -136q14 -5 47 -38.5t54 -71.5q52 -97 52 -259q0 -414 -342 -426h-272zM303 219q74 0 109 31q55 56 55 211t-63 195q-42 26 -93 26h-8v-463zM303 885q87 0 119 39q45 55 45 138t-14.5 124t-30.5 60.5 t-45 28.5q-35 11 -74 11v-401z" />
-<glyph unicode="C" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175z" />
-<glyph unicode="D" horiz-adv-x="761" d="M82 0v1505h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174zM303 221q117 0 140.5 78t23.5 399v111q0 322 -23.5 398.5t-140.5 76.5v-1063z" />
-<glyph unicode="E" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506z" />
-<glyph unicode="F" horiz-adv-x="616" d="M82 0v1505h526v-227h-305v-395h205v-228h-205v-655h-221z" />
-<glyph unicode="G" horiz-adv-x="737" d="M67 271.5q0 26.5 1 37.5v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-231h-221v231q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-905q0 -46 19.5 -78.5t54 -32.5t53 28t18.5 54l2 29v272h-88v187h309v-750h-131l-26 72 q-70 -88 -172 -88q-203 0 -250 213q-11 48 -11 74.5z" />
-<glyph unicode="H" horiz-adv-x="778" d="M82 0v1505h221v-622h172v622h221v-1505h-221v655h-172v-655h-221z" />
-<glyph unicode="I" horiz-adv-x="385" d="M82 0v1505h221v-1505h-221z" />
-<glyph unicode="J" horiz-adv-x="423" d="M12 -14v217q4 0 12.5 -1t29 2t35.5 12t28.5 34.5t13.5 62.5v1192h221v-1226q0 -137 -74 -216q-74 -78 -223 -78h-4q-19 0 -39 1z" />
-<glyph unicode="K" horiz-adv-x="768" d="M82 0v1505h221v-526h8l195 526h215l-203 -495l230 -1010h-216l-153 655l-6 31h-6l-64 -154v-532h-221z" />
-<glyph unicode="L" horiz-adv-x="604" d="M82 0v1505h221v-1300h293v-205h-514z" />
-<glyph unicode="M" horiz-adv-x="991" d="M82 0v1505h270l131 -688l11 -80h4l10 80l131 688h270v-1505h-204v1010h-13l-149 -1010h-94l-142 946l-8 64h-12v-1010h-205z" />
-<glyph unicode="N" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203z" />
-<glyph unicode="O" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="P" horiz-adv-x="720" d="M82 0v1505h221q166 0 277.5 -105.5t111.5 -345t-111.5 -346t-277.5 -106.5v-602h-221zM303 827q102 0 134 45.5t32 175.5t-33 181t-133 51v-453z" />
-<glyph unicode="Q" horiz-adv-x="729" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -94 -45 -182q33 -43 88 -53v-189q-160 0 -227 117q-55 -18 -125 -18t-130 33.5t-88 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887 q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="R" horiz-adv-x="739" d="M82 0v1505h221q377 0 377 -434q0 -258 -123 -342l141 -729h-221l-115 635h-59v-635h-221zM303 840q117 0 149 98q15 49 15 125t-15.5 125t-45.5 68q-44 30 -103 30v-446z" />
-<glyph unicode="S" horiz-adv-x="702" d="M37 422l217 20q0 -256 104 -256q90 0 91 166q0 59 -32 117.5t-45 79.5l-54 79q-40 58 -77 113t-73.5 117t-68 148.5t-31.5 162.5q0 139 71.5 245t216.5 108h10q88 0 152 -36t94 -100q54 -120 54 -264l-217 -20q0 217 -89 217q-75 -2 -75 -146q0 -59 23 -105 q32 -66 58 -104l197 -296q31 -49 67 -139.5t36 -166.5q0 -378 -306 -378h-2q-229 0 -290 188q-31 99 -31 250z" />
-<glyph unicode="T" horiz-adv-x="647" d="M4 1278v227h639v-227h-209v-1278h-221v1278h-209z" />
-<glyph unicode="U" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175z" />
-<glyph unicode="V" horiz-adv-x="716" d="M18 1505h215l111 -827l8 -64h13l118 891h215l-229 -1505h-221z" />
-<glyph unicode="W" horiz-adv-x="1036" d="M25 1505h204l88 -782l5 -49h16l100 831h160l100 -831h17l92 831h205l-203 -1505h-172l-115 801h-8l-115 -801h-172z" />
-<glyph unicode="X" horiz-adv-x="737" d="M16 0l244 791l-240 714h218l120 -381l7 -18h8l127 399h217l-240 -714l244 -791h-217l-127 449l-4 18h-8l-132 -467h-217z" />
-<glyph unicode="Y" horiz-adv-x="700" d="M14 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641z" />
-<glyph unicode="Z" horiz-adv-x="626" d="M20 0v238l347 1048h-297v219h536v-219l-352 -1067h352v-219h-586z" />
-<glyph unicode="[" horiz-adv-x="538" d="M82 -213v1718h399v-196h-202v-1325h202v-197h-399z" />
-<glyph unicode="\" horiz-adv-x="792" d="M8 1692h162l614 -1872h-168z" />
-<glyph unicode="]" horiz-adv-x="538" d="M57 -16h203v1325h-203v196h400v-1718h-400v197z" />
-<glyph unicode="^" horiz-adv-x="1101" d="M53 809l381 696h234l381 -696h-199l-299 543l-299 -543h-199z" />
-<glyph unicode="_" horiz-adv-x="1210" d="M74 -154h1063v-172h-1063v172z" />
-<glyph unicode="`" horiz-adv-x="1024" d="M293 1489h215l106 -184h-159z" />
-<glyph unicode="a" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="b" horiz-adv-x="686" d="M82 0v1505h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-74h-207zM289 246q0 -29 19.5 -48.5t42 -19.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -21.5t-19.5 -46.5v-628z" />
-<glyph unicode="c" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331z" />
-<glyph unicode="d" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v458h207v-1505h-207v74q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 19.5t19.5 48.5v628q0 25 -19.5 46.5t-42 21.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="e" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="f" horiz-adv-x="475" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-65 0 -65 -175v-5v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="g" horiz-adv-x="700" d="M12 -184q0 94 162 170q-125 35 -125 149q0 45 40 93t89 75q-51 35 -80.5 95.5t-34.5 105.5l-4 43v305q0 35 16.5 91t41 94t79 69t126.5 31q135 0 206 -103q102 102 170 103v-185q-72 0 -120 -24l10 -70v-317q0 -37 -17.5 -90.5t-42 -90t-79 -66.5t-104.5 -30t-62 2 q-29 -25 -29 -46t11 -33.5t42 -20.5t45.5 -10t65.5 -10.5t95 -21.5t89 -41q96 -60 96 -205t-103 -212q-100 -65 -250 -65h-9q-156 2 -240 50t-84 165zM213 -150q0 -77 132 -77h3q59 0 108.5 19t49.5 54t-20.5 52.5t-90.5 29.5l-106 21q-76 -43 -76 -99zM262 509 q0 -17 15.5 -45t44.5 -28q63 6 63 101v307q-2 0 0 10q1 3 1 7q0 8 -3 19q-4 15 -9 30q-11 36 -46 36t-50.5 -25.5t-15.5 -52.5v-359z" />
-<glyph unicode="h" horiz-adv-x="690" d="M82 0v1505h207v-479l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="i" horiz-adv-x="370" d="M82 0v1120h207v-1120h-207zM82 1298v207h207v-207h-207z" />
-<glyph unicode="j" horiz-adv-x="364" d="M-45 -182q29 -8 57 -8q64 0 64 142v1168h207v-1149q0 -186 -51 -266q-23 -35 -71 -62.5t-115 -27.5t-91 12v191zM76 1298v207h207v-207h-207z" />
-<glyph unicode="k" horiz-adv-x="641" d="M82 0v1505h207v-714h10l113 329h186l-149 -364l188 -756h-199l-102 453l-4 16h-10l-33 -82v-387h-207z" />
-<glyph unicode="l" horiz-adv-x="370" d="M82 0v1505h207v-1505h-207z" />
-<glyph unicode="m" horiz-adv-x="1021" d="M82 0v1120h207v-94q2 0 33 30q80 81 139 81q100 0 139 -125q125 125 194.5 125t109.5 -69t40 -150v-918h-194v887q-1 49 -56 49q-41 0 -78 -53v-883h-194v887q0 49 -55 49q-41 0 -78 -53v-883h-207z" />
-<glyph unicode="n" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="o" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="p" horiz-adv-x="686" d="M82 -385v1505h207v-73q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="q" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v73h207v-1505h-207v459q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 21.5t19.5 46.5v628q0 29 -19.5 48.5t-42 19.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="r" horiz-adv-x="503" d="M82 0v1120h207v-125q8 41 58.5 91.5t148.5 50.5v-230q-34 11 -77 11t-86.5 -39t-43.5 -101v-778h-207z" />
-<glyph unicode="s" horiz-adv-x="630" d="M37 326h192q0 -170 97 -170q71 0 71 131q0 78 -129 202q-68 66 -98.5 99t-64 101.5t-33.5 134t12 114.5t39 95q59 100 201 104h11q161 0 211 -105q42 -86 42 -198h-193q0 131 -67 131q-63 -2 -64 -131q0 -33 23.5 -73t45 -62.5t66.5 -65.5q190 -182 191 -342 q0 -123 -64.5 -215t-199.5 -92q-197 0 -260 170q-29 76 -29 172z" />
-<glyph unicode="t" horiz-adv-x="501" d="M20 934v186h105v277h207v-277h141v-186h-141v-557q0 -184 65 -184l76 8v-203q-45 -14 -112 -14t-114.5 28.5t-70 64.5t-34.5 96q-17 79 -17 187v574h-105z" />
-<glyph unicode="u" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5z" />
-<glyph unicode="v" horiz-adv-x="602" d="M16 1120h201l68 -649l8 -72h16l76 721h201l-183 -1120h-204z" />
-<glyph unicode="w" horiz-adv-x="905" d="M20 1120h189l65 -585l9 -64h12l96 649h123l86 -585l10 -64h13l73 649h189l-166 -1120h-172l-80 535l-10 63h-8l-91 -598h-172z" />
-<glyph unicode="x" horiz-adv-x="618" d="M16 0l193 578l-176 542h194l74 -262l6 -31h4l6 31l74 262h195l-176 -542l192 -578h-201l-84 283l-6 30h-4l-6 -30l-84 -283h-201z" />
-<glyph unicode="y" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5z" />
-<glyph unicode="z" horiz-adv-x="532" d="M12 0v168l285 764h-240v188h459v-168l-285 -764h285v-188h-504z" />
-<glyph unicode="{" horiz-adv-x="688" d="M61 453v163q72 0 102 49.5t30 90.5v397q0 223 96 298t342 71v-172q-135 2 -188.5 -38t-53.5 -159v-397q0 -143 -127 -221q127 -82 127 -222v-397q0 -119 53.5 -159t188.5 -38v-172q-246 -4 -342 71t-96 298v397q0 57 -41 97.5t-91 42.5z" />
-<glyph unicode="|" horiz-adv-x="356" d="M82 -512v2204h192v-2204h-192z" />
-<glyph unicode="}" horiz-adv-x="688" d="M57 -281q135 -2 188.5 38t53.5 159v397q0 139 127 222q-127 78 -127 221v397q0 119 -53 159t-189 38v172q246 4 342.5 -71t96.5 -298v-397q0 -63 41 -101.5t90 -38.5v-163q-72 -4 -101.5 -52.5t-29.5 -87.5v-397q0 -223 -96.5 -298t-342.5 -71v172z" />
-<glyph unicode="~" horiz-adv-x="1280" d="M113 1352q35 106 115 200q34 41 94.5 74t121 33t116.5 -18.5t82 -33t83 -51.5q106 -72 174 -71q109 0 178 153l13 29l135 -57q-63 -189 -206 -276q-56 -34 -120 -34q-121 0 -272 101q-115 74 -178.5 74t-113.5 -45.5t-69 -90.5l-18 -45z" />
-<glyph unicode="&#xa1;" horiz-adv-x="387" d="M74 -385l55 1100h129l55 -1100h-239zM86 893v227h215v-227h-215z" />
-<glyph unicode="&#xa2;" horiz-adv-x="636" d="M66 508v489q0 297 208 328v242h123v-244q98 -16 144.5 -88t46.5 -227v-88h-189v135q0 90 -72.5 90t-72.5 -90v-604q0 -90 72 -91q74 0 73 91v155h189v-108q0 -156 -46 -228.5t-145 -89.5v-303h-123v301q-209 31 -208 330z" />
-<glyph unicode="&#xa3;" horiz-adv-x="817" d="M4 63q8 20 23.5 53.5t70 91.5t117.5 68q37 111 37 189t-31 184h-188v137h147l-6 21q-78 254 -78 333t15.5 140t48.5 116q72 122 231 126q190 4 267 -126q65 -108 65 -276h-213q0 201 -115 197q-47 -2 -68.5 -51t-21.5 -139.5t70 -315.5l6 -25h211v-137h-174 q25 -100 24.5 -189t-57.5 -204q16 -8 44 -24q59 -35 89 -35q74 4 82 190l188 -22q-12 -182 -81.5 -281.5t-169.5 -99.5q-51 0 -143.5 51t-127.5 51t-63.5 -25.5t-40.5 -52.5l-12 -24z" />
-<glyph unicode="&#xa5;" horiz-adv-x="720" d="M25 1505h217l110 -481l6 -14h4l7 14l110 481h217l-196 -753h147v-138h-176v-137h176v-137h-176v-340h-221v340h-176v137h176v137h-176v138h147z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1024" d="M272 1305v200h191v-200h-191zM561 1305v200h191v-200h-191z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM627 487v531q0 122 97 174q40 22 95 22 q147 0 182 -147l7 -49v-125h-138v142q0 11 -12 28.5t-37 17.5q-47 -2 -49 -63v-531q0 -63 49 -63q53 2 49 63v125h138v-125q0 -68 -40 -127q-18 -26 -57 -47.5t-108.5 -21.5t-117.5 49t-54 98z" />
-<glyph unicode="&#xaa;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xad;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#xae;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM625 313v879h196q231 0 232 -258 q0 -76 -16.5 -125t-71.5 -96l106 -400h-151l-95 365h-55v-365h-145zM770 805h45q43 0 65.5 21.5t27.5 45t5 61.5t-5 62.5t-27.5 46t-65.5 21.5h-45v-258z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M313 1315v162h398v-162h-398z" />
-<glyph unicode="&#xb2;" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="&#xb3;" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1024" d="M410 1305l106 184h215l-162 -184h-159z" />
-<glyph unicode="&#xb7;" horiz-adv-x="215" d="M0 649v228h215v-228h-215z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1024" d="M426 -111h172v-141l-45 -133h-104l40 133h-63v141z" />
-<glyph unicode="&#xb9;" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="&#xba;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="&#xbf;" horiz-adv-x="645" d="M41 -106q0 82 80 219l57 95q18 32 42 106.5t24 144.5v256h190v-256q0 -102 -24.5 -195.5t-48 -140.5t-65.5 -118t-50 -104.5t9 -67.5t60 -35t78 48.5t49 98.5l179 -84q-24 -66 -78 -132q-104 -126 -236 -122q-163 4 -220 115q-46 90 -46 172zM231 893v227h215v-227h-215z " />
-<glyph unicode="&#xc0;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM141 1823h215l107 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc1;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM293 1638l106 185h215l-161 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc2;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM133 1638l141 185h220l141 -185h-189l-63 72l-61 -72h-189zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc3;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM184 1632v152q49 39 95.5 39t104.5 -18.5t100.5 -19.5t97.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-98 19.5t-102 -33zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc4;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM143 1638v201h191v-201h-191zM307 541h152l-64 475l-6 39h-12zM432 1638v201h191v-201h-191z" />
-<glyph unicode="&#xc5;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM231 1761.5q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM307 541h152l-64 475l-6 39h-12zM309 1761.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50 t-23.5 50t-52.5 21.5t-52.5 -21.5t-23.5 -50z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1099" d="M16 0l420 1505h623v-227h-285v-395h205v-242h-205v-414h285v-227h-506v307h-227l-90 -307h-220zM393 541h160v514h-10z" />
-<glyph unicode="&#xc7;" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM268 -111v-141h64l-41 -133h104l45 133v141h-172z" />
-<glyph unicode="&#xc8;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM111 1823h215l106 -185h-160z" />
-<glyph unicode="&#xc9;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM236 1638l106 185h215l-162 -185h-159z" />
-<glyph unicode="&#xca;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM84 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xcb;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM94 1638v201h191v-201h-191zM383 1638v201h190v-201h-190z" />
-<glyph unicode="&#xcc;" horiz-adv-x="401" d="M-6 1823h215l106 -185h-159zM98 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcd;" horiz-adv-x="401" d="M82 0v1505h221v-1505h-221zM86 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xce;" horiz-adv-x="370" d="M-66 1638l142 185h219l141 -185h-188l-64 72l-61 -72h-189zM74 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcf;" horiz-adv-x="372" d="M-53 1638v201h190v-201h-190zM76 0v1505h221v-1505h-221zM236 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd0;" horiz-adv-x="761" d="M20 655v228h62v622h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174v655h-62zM303 221q117 0 141.5 81t22.5 452q2 371 -22.5 450.5t-141.5 79.5v-401h84v-228h-84v-434z " />
-<glyph unicode="&#xd1;" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203zM207 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39t-102.5 19.5t-100 19.5t-99.5 -33z" />
-<glyph unicode="&#xd2;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM121 1823h215l106 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd3;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM285 1638l106 185h215l-162 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5 t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd4;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM113 1638l141 185h219l141 -185h-188l-64 72l-61 -72h-188zM289 309q0 -46 19.5 -78 t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd5;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM164 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39 t-102.5 19.5t-100 19.5t-99.5 -33zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd6;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM123 1638v201h190v-201h-190zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887zM412 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd8;" d="M59 -20l47 157q-36 74 -36 148l-2 24v887q0 42 17 106t45 107t88.5 78t148 35t153.5 -43l15 47h122l-45 -150q43 -84 43 -155l2 -25v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-150.5 -34.5t-153 43l-15 -47h-129zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v488zM289 727l147 479q-8 100 -74 101q-35 0 -53 -28t-18 -54l-2 -29v-469z" />
-<glyph unicode="&#xd9;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM145 1823h215l107 -185h-160z" />
-<glyph unicode="&#xda;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM307 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xdb;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM125 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xdc;" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175zM135 1638v201h191v-201h-191zM424 1638v201h190v-201h-190z" />
-<glyph unicode="&#xdd;" horiz-adv-x="704" d="M16 1505l226 -864v-641h221v641l225 864h-217l-111 -481l-6 -14h-4l-6 14l-111 481h-217zM254 1638l106 185h215l-161 -185h-160z" />
-<glyph unicode="&#xde;" d="M82 0v1505h219v-241h2q166 0 277.5 -105.5t111.5 -345.5t-111.5 -346.5t-277.5 -106.5v-360h-221zM303 586q102 0 134 45t32 175t-33 181t-133 51v-452z" />
-<glyph unicode="&#xdf;" horiz-adv-x="733" d="M66 0v1235q0 123 70.5 205t206.5 82t204.5 -81t68.5 -197t-88 -181q152 -88 152 -488q0 -362 -87 -475q-46 -59 -102.5 -79.5t-144.5 -20.5v193q45 0 70 25q57 57 57 357q0 316 -57 377q-25 27 -70 27v141q35 0 60.5 33t25.5 84q0 100 -86 100q-74 0 -74 -102v-1235h-206 z" />
-<glyph unicode="&#xe0;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1489h215 l107 -184h-160zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe1;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xe2;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM90 1305 l141 184h220l141 -184h-189l-63 71l-61 -71h-189zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe3;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM143 1305v151 q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe4;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1305v200 h191v-200h-191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM391 1305v200h191v-200h-191z" />
-<glyph unicode="&#xe5;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM188 1421.5 q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM266 1421.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50t-23.5 50t-52.5 21.5t-52.5 -21.5 t-23.5 -50z" />
-<glyph unicode="&#xe6;" horiz-adv-x="989" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t197.5 88q84 0 152 -52q66 51 162 52q199 0 251 -197q14 -51 15 -92v-326h-342v-256q0 -60 38 -88q17 -12 38 -12q70 10 73 113v122h193v-129 q0 -37 -16.5 -93t-41 -95t-80 -69.5t-130.5 -30.5q-158 0 -226 131q-102 -131 -221 -131q-59 0 -112.5 60t-53.5 191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM588 684h149v158q0 48 -19.5 81t-53 33t-53 -28.5t-21.5 -57.5l-2 -28v-158z " />
-<glyph unicode="&#xe7;" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331zM238 -111v-141h63l-41 -133h105l45 133v141h-172z " />
-<glyph unicode="&#xe8;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM102 1489h215l107 -184 h-160zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xe9;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xea;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM80 1305l141 184h219 l142 -184h-189l-63 71l-62 -71h-188zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xeb;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM90 1305v200h191v-200 h-191zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-33 1489h215l107 -184h-160zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M82 0h207v1120h-207v-1120zM82 1305l106 184h215l-161 -184h-160z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-66 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xef;" horiz-adv-x="372" d="M-53 1305v200h190v-200h-190zM82 0v1120h207v-1120h-207zM236 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf0;" horiz-adv-x="673" d="M76 279v579q0 279 172 279q63 0 155 -78q-12 109 -51 203l-82 -72l-55 63l100 88l-45 66l109 100q25 -27 53 -61l94 82l56 -66l-101 -88q125 -201 125 -446v-656q0 -102 -56 -188q-26 -39 -80 -69.5t-129 -30.5t-130 30.5t-80 73.5q-53 91 -53 160zM270 267.5 q-2 -11.5 2 -29t10 -34.5q16 -38 58 -38q70 10 72 113v563q-2 0 0 11t-2 28.5t-10 34.5q-16 40 -60 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207zM147 1305v151q49 39 95.5 39t105 -18.5t97 -19.5t100.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#xf2;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM98 1489h215l107 -184h-160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf3;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5 t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM260 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xf4;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM78 1305l141 184h219l142 -184h-189l-63 71l-62 -71h-188zM258 267.5q-2 -11.5 2 -29 t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf5;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM131 1305v151q49 39 95.5 39t104.5 -18.5t98.5 -19.5t98.5 32v-152q-51 -39 -95 -39 t-102 19.5t-101 19.5t-99 -32zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf6;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM90 1305v200h191v-200h-191zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf8;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t118 32t117.5 -19l21 80h75l-30 -121q88 -84 94 -229v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-120.5 -30.5t-112 16l-20 -78h-80l31 121q-41 39 -64.5 97.5t-25.5 97.5zM258 436l125 486q-18 35 -55 34q-68 -10 -70 -114 v-406zM274 197q17 -31 54 -31q70 10 71 113v403z" />
-<glyph unicode="&#xf9;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM113 1489h215l106 -184h-160z" />
-<glyph unicode="&#xfa;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM274 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfb;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM94 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189z" />
-<glyph unicode="&#xfc;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM106 1305v200h191v-200h-191zM395 1305v200h191v-200h-191z" />
-<glyph unicode="&#xfd;" horiz-adv-x="634" d="M25 1120l190 -1153q0 -68 -36 -123t-97 -61l-49 4v-184q70 -4 92 -4q115 0 192.5 95t94.5 222l198 1204h-202l-82 -688l-4 -57h-9l-4 57l-82 688h-202zM231 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfe;" horiz-adv-x="686" d="M82 -385v1890h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="&#xff;" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5zM78 1305v200h190v-200h-190zM367 1305v200h190v-200h-190z" />
-<glyph unicode="&#x152;" horiz-adv-x="983" d="M68 309v887q0 41 17 101.5t45 100.5t88.5 73.5t143.5 33.5h580v-227h-285v-395h205v-242h-205v-414h285v-227h-580q-84 0 -144 31.5t-88 78.5q-55 91 -60 169zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v901q-6 96 -74 97q-35 0 -53 -28t-18 -54l-2 -29 v-887z" />
-<glyph unicode="&#x153;" horiz-adv-x="995" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t145.5 32t156 -60q66 59 170 60q199 0 252 -197q14 -51 14 -92v-326h-342v-250q0 -46 22.5 -76t53.5 -30q70 10 73 113v122h193v-129q0 -37 -16.5 -93t-41 -95t-80 -69.5t-146 -30.5t-154.5 57q-68 -57 -156 -57t-143.5 30.5 t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM594 684h149v158q0 48 -19 81t-58 33t-55.5 -37.5t-16.5 -70.5v-164z" />
-<glyph unicode="&#x178;" horiz-adv-x="704" d="M16 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641zM113 1638v201h190v-201h-190zM401 1638v201h191v-201h-191z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1021" d="M260 1305l141 184h220l141 -184h-189l-63 71l-61 -71h-189z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1024" d="M313 1305v151q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#x2000;" horiz-adv-x="952" />
-<glyph unicode="&#x2001;" horiz-adv-x="1905" />
-<glyph unicode="&#x2002;" horiz-adv-x="952" />
-<glyph unicode="&#x2003;" horiz-adv-x="1905" />
-<glyph unicode="&#x2004;" horiz-adv-x="635" />
-<glyph unicode="&#x2005;" horiz-adv-x="476" />
-<glyph unicode="&#x2006;" horiz-adv-x="317" />
-<glyph unicode="&#x2007;" horiz-adv-x="317" />
-<glyph unicode="&#x2008;" horiz-adv-x="238" />
-<glyph unicode="&#x2009;" horiz-adv-x="381" />
-<glyph unicode="&#x200a;" horiz-adv-x="105" />
-<glyph unicode="&#x2010;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2011;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2012;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2013;" horiz-adv-x="806" d="M74 649v195h659v-195h-659z" />
-<glyph unicode="&#x2014;" horiz-adv-x="972" d="M74 649v195h825v-195h-825z" />
-<glyph unicode="&#x2018;" horiz-adv-x="309" d="M49 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x2019;" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="&#x201a;" horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="&#x201c;" horiz-adv-x="624" d="M53 1012v227l113 266h102l-71 -266h71v-227h-215zM356 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x201d;" horiz-adv-x="624" d="M53 1012l72 266h-72v227h215v-227l-112 -266h-103zM356 1012l72 266h-72v227h215v-227l-112 -266h-103z" />
-<glyph unicode="&#x201e;" horiz-adv-x="624" d="M53 0v227h215v-227l-112 -266h-103l72 266h-72zM356 0v227h215v-227l-112 -266h-103l72 266h-72z" />
-<glyph unicode="&#x2022;" horiz-adv-x="663" d="M82 815q0 104 72.5 177t177 73t177.5 -72.5t73 -177t-73 -177.5t-177 -73t-177 73t-73 177z" />
-<glyph unicode="&#x2026;" horiz-adv-x="964" d="M53 0v227h215v-227h-215zM375 0v227h215v-227h-215zM696 0v227h215v-227h-215z" />
-<glyph unicode="&#x202f;" horiz-adv-x="381" />
-<glyph unicode="&#x2039;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="&#x203a;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="&#x205f;" horiz-adv-x="476" />
-<glyph unicode="&#x20ac;" horiz-adv-x="813" d="M53 547v137h107v137h-107v137h107v238q0 42 17.5 106t45 107t88 78t144.5 35t144 -34t88 -81q53 -90 61 -178l2 -33v-84h-207v84q-2 0 0 11.5t-3 27.5t-12 33q-18 39 -69 39q-70 -10 -78 -111v-238h233v-137h-233v-137h233v-137h-233v-238q0 -43 21.5 -76.5t59.5 -33.5 t58.5 27.5t20.5 56.5l2 26v84h207v-84q0 -38 -17.5 -104t-45.5 -109t-88 -77.5t-144 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175l-2 35v238h-107z" />
-<glyph unicode="&#x2122;" horiz-adv-x="937" d="M74 1401v104h321v-104h-104v-580h-113v580h-104zM440 821v684h138l67 -319h6l68 319h137v-684h-104v449l-78 -449h-51l-80 449v-449h-103z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 0v1120h1120v-1120h-1120z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2v-184q-41 12 -91 12t-69.5 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h358v-1120h-207v934h-151v-934h-207v934h-105z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2h164v-1505h-207v1329q-37 4 -67.5 4t-50 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="&#xfb03;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1120h207v-1120h-207zM1032 1298v207h207v-207h-207z" />
-<glyph unicode="&#xfb04;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1505h207v-1505h-207z" />
-</font>
-</defs></svg> 
diff --git a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.ttf b/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.woff b/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.woff
deleted file mode 100644
Binary files a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic-webfont.woff and /dev/null differ
diff --git a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic_license b/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic_license
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/lib/font/league_gothic_license
+++ /dev/null
@@ -1,2 +0,0 @@
-SIL Open Font License (OFL)
-http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/highlight/highlight.js b/docs/slides/ETH14/_support/reveal.js/plugin/highlight/highlight.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/highlight/highlight.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// START CUSTOM REVEAL.JS INTEGRATION
-(function() {
-	if( typeof window.addEventListener === 'function' ) {
-		var hljs_nodes = document.querySelectorAll( 'pre code' );
-
-		for( var i = 0, len = hljs_nodes.length; i < len; i++ ) {
-			var element = hljs_nodes[i];
-
-			// trim whitespace if data-trim attribute is present
-			if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) {
-				element.innerHTML = element.innerHTML.trim();
-			}
-
-			// Now escape html unless prevented by author
-			if( ! element.hasAttribute( 'data-noescape' )) {
-				element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
-			}
-
-			// re-highlight when focus is lost (for edited code)
-			element.addEventListener( 'focusout', function( event ) {
-				hljs.highlightBlock( event.currentTarget );
-			}, false );
-		}
-	}
-})();
-// END CUSTOM REVEAL.JS INTEGRATION
-
-// highlight.js build includes support for:
-// All languages in master + fsharp
-
-
-var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+(q.parentNode?q.parentNode.className:"")).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(r){function o(s){return(s&&s.source)||s}function p(t,s){return RegExp(o(t),"m"+(r.cI?"i":"")+(s?"g":""))}function q(z,x){if(z.compiled){return}z.compiled=true;var u=[];if(z.k){var s={};function A(B,t){t.split(" ").forEach(function(C){var D=C.split("|");s[D[0]]=[B,D[1]?Number(D[1]):1];u.push(D[0])})}z.lR=p(z.l||hljs.IR+"(?!\\.)",true);if(typeof z.k=="string"){A("keyword",z.k)}else{for(var y in z.k){if(!z.k.hasOwnProperty(y)){continue}A(y,z.k[y])}}z.k=s}if(x){if(z.bWK){z.b="\\b("+u.join("|")+")\\b(?!\\.)\\s*"}z.bR=p(z.b?z.b:"\\B|\\b");if(!z.e&&!z.eW){z.e="\\B|\\b"}if(z.e){z.eR=p(z.e)}z.tE=o(z.e)||"";if(z.eW&&x.tE){z.tE+=(z.e?"|":"")+x.tE}}if(z.i){z.iR=p(z.i)}if(z.r===undefined){z.r=1}if(!z.c){z.c=[]}for(var w=0;w<z.c.length;w++){if(z.c[w]=="self"){z.c[w]=z}q(z.c[w],z)}if(z.starts){q(z.starts,x)}var v=[];for(var w=0;w<z.c.length;w++){v.push(o(z.c[w].b))}if(z.tE){v.push(o(z.tE))}if(z.i){v.push(o(z.i))}z.t=v.length?p(v.join("|"),true):{exec:function(t){return null}}}q(r)}function d(E,F,C){function o(r,N){for(var M=0;M<N.c.length;M++){var L=N.c[M].bR.exec(r);if(L&&L.index==0){return N.c[M]}}}function s(L,r){if(L.e&&L.eR.test(r)){return L}if(L.eW){return s(L.parent,r)}}function t(r,L){return !C&&L.i&&L.iR.test(r)}function y(M,r){var L=G.cI?r[0].toLowerCase():r[0];return M.k.hasOwnProperty(L)&&M.k[L]}function H(){var L=l(w);if(!A.k){return L}var r="";var O=0;A.lR.lastIndex=0;var M=A.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=y(A,M);if(N){v+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=A.lR.lastIndex;M=A.lR.exec(L)}return r+L.substr(O)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function K(){return A.sL!==undefined?z():H()}function J(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){x+=L;w=""}else{if(M.eB){x+=l(r)+L;w=""}else{x+=L;w=r}}A=Object.create(M,{parent:{value:A}})}function D(L,r){w+=L;if(r===undefined){x+=K();return 0}var N=o(r,A);if(N){x+=K();J(N,r);return N.rB?0:r.length}var O=s(A,r);if(O){var M=A;if(!(M.rE||M.eE)){w+=r}x+=K();do{if(A.cN){x+="</span>"}B+=A.r;A=A.parent}while(A!=O.parent);if(M.eE){x+=l(r)}w="";if(O.starts){J(O.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw new Error('Illegal lexem "'+r+'" for mode "'+(A.cN||"<unnamed>")+'"')}w+=r;return r.length||1}var G=e[E];f(G);var A=G;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(F);if(!u){break}q=D(F.substr(p,u.index-p),u[0]);p=u.index+q}D(F.substr(p));return{r:B,keyword_count:v,value:x,language:E}}catch(I){if(I.message.indexOf("Illegal")!=-1){return{r:0,keyword_count:0,value:l(F)}}else{throw I}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s,false);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v,true):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.apache=function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,k:{keyword:"acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",literal:"on off"},c:[a.HCM,{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,{cN:"tag",b:"</?",e:">"},a.QSM]}}(hljs);hljs.LANGUAGES.applescript=function(a){var b=a.inherit(a.QSM,{i:""});var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bWK:true,k:"on",i:"[${=;\\n]",c:[e,d]}].concat(c),i:"//"}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);hljs.LANGUAGES.asciidoc=function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{4,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}}(hljs);hljs.LANGUAGES.avrasm=function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$"},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}}(hljs);hljs.LANGUAGES.axapta=function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"{",i:":",k:"class interface",c:[{cN:"inheritance",bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]}]}}(hljs);hljs.LANGUAGES.bash=function(a){var c={cN:"variable",b:/\$[\w\d#@][\w\d_]*/};var b={cN:"variable",b:/\$\{(.*?)\}/};var e={cN:"string",b:/"/,e:/"/,c:[a.BE,c,b,{cN:"variable",b:/\$\(/,e:/\)/,c:a.BE}],r:0};var d={cN:"string",b:/'/,e:/'/,r:0};return{l:/-?[a-z]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[{cN:"title",b:/\w[\w\d_]*/}],r:0},a.HCM,a.NM,e,d,c,b]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f={cN:"title",b:a};var e={cN:"subst",b:"#\\{",e:"}",k:b,};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",b:"'''",e:"'''",c:[c.BE]},{cN:"string",b:"'",e:"'",c:[c.BE],r:0},{cN:"string",b:'"""',e:'"""',c:[c.BE,e]},{cN:"string",b:'"',e:'"',c:[c.BE,e],r:0},{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*",r:0},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bWK:true,k:"class",e:"$",i:"[:\\[\\]]",c:[{bWK:true,k:"extends",eW:true,i:":",c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true}])}}(hljs);hljs.LANGUAGES.cpp=function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"<",e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.css=function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.d=function(x){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r={b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?',r:0};var f={cN:"string",b:'[rq]"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,t,j,m,s,e,g,d]}}(hljs);hljs.LANGUAGES.delphi=function(b){var f="and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure";var e="safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static";var a={cN:"comment",b:"{",e:"}",r:0};var g={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var d={cN:"string",b:"(#\\d+)+"};var h={cN:"function",bWK:true,e:"[:;]",k:"function constructor|10 destructor|10 procedure|10",c:[{cN:"title",b:b.IR},{cN:"params",b:"\\(",e:"\\)",k:f,c:[c,d]},a,g]};return{cI:true,k:f,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,g,b.CLCM,c,d,b.NM,h,{cN:"class",b:"=\\bclass\\b",e:"end;",k:e,c:[c,d,a,g,b.CLCM,h]}]}}(hljs);hljs.LANGUAGES.diff=function(a){return{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}if(e(l,k)){m=b.concat(m)}if(m.length){g.c=m}}return g}var d={cN:"filter",b:"\\|[A-Za-z]+\\:?",k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:'"',e:'"'}]};var b=[{cN:"template_comment",b:"{%\\s*comment\\s*%}",e:"{%\\s*endcomment\\s*%}"},{cN:"template_comment",b:"{#",e:"#}"},{cN:"template_tag",b:"{%",e:"%}",k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[d]},{cN:"variable",b:"{{",e:"}}",c:[d]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.dos=function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.fsharp=function(a){var b="'[a-zA-Z0-9_]+";return{k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun|10 function global if in inherit inline interface internal lazy let match member module mutable|10 namespace new null of open or override private public rec|10 return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"//",e:"$",rB:true},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bWK:true,e:"\\(|=|$",k:"type",c:[{cN:"title",b:a.UIR}]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"typeparam",b:"<",e:">",c:[{cN:"title",b:b}]},a.CLCM,a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.haml=function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(-#|/).*$",r:0},{b:"^\\s*-(?!#)",starts:{e:"\\n",sL:"ruby"},r:0},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+",r:0},{cN:"value",b:"[#\\.]\\w+",r:0},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,r:0,c:[{cN:"symbol",b:":\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,r:0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0}],r:10},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"},r:0}]}}(hljs);hljs.LANGUAGES.handlebars=function(c){function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}m=d.concat(m);if(m.length){g.c=m}}return g}var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";var e={cN:"variable",b:"[a-zA-Z.]+",k:b};var d=[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z .]+",k:b},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z .]+",k:b},{cN:"variable",b:"[a-zA-Z.]+",k:b}]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"},{b:"->|<-"}]}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",eE:true,i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,sL:"xml"}],r:0},{cN:"function",bWK:true,e:/{/,k:"function",c:[{cN:"title",b:/[A-Za-z$_][0-9A-Za-z$_]*/},{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.lasso=function(b){var a="[a-zA-Z_][a-zA-Z0-9_.]*|&[lg]t;";var c="<\\?(lasso(script)?|=)";return{cI:true,l:a,k:{literal:"true false none minimal full all infinity nan and or not bw ew cn lt lte gt gte eq neq ft rx nrx",built_in:"array date decimal duration integer map pair string tag xml null list queue set stack staticarray local var variable data global self inherited void",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require skip split_thread sum take thread to trait type where with yield"},c:[{cN:"preprocessor",b:"\\]|\\?>",r:0,starts:{cN:"markup",e:"\\[|"+c,rE:true}},{cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true}},{cN:"preprocessor",b:"\\[no_square_brackets|\\[/noprocess|"+c},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10},b.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},b.CBLCLM,b.CNM,b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",b:"#\\d+|[#$]"+a},{cN:"tag",b:"::",e:a},{cN:"attribute",b:"\\.\\.\\.|-"+b.UIR},{cN:"class",bWK:true,k:"define",eE:true,e:"\\(|=>",c:[{cN:"title",b:b.UIR+"=?"}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var l="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var m="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var k={cN:"shebang",b:"^#!",e:"$"};var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:m},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+m+" +"+m,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var n={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var o={cN:"keyword",b:"[:&]"+l};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,o,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,o,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={eW:true,r:0};j.c=[{cN:"title",b:l},f];f.c=[e,c,j,a].concat(d).concat([h,n,g,o]);return{i:"[^\\s]",c:d.concat([k,a,h,n,e,c,j])}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^    ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.mel=function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variable",b:"\\$\\d",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},a.CLCM,a.CBLCLM]}}(hljs);hljs.LANGUAGES.mizar=function(a){return{k:["environ vocabularies notations constructors definitions registrations theorems schemes requirements","begin end definition registration cluster existence pred func defpred deffunc theorem proof","let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from","be being by means equals implies iff redefine define now not or attr is mode suppose per cases set","thesis contradiction scheme reserve struct","correctness compatibility coherence symmetry assymetry reflexivity irreflexivity","connectedness uniqueness commutativity idempotence involutiveness projectivity"].join(" "),c:[{cN:"comment",b:"::",e:"$"}]}}(hljs);hljs.LANGUAGES.nginx=function(b){var c=[{cN:"variable",b:"\\$\\d+"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+b.UIR}];var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[b.HCM,{cN:"string",b:'"',e:'"',c:[b.BE].concat(c),r:0},{cN:"string",b:"'",e:"'",c:[b.BE].concat(c),r:0},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[b.BE].concat(c)},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[b.BE].concat(c)},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0}].concat(c)};return{c:[b.HCM,{b:b.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:b.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property self synchronized end synthesize id optional required nonatomic super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}(hljs);hljs.LANGUAGES.parser3=function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.profile=function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:a.UIR,r:0}],r:0}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var c=[{cN:"string",b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{cN:"string",b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{cN:"string",b:/(u|r|ur)'/,e:/'/,c:[a.BE],r:10},{cN:"string",b:/(u|r|ur)"/,e:/"/,c:[a.BE],r:10},{cN:"string",b:/(b|br)'/,e:/'/,c:[a.BE]},{cN:"string",b:/(b|br)"/,e:/"/,c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:/\(/,e:/\)/,c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:/:/,i:/[${=;\n]/,c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}])}}(hljs);hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);hljs.LANGUAGES.rib=function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}}(hljs);hljs.LANGUAGES.rsl=function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bWK:true,e:"\\(",k:"surface displacement light volume imager"},{cN:"shading",bWK:true,e:"\\(",k:"illuminate illuminance gather"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.ruleslanguage=function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEMASK|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN DELETE SAVE SAVE_UPDATE CLEAR DETERMINANT LABEL REPORT REVENUE ABORT CALL DONE LEAVE EACH IN LIST NOVALUE FROM TOTAL CHARGE BLOCK AND OR CSV_FILE BILL_PERIOD RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ABORT WARN NUMDAYS RATE_CODE READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}}(hljs);hljs.LANGUAGES.rust=function(b){var d={cN:"title",b:b.UIR};var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char check claim comm const cont copy dir do drop else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut priv pub pure ref return self static str struct task true trait type u16 u32 u64 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b.QSM,{i:null}),b.ASM,c,{cN:"function",bWK:true,e:"(\\(|<)",k:"fn",c:[d]},{cN:"preprocessor",b:"#\\[",e:"\\]"},{bWK:true,e:"(=|<)",k:"type",c:[d],i:"\\S"},{bWK:true,e:"({|<)",k:"trait enum",c:[d],i:"\\S"}]}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.scss=function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include for extend charset import media page font-face namespace",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*"+b+"(\\s+"+b+")*\\s*\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,c:[{cN:"operator",b:"(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.tex=function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",i:"[^,:\\n\\s\\.]",c:[{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.vbnet=function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"(//|endif|gosub|variant|wend)",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}}(hljs);hljs.LANGUAGES.vbscript=function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$"},a.CNM]}}(hljs);hljs.LANGUAGES.vhdl=function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/leap/leap.js b/docs/slides/ETH14/_support/reveal.js/plugin/leap/leap.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/leap/leap.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2013, Leap Motion, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Version 0.2.0 - http://js.leapmotion.com/0.2.0/leap.min.js
- * Grab latest versions from http://js.leapmotion.com/
- */
-
-!function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){var chooseProtocol=require("./protocol").chooseProtocol,EventEmitter=require("events").EventEmitter,_=require("underscore");var BaseConnection=module.exports=function(opts){this.opts=_.defaults(opts||{},{host:"127.0.0.1",enableGestures:false,port:6437,enableHeartbeat:true,heartbeatInterval:100,requestProtocolVersion:3});this.host=opts.host;this.port=opts.port;this.on("ready",function(){this.enableGestures(this.opts.enableGestures);if(this.opts.enableHeartbeat)this.startHeartbeat()});this.on("disconnect",function(){if(this.opts.enableHeartbeat)this.stopHeartbeat()});this.heartbeatTimer=null};BaseConnection.prototype.getUrl=function(){return"ws://"+this.host+":"+this.port+"/v"+this.opts.requestProtocolVersion+".json"};BaseConnection.prototype.sendHeartbeat=function(){if(this.protocol){this.setHeartbeatState(true);this.protocol.sendHeartbeat(this)}};BaseConnection.prototype.handleOpen=function(){this.emit("connect")};BaseConnection.prototype.enableGestures=function(enabled){this.gesturesEnabled=enabled?true:false;this.send(this.protocol.encode({enableGestures:this.gesturesEnabled}))};BaseConnection.prototype.handleClose=function(){this.disconnect();this.startReconnection()};BaseConnection.prototype.startReconnection=function(){var connection=this;setTimeout(function(){connection.connect()},1e3)};BaseConnection.prototype.disconnect=function(){if(!this.socket)return;this.socket.close();delete this.socket;delete this.protocol;this.emit("disconnect")};BaseConnection.prototype.handleData=function(data){var message=JSON.parse(data);var messageEvent;if(this.protocol===undefined){messageEvent=this.protocol=chooseProtocol(message);this.emit("ready")}else{messageEvent=this.protocol(message)}this.emit(messageEvent.type,messageEvent)};BaseConnection.prototype.connect=function(){if(this.socket)return;this.socket=this.setupSocket();return true};BaseConnection.prototype.send=function(data){this.socket.send(data)};BaseConnection.prototype.stopHeartbeat=function(){if(!this.heartbeatTimer)return;clearInterval(this.heartbeatTimer);delete this.heartbeatTimer;this.setHeartbeatState(false)};BaseConnection.prototype.setHeartbeatState=function(state){if(this.heartbeatState===state)return;this.heartbeatState=state;this.emit(this.heartbeatState?"focus":"blur")};_.extend(BaseConnection.prototype,EventEmitter.prototype)},{"./protocol":12,events:17,underscore:20}],2:[function(require,module,exports){var CircularBuffer=module.exports=function(size){this.pos=0;this._buf=[];this.size=size};CircularBuffer.prototype.get=function(i){if(i==undefined)i=0;if(i>=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:<br/>";out+=this.toString();out+="<br/><br/>Hands:<br/>";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+="  "+this.hands[handIdx].toString()+"<br/>"}out+="<br/><br/>Pointables:<br/>";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+="  "+this.pointables[pointableIdx].toString()+"<br/>"}if(this.gestures){out+="<br/><br/>Gestures:<br/>";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+="  "+this.gestures[gestureIdx].toString()+"<br/>"}}out+="<br/><br/>Raw JSON:<br/>";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);
-out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1]}return a}}();vec2.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};if(typeof exports!=="undefined"){exports.vec2=vec2}var vec3={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec3.create=function(){return new Float32Array(3)};vec3.clone=function(a){var out=new Float32Array(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.fromValues=function(x,y,z){var out=new Float32Array(3);out[0]=x;out[1]=y;out[2]=z;return out};vec3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.set=function(out,x,y,z){out[0]=x;out[1]=y;out[2]=z;return out};vec3.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out};vec3.sub=vec3.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out};vec3.mul=vec3.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out};vec3.div=vec3.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out};vec3.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out};vec3.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out};vec3.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out};vec3.dist=vec3.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrDist=vec3.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z};vec3.len=vec3.length=function(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrLen=vec3.squaredLength=function(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z};vec3.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out};vec3.normalize=function(out,a){var x=a[0],y=a[1],z=a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();vec3.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};if(typeof exports!=="undefined"){exports.vec3=vec3}var vec4={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec4.create=function(){return new Float32Array(4)};vec4.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.fromValues=function(x,y,z,w){var out=new Float32Array(4);out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.set=function(out,x,y,z,w){out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];out[3]=a[3]+b[3];return out};vec4.sub=vec4.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];out[3]=a[3]-b[3];return out};vec4.mul=vec4.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];out[3]=a[3]*b[3];return out};vec4.div=vec4.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];out[3]=a[3]/b[3];return out};vec4.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);out[3]=Math.min(a[3],b[3]);return out};vec4.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);out[3]=Math.max(a[3],b[3]);return out};vec4.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;out[3]=a[3]*b;return out};vec4.dist=vec4.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrDist=vec4.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return x*x+y*y+z*z+w*w};vec4.len=vec4.length=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrLen=vec4.squaredLength=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return x*x+y*y+z*z+w*w};vec4.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=-a[3];return out};vec4.normalize=function(out,a){var x=a[0],y=a[1],z=a[2],w=a[3];var len=x*x+y*y+z*z+w*w;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];vec[3]=a[i+3];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2];a[i+3]=vec[3]}return a}}();vec4.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.vec4=vec4}var mat2={};var mat2Identity=new Float32Array([1,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat2.create=function(){return new Float32Array(mat2Identity)};mat2.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;return out};mat2.transpose=function(out,a){if(out===a){var a1=a[1];out[1]=a[2];out[2]=a1}else{out[0]=a[0];out[1]=a[2];out[2]=a[1];out[3]=a[3]}return out};mat2.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],det=a0*a3-a2*a1;if(!det){return null}det=1/det;out[0]=a3*det;out[1]=-a1*det;out[2]=-a2*det;out[3]=a0*det;return out};mat2.adjoint=function(out,a){var a0=a[0];out[0]=a[3];out[1]=-a[1];out[2]=-a[2];out[3]=a0;return out};mat2.determinant=function(a){return a[0]*a[3]-a[2]*a[1]};mat2.mul=mat2.multiply=function(out,a,b){var a0=a[0],a1=a[1],a2=a[2],a3=a[3];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=a0*b0+a1*b2;out[1]=a0*b1+a1*b3;out[2]=a2*b0+a3*b2;out[3]=a2*b1+a3*b3;return out};mat2.rotate=function(out,a,rad){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],s=Math.sin(rad),c=Math.cos(rad);out[0]=a0*c+a1*s;out[1]=a0*-s+a1*c;out[2]=a2*c+a3*s;out[3]=a2*-s+a3*c;return out};mat2.scale=function(out,a,v){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],v0=v[0],v1=v[1];out[0]=a0*v0;out[1]=a1*v1;out[2]=a2*v0;out[3]=a3*v1;return out};mat2.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.mat2=mat2}var mat3={};var mat3Identity=new Float32Array([1,0,0,0,1,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat3.create=function(){return new Float32Array(mat3Identity)};mat3.clone=function(a){var out=new Float32Array(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out};mat3.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out};mat3.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det){return null}det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out};mat3.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02*a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out};mat3.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)};mat3.mul=mat3.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02=b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out};mat3.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};if(typeof exports!=="undefined"){exports.mat3=mat3}var mat4={};var mat4Identity=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat4.create=function(){return new Float32Array(mat4Identity)};mat4.clone=function(a){var out=new Float32Array(16);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=1;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=1;out[11]=0;out[12]=0;out[13]=0;out[14]=0;out[15]=1;return out};mat4.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a03=a[3],a12=a[6],a13=a[7],a23=a[11];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a01;out[6]=a[9];out[7]=a[13];out[8]=a02;out[9]=a12;out[11]=a[14];out[12]=a03;out[13]=a13;out[14]=a23}else{out[0]=a[0];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a[1];out[5]=a[5];out[6]=a[9];out[7]=a[13];out[8]=a[2];out[9]=a[6];out[10]=a[10];out[11]=a[14];out[12]=a[3];out[13]=a[7];out[14]=a[11];out[15]=a[15]}return out};mat4.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det){return null}det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a02*b10-a01*b11-a03*b09)*det;out[2]=(a31*b05-a32*b04+a33*b03)*det;out[3]=(a22*b04-a21*b05-a23*b03)*det;out[4]=(a12*b08-a10*b11-a13*b07)*det;out[5]=(a00*b11-a02*b08+a03*b07)*det;out[6]=(a32*b02-a30*b05-a33*b01)*det;out[7]=(a20*b05-a22*b02+a23*b01)*det;out[8]=(a10*b10-a11*b08+a13*b06)*det;out[9]=(a01*b08-a00*b10-a03*b06)*det;out[10]=(a30*b04-a31*b02+a33*b00)*det;out[11]=(a21*b02-a20*b04-a23*b00)*det;out[12]=(a11*b07-a10*b09-a12*b06)*det;out[13]=(a00*b09-a01*b07+a02*b06)*det;out[14]=(a31*b01-a30*b03-a32*b00)*det;out[15]=(a20*b03-a21*b01+a22*b00)*det;return out};mat4.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];out[0]=a11*(a22*a33-a23*a32)-a21*(a12*a33-a13*a32)+a31*(a12*a23-a13*a22);out[1]=-(a01*(a22*a33-a23*a32)-a21*(a02*a33-a03*a32)+a31*(a02*a23-a03*a22));out[2]=a01*(a12*a33-a13*a32)-a11*(a02*a33-a03*a32)+a31*(a02*a13-a03*a12);out[3]=-(a01*(a12*a23-a13*a22)-a11*(a02*a23-a03*a22)+a21*(a02*a13-a03*a12));out[4]=-(a10*(a22*a33-a23*a32)-a20*(a12*a33-a13*a32)+a30*(a12*a23-a13*a22));out[5]=a00*(a22*a33-a23*a32)-a20*(a02*a33-a03*a32)+a30*(a02*a23-a03*a22);out[6]=-(a00*(a12*a33-a13*a32)-a10*(a02*a33-a03*a32)+a30*(a02*a13-a03*a12));out[7]=a00*(a12*a23-a13*a22)-a10*(a02*a23-a03*a22)+a20*(a02*a13-a03*a12);out[8]=a10*(a21*a33-a23*a31)-a20*(a11*a33-a13*a31)+a30*(a11*a23-a13*a21);out[9]=-(a00*(a21*a33-a23*a31)-a20*(a01*a33-a03*a31)+a30*(a01*a23-a03*a21));out[10]=a00*(a11*a33-a13*a31)-a10*(a01*a33-a03*a31)+a30*(a01*a13-a03*a11);out[11]=-(a00*(a11*a23-a13*a21)-a10*(a01*a23-a03*a21)+a20*(a01*a13-a03*a11));out[12]=-(a10*(a21*a32-a22*a31)-a20*(a11*a32-a12*a31)+a30*(a11*a22-a12*a21));out[13]=a00*(a21*a32-a22*a31)-a20*(a01*a32-a02*a31)+a30*(a01*a22-a02*a21);out[14]=-(a00*(a11*a32-a12*a31)-a10*(a01*a32-a02*a31)+a30*(a01*a12-a02*a11));out[15]=a00*(a11*a22-a12*a21)-a10*(a01*a22-a02*a21)+a20*(a01*a12-a02*a11);return out};mat4.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32;return b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06};mat4.mul=mat4.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=b0*a00+b1*a10+b2*a20+b3*a30;out[1]=b0*a01+b1*a11+b2*a21+b3*a31;out[2]=b0*a02+b1*a12+b2*a22+b3*a32;out[3]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[4];b1=b[5];b2=b[6];b3=b[7];out[4]=b0*a00+b1*a10+b2*a20+b3*a30;out[5]=b0*a01+b1*a11+b2*a21+b3*a31;out[6]=b0*a02+b1*a12+b2*a22+b3*a32;out[7]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[8];b1=b[9];b2=b[10];b3=b[11];out[8]=b0*a00+b1*a10+b2*a20+b3*a30;out[9]=b0*a01+b1*a11+b2*a21+b3*a31;out[10]=b0*a02+b1*a12+b2*a22+b3*a32;out[11]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[12];b1=b[13];b2=b[14];b3=b[15];out[12]=b0*a00+b1*a10+b2*a20+b3*a30;out[13]=b0*a01+b1*a11+b2*a21+b3*a31;out[14]=b0*a02+b1*a12+b2*a22+b3*a32;out[15]=b0*a03+b1*a13+b2*a23+b3*a33;return out};mat4.translate=function(out,a,v){var x=v[0],y=v[1],z=v[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(a===out){out[12]=a[0]*x+a[4]*y+a[8]*z+a[12];out[13]=a[1]*x+a[5]*y+a[9]*z+a[13];out[14]=a[2]*x+a[6]*y+a[10]*z+a[14];out[15]=a[3]*x+a[7]*y+a[11]*z+a[15]}else{a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];out[0]=a00;out[1]=a01;out[2]=a02;out[3]=a03;out[4]=a10;out[5]=a11;out[6]=a12;out[7]=a13;out[8]=a20;out[9]=a21;out[10]=a22;out[11]=a23;out[12]=a00*x+a10*y+a20*z+a[12];out[13]=a01*x+a11*y+a21*z+a[13];out[14]=a02*x+a12*y+a22*z+a[14];out[15]=a03*x+a13*y+a23*z+a[15]}return out};mat4.scale=function(out,a,v){var x=v[0],y=v[1],z=v[2];out[0]=a[0]*x;out[1]=a[1]*x;out[2]=a[2]*x;out[3]=a[3]*x;out[4]=a[4]*y;out[5]=a[5]*y;out[6]=a[6]*y;out[7]=a[7]*y;out[8]=a[8]*z;out[9]=a[9]*z;out[10]=a[10]*z;out[11]=a[11]*z;out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.rotate=function(out,a,rad,axis){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(Math.abs(len)<GLMAT_EPSILON){return null}len=1/len;x*=len;y*=len;z*=len;s=Math.sin(rad);c=Math.cos(rad);t=1-c;a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;out[0]=a00*b00+a10*b01+a20*b02;out[1]=a01*b00+a11*b01+a21*b02;out[2]=a02*b00+a12*b01+a22*b02;out[3]=a03*b00+a13*b01+a23*b02;out[4]=a00*b10+a10*b11+a20*b12;out[5]=a01*b10+a11*b11+a21*b12;out[6]=a02*b10+a12*b11+a22*b12;out[7]=a03*b10+a13*b11+a23*b12;out[8]=a00*b20+a10*b21+a20*b22;out[9]=a01*b20+a11*b21+a21*b22;out[10]=a02*b20+a12*b21+a22*b22;out[11]=a03*b20+a13*b21+a23*b22;if(a!==out){out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}return out};mat4.rotateX=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[4]=a10*c+a20*s;out[5]=a11*c+a21*s;out[6]=a12*c+a22*s;out[7]=a13*c+a23*s;out[8]=a20*c-a10*s;out[9]=a21*c-a11*s;out[10]=a22*c-a12*s;out[11]=a23*c-a13*s;return out};mat4.rotateY=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c-a20*s;out[1]=a01*c-a21*s;out[2]=a02*c-a22*s;out[3]=a03*c-a23*s;out[8]=a00*s+a20*c;out[9]=a01*s+a21*c;out[10]=a02*s+a22*c;out[11]=a03*s+a23*c;return out};mat4.rotateZ=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7];if(a!==out){out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c+a10*s;out[1]=a01*c+a11*s;out[2]=a02*c+a12*s;out[3]=a03*c+a13*s;out[4]=a10*c-a00*s;out[5]=a11*c-a01*s;out[6]=a12*c-a02*s;out[7]=a13*c-a03*s;return out};mat4.fromRotationTranslation=function(out,q,v){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-(yy+zz);out[1]=xy+wz;out[2]=xz-wy;out[3]=0;out[4]=xy-wz;out[5]=1-(xx+zz);out[6]=yz+wx;out[7]=0;out[8]=xz+wy;out[9]=yz-wx;out[10]=1-(xx+yy);out[11]=0;out[12]=v[0];out[13]=v[1];out[14]=v[2];out[15]=1;return out};mat4.frustum=function(out,left,right,bottom,top,near,far){var rl=1/(right-left),tb=1/(top-bottom),nf=1/(near-far);out[0]=near*2*rl;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=near*2*tb;out[6]=0;out[7]=0;out[8]=(right+left)*rl;out[9]=(top+bottom)*tb;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=far*near*2*nf;out[15]=0;return out};mat4.perspective=function(out,fovy,aspect,near,far){var f=1/Math.tan(fovy/2),nf=1/(near-far);out[0]=f/aspect;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=f;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=2*far*near*nf;out[15]=0;return out};mat4.ortho=function(out,left,right,bottom,top,near,far){var lr=1/(left-right),bt=1/(bottom-top),nf=1/(near-far);out[0]=-2*lr;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=-2*bt;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=2*nf;out[11]=0;out[12]=(left+right)*lr;out[13]=(top+bottom)*bt;out[14]=(far+near)*nf;out[15]=1;return out};mat4.lookAt=function(out,eye,center,up){var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(Math.abs(eyex-centerx)<GLMAT_EPSILON&&Math.abs(eyey-centery)<GLMAT_EPSILON&&Math.abs(eyez-centerz)<GLMAT_EPSILON){return mat4.identity(out)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}out[0]=x0;out[1]=y0;out[2]=z0;out[3]=0;out[4]=x1;out[5]=y1;out[6]=z1;out[7]=0;out[8]=x2;out[9]=y2;out[10]=z2;out[11]=0;out[12]=-(x0*eyex+x1*eyey+x2*eyez);out[13]=-(y0*eyex+y1*eyey+y2*eyez);out[14]=-(z0*eyex+z1*eyey+z2*eyez);out[15]=1;return out};mat4.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};if(typeof exports!=="undefined"){exports.mat4=mat4}var quat={};var quatIdentity=new Float32Array([0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}quat.create=function(){return new Float32Array(quatIdentity)};quat.clone=vec4.clone;quat.fromValues=vec4.fromValues;quat.copy=vec4.copy;quat.set=vec4.set;quat.identity=function(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out};quat.setAxisAngle=function(out,axis,rad){rad=rad*.5;var s=Math.sin(rad);out[0]=s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out};quat.add=vec4.add;quat.mul=quat.multiply=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out};quat.scale=vec4.scale;quat.rotateX=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out};quat.rotateY=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out};quat.rotateZ=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out};quat.calculateW=function(out,a){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out};quat.dot=vec4.dot;quat.lerp=vec4.lerp;quat.slerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=a[3];var cosHalfTheta=ax*bx+ay*by+az*bz+aw*bw,halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{for(var key in obj){if(_.has(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker)return}}}};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;
-var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={};var iterator=lookupIterator(value||_.identity);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key){if(!_.has(result,key))result[key]=0;result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n!=null&&!guard){return slice.call(array,Math.max(array.length-n,0))}else{return array[array.length-1]}};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){each(input,function(value){if(_.isArray(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(args,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,l=list.length;i<l;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,l+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};_.bind=function(func,context){if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));var args=slice.call(arguments,2);return function(){return func.apply(context,args.concat(slice.call(arguments)))}};_.partial=function(func){var args=slice.call(arguments,1);return function(){return func.apply(this,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)funcs=_.functions(obj);each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,result;var previous=0;var later=function(){previous=new Date;timeout=null;result=func.apply(context,args)};return function(){var now=new Date;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args)}else if(!timeout){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]);
-
-/*
- * Leap Motion integration for Reveal.js.
- * James Sun  [sun16]
- * Rory Hardy [gneatgeek]
- */
-
-(function () {
-  var body        = document.body,
-      controller  = new Leap.Controller({ enableGestures: true }),
-      lastGesture = 0,
-      leapConfig  = Reveal.getConfig().leap,
-      pointer     = document.createElement( 'div' ),
-      config      = {
-        autoCenter       : true,      // Center pointer around detected position.
-        gestureDelay     : 500,       // How long to delay between gestures.
-        naturalSwipe     : true,      // Swipe as if it were a touch screen.
-        pointerColor     : '#00aaff', // Default color of the pointer.
-        pointerOpacity   : 0.7,       // Default opacity of the pointer.
-        pointerSize      : 15,        // Default minimum height/width of the pointer.
-        pointerTolerance : 120        // Bigger = slower pointer.
-      },
-      entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare.
-
-      // Merge user defined settings with defaults
-      if( leapConfig ) {
-        for( key in leapConfig ) {
-          config[key] = leapConfig[key];
-        }
-      }
-
-      pointer.id = 'leap';
-
-      pointer.style.position        = 'absolute';
-      pointer.style.visibility      = 'hidden';
-      pointer.style.zIndex          = 50;
-      pointer.style.opacity         = config.pointerOpacity;
-      pointer.style.backgroundColor = config.pointerColor;
-
-      body.appendChild( pointer );
-
-  // Leap's loop
-  controller.on( 'frame', function ( frame ) {
-    // Timing code to rate limit gesture execution
-    now = new Date().getTime();
-
-    // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies.
-    // The innaccuracies were observed on a development model and may not be an issue with consumer models.
-    if( frame.fingers.length > 0 && frame.fingers.length < 3 ) {
-      // Invert direction and multiply by 3 for greater effect.
-      size = -3 * frame.fingers[0].tipPosition[2];
-
-      if( size < config.pointerSize ) {
-        size = config.pointerSize;
-      }
-
-      pointer.style.width        = size     + 'px';
-      pointer.style.height       = size     + 'px';
-      pointer.style.borderRadius = size - 5 + 'px';
-      pointer.style.visibility   = 'visible';
-
-      if( config.autoCenter ) {
-        tipPosition = frame.fingers[0].tipPosition;
-
-        // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option.
-        if( !entered ) {
-          entered         = true;
-          enteredPosition = frame.fingers[0].tipPosition;
-        }
-
-        pointer.style.top =
-          (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) +
-            ( body.offsetHeight / 2 ) + 'px';
-
-        pointer.style.left =
-          (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) +
-            ( body.offsetWidth / 2 ) + 'px';
-      }
-      else {
-        pointer.style.top  = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) *
-          body.offsetHeight + 'px';
-
-        pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) +
-          ( body.offsetWidth / 2 ) + 'px';
-      }
-    }
-    else {
-      // Hide pointer on exit
-      entered                  = false;
-      pointer.style.visibility = 'hidden';
-    }
-
-    // Gestures
-    if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) {
-      var gesture = frame.gestures[0];
-
-      // One hand gestures
-      if( frame.hands.length === 1 ) {
-        // Swipe gestures. 3+ fingers.
-        if( frame.fingers.length > 2 && gesture.type === 'swipe' ) {
-          // Define here since some gestures will throw undefined for these.
-          var x = gesture.direction[0],
-              y = gesture.direction[1];
-
-          // Left/right swipe gestures
-          if( Math.abs( x ) > Math.abs( y )) {
-            if( x > 0 ) {
-              config.naturalSwipe ? Reveal.left() : Reveal.right();
-            }
-            else {
-              config.naturalSwipe ? Reveal.right() : Reveal.left();
-            }
-          }
-          // Up/down swipe gestures
-          else {
-            if( y > 0 ) {
-              config.naturalSwipe ? Reveal.down() : Reveal.up();
-            }
-            else {
-              config.naturalSwipe ? Reveal.up() : Reveal.down();
-            }
-          }
-
-          lastGesture = now;
-        }
-      }
-      // Two hand gestures
-      else if( frame.hands.length === 2 ) {
-        // Upward two hand swipe gesture
-        if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) {
-          Reveal.toggleOverview();
-        }
-
-        lastGesture = now;
-      }
-    }
-  });
-
-  controller.connect();
-})();
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/markdown/markdown.js b/docs/slides/ETH14/_support/reveal.js/plugin/markdown/markdown.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/markdown/markdown.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * The reveal.js markdown plugin. Handles parsing of
- * markdown inside of presentations as well as loading
- * of external markdown documents.
- */
-(function( root, factory ) {
-	if( typeof exports === 'object' ) {
-		module.exports = factory( require( './marked' ) );
-	}
-	else {
-		// Browser globals (root is window)
-		root.RevealMarkdown = factory( root.marked );
-		root.RevealMarkdown.initialize();
-	}
-}( this, function( marked ) {
-
-	if( typeof marked === 'undefined' ) {
-		throw 'The reveal.js Markdown plugin requires marked to be loaded';
-	}
-
-	if( typeof hljs !== 'undefined' ) {
-		marked.setOptions({
-			highlight: function( lang, code ) {
-				return hljs.highlightAuto( lang, code ).value;
-			}
-		});
-	}
-
-	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
-		DEFAULT_NOTES_SEPARATOR = 'note:',
-		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
-		DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
-
-
-	/**
-	 * Retrieves the markdown contents of a slide section
-	 * element. Normalizes leading tabs/whitespace.
-	 */
-	function getMarkdownFromSlide( section ) {
-
-		var template = section.querySelector( 'script' );
-
-		// strip leading whitespace so it isn't evaluated as code
-		var text = ( template || section ).textContent;
-
-		var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
-			leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
-
-		if( leadingTabs > 0 ) {
-			text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-		}
-		else if( leadingWs > 1 ) {
-			text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-		}
-
-		return text;
-
-	}
-
-	/**
-	 * Given a markdown slide section element, this will
-	 * return all arguments that aren't related to markdown
-	 * parsing. Used to forward any other user-defined arguments
-	 * to the output markdown slide.
-	 */
-	function getForwardedAttributes( section ) {
-
-		var attributes = section.attributes;
-		var result = [];
-
-		for( var i = 0, len = attributes.length; i < len; i++ ) {
-			var name = attributes[i].name,
-				value = attributes[i].value;
-
-			// disregard attributes that are used for markdown loading/parsing
-			if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
-
-			if( value ) {
-				result.push( name + '=' + value );
-			}
-			else {
-				result.push( name );
-			}
-		}
-
-		return result.join( ' ' );
-
-	}
-
-	/**
-	 * Inspects the given options and fills out default
-	 * values for what's not defined.
-	 */
-	function getSlidifyOptions( options ) {
-
-		options = options || {};
-		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
-		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
-		options.attributes = options.attributes || '';
-
-		return options;
-
-	}
-
-	/**
-	 * Helper function for constructing a markdown slide.
-	 */
-	function createMarkdownSlide( content, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
-
-		if( notesMatch.length === 2 ) {
-			content = notesMatch[0] + '<aside class="notes" data-markdown>' + notesMatch[1].trim() + '</aside>';
-		}
-
-		return '<script type="text/template">' + content + '</script>';
-
-	}
-
-	/**
-	 * Parses a data string into multiple slides based
-	 * on the passed in separator arguments.
-	 */
-	function slidify( markdown, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-			horizontalSeparatorRegex = new RegExp( options.separator );
-
-		var matches,
-			lastIndex = 0,
-			isHorizontal,
-			wasHorizontal = true,
-			content,
-			sectionStack = [];
-
-		// iterate until all blocks between separators are stacked up
-		while( matches = separatorRegex.exec( markdown ) ) {
-			notes = null;
-
-			// determine direction (horizontal by default)
-			isHorizontal = horizontalSeparatorRegex.test( matches[0] );
-
-			if( !isHorizontal && wasHorizontal ) {
-				// create vertical stack
-				sectionStack.push( [] );
-			}
-
-			// pluck slide content from markdown input
-			content = markdown.substring( lastIndex, matches.index );
-
-			if( isHorizontal && wasHorizontal ) {
-				// add to horizontal stack
-				sectionStack.push( content );
-			}
-			else {
-				// add to vertical stack
-				sectionStack[sectionStack.length-1].push( content );
-			}
-
-			lastIndex = separatorRegex.lastIndex;
-			wasHorizontal = isHorizontal;
-		}
-
-		// add the remaining slide
-		( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
-
-		var markdownSections = '';
-
-		// flatten the hierarchical stack, and insert <section data-markdown> tags
-		for( var i = 0, len = sectionStack.length; i < len; i++ ) {
-			// vertical
-			if( sectionStack[i] instanceof Array ) {
-				markdownSections += '<section '+ options.attributes +'>';
-
-				sectionStack[i].forEach( function( child ) {
-					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
-				} );
-
-				markdownSections += '</section>';
-			}
-			else {
-				markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
-			}
-		}
-
-		return markdownSections;
-
-	}
-
-	/**
-	 * Parses any current data-markdown slides, splits
-	 * multi-slide markdown into separate sections and
-	 * handles loading of external markdown.
-	 */
-	function processSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]'),
-			section;
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			section = sections[i];
-
-			if( section.getAttribute( 'data-markdown' ).length ) {
-
-				var xhr = new XMLHttpRequest(),
-					url = section.getAttribute( 'data-markdown' );
-
-				datacharset = section.getAttribute( 'data-charset' );
-
-				// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
-				if( datacharset != null && datacharset != '' ) {
-					xhr.overrideMimeType( 'text/html; charset=' + datacharset );
-				}
-
-				xhr.onreadystatechange = function() {
-					if( xhr.readyState === 4 ) {
-						if ( xhr.status >= 200 && xhr.status < 300 ) {
-
-							section.outerHTML = slidify( xhr.responseText, {
-								separator: section.getAttribute( 'data-separator' ),
-								verticalSeparator: section.getAttribute( 'data-vertical' ),
-								notesSeparator: section.getAttribute( 'data-notes' ),
-								attributes: getForwardedAttributes( section )
-							});
-
-						}
-						else {
-
-							section.outerHTML = '<section data-state="alert">' +
-								'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
-								'Check your browser\'s JavaScript console for more details.' +
-								'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
-								'</section>';
-
-						}
-					}
-				};
-
-				xhr.open( 'GET', url, false );
-
-				try {
-					xhr.send();
-				}
-				catch ( e ) {
-					alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
-				}
-
-			}
-			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) {
-
-				section.outerHTML = slidify( getMarkdownFromSlide( section ), {
-					separator: section.getAttribute( 'data-separator' ),
-					verticalSeparator: section.getAttribute( 'data-vertical' ),
-					notesSeparator: section.getAttribute( 'data-notes' ),
-					attributes: getForwardedAttributes( section )
-				});
-
-			}
-			else {
-				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
-			}
-		}
-
-	}
-
-	/**
-	 * Check if a node value has the attributes pattern.
-	 * If yes, extract it and add that value as one or several attributes
-	 * the the terget element.
-	 *
-	 * You need Cache Killer on Chrome to see the effect on any FOM transformation
-	 * directly on refresh (F5)
-	 * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
-	 */
-	function addAttributeInElement( node, elementTarget, separator ) {
-
-		var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
-		var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-		var nodeValue = node.nodeValue;
-		if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
-
-			var classes = matches[1];
-			nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
-			node.nodeValue = nodeValue;
-			while( matchesClass = mardownClassRegex.exec( classes ) ) {
-				elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add attributes to the parent element of a text node,
-	 * or the element of an attribute node.
-	 */
-	function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
-
-		if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
-			previousParentElement = element;
-			for( var i = 0; i < element.childNodes.length; i++ ) {
-				childElement = element.childNodes[i];
-				if ( i > 0 ) {
-					j = i - 1;
-					while ( j >= 0 ) {
-						aPreviousChildElement = element.childNodes[j];
-						if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
-							previousParentElement = aPreviousChildElement;
-							break;
-						}
-						j = j - 1;
-					}
-				}
-				parentSection = section;
-				if( childElement.nodeName ==  "section" ) {
-					parentSection = childElement ;
-					previousParentElement = childElement ;
-				}
-				if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
-					addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
-				}
-			}
-		}
-
-		if ( element.nodeType == Node.COMMENT_NODE ) {
-			if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
-				addAttributeInElement( element, section, separatorSectionAttributes );
-			}
-		}
-	}
-
-	/**
-	 * Converts any current data-markdown slides in the
-	 * DOM to HTML.
-	 */
-	function convertSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]');
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			var section = sections[i];
-
-			// Only parse the same slide once
-			if( !section.getAttribute( 'data-markdown-parsed' ) ) {
-
-				section.setAttribute( 'data-markdown-parsed', true )
-
-				var notes = section.querySelector( 'aside.notes' );
-				var markdown = getMarkdownFromSlide( section );
-
-				section.innerHTML = marked( markdown );
-				addAttributes( 	section, section, null, section.getAttribute( 'data-element-attributes' ) ||
-								section.parentNode.getAttribute( 'data-element-attributes' ) ||
-								DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
-								section.getAttribute( 'data-attributes' ) ||
-								section.parentNode.getAttribute( 'data-attributes' ) ||
-								DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
-
-				// If there were notes, we need to re-add them after
-				// having overwritten the section's HTML
-				if( notes ) {
-					section.appendChild( notes );
-				}
-
-			}
-
-		}
-
-	}
-
-	// API
-	return {
-
-		initialize: function() {
-			processSlides();
-			convertSlides();
-		},
-
-		// TODO: Do these belong in the API?
-		processSlides: processSlides,
-		convertSlides: convertSlides,
-		slidify: slidify
-
-	};
-
-}));
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/markdown/marked.js b/docs/slides/ETH14/_support/reveal.js/plugin/markdown/marked.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/markdown/marked.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * marked - a markdown parser
- * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
- * https://github.com/chjj/marked
- */
-
-(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
-text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",
-/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1",
-"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};
-Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,
-"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,
-"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]="center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].split(/ *\| */);this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=
-src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);
-bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+
-1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&&
-(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]=
-"center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1][cap[1].length-1]==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",
-text:cap[0]});continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
-code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
-em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;
-if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);
-out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length);
-out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src=
-src.substring(cap[0].length);out+="<strong>"+this.output(cap[2]||cap[1])+"</strong>";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+="<em>"+this.output(cap[2]||cap[1])+"</em>";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+="<code>"+escape(cap[2],true)+"</code>";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="<br>";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+="<del>"+
-this.output(cap[1])+"</del>";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'<a href="'+escape(link.href)+'"'+(link.title?' title="'+escape(link.title)+'"':"")+">"+this.output(cap[1])+"</a>";else return'<img src="'+escape(link.href)+'" alt="'+escape(cap[1])+'"'+(link.title?' title="'+
-escape(link.title)+'"':"")+">"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null;
-this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;
-while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"<hr>\n";case "heading":return"<h"+this.token.depth+">"+this.inline.output(this.token.text)+"</h"+this.token.depth+">\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text=
-escape(this.token.text,true);return"<pre><code"+(this.token.lang?' class="'+this.options.langPrefix+this.token.lang+'"':"")+">"+this.token.text+"</code></pre>\n";case "table":var body="",heading,i,row,cell,j;body+="<thead>\n<tr>\n";for(i=0;i<this.token.header.length;i++){heading=this.inline.output(this.token.header[i]);body+=this.token.align[i]?'<th align="'+this.token.align[i]+'">'+heading+"</th>\n":"<th>"+heading+"</th>\n"}body+="</tr>\n</thead>\n";body+="<tbody>\n";for(i=0;i<this.token.cells.length;i++){row=
-this.token.cells[i];body+="<tr>\n";for(j=0;j<row.length;j++){cell=this.inline.output(row[j]);body+=this.token.align[j]?'<td align="'+this.token.align[j]+'">'+cell+"</td>\n":"<td>"+cell+"</td>\n"}body+="</tr>\n"}body+="</tbody>\n";return"<table>\n"+body+"</table>\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"<blockquote>\n"+body+"</blockquote>\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+=
-this.tok();return"<"+type+">\n"+body+"</"+type+">\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"<li>"+body+"</li>\n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"<li>"+body+"</li>\n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"<p>"+this.inline.output(this.token.text)+
-"</p>\n";case "text":return"<p>"+this.parseText()+"</p>\n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=
-1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target)if(Object.prototype.hasOwnProperty.call(target,key))obj[key]=target[key]}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}if(opt)opt=merge({},marked.defaults,opt);var tokens=Lexer.lex(tokens,opt),highlight=opt.highlight,pending=0,l=tokens.length,i=0;if(!highlight||highlight.length<3)return callback(null,Parser.parse(tokens,opt));var done=function(){delete opt.highlight;
-var out=Parser.parse(tokens,opt);opt.highlight=highlight;return callback(null,out)};for(;i<l;i++)(function(token){if(token.type!=="code")return;pending++;return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text)return--pending||done();token.text=code;token.escaped=true;--pending||done()})})(tokens[i]);return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";
-if((opt||marked.defaults).silent)return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;
-marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}());
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/math/math.js b/docs/slides/ETH14/_support/reveal.js/plugin/math/math.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/math/math.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for MathJax.
- *
- * @author Hakim El Hattab
- */
-var RevealMath = window.RevealMath || (function(){
-
-	var options = Reveal.getConfig().math || {};
-	options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
-	options.config = options.config || 'TeX-AMS_HTML-full';
-
-	loadScript( options.mathjax + '?config=' + options.config, function() {
-
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
-			skipStartupTypeset: true
-		});
-
-		// Typeset followed by an immediate reveal.js layout since
-		// the typesetting process could affect slide height
-		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
-		MathJax.Hub.Queue( Reveal.layout );
-
-		// Reprocess equations in slides when they turn visible
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-
-			MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
-
-		} );
-
-	} );
-
-	function loadScript( url, callback ) {
-
-		var head = document.querySelector( 'head' );
-		var script = document.createElement( 'script' );
-		script.type = 'text/javascript';
-		script.src = url;
-
-		// Wrapper for callback to make sure it only fires once
-		var finish = function() {
-			if( typeof callback === 'function' ) {
-				callback.call();
-				callback = null;
-			}
-		}
-
-		script.onload = finish;
-
-		// IE
-		script.onreadystatechange = function() {
-			if ( this.readyState === 'loaded' ) {
-				finish();
-			}
-		}
-
-		// Normal browsers
-		head.appendChild( script );
-
-	}
-
-})();
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/client.js b/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/client.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/client.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
-	var multiplex = Reveal.getConfig().multiplex;
-	var socketId = multiplex.id;
-	var socket = io.connect(multiplex.url);
-
-	socket.on(multiplex.id, function(data) {
-		// ignore data from sockets that aren't ours
-		if (data.socketId !== socketId) { return; }
-		if( window.location.host === 'localhost:1947' ) return;
-
-		Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
-	});
-}());
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/index.js b/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/index.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var express		= require('express');
-var fs			= require('fs');
-var io			= require('socket.io');
-var crypto		= require('crypto');
-
-var app			= express.createServer();
-var staticDir	= express.static;
-
-io				= io.listen(app);
-
-var opts = {
-	port: 1948,
-	baseDir : __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
-		if (createHash(slideData.secret) === slideData.socketId) {
-			slideData.secret = null;
-			socket.broadcast.emit(slideData.socketId, slideData);
-		};
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/token", function(req,res) {
-	var ts = new Date().getTime();
-	var rand = Math.floor(Math.random()*9999999);
-	var secret = ts.toString() + rand.toString();
-	res.send({secret: secret, socketId: createHash(secret)});
-});
-
-var createHash = function(secret) {
-	var cipher = crypto.createCipher('blowfish', secret);
-	return(cipher.final('hex'));
-};
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/master.js b/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/master.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/multiplex/master.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function() {
-	// Don't emit events from inside of notes windows
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var multiplex = Reveal.getConfig().multiplex;
-
-	var socket = io.connect(multiplex.url);
-
-	var notify = function( slideElement, indexh, indexv, origin ) {
-		if( typeof origin === 'undefined' && origin !== 'remote' ) {
-			var nextindexh;
-			var nextindexv;
-
-			var fragmentindex = Reveal.getIndices().f;
-			if (typeof fragmentindex == 'undefined') {
-				fragmentindex = 0;
-			}
-
-			if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-				nextindexh = indexh;
-				nextindexv = indexv + 1;
-			} else {
-				nextindexh = indexh + 1;
-				nextindexv = 0;
-			}
-
-			var slideData = {
-				indexh : indexh,
-				indexv : indexv,
-				indexf : fragmentindex,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				secret: multiplex.secret,
-				socketId : multiplex.id
-			};
-
-			socket.emit('slidechanged', slideData);
-		}
-	}
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		notify( event.currentSlide, event.indexh, event.indexv, event.origin );
-	} );
-
-	var fragmentNotify = function( event ) {
-		notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
-	};
-
-	Reveal.addEventListener( 'fragmentshown', fragmentNotify );
-	Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
-}());
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/client.js b/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/client.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/client.js
+++ /dev/null
@@ -1,57 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-	window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
-
-	// Fires when a fragment is shown
-	Reveal.addEventListener( 'fragmentshown', function( event ) {
-		var fragmentData = {
-			fragment : 'next',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when a fragment is hidden
-	Reveal.addEventListener( 'fragmenthidden', function( event ) {
-		var fragmentData = {
-			fragment : 'previous',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when slide is changed
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId,
-			markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
-
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/index.js b/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/index.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/notes-server/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-	socket.on('fragmentchanged', function(fragmentData) {
-		socket.broadcast.emit('fragmentdata', fragmentData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/notes/notes.js b/docs/slides/ETH14/_support/reveal.js/plugin/notes/notes.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/notes/notes.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Handles opening of and synchronization with the reveal.js
- * notes window.
- */
-var RevealNotes = (function() {
-
-	function openNotes() {
-		var jsFileLocation = document.querySelector('script[src$="notes.js"]').src;  // this js file path
-		jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, '');   // the js folder path
-		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
-
-		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', post );
-
-		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', post );
-
-		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', post );
-
-		/**
-		 * Posts the current slide data to the notes window
-		 */
-		function post() {
-			var slideElement = Reveal.getCurrentSlide(),
-				slideIndices = Reveal.getIndices(),
-				messageData;
-
-			var notes = slideElement.querySelector( 'aside.notes' ),
-				nextindexh,
-				nextindexv;
-
-			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-				nextindexh = slideIndices.h;
-				nextindexv = slideIndices.v + 1;
-			} else {
-				nextindexh = slideIndices.h + 1;
-				nextindexv = 0;
-			}
-
-			messageData = {
-				notes : notes ? notes.innerHTML : '',
-				indexh : slideIndices.h,
-				indexv : slideIndices.v,
-				indexf : slideIndices.f,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-			};
-
-			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
-		}
-
-		// Navigate to the current slide when the notes are loaded
-		notesPopup.addEventListener( 'load', function( event ) {
-			post();
-		}, false );
-	}
-
-	// If the there's a 'notes' query set, open directly
-	if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
-		openNotes();
-	}
-
-	// Open the notes when the 's' key is hit
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openNotes();
-		}
-	}, false );
-
-	return { open: openNotes };
-})();
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/postmessage/postmessage.js b/docs/slides/ETH14/_support/reveal.js/plugin/postmessage/postmessage.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/postmessage/postmessage.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-	simple postmessage plugin
-
-	Useful when a reveal slideshow is inside an iframe.
-	It allows to call reveal methods from outside.
-
-	Example:
-		 var reveal =  window.frames[0];
-
-		 // Reveal.prev(); 
-		 reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
-		 // Reveal.next(); 
-		 reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
-		 // Reveal.slide(2, 2); 
-		 reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
-
-	Add to the slideshow:
-
-		dependencies: [
-			...
-			{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
-		]
-
-*/
-
-(function (){
-
-	window.addEventListener( "message", function ( event ) {
-		var data = JSON.parse( event.data ),
-				method = data.method,
-				args = data.args;
-
-		if( typeof Reveal[method] === 'function' ) {
-			Reveal[method].apply( Reveal, data.args );
-		}
-	}, false);
-
-}());
-
-
-
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/print-pdf/print-pdf.js b/docs/slides/ETH14/_support/reveal.js/plugin/print-pdf/print-pdf.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/print-pdf/print-pdf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * phantomjs script for printing presentations to PDF.
- *
- * Example:
- * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
- *
- * By Manuel Bieh (https://github.com/manuelbieh)
- */
-
-// html2pdf.js
-var page = new WebPage();
-var system = require( 'system' );
-
-page.viewportSize  = {
-	width: 1024,
-	height: 768
-};
-
-page.paperSize = {
-	format: 'letter',
-	orientation: 'landscape',
-	margin: {
-		left: '0',
-		right: '0',
-		top: '0',
-		bottom: '0'
-	}
-};
-
-var revealFile = system.args[1] || 'index.html?print-pdf';
-var slideFile = system.args[2] || 'slides.pdf';
-
-if( slideFile.match( /\.pdf$/gi ) === null ) {
-	slideFile += '.pdf';
-}
-
-console.log( 'Printing PDF...' );
-
-page.open( revealFile, function( status ) {
-	console.log( 'Printed succesfully' );
-	page.render( slideFile );
-	phantom.exit();
-} );
-
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/remotes/remotes.js b/docs/slides/ETH14/_support/reveal.js/plugin/remotes/remotes.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/remotes/remotes.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Touch-based remote controller for your presentation courtesy 
- * of the folks at http://remotes.io
- */
-
-(function(window){
-
-    /**
-     * Detects if we are dealing with a touch enabled device (with some false positives)
-     * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js   
-     */
-    var hasTouch  = (function(){
-        return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
-    })();
-
-    /**
-     * Detects if notes are enable and the current page is opened inside an /iframe
-     * this prevents loading Remotes.io several times
-     */
-    var isNotesAndIframe = (function(){
-        return window.RevealNotes && !(self == top);
-    })();
-
-    if(!hasTouch && !isNotesAndIframe){
-        head.ready( 'remotes.ne.min.js', function() {
-            new Remotes("preview")
-                .on("swipe-left", function(e){ Reveal.right(); })
-                .on("swipe-right", function(e){ Reveal.left(); })
-                .on("swipe-up", function(e){ Reveal.down(); })
-                .on("swipe-down", function(e){ Reveal.up(); })
-                .on("tap", function(e){ Reveal.next(); })
-                .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
-                .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
-            ;
-        } );
-
-        head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
-    }
-})(window);
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/search/search.js b/docs/slides/ETH14/_support/reveal.js/plugin/search/search.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/search/search.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
- * by navigatating to that slide and highlighting it.
- *
- * By Jon Snyder <snyder.jon@gmail.com>, February 2013
- */
-
-var RevealSearch = (function() {
-
-	var matchedSlides;
-	var currentMatchedIndex;
-	var searchboxDirty;
-	var myHilitor;
-
-// Original JavaScript code by Chirp Internet: www.chirp.com.au
-// Please acknowledge use of this code by including this header.
-// 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
-
-function Hilitor(id, tag)
-{
-
-  var targetNode = document.getElementById(id) || document.body;
-  var hiliteTag = tag || "EM";
-  var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
-  var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
-  var wordColor = [];
-  var colorIdx = 0;
-  var matchRegex = "";
-  var matchingSlides = [];
-
-  this.setRegex = function(input)
-  {
-    input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
-    matchRegex = new RegExp("(" + input + ")","i");
-  }
-
-  this.getRegex = function()
-  {
-    return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
-  }
-
-  // recursively apply word highlighting
-  this.hiliteWords = function(node)
-  {
-    if(node == undefined || !node) return;
-    if(!matchRegex) return;
-    if(skipTags.test(node.nodeName)) return;
-
-    if(node.hasChildNodes()) {
-      for(var i=0; i < node.childNodes.length; i++)
-        this.hiliteWords(node.childNodes[i]);
-    }
-    if(node.nodeType == 3) { // NODE_TEXT
-      if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
-      	//find the slide's section element and save it in our list of matching slides
-      	var secnode = node.parentNode;
-      	while (secnode.nodeName != 'SECTION') {
-      		secnode = secnode.parentNode;
-      	}
-      	
-      	var slideIndex = Reveal.getIndices(secnode);
-      	var slidelen = matchingSlides.length;
-      	var alreadyAdded = false;
-      	for (var i=0; i < slidelen; i++) {
-      		if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
-      			alreadyAdded = true;
-      		}
-      	}
-      	if (! alreadyAdded) {
-      		matchingSlides.push(slideIndex);
-      	}
-      	
-        if(!wordColor[regs[0].toLowerCase()]) {
-          wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
-        }
-
-        var match = document.createElement(hiliteTag);
-        match.appendChild(document.createTextNode(regs[0]));
-        match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
-        match.style.fontStyle = "inherit";
-        match.style.color = "#000";
-
-        var after = node.splitText(regs.index);
-        after.nodeValue = after.nodeValue.substring(regs[0].length);
-        node.parentNode.insertBefore(match, after);
-      }
-    }
-  };
-
-  // remove highlighting
-  this.remove = function()
-  {
-    var arr = document.getElementsByTagName(hiliteTag);
-    while(arr.length && (el = arr[0])) {
-      el.parentNode.replaceChild(el.firstChild, el);
-    }
-  };
-
-  // start highlighting at target node
-  this.apply = function(input)
-  {
-    if(input == undefined || !input) return;
-    this.remove();
-    this.setRegex(input);
-    this.hiliteWords(targetNode);
-    return matchingSlides;
-  };
-
-}
-
-	function openSearch() {
-		//ensure the search term input dialog is visible and has focus:
-		var inputbox = document.getElementById("searchinput");
-		inputbox.style.display = "inline";
-		inputbox.focus();
-		inputbox.select();
-	}
-
-	function toggleSearch() {
-		var inputbox = document.getElementById("searchinput");
-		if (inputbox.style.display !== "inline") {
-			openSearch();
-		}
-		else {
-			inputbox.style.display = "none";
-			myHilitor.remove();
-		}
-	}
-
-	function doSearch() {
-		//if there's been a change in the search term, perform a new search:
-		if (searchboxDirty) {
-			var searchstring = document.getElementById("searchinput").value;
-
-			//find the keyword amongst the slides
-			myHilitor = new Hilitor("slidecontent");
-			matchedSlides = myHilitor.apply(searchstring);
-			currentMatchedIndex = 0;
-		}
-
-		//navigate to the next slide that has the keyword, wrapping to the first if necessary
-		if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
-			currentMatchedIndex = 0;
-		}
-		if (matchedSlides.length > currentMatchedIndex) {
-			Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
-			currentMatchedIndex++;
-		}
-	}
-
-	var dom = {};
-	dom.wrapper = document.querySelector( '.reveal' );
-
-	if( !dom.wrapper.querySelector( '.searchbox' ) ) {
-			var searchElement = document.createElement( 'div' );
-			searchElement.id = "searchinputdiv";
-			searchElement.classList.add( 'searchdiv' );
-      searchElement.style.position = 'absolute';
-      searchElement.style.top = '10px';
-      searchElement.style.left = '10px';
-      //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
-			searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
-			dom.wrapper.appendChild( searchElement );
-	}
-
-	document.getElementById("searchbutton").addEventListener( 'click', function(event) {
-		doSearch();
-	}, false );
-
-	document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
-		switch (event.keyCode) {
-			case 13:
-				event.preventDefault();
-				doSearch();
-				searchboxDirty = false;
-				break;
-			default:
-				searchboxDirty = true;
-		}
-	}, false );
-
-	// Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
-	/*
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openSearch();
-		}
-	}, false );
-*/
-	return { open: openSearch };
-})();
diff --git a/docs/slides/ETH14/_support/reveal.js/plugin/zoom-js/zoom.js b/docs/slides/ETH14/_support/reveal.js/plugin/zoom-js/zoom.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/plugin/zoom-js/zoom.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Custom reveal.js integration
-(function(){
-	var isEnabled = true;
-
-	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
-		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
-
-		if( event[ modifier ] && isEnabled ) {
-			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
-		}
-	} );
-
-	Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
-	Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
-})();
-
-/*!
- * zoom.js 0.2 (modified version for use with reveal.js)
- * http://lab.hakim.se/zoom-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var zoom = (function(){
-
-	// The current zoom level (scale)
-	var level = 1;
-
-	// The current mouse position, used for panning
-	var mouseX = 0,
-		mouseY = 0;
-
-	// Timeout before pan is activated
-	var panEngageTimeout = -1,
-		panUpdateInterval = -1;
-
-	var currentOptions = null;
-
-	// Check for transform support so that we can fallback otherwise
-	var supportsTransforms = 	'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-	if( supportsTransforms ) {
-		// The easing that will be applied when we zoom in/out
-		document.body.style.transition = 'transform 0.8s ease';
-		document.body.style.OTransition = '-o-transform 0.8s ease';
-		document.body.style.msTransition = '-ms-transform 0.8s ease';
-		document.body.style.MozTransition = '-moz-transform 0.8s ease';
-		document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
-	}
-
-	// Zoom out if the user hits escape
-	document.addEventListener( 'keyup', function( event ) {
-		if( level !== 1 && event.keyCode === 27 ) {
-			zoom.out();
-		}
-	}, false );
-
-	// Monitor mouse movement for panning
-	document.addEventListener( 'mousemove', function( event ) {
-		if( level !== 1 ) {
-			mouseX = event.clientX;
-			mouseY = event.clientY;
-		}
-	}, false );
-
-	/**
-	 * Applies the CSS required to zoom in, prioritizes use of CSS3
-	 * transforms but falls back on zoom for IE.
-	 *
-	 * @param {Number} pageOffsetX
-	 * @param {Number} pageOffsetY
-	 * @param {Number} elementOffsetX
-	 * @param {Number} elementOffsetY
-	 * @param {Number} scale
-	 */
-	function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
-
-		if( supportsTransforms ) {
-			var origin = pageOffsetX +'px '+ pageOffsetY +'px',
-				transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
-
-			document.body.style.transformOrigin = origin;
-			document.body.style.OTransformOrigin = origin;
-			document.body.style.msTransformOrigin = origin;
-			document.body.style.MozTransformOrigin = origin;
-			document.body.style.WebkitTransformOrigin = origin;
-
-			document.body.style.transform = transform;
-			document.body.style.OTransform = transform;
-			document.body.style.msTransform = transform;
-			document.body.style.MozTransform = transform;
-			document.body.style.WebkitTransform = transform;
-		}
-		else {
-			// Reset all values
-			if( scale === 1 ) {
-				document.body.style.position = '';
-				document.body.style.left = '';
-				document.body.style.top = '';
-				document.body.style.width = '';
-				document.body.style.height = '';
-				document.body.style.zoom = '';
-			}
-			// Apply scale
-			else {
-				document.body.style.position = 'relative';
-				document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
-				document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
-				document.body.style.width = ( scale * 100 ) + '%';
-				document.body.style.height = ( scale * 100 ) + '%';
-				document.body.style.zoom = scale;
-			}
-		}
-
-		level = scale;
-
-		if( level !== 1 && document.documentElement.classList ) {
-			document.documentElement.classList.add( 'zoomed' );
-		}
-		else {
-			document.documentElement.classList.remove( 'zoomed' );
-		}
-	}
-
-	/**
-	 * Pan the document when the mosue cursor approaches the edges
-	 * of the window.
-	 */
-	function pan() {
-		var range = 0.12,
-			rangeX = window.innerWidth * range,
-			rangeY = window.innerHeight * range,
-			scrollOffset = getScrollOffset();
-
-		// Up
-		if( mouseY < rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
-		}
-		// Down
-		else if( mouseY > window.innerHeight - rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
-		}
-
-		// Left
-		if( mouseX < rangeX ) {
-			window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
-		}
-		// Right
-		else if( mouseX > window.innerWidth - rangeX ) {
-			window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
-		}
-	}
-
-	function getScrollOffset() {
-		return {
-			x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
-			y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
-		}
-	}
-
-	return {
-		/**
-		 * Zooms in on either a rectangle or HTML element.
-		 *
-		 * @param {Object} options
-		 *   - element: HTML element to zoom in on
-		 *   OR
-		 *   - x/y: coordinates in non-transformed space to zoom in on
-		 *   - width/height: the portion of the screen to zoom in on
-		 *   - scale: can be used instead of width/height to explicitly set scale
-		 */
-		to: function( options ) {
-			// Due to an implementation limitation we can't zoom in
-			// to another element without zooming out first
-			if( level !== 1 ) {
-				zoom.out();
-			}
-			else {
-				options.x = options.x || 0;
-				options.y = options.y || 0;
-
-				// If an element is set, that takes precedence
-				if( !!options.element ) {
-					// Space around the zoomed in element to leave on screen
-					var padding = 20;
-
-					options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
-					options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
-					options.x = options.element.getBoundingClientRect().left - padding;
-					options.y = options.element.getBoundingClientRect().top - padding;
-				}
-
-				// If width/height values are set, calculate scale from those values
-				if( options.width !== undefined && options.height !== undefined ) {
-					options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
-				}
-
-				if( options.scale > 1 ) {
-					options.x *= options.scale;
-					options.y *= options.scale;
-
-					var scrollOffset = getScrollOffset();
-
-					if( options.element ) {
-						scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
-					}
-
-					magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
-
-					if( options.pan !== false ) {
-
-						// Wait with engaging panning as it may conflict with the
-						// zoom transition
-						panEngageTimeout = setTimeout( function() {
-							panUpdateInterval = setInterval( pan, 1000 / 60 );
-						}, 800 );
-
-					}
-				}
-
-				currentOptions = options;
-			}
-		},
-
-		/**
-		 * Resets the document zoom state to its default.
-		 */
-		out: function() {
-			clearTimeout( panEngageTimeout );
-			clearInterval( panUpdateInterval );
-
-			var scrollOffset = getScrollOffset();
-
-			if( currentOptions && currentOptions.element ) {
-				scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
-			}
-
-			magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
-
-			level = 1;
-		},
-
-		// Alias
-		magnify: function( options ) { this.to( options ) },
-		reset: function() { this.out() },
-
-		zoomLevel: function() {
-			return level;
-		}
-	}
-
-})();
-
diff --git a/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image1.png b/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image1.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image1.png and /dev/null differ
diff --git a/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image2.png b/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image2.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/_support/reveal.js/test/examples/assets/image2.png and /dev/null differ
diff --git a/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.css b/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.css
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-
-	border-radius: 5px 5px 0 0;
-	-moz-border-radius: 5px 5px 0 0;
-	-webkit-border-top-right-radius: 5px;
-	-webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-	padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 0 0.5em 2em;
-	color: #5E740B;
-	background-color: #eee;
-	overflow: hidden;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
-	float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {
-	display: none;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #c2ccd1;
-	text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #fff;
-
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: black; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3c510c;
-	background-color: #fff;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-	-moz-border-radius: 0 0 5px 5px;
-	-webkit-border-bottom-right-radius: 5px;
-	-webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
-	font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.js b/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/qunit-1.12.0.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
-	assert,
-	config,
-	onErrorFnPrev,
-	testId = 0,
-	fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	// Keep a local reference to Date (GH-283)
-	Date = window.Date,
-	setTimeout = window.setTimeout,
-	defined = {
-		setTimeout: typeof window.setTimeout !== "undefined",
-		sessionStorage: (function() {
-			var x = "qunit-test-string";
-			try {
-				sessionStorage.setItem( x, x );
-				sessionStorage.removeItem( x );
-				return true;
-			} catch( e ) {
-				return false;
-			}
-		}())
-	},
-	/**
-	 * Provides a normalized error string, correcting an issue
-	 * with IE 7 (and prior) where Error.prototype.toString is
-	 * not properly implemented
-	 *
-	 * Based on http://es5.github.com/#x15.11.4.4
-	 *
-	 * @param {String|Error} error
-	 * @return {String} error message
-	 */
-	errorString = function( error ) {
-		var name, message,
-			errorString = error.toString();
-		if ( errorString.substring( 0, 7 ) === "[object" ) {
-			name = error.name ? error.name.toString() : "Error";
-			message = error.message ? error.message.toString() : "";
-			if ( name && message ) {
-				return name + ": " + message;
-			} else if ( name ) {
-				return name;
-			} else if ( message ) {
-				return message;
-			} else {
-				return "Error";
-			}
-		} else {
-			return errorString;
-		}
-	},
-	/**
-	 * Makes a clone of an object using only Array or Object as base,
-	 * and copies over the own enumerable properties.
-	 *
-	 * @param {Object} obj
-	 * @return {Object} New object with only the own properties (recursively).
-	 */
-	objectValues = function( obj ) {
-		// Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
-		/*jshint newcap: false */
-		var key, val,
-			vals = QUnit.is( "array", obj ) ? [] : {};
-		for ( key in obj ) {
-			if ( hasOwn.call( obj, key ) ) {
-				val = obj[key];
-				vals[key] = val === Object(val) ? objectValues(val) : val;
-			}
-		}
-		return vals;
-	};
-
-function Test( settings ) {
-	extend( this, settings );
-	this.assertions = [];
-	this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
-	init: function() {
-		var a, b, li,
-			tests = id( "qunit-tests" );
-
-		if ( tests ) {
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml;
-
-			// `a` initialized at top of scope
-			a = document.createElement( "a" );
-			a.innerHTML = "Rerun";
-			a.href = QUnit.url({ testNumber: this.testNumber });
-
-			li = document.createElement( "li" );
-			li.appendChild( b );
-			li.appendChild( a );
-			li.className = "running";
-			li.id = this.id = "qunit-test-output" + testId++;
-
-			tests.appendChild( li );
-		}
-	},
-	setup: function() {
-		if (
-			// Emit moduleStart when we're switching from one module to another
-			this.module !== config.previousModule ||
-				// They could be equal (both undefined) but if the previousModule property doesn't
-				// yet exist it means this is the first test in a suite that isn't wrapped in a
-				// module, in which case we'll just emit a moduleStart event for 'undefined'.
-				// Without this, reporters can get testStart before moduleStart  which is a problem.
-				!hasOwn.call( config, "previousModule" )
-		) {
-			if ( hasOwn.call( config, "previousModule" ) ) {
-				runLoggingCallbacks( "moduleDone", QUnit, {
-					name: config.previousModule,
-					failed: config.moduleStats.bad,
-					passed: config.moduleStats.all - config.moduleStats.bad,
-					total: config.moduleStats.all
-				});
-			}
-			config.previousModule = this.module;
-			config.moduleStats = { all: 0, bad: 0 };
-			runLoggingCallbacks( "moduleStart", QUnit, {
-				name: this.module
-			});
-		}
-
-		config.current = this;
-
-		this.testEnvironment = extend({
-			setup: function() {},
-			teardown: function() {}
-		}, this.moduleTestEnvironment );
-
-		this.started = +new Date();
-		runLoggingCallbacks( "testStart", QUnit, {
-			name: this.testName,
-			module: this.module
-		});
-
-		/*jshint camelcase:false */
-
-
-		/**
-		 * Expose the current test environment.
-		 *
-		 * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
-		 */
-		QUnit.current_testEnvironment = this.testEnvironment;
-
-		/*jshint camelcase:true */
-
-		if ( !config.pollution ) {
-			saveGlobal();
-		}
-		if ( config.notrycatch ) {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-			return;
-		}
-		try {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-		} catch( e ) {
-			QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-		}
-	},
-	run: function() {
-		config.current = this;
-
-		var running = id( "qunit-testresult" );
-
-		if ( running ) {
-			running.innerHTML = "Running: <br/>" + this.nameHtml;
-		}
-
-		if ( this.async ) {
-			QUnit.stop();
-		}
-
-		this.callbackStarted = +new Date();
-
-		if ( config.notrycatch ) {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-			return;
-		}
-
-		try {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-		} catch( e ) {
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-
-			QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-			// else next test will carry the responsibility
-			saveGlobal();
-
-			// Restart the tests if they're blocking
-			if ( config.blocking ) {
-				QUnit.start();
-			}
-		}
-	},
-	teardown: function() {
-		config.current = this;
-		if ( config.notrycatch ) {
-			if ( typeof this.callbackRuntime === "undefined" ) {
-				this.callbackRuntime = +new Date() - this.callbackStarted;
-			}
-			this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			return;
-		} else {
-			try {
-				this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			} catch( e ) {
-				QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-			}
-		}
-		checkPollution();
-	},
-	finish: function() {
-		config.current = this;
-		if ( config.requireExpects && this.expected === null ) {
-			QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-		} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-			QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-		} else if ( this.expected === null && !this.assertions.length ) {
-			QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
-		}
-
-		var i, assertion, a, b, time, li, ol,
-			test = this,
-			good = 0,
-			bad = 0,
-			tests = id( "qunit-tests" );
-
-		this.runtime = +new Date() - this.started;
-		config.stats.all += this.assertions.length;
-		config.moduleStats.all += this.assertions.length;
-
-		if ( tests ) {
-			ol = document.createElement( "ol" );
-			ol.className = "qunit-assert-list";
-
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				assertion = this.assertions[i];
-
-				li = document.createElement( "li" );
-				li.className = assertion.result ? "pass" : "fail";
-				li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-				ol.appendChild( li );
-
-				if ( assertion.result ) {
-					good++;
-				} else {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-
-			// store result when possible
-			if ( QUnit.config.reorder && defined.sessionStorage ) {
-				if ( bad ) {
-					sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-				} else {
-					sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-				}
-			}
-
-			if ( bad === 0 ) {
-				addClass( ol, "qunit-collapsed" );
-			}
-
-			// `b` initialized at top of scope
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
-			addEvent(b, "click", function() {
-				var next = b.parentNode.lastChild,
-					collapsed = hasClass( next, "qunit-collapsed" );
-				( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-			});
-
-			addEvent(b, "dblclick", function( e ) {
-				var target = e && e.target ? e.target : window.event.srcElement;
-				if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-					target = target.parentNode;
-				}
-				if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-					window.location = QUnit.url({ testNumber: test.testNumber });
-				}
-			});
-
-			// `time` initialized at top of scope
-			time = document.createElement( "span" );
-			time.className = "runtime";
-			time.innerHTML = this.runtime + " ms";
-
-			// `li` initialized at top of scope
-			li = id( this.id );
-			li.className = bad ? "fail" : "pass";
-			li.removeChild( li.firstChild );
-			a = li.firstChild;
-			li.appendChild( b );
-			li.appendChild( a );
-			li.appendChild( time );
-			li.appendChild( ol );
-
-		} else {
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				if ( !this.assertions[i].result ) {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-		}
-
-		runLoggingCallbacks( "testDone", QUnit, {
-			name: this.testName,
-			module: this.module,
-			failed: bad,
-			passed: this.assertions.length - bad,
-			total: this.assertions.length,
-			duration: this.runtime
-		});
-
-		QUnit.reset();
-
-		config.current = undefined;
-	},
-
-	queue: function() {
-		var bad,
-			test = this;
-
-		synchronize(function() {
-			test.init();
-		});
-		function run() {
-			// each of these can by async
-			synchronize(function() {
-				test.setup();
-			});
-			synchronize(function() {
-				test.run();
-			});
-			synchronize(function() {
-				test.teardown();
-			});
-			synchronize(function() {
-				test.finish();
-			});
-		}
-
-		// `bad` initialized at top of scope
-		// defer when previous test run passed, if storage is available
-		bad = QUnit.config.reorder && defined.sessionStorage &&
-						+sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
-		if ( bad ) {
-			run();
-		} else {
-			synchronize( run, true );
-		}
-	}
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function( name, testEnvironment ) {
-		config.currentModule = name;
-		config.currentModuleTestEnvironment = testEnvironment;
-		config.modules[name] = true;
-	},
-
-	asyncTest: function( testName, expected, callback ) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		QUnit.test( testName, expected, callback, true );
-	},
-
-	test: function( testName, expected, callback, async ) {
-		var test,
-			nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
-		}
-
-		test = new Test({
-			nameHtml: nameHtml,
-			testName: testName,
-			expected: expected,
-			async: async,
-			callback: callback,
-			module: config.currentModule,
-			moduleTestEnvironment: config.currentModuleTestEnvironment,
-			stack: sourceFromStacktrace( 2 )
-		});
-
-		if ( !validTest( test ) ) {
-			return;
-		}
-
-		test.queue();
-	},
-
-	// Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
-	expect: function( asserts ) {
-		if (arguments.length === 1) {
-			config.current.expected = asserts;
-		} else {
-			return config.current.expected;
-		}
-	},
-
-	start: function( count ) {
-		// QUnit hasn't been initialized yet.
-		// Note: RequireJS (et al) may delay onLoad
-		if ( config.semaphore === undefined ) {
-			QUnit.begin(function() {
-				// This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-				setTimeout(function() {
-					QUnit.start( count );
-				});
-			});
-			return;
-		}
-
-		config.semaphore -= count || 1;
-		// don't start until equal number of stop-calls
-		if ( config.semaphore > 0 ) {
-			return;
-		}
-		// ignore if start is called more often then stop
-		if ( config.semaphore < 0 ) {
-			config.semaphore = 0;
-			QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-			return;
-		}
-		// A slight delay, to avoid any current callbacks
-		if ( defined.setTimeout ) {
-			setTimeout(function() {
-				if ( config.semaphore > 0 ) {
-					return;
-				}
-				if ( config.timeout ) {
-					clearTimeout( config.timeout );
-				}
-
-				config.blocking = false;
-				process( true );
-			}, 13);
-		} else {
-			config.blocking = false;
-			process( true );
-		}
-	},
-
-	stop: function( count ) {
-		config.semaphore += count || 1;
-		config.blocking = true;
-
-		if ( config.testTimeout && defined.setTimeout ) {
-			clearTimeout( config.timeout );
-			config.timeout = setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				config.semaphore = 1;
-				QUnit.start();
-			}, config.testTimeout );
-		}
-	}
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-	/**
-	 * Asserts rough true-ish result.
-	 * @name ok
-	 * @function
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function( result, msg ) {
-		if ( !config.current ) {
-			throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-		result = !!result;
-		msg = msg || (result ? "okay" : "failed" );
-
-		var source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: msg
-			};
-
-		msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
-		if ( !result ) {
-			source = sourceFromStacktrace( 2 );
-			if ( source ) {
-				details.source = source;
-				msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
-			}
-		}
-		runLoggingCallbacks( "log", QUnit, details );
-		config.current.assertions.push({
-			result: result,
-			message: msg
-		});
-	},
-
-	/**
-	 * Assert that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 * @name equal
-	 * @function
-	 * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-	 */
-	equal: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected == actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notEqual
-	 * @function
-	 */
-	notEqual: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected != actual, actual, expected, message );
-	},
-
-	/**
-	 * @name propEqual
-	 * @function
-	 */
-	propEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notPropEqual
-	 * @function
-	 */
-	notPropEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name deepEqual
-	 * @function
-	 */
-	deepEqual: function( actual, expected, message ) {
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notDeepEqual
-	 * @function
-	 */
-	notDeepEqual: function( actual, expected, message ) {
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name strictEqual
-	 * @function
-	 */
-	strictEqual: function( actual, expected, message ) {
-		QUnit.push( expected === actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notStrictEqual
-	 * @function
-	 */
-	notStrictEqual: function( actual, expected, message ) {
-		QUnit.push( expected !== actual, actual, expected, message );
-	},
-
-	"throws": function( block, expected, message ) {
-		var actual,
-			expectedOutput = expected,
-			ok = false;
-
-		// 'expected' is optional
-		if ( typeof expected === "string" ) {
-			message = expected;
-			expected = null;
-		}
-
-		config.current.ignoreGlobalErrors = true;
-		try {
-			block.call( config.current.testEnvironment );
-		} catch (e) {
-			actual = e;
-		}
-		config.current.ignoreGlobalErrors = false;
-
-		if ( actual ) {
-			// we don't want to validate thrown error
-			if ( !expected ) {
-				ok = true;
-				expectedOutput = null;
-			// expected is a regexp
-			} else if ( QUnit.objectType( expected ) === "regexp" ) {
-				ok = expected.test( errorString( actual ) );
-			// expected is a constructor
-			} else if ( actual instanceof expected ) {
-				ok = true;
-			// expected is a validation function which returns true is validation passed
-			} else if ( expected.call( {}, actual ) === true ) {
-				expectedOutput = null;
-				ok = true;
-			}
-
-			QUnit.push( ok, actual, expectedOutput, message );
-		} else {
-			QUnit.pushFailure( message, null, "No exception was thrown." );
-		}
-	}
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-	QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-	QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
-	function F() {}
-	F.prototype = QUnit;
-	QUnit = new F();
-	// Make F QUnit's constructor so that we can add to the prototype later
-	QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true,
-
-	// when enabled, show only failing tests
-	// gets persisted through sessionStorage and can be changed in UI via checkbox
-	hidepassed: false,
-
-	// by default, run previously failed tests first
-	// very useful in combination with "Hide passed tests" checked
-	reorder: true,
-
-	// by default, modify document.title when suite is done
-	altertitle: true,
-
-	// when enabled, all tests must call expect()
-	requireExpects: false,
-
-	// add checkboxes that are persisted in the query-string
-	// when enabled, the id is set to `true` as a `QUnit.config` property
-	urlConfig: [
-		{
-			id: "noglobals",
-			label: "Check for Globals",
-			tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-		},
-		{
-			id: "notrycatch",
-			label: "No try-catch",
-			tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-		}
-	],
-
-	// Set of all modules.
-	modules: {},
-
-	// logging callback queues
-	begin: [],
-	done: [],
-	log: [],
-	testStart: [],
-	testDone: [],
-	moduleStart: [],
-	moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-	extend( window, QUnit.constructor.prototype );
-
-	// Expose QUnit object
-	window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-	var i,
-		location = window.location || { search: "", protocol: "file:" },
-		params = location.search.slice( 1 ).split( "&" ),
-		length = params.length,
-		urlParams = {},
-		current;
-
-	if ( params[ 0 ] ) {
-		for ( i = 0; i < length; i++ ) {
-			current = params[ i ].split( "=" );
-			current[ 0 ] = decodeURIComponent( current[ 0 ] );
-			// allow just a key to turn on a flag, e.g., test.html?noglobals
-			current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-			urlParams[ current[ 0 ] ] = current[ 1 ];
-		}
-	}
-
-	QUnit.urlParams = urlParams;
-
-	// String search anywhere in moduleName+testName
-	config.filter = urlParams.filter;
-
-	// Exact match of the module name
-	config.module = urlParams.module;
-
-	config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-	assert: assert,
-
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend( config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date(),
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			filter: "",
-			queue: [],
-			semaphore: 1
-		});
-
-		var tests, banner, result,
-			qunit = id( "qunit" );
-
-		if ( qunit ) {
-			qunit.innerHTML =
-				"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-				"<h2 id='qunit-banner'></h2>" +
-				"<div id='qunit-testrunner-toolbar'></div>" +
-				"<h2 id='qunit-userAgent'></h2>" +
-				"<ol id='qunit-tests'></ol>";
-		}
-
-		tests = id( "qunit-tests" );
-		banner = id( "qunit-banner" );
-		result = id( "qunit-testresult" );
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-
-		if ( tests ) {
-			result = document.createElement( "p" );
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests );
-			result.innerHTML = "Running...<br/>&nbsp;";
-		}
-	},
-
-	// Resets the test setup. Useful for tests that modify the DOM.
-	/*
-	DEPRECATED: Use multiple tests instead of resetting inside a test.
-	Use testStart or testDone for custom cleanup.
-	This method will throw an error in 2.0, and will be removed in 2.1
-	*/
-	reset: function() {
-		var fixture = id( "qunit-fixture" );
-		if ( fixture ) {
-			fixture.innerHTML = config.fixture;
-		}
-	},
-
-	// Trigger an event on an element.
-	// @example triggerEvent( document.body, "click" );
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent( "MouseEvents" );
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
-			elem.dispatchEvent( event );
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent( "on" + type );
-		}
-	},
-
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) === type;
-	},
-
-	objectType: function( obj ) {
-		if ( typeof obj === "undefined" ) {
-				return "undefined";
-		// consider: typeof null === object
-		}
-		if ( obj === null ) {
-				return "null";
-		}
-
-		var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-			type = match && match[1] || "";
-
-		switch ( type ) {
-			case "Number":
-				if ( isNaN(obj) ) {
-					return "nan";
-				}
-				return "number";
-			case "String":
-			case "Boolean":
-			case "Array":
-			case "Date":
-			case "RegExp":
-			case "Function":
-				return type.toLowerCase();
-		}
-		if ( typeof obj === "object" ) {
-			return "object";
-		}
-		return undefined;
-	},
-
-	push: function( result, actual, expected, message ) {
-		if ( !config.current ) {
-			throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-		}
-
-		var output, source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: message,
-				actual: actual,
-				expected: expected
-			};
-
-		message = escapeText( message ) || ( result ? "okay" : "failed" );
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		if ( !result ) {
-			expected = escapeText( QUnit.jsDump.parse(expected) );
-			actual = escapeText( QUnit.jsDump.parse(actual) );
-			output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
-			if ( actual !== expected ) {
-				output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-				output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-			}
-
-			source = sourceFromStacktrace();
-
-			if ( source ) {
-				details.source = source;
-				output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-			}
-
-			output += "</table>";
-		}
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: !!result,
-			message: output
-		});
-	},
-
-	pushFailure: function( message, source, actual ) {
-		if ( !config.current ) {
-			throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-
-		var output,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: false,
-				message: message
-			};
-
-		message = escapeText( message ) || "error";
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		output += "<table>";
-
-		if ( actual ) {
-			output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-		}
-
-		if ( source ) {
-			details.source = source;
-			output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-		}
-
-		output += "</table>";
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: false,
-			message: output
-		});
-	},
-
-	url: function( params ) {
-		params = extend( extend( {}, QUnit.urlParams ), params );
-		var key,
-			querystring = "?";
-
-		for ( key in params ) {
-			if ( hasOwn.call( params, key ) ) {
-				querystring += encodeURIComponent( key ) + "=" +
-					encodeURIComponent( params[ key ] ) + "&";
-			}
-		}
-		return window.location.protocol + "//" + window.location.host +
-			window.location.pathname + querystring.slice( 0, -1 );
-	},
-
-	extend: extend,
-	id: id,
-	addEvent: addEvent,
-	addClass: addClass,
-	hasClass: hasClass,
-	removeClass: removeClass
-	// load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
-	// Logging callbacks; all receive a single argument with the listed properties
-	// run test/logs.html for any related changes
-	begin: registerLoggingCallback( "begin" ),
-
-	// done: { failed, passed, total, runtime }
-	done: registerLoggingCallback( "done" ),
-
-	// log: { result, actual, expected, message }
-	log: registerLoggingCallback( "log" ),
-
-	// testStart: { name }
-	testStart: registerLoggingCallback( "testStart" ),
-
-	// testDone: { name, failed, passed, total, duration }
-	testDone: registerLoggingCallback( "testDone" ),
-
-	// moduleStart: { name }
-	moduleStart: registerLoggingCallback( "moduleStart" ),
-
-	// moduleDone: { name, failed, passed, total }
-	moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-QUnit.load = function() {
-	runLoggingCallbacks( "begin", QUnit, {} );
-
-	// Initialize the config, saving the execution queue
-	var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-		urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-		numModules = 0,
-		moduleNames = [],
-		moduleFilterHtml = "",
-		urlConfigHtml = "",
-		oldconfig = extend( {}, config );
-
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	len = config.urlConfig.length;
-
-	for ( i = 0; i < len; i++ ) {
-		val = config.urlConfig[i];
-		if ( typeof val === "string" ) {
-			val = {
-				id: val,
-				label: val,
-				tooltip: "[no tooltip available]"
-			};
-		}
-		config[ val.id ] = QUnit.urlParams[ val.id ];
-		urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-			"' name='" + escapeText( val.id ) +
-			"' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-			" title='" + escapeText( val.tooltip ) +
-			"'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-			"' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
-	}
-	for ( i in config.modules ) {
-		if ( config.modules.hasOwnProperty( i ) ) {
-			moduleNames.push(i);
-		}
-	}
-	numModules = moduleNames.length;
-	moduleNames.sort( function( a, b ) {
-		return a.localeCompare( b );
-	});
-	moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-		( config.module === undefined  ? "selected='selected'" : "" ) +
-		">< All Modules ></option>";
-
-
-	for ( i = 0; i < numModules; i++) {
-			moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
-				( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
-				">" + escapeText(moduleNames[i]) + "</option>";
-	}
-	moduleFilterHtml += "</select>";
-
-	// `userAgent` initialized at top of scope
-	userAgent = id( "qunit-userAgent" );
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-
-	// `banner` initialized at top of scope
-	banner = id( "qunit-header" );
-	if ( banner ) {
-		banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
-	}
-
-	// `toolbar` initialized at top of scope
-	toolbar = id( "qunit-testrunner-toolbar" );
-	if ( toolbar ) {
-		// `filter` initialized at top of scope
-		filter = document.createElement( "input" );
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-
-		addEvent( filter, "click", function() {
-			var tmp,
-				ol = document.getElementById( "qunit-tests" );
-
-			if ( filter.checked ) {
-				ol.className = ol.className + " hidepass";
-			} else {
-				tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-				ol.className = tmp.replace( / hidepass /, " " );
-			}
-			if ( defined.sessionStorage ) {
-				if (filter.checked) {
-					sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
-				} else {
-					sessionStorage.removeItem( "qunit-filter-passed-tests" );
-				}
-			}
-		});
-
-		if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-			filter.checked = true;
-			// `ol` initialized at top of scope
-			ol = document.getElementById( "qunit-tests" );
-			ol.className = ol.className + " hidepass";
-		}
-		toolbar.appendChild( filter );
-
-		// `label` initialized at top of scope
-		label = document.createElement( "label" );
-		label.setAttribute( "for", "qunit-filter-pass" );
-		label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		urlConfigCheckboxesContainer = document.createElement("span");
-		urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-		urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-		// For oldIE support:
-		// * Add handlers to the individual elements instead of the container
-		// * Use "click" instead of "change"
-		// * Fallback from event.target to event.srcElement
-		addEvents( urlConfigCheckboxes, "click", function( event ) {
-			var params = {},
-				target = event.target || event.srcElement;
-			params[ target.name ] = target.checked ? true : undefined;
-			window.location = QUnit.url( params );
-		});
-		toolbar.appendChild( urlConfigCheckboxesContainer );
-
-		if (numModules > 1) {
-			moduleFilter = document.createElement( "span" );
-			moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
-			moduleFilter.innerHTML = moduleFilterHtml;
-			addEvent( moduleFilter.lastChild, "change", function() {
-				var selectBox = moduleFilter.getElementsByTagName("select")[0],
-					selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
-				window.location = QUnit.url({
-					module: ( selectedModule === "" ) ? undefined : selectedModule,
-					// Remove any existing filters
-					filter: undefined,
-					testNumber: undefined
-				});
-			});
-			toolbar.appendChild(moduleFilter);
-		}
-	}
-
-	// `main` initialized at top of scope
-	main = id( "qunit-fixture" );
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if ( config.autostart ) {
-		QUnit.start();
-	}
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-	var ret = false;
-	if ( onErrorFnPrev ) {
-		ret = onErrorFnPrev( error, filePath, linerNr );
-	}
-
-	// Treat return value as window.onerror itself does,
-	// Only do our handling if not suppressed.
-	if ( ret !== true ) {
-		if ( QUnit.config.current ) {
-			if ( QUnit.config.current.ignoreGlobalErrors ) {
-				return true;
-			}
-			QUnit.pushFailure( error, filePath + ":" + linerNr );
-		} else {
-			QUnit.test( "global failure", extend( function() {
-				QUnit.pushFailure( error, filePath + ":" + linerNr );
-			}, { validTest: validTest } ) );
-		}
-		return false;
-	}
-
-	return ret;
-};
-
-function done() {
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		runLoggingCallbacks( "moduleDone", QUnit, {
-			name: config.currentModule,
-			failed: config.moduleStats.bad,
-			passed: config.moduleStats.all - config.moduleStats.bad,
-			total: config.moduleStats.all
-		});
-	}
-	delete config.previousModule;
-
-	var i, key,
-		banner = id( "qunit-banner" ),
-		tests = id( "qunit-tests" ),
-		runtime = +new Date() - config.started,
-		passed = config.stats.all - config.stats.bad,
-		html = [
-			"Tests completed in ",
-			runtime,
-			" milliseconds.<br/>",
-			"<span class='passed'>",
-			passed,
-			"</span> assertions of <span class='total'>",
-			config.stats.all,
-			"</span> passed, <span class='failed'>",
-			config.stats.bad,
-			"</span> failed."
-		].join( "" );
-
-	if ( banner ) {
-		banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
-	}
-
-	if ( tests ) {
-		id( "qunit-testresult" ).innerHTML = html;
-	}
-
-	if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-		// show ✖ for good, ✔ for bad suite result in title
-		// use escape sequences in case file gets loaded with non-utf-8-charset
-		document.title = [
-			( config.stats.bad ? "\u2716" : "\u2714" ),
-			document.title.replace( /^[\u2714\u2716] /i, "" )
-		].join( " " );
-	}
-
-	// clear own sessionStorage items if all tests passed
-	if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-		// `key` & `i` initialized at top of scope
-		for ( i = 0; i < sessionStorage.length; i++ ) {
-			key = sessionStorage.key( i++ );
-			if ( key.indexOf( "qunit-test-" ) === 0 ) {
-				sessionStorage.removeItem( key );
-			}
-		}
-	}
-
-	// scroll back to top to show results
-	if ( window.scrollTo ) {
-		window.scrollTo(0, 0);
-	}
-
-	runLoggingCallbacks( "done", QUnit, {
-		failed: config.stats.bad,
-		passed: passed,
-		total: config.stats.all,
-		runtime: runtime
-	});
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-	var include,
-		filter = config.filter && config.filter.toLowerCase(),
-		module = config.module && config.module.toLowerCase(),
-		fullName = (test.module + ": " + test.testName).toLowerCase();
-
-	// Internally-generated tests are always valid
-	if ( test.callback && test.callback.validTest === validTest ) {
-		delete test.callback.validTest;
-		return true;
-	}
-
-	if ( config.testNumber ) {
-		return test.testNumber === config.testNumber;
-	}
-
-	if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-		return false;
-	}
-
-	if ( !filter ) {
-		return true;
-	}
-
-	include = filter.charAt( 0 ) !== "!";
-	if ( !include ) {
-		filter = filter.slice( 1 );
-	}
-
-	// If the filter matches, we need to honour include
-	if ( fullName.indexOf( filter ) !== -1 ) {
-		return include;
-	}
-
-	// Otherwise, do the opposite
-	return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-	offset = offset === undefined ? 3 : offset;
-
-	var stack, include, i;
-
-	if ( e.stacktrace ) {
-		// Opera
-		return e.stacktrace.split( "\n" )[ offset + 3 ];
-	} else if ( e.stack ) {
-		// Firefox, Chrome
-		stack = e.stack.split( "\n" );
-		if (/^error$/i.test( stack[0] ) ) {
-			stack.shift();
-		}
-		if ( fileName ) {
-			include = [];
-			for ( i = offset; i < stack.length; i++ ) {
-				if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-					break;
-				}
-				include.push( stack[ i ] );
-			}
-			if ( include.length ) {
-				return include.join( "\n" );
-			}
-		}
-		return stack[ offset ];
-	} else if ( e.sourceURL ) {
-		// Safari, PhantomJS
-		// hopefully one day Safari provides actual stacktraces
-		// exclude useless self-reference for generated Error objects
-		if ( /qunit.js$/.test( e.sourceURL ) ) {
-			return;
-		}
-		// for actual exceptions, this is useful
-		return e.sourceURL + ":" + e.line;
-	}
-}
-function sourceFromStacktrace( offset ) {
-	try {
-		throw new Error();
-	} catch ( e ) {
-		return extractStacktrace( e, offset );
-	}
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-	if ( !s ) {
-		return "";
-	}
-	s = s + "";
-	// Both single quotes and double quotes (for attributes)
-	return s.replace( /['"<>&]/g, function( s ) {
-		switch( s ) {
-			case "'":
-				return "&#039;";
-			case "\"":
-				return "&quot;";
-			case "<":
-				return "&lt;";
-			case ">":
-				return "&gt;";
-			case "&":
-				return "&amp;";
-		}
-	});
-}
-
-function synchronize( callback, last ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process( last );
-	}
-}
-
-function process( last ) {
-	function next() {
-		process( last );
-	}
-	var start = new Date().getTime();
-	config.depth = config.depth ? config.depth + 1 : 1;
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-			config.queue.shift()();
-		} else {
-			setTimeout( next, 13 );
-			break;
-		}
-	}
-	config.depth--;
-	if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-		done();
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			if ( hasOwn.call( window, key ) ) {
-				// in Opera sometimes DOM element ids show up here, ignore them
-				if ( /^qunit-test-output/.test( key ) ) {
-					continue;
-				}
-				config.pollution.push( key );
-			}
-		}
-	}
-}
-
-function checkPollution() {
-	var newGlobals,
-		deletedGlobals,
-		old = config.pollution;
-
-	saveGlobal();
-
-	newGlobals = diff( config.pollution, old );
-	if ( newGlobals.length > 0 ) {
-		QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-	}
-
-	deletedGlobals = diff( old, config.pollution );
-	if ( deletedGlobals.length > 0 ) {
-		QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var i, j,
-		result = a.slice();
-
-	for ( i = 0; i < result.length; i++ ) {
-		for ( j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice( i, 1 );
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function extend( a, b ) {
-	for ( var prop in b ) {
-		if ( hasOwn.call( b, prop ) ) {
-			// Avoid "Member not found" error in IE8 caused by messing with window.constructor
-			if ( !( prop === "constructor" && a === window ) ) {
-				if ( b[ prop ] === undefined ) {
-					delete a[ prop ];
-				} else {
-					a[ prop ] = b[ prop ];
-				}
-			}
-		}
-	}
-
-	return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
-	// Standards-based browsers
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	// IE
-	} else {
-		elem.attachEvent( "on" + type, fn );
-	}
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
-	var i = elems.length;
-	while ( i-- ) {
-		addEvent( elems[i], type, fn );
-	}
-}
-
-function hasClass( elem, name ) {
-	return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-	if ( !hasClass( elem, name ) ) {
-		elem.className += (elem.className ? " " : "") + name;
-	}
-}
-
-function removeClass( elem, name ) {
-	var set = " " + elem.className + " ";
-	// Class name may appear multiple times
-	while ( set.indexOf(" " + name + " ") > -1 ) {
-		set = set.replace(" " + name + " " , " ");
-	}
-	// If possible, trim it for prettiness, but not necessarily
-	elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
-	return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-		document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-	return function( callback ) {
-		config[key].push( callback );
-	};
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-	var i, callbacks;
-	if ( QUnit.hasOwnProperty( key ) ) {
-		QUnit[ key ].call(scope, args );
-	} else {
-		callbacks = config[ key ];
-		for ( i = 0; i < callbacks.length; i++ ) {
-			callbacks[ i ].call( scope, args );
-		}
-	}
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
-	// Call the o related callback with the given arguments.
-	function bindCallbacks( o, callbacks, args ) {
-		var prop = QUnit.objectType( o );
-		if ( prop ) {
-			if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
-				return callbacks[ prop ].apply( callbacks, args );
-			} else {
-				return callbacks[ prop ]; // or undefined
-			}
-		}
-	}
-
-	// the real equiv function
-	var innerEquiv,
-		// stack to decide between skip/abort functions
-		callers = [],
-		// stack to avoiding loops from circular referencing
-		parents = [],
-		parentsB = [],
-
-		getProto = Object.getPrototypeOf || function ( obj ) {
-			/*jshint camelcase:false */
-			return obj.__proto__;
-		},
-		callbacks = (function () {
-
-			// for string, boolean, number and null
-			function useStrictEquality( b, a ) {
-				/*jshint eqeqeq:false */
-				if ( b instanceof a.constructor || a instanceof b.constructor ) {
-					// to catch short annotation VS 'new' annotation of a
-					// declaration
-					// e.g. var i = 1;
-					// var j = new Number(1);
-					return a == b;
-				} else {
-					return a === b;
-				}
-			}
-
-			return {
-				"string": useStrictEquality,
-				"boolean": useStrictEquality,
-				"number": useStrictEquality,
-				"null": useStrictEquality,
-				"undefined": useStrictEquality,
-
-				"nan": function( b ) {
-					return isNaN( b );
-				},
-
-				"date": function( b, a ) {
-					return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
-				},
-
-				"regexp": function( b, a ) {
-					return QUnit.objectType( b ) === "regexp" &&
-						// the regex itself
-						a.source === b.source &&
-						// and its modifiers
-						a.global === b.global &&
-						// (gmi) ...
-						a.ignoreCase === b.ignoreCase &&
-						a.multiline === b.multiline &&
-						a.sticky === b.sticky;
-				},
-
-				// - skip when the property is a method of an instance (OOP)
-				// - abort otherwise,
-				// initial === would have catch identical references anyway
-				"function": function() {
-					var caller = callers[callers.length - 1];
-					return caller !== Object && typeof caller !== "undefined";
-				},
-
-				"array": function( b, a ) {
-					var i, j, len, loop, aCircular, bCircular;
-
-					// b could be an object literal here
-					if ( QUnit.objectType( b ) !== "array" ) {
-						return false;
-					}
-
-					len = a.length;
-					if ( len !== b.length ) {
-						// safe and faster
-						return false;
-					}
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-					for ( i = 0; i < len; i++ ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									parents.pop();
-									parentsB.pop();
-									return false;
-								}
-							}
-						}
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							parents.pop();
-							parentsB.pop();
-							return false;
-						}
-					}
-					parents.pop();
-					parentsB.pop();
-					return true;
-				},
-
-				"object": function( b, a ) {
-					/*jshint forin:false */
-					var i, j, loop, aCircular, bCircular,
-						// Default to true
-						eq = true,
-						aProperties = [],
-						bProperties = [];
-
-					// comparing constructors is more strict than using
-					// instanceof
-					if ( a.constructor !== b.constructor ) {
-						// Allow objects with no prototype to be equivalent to
-						// objects with Object as their constructor.
-						if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
-							( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
-								return false;
-						}
-					}
-
-					// stack constructor before traversing properties
-					callers.push( a.constructor );
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-
-					// be strict: don't ensure hasOwnProperty and go deep
-					for ( i in a ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									eq = false;
-									break;
-								}
-							}
-						}
-						aProperties.push(i);
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							eq = false;
-							break;
-						}
-					}
-
-					parents.pop();
-					parentsB.pop();
-					callers.pop(); // unstack, we are done
-
-					for ( i in b ) {
-						bProperties.push( i ); // collect b's properties
-					}
-
-					// Ensures identical properties name
-					return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
-				}
-			};
-		}());
-
-	innerEquiv = function() { // can take multiple arguments
-		var args = [].slice.apply( arguments );
-		if ( args.length < 2 ) {
-			return true; // end transition
-		}
-
-		return (function( a, b ) {
-			if ( a === b ) {
-				return true; // catch the most you can
-			} else if ( a === null || b === null || typeof a === "undefined" ||
-					typeof b === "undefined" ||
-					QUnit.objectType(a) !== QUnit.objectType(b) ) {
-				return false; // don't lose time with error prone cases
-			} else {
-				return bindCallbacks(a, callbacks, [ b, a ]);
-			}
-
-			// apply transition with (1..n) arguments
-		}( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
-	};
-
-	return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
-	}
-	function literal( o ) {
-		return o + "";
-	}
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join ) {
-			arr = arr.join( "," + s + inner );
-		}
-		if ( !arr ) {
-			return pre + post;
-		}
-		return [ pre, inner + arr, base + post ].join(s);
-	}
-	function array( arr, stack ) {
-		var i = arr.length, ret = new Array(i);
-		this.up();
-		while ( i-- ) {
-			ret[i] = this.parse( arr[i] , undefined , stack);
-		}
-		this.down();
-		return join( "[", ret, "]" );
-	}
-
-	var reName = /^function (\w+)/,
-		jsDump = {
-			// type is used mostly internally, you can fix a (custom)type in advance
-			parse: function( obj, type, stack ) {
-				stack = stack || [ ];
-				var inStack, res,
-					parser = this.parsers[ type || this.typeOf(obj) ];
-
-				type = typeof parser;
-				inStack = inArray( obj, stack );
-
-				if ( inStack !== -1 ) {
-					return "recursion(" + (inStack - stack.length) + ")";
-				}
-				if ( type === "function" )  {
-					stack.push( obj );
-					res = parser.call( this, obj, stack );
-					stack.pop();
-					return res;
-				}
-				return ( type === "string" ) ? parser : this.parsers.error;
-			},
-			typeOf: function( obj ) {
-				var type;
-				if ( obj === null ) {
-					type = "null";
-				} else if ( typeof obj === "undefined" ) {
-					type = "undefined";
-				} else if ( QUnit.is( "regexp", obj) ) {
-					type = "regexp";
-				} else if ( QUnit.is( "date", obj) ) {
-					type = "date";
-				} else if ( QUnit.is( "function", obj) ) {
-					type = "function";
-				} else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
-					type = "window";
-				} else if ( obj.nodeType === 9 ) {
-					type = "document";
-				} else if ( obj.nodeType ) {
-					type = "node";
-				} else if (
-					// native arrays
-					toString.call( obj ) === "[object Array]" ||
-					// NodeList objects
-					( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-				) {
-					type = "array";
-				} else if ( obj.constructor === Error.prototype.constructor ) {
-					type = "error";
-				} else {
-					type = typeof obj;
-				}
-				return type;
-			},
-			separator: function() {
-				return this.multiline ?	this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
-			},
-			// extra can be a number, shortcut for increasing-calling-decreasing
-			indent: function( extra ) {
-				if ( !this.multiline ) {
-					return "";
-				}
-				var chr = this.indentChar;
-				if ( this.HTML ) {
-					chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
-				}
-				return new Array( this.depth + ( extra || 0 ) ).join(chr);
-			},
-			up: function( a ) {
-				this.depth += a || 1;
-			},
-			down: function( a ) {
-				this.depth -= a || 1;
-			},
-			setParser: function( name, parser ) {
-				this.parsers[name] = parser;
-			},
-			// The next 3 are exposed so you can use them
-			quote: quote,
-			literal: literal,
-			join: join,
-			//
-			depth: 1,
-			// This is the list of parsers, to modify them, use jsDump.setParser
-			parsers: {
-				window: "[Window]",
-				document: "[Document]",
-				error: function(error) {
-					return "Error(\"" + error.message + "\")";
-				},
-				unknown: "[Unknown]",
-				"null": "null",
-				"undefined": "undefined",
-				"function": function( fn ) {
-					var ret = "function",
-						// functions never have name in IE
-						name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-					if ( name ) {
-						ret += " " + name;
-					}
-					ret += "( ";
-
-					ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
-					return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
-				},
-				array: array,
-				nodelist: array,
-				"arguments": array,
-				object: function( map, stack ) {
-					/*jshint forin:false */
-					var ret = [ ], keys, key, val, i;
-					QUnit.jsDump.up();
-					keys = [];
-					for ( key in map ) {
-						keys.push( key );
-					}
-					keys.sort();
-					for ( i = 0; i < keys.length; i++ ) {
-						key = keys[ i ];
-						val = map[ key ];
-						ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
-					}
-					QUnit.jsDump.down();
-					return join( "{", ret, "}" );
-				},
-				node: function( node ) {
-					var len, i, val,
-						open = QUnit.jsDump.HTML ? "&lt;" : "<",
-						close = QUnit.jsDump.HTML ? "&gt;" : ">",
-						tag = node.nodeName.toLowerCase(),
-						ret = open + tag,
-						attrs = node.attributes;
-
-					if ( attrs ) {
-						for ( i = 0, len = attrs.length; i < len; i++ ) {
-							val = attrs[i].nodeValue;
-							// IE6 includes all attributes in .attributes, even ones not explicitly set.
-							// Those have values like undefined, null, 0, false, "" or "inherit".
-							if ( val && val !== "inherit" ) {
-								ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
-							}
-						}
-					}
-					ret += close;
-
-					// Show content of TextNode or CDATASection
-					if ( node.nodeType === 3 || node.nodeType === 4 ) {
-						ret += node.nodeValue;
-					}
-
-					return ret + open + "/" + tag + close;
-				},
-				// function calls it internally, it's the arguments part of the function
-				functionArgs: function( fn ) {
-					var args,
-						l = fn.length;
-
-					if ( !l ) {
-						return "";
-					}
-
-					args = new Array(l);
-					while ( l-- ) {
-						// 97 is 'a'
-						args[l] = String.fromCharCode(97+l);
-					}
-					return " " + args.join( ", " ) + " ";
-				},
-				// object calls it internally, the key part of an item in a map
-				key: quote,
-				// function calls it internally, it's the content of the function
-				functionCode: "[code]",
-				// node calls it internally, it's an html attribute value
-				attribute: quote,
-				string: quote,
-				date: quote,
-				regexp: literal,
-				number: literal,
-				"boolean": literal
-			},
-			// if true, entities are escaped ( <, >, \t, space and \n )
-			HTML: false,
-			// indentation unit
-			indentChar: "  ",
-			// if true, items in a collection, are separated by a \n, else just a space.
-			multiline: true
-		};
-
-	return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
-	if ( array.indexOf ) {
-		return array.indexOf( elem );
-	}
-
-	for ( var i = 0, length = array.length; i < length; i++ ) {
-		if ( array[ i ] === elem ) {
-			return i;
-		}
-	}
-
-	return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	/*jshint eqeqeq:false, eqnull:true */
-	function diff( o, n ) {
-		var i,
-			ns = {},
-			os = {};
-
-		for ( i = 0; i < n.length; i++ ) {
-			if ( !hasOwn.call( ns, n[i] ) ) {
-				ns[ n[i] ] = {
-					rows: [],
-					o: null
-				};
-			}
-			ns[ n[i] ].rows.push( i );
-		}
-
-		for ( i = 0; i < o.length; i++ ) {
-			if ( !hasOwn.call( os, o[i] ) ) {
-				os[ o[i] ] = {
-					rows: [],
-					n: null
-				};
-			}
-			os[ o[i] ].rows.push( i );
-		}
-
-		for ( i in ns ) {
-			if ( hasOwn.call( ns, i ) ) {
-				if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-					n[ ns[i].rows[0] ] = {
-						text: n[ ns[i].rows[0] ],
-						row: os[i].rows[0]
-					};
-					o[ os[i].rows[0] ] = {
-						text: o[ os[i].rows[0] ],
-						row: ns[i].rows[0]
-					};
-				}
-			}
-		}
-
-		for ( i = 0; i < n.length - 1; i++ ) {
-			if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
-						n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
-				n[ i + 1 ] = {
-					text: n[ i + 1 ],
-					row: n[i].row + 1
-				};
-				o[ n[i].row + 1 ] = {
-					text: o[ n[i].row + 1 ],
-					row: i + 1
-				};
-			}
-		}
-
-		for ( i = n.length - 1; i > 0; i-- ) {
-			if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
-						n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
-				n[ i - 1 ] = {
-					text: n[ i - 1 ],
-					row: n[i].row - 1
-				};
-				o[ n[i].row - 1 ] = {
-					text: o[ n[i].row - 1 ],
-					row: i - 1
-				};
-			}
-		}
-
-		return {
-			o: o,
-			n: n
-		};
-	}
-
-	return function( o, n ) {
-		o = o.replace( /\s+$/, "" );
-		n = n.replace( /\s+$/, "" );
-
-		var i, pre,
-			str = "",
-			out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
-			oSpace = o.match(/\s+/g),
-			nSpace = n.match(/\s+/g);
-
-		if ( oSpace == null ) {
-			oSpace = [ " " ];
-		}
-		else {
-			oSpace.push( " " );
-		}
-
-		if ( nSpace == null ) {
-			nSpace = [ " " ];
-		}
-		else {
-			nSpace.push( " " );
-		}
-
-		if ( out.n.length === 0 ) {
-			for ( i = 0; i < out.o.length; i++ ) {
-				str += "<del>" + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if ( out.n[0].text == null ) {
-				for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
-					str += "<del>" + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-
-			for ( i = 0; i < out.n.length; i++ ) {
-				if (out.n[i].text == null) {
-					str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					// `pre` initialized at top of scope
-					pre = "";
-
-					for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
-						pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-
-		return str;
-	};
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
-	extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/docs/slides/ETH14/_support/reveal.js/test/test-markdown-element-attributes.js b/docs/slides/ETH14/_support/reveal.js/test/test-markdown-element-attributes.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/test-markdown-element-attributes.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
-	});
-
-
-	test( 'Attributes on element header in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
-	});
-
-	test( 'Attributes on element paragraphs in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
-	});
-
-	test( 'Attributes on element list items in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
-	});
-
-	test( 'Attributes on element paragraphs in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
-	});
-
-	test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
-	});
-
-	test( 'Attributes on elements in single slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/ETH14/_support/reveal.js/test/test-markdown-slide-attributes.js b/docs/slides/ETH14/_support/reveal.js/test/test-markdown-slide-attributes.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/test-markdown-slide-attributes.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
-	});
-
-	test( 'Id on slide', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
-	});
-
-	test( 'data-background attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-background attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-transition attributes with inline content', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/ETH14/_support/reveal.js/test/test-markdown.js b/docs/slides/ETH14/_support/reveal.js/test/test-markdown.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/test-markdown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/ETH14/_support/reveal.js/test/test.js b/docs/slides/ETH14/_support/reveal.js/test/test.js
deleted file mode 100644
--- a/docs/slides/ETH14/_support/reveal.js/test/test.js
+++ /dev/null
@@ -1,438 +0,0 @@
-
-// These tests expect the DOM to contain a presentation
-// with the following slide structure:
-//
-// 1
-// 2 - Three sub-slides
-// 3 - Three fragment elements
-// 3 - Two fragments with same data-fragment-index
-// 4
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	// ---------------------------------------------------------------
-	// DOM TESTS
-
-	QUnit.module( 'DOM' );
-
-	test( 'Initial slides classes', function() {
-		var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
-
-		ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
-	});
-
-	// ---------------------------------------------------------------
-	// API TESTS
-
-	QUnit.module( 'API' );
-
-	test( 'Reveal.isReady', function() {
-		strictEqual( Reveal.isReady(), true, 'returns true' );
-	});
-
-	test( 'Reveal.isOverview', function() {
-		strictEqual( Reveal.isOverview(), false, 'false by default' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
-	});
-
-	test( 'Reveal.isPaused', function() {
-		strictEqual( Reveal.isPaused(), false, 'false by default' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), true, 'true after pausing' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), false, 'false after resuming' );
-	});
-
-	test( 'Reveal.isFirstSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-
-		Reveal.slide( 1, 0 );
-		strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.isLastSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-
-		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
-
-		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.getIndices', function() {
-		var indices = Reveal.getIndices();
-
-		ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
-		ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
-		ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
-
-		Reveal.slide( 1, 0 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
-
-		Reveal.slide( 1, 2 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
-
-		Reveal.slide( 0, 0 );
-	});
-
-	test( 'Reveal.getSlide', function() {
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-
-		equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
-
-		strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
-	});
-
-	test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
-		Reveal.slide( 0, 0 );
-		Reveal.slide( 1, 0 );
-
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-		var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
-
-		equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
-		equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
-	});
-
-	test( 'Reveal.getScale', function() {
-		ok( typeof Reveal.getScale() === 'number', 'has scale' );
-	});
-
-	test( 'Reveal.getConfig', function() {
-		ok( typeof Reveal.getConfig() === 'object', 'has config' );
-	});
-
-	test( 'Reveal.configure', function() {
-		strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
-
-		Reveal.configure({ loop: true });
-		strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
-
-		Reveal.configure({ loop: false, customTestValue: 1 });
-		strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
-	});
-
-	test( 'Reveal.availableRoutes', function() {
-		Reveal.slide( 0, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
-
-		Reveal.slide( 1, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
-	});
-
-	test( 'Reveal.next', function() {
-		Reveal.slide( 0, 0 );
-
-		// Step through vertical child slides
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
-
-		// Step through fragments
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
-	});
-
-	test( 'Reveal.next at end', function() {
-		Reveal.slide( 3 );
-
-		// We're at the end, this should have no effect
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-	});
-
-
-	// ---------------------------------------------------------------
-	// FRAGMENT TESTS
-
-	QUnit.module( 'Fragments' );
-
-	test( 'Sliding to fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
-
-		Reveal.slide( 2, 0, 0 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
-
-		Reveal.slide( 2, 0, 2 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
-
-		Reveal.slide( 2, 0, 1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
-	});
-
-	test( 'Hiding all fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
-
-		Reveal.slide( 2, 0, -1 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
-	});
-
-	test( 'Current fragment', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
-
-		Reveal.slide( 1, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
-	});
-
-	test( 'Stepping through fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-
-		// forwards:
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
-
-		Reveal.right();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
-
-		Reveal.down();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
-
-		Reveal.down(); // moves to f #3
-
-		// backwards:
-
-		Reveal.prev();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
-
-		Reveal.left();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
-
-		Reveal.up();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
-	});
-
-	test( 'Stepping past fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 0, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
-	});
-
-	test( 'Fragment indices', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
-	});
-
-	test( 'Index generation', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		// These have no indices defined to start with
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
-	});
-
-	test( 'Index normalization', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
-
-		// These start out as 1-4-4 and should normalize to 0-1-1
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
-	});
-
-	asyncTest( 'fragmentshown event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmentshown', _onEvent );
-
-		Reveal.slide( 2, 0 );
-		Reveal.slide( 2, 0 ); // should do nothing
-		Reveal.slide( 2, 0, 0 ); // should do nothing
-		Reveal.next();
-		Reveal.next();
-		Reveal.prev(); // shouldn't fire fragmentshown
-
-		start();
-
-		Reveal.removeEventListener( 'fragmentshown', _onEvent );
-	});
-
-	asyncTest( 'fragmenthidden event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmenthidden', _onEvent );
-
-		Reveal.slide( 2, 0, 2 );
-		Reveal.slide( 2, 0, 2 ); // should do nothing
-		Reveal.prev();
-		Reveal.prev();
-		Reveal.next(); // shouldn't fire fragmenthidden
-
-		start();
-
-		Reveal.removeEventListener( 'fragmenthidden', _onEvent );
-	});
-
-
-	// ---------------------------------------------------------------
-	// CONFIGURATION VALUES
-
-	QUnit.module( 'Configuration' );
-
-	test( 'Controls', function() {
-		var controlsElement = document.querySelector( '.reveal>.controls' );
-
-		Reveal.configure({ controls: false });
-		equal( controlsElement.style.display, 'none', 'controls are hidden' );
-
-		Reveal.configure({ controls: true });
-		equal( controlsElement.style.display, 'block', 'controls are visible' );
-	});
-
-	test( 'Progress', function() {
-		var progressElement = document.querySelector( '.reveal>.progress' );
-
-		Reveal.configure({ progress: false });
-		equal( progressElement.style.display, 'none', 'progress are hidden' );
-
-		Reveal.configure({ progress: true });
-		equal( progressElement.style.display, 'block', 'progress are visible' );
-	});
-
-	test( 'Loop', function() {
-		Reveal.configure({ loop: true });
-
-		Reveal.slide( 0, 0 );
-
-		Reveal.left();
-		notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
-
-		Reveal.right();
-		equal( Reveal.getIndices().h, 0, 'looped from end to start' );
-
-		Reveal.configure({ loop: false });
-	});
-
-
-	// ---------------------------------------------------------------
-	// EVENT TESTS
-
-	QUnit.module( 'Events' );
-
-	asyncTest( 'slidechanged', function() {
-		expect( 3 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'slidechanged', _onEvent );
-
-		Reveal.slide( 1, 0 ); // should trigger
-		Reveal.slide( 1, 0 ); // should do nothing
-		Reveal.next(); // should trigger
-		Reveal.slide( 3, 0 ); // should trigger
-		Reveal.next(); // should do nothing
-
-		start();
-
-		Reveal.removeEventListener( 'slidechanged', _onEvent );
-
-	});
-
-	asyncTest( 'paused', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'paused', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'paused', _onEvent );
-	});
-
-	asyncTest( 'resumed', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'resumed', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'resumed', _onEvent );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/ETH14/_support/template.reveal b/docs/slides/ETH14/_support/template.reveal
deleted file mode 100644
--- a/docs/slides/ETH14/_support/template.reveal
+++ /dev/null
@@ -1,128 +0,0 @@
-<!doctype html>  
-<html lang="en">
-	
-<head>
-<meta charset="utf-8">
-
-<title>Liquid Types</title>
-
-<meta name="description" content="Liquid Types IHP 2014">
-<meta name="author" content="Ranjit Jhala">
-
-<meta name="apple-mobile-web-app-capable" content="yes" />
-
-<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="$reveal$/css/reveal.css">
-<link rel="stylesheet" href="$reveal$/css/theme/seminar.css" id="theme">
-<!-- <link rel="stylesheet" href="$reveal$/css/print/pdf.css"> -->
-<link rel="stylesheet" href="../_support/liquidhaskell.css">
-
-<!-- For syntax highlighting -->
-<link rel="stylesheet" href="$reveal$/lib/css/zenburn.css">
-
-<script>
-	// If the query includes 'print-pdf' we'll use the PDF print sheet
-	document.write( '<link rel="stylesheet" href="$reveal$/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
-</script>
-
-<!--[if lt IE 9]>
-<script src="lib/js/html5shiv.js"></script>
-<![endif]-->
-</head>
-<body>
-
-\(
-\require{color}
-\definecolor{kvcol}{RGB}{203,23,206}
-\definecolor{tycol}{RGB}{5,177,93}
-\definecolor{refcol}{RGB}{18,110,213}
-
-\newcommand{\quals}{\mathbb{Q}}
-\newcommand{\defeq}{\ \doteq\ }
-\newcommand{\subty}{\preceq}
-\newcommand{\True}{\mathit{True}}
-\newcommand{\Int}{\mathtt{Int}}
-\newcommand{\Nat}{\mathtt{Nat}}
-\newcommand{\Zero}{\mathtt{Zero}}
-\newcommand{\foo}[4]{{#1}^{#4} + {#2}^{#4} = {#3}^{#4}}
-\newcommand{\reft}[3]{\{\bindx{#1}{#2} \mid {#3}\}}
-\newcommand{\ereft}[3]{\bindx{#1}{\{#2 \mid #3\}}}
-\newcommand{\bindx}[2]{{#1}\!:\!{#2}}
-\newcommand{\reftx}[2]{\{{#1}\mid{#2}\}}
-\newcommand{\inferrule}[3][]{\frac{#2}{#3}\;{#1}}
-\newcommand{\kvar}[1]{\color{kvcol}{\mathbf{\kappa_{#1}}}}
-\newcommand{\llen}[1]{\mathtt{llen}(#1)}
-\)
-
-<div class="reveal">
-<!-- 
-Used to fade in a background when a specific slide state is reached
--->
-<div class="state-background"></div>
-
-<!-- Slides
-Any section element inside of this "slides" container is displayed as a slide
--->
-<div class="slides">
-<!-- Pandoc -->
-$if(title)$
-<section class="titlepage">
-<h1 class="title">$title$</h1>
-$for(author)$
-<h2 class="author">$author$</h2>
-$endfor$
-<h3 class="date">$date$</h3>
-</section>
-$endif$
-$body$
-<!-- End Pandoc -->
-
-</div>
-<!-- End Slides -->
-
-<!-- Presentation progress bar -->
-<div class="progress"><span></span></div>
-</div>
-
-<!-- Initialize reveal.js :: make settings changes here -->
-<script src="$reveal$/lib/js/head.min.js"></script>
-<script src="$reveal$/js/reveal.js"></script>
-
-<!-- ORIGINAL <script type="text/javascript" src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-     -->
-
-<!-- LOCAL
-<script type="text/javascript" src="file:///Users/rjhala/research/MathJax/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
--->
-
-<script type="text/javascript" src="$mathjax$/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-<script>		
-	// Full list of configuration options available here:
-	// https://github.com/hakimel/reveal.js#configuration
-	Reveal.initialize({
-		controls: true,
-		progress: true,
-		history: true,
-		center: false,
-        rollingLinks: false,
-        theme: Reveal.getQueryHash().theme || 'seminar', // available themes are in /css/theme
-		transition: Reveal.getQueryHash().transition || 'fade', // default/cube/page/concave/linear(2d)
-
-		// Optional libraries used to extend on reveal.js
-		dependencies: [
-			//{ src: '$reveal$/lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-			{ src: '$reveal$/lib/js/classList.js', condition: function() { return !document.body.classList; } },
-			{ src: '$reveal$/lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-			{ src: '$reveal$/plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		]
-	});
-</script>
-
-</body>
-</html>
diff --git a/docs/slides/ETH14/cleanup b/docs/slides/ETH14/cleanup
deleted file mode 100644
--- a/docs/slides/ETH14/cleanup
+++ /dev/null
@@ -1,1 +0,0 @@
-find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf
diff --git a/docs/slides/ETH14/img/RedBlack.png b/docs/slides/ETH14/img/RedBlack.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/RedBlack.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/minindex-classic.png b/docs/slides/ETH14/img/minindex-classic.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/minindex-classic.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/minindex-invariant.png b/docs/slides/ETH14/img/minindex-invariant.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/minindex-invariant.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/minindex-modern.png b/docs/slides/ETH14/img/minindex-modern.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/minindex-modern.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/minindex-reduce.png b/docs/slides/ETH14/img/minindex-reduce.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/minindex-reduce.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/tension0.png b/docs/slides/ETH14/img/tension0.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/tension0.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/tension1.png b/docs/slides/ETH14/img/tension1.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/tension1.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/tension2.png b/docs/slides/ETH14/img/tension2.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/tension2.png and /dev/null differ
diff --git a/docs/slides/ETH14/img/tension3.png b/docs/slides/ETH14/img/tension3.png
deleted file mode 100644
Binary files a/docs/slides/ETH14/img/tension3.png and /dev/null differ
diff --git a/docs/slides/ETH14/lhs/00_Motivation.lhs b/docs/slides/ETH14/lhs/00_Motivation.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/00_Motivation.lhs
+++ /dev/null
@@ -1,243 +0,0 @@
- {#asds}
-========
-
-Algorithmic Verification 
-------------------------
-
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-<br>
-<br>
-
-**Goal**
-
-<br>
-
-Automatically Proving Properties of Programs 
-
-Algorithmic Verification
-========================
-
-A Classic Example 
------------------
-
-<img src="../img/minindex-classic.png" height=300px>
-
-**Verify:** indices `i`, `min` are *within bounds* of `arr`
-
-A Classic Example 
------------------
-
-<img src="../img/minindex-classic.png" height=300px>
-
-Easy, use Program **Logic** + **Analysis**
-
-Program Logic 
--------------
-
-<img src="../img/minindex-invariant.png" height=300px>
-
--------------------   ----------------------------------------------------
-**Specification**     *Predicates* eg. invariants, pre-/post-conditions
-**Verification**      *Conditions* checked by SMT solver
--------------------   ----------------------------------------------------
-
-Program Logic 
--------------
-
-<br>
-
--------------------   ----------------------------------------------------
-**Specification**     *Predicates* eg. invariants, pre-/post-conditions
-**Verification**      *Conditions* checked by SMT solver
--------------------   ----------------------------------------------------
-
-<br>
-
-No invariants? **Inference** via Analysis...
-
-Program Analysis 
-----------------
-
-<br>
-
-**Invariants are Fixpoints of Reachable States**
-
-<br>
-
-Computable via *Dataflow Analysis* or *Abstract Interpretation*
-
-<br>
-
-Logic + Analysis 
-----------------
-
-<br>
-
--------------------   ----------------------------------------------------
-**Specification**     *Predicates*, eg. invariants, pre-/post-conditions
-**Verification**      *Conditions* checked by SMT solver
-**Inference**         *Fixpoint* over abstract domain
--------------------   ----------------------------------------------------
-
-<br>
-
-<div class="fragment">
-But ... limited to "classical" programs!
-</div>
-
-
-"Classical" vs. "Modern" Programs
-=================================
-
-
- {#classicalvmodern}
---------------------
-
-
-"Classical" Programs
---------------------
-
-<br>
-
-<div class="fragment">
-**Imperative**
-
-Assignments, Branches, Loops
-</div>
-
-<br>
-
-<div class="fragment">
-**First-Order Functions**
-
-Recursion 
-</div>
-
-<br>
-
-<div class="fragment">
-**Objects**
-
-Classes, Inheritance*
-</div>
-
-
-"Modern" Programs
------------------
-
-
-<div class="fragment">
-**Containers**
-
-Arrays, Lists, HashMaps,...
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Polymorphism**
-
-Generics, Typeclasses...
-</div>
-
-<br>
-
-<div class="fragment">
-**Higher Order Functions**
-
-Callbacks, map, reduce, filter,...
-</div>
-
-
-A "Modern" Example 
-------------------
-
-<img src="../img/minindex-modern.png" height=300px>
-
-Verify indices `i`, `min` are *within bounds* of `arr`
-
-A "Modern" Example 
-------------------
-
-<img src="../img/minindex-modern.png" height=300px>
-
-Pose vexing challenges for Logic + Analysis
-
-Logic + Analysis Challenges
-----------------------------
-
-<img src="../img/minindex-modern.png" height=250px>
-
-+ How to analyze **unbounded** contents of `arr`?
-+ <div class="fragment">How to **summarize** `reduce` independent of `callback`?</div>
-+ <div class="fragment">How to precisely reuse summary at each **context** ?</div>
-
-
- {#motiv}
-=========
-
-Logic + Analysis + *Types*
---------------------------
-
-
-Logic + Analysis + *Types*
-==========================
-
-
-Refinement Types
-----------------
-
-<br>
-
-Use **Types** to lift **Logic + Analysis** to Modern Programs 
-
-<br>
-
-<div class="fragment">
-
------   ----   ---   ----   -------------------   -------------------------------------------
-                            **Specification**     *Types* + Predicates 
-                            **Verification**      *Subtyping* + Verification Conditions
-                            **Inference**         *Type Inference* + Abstract Interpretation
------   ----   ---   ----   -------------------   -------------------------------------------
-
-<br>
-<br>
-
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-
-</div>
-
-Refinement Types
-----------------
-
-
-
-<br>
-<br>
-
-Plan 
-----
-
-+ <a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a><a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>,<a href="07_Array.lhs.slides.html" target= "_blank">Data</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
-<br>
-<br>
-
-
-
-<div class="fragment">[[continue...]](01_SimpleRefinements.lhs.slides.html)</div>
diff --git a/docs/slides/ETH14/lhs/01_SimpleRefinements.lhs b/docs/slides/ETH14/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,831 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-nats    :: L Int
-range   :: Int -> Int -> L Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example: Integers equal to `0`
-------------------------------
-
-<br>
-
-\begin{code}
-{-@ type Zero = {v:Int | v = 0} @-}
-
-{-@ zero :: Zero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}` 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
-</div>
-
-
-
-Refinements Are Predicates
-==========================
-
-From A Decidable Logic
-----------------------
-
-<br> 
-
-1. Expressions
-
-2. Predicates
-
-<br>
-
-<div class="fragment">
-
-**Refinement Logic: QF-UFLIA**
-
-Quant.-Free. Uninterpreted Functions and Linear Arithmetic 
-
-</div>
-
-
-Expressions
------------
-
-<br>
-
-\begin{spec} <div/> 
-e := x, y, z,...    -- variable
-   | 0, 1, 2,...    -- constant
-   | (e + e)        -- addition
-   | (e - e)        -- subtraction
-   | (c * e)        -- linear multiplication
-   | (f e1 ... en)  -- uninterpreted function
-\end{spec}
-
-Predicates
-----------
-
-<br>
-
-\begin{spec} <div/>
-p := e           -- atom 
-   | e1 == e2    -- equality
-   | e1 <  e2    -- ordering 
-   | (p && p)    -- and
-   | (p || p)    -- or
-   | (not p)     -- negation
-\end{spec}
-
-<br>
-
-
-Refinement Types
-----------------
-
-
-<br>
-
-\begin{spec}<div/>
-b := Int 
-   | Bool 
-   | ...         -- base types
-   | a, b, c     -- type variables
-
-t := {x:b | p}   -- refined base 
-   | x:t -> t    -- refined function  
-\end{spec}
-
-
-Subtyping Judgment 
-------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-<div class="fragment">
-
-<br>
-
-Where **environment** $\Gamma$ is a sequence of binders
-
-<br>
-
-$$\Gamma \defeq \overline{\bindx{x_i}{t_i}}$$
-
-</div>
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-[PVS' Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-<br>
-
-(For **Base** Types ...)
-
-
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$
-\begin{array}{rl}
-{\mathbf{If\ VC\ is\ Valid}}   & \bigwedge_i P_i \Rightarrow  Q  \Rightarrow R \\
-                & \\
-{\mathbf{Then}} & \overline{\bindx{x_i}{P_i}} \vdash \reft{v}{b}{Q} \subty \reft{v}{b}{R} \\
-\end{array}
-$$ 
-
-
-Example: Natural Numbers
-------------------------
-
-<br>
-
-\begin{spec} <div/>  
-        type Nat = {v:Int | 0 <= v}
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-$$
-\begin{array}{rcrccll}
-\mathbf{VC\ is\ Valid:} & \True     & \Rightarrow &  v = 0   & \Rightarrow &  0 \leq v & \mbox{(by SMT)} \\
-%                &           &             &          &             &           \\
-\mathbf{So:}      & \emptyset & \vdash      & \Zero  & \subty      & \Nat   &   \\
-\end{array}
-$$
-</div>
-
-<br>
-
-<div class="fragment">
-
-Hence, we can type:
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero   -- zero :: Zero <: Nat
-\end{code}
-</div>
-
-Contracts: Function Types
-=========================
-
- {#as}
-------
-
-Pre-Conditions
---------------
-
-
-<br>
-
-\begin{code}
-safeDiv n d = n `div` d   -- crashes if d==0
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Requires** non-zero input divisor `d`
-
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-</div>
-
-<br>
-
-
-<div class="fragment">
-Specify pre-condition as **input type** 
-
-\begin{code}
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-</div>
-
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ bad :: Nat -> Int @-}
-bad n   = 10 `safeDiv` n
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Rejected As** 
-
-$$\bindx{n}{\Nat} \vdash \reftx{v}{v = n} \not \subty \reftx{v}{v \not = 0}$$
-
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Verifies As** 
-
-$\bindx{n}{\Nat} \vdash \reftx{v}{v = n+1} \subty \reftx{v}{v \not = 0}$
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{spec} <div/>
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{spec}
-
-<br>
-
-**Verifies As**
-
-$$(0 \leq n) \Rightarrow (v = n+1) \Rightarrow (v \not = 0)$$
-
-
-
-Post-Conditions
----------------
-
-**Ensures** output is a `Nat` greater than input `x`.
-
-\begin{code}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-<div class="fragment">
-Specify post-condition as **output type**
-
-\begin{code}
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-**Dependent Function Types**
-
-Outputs *refer to* inputs
-</div>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-Postcondition is checked at **return-site**
-
-<br>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-\bindx{x}{\Int},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\bindx{x}{\Int},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\end{array}$$
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-(0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow (0 \leq v \wedge x \leq v) \\
-(0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow (0 \leq v \wedge x \leq v) \\
-\end{array}$$
-
-
- {#inference}
-=============
-
-From Checking To Inference
---------------------------
-
-<br>
-<br>
-
-**So far**
-
-How to **check** code against given signature
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-How to **infer** signatures from code
-
-</div>
-
-From Checking To Inference
---------------------------
-
-<br>
-<br>
-
-
-**2-Phase Process**
-
-<div class="fragment">
-
-<br>
-
-1. Hindley-Milner infers **types**
-2. Abstract Interpr. infers **refinements**  
-
-</div>
-
-<br>
-
-<div class="fragment">Lets quickly look at 2. </div>
-
-
-
-From Checking To Inference
-==========================
-
-
-Recipe
-------
-
-<br>
-
-<div class="fragment">
-
-**Step 1. Templates**
-
-Types with variables $\kvar{}$ for *unknown* refinements
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Step 2. Constraints**
-
-Typecheck templates: VCs $\rightarrow$ Horn *constraints* over $\kvar{}$
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Step 3. Solve**
-
-Via *least-fixpoint* over suitable abstract domain
-
-</div>
-
-Step 1. Templates (`abs`)
--------------------------
-
-<br>
-
-<div class="fragment">
-**Type**
-
-$$\bindx{x}{\Int} \rightarrow \Int$$
-</div>
-
-<br>
-
-<div class="fragment">
-**Template**
-
-$$\ereft{x}{\Int}{\kvar{1}} \rightarrow \reft{v}{\Int}{\kvar{2}}$$
-</div>
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Subtyping Queries**
-
-<br>
-
-$$
-\begin{array}{rll}
-\bindx{x}{\kvar{1}},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{\kvar{2}} \\
-\bindx{x}{\kvar{1}},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{\kvar{2}} \\
-\end{array}
-$$
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Verification Conditions**
-
-<br>
-
-$$\begin{array}{rll}
-{\kvar{1}} \wedge (0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow \kvar{2} \\
-{\kvar{1}} \wedge (0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow \kvar{2} \\
-\end{array}$$
-
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Horn Constraints** over $\kvar{}$
-
-<br>
-
-$$\begin{array}{rll}
-{\kvar{1}} \wedge (0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow \kvar{2} \\
-{\kvar{1}} \wedge (0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow \kvar{2} \\
-\end{array}$$
-
-<br>
-<br>
-
-**Note:** $\kvar{}$ occur positively, hence constraints are monotone.
-
-Step 3. Solve (`abs`)
----------------------
-
-<br>
-
-Least-fixpoint over abstract domain 
-
-<br>
-
-Step 3. Solve (`abs`)
----------------------
-
-**Predicate Abstraction**
-
-Conjunction of predicates from (finite) ground set $\quals$
-
-<br>
-
-<div class="fragment">
-$$\mbox{e.g.}\ \quals \defeq \{ c \sim X \}$$
-
-<br>
-
-$$\begin{array}{ccll}
-  c     & \in & \{0,1,\ldots   \}                & \mbox{program constants} \\
-  X     & \in & \{n,x,v,\ldots \}                & \mbox{program variables} \\
-  \sim  & \in & \{<, \leq, >, \geq, =, \not =\}  & \mbox{comparisons}       \\
-  \end{array}$$
-
-</div>
-
-Step 3. Solve (`abs`)
----------------------
-
-Least-fixpoint over abstract domain 
-
-<br>
-
-**Predicate Abstraction**
-
-Conjunction of predicates from (finite) ground set $\quals$
-
-<br>
-
-+ Obtain $\quals$ via CEGAR
-+ Or use other domains
-
-<br>
-
-[[Houdini](http://dl.acm.org/citation.cfm?id=730008), [HMC](http://goto.ucsd.edu/~rjhala/papers/hmc.html)]
-
-
-Recipe Scales Up
-----------------
-
-<br>
-
-**1. Templates** $\rightarrow$ **2. Horn Constraints** $\rightarrow$ **3. Fixpoint**
-
-<br>
-
-<div class="fragment">
-+ Define type *checker* and get *inference* for free 
-
-+ Scales to Collections, HOFs, Polymorphism
-
-</div>
-<br>
-
-<div class="fragment">
-**Next:** Collections
-</div>
-
-<!--
-<div class="fragment">
-**Key Requirement** 
-
-Refinements belong in abstract domain, e.g. QF-UFLIA
-</div>
--->
-
-
- {#universalinvariants}
-=======================
-
-Types = Universal Invariants
-----------------------------
-
-(Notoriously hard with *pure* SMT)
-
-Types Yield Universal Invariants
-================================
-
-Example: Lists
---------------
-
-
-<div class="hidden">
-\begin{code}
-infixr `C`
-\end{code}
-</div>
-
-
-<br>
-
-
-\begin{code}
-data L a = N          -- Empty 
-         | C a (L a)  -- Cons 
-\end{code}
-
-
-<br>
-
-<div class="fragment">
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{code}
-nats     =  0 `C` 1 `C` 3 `C` N
-\end{code}
-</div>
-
-
-Example: Lists
---------------
-
-<br>
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{spec} 
-nats     =  0 `C` 1 `C` 2 `C` N
-\end{spec}
-
-<br>
-
-**Logic**
-
-$$\forall x \in \mathtt{nats}. 0 \leq x$$
-
-<br>
-
-<div class="fragment">
-VCs over **quantified formulas** ... *challenging* for SMT
-</div>
-
-
-Example: Lists
---------------
-
-<br>
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{spec} 
-nats     =  0 `C` 1 `C` 2 `C` N
-\end{spec}
-
-<br>
-
-**Refinement Types**
-
-\begin{code}
-{-@ nats :: L Nat @-}
-\end{code}
-
-<br>
-
-+ <div class="fragment">Type *implicitly* has quantification</div>
-+ <div class="fragment">Sub-typing *eliminates* quantifiers</div>
-+ <div class="fragment">Robust verification via *quantifier-free* VCs</div>
-
-Example: Lists
---------------
-
-How to **verify** ? 
-
-\begin{spec} <div/>
-{-@ nats :: L Nat @-}
-nats   = l0
-  where
-    l0 = 0 `C` l1  -- Nat `C` L Nat >>> L Nat
-    l1 = 1 `C` l2  -- Nat `C` L Nat >>> L Nat
-    l2 = 2 `C` l3  -- Nat `C` L Nat >>> L Nat
-    l3 = N         -- L Nat
-\end{spec}
-
-<br>
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ type Btwn I J = { v:_ | I<=v && v<J } @-}
-\end{code}
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ range :: i:Int -> j:Int -> L (Btwn i j) @-}
-range i j            = go i
-  where
-    go n | n < j     = n `C` go (n + 1)  
-         | otherwise = N
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Type of `go` is automatically inferred
-</div>
-
-
-Example: Indexing Into List
----------------------------
-
-\begin{code} 
-(!)          :: L a -> Int -> a
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "Oops!"
-\end{code}
-
-<br>
-
-<div class="fragment">(Mouseover to view type of `liquidError`)</div>
-
-<br>
-
-<div class="fragment">To ensure safety, *require* `i` between `0` and list **length**</div>
-
-<br>
-
-<div class="fragment">Need way to **measure** the length of a list [[continue...]](02_Measures.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/ETH14/lhs/02_Measures.lhs b/docs/slides/ETH14/lhs/02_Measures.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/02_Measures.lhs
+++ /dev/null
@@ -1,309 +0,0 @@
-
- {#measures}
-============
-
-Measuring Data Types
---------------------
-
-<div class="hidden">
-
-\begin{code}
-
-{-# LIQUID "--no-termination" #-}
-{-# LIQUID "--full" #-}
-
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-
-
-length      :: L a -> Int
-(!)         :: L a -> Int -> a
-insert      :: Ord a => a -> L a -> L a
-insertSort  :: Ord a => [a] -> L a
-
-infixr `C`
-\end{code}
-
-</div>
-
-
-Measuring Data Types 
-====================
-
-Recap
------
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-
-Example: Length of a List 
--------------------------
-
-Given a type for lists:
-
-<br>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<div class="fragment">
-<br>
-
-We can define the **length** as:
-
-<br>
-
-\begin{code}
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-<div class="hidden">
-
-\begin{code}
-{-@ data L [llen] a = N | C {hd :: a, tl :: L a } @-}
-{-@ invariant {v: L a | 0 <= llen v}              @-} 
-\end{code}
-
-</div>
-
-Example: Length of a List 
--------------------------
-
-\begin{spec}
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + llen xs  @-}
-\end{spec}
-
-<br>
-
-We **strengthen** data constructor types
-
-<br>
-
-\begin{spec} <div/>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{spec}
-
-Measures Are Uninterpreted
---------------------------
-
-\begin{spec} <br>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{spec}
-
-<br>
-
-`llen` is an **uninterpreted function** in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-<br>
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) $f$ obeys **congruence** axiom:
-
-<br>
-
-$$\forall \overline{x}, \overline{y}. \overline{x} = \overline{y} \Rightarrow
-f(\overline{x}) = f(\overline{y})$$
-
-<br>
-
-<div class="fragment">
-Other properties of `llen` asserted when typing **fold** & **unfold**
-</div>
-
-<br>
-
-<div class="fragment">
-Crucial for *efficient*, *decidable* and *predictable* verification.
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-Other properties of `llen` asserted when typing **fold** & **unfold**
-
-<br>
-
-<div class="fragment">
-\begin{spec}**Fold**<br>
-z = C x y     -- z :: {v | llen v = 1 + llen y}
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{spec}**Unfold**<br>
-case z of 
-  N     -> e1 -- z :: {v | llen v = 0}
-  C x y -> e2 -- z :: {v | llen v = 1 + llen y}
-\end{spec}
-</div>
-
-
-Measured Refinements
---------------------
-
-Now, we can verify:
-
-<br>
-
-\begin{code}
-{-@ length      :: xs:L a -> EqLen xs @-}
-length N        = 0
-length (C _ xs) = 1 + length xs
-\end{code}
-
-<div class="fragment">
-
-<br>
-
-Where `EqLen` is a type alias:
-
-\begin{code}
-{-@ type EqLen Xs = {v:Nat | v = llen Xs} @-}
-\end{code}
-
-</div>
-
-List Indexing Redux
--------------------
-
-We can type list lookup:
-
-\begin{code}
-{-@ (!)      :: xs:L a -> LtLen xs -> a @-}
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "never happens!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-Where `LtLen` is a type alias:
-
-\begin{code}
-{-@ type LtLen Xs = {v:Nat | v < llen Xs} @-}
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-&nbsp; What if we *remove* the precondition?
-
-</div>
-
-Multiple Measures
------------------
-
-<br>
-
-**Multiple** measures by **conjoining** refinements.
-
-<br>
-
-<div class="fragment">
-
-e.g. Red Black Tree
-
-+ Height
-+ Color
-+ Nodes, etc.
-
-<br>
-
-Refined Data Constructors
-=========================
-
- {#refined-data-cons}
----------------------
-
-Can encode *other* invariants **inside constructors**
-
-<div class="fragment">
-
-<br>
-
-\begin{code}
-{-@ data L a = N
-             | C { x  :: a 
-                 , xs :: L {v:a| x <= v} } @-}
-\end{code}
-</div>
-<br>
-
-<div class="fragment">
-Head `x` is less than **every** element of tail `xs`
-</div>
-
-<br>
-
-<div class="fragment">
-i.e. specifies **increasing** Lists 
-</div>
-
-Increasing Lists 
-----------------
-
-\begin{spec} <br>
-data L a where
-  N :: L a
-  C :: x:a -> xs: L {v:a | x <= v} -> L a
-\end{spec}
-
-<br>
-
-- <div class="fragment">We **check** property when **folding** `C`</div>
-- <div class="fragment">We **assume** property when **unfolding** `C`</div>
-
-Increasing Lists 
-----------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs" target= "_blank">Demo: Insertion Sort</a> (hover for inferred types) 
-
-<br>
-
-\begin{code}
-insertSort xs = foldr insert N xs
-
-insert y (x `C` xs) 
-  | y <= x    = y `C` (x `C` xs)
-  | otherwise = x `C` insert y xs
-insert y N    = y `C` N    
-\end{code}
-
-<br>
-
-Recap
------
-
-<br>
-<br>
-
-
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. **Measures:** Strengthened Constructors
-
-<br>
-
-<div class="fragment">Logic + Analysis for Collections</div>
-
-<br>
-<br>
-
-<div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target="_blank">[continue]</a></div>
diff --git a/docs/slides/ETH14/lhs/03_HigherOrderFunctions.lhs b/docs/slides/ETH14/lhs/03_HigherOrderFunctions.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/03_HigherOrderFunctions.lhs
+++ /dev/null
@@ -1,276 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-\begin{code}
-module Loop (
-    listSum
-  , sumNats
-  ) where
-
-import Prelude
-
-{-@ LIQUID "--no-termination"@-}
-sumNats  :: [Int] -> Int
-add         :: Int -> Int -> Int
-\end{code}
-</div>
-
-Higher-Order Functions 
-----------------------
-
-Types scale to *Higher-Order Functions*  
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications 
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-<br>
-
-\begin{code}
-loop :: Int -> Int -> α -> (Int -> α -> α) -> α
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-By subtyping, we infer `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-\begin{code}
-listSum xs     = loop 0 n 0 body 
-  where 
-    body i acc = acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Function Subtyping** 
-
-\begin{spec}
-loop :: l -> h -> α -> (Btwn l h -> α -> α) -> α
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-At callsite, since `l := 0` and `h := llen xs` 
-
-\begin{spec}
-body :: Btwn 0 (llen xs) -> Int -> Int
-\end{spec}
-</div>
-
-Example: Summing Lists
-----------------------
-
-\begin{spec}
-listSum xs     = loop 0 n 0 body 
-  where 
-    body i acc = acc + (xs !! i)
-    n          = length xs
-\end{spec}
-
-<br>
-
-**Function Subtyping** 
-
-\begin{spec}
-body :: Btwn 0 (llen xs) -> Int -> Int
-\end{spec}
-
-<br>
-
-So `i` is `Btwn 0 (llen xs)`; indexing `!!` is verified safe.
-
-
- {#polyinst}
-============
-
-Polymorphic Instantiation
--------------------------
-
-<br>
-<br>
-<br>
-
-<div class="fragment">
-"Plugging in" summaries at call-sites
-</div>
-
-Polymorphic Instantiation
-=========================
-
- {#poly}
---------
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code}
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{spec} Recall 
-foldl :: (α -> β -> α) -> α -> [β] -> α
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-How to **instantiate** `α` and `β` ?
-</div>
-
-Function Subtyping
-------------------
-
-\begin{spec}<div/>
-(+) ::  x:Int -> y:Int -> {v:Int|v=x+y} 
-    <:  Nat   -> Nat   -> Nat
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{spec}<div/>
-             |- Nat       <: Int  -- Contra (in)
-x:Nat, y:Nat |- {v = x+y} <: Nat  -- Co    (out)
-\end{spec}
-</div>
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{spec}<div/>
-  0<=x && 0<=y && v = x+y   => 0 <= v
-\end{spec}
-</div>
-
-
-
-
-Example: Summing `Nat`s
------------------------
-
-\begin{spec} <div/> 
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{spec}
-
-<br>
-
-\begin{spec} Where:
-foldl :: (α -> β -> α) -> α -> [β] -> α
-(+)   :: Nat -> Nat -> Nat
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Hence, `sumNats` verified by **instantiating** `α,β := Nat`
-</div>
-
-<br>
-
-<div class="fragment">
-`α` is **loop invariant**, instantiation is invariant **inference**
-</div>
-
-Instantiation And Inference
----------------------------
-
-Polymorphism ubiquitous, so inference is critical!
-
-<br>
-
-<div class="fragment">
-**Step 1. Templates** 
-Instantiate with unknown refinements
-
-$$
-\begin{array}{rcl}
-\alpha & \defeq & \reft{v}{\Int}{\kvar{\alpha}}\\
-\beta  & \defeq & \reft{v}{\Int}{\kvar{\beta}}\\
-\end{array}
-$$
-</div>
-
-<br>
-<div class="fragment">
-**Step 2. Horn-Constraints** 
-By type checking the templates
-</div>
-
-<br>
-<div class="fragment">
-**Step 3. Fixpoint** 
-Abstract interpretation to get solution for $\kvar{}$
-</div>
-
-
-Iteration Dependence
---------------------
-
-**Problem:** Cannot use parametric polymorphism to verify
-
-<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-As property only holds after **last iteration** ...
-
-<br>
-
-... cannot instantiate $\alpha \defeq \reft{v}{\Int}{v = n + m}$
-</div>
-
-<br>
-
-<div class="fragment">
-**Problem:** *Iteration-dependent* invariants...? &nbsp; &nbsp; [[Continue]](04_AbstractRefinements.lhs.slides.html)
-</div>
-
diff --git a/docs/slides/ETH14/lhs/04_AbstractRefinements.lhs b/docs/slides/ETH14/lhs/04_AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/04_AbstractRefinements.lhs
+++ /dev/null
@@ -1,285 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude 
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
--- o,no        :: Int
-maxInt       :: Int -> Int -> Int
-\end{code}
-</div>
-
-
-
-Abstract Refinements
---------------------
-
-
-Abstract Refinements
-====================
-
-A Tricky Problem
-----------------
-
-<br>
-
-<div class="fragment">
-
-**Problem** 
-
-Require *context-dependent* invariants & summaries for HOFs.
-
-</div>
-
-<br>
-<br>
-
-<div class="fragment">
-
-**Example** 
-
-How to summarize *iteration-dependence* for higher-order `loop`?
-
-</div>
-
-
-
-
-Problem Is Pervasive
---------------------
-
-Lets distill it to a simple example...
-
-<div class="fragment">
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-\begin{code}
-{-@ type Odd  = {v:Int | (v mod 2) = 1} @-}
-{-@ type Even = {v:Int | (v mod 2) = 0} @-}
-\end{code}
-
-</div>
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
-\begin{spec} <br> 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if y <= x then x else y
-\end{spec}
-
-
-
-Example: `maxInt` 
------------------
-
-Has **many incomparable** refinement types/summaries
-
-\begin{spec}<br>
-maxInt :: Nat  -> Nat  -> Nat
-maxInt :: Even -> Even -> Even
-maxInt :: Odd  -> Odd  -> Odd 
-\end{spec}
-
-<br>
-
-<div class="fragment">*Which* should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns **one of** its two inputs `x` and `y` 
-
-<div class="fragment">
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-</div>
-
-<div class="fragment">Above holds **for all properties**!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract properties over types**
-
-</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-\begin{spec}<div/>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html)
-&nbsp; `Int<p>` &nbsp; is just  &nbsp; $\reft{v}{\Int}{p(v)}$ 
-
-<br>
-
-Abstract Refinement is **uninterpreted function** in SMT logic
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = y} & \subty \reftx{v}{p(v)} \\
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = x} & \subty \reftx{v}{p(v)} \\
-\end{array}$$
-
-Parametric Refinements 
-----------------------
-
-\begin{spec}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{spec}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-{p(x)} \wedge {p(y)} & \Rightarrow {v = y} & \Rightarrow {p(v)} \\
-{p(x)} \wedge {p(y)} & \Rightarrow {v = x} & \Rightarrow {p(v)} \\
-\end{array}$$
-
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**If** we call `maxInt` with args satisfying *common property*,</div>
-- <div class="fragment">**Then** `p` instantiated property, *result* gets same property.</div>
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ xo :: Odd  @-}
-xo = maxInt 3 7     -- p := \v -> Odd v 
-
-{-@ xe :: Even @-}
-xe = maxInt 2 8     -- p := \v -> Even v 
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Infer Instantiation by Liquid Typing**
-
-At call-site, instantiate `p` with unknown $\kvar{p}$ and solve!
-</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract Refinements** over Types
-
-<br>
-<br>
-
-<div class="fragment">
-  Abstract Refinements decouple invariants from **code** ...
-
-<br>
-
-<a href="06_Inductive.lhs.slides.html" target="_blank">[continue]</a>
-</div>
-
diff --git a/docs/slides/ETH14/lhs/05_Composition.lhs b/docs/slides/ETH14/lhs/05_Composition.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/05_Composition.lhs
+++ /dev/null
@@ -1,161 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-\begin{code}
-module Composition where
-
-import Prelude hiding ((.))
-
-plus     :: Int -> Int -> Int
-plus3'   :: Int -> Int
-\end{code}
-</div>
-
-
-Example: `plus`
----------------
-
-\begin{code}
-{-@ plus :: x:_ -> y:_ -> {v:_ | v=x+y} @-}
-plus x y = x + y
-\end{code}
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     = plus 3
-\end{code}
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-\begin{code}
-(#) :: (b -> c) -> (a -> b) -> a -> c
-(#) f g x = f (g x)
-\end{code}
-
-
-`plus3` By Composition
------------------------
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     = plus 1 # plus 2
-\end{code}
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
-\begin{spec} <br>
-(#) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{spec}
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-\begin{code}
-{-@ (.) :: forall <p :: b->c->Prop, 
-                   q :: a->b->Prop>.
-             f:(x:b -> c<p x>) 
-          -> g:(x:a -> b<q x>) 
-          -> y:a -> exists[z:b<q y>].c<p z>
- @-}
-(.) f g y = f (g y)
-\end{code}
-
-Using (.) Operator 
-------------------
-
-<br>
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
-\begin{spec} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{spec}
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
-\begin{spec} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{spec}
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/ETH14/lhs/06_Inductive.lhs b/docs/slides/ETH14/lhs/06_Inductive.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/06_Inductive.lhs
+++ /dev/null
@@ -1,491 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Decoupling Invariants & Code
-----------------------------
-
-+ Abstract refinements deoouple invariants from code
-
-+ Yield precise, reusable **summaries** of HOFs
-
-Recall: Tricky Problem
-----------------------
-
-<br>
-
-<div class="fragment">
-
-**Problem** 
-
-Require *context-dependent* invariants & summaries for HOFs.
-
-</div>
-
-<br>
-<br>
-
-<div class="fragment">
-
-**A Solution** 
-
-Decoupled invariants yield *precise* & *reusable* summaries
-
-
-
-</div>
-
-
-
-
-<div class="hidden">
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
--- import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-
-size  :: L a -> Int
-add   :: Int -> Int -> Int
-loop  :: Int -> Int -> α -> (Int -> α -> α) -> α
-foldr :: (L a -> a -> b -> b) -> b -> L a -> b
-\end{code}
-</div>
-
-Induction
-=========
-
-Example: `loop` redux 
----------------------
-
-Recall the *higher-order* `loop` 
-
-<br>
-
-\begin{code}
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{spec} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-**Problem**
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{spec} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{spec} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{spec}
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**Base Case:** &nbsp; Initial accumulator `base` satisfies invariant
-
-
-`(p lo base)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**Inductive Step:** &nbsp; `f` *preserves* invariant at `i`
-
-
-`(p i acc) => (p (i+1) (f i acc))`
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{spec} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{spec}
-
-<br>
-
-**"By Induction"** &nbsp; `out` satisfies invariant at `hi` 
-
-`(p hi out)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-        lo:Int
-     -> hi:{Int | lo <= hi}
-     -> base:a<p lo>                      
-     -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-     -> a<p hi>                           @-}
-\end{code}
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-\begin{spec}<br> 
-p    :: Int -> a -> Prop             -- invt 
-base :: a<p lo>                      -- base 
-f    :: i:Int -> a<p i> -> a<p(i+1)> -- step
-out  :: a<p hi>                      -- goal
-\end{spec}
-
-
-
-Using Induction
----------------
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-**Verified** by *instantiating* the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-<!--
-
-Using Induction
----------------
-
-\begin{spec} <div/>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{spec}
-
-<br>
-
-Verified by instantiating `p := \i acc -> acc = i + n`
-
-- <div class="fragment">**Base:**  `n = 0 + n`</div>
-
-- <div class="fragment">**Step:**  `acc = i + n  =>  acc + 1 = (i + 1) + n`</div>
-
-- <div class="fragment">**Goal:**  `out = m + n`</div>
-
--->
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over such lists ...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{spec} <br>
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code}
-{-@ foldr :: 
-    forall a b <p :: L a -> b -> Prop>. 
-      (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-    -> b<p N> 
-    -> ys:L a
-    -> b<p ys>                            @-}
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`foldr`: Abstract Refinement
-----------------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  ::  b<p ys>                            
-\end{spec}
-
-<br>
-
-`(p xs b)` relates `b` with **folded** `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`foldr`: Base Case
-------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-`base` is related to **empty** list `N`
-
-`base :: b<p N>` 
-
-
-
-`foldr`: Ind. Step 
-------------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-`step` **extends** relation from `xs` to `C x xs`
-
-`step :: xs:_ -> x:_ -> b<p xs> -> b<p (C x xs)>`
-
-
-`foldr`: Output
----------------
-
-\begin{spec} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{spec}
-
-<br>
-
-Hence, relation holds between `out` and **entire input** list `ys`
-
-`out :: b<p ys>`
-
-Using `foldr`: Size
--------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ size :: xs:_ -> {v:Int| v = llen xs} @-}
-size     = foldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-<div class="fragment">
-by *automatically instantiating*
-
-`p := \xs acc -> acc = llen xs`
-</div>
-
-Using `foldr`: Append
----------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ (++) :: xs:_ -> ys:_ -> Cat a xs ys @-} 
-xs ++ ys = foldr (\_ -> C) ys xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-where 
-
-\begin{code}
-{-@ type Cat a X Y = 
-    {v:_| llen v = llen X + llen Y} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-By automatically instantiating 
-
-`p := \xs acc -> llen acc = llen xs + llen ys`
-
-</div>
-
-Recap
------
-
-<br>
-
-Abstract refinements *decouple* **invariant** from **iteration**
-
-<br>
-
-<div class="fragment">**Reusable** summaries for higher-order functions.</div>
-
-<br>
-
-<div class="fragment">**Automatic** checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + <div class="fragment">**Functions**</div>
-    + <div class="fragment">**Data** <a href="07_Array.lhs.slides.html" target="_blank">[continue]</a></div>
diff --git a/docs/slides/ETH14/lhs/07_Array.lhs b/docs/slides/ETH14/lhs/07_Array.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/07_Array.lhs
+++ /dev/null
@@ -1,294 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-<br>
-
-**So far**
-
-Abstract Refinements decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *data structures*
-
-</div>
-
-
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidError)
-
-{-@ LIQUID "--no-termination" @-}
-initialize :: Int -> Vec Int
-\end{code}
-</div>
-
-<div class="fragment">
-
-For this talk, implemented as maps from `Int` to `a` 
-
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-\begin{code}
-{-@ data Vec a < dom :: Int -> Prop,
-                 rng :: Int -> a -> Prop >
-      = V {a :: i:Int<dom> -> a <rng i>}  @-}
-\end{code}
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-An alias for *segments* between `I` and `J`
-
-<br>
-
-\begin{code}
-{-@ predicate Btwn I V J = I <= V && V < J @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type IdVec N = Vec <{\v -> Btwn 0 v N}, 
-                        {\k v -> v = k}> 
-                       Int                  @-}
-\end{code}
-
-</div>
-
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> Btwn 0 v N}, 
-          {\k v -> k = N-1 => v = 0}> 
-          Int                         @-}
-\end{code}
-
-</div>
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> v = 0 || v = fib k}> 
-          Int                          @-}
-\end{code}
-
-
-An API for Vectors
-------------------
-
-
-<br>
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-API: Empty Vectors
------------------
-
-`empty` a Vector whose domain is `false` (defined at *no* key)
-
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. 
-               Vec <{v:Int|false}, p> a     @-}
-
-empty     = V $ \_ -> error "empty vector!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-API: `get` Key's Value 
-----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-<br>
-
-\begin{code}
-{-@ get :: forall a <d :: Int -> Prop,  
-                     r :: Int -> a -> Prop>.
-           key:Int <d>
-        -> vec:Vec <d, r> a
-        -> a<r key>                        @-}
-
-get k (V f) = f k
-\end{code}
-
-
-API: `set` Key's Value 
-----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-API: `set` Key's Value 
-----------------------
-
-\begin{code}
-{-@ set :: forall a <d :: Int -> Prop,
-                     r :: Int -> a -> Prop>.
-           key: Int<d> -> val: a<r key>
-        -> vec: Vec<{v:Int<d>| v /= key},r> a
-        -> Vec <d, r> a                     @-}
-
-set key val (V f) = V $ \k -> if k == key 
-                                then val 
-                                else f k
-\end{code}
-
-<br>
-
-<div class="hidden">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-Using the Vector API
---------------------
-
-Loop over vector, setting each key `i` equal to `i`:
-
-<br>
-
-\begin{code}
-{-@ initialize :: n:Nat -> IdVec n @-}
-initialize n      = loop 0 empty
-  where
-    loop i a 
-      | i < n     = let a' = set i i a
-                    in
-                        loop (i+1) a'
-      | otherwise = a 
-\end{code}
-
-Recap
------
-
-<br>
-
-+ Created a `Vec` (Array) container 
-
-+ Decoupled *domain* and *range* invariants from *data*
-
-+ Enabled analysis of *array segments*
-
-<br>
-
-Recap
------
-
-<br>
-
-Custom *array segment* program analyses: 
-
-<br>
-
-- Gopan-Reps-Sagiv, POPL 05
-- J.-McMillan, CAV 07
-- Logozzo-Cousot-Cousot, POPL 11
-- Dillig-Dillig, POPL 12 
-
-<br>
-
-Encoded in (abstract) refinement typed API.
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + Functions
-    + <div class="fragment">**Data**</div>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
diff --git a/docs/slides/ETH14/lhs/08_Recursive.lhs b/docs/slides/ETH14/lhs/08_Recursive.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/08_Recursive.lhs
+++ /dev/null
@@ -1,460 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Abstract Refinements decouple invariants from
-
-+ functions
-+ indexed data
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from **recursive** data structures
-</div>
-
-
-
-Decouple Invariants From Data {#recursive} 
-==========================================
-
- {#asd}
--------
-
-Recursive Structures 
---------------------
-
-Lets see another example of decoupling...
-
-<div class="hidden">
-\begin{code}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module List (insertSort) where
-
-{-@ LIQUID "--no-termination" @-}
-
-mergeSort     :: Ord a => [a] -> [a]
-insertSort :: (Ord a) => [a] -> L a 
-slist :: L Int
-slist' :: L Int
-iGoUp, iGoDn, iDiff :: [Int]
-infixr `C`
-\end{code}
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-\begin{code}
-data L a = N 
-         | C { hd :: a, tl :: L a }
-\end{code}
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define **increasing** Lists with strengthened constructors:
-
-\begin{spec} <br>
-data L a where
-  N :: L a
-  C :: hd:a -> tl: L {v:a | hd <= v} -> L a
-\end{spec}
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing *and* decreasing lists?](http://hackage.haskell.org/package/base-4.7.0.0/docs/src/Data-List.html#sort)
-
-<br>
-
-<div class="hidden">
-[Separate (indexed) types](http://web.cecs.pdx.edu/~sheard/Code/QSort.html) get quite complicated ...
-</div>
-
-Abstract That Refinement!
--------------------------
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C { hd :: a, tl :: L <p> a<p hd> } @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> `p` is a **binary relation** between two `a` values</div>
-
-<br>
-
-<div class="fragment"> Definition relates `hd` with **all** the elements of `tl`</div>
-
-<br>
-
-<div class="fragment"> Recursive: `p` holds for **every pair** of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
-\begin{spec} <br>
-x1 `C` x2 `C` x3 `C` rest :: L <p> a 
-\end{spec}
-
-Example: Unfold Once
---------------------
-
-\begin{spec} <br> 
-x1                 :: a
-x2 `C` x3 `C` rest :: L <p> a<p x1> 
-\end{spec}
-
-Example: Unfold Twice
----------------------
-
-\begin{spec} <br> 
-x1          :: a
-x2          :: a<p x1>  
-x3 `C` rest :: L <p> a<p x1 && p x2> 
-\end{spec}
-
-Example: Unfold Thrice
-----------------------
-
-\begin{spec} <br> 
-x1   :: a
-x2   :: a<p x1>  
-x3   :: a<p x1 && p x2>  
-rest :: L <p> a<p x1 && p x2 && p x3> 
-\end{spec}
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair*?
-
-<br>
-
-<div class="fragment">**Instantiate** `p` with a *concrete* refinement</div>
-
-
-Example: Increasing Lists
--------------------------
-
-**Instantiate** `p` with a *concrete* refinement
-
-<br>
-
-\begin{code}
-{-@ type IncL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> Refinement says: &nbsp; `hd` less than **every** `v` in tail,</div>
-
-<br>
-
-<div class="fragment"> i.e., `IncL` denotes **increasing** lists. </div>
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell *verifies* that `slist` is indeed increasing...
-
-\begin{code}
-{-@ slist :: IncL Int @-}
-slist     = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> 
-
-<div class="fragment">
-
-... and *protests* that `slist'` is not: 
-
-\begin{code}
-{-@ slist' :: IncL Int @-}
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-</div>
-
-Insertion Sort
---------------
-
-\begin{code}
-{-@ insertSort :: (Ord a) => [a] -> IncL a @-}
-insertSort     = foldr insert N
-
-insert y N          = y `C` N
-insert y (x `C` xs) 
-  | y < x           = y `C` (x `C` xs)
-  | otherwise       = x `C` insert y xs
-\end{code}
-
-<br>
-
-(Mouseover `insert` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
-\begin{spec} <br> 
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) { h :: a, tl :: [a<p h>]<p> }
-\end{spec}
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Incs a = [a]<{\h v -> h <= v}> @-}
-
-{-@ iGoUp :: Incs Int @-}
-iGoUp     = [1,2,3]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Decs a = [a]<{\h v -> h >= v}> @-}
-
-{-@ iGoDn :: Decs Int @-}
-iGoDn     = [3,2,1]
-\end{code}
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-\begin{code}
-{-@ type Difs a = [a]<{\h v -> h /= v}> @-}
-
-{-@ iDiff :: Difs Int @-}
-iDiff     = [1,3,2]
-\end{code}
-
-Checking Lists
---------------
-
-Now we can check all the usual list sorting algorithms 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target="_blank">Demo:</a> List Sorting
-
-<!-- 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-{-@ mergeSort  :: (Ord a) => [a] -> Incs a @-}
-mergeSort []   = []
-mergeSort [x]  = [x]
-mergeSort xs   = merge xs1' xs2' 
-  where 
-   (xs1, xs2)  = split xs
-   xs1'        = mergeSort xs1
-   xs2'        = mergeSort xs2
-\end{code}
-
-Example: `mergeSort` [2/2]
---------------------------
-
-\begin{code}
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-
-merge xs []    = xs
-merge [] ys    = ys
-merge (x:xs) (y:ys) 
-  | x <= y     = x : merge xs (y:ys)
-  | otherwise  = y : merge (x:xs) ys
-\end{code}
-
-Example: Binary Trees
----------------------
-
-... `Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, as a binary tree:
-
-<br>
-
-\begin{code}
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-<br>
-
-\begin{code}
-{-@ data Map k a < l :: k -> k -> Prop
-                 , r :: k -> k -> Prop >
-    = Tip
-    | Bin (sz :: Size) (key :: k) (val :: a)
-          (left  :: Map <l,r> (k<l key>) a)
-          (right :: Map <l,r> (k<r key>) a) @-}
-\end{code}
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-\begin{code}
-{-@ type BST k a = 
-      Map <{\r v -> v < r }, 
-           {\r v -> v > r }> 
-          k a                   @-}
-\end{code}
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-\begin{code}
-{-@ type MinHeap k a = 
-      Map <{\r v -> r <= v}, 
-           {\r v -> r <= v}> 
-           k a               @-}
-\end{code}
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-\begin{code}
-{-@ type MaxHeap k a = 
-      Map <{\r v -> r >= v}, 
-           {\r v -> r >= v}> 
-           k a               @-}
-\end{code}
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-<br>
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<br>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a> Binary Search Maps
-</div>
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from **functions**
-
-+ `max`
-+ `loop`
-+ `foldr`
-
-</div>
-
-<div class="fragment">
-Decouple invariants from **data**
-
-+ `Vector`
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract:** Refinements over functions and data
-5. <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
diff --git a/docs/slides/ETH14/lhs/09_Laziness.lhs b/docs/slides/ETH14/lhs/09_Laziness.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/09_Laziness.lhs
+++ /dev/null
@@ -1,271 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-\begin{code}
-module Laziness where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--no-termination" @-}
-
-safeDiv :: Int -> Int -> Int
-foo     :: Int -> Int
--- zero    :: Int 
--- diverge :: a -> b
-\end{code}
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-
-
-[[Skip]](11_Evaluation.lhs.slides.html)
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for **strict** languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `Sage`, `F7`, `F*`, ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-\begin{code}
-{-@ safeDiv :: Int -> {v:Int|v /= 0} -> Int @-}
-safeDiv n 0 = liquidError "div-by-zero!"
-safeDiv n d = n `div` d
-\end{code}
-
-<br>
-
-<div class="fragment">
-Should only call `safeDiv` with **non-zero** values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value **strictly less than** input.
-
-<br>
-
-\begin{spec} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-\end{spec}
-
-LiquidHaskell Lies! 
--------------------
-
-\begin{code}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0    
-              a = foo z
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Why is this program **deemed safe**?! 
-</div>
-
-
-*Safe* With Eager Eval
-----------------------
-
-\begin{spec} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Safe** in Java, ML: program spins away, **never hits** divide-by-zero 
-</div>
-
-*Unsafe* With Lazy Eval
------------------------
-
-\begin{spec} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{spec}
-
-<br>
-
-**Unsafe** in Haskell: program skips `foo z` and **hits** divide-by-zero!
-
-Problem: Divergence
--------------------
-
-What is denoted by:
-
-`e :: {v:Int | P}`
-
-
-<br>
-
-<div class="fragment">
-`e` evaluates to `Int` satisfying `P`  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-\begin{spec} **Consider** <div/> 
-        {-@ e :: {v : Int | P} @-}
-
-        let x = e in body 
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Eager Evaluation** 
-
-*Can* assume `P(x)` when checking `body`
-</div>
-
-<br>
-
-<div class="fragment">
-**Lazy Evaluation** 
-
-*Cannot* assume `P(x)` when checking `body`
-</div>
-
-Eager vs. Lazy Binders 
-----------------------
-
-\begin{spec} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{spec}
-
-
-<br>
-
-Inconsistent refinement for `a` is sound for **eager**, unsound for **lazy**
-
-
-Panic! Now what?
----------------
-
-<div class="fragment">
-**Solution** 
-
-Assign *non-trivial* refinements to *non-diverging* terms!
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Require A Termination Analysis**
-
-Don't worry, its easy...
-
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target="_blank">Demo:</a> &nbsp; Disable `"--no-termination"` and see what happens!
-</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. **Lazy Evaluation:** Requires Termination
-6. <div class="fragment">**Termination:** via Refinements!</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](10_Termination.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/ETH14/lhs/10_Termination.lhs b/docs/slides/ETH14/lhs/10_Termination.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/10_Termination.lhs
+++ /dev/null
@@ -1,314 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-\begin{code}
-module Termination where
-
-import Prelude hiding (gcd, mod, map)
-fib :: Int -> Int
-gcd :: Int -> Int -> Int
-infixr `C`
-
-data L a = N | C a (L a)
-
-{-@ invariant {v: (L a) | 0 <= (llen v)} @-}
-
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
-merge :: Ord a => L a -> L a -> L a
-\end{code}
-</div>
-
-<!--
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
--->
-
-Refinements & Termination
--------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination **using refinements**
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on **smaller** inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-+ [DML](http://dl.acm.org/citation.cfm?id=609232)
-+ [Size Change Principle](http://dl.acm.org/citation.cfm?id=360210)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
-\begin{spec} <div/>
-foo   :: Nat -> T
-foo x =  body
-\end{spec}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have `Nat` inputs *smaller than* `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-\begin{code}
-{-@ fib  :: Nat -> Nat @-}
-fib 0    = 1
-fib 1    = 1
-fib n    = fib (n-1) + fib (n-2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a> &nbsp; What if we drop the `fib 1` equation? 
-</div>
-
-Refinements Are Essential!
---------------------------
-
-\begin{code}
-{-@ gcd :: a:Nat -> {b:Nat | b < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ mod :: a:Nat 
-        -> b:{v:Nat|(0 < v && v < a)} 
-        -> {v:Nat| v < b}                 @-}
-\end{code}
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{spec}<div/>
-foo   :: S -> T
-foo x = body
-\end{spec}
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{spec}<div/>
-foo   :: S -> T
-foo x = body
-\end{spec}
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= (mS v) < (mS x)} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
-\begin{code} 
-map f N        = N
-map f (C x xs) = (f x) `C` (map f xs) 
-\end{code}
-
-<br>
-
-Terminates using **default** measure `llen` 
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ data L [llen] a = N 
-                    | C { x::a, xs :: L a} @-}
-
-{-@ measure llen :: L a -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)   @-}
-\end{code}
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of smallness spread across **multiple inputs**?
-
-<br>
-
-\begin{code}
-merge xs@(x `C` xs') ys@(y `C` ys')
-  | x < y     = x `C` merge xs' ys
-  | otherwise = y `C` merge xs ys'
-\end{code}
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their **sum** does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their **sum** does.
-
-<br>
-
-\begin{code}
-{-@ merge :: Ord a => xs:_ -> ys:_ -> _ 
-          /  [(llen xs) + (llen ys)]     @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Synthesize **ghost** parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-... thereby reducing to decreasing **single parameter** case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-<br>
-
-<div class="fragment">**Mutual** recursion</div>
-
-<br>
-
-<div class="fragment">**Lexicographic** ordering</div>
-
-<br>
-
-<div class="fragment">Fit easily into our framework ...</div>
-
-Recap
------
-
-Main idea: Recursive calls on **smaller** inputs
-
-<br>
-
-<div class="fragment">Use refinements to **check** smaller</div>
-
-<br>
-
-<div class="fragment">Use refinements to **establish** smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> Meta-theory is tricky, but all ends well.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. Lazy Evaluation: Requires Termination
-6. **Termination:** via Refinements!
-7. <div class="fragment">**Evaluation:** How good is this in practice?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/ETH14/lhs/11_Evaluation.lhs b/docs/slides/ETH14/lhs/11_Evaluation.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/11_Evaluation.lhs
+++ /dev/null
@@ -1,93 +0,0 @@
- {#ASda}
-========
-
-Evaluation
-----------
-
-
-
-Evaluation
-==========
-
-LiquidHaskell Is For Real
--------------------------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-<br>
-
-**Substantial Code Bases**
-
-10KLoc, 50+ Modules
-
-<br>
-
-**Complex Properties**
-
-Memory Safety, Functional Correctness*, Termination
-
-<br>
-
-<div class="fragment">
-**Inference is Crucial**
-</div>
-
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**
----------------------------   ---------
-`Data.List`                         814
-`Data.Set.Splay`                    149
-`Data.Vector.Algorithms`           1219
-`HsColour`                         1047
-`Data.Map.Base`                    1396
-`Data.Text`                        3125
-`Data.Bytestring`                  3501
-**Total**                     **11251**
----------------------------   ---------
-
-</div>
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**     **Time**
----------------------------   ---------   ----------
-`Data.List`                         814          26s
-`Data.Set.Splay`                    149          27s
-`Data.Vector.Algorithms`           1219          89s 
-`HsColour`                         1047         196s
-`Data.Map.Base`                    1396         174s
-`Data.Text`                        3125         499s
-`Data.Bytestring`                  3501         294s
-**Total**                     **11251**    **1305s**
----------------------------   ---------   ----------
-
-</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. **Evaluation**
-5. <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](12_Conclusion.lhs.slides.html)</div>
diff --git a/docs/slides/ETH14/lhs/12_Conclusion.lhs b/docs/slides/ETH14/lhs/12_Conclusion.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/12_Conclusion.lhs
+++ /dev/null
@@ -1,96 +0,0 @@
- {#ASda}
-========
-
-Conclusion
-----------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-Conclusion
-==========
-
-Liquid Types 
-------------
-
-
-Use **Types** to lift **Logic + Analysis** to Modern Programs 
-
-<br>
-
-<div class="fragment"> 
-
--------------------       ------------------------------------------------
-**Properties:**           Predicates *+ Types*
-**Proofs:**               Verification Conditions *+ Subtyping* 
-**Inference:**            Abstract Interpretation *+ Hindley-Milner*
--------------------       ------------------------------------------------
-
-</div>
-
-
-Liquid Types 
-------------
-
-Use **Types** to lift **Logic + Analysis** to Modern Programs 
-
-<br>
-
-**Take Home: Types are a simple and uniform way to analyze**
-
-+ Unbounded Data (eg. Arrays, Lists, HashMaps)
-+ Polymorphism   (eg. Generics,...)
-+ Callbacks/HOFs (eg. map, reduce, filter,...)
-
-<div class="hidden">
-
-Liquid Types 
-------------
-
-Use **Types** to lift **Logic + Analysis** to Modern Programs 
-
-<br>
-
-**Take Home 2: Uninterpreted Functions**
-
-+ Measures for Datatype properties
-
-+ Abstract Refinements 
-
-</div>
-
-Current & Future Work
----------------------
-
-**Technology**
-
-+ Speed
-+ Imperative Features (Pointers, Mutation, ...) 
-+ Diagnostics & *Error Messages*
-
-Current & Future Work
----------------------
-
-**Applications**
-
-+ Concurrency & Distribution
-+ Probabilistic Behavior
-+ Completion, Repair & Synthesis
-
- {#asd}
-=======
-
-Thank You!
-----------
-
-<br>
-
-[`http://goto.ucsd.edu/liquid`](http://goto.ucsd.edu/liquid)
-
-<br>
-
diff --git a/docs/slides/ETH14/lhs/Index.lhs b/docs/slides/ETH14/lhs/Index.lhs
deleted file mode 100644
--- a/docs/slides/ETH14/lhs/Index.lhs
+++ /dev/null
@@ -1,50 +0,0 @@
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-
- {#ASD}
-=======
-
-
-Types & Program Analysis 
-------------------------
-
-
-<br>
-<br>
-
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, D. Vytiniotis, S. Peyton-Jones
-
-<br>
-
-<div class="fragment">
-[[continue]](00_Motivation.lhs.slides.html)
-</div>
-
-
-Plan 
-----
-
-+ <a href="00_Motivation.lhs.slides.html" target="_blank">Motivation</a>
-+ <div class="fragment"><a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a></div>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>,<a href="07_Array.lhs.slides.html" target= "_blank">Data</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
diff --git a/docs/slides/Galois2014/000_Refinements.hs b/docs/slides/Galois2014/000_Refinements.hs
deleted file mode 100644
--- a/docs/slides/Galois2014/000_Refinements.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--smtsolver=cvc4" @-}
-
-module Refinements where
-
-import Prelude hiding (abs)
-
-divide    :: Int -> Int -> Int
-
-
------------------------------------------------------------------------
--- | Simple Refinement Types
------------------------------------------------------------------------
-
-{-@ six :: {v:Int | v = 6} @-}
-six = 6 :: Int
-
-
-
------------------------------------------------------------------------
--- | Type Aliases are nice, we're gonna be liberal in our use of them
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-
------------------------------------------------------------------------
--- | Subtyping via Implication
------------------------------------------------------------------------
-
-{-@ six' :: NonZero @-}
-six' = six
-
--- {v:Int | v = 6} <: {v:Int | v /= 0}
--- ==>
---          v = 6  =>          v /= 0
-
-
------------------------------------------------------------------------
--- | Function Contracts: Preconditions & Dead Code 
------------------------------------------------------------------------
-
-{-@ die :: {v:_ | false} -> a @-}
-die msg = error msg
-
--- Precondition says, there are **NO** valid inputs for @die@.
--- If program type-checks, means @die@ is **NEVER** called at run-time.
-
-
-
-
-
------------------------------------------------------------------------
--- | Function Contracts: Safe Division 
------------------------------------------------------------------------
-
-divide x 0 = die "divide-by-zero"
-divide x n = x `div` n
-
-
-
--- | What's the problem above? Nothing to *prevent*
---   us from calling `divide` with 0. Oops.
---   How shall we fix it?
-
-
-
-
-
-
-
-avg2 x y   = divide (x + y)     2
-avg3 x y z = divide (x + y + z) 3
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | But whats the problem here?
------------------------------------------------------------------------
-
-avg xs     = divide total n 
-  where
-    total  = sum xs
-    n      = length xs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------
--- | CHEAT AREA ----------------------------------------------
---------------------------------------------------------------
-
--- # START Errors 1 (divide)
--- # END   Errors 1 (avg)
-
-{- divide :: Int -> NonZero -> Int     @-}
diff --git a/docs/slides/Galois2014/001_Refinements.hs b/docs/slides/Galois2014/001_Refinements.hs
deleted file mode 100644
--- a/docs/slides/Galois2014/001_Refinements.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--totality"       @-}
-{-@ LIQUID "--smtsolver=cvc4" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-divide    :: Int -> Int -> Int
------------------------------------------------------------------------
--- | Our first Data Type
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
------------------------------------------------------------------------
--- | A few Higher-Order Functions
------------------------------------------------------------------------
-
-map                  :: (a -> b) -> List a -> List b
-map f N              = N
-map f (C x xs)       = C (f x) (map f xs) 
-
-
-foldr                :: (a -> b -> b) -> b -> List a -> b 
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-
--- Uh oh. How shall we fix the error? Lets move on for now...
-
-foldr1           :: (a -> a -> a) -> List a -> a   
-foldr1 f (C x xs)    = foldr f x xs
--- foldr1 f N           = die "foldr1"
-
-
-
--- foldr1 f zs = case zs of
---   C x xs -> foldr f x xs
---   N      -> GHC.patError "YIKES"
-
-
------------------------------------------------------------------------
--- | Measuring the Size of Data
------------------------------------------------------------------------
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-
--- N :: {v:List a | size v = 0}
--- C :: x:a -> xs:List a
---   -> {v:List a | size v = 1 + size xs}
-
-
-append N        ys = ys
-append (C x xs) ys = C x (append xs ys)
-
-
-
------------------------------------------------------------------------
--- | Definitions from 000_Refinements.hs
------------------------------------------------------------------------
-
-{-@ type Nat     = {v:Int | v >= 0} @-}
-{-@ type Pos     = {v:Int | v >  0} @-}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-
-{-@ die :: {v:_ | false} -> a @-}
-die msg = error msg
-
-{-@ divide :: Int -> NonZero -> Int @-}
-divide x 0 = die "divide-by-zero"
-divide x n = x `div` n
-
------------------------------------------------------------------------
--- | CHEAT AREA 
------------------------------------------------------------------------
-
--- # START-ERRORS 1 (foldr1)
--- # END-ERRORS   0
-
-{- map    :: _ -> xs:_ -> {v:_ | size v = size xs}               @-}
-{- append :: xs:_ -> ys:_ -> {v: _ | size v = size ys + size xs} @-}
-{- foldr1 :: (a -> a -> a) -> {v:List a | size v > 0} -> a       @-}   
diff --git a/docs/slides/Galois2014/01_Elements.hs b/docs/slides/Galois2014/01_Elements.hs
deleted file mode 100644
--- a/docs/slides/Galois2014/01_Elements.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--smtsolver=cvc4" @-}
-module Elems where
-
-import Prelude hiding (elem)
-
-import Data.Set (Set (..))
-
-
------------------------------------------------------------------------------
--- | 1. Reasoning about the Set of Elements in a List ----------------------- 
------------------------------------------------------------------------------
-
--- | The set of `elems` of a list
-
-
-
-
-
-{-@ measure elems :: [a] -> (Set a)
-    elems ([])    = (Set_empty 0)
-    elems (x:xs)  = (Set_cup (Set_sng x) (elems xs))
-  @-}
-
-
-
-
--- | A few handy aliases
-
-{-@ predicate EqElts Xs Ys    = elems Xs = elems Ys                      @-}
-{-@ predicate UnElts Xs Ys Zs = elems Xs = Set_cup (elems Ys) (elems Zs) @-}
-
--- | Reasoning about `append` and `reverse`
-
-{-@ append  :: xs:_ -> ys:_ -> {v:_ | UnElts v xs ys} @-}  
-append [] ys     = ys
-append (x:xs) ys = x : append xs ys 
-
-
-{-@ reverse :: xs:_ -> {v:_ | EqElts v xs} @-}
-reverse xs           = revAcc xs []
-  where 
-   revAcc []     acc = acc
-   revAcc (x:xs) acc = revAcc xs (x:acc)
-
-
-
-
------------------------------------------------------------------------------
--- | 2. Checking for duplicates (xmonad) ------------------------------------ 
------------------------------------------------------------------------------
-
--- | Is a list free of duplicates?
-   
-{-@ measure nodups :: [a] -> Prop
-    nodups ([])   = true
-    nodups (x:xs) = (not (Set_mem x (elems xs)) && nodups xs)
-  @-}
-
--- | Weeding out duplicates.
-   
-{-@ nub :: xs:_ -> {v:_ | nodups v && EqElts v xs} @-}
-nub xs             = go xs []
-  where
-    go (x:xs) l
-      | x `elem` l = go xs l     
-      | otherwise  = go xs (x:l) 
-    go [] l        = l
-
-
-{-@ elem :: x:_ -> ys:_ -> {v:Bool | Prop v <=> Set_mem x (elems ys)} @-}
-elem x []     = False
-elem x (y:ys) = x == y || elem x ys
-
------------------------------------------------------------------------------
--- | 3. Associative Lookups ------------------------------------------------- 
------------------------------------------------------------------------------
-
--- The dread "key-not-found". How can we fix it?
-find key ((k,v) : kvs)
-  | key == k  = v
-  | otherwise = find key kvs
-find _ []     = die "Key not found! Lookup failed!"
-
-
-{-@ die :: {v:_ | false} -> b @-}
-die x = error x
-
-
-----------------------------------------------------------------------------
--- | CHEAT AREA ------------------------------------------------------------
-----------------------------------------------------------------------------
-
-{- predicate ValidKey K M    = Set_mem K (keys M)  @-}
-
-{- measure keys  :: [(a, b)] -> (Set a)
-    keys ([])     = (Set_empty 0)
-    keys (kv:kvs) = (Set_cup (Set_sng (fst kv)) (keys kvs))
-  @-}
-
--- # START ERRORS 1 (find)
--- # END   ERRORS 0 
-
-{- find :: k:_ -> {m:_ | ValidKey k m} -> _ @-}
-
diff --git a/docs/slides/Galois2014/05_Memory.hs b/docs/slides/Galois2014/05_Memory.hs
deleted file mode 100644
--- a/docs/slides/Galois2014/05_Memory.hs
+++ /dev/null
@@ -1,401 +0,0 @@
-{-# LANGUAGE ForeignFunctionInterface #-}
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--smtsolver=cvc4" @-}
-{-@ LIQUID "--diffcheck"     @-}
-
-module Memory where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Data.ByteString.Internal (c2w, w2c)
-import Language.Haskell.Liquid.Prelude
-
-------------------------------------------------------------------------
--- | 1. Low-level Pointer API  -----------------------------------------
-------------------------------------------------------------------------
-
--- | Create a buffer of size 4 and initialize it with zeros
-
-zero4  = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 3) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
--- But whats to prevent an overflow, e.g. writing to offset 5 or 50?
-            
-
-
--- | Types for Pointers
-
--- data Ptr a         
--- data ForeignPtr a 
-
--- | Size of Ptr and ForeignPtr
-
--- measure plen  :: Ptr a -> Int 
--- measure fplen :: ForeignPtr a -> Int 
-
-
-{-@ type PtrN a N        = {v:Ptr a        |  plen v  = N}  @-}
-{-@ type ForeignPtrN a N = {v:ForeignPtr a |  fplen v = N}  @-}
-
--- | Allocating Memory
-
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignPtrN a n) @-}
-
--- | Using a pointer
-
-{- withForeignPtr :: fp:ForeignPtr a 
-                  -> (PtrN a (fplen fp) -> IO b)  
-                  -> IO b             
--}
-
--- | Pointer Arithmetic
-
-{- plusPtr :: p:Ptr a
-           -> o:{Nat|o <= plen p}   -- in bounds
-           -> PtrN b (plen b - o)   -- remainder
--}
-
--- | Read and Write
-
-{- peek :: {v:Ptr a | 0 < plen v} -> IO a  
-   poke :: {v:Ptr a | 0 < plen v} -> a -> IO ()  
- -}
-
--- | Example: Preventing Overflows e.g. writing 5 or 50 zeros?
-
-zero4' = do fp <- mallocForeignPtrBytes 4
-            withForeignPtr fp $ \p -> do
-              poke (p `plusPtr` 0) zero 
-              poke (p `plusPtr` 1) zero 
-              poke (p `plusPtr` 2) zero 
-              poke (p `plusPtr` 5) zero 
-            return fp
-        where
-            zero = 0 :: Word8
-
-
-
-------------------------------------------------------------------------
--- | 2. ByteString API -------------------------------------------------
-------------------------------------------------------------------------
-
-data ByteString = PS {
-    bPtr :: ForeignPtr Word8
-  , bOff :: !Int
-  , bLen :: !Int
-  }
-
-
--- | Refined Type, with invariants
-
-{-@ data ByteString = PS {
-      bPtr :: ForeignPtr Word8
-    , bOff :: {v:Nat| v        <= fplen bPtr}
-    , bLen :: {v:Nat| v + bOff <= fplen bPtr}
-    }
-
-  @-}
-
---             fplen ptr = 23
---               v
---       |-----------------------|
--- ptr = "  eric loves burritos  "
---          |------------------|
---          ^          ^
---         off = 2    len = 19
-
--- ex = PS ptr off len              -- 2 <= 23  &&  (2 + 19) <= 23   ==> SAFE
-
--- | Some useful abbreviations
-
-{-@ type ByteStringN N = {v:ByteString | bLen v = N} @-}
-{-@ type StringN N     = {v:String     | len v  = N} @-}
-
--- | Legal Bytestrings 
-
-{- good1 :: IO (ByteStringN 5) @-}
-good1 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 0 5
-
-{- good2 :: IO (ByteStringN 3) @-}
-good2 = do fp <- mallocForeignPtrBytes 5
-           return $ PS fp 2 3
-
--- | Illegal Bytestrings 
-
-bad1 = do fp <- mallocForeignPtrBytes 3 
-          return $ PS fp 0 10 
-
-bad2 = do fp <- mallocForeignPtrBytes 3
-          return $ PS fp 2 2
-
-
-
--- | ByteString API: `create`
-
-create :: Int -> (Ptr Word8 -> IO ()) -> ByteString
-
-create n fill = unsafePerformIO $ do
-  fp  <- mallocForeignPtrBytes n
-  withForeignPtr fp fill 
-  return $! PS fp 0 n
-
-
--- Yikes, there is an error! How to fix?
-
--- | ByteStringN API: `unsafeTake`
-
-unsafeTake n (PS x s l) = PS x s n
-
--- Wow, thats super fast. O(1)! But how to fix the error?
-
--- | ByteString API: `pack`
-
-pack          :: String -> ByteString
-pack str      = create n $ \p -> go p xs
-  where
-  n           = length str
-  xs          = map c2w str
-  go p (x:xs) = poke p x >> go (plusPtr p 1) xs
-  go _ []     = return  ()
-
--- Hmm. How to fix the error?
-
-
-
--- | ByteString API: `unpack` 
-
-
-
-
-unpack :: ByteString -> String 
-unpack (PS _  _ 0)  = []
-unpack (PS ps s l)  = unsafePerformIO $ withForeignPtr ps $ \p ->
-   go (p `plusPtr` s) (l - 1) []
-  where
-   go p 0 acc = peek p >>= \e -> return (w2c e : acc)
-   go p n acc = peek (p `plusPtr` n) >>= \e -> go p (n-1) (w2c e : acc)
-
-
-
-------------------------------------------------------------------------
--- | 3. Application API (Heartbleed no more!) --------------------------
-------------------------------------------------------------------------
-
-chop     :: String -> Int -> String 
-chop s n =  s'
-  where 
-    b    = pack s          -- down to low-level
-    b'   = unsafeTake n b  -- grab n chars
-    s'   = unpack b'       -- up to high-level
-
--- Whats the problem?
-
-
-
-
-
--- | "HeartBleed" no more
-
-demo     = [ex6, ex30]
-  where
-    ex   = ['R','a','n','j','i','t']
-    ex6  = chop ex 6  -- ok
-    ex30 = chop ex 30 -- out of bounds
-
-
--- "Bleeding" `chop ex 30` *rejected* by compiler
-
-
-
-------------------------------------------------------------------------
--- | 3. Bonus Material -------------------------------------------------
-------------------------------------------------------------------------
-
--- | `group` ing ByteStrings 
-
-{- How shall we type `group` where
-
-     group "foobaaar"
-
-   returns
-
-     ["f","oo", "b", "aaa", "r"]
-
--}
-
--- | An alias for NON-EMPTY ByteStrings
-    
-{-@ type ByteStringNE = {v:ByteString | bLen v > 0} @-}
-
--- | A measure for the sum of sizes of a LIST of ByteStrings
-    
-{-@ measure bLens  :: [ByteString] -> Int
-    bLens ([])   = 0
-    bLens (x:xs) = (bLen x + bLens xs)
-  @-}
-
--- | @group@
-    
-{-@ group :: b:ByteString -> {v: [ByteStringNE] | bLens v = bLen b} @-}
-group xs
-    | null xs   = []
-    | otherwise = let y = unsafeHead xs
-                      (ys, zs) = spanByte (unsafeHead xs) (unsafeTail xs)
-                  in (y `cons` ys) : group zs
-
-
--- | @spanByte@ does the heavy lifting
-
-{-@ spanByte :: Word8 -> b:ByteString -> (ByteStringPair b) @-}
-spanByte :: Word8 -> ByteString -> (ByteString, ByteString)
-spanByte c ps@(PS x s l) = unsafePerformIO $ withForeignPtr x $ \p ->
-    go (p `plusPtr` s) 0
-  where
-    go p i | i >= l    = return (ps, empty)
-           | otherwise = do c' <- peekByteOff p i
-                            if c /= c'
-                                then return (unsafeTake i ps, unsafeDrop i ps)
-                                else go p (i+1)
-
--- | Using the alias
-                            
-{-@ type ByteStringPair B = (ByteString, ByteString)<{\x1 x2 ->
-       bLen x1 + bLen x2 = bLen B}> @-}
-
-
-
-
-
-
-
-
-
-
-
-----------------------------------------------------------------------------
--- | CHEAT AREA
-----------------------------------------------------------------------------
-
--- #START ERRORS 13
--- #END   ERRORS 4 (zero4', bad1, bad2, ex30) 
-                            
-{- create     :: n:Nat -> (PtrN Word8 n -> IO ()) -> ByteStringN n      @-}
-{- unsafeTake :: n:Nat -> b:{ByteString | n <= bLen b} -> ByteStringN n @-}
-{- pack       :: s:String -> ByteStringN (len s)                        @-}
-{- unpack     :: b:ByteString -> {v:String | len v = bLen b}            @-}
-{- chop       :: s:String -> n:{Nat | n <= len s} -> StringN n          @-} 
-
-{- qualif Unpack(v:a, acc:b, n:int) : len v = 1 + n + len acc @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | Helper Code (Stuff from BS benchmark, to make demo self-contained)
------------------------------------------------------------------------
-
-{-@ unsafeCreate :: l:Nat -> ((PtrN Word8 l) -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = create n f -- unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLen  v >= 0} @-}
-{-@ invariant {v:[ByteString] | bLens v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
-{-@ unsafeHead :: {v:ByteString | (bLen v) > 0} -> Word8 @-}
-
-unsafeHead :: ByteString -> Word8
-unsafeHead (PS x s l) = liquidAssert (l > 0) $
-  unsafePerformIO  $  withForeignPtr x $ \p -> peekByteOff p s
-
-{-@ unsafeTail :: b:{v:ByteString | (bLen v) > 0}
-               -> {v:ByteString | (bLen v) = (bLen b) - 1} @-}
-unsafeTail :: ByteString -> ByteString
-unsafeTail (PS ps s l) = liquidAssert (l > 0) $ PS ps (s+1) (l-1)
-
-{-@ null :: b:ByteString -> {v:Bool | ((Prop v) <=> ((bLen b) = 0))} @-}
-null :: ByteString -> Bool
-null (PS _ _ l) = liquidAssert (l >= 0) $ l <= 0
-
-{-@ unsafeDrop :: n:Nat
-               -> b:{v: ByteString | n <= (bLen v)} 
-               -> {v:ByteString | (bLen v) = (bLen b) - n} @-}
-unsafeDrop  :: Int -> ByteString -> ByteString
-unsafeDrop n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x (s+n) (l-n)
-
-{-@ cons :: Word8 -> b:ByteString -> {v:ByteString | (bLen v) = 1 + (bLen b)} @-}
-cons :: Word8 -> ByteString -> ByteString
-cons c (PS x s l) = unsafeCreate (l+1) $ \p -> withForeignPtr x $ \f -> do
-        poke p c
-        memcpy (p `plusPtr` 1) (f `plusPtr` s) (fromIntegral l)
-
-{-@ empty :: {v:ByteString | (bLen v) = 0} @-} 
-empty :: ByteString
-empty = PS nullForeignPtr 0 0
-
-{-@ assume
-    c_memcpy :: dst:(PtrV Word8)
-             -> src:(PtrV Word8) 
-             -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-             -> IO (Ptr Word8)
-  @-}
-foreign import ccall unsafe "string.h memcpy" c_memcpy
-    :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8)
-
-{-@ memcpy :: dst:(PtrV Word8)
-           -> src:(PtrV Word8) 
-           -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
-           -> IO () 
-  @-}
-memcpy :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
-memcpy p q s = c_memcpy p q s >> return ()
-
-{-@ assume nullForeignPtr :: {v: ForeignPtr Word8 | (fplen v) = 0} @-}
-nullForeignPtr :: ForeignPtr Word8
-nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr
-{-# NOINLINE nullForeignPtr #-}
-
-
-
diff --git a/docs/slides/HS2014/Basics-blank.hs b/docs/slides/HS2014/Basics-blank.hs
deleted file mode 100644
--- a/docs/slides/HS2014/Basics-blank.hs
+++ /dev/null
@@ -1,105 +0,0 @@
-module Basics where
-
--- list of numbers between 0 and 100
-
-list = [1,10,30]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-range :: Int -> Int -> [Int]
-range lo hi
-  | lo <= hi  = lo : range (lo + 1)  hi
-  | otherwise = []
-
--- range 1 4 = [1,2,3]
--- range 1 1 = []
-
-
-
-
-
-
-
-
-
-
--- length (range lo hi) = hi - lo
-
-
-
-
-
-
-
-
-
-
-
-
--- measures let us describe properties of data
--- without *embedding* them into the data definition!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-data CSV a = CSV { cols :: [String], rows :: [[a]] }
-
-csv = CSV [ "Month", "Days"]
-          [ ["Jan",  "31"]
-          , ["Feb", "28"] 
-          ]
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- Local Variables:
--- flycheck-checker: haskell-liquid
--- End:
-
--- list :: [Int]
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diffcheck" @-}
-{-@ LIQUID "--short-names" @-}
diff --git a/docs/slides/HS2014/Basics.lhs b/docs/slides/HS2014/Basics.lhs
deleted file mode 100644
--- a/docs/slides/HS2014/Basics.lhs
+++ /dev/null
@@ -1,288 +0,0 @@
-> {-@ LIQUID "--no-termination" @-}
-> {-@ LIQUID "--short-names"    @-}
-> 
-> module Basics where
-> 
-> import Prelude hiding (head, max)
-> import qualified Data.ByteString.Char8 as B
-> import qualified Data.ByteString.Unsafe as B
-> import Data.List (find)
-> import Language.Haskell.Liquid.Prelude
-
-Well-typed programs can't go wrong.
-
-> dog = B.pack "dog"
-
-< λ> B.unsafeIndex dog 2
-< 103
-< λ> B.unsafeIndex dog 10
-< 0
-< λ> B.unsafeIndex dog 10000000000
-< segmentation fault
-
-That's no good, it would be nice if the type system could prevent us from doing
-that. Today I'm going to present our experience in designing such a type system,
-and in using it to verify over 10KLoC of real Haskell code.
-
-
-Refinement Types
-================
-
-We'll start with a lightning tour of LiquidHaskell before getting into the
-gritty benchmarks.
-
-A refinment type is a Haskell type where each component of the type is annotated
-with a predicate from an SMT-decidable logic. For example,
-
-< {v:Int | v >= 0 && v < 100}
-
-describes the set of `Int`s that are between 0 and 100. We'll make heavy use of
-*aliases* to simplify the types, e.g.
-
-> {-@ predicate Btwn Lo N Hi = Lo <= N && N < Hi @-}
-> {-@ type Rng Lo Hi = {v:Int | Btwn Lo v Hi}    @-}
-
-< Rng 0 100
-
-is equivalent to the first type.
-
-To double check note that,
-
-> {-@ okRange :: [Rng 0 100] @-}
-> okRange = [1,10,30] :: [Int]
- 
-but, of course,
-
-> {-@ badRange :: [Rng 0 100] @-}
-> badRange = [1,10,300] :: [Int]
-
-
-We can describe a function's *contract* by refining its input and output types
-with our desired pre- and post-conditions.
-
-> {-@ range :: lo:Int -> hi:{Int | lo <= hi} -> [Rng lo hi] @-}
-
-This type tells us that `range` accepts two `Int`s, the second being larger than
-the first, and returns a `[Int]` where all of the elements are between `lo` and
-`hi`. Now if we implement `range`
-
-> range :: Int -> Int -> [Int]
-> range lo hi
->   | lo <= hi  = lo : range (lo + 1) hi
->   | otherwise = []
-
-LiquidHaskell complains that `lo` is not *strictly* less than `hi`!
-
-Fortunately, that's easily fixed, we'll just replace the `<=` in the guard with `<`.
-
-> {-@ range' :: lo:Int -> hi:{Int | lo <= hi} -> [Rng lo hi] @-}
-> range' :: Int -> Int -> [Int]
-> range' lo hi
->   | lo < hi   = lo : range' (lo + 1) hi
->   | otherwise = []
-
-
-Holes
------
-
-Typing out the base Haskell types can be tedious, especially since GHC will
-infer them. So we use `_` to represent a *type-hole*, which LiquidHaskell will
-automatically fill in by asking GHC. For example, if we wrote a function
-`rangeFind` with type
-
-< (Int -> Bool) -> Int -> Int -> Maybe Int
-
-we could write the refined type
-
-> {-@ rangeFind :: _ -> lo:_ -> hi:{_ | lo <= hi} -> Maybe (Rng lo hi) @-}
-> rangeFind f lo hi = find f $ range lo hi
-
-Note that in order for `rangeFind` to type-check, LiquidHaskell has to infer
-that `find` returns a `Maybe (Rng lo hi)` (show off liquid-pos-tip), which it
-does by instantiating `find`s type parameter `a` with `Rng lo hi`.
-
-Ok, we can talk about Integers, what about arbitrary, user-defined datatypes?
-
-
-Measures
-========
-
-Let's go one step further with `range` and reason about the length of the 
-resulting list. Given that
-
-< range 0 2 == [0,1]
-
-and
-
-< range 1 1 == []
-
-it looks like the length of the output list should be `hi - lo`, but how do we 
-express that in LiquidHaskell?
-
-(Instead of defining an index that is baked into the type definition)
-we'll define a *measure*, which you can think of as a *view* of the datatype.
-
-< {-@ measure len :: [a] -> Int
-<     len ([])   = 0
-<     len (x:xs) = 1 + (len xs)
-<   @-}
-
-Measures look like Haskell functions, but they're *not*. They are a very
-restricted subset of inductively-defined Haskell functions with a single
-equation per data constructor. LiquidHaskell translates measures into refined
-types for the data constructors, e.g.
-
-< []  :: {v:[a] | len v = 0}
-< (:) :: _ -> xs:_ -> {v:[a] | len v = len xs + 1}
-
-ASIDE: another great spot to show off liquid-pos-tip.
-NV: state that measures are uninterpreted functions into logic
-
-> mylist = 1 : []
-
-LiquidHaskell's interpretation of measures is a key distinction from indexed
-data types, because we can define multiple measures independently of the actual
-type definition, and LiquidHaskell will just conjoin the refinements arising
-from the individual measures.
-
-ASIDE: perhaps quickly show by defining `measure null` as a throwaway.
-
-With our measure in hand we can now specify our final type for `range`
-
-> {-@ range'' :: lo:Int -> hi:{Int | lo <= hi} -> {v:[Rng lo hi] | len v = hi - lo } @-}
-
-Notice that we don't need to change the implementation at all, LiquidHaskell 
-accepts it as is!
-
-> range'' :: Int -> Int -> [Int]
-> range'' lo hi
->   | lo < hi   = lo : range'' (lo + 1) hi
->   | otherwise = []
-
-We can also give precise specifications to, e.g., `append`
-
-> {-@ append :: xs:_ -> ys:_ -> {v:_ | len v = len xs + len ys} @-}
-> append []     ys = ys
-> append (x:xs) ys = x : append xs ys
-
-
-
-
-Refined Data Types
-------------------
-
-Sometimes we *want* every instance of a type to satisfy some invariant. Every
-row in a `CSV` table should have the same number of columns.
-
-NV: Universal invariants that we get by type polymorphism is not trivial, 
-so maybe give a simple type like [{v:Int |  v > 0}]
-before going into [ListL a cols]
-
-
-> data CSV a = CSV { cols :: [String], rows :: [[a]] }
-> {-@ type ListL a L = {v:[a] | len v = len L} @-}
-> {-@ data CSV a = CSV { cols :: [String], rows :: [ListL a cols] } @-}
-
-Since the invariant is *baked into* the refined type definition, LiquidHaskell
-will reject *any* `CSV` value that does not satisfy the invariant.
-
-> good_2 = CSV [ "Month", "Days"]
->              [ ["Jan", "31"]
->              , ["Feb", "28"] ]
-> bad_2  = CSV [ "Month", "Days"]
->              [ ["Jan", "31"]
->              , ["Feb"] ]
-
-
-
-RJ:BEGIN-CUT
-
-Refined Type-Classes
---------------------
-
-Perhaps there's a common interface that we want multiple data types to support,
-e.g. random-access. Many such interfaces have protocols that define how to
-*safely* use the interface, like "don't index out-of-bounds". We can describe
-these protocols in LiquidHaskell by packaging the functions into a type-class
-and giving it a refined definition.
-
-> class Indexable f where
->   size :: f a -> Int
->   at   :: f a -> Int -> a
->
-> {-@
-> class Indexable f where
->   size :: forall a. xs:f a -> {v:Nat | v = sz xs}
->   at   :: forall a. xs:f a -> {v:Nat | v < sz xs} -> a
-> @-}
-
-This poses a bit of a problem though, how do we define the `sz` measure?
-Measures have to be defined for a specific datatype so LiquidHaskell can refine
-the constructors. We'll work around this issue by introducing *type-indexed*
-measures.
-
-> {-@ class measure sz :: forall a. a -> Int @-}
-> {-@ instance measure sz :: [a] -> Int
->     sz ([])   = 0
->     sz (x:xs) = 1 + (sz xs)
->   @-}
-> {-@ invariant {v:[a] | sz v >= 0} @-}
-
-Apart from allowing definitions for multiple types, class measures work just
-like regular measures, i.e. they're translated into refined data constructor
-types.
-
-If we go ahead and define an instance for lists,
-
-> instance Indexable [] where
->   size []        = 0
->   size (x:xs)    = 1 + size xs
->
->   (x:xs) `at` 0  = x
->   (x:xs) `at` i  = xs `at` (i-1)
-
-LiquidHaskell will verify that our implementation matches the class
-specification.
-
-Clients of a type-class get to assume that the instances have been defined
-correctly, i.e. LiquidHaskell will happily prove that 
-
-> sum :: (Indexable f) => f Int -> Int
-> sum xs = go 0 
->   where
->     go i | i < size xs = xs `at` i + go (i+1)
->          | otherwise   = 0
-
-is safe for **all** instances of `Indexable`.
-
-
-Abstract Refinements
---------------------
-
-All of the examples so far have used *concrete* refinements, but sometimes
-we just want to say that *some* property will be preserved by the function, e.g.
-
-> max     :: Int -> Int -> Int 
-> max x y = if x > y then x else y
->
-> {-@ xPos  :: {v: _ | v > 0} @-}
-> xPos  = max 10 13
->
-> {-@ xNeg  :: {v: _ | v < 0} @-}
-> xNeg  = max (0-5) (0-8)
->
-> {-@ xEven :: {v: _ | v mod 2 == 0} @-}
-> xEven = max 4 (0-6)
-
-Since `max` returns one of it's arguments, we know that if *both* inputs share
-some property, then *so will the output*. In LiquidHaskell we can express this
-by abstracting over the refinements.
-
-> {-@ max :: forall <p :: Int -> Prop>.
->            Int<p> -> Int<p> -> Int<p>
->   @-}
-
-RJ:END-CUT
-
-Now that we've covered the basics of using LiquidHaskell, let's take a look at
-our first experiment: proving functions total.
diff --git a/docs/slides/HS2014/ByteString-BAD-DIFFCHECK.hs b/docs/slides/HS2014/ByteString-BAD-DIFFCHECK.hs
deleted file mode 100644
--- a/docs/slides/HS2014/ByteString-BAD-DIFFCHECK.hs
+++ /dev/null
@@ -1,108 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diffcheck"      @-}
-{-@ LIQUID "--short-names"    @-}
-{-# LANGUAGE ForeignFunctionInterface #-}
-module Bytestring where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Language.Haskell.Liquid.Prelude
-
-
-data ByteString = PS { bPayload :: ForeignPtr Word8
-                     , bOffset  :: !Int
-                     , bLength  :: !Int
-                     }
-
-{- measure fplen :: ForeignPtr a -> Int -}
-
-{-@ data ByteString = PS
-      { bPayload :: ForeignPtr Word8
-      , bOffset  :: {v:Nat | v           <= fplen bPayload}
-      , bLength  :: {v:Nat | bOffset + v <= fplen bPayload}
-      }
-  @-}
-
-{-@ type ByteStringN N = {v:ByteString | bLength v = N} @-}
-
-{-@ type ForeignN a N = {v:ForeignPtr a | fplen v = N} @-}
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignN a n) @-}
-
-bs = do fp <- mallocForeignPtrBytes 5
-        return $ PS fp 2 3
-
-{-@ create :: l:Nat -> (PtrN Word8 l -> IO ()) -> IO (ByteStringN l) @-}
-create l f = do
-    fp <- mallocForeignPtrBytes  l
-    withForeignPtr fp $ \p -> f p
-    return $! PS fp 0 l
-
-foo = create 5 $ \p -> poke (p `plusPtr` 4) (0 :: Word8)
-
-{-@ pack :: s:[Word8] -> ByteStringN (len s) @-}
-pack str = unsafeCreate (length str) $ \p -> go p  str
-  where
-    go _ []     = return  ()
-    go p (x:xs) = poke p x >> go (p `plusPtr` 1) xs
-
-
--- uncomment this spec and then twiddle the definition to rerun diffcheck, it 
--- will only resolve the type error on the line you twiddle.
-{- unsafeIndex :: b:ByteString -> {v:Nat | v < bLength b} -> Word8 @-}
-unsafeIndex (PS x s l) i = liquidAssert (i >= 0 && i < l)  $
-    unsafePerformIO $ withForeignPtr x $ \p -> peekByteOff p (s + i) --FIXME: diffcheck breaks here
-
-
-
-
-
-good = let b = pack [1,2,3]
-       in unsafeIndex b 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- Helper Code
------------------------------------------------------------------------
-{-@ unsafeCreate :: l:Nat -> (PtrN Word8 l -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLength  v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
--- Local Variables:
--- flycheck-checker: haskell-liquid
--- End:
-
-create :: Int -> (Ptr Word8 -> IO ()) -> IO ByteString
-unsafeIndex :: ByteString -> Int -> Word8
diff --git a/docs/slides/HS2014/ByteString-blank.hs b/docs/slides/HS2014/ByteString-blank.hs
deleted file mode 100644
--- a/docs/slides/HS2014/ByteString-blank.hs
+++ /dev/null
@@ -1,213 +0,0 @@
-module Bytestring where
-
-import Prelude hiding (null)
-import Data.Char
-import Data.Word
-import Foreign.C.Types
-import Foreign.ForeignPtr
-import Foreign.Ptr
-import Foreign.Storable
-import System.IO.Unsafe
-import Language.Haskell.Liquid.Prelude
-
-
-data ByteString = PS { bPayload :: ForeignPtr Word8
-                     , bOffset  :: !Int
-                     , bLength  :: !Int
-                     }
-
-{- measure fplen :: ForeignPtr a -> Int -}
-
-{-@ data ByteString = PS
-      { bPayload :: ForeignPtr Word8
-      , bOffset  :: {v:Nat | v           <= fplen bPayload}
-      , bLength  :: {v:Nat | bOffset + v <= fplen bPayload}
-      }
-  @-}
-
-{-@ type ByteStringN N = {v:ByteString | bLength v = N} @-}
-
-{-@ type ForeignN a N = {v:ForeignPtr a | fplen v = N} @-}
-{-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignN a n) @-}
-
-bs = do fp <- mallocForeignPtrBytes 5
-        return $ PS fp 2 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-create l f = do
-    fp <- mallocForeignPtrBytes l
-    withForeignPtr fp $ \p -> f p
-    return $! PS fp 0 l
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-foo = create 5 $ \p -> poke (p `plusPtr` 4) (0 :: Word8)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-pack str = unsafeCreate (length str) $ \p -> go p  str
-  where
-    go _ []     = return ()
-    go p (x:xs) = poke p x >> go (p `plusPtr` 1) xs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-unsafeIndex (PS x s l) i = liquidAssert (i >= 0 && i < l)  $
-    unsafePerformIO $ withForeignPtr x $ \p -> peekByteOff p (s+i)
-
-
-
-
-good = let b = pack [1,2,3]
-       in unsafeIndex b 2
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- Helper Code
------------------------------------------------------------------------
-{-@ unsafeCreate :: l:Nat -> (PtrN Word8 l -> IO ()) -> (ByteStringN l) @-}
-unsafeCreate n f = unsafePerformIO $ create n f
-
-{-@ invariant {v:ByteString   | bLength  v >= 0} @-}
-
-{-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-{-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-{-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-{-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-{-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
-
--- Local Variables:
--- flycheck-checker: haskell-liquid
--- End:
-
-create :: Int -> (Ptr Word8 -> IO ()) -> IO ByteString
-unsafeIndex :: ByteString -> Int -> Word8
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diffcheck"      @-}
-{-@ LIQUID "--short-names"    @-}
diff --git a/docs/slides/HS2014/ByteString.lhs b/docs/slides/HS2014/ByteString.lhs
deleted file mode 100644
--- a/docs/slides/HS2014/ByteString.lhs
+++ /dev/null
@@ -1,344 +0,0 @@
-> {-@ LIQUID "--no-termination" @-}
-> {-@ LIQUID "--short-names"    @-}
-> {-@  LIQUID "--diffcheck"     @-}
-> {-# LANGUAGE ForeignFunctionInterface #-}
-> 
-> module Bytestring where
-> 
-> import Prelude hiding (null)
-> import Data.Char
-> import Data.Word
-> import Foreign.C.Types
-> import Foreign.ForeignPtr
-> import Foreign.Ptr
-> import Foreign.Storable
-> import System.IO.Unsafe
-> import Language.Haskell.Liquid.Prelude
-
-Now for some real fun, let's try to prove that `ByteString` is memory-safe! 
-
-`ByteString`s are at the heart of many Haskell applications, e.g. web servers, 
-and, as we saw at the beginning of the talk, a bad access can lead to a segfault 
-or, even worse, leaking arbitrary memory.
-
-A `ByteString` consists of a pointer into a region of memory, an offset into 
-the region, and a length.
-
-> data ByteString = PS { bPayload :: ForeignPtr Word8
->                      , bOffset  :: !Int
->                      , bLength  :: !Int
->                      }
-
-The crucial invariant is that we should only be able to reach valid memory 
-locations via the offset and length, i.e. the sum `off + len` *must not exceed* 
-the "length" of the pointer.
-
-> {-@ data ByteString = PS
->       { bPayload :: ForeignPtr Word8
->       , bOffset  :: {v:Nat | v           <= fplen bPayload}
->       , bLength  :: {v:Nat | bOffset + v <= fplen bPayload}
->       }
->   @-}
-
-What is the "length" of a pointer? It's the number of bytes that are
-addressable from the base of the pointer. We can't compute it, but that
-won't stop us from talking about it in our types. We provide a "ghost"
-measure called `fplen` to refer to this length.
-
-NV: "ghost measure" is more complicated than uninterpreted function
-
-< {-@ measure fplen :: ForeignPtr a -> Int @-}
-
-and use it to define a foreign-pointer to a segment containing *N* bytes
-
-> {-@ type ForeignN a N = {v:ForeignPtr a | fplen v = N} @-}
-
-Since we haven't defined any equations for `fplen` we won't get strengthed 
-constructors. Instead, we will *assume* that `malloc` behaves sensibly and
-allocates the number of bytes you asked for.
-
-> {-@ assume mallocForeignPtrBytes :: n:Nat -> IO (ForeignN a n) @-}
-
-Now let's create a few `ByteString`s. Here's a `ByteString` with 5 valid 
-indices. 
-
-> good_bs1 = do fp <- mallocForeignPtrBytes 5
->               return $ PS fp 0 5
-
-Note that the *length* of the BS is *not* the same as the region
-of allocated memory. 
-
-Here's a `ByteString` whose pointer region has 5-bytes, but the BS itself
-is of size 4.
- 
-> good_bs2 = do fp <- mallocForeignPtrBytes 5
->               return $ PS fp 2 4
-
-LiquidHaskell won't let us build a `ByteString` that claims to have more valid 
-indices than it *actually* does
-
-> bad_bs1 = do
->   fp <- mallocForeignPtrBytes 0 
->   return $ PS fp 0 10 
-
-even if we try to be sneaky with the length parameter.
-
-> bad_bs2 = do fp <- mallocForeignPtrBytes 3
->              return $ PS fp 2 2
-
-
-Creating ByteStrings
---------------------
-
-Nobody actually builds `ByteString`s like this though.
-
-The authors have kindly provided a higher-order function
-called `create` to handle the actual allocation. To `create`
-a `ByteString` you have to say how many bytes you want and
-provide a function that will fill in the newly allocated memory.
-
-> create :: Int -> (Ptr Word8 -> IO ()) -> IO ByteString
-> create l f = do
->     fp <- mallocForeignPtrBytes l
->     withForeignPtr fp $ \p -> f p
->     return $! PS fp 0 l
-
-But this seems horribly unsafe!
-
-What's to stop the parameter `f` from poking any random,
-invalid offset from the pointer it wants to?
-
-We could, e.g.
-
-* create a BS of size `5`, and
-* write a `0` at the index `10`.
-
-ASIDE: have these assumed types around to suppress the type-errors that LH will 
-       show, just remove them when script introduces type
-
-> {- assume plusPtr :: p:Ptr a -> n:Int -> Ptr b      @-}
-> {- assume poke :: Storable a => Ptr a -> a -> IO () @-}
-
-END ASIDE
-
-> bad_create = create 5 $ \p -> poke (p `plusPtr` 10) (0 :: Word8)
-
-which clearly isn't correct. We'd like to say that the provided
-function can only address locations a up to a certain offset
-from the pointer.
-
-Just as we had `fplen` to talk about the "length" of a `ForeignPtr`,
-we have provided `plen` to talk about the "length" of a `Ptr`, and
-we've defined a helpful alias
-
-< {-@ type PtrN a N = {v:Ptr a | plen v = N} @-}
-
-which says that a `PtrN a n` has precisely `n` addressable bytes
-from its base.
-
-
-Pointer Arithmetic
-------------------
-
-We have also given `plusPtr` the type
-
-< {-@ plusPtr :: p:Ptr a -> n:Int -> {v:Ptr a | plen v = plen p - n} @-}
-
-which says that as you increment a `Ptr`, you're left with fewer addressable
-bytes.
-
-Finally, we type `poke` as 
-
-< {-@ poke :: Storable a => {v:Ptr a | 0 <= plen v } -> a -> IO () @-}
-
-which says that the given `Ptr` must be addressable in order to safely `poke` it.
-
-Now we have all of the necessary tools to *prevent* ourselves from
-shooting ourselves in the foot with functions like `bad_create`.
-
-We'll just give `create` the type
- 
-> {-@ create :: l:Nat -> (PtrN Word8 l -> IO ()) -> IO (ByteStringN l) @-}
-
-where the alias
-
-> {-@ type ByteStringN N = {v:ByteString | bLength v = N} @-}
-
-describes `ByteString`s of length `N`.
-
-Lo and behold, LiquidHaskell has flagged `bad_create` as unsafe! 
-
-Furthermore, we can write things like
-
-> good_create = create 5 $ \p -> poke (p `plusPtr` 2) (0 :: Word8)
-
-Here's a real example from the BS library:
-
-> packWith        :: (a -> Word8) -> [a] -> ByteString
-> packWith k str  = unsafeCreate (length str) $ \p -> go p str
->   where
->     go _ []     = return ()
->     go p (x:xs) = poke p (k x) >> go (p `plusPtr` 1) xs
-
-proving that `pack` will *never* write out-of-bounds!
-
-
-ES: CUT
-
-
-Nested Data
------------
-
-For a more in depth example, let's take a look at `group`,
-which transforms strings like
-
-   `"foobaaar"`
-
-into *lists* of strings like
-
-   `["f","oo", "b", "aaa", "r"]`.
-
-The specification is that `group` should produce a list of `ByteStrings`
-
-1. that are all *non-empty* (safety)
-2. the sum of whose lengths is equal to the length of the input string (precision)
-
-We use the type alias
-
-> {-@ type ByteStringNE = {v:ByteString | bLength v > 0} @-}
-
-to specify (safety) and introduce a new measure
-
-> {-@ measure bLengths  :: [ByteString] -> Int
->     bLengths ([])   = 0
->     bLengths (x:xs) = (bLength x) + (bLengths xs)
->   @-}
-
-to specify (precision). The full type-specification looks like this:
-
-> {-@ group :: b:ByteString -> {v: [ByteStringNE] | bLengths v = bLength b} @-}
-> group xs
->     | null xs   = []
->     | otherwise = let y = unsafeHead xs
->                       (ys, zs) = spanByte (unsafeHead xs) (unsafeTail xs)
->                   in (y `cons` ys) : group zs
-
-As you can probably tell, `spanByte` appears to be doing a lot of the work here,
-so let's take a closer look at it to see why the post-condition holds.
-
-> spanByte :: Word8 -> ByteString -> (ByteString, ByteString)
-> spanByte c ps@(PS x s l) = unsafePerformIO $ withForeignPtr x $ \p ->
->     go (p `plusPtr` s) 0
->   where
->     go p i | i >= l    = return (ps, empty)
->            | otherwise = do c' <- peekByteOff p i
->                             if c /= c'
->                                 then return (unsafeTake i ps, unsafeDrop i ps)
->                                 else go p (i+1)
-
-LiquidHaskell infers that `0 <= i <= l` and therefore that all of the memory
-accesses are safe. Furthermore, due to the precise specifications given to
-`unsafeTake` and `unsafeDrop`, it is able to prove that `spanByte` has the type
-
-> {-@ spanByte :: Word8 -> b:ByteString -> (ByteStringPair b) @-}
-
-where `ByteStringPair b` describes a pair of `ByteString`s whose lengths sum to
-the length of `b`.
-
-> {-@ type ByteStringPair B = (ByteString, ByteString)<{\x1 x2 ->
->       bLength x1 + bLength x2 = bLength B}> @-}
-
-
-RJ:LIMITATIONS
-
-Those familiar with the internals of ByteString may notice that we have made a
-small change in `group`, the original implementation was
-
-< group :: ByteString -> [ByteString]
-< group xs
-<     | null xs   = []
-<     | otherwise = ys : group zs
-<     where
-<         (ys, zs) = spanByte (unsafeHead xs) xs
-
-Unfortunately this change was necessary in order to prove the safety invariant,
-that `group` returns a list of non-empty `ByteString`s. The real type we would
-like to give to `spanByte` (which would enable verification of the original
-`group`) would say something like
-
-  `spanByte x b` returns a pair of `ByteString`s, the first of which is non-empty
-  *iff* `x = head b`
-
-but it is unclear how to prove this at the moment in LiquidHaskell
-(TODO: figure out what would need to change to prove this.)
-
-> -----------------------------------------------------------------------
-> -- Helper Code
-> -----------------------------------------------------------------------
-> {-@ unsafeCreate :: l:Nat -> ((PtrN Word8 l) -> IO ()) -> (ByteStringN l) @-}
-> unsafeCreate n f = unsafePerformIO $ create n f
->
-> {-@ invariant {v:ByteString   | bLength  v >= 0} @-}
-> {-@ invariant {v:[ByteString] | bLengths v >= 0} @-}
-> 
-> {-@ qualif PLLen(v:a, p:b) : (len v) <= (plen p) @-}
-> {-@ qualif ForeignPtrN(v:ForeignPtr a, n:int): fplen v = n @-}
-> {-@ qualif FPLenPLen(v:Ptr a, fp:ForeignPtr a): fplen fp = plen v @-}
-> {-@ qualif PtrLen(v:Ptr a, xs:List b): plen v = len xs @-}
-> {-@ qualif PlenEq(v: Ptr a, x: int): x <= (plen v) @-}
->
-> {-@ unsafeHead :: {v:ByteString | (bLength v) > 0} -> Word8 @-}
-> unsafeHead :: ByteString -> Word8
-> unsafeHead (PS x s l) = liquidAssert (l > 0) $
->   unsafePerformIO  $  withForeignPtr x $ \p -> peekByteOff p s
-> 
-> {-@ unsafeTail :: b:{v:ByteString | (bLength v) > 0}
->                -> {v:ByteString | (bLength v) = (bLength b) - 1} @-}
-> unsafeTail :: ByteString -> ByteString
-> unsafeTail (PS ps s l) = liquidAssert (l > 0) $ PS ps (s+1) (l-1)
-> 
-> {-@ null :: b:ByteString -> {v:Bool | ((Prop v) <=> ((bLength b) = 0))} @-}
-> null :: ByteString -> Bool
-> null (PS _ _ l) = liquidAssert (l >= 0) $ l <= 0
-> 
-> {-@ unsafeTake :: n:Nat -> b:{v: ByteString | n <= (bLength v)} -> (ByteStringN n) @-}
-> unsafeTake :: Int -> ByteString -> ByteString
-> unsafeTake n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x s n
-> 
-> {-@ unsafeDrop :: n:Nat
->                -> b:{v: ByteString | n <= (bLength v)} 
->                -> {v:ByteString | (bLength v) = (bLength b) - n} @-}
-> unsafeDrop  :: Int -> ByteString -> ByteString
-> unsafeDrop n (PS x s l) = liquidAssert (0 <= n && n <= l) $ PS x (s+n) (l-n)
-> 
-> {-@ cons :: Word8 -> b:ByteString -> {v:ByteString | (bLength v) = 1 + (bLength b)} @-}
-> cons :: Word8 -> ByteString -> ByteString
-> cons c (PS x s l) = unsafeCreate (l+1) $ \p -> withForeignPtr x $ \f -> do
->         poke p c
->         memcpy (p `plusPtr` 1) (f `plusPtr` s) (fromIntegral l)
-> 
-> {-@ empty :: {v:ByteString | (bLength v) = 0} @-} 
-> empty :: ByteString
-> empty = PS nullForeignPtr 0 0
-> 
-> {-@ assume
->     c_memcpy :: dst:(PtrV Word8)
->              -> src:(PtrV Word8) 
->              -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
->              -> IO (Ptr Word8)
->   @-}
-> foreign import ccall unsafe "string.h memcpy" c_memcpy
->     :: Ptr Word8 -> Ptr Word8 -> CSize -> IO (Ptr Word8)
-> 
-> {-@ memcpy :: dst:(PtrV Word8)
->            -> src:(PtrV Word8) 
->            -> size: {v:CSize | (v <= (plen src) && v <= (plen dst))} 
->            -> IO () 
->   @-}
-> memcpy :: Ptr Word8 -> Ptr Word8 -> CSize -> IO ()
-> memcpy p q s = c_memcpy p q s >> return ()
-> 
-> {-@ assume nullForeignPtr :: {v: ForeignPtr Word8 | (fplen v) = 0} @-}
-> nullForeignPtr :: ForeignPtr Word8
-> nullForeignPtr = unsafePerformIO $ newForeignPtr_ nullPtr
-> {-# NOINLINE nullForeignPtr #-}
diff --git a/docs/slides/HS2014/TODO.md b/docs/slides/HS2014/TODO.md
deleted file mode 100644
--- a/docs/slides/HS2014/TODO.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# Timing
-- basics     5min (currently 12)
-- totality   7min (currently 7)
-- bytestring 8min (currently 12)
-
-figure out sub-segments, allocate time to each, rehearse in isolation
-
-## Desired
-- intro / contrived unsafeIndex motivator: 1 min
-- basics: 6 min
-  - list of numbers between 0 and 100: 1.5 min
-  - range + bug: 1.5 min
-  - measures​ / add length to range output​: ​3​ min
-  - CSV: 1 min
-- totality: 5 min
-  - head: 2 min
-  - safeZipWith: 1 min
-  - nestcomment: 2 min
-- bytestring: 9 min
-  - data definition: 1 min
-  - fplen / "ghost measures": 1 min
-  - make good / bad bytestrings manually: 1 min
-  - create: 4 min
-  - pack: 1 min
-  - unsafeIndex / preventing motivating segfault: 1 min
-- results / conclusion: 1 min
diff --git a/docs/slides/HS2014/Totality-blank.hs b/docs/slides/HS2014/Totality-blank.hs
deleted file mode 100644
--- a/docs/slides/HS2014/Totality-blank.hs
+++ /dev/null
@@ -1,73 +0,0 @@
-{-@ LIQUID "--totality" @-}
-module Totality where
-
-import Prelude hiding (head)
-
-head (x:_) = x
-
--- head xs = case xs of
---   (x:_) -> x
---   []    -> patError "..."
-
--- patError :: {v:String | false} -> a
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-nestcomment n ('{':'-':ss) | n>=0 = (("{-"++cs),rm)
-                                  where (cs,rm) = nestcomment (n+1) ss
-nestcomment n ('-':'}':ss) | n>0  = let (cs,rm) = nestcomment (n-1) ss
-                                    in (("-}"++cs),rm)
-nestcomment n ('-':'}':ss) | n==0 = ("-}",ss)
-nestcomment n (s:ss)       | n>=0 = ((s:cs),rm)
-                                  where (cs,rm) = nestcomment n ss
-nestcomment n [] = ([],[])
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- Local Variables:
--- flycheck-checker: haskell-liquid
--- End:
-
-nestcomment :: Int -> String -> (String,String)
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diffcheck"      @-}
-{-@ LIQUID "--short-names"    @-}
diff --git a/docs/slides/HS2014/Totality.lhs b/docs/slides/HS2014/Totality.lhs
deleted file mode 100644
--- a/docs/slides/HS2014/Totality.lhs
+++ /dev/null
@@ -1,126 +0,0 @@
-> {-@ LIQUID "--no-termination" @-}
-> {-@ LIQUID "--totality"       @-}
-> {-@ LIQUID "--diffcheck"      @-}
-> 
-> module Totality where
-> 
-> import Prelude hiding (head)
-> import Language.Haskell.Liquid.Prelude
-> import Control.Exception.Base
-
-One of the most maligned Haskell functions is also one of the simplest.
-
-> head (x:_) = x
-
-Many people argue that `head` and co. should be removed from the Prelude because
-they're partial functions, and partial functions are dangerous.
-
-The often-recommended alternative of making partial functions return a `Maybe` or
-`Either` is often tedious and encourages the use of *other* partial functions like `fromJust`.
-
-What we really ought to do is *prove* that undefined case can never arise.
-
-This is relatively easy in LiquidHaskell.
-
-GHC already does much of the heavy lifting by filling in all of the undefined
-cases with explicit calls to various error functions, e.g.
-
-< head (x:_) = x
-
-is transformed into
-
-< head xs = case xs of
-<   (x:_) = x
-<   []    = patError "..."
-
-The path is clear, we want to make LiquidHaskell prove that we will never call 
-any of these internal error functions that GHC inserts. We can accomplish this 
-by giving each function a refined type where the pre-condition is `false`, i.e.
-
-< {-@ patError :: {v:_ | false} -> a @-}
-
-*If* LiquidHaskell can prove `false` at any of these callsites, it means there 
-was a contradiction somewhere along the way and the call is effectively dead 
-code. So how do we prove that `patError` is unreachable in `head`?
-
-We can specify that `head` should only be called with *non-empty* lists by 
-giving it a refined type like
-
-> {-@ head :: {v:[a] | 0 < len v} -> a @-}
-
-Now, when LiquidHaskell sees the case-analysis on the `[]` case, it puts
-
-< len xs = 0
-
-in the environemnt as usual, *but* we just gave `head` a pre-condition that
-
-< len xs > 0
-
-So we actually end up with
-
-< len xs = 0 && len xs > 0
-
-which is a contradiction, therefore it is safe to "call" `patError` since we 
-have proven that the call will never *actually* happen.
-
-
-Partial Zipping
----------------
-
-Inside LiquidHaskell, we often want to combine multiple lists, so we use the 
-stalwart `zipWith` function. The problem with `zipWith` is that if the two 
-lists are *not* the same size, it will *silently drop* the remaining items of 
-the longer list.
-
-This is almost *never* what we want, instead we consider it an error to call 
-`zipWith` on lists of non-equal length. So we've written our own `safeZipWith` 
-function that leaves the case of zipping a nil and a cons undefined.
-
-> safeZipWith f = go
->   where
->     go (x:xs) (y:ys) = f x y : go xs ys
->     go []     []     = []
-
-As you can see, LiquidHaskell is not happy with this definition! It (rightly) 
-complains that we've left a case unhandled because we haven't yet told it that 
-we only want `safeZipWith` to accept lists of equal length. Luckily, this is 
-easily rectified, we'll introduce a handy type-alias for a list with the same
-length as another list
-
-> {-@ type ListL a Xs = {v:[a] | len v == len Xs} @-} 
-
-and use it to concisely express our contract for `safeZipWith`.
-
-> {-@ safeZipWith :: (a -> b -> c) -> xs:[a] -> ListL b xs -> ListL c xs @-}
-
-
-Totality in Real-World
-----------------------
-
-If that was not convincing enough, I'll leave you with a final example from 
-HsColour, which is probably invoked thousands of times per day.
-
-> nestcomment :: Int -> String -> (String, String)
-> nestcomment n ('{':'-':ss) | n>=0 = (("{-"++   cs),rm)
->                                   where (cs,rm) = nestcomment (n+1) ss
-> nestcomment n ('-':'}':ss) | n>0  = let (cs,rm) = nestcomment (n-1) ss
->                                     in (("-}"++cs),rm)
-> nestcomment n ('-':'}':ss) | n==0 = ("-}",ss)
-> nestcomment n (s:ss)       | n>=0 = ((s:cs),rm)
->                                   where (cs,rm) = nestcomment n ss
-> nestcomment n [] = ([],[])
-
-What this function does precisely is not that important, notice instead that 
-LiquidHaskell has flagged it as partial, because there's an unhandled case
-
-< nestcomment n (s:ss) | n < 0 = ????
-
-Well, it doesn't seem particularly sensible to have a *negative* nesting depth, 
-so we'll just tell LiquidHaskell that `nestcomment` should really only be 
-called with natural numbers (without incurring the wrath of Peano numbers)!
-
-> {-@ nestcomment :: Nat -> _ -> (_,_) @-}
-
-
-So that was totality, next let's try something more ambitious, proving memory 
-safety in `ByteString`!
diff --git a/docs/slides/IHP14/Makefile b/docs/slides/IHP14/Makefile
deleted file mode 100644
--- a/docs/slides/IHP14/Makefile
+++ /dev/null
@@ -1,91 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-RJSERVER=rjhala@goto.ucsd.edu:~/public_html/liquid/haskell/plpv/lhs/
-####################################################################
-
-STRIPCODE=./MkCode.hs
-
-REVEAL=pandoc \
-	   --from=markdown\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js
-
-FREVEAL=pandoc \
- 	   --from=markdown+lhs\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal.js
-
-PANDOC=pandoc --columns=80  -s --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid --short-names 
-
-mdObjects   := $(patsubst %.lhs,%.lhs.markdown,$(wildcard lhs/*.lhs))
-htmlObjects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-pdfObjects  := $(patsubst %.lhs,%.lhs.slides.pdf,$(wildcard lhs/*.lhs))
-fhtmlObjects := $(patsubst %.lhs,%.fast.html,$(wildcard lhs/*.lhs))
-
-####################################################################
-
-
-all: slides 
-
-fast: $(fhtmlObjects)
-
-one: $(mdObjects)
-	$(REVEAL) lhs/.liquid/00_Index.lhs.markdown > lhs/index.html
-
-tut: $(mdObjects)
-	$(REVEAL) lhs/.liquid/*.markdown > lhs/tutorial.html 
-
-slides: $(htmlObjects)
-
-
-pdfslides: $(pdfObjects)
-
-plpv: slides
-	scp lhs/*.html $(RJSERVER)
-
-lhs/.liquid/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-
-lhs/%.fast: lhs/%.lhs
-	$(STRIPCODE) $? > $@ 
-
-lhs/%.fast.html: lhs/%.fast
-	$(FREVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.html: lhs/.liquid/%.lhs.markdown
-	$(REVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/.liquid/%.lhs.markdown
-	$(BEAMER) $? -o $@
-
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/IHP14/MkCode.hs b/docs/slides/IHP14/MkCode.hs
deleted file mode 100644
--- a/docs/slides/IHP14/MkCode.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/usr/bin/env runhaskell
-
-import System.Environment   (getArgs)
-import System.FilePath      (replaceExtension)
-import Data.Char            (isSpace)
-import Data.List            (isPrefixOf)
-
-main     = getArgs >>= mapM txFile 
-
-txFile f = (putStrLn . unlines . map txLine . lines) =<< readFile f
-
-txLine l 
-  | pfx `isPrefixOf` l = pfx
-  | otherwise          = l
-  where
-    pfx                = "\\begin{code}"
-
diff --git a/docs/slides/IHP14/_support/.template2.reveal.swp b/docs/slides/IHP14/_support/.template2.reveal.swp
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/.template2.reveal.swp and /dev/null differ
diff --git a/docs/slides/IHP14/_support/liquid.css b/docs/slides/IHP14/_support/liquid.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/IHP14/_support/liquidhaskell.css b/docs/slides/IHP14/_support/liquidhaskell.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/liquidhaskell.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/IHP14/_support/reveal.js/.travis.yml b/docs/slides/IHP14/_support/reveal.js/.travis.yml
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-before_script:
-  - npm install -g grunt-cli
diff --git a/docs/slides/IHP14/_support/reveal.js/Gruntfile.js b/docs/slides/IHP14/_support/reveal.js/Gruntfile.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/Gruntfile.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* global module:false */
-module.exports = function(grunt) {
-	var port = grunt.option('port') || 8000;
-	// Project configuration
-	grunt.initConfig({
-		pkg: grunt.file.readJSON('package.json'),
-		meta: {
-			banner:
-				'/*!\n' +
-				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
-				' * http://lab.hakim.se/reveal-js\n' +
-				' * MIT licensed\n' +
-				' *\n' +
-				' * Copyright (C) 2014 Hakim El Hattab, http://hakim.se\n' +
-				' */'
-		},
-
-		qunit: {
-			files: [ 'test/*.html' ]
-		},
-
-		uglify: {
-			options: {
-				banner: '<%= meta.banner %>\n'
-			},
-			build: {
-				src: 'js/reveal.js',
-				dest: 'js/reveal.min.js'
-			}
-		},
-
-		cssmin: {
-			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
-			}
-		},
-
-		sass: {
-			main: {
-				files: {
-					'css/theme/default.css': 'css/theme/source/default.scss',
-					'css/theme/beige.css': 'css/theme/source/beige.scss',
-					'css/theme/night.css': 'css/theme/source/night.scss',
-					'css/theme/serif.css': 'css/theme/source/serif.scss',
-					'css/theme/simple.css': 'css/theme/source/simple.scss',
-					'css/theme/sky.css': 'css/theme/source/sky.scss',
-					'css/theme/moon.css': 'css/theme/source/moon.scss',
-					'css/theme/solarized.css': 'css/theme/source/solarized.scss',
-					'css/theme/blood.css': 'css/theme/source/blood.scss'
-				}
-			}
-		},
-
-		jshint: {
-			options: {
-				curly: false,
-				eqeqeq: true,
-				immed: true,
-				latedef: true,
-				newcap: true,
-				noarg: true,
-				sub: true,
-				undef: true,
-				eqnull: true,
-				browser: true,
-				expr: true,
-				globals: {
-					head: false,
-					module: false,
-					console: false,
-					unescape: false
-				}
-			},
-			files: [ 'Gruntfile.js', 'js/reveal.js' ]
-		},
-
-		connect: {
-			server: {
-				options: {
-					port: port,
-					base: '.'
-				}
-			}
-		},
-
-		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**'
-			]
-		},
-
-		watch: {
-			main: {
-				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-				tasks: 'default'
-			},
-			theme: {
-				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
-				tasks: 'themes'
-			}
-		}
-
-	});
-
-	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
-	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
-	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-contrib-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
-	grunt.loadNpmTasks( 'grunt-zip' );
-
-	// Default task
-	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );
-
-	// Theme task
-	grunt.registerTask( 'themes', [ 'sass' ] );
-
-	// Package presentation to archive
-	grunt.registerTask( 'package', [ 'default', 'zip' ] );
-
-	// Serve presentation locally
-	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
-
-	// Run tests
-	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
-
-};
diff --git a/docs/slides/IHP14/_support/reveal.js/LICENSE b/docs/slides/IHP14/_support/reveal.js/LICENSE
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2014 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/IHP14/_support/reveal.js/README.md b/docs/slides/IHP14/_support/reveal.js/README.md
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/README.md
+++ /dev/null
@@ -1,933 +0,0 @@
-# reveal.js [![Build Status](https://travis-ci.org/hakimel/reveal.js.png?branch=master)](https://travis-ci.org/hakimel/reveal.js)
-
-A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/).
-
-reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a browser with support for CSS 3D transforms but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere.
-
-
-#### More reading:
-- [Installation](#installation): Step-by-step instructions for getting reveal.js running on your computer.
-- [Changelog](https://github.com/hakimel/reveal.js/releases): Up-to-date version history.
-- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own!
-- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Browser-Support): Explanation of browser support and fallbacks.
-
-## Online Editor
-
-Presentations are written using HTML or markdown but there's also an online editor for those of you who prefer a graphical interface. Give it a try at [http://slid.es](http://slid.es).
-
-
-## Instructions
-
-### Markup
-
-Markup hierarchy needs to be ``<div class="reveal"> <div class="slides"> <section>`` where the ``<section>`` represents one slide and can be repeated indefinitely. If you place multiple ``<section>``'s inside of another ``<section>`` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example:
-
-```html
-<div class="reveal">
-	<div class="slides">
-		<section>Single Horizontal Slide</section>
-		<section>
-			<section>Vertical Slide 1</section>
-			<section>Vertical Slide 2</section>
-		</section>
-	</div>
-</div>
-```
-
-### Markdown
-
-It's possible to write your slides using Markdown. To enable Markdown, add the ```data-markdown``` attribute to your ```<section>``` elements and wrap the contents in a ```<script type="text/template">``` like the example below.
-
-This is based on [data-markdown](https://gist.github.com/1343518) from [Paul Irish](https://github.com/paulirish) modified to use [marked](https://github.com/chjj/marked) to support [Github Flavoured Markdown](https://help.github.com/articles/github-flavored-markdown). Sensitive to indentation (avoid mixing tabs and spaces) and line breaks (avoid consecutive breaks).
-
-```html
-<section data-markdown>
-	<script type="text/template">
-		## Page title
-
-		A paragraph with some text and a [link](http://hakim.se).
-	</script>
-</section>
-```
-
-#### External Markdown
-
-You can write your content as a separate file and have reveal.js load it at runtime. Note the separator arguments which determine how slides are delimited in the external file. The ```data-charset``` attribute is optional and specifies which charset to use when loading the external file.
-
-When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup).
-
-```html
-<section data-markdown="example.md"  
-         data-separator="^\n\n\n"  
-         data-vertical="^\n\n"  
-         data-notes="^Note:"  
-         data-charset="iso-8859-15">
-</section>
-```
-
-#### Element Attributes
-
-Special syntax (in html comment) is available for adding attributes to Markdown elements. This is useful for fragments, amongst other things.
-
-```html
-<section data-markdown>
-	<script type="text/template">
-		- Item 1 <!-- .element: class="fragment" data-fragment-index="2" -->
-		- Item 2 <!-- .element: class="fragment" data-fragment-index="1" -->
-	</script>
-</section>
-```
-
-#### Slide Attributes
-
-Special syntax (in html comment) is available for adding attributes to the slide `<section>` elements generated by your Markdown.
-
-```html
-<section data-markdown>
-	<script type="text/template">
-	<!-- .slide: data-background="#ff0000" -->
-		Markdown content
-	</script>
-</section>
-```
-
-
-### Configuration
-
-At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below.
-
-```javascript
-Reveal.initialize({
-
-	// Display controls in the bottom right corner
-	controls: true,
-
-	// Display a presentation progress bar
-	progress: true,
-
-	// Display the page number of the current slide
-	slideNumber: false,
-
-	// Push each slide change to the browser history
-	history: false,
-
-	// Enable keyboard shortcuts for navigation
-	keyboard: true,
-
-	// Enable the slide overview mode
-	overview: true,
-
-	// Vertical centering of slides
-	center: true,
-
-	// Enables touch navigation on devices with touch input
-	touch: true,
-
-	// Loop the presentation
-	loop: false,
-
-	// Change the presentation direction to be RTL
-	rtl: false,
-
-	// Turns fragments on and off globally
-	fragments: true,
-
-	// Flags if the presentation is running in an embedded mode,
-	// i.e. contained within a limited portion of the screen
-	embedded: false,
-
-	// Number of milliseconds between automatically proceeding to the
-	// next slide, disabled when set to 0, this value can be overwritten
-	// by using a data-autoslide attribute on your slides
-	autoSlide: 0,
-
-	// Stop auto-sliding after user input
-	autoSlideStoppable: true,
-
-	// Enable slide navigation via mouse wheel
-	mouseWheel: false,
-
-	// Hides the address bar on mobile devices
-	hideAddressBar: true,
-
-	// Opens links in an iframe preview overlay
-	previewLinks: false,
-
-	// Transition style
-	transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-	// Transition speed
-	transitionSpeed: 'default', // default/fast/slow
-
-	// Transition style for full page slide backgrounds
-	backgroundTransition: 'default', // default/none/slide/concave/convex/zoom
-
-	// Number of slides away from the current that are visible
-	viewDistance: 3,
-
-	// Parallax background image
-	parallaxBackgroundImage: '', // e.g. "'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg'"
-
-	// Parallax background size
-	parallaxBackgroundSize: '' // CSS syntax, e.g. "2100px 900px"
-
-
-});
-```
-
-Note that the new default vertical centering option will break compatibility with slides that were using transitions with backgrounds (`cube` and `page`). To restore the previous behavior, set `center` to `false`.
-
-
-The configuration can be updated after initialization using the ```configure``` method:
-
-```javascript
-// Turn autoSlide off
-Reveal.configure({ autoSlide: 0 });
-
-// Start auto-sliding every 5s
-Reveal.configure({ autoSlide: 5000 });
-```
-
-
-### Dependencies
-
-Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example:
-
-```javascript
-Reveal.initialize({
-	dependencies: [
-		// Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/
-		{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
-
-		// Interpret Markdown in <section> elements
-		{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-
-		// Syntax highlight for <code> elements
-		{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-
-		// Zoom in and out with Alt+click
-		{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// Speaker notes
-		{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// Remote control your reveal.js presentation using a touch device
-		{ src: 'plugin/remotes/remotes.js', async: true, condition: function() { return !!document.body.classList; } },
-
-		// MathJax
-		{ src: 'plugin/math/math.js', async: true }
-	]
-});
-```
-
-You can add your own extensions using the same syntax. The following properties are available for each dependency object:
-- **src**: Path to the script to load
-- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false
-- **callback**: [optional] Function to execute when the script has loaded
-- **condition**: [optional] Function which must return true for the script to be loaded
-
-
-### Presentation Size
-
-All presentations have a normal size, that is the resolution at which they are authored. The framework will automatically scale presentations uniformly based on this size to ensure that everything fits on any given display or viewport.
-
-See below for a list of configuration options related to sizing, including default values:
-
-```javascript
-Reveal.initialize({
-
-	...
-
-	// The "normal" size of the presentation, aspect ratio will be preserved
-	// when the presentation is scaled to fit different resolutions. Can be
-	// specified using percentage units.
-	width: 960,
-	height: 700,
-
-	// Factor of the display size that should remain empty around the content
-	margin: 0.1,
-
-	// Bounds for smallest/largest possible scale to apply to content
-	minScale: 0.2,
-	maxScale: 1.0
-
-});
-```
-
-
-### Auto-sliding
-
-Presentations can be configure to progress through slides automatically, without any user input. To enable this you will need to tell the framework how many milliseconds it should wait between slides:
-
-```javascript
-// Slide every five seconds
-Reveal.configure({
-  autoSlide: 5000
-});
-```
-
-When this is turned on a control element will appear that enables users to pause and resume auto-sliding. Sliding is also paused automatically as soon as the user starts navigating. You can disable these controls by specifying ```autoSlideStoppable: false``` in your reveal.js config.
-
-You can also override the slide duration for individual slides by using the ```data-autoslide``` attribute on individual sections:
-
-```html
-<section data-autoslide="10000">This will remain on screen for 10 seconds</section>
-```
-
-
-### Keyboard Bindings
-
-If you're unhappy with any of the default keyboard bindings you can override them using the ```keyboard``` config option:
-
-```javascript
-Reveal.configure({
-  keyboard: {
-    13: 'next', // go to the next slide when the ENTER key is pressed
-    27: function() {}, // do something custom when ESC is pressed
-    32: null // don't do anything when SPACE is pressed (i.e. disable a reveal.js default binding)
-  }
-});
-```
-
-
-### API
-
-The ``Reveal`` class provides a JavaScript API for controlling navigation and reading state:
-
-```javascript
-// Navigation
-Reveal.slide( indexh, indexv, indexf );
-Reveal.left();
-Reveal.right();
-Reveal.up();
-Reveal.down();
-Reveal.prev();
-Reveal.next();
-Reveal.prevFragment();
-Reveal.nextFragment();
-Reveal.toggleOverview();
-Reveal.togglePause();
-
-// Retrieves the previous and current slide elements
-Reveal.getPreviousSlide();
-Reveal.getCurrentSlide();
-
-Reveal.getIndices(); // { h: 0, v: 0 } }
-
-// State checks
-Reveal.isFirstSlide();
-Reveal.isLastSlide();
-Reveal.isOverview();
-Reveal.isPaused();
-```
-
-### Ready Event
-
-The 'ready' event is fired when reveal.js has loaded all (synchronous) dependencies and is ready to start navigating.
-
-```javascript
-Reveal.addEventListener( 'ready', function( event ) {
-	// event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-### Slide Changed Event
-
-An 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes.
-
-Some libraries, like MathJax (see [#226](https://github.com/hakimel/reveal.js/issues/226#issuecomment-10261609)), get confused by the transforms and display states of slides. Often times, this can be fixed by calling their update or render function from this callback.
-
-```javascript
-Reveal.addEventListener( 'slidechanged', function( event ) {
-	// event.previousSlide, event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-
-### States
-
-If you set ``data-state="somestate"`` on a slide ``<section>``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide.
-
-Furthermore you can also listen to these changes in state via JavaScript:
-
-```javascript
-Reveal.addEventListener( 'somestate', function() {
-	// TODO: Sprinkle magic
-}, false );
-```
-
-### Slide Backgrounds
-
-Slides are contained within a limited portion of the screen by default to allow them to fit any display and scale uniformly. You can apply full page background colors or images by applying a ```data-background``` attribute to your ```<section>``` elements. Below are a few examples.
-
-```html
-<section data-background="#ff0000">
-	<h2>All CSS color formats are supported, like rgba() or hsl().</h2>
-</section>
-<section data-background="http://example.com/image.png">
-	<h2>This slide will have a full-size background image.</h2>
-</section>
-<section data-background="http://example.com/image.png" data-background-size="100px" data-background-repeat="repeat">
-	<h2>This background image will be sized to 100px and repeated.</h2>
-</section>
-```
-
-Backgrounds transition using a fade animation by default. This can be changed to a linear sliding transition by passing ```backgroundTransition: 'slide'``` to the ```Reveal.initialize()``` call. Alternatively you can set ```data-background-transition``` on any section with a background to override that specific transition.
-
-
-### Parallax Background
-
-If you want to use a parallax scrolling background, set the two following config properties when initializing reveal.js (the third one is optional).
-
-```javascript
-Reveal.initialize({
-
-	// Parallax background image
-	parallaxBackgroundImage: '', // e.g. "https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg"
-
-	// Parallax background size
-	parallaxBackgroundSize: '', // CSS syntax, e.g. "2100px 900px" - currently only pixels are supported (don't use % or auto)
-
-	// This slide transition gives best results:
-	transition: linear
-
-});
-```
-
-Make sure that the background size is much bigger than screen size to allow for some scrolling. [View example](http://lab.hakim.se/reveal-js/?parallaxBackgroundImage=https%3A%2F%2Fs3.amazonaws.com%2Fhakim-static%2Freveal-js%2Freveal-parallax-1.jpg&parallaxBackgroundSize=2100px%20900px).
-
-
-
-### Slide Transitions
-The global presentation transition is set using the ```transition``` config value. You can override the global transition for a specific slide by using the ```data-transition``` attribute:
-
-```html
-<section data-transition="zoom">
-	<h2>This slide will override the presentation transition and zoom!</h2>
-</section>
-
-<section data-transition-speed="fast">
-	<h2>Choose from three transition speeds: default, fast or slow!</h2>
-</section>
-```
-
-Note that this does not work with the page and cube transitions.
-
-
-### Internal links
-
-It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```<section id="some-slide">```):
-
-```html
-<a href="#/2/2">Link</a>
-<a href="#/some-slide">Link</a>
-```
-
-You can also add relative navigation links, similar to the built in reveal.js controls, by appending one of the following classes on any element. Note that each element is automatically given an ```enabled``` class when it's a valid navigation route based on the current slide.
-
-```html
-<a href="#" class="navigate-left">
-<a href="#" class="navigate-right">
-<a href="#" class="navigate-up">
-<a href="#" class="navigate-down">
-<a href="#" class="navigate-prev"> <!-- Previous vertical or horizontal slide -->
-<a href="#" class="navigate-next"> <!-- Next vertical or horizontal slide -->
-```
-
-
-### Fragments
-Fragments are used to highlight individual elements on a slide. Every element with the class ```fragment``` will be stepped through before moving on to the next slide. Here's an example: http://lab.hakim.se/reveal-js/#/fragments
-
-The default fragment style is to start out invisible and fade in. This style can be changed by appending a different class to the fragment:
-
-```html
-<section>
-	<p class="fragment grow">grow</p>
-	<p class="fragment shrink">shrink</p>
-	<p class="fragment roll-in">roll-in</p>
-	<p class="fragment fade-out">fade-out</p>
-	<p class="fragment current-visible">visible only once</p>
-	<p class="fragment highlight-current-blue">blue only once</p>
-	<p class="fragment highlight-red">highlight-red</p>
-	<p class="fragment highlight-green">highlight-green</p>
-	<p class="fragment highlight-blue">highlight-blue</p>
-</section>
-```
-
-Multiple fragments can be applied to the same element sequentially by wrapping it, this will fade in the text on the first step and fade it back out on the second.
-
-```html
-<section>
-	<span class="fragment fade-in">
-		<span class="fragment fade-out">I'll fade in, then out</span>
-	</span>
-</section>
-```
-
-The display order of fragments can be controlled using the ```data-fragment-index``` attribute.
-
-```html
-<section>
-	<p class="fragment" data-fragment-index="3">Appears last</p>
-	<p class="fragment" data-fragment-index="1">Appears first</p>
-	<p class="fragment" data-fragment-index="2">Appears second</p>
-</section>
-```
-
-### Fragment events
-
-When a slide fragment is either shown or hidden reveal.js will dispatch an event.
-
-Some libraries, like MathJax (see #505), get confused by the initially hidden fragment elements. Often times this can be fixed by calling their update or render function from this callback.
-
-```javascript
-Reveal.addEventListener( 'fragmentshown', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-Reveal.addEventListener( 'fragmenthidden', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-```
-
-### Code syntax highlighting
-
-By default, Reveal is configured with [highlight.js](http://softwaremaniacs.org/soft/highlight/en/) for code syntax highlighting. Below is an example with clojure code that will be syntax highlighted. When the `data-trim` attribute is present surrounding whitespace is automatically removed.
-
-```html
-<section>
-	<pre><code data-trim>
-(def lazy-fib
-  (concat
-   [0 1]
-   ((fn rfib [a b]
-        (lazy-cons (+ a b) (rfib b (+ a b)))) 0 1)))
-	</code></pre>
-</section>
-```
-
-### Slide number
-If you would like to display the page number of the current slide you can do so using the ```slideNumber``` configuration value.
-
-```javascript
-Reveal.configure({ slideNumber: true });
-```
-
-
-### Overview mode
-
-Press "Esc" or "o" keys to toggle the overview mode on and off. While you're in this mode, you can still navigate between slides,
-as if you were at 1,000 feet above your presentation. The overview mode comes with a few API hooks:
-
-```javascript
-Reveal.addEventListener( 'overviewshown', function( event ) { /* ... */ } );
-Reveal.addEventListener( 'overviewhidden', function( event ) { /* ... */ } );
-
-// Toggle the overview mode programmatically
-Reveal.toggleOverview();
-```
-
-### Fullscreen mode
-Just press »F« on your keyboard to show your presentation in fullscreen mode. Press the »ESC« key to exit fullscreen mode.
-
-
-### Embedded media
-Embedded HTML5 `<video>`/`<audio>` and YouTube iframes are automatically paused when you navigate away from a slide. This can be disabled by decorating your element with a `data-ignore` attribute.
-
-Add `data-autoplay` to your media element if you want it to automatically start playing when the slide is shown:
-
-```html
-<video data-autoplay src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>
-```
-
-Additionally the framework automatically pushes two [post messages](https://developer.mozilla.org/en-US/docs/Web/API/Window.postMessage) to all iframes, ```slide:start``` when the slide containing the iframe is made visible and ```slide:stop``` when it is hidden.
-
-
-### Stretching elements
-Sometimes it's desirable to have an element, like an image or video, stretch to consume as much space as possible within a given slide. This can be done by adding the ```.stretch``` class to an element as seen below:
-
-```html
-<section>
-	<h2>This video will use up the remaining space on the slide</h2>
-    <video class="stretch" src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"></video>
-</section>
-```
-
-Limitations:
-- Only direct descendants of a slide section can be stretched
-- Only one descendant per slide section can be stretched
-
-
-## PDF Export
-
-Presentations can be exported to PDF via a special print stylesheet. This feature requires that you use [Google Chrome](http://google.com/chrome).
-Here's an example of an exported presentation that's been uploaded to SlideShare: http://www.slideshare.net/hakimel/revealjs-13872948.
-
-1. Open your presentation with [css/print/pdf.css](https://github.com/hakimel/reveal.js/blob/master/css/print/pdf.css) included on the page. The default index HTML lets you add *print-pdf* anywhere in the query to include the stylesheet, for example: [lab.hakim.se/reveal-js?print-pdf](http://lab.hakim.se/reveal-js?print-pdf).
-2. Open the in-browser print dialog (CMD+P).
-3. Change the **Destination** setting to **Save as PDF**.
-4. Change the **Layout** to **Landscape**.
-5. Change the **Margins** to **None**.
-6. Click **Save**.
-
-![Chrome Print Settings](https://s3.amazonaws.com/hakim-static/reveal-js/pdf-print-settings.png)
-
-## Theming
-
-The framework comes with a few different themes included:
-
-- default: Gray background, white text, blue links
-- beige: Beige background, dark text, brown links
-- sky: Blue background, thin white text, blue links
-- night: Black background, thick white text, orange links
-- serif: Cappuccino background, gray text, brown links
-- simple: White background, black text, blue links
-- solarized: Cream-colored background, dark green text, blue links
-
-Each theme is available as a separate stylesheet. To change theme you will need to replace **default** below with your desired theme name in index.html:
-
-```html
-<link rel="stylesheet" href="css/theme/default.css" id="theme">
-```
-
-If you want to add a theme of your own see the instructions here: [/css/theme/README.md](https://github.com/hakimel/reveal.js/blob/master/css/theme/README.md).
-
-
-## Speaker Notes
-
-reveal.js comes with a speaker notes plugin which can be used to present per-slide notes in a separate browser window. The notes window also gives you a preview of the next upcoming slide so it may be helpful even if you haven't written any notes. Press the 's' key on your keyboard to open the notes window.
-
-Notes are defined by appending an ```<aside>``` element to a slide as seen below. You can add the ```data-markdown``` attribute to the aside element if you prefer writing notes using Markdown.
-
-When used locally, this feature requires that reveal.js [runs from a local web server](#full-setup).
-
-```html
-<section>
-	<h2>Some Slide</h2>
-
-	<aside class="notes">
-		Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).
-	</aside>
-</section>
-```
-
-If you're using the external Markdown plugin, you can add notes with the help of a special delimiter:
-
-```html
-<section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n" data-notes="^Note:"></section>
-
-# Title
-## Sub-title
-
-Here is some content...
-
-Note:
-This will only display in the notes window.
-```
-
-## Server Side Speaker Notes
-
-In some cases it can be desirable to run notes on a separate device from the one you're presenting on. The Node.js-based notes plugin lets you do this using the same note definitions as its client side counterpart. Include the required scripts by adding the following dependencies:
-
-```javascript
-Reveal.initialize({
-	...
-
-	dependencies: [
-		{ src: 'socket.io/socket.io.js', async: true },
-		{ src: 'plugin/notes-server/client.js', async: true }
-	]
-});
-```
-
-Then:
-
-1. Install [Node.js](http://nodejs.org/)
-2. Run ```npm install```
-3. Run ```node plugin/notes-server```
-
-
-## Multiplexing
-
-The multiplex plugin allows your audience to view the slides of the presentation you are controlling on their own phone, tablet or laptop. As the master presentation navigates the slides, all client presentations will update in real time. See a demo at [http://revealjs.jit.su/](http://revealjs.jit.su).
-
-The multiplex plugin needs the following 3 things to operate:
-
-1. Master presentation that has control
-2. Client presentations that follow the master
-3. Socket.io server to broadcast events from the master to the clients
-
-More details:
-
-#### Master presentation
-Served from a static file server accessible (preferably) only to the presenter. This need only be on your (the presenter's) computer. (It's safer to run the master presentation from your own computer, so if the venue's Internet goes down it doesn't stop the show.) An example would be to execute the following commands in the directory of your master presentation: 
-
-1. ```npm install node-static```
-2. ```static```
-
-If you want to use the speaker notes plugin with your master presentation then make sure you have the speaker notes plugin configured correctly along with the configuration shown below, then execute ```node plugin/notes-server``` in the directory of your master presentation. The configuration below will cause it to connect to the socket.io server as a master, as well as launch your speaker-notes/static-file server.
-
-You can then access your master presentation at ```http://localhost:1947```
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
-		id: '1ea875674b17ca76', // Obtained from socket.io server
-		url: 'revealjs.jit.su:80' // Location of socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/master.js', async: true },
-
-		// and if you want speaker notes
-		{ src: 'plugin/notes-server/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-#### Client presentation
-Served from a publicly accessible static file server. Examples include: GitHub Pages, Amazon S3, Dreamhost, Akamai, etc. The more reliable, the better. Your audience can then access the client presentation via ```http://example.com/path/to/presentation/client/index.html```, with the configuration below causing them to connect to the socket.io server as clients.
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: null, // null so the clients do not have control of the master presentation
-		id: '1ea875674b17ca76', // id, obtained from socket.io server
-		url: 'revealjs.jit.su:80' // Location of socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-#### Socket.io server
-Server that receives the slideChanged events from the master presentation and broadcasts them out to the connected client presentations. This needs to be publicly accessible. You can run your own socket.io server with the commands:
-
-1. ```npm install```
-2. ```node plugin/multiplex```
-
-Or you use the socket.io server at [http://revealjs.jit.su](http://revealjs.jit.su).
-
-You'll need to generate a unique secret and token pair for your master and client presentations. To do so, visit ```http://example.com/token```, where ```http://example.com``` is the location of your socket.io server. Or if you're going to use the socket.io server at [http://revealjs.jit.su](http://revealjs.jit.su), visit [http://revealjs.jit.su/token](http://revealjs.jit.su/token).
-
-You are very welcome to point your presentations at the Socket.io server running at [http://revealjs.jit.su](http://revealjs.jit.su), but availability and stability are not guaranteed. For anything mission critical I recommend you run your own server. It is simple to deploy to nodejitsu, heroku, your own environment, etc.
-
-##### socket.io server as file static server
-
-The socket.io server can play the role of static file server for your client presentation, as in the example at [http://revealjs.jit.su](http://revealjs.jit.su). (Open [http://revealjs.jit.su](http://revealjs.jit.su) in two browsers. Navigate through the slides on one, and the other will update to match.) 
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: null, // null so the clients do not have control of the master presentation
-		id: '1ea875674b17ca76', // id, obtained from socket.io server
-		url: 'example.com:80' // Location of your socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-```
-
-It can also play the role of static file server for your master presentation and client presentations at the same time (as long as you don't want to use speaker notes). (Open [http://revealjs.jit.su](http://revealjs.jit.su) in two browsers. Navigate through the slides on one, and the other will update to match. Navigate through the slides on the second, and the first will update to match.) This is probably not desirable, because you don't want your audience to mess with your slides while you're presenting. ;)
-
-Example configuration:
-```javascript
-Reveal.initialize({
-	// other options...
-
-	multiplex: {
-		// Example values. To generate your own, see the socket.io server instructions.
-		secret: '13652805320794272084', // Obtained from the socket.io server. Gives this (the master) control of the presentation
-		id: '1ea875674b17ca76', // Obtained from socket.io server
-		url: 'example.com:80' // Location of your socket.io server
-	},
-
-	// Don't forget to add the dependencies
-	dependencies: [
-		{ src: '//cdnjs.cloudflare.com/ajax/libs/socket.io/0.9.10/socket.io.min.js', async: true },
-		{ src: 'plugin/multiplex/master.js', async: true },
-		{ src: 'plugin/multiplex/client.js', async: true }
-
-		// other dependencies...
-	]
-});
-```
-
-## Leap Motion
-The Leap Motion plugin lets you utilize your [Leap Motion](https://www.leapmotion.com/) device to control basic navigation of your presentation. The gestures currently supported are:
-
-##### 1 to 2 fingers
-Pointer &mdash; Point to anything on screen. Move your finger past the device to expand the pointer.
-
-##### 1 hand + 3 or more fingers (left/right/up/down)
-Navigate through your slides. See config options to invert movements.
-
-##### 2 hands upwards
-Toggle the overview mode. Do it a second time to exit the overview.
-
-#### Config Options
-You can edit the following options:
-
-| Property          | Default           | Description
-| ----------------- |:-----------------:| :-------------
-| autoCenter        | true              | Center the pointer based on where you put your finger into the leap motions detection field.
-| gestureDelay      | 500               | How long to delay between gestures in milliseconds.
-| naturalSwipe      | true              | Swipe as though you were touching a touch screen. Set to false to invert.
-| pointerColor      | #00aaff           | The color of the pointer.
-| pointerOpacity    | 0.7               | The opacity of the pointer.
-| pointerSize       | 15                | The minimum height and width of the pointer.
-| pointerTolerance  | 120               | Bigger = slower pointer.
-
-
-Example configuration:
-```js
-Reveal.initialize({
-
-	// other options...
-
-	leap: {
-		naturalSwipe   : false,    // Invert swipe gestures
-		pointerOpacity : 0.5,      // Set pointer opacity to 0.5
-		pointerColor   : '#d80000' // Red pointer
-	},
-
-	dependencies: [
-		{ src: 'plugin/leap/leap.js', async: true }
-	]
-
-});
-```
-
-## MathJax
-
-If you want to display math equations in your presentation you can easily do so by including this plugin. The plugin is a very thin wrapper around the [MathJax](http://www.mathjax.org/) library. To use it you'll need to include it as a reveal.js dependency, [find our more about dependencies here](#dependencies).
-
-The plugin defaults to using [LaTeX](http://en.wikipedia.org/wiki/LaTeX) but that can be adjusted through the ```math``` configuration object. Note that MathJax is loaded from a remote server. If you want to use it offline you'll need to download a copy of the library and adjust the ```mathjax``` configuration value. 
-
-Below is an example of how the plugin can be configured. If you don't intend to change these values you do not need to include the ```math``` config object at all.
-
-```js
-Reveal.initialize({
-
-	// other options ...
-
-	math: {
-		mathjax: 'http://cdn.mathjax.org/mathjax/latest/MathJax.js',
-		config: 'TeX-AMS_HTML-full'  // See http://docs.mathjax.org/en/latest/config-files.html
-	},
-	
-	dependencies: [
-		{ src: 'plugin/math/math.js', async: true }
-	]
-
-});
-```
-
-Read MathJax's documentation if you need [HTTPS delivery](http://docs.mathjax.org/en/latest/start.html#secure-access-to-the-cdn) or serving of [specific versions](http://docs.mathjax.org/en/latest/configuration.html#loading-mathjax-from-the-cdn) for stability.
-
-
-## Installation
-
-The **basic setup** is for authoring presentations only. The **full setup** gives you access to all reveal.js features and plugins such as speaker notes as well as the development tasks needed to make changes to the source.
-
-### Basic setup
-
-The core of reveal.js is very easy to install. You'll simply need to download a copy of this repository and open the index.html file directly in your browser.
-
-1. Download the latest version of reveal.js from <https://github.com/hakimel/reveal.js/releases>
-
-2. Unzip and replace the example contents in index.html with your own
-
-3. Open index.html in a browser to view it
-
-
-### Full setup
-
-Some reveal.js features, like external markdown and speaker notes, require that presentations run from a local web server. The following instructions will set up such a server as well as all of the development tasks needed to make edits to the reveal.js source code.
-
-1. Install [Node.js](http://nodejs.org/)
-
-2. Install [Grunt](http://gruntjs.com/getting-started#installing-the-cli)
-
-4. Clone the reveal.js repository
-   ```sh
-   $ git clone https://github.com/hakimel/reveal.js.git
-   ```
-
-5. Navigate to the reveal.js folder
-   ```sh
-   $ cd reveal.js
-   ```
-
-6. Install dependencies
-   ```sh
-   $ npm install
-   ```
-
-7. Serve the presentation and monitor source files for changes
-   ```sh
-   $ grunt serve
-   ```
-
-8. Open <http://localhost:8000> to view your presentation
-
-   You can change the port by using `grunt serve --port 8001`.
-
-
-### Folder Structure
-- **css/** Core styles without which the project does not function
-- **js/** Like above but for JavaScript
-- **plugin/** Components that have been developed as extensions to reveal.js
-- **lib/** All other third party assets (JavaScript, CSS, fonts)
-
-
-### Contributing
-
-Please keep the [issue tracker](http://github.com/hakimel/reveal.js/issues) limited to **bug reports**, **feature requests** and **pull requests**. If you are reporting a bug make sure to include information about which browser and operating system you are using as well as the necessary steps to reproduce the issue.
-
-If you have personal support questions use [StackOverflow](http://stackoverflow.com/questions/tagged/reveal.js).
-
-
-#### Pull requests
-
-- Should follow the coding style of the file you work in, most importantly:
-  - Tabs to indent
-  - Single-quoted strings
-- Should be made towards the **dev branch**
-- Should be submitted from a feature/topic branch (not your master)
-- Should not include the minified **reveal.min.js** file
-
-
-## License
-
-MIT licensed
-
-Copyright (C) 2014 Hakim El Hattab, http://hakim.se
diff --git a/docs/slides/IHP14/_support/reveal.js/css/print/paper.css b/docs/slides/IHP14/_support/reveal.js/css/print/paper.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/print/paper.css
+++ /dev/null
@@ -1,176 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-body {
-	background: #fff;
-	font-size: 13pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-html {
-	background: #fff;
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print.
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow,
-.controls,
-.reveal .progress,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display: none !important;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 16pt!important;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	color: #000;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Differentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	color: #000!important;
-	height: auto;
-	line-height: normal;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	text-shadow: 0 0 0 #000 !important;
-	text-align: left;
-	letter-spacing: normal;
-}
-/* Need to reduce the size of the fonts for printing */
-h1 { font-size: 26pt !important;  }
-h2 { font-size: 22pt !important; }
-h3 { font-size: 20pt !important; }
-h4 { font-size: 20pt !important; font-variant: small-caps; }
-h5 { font-size: 19pt !important; }
-h6 { font-size: 18pt !important; font-style: italic; }
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link,
-a:visited {
-	color: #000 !important;
-	font-weight: bold;
-	text-decoration: underline;
-}
-/*
-.reveal a:link:after,
-.reveal a:visited:after {
-	content: " (" attr(href) ") ";
-	color: #222 !important;
-	font-size: 90%;
-}
-*/
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-	text-align: left !important;
-}
-.reveal .slides {
-	position: static;
-	width: auto;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section,
-.reveal .slides>section>section {
-
-	visibility: visible !important;
-	position: static !important;
-	width: 90% !important;
-	height: auto !important;
-	display: block !important;
-	overflow: visible !important;
-
-	left: 0% !important;
-	top: 0% !important;
-	margin-left: 0px !important;
-	margin-top: 0px !important;
-	padding: 20px 0px !important;
-
-	opacity: 1 !important;
-
-	-webkit-transform-style: flat !important;
-	   -moz-transform-style: flat !important;
-	    -ms-transform-style: flat !important;
-	        transform-style: flat !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section {
-	page-break-after: always !important;
-	display: block !important;
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-	visibility: visible !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section:last-of-type {
-	page-break-after: avoid !important;
-}
-.reveal section img {
-	display: block;
-	margin: 15px 0px;
-	background: rgba(255,255,255,1);
-	border: 1px solid #666;
-	box-shadow: none;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/print/pdf.css b/docs/slides/IHP14/_support/reveal.js/css/print/pdf.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/print/pdf.css
+++ /dev/null
@@ -1,190 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-
-* {
-	-webkit-print-color-adjust: exact;
-}
-
-body {
-	font-size: 18pt;
-	width: 297mm;
-	height: 229mm;
-	margin: 0 auto !important;
-	border: 0;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-
-html {
-	width: 100%;
-	height: 100%;
-	overflow: visible;
-}
-
-@page {
-	size: letter landscape;
-	margin: 0;
-}
-
-/* SECTION 2: Remove any elements not needed in print.
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow,
-.controls,
-.reveal .progress,
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display: none !important;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div {
-	font-size: 18pt;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Differentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	text-shadow: 0 0 0 #000 !important;
-}
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link,
-a:visited {
-	font-weight: normal;
-	text-decoration: underline;
-}
-
-.reveal pre code {
-	overflow: hidden !important;
-	font-family: monospace !important;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-}
-.reveal {
-	width: auto !important;
-	height: auto !important;
-	overflow: hidden !important;
-}
-.reveal .slides {
-	position: static;
-	width: 100%;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin: 0 !important;
-	padding: 0 !important;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides section {
-
-	page-break-after: always !important;
-
-	visibility: visible !important;
-	position: relative !important;
-	width: 100% !important;
-	height: 229mm !important;
-	min-height: 229mm !important;
-	display: block !important;
-	overflow: hidden !important;
-
-	left: 0 !important;
-	top: 0 !important;
-	margin: 0 !important;
-	padding: 2cm 2cm 0 2cm !important;
-	box-sizing: border-box !important;
-
-	opacity: 1 !important;
-
-	-webkit-transform-style: flat !important;
-	   -moz-transform-style: flat !important;
-	    -ms-transform-style: flat !important;
-	        transform-style: flat !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section.stack {
-	margin: 0 !important;
-	padding: 0 !important;
-	page-break-after: avoid !important;
-	height: auto !important;
-	min-height: auto !important;
-}
-.reveal .absolute-element {
-	margin-left: 2.2cm;
-	margin-top: 1.8cm;
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-	visibility: visible !important;
-
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-}
-.reveal section .slide-background {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	z-index: 0;
-}
-.reveal section>* {
-	position: relative;
-	z-index: 1;
-}
-.reveal img {
-	box-shadow: none;
-}
-.reveal .roll {
-	overflow: visible;
-	line-height: 1em;
-}
-.reveal small a {
-	font-size: 16pt !important;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/reveal.css b/docs/slides/IHP14/_support/reveal.js/css/reveal.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/reveal.css
+++ /dev/null
@@ -1,1882 +0,0 @@
-@charset "UTF-8";
-
-/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-
-
-/*********************************************
- * RESET STYLES
- *********************************************/
-
-html, body, .reveal div, .reveal span, .reveal applet, .reveal object, .reveal iframe,
-.reveal h1, .reveal h2, .reveal h3, .reveal h4, .reveal h5, .reveal h6, .reveal p, .reveal blockquote, .reveal pre,
-.reveal a, .reveal abbr, .reveal acronym, .reveal address, .reveal big, .reveal cite, .reveal code,
-.reveal del, .reveal dfn, .reveal em, .reveal img, .reveal ins, .reveal kbd, .reveal q, .reveal s, .reveal samp,
-.reveal small, .reveal strike, .reveal strong, .reveal sub, .reveal sup, .reveal tt, .reveal var,
-.reveal b, .reveal u, .reveal i, .reveal center,
-.reveal dl, .reveal dt, .reveal dd, .reveal ol, .reveal ul, .reveal li,
-.reveal fieldset, .reveal form, .reveal label, .reveal legend,
-.reveal table, .reveal caption, .reveal tbody, .reveal tfoot, .reveal thead, .reveal tr, .reveal th, .reveal td,
-.reveal article, .reveal aside, .reveal canvas, .reveal details, .reveal embed,
-.reveal figure, .reveal figcaption, .reveal footer, .reveal header, .reveal hgroup,
-.reveal menu, .reveal nav, .reveal output, .reveal ruby, .reveal section, .reveal summary,
-.reveal time, .reveal mark, .reveal audio, video {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	font-size: 100%;
-	font: inherit;
-	vertical-align: baseline;
-}
-
-.reveal article, .reveal aside, .reveal details, .reveal figcaption, .reveal figure,
-.reveal footer, .reveal header, .reveal hgroup, .reveal menu, .reveal nav, .reveal section {
-	display: block;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-html,
-body {
-	width: 100%;
-	height: 100%;
-	overflow: hidden;
-}
-
-body {
-	position: relative;
-	line-height: 1;
-}
-
-::selection {
-	background: #FF5E99;
-	color: #fff;
-	text-shadow: none;
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-	-webkit-hyphens: auto;
-	   -moz-hyphens: auto;
-	        hyphens: auto;
-
-	word-wrap: break-word;
-	line-height: 1;
-}
-
-.reveal h1 { font-size: 3.77em; }
-.reveal h2 { font-size: 1.85em;	}
-.reveal h3 { font-size: 1.55em;	}
-.reveal h4 { font-size: 1em;	}
-
-
-/*********************************************
- * VIEW FRAGMENTS
- *********************************************/
-
-.reveal .slides section .fragment {
-	opacity: 0;
-
-	-webkit-transition: all .2s ease;
-	   -moz-transition: all .2s ease;
-	    -ms-transition: all .2s ease;
-	     -o-transition: all .2s ease;
-	        transition: all .2s ease;
-}
-	.reveal .slides section .fragment.visible {
-		opacity: 1;
-	}
-
-.reveal .slides section .fragment.grow {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.grow.visible {
-		-webkit-transform: scale( 1.3 );
-		   -moz-transform: scale( 1.3 );
-		    -ms-transform: scale( 1.3 );
-		     -o-transform: scale( 1.3 );
-		        transform: scale( 1.3 );
-	}
-
-.reveal .slides section .fragment.shrink {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.shrink.visible {
-		-webkit-transform: scale( 0.7 );
-		   -moz-transform: scale( 0.7 );
-		    -ms-transform: scale( 0.7 );
-		     -o-transform: scale( 0.7 );
-		        transform: scale( 0.7 );
-	}
-
-.reveal .slides section .fragment.zoom-in {
-	opacity: 0;
-
-	-webkit-transform: scale( 0.1 );
-	   -moz-transform: scale( 0.1 );
-	    -ms-transform: scale( 0.1 );
-	     -o-transform: scale( 0.1 );
-	        transform: scale( 0.1 );
-}
-
-	.reveal .slides section .fragment.zoom-in.visible {
-		opacity: 1;
-
-		-webkit-transform: scale( 1 );
-		   -moz-transform: scale( 1 );
-		    -ms-transform: scale( 1 );
-		     -o-transform: scale( 1 );
-		        transform: scale( 1 );
-	}
-
-.reveal .slides section .fragment.roll-in {
-	opacity: 0;
-
-	-webkit-transform: rotateX( 90deg );
-	   -moz-transform: rotateX( 90deg );
-	    -ms-transform: rotateX( 90deg );
-	     -o-transform: rotateX( 90deg );
-	        transform: rotateX( 90deg );
-}
-	.reveal .slides section .fragment.roll-in.visible {
-		opacity: 1;
-
-		-webkit-transform: rotateX( 0 );
-		   -moz-transform: rotateX( 0 );
-		    -ms-transform: rotateX( 0 );
-		     -o-transform: rotateX( 0 );
-		        transform: rotateX( 0 );
-	}
-
-.reveal .slides section .fragment.fade-out {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.fade-out.visible {
-		opacity: 0;
-	}
-
-.reveal .slides section .fragment.semi-fade-out {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.semi-fade-out.visible {
-		opacity: 0.5;
-	}
-
-.reveal .slides section .fragment.current-visible {
-	opacity:0;
-}
-
-.reveal .slides section .fragment.current-visible.current-fragment {
-	opacity:1;
-}
-
-.reveal .slides section .fragment.highlight-red,
-.reveal .slides section .fragment.highlight-current-red,
-.reveal .slides section .fragment.highlight-green,
-.reveal .slides section .fragment.highlight-current-green,
-.reveal .slides section .fragment.highlight-blue,
-.reveal .slides section .fragment.highlight-current-blue {
-	opacity: 1;
-}
-	.reveal .slides section .fragment.highlight-red.visible {
-		color: #ff2c2d
-	}
-	.reveal .slides section .fragment.highlight-green.visible {
-		color: #17ff2e;
-	}
-	.reveal .slides section .fragment.highlight-blue.visible {
-		color: #1b91ff;
-	}
-
-.reveal .slides section .fragment.highlight-current-red.current-fragment {
-	color: #ff2c2d
-}
-.reveal .slides section .fragment.highlight-current-green.current-fragment {
-	color: #17ff2e;
-}
-.reveal .slides section .fragment.highlight-current-blue.current-fragment {
-	color: #1b91ff;
-}
-
-
-/*********************************************
- * DEFAULT ELEMENT STYLES
- *********************************************/
-
-/* Fixes issue in Chrome where italic fonts did not appear when printing to PDF */
-.reveal:after {
-  content: '';
-  font-style: italic;
-}
-
-.reveal iframe {
-	z-index: 1;
-}
-
-/* Ensure certain elements are never larger than the slide itself */
-.reveal img,
-.reveal video,
-.reveal iframe {
-	max-width: 95%;
-	max-height: 95%;
-}
-
-/** Prevents layering issues in certain browser/transition combinations */
-.reveal a {
-	position: relative;
-}
-
-.reveal strong,
-.reveal b {
-	font-weight: bold;
-}
-
-.reveal em,
-.reveal i {
-	font-style: italic;
-}
-
-.reveal ol,
-.reveal ul {
-	display: inline-block;
-
-	text-align: left;
-	margin: 0 0 0 1em;
-}
-
-.reveal ol {
-	list-style-type: decimal;
-}
-
-.reveal ul {
-	list-style-type: disc;
-}
-
-.reveal ul ul {
-	list-style-type: square;
-}
-
-.reveal ul ul ul {
-	list-style-type: circle;
-}
-
-.reveal ul ul,
-.reveal ul ol,
-.reveal ol ol,
-.reveal ol ul {
-	display: block;
-	margin-left: 40px;
-}
-
-.reveal p {
-	margin-bottom: 10px;
-	line-height: 1.2em;
-}
-
-.reveal q,
-.reveal blockquote {
-	quotes: none;
-}
-
-.reveal blockquote {
-	display: block;
-	position: relative;
-	width: 70%;
-	margin: 5px auto;
-	padding: 5px;
-
-	font-style: italic;
-	background: rgba(255, 255, 255, 0.05);
-	box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
-}
-	.reveal blockquote p:first-child,
-	.reveal blockquote p:last-child {
-		display: inline-block;
-	}
-
-.reveal q {
-	font-style: italic;
-}
-
-.reveal pre {
-	display: block;
-	position: relative;
-	width: 90%;
-	margin: 10px auto;
-
-	text-align: left;
-	font-size: 0.81em;
-	font-family: monospace;
-	line-height: 1.2em;
-
-	word-wrap: break-word;
-
-	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
-}
-.reveal code {
-	font-family: monospace;
-	font-size: 0.81em;
-}
-.reveal pre code {
-	padding: 5px;
-	overflow: auto;
-	max-height: 400px;
-	word-wrap: normal;
-}
-.reveal pre.stretch code {
-	height: 100%;
-	max-height: 100%;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-
-.reveal table th,
-.reveal table td {
-	text-align: left;
-	padding-right: .3em;
-}
-
-.reveal table th {
-	font-weight: bold;
-}
-
-.reveal sup {
-	vertical-align: super;
-}
-.reveal sub {
-	vertical-align: sub;
-}
-
-.reveal small {
-	display: inline-block;
-	font-size: 0.6em;
-	line-height: 1.2em;
-	vertical-align: top;
-}
-
-.reveal small * {
-	vertical-align: top;
-}
-
-.reveal .stretch {
-	max-width: none;
-	max-height: none;
-}
-
-
-/*********************************************
- * CONTROLS
- *********************************************/
-
-.reveal .controls {
-	display: none;
-	position: fixed;
-	width: 110px;
-	height: 110px;
-	z-index: 30;
-	right: 10px;
-	bottom: 10px;
-}
-
-.reveal .controls div {
-	position: absolute;
-	opacity: 0.05;
-	width: 0;
-	height: 0;
-	border: 12px solid transparent;
-
-	-moz-transform: scale(.9999);
-
-	-webkit-transition: all 0.2s ease;
-	   -moz-transition: all 0.2s ease;
-	    -ms-transition: all 0.2s ease;
-	     -o-transition: all 0.2s ease;
-	        transition: all 0.2s ease;
-}
-
-.reveal .controls div.enabled {
-	opacity: 0.7;
-	cursor: pointer;
-}
-
-.reveal .controls div.enabled:active {
-	margin-top: 1px;
-}
-
-	.reveal .controls div.navigate-left {
-		top: 42px;
-
-		border-right-width: 22px;
-		border-right-color: #eee;
-	}
-		.reveal .controls div.navigate-left.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-right {
-		left: 74px;
-		top: 42px;
-
-		border-left-width: 22px;
-		border-left-color: #eee;
-	}
-		.reveal .controls div.navigate-right.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-up {
-		left: 42px;
-
-		border-bottom-width: 22px;
-		border-bottom-color: #eee;
-	}
-		.reveal .controls div.navigate-up.fragmented {
-			opacity: 0.3;
-		}
-
-	.reveal .controls div.navigate-down {
-		left: 42px;
-		top: 74px;
-
-		border-top-width: 22px;
-		border-top-color: #eee;
-	}
-		.reveal .controls div.navigate-down.fragmented {
-			opacity: 0.3;
-		}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	position: fixed;
-	display: none;
-	height: 3px;
-	width: 100%;
-	bottom: 0;
-	left: 0;
-	z-index: 10;
-}
-	.reveal .progress:after {
-		content: '';
-		display: 'block';
-		position: absolute;
-		height: 20px;
-		width: 100%;
-		top: -20px;
-	}
-	.reveal .progress span {
-		display: block;
-		height: 100%;
-		width: 0px;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-
-.reveal .slide-number {
-	position: fixed;
-	display: block;
-	right: 15px;
-	bottom: 15px;
-	opacity: 0.5;
-	z-index: 31;
-	font-size: 12px;
-}
-
-/*********************************************
- * SLIDES
- *********************************************/
-
-.reveal {
-	position: relative;
-	width: 100%;
-	height: 100%;
-
-	-ms-touch-action: none;
-}
-
-.reveal .slides {
-	position: absolute;
-    max-width: 1024px;
-	width: 120%;
-	height: 100%;
-	left: 50%;
-	top: 50%;
-
-	overflow: visible;
-	z-index: 1;
-	text-align: center;
-
-	-webkit-transition: -webkit-perspective .4s ease;
-	   -moz-transition: -moz-perspective .4s ease;
-	    -ms-transition: -ms-perspective .4s ease;
-	     -o-transition: -o-perspective .4s ease;
-	        transition: perspective .4s ease;
-
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-
-	-webkit-perspective-origin: 0px -100px;
-	   -moz-perspective-origin: 0px -100px;
-	    -ms-perspective-origin: 0px -100px;
-	        perspective-origin: 0px -100px;
-}
-
-.reveal .slides>section {
-	-ms-perspective: 600px;
-}
-
-.reveal .slides>section,
-.reveal .slides>section>section {
-	display: none;
-	position: absolute;
-	width: 100%;
-	padding: 20px 0px;
-
-	z-index: 10;
-	line-height: 1.2em;
-	font-weight: inherit;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-transition: -webkit-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-webkit-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	   -moz-transition: -moz-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-moz-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	    -ms-transition: -ms-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-ms-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	     -o-transition: -o-transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						-o-transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	        transition: transform-origin 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						transform 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						visibility 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985),
-						opacity 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-}
-
-/* Global transition speed settings */
-.reveal[data-transition-speed="fast"] .slides section {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal[data-transition-speed="slow"] .slides section {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-/* Slide-specific transition speed overrides */
-.reveal .slides section[data-transition-speed="fast"] {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal .slides section[data-transition-speed="slow"] {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-.reveal .slides>section {
-	left: -50%;
-	top: -50%;
-}
-
-.reveal .slides>section.stack {
-	padding-top: 0;
-	padding-bottom: 0;
-}
-
-.reveal .slides>section.present,
-.reveal .slides>section>section.present {
-	display: block;
-	z-index: 11;
-	opacity: 1;
-}
-
-.reveal.center,
-.reveal.center .slides,
-.reveal.center .slides section {
-	min-height: auto !important;
-}
-
-/* Don't allow interaction with invisible slides */
-.reveal .slides>section.future,
-.reveal .slides>section>section.future,
-.reveal .slides>section.past,
-.reveal .slides>section>section.past {
-	pointer-events: none;
-}
-
-.reveal.overview .slides>section,
-.reveal.overview .slides>section>section {
-	pointer-events: auto;
-}
-
-
-
-/*********************************************
- * DEFAULT TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=default].past,
-.reveal .slides>section.past {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section[data-transition=default].future,
-.reveal .slides>section.future {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section[data-transition=default].past,
-.reveal .slides>section>section.past {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	   -moz-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	    -ms-transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-	        transform: translate3d(0, -300px, 0) rotateX(70deg) translate3d(0, -300px, 0);
-}
-.reveal .slides>section>section[data-transition=default].future,
-.reveal .slides>section>section.future {
-	display: block;
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	   -moz-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	    -ms-transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-	        transform: translate3d(0, 300px, 0) rotateX(-70deg) translate3d(0, 300px, 0);
-}
-
-
-/*********************************************
- * CONCAVE TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=concave].past,
-.reveal.concave  .slides>section.past {
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section[data-transition=concave].future,
-.reveal.concave .slides>section.future {
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section[data-transition=concave].past,
-.reveal.concave .slides>section>section.past {
-	-webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	   -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	    -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	        transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-}
-.reveal .slides>section>section[data-transition=concave].future,
-.reveal.concave .slides>section>section.future {
-	-webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	   -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	    -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	        transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-}
-
-
-/*********************************************
- * ZOOM TRANSITION
- *********************************************/
-
-.reveal .slides>section[data-transition=zoom],
-.reveal.zoom .slides>section {
-	-webkit-transition-timing-function: ease;
-	   -moz-transition-timing-function: ease;
-	    -ms-transition-timing-function: ease;
-	     -o-transition-timing-function: ease;
-	        transition-timing-function: ease;
-}
-
-.reveal .slides>section[data-transition=zoom].past,
-.reveal.zoom .slides>section.past {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(16);
-	   -moz-transform: scale(16);
-	    -ms-transform: scale(16);
-	     -o-transform: scale(16);
-	        transform: scale(16);
-}
-.reveal .slides>section[data-transition=zoom].future,
-.reveal.zoom .slides>section.future {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-.reveal .slides>section>section[data-transition=zoom].past,
-.reveal.zoom .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal .slides>section>section[data-transition=zoom].future,
-.reveal.zoom .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-
-/*********************************************
- * LINEAR TRANSITION
- *********************************************/
-
-.reveal.linear section {
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-
-.reveal .slides>section[data-transition=linear].past,
-.reveal.linear .slides>section.past {
-	-webkit-transform: translate(-150%, 0);
-	   -moz-transform: translate(-150%, 0);
-	    -ms-transform: translate(-150%, 0);
-	     -o-transform: translate(-150%, 0);
-	        transform: translate(-150%, 0);
-}
-.reveal .slides>section[data-transition=linear].future,
-.reveal.linear .slides>section.future {
-	-webkit-transform: translate(150%, 0);
-	   -moz-transform: translate(150%, 0);
-	    -ms-transform: translate(150%, 0);
-	     -o-transform: translate(150%, 0);
-	        transform: translate(150%, 0);
-}
-
-.reveal .slides>section>section[data-transition=linear].past,
-.reveal.linear .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal .slides>section>section[data-transition=linear].future,
-.reveal.linear .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-
-/*********************************************
- * CUBE TRANSITION
- *********************************************/
-
-.reveal.cube .slides {
-	-webkit-perspective: 1300px;
-	   -moz-perspective: 1300px;
-	    -ms-perspective: 1300px;
-	        perspective: 1300px;
-}
-
-.reveal.cube .slides section {
-	padding: 30px;
-	min-height: 700px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.center.cube .slides section {
-		min-height: auto;
-	}
-	.reveal.cube .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.1);
-		border-radius: 4px;
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.cube .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-		   -moz-transform: translateZ(-90px) rotateX( 65deg );
-		    -ms-transform: translateZ(-90px) rotateX( 65deg );
-		     -o-transform: translateZ(-90px) rotateX( 65deg );
-		        transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.cube .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.cube .slides>section.past {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-}
-
-.reveal.cube .slides>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg);
-}
-
-.reveal.cube .slides>section>section.past {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg);
-}
-
-.reveal.cube .slides>section>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg);
-}
-
-
-/*********************************************
- * PAGE TRANSITION
- *********************************************/
-
-.reveal.page .slides {
-	-webkit-perspective-origin: 0% 50%;
-	   -moz-perspective-origin: 0% 50%;
-	    -ms-perspective-origin: 0% 50%;
-	        perspective-origin: 0% 50%;
-
-	-webkit-perspective: 3000px;
-	   -moz-perspective: 3000px;
-	    -ms-perspective: 3000px;
-	        perspective: 3000px;
-}
-
-.reveal.page .slides section {
-	padding: 30px;
-	min-height: 700px;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.page .slides section.past {
-		z-index: 12;
-	}
-	.reveal.page .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.1);
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.page .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.page .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.page .slides>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	   -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	    -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	        transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-}
-
-.reveal.page .slides>section.future {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-.reveal.page .slides>section>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	   -moz-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	    -ms-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	        transform: translate3d(0, -40%, 0) rotateX(80deg);
-}
-
-.reveal.page .slides>section>section.future {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-
-/*********************************************
- * FADE TRANSITION
- *********************************************/
-
-.reveal .slides section[data-transition=fade],
-.reveal.fade .slides section,
-.reveal.fade .slides>section>section {
-    -webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-
-	-webkit-transition: opacity 0.5s;
-	   -moz-transition: opacity 0.5s;
-	    -ms-transition: opacity 0.5s;
-	     -o-transition: opacity 0.5s;
-	        transition: opacity 0.5s;
-}
-
-
-.reveal.fade.overview .slides section,
-.reveal.fade.overview .slides>section>section,
-.reveal.fade.overview-deactivating .slides section,
-.reveal.fade.overview-deactivating .slides>section>section {
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-
-/*********************************************
- * NO TRANSITION
- *********************************************/
-
-.reveal .slides section[data-transition=none],
-.reveal.none .slides section {
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-
-/*********************************************
- * OVERVIEW
- *********************************************/
-
-.reveal.overview .slides {
-	-webkit-perspective-origin: 0% 0%;
-	   -moz-perspective-origin: 0% 0%;
-	    -ms-perspective-origin: 0% 0%;
-	        perspective-origin: 0% 0%;
-
-	-webkit-perspective: 700px;
-	   -moz-perspective: 700px;
-	    -ms-perspective: 700px;
-	        perspective: 700px;
-}
-
-.reveal.overview .slides section {
-	height: 600px;
-	top: -300px !important;
-	overflow: hidden;
-	opacity: 1 !important;
-	visibility: visible !important;
-	cursor: pointer;
-	background: rgba(0,0,0,0.1);
-}
-.reveal.overview .slides section .fragment {
-	opacity: 1;
-}
-.reveal.overview .slides section:after,
-.reveal.overview .slides section:before {
-	display: none !important;
-}
-.reveal.overview .slides section>section {
-	opacity: 1;
-	cursor: pointer;
-}
-	.reveal.overview .slides section:hover {
-		background: rgba(0,0,0,0.3);
-	}
-	.reveal.overview .slides section.present {
-		background: rgba(0,0,0,0.3);
-	}
-.reveal.overview .slides>section.stack {
-	padding: 0;
-	top: 0 !important;
-	background: none;
-	overflow: visible;
-}
-
-
-/*********************************************
- * PAUSED MODE
- *********************************************/
-
-.reveal .pause-overlay {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	height: 100%;
-	background: black;
-	visibility: hidden;
-	opacity: 0;
-	z-index: 100;
-
-	-webkit-transition: all 1s ease;
-	   -moz-transition: all 1s ease;
-	    -ms-transition: all 1s ease;
-	     -o-transition: all 1s ease;
-	        transition: all 1s ease;
-}
-.reveal.paused .pause-overlay {
-	visibility: visible;
-	opacity: 1;
-}
-
-
-/*********************************************
- * FALLBACK
- *********************************************/
-
-.no-transforms {
-	overflow-y: auto;
-}
-
-.no-transforms .reveal .slides {
-	position: relative;
-	width: 80%;
-	height: auto !important;
-	top: 0;
-	left: 50%;
-	margin: 0;
-	text-align: center;
-}
-
-.no-transforms .reveal .controls,
-.no-transforms .reveal .progress {
-	display: none !important;
-}
-
-.no-transforms .reveal .slides section {
-	display: block !important;
-	opacity: 1 !important;
-	position: relative !important;
-	height: auto;
-	min-height: auto;
-	top: 0;
-	left: -50%;
-	margin: 70px 0;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	     -o-transform: none;
-	        transform: none;
-}
-
-.no-transforms .reveal .slides section section {
-	left: 0;
-}
-
-.reveal .no-transition,
-.reveal .no-transition * {
-	-webkit-transition: none !important;
-	   -moz-transition: none !important;
-	    -ms-transition: none !important;
-	     -o-transition: none !important;
-	        transition: none !important;
-}
-
-
-/*********************************************
- * BACKGROUND STATES [DEPRECATED]
- *********************************************/
-
-.reveal .state-background {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	background: rgba( 0, 0, 0, 0 );
-
-	-webkit-transition: background 800ms ease;
-	   -moz-transition: background 800ms ease;
-	    -ms-transition: background 800ms ease;
-	     -o-transition: background 800ms ease;
-	        transition: background 800ms ease;
-}
-.alert .reveal .state-background {
-	background: rgba( 200, 50, 30, 0.6 );
-}
-.soothe .reveal .state-background {
-	background: rgba( 50, 200, 90, 0.4 );
-}
-.blackout .reveal .state-background {
-	background: rgba( 0, 0, 0, 0.6 );
-}
-.whiteout .reveal .state-background {
-	background: rgba( 255, 255, 255, 0.6 );
-}
-.cobalt .reveal .state-background {
-	background: rgba( 22, 152, 213, 0.6 );
-}
-.mint .reveal .state-background {
-	background: rgba( 22, 213, 75, 0.6 );
-}
-.submerge .reveal .state-background {
-	background: rgba( 12, 25, 77, 0.6);
-}
-.lila .reveal .state-background {
-	background: rgba( 180, 50, 140, 0.6 );
-}
-.sunset .reveal .state-background {
-	background: rgba( 255, 122, 0, 0.6 );
-}
-
-
-/*********************************************
- * PER-SLIDE BACKGROUNDS
- *********************************************/
-
-.reveal>.backgrounds {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-}
-	.reveal .slide-background {
-		position: absolute;
-		width: 100%;
-		height: 100%;
-		opacity: 0;
-		visibility: hidden;
-
-		background-color: rgba( 0, 0, 0, 0 );
-		background-position: 50% 50%;
-		background-repeat: no-repeat;
-		background-size: cover;
-
-		-webkit-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-	.reveal .slide-background.present {
-		opacity: 1;
-		visibility: visible;
-	}
-
-	.print-pdf .reveal .slide-background {
-		opacity: 1 !important;
-		visibility: visible !important;
-	}
-
-/* Immediate transition style */
-.reveal[data-background-transition=none]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=none] {
-	-webkit-transition: none;
-	   -moz-transition: none;
-	    -ms-transition: none;
-	     -o-transition: none;
-	        transition: none;
-}
-
-/* 2D slide */
-.reveal[data-background-transition=slide]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=slide] {
-	opacity: 1;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,
-	.reveal>.backgrounds .slide-background.past[data-background-transition=slide] {
-		-webkit-transform: translate(-100%, 0);
-		   -moz-transform: translate(-100%, 0);
-		    -ms-transform: translate(-100%, 0);
-		     -o-transform: translate(-100%, 0);
-		        transform: translate(-100%, 0);
-	}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,
-	.reveal>.backgrounds .slide-background.future[data-background-transition=slide] {
-		-webkit-transform: translate(100%, 0);
-		   -moz-transform: translate(100%, 0);
-		    -ms-transform: translate(100%, 0);
-		     -o-transform: translate(100%, 0);
-		        transform: translate(100%, 0);
-	}
-
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,
-	.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide] {
-		-webkit-transform: translate(0, -100%);
-		   -moz-transform: translate(0, -100%);
-		    -ms-transform: translate(0, -100%);
-		     -o-transform: translate(0, -100%);
-		        transform: translate(0, -100%);
-	}
-	.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,
-	.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide] {
-		-webkit-transform: translate(0, 100%);
-		   -moz-transform: translate(0, 100%);
-		    -ms-transform: translate(0, 100%);
-		     -o-transform: translate(0, 100%);
-		        transform: translate(0, 100%);
-	}
-
-
-/* Convex */
-.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg) translate3d(0, -100%, 0);
-}
-.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg) translate3d(0, 100%, 0);
-}
-
-
-/* Concave */
-.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-	        transform: translate3d(0, -100%, 0) rotateX(-90deg) translate3d(0, -100%, 0);
-}
-.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave] {
-	opacity: 0;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-	        transform: translate3d(0, 100%, 0) rotateX(90deg) translate3d(0, 100%, 0);
-}
-
-/* Zoom */
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background,
-.reveal>.backgrounds .slide-background[data-background-transition=zoom] {
-	-webkit-transition-timing-function: ease;
-	   -moz-transition-timing-function: ease;
-	    -ms-transition-timing-function: ease;
-	     -o-transition-timing-function: ease;
-	        transition-timing-function: ease;
-}
-
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,
-.reveal>.backgrounds .slide-background.past[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(16);
-	   -moz-transform: scale(16);
-	    -ms-transform: scale(16);
-	     -o-transform: scale(16);
-	        transform: scale(16);
-}
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,
-.reveal>.backgrounds .slide-background.future[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,
-.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom] {
-	opacity: 0;
-		visibility: hidden;
-
-		-webkit-transform: scale(16);
-		   -moz-transform: scale(16);
-		    -ms-transform: scale(16);
-		     -o-transform: scale(16);
-		        transform: scale(16);
-}
-.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,
-.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom] {
-	opacity: 0;
-	visibility: hidden;
-
-	-webkit-transform: scale(0.2);
-	   -moz-transform: scale(0.2);
-	    -ms-transform: scale(0.2);
-	     -o-transform: scale(0.2);
-	        transform: scale(0.2);
-}
-
-
-/* Global transition speed settings */
-.reveal[data-transition-speed="fast"]>.backgrounds .slide-background {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal[data-transition-speed="slow"]>.backgrounds .slide-background {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-
-/*********************************************
- * RTL SUPPORT
- *********************************************/
-
-.reveal.rtl .slides,
-.reveal.rtl .slides h1,
-.reveal.rtl .slides h2,
-.reveal.rtl .slides h3,
-.reveal.rtl .slides h4,
-.reveal.rtl .slides h5,
-.reveal.rtl .slides h6 {
-	direction: rtl;
-	font-family: sans-serif;
-}
-
-.reveal.rtl pre,
-.reveal.rtl code {
-	direction: ltr;
-}
-
-.reveal.rtl ol,
-.reveal.rtl ul {
-	text-align: right;
-}
-
-.reveal.rtl .progress span {
-	float: right
-}
-
-/*********************************************
- * PARALLAX BACKGROUND
- *********************************************/
-
-.reveal.has-parallax-background .backgrounds {
-	-webkit-transition: all 0.8s ease;
-	   -moz-transition: all 0.8s ease;
-	    -ms-transition: all 0.8s ease;
-	        transition: all 0.8s ease;
-}
-
-/* Global transition speed settings */
-.reveal.has-parallax-background[data-transition-speed="fast"] .backgrounds {
-	-webkit-transition-duration: 400ms;
-	   -moz-transition-duration: 400ms;
-	    -ms-transition-duration: 400ms;
-	        transition-duration: 400ms;
-}
-.reveal.has-parallax-background[data-transition-speed="slow"] .backgrounds {
-	-webkit-transition-duration: 1200ms;
-	   -moz-transition-duration: 1200ms;
-	    -ms-transition-duration: 1200ms;
-	        transition-duration: 1200ms;
-}
-
-
-/*********************************************
- * LINK PREVIEW OVERLAY
- *********************************************/
-
- .reveal .preview-link-overlay {
- 	position: absolute;
- 	top: 0;
- 	left: 0;
- 	width: 100%;
- 	height: 100%;
- 	z-index: 1000;
- 	background: rgba( 0, 0, 0, 0.9 );
- 	opacity: 0;
- 	visibility: hidden;
-
- 	-webkit-transition: all 0.3s ease;
- 	   -moz-transition: all 0.3s ease;
- 	    -ms-transition: all 0.3s ease;
- 	        transition: all 0.3s ease;
- }
- 	.reveal .preview-link-overlay.visible {
- 		opacity: 1;
- 		visibility: visible;
- 	}
-
- 	.reveal .preview-link-overlay .spinner {
- 		position: absolute;
- 		display: block;
- 		top: 50%;
- 		left: 50%;
- 		width: 32px;
- 		height: 32px;
- 		margin: -16px 0 0 -16px;
- 		z-index: 10;
- 		background-image: url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);
-
- 		visibility: visible;
- 		opacity: 0.6;
-
- 		-webkit-transition: all 0.3s ease;
- 		   -moz-transition: all 0.3s ease;
- 		    -ms-transition: all 0.3s ease;
- 		        transition: all 0.3s ease;
- 	}
-
- 	.reveal .preview-link-overlay header {
- 		position: absolute;
- 		left: 0;
- 		top: 0;
- 		width: 100%;
- 		height: 40px;
- 		z-index: 2;
- 		border-bottom: 1px solid #222;
- 	}
- 		.reveal .preview-link-overlay header a {
- 			display: inline-block;
- 			width: 40px;
- 			height: 40px;
- 			padding: 0 10px;
- 			float: right;
- 			opacity: 0.6;
-
- 			box-sizing: border-box;
- 		}
- 			.reveal .preview-link-overlay header a:hover {
- 				opacity: 1;
- 			}
- 			.reveal .preview-link-overlay header a .icon {
- 				display: inline-block;
- 				width: 20px;
- 				height: 20px;
-
- 				background-position: 50% 50%;
- 				background-size: 100%;
- 				background-repeat: no-repeat;
- 			}
- 			.reveal .preview-link-overlay header a.close .icon {
- 				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC);
- 			}
- 			.reveal .preview-link-overlay header a.external .icon {
- 				background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==);
- 			}
-
- 	.reveal .preview-link-overlay .viewport {
- 		position: absolute;
- 		top: 40px;
- 		right: 0;
- 		bottom: 0;
- 		left: 0;
- 	}
-
- 	.reveal .preview-link-overlay .viewport iframe {
- 		width: 100%;
- 		height: 100%;
- 		max-width: 100%;
- 		max-height: 100%;
- 		border: 0;
-
- 		opacity: 0;
- 		visibility: hidden;
-
- 		-webkit-transition: all 0.3s ease;
- 		   -moz-transition: all 0.3s ease;
- 		    -ms-transition: all 0.3s ease;
- 		        transition: all 0.3s ease;
- 	}
-
- 	.reveal .preview-link-overlay.loaded .viewport iframe {
- 		opacity: 1;
- 		visibility: visible;
- 	}
-
- 	.reveal .preview-link-overlay.loaded .spinner {
- 		opacity: 0;
- 		visibility: hidden;
-
- 		-webkit-transform: scale(0.2);
- 		   -moz-transform: scale(0.2);
- 		    -ms-transform: scale(0.2);
- 		        transform: scale(0.2);
- 	}
-
-
-
-/*********************************************
- * PLAYBACK COMPONENT
- *********************************************/
-
-.reveal .playback {
-	position: fixed;
-	left: 15px;
-	bottom: 15px;
-	z-index: 30;
-	cursor: pointer;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-}
-
-.reveal.overview .playback {
-	opacity: 0;
-	visibility: hidden;
-}
-
-
-/*********************************************
- * ROLLING LINKS
- *********************************************/
-
-.reveal .roll {
-	display: inline-block;
-	line-height: 1.2;
-	overflow: hidden;
-
-	vertical-align: top;
-
-	-webkit-perspective: 400px;
-	   -moz-perspective: 400px;
-	    -ms-perspective: 400px;
-	        perspective: 400px;
-
-	-webkit-perspective-origin: 50% 50%;
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-	.reveal .roll:hover {
-		background: none;
-		text-shadow: none;
-	}
-.reveal .roll span {
-	display: block;
-	position: relative;
-	padding: 0 2px;
-
-	pointer-events: none;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal .roll:hover span {
-	    background: rgba(0,0,0,0.5);
-
-	    -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	       -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	        -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	            transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	}
-.reveal .roll span:after {
-	content: attr(data-title);
-
-	display: block;
-	position: absolute;
-	left: 0;
-	top: 0;
-	padding: 0 2px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	   -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	    -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	        transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-}
-
-
-/*********************************************
- * SPEAKER NOTES
- *********************************************/
-
-.reveal aside.notes {
-	display: none;
-}
-
-
-/*********************************************
- * ZOOM PLUGIN
- *********************************************/
-
-.zoomed .reveal *,
-.zoomed .reveal *:before,
-.zoomed .reveal *:after {
-	-webkit-transform: none !important;
-	   -moz-transform: none !important;
-	    -ms-transform: none !important;
-	        transform: none !important;
-
-	-webkit-backface-visibility: visible !important;
-	   -moz-backface-visibility: visible !important;
-	    -ms-backface-visibility: visible !important;
-	        backface-visibility: visible !important;
-}
-
-.zoomed .reveal .progress,
-.zoomed .reveal .controls {
-	opacity: 0;
-}
-
-.zoomed .reveal .roll span {
-	background: none;
-}
-
-.zoomed .reveal .roll span:after {
-	visibility: hidden;
-}
-
-
diff --git a/docs/slides/IHP14/_support/reveal.js/css/reveal.min.css b/docs/slides/IHP14/_support/reveal.js/css/reveal.min.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/reveal.min.css
+++ /dev/null
@@ -1,7 +0,0 @@
-@charset "UTF-8";/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */ html,body,.reveal div,.reveal span,.reveal applet,.reveal object,.reveal iframe,.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6,.reveal p,.reveal blockquote,.reveal pre,.reveal a,.reveal abbr,.reveal acronym,.reveal address,.reveal big,.reveal cite,.reveal code,.reveal del,.reveal dfn,.reveal em,.reveal img,.reveal ins,.reveal kbd,.reveal q,.reveal s,.reveal samp,.reveal small,.reveal strike,.reveal strong,.reveal sub,.reveal sup,.reveal tt,.reveal var,.reveal b,.reveal u,.reveal i,.reveal center,.reveal dl,.reveal dt,.reveal dd,.reveal ol,.reveal ul,.reveal li,.reveal fieldset,.reveal form,.reveal label,.reveal legend,.reveal table,.reveal caption,.reveal tbody,.reveal tfoot,.reveal thead,.reveal tr,.reveal th,.reveal td,.reveal article,.reveal aside,.reveal canvas,.reveal details,.reveal embed,.reveal figure,.reveal figcaption,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal output,.reveal ruby,.reveal section,.reveal summary,.reveal time,.reveal mark,.reveal audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}.reveal article,.reveal aside,.reveal details,.reveal figcaption,.reveal figure,.reveal footer,.reveal header,.reveal hgroup,.reveal menu,.reveal nav,.reveal section{display:block}html,body{width:100%;height:100%;overflow:hidden}body{position:relative;line-height:1}::selection{background:#FF5E99;color:#fff;text-shadow:none}.reveal h1,.reveal h2,.reveal h3,.reveal h4,.reveal h5,.reveal h6{-webkit-hyphens:auto;-moz-hyphens:auto;hyphens:auto;word-wrap:break-word;line-height:1}.reveal h1{font-size:3.77em}.reveal h2{font-size:2.11em}.reveal h3{font-size:1.55em}.reveal h4{font-size:1em}.reveal .slides section .fragment{opacity:0;-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .slides section .fragment.visible{opacity:1}.reveal .slides section .fragment.grow{opacity:1}.reveal .slides section .fragment.grow.visible{-webkit-transform:scale(1.3);-moz-transform:scale(1.3);-ms-transform:scale(1.3);-o-transform:scale(1.3);transform:scale(1.3)}.reveal .slides section .fragment.shrink{opacity:1}.reveal .slides section .fragment.shrink.visible{-webkit-transform:scale(0.7);-moz-transform:scale(0.7);-ms-transform:scale(0.7);-o-transform:scale(0.7);transform:scale(0.7)}.reveal .slides section .fragment.zoom-in{opacity:0;-webkit-transform:scale(0.1);-moz-transform:scale(0.1);-ms-transform:scale(0.1);-o-transform:scale(0.1);transform:scale(0.1)}.reveal .slides section .fragment.zoom-in.visible{opacity:1;-webkit-transform:scale(1);-moz-transform:scale(1);-ms-transform:scale(1);-o-transform:scale(1);transform:scale(1)}.reveal .slides section .fragment.roll-in{opacity:0;-webkit-transform:rotateX(90deg);-moz-transform:rotateX(90deg);-ms-transform:rotateX(90deg);-o-transform:rotateX(90deg);transform:rotateX(90deg)}.reveal .slides section .fragment.roll-in.visible{opacity:1;-webkit-transform:rotateX(0);-moz-transform:rotateX(0);-ms-transform:rotateX(0);-o-transform:rotateX(0);transform:rotateX(0)}.reveal .slides section .fragment.fade-out{opacity:1}.reveal .slides section .fragment.fade-out.visible{opacity:0}.reveal .slides section .fragment.semi-fade-out{opacity:1}.reveal .slides section .fragment.semi-fade-out.visible{opacity:.5}.reveal .slides section .fragment.current-visible{opacity:0}.reveal .slides section .fragment.current-visible.current-fragment{opacity:1}.reveal .slides section .fragment.highlight-red,.reveal .slides section .fragment.highlight-current-red,.reveal .slides section .fragment.highlight-green,.reveal .slides section .fragment.highlight-current-green,.reveal .slides section .fragment.highlight-blue,.reveal .slides section .fragment.highlight-current-blue{opacity:1}.reveal .slides section .fragment.highlight-red.visible{color:#ff2c2d}.reveal .slides section .fragment.highlight-green.visible{color:#17ff2e}.reveal .slides section .fragment.highlight-blue.visible{color:#1b91ff}.reveal .slides section .fragment.highlight-current-red.current-fragment{color:#ff2c2d}.reveal .slides section .fragment.highlight-current-green.current-fragment{color:#17ff2e}.reveal .slides section .fragment.highlight-current-blue.current-fragment{color:#1b91ff}.reveal:after{content:'';font-style:italic}.reveal iframe{z-index:1}.reveal img,.reveal video,.reveal iframe{max-width:95%;max-height:95%}.reveal a{position:relative}.reveal strong,.reveal b{font-weight:700}.reveal em,.reveal i{font-style:italic}.reveal ol,.reveal ul{display:inline-block;text-align:left;margin:0 0 0 1em}.reveal ol{list-style-type:decimal}.reveal ul{list-style-type:disc}.reveal ul ul{list-style-type:square}.reveal ul ul ul{list-style-type:circle}.reveal ul ul,.reveal ul ol,.reveal ol ol,.reveal ol ul{display:block;margin-left:40px}.reveal p{margin-bottom:10px;line-height:1.2em}.reveal q,.reveal blockquote{quotes:none}.reveal blockquote{display:block;position:relative;width:70%;margin:5px auto;padding:5px;font-style:italic;background:rgba(255,255,255,.05);box-shadow:0 0 2px rgba(0,0,0,.2)}.reveal blockquote p:first-child,.reveal blockquote p:last-child{display:inline-block}.reveal q{font-style:italic}.reveal pre{display:block;position:relative;width:90%;margin:15px auto;text-align:left;font-size:.55em;font-family:monospace;line-height:1.2em;word-wrap:break-word;box-shadow:0 0 6px rgba(0,0,0,.3)}.reveal code{font-family:monospace}.reveal pre code{padding:5px;overflow:auto;max-height:400px;word-wrap:normal}.reveal pre.stretch code{height:100%;max-height:100%;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal table th,.reveal table td{text-align:left;padding-right:.3em}.reveal table th{font-weight:700}.reveal sup{vertical-align:super}.reveal sub{vertical-align:sub}.reveal small{display:inline-block;font-size:.6em;line-height:1.2em;vertical-align:top}.reveal small *{vertical-align:top}.reveal .stretch{max-width:none;max-height:none}.reveal .controls{display:none;position:fixed;width:110px;height:110px;z-index:30;right:10px;bottom:10px}.reveal .controls div{position:absolute;opacity:.05;width:0;height:0;border:12px solid transparent;-moz-transform:scale(.9999);-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.reveal .controls div.enabled{opacity:.7;cursor:pointer}.reveal .controls div.enabled:active{margin-top:1px}.reveal .controls div.navigate-left{top:42px;border-right-width:22px;border-right-color:#eee}.reveal .controls div.navigate-left.fragmented{opacity:.3}.reveal .controls div.navigate-right{left:74px;top:42px;border-left-width:22px;border-left-color:#eee}.reveal .controls div.navigate-right.fragmented{opacity:.3}.reveal .controls div.navigate-up{left:42px;border-bottom-width:22px;border-bottom-color:#eee}.reveal .controls div.navigate-up.fragmented{opacity:.3}.reveal .controls div.navigate-down{left:42px;top:74px;border-top-width:22px;border-top-color:#eee}.reveal .controls div.navigate-down.fragmented{opacity:.3}.reveal .progress{position:fixed;display:none;height:3px;width:100%;bottom:0;left:0;z-index:10}.reveal .progress:after{content:'';display:'block';position:absolute;height:20px;width:100%;top:-20px}.reveal .progress span{display:block;height:100%;width:0;-webkit-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:width 800ms cubic-bezier(0.26,.86,.44,.985);transition:width 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-number{position:fixed;display:block;right:15px;bottom:15px;opacity:.5;z-index:31;font-size:12px}.reveal{position:relative;width:100%;height:100%;-ms-touch-action:none}.reveal .slides{position:absolute;width:100%;height:100%;left:50%;top:50%;overflow:visible;z-index:1;text-align:center;-webkit-transition:-webkit-perspective .4s ease;-moz-transition:-moz-perspective .4s ease;-ms-transition:-ms-perspective .4s ease;-o-transition:-o-perspective .4s ease;transition:perspective .4s ease;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px;-webkit-perspective-origin:0 -100px;-moz-perspective-origin:0 -100px;-ms-perspective-origin:0 -100px;perspective-origin:0 -100px}.reveal .slides>section{-ms-perspective:600px}.reveal .slides>section,.reveal .slides>section>section{display:none;position:absolute;width:100%;padding:20px 0;z-index:10;line-height:1.2em;font-weight:inherit;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition:-webkit-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-webkit-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:-moz-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-moz-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:-ms-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-ms-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:-o-transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),-o-transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985);transition:transform-origin 800ms cubic-bezier(0.26,.86,.44,.985),transform 800ms cubic-bezier(0.26,.86,.44,.985),visibility 800ms cubic-bezier(0.26,.86,.44,.985),opacity 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal[data-transition-speed=fast] .slides section{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow] .slides section{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides section[data-transition-speed=fast]{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal .slides section[data-transition-speed=slow]{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .slides>section{left:-50%;top:-50%}.reveal .slides>section.stack{padding-top:0;padding-bottom:0}.reveal .slides>section.present,.reveal .slides>section>section.present{display:block;z-index:11;opacity:1}.reveal.center,.reveal.center .slides,.reveal.center .slides section{min-height:auto!important}.reveal .slides>section.future,.reveal .slides>section>section.future,.reveal .slides>section.past,.reveal .slides>section>section.past{pointer-events:none}.reveal.overview .slides>section,.reveal.overview .slides>section>section{pointer-events:auto}.reveal .slides>section[data-transition=default].past,.reveal .slides>section.past{display:block;opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=default].future,.reveal .slides>section.future{display:block;opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=default].past,.reveal .slides>section>section.past{display:block;opacity:0;-webkit-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-moz-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);-ms-transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0);transform:translate3d(0,-300px,0) rotateX(70deg) translate3d(0,-300px,0)}.reveal .slides>section>section[data-transition=default].future,.reveal .slides>section>section.future{display:block;opacity:0;-webkit-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-moz-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);-ms-transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0);transform:translate3d(0,300px,0) rotateX(-70deg) translate3d(0,300px,0)}.reveal .slides>section[data-transition=concave].past,.reveal.concave .slides>section.past{-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal .slides>section[data-transition=concave].future,.reveal.concave .slides>section.future{-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal .slides>section>section[data-transition=concave].past,.reveal.concave .slides>section>section.past{-webkit-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-moz-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);-ms-transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0);transform:translate3d(0,-80%,0) rotateX(-70deg) translate3d(0,-80%,0)}.reveal .slides>section>section[data-transition=concave].future,.reveal.concave .slides>section>section.future{-webkit-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-moz-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);-ms-transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0);transform:translate3d(0,80%,0) rotateX(70deg) translate3d(0,80%,0)}.reveal .slides>section[data-transition=zoom],.reveal.zoom .slides>section{-webkit-transition-timing-function:ease;-moz-transition-timing-function:ease;-ms-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.reveal .slides>section[data-transition=zoom].past,.reveal.zoom .slides>section.past{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal .slides>section[data-transition=zoom].future,.reveal.zoom .slides>section.future{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal .slides>section>section[data-transition=zoom].past,.reveal.zoom .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=zoom].future,.reveal.zoom .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.linear section{-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal .slides>section[data-transition=linear].past,.reveal.linear .slides>section.past{-webkit-transform:translate(-150%,0);-moz-transform:translate(-150%,0);-ms-transform:translate(-150%,0);-o-transform:translate(-150%,0);transform:translate(-150%,0)}.reveal .slides>section[data-transition=linear].future,.reveal.linear .slides>section.future{-webkit-transform:translate(150%,0);-moz-transform:translate(150%,0);-ms-transform:translate(150%,0);-o-transform:translate(150%,0);transform:translate(150%,0)}.reveal .slides>section>section[data-transition=linear].past,.reveal.linear .slides>section>section.past{-webkit-transform:translate(0,-150%);-moz-transform:translate(0,-150%);-ms-transform:translate(0,-150%);-o-transform:translate(0,-150%);transform:translate(0,-150%)}.reveal .slides>section>section[data-transition=linear].future,.reveal.linear .slides>section>section.future{-webkit-transform:translate(0,150%);-moz-transform:translate(0,150%);-ms-transform:translate(0,150%);-o-transform:translate(0,150%);transform:translate(0,150%)}.reveal.cube .slides{-webkit-perspective:1300px;-moz-perspective:1300px;-ms-perspective:1300px;perspective:1300px}.reveal.cube .slides section{padding:30px;min-height:700px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.center.cube .slides section{min-height:auto}.reveal.cube .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);border-radius:4px;-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.cube .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg);-moz-transform:translateZ(-90px) rotateX(65deg);-ms-transform:translateZ(-90px) rotateX(65deg);-o-transform:translateZ(-90px) rotateX(65deg);transform:translateZ(-90px) rotateX(65deg)}.reveal.cube .slides>section.stack{padding:0;background:0}.reveal.cube .slides>section.past{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg);transform:translate3d(-100%,0,0) rotateY(-90deg)}.reveal.cube .slides>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg);-moz-transform:translate3d(100%,0,0) rotateY(90deg);-ms-transform:translate3d(100%,0,0) rotateY(90deg);transform:translate3d(100%,0,0) rotateY(90deg)}.reveal.cube .slides>section>section.past{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg);-moz-transform:translate3d(0,-100%,0) rotateX(90deg);-ms-transform:translate3d(0,-100%,0) rotateX(90deg);transform:translate3d(0,-100%,0) rotateX(90deg)}.reveal.cube .slides>section>section.future{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg);-moz-transform:translate3d(0,100%,0) rotateX(-90deg);-ms-transform:translate3d(0,100%,0) rotateX(-90deg);transform:translate3d(0,100%,0) rotateX(-90deg)}.reveal.page .slides{-webkit-perspective-origin:0 50%;-moz-perspective-origin:0 50%;-ms-perspective-origin:0 50%;perspective-origin:0 50%;-webkit-perspective:3000px;-moz-perspective:3000px;-ms-perspective:3000px;perspective:3000px}.reveal.page .slides section{padding:30px;min-height:700px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.reveal.page .slides section.past{z-index:12}.reveal.page .slides section:not(.stack):before{content:'';position:absolute;display:block;width:100%;height:100%;left:0;top:0;background:rgba(0,0,0,.1);-webkit-transform:translateZ(-20px);-moz-transform:translateZ(-20px);-ms-transform:translateZ(-20px);-o-transform:translateZ(-20px);transform:translateZ(-20px)}.reveal.page .slides section:not(.stack):after{content:'';position:absolute;display:block;width:90%;height:30px;left:5%;bottom:0;background:0;z-index:1;border-radius:4px;box-shadow:0 95px 25px rgba(0,0,0,.2);-webkit-transform:translateZ(-90px) rotateX(65deg)}.reveal.page .slides>section.stack{padding:0;background:0}.reveal.page .slides>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(-40%,0,0) rotateY(-80deg);-moz-transform:translate3d(-40%,0,0) rotateY(-80deg);-ms-transform:translate3d(-40%,0,0) rotateY(-80deg);transform:translate3d(-40%,0,0) rotateY(-80deg)}.reveal.page .slides>section.future{-webkit-transform-origin:100% 0;-moz-transform-origin:100% 0;-ms-transform-origin:100% 0;transform-origin:100% 0;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal.page .slides>section>section.past{-webkit-transform-origin:0 0;-moz-transform-origin:0 0;-ms-transform-origin:0 0;transform-origin:0 0;-webkit-transform:translate3d(0,-40%,0) rotateX(80deg);-moz-transform:translate3d(0,-40%,0) rotateX(80deg);-ms-transform:translate3d(0,-40%,0) rotateX(80deg);transform:translate3d(0,-40%,0) rotateX(80deg)}.reveal.page .slides>section>section.future{-webkit-transform-origin:0 100%;-moz-transform-origin:0 100%;-ms-transform-origin:0 100%;transform-origin:0 100%;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);-ms-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.reveal .slides section[data-transition=fade],.reveal.fade .slides section,.reveal.fade .slides>section>section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:opacity .5s;-moz-transition:opacity .5s;-ms-transition:opacity .5s;-o-transition:opacity .5s;transition:opacity .5s}.reveal.fade.overview .slides section,.reveal.fade.overview .slides>section>section,.reveal.fade.overview-deactivating .slides section,.reveal.fade.overview-deactivating .slides>section>section{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal .slides section[data-transition=none],.reveal.none .slides section{-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none;-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal.overview .slides{-webkit-perspective-origin:0 0;-moz-perspective-origin:0 0;-ms-perspective-origin:0 0;perspective-origin:0 0;-webkit-perspective:700px;-moz-perspective:700px;-ms-perspective:700px;perspective:700px}.reveal.overview .slides section{height:600px;top:-300px!important;overflow:hidden;opacity:1!important;visibility:visible!important;cursor:pointer;background:rgba(0,0,0,.1)}.reveal.overview .slides section .fragment{opacity:1}.reveal.overview .slides section:after,.reveal.overview .slides section:before{display:none!important}.reveal.overview .slides section>section{opacity:1;cursor:pointer}.reveal.overview .slides section:hover{background:rgba(0,0,0,.3)}.reveal.overview .slides section.present{background:rgba(0,0,0,.3)}.reveal.overview .slides>section.stack{padding:0;top:0!important;background:0;overflow:visible}.reveal .pause-overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#000;visibility:hidden;opacity:0;z-index:100;-webkit-transition:all 1s ease;-moz-transition:all 1s ease;-ms-transition:all 1s ease;-o-transition:all 1s ease;transition:all 1s ease}.reveal.paused .pause-overlay{visibility:visible;opacity:1}.no-transforms{overflow-y:auto}.no-transforms .reveal .slides{position:relative;width:80%;height:auto!important;top:0;left:50%;margin:0;text-align:center}.no-transforms .reveal .controls,.no-transforms .reveal .progress{display:none!important}.no-transforms .reveal .slides section{display:block!important;opacity:1!important;position:relative!important;height:auto;min-height:auto;top:0;left:-50%;margin:70px 0;-webkit-transform:none;-moz-transform:none;-ms-transform:none;-o-transform:none;transform:none}.no-transforms .reveal .slides section section{left:0}.reveal .no-transition,.reveal .no-transition *{-webkit-transition:none!important;-moz-transition:none!important;-ms-transition:none!important;-o-transition:none!important;transition:none!important}.reveal .state-background{position:absolute;width:100%;height:100%;background:rgba(0,0,0,0);-webkit-transition:background 800ms ease;-moz-transition:background 800ms ease;-ms-transition:background 800ms ease;-o-transition:background 800ms ease;transition:background 800ms ease}.alert .reveal .state-background{background:rgba(200,50,30,.6)}.soothe .reveal .state-background{background:rgba(50,200,90,.4)}.blackout .reveal .state-background{background:rgba(0,0,0,.6)}.whiteout .reveal .state-background{background:rgba(255,255,255,.6)}.cobalt .reveal .state-background{background:rgba(22,152,213,.6)}.mint .reveal .state-background{background:rgba(22,213,75,.6)}.submerge .reveal .state-background{background:rgba(12,25,77,.6)}.lila .reveal .state-background{background:rgba(180,50,140,.6)}.sunset .reveal .state-background{background:rgba(255,122,0,.6)}.reveal>.backgrounds{position:absolute;width:100%;height:100%;-webkit-perspective:600px;-moz-perspective:600px;-ms-perspective:600px;perspective:600px}.reveal .slide-background{position:absolute;width:100%;height:100%;opacity:0;visibility:hidden;background-color:rgba(0,0,0,0);background-position:50% 50%;background-repeat:no-repeat;background-size:cover;-webkit-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-moz-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-ms-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);-o-transition:all 800ms cubic-bezier(0.26,.86,.44,.985);transition:all 800ms cubic-bezier(0.26,.86,.44,.985)}.reveal .slide-background.present{opacity:1;visibility:visible}.print-pdf .reveal .slide-background{opacity:1!important;visibility:visible!important}.reveal[data-background-transition=none]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=none]{-webkit-transition:none;-moz-transition:none;-ms-transition:none;-o-transition:none;transition:none}.reveal[data-background-transition=slide]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=slide]{opacity:1;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-ms-backface-visibility:hidden;backface-visibility:hidden}.reveal[data-background-transition=slide]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=slide]{-webkit-transform:translate(-100%,0);-moz-transform:translate(-100%,0);-ms-transform:translate(-100%,0);-o-transform:translate(-100%,0);transform:translate(-100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=slide]{-webkit-transform:translate(100%,0);-moz-transform:translate(100%,0);-ms-transform:translate(100%,0);-o-transform:translate(100%,0);transform:translate(100%,0)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=slide]{-webkit-transform:translate(0,-100%);-moz-transform:translate(0,-100%);-ms-transform:translate(0,-100%);-o-transform:translate(0,-100%);transform:translate(0,-100%)}.reveal[data-background-transition=slide]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=slide]{-webkit-transform:translate(0,100%);-moz-transform:translate(0,100%);-ms-transform:translate(0,100%);-o-transform:translate(0,100%);transform:translate(0,100%)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(-90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(90deg) translate3d(100%,0,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=convex]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=convex]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(-90deg) translate3d(0,100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);-ms-transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0);transform:translate3d(-100%,0,0) rotateY(90deg) translate3d(-100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);-ms-transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0);transform:translate3d(100%,0,0) rotateY(-90deg) translate3d(100%,0,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);-moz-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);-ms-transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0);transform:translate3d(0,-100%,0) rotateX(-90deg) translate3d(0,-100%,0)}.reveal[data-background-transition=concave]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=concave]{opacity:0;-webkit-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);-ms-transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0);transform:translate3d(0,100%,0) rotateX(90deg) translate3d(0,100%,0)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background,.reveal>.backgrounds .slide-background[data-background-transition=zoom]{-webkit-transition-timing-function:ease;-moz-transition-timing-function:ease;-ms-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.past,.reveal>.backgrounds .slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background.future,.reveal>.backgrounds .slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.past,.reveal>.backgrounds .slide-background>.slide-background.past[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(16);-moz-transform:scale(16);-ms-transform:scale(16);-o-transform:scale(16);transform:scale(16)}.reveal[data-background-transition=zoom]>.backgrounds .slide-background>.slide-background.future,.reveal>.backgrounds .slide-background>.slide-background.future[data-background-transition=zoom]{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);-o-transform:scale(0.2);transform:scale(0.2)}.reveal[data-transition-speed=fast]>.backgrounds .slide-background{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal[data-transition-speed=slow]>.backgrounds .slide-background{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal.rtl .slides,.reveal.rtl .slides h1,.reveal.rtl .slides h2,.reveal.rtl .slides h3,.reveal.rtl .slides h4,.reveal.rtl .slides h5,.reveal.rtl .slides h6{direction:rtl;font-family:sans-serif}.reveal.rtl pre,.reveal.rtl code{direction:ltr}.reveal.rtl ol,.reveal.rtl ul{text-align:right}.reveal.rtl .progress span{float:right}.reveal.has-parallax-background .backgrounds{-webkit-transition:all .8s ease;-moz-transition:all .8s ease;-ms-transition:all .8s ease;transition:all .8s ease}.reveal.has-parallax-background[data-transition-speed=fast] .backgrounds{-webkit-transition-duration:400ms;-moz-transition-duration:400ms;-ms-transition-duration:400ms;transition-duration:400ms}.reveal.has-parallax-background[data-transition-speed=slow] .backgrounds{-webkit-transition-duration:1200ms;-moz-transition-duration:1200ms;-ms-transition-duration:1200ms;transition-duration:1200ms}.reveal .preview-link-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1000;background:rgba(0,0,0,.9);opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.visible{opacity:1;visibility:visible}.reveal .preview-link-overlay .spinner{position:absolute;display:block;top:50%;left:50%;width:32px;height:32px;margin:-16px 0 0 -16px;z-index:10;background-image:url(data:image/gif;base64,R0lGODlhIAAgAPMAAJmZmf%2F%2F%2F6%2Bvr8nJybW1tcDAwOjo6Nvb26ioqKOjo7Ozs%2FLy8vz8%2FAAAAAAAAAAAACH%2FC05FVFNDQVBFMi4wAwEAAAAh%2FhpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh%2BQQJCgAAACwAAAAAIAAgAAAE5xDISWlhperN52JLhSSdRgwVo1ICQZRUsiwHpTJT4iowNS8vyW2icCF6k8HMMBkCEDskxTBDAZwuAkkqIfxIQyhBQBFvAQSDITM5VDW6XNE4KagNh6Bgwe60smQUB3d4Rz1ZBApnFASDd0hihh12BkE9kjAJVlycXIg7CQIFA6SlnJ87paqbSKiKoqusnbMdmDC2tXQlkUhziYtyWTxIfy6BE8WJt5YJvpJivxNaGmLHT0VnOgSYf0dZXS7APdpB309RnHOG5gDqXGLDaC457D1zZ%2FV%2FnmOM82XiHRLYKhKP1oZmADdEAAAh%2BQQJCgAAACwAAAAAIAAgAAAE6hDISWlZpOrNp1lGNRSdRpDUolIGw5RUYhhHukqFu8DsrEyqnWThGvAmhVlteBvojpTDDBUEIFwMFBRAmBkSgOrBFZogCASwBDEY%2FCZSg7GSE0gSCjQBMVG023xWBhklAnoEdhQEfyNqMIcKjhRsjEdnezB%2BA4k8gTwJhFuiW4dokXiloUepBAp5qaKpp6%2BHo7aWW54wl7obvEe0kRuoplCGepwSx2jJvqHEmGt6whJpGpfJCHmOoNHKaHx61WiSR92E4lbFoq%2BB6QDtuetcaBPnW6%2BO7wDHpIiK9SaVK5GgV543tzjgGcghAgAh%2BQQJCgAAACwAAAAAIAAgAAAE7hDISSkxpOrN5zFHNWRdhSiVoVLHspRUMoyUakyEe8PTPCATW9A14E0UvuAKMNAZKYUZCiBMuBakSQKG8G2FzUWox2AUtAQFcBKlVQoLgQReZhQlCIJesQXI5B0CBnUMOxMCenoCfTCEWBsJColTMANldx15BGs8B5wlCZ9Po6OJkwmRpnqkqnuSrayqfKmqpLajoiW5HJq7FL1Gr2mMMcKUMIiJgIemy7xZtJsTmsM4xHiKv5KMCXqfyUCJEonXPN2rAOIAmsfB3uPoAK%2B%2BG%2Bw48edZPK%2BM6hLJpQg484enXIdQFSS1u6UhksENEQAAIfkECQoAAAAsAAAAACAAIAAABOcQyEmpGKLqzWcZRVUQnZYg1aBSh2GUVEIQ2aQOE%2BG%2BcD4ntpWkZQj1JIiZIogDFFyHI0UxQwFugMSOFIPJftfVAEoZLBbcLEFhlQiqGp1Vd140AUklUN3eCA51C1EWMzMCezCBBmkxVIVHBWd3HHl9JQOIJSdSnJ0TDKChCwUJjoWMPaGqDKannasMo6WnM562R5YluZRwur0wpgqZE7NKUm%2BFNRPIhjBJxKZteWuIBMN4zRMIVIhffcgojwCF117i4nlLnY5ztRLsnOk%2BaV%2BoJY7V7m76PdkS4trKcdg0Zc0tTcKkRAAAIfkECQoAAAAsAAAAACAAIAAABO4QyEkpKqjqzScpRaVkXZWQEximw1BSCUEIlDohrft6cpKCk5xid5MNJTaAIkekKGQkWyKHkvhKsR7ARmitkAYDYRIbUQRQjWBwJRzChi9CRlBcY1UN4g0%2FVNB0AlcvcAYHRyZPdEQFYV8ccwR5HWxEJ02YmRMLnJ1xCYp0Y5idpQuhopmmC2KgojKasUQDk5BNAwwMOh2RtRq5uQuPZKGIJQIGwAwGf6I0JXMpC8C7kXWDBINFMxS4DKMAWVWAGYsAdNqW5uaRxkSKJOZKaU3tPOBZ4DuK2LATgJhkPJMgTwKCdFjyPHEnKxFCDhEAACH5BAkKAAAALAAAAAAgACAAAATzEMhJaVKp6s2nIkolIJ2WkBShpkVRWqqQrhLSEu9MZJKK9y1ZrqYK9WiClmvoUaF8gIQSNeF1Er4MNFn4SRSDARWroAIETg1iVwuHjYB1kYc1mwruwXKC9gmsJXliGxc%2BXiUCby9ydh1sOSdMkpMTBpaXBzsfhoc5l58Gm5yToAaZhaOUqjkDgCWNHAULCwOLaTmzswadEqggQwgHuQsHIoZCHQMMQgQGubVEcxOPFAcMDAYUA85eWARmfSRQCdcMe0zeP1AAygwLlJtPNAAL19DARdPzBOWSm1brJBi45soRAWQAAkrQIykShQ9wVhHCwCQCACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiRMDjI0Fd30%2FiI2UA5GSS5UDj2l6NoqgOgN4gksEBgYFf0FDqKgHnyZ9OX8HrgYHdHpcHQULXAS2qKpENRg7eAMLC7kTBaixUYFkKAzWAAnLC7FLVxLWDBLKCwaKTULgEwbLA4hJtOkSBNqITT3xEgfLpBtzE%2FjiuL04RGEBgwWhShRgQExHBAAh%2BQQJCgAAACwAAAAAIAAgAAAE7xDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfZiCqGk5dTESJeaOAlClzsJsqwiJwiqnFrb2nS9kmIcgEsjQydLiIlHehhpejaIjzh9eomSjZR%2BipslWIRLAgMDOR2DOqKogTB9pCUJBagDBXR6XB0EBkIIsaRsGGMMAxoDBgYHTKJiUYEGDAzHC9EACcUGkIgFzgwZ0QsSBcXHiQvOwgDdEwfFs0sDzt4S6BK4xYjkDOzn0unFeBzOBijIm1Dgmg5YFQwsCMjp1oJ8LyIAACH5BAkKAAAALAAAAAAgACAAAATwEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GGl6NoiPOH16iZKNlH6KmyWFOggHhEEvAwwMA0N9GBsEC6amhnVcEwavDAazGwIDaH1ipaYLBUTCGgQDA8NdHz0FpqgTBwsLqAbWAAnIA4FWKdMLGdYGEgraigbT0OITBcg5QwPT4xLrROZL6AuQAPUS7bxLpoWidY0JtxLHKhwwMJBTHgPKdEQAACH5BAkKAAAALAAAAAAgACAAAATrEMhJaVKp6s2nIkqFZF2VIBWhUsJaTokqUCoBq%2BE71SRQeyqUToLA7VxF0JDyIQh%2FMVVPMt1ECZlfcjZJ9mIKoaTl1MRIl5o4CUKXOwmyrCInCKqcWtvadL2SYhyASyNDJ0uIiUd6GAULDJCRiXo1CpGXDJOUjY%2BYip9DhToJA4RBLwMLCwVDfRgbBAaqqoZ1XBMHswsHtxtFaH1iqaoGNgAIxRpbFAgfPQSqpbgGBqUD1wBXeCYp1AYZ19JJOYgH1KwA4UBvQwXUBxPqVD9L3sbp2BNk2xvvFPJd%2BMFCN6HAAIKgNggY0KtEBAAh%2BQQJCgAAACwAAAAAIAAgAAAE6BDISWlSqerNpyJKhWRdlSAVoVLCWk6JKlAqAavhO9UkUHsqlE6CwO1cRdCQ8iEIfzFVTzLdRAmZX3I2SfYIDMaAFdTESJeaEDAIMxYFqrOUaNW4E4ObYcCXaiBVEgULe0NJaxxtYksjh2NLkZISgDgJhHthkpU4mW6blRiYmZOlh4JWkDqILwUGBnE6TYEbCgevr0N1gH4At7gHiRpFaLNrrq8HNgAJA70AWxQIH1%2BvsYMDAzZQPC9VCNkDWUhGkuE5PxJNwiUK4UfLzOlD4WvzAHaoG9nxPi5d%2BjYUqfAhhykOFwJWiAAAIfkECQoAAAAsAAAAACAAIAAABPAQyElpUqnqzaciSoVkXVUMFaFSwlpOCcMYlErAavhOMnNLNo8KsZsMZItJEIDIFSkLGQoQTNhIsFehRww2CQLKF0tYGKYSg%2BygsZIuNqJksKgbfgIGepNo2cIUB3V1B3IvNiBYNQaDSTtfhhx0CwVPI0UJe0%2Bbm4g5VgcGoqOcnjmjqDSdnhgEoamcsZuXO1aWQy8KAwOAuTYYGwi7w5h%2BKr0SJ8MFihpNbx%2B4Erq7BYBuzsdiH1jCAzoSfl0rVirNbRXlBBlLX%2BBP0XJLAPGzTkAuAOqb0WT5AH7OcdCm5B8TgRwSRKIHQtaLCwg1RAAAOwAAAAAAAAAAAA%3D%3D);visibility:visible;opacity:.6;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay header{position:absolute;left:0;top:0;width:100%;height:40px;z-index:2;border-bottom:1px solid #222}.reveal .preview-link-overlay header a{display:inline-block;width:40px;height:40px;padding:0 10px;float:right;opacity:.6;box-sizing:border-box}.reveal .preview-link-overlay header a:hover{opacity:1}.reveal .preview-link-overlay header a .icon{display:inline-block;width:20px;height:20px;background-position:50% 50%;background-size:100%;background-repeat:no-repeat}.reveal .preview-link-overlay header a.close .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAABkklEQVRYR8WX4VHDMAxG6wnoJrABZQPYBCaBTWAD2g1gE5gg6OOsXuxIlr40d81dfrSJ9V4c2VLK7spHuTJ/5wpM07QXuXc5X0opX2tEJcadjHuV80li/FgxTIEK/5QBCICBD6xEhSMGHgQPgBgLiYVAB1dpSqKDawxTohFw4JSEA3clzgIBPCURwE2JucBR7rhPJJv5OpJwDX+SfDjgx1wACQeJG1aChP9K/IMmdZ8DtESV1WyP3Bt4MwM6sj4NMxMYiqUWHQu4KYA/SYkIjOsm3BXYWMKFDwU2khjCQ4ELJUJ4SmClRArOCmSXGuKma0fYD5CbzHxFpCSGAhfAVSSUGDUk2BWZaff2g6GE15BsBQ9nwmpIGDiyHQddwNTMKkbZaf9fajXQca1EX44puJZUsnY0ObGmITE3GVLCbEhQUjGVt146j6oasWN+49Vph2w1pZ5EansNZqKBm1txbU57iRRcZ86RWMDdWtBJUHBHwoQPi1GV+JCbntmvok7iTX4/Up9mgyTc/FJYDTcndgH/AA5A/CHsyEkVAAAAAElFTkSuQmCC)}.reveal .preview-link-overlay header a.external .icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAcElEQVRYR+2WSQoAIQwEzf8f7XiOMkUQxUPlGkM3hVmiQfQR9GYnH1SsAQlI4DiBqkCMoNb9y2e90IAEJPAcgdznU9+engMaeJ7Azh5Y1U67gAho4DqBqmB1buAf0MB1AlVBek83ZPkmJMGc1wAR+AAqod/B97TRpQAAAABJRU5ErkJggg==)}.reveal .preview-link-overlay .viewport{position:absolute;top:40px;right:0;bottom:0;left:0}.reveal .preview-link-overlay .viewport iframe{width:100%;height:100%;max-width:100%;max-height:100%;border:0;opacity:0;visibility:hidden;-webkit-transition:all .3s ease;-moz-transition:all .3s ease;-ms-transition:all .3s ease;transition:all .3s ease}.reveal .preview-link-overlay.loaded .viewport iframe{opacity:1;visibility:visible}.reveal .preview-link-overlay.loaded .spinner{opacity:0;visibility:hidden;-webkit-transform:scale(0.2);-moz-transform:scale(0.2);-ms-transform:scale(0.2);transform:scale(0.2)}.reveal .playback{position:fixed;left:15px;bottom:15px;z-index:30;cursor:pointer;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease}.reveal.overview .playback{opacity:0;visibility:hidden}.reveal .roll{display:inline-block;line-height:1.2;overflow:hidden;vertical-align:top;-webkit-perspective:400px;-moz-perspective:400px;-ms-perspective:400px;perspective:400px;-webkit-perspective-origin:50% 50%;-moz-perspective-origin:50% 50%;-ms-perspective-origin:50% 50%;perspective-origin:50% 50%}.reveal .roll:hover{background:0;text-shadow:none}.reveal .roll span{display:block;position:relative;padding:0 2px;pointer-events:none;-webkit-transition:all 400ms ease;-moz-transition:all 400ms ease;-ms-transition:all 400ms ease;transition:all 400ms ease;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform-style:preserve-3d;-moz-transform-style:preserve-3d;-ms-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden}.reveal .roll:hover span{background:rgba(0,0,0,.5);-webkit-transform:translate3d(0px,0,-45px) rotateX(90deg);-moz-transform:translate3d(0px,0,-45px) rotateX(90deg);-ms-transform:translate3d(0px,0,-45px) rotateX(90deg);transform:translate3d(0px,0,-45px) rotateX(90deg)}.reveal .roll span:after{content:attr(data-title);display:block;position:absolute;left:0;top:0;padding:0 2px;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:50% 0;-moz-transform-origin:50% 0;-ms-transform-origin:50% 0;transform-origin:50% 0;-webkit-transform:translate3d(0px,110%,0) rotateX(-90deg);-moz-transform:translate3d(0px,110%,0) rotateX(-90deg);-ms-transform:translate3d(0px,110%,0) rotateX(-90deg);transform:translate3d(0px,110%,0) rotateX(-90deg)}.reveal aside.notes{display:none}.zoomed .reveal *,.zoomed .reveal :before,.zoomed .reveal :after{-webkit-transform:none!important;-moz-transform:none!important;-ms-transform:none!important;transform:none!important;-webkit-backface-visibility:visible!important;-moz-backface-visibility:visible!important;-ms-backface-visibility:visible!important;backface-visibility:visible!important}.zoomed .reveal .progress,.zoomed .reveal .controls{opacity:0}.zoomed .reveal .roll span{background:0}.zoomed .reveal .roll span:after{visibility:hidden}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/README.md b/docs/slides/IHP14/_support/reveal.js/css/theme/README.md
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/README.md
+++ /dev/null
@@ -1,25 +0,0 @@
-## Dependencies
-
-Themes are written using Sass to keep things modular and reduce the need for repeated selectors across files. Make sure that you have the reveal.js development environment including the Grunt dependencies installed before proceding: https://github.com/hakimel/reveal.js#full-setup
-
-You also need to install Ruby and then Sass (with `gem install sass`).
-
-## Creating a Theme
-
-To create your own theme, start by duplicating any ```.scss``` file in [/css/theme/source](https://github.com/hakimel/reveal.js/blob/master/css/theme/source) and adding it to the compilation list in the [Gruntfile](https://github.com/hakimel/reveal.js/blob/master/Gruntfile.js).
-
-Each theme file does four things in the following order:
-
-1. **Include [/css/theme/template/mixins.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/mixins.scss)**
-Shared utility functions.
-
-2. **Include [/css/theme/template/settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss)**
-Declares a set of custom variables that the template file (step 4) expects. Can be overridden in step 3.
-
-3. **Override**
-This is where you override the default theme. Either by specifying variables (see [settings.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/settings.scss) for reference) or by adding full selectors with hardcoded styles.
-
-4. **Include [/css/theme/template/theme.scss](https://github.com/hakimel/reveal.js/blob/master/css/theme/template/theme.scss)**
-The template theme file which will generate final CSS output based on the currently defined variables.
-
-When you are done, run `grunt themes` to compile the Sass file to CSS and you are ready to use your new theme.
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/beige.css b/docs/slides/IHP14/_support/reveal.js/css/theme/beige.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/beige.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Beige theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f7f2d3;
-  background: -moz-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, white), color-stop(100%, #f7f2d3));
-  background: -webkit-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -o-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: -ms-radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background: radial-gradient(center, circle cover, white 0%, #f7f2d3 100%);
-  background-color: #f7f3de; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #333333; }
-
-::selection {
-  color: white;
-  background: rgba(79, 64, 28, 0.99);
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #333333;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #8b743d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #c0a86e;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #564826; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #333333;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #8b743d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #8b743d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #8b743d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #8b743d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #8b743d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #c0a86e; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #c0a86e; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #c0a86e; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #c0a86e; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #8b743d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #8b743d; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/blood.css b/docs/slides/IHP14/_support/reveal.js/css/theme/blood.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/blood.css
+++ /dev/null
@@ -1,175 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
-/**
- * Blood theme for reveal.js
- * Author: Walther http://github.com/Walther
- *
- * Designed to be used with highlight.js theme
- * "monokai_sublime.css" available from
- * https://github.com/isagalaev/highlight.js/
- *
- * For other themes, change $codeBackground accordingly.
- *
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #222222;
-  background: -moz-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #626262), color-stop(100%, #222222));
-  background: -webkit-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -o-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: -ms-radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background: radial-gradient(center, circle cover, #626262 0%, #222222 100%);
-  background-color: #2b2b2b; }
-
-.reveal {
-  font-family: Ubuntu, "sans-serif";
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #aa2233;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: Ubuntu, "sans-serif";
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: 2px 2px 2px #222222; }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #aa2233;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #dd5566;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #6a1520; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #aa2233;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #aa2233; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #aa2233; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #aa2233; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #aa2233; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #dd5566; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #dd5566; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #dd5566; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #dd5566; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #aa2233;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #aa2233; }
-
-.reveal p {
-  font-weight: 300;
-  text-shadow: 1px 1px #222222; }
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  font-weight: 700; }
-
-.reveal a:not(.image),
-.reveal a:not(.image):hover {
-  text-shadow: 2px 2px 2px #000; }
-
-.reveal small a:not(.image),
-.reveal small a:not(.image):hover {
-  text-shadow: 1px 1px 1px #000; }
-
-.reveal p code {
-  background-color: #23241f;
-  display: inline-block;
-  border-radius: 7px; }
-
-.reveal small code {
-  vertical-align: baseline; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/default.css b/docs/slides/IHP14/_support/reveal.js/css/theme/default.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/default.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Default theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #1c1e20;
-  background: -moz-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #555a5f), color-stop(100%, #1c1e20));
-  background: -webkit-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -o-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: -ms-radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background: radial-gradient(center, circle cover, #555a5f 0%, #1c1e20 100%);
-  background-color: #2b2b2b; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #ff5e99;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-.reveal h1 {
-  text-shadow: 0 1px 0 #cccccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbbbbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaaaaa, 0 6px 1px rgba(0, 0, 0, 0.1), 0 0 5px rgba(0, 0, 0, 0.1), 0 1px 3px rgba(0, 0, 0, 0.3), 0 3px 5px rgba(0, 0, 0, 0.2), 0 5px 10px rgba(0, 0, 0, 0.25), 0 20px 20px rgba(0, 0, 0, 0.15); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #13daec;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #71e9f4;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #0d99a5; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #13daec;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #13daec; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #13daec; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #13daec; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #13daec; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #71e9f4; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #71e9f4; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #71e9f4; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #71e9f4; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #13daec;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #13daec; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/moon.css b/docs/slides/IHP14/_support/reveal.js/css/theme/moon.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/moon.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Solarized Dark theme for reveal.js.
- * Author: Achim Staebler
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-  color-profile: sRGB;
-  rendering-intent: auto; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #002b36;
-  background-color: #002b36; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #93a1a1; }
-
-::selection {
-  color: white;
-  background: #d33682;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eee8d5;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #268bd2;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #78b9e6;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #1a6091; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #93a1a1;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #268bd2;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #268bd2; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #268bd2; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #268bd2; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #268bd2; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #78b9e6; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #78b9e6; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #78b9e6; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #78b9e6; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #268bd2;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #268bd2; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/night.css b/docs/slides/IHP14/_support/reveal.js/css/theme/night.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/night.css
+++ /dev/null
@@ -1,136 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Montserrat:700);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
-/**
- * Black theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #111111;
-  background-color: #111111; }
-
-.reveal {
-  font-family: "Open Sans", sans-serif;
-  font-size: 30px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #eeeeee; }
-
-::selection {
-  color: white;
-  background: #e7ad52;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #eeeeee;
-  font-family: "Montserrat", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: -0.03em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #e7ad52;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #f3d7ac;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #d08a1d; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #eeeeee;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #e7ad52;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #e7ad52; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #e7ad52; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #e7ad52; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #e7ad52; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #f3d7ac; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #f3d7ac; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #f3d7ac; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #f3d7ac; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #e7ad52;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #e7ad52; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.css b/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.css
+++ /dev/null
@@ -1,200 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-.reveal a {
-  color: #8b7c69;
-  text-decoration: none;
-}
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	// :color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-/*
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-*/
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.orig.css b/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.orig.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/seminar.orig.css
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.ttf') format('truetype');
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'OpenSans', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/*--DW-- uncomment below to undo globally centered text from main.css*/
-
-/*.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-.reveal ul ul {
-	padding-left: 8%;
-	padding-top: 0.7em;
-	font-size: 85%;
-}*/
-
-/*--DW--
-* override list width to make multiline list items
-* a bit more manageable
-*/
-.reveal ul {
-	max-width: 80%;
-}
-
-.reveal li {
-	padding-bottom: 0.3em;
-}
-
-/*--DW-- uncenter pararagraph blocks*/
-.reveal .slides p {
-	text-align: left
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-
-
-/*********************************************
- * BLOCKQUOTES
- *********************************************/
-
-/*--DW--*/
-.reveal blockquote
-{   background: rgba(255,255,255, .2);
-    font-size: 75%;
-    text-align: justify;
-    width: 70%;
-    padding: 0.5em 5% 0.2em;
-    margin: 0 10%;
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-    -moz-box-shadow: .1em .1em .5em black inset;
-    box-shadow: .1em .1em .5em black inset;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-.reveal a:not(.image):hover {
-	color: hsl(185, 85%, 70%);
-	
-	text-shadow: none;
-	border: none;
-	border-radius: 2px;
-}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES AND FIGURES
- *********************************************/
-
-/*--DW-- added figures; changed img styling*/
-/*pandoc*/
-.reveal figure {
-	margin-left: auto;
-	margin-right: auto;
-}
-
-/*pandoc*/
-.reveal figcaption {
-	text-align: center;
-	font-size: 75%;
-	font-style: italic;
-}
-.reveal section img,
-.reveal section embed {
-/*	width: 80%;
-	height: 80%;
-*/	display: block;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 15px;
-	background: rgba(255,255,255, .75);
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-       -moz-box-shadow: .1em .1em .5em black inset;
-            box-shadow: .1em .1em .5em black inset;
-
-/*--DW-- original image box styling*/
-/*
--webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
--webkit-transition: all .2s linear;
-   -moz-transition: all .2s linear;
-    -ms-transition: all .2s linear;
-     -o-transition: all .2s linear;
-        transition: all .2s linear;
-*/
-}
-
-.reveal a:hover img {
-	background: rgba(255,255,255,0.2);
-	border-color: #13DAEC;
-	
-	-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		/*color: hsl(185, 85%, 70%);*/
-		color: rgba(138, 201, 85, 0.60);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		/*background: hsl(185, 85%, 50%);*/
-		background: rgba(138, 201, 85, 0.60);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/serif.css b/docs/slides/IHP14/_support/reveal.js/css/theme/serif.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/serif.css
+++ /dev/null
@@ -1,138 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/simple.css b/docs/slides/IHP14/_support/reveal.js/css/theme/simple.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/simple.css
+++ /dev/null
@@ -1,138 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is darkblue.
- *
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: white;
-  background-color: white; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: rgba(0, 0, 0, 0.99);
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: black;
-  font-family: "News Cycle", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: darkblue;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #0000f1;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #00003f; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: darkblue;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: darkblue; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: darkblue; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: darkblue; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: darkblue; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #0000f1; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #0000f1; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #0000f1; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #0000f1; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: darkblue;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: darkblue; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/sky.css b/docs/slides/IHP14/_support/reveal.js/css/theme/sky.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/sky.css
+++ /dev/null
@@ -1,145 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-/**
- * Sky theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #add9e4;
-  background: -moz-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%, #f7fbfc), color-stop(100%, #add9e4));
-  background: -webkit-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -o-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: -ms-radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background: radial-gradient(center, circle cover, #f7fbfc 0%, #add9e4 100%);
-  background-color: #f7fbfc; }
-
-.reveal {
-  font-family: "Open Sans", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #333333; }
-
-::selection {
-  color: white;
-  background: #134674;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #333333;
-  font-family: "Quicksand", sans-serif;
-  line-height: 0.9em;
-  letter-spacing: -0.08em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #3b759e;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #74a7cb;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #264c66; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #333333;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #3b759e;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #3b759e; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #3b759e; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #3b759e; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #3b759e; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #74a7cb; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #74a7cb; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #74a7cb; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #74a7cb; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #3b759e;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #3b759e; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/solarized.css b/docs/slides/IHP14/_support/reveal.js/css/theme/solarized.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/solarized.css
+++ /dev/null
@@ -1,148 +0,0 @@
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-/**
- * Solarized Light theme for reveal.js.
- * Author: Achim Staebler
- */
-@font-face {
-  font-family: 'League Gothic';
-  src: url("../../lib/font/league_gothic-webfont.eot");
-  src: url("../../lib/font/league_gothic-webfont.eot?#iefix") format("embedded-opentype"), url("../../lib/font/league_gothic-webfont.woff") format("woff"), url("../../lib/font/league_gothic-webfont.ttf") format("truetype"), url("../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular") format("svg");
-  font-weight: normal;
-  font-style: normal; }
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-  color-profile: sRGB;
-  rendering-intent: auto; }
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #fdf6e3;
-  background-color: #fdf6e3; }
-
-.reveal {
-  font-family: "Lato", sans-serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: #657b83; }
-
-::selection {
-  color: white;
-  background: #d33682;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 20px 0;
-  color: #586e75;
-  font-family: "League Gothic", Impact, sans-serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: uppercase;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #268bd2;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #78b9e6;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #1a6091; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid #657b83;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #268bd2;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #268bd2; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #268bd2; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #268bd2; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #268bd2; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #78b9e6; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #78b9e6; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #78b9e6; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #78b9e6; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #268bd2;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #268bd2; }
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/beige.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/beige.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/beige.scss
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * Beige theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: #333;
-$headingColor: #333;
-$headingTextShadow: none;
-$backgroundColor: #f7f3de;
-$linkColor: #8b743d;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: rgba(79, 64, 28, 0.99);
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( rgba(247,242,211,1), rgba(255,255,255,1) );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/blood.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/blood.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/blood.scss
+++ /dev/null
@@ -1,91 +0,0 @@
-/**
- * Blood theme for reveal.js
- * Author: Walther http://github.com/Walther
- *
- * Designed to be used with highlight.js theme
- * "monokai_sublime.css" available from
- * https://github.com/isagalaev/highlight.js/
- *
- * For other themes, change $codeBackground accordingly.
- *
- */
-
- // Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-// Include theme-specific fonts
-
-@import url(https://fonts.googleapis.com/css?family=Ubuntu:300,700,300italic,700italic);
-
-// Colors used in the theme
-$blood: #a23;
-$coal: #222;
-$codeBackground: #23241f;
-
-// Main text
-$mainFont: Ubuntu, 'sans-serif';
-$mainFontSize: 36px;
-$mainColor: #eee;
-
-// Headings
-$headingFont: Ubuntu, 'sans-serif';
-$headingTextShadow: 2px 2px 2px $coal;
-
-// h1 shadow, borrowed humbly from 
-// (c) Default theme by Hakim El Hattab
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Links
-$linkColor: $blood;
-$linkColorHover: lighten( $linkColor, 20% );
-
-// Text selection
-$selectionBackgroundColor: $blood;
-$selectionColor: #fff;
-
-// Background generator
-@mixin bodyBackground() {
-    @include radial-gradient( $coal, lighten( $coal, 25% ) );
-}
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
-
-// some overrides after theme template import
-
-.reveal p {
-    font-weight: 300;
-    text-shadow: 1px 1px $coal;
-}
-
-.reveal h1, 
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-    font-weight: 700;
-}
-
-.reveal a:not(.image),
-.reveal a:not(.image):hover {
-    text-shadow: 2px 2px 2px #000;
-}
-
-.reveal small a:not(.image),
-.reveal small a:not(.image):hover {
-    text-shadow: 1px 1px 1px #000;
-}
-
-.reveal p code {
-    background-color: $codeBackground;
-    display: inline-block;
-    border-radius: 7px;
-}
-
-.reveal small code {
-    vertical-align: baseline;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/default.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/default.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/default.scss
+++ /dev/null
@@ -1,42 +0,0 @@
-/**
- * Default theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-// Override theme settings (see ../template/settings.scss)
-$heading1TextShadow: 0 1px 0 #ccc, 0 2px 0 #c9c9c9, 0 3px 0 #bbb, 0 4px 0 #b9b9b9, 0 5px 0 #aaa, 0 6px 1px rgba(0,0,0,.1), 0 0 5px rgba(0,0,0,.1), 0 1px 3px rgba(0,0,0,.3), 0 3px 5px rgba(0,0,0,.2), 0 5px 10px rgba(0,0,0,.25), 0 20px 20px rgba(0,0,0,.15);
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( rgba(28,30,32,1), rgba(85,90,95,1) );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/moon.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/moon.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/moon.scss
+++ /dev/null
@@ -1,68 +0,0 @@
-/**
- * Solarized Dark theme for reveal.js.
- * Author: Achim Staebler
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-	color-profile: sRGB;
-	rendering-intent: auto;
-}
-
-// Solarized colors
-$base03:    #002b36;
-$base02:    #073642;
-$base01:    #586e75;
-$base00:    #657b83;
-$base0:     #839496;
-$base1:     #93a1a1;
-$base2:     #eee8d5;
-$base3:     #fdf6e3;
-$yellow:    #b58900;
-$orange:    #cb4b16;
-$red:       #dc322f;
-$magenta:   #d33682;
-$violet:    #6c71c4;
-$blue:      #268bd2;
-$cyan:      #2aa198;
-$green:     #859900;
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: $base1;
-$headingColor: $base2;
-$headingTextShadow: none;
-$backgroundColor: $base03;
-$linkColor: $blue;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: $magenta;
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/night.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/night.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/night.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * Black theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=Montserrat:700);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$backgroundColor: #111;
-
-$mainFont: 'Open Sans', sans-serif;
-$linkColor: #e7ad52;
-$linkColorHover: lighten( $linkColor, 20% );
-$headingFont: 'Montserrat', Impact, sans-serif;
-$headingTextShadow: none;
-$headingLetterSpacing: -0.03em;
-$headingTextTransform: none;
-$selectionBackgroundColor: #e7ad52;
-$mainFontSize: 30px;
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/serif.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/serif.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/serif.scss
+++ /dev/null
@@ -1,35 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
-$mainColor: #000;
-$headingFont: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
-$headingColor: #383D3D;
-$headingTextShadow: none;
-$headingTextTransform: none;
-$backgroundColor: #F0F1EB;
-$linkColor: #51483D;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: #26351C;
-
-.reveal a:not(.image) {
-  line-height: 1.3em;
-}
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/simple.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/simple.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/simple.scss
+++ /dev/null
@@ -1,38 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is darkblue.
- *
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=News+Cycle:400,700);
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Lato', sans-serif;
-$mainColor: #000;
-$headingFont: 'News Cycle', Impact, sans-serif;
-$headingColor: #000;
-$headingTextShadow: none;
-$headingTextTransform: none;
-$backgroundColor: #fff;
-$linkColor: #00008B;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: rgba(0, 0, 0, 0.99);
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/sky.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/sky.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/sky.scss
+++ /dev/null
@@ -1,46 +0,0 @@
-/**
- * Sky theme for reveal.js.
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@import url(https://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(https://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-
-
-// Override theme settings (see ../template/settings.scss)
-$mainFont: 'Open Sans', sans-serif;
-$mainColor: #333;
-$headingFont: 'Quicksand', sans-serif;
-$headingColor: #333;
-$headingLetterSpacing: -0.08em;
-$headingTextShadow: none;
-$backgroundColor: #f7fbfc;
-$linkColor: #3b759e;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: #134674;
-
-// Fix links so they are not cut off
-.reveal a:not(.image) {
-	line-height: 1.3em;
-}
-
-// Background generator
-@mixin bodyBackground() {
-	@include radial-gradient( #add9e4, #f7fbfc );
-}
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/source/solarized.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/source/solarized.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/source/solarized.scss
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * Solarized Light theme for reveal.js.
- * Author: Achim Staebler
- */
-
-
-// Default mixins and settings -----------------
-@import "../template/mixins";
-@import "../template/settings";
-// ---------------------------------------------
-
-
-
-// Include theme-specific fonts
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@import url(https://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic);
-
-
-/**
- * Solarized colors by Ethan Schoonover
- */
-html * {
-	color-profile: sRGB;
-	rendering-intent: auto;
-}
-
-// Solarized colors
-$base03:    #002b36;
-$base02:    #073642;
-$base01:    #586e75;
-$base00:    #657b83;
-$base0:     #839496;
-$base1:     #93a1a1;
-$base2:     #eee8d5;
-$base3:     #fdf6e3;
-$yellow:    #b58900;
-$orange:    #cb4b16;
-$red:       #dc322f;
-$magenta:   #d33682;
-$violet:    #6c71c4;
-$blue:      #268bd2;
-$cyan:      #2aa198;
-$green:     #859900;
-
-// Override theme settings (see ../template/settings.scss)
-$mainColor: $base00;
-$headingColor: $base01;
-$headingTextShadow: none;
-$backgroundColor: $base3;
-$linkColor: $blue;
-$linkColorHover: lighten( $linkColor, 20% );
-$selectionBackgroundColor: $magenta;
-
-// Background generator
-// @mixin bodyBackground() {
-// 	@include radial-gradient( rgba($base3,1), rgba(lighten($base3, 20%),1) );
-// }
-
-
-
-// Theme template ------------------------------
-@import "../template/theme";
-// ---------------------------------------------
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/template/mixins.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/template/mixins.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/template/mixins.scss
+++ /dev/null
@@ -1,29 +0,0 @@
-@mixin vertical-gradient( $top, $bottom ) {
-	background: $top;
-	background: -moz-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -webkit-gradient( linear, left top, left bottom, color-stop(0%,$top), color-stop(100%,$bottom) );
-	background: -webkit-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -o-linear-gradient( top, $top 0%, $bottom 100% );
-	background: -ms-linear-gradient( top, $top 0%, $bottom 100% );
-	background: linear-gradient( top, $top 0%, $bottom 100% );
-}
-
-@mixin horizontal-gradient( $top, $bottom ) {
-	background: $top;
-	background: -moz-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -webkit-gradient( linear, left top, right top, color-stop(0%,$top), color-stop(100%,$bottom) );
-	background: -webkit-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -o-linear-gradient( left, $top 0%, $bottom 100% );
-	background: -ms-linear-gradient( left, $top 0%, $bottom 100% );
-	background: linear-gradient( left, $top 0%, $bottom 100% );
-}
-
-@mixin radial-gradient( $outer, $inner, $type: circle ) {
-	background: $outer;
-	background: -moz-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -webkit-gradient( radial, center center, 0px, center center, 100%, color-stop(0%,$inner), color-stop(100%,$outer) );
-	background: -webkit-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -o-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: -ms-radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-	background: radial-gradient( center, $type cover,  $inner 0%, $outer 100% );
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/template/settings.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/template/settings.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/template/settings.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-// Base settings for all themes that can optionally be
-// overridden by the super-theme
-
-// Background of the presentation
-$backgroundColor: #2b2b2b;
-
-// Primary/body text
-$mainFont: 'Lato', sans-serif;
-$mainFontSize: 36px;
-$mainColor: #eee;
-
-// Headings
-$headingMargin: 0 0 20px 0;
-$headingFont: 'League Gothic', Impact, sans-serif;
-$headingColor: #eee;
-$headingLineHeight: 0.9em;
-$headingLetterSpacing: 0.02em;
-$headingTextTransform: uppercase;
-$headingTextShadow: 0px 0px 6px rgba(0,0,0,0.2);
-$heading1TextShadow: $headingTextShadow;
-
-// Links and actions
-$linkColor: #13DAEC;
-$linkColorHover: lighten( $linkColor, 20% );
-
-// Text selection
-$selectionBackgroundColor: #FF5E99;
-$selectionColor: #fff;
-
-// Generates the presentation background, can be overridden
-// to return a background image or gradient
-@mixin bodyBackground() {
-	background: $backgroundColor;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/css/theme/template/theme.scss b/docs/slides/IHP14/_support/reveal.js/css/theme/template/theme.scss
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/css/theme/template/theme.scss
+++ /dev/null
@@ -1,170 +0,0 @@
-// Base theme template for reveal.js
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	@include bodyBackground();
-	background-color: $backgroundColor;
-}
-
-.reveal {
-	font-family: $mainFont;
-	font-size: $mainFontSize;
-	font-weight: normal;
-	letter-spacing: -0.02em;
-	color: $mainColor;
-}
-
-::selection {
-	color: $selectionColor;
-	background: $selectionBackgroundColor;
-	text-shadow: none;
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-	margin: $headingMargin;
-	color: $headingColor;
-
-	font-family: $headingFont;
-	line-height: $headingLineHeight;
-	letter-spacing: $headingLetterSpacing;
-
-	text-transform: $headingTextTransform;
-	text-shadow: $headingTextShadow;
-}
-
-.reveal h1 {
-	text-shadow: $heading1TextShadow;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: $linkColor;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		color: $linkColorHover;
-
-		text-shadow: none;
-		border: none;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: darken( $linkColor, 15% );
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 15px 0px;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid $mainColor;
-
-	box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: $linkColor;
-
-		box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-	border-right-color: $linkColor;
-}
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-	border-left-color: $linkColor;
-}
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-	border-bottom-color: $linkColor;
-}
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-	border-top-color: $linkColor;
-}
-
-.reveal .controls div.navigate-left.enabled:hover {
-	border-right-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-right.enabled:hover {
-	border-left-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-up.enabled:hover {
-	border-bottom-color: $linkColorHover;
-}
-
-.reveal .controls div.navigate-down.enabled:hover {
-	border-top-color: $linkColorHover;
-}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: $linkColor;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: $linkColor;
-}
-
-
diff --git a/docs/slides/IHP14/_support/reveal.js/index.html b/docs/slides/IHP14/_support/reveal.js/index.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/index.html
+++ /dev/null
@@ -1,394 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - The HTML Presentation Framework</title>
-
-		<meta name="description" content="A framework for easily creating beautiful presentations using HTML">
-		<meta name="author" content="Hakim El Hattab">
-
-		<meta name="apple-mobile-web-app-capable" content="yes" />
-		<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="css/reveal.min.css">
-		<link rel="stylesheet" href="css/theme/default.css" id="theme">
-
-		<!-- For syntax highlighting -->
-		<link rel="stylesheet" href="lib/css/zenburn.css">
-
-		<!-- If the query includes 'print-pdf', include the PDF print sheet -->
-		<script>
-			if( window.location.search.match( /print-pdf/gi ) ) {
-				var link = document.createElement( 'link' );
-				link.rel = 'stylesheet';
-				link.type = 'text/css';
-				link.href = 'css/print/pdf.css';
-				document.getElementsByTagName( 'head' )[0].appendChild( link );
-			}
-		</script>
-
-		<!--[if lt IE 9]>
-		<script src="lib/js/html5shiv.js"></script>
-		<![endif]-->
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<!-- Any section element inside of this container is displayed as a slide -->
-			<div class="slides">
-				<section>
-					<h1>Reveal.js</h1>
-					<h3>HTML Presentations Made Easy</h3>
-					<p>
-						<small>Created by <a href="http://hakim.se">Hakim El Hattab</a> / <a href="http://twitter.com/hakimel">@hakimel</a></small>
-					</p>
-				</section>
-
-				<section>
-					<h2>Heads Up</h2>
-					<p>
-						reveal.js is a framework for easily creating beautiful presentations using HTML. You'll need a browser with
-						support for CSS 3D transforms to see it in its full glory.
-					</p>
-
-					<aside class="notes">
-						Oh hey, these are some notes. They'll be hidden in your presentation, but you can see them if you open the speaker notes window (hit 's' on your keyboard).
-					</aside>
-				</section>
-
-				<!-- Example of nested vertical slides -->
-				<section>
-					<section>
-						<h2>Vertical Slides</h2>
-						<p>
-							Slides can be nested inside of other slides,
-							try pressing <a href="#" class="navigate-down">down</a>.
-						</p>
-						<a href="#" class="image navigate-down">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 1</h2>
-						<p>Press down or up to navigate.</p>
-					</section>
-					<section>
-						<h2>Basement Level 2</h2>
-						<p>Cornify</p>
-						<a class="test" href="http://cornify.com">
-							<img width="280" height="326" src="https://s3.amazonaws.com/hakim-static/reveal-js/cornify.gif" alt="Unicorn">
-						</a>
-					</section>
-					<section>
-						<h2>Basement Level 3</h2>
-						<p>That's it, time to go back up.</p>
-						<a href="#/2" class="image">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Up arrow" style="-webkit-transform: rotate(180deg);">
-						</a>
-					</section>
-				</section>
-
-				<section>
-					<h2>Slides</h2>
-					<p>
-						Not a coder? No problem. There's a fully-featured visual editor for authoring these, try it out at <a href="http://slid.es" target="_blank">http://slid.es</a>.
-					</p>
-				</section>
-
-				<section>
-					<h2>Point of View</h2>
-					<p>
-						Press <strong>ESC</strong> to enter the slide overview.
-					</p>
-					<p>
-						Hold down alt and click on any element to zoom in on it using <a href="http://lab.hakim.se/zoom-js">zoom.js</a>. Alt + click anywhere to zoom back out.
-					</p>
-				</section>
-
-				<section>
-					<h2>Works in Mobile Safari</h2>
-					<p>
-						Try it out! You can swipe through the slides and pinch your way to the overview.
-					</p>
-				</section>
-
-				<section>
-					<h2>Marvelous Unordered List</h2>
-					<ul>
-						<li>No order here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-						<li>Or here</li>
-					</ul>
-				</section>
-
-				<section>
-					<h2>Fantastic Ordered List</h2>
-					<ol>
-						<li>One is smaller than...</li>
-						<li>Two is smaller than...</li>
-						<li>Three!</li>
-					</ol>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Markdown support
-
-						For those of you who like that sort of thing. Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
-
-						```
-						<section data-markdown>
-						  ## Markdown support
-
-						  For those of you who like that sort of thing.
-						  Instructions and a bit more info available [here](https://github.com/hakimel/reveal.js#markdown).
-						</section>
-						```
-					</script>
-				</section>
-
-				<section id="transitions">
-					<h2>Transition Styles</h2>
-					<p>
-						You can select from different transitions, like: <br>
-						<a href="?transition=cube#/transitions">Cube</a> -
-						<a href="?transition=page#/transitions">Page</a> -
-						<a href="?transition=concave#/transitions">Concave</a> -
-						<a href="?transition=zoom#/transitions">Zoom</a> -
-						<a href="?transition=linear#/transitions">Linear</a> -
-						<a href="?transition=fade#/transitions">Fade</a> -
-						<a href="?transition=none#/transitions">None</a> -
-						<a href="?#/transitions">Default</a>
-					</p>
-				</section>
-
-				<section id="themes">
-					<h2>Themes</h2>
-					<p>
-						Reveal.js comes with a few themes built in: <br>
-						<a href="?#/themes">Default</a> -
-						<a href="?theme=sky#/themes">Sky</a> -
-						<a href="?theme=beige#/themes">Beige</a> -
-						<a href="?theme=simple#/themes">Simple</a> -
-						<a href="?theme=serif#/themes">Serif</a> -
-						<a href="?theme=night#/themes">Night</a> <br>
-						<a href="?theme=moon#/themes">Moon</a> -
-						<a href="?theme=solarized#/themes">Solarized</a>
-					</p>
-					<p>
-						<small>
-							* Theme demos are loaded after the presentation which leads to flicker. In production you should load your theme in the <code>&lt;head&gt;</code> using a <code>&lt;link&gt;</code>.
-						</small>
-					</p>
-				</section>
-
-				<section>
-					<h2>Global State</h2>
-					<p>
-						Set <code>data-state="something"</code> on a slide and <code>"something"</code>
-						will be added as a class to the document element when the slide is open. This lets you
-						apply broader style changes, like switching the background.
-					</p>
-				</section>
-
-				<section data-state="customevent">
-					<h2>Custom Events</h2>
-					<p>
-						Additionally custom events can be triggered on a per slide basis by binding to the <code>data-state</code> name.
-					</p>
-					<pre><code data-trim contenteditable style="font-size: 18px; margin-top: 20px;">
-Reveal.addEventListener( 'customevent', function() {
-	console.log( '"customevent" has fired' );
-} );
-					</code></pre>
-				</section>
-
-				<section>
-					<section data-background="#007777">
-						<h2>Slide Backgrounds</h2>
-						<p>
-							Set <code>data-background="#007777"</code> on a slide to change the full page background to the given color. All CSS color formats are supported.
-						</p>
-						<a href="#" class="image navigate-down">
-							<img width="178" height="238" src="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" alt="Down arrow">
-						</a>
-					</section>
-					<section data-background="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png">
-						<h2>Image Backgrounds</h2>
-						<pre><code>&lt;section data-background="image.png"&gt;</code></pre>
-					</section>
-					<section data-background="https://s3.amazonaws.com/hakim-static/reveal-js/arrow.png" data-background-repeat="repeat" data-background-size="100px">
-						<h2>Repeated Image Backgrounds</h2>
-						<pre><code style="word-wrap: break-word;">&lt;section data-background="image.png" data-background-repeat="repeat" data-background-size="100px"&gt;</code></pre>
-					</section>
-				</section>
-
-				<section data-transition="linear" data-background="#4d7e65" data-background-transition="slide">
-					<h2>Background Transitions</h2>
-					<p>
-						Pass reveal.js the <code>backgroundTransition: 'slide'</code> config argument to make backgrounds slide rather than fade.
-					</p>
-				</section>
-
-				<section data-transition="linear" data-background="#8c4738" data-background-transition="slide">
-					<h2>Background Transition Override</h2>
-					<p>
-						You can override background transitions per slide by using <code>data-background-transition="slide"</code>.
-					</p>
-				</section>
-
-				<section>
-					<h2>Clever Quotes</h2>
-					<p>
-						These guys come in two forms, inline: <q cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						&ldquo;The nice thing about standards is that there are so many to choose from&rdquo;</q> and block:
-					</p>
-					<blockquote cite="http://searchservervirtualization.techtarget.com/definition/Our-Favorite-Technology-Quotations">
-						&ldquo;For years there has been a theory that millions of monkeys typing at random on millions of typewriters would
-						reproduce the entire works of Shakespeare. The Internet has proven this theory to be untrue.&rdquo;
-					</blockquote>
-				</section>
-
-				<section>
-					<h2>Pretty Code</h2>
-					<pre><code data-trim contenteditable>
-function linkify( selector ) {
-  if( supports3DTransforms ) {
-
-    var nodes = document.querySelectorAll( selector );
-
-    for( var i = 0, len = nodes.length; i &lt; len; i++ ) {
-      var node = nodes[i];
-
-      if( !node.className ) {
-        node.className += ' roll';
-      }
-    }
-  }
-}
-					</code></pre>
-					<p>Courtesy of <a href="http://softwaremaniacs.org/soft/highlight/en/description/">highlight.js</a>.</p>
-				</section>
-
-				<section>
-					<h2>Intergalactic Interconnections</h2>
-					<p>
-						You can link between slides internally,
-						<a href="#/2/3">like this</a>.
-					</p>
-				</section>
-
-				<section>
-					<section id="fragments">
-						<h2>Fragmented Views</h2>
-						<p>Hit the next arrow...</p>
-						<p class="fragment">... to step through ...</p>
-						<ol>
-							<li class="fragment"><code>any type</code></li>
-							<li class="fragment"><em>of view</em></li>
-							<li class="fragment"><strong>fragments</strong></li>
-						</ol>
-
-						<aside class="notes">
-							This slide has fragments which are also stepped through in the notes window.
-						</aside>
-					</section>
-					<section>
-						<h2>Fragment Styles</h2>
-						<p>There's a few styles of fragments, like:</p>
-						<p class="fragment grow">grow</p>
-						<p class="fragment shrink">shrink</p>
-						<p class="fragment roll-in">roll-in</p>
-						<p class="fragment fade-out">fade-out</p>
-						<p class="fragment highlight-red">highlight-red</p>
-						<p class="fragment highlight-green">highlight-green</p>
-						<p class="fragment highlight-blue">highlight-blue</p>
-						<p class="fragment current-visible">current-visible</p>
-						<p class="fragment highlight-current-blue">highlight-current-blue</p>
-					</section>
-				</section>
-
-				<section>
-					<h2>Spectacular image!</h2>
-					<a class="image" href="http://lab.hakim.se/meny/" target="_blank">
-						<img width="320" height="299" src="http://s3.amazonaws.com/hakim-static/portfolio/images/meny.png" alt="Meny">
-					</a>
-				</section>
-
-				<section>
-					<h2>Export to PDF</h2>
-					<p>Presentations can be <a href="https://github.com/hakimel/reveal.js#pdf-export">exported to PDF</a>, below is an example that's been uploaded to SlideShare.</p>
-					<iframe id="slideshare" src="http://www.slideshare.net/slideshow/embed_code/13872948" width="455" height="356" style="margin:0;overflow:hidden;border:1px solid #CCC;border-width:1px 1px 0;margin-bottom:5px" allowfullscreen> </iframe>
-					<script>
-						document.getElementById('slideshare').attributeName = 'allowfullscreen';
-					</script>
-				</section>
-
-				<section>
-					<h2>Take a Moment</h2>
-					<p>
-						Press b or period on your keyboard to enter the 'paused' mode. This mode is helpful when you want to take distracting slides off the screen
-						during a presentation.
-					</p>
-				</section>
-
-				<section>
-					<h2>Stellar Links</h2>
-					<ul>
-						<li><a href="http://slid.es">Try the online editor</a></li>
-						<li><a href="https://github.com/hakimel/reveal.js">Source code on GitHub</a></li>
-						<li><a href="http://twitter.com/hakimel">Follow me on Twitter</a></li>
-					</ul>
-				</section>
-
-				<section>
-					<h1>THE END</h1>
-					<h3>BY Hakim El Hattab / hakim.se</h3>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="lib/js/head.min.js"></script>
-		<script src="js/reveal.min.js"></script>
-
-		<script>
-
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
-			Reveal.initialize({
-				controls: true,
-				progress: true,
-				history: true,
-				center: true,
-
-				theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
-				transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-				// Parallax scrolling
-				// parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
-				// parallaxBackgroundSize: '2100px 900px',
-
-				// Optional libraries used to extend on reveal.js
-				dependencies: [
-					{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } },
-					{ src: 'plugin/markdown/marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'plugin/markdown/markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-					{ src: 'plugin/highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-					{ src: 'plugin/zoom-js/zoom.js', async: true, condition: function() { return !!document.body.classList; } },
-					{ src: 'plugin/notes/notes.js', async: true, condition: function() { return !!document.body.classList; } }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/js/reveal.js b/docs/slides/IHP14/_support/reveal.js/js/reveal.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/js/reveal.js
+++ /dev/null
@@ -1,3382 +0,0 @@
-/*!
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-var Reveal = (function(){
-
-	'use strict';
-
-	var SLIDES_SELECTOR = '.reveal .slides section',
-		HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section',
-		VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
-		HOME_SLIDE_SELECTOR = '.reveal .slides>section:first-of-type',
-
-		// Configurations defaults, can be overridden at initialization time
-		config = {
-
-			// The "normal" size of the presentation, aspect ratio will be preserved
-			// when the presentation is scaled to fit different resolutions
-			width: 960,
-			height: 700,
-
-			// Factor of the display size that should remain empty around the content
-			margin: 0.1,
-
-			// Bounds for smallest/largest possible scale to apply to content
-			minScale: 0.2,
-			maxScale: 1.0,
-
-			// Display controls in the bottom right corner
-			controls: true,
-
-			// Display a presentation progress bar
-			progress: true,
-
-			// Display the page number of the current slide
-			slideNumber: false,
-
-			// Push each slide change to the browser history
-			history: false,
-
-			// Enable keyboard shortcuts for navigation
-			keyboard: true,
-
-			// Enable the slide overview mode
-			overview: true,
-
-			// Vertical centering of slides
-			center: true,
-
-			// Enables touch navigation on devices with touch input
-			touch: true,
-
-			// Loop the presentation
-			loop: false,
-
-			// Change the presentation direction to be RTL
-			rtl: false,
-
-			// Turns fragments on and off globally
-			fragments: true,
-
-			// Flags if the presentation is running in an embedded mode,
-			// i.e. contained within a limited portion of the screen
-			embedded: false,
-
-			// Number of milliseconds between automatically proceeding to the
-			// next slide, disabled when set to 0, this value can be overwritten
-			// by using a data-autoslide attribute on your slides
-			autoSlide: 0,
-
-			// Stop auto-sliding after user input
-			autoSlideStoppable: true,
-
-			// Enable slide navigation via mouse wheel
-			mouseWheel: false,
-
-			// Apply a 3D roll to links on hover
-			rollingLinks: false,
-
-			// Hides the address bar on mobile devices
-			hideAddressBar: true,
-
-			// Opens links in an iframe preview overlay
-			previewLinks: false,
-
-			// Focuses body when page changes visiblity to ensure keyboard shortcuts work
-			focusBodyOnPageVisiblityChange: true,
-
-			// Theme (see /css/theme)
-			theme: null,
-
-			// Transition style
-			transition: 'default', // default/cube/page/concave/zoom/linear/fade/none
-
-			// Transition speed
-			transitionSpeed: 'default', // default/fast/slow
-
-			// Transition style for full page slide backgrounds
-			backgroundTransition: 'default', // default/linear/none
-
-			// Parallax background image
-			parallaxBackgroundImage: '', // CSS syntax, e.g. "a.jpg"
-
-			// Parallax background size
-			parallaxBackgroundSize: '', // CSS syntax, e.g. "3000px 2000px"
-
-			// Number of slides away from the current that are visible
-			viewDistance: 3,
-
-			// Script dependencies to load
-			dependencies: []
-
-		},
-
-		// Flags if reveal.js is loaded (has dispatched the 'ready' event)
-		loaded = false,
-
-		// The horizontal and vertical index of the currently active slide
-		indexh,
-		indexv,
-
-		// The previous and current slide HTML elements
-		previousSlide,
-		currentSlide,
-
-		previousBackground,
-
-		// Slides may hold a data-state attribute which we pick up and apply
-		// as a class to the body. This list contains the combined state of
-		// all current slides.
-		state = [],
-
-		// The current scale of the presentation (see width/height config)
-		scale = 1,
-
-		// Cached references to DOM elements
-		dom = {},
-
-		// Features supported by the browser, see #checkCapabilities()
-		features = {},
-
-		// Client is a mobile device, see #checkCapabilities()
-		isMobileDevice,
-
-		// Throttles mouse wheel navigation
-		lastMouseWheelStep = 0,
-
-		// Delays updates to the URL due to a Chrome thumbnailer bug
-		writeURLTimeout = 0,
-
-		// A delay used to activate the overview mode
-		activateOverviewTimeout = 0,
-
-		// A delay used to deactivate the overview mode
-		deactivateOverviewTimeout = 0,
-
-		// Flags if the interaction event listeners are bound
-		eventsAreBound = false,
-
-		// The current auto-slide duration
-		autoSlide = 0,
-
-		// Auto slide properties
-		autoSlidePlayer,
-		autoSlideTimeout = 0,
-		autoSlideStartTime = -1,
-		autoSlidePaused = false,
-
-		// Holds information about the currently ongoing touch input
-		touch = {
-			startX: 0,
-			startY: 0,
-			startSpan: 0,
-			startCount: 0,
-			captured: false,
-			threshold: 40
-		};
-
-	/**
-	 * Starts up the presentation if the client is capable.
-	 */
-	function initialize( options ) {
-
-		checkCapabilities();
-
-		if( !features.transforms2d && !features.transforms3d ) {
-			document.body.setAttribute( 'class', 'no-transforms' );
-
-			// If the browser doesn't support core features we won't be
-			// using JavaScript to control the presentation
-			return;
-		}
-
-		// Force a layout when the whole page, incl fonts, has loaded
-		window.addEventListener( 'load', layout, false );
-
-		var query = Reveal.getQueryHash();
-
-		// Do not accept new dependencies via query config to avoid
-		// the potential of malicious script injection
-		if( typeof query['dependencies'] !== 'undefined' ) delete query['dependencies'];
-
-		// Copy options over to our config object
-		extend( config, options );
-		extend( config, query );
-
-		// Hide the address bar in mobile browsers
-		hideAddressBar();
-
-		// Loads the dependencies and continues to #start() once done
-		load();
-
-	}
-
-	/**
-	 * Inspect the client to see what it's capable of, this
-	 * should only happens once per runtime.
-	 */
-	function checkCapabilities() {
-
-		features.transforms3d = 'WebkitPerspective' in document.body.style ||
-								'MozPerspective' in document.body.style ||
-								'msPerspective' in document.body.style ||
-								'OPerspective' in document.body.style ||
-								'perspective' in document.body.style;
-
-		features.transforms2d = 'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-		features.requestAnimationFrameMethod = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame;
-		features.requestAnimationFrame = typeof features.requestAnimationFrameMethod === 'function';
-
-		features.canvas = !!document.createElement( 'canvas' ).getContext;
-
-		isMobileDevice = navigator.userAgent.match( /(iphone|ipod|android)/gi );
-
-	}
-
-
-    /**
-     * Loads the dependencies of reveal.js. Dependencies are
-     * defined via the configuration option 'dependencies'
-     * and will be loaded prior to starting/binding reveal.js.
-     * Some dependencies may have an 'async' flag, if so they
-     * will load after reveal.js has been started up.
-     */
-	function load() {
-
-		var scripts = [],
-			scriptsAsync = [],
-			scriptsToPreload = 0;
-
-		// Called once synchronous scripts finish loading
-		function proceed() {
-			if( scriptsAsync.length ) {
-				// Load asynchronous scripts
-				head.js.apply( null, scriptsAsync );
-			}
-
-			start();
-		}
-
-		function loadScript( s ) {
-			head.ready( s.src.match( /([\w\d_\-]*)\.?js$|[^\\\/]*$/i )[0], function() {
-				// Extension may contain callback functions
-				if( typeof s.callback === 'function' ) {
-					s.callback.apply( this );
-				}
-
-				if( --scriptsToPreload === 0 ) {
-					proceed();
-				}
-			});
-		}
-
-		for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
-			var s = config.dependencies[i];
-
-			// Load if there's no condition or the condition is truthy
-			if( !s.condition || s.condition() ) {
-				if( s.async ) {
-					scriptsAsync.push( s.src );
-				}
-				else {
-					scripts.push( s.src );
-				}
-
-				loadScript( s );
-			}
-		}
-
-		if( scripts.length ) {
-			scriptsToPreload = scripts.length;
-
-			// Load synchronous scripts
-			head.js.apply( null, scripts );
-		}
-		else {
-			proceed();
-		}
-
-	}
-
-	/**
-	 * Starts up reveal.js by binding input events and navigating
-	 * to the current URL deeplink if there is one.
-	 */
-	function start() {
-
-		// Make sure we've got all the DOM elements we need
-		setupDOM();
-
-		// Resets all vertical slides so that only the first is visible
-		resetVerticalSlides();
-
-		// Updates the presentation to match the current configuration values
-		configure();
-
-		// Read the initial hash
-		readURL();
-
-		// Update all backgrounds
-		updateBackground( true );
-
-		// Notify listeners that the presentation is ready but use a 1ms
-		// timeout to ensure it's not fired synchronously after #initialize()
-		setTimeout( function() {
-			// Enable transitions now that we're loaded
-			dom.slides.classList.remove( 'no-transition' );
-
-			loaded = true;
-
-			dispatchEvent( 'ready', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'currentSlide': currentSlide
-			} );
-		}, 1 );
-
-	}
-
-	/**
-	 * Finds and stores references to DOM elements which are
-	 * required by the presentation. If a required element is
-	 * not found, it is created.
-	 */
-	function setupDOM() {
-
-		// Cache references to key DOM elements
-		dom.theme = document.querySelector( '#theme' );
-		dom.wrapper = document.querySelector( '.reveal' );
-		dom.slides = document.querySelector( '.reveal .slides' );
-
-		// Prevent transitions while we're loading
-		dom.slides.classList.add( 'no-transition' );
-
-		// Background element
-		dom.background = createSingletonNode( dom.wrapper, 'div', 'backgrounds', null );
-
-		// Progress bar
-		dom.progress = createSingletonNode( dom.wrapper, 'div', 'progress', '<span></span>' );
-		dom.progressbar = dom.progress.querySelector( 'span' );
-
-		// Arrow controls
-		createSingletonNode( dom.wrapper, 'aside', 'controls',
-			'<div class="navigate-left"></div>' +
-			'<div class="navigate-right"></div>' +
-			'<div class="navigate-up"></div>' +
-			'<div class="navigate-down"></div>' );
-
-		// Slide number
-		dom.slideNumber = createSingletonNode( dom.wrapper, 'div', 'slide-number', '' );
-
-		// State background element [DEPRECATED]
-		createSingletonNode( dom.wrapper, 'div', 'state-background', null );
-
-		// Overlay graphic which is displayed during the paused mode
-		createSingletonNode( dom.wrapper, 'div', 'pause-overlay', null );
-
-		// Cache references to elements
-		dom.controls = document.querySelector( '.reveal .controls' );
-
-		// There can be multiple instances of controls throughout the page
-		dom.controlsLeft = toArray( document.querySelectorAll( '.navigate-left' ) );
-		dom.controlsRight = toArray( document.querySelectorAll( '.navigate-right' ) );
-		dom.controlsUp = toArray( document.querySelectorAll( '.navigate-up' ) );
-		dom.controlsDown = toArray( document.querySelectorAll( '.navigate-down' ) );
-		dom.controlsPrev = toArray( document.querySelectorAll( '.navigate-prev' ) );
-		dom.controlsNext = toArray( document.querySelectorAll( '.navigate-next' ) );
-
-	}
-
-	/**
-	 * Creates an HTML element and returns a reference to it.
-	 * If the element already exists the existing instance will
-	 * be returned.
-	 */
-	function createSingletonNode( container, tagname, classname, innerHTML ) {
-
-		var node = container.querySelector( '.' + classname );
-		if( !node ) {
-			node = document.createElement( tagname );
-			node.classList.add( classname );
-			if( innerHTML !== null ) {
-				node.innerHTML = innerHTML;
-			}
-			container.appendChild( node );
-		}
-		return node;
-
-	}
-
-	/**
-	 * Creates the slide background elements and appends them
-	 * to the background container. One element is created per
-	 * slide no matter if the given slide has visible background.
-	 */
-	function createBackgrounds() {
-
-		if( isPrintingPDF() ) {
-			document.body.classList.add( 'print-pdf' );
-		}
-
-		// Clear prior backgrounds
-		dom.background.innerHTML = '';
-		dom.background.classList.add( 'no-transition' );
-
-		// Helper method for creating a background element for the
-		// given slide
-		function _createBackground( slide, container ) {
-
-			var data = {
-				background: slide.getAttribute( 'data-background' ),
-				backgroundSize: slide.getAttribute( 'data-background-size' ),
-				backgroundImage: slide.getAttribute( 'data-background-image' ),
-				backgroundColor: slide.getAttribute( 'data-background-color' ),
-				backgroundRepeat: slide.getAttribute( 'data-background-repeat' ),
-				backgroundPosition: slide.getAttribute( 'data-background-position' ),
-				backgroundTransition: slide.getAttribute( 'data-background-transition' )
-			};
-
-			var element = document.createElement( 'div' );
-			element.className = 'slide-background';
-
-			if( data.background ) {
-				// Auto-wrap image urls in url(...)
-				if( /^(http|file|\/\/)/gi.test( data.background ) || /\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test( data.background ) ) {
-					element.style.backgroundImage = 'url('+ data.background +')';
-				}
-				else {
-					element.style.background = data.background;
-				}
-			}
-
-			if( data.background || data.backgroundColor || data.backgroundImage ) {
-				element.setAttribute( 'data-background-hash', data.background + data.backgroundSize + data.backgroundImage + data.backgroundColor + data.backgroundRepeat + data.backgroundPosition + data.backgroundTransition );
-			}
-
-			// Additional and optional background properties
-			if( data.backgroundSize ) element.style.backgroundSize = data.backgroundSize;
-			if( data.backgroundImage ) element.style.backgroundImage = 'url("' + data.backgroundImage + '")';
-			if( data.backgroundColor ) element.style.backgroundColor = data.backgroundColor;
-			if( data.backgroundRepeat ) element.style.backgroundRepeat = data.backgroundRepeat;
-			if( data.backgroundPosition ) element.style.backgroundPosition = data.backgroundPosition;
-			if( data.backgroundTransition ) element.setAttribute( 'data-background-transition', data.backgroundTransition );
-
-			container.appendChild( element );
-
-			return element;
-
-		}
-
-		// Iterate over all horizontal slides
-		toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).forEach( function( slideh ) {
-
-			var backgroundStack;
-
-			if( isPrintingPDF() ) {
-				backgroundStack = _createBackground( slideh, slideh );
-			}
-			else {
-				backgroundStack = _createBackground( slideh, dom.background );
-			}
-
-			// Iterate over all vertical slides
-			toArray( slideh.querySelectorAll( 'section' ) ).forEach( function( slidev ) {
-
-				if( isPrintingPDF() ) {
-					_createBackground( slidev, slidev );
-				}
-				else {
-					_createBackground( slidev, backgroundStack );
-				}
-
-			} );
-
-		} );
-
-		// Add parallax background if specified
-		if( config.parallaxBackgroundImage ) {
-
-			dom.background.style.backgroundImage = 'url("' + config.parallaxBackgroundImage + '")';
-			dom.background.style.backgroundSize = config.parallaxBackgroundSize;
-
-			// Make sure the below properties are set on the element - these properties are
-			// needed for proper transitions to be set on the element via CSS. To remove
-			// annoying background slide-in effect when the presentation starts, apply
-			// these properties after short time delay
-			setTimeout( function() {
-				dom.wrapper.classList.add( 'has-parallax-background' );
-			}, 1 );
-
-		}
-		else {
-
-			dom.background.style.backgroundImage = '';
-			dom.wrapper.classList.remove( 'has-parallax-background' );
-
-		}
-
-	}
-
-	/**
-	 * Applies the configuration settings from the config
-	 * object. May be called multiple times.
-	 */
-	function configure( options ) {
-
-		var numberOfSlides = document.querySelectorAll( SLIDES_SELECTOR ).length;
-
-		dom.wrapper.classList.remove( config.transition );
-
-		// New config options may be passed when this method
-		// is invoked through the API after initialization
-		if( typeof options === 'object' ) extend( config, options );
-
-		// Force linear transition based on browser capabilities
-		if( features.transforms3d === false ) config.transition = 'linear';
-
-		dom.wrapper.classList.add( config.transition );
-
-		dom.wrapper.setAttribute( 'data-transition-speed', config.transitionSpeed );
-		dom.wrapper.setAttribute( 'data-background-transition', config.backgroundTransition );
-
-		dom.controls.style.display = config.controls ? 'block' : 'none';
-		dom.progress.style.display = config.progress ? 'block' : 'none';
-
-		if( config.rtl ) {
-			dom.wrapper.classList.add( 'rtl' );
-		}
-		else {
-			dom.wrapper.classList.remove( 'rtl' );
-		}
-
-		if( config.center ) {
-			dom.wrapper.classList.add( 'center' );
-		}
-		else {
-			dom.wrapper.classList.remove( 'center' );
-		}
-
-		if( config.mouseWheel ) {
-			document.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.addEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-		else {
-			document.removeEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.removeEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-
-		// Rolling 3D links
-		if( config.rollingLinks ) {
-			enableRollingLinks();
-		}
-		else {
-			disableRollingLinks();
-		}
-
-		// Iframe link previews
-		if( config.previewLinks ) {
-			enablePreviewLinks();
-		}
-		else {
-			disablePreviewLinks();
-			enablePreviewLinks( '[data-preview-link]' );
-		}
-
-		// Auto-slide playback controls
-		if( numberOfSlides > 1 && config.autoSlide && config.autoSlideStoppable && features.canvas && features.requestAnimationFrame ) {
-			autoSlidePlayer = new Playback( dom.wrapper, function() {
-				return Math.min( Math.max( ( Date.now() - autoSlideStartTime ) / autoSlide, 0 ), 1 );
-			} );
-
-			autoSlidePlayer.on( 'click', onAutoSlidePlayerClick );
-			autoSlidePaused = false;
-		}
-		else if( autoSlidePlayer ) {
-			autoSlidePlayer.destroy();
-			autoSlidePlayer = null;
-		}
-
-		// Load the theme in the config, if it's not already loaded
-		if( config.theme && dom.theme ) {
-			var themeURL = dom.theme.getAttribute( 'href' );
-			var themeFinder = /[^\/]*?(?=\.css)/;
-			var themeName = themeURL.match(themeFinder)[0];
-
-			if(  config.theme !== themeName ) {
-				themeURL = themeURL.replace(themeFinder, config.theme);
-				dom.theme.setAttribute( 'href', themeURL );
-			}
-		}
-
-		sync();
-
-	}
-
-	/**
-	 * Binds all event listeners.
-	 */
-	function addEventListeners() {
-
-		eventsAreBound = true;
-
-		window.addEventListener( 'hashchange', onWindowHashChange, false );
-		window.addEventListener( 'resize', onWindowResize, false );
-
-		if( config.touch ) {
-			dom.wrapper.addEventListener( 'touchstart', onTouchStart, false );
-			dom.wrapper.addEventListener( 'touchmove', onTouchMove, false );
-			dom.wrapper.addEventListener( 'touchend', onTouchEnd, false );
-
-			// Support pointer-style touch interaction as well
-			if( window.navigator.msPointerEnabled ) {
-				dom.wrapper.addEventListener( 'MSPointerDown', onPointerDown, false );
-				dom.wrapper.addEventListener( 'MSPointerMove', onPointerMove, false );
-				dom.wrapper.addEventListener( 'MSPointerUp', onPointerUp, false );
-			}
-		}
-
-		if( config.keyboard ) {
-			document.addEventListener( 'keydown', onDocumentKeyDown, false );
-		}
-
-		if( config.progress && dom.progress ) {
-			dom.progress.addEventListener( 'click', onProgressClicked, false );
-		}
-
-		if( config.focusBodyOnPageVisiblityChange ) {
-			var visibilityChange;
-
-			if( 'hidden' in document ) {
-				visibilityChange = 'visibilitychange';
-			}
-			else if( 'msHidden' in document ) {
-				visibilityChange = 'msvisibilitychange';
-			}
-			else if( 'webkitHidden' in document ) {
-				visibilityChange = 'webkitvisibilitychange';
-			}
-
-			if( visibilityChange ) {
-				document.addEventListener( visibilityChange, onPageVisibilityChange, false );
-			}
-		}
-
-		[ 'touchstart', 'click' ].forEach( function( eventName ) {
-			dom.controlsLeft.forEach( function( el ) { el.addEventListener( eventName, onNavigateLeftClicked, false ); } );
-			dom.controlsRight.forEach( function( el ) { el.addEventListener( eventName, onNavigateRightClicked, false ); } );
-			dom.controlsUp.forEach( function( el ) { el.addEventListener( eventName, onNavigateUpClicked, false ); } );
-			dom.controlsDown.forEach( function( el ) { el.addEventListener( eventName, onNavigateDownClicked, false ); } );
-			dom.controlsPrev.forEach( function( el ) { el.addEventListener( eventName, onNavigatePrevClicked, false ); } );
-			dom.controlsNext.forEach( function( el ) { el.addEventListener( eventName, onNavigateNextClicked, false ); } );
-		} );
-
-	}
-
-	/**
-	 * Unbinds all event listeners.
-	 */
-	function removeEventListeners() {
-
-		eventsAreBound = false;
-
-		document.removeEventListener( 'keydown', onDocumentKeyDown, false );
-		window.removeEventListener( 'hashchange', onWindowHashChange, false );
-		window.removeEventListener( 'resize', onWindowResize, false );
-
-		dom.wrapper.removeEventListener( 'touchstart', onTouchStart, false );
-		dom.wrapper.removeEventListener( 'touchmove', onTouchMove, false );
-		dom.wrapper.removeEventListener( 'touchend', onTouchEnd, false );
-
-		if( window.navigator.msPointerEnabled ) {
-			dom.wrapper.removeEventListener( 'MSPointerDown', onPointerDown, false );
-			dom.wrapper.removeEventListener( 'MSPointerMove', onPointerMove, false );
-			dom.wrapper.removeEventListener( 'MSPointerUp', onPointerUp, false );
-		}
-
-		if ( config.progress && dom.progress ) {
-			dom.progress.removeEventListener( 'click', onProgressClicked, false );
-		}
-
-		[ 'touchstart', 'click' ].forEach( function( eventName ) {
-			dom.controlsLeft.forEach( function( el ) { el.removeEventListener( eventName, onNavigateLeftClicked, false ); } );
-			dom.controlsRight.forEach( function( el ) { el.removeEventListener( eventName, onNavigateRightClicked, false ); } );
-			dom.controlsUp.forEach( function( el ) { el.removeEventListener( eventName, onNavigateUpClicked, false ); } );
-			dom.controlsDown.forEach( function( el ) { el.removeEventListener( eventName, onNavigateDownClicked, false ); } );
-			dom.controlsPrev.forEach( function( el ) { el.removeEventListener( eventName, onNavigatePrevClicked, false ); } );
-			dom.controlsNext.forEach( function( el ) { el.removeEventListener( eventName, onNavigateNextClicked, false ); } );
-		} );
-
-	}
-
-	/**
-	 * Extend object a with the properties of object b.
-	 * If there's a conflict, object b takes precedence.
-	 */
-	function extend( a, b ) {
-
-		for( var i in b ) {
-			a[ i ] = b[ i ];
-		}
-
-	}
-
-	/**
-	 * Converts the target object to an array.
-	 */
-	function toArray( o ) {
-
-		return Array.prototype.slice.call( o );
-
-	}
-
-	/**
-	 * Measures the distance in pixels between point a
-	 * and point b.
-	 *
-	 * @param {Object} a point with x/y properties
-	 * @param {Object} b point with x/y properties
-	 */
-	function distanceBetween( a, b ) {
-
-		var dx = a.x - b.x,
-			dy = a.y - b.y;
-
-		return Math.sqrt( dx*dx + dy*dy );
-
-	}
-
-	/**
-	 * Applies a CSS transform to the target element.
-	 */
-	function transformElement( element, transform ) {
-
-		element.style.WebkitTransform = transform;
-		element.style.MozTransform = transform;
-		element.style.msTransform = transform;
-		element.style.OTransform = transform;
-		element.style.transform = transform;
-
-	}
-
-	/**
-	 * Retrieves the height of the given element by looking
-	 * at the position and height of its immediate children.
-	 */
-	function getAbsoluteHeight( element ) {
-
-		var height = 0;
-
-		if( element ) {
-			var absoluteChildren = 0;
-
-			toArray( element.childNodes ).forEach( function( child ) {
-
-				if( typeof child.offsetTop === 'number' && child.style ) {
-					// Count # of abs children
-					if( child.style.position === 'absolute' ) {
-						absoluteChildren += 1;
-					}
-
-					height = Math.max( height, child.offsetTop + child.offsetHeight );
-				}
-
-			} );
-
-			// If there are no absolute children, use offsetHeight
-			if( absoluteChildren === 0 ) {
-				height = element.offsetHeight;
-			}
-
-		}
-
-		return height;
-
-	}
-
-	/**
-	 * Returns the remaining height within the parent of the
-	 * target element after subtracting the height of all
-	 * siblings.
-	 *
-	 * remaining height = [parent height] - [ siblings height]
-	 */
-	function getRemainingHeight( element, height ) {
-
-		height = height || 0;
-
-		if( element ) {
-			var parent = element.parentNode;
-			var siblings = parent.childNodes;
-
-			// Subtract the height of each sibling
-			toArray( siblings ).forEach( function( sibling ) {
-
-				if( typeof sibling.offsetHeight === 'number' && sibling !== element ) {
-
-					var styles = window.getComputedStyle( sibling ),
-						marginTop = parseInt( styles.marginTop, 10 ),
-						marginBottom = parseInt( styles.marginBottom, 10 );
-
-					height -= sibling.offsetHeight + marginTop + marginBottom;
-
-				}
-
-			} );
-
-			var elementStyles = window.getComputedStyle( element );
-
-			// Subtract the margins of the target element
-			height -= parseInt( elementStyles.marginTop, 10 ) +
-						parseInt( elementStyles.marginBottom, 10 );
-
-		}
-
-		return height;
-
-	}
-
-	/**
-	 * Checks if this instance is being used to print a PDF.
-	 */
-	function isPrintingPDF() {
-
-		return ( /print-pdf/gi ).test( window.location.search );
-
-	}
-
-	/**
-	 * Hides the address bar if we're on a mobile device.
-	 */
-	function hideAddressBar() {
-
-		if( config.hideAddressBar && isMobileDevice ) {
-			// Events that should trigger the address bar to hide
-			window.addEventListener( 'load', removeAddressBar, false );
-			window.addEventListener( 'orientationchange', removeAddressBar, false );
-		}
-
-	}
-
-	/**
-	 * Causes the address bar to hide on mobile devices,
-	 * more vertical space ftw.
-	 */
-	function removeAddressBar() {
-
-		setTimeout( function() {
-			window.scrollTo( 0, 1 );
-		}, 10 );
-
-	}
-
-	/**
-	 * Dispatches an event of the specified type from the
-	 * reveal DOM element.
-	 */
-	function dispatchEvent( type, properties ) {
-
-		var event = document.createEvent( "HTMLEvents", 1, 2 );
-		event.initEvent( type, true, true );
-		extend( event, properties );
-		dom.wrapper.dispatchEvent( event );
-
-	}
-
-	/**
-	 * Wrap all links in 3D goodness.
-	 */
-	function enableRollingLinks() {
-
-		if( features.transforms3d && !( 'msPerspective' in document.body.style ) ) {
-			var anchors = document.querySelectorAll( SLIDES_SELECTOR + ' a:not(.image)' );
-
-			for( var i = 0, len = anchors.length; i < len; i++ ) {
-				var anchor = anchors[i];
-
-				if( anchor.textContent && !anchor.querySelector( '*' ) && ( !anchor.className || !anchor.classList.contains( anchor, 'roll' ) ) ) {
-					var span = document.createElement('span');
-					span.setAttribute('data-title', anchor.text);
-					span.innerHTML = anchor.innerHTML;
-
-					anchor.classList.add( 'roll' );
-					anchor.innerHTML = '';
-					anchor.appendChild(span);
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * Unwrap all 3D links.
-	 */
-	function disableRollingLinks() {
-
-		var anchors = document.querySelectorAll( SLIDES_SELECTOR + ' a.roll' );
-
-		for( var i = 0, len = anchors.length; i < len; i++ ) {
-			var anchor = anchors[i];
-			var span = anchor.querySelector( 'span' );
-
-			if( span ) {
-				anchor.classList.remove( 'roll' );
-				anchor.innerHTML = span.innerHTML;
-			}
-		}
-
-	}
-
-	/**
-	 * Bind preview frame links.
-	 */
-	function enablePreviewLinks( selector ) {
-
-		var anchors = toArray( document.querySelectorAll( selector ? selector : 'a' ) );
-
-		anchors.forEach( function( element ) {
-			if( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {
-				element.addEventListener( 'click', onPreviewLinkClicked, false );
-			}
-		} );
-
-	}
-
-	/**
-	 * Unbind preview frame links.
-	 */
-	function disablePreviewLinks() {
-
-		var anchors = toArray( document.querySelectorAll( 'a' ) );
-
-		anchors.forEach( function( element ) {
-			if( /^(http|www)/gi.test( element.getAttribute( 'href' ) ) ) {
-				element.removeEventListener( 'click', onPreviewLinkClicked, false );
-			}
-		} );
-
-	}
-
-	/**
-	 * Opens a preview window for the target URL.
-	 */
-	function openPreview( url ) {
-
-		closePreview();
-
-		dom.preview = document.createElement( 'div' );
-		dom.preview.classList.add( 'preview-link-overlay' );
-		dom.wrapper.appendChild( dom.preview );
-
-		dom.preview.innerHTML = [
-			'<header>',
-				'<a class="close" href="#"><span class="icon"></span></a>',
-				'<a class="external" href="'+ url +'" target="_blank"><span class="icon"></span></a>',
-			'</header>',
-			'<div class="spinner"></div>',
-			'<div class="viewport">',
-				'<iframe src="'+ url +'"></iframe>',
-			'</div>'
-		].join('');
-
-		dom.preview.querySelector( 'iframe' ).addEventListener( 'load', function( event ) {
-			dom.preview.classList.add( 'loaded' );
-		}, false );
-
-		dom.preview.querySelector( '.close' ).addEventListener( 'click', function( event ) {
-			closePreview();
-			event.preventDefault();
-		}, false );
-
-		dom.preview.querySelector( '.external' ).addEventListener( 'click', function( event ) {
-			closePreview();
-		}, false );
-
-		setTimeout( function() {
-			dom.preview.classList.add( 'visible' );
-		}, 1 );
-
-	}
-
-	/**
-	 * Closes the iframe preview window.
-	 */
-	function closePreview() {
-
-		if( dom.preview ) {
-			dom.preview.setAttribute( 'src', '' );
-			dom.preview.parentNode.removeChild( dom.preview );
-			dom.preview = null;
-		}
-
-	}
-
-	/**
-	 * Applies JavaScript-controlled layout rules to the
-	 * presentation.
-	 */
-	function layout() {
-
-		if( dom.wrapper && !isPrintingPDF() ) {
-
-			// Available space to scale within
-			var availableWidth = dom.wrapper.offsetWidth,
-				availableHeight = dom.wrapper.offsetHeight;
-
-			// Reduce available space by margin
-			availableWidth -= ( availableHeight * config.margin );
-			availableHeight -= ( availableHeight * config.margin );
-
-			// Dimensions of the content
-			var slideWidth = config.width,
-				slideHeight = config.height,
-				slidePadding = 20; // TODO Dig this out of DOM
-
-			// Layout the contents of the slides
-			layoutSlideContents( config.width, config.height, slidePadding );
-
-			// Slide width may be a percentage of available width
-			if( typeof slideWidth === 'string' && /%$/.test( slideWidth ) ) {
-				slideWidth = parseInt( slideWidth, 10 ) / 100 * availableWidth;
-			}
-
-			// Slide height may be a percentage of available height
-			if( typeof slideHeight === 'string' && /%$/.test( slideHeight ) ) {
-				slideHeight = parseInt( slideHeight, 10 ) / 100 * availableHeight;
-			}
-
-			dom.slides.style.width = slideWidth + 'px';
-			dom.slides.style.height = slideHeight + 'px';
-
-			// Determine scale of content to fit within available space
-			scale = Math.min( availableWidth / slideWidth, availableHeight / slideHeight );
-
-			// Respect max/min scale settings
-			scale = Math.max( scale, config.minScale );
-			scale = Math.min( scale, config.maxScale );
-
-			// Prefer applying scale via zoom since Chrome blurs scaled content
-			// with nested transforms
-			if( typeof dom.slides.style.zoom !== 'undefined' && !navigator.userAgent.match( /(iphone|ipod|ipad|android)/gi ) ) {
-				dom.slides.style.zoom = scale;
-			}
-			// Apply scale transform as a fallback
-			else {
-				transformElement( dom.slides, 'translate(-50%, -50%) scale('+ scale +') translate(50%, 50%)' );
-			}
-
-			// Select all slides, vertical and horizontal
-			var slides = toArray( document.querySelectorAll( SLIDES_SELECTOR ) );
-
-			for( var i = 0, len = slides.length; i < len; i++ ) {
-				var slide = slides[ i ];
-
-				// Don't bother updating invisible slides
-				if( slide.style.display === 'none' ) {
-					continue;
-				}
-
-				if( config.center || slide.classList.contains( 'center' ) ) {
-					// Vertical stacks are not centred since their section
-					// children will be
-					if( slide.classList.contains( 'stack' ) ) {
-						slide.style.top = 0;
-					}
-					else {
-						slide.style.top = Math.max( - ( getAbsoluteHeight( slide ) / 2 ) - slidePadding, -slideHeight / 2 ) + 'px';
-					}
-				}
-				else {
-					slide.style.top = '';
-				}
-
-			}
-
-			updateProgress();
-			updateParallax();
-
-		}
-
-	}
-
-	/**
-	 * Applies layout logic to the contents of all slides in
-	 * the presentation.
-	 */
-	function layoutSlideContents( width, height, padding ) {
-
-		// Handle sizing of elements with the 'stretch' class
-		toArray( dom.slides.querySelectorAll( 'section > .stretch' ) ).forEach( function( element ) {
-
-			// Determine how much vertical space we can use
-			var remainingHeight = getRemainingHeight( element, ( height - ( padding * 2 ) ) );
-
-			// Consider the aspect ratio of media elements
-			if( /(img|video)/gi.test( element.nodeName ) ) {
-				var nw = element.naturalWidth || element.videoWidth,
-					nh = element.naturalHeight || element.videoHeight;
-
-				var es = Math.min( width / nw, remainingHeight / nh );
-
-				element.style.width = ( nw * es ) + 'px';
-				element.style.height = ( nh * es ) + 'px';
-
-			}
-			else {
-				element.style.width = width + 'px';
-				element.style.height = remainingHeight + 'px';
-			}
-
-		} );
-
-	}
-
-	/**
-	 * Stores the vertical index of a stack so that the same
-	 * vertical slide can be selected when navigating to and
-	 * from the stack.
-	 *
-	 * @param {HTMLElement} stack The vertical stack element
-	 * @param {int} v Index to memorize
-	 */
-	function setPreviousVerticalIndex( stack, v ) {
-
-		if( typeof stack === 'object' && typeof stack.setAttribute === 'function' ) {
-			stack.setAttribute( 'data-previous-indexv', v || 0 );
-		}
-
-	}
-
-	/**
-	 * Retrieves the vertical index which was stored using
-	 * #setPreviousVerticalIndex() or 0 if no previous index
-	 * exists.
-	 *
-	 * @param {HTMLElement} stack The vertical stack element
-	 */
-	function getPreviousVerticalIndex( stack ) {
-
-		if( typeof stack === 'object' && typeof stack.setAttribute === 'function' && stack.classList.contains( 'stack' ) ) {
-			// Prefer manually defined start-indexv
-			var attributeName = stack.hasAttribute( 'data-start-indexv' ) ? 'data-start-indexv' : 'data-previous-indexv';
-
-			return parseInt( stack.getAttribute( attributeName ) || 0, 10 );
-		}
-
-		return 0;
-
-	}
-
-	/**
-	 * Displays the overview of slides (quick nav) by
-	 * scaling down and arranging all slide elements.
-	 *
-	 * Experimental feature, might be dropped if perf
-	 * can't be improved.
-	 */
-	function activateOverview() {
-
-		// Only proceed if enabled in config
-		if( config.overview ) {
-
-			// Don't auto-slide while in overview mode
-			cancelAutoSlide();
-
-			var wasActive = dom.wrapper.classList.contains( 'overview' );
-
-			// Vary the depth of the overview based on screen size
-			var depth = window.innerWidth < 400 ? 1000 : 2500;
-
-			dom.wrapper.classList.add( 'overview' );
-			dom.wrapper.classList.remove( 'overview-deactivating' );
-
-			clearTimeout( activateOverviewTimeout );
-			clearTimeout( deactivateOverviewTimeout );
-
-			// Not the pretties solution, but need to let the overview
-			// class apply first so that slides are measured accurately
-			// before we can position them
-			activateOverviewTimeout = setTimeout( function() {
-
-				var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-				for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) {
-					var hslide = horizontalSlides[i],
-						hoffset = config.rtl ? -105 : 105;
-
-					hslide.setAttribute( 'data-index-h', i );
-
-					// Apply CSS transform
-					transformElement( hslide, 'translateZ(-'+ depth +'px) translate(' + ( ( i - indexh ) * hoffset ) + '%, 0%)' );
-
-					if( hslide.classList.contains( 'stack' ) ) {
-
-						var verticalSlides = hslide.querySelectorAll( 'section' );
-
-						for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) {
-							var verticalIndex = i === indexh ? indexv : getPreviousVerticalIndex( hslide );
-
-							var vslide = verticalSlides[j];
-
-							vslide.setAttribute( 'data-index-h', i );
-							vslide.setAttribute( 'data-index-v', j );
-
-							// Apply CSS transform
-							transformElement( vslide, 'translate(0%, ' + ( ( j - verticalIndex ) * 105 ) + '%)' );
-
-							// Navigate to this slide on click
-							vslide.addEventListener( 'click', onOverviewSlideClicked, true );
-						}
-
-					}
-					else {
-
-						// Navigate to this slide on click
-						hslide.addEventListener( 'click', onOverviewSlideClicked, true );
-
-					}
-				}
-
-				updateSlidesVisibility();
-
-				layout();
-
-				if( !wasActive ) {
-					// Notify observers of the overview showing
-					dispatchEvent( 'overviewshown', {
-						'indexh': indexh,
-						'indexv': indexv,
-						'currentSlide': currentSlide
-					} );
-				}
-
-			}, 10 );
-
-		}
-
-	}
-
-	/**
-	 * Exits the slide overview and enters the currently
-	 * active slide.
-	 */
-	function deactivateOverview() {
-
-		// Only proceed if enabled in config
-		if( config.overview ) {
-
-			clearTimeout( activateOverviewTimeout );
-			clearTimeout( deactivateOverviewTimeout );
-
-			dom.wrapper.classList.remove( 'overview' );
-
-			// Temporarily add a class so that transitions can do different things
-			// depending on whether they are exiting/entering overview, or just
-			// moving from slide to slide
-			dom.wrapper.classList.add( 'overview-deactivating' );
-
-			deactivateOverviewTimeout = setTimeout( function () {
-				dom.wrapper.classList.remove( 'overview-deactivating' );
-			}, 1 );
-
-			// Select all slides
-			toArray( document.querySelectorAll( SLIDES_SELECTOR ) ).forEach( function( slide ) {
-				// Resets all transforms to use the external styles
-				transformElement( slide, '' );
-
-				slide.removeEventListener( 'click', onOverviewSlideClicked, true );
-			} );
-
-			slide( indexh, indexv );
-
-			cueAutoSlide();
-
-			// Notify observers of the overview hiding
-			dispatchEvent( 'overviewhidden', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'currentSlide': currentSlide
-			} );
-
-		}
-	}
-
-	/**
-	 * Toggles the slide overview mode on and off.
-	 *
-	 * @param {Boolean} override Optional flag which overrides the
-	 * toggle logic and forcibly sets the desired state. True means
-	 * overview is open, false means it's closed.
-	 */
-	function toggleOverview( override ) {
-
-		if( typeof override === 'boolean' ) {
-			override ? activateOverview() : deactivateOverview();
-		}
-		else {
-			isOverview() ? deactivateOverview() : activateOverview();
-		}
-
-	}
-
-	/**
-	 * Checks if the overview is currently active.
-	 *
-	 * @return {Boolean} true if the overview is active,
-	 * false otherwise
-	 */
-	function isOverview() {
-
-		return dom.wrapper.classList.contains( 'overview' );
-
-	}
-
-	/**
-	 * Checks if the current or specified slide is vertical
-	 * (nested within another slide).
-	 *
-	 * @param {HTMLElement} slide [optional] The slide to check
-	 * orientation of
-	 */
-	function isVerticalSlide( slide ) {
-
-		// Prefer slide argument, otherwise use current slide
-		slide = slide ? slide : currentSlide;
-
-		return slide && slide.parentNode && !!slide.parentNode.nodeName.match( /section/i );
-
-	}
-
-	/**
-	 * Handling the fullscreen functionality via the fullscreen API
-	 *
-	 * @see http://fullscreen.spec.whatwg.org/
-	 * @see https://developer.mozilla.org/en-US/docs/DOM/Using_fullscreen_mode
-	 */
-	function enterFullscreen() {
-
-		var element = document.body;
-
-		// Check which implementation is available
-		var requestMethod = element.requestFullScreen ||
-							element.webkitRequestFullscreen ||
-							element.webkitRequestFullScreen ||
-							element.mozRequestFullScreen ||
-							element.msRequestFullScreen;
-
-		if( requestMethod ) {
-			requestMethod.apply( element );
-		}
-
-	}
-
-	/**
-	 * Enters the paused mode which fades everything on screen to
-	 * black.
-	 */
-	function pause() {
-
-		var wasPaused = dom.wrapper.classList.contains( 'paused' );
-
-		cancelAutoSlide();
-		dom.wrapper.classList.add( 'paused' );
-
-		if( wasPaused === false ) {
-			dispatchEvent( 'paused' );
-		}
-
-	}
-
-	/**
-	 * Exits from the paused mode.
-	 */
-	function resume() {
-
-		var wasPaused = dom.wrapper.classList.contains( 'paused' );
-		dom.wrapper.classList.remove( 'paused' );
-
-		cueAutoSlide();
-
-		if( wasPaused ) {
-			dispatchEvent( 'resumed' );
-		}
-
-	}
-
-	/**
-	 * Toggles the paused mode on and off.
-	 */
-	function togglePause() {
-
-		if( isPaused() ) {
-			resume();
-		}
-		else {
-			pause();
-		}
-
-	}
-
-	/**
-	 * Checks if we are currently in the paused mode.
-	 */
-	function isPaused() {
-
-		return dom.wrapper.classList.contains( 'paused' );
-
-	}
-
-	/**
-	 * Steps from the current point in the presentation to the
-	 * slide which matches the specified horizontal and vertical
-	 * indices.
-	 *
-	 * @param {int} h Horizontal index of the target slide
-	 * @param {int} v Vertical index of the target slide
-	 * @param {int} f Optional index of a fragment within the
-	 * target slide to activate
-	 * @param {int} o Optional origin for use in multimaster environments
-	 */
-	function slide( h, v, f, o ) {
-
-		// Remember where we were at before
-		previousSlide = currentSlide;
-
-		// Query all horizontal slides in the deck
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-		// If no vertical index is specified and the upcoming slide is a
-		// stack, resume at its previous vertical index
-		if( v === undefined ) {
-			v = getPreviousVerticalIndex( horizontalSlides[ h ] );
-		}
-
-		// If we were on a vertical stack, remember what vertical index
-		// it was on so we can resume at the same position when returning
-		if( previousSlide && previousSlide.parentNode && previousSlide.parentNode.classList.contains( 'stack' ) ) {
-			setPreviousVerticalIndex( previousSlide.parentNode, indexv );
-		}
-
-		// Remember the state before this slide
-		var stateBefore = state.concat();
-
-		// Reset the state array
-		state.length = 0;
-
-		var indexhBefore = indexh || 0,
-			indexvBefore = indexv || 0;
-
-		// Activate and transition to the new slide
-		indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );
-		indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );
-
-		// Update the visibility of slides now that the indices have changed
-		updateSlidesVisibility();
-
-		layout();
-
-		// Apply the new state
-		stateLoop: for( var i = 0, len = state.length; i < len; i++ ) {
-			// Check if this state existed on the previous slide. If it
-			// did, we will avoid adding it repeatedly
-			for( var j = 0; j < stateBefore.length; j++ ) {
-				if( stateBefore[j] === state[i] ) {
-					stateBefore.splice( j, 1 );
-					continue stateLoop;
-				}
-			}
-
-			document.documentElement.classList.add( state[i] );
-
-			// Dispatch custom event matching the state's name
-			dispatchEvent( state[i] );
-		}
-
-		// Clean up the remains of the previous state
-		while( stateBefore.length ) {
-			document.documentElement.classList.remove( stateBefore.pop() );
-		}
-
-		// If the overview is active, re-activate it to update positions
-		if( isOverview() ) {
-			activateOverview();
-		}
-
-		// Find the current horizontal slide and any possible vertical slides
-		// within it
-		var currentHorizontalSlide = horizontalSlides[ indexh ],
-			currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );
-
-		// Store references to the previous and current slides
-		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;
-
-		// Show fragment, if specified
-		if( typeof f !== 'undefined' ) {
-			navigateFragment( f );
-		}
-
-		// Dispatch an event if the slide changed
-		var slideChanged = ( indexh !== indexhBefore || indexv !== indexvBefore );
-		if( slideChanged ) {
-			dispatchEvent( 'slidechanged', {
-				'indexh': indexh,
-				'indexv': indexv,
-				'previousSlide': previousSlide,
-				'currentSlide': currentSlide,
-				'origin': o
-			} );
-		}
-		else {
-			// Ensure that the previous slide is never the same as the current
-			previousSlide = null;
-		}
-
-		// Solves an edge case where the previous slide maintains the
-		// 'present' class when navigating between adjacent vertical
-		// stacks
-		if( previousSlide ) {
-			previousSlide.classList.remove( 'present' );
-
-			// Reset all slides upon navigate to home
-			// Issue: #285
-			if ( document.querySelector( HOME_SLIDE_SELECTOR ).classList.contains( 'present' ) ) {
-				// Launch async task
-				setTimeout( function () {
-					var slides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.stack') ), i;
-					for( i in slides ) {
-						if( slides[i] ) {
-							// Reset stack
-							setPreviousVerticalIndex( slides[i], 0 );
-						}
-					}
-				}, 0 );
-			}
-		}
-
-		// Handle embedded content
-		if( slideChanged ) {
-			stopEmbeddedContent( previousSlide );
-			startEmbeddedContent( currentSlide );
-		}
-
-		updateControls();
-		updateProgress();
-		updateBackground();
-		updateParallax();
-		updateSlideNumber();
-
-		// Update the URL hash
-		writeURL();
-
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Syncs the presentation with the current DOM. Useful
-	 * when new slides or control elements are added or when
-	 * the configuration has changed.
-	 */
-	function sync() {
-
-		// Subscribe to input
-		removeEventListeners();
-		addEventListeners();
-
-		// Force a layout to make sure the current config is accounted for
-		layout();
-
-		// Reflect the current autoSlide value
-		autoSlide = config.autoSlide;
-
-		// Start auto-sliding if it's enabled
-		cueAutoSlide();
-
-		// Re-create the slide backgrounds
-		createBackgrounds();
-
-		sortAllFragments();
-
-		updateControls();
-		updateProgress();
-		updateBackground( true );
-		updateSlideNumber();
-
-	}
-
-	/**
-	 * Resets all vertical slides so that only the first
-	 * is visible.
-	 */
-	function resetVerticalSlides() {
-
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-		horizontalSlides.forEach( function( horizontalSlide ) {
-
-			var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-			verticalSlides.forEach( function( verticalSlide, y ) {
-
-				if( y > 0 ) {
-					verticalSlide.classList.remove( 'present' );
-					verticalSlide.classList.remove( 'past' );
-					verticalSlide.classList.add( 'future' );
-				}
-
-			} );
-
-		} );
-
-	}
-
-	/**
-	 * Sorts and formats all of fragments in the
-	 * presentation.
-	 */
-	function sortAllFragments() {
-
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-		horizontalSlides.forEach( function( horizontalSlide ) {
-
-			var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-			verticalSlides.forEach( function( verticalSlide, y ) {
-
-				sortFragments( verticalSlide.querySelectorAll( '.fragment' ) );
-
-			} );
-
-			if( verticalSlides.length === 0 ) sortFragments( horizontalSlide.querySelectorAll( '.fragment' ) );
-
-		} );
-
-	}
-
-	/**
-	 * Updates one dimension of slides by showing the slide
-	 * with the specified index.
-	 *
-	 * @param {String} selector A CSS selector that will fetch
-	 * the group of slides we are working with
-	 * @param {Number} index The index of the slide that should be
-	 * shown
-	 *
-	 * @return {Number} The index of the slide that is now shown,
-	 * might differ from the passed in index if it was out of
-	 * bounds.
-	 */
-	function updateSlides( selector, index ) {
-
-		// Select all slides and convert the NodeList result to
-		// an array
-		var slides = toArray( document.querySelectorAll( selector ) ),
-			slidesLength = slides.length;
-
-		if( slidesLength ) {
-
-			// Should the index loop?
-			if( config.loop ) {
-				index %= slidesLength;
-
-				if( index < 0 ) {
-					index = slidesLength + index;
-				}
-			}
-
-			// Enforce max and minimum index bounds
-			index = Math.max( Math.min( index, slidesLength - 1 ), 0 );
-
-			for( var i = 0; i < slidesLength; i++ ) {
-				var element = slides[i];
-
-				var reverse = config.rtl && !isVerticalSlide( element );
-
-				element.classList.remove( 'past' );
-				element.classList.remove( 'present' );
-				element.classList.remove( 'future' );
-
-				// http://www.w3.org/html/wg/drafts/html/master/editing.html#the-hidden-attribute
-				element.setAttribute( 'hidden', '' );
-
-				if( i < index ) {
-					// Any element previous to index is given the 'past' class
-					element.classList.add( reverse ? 'future' : 'past' );
-
-					var pastFragments = toArray( element.querySelectorAll( '.fragment' ) );
-
-					// Show all fragments on prior slides
-					while( pastFragments.length ) {
-						var pastFragment = pastFragments.pop();
-						pastFragment.classList.add( 'visible' );
-						pastFragment.classList.remove( 'current-fragment' );
-					}
-				}
-				else if( i > index ) {
-					// Any element subsequent to index is given the 'future' class
-					element.classList.add( reverse ? 'past' : 'future' );
-
-					var futureFragments = toArray( element.querySelectorAll( '.fragment.visible' ) );
-
-					// No fragments in future slides should be visible ahead of time
-					while( futureFragments.length ) {
-						var futureFragment = futureFragments.pop();
-						futureFragment.classList.remove( 'visible' );
-						futureFragment.classList.remove( 'current-fragment' );
-					}
-				}
-
-				// If this element contains vertical slides
-				if( element.querySelector( 'section' ) ) {
-					element.classList.add( 'stack' );
-				}
-			}
-
-			// Mark the current slide as present
-			slides[index].classList.add( 'present' );
-			slides[index].removeAttribute( 'hidden' );
-
-			// If this slide has a state associated with it, add it
-			// onto the current state of the deck
-			var slideState = slides[index].getAttribute( 'data-state' );
-			if( slideState ) {
-				state = state.concat( slideState.split( ' ' ) );
-			}
-
-		}
-		else {
-			// Since there are no slides we can't be anywhere beyond the
-			// zeroth index
-			index = 0;
-		}
-
-		return index;
-
-	}
-
-	/**
-	 * Optimization method; hide all slides that are far away
-	 * from the present slide.
-	 */
-	function updateSlidesVisibility() {
-
-		// Select all slides and convert the NodeList result to
-		// an array
-		var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ),
-			horizontalSlidesLength = horizontalSlides.length,
-			distanceX,
-			distanceY;
-
-		if( horizontalSlidesLength ) {
-
-			// The number of steps away from the present slide that will
-			// be visible
-			var viewDistance = isOverview() ? 10 : config.viewDistance;
-
-			// Limit view distance on weaker devices
-			if( isMobileDevice ) {
-				viewDistance = isOverview() ? 6 : 1;
-			}
-
-			for( var x = 0; x < horizontalSlidesLength; x++ ) {
-				var horizontalSlide = horizontalSlides[x];
-
-				var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) ),
-					verticalSlidesLength = verticalSlides.length;
-
-				// Loops so that it measures 1 between the first and last slides
-				distanceX = Math.abs( ( indexh - x ) % ( horizontalSlidesLength - viewDistance ) ) || 0;
-
-				// Show the horizontal slide if it's within the view distance
-				horizontalSlide.style.display = distanceX > viewDistance ? 'none' : 'block';
-
-				if( verticalSlidesLength ) {
-
-					var oy = getPreviousVerticalIndex( horizontalSlide );
-
-					for( var y = 0; y < verticalSlidesLength; y++ ) {
-						var verticalSlide = verticalSlides[y];
-
-						distanceY = x === indexh ? Math.abs( indexv - y ) : Math.abs( y - oy );
-
-						verticalSlide.style.display = ( distanceX + distanceY ) > viewDistance ? 'none' : 'block';
-					}
-
-				}
-			}
-
-		}
-
-	}
-
-	/**
-	 * Updates the progress bar to reflect the current slide.
-	 */
-	function updateProgress() {
-
-		// Update progress if enabled
-		if( config.progress && dom.progress ) {
-
-			var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-			// The number of past and total slides
-			var totalCount = document.querySelectorAll( SLIDES_SELECTOR + ':not(.stack)' ).length;
-			var pastCount = 0;
-
-			// Step through all slides and count the past ones
-			mainLoop: for( var i = 0; i < horizontalSlides.length; i++ ) {
-
-				var horizontalSlide = horizontalSlides[i];
-				var verticalSlides = toArray( horizontalSlide.querySelectorAll( 'section' ) );
-
-				for( var j = 0; j < verticalSlides.length; j++ ) {
-
-					// Stop as soon as we arrive at the present
-					if( verticalSlides[j].classList.contains( 'present' ) ) {
-						break mainLoop;
-					}
-
-					pastCount++;
-
-				}
-
-				// Stop as soon as we arrive at the present
-				if( horizontalSlide.classList.contains( 'present' ) ) {
-					break;
-				}
-
-				// Don't count the wrapping section for vertical slides
-				if( horizontalSlide.classList.contains( 'stack' ) === false ) {
-					pastCount++;
-				}
-
-			}
-
-			dom.progressbar.style.width = ( pastCount / ( totalCount - 1 ) ) * window.innerWidth + 'px';
-
-		}
-
-	}
-
-	/**
-	 * Updates the slide number div to reflect the current slide.
-	 */
-	function updateSlideNumber() {
-
-		// Update slide number if enabled
-		if( config.slideNumber && dom.slideNumber) {
-
-			// Display the number of the page using 'indexh - indexv' format
-			var indexString = indexh;
-			if( indexv > 0 ) {
-				indexString += ' - ' + indexv;
-			}
-
-			dom.slideNumber.innerHTML = indexString;
-		}
-
-	}
-
-	/**
-	 * Updates the state of all control/navigation arrows.
-	 */
-	function updateControls() {
-
-		var routes = availableRoutes();
-		var fragments = availableFragments();
-
-		// Remove the 'enabled' class from all directions
-		dom.controlsLeft.concat( dom.controlsRight )
-						.concat( dom.controlsUp )
-						.concat( dom.controlsDown )
-						.concat( dom.controlsPrev )
-						.concat( dom.controlsNext ).forEach( function( node ) {
-			node.classList.remove( 'enabled' );
-			node.classList.remove( 'fragmented' );
-		} );
-
-		// Add the 'enabled' class to the available routes
-		if( routes.left ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'enabled' );	} );
-		if( routes.right ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-		if( routes.up ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'enabled' );	} );
-		if( routes.down ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-
-		// Prev/next buttons
-		if( routes.left || routes.up ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-		if( routes.right || routes.down ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'enabled' ); } );
-
-		// Highlight fragment directions
-		if( currentSlide ) {
-
-			// Always apply fragment decorator to prev/next buttons
-			if( fragments.prev ) dom.controlsPrev.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			if( fragments.next ) dom.controlsNext.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-
-			// Apply fragment decorators to directional buttons based on
-			// what slide axis they are in
-			if( isVerticalSlide( currentSlide ) ) {
-				if( fragments.prev ) dom.controlsUp.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-				if( fragments.next ) dom.controlsDown.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			}
-			else {
-				if( fragments.prev ) dom.controlsLeft.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-				if( fragments.next ) dom.controlsRight.forEach( function( el ) { el.classList.add( 'fragmented', 'enabled' ); } );
-			}
-
-		}
-
-	}
-
-	/**
-	 * Updates the background elements to reflect the current
-	 * slide.
-	 *
-	 * @param {Boolean} includeAll If true, the backgrounds of
-	 * all vertical slides (not just the present) will be updated.
-	 */
-	function updateBackground( includeAll ) {
-
-		var currentBackground = null;
-
-		// Reverse past/future classes when in RTL mode
-		var horizontalPast = config.rtl ? 'future' : 'past',
-			horizontalFuture = config.rtl ? 'past' : 'future';
-
-		// Update the classes of all backgrounds to match the
-		// states of their slides (past/present/future)
-		toArray( dom.background.childNodes ).forEach( function( backgroundh, h ) {
-
-			if( h < indexh ) {
-				backgroundh.className = 'slide-background ' + horizontalPast;
-			}
-			else if ( h > indexh ) {
-				backgroundh.className = 'slide-background ' + horizontalFuture;
-			}
-			else {
-				backgroundh.className = 'slide-background present';
-
-				// Store a reference to the current background element
-				currentBackground = backgroundh;
-			}
-
-			if( includeAll || h === indexh ) {
-				toArray( backgroundh.childNodes ).forEach( function( backgroundv, v ) {
-
-					if( v < indexv ) {
-						backgroundv.className = 'slide-background past';
-					}
-					else if ( v > indexv ) {
-						backgroundv.className = 'slide-background future';
-					}
-					else {
-						backgroundv.className = 'slide-background present';
-
-						// Only if this is the present horizontal and vertical slide
-						if( h === indexh ) currentBackground = backgroundv;
-					}
-
-				} );
-			}
-
-		} );
-
-		// Don't transition between identical backgrounds. This
-		// prevents unwanted flicker.
-		if( currentBackground ) {
-			var previousBackgroundHash = previousBackground ? previousBackground.getAttribute( 'data-background-hash' ) : null;
-			var currentBackgroundHash = currentBackground.getAttribute( 'data-background-hash' );
-			if( currentBackgroundHash && currentBackgroundHash === previousBackgroundHash && currentBackground !== previousBackground ) {
-				dom.background.classList.add( 'no-transition' );
-			}
-
-			previousBackground = currentBackground;
-		}
-
-		// Allow the first background to apply without transition
-		setTimeout( function() {
-			dom.background.classList.remove( 'no-transition' );
-		}, 1 );
-
-	}
-
-	/**
-	 * Updates the position of the parallax background based
-	 * on the current slide index.
-	 */
-	function updateParallax() {
-
-		if( config.parallaxBackgroundImage ) {
-
-			var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),
-				verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-			var backgroundSize = dom.background.style.backgroundSize.split( ' ' ),
-				backgroundWidth, backgroundHeight;
-
-			if( backgroundSize.length === 1 ) {
-				backgroundWidth = backgroundHeight = parseInt( backgroundSize[0], 10 );
-			}
-			else {
-				backgroundWidth = parseInt( backgroundSize[0], 10 );
-				backgroundHeight = parseInt( backgroundSize[1], 10 );
-			}
-
-			var slideWidth = dom.background.offsetWidth;
-			var horizontalSlideCount = horizontalSlides.length;
-			var horizontalOffset = -( backgroundWidth - slideWidth ) / ( horizontalSlideCount-1 ) * indexh;
-
-			var slideHeight = dom.background.offsetHeight;
-			var verticalSlideCount = verticalSlides.length;
-			var verticalOffset = verticalSlideCount > 0 ? -( backgroundHeight - slideHeight ) / ( verticalSlideCount-1 ) * indexv : 0;
-
-			dom.background.style.backgroundPosition = horizontalOffset + 'px ' + verticalOffset + 'px';
-
-		}
-
-	}
-
-	/**
-	 * Determine what available routes there are for navigation.
-	 *
-	 * @return {Object} containing four booleans: left/right/up/down
-	 */
-	function availableRoutes() {
-
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ),
-			verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-		var routes = {
-			left: indexh > 0 || config.loop,
-			right: indexh < horizontalSlides.length - 1 || config.loop,
-			up: indexv > 0,
-			down: indexv < verticalSlides.length - 1
-		};
-
-		// reverse horizontal controls for rtl
-		if( config.rtl ) {
-			var left = routes.left;
-			routes.left = routes.right;
-			routes.right = left;
-		}
-
-		return routes;
-
-	}
-
-	/**
-	 * Returns an object describing the available fragment
-	 * directions.
-	 *
-	 * @return {Object} two boolean properties: prev/next
-	 */
-	function availableFragments() {
-
-		if( currentSlide && config.fragments ) {
-			var fragments = currentSlide.querySelectorAll( '.fragment' );
-			var hiddenFragments = currentSlide.querySelectorAll( '.fragment:not(.visible)' );
-
-			return {
-				prev: fragments.length - hiddenFragments.length > 0,
-				next: !!hiddenFragments.length
-			};
-		}
-		else {
-			return { prev: false, next: false };
-		}
-
-	}
-
-	/**
-	 * Start playback of any embedded content inside of
-	 * the targeted slide.
-	 */
-	function startEmbeddedContent( slide ) {
-
-		if( slide && !isSpeakerNotes() ) {
-			// HTML5 media elements
-			toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					el.play();
-				}
-			} );
-
-			// iframe embeds
-			toArray( slide.querySelectorAll( 'iframe' ) ).forEach( function( el ) {
-				el.contentWindow.postMessage( 'slide:start', '*' );
-			});
-
-			// YouTube embeds
-			toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					el.contentWindow.postMessage( '{"event":"command","func":"playVideo","args":""}', '*' );
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * Stop playback of any embedded content inside of
-	 * the targeted slide.
-	 */
-	function stopEmbeddedContent( slide ) {
-
-		if( slide ) {
-			// HTML5 media elements
-			toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( !el.hasAttribute( 'data-ignore' ) ) {
-					el.pause();
-				}
-			} );
-
-			// iframe embeds
-			toArray( slide.querySelectorAll( 'iframe' ) ).forEach( function( el ) {
-				el.contentWindow.postMessage( 'slide:stop', '*' );
-			});
-
-			// YouTube embeds
-			toArray( slide.querySelectorAll( 'iframe[src*="youtube.com/embed/"]' ) ).forEach( function( el ) {
-				if( !el.hasAttribute( 'data-ignore' ) && typeof el.contentWindow.postMessage === 'function' ) {
-					el.contentWindow.postMessage( '{"event":"command","func":"pauseVideo","args":""}', '*' );
-				}
-			});
-		}
-
-	}
-
-	/**
-	 * Checks if this presentation is running inside of the
-	 * speaker notes window.
-	 */
-	function isSpeakerNotes() {
-
-		return !!window.location.search.match( /receiver/gi );
-
-	}
-
-	/**
-	 * Reads the current URL (hash) and navigates accordingly.
-	 */
-	function readURL() {
-
-		var hash = window.location.hash;
-
-		// Attempt to parse the hash as either an index or name
-		var bits = hash.slice( 2 ).split( '/' ),
-			name = hash.replace( /#|\//gi, '' );
-
-		// If the first bit is invalid and there is a name we can
-		// assume that this is a named link
-		if( isNaN( parseInt( bits[0], 10 ) ) && name.length ) {
-			// Find the slide with the specified name
-			var element = document.querySelector( '#' + name );
-
-			if( element ) {
-				// Find the position of the named slide and navigate to it
-				var indices = Reveal.getIndices( element );
-				slide( indices.h, indices.v );
-			}
-			// If the slide doesn't exist, navigate to the current slide
-			else {
-				slide( indexh || 0, indexv || 0 );
-			}
-		}
-		else {
-			// Read the index components of the hash
-			var h = parseInt( bits[0], 10 ) || 0,
-				v = parseInt( bits[1], 10 ) || 0;
-
-			if( h !== indexh || v !== indexv ) {
-				slide( h, v );
-			}
-		}
-
-	}
-
-	/**
-	 * Updates the page URL (hash) to reflect the current
-	 * state.
-	 *
-	 * @param {Number} delay The time in ms to wait before
-	 * writing the hash
-	 */
-	function writeURL( delay ) {
-
-		if( config.history ) {
-
-			// Make sure there's never more than one timeout running
-			clearTimeout( writeURLTimeout );
-
-			// If a delay is specified, timeout this call
-			if( typeof delay === 'number' ) {
-				writeURLTimeout = setTimeout( writeURL, delay );
-			}
-			else {
-				var url = '/';
-
-				// If the current slide has an ID, use that as a named link
-				if( currentSlide && typeof currentSlide.getAttribute( 'id' ) === 'string' ) {
-					url = '/' + currentSlide.getAttribute( 'id' );
-				}
-				// Otherwise use the /h/v index
-				else {
-					if( indexh > 0 || indexv > 0 ) url += indexh;
-					if( indexv > 0 ) url += '/' + indexv;
-				}
-
-				window.location.hash = url;
-			}
-		}
-
-	}
-
-	/**
-	 * Retrieves the h/v location of the current, or specified,
-	 * slide.
-	 *
-	 * @param {HTMLElement} slide If specified, the returned
-	 * index will be for this slide rather than the currently
-	 * active one
-	 *
-	 * @return {Object} { h: <int>, v: <int>, f: <int> }
-	 */
-	function getIndices( slide ) {
-
-		// By default, return the current indices
-		var h = indexh,
-			v = indexv,
-			f;
-
-		// If a slide is specified, return the indices of that slide
-		if( slide ) {
-			var isVertical = isVerticalSlide( slide );
-			var slideh = isVertical ? slide.parentNode : slide;
-
-			// Select all horizontal slides
-			var horizontalSlides = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-			// Now that we know which the horizontal slide is, get its index
-			h = Math.max( horizontalSlides.indexOf( slideh ), 0 );
-
-			// If this is a vertical slide, grab the vertical index
-			if( isVertical ) {
-				v = Math.max( toArray( slide.parentNode.querySelectorAll( 'section' ) ).indexOf( slide ), 0 );
-			}
-		}
-
-		if( !slide && currentSlide ) {
-			var hasFragments = currentSlide.querySelectorAll( '.fragment' ).length > 0;
-			if( hasFragments ) {
-				var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );
-				f = visibleFragments.length - 1;
-			}
-		}
-
-		return { h: h, v: v, f: f };
-
-	}
-
-	/**
-	 * Return a sorted fragments list, ordered by an increasing
-	 * "data-fragment-index" attribute.
-	 *
-	 * Fragments will be revealed in the order that they are returned by
-	 * this function, so you can use the index attributes to control the
-	 * order of fragment appearance.
-	 *
-	 * To maintain a sensible default fragment order, fragments are presumed
-	 * to be passed in document order. This function adds a "fragment-index"
-	 * attribute to each node if such an attribute is not already present,
-	 * and sets that attribute to an integer value which is the position of
-	 * the fragment within the fragments list.
-	 */
-	function sortFragments( fragments ) {
-
-		fragments = toArray( fragments );
-
-		var ordered = [],
-			unordered = [],
-			sorted = [];
-
-		// Group ordered and unordered elements
-		fragments.forEach( function( fragment, i ) {
-			if( fragment.hasAttribute( 'data-fragment-index' ) ) {
-				var index = parseInt( fragment.getAttribute( 'data-fragment-index' ), 10 );
-
-				if( !ordered[index] ) {
-					ordered[index] = [];
-				}
-
-				ordered[index].push( fragment );
-			}
-			else {
-				unordered.push( [ fragment ] );
-			}
-		} );
-
-		// Append fragments without explicit indices in their
-		// DOM order
-		ordered = ordered.concat( unordered );
-
-		// Manually count the index up per group to ensure there
-		// are no gaps
-		var index = 0;
-
-		// Push all fragments in their sorted order to an array,
-		// this flattens the groups
-		ordered.forEach( function( group ) {
-			group.forEach( function( fragment ) {
-				sorted.push( fragment );
-				fragment.setAttribute( 'data-fragment-index', index );
-			} );
-
-			index ++;
-		} );
-
-		return sorted;
-
-	}
-
-	/**
-	 * Navigate to the specified slide fragment.
-	 *
-	 * @param {Number} index The index of the fragment that
-	 * should be shown, -1 means all are invisible
-	 * @param {Number} offset Integer offset to apply to the
-	 * fragment index
-	 *
-	 * @return {Boolean} true if a change was made in any
-	 * fragments visibility as part of this call
-	 */
-	function navigateFragment( index, offset ) {
-
-		if( currentSlide && config.fragments ) {
-
-			var fragments = sortFragments( currentSlide.querySelectorAll( '.fragment' ) );
-			if( fragments.length ) {
-
-				// If no index is specified, find the current
-				if( typeof index !== 'number' ) {
-					var lastVisibleFragment = sortFragments( currentSlide.querySelectorAll( '.fragment.visible' ) ).pop();
-
-					if( lastVisibleFragment ) {
-						index = parseInt( lastVisibleFragment.getAttribute( 'data-fragment-index' ) || 0, 10 );
-					}
-					else {
-						index = -1;
-					}
-				}
-
-				// If an offset is specified, apply it to the index
-				if( typeof offset === 'number' ) {
-					index += offset;
-				}
-
-				var fragmentsShown = [],
-					fragmentsHidden = [];
-
-				toArray( fragments ).forEach( function( element, i ) {
-
-					if( element.hasAttribute( 'data-fragment-index' ) ) {
-						i = parseInt( element.getAttribute( 'data-fragment-index' ), 10 );
-					}
-
-					// Visible fragments
-					if( i <= index ) {
-						if( !element.classList.contains( 'visible' ) ) fragmentsShown.push( element );
-						element.classList.add( 'visible' );
-						element.classList.remove( 'current-fragment' );
-
-						if( i === index ) {
-							element.classList.add( 'current-fragment' );
-						}
-					}
-					// Hidden fragments
-					else {
-						if( element.classList.contains( 'visible' ) ) fragmentsHidden.push( element );
-						element.classList.remove( 'visible' );
-						element.classList.remove( 'current-fragment' );
-					}
-
-
-				} );
-
-				if( fragmentsHidden.length ) {
-					dispatchEvent( 'fragmenthidden', { fragment: fragmentsHidden[0], fragments: fragmentsHidden } );
-				}
-
-				if( fragmentsShown.length ) {
-					dispatchEvent( 'fragmentshown', { fragment: fragmentsShown[0], fragments: fragmentsShown } );
-				}
-
-				updateControls();
-
-				return !!( fragmentsShown.length || fragmentsHidden.length );
-
-			}
-
-		}
-
-		return false;
-
-	}
-
-	/**
-	 * Navigate to the next slide fragment.
-	 *
-	 * @return {Boolean} true if there was a next fragment,
-	 * false otherwise
-	 */
-	function nextFragment() {
-
-		return navigateFragment( null, 1 );
-
-	}
-
-	/**
-	 * Navigate to the previous slide fragment.
-	 *
-	 * @return {Boolean} true if there was a previous fragment,
-	 * false otherwise
-	 */
-	function previousFragment() {
-
-		return navigateFragment( null, -1 );
-
-	}
-
-	/**
-	 * Cues a new automated slide if enabled in the config.
-	 */
-	function cueAutoSlide() {
-
-		cancelAutoSlide();
-
-		if( currentSlide ) {
-
-			var parentAutoSlide = currentSlide.parentNode ? currentSlide.parentNode.getAttribute( 'data-autoslide' ) : null;
-			var slideAutoSlide = currentSlide.getAttribute( 'data-autoslide' );
-
-			// Pick value in the following priority order:
-			// 1. Current slide's data-autoslide
-			// 2. Parent slide's data-autoslide
-			// 3. Global autoSlide setting
-			if( slideAutoSlide ) {
-				autoSlide = parseInt( slideAutoSlide, 10 );
-			}
-			else if( parentAutoSlide ) {
-				autoSlide = parseInt( parentAutoSlide, 10 );
-			}
-			else {
-				autoSlide = config.autoSlide;
-			}
-
-			// If there are media elements with data-autoplay,
-			// automatically set the autoSlide duration to the
-			// length of that media
-			toArray( currentSlide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
-				if( el.hasAttribute( 'data-autoplay' ) ) {
-					if( autoSlide && el.duration * 1000 > autoSlide ) {
-						autoSlide = ( el.duration * 1000 ) + 1000;
-					}
-				}
-			} );
-
-			// Cue the next auto-slide if:
-			// - There is an autoSlide value
-			// - Auto-sliding isn't paused by the user
-			// - The presentation isn't paused
-			// - The overview isn't active
-			// - The presentation isn't over
-			if( autoSlide && !autoSlidePaused && !isPaused() && !isOverview() && ( !Reveal.isLastSlide() || config.loop === true ) ) {
-				autoSlideTimeout = setTimeout( navigateNext, autoSlide );
-				autoSlideStartTime = Date.now();
-			}
-
-			if( autoSlidePlayer ) {
-				autoSlidePlayer.setPlaying( autoSlideTimeout !== -1 );
-			}
-
-		}
-
-	}
-
-	/**
-	 * Cancels any ongoing request to auto-slide.
-	 */
-	function cancelAutoSlide() {
-
-		clearTimeout( autoSlideTimeout );
-		autoSlideTimeout = -1;
-
-	}
-
-	function pauseAutoSlide() {
-
-		autoSlidePaused = true;
-		clearTimeout( autoSlideTimeout );
-
-		if( autoSlidePlayer ) {
-			autoSlidePlayer.setPlaying( false );
-		}
-
-	}
-
-	function resumeAutoSlide() {
-
-		autoSlidePaused = false;
-		cueAutoSlide();
-
-	}
-
-	function navigateLeft() {
-
-		// Reverse for RTL
-		if( config.rtl ) {
-			if( ( isOverview() || nextFragment() === false ) && availableRoutes().left ) {
-				slide( indexh + 1 );
-			}
-		}
-		// Normal navigation
-		else if( ( isOverview() || previousFragment() === false ) && availableRoutes().left ) {
-			slide( indexh - 1 );
-		}
-
-	}
-
-	function navigateRight() {
-
-		// Reverse for RTL
-		if( config.rtl ) {
-			if( ( isOverview() || previousFragment() === false ) && availableRoutes().right ) {
-				slide( indexh - 1 );
-			}
-		}
-		// Normal navigation
-		else if( ( isOverview() || nextFragment() === false ) && availableRoutes().right ) {
-			slide( indexh + 1 );
-		}
-
-	}
-
-	function navigateUp() {
-
-		// Prioritize hiding fragments
-		if( ( isOverview() || previousFragment() === false ) && availableRoutes().up ) {
-			slide( indexh, indexv - 1 );
-		}
-
-	}
-
-	function navigateDown() {
-
-		// Prioritize revealing fragments
-		if( ( isOverview() || nextFragment() === false ) && availableRoutes().down ) {
-			slide( indexh, indexv + 1 );
-		}
-
-	}
-
-	/**
-	 * Navigates backwards, prioritized in the following order:
-	 * 1) Previous fragment
-	 * 2) Previous vertical slide
-	 * 3) Previous horizontal slide
-	 */
-	function navigatePrev() {
-
-		// Prioritize revealing fragments
-		if( previousFragment() === false ) {
-			if( availableRoutes().up ) {
-				navigateUp();
-			}
-			else {
-				// Fetch the previous horizontal slide, if there is one
-				var previousSlide = document.querySelector( HORIZONTAL_SLIDES_SELECTOR + '.past:nth-child(' + indexh + ')' );
-
-				if( previousSlide ) {
-					var v = ( previousSlide.querySelectorAll( 'section' ).length - 1 ) || undefined;
-					var h = indexh - 1;
-					slide( h, v );
-				}
-			}
-		}
-
-	}
-
-	/**
-	 * Same as #navigatePrev() but navigates forwards.
-	 */
-	function navigateNext() {
-
-		// Prioritize revealing fragments
-		if( nextFragment() === false ) {
-			availableRoutes().down ? navigateDown() : navigateRight();
-		}
-
-		// If auto-sliding is enabled we need to cue up
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-
-	// --------------------------------------------------------------------//
-	// ----------------------------- EVENTS -------------------------------//
-	// --------------------------------------------------------------------//
-
-	/**
-	 * Called by all event handlers that are based on user
-	 * input.
-	 */
-	function onUserInput( event ) {
-
-		if( config.autoSlideStoppable ) {
-			pauseAutoSlide();
-		}
-
-	}
-
-	/**
-	 * Handler for the document level 'keydown' event.
-	 */
-	function onDocumentKeyDown( event ) {
-
-		onUserInput( event );
-
-		// Check if there's a focused element that could be using
-		// the keyboard
-		var activeElement = document.activeElement;
-		var hasFocus = !!( document.activeElement && ( document.activeElement.type || document.activeElement.href || document.activeElement.contentEditable !== 'inherit' ) );
-
-		// Disregard the event if there's a focused element or a
-		// keyboard modifier key is present
-		if( hasFocus || (event.shiftKey && event.keyCode !== 32) || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		// While paused only allow "unpausing" keyboard events (b and .)
-		if( isPaused() && [66,190,191].indexOf( event.keyCode ) === -1 ) {
-			return false;
-		}
-
-		var triggered = false;
-
-		// 1. User defined key bindings
-		if( typeof config.keyboard === 'object' ) {
-
-			for( var key in config.keyboard ) {
-
-				// Check if this binding matches the pressed key
-				if( parseInt( key, 10 ) === event.keyCode ) {
-
-					var value = config.keyboard[ key ];
-
-					// Callback function
-					if( typeof value === 'function' ) {
-						value.apply( null, [ event ] );
-					}
-					// String shortcuts to reveal.js API
-					else if( typeof value === 'string' && typeof Reveal[ value ] === 'function' ) {
-						Reveal[ value ].call();
-					}
-
-					triggered = true;
-
-				}
-
-			}
-
-		}
-
-		// 2. System defined key bindings
-		if( triggered === false ) {
-
-			// Assume true and try to prove false
-			triggered = true;
-
-			switch( event.keyCode ) {
-				// p, page up
-				case 80: case 33: navigatePrev(); break;
-				// n, page down
-				case 78: case 34: navigateNext(); break;
-				// h, left
-				case 72: case 37: navigateLeft(); break;
-				// l, right
-				case 76: case 39: navigateRight(); break;
-				// k, up
-				case 75: case 38: navigateUp(); break;
-				// j, down
-				case 74: case 40: navigateDown(); break;
-				// home
-				case 36: slide( 0 ); break;
-				// end
-				case 35: slide( Number.MAX_VALUE ); break;
-				// space
-				case 32: isOverview() ? deactivateOverview() : event.shiftKey ? navigatePrev() : navigateNext(); break;
-				// return
-				case 13: isOverview() ? deactivateOverview() : triggered = false; break;
-				// b, period, Logitech presenter tools "black screen" button
-				case 66: case 190: case 191: togglePause(); break;
-				// f
-				case 70: enterFullscreen(); break;
-				default:
-					triggered = false;
-			}
-
-		}
-
-		// If the input resulted in a triggered action we should prevent
-		// the browsers default behavior
-		if( triggered ) {
-			event.preventDefault();
-		}
-		// ESC or O key
-		else if ( ( event.keyCode === 27 || event.keyCode === 79 ) && features.transforms3d ) {
-			if( dom.preview ) {
-				closePreview();
-			}
-			else {
-				toggleOverview();
-			}
-
-			event.preventDefault();
-		}
-
-		// If auto-sliding is enabled we need to cue up
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Handler for the 'touchstart' event, enables support for
-	 * swipe and pinch gestures.
-	 */
-	function onTouchStart( event ) {
-
-		touch.startX = event.touches[0].clientX;
-		touch.startY = event.touches[0].clientY;
-		touch.startCount = event.touches.length;
-
-		// If there's two touches we need to memorize the distance
-		// between those two points to detect pinching
-		if( event.touches.length === 2 && config.overview ) {
-			touch.startSpan = distanceBetween( {
-				x: event.touches[1].clientX,
-				y: event.touches[1].clientY
-			}, {
-				x: touch.startX,
-				y: touch.startY
-			} );
-		}
-
-	}
-
-	/**
-	 * Handler for the 'touchmove' event.
-	 */
-	function onTouchMove( event ) {
-
-		// Each touch should only trigger one action
-		if( !touch.captured ) {
-			onUserInput( event );
-
-			var currentX = event.touches[0].clientX;
-			var currentY = event.touches[0].clientY;
-
-			// If the touch started with two points and still has
-			// two active touches; test for the pinch gesture
-			if( event.touches.length === 2 && touch.startCount === 2 && config.overview ) {
-
-				// The current distance in pixels between the two touch points
-				var currentSpan = distanceBetween( {
-					x: event.touches[1].clientX,
-					y: event.touches[1].clientY
-				}, {
-					x: touch.startX,
-					y: touch.startY
-				} );
-
-				// If the span is larger than the desire amount we've got
-				// ourselves a pinch
-				if( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) {
-					touch.captured = true;
-
-					if( currentSpan < touch.startSpan ) {
-						activateOverview();
-					}
-					else {
-						deactivateOverview();
-					}
-				}
-
-				event.preventDefault();
-
-			}
-			// There was only one touch point, look for a swipe
-			else if( event.touches.length === 1 && touch.startCount !== 2 ) {
-
-				var deltaX = currentX - touch.startX,
-					deltaY = currentY - touch.startY;
-
-				if( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.captured = true;
-					navigateLeft();
-				}
-				else if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.captured = true;
-					navigateRight();
-				}
-				else if( deltaY > touch.threshold ) {
-					touch.captured = true;
-					navigateUp();
-				}
-				else if( deltaY < -touch.threshold ) {
-					touch.captured = true;
-					navigateDown();
-				}
-
-				// If we're embedded, only block touch events if they have
-				// triggered an action
-				if( config.embedded ) {
-					if( touch.captured || isVerticalSlide( currentSlide ) ) {
-						event.preventDefault();
-					}
-				}
-				// Not embedded? Block them all to avoid needless tossing
-				// around of the viewport in iOS
-				else {
-					event.preventDefault();
-				}
-
-			}
-		}
-		// There's a bug with swiping on some Android devices unless
-		// the default action is always prevented
-		else if( navigator.userAgent.match( /android/gi ) ) {
-			event.preventDefault();
-		}
-
-	}
-
-	/**
-	 * Handler for the 'touchend' event.
-	 */
-	function onTouchEnd( event ) {
-
-		touch.captured = false;
-
-	}
-
-	/**
-	 * Convert pointer down to touch start.
-	 */
-	function onPointerDown( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchStart( event );
-		}
-
-	}
-
-	/**
-	 * Convert pointer move to touch move.
-	 */
-	function onPointerMove( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchMove( event );
-		}
-
-	}
-
-	/**
-	 * Convert pointer up to touch end.
-	 */
-	function onPointerUp( event ) {
-
-		if( event.pointerType === event.MSPOINTER_TYPE_TOUCH ) {
-			event.touches = [{ clientX: event.clientX, clientY: event.clientY }];
-			onTouchEnd( event );
-		}
-
-	}
-
-	/**
-	 * Handles mouse wheel scrolling, throttled to avoid skipping
-	 * multiple slides.
-	 */
-	function onDocumentMouseScroll( event ) {
-
-		if( Date.now() - lastMouseWheelStep > 600 ) {
-
-			lastMouseWheelStep = Date.now();
-
-			var delta = event.detail || -event.wheelDelta;
-			if( delta > 0 ) {
-				navigateNext();
-			}
-			else {
-				navigatePrev();
-			}
-
-		}
-
-	}
-
-	/**
-	 * Clicking on the progress bar results in a navigation to the
-	 * closest approximate horizontal slide using this equation:
-	 *
-	 * ( clickX / presentationWidth ) * numberOfSlides
-	 */
-	function onProgressClicked( event ) {
-
-		onUserInput( event );
-
-		event.preventDefault();
-
-		var slidesTotal = toArray( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) ).length;
-		var slideIndex = Math.floor( ( event.clientX / dom.wrapper.offsetWidth ) * slidesTotal );
-
-		slide( slideIndex );
-
-	}
-
-	/**
-	 * Event handler for navigation control buttons.
-	 */
-	function onNavigateLeftClicked( event ) { event.preventDefault(); onUserInput(); navigateLeft(); }
-	function onNavigateRightClicked( event ) { event.preventDefault(); onUserInput(); navigateRight(); }
-	function onNavigateUpClicked( event ) { event.preventDefault(); onUserInput(); navigateUp(); }
-	function onNavigateDownClicked( event ) { event.preventDefault(); onUserInput(); navigateDown(); }
-	function onNavigatePrevClicked( event ) { event.preventDefault(); onUserInput(); navigatePrev(); }
-	function onNavigateNextClicked( event ) { event.preventDefault(); onUserInput(); navigateNext(); }
-
-	/**
-	 * Handler for the window level 'hashchange' event.
-	 */
-	function onWindowHashChange( event ) {
-
-		readURL();
-
-	}
-
-	/**
-	 * Handler for the window level 'resize' event.
-	 */
-	function onWindowResize( event ) {
-
-		layout();
-
-	}
-
-	/**
-	 * Handle for the window level 'visibilitychange' event.
-	 */
-	function onPageVisibilityChange( event ) {
-
-		var isHidden =  document.webkitHidden ||
-						document.msHidden ||
-						document.hidden;
-
-		// If, after clicking a link or similar and we're coming back,
-		// focus the document.body to ensure we can use keyboard shortcuts
-		if( isHidden === false && document.activeElement !== document.body ) {
-			document.activeElement.blur();
-			document.body.focus();
-		}
-
-	}
-
-	/**
-	 * Invoked when a slide is and we're in the overview.
-	 */
-	function onOverviewSlideClicked( event ) {
-
-		// TODO There's a bug here where the event listeners are not
-		// removed after deactivating the overview.
-		if( eventsAreBound && isOverview() ) {
-			event.preventDefault();
-
-			var element = event.target;
-
-			while( element && !element.nodeName.match( /section/gi ) ) {
-				element = element.parentNode;
-			}
-
-			if( element && !element.classList.contains( 'disabled' ) ) {
-
-				deactivateOverview();
-
-				if( element.nodeName.match( /section/gi ) ) {
-					var h = parseInt( element.getAttribute( 'data-index-h' ), 10 ),
-						v = parseInt( element.getAttribute( 'data-index-v' ), 10 );
-
-					slide( h, v );
-				}
-
-			}
-		}
-
-	}
-
-	/**
-	 * Handles clicks on links that are set to preview in the
-	 * iframe overlay.
-	 */
-	function onPreviewLinkClicked( event ) {
-
-		var url = event.target.getAttribute( 'href' );
-		if( url ) {
-			openPreview( url );
-			event.preventDefault();
-		}
-
-	}
-
-	/**
-	 * Handles click on the auto-sliding controls element.
-	 */
-	function onAutoSlidePlayerClick( event ) {
-
-		// Replay
-		if( Reveal.isLastSlide() && config.loop === false ) {
-			slide( 0, 0 );
-			resumeAutoSlide();
-		}
-		// Resume
-		else if( autoSlidePaused ) {
-			resumeAutoSlide();
-		}
-		// Pause
-		else {
-			pauseAutoSlide();
-		}
-
-	}
-
-
-	// --------------------------------------------------------------------//
-	// ------------------------ PLAYBACK COMPONENT ------------------------//
-	// --------------------------------------------------------------------//
-
-
-	/**
-	 * Constructor for the playback component, which displays
-	 * play/pause/progress controls.
-	 *
-	 * @param {HTMLElement} container The component will append
-	 * itself to this
-	 * @param {Function} progressCheck A method which will be
-	 * called frequently to get the current progress on a range
-	 * of 0-1
-	 */
-	function Playback( container, progressCheck ) {
-
-		// Cosmetics
-		this.diameter = 50;
-		this.thickness = 3;
-
-		// Flags if we are currently playing
-		this.playing = false;
-
-		// Current progress on a 0-1 range
-		this.progress = 0;
-
-		// Used to loop the animation smoothly
-		this.progressOffset = 1;
-
-		this.container = container;
-		this.progressCheck = progressCheck;
-
-		this.canvas = document.createElement( 'canvas' );
-		this.canvas.className = 'playback';
-		this.canvas.width = this.diameter;
-		this.canvas.height = this.diameter;
-		this.context = this.canvas.getContext( '2d' );
-
-		this.container.appendChild( this.canvas );
-
-		this.render();
-
-	}
-
-	Playback.prototype.setPlaying = function( value ) {
-
-		var wasPlaying = this.playing;
-
-		this.playing = value;
-
-		// Start repainting if we weren't already
-		if( !wasPlaying && this.playing ) {
-			this.animate();
-		}
-		else {
-			this.render();
-		}
-
-	};
-
-	Playback.prototype.animate = function() {
-
-		var progressBefore = this.progress;
-
-		this.progress = this.progressCheck();
-
-		// When we loop, offset the progress so that it eases
-		// smoothly rather than immediately resetting
-		if( progressBefore > 0.8 && this.progress < 0.2 ) {
-			this.progressOffset = this.progress;
-		}
-
-		this.render();
-
-		if( this.playing ) {
-			features.requestAnimationFrameMethod.call( window, this.animate.bind( this ) );
-		}
-
-	};
-
-	/**
-	 * Renders the current progress and playback state.
-	 */
-	Playback.prototype.render = function() {
-
-		var progress = this.playing ? this.progress : 0,
-			radius = ( this.diameter / 2 ) - this.thickness,
-			x = this.diameter / 2,
-			y = this.diameter / 2,
-			iconSize = 14;
-
-		// Ease towards 1
-		this.progressOffset += ( 1 - this.progressOffset ) * 0.1;
-
-		var endAngle = ( - Math.PI / 2 ) + ( progress * ( Math.PI * 2 ) );
-		var startAngle = ( - Math.PI / 2 ) + ( this.progressOffset * ( Math.PI * 2 ) );
-
-		this.context.save();
-		this.context.clearRect( 0, 0, this.diameter, this.diameter );
-
-		// Solid background color
-		this.context.beginPath();
-		this.context.arc( x, y, radius + 2, 0, Math.PI * 2, false );
-		this.context.fillStyle = 'rgba( 0, 0, 0, 0.4 )';
-		this.context.fill();
-
-		// Draw progress track
-		this.context.beginPath();
-		this.context.arc( x, y, radius, 0, Math.PI * 2, false );
-		this.context.lineWidth = this.thickness;
-		this.context.strokeStyle = '#666';
-		this.context.stroke();
-
-		if( this.playing ) {
-			// Draw progress on top of track
-			this.context.beginPath();
-			this.context.arc( x, y, radius, startAngle, endAngle, false );
-			this.context.lineWidth = this.thickness;
-			this.context.strokeStyle = '#fff';
-			this.context.stroke();
-		}
-
-		this.context.translate( x - ( iconSize / 2 ), y - ( iconSize / 2 ) );
-
-		// Draw play/pause icons
-		if( this.playing ) {
-			this.context.fillStyle = '#fff';
-			this.context.fillRect( 0, 0, iconSize / 2 - 2, iconSize );
-			this.context.fillRect( iconSize / 2 + 2, 0, iconSize / 2 - 2, iconSize );
-		}
-		else {
-			this.context.beginPath();
-			this.context.translate( 2, 0 );
-			this.context.moveTo( 0, 0 );
-			this.context.lineTo( iconSize - 2, iconSize / 2 );
-			this.context.lineTo( 0, iconSize );
-			this.context.fillStyle = '#fff';
-			this.context.fill();
-		}
-
-		this.context.restore();
-
-	};
-
-	Playback.prototype.on = function( type, listener ) {
-		this.canvas.addEventListener( type, listener, false );
-	};
-
-	Playback.prototype.off = function( type, listener ) {
-		this.canvas.removeEventListener( type, listener, false );
-	};
-
-	Playback.prototype.destroy = function() {
-
-		this.playing = false;
-
-		if( this.canvas.parentNode ) {
-			this.container.removeChild( this.canvas );
-		}
-
-	};
-
-
-	// --------------------------------------------------------------------//
-	// ------------------------------- API --------------------------------//
-	// --------------------------------------------------------------------//
-
-
-	return {
-		initialize: initialize,
-		configure: configure,
-		sync: sync,
-
-		// Navigation methods
-		slide: slide,
-		left: navigateLeft,
-		right: navigateRight,
-		up: navigateUp,
-		down: navigateDown,
-		prev: navigatePrev,
-		next: navigateNext,
-
-		// Fragment methods
-		navigateFragment: navigateFragment,
-		prevFragment: previousFragment,
-		nextFragment: nextFragment,
-
-		// Deprecated aliases
-		navigateTo: slide,
-		navigateLeft: navigateLeft,
-		navigateRight: navigateRight,
-		navigateUp: navigateUp,
-		navigateDown: navigateDown,
-		navigatePrev: navigatePrev,
-		navigateNext: navigateNext,
-
-		// Forces an update in slide layout
-		layout: layout,
-
-		// Returns an object with the available routes as booleans (left/right/top/bottom)
-		availableRoutes: availableRoutes,
-
-		// Returns an object with the available fragments as booleans (prev/next)
-		availableFragments: availableFragments,
-
-		// Toggles the overview mode on/off
-		toggleOverview: toggleOverview,
-
-		// Toggles the "black screen" mode on/off
-		togglePause: togglePause,
-
-		// State checks
-		isOverview: isOverview,
-		isPaused: isPaused,
-
-		// Adds or removes all internal event listeners (such as keyboard)
-		addEventListeners: addEventListeners,
-		removeEventListeners: removeEventListeners,
-
-		// Returns the indices of the current, or specified, slide
-		getIndices: getIndices,
-
-		// Returns the slide at the specified index, y is optional
-		getSlide: function( x, y ) {
-			var horizontalSlide = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR )[ x ];
-			var verticalSlides = horizontalSlide && horizontalSlide.querySelectorAll( 'section' );
-
-			if( typeof y !== 'undefined' ) {
-				return verticalSlides ? verticalSlides[ y ] : undefined;
-			}
-
-			return horizontalSlide;
-		},
-
-		// Returns the previous slide element, may be null
-		getPreviousSlide: function() {
-			return previousSlide;
-		},
-
-		// Returns the current slide element
-		getCurrentSlide: function() {
-			return currentSlide;
-		},
-
-		// Returns the current scale of the presentation content
-		getScale: function() {
-			return scale;
-		},
-
-		// Returns the current configuration object
-		getConfig: function() {
-			return config;
-		},
-
-		// Helper method, retrieves query string as a key/value hash
-		getQueryHash: function() {
-			var query = {};
-
-			location.search.replace( /[A-Z0-9]+?=([\w\.%-]*)/gi, function(a) {
-				query[ a.split( '=' ).shift() ] = a.split( '=' ).pop();
-			} );
-
-			// Basic deserialization
-			for( var i in query ) {
-				var value = query[ i ];
-
-				query[ i ] = unescape( value );
-
-				if( value === 'null' ) query[ i ] = null;
-				else if( value === 'true' ) query[ i ] = true;
-				else if( value === 'false' ) query[ i ] = false;
-				else if( value.match( /^\d+$/ ) ) query[ i ] = parseFloat( value );
-			}
-
-			return query;
-		},
-
-		// Returns true if we're currently on the first slide
-		isFirstSlide: function() {
-			return document.querySelector( SLIDES_SELECTOR + '.past' ) == null ? true : false;
-		},
-
-		// Returns true if we're currently on the last slide
-		isLastSlide: function() {
-			if( currentSlide ) {
-				// Does this slide has next a sibling?
-				if( currentSlide.nextElementSibling ) return false;
-
-				// If it's vertical, does its parent have a next sibling?
-				if( isVerticalSlide( currentSlide ) && currentSlide.parentNode.nextElementSibling ) return false;
-
-				return true;
-			}
-
-			return false;
-		},
-
-		// Checks if reveal.js has been loaded and is ready for use
-		isReady: function() {
-			return loaded;
-		},
-
-		// Forward event binding to the reveal DOM element
-		addEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture );
-			}
-		},
-		removeEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture );
-			}
-		}
-	};
-
-})();
diff --git a/docs/slides/IHP14/_support/reveal.js/js/reveal.min.js b/docs/slides/IHP14/_support/reveal.js/js/reveal.min.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/js/reveal.min.js
+++ /dev/null
@@ -1,9 +0,0 @@
-/*!
- * reveal.js 2.6.1 (2014-03-13, 09:22)
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2014 Hakim El Hattab, http://hakim.se
- */
-var Reveal=function(){"use strict";function a(a){if(b(),!ec.transforms2d&&!ec.transforms3d)return document.body.setAttribute("class","no-transforms"),void 0;window.addEventListener("load",A,!1);var d=Reveal.getQueryHash();"undefined"!=typeof d.dependencies&&delete d.dependencies,k(_b,a),k(_b,d),r(),c()}function b(){ec.transforms3d="WebkitPerspective"in document.body.style||"MozPerspective"in document.body.style||"msPerspective"in document.body.style||"OPerspective"in document.body.style||"perspective"in document.body.style,ec.transforms2d="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style,ec.requestAnimationFrameMethod=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame,ec.requestAnimationFrame="function"==typeof ec.requestAnimationFrameMethod,ec.canvas=!!document.createElement("canvas").getContext,Vb=navigator.userAgent.match(/(iphone|ipod|android)/gi)}function c(){function a(){e.length&&head.js.apply(null,e),d()}function b(b){head.ready(b.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],function(){"function"==typeof b.callback&&b.callback.apply(this),0===--f&&a()})}for(var c=[],e=[],f=0,g=0,h=_b.dependencies.length;h>g;g++){var i=_b.dependencies[g];(!i.condition||i.condition())&&(i.async?e.push(i.src):c.push(i.src),b(i))}c.length?(f=c.length,head.js.apply(null,c)):a()}function d(){e(),Q(),h(),cb(),X(!0),setTimeout(function(){dc.slides.classList.remove("no-transition"),ac=!0,t("ready",{indexh:Qb,indexv:Rb,currentSlide:Tb})},1)}function e(){dc.theme=document.querySelector("#theme"),dc.wrapper=document.querySelector(".reveal"),dc.slides=document.querySelector(".reveal .slides"),dc.slides.classList.add("no-transition"),dc.background=f(dc.wrapper,"div","backgrounds",null),dc.progress=f(dc.wrapper,"div","progress","<span></span>"),dc.progressbar=dc.progress.querySelector("span"),f(dc.wrapper,"aside","controls",'<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>'),dc.slideNumber=f(dc.wrapper,"div","slide-number",""),f(dc.wrapper,"div","state-background",null),f(dc.wrapper,"div","pause-overlay",null),dc.controls=document.querySelector(".reveal .controls"),dc.controlsLeft=l(document.querySelectorAll(".navigate-left")),dc.controlsRight=l(document.querySelectorAll(".navigate-right")),dc.controlsUp=l(document.querySelectorAll(".navigate-up")),dc.controlsDown=l(document.querySelectorAll(".navigate-down")),dc.controlsPrev=l(document.querySelectorAll(".navigate-prev")),dc.controlsNext=l(document.querySelectorAll(".navigate-next"))}function f(a,b,c,d){var e=a.querySelector("."+c);return e||(e=document.createElement(b),e.classList.add(c),null!==d&&(e.innerHTML=d),a.appendChild(e)),e}function g(){function a(a,b){var c={background:a.getAttribute("data-background"),backgroundSize:a.getAttribute("data-background-size"),backgroundImage:a.getAttribute("data-background-image"),backgroundColor:a.getAttribute("data-background-color"),backgroundRepeat:a.getAttribute("data-background-repeat"),backgroundPosition:a.getAttribute("data-background-position"),backgroundTransition:a.getAttribute("data-background-transition")},d=document.createElement("div");return d.className="slide-background",c.background&&(/^(http|file|\/\/)/gi.test(c.background)||/\.(svg|png|jpg|jpeg|gif|bmp)$/gi.test(c.background)?d.style.backgroundImage="url("+c.background+")":d.style.background=c.background),(c.background||c.backgroundColor||c.backgroundImage)&&d.setAttribute("data-background-hash",c.background+c.backgroundSize+c.backgroundImage+c.backgroundColor+c.backgroundRepeat+c.backgroundPosition+c.backgroundTransition),c.backgroundSize&&(d.style.backgroundSize=c.backgroundSize),c.backgroundImage&&(d.style.backgroundImage='url("'+c.backgroundImage+'")'),c.backgroundColor&&(d.style.backgroundColor=c.backgroundColor),c.backgroundRepeat&&(d.style.backgroundRepeat=c.backgroundRepeat),c.backgroundPosition&&(d.style.backgroundPosition=c.backgroundPosition),c.backgroundTransition&&d.setAttribute("data-background-transition",c.backgroundTransition),b.appendChild(d),d}q()&&document.body.classList.add("print-pdf"),dc.background.innerHTML="",dc.background.classList.add("no-transition"),l(document.querySelectorAll(Yb)).forEach(function(b){var c;c=q()?a(b,b):a(b,dc.background),l(b.querySelectorAll("section")).forEach(function(b){q()?a(b,b):a(b,c)})}),_b.parallaxBackgroundImage?(dc.background.style.backgroundImage='url("'+_b.parallaxBackgroundImage+'")',dc.background.style.backgroundSize=_b.parallaxBackgroundSize,setTimeout(function(){dc.wrapper.classList.add("has-parallax-background")},1)):(dc.background.style.backgroundImage="",dc.wrapper.classList.remove("has-parallax-background"))}function h(a){var b=document.querySelectorAll(Xb).length;if(dc.wrapper.classList.remove(_b.transition),"object"==typeof a&&k(_b,a),ec.transforms3d===!1&&(_b.transition="linear"),dc.wrapper.classList.add(_b.transition),dc.wrapper.setAttribute("data-transition-speed",_b.transitionSpeed),dc.wrapper.setAttribute("data-background-transition",_b.backgroundTransition),dc.controls.style.display=_b.controls?"block":"none",dc.progress.style.display=_b.progress?"block":"none",_b.rtl?dc.wrapper.classList.add("rtl"):dc.wrapper.classList.remove("rtl"),_b.center?dc.wrapper.classList.add("center"):dc.wrapper.classList.remove("center"),_b.mouseWheel?(document.addEventListener("DOMMouseScroll",Bb,!1),document.addEventListener("mousewheel",Bb,!1)):(document.removeEventListener("DOMMouseScroll",Bb,!1),document.removeEventListener("mousewheel",Bb,!1)),_b.rollingLinks?u():v(),_b.previewLinks?w():(x(),w("[data-preview-link]")),b>1&&_b.autoSlide&&_b.autoSlideStoppable&&ec.canvas&&ec.requestAnimationFrame?(Wb=new Pb(dc.wrapper,function(){return Math.min(Math.max((Date.now()-mc)/kc,0),1)}),Wb.on("click",Ob),nc=!1):Wb&&(Wb.destroy(),Wb=null),_b.theme&&dc.theme){var c=dc.theme.getAttribute("href"),d=/[^\/]*?(?=\.css)/,e=c.match(d)[0];_b.theme!==e&&(c=c.replace(d,_b.theme),dc.theme.setAttribute("href",c))}P()}function i(){if(jc=!0,window.addEventListener("hashchange",Jb,!1),window.addEventListener("resize",Kb,!1),_b.touch&&(dc.wrapper.addEventListener("touchstart",vb,!1),dc.wrapper.addEventListener("touchmove",wb,!1),dc.wrapper.addEventListener("touchend",xb,!1),window.navigator.msPointerEnabled&&(dc.wrapper.addEventListener("MSPointerDown",yb,!1),dc.wrapper.addEventListener("MSPointerMove",zb,!1),dc.wrapper.addEventListener("MSPointerUp",Ab,!1))),_b.keyboard&&document.addEventListener("keydown",ub,!1),_b.progress&&dc.progress&&dc.progress.addEventListener("click",Cb,!1),_b.focusBodyOnPageVisiblityChange){var a;"hidden"in document?a="visibilitychange":"msHidden"in document?a="msvisibilitychange":"webkitHidden"in document&&(a="webkitvisibilitychange"),a&&document.addEventListener(a,Lb,!1)}["touchstart","click"].forEach(function(a){dc.controlsLeft.forEach(function(b){b.addEventListener(a,Db,!1)}),dc.controlsRight.forEach(function(b){b.addEventListener(a,Eb,!1)}),dc.controlsUp.forEach(function(b){b.addEventListener(a,Fb,!1)}),dc.controlsDown.forEach(function(b){b.addEventListener(a,Gb,!1)}),dc.controlsPrev.forEach(function(b){b.addEventListener(a,Hb,!1)}),dc.controlsNext.forEach(function(b){b.addEventListener(a,Ib,!1)})})}function j(){jc=!1,document.removeEventListener("keydown",ub,!1),window.removeEventListener("hashchange",Jb,!1),window.removeEventListener("resize",Kb,!1),dc.wrapper.removeEventListener("touchstart",vb,!1),dc.wrapper.removeEventListener("touchmove",wb,!1),dc.wrapper.removeEventListener("touchend",xb,!1),window.navigator.msPointerEnabled&&(dc.wrapper.removeEventListener("MSPointerDown",yb,!1),dc.wrapper.removeEventListener("MSPointerMove",zb,!1),dc.wrapper.removeEventListener("MSPointerUp",Ab,!1)),_b.progress&&dc.progress&&dc.progress.removeEventListener("click",Cb,!1),["touchstart","click"].forEach(function(a){dc.controlsLeft.forEach(function(b){b.removeEventListener(a,Db,!1)}),dc.controlsRight.forEach(function(b){b.removeEventListener(a,Eb,!1)}),dc.controlsUp.forEach(function(b){b.removeEventListener(a,Fb,!1)}),dc.controlsDown.forEach(function(b){b.removeEventListener(a,Gb,!1)}),dc.controlsPrev.forEach(function(b){b.removeEventListener(a,Hb,!1)}),dc.controlsNext.forEach(function(b){b.removeEventListener(a,Ib,!1)})})}function k(a,b){for(var c in b)a[c]=b[c]}function l(a){return Array.prototype.slice.call(a)}function m(a,b){var c=a.x-b.x,d=a.y-b.y;return Math.sqrt(c*c+d*d)}function n(a,b){a.style.WebkitTransform=b,a.style.MozTransform=b,a.style.msTransform=b,a.style.OTransform=b,a.style.transform=b}function o(a){var b=0;if(a){var c=0;l(a.childNodes).forEach(function(a){"number"==typeof a.offsetTop&&a.style&&("absolute"===a.style.position&&(c+=1),b=Math.max(b,a.offsetTop+a.offsetHeight))}),0===c&&(b=a.offsetHeight)}return b}function p(a,b){if(b=b||0,a){var c=a.parentNode,d=c.childNodes;l(d).forEach(function(c){if("number"==typeof c.offsetHeight&&c!==a){var d=window.getComputedStyle(c),e=parseInt(d.marginTop,10),f=parseInt(d.marginBottom,10);b-=c.offsetHeight+e+f}});var e=window.getComputedStyle(a);b-=parseInt(e.marginTop,10)+parseInt(e.marginBottom,10)}return b}function q(){return/print-pdf/gi.test(window.location.search)}function r(){_b.hideAddressBar&&Vb&&(window.addEventListener("load",s,!1),window.addEventListener("orientationchange",s,!1))}function s(){setTimeout(function(){window.scrollTo(0,1)},10)}function t(a,b){var c=document.createEvent("HTMLEvents",1,2);c.initEvent(a,!0,!0),k(c,b),dc.wrapper.dispatchEvent(c)}function u(){if(ec.transforms3d&&!("msPerspective"in document.body.style))for(var a=document.querySelectorAll(Xb+" a:not(.image)"),b=0,c=a.length;c>b;b++){var d=a[b];if(!(!d.textContent||d.querySelector("*")||d.className&&d.classList.contains(d,"roll"))){var e=document.createElement("span");e.setAttribute("data-title",d.text),e.innerHTML=d.innerHTML,d.classList.add("roll"),d.innerHTML="",d.appendChild(e)}}}function v(){for(var a=document.querySelectorAll(Xb+" a.roll"),b=0,c=a.length;c>b;b++){var d=a[b],e=d.querySelector("span");e&&(d.classList.remove("roll"),d.innerHTML=e.innerHTML)}}function w(a){var b=l(document.querySelectorAll(a?a:"a"));b.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.addEventListener("click",Nb,!1)})}function x(){var a=l(document.querySelectorAll("a"));a.forEach(function(a){/^(http|www)/gi.test(a.getAttribute("href"))&&a.removeEventListener("click",Nb,!1)})}function y(a){z(),dc.preview=document.createElement("div"),dc.preview.classList.add("preview-link-overlay"),dc.wrapper.appendChild(dc.preview),dc.preview.innerHTML=["<header>",'<a class="close" href="#"><span class="icon"></span></a>','<a class="external" href="'+a+'" target="_blank"><span class="icon"></span></a>',"</header>",'<div class="spinner"></div>','<div class="viewport">','<iframe src="'+a+'"></iframe>',"</div>"].join(""),dc.preview.querySelector("iframe").addEventListener("load",function(){dc.preview.classList.add("loaded")},!1),dc.preview.querySelector(".close").addEventListener("click",function(a){z(),a.preventDefault()},!1),dc.preview.querySelector(".external").addEventListener("click",function(){z()},!1),setTimeout(function(){dc.preview.classList.add("visible")},1)}function z(){dc.preview&&(dc.preview.setAttribute("src",""),dc.preview.parentNode.removeChild(dc.preview),dc.preview=null)}function A(){if(dc.wrapper&&!q()){var a=dc.wrapper.offsetWidth,b=dc.wrapper.offsetHeight;a-=b*_b.margin,b-=b*_b.margin;var c=_b.width,d=_b.height,e=20;B(_b.width,_b.height,e),"string"==typeof c&&/%$/.test(c)&&(c=parseInt(c,10)/100*a),"string"==typeof d&&/%$/.test(d)&&(d=parseInt(d,10)/100*b),dc.slides.style.width=c+"px",dc.slides.style.height=d+"px",cc=Math.min(a/c,b/d),cc=Math.max(cc,_b.minScale),cc=Math.min(cc,_b.maxScale),"undefined"==typeof dc.slides.style.zoom||navigator.userAgent.match(/(iphone|ipod|ipad|android)/gi)?n(dc.slides,"translate(-50%, -50%) scale("+cc+") translate(50%, 50%)"):dc.slides.style.zoom=cc;for(var f=l(document.querySelectorAll(Xb)),g=0,h=f.length;h>g;g++){var i=f[g];"none"!==i.style.display&&(i.style.top=_b.center||i.classList.contains("center")?i.classList.contains("stack")?0:Math.max(-(o(i)/2)-e,-d/2)+"px":"")}U(),Y()}}function B(a,b,c){l(dc.slides.querySelectorAll("section > .stretch")).forEach(function(d){var e=p(d,b-2*c);if(/(img|video)/gi.test(d.nodeName)){var f=d.naturalWidth||d.videoWidth,g=d.naturalHeight||d.videoHeight,h=Math.min(a/f,e/g);d.style.width=f*h+"px",d.style.height=g*h+"px"}else d.style.width=a+"px",d.style.height=e+"px"})}function C(a,b){"object"==typeof a&&"function"==typeof a.setAttribute&&a.setAttribute("data-previous-indexv",b||0)}function D(a){if("object"==typeof a&&"function"==typeof a.setAttribute&&a.classList.contains("stack")){var b=a.hasAttribute("data-start-indexv")?"data-start-indexv":"data-previous-indexv";return parseInt(a.getAttribute(b)||0,10)}return 0}function E(){if(_b.overview){kb();var a=dc.wrapper.classList.contains("overview"),b=window.innerWidth<400?1e3:2500;dc.wrapper.classList.add("overview"),dc.wrapper.classList.remove("overview-deactivating"),clearTimeout(hc),clearTimeout(ic),hc=setTimeout(function(){for(var c=document.querySelectorAll(Yb),d=0,e=c.length;e>d;d++){var f=c[d],g=_b.rtl?-105:105;if(f.setAttribute("data-index-h",d),n(f,"translateZ(-"+b+"px) translate("+(d-Qb)*g+"%, 0%)"),f.classList.contains("stack"))for(var h=f.querySelectorAll("section"),i=0,j=h.length;j>i;i++){var k=d===Qb?Rb:D(f),l=h[i];l.setAttribute("data-index-h",d),l.setAttribute("data-index-v",i),n(l,"translate(0%, "+105*(i-k)+"%)"),l.addEventListener("click",Mb,!0)}else f.addEventListener("click",Mb,!0)}T(),A(),a||t("overviewshown",{indexh:Qb,indexv:Rb,currentSlide:Tb})},10)}}function F(){_b.overview&&(clearTimeout(hc),clearTimeout(ic),dc.wrapper.classList.remove("overview"),dc.wrapper.classList.add("overview-deactivating"),ic=setTimeout(function(){dc.wrapper.classList.remove("overview-deactivating")},1),l(document.querySelectorAll(Xb)).forEach(function(a){n(a,""),a.removeEventListener("click",Mb,!0)}),O(Qb,Rb),jb(),t("overviewhidden",{indexh:Qb,indexv:Rb,currentSlide:Tb}))}function G(a){"boolean"==typeof a?a?E():F():H()?F():E()}function H(){return dc.wrapper.classList.contains("overview")}function I(a){return a=a?a:Tb,a&&a.parentNode&&!!a.parentNode.nodeName.match(/section/i)}function J(){var a=document.body,b=a.requestFullScreen||a.webkitRequestFullscreen||a.webkitRequestFullScreen||a.mozRequestFullScreen||a.msRequestFullScreen;b&&b.apply(a)}function K(){var a=dc.wrapper.classList.contains("paused");kb(),dc.wrapper.classList.add("paused"),a===!1&&t("paused")}function L(){var a=dc.wrapper.classList.contains("paused");dc.wrapper.classList.remove("paused"),jb(),a&&t("resumed")}function M(){N()?L():K()}function N(){return dc.wrapper.classList.contains("paused")}function O(a,b,c,d){Sb=Tb;var e=document.querySelectorAll(Yb);void 0===b&&(b=D(e[a])),Sb&&Sb.parentNode&&Sb.parentNode.classList.contains("stack")&&C(Sb.parentNode,Rb);var f=bc.concat();bc.length=0;var g=Qb||0,h=Rb||0;Qb=S(Yb,void 0===a?Qb:a),Rb=S(Zb,void 0===b?Rb:b),T(),A();a:for(var i=0,j=bc.length;j>i;i++){for(var k=0;k<f.length;k++)if(f[k]===bc[i]){f.splice(k,1);continue a}document.documentElement.classList.add(bc[i]),t(bc[i])}for(;f.length;)document.documentElement.classList.remove(f.pop());H()&&E();var m=e[Qb],n=m.querySelectorAll("section");Tb=n[Rb]||m,"undefined"!=typeof c&&gb(c);var o=Qb!==g||Rb!==h;o?t("slidechanged",{indexh:Qb,indexv:Rb,previousSlide:Sb,currentSlide:Tb,origin:d}):Sb=null,Sb&&(Sb.classList.remove("present"),document.querySelector($b).classList.contains("present")&&setTimeout(function(){var a,b=l(document.querySelectorAll(Yb+".stack"));for(a in b)b[a]&&C(b[a],0)},0)),o&&(ab(Sb),_(Tb)),W(),U(),X(),Y(),V(),db(),jb()}function P(){j(),i(),A(),kc=_b.autoSlide,jb(),g(),R(),W(),U(),X(!0),V()}function Q(){var a=l(document.querySelectorAll(Yb));a.forEach(function(a){var b=l(a.querySelectorAll("section"));b.forEach(function(a,b){b>0&&(a.classList.remove("present"),a.classList.remove("past"),a.classList.add("future"))})})}function R(){var a=l(document.querySelectorAll(Yb));a.forEach(function(a){var b=l(a.querySelectorAll("section"));b.forEach(function(a){fb(a.querySelectorAll(".fragment"))}),0===b.length&&fb(a.querySelectorAll(".fragment"))})}function S(a,b){var c=l(document.querySelectorAll(a)),d=c.length;if(d){_b.loop&&(b%=d,0>b&&(b=d+b)),b=Math.max(Math.min(b,d-1),0);for(var e=0;d>e;e++){var f=c[e],g=_b.rtl&&!I(f);if(f.classList.remove("past"),f.classList.remove("present"),f.classList.remove("future"),f.setAttribute("hidden",""),b>e){f.classList.add(g?"future":"past");for(var h=l(f.querySelectorAll(".fragment"));h.length;){var i=h.pop();i.classList.add("visible"),i.classList.remove("current-fragment")}}else if(e>b){f.classList.add(g?"past":"future");for(var j=l(f.querySelectorAll(".fragment.visible"));j.length;){var k=j.pop();k.classList.remove("visible"),k.classList.remove("current-fragment")}}f.querySelector("section")&&f.classList.add("stack")}c[b].classList.add("present"),c[b].removeAttribute("hidden");var m=c[b].getAttribute("data-state");m&&(bc=bc.concat(m.split(" ")))}else b=0;return b}function T(){var a,b,c=l(document.querySelectorAll(Yb)),d=c.length;if(d){var e=H()?10:_b.viewDistance;Vb&&(e=H()?6:1);for(var f=0;d>f;f++){var g=c[f],h=l(g.querySelectorAll("section")),i=h.length;if(a=Math.abs((Qb-f)%(d-e))||0,g.style.display=a>e?"none":"block",i)for(var j=D(g),k=0;i>k;k++){var m=h[k];b=f===Qb?Math.abs(Rb-k):Math.abs(k-j),m.style.display=a+b>e?"none":"block"}}}}function U(){if(_b.progress&&dc.progress){var a=l(document.querySelectorAll(Yb)),b=document.querySelectorAll(Xb+":not(.stack)").length,c=0;a:for(var d=0;d<a.length;d++){for(var e=a[d],f=l(e.querySelectorAll("section")),g=0;g<f.length;g++){if(f[g].classList.contains("present"))break a;c++}if(e.classList.contains("present"))break;e.classList.contains("stack")===!1&&c++}dc.progressbar.style.width=c/(b-1)*window.innerWidth+"px"}}function V(){if(_b.slideNumber&&dc.slideNumber){var a=Qb;Rb>0&&(a+=" - "+Rb),dc.slideNumber.innerHTML=a}}function W(){var a=Z(),b=$();dc.controlsLeft.concat(dc.controlsRight).concat(dc.controlsUp).concat(dc.controlsDown).concat(dc.controlsPrev).concat(dc.controlsNext).forEach(function(a){a.classList.remove("enabled"),a.classList.remove("fragmented")}),a.left&&dc.controlsLeft.forEach(function(a){a.classList.add("enabled")}),a.right&&dc.controlsRight.forEach(function(a){a.classList.add("enabled")}),a.up&&dc.controlsUp.forEach(function(a){a.classList.add("enabled")}),a.down&&dc.controlsDown.forEach(function(a){a.classList.add("enabled")}),(a.left||a.up)&&dc.controlsPrev.forEach(function(a){a.classList.add("enabled")}),(a.right||a.down)&&dc.controlsNext.forEach(function(a){a.classList.add("enabled")}),Tb&&(b.prev&&dc.controlsPrev.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsNext.forEach(function(a){a.classList.add("fragmented","enabled")}),I(Tb)?(b.prev&&dc.controlsUp.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsDown.forEach(function(a){a.classList.add("fragmented","enabled")})):(b.prev&&dc.controlsLeft.forEach(function(a){a.classList.add("fragmented","enabled")}),b.next&&dc.controlsRight.forEach(function(a){a.classList.add("fragmented","enabled")})))}function X(a){var b=null,c=_b.rtl?"future":"past",d=_b.rtl?"past":"future";if(l(dc.background.childNodes).forEach(function(e,f){Qb>f?e.className="slide-background "+c:f>Qb?e.className="slide-background "+d:(e.className="slide-background present",b=e),(a||f===Qb)&&l(e.childNodes).forEach(function(a,c){Rb>c?a.className="slide-background past":c>Rb?a.className="slide-background future":(a.className="slide-background present",f===Qb&&(b=a))})}),b){var e=Ub?Ub.getAttribute("data-background-hash"):null,f=b.getAttribute("data-background-hash");f&&f===e&&b!==Ub&&dc.background.classList.add("no-transition"),Ub=b}setTimeout(function(){dc.background.classList.remove("no-transition")},1)}function Y(){if(_b.parallaxBackgroundImage){var a,b,c=document.querySelectorAll(Yb),d=document.querySelectorAll(Zb),e=dc.background.style.backgroundSize.split(" ");1===e.length?a=b=parseInt(e[0],10):(a=parseInt(e[0],10),b=parseInt(e[1],10));var f=dc.background.offsetWidth,g=c.length,h=-(a-f)/(g-1)*Qb,i=dc.background.offsetHeight,j=d.length,k=j>0?-(b-i)/(j-1)*Rb:0;dc.background.style.backgroundPosition=h+"px "+k+"px"}}function Z(){var a=document.querySelectorAll(Yb),b=document.querySelectorAll(Zb),c={left:Qb>0||_b.loop,right:Qb<a.length-1||_b.loop,up:Rb>0,down:Rb<b.length-1};if(_b.rtl){var d=c.left;c.left=c.right,c.right=d}return c}function $(){if(Tb&&_b.fragments){var a=Tb.querySelectorAll(".fragment"),b=Tb.querySelectorAll(".fragment:not(.visible)");return{prev:a.length-b.length>0,next:!!b.length}}return{prev:!1,next:!1}}function _(a){a&&!bb()&&(l(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&a.play()}),l(a.querySelectorAll("iframe")).forEach(function(a){a.contentWindow.postMessage("slide:start","*")}),l(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-autoplay")&&a.contentWindow.postMessage('{"event":"command","func":"playVideo","args":""}',"*")}))}function ab(a){a&&(l(a.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-ignore")||a.pause()}),l(a.querySelectorAll("iframe")).forEach(function(a){a.contentWindow.postMessage("slide:stop","*")}),l(a.querySelectorAll('iframe[src*="youtube.com/embed/"]')).forEach(function(a){a.hasAttribute("data-ignore")||"function"!=typeof a.contentWindow.postMessage||a.contentWindow.postMessage('{"event":"command","func":"pauseVideo","args":""}',"*")}))}function bb(){return!!window.location.search.match(/receiver/gi)}function cb(){var a=window.location.hash,b=a.slice(2).split("/"),c=a.replace(/#|\//gi,"");if(isNaN(parseInt(b[0],10))&&c.length){var d=document.querySelector("#"+c);if(d){var e=Reveal.getIndices(d);O(e.h,e.v)}else O(Qb||0,Rb||0)}else{var f=parseInt(b[0],10)||0,g=parseInt(b[1],10)||0;(f!==Qb||g!==Rb)&&O(f,g)}}function db(a){if(_b.history)if(clearTimeout(gc),"number"==typeof a)gc=setTimeout(db,a);else{var b="/";Tb&&"string"==typeof Tb.getAttribute("id")?b="/"+Tb.getAttribute("id"):((Qb>0||Rb>0)&&(b+=Qb),Rb>0&&(b+="/"+Rb)),window.location.hash=b}}function eb(a){var b,c=Qb,d=Rb;if(a){var e=I(a),f=e?a.parentNode:a,g=l(document.querySelectorAll(Yb));c=Math.max(g.indexOf(f),0),e&&(d=Math.max(l(a.parentNode.querySelectorAll("section")).indexOf(a),0))}if(!a&&Tb){var h=Tb.querySelectorAll(".fragment").length>0;if(h){var i=Tb.querySelectorAll(".fragment.visible");b=i.length-1}}return{h:c,v:d,f:b}}function fb(a){a=l(a);var b=[],c=[],d=[];a.forEach(function(a){if(a.hasAttribute("data-fragment-index")){var d=parseInt(a.getAttribute("data-fragment-index"),10);b[d]||(b[d]=[]),b[d].push(a)}else c.push([a])}),b=b.concat(c);var e=0;return b.forEach(function(a){a.forEach(function(a){d.push(a),a.setAttribute("data-fragment-index",e)}),e++}),d}function gb(a,b){if(Tb&&_b.fragments){var c=fb(Tb.querySelectorAll(".fragment"));if(c.length){if("number"!=typeof a){var d=fb(Tb.querySelectorAll(".fragment.visible")).pop();a=d?parseInt(d.getAttribute("data-fragment-index")||0,10):-1}"number"==typeof b&&(a+=b);var e=[],f=[];return l(c).forEach(function(b,c){b.hasAttribute("data-fragment-index")&&(c=parseInt(b.getAttribute("data-fragment-index"),10)),a>=c?(b.classList.contains("visible")||e.push(b),b.classList.add("visible"),b.classList.remove("current-fragment"),c===a&&b.classList.add("current-fragment")):(b.classList.contains("visible")&&f.push(b),b.classList.remove("visible"),b.classList.remove("current-fragment"))}),f.length&&t("fragmenthidden",{fragment:f[0],fragments:f}),e.length&&t("fragmentshown",{fragment:e[0],fragments:e}),W(),!(!e.length&&!f.length)}}return!1}function hb(){return gb(null,1)}function ib(){return gb(null,-1)}function jb(){if(kb(),Tb){var a=Tb.parentNode?Tb.parentNode.getAttribute("data-autoslide"):null,b=Tb.getAttribute("data-autoslide");kc=b?parseInt(b,10):a?parseInt(a,10):_b.autoSlide,l(Tb.querySelectorAll("video, audio")).forEach(function(a){a.hasAttribute("data-autoplay")&&kc&&1e3*a.duration>kc&&(kc=1e3*a.duration+1e3)}),!kc||nc||N()||H()||Reveal.isLastSlide()&&_b.loop!==!0||(lc=setTimeout(sb,kc),mc=Date.now()),Wb&&Wb.setPlaying(-1!==lc)}}function kb(){clearTimeout(lc),lc=-1}function lb(){nc=!0,clearTimeout(lc),Wb&&Wb.setPlaying(!1)}function mb(){nc=!1,jb()}function nb(){_b.rtl?(H()||hb()===!1)&&Z().left&&O(Qb+1):(H()||ib()===!1)&&Z().left&&O(Qb-1)}function ob(){_b.rtl?(H()||ib()===!1)&&Z().right&&O(Qb-1):(H()||hb()===!1)&&Z().right&&O(Qb+1)}function pb(){(H()||ib()===!1)&&Z().up&&O(Qb,Rb-1)}function qb(){(H()||hb()===!1)&&Z().down&&O(Qb,Rb+1)}function rb(){if(ib()===!1)if(Z().up)pb();else{var a=document.querySelector(Yb+".past:nth-child("+Qb+")");if(a){var b=a.querySelectorAll("section").length-1||void 0,c=Qb-1;O(c,b)}}}function sb(){hb()===!1&&(Z().down?qb():ob()),jb()}function tb(){_b.autoSlideStoppable&&lb()}function ub(a){tb(a),document.activeElement;var b=!(!document.activeElement||!document.activeElement.type&&!document.activeElement.href&&"inherit"===document.activeElement.contentEditable);if(!(b||a.shiftKey&&32!==a.keyCode||a.altKey||a.ctrlKey||a.metaKey)){if(N()&&-1===[66,190,191].indexOf(a.keyCode))return!1;var c=!1;if("object"==typeof _b.keyboard)for(var d in _b.keyboard)if(parseInt(d,10)===a.keyCode){var e=_b.keyboard[d];"function"==typeof e?e.apply(null,[a]):"string"==typeof e&&"function"==typeof Reveal[e]&&Reveal[e].call(),c=!0}if(c===!1)switch(c=!0,a.keyCode){case 80:case 33:rb();break;case 78:case 34:sb();break;case 72:case 37:nb();break;case 76:case 39:ob();break;case 75:case 38:pb();break;case 74:case 40:qb();break;case 36:O(0);break;case 35:O(Number.MAX_VALUE);break;case 32:H()?F():a.shiftKey?rb():sb();break;case 13:H()?F():c=!1;break;case 66:case 190:case 191:M();break;case 70:J();break;default:c=!1}c?a.preventDefault():27!==a.keyCode&&79!==a.keyCode||!ec.transforms3d||(dc.preview?z():G(),a.preventDefault()),jb()}}function vb(a){oc.startX=a.touches[0].clientX,oc.startY=a.touches[0].clientY,oc.startCount=a.touches.length,2===a.touches.length&&_b.overview&&(oc.startSpan=m({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:oc.startX,y:oc.startY}))}function wb(a){if(oc.captured)navigator.userAgent.match(/android/gi)&&a.preventDefault();else{tb(a);var b=a.touches[0].clientX,c=a.touches[0].clientY;if(2===a.touches.length&&2===oc.startCount&&_b.overview){var d=m({x:a.touches[1].clientX,y:a.touches[1].clientY},{x:oc.startX,y:oc.startY});Math.abs(oc.startSpan-d)>oc.threshold&&(oc.captured=!0,d<oc.startSpan?E():F()),a.preventDefault()}else if(1===a.touches.length&&2!==oc.startCount){var e=b-oc.startX,f=c-oc.startY;e>oc.threshold&&Math.abs(e)>Math.abs(f)?(oc.captured=!0,nb()):e<-oc.threshold&&Math.abs(e)>Math.abs(f)?(oc.captured=!0,ob()):f>oc.threshold?(oc.captured=!0,pb()):f<-oc.threshold&&(oc.captured=!0,qb()),_b.embedded?(oc.captured||I(Tb))&&a.preventDefault():a.preventDefault()}}}function xb(){oc.captured=!1}function yb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],vb(a))}function zb(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],wb(a))}function Ab(a){a.pointerType===a.MSPOINTER_TYPE_TOUCH&&(a.touches=[{clientX:a.clientX,clientY:a.clientY}],xb(a))}function Bb(a){if(Date.now()-fc>600){fc=Date.now();var b=a.detail||-a.wheelDelta;b>0?sb():rb()}}function Cb(a){tb(a),a.preventDefault();var b=l(document.querySelectorAll(Yb)).length,c=Math.floor(a.clientX/dc.wrapper.offsetWidth*b);O(c)}function Db(a){a.preventDefault(),tb(),nb()}function Eb(a){a.preventDefault(),tb(),ob()}function Fb(a){a.preventDefault(),tb(),pb()}function Gb(a){a.preventDefault(),tb(),qb()}function Hb(a){a.preventDefault(),tb(),rb()}function Ib(a){a.preventDefault(),tb(),sb()}function Jb(){cb()}function Kb(){A()}function Lb(){var a=document.webkitHidden||document.msHidden||document.hidden;a===!1&&document.activeElement!==document.body&&(document.activeElement.blur(),document.body.focus())}function Mb(a){if(jc&&H()){a.preventDefault();for(var b=a.target;b&&!b.nodeName.match(/section/gi);)b=b.parentNode;if(b&&!b.classList.contains("disabled")&&(F(),b.nodeName.match(/section/gi))){var c=parseInt(b.getAttribute("data-index-h"),10),d=parseInt(b.getAttribute("data-index-v"),10);O(c,d)}}}function Nb(a){var b=a.target.getAttribute("href");b&&(y(b),a.preventDefault())}function Ob(){Reveal.isLastSlide()&&_b.loop===!1?(O(0,0),mb()):nc?mb():lb()}function Pb(a,b){this.diameter=50,this.thickness=3,this.playing=!1,this.progress=0,this.progressOffset=1,this.container=a,this.progressCheck=b,this.canvas=document.createElement("canvas"),this.canvas.className="playback",this.canvas.width=this.diameter,this.canvas.height=this.diameter,this.context=this.canvas.getContext("2d"),this.container.appendChild(this.canvas),this.render()}var Qb,Rb,Sb,Tb,Ub,Vb,Wb,Xb=".reveal .slides section",Yb=".reveal .slides>section",Zb=".reveal .slides>section.present>section",$b=".reveal .slides>section:first-of-type",_b={width:960,height:700,margin:.1,minScale:.2,maxScale:1,controls:!0,progress:!0,slideNumber:!1,history:!1,keyboard:!0,overview:!0,center:!0,touch:!0,loop:!1,rtl:!1,fragments:!0,embedded:!1,autoSlide:0,autoSlideStoppable:!0,mouseWheel:!1,rollingLinks:!1,hideAddressBar:!0,previewLinks:!1,focusBodyOnPageVisiblityChange:!0,theme:null,transition:"default",transitionSpeed:"default",backgroundTransition:"default",parallaxBackgroundImage:"",parallaxBackgroundSize:"",viewDistance:3,dependencies:[]},ac=!1,bc=[],cc=1,dc={},ec={},fc=0,gc=0,hc=0,ic=0,jc=!1,kc=0,lc=0,mc=-1,nc=!1,oc={startX:0,startY:0,startSpan:0,startCount:0,captured:!1,threshold:40};return Pb.prototype.setPlaying=function(a){var b=this.playing;this.playing=a,!b&&this.playing?this.animate():this.render()},Pb.prototype.animate=function(){var a=this.progress;this.progress=this.progressCheck(),a>.8&&this.progress<.2&&(this.progressOffset=this.progress),this.render(),this.playing&&ec.requestAnimationFrameMethod.call(window,this.animate.bind(this))},Pb.prototype.render=function(){var a=this.playing?this.progress:0,b=this.diameter/2-this.thickness,c=this.diameter/2,d=this.diameter/2,e=14;this.progressOffset+=.1*(1-this.progressOffset);var f=-Math.PI/2+a*2*Math.PI,g=-Math.PI/2+this.progressOffset*2*Math.PI;this.context.save(),this.context.clearRect(0,0,this.diameter,this.diameter),this.context.beginPath(),this.context.arc(c,d,b+2,0,2*Math.PI,!1),this.context.fillStyle="rgba( 0, 0, 0, 0.4 )",this.context.fill(),this.context.beginPath(),this.context.arc(c,d,b,0,2*Math.PI,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#666",this.context.stroke(),this.playing&&(this.context.beginPath(),this.context.arc(c,d,b,g,f,!1),this.context.lineWidth=this.thickness,this.context.strokeStyle="#fff",this.context.stroke()),this.context.translate(c-e/2,d-e/2),this.playing?(this.context.fillStyle="#fff",this.context.fillRect(0,0,e/2-2,e),this.context.fillRect(e/2+2,0,e/2-2,e)):(this.context.beginPath(),this.context.translate(2,0),this.context.moveTo(0,0),this.context.lineTo(e-2,e/2),this.context.lineTo(0,e),this.context.fillStyle="#fff",this.context.fill()),this.context.restore()},Pb.prototype.on=function(a,b){this.canvas.addEventListener(a,b,!1)},Pb.prototype.off=function(a,b){this.canvas.removeEventListener(a,b,!1)},Pb.prototype.destroy=function(){this.playing=!1,this.canvas.parentNode&&this.container.removeChild(this.canvas)},{initialize:a,configure:h,sync:P,slide:O,left:nb,right:ob,up:pb,down:qb,prev:rb,next:sb,navigateFragment:gb,prevFragment:ib,nextFragment:hb,navigateTo:O,navigateLeft:nb,navigateRight:ob,navigateUp:pb,navigateDown:qb,navigatePrev:rb,navigateNext:sb,layout:A,availableRoutes:Z,availableFragments:$,toggleOverview:G,togglePause:M,isOverview:H,isPaused:N,addEventListeners:i,removeEventListeners:j,getIndices:eb,getSlide:function(a,b){var c=document.querySelectorAll(Yb)[a],d=c&&c.querySelectorAll("section");
-return"undefined"!=typeof b?d?d[b]:void 0:c},getPreviousSlide:function(){return Sb},getCurrentSlide:function(){return Tb},getScale:function(){return cc},getConfig:function(){return _b},getQueryHash:function(){var a={};location.search.replace(/[A-Z0-9]+?=([\w\.%-]*)/gi,function(b){a[b.split("=").shift()]=b.split("=").pop()});for(var b in a){var c=a[b];a[b]=unescape(c),"null"===c?a[b]=null:"true"===c?a[b]=!0:"false"===c?a[b]=!1:c.match(/^\d+$/)&&(a[b]=parseFloat(c))}return a},isFirstSlide:function(){return null==document.querySelector(Xb+".past")?!0:!1},isLastSlide:function(){return Tb?Tb.nextElementSibling?!1:I(Tb)&&Tb.parentNode.nextElementSibling?!1:!0:!1},isReady:function(){return ac},addEventListener:function(a,b,c){"addEventListener"in window&&(dc.wrapper||document.querySelector(".reveal")).addEventListener(a,b,c)},removeEventListener:function(a,b,c){"addEventListener"in window&&(dc.wrapper||document.querySelector(".reveal")).removeEventListener(a,b,c)}}}();
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/css/zenburn.css b/docs/slides/IHP14/_support/reveal.js/lib/css/zenburn.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/css/zenburn.css
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-
-Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
-based on dark.css by Ivan Sagalaev
-
-*/
-
-pre code {
-  display: block; padding: 0.5em;
-  background: #3F3F3F;
-  color: #DCDCDC;
-}
-
-pre .keyword,
-pre .tag,
-pre .css .class,
-pre .css .id,
-pre .lisp .title,
-pre .nginx .title,
-pre .request,
-pre .status,
-pre .clojure .attribute {
-  color: #E3CEAB;
-}
-
-pre .django .template_tag,
-pre .django .variable,
-pre .django .filter .argument {
-  color: #DCDCDC;
-}
-
-pre .number,
-pre .date {
-  color: #8CD0D3;
-}
-
-pre .dos .envvar,
-pre .dos .stream,
-pre .variable,
-pre .apache .sqbracket {
-  color: #EFDCBC;
-}
-
-pre .dos .flow,
-pre .diff .change,
-pre .python .exception,
-pre .python .built_in,
-pre .literal,
-pre .tex .special {
-  color: #EFEFAF;
-}
-
-pre .diff .chunk,
-pre .subst {
-  color: #8F8F8F;
-}
-
-pre .dos .keyword,
-pre .python .decorator,
-pre .title,
-pre .haskell .type,
-pre .diff .header,
-pre .ruby .class .parent,
-pre .apache .tag,
-pre .nginx .built_in,
-pre .tex .command,
-pre .prompt {
-    color: #efef8f;
-}
-
-pre .dos .winutils,
-pre .ruby .symbol,
-pre .ruby .symbol .string,
-pre .ruby .string {
-  color: #DCA3A3;
-}
-
-pre .diff .deletion,
-pre .string,
-pre .tag .value,
-pre .preprocessor,
-pre .built_in,
-pre .sql .aggregate,
-pre .javadoc,
-pre .smalltalk .class,
-pre .smalltalk .localvars,
-pre .smalltalk .array,
-pre .css .rules .value,
-pre .attr_selector,
-pre .pseudo,
-pre .apache .cbracket,
-pre .tex .formula {
-  color: #CC9393;
-}
-
-pre .shebang,
-pre .diff .addition,
-pre .comment,
-pre .java .annotation,
-pre .template_comment,
-pre .pi,
-pre .doctype {
-  color: #7F9F7F;
-}
-
-pre .coffeescript .javascript,
-pre .javascript .xml,
-pre .tex .formula,
-pre .xml .javascript,
-pre .xml .vbscript,
-pre .xml .css,
-pre .xml .cdata {
-  opacity: 0.5;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.eot b/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.eot
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.eot and /dev/null differ
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.svg b/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.svg
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="LeagueGothicRegular" horiz-adv-x="724" >
-<font-face units-per-em="2048" ascent="1505" descent="-543" />
-<missing-glyph horiz-adv-x="315" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="682" />
-<glyph unicode=" "  horiz-adv-x="315" />
-<glyph unicode="&#x09;" horiz-adv-x="315" />
-<glyph unicode="&#xa0;" horiz-adv-x="315" />
-<glyph unicode="!" horiz-adv-x="387" d="M74 1505h239l-55 -1099h-129zM86 0v227h215v-227h-215z" />
-<glyph unicode="&#x22;" horiz-adv-x="329" d="M57 1505h215l-30 -551h-154z" />
-<glyph unicode="#" horiz-adv-x="1232" d="M49 438l27 195h198l37 258h-196l26 194h197l57 420h197l-57 -420h260l57 420h197l-58 -420h193l-27 -194h-192l-37 -258h190l-26 -195h-191l-59 -438h-197l60 438h-261l-59 -438h-197l60 438h-199zM471 633h260l37 258h-260z" />
-<glyph unicode="$" horiz-adv-x="692" d="M37 358l192 13q12 -186 129 -187q88 0 93 185q0 74 -61 175q-21 36 -34 53l-40 55q-28 38 -65.5 90t-70.5 101.5t-70.5 141.5t-37.5 170q4 293 215 342v131h123v-125q201 -23 235 -282l-192 -25q-14 129 -93 125q-80 -2 -84 -162q0 -102 94 -227l41 -59q30 -42 37 -52 t33 -48l37 -52q41 -57 68 -109l26 -55q43 -94 43 -186q-4 -338 -245 -369v-217h-123v221q-236 41 -250 352z" />
-<glyph unicode="%" horiz-adv-x="1001" d="M55 911v437q0 110 82 156q33 18 90.5 18t97.5 -44t44 -87l4 -43v-437q0 -107 -81 -157q-32 -19 -77 -19q-129 0 -156 135zM158 0l553 1505h131l-547 -1505h-137zM178 911q-4 -55 37 -55q16 0 25.5 14.5t9.5 26.5v451q2 55 -35 55q-18 0 -27.5 -13.5t-9.5 -27.5v-451z M631 158v436q0 108 81 156q33 20 79 20q125 0 153 -135l4 -41v-436q0 -110 -80 -156q-32 -18 -90.5 -18t-98.5 43t-44 88zM754 158q-4 -57 37 -58q37 0 34 58v436q2 55 -34 55q-18 0 -27.5 -13t-9.5 -28v-450z" />
-<glyph unicode="&#x26;" horiz-adv-x="854" d="M49 304q0 126 44 225.5t126 222.5q-106 225 -106 442v18q0 94 47 180q70 130 223 130q203 0 252 -215q14 -61 12 -113q0 -162 -205 -434q76 -174 148 -285q33 96 47 211l176 -33q-16 -213 -92 -358q55 -63 92 -76v-235q-23 0 -86 37.5t-123 101.5q-123 -139 -252 -139 t-216 97t-87 223zM263 325.5q1 -65.5 28.5 -107.5t78.5 -42t117 86q-88 139 -174 295q-18 -30 -34.5 -98t-15.5 -133.5zM305 1194q0 -111 55 -246q101 156 101 252q-2 2 0 15.5t-2 36t-11 42.5q-19 52 -61.5 52t-62 -38t-19.5 -75v-39z" />
-<glyph unicode="'" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="(" horiz-adv-x="561" d="M66 645q0 143 29.5 292.5t73.5 261.5q92 235 159 343l30 47l162 -84q-38 -53 -86.5 -148t-82.5 -189.5t-61.5 -238t-27.5 -284.5t26.5 -282.5t64.5 -240.5q80 -207 141 -296l26 -39l-162 -84q-41 61 -96 173t-94 217.5t-70.5 257t-31.5 294.5z" />
-<glyph unicode=")" horiz-adv-x="561" d="M41 -213q36 50 85.5 147t83.5 190t61.5 236.5t27.5 284.5t-26.5 282.5t-64.5 240.5q-78 205 -140 298l-27 39l162 84q41 -61 96 -173.5t94 -217t71 -257.5t32 -296t-30 -292.5t-74 -260.5q-92 -233 -159 -342l-30 -47z" />
-<glyph unicode="*" horiz-adv-x="677" d="M74 1251l43 148l164 -70l-19 176h154l-19 -176l164 70l43 -148l-172 -34l115 -138l-131 -80l-78 152l-76 -152l-131 80l115 138z" />
-<glyph unicode="+" horiz-adv-x="1060" d="M74 649v172h370v346h172v-346h371v-172h-371v-346h-172v346h-370z" />
-<glyph unicode="," horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="-" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="." horiz-adv-x="321" d="M53 0v227h215v-227h-215z" />
-<glyph unicode="/" horiz-adv-x="720" d="M8 -147l543 1652h162l-537 -1652h-168z" />
-<glyph unicode="0" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="1" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="2" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="3" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="4" horiz-adv-x="684" d="M25 328v194l323 983h221v-983h103v-194h-103v-328h-202v328h-342zM213 522h154v516h-13z" />
-<glyph unicode="5" horiz-adv-x="704" d="M74 438h221v-59q0 -115 14.5 -159t52 -44t53 45t15.5 156v336q0 111 -70 110q-33 0 -59.5 -40t-26.5 -70h-186v792h535v-219h-344v-313q74 55 127 51q78 0 133 -40t77 -100q35 -98 35 -171v-336q0 -393 -289 -393q-78 0 -133 29.5t-84.5 71.5t-46.5 109q-24 98 -24 244z " />
-<glyph unicode="6" horiz-adv-x="700" d="M66 309v856q0 356 288.5 356.5t288.5 -356.5v-94h-221q0 162 -11.5 210t-53.5 48t-56 -37t-14 -127v-268q59 37 124.5 37t119 -36t75.5 -93q37 -92 37 -189v-307q0 -90 -42 -187q-26 -61 -89 -99.5t-157.5 -38.5t-158 38.5t-88.5 99.5q-42 98 -42 187zM287 244 q0 -20 17.5 -44t49 -24t50 24.5t18.5 43.5v450q0 18 -18.5 43t-49 25t-48 -20.5t-19.5 -41.5v-456z" />
-<glyph unicode="7" horiz-adv-x="589" d="M8 1286v219h557v-221l-221 -1284h-229l225 1286h-332z" />
-<glyph unicode="8" horiz-adv-x="696" d="M53 322v176q0 188 115 297q-102 102 -102 276v127q0 213 147 293q57 31 135 31t135.5 -31t84 -71t42.5 -93q21 -66 21 -129v-127q0 -174 -103 -276q115 -109 115 -297v-176q0 -222 -153 -306q-60 -32 -142 -32t-141.5 32.5t-88 73.5t-44.5 96q-21 69 -21 136zM269 422 q1 -139 16.5 -187.5t57.5 -48.5t59.5 30t21.5 71t4 158t-13.5 174t-66.5 57t-66.5 -57.5t-12.5 -196.5zM284 1116q-1 -123 11 -173t53 -50t53.5 50t12.5 170t-12.5 167t-51.5 47t-52 -44t-14 -167z" />
-<glyph unicode="9" horiz-adv-x="700" d="M57 340v94h222q0 -162 11 -210t53 -48t56.5 37t14.5 127v283q-59 -37 -125 -37t-119 35.5t-76 92.5q-37 96 -37 189v293q0 87 43 188q25 60 88.5 99t157.5 39t157.5 -39t88.5 -99q43 -101 43 -188v-856q0 -356 -289 -356t-289 356zM279 825q0 -18 18 -42.5t49 -24.5 t48.5 20.5t19.5 40.5v443q0 20 -17.5 43.5t-49.5 23.5t-50 -24.5t-18 -42.5v-437z" />
-<glyph unicode=":" horiz-adv-x="362" d="M74 0v227h215v-227h-215zM74 893v227h215v-227h-215z" />
-<glyph unicode=";" horiz-adv-x="362" d="M74 0v227h215v-227l-113 -266h-102l71 266h-71zM74 893v227h215v-227h-215z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="=" horiz-adv-x="1058" d="M74 477v172h911v-172h-911zM74 864v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="?" horiz-adv-x="645" d="M25 1260q24 67 78 131q105 128 235 122q82 -2 138 -33.5t82 -81.5q46 -88 46 -170.5t-80 -219.5l-57 -96q-18 -32 -42 -106.5t-24 -143.5v-256h-190v256q0 102 24.5 195t48 140t65.5 118t50 105t-9 67.5t-60 34.5t-78 -48t-49 -98zM199 0h215v227h-215v-227z" />
-<glyph unicode="@" horiz-adv-x="872" d="M66 303v889q0 97 73 200q39 56 117 93t184.5 37t184 -37t116.5 -93q74 -105 74 -200v-793h-164l-20 56q-14 -28 -46 -48t-67 -20q-145 0 -145 172v485q0 170 145 170q71 0 113 -67v45q0 51 -45 104.5t-145.5 53.5t-145.5 -53.5t-45 -104.5v-889q0 -53 44 -103t153.5 -50 t160.5 63l152 -86q-109 -143 -320 -143q-106 0 -184 35.5t-117 90.5q-73 102 -73 193zM535 573q0 -53 48 -53t48 53v455q0 53 -48 53t-48 -53v-455z" />
-<glyph unicode="A" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="B" horiz-adv-x="745" d="M82 0v1505h194q205 0 304.5 -91t99.5 -308q0 -106 -29.5 -175t-107.5 -136q14 -5 47 -38.5t54 -71.5q52 -97 52 -259q0 -414 -342 -426h-272zM303 219q74 0 109 31q55 56 55 211t-63 195q-42 26 -93 26h-8v-463zM303 885q87 0 119 39q45 55 45 138t-14.5 124t-30.5 60.5 t-45 28.5q-35 11 -74 11v-401z" />
-<glyph unicode="C" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175z" />
-<glyph unicode="D" horiz-adv-x="761" d="M82 0v1505h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174zM303 221q117 0 140.5 78t23.5 399v111q0 322 -23.5 398.5t-140.5 76.5v-1063z" />
-<glyph unicode="E" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506z" />
-<glyph unicode="F" horiz-adv-x="616" d="M82 0v1505h526v-227h-305v-395h205v-228h-205v-655h-221z" />
-<glyph unicode="G" horiz-adv-x="737" d="M67 271.5q0 26.5 1 37.5v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-231h-221v231q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-905q0 -46 19.5 -78.5t54 -32.5t53 28t18.5 54l2 29v272h-88v187h309v-750h-131l-26 72 q-70 -88 -172 -88q-203 0 -250 213q-11 48 -11 74.5z" />
-<glyph unicode="H" horiz-adv-x="778" d="M82 0v1505h221v-622h172v622h221v-1505h-221v655h-172v-655h-221z" />
-<glyph unicode="I" horiz-adv-x="385" d="M82 0v1505h221v-1505h-221z" />
-<glyph unicode="J" horiz-adv-x="423" d="M12 -14v217q4 0 12.5 -1t29 2t35.5 12t28.5 34.5t13.5 62.5v1192h221v-1226q0 -137 -74 -216q-74 -78 -223 -78h-4q-19 0 -39 1z" />
-<glyph unicode="K" horiz-adv-x="768" d="M82 0v1505h221v-526h8l195 526h215l-203 -495l230 -1010h-216l-153 655l-6 31h-6l-64 -154v-532h-221z" />
-<glyph unicode="L" horiz-adv-x="604" d="M82 0v1505h221v-1300h293v-205h-514z" />
-<glyph unicode="M" horiz-adv-x="991" d="M82 0v1505h270l131 -688l11 -80h4l10 80l131 688h270v-1505h-204v1010h-13l-149 -1010h-94l-142 946l-8 64h-12v-1010h-205z" />
-<glyph unicode="N" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203z" />
-<glyph unicode="O" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="P" horiz-adv-x="720" d="M82 0v1505h221q166 0 277.5 -105.5t111.5 -345t-111.5 -346t-277.5 -106.5v-602h-221zM303 827q102 0 134 45.5t32 175.5t-33 181t-133 51v-453z" />
-<glyph unicode="Q" horiz-adv-x="729" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -94 -45 -182q33 -43 88 -53v-189q-160 0 -227 117q-55 -18 -125 -18t-130 33.5t-88 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887 q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="R" horiz-adv-x="739" d="M82 0v1505h221q377 0 377 -434q0 -258 -123 -342l141 -729h-221l-115 635h-59v-635h-221zM303 840q117 0 149 98q15 49 15 125t-15.5 125t-45.5 68q-44 30 -103 30v-446z" />
-<glyph unicode="S" horiz-adv-x="702" d="M37 422l217 20q0 -256 104 -256q90 0 91 166q0 59 -32 117.5t-45 79.5l-54 79q-40 58 -77 113t-73.5 117t-68 148.5t-31.5 162.5q0 139 71.5 245t216.5 108h10q88 0 152 -36t94 -100q54 -120 54 -264l-217 -20q0 217 -89 217q-75 -2 -75 -146q0 -59 23 -105 q32 -66 58 -104l197 -296q31 -49 67 -139.5t36 -166.5q0 -378 -306 -378h-2q-229 0 -290 188q-31 99 -31 250z" />
-<glyph unicode="T" horiz-adv-x="647" d="M4 1278v227h639v-227h-209v-1278h-221v1278h-209z" />
-<glyph unicode="U" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175z" />
-<glyph unicode="V" horiz-adv-x="716" d="M18 1505h215l111 -827l8 -64h13l118 891h215l-229 -1505h-221z" />
-<glyph unicode="W" horiz-adv-x="1036" d="M25 1505h204l88 -782l5 -49h16l100 831h160l100 -831h17l92 831h205l-203 -1505h-172l-115 801h-8l-115 -801h-172z" />
-<glyph unicode="X" horiz-adv-x="737" d="M16 0l244 791l-240 714h218l120 -381l7 -18h8l127 399h217l-240 -714l244 -791h-217l-127 449l-4 18h-8l-132 -467h-217z" />
-<glyph unicode="Y" horiz-adv-x="700" d="M14 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641z" />
-<glyph unicode="Z" horiz-adv-x="626" d="M20 0v238l347 1048h-297v219h536v-219l-352 -1067h352v-219h-586z" />
-<glyph unicode="[" horiz-adv-x="538" d="M82 -213v1718h399v-196h-202v-1325h202v-197h-399z" />
-<glyph unicode="\" horiz-adv-x="792" d="M8 1692h162l614 -1872h-168z" />
-<glyph unicode="]" horiz-adv-x="538" d="M57 -16h203v1325h-203v196h400v-1718h-400v197z" />
-<glyph unicode="^" horiz-adv-x="1101" d="M53 809l381 696h234l381 -696h-199l-299 543l-299 -543h-199z" />
-<glyph unicode="_" horiz-adv-x="1210" d="M74 -154h1063v-172h-1063v172z" />
-<glyph unicode="`" horiz-adv-x="1024" d="M293 1489h215l106 -184h-159z" />
-<glyph unicode="a" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="b" horiz-adv-x="686" d="M82 0v1505h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-74h-207zM289 246q0 -29 19.5 -48.5t42 -19.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -21.5t-19.5 -46.5v-628z" />
-<glyph unicode="c" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331z" />
-<glyph unicode="d" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v458h207v-1505h-207v74q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 19.5t19.5 48.5v628q0 25 -19.5 46.5t-42 21.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="e" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="f" horiz-adv-x="475" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-65 0 -65 -175v-5v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="g" horiz-adv-x="700" d="M12 -184q0 94 162 170q-125 35 -125 149q0 45 40 93t89 75q-51 35 -80.5 95.5t-34.5 105.5l-4 43v305q0 35 16.5 91t41 94t79 69t126.5 31q135 0 206 -103q102 102 170 103v-185q-72 0 -120 -24l10 -70v-317q0 -37 -17.5 -90.5t-42 -90t-79 -66.5t-104.5 -30t-62 2 q-29 -25 -29 -46t11 -33.5t42 -20.5t45.5 -10t65.5 -10.5t95 -21.5t89 -41q96 -60 96 -205t-103 -212q-100 -65 -250 -65h-9q-156 2 -240 50t-84 165zM213 -150q0 -77 132 -77h3q59 0 108.5 19t49.5 54t-20.5 52.5t-90.5 29.5l-106 21q-76 -43 -76 -99zM262 509 q0 -17 15.5 -45t44.5 -28q63 6 63 101v307q-2 0 0 10q1 3 1 7q0 8 -3 19q-4 15 -9 30q-11 36 -46 36t-50.5 -25.5t-15.5 -52.5v-359z" />
-<glyph unicode="h" horiz-adv-x="690" d="M82 0v1505h207v-479l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="i" horiz-adv-x="370" d="M82 0v1120h207v-1120h-207zM82 1298v207h207v-207h-207z" />
-<glyph unicode="j" horiz-adv-x="364" d="M-45 -182q29 -8 57 -8q64 0 64 142v1168h207v-1149q0 -186 -51 -266q-23 -35 -71 -62.5t-115 -27.5t-91 12v191zM76 1298v207h207v-207h-207z" />
-<glyph unicode="k" horiz-adv-x="641" d="M82 0v1505h207v-714h10l113 329h186l-149 -364l188 -756h-199l-102 453l-4 16h-10l-33 -82v-387h-207z" />
-<glyph unicode="l" horiz-adv-x="370" d="M82 0v1505h207v-1505h-207z" />
-<glyph unicode="m" horiz-adv-x="1021" d="M82 0v1120h207v-94q2 0 33 30q80 81 139 81q100 0 139 -125q125 125 194.5 125t109.5 -69t40 -150v-918h-194v887q-1 49 -56 49q-41 0 -78 -53v-883h-194v887q0 49 -55 49q-41 0 -78 -53v-883h-207z" />
-<glyph unicode="n" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="o" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="p" horiz-adv-x="686" d="M82 -385v1505h207v-73q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="q" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v73h207v-1505h-207v459q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 21.5t19.5 46.5v628q0 29 -19.5 48.5t-42 19.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="r" horiz-adv-x="503" d="M82 0v1120h207v-125q8 41 58.5 91.5t148.5 50.5v-230q-34 11 -77 11t-86.5 -39t-43.5 -101v-778h-207z" />
-<glyph unicode="s" horiz-adv-x="630" d="M37 326h192q0 -170 97 -170q71 0 71 131q0 78 -129 202q-68 66 -98.5 99t-64 101.5t-33.5 134t12 114.5t39 95q59 100 201 104h11q161 0 211 -105q42 -86 42 -198h-193q0 131 -67 131q-63 -2 -64 -131q0 -33 23.5 -73t45 -62.5t66.5 -65.5q190 -182 191 -342 q0 -123 -64.5 -215t-199.5 -92q-197 0 -260 170q-29 76 -29 172z" />
-<glyph unicode="t" horiz-adv-x="501" d="M20 934v186h105v277h207v-277h141v-186h-141v-557q0 -184 65 -184l76 8v-203q-45 -14 -112 -14t-114.5 28.5t-70 64.5t-34.5 96q-17 79 -17 187v574h-105z" />
-<glyph unicode="u" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5z" />
-<glyph unicode="v" horiz-adv-x="602" d="M16 1120h201l68 -649l8 -72h16l76 721h201l-183 -1120h-204z" />
-<glyph unicode="w" horiz-adv-x="905" d="M20 1120h189l65 -585l9 -64h12l96 649h123l86 -585l10 -64h13l73 649h189l-166 -1120h-172l-80 535l-10 63h-8l-91 -598h-172z" />
-<glyph unicode="x" horiz-adv-x="618" d="M16 0l193 578l-176 542h194l74 -262l6 -31h4l6 31l74 262h195l-176 -542l192 -578h-201l-84 283l-6 30h-4l-6 -30l-84 -283h-201z" />
-<glyph unicode="y" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5z" />
-<glyph unicode="z" horiz-adv-x="532" d="M12 0v168l285 764h-240v188h459v-168l-285 -764h285v-188h-504z" />
-<glyph unicode="{" horiz-adv-x="688" d="M61 453v163q72 0 102 49.5t30 90.5v397q0 223 96 298t342 71v-172q-135 2 -188.5 -38t-53.5 -159v-397q0 -143 -127 -221q127 -82 127 -222v-397q0 -119 53.5 -159t188.5 -38v-172q-246 -4 -342 71t-96 298v397q0 57 -41 97.5t-91 42.5z" />
-<glyph unicode="|" horiz-adv-x="356" d="M82 -512v2204h192v-2204h-192z" />
-<glyph unicode="}" horiz-adv-x="688" d="M57 -281q135 -2 188.5 38t53.5 159v397q0 139 127 222q-127 78 -127 221v397q0 119 -53 159t-189 38v172q246 4 342.5 -71t96.5 -298v-397q0 -63 41 -101.5t90 -38.5v-163q-72 -4 -101.5 -52.5t-29.5 -87.5v-397q0 -223 -96.5 -298t-342.5 -71v172z" />
-<glyph unicode="~" horiz-adv-x="1280" d="M113 1352q35 106 115 200q34 41 94.5 74t121 33t116.5 -18.5t82 -33t83 -51.5q106 -72 174 -71q109 0 178 153l13 29l135 -57q-63 -189 -206 -276q-56 -34 -120 -34q-121 0 -272 101q-115 74 -178.5 74t-113.5 -45.5t-69 -90.5l-18 -45z" />
-<glyph unicode="&#xa1;" horiz-adv-x="387" d="M74 -385l55 1100h129l55 -1100h-239zM86 893v227h215v-227h-215z" />
-<glyph unicode="&#xa2;" horiz-adv-x="636" d="M66 508v489q0 297 208 328v242h123v-244q98 -16 144.5 -88t46.5 -227v-88h-189v135q0 90 -72.5 90t-72.5 -90v-604q0 -90 72 -91q74 0 73 91v155h189v-108q0 -156 -46 -228.5t-145 -89.5v-303h-123v301q-209 31 -208 330z" />
-<glyph unicode="&#xa3;" horiz-adv-x="817" d="M4 63q8 20 23.5 53.5t70 91.5t117.5 68q37 111 37 189t-31 184h-188v137h147l-6 21q-78 254 -78 333t15.5 140t48.5 116q72 122 231 126q190 4 267 -126q65 -108 65 -276h-213q0 201 -115 197q-47 -2 -68.5 -51t-21.5 -139.5t70 -315.5l6 -25h211v-137h-174 q25 -100 24.5 -189t-57.5 -204q16 -8 44 -24q59 -35 89 -35q74 4 82 190l188 -22q-12 -182 -81.5 -281.5t-169.5 -99.5q-51 0 -143.5 51t-127.5 51t-63.5 -25.5t-40.5 -52.5l-12 -24z" />
-<glyph unicode="&#xa5;" horiz-adv-x="720" d="M25 1505h217l110 -481l6 -14h4l7 14l110 481h217l-196 -753h147v-138h-176v-137h176v-137h-176v-340h-221v340h-176v137h176v137h-176v138h147z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1024" d="M272 1305v200h191v-200h-191zM561 1305v200h191v-200h-191z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM627 487v531q0 122 97 174q40 22 95 22 q147 0 182 -147l7 -49v-125h-138v142q0 11 -12 28.5t-37 17.5q-47 -2 -49 -63v-531q0 -63 49 -63q53 2 49 63v125h138v-125q0 -68 -40 -127q-18 -26 -57 -47.5t-108.5 -21.5t-117.5 49t-54 98z" />
-<glyph unicode="&#xaa;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xad;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#xae;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM625 313v879h196q231 0 232 -258 q0 -76 -16.5 -125t-71.5 -96l106 -400h-151l-95 365h-55v-365h-145zM770 805h45q43 0 65.5 21.5t27.5 45t5 61.5t-5 62.5t-27.5 46t-65.5 21.5h-45v-258z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M313 1315v162h398v-162h-398z" />
-<glyph unicode="&#xb2;" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="&#xb3;" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1024" d="M410 1305l106 184h215l-162 -184h-159z" />
-<glyph unicode="&#xb7;" horiz-adv-x="215" d="M0 649v228h215v-228h-215z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1024" d="M426 -111h172v-141l-45 -133h-104l40 133h-63v141z" />
-<glyph unicode="&#xb9;" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="&#xba;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="&#xbf;" horiz-adv-x="645" d="M41 -106q0 82 80 219l57 95q18 32 42 106.5t24 144.5v256h190v-256q0 -102 -24.5 -195.5t-48 -140.5t-65.5 -118t-50 -104.5t9 -67.5t60 -35t78 48.5t49 98.5l179 -84q-24 -66 -78 -132q-104 -126 -236 -122q-163 4 -220 115q-46 90 -46 172zM231 893v227h215v-227h-215z " />
-<glyph unicode="&#xc0;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM141 1823h215l107 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc1;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM293 1638l106 185h215l-161 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc2;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM133 1638l141 185h220l141 -185h-189l-63 72l-61 -72h-189zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc3;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM184 1632v152q49 39 95.5 39t104.5 -18.5t100.5 -19.5t97.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-98 19.5t-102 -33zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc4;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM143 1638v201h191v-201h-191zM307 541h152l-64 475l-6 39h-12zM432 1638v201h191v-201h-191z" />
-<glyph unicode="&#xc5;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM231 1761.5q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM307 541h152l-64 475l-6 39h-12zM309 1761.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50 t-23.5 50t-52.5 21.5t-52.5 -21.5t-23.5 -50z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1099" d="M16 0l420 1505h623v-227h-285v-395h205v-242h-205v-414h285v-227h-506v307h-227l-90 -307h-220zM393 541h160v514h-10z" />
-<glyph unicode="&#xc7;" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM268 -111v-141h64l-41 -133h104l45 133v141h-172z" />
-<glyph unicode="&#xc8;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM111 1823h215l106 -185h-160z" />
-<glyph unicode="&#xc9;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM236 1638l106 185h215l-162 -185h-159z" />
-<glyph unicode="&#xca;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM84 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xcb;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM94 1638v201h191v-201h-191zM383 1638v201h190v-201h-190z" />
-<glyph unicode="&#xcc;" horiz-adv-x="401" d="M-6 1823h215l106 -185h-159zM98 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcd;" horiz-adv-x="401" d="M82 0v1505h221v-1505h-221zM86 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xce;" horiz-adv-x="370" d="M-66 1638l142 185h219l141 -185h-188l-64 72l-61 -72h-189zM74 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcf;" horiz-adv-x="372" d="M-53 1638v201h190v-201h-190zM76 0v1505h221v-1505h-221zM236 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd0;" horiz-adv-x="761" d="M20 655v228h62v622h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174v655h-62zM303 221q117 0 141.5 81t22.5 452q2 371 -22.5 450.5t-141.5 79.5v-401h84v-228h-84v-434z " />
-<glyph unicode="&#xd1;" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203zM207 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39t-102.5 19.5t-100 19.5t-99.5 -33z" />
-<glyph unicode="&#xd2;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM121 1823h215l106 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd3;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM285 1638l106 185h215l-162 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5 t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd4;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM113 1638l141 185h219l141 -185h-188l-64 72l-61 -72h-188zM289 309q0 -46 19.5 -78 t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd5;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM164 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39 t-102.5 19.5t-100 19.5t-99.5 -33zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd6;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM123 1638v201h190v-201h-190zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887zM412 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd8;" d="M59 -20l47 157q-36 74 -36 148l-2 24v887q0 42 17 106t45 107t88.5 78t148 35t153.5 -43l15 47h122l-45 -150q43 -84 43 -155l2 -25v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-150.5 -34.5t-153 43l-15 -47h-129zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v488zM289 727l147 479q-8 100 -74 101q-35 0 -53 -28t-18 -54l-2 -29v-469z" />
-<glyph unicode="&#xd9;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM145 1823h215l107 -185h-160z" />
-<glyph unicode="&#xda;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM307 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xdb;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM125 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xdc;" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175zM135 1638v201h191v-201h-191zM424 1638v201h190v-201h-190z" />
-<glyph unicode="&#xdd;" horiz-adv-x="704" d="M16 1505l226 -864v-641h221v641l225 864h-217l-111 -481l-6 -14h-4l-6 14l-111 481h-217zM254 1638l106 185h215l-161 -185h-160z" />
-<glyph unicode="&#xde;" d="M82 0v1505h219v-241h2q166 0 277.5 -105.5t111.5 -345.5t-111.5 -346.5t-277.5 -106.5v-360h-221zM303 586q102 0 134 45t32 175t-33 181t-133 51v-452z" />
-<glyph unicode="&#xdf;" horiz-adv-x="733" d="M66 0v1235q0 123 70.5 205t206.5 82t204.5 -81t68.5 -197t-88 -181q152 -88 152 -488q0 -362 -87 -475q-46 -59 -102.5 -79.5t-144.5 -20.5v193q45 0 70 25q57 57 57 357q0 316 -57 377q-25 27 -70 27v141q35 0 60.5 33t25.5 84q0 100 -86 100q-74 0 -74 -102v-1235h-206 z" />
-<glyph unicode="&#xe0;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1489h215 l107 -184h-160zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe1;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xe2;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM90 1305 l141 184h220l141 -184h-189l-63 71l-61 -71h-189zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe3;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM143 1305v151 q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe4;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1305v200 h191v-200h-191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM391 1305v200h191v-200h-191z" />
-<glyph unicode="&#xe5;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM188 1421.5 q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM266 1421.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50t-23.5 50t-52.5 21.5t-52.5 -21.5 t-23.5 -50z" />
-<glyph unicode="&#xe6;" horiz-adv-x="989" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t197.5 88q84 0 152 -52q66 51 162 52q199 0 251 -197q14 -51 15 -92v-326h-342v-256q0 -60 38 -88q17 -12 38 -12q70 10 73 113v122h193v-129 q0 -37 -16.5 -93t-41 -95t-80 -69.5t-130.5 -30.5q-158 0 -226 131q-102 -131 -221 -131q-59 0 -112.5 60t-53.5 191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM588 684h149v158q0 48 -19.5 81t-53 33t-53 -28.5t-21.5 -57.5l-2 -28v-158z " />
-<glyph unicode="&#xe7;" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331zM238 -111v-141h63l-41 -133h105l45 133v141h-172z " />
-<glyph unicode="&#xe8;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM102 1489h215l107 -184 h-160zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xe9;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xea;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM80 1305l141 184h219 l142 -184h-189l-63 71l-62 -71h-188zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xeb;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM90 1305v200h191v-200 h-191zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-33 1489h215l107 -184h-160zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M82 0h207v1120h-207v-1120zM82 1305l106 184h215l-161 -184h-160z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-66 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xef;" horiz-adv-x="372" d="M-53 1305v200h190v-200h-190zM82 0v1120h207v-1120h-207zM236 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf0;" horiz-adv-x="673" d="M76 279v579q0 279 172 279q63 0 155 -78q-12 109 -51 203l-82 -72l-55 63l100 88l-45 66l109 100q25 -27 53 -61l94 82l56 -66l-101 -88q125 -201 125 -446v-656q0 -102 -56 -188q-26 -39 -80 -69.5t-129 -30.5t-130 30.5t-80 73.5q-53 91 -53 160zM270 267.5 q-2 -11.5 2 -29t10 -34.5q16 -38 58 -38q70 10 72 113v563q-2 0 0 11t-2 28.5t-10 34.5q-16 40 -60 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207zM147 1305v151q49 39 95.5 39t105 -18.5t97 -19.5t100.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#xf2;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM98 1489h215l107 -184h-160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf3;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5 t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM260 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xf4;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM78 1305l141 184h219l142 -184h-189l-63 71l-62 -71h-188zM258 267.5q-2 -11.5 2 -29 t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf5;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM131 1305v151q49 39 95.5 39t104.5 -18.5t98.5 -19.5t98.5 32v-152q-51 -39 -95 -39 t-102 19.5t-101 19.5t-99 -32zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf6;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM90 1305v200h191v-200h-191zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf8;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t118 32t117.5 -19l21 80h75l-30 -121q88 -84 94 -229v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-120.5 -30.5t-112 16l-20 -78h-80l31 121q-41 39 -64.5 97.5t-25.5 97.5zM258 436l125 486q-18 35 -55 34q-68 -10 -70 -114 v-406zM274 197q17 -31 54 -31q70 10 71 113v403z" />
-<glyph unicode="&#xf9;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM113 1489h215l106 -184h-160z" />
-<glyph unicode="&#xfa;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM274 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfb;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM94 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189z" />
-<glyph unicode="&#xfc;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM106 1305v200h191v-200h-191zM395 1305v200h191v-200h-191z" />
-<glyph unicode="&#xfd;" horiz-adv-x="634" d="M25 1120l190 -1153q0 -68 -36 -123t-97 -61l-49 4v-184q70 -4 92 -4q115 0 192.5 95t94.5 222l198 1204h-202l-82 -688l-4 -57h-9l-4 57l-82 688h-202zM231 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfe;" horiz-adv-x="686" d="M82 -385v1890h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="&#xff;" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5zM78 1305v200h190v-200h-190zM367 1305v200h190v-200h-190z" />
-<glyph unicode="&#x152;" horiz-adv-x="983" d="M68 309v887q0 41 17 101.5t45 100.5t88.5 73.5t143.5 33.5h580v-227h-285v-395h205v-242h-205v-414h285v-227h-580q-84 0 -144 31.5t-88 78.5q-55 91 -60 169zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v901q-6 96 -74 97q-35 0 -53 -28t-18 -54l-2 -29 v-887z" />
-<glyph unicode="&#x153;" horiz-adv-x="995" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t145.5 32t156 -60q66 59 170 60q199 0 252 -197q14 -51 14 -92v-326h-342v-250q0 -46 22.5 -76t53.5 -30q70 10 73 113v122h193v-129q0 -37 -16.5 -93t-41 -95t-80 -69.5t-146 -30.5t-154.5 57q-68 -57 -156 -57t-143.5 30.5 t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM594 684h149v158q0 48 -19 81t-58 33t-55.5 -37.5t-16.5 -70.5v-164z" />
-<glyph unicode="&#x178;" horiz-adv-x="704" d="M16 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641zM113 1638v201h190v-201h-190zM401 1638v201h191v-201h-191z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1021" d="M260 1305l141 184h220l141 -184h-189l-63 71l-61 -71h-189z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1024" d="M313 1305v151q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#x2000;" horiz-adv-x="952" />
-<glyph unicode="&#x2001;" horiz-adv-x="1905" />
-<glyph unicode="&#x2002;" horiz-adv-x="952" />
-<glyph unicode="&#x2003;" horiz-adv-x="1905" />
-<glyph unicode="&#x2004;" horiz-adv-x="635" />
-<glyph unicode="&#x2005;" horiz-adv-x="476" />
-<glyph unicode="&#x2006;" horiz-adv-x="317" />
-<glyph unicode="&#x2007;" horiz-adv-x="317" />
-<glyph unicode="&#x2008;" horiz-adv-x="238" />
-<glyph unicode="&#x2009;" horiz-adv-x="381" />
-<glyph unicode="&#x200a;" horiz-adv-x="105" />
-<glyph unicode="&#x2010;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2011;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2012;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2013;" horiz-adv-x="806" d="M74 649v195h659v-195h-659z" />
-<glyph unicode="&#x2014;" horiz-adv-x="972" d="M74 649v195h825v-195h-825z" />
-<glyph unicode="&#x2018;" horiz-adv-x="309" d="M49 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x2019;" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="&#x201a;" horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="&#x201c;" horiz-adv-x="624" d="M53 1012v227l113 266h102l-71 -266h71v-227h-215zM356 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x201d;" horiz-adv-x="624" d="M53 1012l72 266h-72v227h215v-227l-112 -266h-103zM356 1012l72 266h-72v227h215v-227l-112 -266h-103z" />
-<glyph unicode="&#x201e;" horiz-adv-x="624" d="M53 0v227h215v-227l-112 -266h-103l72 266h-72zM356 0v227h215v-227l-112 -266h-103l72 266h-72z" />
-<glyph unicode="&#x2022;" horiz-adv-x="663" d="M82 815q0 104 72.5 177t177 73t177.5 -72.5t73 -177t-73 -177.5t-177 -73t-177 73t-73 177z" />
-<glyph unicode="&#x2026;" horiz-adv-x="964" d="M53 0v227h215v-227h-215zM375 0v227h215v-227h-215zM696 0v227h215v-227h-215z" />
-<glyph unicode="&#x202f;" horiz-adv-x="381" />
-<glyph unicode="&#x2039;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="&#x203a;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="&#x205f;" horiz-adv-x="476" />
-<glyph unicode="&#x20ac;" horiz-adv-x="813" d="M53 547v137h107v137h-107v137h107v238q0 42 17.5 106t45 107t88 78t144.5 35t144 -34t88 -81q53 -90 61 -178l2 -33v-84h-207v84q-2 0 0 11.5t-3 27.5t-12 33q-18 39 -69 39q-70 -10 -78 -111v-238h233v-137h-233v-137h233v-137h-233v-238q0 -43 21.5 -76.5t59.5 -33.5 t58.5 27.5t20.5 56.5l2 26v84h207v-84q0 -38 -17.5 -104t-45.5 -109t-88 -77.5t-144 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175l-2 35v238h-107z" />
-<glyph unicode="&#x2122;" horiz-adv-x="937" d="M74 1401v104h321v-104h-104v-580h-113v580h-104zM440 821v684h138l67 -319h6l68 319h137v-684h-104v449l-78 -449h-51l-80 449v-449h-103z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 0v1120h1120v-1120h-1120z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2v-184q-41 12 -91 12t-69.5 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h358v-1120h-207v934h-151v-934h-207v934h-105z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2h164v-1505h-207v1329q-37 4 -67.5 4t-50 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="&#xfb03;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1120h207v-1120h-207zM1032 1298v207h207v-207h-207z" />
-<glyph unicode="&#xfb04;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1505h207v-1505h-207z" />
-</font>
-</defs></svg> 
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.ttf b/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.woff b/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.woff
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic-webfont.woff and /dev/null differ
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic_license b/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic_license
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/font/league_gothic_license
+++ /dev/null
@@ -1,2 +0,0 @@
-SIL Open Font License (OFL)
-http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/js/classList.js b/docs/slides/IHP14/_support/reveal.js/lib/js/classList.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/js/classList.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
-if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/js/head.min.js b/docs/slides/IHP14/_support/reveal.js/lib/js/head.min.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/js/head.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
-    Head JS     The only script in your <HEAD>
-    Copyright   Tero Piirainen (tipiirai)
-    License     MIT / http://bit.ly/mit-license
-    Version     0.96
-
-    http://headjs.com
-*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c<a.length;c++)b.call(a,a[c],c)}}function r(a){var b;if(typeof a=="object")for(var c in a)a[c]&&(b={name:c,url:a[c]});else b={name:q(a),url:a};var d=h[b.name];if(d&&d.url===b.url)return d;h[b.name]=b;return b}function q(a){var b=a.split("/"),c=b[b.length-1],d=c.indexOf("?");return d!=-1?c.substring(0,d):c}function p(a){a._done||(a(),a._done=1)}var b=a.documentElement,c,d,e=[],f=[],g={},h={},i=a.createElement("script").async===!0||"MozAppearance"in a.documentElement.style||window.opera,j=window.head_conf&&head_conf.head||"head",k=window[j]=window[j]||function(){k.ready.apply(null,arguments)},l=1,m=2,n=3,o=4;i?k.js=function(){var a=arguments,b=a[a.length-1],c={};t(b)||(b=null),s(a,function(d,e){d!=b&&(d=r(d),c[d.name]=d,x(d,b&&e==a.length-2?function(){u(c)&&p(b)}:null))});return k}:k.js=function(){var a=arguments,b=[].slice.call(a,1),d=b[0];if(!c){f.push(function(){k.js.apply(null,a)});return k}d?(s(b,function(a){t(a)||w(r(a))}),x(r(a[0]),t(d)?d:function(){k.js.apply(null,b)})):x(r(a[0]));return k},k.ready=function(b,c){if(b==a){d?p(c):e.push(c);return k}t(b)&&(c=b,b="ALL");if(typeof b!="string"||!t(c))return k;var f=h[b];if(f&&f.state==o||b=="ALL"&&u()&&d){p(c);return k}var i=g[b];i?i.push(c):i=g[b]=[c];return k},k.ready(a,function(){u()&&s(g.ALL,function(a){p(a)}),k.feature&&k.feature("domloaded",!0)});if(window.addEventListener)a.addEventListener("DOMContentLoaded",z,!1),window.addEventListener("load",z,!1);else if(window.attachEvent){a.attachEvent("onreadystatechange",function(){a.readyState==="complete"&&z()});var A=1;try{A=window.frameElement}catch(B){}!A&&b.doScroll&&function(){try{b.doScroll("left"),z()}catch(a){setTimeout(arguments.callee,1);return}}(),window.attachEvent("onload",z)}!a.readyState&&a.addEventListener&&(a.readyState="loading",a.addEventListener("DOMContentLoaded",handler=function(){a.removeEventListener("DOMContentLoaded",handler,!1),a.readyState="complete"},!1)),setTimeout(function(){c=!0,s(f,function(a){a()})},300)})(document)
diff --git a/docs/slides/IHP14/_support/reveal.js/lib/js/html5shiv.js b/docs/slides/IHP14/_support/reveal.js/lib/js/html5shiv.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/lib/js/html5shiv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-document.createElement('header');
-document.createElement('nav');
-document.createElement('section');
-document.createElement('article');
-document.createElement('aside');
-document.createElement('footer');
-document.createElement('hgroup');
diff --git a/docs/slides/IHP14/_support/reveal.js/package.json b/docs/slides/IHP14/_support/reveal.js/package.json
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/package.json
+++ /dev/null
@@ -1,46 +0,0 @@
-{
-  "name": "reveal.js",
-  "version": "2.6.2",
-  "description": "The HTML Presentation Framework",
-  "homepage": "http://lab.hakim.se/reveal-js",
-  "subdomain": "revealjs",
-  "scripts": {
-    "test": "grunt test",
-    "start": ""
-  },
-  "author": {
-    "name": "Hakim El Hattab",
-    "email": "hakim.elhattab@gmail.com",
-    "web": "http://hakim.se"
-  },
-  "repository": {
-    "type": "git",
-    "url": "git://github.com/hakimel/reveal.js.git"
-  },
-  "engines": {
-    "node": "~0.8.0"
-  },
-  "dependencies": {
-    "underscore": "~1.5.1",
-    "express": "~2.5.9",
-    "mustache": "~0.7.2",
-    "socket.io": "~0.9.13"
-  },
-  "devDependencies": {
-    "grunt-contrib-qunit": "~0.2.2",
-    "grunt-contrib-jshint": "~0.6.4",
-    "grunt-contrib-cssmin": "~0.4.1",
-    "grunt-contrib-uglify": "~0.2.4",
-    "grunt-contrib-watch": "~0.5.3",
-    "grunt-contrib-sass": "~0.5.0",
-    "grunt-contrib-connect": "~0.4.1",
-    "grunt-zip": "~0.7.0",
-    "grunt": "~0.4.0"
-  },
-  "licenses": [
-    {
-      "type": "MIT",
-      "url": "https://github.com/hakimel/reveal.js/blob/master/LICENSE"
-    }
-  ]
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/highlight/highlight.js b/docs/slides/IHP14/_support/reveal.js/plugin/highlight/highlight.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/highlight/highlight.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// START CUSTOM REVEAL.JS INTEGRATION
-(function() {
-	if( typeof window.addEventListener === 'function' ) {
-		var hljs_nodes = document.querySelectorAll( 'pre code' );
-
-		for( var i = 0, len = hljs_nodes.length; i < len; i++ ) {
-			var element = hljs_nodes[i];
-
-			// trim whitespace if data-trim attribute is present
-			if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) {
-				element.innerHTML = element.innerHTML.trim();
-			}
-
-			// Now escape html unless prevented by author
-			if( ! element.hasAttribute( 'data-noescape' )) {
-				element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
-			}
-
-			// re-highlight when focus is lost (for edited code)
-			element.addEventListener( 'focusout', function( event ) {
-				hljs.highlightBlock( event.currentTarget );
-			}, false );
-		}
-	}
-})();
-// END CUSTOM REVEAL.JS INTEGRATION
-
-// highlight.js build includes support for:
-// All languages in master + fsharp
-
-
-var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+(q.parentNode?q.parentNode.className:"")).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(r){function o(s){return(s&&s.source)||s}function p(t,s){return RegExp(o(t),"m"+(r.cI?"i":"")+(s?"g":""))}function q(z,x){if(z.compiled){return}z.compiled=true;var u=[];if(z.k){var s={};function A(B,t){t.split(" ").forEach(function(C){var D=C.split("|");s[D[0]]=[B,D[1]?Number(D[1]):1];u.push(D[0])})}z.lR=p(z.l||hljs.IR+"(?!\\.)",true);if(typeof z.k=="string"){A("keyword",z.k)}else{for(var y in z.k){if(!z.k.hasOwnProperty(y)){continue}A(y,z.k[y])}}z.k=s}if(x){if(z.bWK){z.b="\\b("+u.join("|")+")\\b(?!\\.)\\s*"}z.bR=p(z.b?z.b:"\\B|\\b");if(!z.e&&!z.eW){z.e="\\B|\\b"}if(z.e){z.eR=p(z.e)}z.tE=o(z.e)||"";if(z.eW&&x.tE){z.tE+=(z.e?"|":"")+x.tE}}if(z.i){z.iR=p(z.i)}if(z.r===undefined){z.r=1}if(!z.c){z.c=[]}for(var w=0;w<z.c.length;w++){if(z.c[w]=="self"){z.c[w]=z}q(z.c[w],z)}if(z.starts){q(z.starts,x)}var v=[];for(var w=0;w<z.c.length;w++){v.push(o(z.c[w].b))}if(z.tE){v.push(o(z.tE))}if(z.i){v.push(o(z.i))}z.t=v.length?p(v.join("|"),true):{exec:function(t){return null}}}q(r)}function d(E,F,C){function o(r,N){for(var M=0;M<N.c.length;M++){var L=N.c[M].bR.exec(r);if(L&&L.index==0){return N.c[M]}}}function s(L,r){if(L.e&&L.eR.test(r)){return L}if(L.eW){return s(L.parent,r)}}function t(r,L){return !C&&L.i&&L.iR.test(r)}function y(M,r){var L=G.cI?r[0].toLowerCase():r[0];return M.k.hasOwnProperty(L)&&M.k[L]}function H(){var L=l(w);if(!A.k){return L}var r="";var O=0;A.lR.lastIndex=0;var M=A.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=y(A,M);if(N){v+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=A.lR.lastIndex;M=A.lR.exec(L)}return r+L.substr(O)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function K(){return A.sL!==undefined?z():H()}function J(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){x+=L;w=""}else{if(M.eB){x+=l(r)+L;w=""}else{x+=L;w=r}}A=Object.create(M,{parent:{value:A}})}function D(L,r){w+=L;if(r===undefined){x+=K();return 0}var N=o(r,A);if(N){x+=K();J(N,r);return N.rB?0:r.length}var O=s(A,r);if(O){var M=A;if(!(M.rE||M.eE)){w+=r}x+=K();do{if(A.cN){x+="</span>"}B+=A.r;A=A.parent}while(A!=O.parent);if(M.eE){x+=l(r)}w="";if(O.starts){J(O.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw new Error('Illegal lexem "'+r+'" for mode "'+(A.cN||"<unnamed>")+'"')}w+=r;return r.length||1}var G=e[E];f(G);var A=G;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(F);if(!u){break}q=D(F.substr(p,u.index-p),u[0]);p=u.index+q}D(F.substr(p));return{r:B,keyword_count:v,value:x,language:E}}catch(I){if(I.message.indexOf("Illegal")!=-1){return{r:0,keyword_count:0,value:l(F)}}else{throw I}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s,false);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v,true):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.apache=function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,k:{keyword:"acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",literal:"on off"},c:[a.HCM,{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,{cN:"tag",b:"</?",e:">"},a.QSM]}}(hljs);hljs.LANGUAGES.applescript=function(a){var b=a.inherit(a.QSM,{i:""});var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bWK:true,k:"on",i:"[${=;\\n]",c:[e,d]}].concat(c),i:"//"}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);hljs.LANGUAGES.asciidoc=function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{4,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}}(hljs);hljs.LANGUAGES.avrasm=function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$"},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}}(hljs);hljs.LANGUAGES.axapta=function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"{",i:":",k:"class interface",c:[{cN:"inheritance",bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]}]}}(hljs);hljs.LANGUAGES.bash=function(a){var c={cN:"variable",b:/\$[\w\d#@][\w\d_]*/};var b={cN:"variable",b:/\$\{(.*?)\}/};var e={cN:"string",b:/"/,e:/"/,c:[a.BE,c,b,{cN:"variable",b:/\$\(/,e:/\)/,c:a.BE}],r:0};var d={cN:"string",b:/'/,e:/'/,r:0};return{l:/-?[a-z]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[{cN:"title",b:/\w[\w\d_]*/}],r:0},a.HCM,a.NM,e,d,c,b]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f={cN:"title",b:a};var e={cN:"subst",b:"#\\{",e:"}",k:b,};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",b:"'''",e:"'''",c:[c.BE]},{cN:"string",b:"'",e:"'",c:[c.BE],r:0},{cN:"string",b:'"""',e:'"""',c:[c.BE,e]},{cN:"string",b:'"',e:'"',c:[c.BE,e],r:0},{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*",r:0},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bWK:true,k:"class",e:"$",i:"[:\\[\\]]",c:[{bWK:true,k:"extends",eW:true,i:":",c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true}])}}(hljs);hljs.LANGUAGES.cpp=function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"<",e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.css=function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.d=function(x){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r={b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?',r:0};var f={cN:"string",b:'[rq]"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,t,j,m,s,e,g,d]}}(hljs);hljs.LANGUAGES.delphi=function(b){var f="and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure";var e="safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static";var a={cN:"comment",b:"{",e:"}",r:0};var g={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var d={cN:"string",b:"(#\\d+)+"};var h={cN:"function",bWK:true,e:"[:;]",k:"function constructor|10 destructor|10 procedure|10",c:[{cN:"title",b:b.IR},{cN:"params",b:"\\(",e:"\\)",k:f,c:[c,d]},a,g]};return{cI:true,k:f,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,g,b.CLCM,c,d,b.NM,h,{cN:"class",b:"=\\bclass\\b",e:"end;",k:e,c:[c,d,a,g,b.CLCM,h]}]}}(hljs);hljs.LANGUAGES.diff=function(a){return{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}if(e(l,k)){m=b.concat(m)}if(m.length){g.c=m}}return g}var d={cN:"filter",b:"\\|[A-Za-z]+\\:?",k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:'"',e:'"'}]};var b=[{cN:"template_comment",b:"{%\\s*comment\\s*%}",e:"{%\\s*endcomment\\s*%}"},{cN:"template_comment",b:"{#",e:"#}"},{cN:"template_tag",b:"{%",e:"%}",k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[d]},{cN:"variable",b:"{{",e:"}}",c:[d]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.dos=function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.fsharp=function(a){var b="'[a-zA-Z0-9_]+";return{k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun|10 function global if in inherit inline interface internal lazy let match member module mutable|10 namespace new null of open or override private public rec|10 return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"//",e:"$",rB:true},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bWK:true,e:"\\(|=|$",k:"type",c:[{cN:"title",b:a.UIR}]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"typeparam",b:"<",e:">",c:[{cN:"title",b:b}]},a.CLCM,a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.haml=function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(-#|/).*$",r:0},{b:"^\\s*-(?!#)",starts:{e:"\\n",sL:"ruby"},r:0},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+",r:0},{cN:"value",b:"[#\\.]\\w+",r:0},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,r:0,c:[{cN:"symbol",b:":\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,r:0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0}],r:10},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"},r:0}]}}(hljs);hljs.LANGUAGES.handlebars=function(c){function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}m=d.concat(m);if(m.length){g.c=m}}return g}var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";var e={cN:"variable",b:"[a-zA-Z.]+",k:b};var d=[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z .]+",k:b},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z .]+",k:b},{cN:"variable",b:"[a-zA-Z.]+",k:b}]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"},{b:"->|<-"}]}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",eE:true,i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,sL:"xml"}],r:0},{cN:"function",bWK:true,e:/{/,k:"function",c:[{cN:"title",b:/[A-Za-z$_][0-9A-Za-z$_]*/},{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.lasso=function(b){var a="[a-zA-Z_][a-zA-Z0-9_.]*|&[lg]t;";var c="<\\?(lasso(script)?|=)";return{cI:true,l:a,k:{literal:"true false none minimal full all infinity nan and or not bw ew cn lt lte gt gte eq neq ft rx nrx",built_in:"array date decimal duration integer map pair string tag xml null list queue set stack staticarray local var variable data global self inherited void",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require skip split_thread sum take thread to trait type where with yield"},c:[{cN:"preprocessor",b:"\\]|\\?>",r:0,starts:{cN:"markup",e:"\\[|"+c,rE:true}},{cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true}},{cN:"preprocessor",b:"\\[no_square_brackets|\\[/noprocess|"+c},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10},b.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},b.CBLCLM,b.CNM,b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",b:"#\\d+|[#$]"+a},{cN:"tag",b:"::",e:a},{cN:"attribute",b:"\\.\\.\\.|-"+b.UIR},{cN:"class",bWK:true,k:"define",eE:true,e:"\\(|=>",c:[{cN:"title",b:b.UIR+"=?"}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var l="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var m="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var k={cN:"shebang",b:"^#!",e:"$"};var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:m},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+m+" +"+m,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var n={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var o={cN:"keyword",b:"[:&]"+l};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,o,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,o,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={eW:true,r:0};j.c=[{cN:"title",b:l},f];f.c=[e,c,j,a].concat(d).concat([h,n,g,o]);return{i:"[^\\s]",c:d.concat([k,a,h,n,e,c,j])}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^    ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.mel=function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variable",b:"\\$\\d",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},a.CLCM,a.CBLCLM]}}(hljs);hljs.LANGUAGES.mizar=function(a){return{k:["environ vocabularies notations constructors definitions registrations theorems schemes requirements","begin end definition registration cluster existence pred func defpred deffunc theorem proof","let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from","be being by means equals implies iff redefine define now not or attr is mode suppose per cases set","thesis contradiction scheme reserve struct","correctness compatibility coherence symmetry assymetry reflexivity irreflexivity","connectedness uniqueness commutativity idempotence involutiveness projectivity"].join(" "),c:[{cN:"comment",b:"::",e:"$"}]}}(hljs);hljs.LANGUAGES.nginx=function(b){var c=[{cN:"variable",b:"\\$\\d+"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+b.UIR}];var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[b.HCM,{cN:"string",b:'"',e:'"',c:[b.BE].concat(c),r:0},{cN:"string",b:"'",e:"'",c:[b.BE].concat(c),r:0},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[b.BE].concat(c)},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[b.BE].concat(c)},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0}].concat(c)};return{c:[b.HCM,{b:b.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:b.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property self synchronized end synthesize id optional required nonatomic super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}(hljs);hljs.LANGUAGES.parser3=function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.profile=function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:a.UIR,r:0}],r:0}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var c=[{cN:"string",b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{cN:"string",b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{cN:"string",b:/(u|r|ur)'/,e:/'/,c:[a.BE],r:10},{cN:"string",b:/(u|r|ur)"/,e:/"/,c:[a.BE],r:10},{cN:"string",b:/(b|br)'/,e:/'/,c:[a.BE]},{cN:"string",b:/(b|br)"/,e:/"/,c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:/\(/,e:/\)/,c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:/:/,i:/[${=;\n]/,c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}])}}(hljs);hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);hljs.LANGUAGES.rib=function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}}(hljs);hljs.LANGUAGES.rsl=function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bWK:true,e:"\\(",k:"surface displacement light volume imager"},{cN:"shading",bWK:true,e:"\\(",k:"illuminate illuminance gather"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.ruleslanguage=function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEMASK|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN DELETE SAVE SAVE_UPDATE CLEAR DETERMINANT LABEL REPORT REVENUE ABORT CALL DONE LEAVE EACH IN LIST NOVALUE FROM TOTAL CHARGE BLOCK AND OR CSV_FILE BILL_PERIOD RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ABORT WARN NUMDAYS RATE_CODE READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}}(hljs);hljs.LANGUAGES.rust=function(b){var d={cN:"title",b:b.UIR};var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char check claim comm const cont copy dir do drop else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut priv pub pure ref return self static str struct task true trait type u16 u32 u64 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b.QSM,{i:null}),b.ASM,c,{cN:"function",bWK:true,e:"(\\(|<)",k:"fn",c:[d]},{cN:"preprocessor",b:"#\\[",e:"\\]"},{bWK:true,e:"(=|<)",k:"type",c:[d],i:"\\S"},{bWK:true,e:"({|<)",k:"trait enum",c:[d],i:"\\S"}]}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.scss=function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include for extend charset import media page font-face namespace",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*"+b+"(\\s+"+b+")*\\s*\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,c:[{cN:"operator",b:"(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.tex=function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",i:"[^,:\\n\\s\\.]",c:[{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.vbnet=function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"(//|endif|gosub|variant|wend)",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}}(hljs);hljs.LANGUAGES.vbscript=function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$"},a.CNM]}}(hljs);hljs.LANGUAGES.vhdl=function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/leap/leap.js b/docs/slides/IHP14/_support/reveal.js/plugin/leap/leap.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/leap/leap.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2013, Leap Motion, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Version 0.2.0 - http://js.leapmotion.com/0.2.0/leap.min.js
- * Grab latest versions from http://js.leapmotion.com/
- */
-
-!function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){var chooseProtocol=require("./protocol").chooseProtocol,EventEmitter=require("events").EventEmitter,_=require("underscore");var BaseConnection=module.exports=function(opts){this.opts=_.defaults(opts||{},{host:"127.0.0.1",enableGestures:false,port:6437,enableHeartbeat:true,heartbeatInterval:100,requestProtocolVersion:3});this.host=opts.host;this.port=opts.port;this.on("ready",function(){this.enableGestures(this.opts.enableGestures);if(this.opts.enableHeartbeat)this.startHeartbeat()});this.on("disconnect",function(){if(this.opts.enableHeartbeat)this.stopHeartbeat()});this.heartbeatTimer=null};BaseConnection.prototype.getUrl=function(){return"ws://"+this.host+":"+this.port+"/v"+this.opts.requestProtocolVersion+".json"};BaseConnection.prototype.sendHeartbeat=function(){if(this.protocol){this.setHeartbeatState(true);this.protocol.sendHeartbeat(this)}};BaseConnection.prototype.handleOpen=function(){this.emit("connect")};BaseConnection.prototype.enableGestures=function(enabled){this.gesturesEnabled=enabled?true:false;this.send(this.protocol.encode({enableGestures:this.gesturesEnabled}))};BaseConnection.prototype.handleClose=function(){this.disconnect();this.startReconnection()};BaseConnection.prototype.startReconnection=function(){var connection=this;setTimeout(function(){connection.connect()},1e3)};BaseConnection.prototype.disconnect=function(){if(!this.socket)return;this.socket.close();delete this.socket;delete this.protocol;this.emit("disconnect")};BaseConnection.prototype.handleData=function(data){var message=JSON.parse(data);var messageEvent;if(this.protocol===undefined){messageEvent=this.protocol=chooseProtocol(message);this.emit("ready")}else{messageEvent=this.protocol(message)}this.emit(messageEvent.type,messageEvent)};BaseConnection.prototype.connect=function(){if(this.socket)return;this.socket=this.setupSocket();return true};BaseConnection.prototype.send=function(data){this.socket.send(data)};BaseConnection.prototype.stopHeartbeat=function(){if(!this.heartbeatTimer)return;clearInterval(this.heartbeatTimer);delete this.heartbeatTimer;this.setHeartbeatState(false)};BaseConnection.prototype.setHeartbeatState=function(state){if(this.heartbeatState===state)return;this.heartbeatState=state;this.emit(this.heartbeatState?"focus":"blur")};_.extend(BaseConnection.prototype,EventEmitter.prototype)},{"./protocol":12,events:17,underscore:20}],2:[function(require,module,exports){var CircularBuffer=module.exports=function(size){this.pos=0;this._buf=[];this.size=size};CircularBuffer.prototype.get=function(i){if(i==undefined)i=0;if(i>=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:<br/>";out+=this.toString();out+="<br/><br/>Hands:<br/>";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+="  "+this.hands[handIdx].toString()+"<br/>"}out+="<br/><br/>Pointables:<br/>";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+="  "+this.pointables[pointableIdx].toString()+"<br/>"}if(this.gestures){out+="<br/><br/>Gestures:<br/>";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+="  "+this.gestures[gestureIdx].toString()+"<br/>"}}out+="<br/><br/>Raw JSON:<br/>";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);
-out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1]}return a}}();vec2.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};if(typeof exports!=="undefined"){exports.vec2=vec2}var vec3={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec3.create=function(){return new Float32Array(3)};vec3.clone=function(a){var out=new Float32Array(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.fromValues=function(x,y,z){var out=new Float32Array(3);out[0]=x;out[1]=y;out[2]=z;return out};vec3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.set=function(out,x,y,z){out[0]=x;out[1]=y;out[2]=z;return out};vec3.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out};vec3.sub=vec3.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out};vec3.mul=vec3.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out};vec3.div=vec3.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out};vec3.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out};vec3.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out};vec3.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out};vec3.dist=vec3.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrDist=vec3.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z};vec3.len=vec3.length=function(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrLen=vec3.squaredLength=function(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z};vec3.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out};vec3.normalize=function(out,a){var x=a[0],y=a[1],z=a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();vec3.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};if(typeof exports!=="undefined"){exports.vec3=vec3}var vec4={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec4.create=function(){return new Float32Array(4)};vec4.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.fromValues=function(x,y,z,w){var out=new Float32Array(4);out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.set=function(out,x,y,z,w){out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];out[3]=a[3]+b[3];return out};vec4.sub=vec4.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];out[3]=a[3]-b[3];return out};vec4.mul=vec4.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];out[3]=a[3]*b[3];return out};vec4.div=vec4.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];out[3]=a[3]/b[3];return out};vec4.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);out[3]=Math.min(a[3],b[3]);return out};vec4.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);out[3]=Math.max(a[3],b[3]);return out};vec4.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;out[3]=a[3]*b;return out};vec4.dist=vec4.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrDist=vec4.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return x*x+y*y+z*z+w*w};vec4.len=vec4.length=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrLen=vec4.squaredLength=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return x*x+y*y+z*z+w*w};vec4.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=-a[3];return out};vec4.normalize=function(out,a){var x=a[0],y=a[1],z=a[2],w=a[3];var len=x*x+y*y+z*z+w*w;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];vec[3]=a[i+3];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2];a[i+3]=vec[3]}return a}}();vec4.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.vec4=vec4}var mat2={};var mat2Identity=new Float32Array([1,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat2.create=function(){return new Float32Array(mat2Identity)};mat2.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;return out};mat2.transpose=function(out,a){if(out===a){var a1=a[1];out[1]=a[2];out[2]=a1}else{out[0]=a[0];out[1]=a[2];out[2]=a[1];out[3]=a[3]}return out};mat2.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],det=a0*a3-a2*a1;if(!det){return null}det=1/det;out[0]=a3*det;out[1]=-a1*det;out[2]=-a2*det;out[3]=a0*det;return out};mat2.adjoint=function(out,a){var a0=a[0];out[0]=a[3];out[1]=-a[1];out[2]=-a[2];out[3]=a0;return out};mat2.determinant=function(a){return a[0]*a[3]-a[2]*a[1]};mat2.mul=mat2.multiply=function(out,a,b){var a0=a[0],a1=a[1],a2=a[2],a3=a[3];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=a0*b0+a1*b2;out[1]=a0*b1+a1*b3;out[2]=a2*b0+a3*b2;out[3]=a2*b1+a3*b3;return out};mat2.rotate=function(out,a,rad){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],s=Math.sin(rad),c=Math.cos(rad);out[0]=a0*c+a1*s;out[1]=a0*-s+a1*c;out[2]=a2*c+a3*s;out[3]=a2*-s+a3*c;return out};mat2.scale=function(out,a,v){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],v0=v[0],v1=v[1];out[0]=a0*v0;out[1]=a1*v1;out[2]=a2*v0;out[3]=a3*v1;return out};mat2.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.mat2=mat2}var mat3={};var mat3Identity=new Float32Array([1,0,0,0,1,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat3.create=function(){return new Float32Array(mat3Identity)};mat3.clone=function(a){var out=new Float32Array(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out};mat3.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out};mat3.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det){return null}det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out};mat3.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02*a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out};mat3.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)};mat3.mul=mat3.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02=b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out};mat3.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};if(typeof exports!=="undefined"){exports.mat3=mat3}var mat4={};var mat4Identity=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat4.create=function(){return new Float32Array(mat4Identity)};mat4.clone=function(a){var out=new Float32Array(16);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=1;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=1;out[11]=0;out[12]=0;out[13]=0;out[14]=0;out[15]=1;return out};mat4.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a03=a[3],a12=a[6],a13=a[7],a23=a[11];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a01;out[6]=a[9];out[7]=a[13];out[8]=a02;out[9]=a12;out[11]=a[14];out[12]=a03;out[13]=a13;out[14]=a23}else{out[0]=a[0];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a[1];out[5]=a[5];out[6]=a[9];out[7]=a[13];out[8]=a[2];out[9]=a[6];out[10]=a[10];out[11]=a[14];out[12]=a[3];out[13]=a[7];out[14]=a[11];out[15]=a[15]}return out};mat4.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det){return null}det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a02*b10-a01*b11-a03*b09)*det;out[2]=(a31*b05-a32*b04+a33*b03)*det;out[3]=(a22*b04-a21*b05-a23*b03)*det;out[4]=(a12*b08-a10*b11-a13*b07)*det;out[5]=(a00*b11-a02*b08+a03*b07)*det;out[6]=(a32*b02-a30*b05-a33*b01)*det;out[7]=(a20*b05-a22*b02+a23*b01)*det;out[8]=(a10*b10-a11*b08+a13*b06)*det;out[9]=(a01*b08-a00*b10-a03*b06)*det;out[10]=(a30*b04-a31*b02+a33*b00)*det;out[11]=(a21*b02-a20*b04-a23*b00)*det;out[12]=(a11*b07-a10*b09-a12*b06)*det;out[13]=(a00*b09-a01*b07+a02*b06)*det;out[14]=(a31*b01-a30*b03-a32*b00)*det;out[15]=(a20*b03-a21*b01+a22*b00)*det;return out};mat4.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];out[0]=a11*(a22*a33-a23*a32)-a21*(a12*a33-a13*a32)+a31*(a12*a23-a13*a22);out[1]=-(a01*(a22*a33-a23*a32)-a21*(a02*a33-a03*a32)+a31*(a02*a23-a03*a22));out[2]=a01*(a12*a33-a13*a32)-a11*(a02*a33-a03*a32)+a31*(a02*a13-a03*a12);out[3]=-(a01*(a12*a23-a13*a22)-a11*(a02*a23-a03*a22)+a21*(a02*a13-a03*a12));out[4]=-(a10*(a22*a33-a23*a32)-a20*(a12*a33-a13*a32)+a30*(a12*a23-a13*a22));out[5]=a00*(a22*a33-a23*a32)-a20*(a02*a33-a03*a32)+a30*(a02*a23-a03*a22);out[6]=-(a00*(a12*a33-a13*a32)-a10*(a02*a33-a03*a32)+a30*(a02*a13-a03*a12));out[7]=a00*(a12*a23-a13*a22)-a10*(a02*a23-a03*a22)+a20*(a02*a13-a03*a12);out[8]=a10*(a21*a33-a23*a31)-a20*(a11*a33-a13*a31)+a30*(a11*a23-a13*a21);out[9]=-(a00*(a21*a33-a23*a31)-a20*(a01*a33-a03*a31)+a30*(a01*a23-a03*a21));out[10]=a00*(a11*a33-a13*a31)-a10*(a01*a33-a03*a31)+a30*(a01*a13-a03*a11);out[11]=-(a00*(a11*a23-a13*a21)-a10*(a01*a23-a03*a21)+a20*(a01*a13-a03*a11));out[12]=-(a10*(a21*a32-a22*a31)-a20*(a11*a32-a12*a31)+a30*(a11*a22-a12*a21));out[13]=a00*(a21*a32-a22*a31)-a20*(a01*a32-a02*a31)+a30*(a01*a22-a02*a21);out[14]=-(a00*(a11*a32-a12*a31)-a10*(a01*a32-a02*a31)+a30*(a01*a12-a02*a11));out[15]=a00*(a11*a22-a12*a21)-a10*(a01*a22-a02*a21)+a20*(a01*a12-a02*a11);return out};mat4.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32;return b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06};mat4.mul=mat4.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=b0*a00+b1*a10+b2*a20+b3*a30;out[1]=b0*a01+b1*a11+b2*a21+b3*a31;out[2]=b0*a02+b1*a12+b2*a22+b3*a32;out[3]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[4];b1=b[5];b2=b[6];b3=b[7];out[4]=b0*a00+b1*a10+b2*a20+b3*a30;out[5]=b0*a01+b1*a11+b2*a21+b3*a31;out[6]=b0*a02+b1*a12+b2*a22+b3*a32;out[7]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[8];b1=b[9];b2=b[10];b3=b[11];out[8]=b0*a00+b1*a10+b2*a20+b3*a30;out[9]=b0*a01+b1*a11+b2*a21+b3*a31;out[10]=b0*a02+b1*a12+b2*a22+b3*a32;out[11]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[12];b1=b[13];b2=b[14];b3=b[15];out[12]=b0*a00+b1*a10+b2*a20+b3*a30;out[13]=b0*a01+b1*a11+b2*a21+b3*a31;out[14]=b0*a02+b1*a12+b2*a22+b3*a32;out[15]=b0*a03+b1*a13+b2*a23+b3*a33;return out};mat4.translate=function(out,a,v){var x=v[0],y=v[1],z=v[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(a===out){out[12]=a[0]*x+a[4]*y+a[8]*z+a[12];out[13]=a[1]*x+a[5]*y+a[9]*z+a[13];out[14]=a[2]*x+a[6]*y+a[10]*z+a[14];out[15]=a[3]*x+a[7]*y+a[11]*z+a[15]}else{a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];out[0]=a00;out[1]=a01;out[2]=a02;out[3]=a03;out[4]=a10;out[5]=a11;out[6]=a12;out[7]=a13;out[8]=a20;out[9]=a21;out[10]=a22;out[11]=a23;out[12]=a00*x+a10*y+a20*z+a[12];out[13]=a01*x+a11*y+a21*z+a[13];out[14]=a02*x+a12*y+a22*z+a[14];out[15]=a03*x+a13*y+a23*z+a[15]}return out};mat4.scale=function(out,a,v){var x=v[0],y=v[1],z=v[2];out[0]=a[0]*x;out[1]=a[1]*x;out[2]=a[2]*x;out[3]=a[3]*x;out[4]=a[4]*y;out[5]=a[5]*y;out[6]=a[6]*y;out[7]=a[7]*y;out[8]=a[8]*z;out[9]=a[9]*z;out[10]=a[10]*z;out[11]=a[11]*z;out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.rotate=function(out,a,rad,axis){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(Math.abs(len)<GLMAT_EPSILON){return null}len=1/len;x*=len;y*=len;z*=len;s=Math.sin(rad);c=Math.cos(rad);t=1-c;a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;out[0]=a00*b00+a10*b01+a20*b02;out[1]=a01*b00+a11*b01+a21*b02;out[2]=a02*b00+a12*b01+a22*b02;out[3]=a03*b00+a13*b01+a23*b02;out[4]=a00*b10+a10*b11+a20*b12;out[5]=a01*b10+a11*b11+a21*b12;out[6]=a02*b10+a12*b11+a22*b12;out[7]=a03*b10+a13*b11+a23*b12;out[8]=a00*b20+a10*b21+a20*b22;out[9]=a01*b20+a11*b21+a21*b22;out[10]=a02*b20+a12*b21+a22*b22;out[11]=a03*b20+a13*b21+a23*b22;if(a!==out){out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}return out};mat4.rotateX=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[4]=a10*c+a20*s;out[5]=a11*c+a21*s;out[6]=a12*c+a22*s;out[7]=a13*c+a23*s;out[8]=a20*c-a10*s;out[9]=a21*c-a11*s;out[10]=a22*c-a12*s;out[11]=a23*c-a13*s;return out};mat4.rotateY=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c-a20*s;out[1]=a01*c-a21*s;out[2]=a02*c-a22*s;out[3]=a03*c-a23*s;out[8]=a00*s+a20*c;out[9]=a01*s+a21*c;out[10]=a02*s+a22*c;out[11]=a03*s+a23*c;return out};mat4.rotateZ=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7];if(a!==out){out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c+a10*s;out[1]=a01*c+a11*s;out[2]=a02*c+a12*s;out[3]=a03*c+a13*s;out[4]=a10*c-a00*s;out[5]=a11*c-a01*s;out[6]=a12*c-a02*s;out[7]=a13*c-a03*s;return out};mat4.fromRotationTranslation=function(out,q,v){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-(yy+zz);out[1]=xy+wz;out[2]=xz-wy;out[3]=0;out[4]=xy-wz;out[5]=1-(xx+zz);out[6]=yz+wx;out[7]=0;out[8]=xz+wy;out[9]=yz-wx;out[10]=1-(xx+yy);out[11]=0;out[12]=v[0];out[13]=v[1];out[14]=v[2];out[15]=1;return out};mat4.frustum=function(out,left,right,bottom,top,near,far){var rl=1/(right-left),tb=1/(top-bottom),nf=1/(near-far);out[0]=near*2*rl;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=near*2*tb;out[6]=0;out[7]=0;out[8]=(right+left)*rl;out[9]=(top+bottom)*tb;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=far*near*2*nf;out[15]=0;return out};mat4.perspective=function(out,fovy,aspect,near,far){var f=1/Math.tan(fovy/2),nf=1/(near-far);out[0]=f/aspect;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=f;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=2*far*near*nf;out[15]=0;return out};mat4.ortho=function(out,left,right,bottom,top,near,far){var lr=1/(left-right),bt=1/(bottom-top),nf=1/(near-far);out[0]=-2*lr;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=-2*bt;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=2*nf;out[11]=0;out[12]=(left+right)*lr;out[13]=(top+bottom)*bt;out[14]=(far+near)*nf;out[15]=1;return out};mat4.lookAt=function(out,eye,center,up){var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(Math.abs(eyex-centerx)<GLMAT_EPSILON&&Math.abs(eyey-centery)<GLMAT_EPSILON&&Math.abs(eyez-centerz)<GLMAT_EPSILON){return mat4.identity(out)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}out[0]=x0;out[1]=y0;out[2]=z0;out[3]=0;out[4]=x1;out[5]=y1;out[6]=z1;out[7]=0;out[8]=x2;out[9]=y2;out[10]=z2;out[11]=0;out[12]=-(x0*eyex+x1*eyey+x2*eyez);out[13]=-(y0*eyex+y1*eyey+y2*eyez);out[14]=-(z0*eyex+z1*eyey+z2*eyez);out[15]=1;return out};mat4.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};if(typeof exports!=="undefined"){exports.mat4=mat4}var quat={};var quatIdentity=new Float32Array([0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}quat.create=function(){return new Float32Array(quatIdentity)};quat.clone=vec4.clone;quat.fromValues=vec4.fromValues;quat.copy=vec4.copy;quat.set=vec4.set;quat.identity=function(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out};quat.setAxisAngle=function(out,axis,rad){rad=rad*.5;var s=Math.sin(rad);out[0]=s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out};quat.add=vec4.add;quat.mul=quat.multiply=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out};quat.scale=vec4.scale;quat.rotateX=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out};quat.rotateY=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out};quat.rotateZ=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out};quat.calculateW=function(out,a){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out};quat.dot=vec4.dot;quat.lerp=vec4.lerp;quat.slerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=a[3];var cosHalfTheta=ax*bx+ay*by+az*bz+aw*bw,halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{for(var key in obj){if(_.has(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker)return}}}};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;
-var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={};var iterator=lookupIterator(value||_.identity);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key){if(!_.has(result,key))result[key]=0;result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n!=null&&!guard){return slice.call(array,Math.max(array.length-n,0))}else{return array[array.length-1]}};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){each(input,function(value){if(_.isArray(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(args,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,l=list.length;i<l;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,l+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};_.bind=function(func,context){if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));var args=slice.call(arguments,2);return function(){return func.apply(context,args.concat(slice.call(arguments)))}};_.partial=function(func){var args=slice.call(arguments,1);return function(){return func.apply(this,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)funcs=_.functions(obj);each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,result;var previous=0;var later=function(){previous=new Date;timeout=null;result=func.apply(context,args)};return function(){var now=new Date;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args)}else if(!timeout){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]);
-
-/*
- * Leap Motion integration for Reveal.js.
- * James Sun  [sun16]
- * Rory Hardy [gneatgeek]
- */
-
-(function () {
-  var body        = document.body,
-      controller  = new Leap.Controller({ enableGestures: true }),
-      lastGesture = 0,
-      leapConfig  = Reveal.getConfig().leap,
-      pointer     = document.createElement( 'div' ),
-      config      = {
-        autoCenter       : true,      // Center pointer around detected position.
-        gestureDelay     : 500,       // How long to delay between gestures.
-        naturalSwipe     : true,      // Swipe as if it were a touch screen.
-        pointerColor     : '#00aaff', // Default color of the pointer.
-        pointerOpacity   : 0.7,       // Default opacity of the pointer.
-        pointerSize      : 15,        // Default minimum height/width of the pointer.
-        pointerTolerance : 120        // Bigger = slower pointer.
-      },
-      entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare.
-
-      // Merge user defined settings with defaults
-      if( leapConfig ) {
-        for( key in leapConfig ) {
-          config[key] = leapConfig[key];
-        }
-      }
-
-      pointer.id = 'leap';
-
-      pointer.style.position        = 'absolute';
-      pointer.style.visibility      = 'hidden';
-      pointer.style.zIndex          = 50;
-      pointer.style.opacity         = config.pointerOpacity;
-      pointer.style.backgroundColor = config.pointerColor;
-
-      body.appendChild( pointer );
-
-  // Leap's loop
-  controller.on( 'frame', function ( frame ) {
-    // Timing code to rate limit gesture execution
-    now = new Date().getTime();
-
-    // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies.
-    // The innaccuracies were observed on a development model and may not be an issue with consumer models.
-    if( frame.fingers.length > 0 && frame.fingers.length < 3 ) {
-      // Invert direction and multiply by 3 for greater effect.
-      size = -3 * frame.fingers[0].tipPosition[2];
-
-      if( size < config.pointerSize ) {
-        size = config.pointerSize;
-      }
-
-      pointer.style.width        = size     + 'px';
-      pointer.style.height       = size     + 'px';
-      pointer.style.borderRadius = size - 5 + 'px';
-      pointer.style.visibility   = 'visible';
-
-      if( config.autoCenter ) {
-        tipPosition = frame.fingers[0].tipPosition;
-
-        // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option.
-        if( !entered ) {
-          entered         = true;
-          enteredPosition = frame.fingers[0].tipPosition;
-        }
-
-        pointer.style.top =
-          (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) +
-            ( body.offsetHeight / 2 ) + 'px';
-
-        pointer.style.left =
-          (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) +
-            ( body.offsetWidth / 2 ) + 'px';
-      }
-      else {
-        pointer.style.top  = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) *
-          body.offsetHeight + 'px';
-
-        pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) +
-          ( body.offsetWidth / 2 ) + 'px';
-      }
-    }
-    else {
-      // Hide pointer on exit
-      entered                  = false;
-      pointer.style.visibility = 'hidden';
-    }
-
-    // Gestures
-    if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) {
-      var gesture = frame.gestures[0];
-
-      // One hand gestures
-      if( frame.hands.length === 1 ) {
-        // Swipe gestures. 3+ fingers.
-        if( frame.fingers.length > 2 && gesture.type === 'swipe' ) {
-          // Define here since some gestures will throw undefined for these.
-          var x = gesture.direction[0],
-              y = gesture.direction[1];
-
-          // Left/right swipe gestures
-          if( Math.abs( x ) > Math.abs( y )) {
-            if( x > 0 ) {
-              config.naturalSwipe ? Reveal.left() : Reveal.right();
-            }
-            else {
-              config.naturalSwipe ? Reveal.right() : Reveal.left();
-            }
-          }
-          // Up/down swipe gestures
-          else {
-            if( y > 0 ) {
-              config.naturalSwipe ? Reveal.down() : Reveal.up();
-            }
-            else {
-              config.naturalSwipe ? Reveal.up() : Reveal.down();
-            }
-          }
-
-          lastGesture = now;
-        }
-      }
-      // Two hand gestures
-      else if( frame.hands.length === 2 ) {
-        // Upward two hand swipe gesture
-        if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) {
-          Reveal.toggleOverview();
-        }
-
-        lastGesture = now;
-      }
-    }
-  });
-
-  controller.connect();
-})();
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.html b/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.html
+++ /dev/null
@@ -1,129 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Markdown Demo</title>
-
-		<link rel="stylesheet" href="../../css/reveal.css">
-		<link rel="stylesheet" href="../../css/theme/default.css" id="theme">
-
-        <link rel="stylesheet" href="../../lib/css/zenburn.css">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-                <!-- Use external markdown resource, separate slides by three newlines; vertical slides by two newlines -->
-                <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section>
-
-                <!-- Slides are separated by three dashes (quick 'n dirty regular expression) -->
-                <section data-markdown data-separator="---">
-                    <script type="text/template">
-                        ## Demo 1
-                        Slide 1
-                        ---
-                        ## Demo 1
-                        Slide 2
-                        ---
-                        ## Demo 1
-                        Slide 3
-                    </script>
-                </section>
-
-                <!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-                <section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$">
-                    <script type="text/template">
-                        ## Demo 2
-                        Slide 1.1
-
-                        --
-
-                        ## Demo 2
-                        Slide 1.2
-
-                        ---
-
-                        ## Demo 2
-                        Slide 2
-                    </script>
-                </section>
-
-                <!-- No "extra" slides, since there are no separators defined (so they'll become horizontal rulers) -->
-                <section data-markdown>
-                    <script type="text/template">
-                        A
-
-                        ---
-
-                        B
-
-                        ---
-
-                        C
-                    </script>
-                </section>
-
-                <!-- Slide attributes -->
-                <section data-markdown>
-                    <script type="text/template">
-                        <!-- .slide: data-background="#000000" -->
-                        ## Slide attributes
-                    </script>
-                </section>
-
-                <!-- Element attributes -->
-                <section data-markdown>
-                    <script type="text/template">
-                        ## Element attributes
-                        - Item 1 <!-- .element: class="fragment" data-fragment-index="2" -->
-                        - Item 2 <!-- .element: class="fragment" data-fragment-index="1" -->
-                    </script>
-                </section>
-
-                <!-- Code -->
-                <section data-markdown>
-                    <script type="text/template">
-                        ```php
-                        public function foo()
-                        {
-                            $foo = array(
-                                'bar' => 'bar'
-                            )
-                        }
-                        ```
-                    </script>
-                </section>
-
-            </div>
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				controls: true,
-				progress: true,
-				history: true,
-				center: true,
-
-				// Optional libraries used to extend on reveal.js
-				dependencies: [
-					{ src: '../../lib/js/classList.js', condition: function() { return !document.body.classList; } },
-					{ src: 'marked.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-                    { src: 'markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-                    { src: '../highlight/highlight.js', async: true, callback: function() { hljs.initHighlightingOnLoad(); } },
-					{ src: '../notes/notes.js' }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.md b/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.md
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/example.md
+++ /dev/null
@@ -1,31 +0,0 @@
-# Markdown Demo
-
-
-
-## External 1.1
-
-Content 1.1
-
-Note: This will only appear in the speaker notes window.
-
-
-## External 1.2
-
-Content 1.2
-
-
-
-## External 2
-
-Content 2.1
-
-
-
-## External 3.1
-
-Content 3.1
-
-
-## External 3.2
-
-Content 3.2
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/markdown.js b/docs/slides/IHP14/_support/reveal.js/plugin/markdown/markdown.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/markdown.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * The reveal.js markdown plugin. Handles parsing of
- * markdown inside of presentations as well as loading
- * of external markdown documents.
- */
-(function( root, factory ) {
-	if( typeof exports === 'object' ) {
-		module.exports = factory( require( './marked' ) );
-	}
-	else {
-		// Browser globals (root is window)
-		root.RevealMarkdown = factory( root.marked );
-		root.RevealMarkdown.initialize();
-	}
-}( this, function( marked ) {
-
-	if( typeof marked === 'undefined' ) {
-		throw 'The reveal.js Markdown plugin requires marked to be loaded';
-	}
-
-	if( typeof hljs !== 'undefined' ) {
-		marked.setOptions({
-			highlight: function( lang, code ) {
-				return hljs.highlightAuto( lang, code ).value;
-			}
-		});
-	}
-
-	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
-		DEFAULT_NOTES_SEPARATOR = 'note:',
-		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
-		DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
-
-
-	/**
-	 * Retrieves the markdown contents of a slide section
-	 * element. Normalizes leading tabs/whitespace.
-	 */
-	function getMarkdownFromSlide( section ) {
-
-		var template = section.querySelector( 'script' );
-
-		// strip leading whitespace so it isn't evaluated as code
-		var text = ( template || section ).textContent;
-
-		var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
-			leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
-
-		if( leadingTabs > 0 ) {
-			text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-		}
-		else if( leadingWs > 1 ) {
-			text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-		}
-
-		return text;
-
-	}
-
-	/**
-	 * Given a markdown slide section element, this will
-	 * return all arguments that aren't related to markdown
-	 * parsing. Used to forward any other user-defined arguments
-	 * to the output markdown slide.
-	 */
-	function getForwardedAttributes( section ) {
-
-		var attributes = section.attributes;
-		var result = [];
-
-		for( var i = 0, len = attributes.length; i < len; i++ ) {
-			var name = attributes[i].name,
-				value = attributes[i].value;
-
-			// disregard attributes that are used for markdown loading/parsing
-			if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
-
-			if( value ) {
-				result.push( name + '=' + value );
-			}
-			else {
-				result.push( name );
-			}
-		}
-
-		return result.join( ' ' );
-
-	}
-
-	/**
-	 * Inspects the given options and fills out default
-	 * values for what's not defined.
-	 */
-	function getSlidifyOptions( options ) {
-
-		options = options || {};
-		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
-		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
-		options.attributes = options.attributes || '';
-
-		return options;
-
-	}
-
-	/**
-	 * Helper function for constructing a markdown slide.
-	 */
-	function createMarkdownSlide( content, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
-
-		if( notesMatch.length === 2 ) {
-			content = notesMatch[0] + '<aside class="notes" data-markdown>' + notesMatch[1].trim() + '</aside>';
-		}
-
-		return '<script type="text/template">' + content + '</script>';
-
-	}
-
-	/**
-	 * Parses a data string into multiple slides based
-	 * on the passed in separator arguments.
-	 */
-	function slidify( markdown, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-			horizontalSeparatorRegex = new RegExp( options.separator );
-
-		var matches,
-			lastIndex = 0,
-			isHorizontal,
-			wasHorizontal = true,
-			content,
-			sectionStack = [];
-
-		// iterate until all blocks between separators are stacked up
-		while( matches = separatorRegex.exec( markdown ) ) {
-			notes = null;
-
-			// determine direction (horizontal by default)
-			isHorizontal = horizontalSeparatorRegex.test( matches[0] );
-
-			if( !isHorizontal && wasHorizontal ) {
-				// create vertical stack
-				sectionStack.push( [] );
-			}
-
-			// pluck slide content from markdown input
-			content = markdown.substring( lastIndex, matches.index );
-
-			if( isHorizontal && wasHorizontal ) {
-				// add to horizontal stack
-				sectionStack.push( content );
-			}
-			else {
-				// add to vertical stack
-				sectionStack[sectionStack.length-1].push( content );
-			}
-
-			lastIndex = separatorRegex.lastIndex;
-			wasHorizontal = isHorizontal;
-		}
-
-		// add the remaining slide
-		( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
-
-		var markdownSections = '';
-
-		// flatten the hierarchical stack, and insert <section data-markdown> tags
-		for( var i = 0, len = sectionStack.length; i < len; i++ ) {
-			// vertical
-			if( sectionStack[i] instanceof Array ) {
-				markdownSections += '<section '+ options.attributes +'>';
-
-				sectionStack[i].forEach( function( child ) {
-					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
-				} );
-
-				markdownSections += '</section>';
-			}
-			else {
-				markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
-			}
-		}
-
-		return markdownSections;
-
-	}
-
-	/**
-	 * Parses any current data-markdown slides, splits
-	 * multi-slide markdown into separate sections and
-	 * handles loading of external markdown.
-	 */
-	function processSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]'),
-			section;
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			section = sections[i];
-
-			if( section.getAttribute( 'data-markdown' ).length ) {
-
-				var xhr = new XMLHttpRequest(),
-					url = section.getAttribute( 'data-markdown' );
-
-				datacharset = section.getAttribute( 'data-charset' );
-
-				// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
-				if( datacharset != null && datacharset != '' ) {
-					xhr.overrideMimeType( 'text/html; charset=' + datacharset );
-				}
-
-				xhr.onreadystatechange = function() {
-					if( xhr.readyState === 4 ) {
-						if ( xhr.status >= 200 && xhr.status < 300 ) {
-
-							section.outerHTML = slidify( xhr.responseText, {
-								separator: section.getAttribute( 'data-separator' ),
-								verticalSeparator: section.getAttribute( 'data-vertical' ),
-								notesSeparator: section.getAttribute( 'data-notes' ),
-								attributes: getForwardedAttributes( section )
-							});
-
-						}
-						else {
-
-							section.outerHTML = '<section data-state="alert">' +
-								'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
-								'Check your browser\'s JavaScript console for more details.' +
-								'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
-								'</section>';
-
-						}
-					}
-				};
-
-				xhr.open( 'GET', url, false );
-
-				try {
-					xhr.send();
-				}
-				catch ( e ) {
-					alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
-				}
-
-			}
-			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) {
-
-				section.outerHTML = slidify( getMarkdownFromSlide( section ), {
-					separator: section.getAttribute( 'data-separator' ),
-					verticalSeparator: section.getAttribute( 'data-vertical' ),
-					notesSeparator: section.getAttribute( 'data-notes' ),
-					attributes: getForwardedAttributes( section )
-				});
-
-			}
-			else {
-				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
-			}
-		}
-
-	}
-
-	/**
-	 * Check if a node value has the attributes pattern.
-	 * If yes, extract it and add that value as one or several attributes
-	 * the the terget element.
-	 *
-	 * You need Cache Killer on Chrome to see the effect on any FOM transformation
-	 * directly on refresh (F5)
-	 * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
-	 */
-	function addAttributeInElement( node, elementTarget, separator ) {
-
-		var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
-		var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-		var nodeValue = node.nodeValue;
-		if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
-
-			var classes = matches[1];
-			nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
-			node.nodeValue = nodeValue;
-			while( matchesClass = mardownClassRegex.exec( classes ) ) {
-				elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add attributes to the parent element of a text node,
-	 * or the element of an attribute node.
-	 */
-	function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
-
-		if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
-			previousParentElement = element;
-			for( var i = 0; i < element.childNodes.length; i++ ) {
-				childElement = element.childNodes[i];
-				if ( i > 0 ) {
-					j = i - 1;
-					while ( j >= 0 ) {
-						aPreviousChildElement = element.childNodes[j];
-						if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
-							previousParentElement = aPreviousChildElement;
-							break;
-						}
-						j = j - 1;
-					}
-				}
-				parentSection = section;
-				if( childElement.nodeName ==  "section" ) {
-					parentSection = childElement ;
-					previousParentElement = childElement ;
-				}
-				if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
-					addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
-				}
-			}
-		}
-
-		if ( element.nodeType == Node.COMMENT_NODE ) {
-			if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
-				addAttributeInElement( element, section, separatorSectionAttributes );
-			}
-		}
-	}
-
-	/**
-	 * Converts any current data-markdown slides in the
-	 * DOM to HTML.
-	 */
-	function convertSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]');
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			var section = sections[i];
-
-			// Only parse the same slide once
-			if( !section.getAttribute( 'data-markdown-parsed' ) ) {
-
-				section.setAttribute( 'data-markdown-parsed', true )
-
-				var notes = section.querySelector( 'aside.notes' );
-				var markdown = getMarkdownFromSlide( section );
-
-				section.innerHTML = marked( markdown );
-				addAttributes( 	section, section, null, section.getAttribute( 'data-element-attributes' ) ||
-								section.parentNode.getAttribute( 'data-element-attributes' ) ||
-								DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
-								section.getAttribute( 'data-attributes' ) ||
-								section.parentNode.getAttribute( 'data-attributes' ) ||
-								DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
-
-				// If there were notes, we need to re-add them after
-				// having overwritten the section's HTML
-				if( notes ) {
-					section.appendChild( notes );
-				}
-
-			}
-
-		}
-
-	}
-
-	// API
-	return {
-
-		initialize: function() {
-			processSlides();
-			convertSlides();
-		},
-
-		// TODO: Do these belong in the API?
-		processSlides: processSlides,
-		convertSlides: convertSlides,
-		slidify: slidify
-
-	};
-
-}));
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/marked.js b/docs/slides/IHP14/_support/reveal.js/plugin/markdown/marked.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/markdown/marked.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * marked - a markdown parser
- * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
- * https://github.com/chjj/marked
- */
-
-(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
-text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",
-/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1",
-"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};
-Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,
-"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,
-"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]="center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].split(/ *\| */);this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=
-src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);
-bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+
-1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&&
-(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]=
-"center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1][cap[1].length-1]==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",
-text:cap[0]});continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
-code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
-em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;
-if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);
-out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length);
-out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src=
-src.substring(cap[0].length);out+="<strong>"+this.output(cap[2]||cap[1])+"</strong>";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+="<em>"+this.output(cap[2]||cap[1])+"</em>";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+="<code>"+escape(cap[2],true)+"</code>";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="<br>";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+="<del>"+
-this.output(cap[1])+"</del>";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'<a href="'+escape(link.href)+'"'+(link.title?' title="'+escape(link.title)+'"':"")+">"+this.output(cap[1])+"</a>";else return'<img src="'+escape(link.href)+'" alt="'+escape(cap[1])+'"'+(link.title?' title="'+
-escape(link.title)+'"':"")+">"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null;
-this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;
-while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"<hr>\n";case "heading":return"<h"+this.token.depth+">"+this.inline.output(this.token.text)+"</h"+this.token.depth+">\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text=
-escape(this.token.text,true);return"<pre><code"+(this.token.lang?' class="'+this.options.langPrefix+this.token.lang+'"':"")+">"+this.token.text+"</code></pre>\n";case "table":var body="",heading,i,row,cell,j;body+="<thead>\n<tr>\n";for(i=0;i<this.token.header.length;i++){heading=this.inline.output(this.token.header[i]);body+=this.token.align[i]?'<th align="'+this.token.align[i]+'">'+heading+"</th>\n":"<th>"+heading+"</th>\n"}body+="</tr>\n</thead>\n";body+="<tbody>\n";for(i=0;i<this.token.cells.length;i++){row=
-this.token.cells[i];body+="<tr>\n";for(j=0;j<row.length;j++){cell=this.inline.output(row[j]);body+=this.token.align[j]?'<td align="'+this.token.align[j]+'">'+cell+"</td>\n":"<td>"+cell+"</td>\n"}body+="</tr>\n"}body+="</tbody>\n";return"<table>\n"+body+"</table>\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"<blockquote>\n"+body+"</blockquote>\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+=
-this.tok();return"<"+type+">\n"+body+"</"+type+">\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"<li>"+body+"</li>\n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"<li>"+body+"</li>\n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"<p>"+this.inline.output(this.token.text)+
-"</p>\n";case "text":return"<p>"+this.parseText()+"</p>\n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=
-1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target)if(Object.prototype.hasOwnProperty.call(target,key))obj[key]=target[key]}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}if(opt)opt=merge({},marked.defaults,opt);var tokens=Lexer.lex(tokens,opt),highlight=opt.highlight,pending=0,l=tokens.length,i=0;if(!highlight||highlight.length<3)return callback(null,Parser.parse(tokens,opt));var done=function(){delete opt.highlight;
-var out=Parser.parse(tokens,opt);opt.highlight=highlight;return callback(null,out)};for(;i<l;i++)(function(token){if(token.type!=="code")return;pending++;return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text)return--pending||done();token.text=code;token.escaped=true;--pending||done()})})(tokens[i]);return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";
-if((opt||marked.defaults).silent)return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;
-marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}());
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/math/math.js b/docs/slides/IHP14/_support/reveal.js/plugin/math/math.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/math/math.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for MathJax.
- *
- * @author Hakim El Hattab
- */
-var RevealMath = window.RevealMath || (function(){
-
-	var options = Reveal.getConfig().math || {};
-	options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
-	options.config = options.config || 'TeX-AMS_HTML-full';
-
-	loadScript( options.mathjax + '?config=' + options.config, function() {
-
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
-			skipStartupTypeset: true
-		});
-
-		// Typeset followed by an immediate reveal.js layout since
-		// the typesetting process could affect slide height
-		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
-		MathJax.Hub.Queue( Reveal.layout );
-
-		// Reprocess equations in slides when they turn visible
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-
-			MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
-
-		} );
-
-	} );
-
-	function loadScript( url, callback ) {
-
-		var head = document.querySelector( 'head' );
-		var script = document.createElement( 'script' );
-		script.type = 'text/javascript';
-		script.src = url;
-
-		// Wrapper for callback to make sure it only fires once
-		var finish = function() {
-			if( typeof callback === 'function' ) {
-				callback.call();
-				callback = null;
-			}
-		}
-
-		script.onload = finish;
-
-		// IE
-		script.onreadystatechange = function() {
-			if ( this.readyState === 'loaded' ) {
-				finish();
-			}
-		}
-
-		// Normal browsers
-		head.appendChild( script );
-
-	}
-
-})();
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/client.js b/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/client.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/client.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
-	var multiplex = Reveal.getConfig().multiplex;
-	var socketId = multiplex.id;
-	var socket = io.connect(multiplex.url);
-
-	socket.on(multiplex.id, function(data) {
-		// ignore data from sockets that aren't ours
-		if (data.socketId !== socketId) { return; }
-		if( window.location.host === 'localhost:1947' ) return;
-
-		Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
-	});
-}());
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/index.js b/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/index.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var express		= require('express');
-var fs			= require('fs');
-var io			= require('socket.io');
-var crypto		= require('crypto');
-
-var app			= express.createServer();
-var staticDir	= express.static;
-
-io				= io.listen(app);
-
-var opts = {
-	port: 1948,
-	baseDir : __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
-		if (createHash(slideData.secret) === slideData.socketId) {
-			slideData.secret = null;
-			socket.broadcast.emit(slideData.socketId, slideData);
-		};
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/token", function(req,res) {
-	var ts = new Date().getTime();
-	var rand = Math.floor(Math.random()*9999999);
-	var secret = ts.toString() + rand.toString();
-	res.send({secret: secret, socketId: createHash(secret)});
-});
-
-var createHash = function(secret) {
-	var cipher = crypto.createCipher('blowfish', secret);
-	return(cipher.final('hex'));
-};
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/master.js b/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/master.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/multiplex/master.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function() {
-	// Don't emit events from inside of notes windows
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var multiplex = Reveal.getConfig().multiplex;
-
-	var socket = io.connect(multiplex.url);
-
-	var notify = function( slideElement, indexh, indexv, origin ) {
-		if( typeof origin === 'undefined' && origin !== 'remote' ) {
-			var nextindexh;
-			var nextindexv;
-
-			var fragmentindex = Reveal.getIndices().f;
-			if (typeof fragmentindex == 'undefined') {
-				fragmentindex = 0;
-			}
-
-			if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-				nextindexh = indexh;
-				nextindexv = indexv + 1;
-			} else {
-				nextindexh = indexh + 1;
-				nextindexv = 0;
-			}
-
-			var slideData = {
-				indexh : indexh,
-				indexv : indexv,
-				indexf : fragmentindex,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				secret: multiplex.secret,
-				socketId : multiplex.id
-			};
-
-			socket.emit('slidechanged', slideData);
-		}
-	}
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		notify( event.currentSlide, event.indexh, event.indexv, event.origin );
-	} );
-
-	var fragmentNotify = function( event ) {
-		notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
-	};
-
-	Reveal.addEventListener( 'fragmentshown', fragmentNotify );
-	Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
-}());
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/client.js b/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/client.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/client.js
+++ /dev/null
@@ -1,57 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-	window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
-
-	// Fires when a fragment is shown
-	Reveal.addEventListener( 'fragmentshown', function( event ) {
-		var fragmentData = {
-			fragment : 'next',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when a fragment is hidden
-	Reveal.addEventListener( 'fragmenthidden', function( event ) {
-		var fragmentData = {
-			fragment : 'previous',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when slide is changed
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId,
-			markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
-
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/index.js b/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/index.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-	socket.on('fragmentchanged', function(fragmentData) {
-		socket.broadcast.emit('fragmentdata', fragmentData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/notes.html b/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/notes.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/notes-server/notes.html
+++ /dev/null
@@ -1,142 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<meta name="viewport" content="width=1150">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				font-size: 24px;
-				width: 640px;
-				margin-top: 5px;
-				clear: left;
-			}
-
-			#wrap-current-slide {
-				width: 640px;
-				height: 512px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-				    -ms-transform-origin: 0 0;
-				     -o-transform-origin: 0 0;
-				        transform-origin: 0 0;
-
-				-webkit-transform: scale(0.5);
-				   -moz-transform: scale(0.5);
-				    -ms-transform: scale(0.5);
-				     -o-transform: scale(0.5);
-				        transform: scale(0.5);
-			}
-
-			#wrap-next-slide {
-				width: 448px;
-				height: 358px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-				    -ms-transform-origin: 0 0;
-				     -o-transform-origin: 0 0;
-				        transform-origin: 0 0;
-
-				-webkit-transform: scale(0.35);
-				   -moz-transform: scale(0.35);
-				    -ms-transform: scale(0.35);
-				     -o-transform: scale(0.35);
-				        transform: scale(0.35);
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-		</style>
-	</head>
-
-	<body>
-
-		<div id="wrap-current-slide" class="slides">
-			<iframe src="/?receiver" width="1280" height="1024" id="current-slide"></iframe>
-		</div>
-
-		<div id="wrap-next-slide" class="slides">
-			<iframe src="/?receiver" width="640" height="512" id="next-slide"></iframe>
-			<span>UPCOMING:</span>
-		</div>
-		<div id="notes"></div>
-
-		<script src="/socket.io/socket.io.js"></script>
-		<script src="/plugin/markdown/marked.js"></script>
-
-		<script>
-		var socketId = '{{socketId}}';
-		var socket = io.connect(window.location.origin);
-		var notes = document.getElementById('notes');
-		var currentSlide = document.getElementById('current-slide');
-		var nextSlide = document.getElementById('next-slide');
-
-		socket.on('slidedata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			if (data.markdown) {
-				notes.innerHTML = marked(data.notes);
-			}
-			else {
-				notes.innerHTML = data.notes;
-			}
-
-			currentSlide.contentWindow.Reveal.slide(data.indexh, data.indexv);
-			nextSlide.contentWindow.Reveal.slide(data.nextindexh, data.nextindexv);
-		});
-		socket.on('fragmentdata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			if (data.fragment === 'next') {
-				currentSlide.contentWindow.Reveal.nextFragment();
-			}
-			else if (data.fragment === 'previous') {
-				currentSlide.contentWindow.Reveal.prevFragment();
-			}
-		});
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.html b/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.html
+++ /dev/null
@@ -1,267 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				font-size: 24px;
-				width: 640px;
-				margin-top: 5px;
-				clear: left;
-			}
-
-			#wrap-current-slide {
-				width: 640px;
-				height: 512px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-					-ms-transform-origin: 0 0;
-					 -o-transform-origin: 0 0;
-						transform-origin: 0 0;
-
-				-webkit-transform: scale(0.5);
-				   -moz-transform: scale(0.5);
-					-ms-transform: scale(0.5);
-					 -o-transform: scale(0.5);
-						transform: scale(0.5);
-			}
-
-			#wrap-next-slide {
-				width: 448px;
-				height: 358px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 1280px;
-				height: 1024px;
-				border: none;
-
-				-webkit-transform-origin: 0 0;
-				   -moz-transform-origin: 0 0;
-					-ms-transform-origin: 0 0;
-					 -o-transform-origin: 0 0;
-						transform-origin: 0 0;
-
-				-webkit-transform: scale(0.35);
-				   -moz-transform: scale(0.35);
-					-ms-transform: scale(0.35);
-					 -o-transform: scale(0.35);
-						transform: scale(0.35);
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-
-			.error {
-				font-weight: bold;
-				color: red;
-				font-size: 1.5em;
-				text-align: center;
-				margin-top: 10%;
-			}
-
-			.error code {
-				font-family: monospace;
-			}
-
-			.time {
-				width: 448px;
-				margin: 30px 0 0 10px;
-				float: left;
-				text-align: center;
-				opacity: 0;
-
-				-webkit-transition: opacity 0.4s;
-				   -moz-transition: opacity 0.4s;
-				     -o-transition: opacity 0.4s;
-				        transition: opacity 0.4s;
-			}
-
-			.elapsed,
-			.clock {
-				color: #333;
-				font-size: 2em;
-				text-align: center;
-				display: inline-block;
-				padding: 0.5em;
-				background-color: #eee;
-				border-radius: 10px;
-			}
-
-			.elapsed h2,
-			.clock h2 {
-				font-size: 0.8em;
-				line-height: 100%;
-				margin: 0;
-				color: #aaa;
-			}
-
-			.elapsed .mute {
-				color: #ddd;
-			}
-
-		</style>
-	</head>
-
-	<body>
-
-		<script>
-			function getNotesURL( controls ) {
-				return window.opener.location.protocol + '//' + window.opener.location.host + window.opener.location.pathname + '?receiver&controls='+ ( controls || 'false' ) +'&progress=false&overview=false' + window.opener.location.hash;
-			}
-			var notesCurrentSlideURL = getNotesURL( true );
-			var notesNextSlideURL = getNotesURL( false );
-		</script>
-
-		<div id="wrap-current-slide" class="slides">
-			<script>document.write( '<iframe width="1280" height="1024" id="current-slide" src="'+ notesCurrentSlideURL +'"></iframe>' );</script>
-		</div>
-
-		<div id="wrap-next-slide" class="slides">
-			<script>document.write( '<iframe width="640" height="512" id="next-slide" src="'+ notesNextSlideURL +'"></iframe>' );</script>
-			<span>UPCOMING:</span>
-		</div>
-
-		<div class="time">
-			<div class="clock">
-				<h2>Time</h2>
-				<span id="clock">0:00:00 AM</span>
-			</div>
-			<div class="elapsed">
-				<h2>Elapsed</h2>
-				<span id="hours">00</span><span id="minutes">:00</span><span id="seconds">:00</span>
-			</div>
-		</div>
-
-		<div id="notes"></div>
-
-		<script src="../../plugin/markdown/marked.js"></script>
-		<script>
-
-			window.addEventListener( 'load', function() {
-
-				if( window.opener && window.opener.location && window.opener.location.href ) {
-
-					var notes = document.getElementById( 'notes' ),
-						currentSlide = document.getElementById( 'current-slide' ),
-						nextSlide = document.getElementById( 'next-slide' ),
-						silenced = false;
-
-					window.addEventListener( 'message', function( event ) {
-						var data = JSON.parse( event.data );
-
-						// No need for updating the notes in case of fragment changes
-						if ( data.notes !== undefined) {
-							if( data.markdown ) {
-								notes.innerHTML = marked( data.notes );
-							}
-							else {
-								notes.innerHTML = data.notes;
-							}
-						}
-
-						silenced = true;
-
-						// Update the note slides
-						currentSlide.contentWindow.Reveal.slide( data.indexh, data.indexv, data.indexf );
-						nextSlide.contentWindow.Reveal.slide( data.nextindexh, data.nextindexv );
-
-						silenced = false;
-
-					}, false );
-
-					var start = new Date(),
-						timeEl = document.querySelector( '.time' ),
-						clockEl = document.getElementById( 'clock' ),
-						hoursEl = document.getElementById( 'hours' ),
-						minutesEl = document.getElementById( 'minutes' ),
-						secondsEl = document.getElementById( 'seconds' );
-
-					setInterval( function() {
-
-						timeEl.style.opacity = 1;
-
-						var diff, hours, minutes, seconds,
-							now = new Date();
-
-						diff = now.getTime() - start.getTime();
-						hours = Math.floor( diff / ( 1000 * 60 * 60 ) );
-						minutes = Math.floor( ( diff / ( 1000 * 60 ) ) % 60 );
-						seconds = Math.floor( ( diff / 1000 ) % 60 );
-
-						clockEl.innerHTML = now.toLocaleTimeString();
-						hoursEl.innerHTML = zeroPadInteger( hours );
-						hoursEl.className = hours > 0 ? "" : "mute";
-						minutesEl.innerHTML = ":" + zeroPadInteger( minutes );
-						minutesEl.className = minutes > 0 ? "" : "mute";
-						secondsEl.innerHTML = ":" + zeroPadInteger( seconds );
-
-					}, 1000 );
-
-					// Broadcasts the state of the notes window to synchronize
-					// the main window
-					function synchronizeMainWindow() {
-
-						if( !silenced ) {
-							var indices = currentSlide.contentWindow.Reveal.getIndices();
-							window.opener.Reveal.slide( indices.h, indices.v, indices.f );
-						}
-
-					}
-
-					// Navigate the main window when the notes slide changes
-					currentSlide.contentWindow.Reveal.addEventListener( 'slidechanged', synchronizeMainWindow );
-					currentSlide.contentWindow.Reveal.addEventListener( 'fragmentshown', synchronizeMainWindow );
-					currentSlide.contentWindow.Reveal.addEventListener( 'fragmenthidden', synchronizeMainWindow );
-
-				}
-				else {
-
-					document.body.innerHTML =  '<p class="error">Unable to access <code>window.opener.location</code>.<br>Make sure the presentation is running on a web server.</p>';
-
-				}
-
-
-			}, false );
-
-			function zeroPadInteger( num ) {
-				var str = "00" + parseInt( num );
-				return str.substring( str.length - 2 );
-			}
-
-		</script>
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.js b/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/notes/notes.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Handles opening of and synchronization with the reveal.js
- * notes window.
- */
-var RevealNotes = (function() {
-
-	function openNotes() {
-		var jsFileLocation = document.querySelector('script[src$="notes.js"]').src;  // this js file path
-		jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, '');   // the js folder path
-		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
-
-		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', post );
-
-		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', post );
-
-		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', post );
-
-		/**
-		 * Posts the current slide data to the notes window
-		 */
-		function post() {
-			var slideElement = Reveal.getCurrentSlide(),
-				slideIndices = Reveal.getIndices(),
-				messageData;
-
-			var notes = slideElement.querySelector( 'aside.notes' ),
-				nextindexh,
-				nextindexv;
-
-			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-				nextindexh = slideIndices.h;
-				nextindexv = slideIndices.v + 1;
-			} else {
-				nextindexh = slideIndices.h + 1;
-				nextindexv = 0;
-			}
-
-			messageData = {
-				notes : notes ? notes.innerHTML : '',
-				indexh : slideIndices.h,
-				indexv : slideIndices.v,
-				indexf : slideIndices.f,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-			};
-
-			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
-		}
-
-		// Navigate to the current slide when the notes are loaded
-		notesPopup.addEventListener( 'load', function( event ) {
-			post();
-		}, false );
-	}
-
-	// If the there's a 'notes' query set, open directly
-	if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
-		openNotes();
-	}
-
-	// Open the notes when the 's' key is hit
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openNotes();
-		}
-	}, false );
-
-	return { open: openNotes };
-})();
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/example.html b/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/example.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/example.html
+++ /dev/null
@@ -1,39 +0,0 @@
-<html>
-	<body>
-
-		<iframe id="reveal" src="../../index.html" style="border: 0;" width="500" height="500"></iframe>
-
-		<div>
-			<input id="back" type="button" value="go back"/>
-			<input id="ahead" type="button" value="go ahead"/>
-			<input id="slideto" type="button" value="slideto 2-2"/>
-		</div>
-
-		<script>
-
-			(function (){
-
-				var back = document.getElementById( 'back' ),
-						ahead = document.getElementById( 'ahead' ),
-						slideto = document.getElementById( 'slideto' ),
-						reveal =  window.frames[0];
-
-					back.addEventListener( 'click', function () {
-						
-					reveal.postMessage( JSON.stringify({method: 'prev', args: []}), '*' );
-				}, false );
-
-				ahead.addEventListener( 'click', function (){
-					reveal.postMessage( JSON.stringify({method: 'next', args: []}), '*' );
-				}, false );
-
-				slideto.addEventListener( 'click', function (){
-					reveal.postMessage( JSON.stringify({method: 'slide', args: [2,2]}), '*' );
-				}, false );
-
-			}());
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/postmessage.js b/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/postmessage.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/postmessage/postmessage.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-	simple postmessage plugin
-
-	Useful when a reveal slideshow is inside an iframe.
-	It allows to call reveal methods from outside.
-
-	Example:
-		 var reveal =  window.frames[0];
-
-		 // Reveal.prev(); 
-		 reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
-		 // Reveal.next(); 
-		 reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
-		 // Reveal.slide(2, 2); 
-		 reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
-
-	Add to the slideshow:
-
-		dependencies: [
-			...
-			{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
-		]
-
-*/
-
-(function (){
-
-	window.addEventListener( "message", function ( event ) {
-		var data = JSON.parse( event.data ),
-				method = data.method,
-				args = data.args;
-
-		if( typeof Reveal[method] === 'function' ) {
-			Reveal[method].apply( Reveal, data.args );
-		}
-	}, false);
-
-}());
-
-
-
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/print-pdf/print-pdf.js b/docs/slides/IHP14/_support/reveal.js/plugin/print-pdf/print-pdf.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/print-pdf/print-pdf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * phantomjs script for printing presentations to PDF.
- *
- * Example:
- * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
- *
- * By Manuel Bieh (https://github.com/manuelbieh)
- */
-
-// html2pdf.js
-var page = new WebPage();
-var system = require( 'system' );
-
-page.viewportSize  = {
-	width: 1024,
-	height: 768
-};
-
-page.paperSize = {
-	format: 'letter',
-	orientation: 'landscape',
-	margin: {
-		left: '0',
-		right: '0',
-		top: '0',
-		bottom: '0'
-	}
-};
-
-var revealFile = system.args[1] || 'index.html?print-pdf';
-var slideFile = system.args[2] || 'slides.pdf';
-
-if( slideFile.match( /\.pdf$/gi ) === null ) {
-	slideFile += '.pdf';
-}
-
-console.log( 'Printing PDF...' );
-
-page.open( revealFile, function( status ) {
-	console.log( 'Printed succesfully' );
-	page.render( slideFile );
-	phantom.exit();
-} );
-
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/remotes/remotes.js b/docs/slides/IHP14/_support/reveal.js/plugin/remotes/remotes.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/remotes/remotes.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Touch-based remote controller for your presentation courtesy 
- * of the folks at http://remotes.io
- */
-
-(function(window){
-
-    /**
-     * Detects if we are dealing with a touch enabled device (with some false positives)
-     * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js   
-     */
-    var hasTouch  = (function(){
-        return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
-    })();
-
-    /**
-     * Detects if notes are enable and the current page is opened inside an /iframe
-     * this prevents loading Remotes.io several times
-     */
-    var isNotesAndIframe = (function(){
-        return window.RevealNotes && !(self == top);
-    })();
-
-    if(!hasTouch && !isNotesAndIframe){
-        head.ready( 'remotes.ne.min.js', function() {
-            new Remotes("preview")
-                .on("swipe-left", function(e){ Reveal.right(); })
-                .on("swipe-right", function(e){ Reveal.left(); })
-                .on("swipe-up", function(e){ Reveal.down(); })
-                .on("swipe-down", function(e){ Reveal.up(); })
-                .on("tap", function(e){ Reveal.next(); })
-                .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
-                .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
-            ;
-        } );
-
-        head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
-    }
-})(window);
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/search/search.js b/docs/slides/IHP14/_support/reveal.js/plugin/search/search.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/search/search.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
- * by navigatating to that slide and highlighting it.
- *
- * By Jon Snyder <snyder.jon@gmail.com>, February 2013
- */
-
-var RevealSearch = (function() {
-
-	var matchedSlides;
-	var currentMatchedIndex;
-	var searchboxDirty;
-	var myHilitor;
-
-// Original JavaScript code by Chirp Internet: www.chirp.com.au
-// Please acknowledge use of this code by including this header.
-// 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
-
-function Hilitor(id, tag)
-{
-
-  var targetNode = document.getElementById(id) || document.body;
-  var hiliteTag = tag || "EM";
-  var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
-  var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
-  var wordColor = [];
-  var colorIdx = 0;
-  var matchRegex = "";
-  var matchingSlides = [];
-
-  this.setRegex = function(input)
-  {
-    input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
-    matchRegex = new RegExp("(" + input + ")","i");
-  }
-
-  this.getRegex = function()
-  {
-    return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
-  }
-
-  // recursively apply word highlighting
-  this.hiliteWords = function(node)
-  {
-    if(node == undefined || !node) return;
-    if(!matchRegex) return;
-    if(skipTags.test(node.nodeName)) return;
-
-    if(node.hasChildNodes()) {
-      for(var i=0; i < node.childNodes.length; i++)
-        this.hiliteWords(node.childNodes[i]);
-    }
-    if(node.nodeType == 3) { // NODE_TEXT
-      if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
-      	//find the slide's section element and save it in our list of matching slides
-      	var secnode = node.parentNode;
-      	while (secnode.nodeName != 'SECTION') {
-      		secnode = secnode.parentNode;
-      	}
-      	
-      	var slideIndex = Reveal.getIndices(secnode);
-      	var slidelen = matchingSlides.length;
-      	var alreadyAdded = false;
-      	for (var i=0; i < slidelen; i++) {
-      		if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
-      			alreadyAdded = true;
-      		}
-      	}
-      	if (! alreadyAdded) {
-      		matchingSlides.push(slideIndex);
-      	}
-      	
-        if(!wordColor[regs[0].toLowerCase()]) {
-          wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
-        }
-
-        var match = document.createElement(hiliteTag);
-        match.appendChild(document.createTextNode(regs[0]));
-        match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
-        match.style.fontStyle = "inherit";
-        match.style.color = "#000";
-
-        var after = node.splitText(regs.index);
-        after.nodeValue = after.nodeValue.substring(regs[0].length);
-        node.parentNode.insertBefore(match, after);
-      }
-    }
-  };
-
-  // remove highlighting
-  this.remove = function()
-  {
-    var arr = document.getElementsByTagName(hiliteTag);
-    while(arr.length && (el = arr[0])) {
-      el.parentNode.replaceChild(el.firstChild, el);
-    }
-  };
-
-  // start highlighting at target node
-  this.apply = function(input)
-  {
-    if(input == undefined || !input) return;
-    this.remove();
-    this.setRegex(input);
-    this.hiliteWords(targetNode);
-    return matchingSlides;
-  };
-
-}
-
-	function openSearch() {
-		//ensure the search term input dialog is visible and has focus:
-		var inputbox = document.getElementById("searchinput");
-		inputbox.style.display = "inline";
-		inputbox.focus();
-		inputbox.select();
-	}
-
-	function toggleSearch() {
-		var inputbox = document.getElementById("searchinput");
-		if (inputbox.style.display !== "inline") {
-			openSearch();
-		}
-		else {
-			inputbox.style.display = "none";
-			myHilitor.remove();
-		}
-	}
-
-	function doSearch() {
-		//if there's been a change in the search term, perform a new search:
-		if (searchboxDirty) {
-			var searchstring = document.getElementById("searchinput").value;
-
-			//find the keyword amongst the slides
-			myHilitor = new Hilitor("slidecontent");
-			matchedSlides = myHilitor.apply(searchstring);
-			currentMatchedIndex = 0;
-		}
-
-		//navigate to the next slide that has the keyword, wrapping to the first if necessary
-		if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
-			currentMatchedIndex = 0;
-		}
-		if (matchedSlides.length > currentMatchedIndex) {
-			Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
-			currentMatchedIndex++;
-		}
-	}
-
-	var dom = {};
-	dom.wrapper = document.querySelector( '.reveal' );
-
-	if( !dom.wrapper.querySelector( '.searchbox' ) ) {
-			var searchElement = document.createElement( 'div' );
-			searchElement.id = "searchinputdiv";
-			searchElement.classList.add( 'searchdiv' );
-      searchElement.style.position = 'absolute';
-      searchElement.style.top = '10px';
-      searchElement.style.left = '10px';
-      //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
-			searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
-			dom.wrapper.appendChild( searchElement );
-	}
-
-	document.getElementById("searchbutton").addEventListener( 'click', function(event) {
-		doSearch();
-	}, false );
-
-	document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
-		switch (event.keyCode) {
-			case 13:
-				event.preventDefault();
-				doSearch();
-				searchboxDirty = false;
-				break;
-			default:
-				searchboxDirty = true;
-		}
-	}, false );
-
-	// Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
-	/*
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openSearch();
-		}
-	}, false );
-*/
-	return { open: openSearch };
-})();
diff --git a/docs/slides/IHP14/_support/reveal.js/plugin/zoom-js/zoom.js b/docs/slides/IHP14/_support/reveal.js/plugin/zoom-js/zoom.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/plugin/zoom-js/zoom.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Custom reveal.js integration
-(function(){
-	var isEnabled = true;
-
-	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
-		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
-
-		if( event[ modifier ] && isEnabled ) {
-			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
-		}
-	} );
-
-	Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
-	Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
-})();
-
-/*!
- * zoom.js 0.2 (modified version for use with reveal.js)
- * http://lab.hakim.se/zoom-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var zoom = (function(){
-
-	// The current zoom level (scale)
-	var level = 1;
-
-	// The current mouse position, used for panning
-	var mouseX = 0,
-		mouseY = 0;
-
-	// Timeout before pan is activated
-	var panEngageTimeout = -1,
-		panUpdateInterval = -1;
-
-	var currentOptions = null;
-
-	// Check for transform support so that we can fallback otherwise
-	var supportsTransforms = 	'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-	if( supportsTransforms ) {
-		// The easing that will be applied when we zoom in/out
-		document.body.style.transition = 'transform 0.8s ease';
-		document.body.style.OTransition = '-o-transform 0.8s ease';
-		document.body.style.msTransition = '-ms-transform 0.8s ease';
-		document.body.style.MozTransition = '-moz-transform 0.8s ease';
-		document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
-	}
-
-	// Zoom out if the user hits escape
-	document.addEventListener( 'keyup', function( event ) {
-		if( level !== 1 && event.keyCode === 27 ) {
-			zoom.out();
-		}
-	}, false );
-
-	// Monitor mouse movement for panning
-	document.addEventListener( 'mousemove', function( event ) {
-		if( level !== 1 ) {
-			mouseX = event.clientX;
-			mouseY = event.clientY;
-		}
-	}, false );
-
-	/**
-	 * Applies the CSS required to zoom in, prioritizes use of CSS3
-	 * transforms but falls back on zoom for IE.
-	 *
-	 * @param {Number} pageOffsetX
-	 * @param {Number} pageOffsetY
-	 * @param {Number} elementOffsetX
-	 * @param {Number} elementOffsetY
-	 * @param {Number} scale
-	 */
-	function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
-
-		if( supportsTransforms ) {
-			var origin = pageOffsetX +'px '+ pageOffsetY +'px',
-				transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
-
-			document.body.style.transformOrigin = origin;
-			document.body.style.OTransformOrigin = origin;
-			document.body.style.msTransformOrigin = origin;
-			document.body.style.MozTransformOrigin = origin;
-			document.body.style.WebkitTransformOrigin = origin;
-
-			document.body.style.transform = transform;
-			document.body.style.OTransform = transform;
-			document.body.style.msTransform = transform;
-			document.body.style.MozTransform = transform;
-			document.body.style.WebkitTransform = transform;
-		}
-		else {
-			// Reset all values
-			if( scale === 1 ) {
-				document.body.style.position = '';
-				document.body.style.left = '';
-				document.body.style.top = '';
-				document.body.style.width = '';
-				document.body.style.height = '';
-				document.body.style.zoom = '';
-			}
-			// Apply scale
-			else {
-				document.body.style.position = 'relative';
-				document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
-				document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
-				document.body.style.width = ( scale * 100 ) + '%';
-				document.body.style.height = ( scale * 100 ) + '%';
-				document.body.style.zoom = scale;
-			}
-		}
-
-		level = scale;
-
-		if( level !== 1 && document.documentElement.classList ) {
-			document.documentElement.classList.add( 'zoomed' );
-		}
-		else {
-			document.documentElement.classList.remove( 'zoomed' );
-		}
-	}
-
-	/**
-	 * Pan the document when the mosue cursor approaches the edges
-	 * of the window.
-	 */
-	function pan() {
-		var range = 0.12,
-			rangeX = window.innerWidth * range,
-			rangeY = window.innerHeight * range,
-			scrollOffset = getScrollOffset();
-
-		// Up
-		if( mouseY < rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
-		}
-		// Down
-		else if( mouseY > window.innerHeight - rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
-		}
-
-		// Left
-		if( mouseX < rangeX ) {
-			window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
-		}
-		// Right
-		else if( mouseX > window.innerWidth - rangeX ) {
-			window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
-		}
-	}
-
-	function getScrollOffset() {
-		return {
-			x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
-			y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
-		}
-	}
-
-	return {
-		/**
-		 * Zooms in on either a rectangle or HTML element.
-		 *
-		 * @param {Object} options
-		 *   - element: HTML element to zoom in on
-		 *   OR
-		 *   - x/y: coordinates in non-transformed space to zoom in on
-		 *   - width/height: the portion of the screen to zoom in on
-		 *   - scale: can be used instead of width/height to explicitly set scale
-		 */
-		to: function( options ) {
-			// Due to an implementation limitation we can't zoom in
-			// to another element without zooming out first
-			if( level !== 1 ) {
-				zoom.out();
-			}
-			else {
-				options.x = options.x || 0;
-				options.y = options.y || 0;
-
-				// If an element is set, that takes precedence
-				if( !!options.element ) {
-					// Space around the zoomed in element to leave on screen
-					var padding = 20;
-
-					options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
-					options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
-					options.x = options.element.getBoundingClientRect().left - padding;
-					options.y = options.element.getBoundingClientRect().top - padding;
-				}
-
-				// If width/height values are set, calculate scale from those values
-				if( options.width !== undefined && options.height !== undefined ) {
-					options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
-				}
-
-				if( options.scale > 1 ) {
-					options.x *= options.scale;
-					options.y *= options.scale;
-
-					var scrollOffset = getScrollOffset();
-
-					if( options.element ) {
-						scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
-					}
-
-					magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
-
-					if( options.pan !== false ) {
-
-						// Wait with engaging panning as it may conflict with the
-						// zoom transition
-						panEngageTimeout = setTimeout( function() {
-							panUpdateInterval = setInterval( pan, 1000 / 60 );
-						}, 800 );
-
-					}
-				}
-
-				currentOptions = options;
-			}
-		},
-
-		/**
-		 * Resets the document zoom state to its default.
-		 */
-		out: function() {
-			clearTimeout( panEngageTimeout );
-			clearInterval( panUpdateInterval );
-
-			var scrollOffset = getScrollOffset();
-
-			if( currentOptions && currentOptions.element ) {
-				scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
-			}
-
-			magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
-
-			level = 1;
-		},
-
-		// Alias
-		magnify: function( options ) { this.to( options ) },
-		reset: function() { this.out() },
-
-		zoomLevel: function() {
-			return level;
-		}
-	}
-
-})();
-
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image1.png b/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image1.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image1.png and /dev/null differ
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image2.png b/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image2.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/_support/reveal.js/test/examples/assets/image2.png and /dev/null differ
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/barebones.html b/docs/slides/IHP14/_support/reveal.js/test/examples/barebones.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/examples/barebones.html
+++ /dev/null
@@ -1,41 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Barebones</title>
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>Barebones Presentation</h2>
-					<p>This example contains the bare minimum includes and markup required to run a reveal.js presentation.</p>
-				</section>
-
-				<section>
-					<h2>No Theme</h2>
-					<p>There's no theme included, so it will fall back on browser defaults.</p>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize();
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/embedded-media.html b/docs/slides/IHP14/_support/reveal.js/test/examples/embedded-media.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/examples/embedded-media.html
+++ /dev/null
@@ -1,49 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Embedded Media</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/default.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>Embedded Media Test</h2>
-				</section>
-
-				<section>
-					<iframe data-autoplay width="420" height="345" src="http://www.youtube.com/embed/l3RQZ4mcr1c"></iframe>
-				</section>
-
-				<section>
-					<h2>Empty Slide</h2>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				transition: 'linear'
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/math.html b/docs/slides/IHP14/_support/reveal.js/test/examples/math.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/examples/math.html
+++ /dev/null
@@ -1,185 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Math Plugin</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/night.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section>
-					<h2>reveal.js Math Plugin</h2>
-					<p>A thin wrapper for MathJax</p>
-				</section>
-
-				<section>
-					<h3>The Lorenz Equations</h3>
-
-					\[\begin{aligned}
-					\dot{x} &amp; = \sigma(y-x) \\
-					\dot{y} &amp; = \rho x - y - xz \\
-					\dot{z} &amp; = -\beta z + xy
-					\end{aligned} \]
-				</section>
-
-				<section>
-					<h3>The Cauchy-Schwarz Inequality</h3>
-
-					<script type="math/tex; mode=display">
-						\left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right)
-					</script>
-				</section>
-
-				<section>
-					<h3>A Cross Product Formula</h3>
-
-					\[\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
-					\mathbf{i} &amp; \mathbf{j} &amp; \mathbf{k} \\
-					\frac{\partial X}{\partial u} &amp;  \frac{\partial Y}{\partial u} &amp; 0 \\
-					\frac{\partial X}{\partial v} &amp;  \frac{\partial Y}{\partial v} &amp; 0
-					\end{vmatrix}  \]
-				</section>
-
-				<section>
-					<h3>The probability of getting \(k\) heads when flipping \(n\) coins is</h3>
-
-					\[P(E)   = {n \choose k} p^k (1-p)^{ n-k} \]
-				</section>
-
-				<section>
-					<h3>An Identity of Ramanujan</h3>
-
-					\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
-					1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
-					{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
-				</section>
-
-				<section>
-					<h3>A Rogers-Ramanujan Identity</h3>
-
-					\[  1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
-					\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
-				</section>
-
-				<section>
-					<h3>Maxwell&#8217;s Equations</h3>
-
-					\[  \begin{aligned}
-					\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\   \nabla \cdot \vec{\mathbf{E}} &amp; = 4 \pi \rho \\
-					\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} &amp; = \vec{\mathbf{0}} \\
-					\nabla \cdot \vec{\mathbf{B}} &amp; = 0 \end{aligned}
-					\]
-				</section>
-
-				<section>
-					<section>
-						<h3>The Lorenz Equations</h3>
-
-						<div class="fragment">
-							\[\begin{aligned}
-							\dot{x} &amp; = \sigma(y-x) \\
-							\dot{y} &amp; = \rho x - y - xz \\
-							\dot{z} &amp; = -\beta z + xy
-							\end{aligned} \]
-						</div>
-					</section>
-
-					<section>
-						<h3>The Cauchy-Schwarz Inequality</h3>
-
-						<div class="fragment">
-							\[ \left( \sum_{k=1}^n a_k b_k \right)^2 \leq \left( \sum_{k=1}^n a_k^2 \right) \left( \sum_{k=1}^n b_k^2 \right) \]
-						</div>
-					</section>
-
-					<section>
-						<h3>A Cross Product Formula</h3>
-
-						<div class="fragment">
-							\[\mathbf{V}_1 \times \mathbf{V}_2 =  \begin{vmatrix}
-							\mathbf{i} &amp; \mathbf{j} &amp; \mathbf{k} \\
-							\frac{\partial X}{\partial u} &amp;  \frac{\partial Y}{\partial u} &amp; 0 \\
-							\frac{\partial X}{\partial v} &amp;  \frac{\partial Y}{\partial v} &amp; 0
-							\end{vmatrix}  \]
-						</div>
-					</section>
-
-					<section>
-						<h3>The probability of getting \(k\) heads when flipping \(n\) coins is</h3>
-
-						<div class="fragment">
-							\[P(E)   = {n \choose k} p^k (1-p)^{ n-k} \]
-						</div>
-					</section>
-
-					<section>
-						<h3>An Identity of Ramanujan</h3>
-
-						<div class="fragment">
-							\[ \frac{1}{\Bigl(\sqrt{\phi \sqrt{5}}-\phi\Bigr) e^{\frac25 \pi}} =
-							1+\frac{e^{-2\pi}} {1+\frac{e^{-4\pi}} {1+\frac{e^{-6\pi}}
-							{1+\frac{e^{-8\pi}} {1+\ldots} } } } \]
-						</div>
-					</section>
-
-					<section>
-						<h3>A Rogers-Ramanujan Identity</h3>
-
-						<div class="fragment">
-							\[  1 +  \frac{q^2}{(1-q)}+\frac{q^6}{(1-q)(1-q^2)}+\cdots =
-							\prod_{j=0}^{\infty}\frac{1}{(1-q^{5j+2})(1-q^{5j+3})}\]
-						</div>
-					</section>
-
-					<section>
-						<h3>Maxwell&#8217;s Equations</h3>
-
-						<div class="fragment">
-							\[  \begin{aligned}
-							\nabla \times \vec{\mathbf{B}} -\, \frac1c\, \frac{\partial\vec{\mathbf{E}}}{\partial t} &amp; = \frac{4\pi}{c}\vec{\mathbf{j}} \\   \nabla \cdot \vec{\mathbf{E}} &amp; = 4 \pi \rho \\
-							\nabla \times \vec{\mathbf{E}}\, +\, \frac1c\, \frac{\partial\vec{\mathbf{B}}}{\partial t} &amp; = \vec{\mathbf{0}} \\
-							\nabla \cdot \vec{\mathbf{B}} &amp; = 0 \end{aligned}
-							\]
-						</div>
-					</section>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			Reveal.initialize({
-				history: true,
-				transition: 'linear',
-
-				math: {
-					// mathjax: 'http://cdn.mathjax.org/mathjax/latest/MathJax.js',
-					config: 'TeX-AMS_HTML-full'
-				},
-
-				dependencies: [
-					{ src: '../../lib/js/classList.js' },
-					{ src: '../../plugin/math/math.js', async: true }
-				]
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/examples/slide-backgrounds.html b/docs/slides/IHP14/_support/reveal.js/test/examples/slide-backgrounds.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/examples/slide-backgrounds.html
+++ /dev/null
@@ -1,122 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Backgrounds</title>
-
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
-
-		<link rel="stylesheet" href="../../css/reveal.min.css">
-		<link rel="stylesheet" href="../../css/theme/serif.css" id="theme">
-	</head>
-
-	<body>
-
-		<div class="reveal">
-
-			<div class="slides">
-
-				<section data-background="#00ffff">
-					<h2>data-background: #00ffff</h2>
-				</section>
-
-				<section data-background="#bb00bb">
-					<h2>data-background: #bb00bb</h2>
-				</section>
-
-				<section>
-					<section data-background="#ff0000">
-						<h2>data-background: #ff0000</h2>
-					</section>
-					<section data-background="rgba(0, 0, 0, 0.2)">
-						<h2>data-background: rgba(0, 0, 0, 0.2)</h2>
-					</section>
-					<section data-background="salmon">
-						<h2>data-background: salmon</h2>
-					</section>
-				</section>
-
-				<section data-background="rgba(0, 100, 100, 0.2)">
-					<section>
-						<h2>Background applied to stack</h2>
-					</section>
-					<section>
-						<h2>Background applied to stack</h2>
-					</section>
-					<section data-background="rgba(100, 0, 0, 0.2)">
-						<h2>Background applied to slide inside of stack</h2>
-					</section>
-				</section>
-
-				<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-					<h2>Background image</h2>
-				</section>
-
-				<section>
-					<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-						<h2>Background image</h2>
-					</section>
-					<section data-background-transition="slide" data-background="assets/image1.png" style="background: rgba(255,255,255,0.9)">
-						<h2>Background image</h2>
-					</section>
-				</section>
-
-				<section data-background="assets/image2.png" data-background-size="100px" data-background-repeat="repeat" data-background-color="#111" style="background: rgba(255,255,255,0.9)">
-					<h2>Background image</h2>
-					<pre>data-background-size="100px" data-background-repeat="repeat" data-background-color="#111"</pre>
-				</section>
-
-				<section data-background="#888888">
-					<h2>Same background twice (1/2)</h2>
-				</section>
-				<section data-background="#888888">
-					<h2>Same background twice (2/2)</h2>
-				</section>
-
-				<section>
-					<section data-background="#417203">
-						<h2>Same background twice vertical (1/2)</h2>
-					</section>
-					<section data-background="#417203">
-						<h2>Same background twice vertical (2/2)</h2>
-					</section>
-				</section>
-
-				<section data-background="#934f4d">
-					<h2>Same background from horizontal to vertical (1/3)</h2>
-				</section>
-				<section>
-					<section data-background="#934f4d">
-						<h2>Same background from horizontal to vertical (2/3)</h2>
-					</section>
-					<section data-background="#934f4d">
-						<h2>Same background from horizontal to vertical (3/3)</h2>
-					</section>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../../lib/js/head.min.js"></script>
-		<script src="../../js/reveal.min.js"></script>
-
-		<script>
-
-			// Full list of configuration options available here:
-			// https://github.com/hakimel/reveal.js#configuration
-			Reveal.initialize({
-				center: true,
-				// rtl: true,
-
-				transition: 'linear',
-				// transitionSpeed: 'slow',
-				// backgroundTransition: 'slide'
-			});
-
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.css b/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.css
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-
-	border-radius: 5px 5px 0 0;
-	-moz-border-radius: 5px 5px 0 0;
-	-webkit-border-top-right-radius: 5px;
-	-webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-	padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 0 0.5em 2em;
-	color: #5E740B;
-	background-color: #eee;
-	overflow: hidden;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
-	float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {
-	display: none;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #c2ccd1;
-	text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #fff;
-
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: black; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3c510c;
-	background-color: #fff;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-	-moz-border-radius: 0 0 5px 5px;
-	-webkit-border-bottom-right-radius: 5px;
-	-webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
-	font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.js b/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/qunit-1.12.0.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
-	assert,
-	config,
-	onErrorFnPrev,
-	testId = 0,
-	fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	// Keep a local reference to Date (GH-283)
-	Date = window.Date,
-	setTimeout = window.setTimeout,
-	defined = {
-		setTimeout: typeof window.setTimeout !== "undefined",
-		sessionStorage: (function() {
-			var x = "qunit-test-string";
-			try {
-				sessionStorage.setItem( x, x );
-				sessionStorage.removeItem( x );
-				return true;
-			} catch( e ) {
-				return false;
-			}
-		}())
-	},
-	/**
-	 * Provides a normalized error string, correcting an issue
-	 * with IE 7 (and prior) where Error.prototype.toString is
-	 * not properly implemented
-	 *
-	 * Based on http://es5.github.com/#x15.11.4.4
-	 *
-	 * @param {String|Error} error
-	 * @return {String} error message
-	 */
-	errorString = function( error ) {
-		var name, message,
-			errorString = error.toString();
-		if ( errorString.substring( 0, 7 ) === "[object" ) {
-			name = error.name ? error.name.toString() : "Error";
-			message = error.message ? error.message.toString() : "";
-			if ( name && message ) {
-				return name + ": " + message;
-			} else if ( name ) {
-				return name;
-			} else if ( message ) {
-				return message;
-			} else {
-				return "Error";
-			}
-		} else {
-			return errorString;
-		}
-	},
-	/**
-	 * Makes a clone of an object using only Array or Object as base,
-	 * and copies over the own enumerable properties.
-	 *
-	 * @param {Object} obj
-	 * @return {Object} New object with only the own properties (recursively).
-	 */
-	objectValues = function( obj ) {
-		// Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
-		/*jshint newcap: false */
-		var key, val,
-			vals = QUnit.is( "array", obj ) ? [] : {};
-		for ( key in obj ) {
-			if ( hasOwn.call( obj, key ) ) {
-				val = obj[key];
-				vals[key] = val === Object(val) ? objectValues(val) : val;
-			}
-		}
-		return vals;
-	};
-
-function Test( settings ) {
-	extend( this, settings );
-	this.assertions = [];
-	this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
-	init: function() {
-		var a, b, li,
-			tests = id( "qunit-tests" );
-
-		if ( tests ) {
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml;
-
-			// `a` initialized at top of scope
-			a = document.createElement( "a" );
-			a.innerHTML = "Rerun";
-			a.href = QUnit.url({ testNumber: this.testNumber });
-
-			li = document.createElement( "li" );
-			li.appendChild( b );
-			li.appendChild( a );
-			li.className = "running";
-			li.id = this.id = "qunit-test-output" + testId++;
-
-			tests.appendChild( li );
-		}
-	},
-	setup: function() {
-		if (
-			// Emit moduleStart when we're switching from one module to another
-			this.module !== config.previousModule ||
-				// They could be equal (both undefined) but if the previousModule property doesn't
-				// yet exist it means this is the first test in a suite that isn't wrapped in a
-				// module, in which case we'll just emit a moduleStart event for 'undefined'.
-				// Without this, reporters can get testStart before moduleStart  which is a problem.
-				!hasOwn.call( config, "previousModule" )
-		) {
-			if ( hasOwn.call( config, "previousModule" ) ) {
-				runLoggingCallbacks( "moduleDone", QUnit, {
-					name: config.previousModule,
-					failed: config.moduleStats.bad,
-					passed: config.moduleStats.all - config.moduleStats.bad,
-					total: config.moduleStats.all
-				});
-			}
-			config.previousModule = this.module;
-			config.moduleStats = { all: 0, bad: 0 };
-			runLoggingCallbacks( "moduleStart", QUnit, {
-				name: this.module
-			});
-		}
-
-		config.current = this;
-
-		this.testEnvironment = extend({
-			setup: function() {},
-			teardown: function() {}
-		}, this.moduleTestEnvironment );
-
-		this.started = +new Date();
-		runLoggingCallbacks( "testStart", QUnit, {
-			name: this.testName,
-			module: this.module
-		});
-
-		/*jshint camelcase:false */
-
-
-		/**
-		 * Expose the current test environment.
-		 *
-		 * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
-		 */
-		QUnit.current_testEnvironment = this.testEnvironment;
-
-		/*jshint camelcase:true */
-
-		if ( !config.pollution ) {
-			saveGlobal();
-		}
-		if ( config.notrycatch ) {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-			return;
-		}
-		try {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-		} catch( e ) {
-			QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-		}
-	},
-	run: function() {
-		config.current = this;
-
-		var running = id( "qunit-testresult" );
-
-		if ( running ) {
-			running.innerHTML = "Running: <br/>" + this.nameHtml;
-		}
-
-		if ( this.async ) {
-			QUnit.stop();
-		}
-
-		this.callbackStarted = +new Date();
-
-		if ( config.notrycatch ) {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-			return;
-		}
-
-		try {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-		} catch( e ) {
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-
-			QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-			// else next test will carry the responsibility
-			saveGlobal();
-
-			// Restart the tests if they're blocking
-			if ( config.blocking ) {
-				QUnit.start();
-			}
-		}
-	},
-	teardown: function() {
-		config.current = this;
-		if ( config.notrycatch ) {
-			if ( typeof this.callbackRuntime === "undefined" ) {
-				this.callbackRuntime = +new Date() - this.callbackStarted;
-			}
-			this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			return;
-		} else {
-			try {
-				this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			} catch( e ) {
-				QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-			}
-		}
-		checkPollution();
-	},
-	finish: function() {
-		config.current = this;
-		if ( config.requireExpects && this.expected === null ) {
-			QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-		} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-			QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-		} else if ( this.expected === null && !this.assertions.length ) {
-			QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
-		}
-
-		var i, assertion, a, b, time, li, ol,
-			test = this,
-			good = 0,
-			bad = 0,
-			tests = id( "qunit-tests" );
-
-		this.runtime = +new Date() - this.started;
-		config.stats.all += this.assertions.length;
-		config.moduleStats.all += this.assertions.length;
-
-		if ( tests ) {
-			ol = document.createElement( "ol" );
-			ol.className = "qunit-assert-list";
-
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				assertion = this.assertions[i];
-
-				li = document.createElement( "li" );
-				li.className = assertion.result ? "pass" : "fail";
-				li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-				ol.appendChild( li );
-
-				if ( assertion.result ) {
-					good++;
-				} else {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-
-			// store result when possible
-			if ( QUnit.config.reorder && defined.sessionStorage ) {
-				if ( bad ) {
-					sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-				} else {
-					sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-				}
-			}
-
-			if ( bad === 0 ) {
-				addClass( ol, "qunit-collapsed" );
-			}
-
-			// `b` initialized at top of scope
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
-			addEvent(b, "click", function() {
-				var next = b.parentNode.lastChild,
-					collapsed = hasClass( next, "qunit-collapsed" );
-				( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-			});
-
-			addEvent(b, "dblclick", function( e ) {
-				var target = e && e.target ? e.target : window.event.srcElement;
-				if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-					target = target.parentNode;
-				}
-				if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-					window.location = QUnit.url({ testNumber: test.testNumber });
-				}
-			});
-
-			// `time` initialized at top of scope
-			time = document.createElement( "span" );
-			time.className = "runtime";
-			time.innerHTML = this.runtime + " ms";
-
-			// `li` initialized at top of scope
-			li = id( this.id );
-			li.className = bad ? "fail" : "pass";
-			li.removeChild( li.firstChild );
-			a = li.firstChild;
-			li.appendChild( b );
-			li.appendChild( a );
-			li.appendChild( time );
-			li.appendChild( ol );
-
-		} else {
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				if ( !this.assertions[i].result ) {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-		}
-
-		runLoggingCallbacks( "testDone", QUnit, {
-			name: this.testName,
-			module: this.module,
-			failed: bad,
-			passed: this.assertions.length - bad,
-			total: this.assertions.length,
-			duration: this.runtime
-		});
-
-		QUnit.reset();
-
-		config.current = undefined;
-	},
-
-	queue: function() {
-		var bad,
-			test = this;
-
-		synchronize(function() {
-			test.init();
-		});
-		function run() {
-			// each of these can by async
-			synchronize(function() {
-				test.setup();
-			});
-			synchronize(function() {
-				test.run();
-			});
-			synchronize(function() {
-				test.teardown();
-			});
-			synchronize(function() {
-				test.finish();
-			});
-		}
-
-		// `bad` initialized at top of scope
-		// defer when previous test run passed, if storage is available
-		bad = QUnit.config.reorder && defined.sessionStorage &&
-						+sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
-		if ( bad ) {
-			run();
-		} else {
-			synchronize( run, true );
-		}
-	}
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function( name, testEnvironment ) {
-		config.currentModule = name;
-		config.currentModuleTestEnvironment = testEnvironment;
-		config.modules[name] = true;
-	},
-
-	asyncTest: function( testName, expected, callback ) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		QUnit.test( testName, expected, callback, true );
-	},
-
-	test: function( testName, expected, callback, async ) {
-		var test,
-			nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
-		}
-
-		test = new Test({
-			nameHtml: nameHtml,
-			testName: testName,
-			expected: expected,
-			async: async,
-			callback: callback,
-			module: config.currentModule,
-			moduleTestEnvironment: config.currentModuleTestEnvironment,
-			stack: sourceFromStacktrace( 2 )
-		});
-
-		if ( !validTest( test ) ) {
-			return;
-		}
-
-		test.queue();
-	},
-
-	// Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
-	expect: function( asserts ) {
-		if (arguments.length === 1) {
-			config.current.expected = asserts;
-		} else {
-			return config.current.expected;
-		}
-	},
-
-	start: function( count ) {
-		// QUnit hasn't been initialized yet.
-		// Note: RequireJS (et al) may delay onLoad
-		if ( config.semaphore === undefined ) {
-			QUnit.begin(function() {
-				// This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-				setTimeout(function() {
-					QUnit.start( count );
-				});
-			});
-			return;
-		}
-
-		config.semaphore -= count || 1;
-		// don't start until equal number of stop-calls
-		if ( config.semaphore > 0 ) {
-			return;
-		}
-		// ignore if start is called more often then stop
-		if ( config.semaphore < 0 ) {
-			config.semaphore = 0;
-			QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-			return;
-		}
-		// A slight delay, to avoid any current callbacks
-		if ( defined.setTimeout ) {
-			setTimeout(function() {
-				if ( config.semaphore > 0 ) {
-					return;
-				}
-				if ( config.timeout ) {
-					clearTimeout( config.timeout );
-				}
-
-				config.blocking = false;
-				process( true );
-			}, 13);
-		} else {
-			config.blocking = false;
-			process( true );
-		}
-	},
-
-	stop: function( count ) {
-		config.semaphore += count || 1;
-		config.blocking = true;
-
-		if ( config.testTimeout && defined.setTimeout ) {
-			clearTimeout( config.timeout );
-			config.timeout = setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				config.semaphore = 1;
-				QUnit.start();
-			}, config.testTimeout );
-		}
-	}
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-	/**
-	 * Asserts rough true-ish result.
-	 * @name ok
-	 * @function
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function( result, msg ) {
-		if ( !config.current ) {
-			throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-		result = !!result;
-		msg = msg || (result ? "okay" : "failed" );
-
-		var source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: msg
-			};
-
-		msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
-		if ( !result ) {
-			source = sourceFromStacktrace( 2 );
-			if ( source ) {
-				details.source = source;
-				msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
-			}
-		}
-		runLoggingCallbacks( "log", QUnit, details );
-		config.current.assertions.push({
-			result: result,
-			message: msg
-		});
-	},
-
-	/**
-	 * Assert that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 * @name equal
-	 * @function
-	 * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-	 */
-	equal: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected == actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notEqual
-	 * @function
-	 */
-	notEqual: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected != actual, actual, expected, message );
-	},
-
-	/**
-	 * @name propEqual
-	 * @function
-	 */
-	propEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notPropEqual
-	 * @function
-	 */
-	notPropEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name deepEqual
-	 * @function
-	 */
-	deepEqual: function( actual, expected, message ) {
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notDeepEqual
-	 * @function
-	 */
-	notDeepEqual: function( actual, expected, message ) {
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name strictEqual
-	 * @function
-	 */
-	strictEqual: function( actual, expected, message ) {
-		QUnit.push( expected === actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notStrictEqual
-	 * @function
-	 */
-	notStrictEqual: function( actual, expected, message ) {
-		QUnit.push( expected !== actual, actual, expected, message );
-	},
-
-	"throws": function( block, expected, message ) {
-		var actual,
-			expectedOutput = expected,
-			ok = false;
-
-		// 'expected' is optional
-		if ( typeof expected === "string" ) {
-			message = expected;
-			expected = null;
-		}
-
-		config.current.ignoreGlobalErrors = true;
-		try {
-			block.call( config.current.testEnvironment );
-		} catch (e) {
-			actual = e;
-		}
-		config.current.ignoreGlobalErrors = false;
-
-		if ( actual ) {
-			// we don't want to validate thrown error
-			if ( !expected ) {
-				ok = true;
-				expectedOutput = null;
-			// expected is a regexp
-			} else if ( QUnit.objectType( expected ) === "regexp" ) {
-				ok = expected.test( errorString( actual ) );
-			// expected is a constructor
-			} else if ( actual instanceof expected ) {
-				ok = true;
-			// expected is a validation function which returns true is validation passed
-			} else if ( expected.call( {}, actual ) === true ) {
-				expectedOutput = null;
-				ok = true;
-			}
-
-			QUnit.push( ok, actual, expectedOutput, message );
-		} else {
-			QUnit.pushFailure( message, null, "No exception was thrown." );
-		}
-	}
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-	QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-	QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
-	function F() {}
-	F.prototype = QUnit;
-	QUnit = new F();
-	// Make F QUnit's constructor so that we can add to the prototype later
-	QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true,
-
-	// when enabled, show only failing tests
-	// gets persisted through sessionStorage and can be changed in UI via checkbox
-	hidepassed: false,
-
-	// by default, run previously failed tests first
-	// very useful in combination with "Hide passed tests" checked
-	reorder: true,
-
-	// by default, modify document.title when suite is done
-	altertitle: true,
-
-	// when enabled, all tests must call expect()
-	requireExpects: false,
-
-	// add checkboxes that are persisted in the query-string
-	// when enabled, the id is set to `true` as a `QUnit.config` property
-	urlConfig: [
-		{
-			id: "noglobals",
-			label: "Check for Globals",
-			tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-		},
-		{
-			id: "notrycatch",
-			label: "No try-catch",
-			tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-		}
-	],
-
-	// Set of all modules.
-	modules: {},
-
-	// logging callback queues
-	begin: [],
-	done: [],
-	log: [],
-	testStart: [],
-	testDone: [],
-	moduleStart: [],
-	moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-	extend( window, QUnit.constructor.prototype );
-
-	// Expose QUnit object
-	window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-	var i,
-		location = window.location || { search: "", protocol: "file:" },
-		params = location.search.slice( 1 ).split( "&" ),
-		length = params.length,
-		urlParams = {},
-		current;
-
-	if ( params[ 0 ] ) {
-		for ( i = 0; i < length; i++ ) {
-			current = params[ i ].split( "=" );
-			current[ 0 ] = decodeURIComponent( current[ 0 ] );
-			// allow just a key to turn on a flag, e.g., test.html?noglobals
-			current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-			urlParams[ current[ 0 ] ] = current[ 1 ];
-		}
-	}
-
-	QUnit.urlParams = urlParams;
-
-	// String search anywhere in moduleName+testName
-	config.filter = urlParams.filter;
-
-	// Exact match of the module name
-	config.module = urlParams.module;
-
-	config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-	assert: assert,
-
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend( config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date(),
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			filter: "",
-			queue: [],
-			semaphore: 1
-		});
-
-		var tests, banner, result,
-			qunit = id( "qunit" );
-
-		if ( qunit ) {
-			qunit.innerHTML =
-				"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-				"<h2 id='qunit-banner'></h2>" +
-				"<div id='qunit-testrunner-toolbar'></div>" +
-				"<h2 id='qunit-userAgent'></h2>" +
-				"<ol id='qunit-tests'></ol>";
-		}
-
-		tests = id( "qunit-tests" );
-		banner = id( "qunit-banner" );
-		result = id( "qunit-testresult" );
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-
-		if ( tests ) {
-			result = document.createElement( "p" );
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests );
-			result.innerHTML = "Running...<br/>&nbsp;";
-		}
-	},
-
-	// Resets the test setup. Useful for tests that modify the DOM.
-	/*
-	DEPRECATED: Use multiple tests instead of resetting inside a test.
-	Use testStart or testDone for custom cleanup.
-	This method will throw an error in 2.0, and will be removed in 2.1
-	*/
-	reset: function() {
-		var fixture = id( "qunit-fixture" );
-		if ( fixture ) {
-			fixture.innerHTML = config.fixture;
-		}
-	},
-
-	// Trigger an event on an element.
-	// @example triggerEvent( document.body, "click" );
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent( "MouseEvents" );
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
-			elem.dispatchEvent( event );
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent( "on" + type );
-		}
-	},
-
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) === type;
-	},
-
-	objectType: function( obj ) {
-		if ( typeof obj === "undefined" ) {
-				return "undefined";
-		// consider: typeof null === object
-		}
-		if ( obj === null ) {
-				return "null";
-		}
-
-		var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-			type = match && match[1] || "";
-
-		switch ( type ) {
-			case "Number":
-				if ( isNaN(obj) ) {
-					return "nan";
-				}
-				return "number";
-			case "String":
-			case "Boolean":
-			case "Array":
-			case "Date":
-			case "RegExp":
-			case "Function":
-				return type.toLowerCase();
-		}
-		if ( typeof obj === "object" ) {
-			return "object";
-		}
-		return undefined;
-	},
-
-	push: function( result, actual, expected, message ) {
-		if ( !config.current ) {
-			throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-		}
-
-		var output, source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: message,
-				actual: actual,
-				expected: expected
-			};
-
-		message = escapeText( message ) || ( result ? "okay" : "failed" );
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		if ( !result ) {
-			expected = escapeText( QUnit.jsDump.parse(expected) );
-			actual = escapeText( QUnit.jsDump.parse(actual) );
-			output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
-			if ( actual !== expected ) {
-				output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-				output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-			}
-
-			source = sourceFromStacktrace();
-
-			if ( source ) {
-				details.source = source;
-				output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-			}
-
-			output += "</table>";
-		}
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: !!result,
-			message: output
-		});
-	},
-
-	pushFailure: function( message, source, actual ) {
-		if ( !config.current ) {
-			throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-
-		var output,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: false,
-				message: message
-			};
-
-		message = escapeText( message ) || "error";
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		output += "<table>";
-
-		if ( actual ) {
-			output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-		}
-
-		if ( source ) {
-			details.source = source;
-			output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-		}
-
-		output += "</table>";
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: false,
-			message: output
-		});
-	},
-
-	url: function( params ) {
-		params = extend( extend( {}, QUnit.urlParams ), params );
-		var key,
-			querystring = "?";
-
-		for ( key in params ) {
-			if ( hasOwn.call( params, key ) ) {
-				querystring += encodeURIComponent( key ) + "=" +
-					encodeURIComponent( params[ key ] ) + "&";
-			}
-		}
-		return window.location.protocol + "//" + window.location.host +
-			window.location.pathname + querystring.slice( 0, -1 );
-	},
-
-	extend: extend,
-	id: id,
-	addEvent: addEvent,
-	addClass: addClass,
-	hasClass: hasClass,
-	removeClass: removeClass
-	// load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
-	// Logging callbacks; all receive a single argument with the listed properties
-	// run test/logs.html for any related changes
-	begin: registerLoggingCallback( "begin" ),
-
-	// done: { failed, passed, total, runtime }
-	done: registerLoggingCallback( "done" ),
-
-	// log: { result, actual, expected, message }
-	log: registerLoggingCallback( "log" ),
-
-	// testStart: { name }
-	testStart: registerLoggingCallback( "testStart" ),
-
-	// testDone: { name, failed, passed, total, duration }
-	testDone: registerLoggingCallback( "testDone" ),
-
-	// moduleStart: { name }
-	moduleStart: registerLoggingCallback( "moduleStart" ),
-
-	// moduleDone: { name, failed, passed, total }
-	moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-QUnit.load = function() {
-	runLoggingCallbacks( "begin", QUnit, {} );
-
-	// Initialize the config, saving the execution queue
-	var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-		urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-		numModules = 0,
-		moduleNames = [],
-		moduleFilterHtml = "",
-		urlConfigHtml = "",
-		oldconfig = extend( {}, config );
-
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	len = config.urlConfig.length;
-
-	for ( i = 0; i < len; i++ ) {
-		val = config.urlConfig[i];
-		if ( typeof val === "string" ) {
-			val = {
-				id: val,
-				label: val,
-				tooltip: "[no tooltip available]"
-			};
-		}
-		config[ val.id ] = QUnit.urlParams[ val.id ];
-		urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-			"' name='" + escapeText( val.id ) +
-			"' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-			" title='" + escapeText( val.tooltip ) +
-			"'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-			"' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
-	}
-	for ( i in config.modules ) {
-		if ( config.modules.hasOwnProperty( i ) ) {
-			moduleNames.push(i);
-		}
-	}
-	numModules = moduleNames.length;
-	moduleNames.sort( function( a, b ) {
-		return a.localeCompare( b );
-	});
-	moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-		( config.module === undefined  ? "selected='selected'" : "" ) +
-		">< All Modules ></option>";
-
-
-	for ( i = 0; i < numModules; i++) {
-			moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
-				( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
-				">" + escapeText(moduleNames[i]) + "</option>";
-	}
-	moduleFilterHtml += "</select>";
-
-	// `userAgent` initialized at top of scope
-	userAgent = id( "qunit-userAgent" );
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-
-	// `banner` initialized at top of scope
-	banner = id( "qunit-header" );
-	if ( banner ) {
-		banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
-	}
-
-	// `toolbar` initialized at top of scope
-	toolbar = id( "qunit-testrunner-toolbar" );
-	if ( toolbar ) {
-		// `filter` initialized at top of scope
-		filter = document.createElement( "input" );
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-
-		addEvent( filter, "click", function() {
-			var tmp,
-				ol = document.getElementById( "qunit-tests" );
-
-			if ( filter.checked ) {
-				ol.className = ol.className + " hidepass";
-			} else {
-				tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-				ol.className = tmp.replace( / hidepass /, " " );
-			}
-			if ( defined.sessionStorage ) {
-				if (filter.checked) {
-					sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
-				} else {
-					sessionStorage.removeItem( "qunit-filter-passed-tests" );
-				}
-			}
-		});
-
-		if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-			filter.checked = true;
-			// `ol` initialized at top of scope
-			ol = document.getElementById( "qunit-tests" );
-			ol.className = ol.className + " hidepass";
-		}
-		toolbar.appendChild( filter );
-
-		// `label` initialized at top of scope
-		label = document.createElement( "label" );
-		label.setAttribute( "for", "qunit-filter-pass" );
-		label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		urlConfigCheckboxesContainer = document.createElement("span");
-		urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-		urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-		// For oldIE support:
-		// * Add handlers to the individual elements instead of the container
-		// * Use "click" instead of "change"
-		// * Fallback from event.target to event.srcElement
-		addEvents( urlConfigCheckboxes, "click", function( event ) {
-			var params = {},
-				target = event.target || event.srcElement;
-			params[ target.name ] = target.checked ? true : undefined;
-			window.location = QUnit.url( params );
-		});
-		toolbar.appendChild( urlConfigCheckboxesContainer );
-
-		if (numModules > 1) {
-			moduleFilter = document.createElement( "span" );
-			moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
-			moduleFilter.innerHTML = moduleFilterHtml;
-			addEvent( moduleFilter.lastChild, "change", function() {
-				var selectBox = moduleFilter.getElementsByTagName("select")[0],
-					selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
-				window.location = QUnit.url({
-					module: ( selectedModule === "" ) ? undefined : selectedModule,
-					// Remove any existing filters
-					filter: undefined,
-					testNumber: undefined
-				});
-			});
-			toolbar.appendChild(moduleFilter);
-		}
-	}
-
-	// `main` initialized at top of scope
-	main = id( "qunit-fixture" );
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if ( config.autostart ) {
-		QUnit.start();
-	}
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-	var ret = false;
-	if ( onErrorFnPrev ) {
-		ret = onErrorFnPrev( error, filePath, linerNr );
-	}
-
-	// Treat return value as window.onerror itself does,
-	// Only do our handling if not suppressed.
-	if ( ret !== true ) {
-		if ( QUnit.config.current ) {
-			if ( QUnit.config.current.ignoreGlobalErrors ) {
-				return true;
-			}
-			QUnit.pushFailure( error, filePath + ":" + linerNr );
-		} else {
-			QUnit.test( "global failure", extend( function() {
-				QUnit.pushFailure( error, filePath + ":" + linerNr );
-			}, { validTest: validTest } ) );
-		}
-		return false;
-	}
-
-	return ret;
-};
-
-function done() {
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		runLoggingCallbacks( "moduleDone", QUnit, {
-			name: config.currentModule,
-			failed: config.moduleStats.bad,
-			passed: config.moduleStats.all - config.moduleStats.bad,
-			total: config.moduleStats.all
-		});
-	}
-	delete config.previousModule;
-
-	var i, key,
-		banner = id( "qunit-banner" ),
-		tests = id( "qunit-tests" ),
-		runtime = +new Date() - config.started,
-		passed = config.stats.all - config.stats.bad,
-		html = [
-			"Tests completed in ",
-			runtime,
-			" milliseconds.<br/>",
-			"<span class='passed'>",
-			passed,
-			"</span> assertions of <span class='total'>",
-			config.stats.all,
-			"</span> passed, <span class='failed'>",
-			config.stats.bad,
-			"</span> failed."
-		].join( "" );
-
-	if ( banner ) {
-		banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
-	}
-
-	if ( tests ) {
-		id( "qunit-testresult" ).innerHTML = html;
-	}
-
-	if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-		// show ✖ for good, ✔ for bad suite result in title
-		// use escape sequences in case file gets loaded with non-utf-8-charset
-		document.title = [
-			( config.stats.bad ? "\u2716" : "\u2714" ),
-			document.title.replace( /^[\u2714\u2716] /i, "" )
-		].join( " " );
-	}
-
-	// clear own sessionStorage items if all tests passed
-	if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-		// `key` & `i` initialized at top of scope
-		for ( i = 0; i < sessionStorage.length; i++ ) {
-			key = sessionStorage.key( i++ );
-			if ( key.indexOf( "qunit-test-" ) === 0 ) {
-				sessionStorage.removeItem( key );
-			}
-		}
-	}
-
-	// scroll back to top to show results
-	if ( window.scrollTo ) {
-		window.scrollTo(0, 0);
-	}
-
-	runLoggingCallbacks( "done", QUnit, {
-		failed: config.stats.bad,
-		passed: passed,
-		total: config.stats.all,
-		runtime: runtime
-	});
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-	var include,
-		filter = config.filter && config.filter.toLowerCase(),
-		module = config.module && config.module.toLowerCase(),
-		fullName = (test.module + ": " + test.testName).toLowerCase();
-
-	// Internally-generated tests are always valid
-	if ( test.callback && test.callback.validTest === validTest ) {
-		delete test.callback.validTest;
-		return true;
-	}
-
-	if ( config.testNumber ) {
-		return test.testNumber === config.testNumber;
-	}
-
-	if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-		return false;
-	}
-
-	if ( !filter ) {
-		return true;
-	}
-
-	include = filter.charAt( 0 ) !== "!";
-	if ( !include ) {
-		filter = filter.slice( 1 );
-	}
-
-	// If the filter matches, we need to honour include
-	if ( fullName.indexOf( filter ) !== -1 ) {
-		return include;
-	}
-
-	// Otherwise, do the opposite
-	return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-	offset = offset === undefined ? 3 : offset;
-
-	var stack, include, i;
-
-	if ( e.stacktrace ) {
-		// Opera
-		return e.stacktrace.split( "\n" )[ offset + 3 ];
-	} else if ( e.stack ) {
-		// Firefox, Chrome
-		stack = e.stack.split( "\n" );
-		if (/^error$/i.test( stack[0] ) ) {
-			stack.shift();
-		}
-		if ( fileName ) {
-			include = [];
-			for ( i = offset; i < stack.length; i++ ) {
-				if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-					break;
-				}
-				include.push( stack[ i ] );
-			}
-			if ( include.length ) {
-				return include.join( "\n" );
-			}
-		}
-		return stack[ offset ];
-	} else if ( e.sourceURL ) {
-		// Safari, PhantomJS
-		// hopefully one day Safari provides actual stacktraces
-		// exclude useless self-reference for generated Error objects
-		if ( /qunit.js$/.test( e.sourceURL ) ) {
-			return;
-		}
-		// for actual exceptions, this is useful
-		return e.sourceURL + ":" + e.line;
-	}
-}
-function sourceFromStacktrace( offset ) {
-	try {
-		throw new Error();
-	} catch ( e ) {
-		return extractStacktrace( e, offset );
-	}
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-	if ( !s ) {
-		return "";
-	}
-	s = s + "";
-	// Both single quotes and double quotes (for attributes)
-	return s.replace( /['"<>&]/g, function( s ) {
-		switch( s ) {
-			case "'":
-				return "&#039;";
-			case "\"":
-				return "&quot;";
-			case "<":
-				return "&lt;";
-			case ">":
-				return "&gt;";
-			case "&":
-				return "&amp;";
-		}
-	});
-}
-
-function synchronize( callback, last ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process( last );
-	}
-}
-
-function process( last ) {
-	function next() {
-		process( last );
-	}
-	var start = new Date().getTime();
-	config.depth = config.depth ? config.depth + 1 : 1;
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-			config.queue.shift()();
-		} else {
-			setTimeout( next, 13 );
-			break;
-		}
-	}
-	config.depth--;
-	if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-		done();
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			if ( hasOwn.call( window, key ) ) {
-				// in Opera sometimes DOM element ids show up here, ignore them
-				if ( /^qunit-test-output/.test( key ) ) {
-					continue;
-				}
-				config.pollution.push( key );
-			}
-		}
-	}
-}
-
-function checkPollution() {
-	var newGlobals,
-		deletedGlobals,
-		old = config.pollution;
-
-	saveGlobal();
-
-	newGlobals = diff( config.pollution, old );
-	if ( newGlobals.length > 0 ) {
-		QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-	}
-
-	deletedGlobals = diff( old, config.pollution );
-	if ( deletedGlobals.length > 0 ) {
-		QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var i, j,
-		result = a.slice();
-
-	for ( i = 0; i < result.length; i++ ) {
-		for ( j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice( i, 1 );
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function extend( a, b ) {
-	for ( var prop in b ) {
-		if ( hasOwn.call( b, prop ) ) {
-			// Avoid "Member not found" error in IE8 caused by messing with window.constructor
-			if ( !( prop === "constructor" && a === window ) ) {
-				if ( b[ prop ] === undefined ) {
-					delete a[ prop ];
-				} else {
-					a[ prop ] = b[ prop ];
-				}
-			}
-		}
-	}
-
-	return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
-	// Standards-based browsers
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	// IE
-	} else {
-		elem.attachEvent( "on" + type, fn );
-	}
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
-	var i = elems.length;
-	while ( i-- ) {
-		addEvent( elems[i], type, fn );
-	}
-}
-
-function hasClass( elem, name ) {
-	return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-	if ( !hasClass( elem, name ) ) {
-		elem.className += (elem.className ? " " : "") + name;
-	}
-}
-
-function removeClass( elem, name ) {
-	var set = " " + elem.className + " ";
-	// Class name may appear multiple times
-	while ( set.indexOf(" " + name + " ") > -1 ) {
-		set = set.replace(" " + name + " " , " ");
-	}
-	// If possible, trim it for prettiness, but not necessarily
-	elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
-	return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-		document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-	return function( callback ) {
-		config[key].push( callback );
-	};
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-	var i, callbacks;
-	if ( QUnit.hasOwnProperty( key ) ) {
-		QUnit[ key ].call(scope, args );
-	} else {
-		callbacks = config[ key ];
-		for ( i = 0; i < callbacks.length; i++ ) {
-			callbacks[ i ].call( scope, args );
-		}
-	}
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
-	// Call the o related callback with the given arguments.
-	function bindCallbacks( o, callbacks, args ) {
-		var prop = QUnit.objectType( o );
-		if ( prop ) {
-			if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
-				return callbacks[ prop ].apply( callbacks, args );
-			} else {
-				return callbacks[ prop ]; // or undefined
-			}
-		}
-	}
-
-	// the real equiv function
-	var innerEquiv,
-		// stack to decide between skip/abort functions
-		callers = [],
-		// stack to avoiding loops from circular referencing
-		parents = [],
-		parentsB = [],
-
-		getProto = Object.getPrototypeOf || function ( obj ) {
-			/*jshint camelcase:false */
-			return obj.__proto__;
-		},
-		callbacks = (function () {
-
-			// for string, boolean, number and null
-			function useStrictEquality( b, a ) {
-				/*jshint eqeqeq:false */
-				if ( b instanceof a.constructor || a instanceof b.constructor ) {
-					// to catch short annotation VS 'new' annotation of a
-					// declaration
-					// e.g. var i = 1;
-					// var j = new Number(1);
-					return a == b;
-				} else {
-					return a === b;
-				}
-			}
-
-			return {
-				"string": useStrictEquality,
-				"boolean": useStrictEquality,
-				"number": useStrictEquality,
-				"null": useStrictEquality,
-				"undefined": useStrictEquality,
-
-				"nan": function( b ) {
-					return isNaN( b );
-				},
-
-				"date": function( b, a ) {
-					return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
-				},
-
-				"regexp": function( b, a ) {
-					return QUnit.objectType( b ) === "regexp" &&
-						// the regex itself
-						a.source === b.source &&
-						// and its modifiers
-						a.global === b.global &&
-						// (gmi) ...
-						a.ignoreCase === b.ignoreCase &&
-						a.multiline === b.multiline &&
-						a.sticky === b.sticky;
-				},
-
-				// - skip when the property is a method of an instance (OOP)
-				// - abort otherwise,
-				// initial === would have catch identical references anyway
-				"function": function() {
-					var caller = callers[callers.length - 1];
-					return caller !== Object && typeof caller !== "undefined";
-				},
-
-				"array": function( b, a ) {
-					var i, j, len, loop, aCircular, bCircular;
-
-					// b could be an object literal here
-					if ( QUnit.objectType( b ) !== "array" ) {
-						return false;
-					}
-
-					len = a.length;
-					if ( len !== b.length ) {
-						// safe and faster
-						return false;
-					}
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-					for ( i = 0; i < len; i++ ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									parents.pop();
-									parentsB.pop();
-									return false;
-								}
-							}
-						}
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							parents.pop();
-							parentsB.pop();
-							return false;
-						}
-					}
-					parents.pop();
-					parentsB.pop();
-					return true;
-				},
-
-				"object": function( b, a ) {
-					/*jshint forin:false */
-					var i, j, loop, aCircular, bCircular,
-						// Default to true
-						eq = true,
-						aProperties = [],
-						bProperties = [];
-
-					// comparing constructors is more strict than using
-					// instanceof
-					if ( a.constructor !== b.constructor ) {
-						// Allow objects with no prototype to be equivalent to
-						// objects with Object as their constructor.
-						if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
-							( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
-								return false;
-						}
-					}
-
-					// stack constructor before traversing properties
-					callers.push( a.constructor );
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-
-					// be strict: don't ensure hasOwnProperty and go deep
-					for ( i in a ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									eq = false;
-									break;
-								}
-							}
-						}
-						aProperties.push(i);
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							eq = false;
-							break;
-						}
-					}
-
-					parents.pop();
-					parentsB.pop();
-					callers.pop(); // unstack, we are done
-
-					for ( i in b ) {
-						bProperties.push( i ); // collect b's properties
-					}
-
-					// Ensures identical properties name
-					return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
-				}
-			};
-		}());
-
-	innerEquiv = function() { // can take multiple arguments
-		var args = [].slice.apply( arguments );
-		if ( args.length < 2 ) {
-			return true; // end transition
-		}
-
-		return (function( a, b ) {
-			if ( a === b ) {
-				return true; // catch the most you can
-			} else if ( a === null || b === null || typeof a === "undefined" ||
-					typeof b === "undefined" ||
-					QUnit.objectType(a) !== QUnit.objectType(b) ) {
-				return false; // don't lose time with error prone cases
-			} else {
-				return bindCallbacks(a, callbacks, [ b, a ]);
-			}
-
-			// apply transition with (1..n) arguments
-		}( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
-	};
-
-	return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
-	}
-	function literal( o ) {
-		return o + "";
-	}
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join ) {
-			arr = arr.join( "," + s + inner );
-		}
-		if ( !arr ) {
-			return pre + post;
-		}
-		return [ pre, inner + arr, base + post ].join(s);
-	}
-	function array( arr, stack ) {
-		var i = arr.length, ret = new Array(i);
-		this.up();
-		while ( i-- ) {
-			ret[i] = this.parse( arr[i] , undefined , stack);
-		}
-		this.down();
-		return join( "[", ret, "]" );
-	}
-
-	var reName = /^function (\w+)/,
-		jsDump = {
-			// type is used mostly internally, you can fix a (custom)type in advance
-			parse: function( obj, type, stack ) {
-				stack = stack || [ ];
-				var inStack, res,
-					parser = this.parsers[ type || this.typeOf(obj) ];
-
-				type = typeof parser;
-				inStack = inArray( obj, stack );
-
-				if ( inStack !== -1 ) {
-					return "recursion(" + (inStack - stack.length) + ")";
-				}
-				if ( type === "function" )  {
-					stack.push( obj );
-					res = parser.call( this, obj, stack );
-					stack.pop();
-					return res;
-				}
-				return ( type === "string" ) ? parser : this.parsers.error;
-			},
-			typeOf: function( obj ) {
-				var type;
-				if ( obj === null ) {
-					type = "null";
-				} else if ( typeof obj === "undefined" ) {
-					type = "undefined";
-				} else if ( QUnit.is( "regexp", obj) ) {
-					type = "regexp";
-				} else if ( QUnit.is( "date", obj) ) {
-					type = "date";
-				} else if ( QUnit.is( "function", obj) ) {
-					type = "function";
-				} else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
-					type = "window";
-				} else if ( obj.nodeType === 9 ) {
-					type = "document";
-				} else if ( obj.nodeType ) {
-					type = "node";
-				} else if (
-					// native arrays
-					toString.call( obj ) === "[object Array]" ||
-					// NodeList objects
-					( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-				) {
-					type = "array";
-				} else if ( obj.constructor === Error.prototype.constructor ) {
-					type = "error";
-				} else {
-					type = typeof obj;
-				}
-				return type;
-			},
-			separator: function() {
-				return this.multiline ?	this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
-			},
-			// extra can be a number, shortcut for increasing-calling-decreasing
-			indent: function( extra ) {
-				if ( !this.multiline ) {
-					return "";
-				}
-				var chr = this.indentChar;
-				if ( this.HTML ) {
-					chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
-				}
-				return new Array( this.depth + ( extra || 0 ) ).join(chr);
-			},
-			up: function( a ) {
-				this.depth += a || 1;
-			},
-			down: function( a ) {
-				this.depth -= a || 1;
-			},
-			setParser: function( name, parser ) {
-				this.parsers[name] = parser;
-			},
-			// The next 3 are exposed so you can use them
-			quote: quote,
-			literal: literal,
-			join: join,
-			//
-			depth: 1,
-			// This is the list of parsers, to modify them, use jsDump.setParser
-			parsers: {
-				window: "[Window]",
-				document: "[Document]",
-				error: function(error) {
-					return "Error(\"" + error.message + "\")";
-				},
-				unknown: "[Unknown]",
-				"null": "null",
-				"undefined": "undefined",
-				"function": function( fn ) {
-					var ret = "function",
-						// functions never have name in IE
-						name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-					if ( name ) {
-						ret += " " + name;
-					}
-					ret += "( ";
-
-					ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
-					return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
-				},
-				array: array,
-				nodelist: array,
-				"arguments": array,
-				object: function( map, stack ) {
-					/*jshint forin:false */
-					var ret = [ ], keys, key, val, i;
-					QUnit.jsDump.up();
-					keys = [];
-					for ( key in map ) {
-						keys.push( key );
-					}
-					keys.sort();
-					for ( i = 0; i < keys.length; i++ ) {
-						key = keys[ i ];
-						val = map[ key ];
-						ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
-					}
-					QUnit.jsDump.down();
-					return join( "{", ret, "}" );
-				},
-				node: function( node ) {
-					var len, i, val,
-						open = QUnit.jsDump.HTML ? "&lt;" : "<",
-						close = QUnit.jsDump.HTML ? "&gt;" : ">",
-						tag = node.nodeName.toLowerCase(),
-						ret = open + tag,
-						attrs = node.attributes;
-
-					if ( attrs ) {
-						for ( i = 0, len = attrs.length; i < len; i++ ) {
-							val = attrs[i].nodeValue;
-							// IE6 includes all attributes in .attributes, even ones not explicitly set.
-							// Those have values like undefined, null, 0, false, "" or "inherit".
-							if ( val && val !== "inherit" ) {
-								ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
-							}
-						}
-					}
-					ret += close;
-
-					// Show content of TextNode or CDATASection
-					if ( node.nodeType === 3 || node.nodeType === 4 ) {
-						ret += node.nodeValue;
-					}
-
-					return ret + open + "/" + tag + close;
-				},
-				// function calls it internally, it's the arguments part of the function
-				functionArgs: function( fn ) {
-					var args,
-						l = fn.length;
-
-					if ( !l ) {
-						return "";
-					}
-
-					args = new Array(l);
-					while ( l-- ) {
-						// 97 is 'a'
-						args[l] = String.fromCharCode(97+l);
-					}
-					return " " + args.join( ", " ) + " ";
-				},
-				// object calls it internally, the key part of an item in a map
-				key: quote,
-				// function calls it internally, it's the content of the function
-				functionCode: "[code]",
-				// node calls it internally, it's an html attribute value
-				attribute: quote,
-				string: quote,
-				date: quote,
-				regexp: literal,
-				number: literal,
-				"boolean": literal
-			},
-			// if true, entities are escaped ( <, >, \t, space and \n )
-			HTML: false,
-			// indentation unit
-			indentChar: "  ",
-			// if true, items in a collection, are separated by a \n, else just a space.
-			multiline: true
-		};
-
-	return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
-	if ( array.indexOf ) {
-		return array.indexOf( elem );
-	}
-
-	for ( var i = 0, length = array.length; i < length; i++ ) {
-		if ( array[ i ] === elem ) {
-			return i;
-		}
-	}
-
-	return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	/*jshint eqeqeq:false, eqnull:true */
-	function diff( o, n ) {
-		var i,
-			ns = {},
-			os = {};
-
-		for ( i = 0; i < n.length; i++ ) {
-			if ( !hasOwn.call( ns, n[i] ) ) {
-				ns[ n[i] ] = {
-					rows: [],
-					o: null
-				};
-			}
-			ns[ n[i] ].rows.push( i );
-		}
-
-		for ( i = 0; i < o.length; i++ ) {
-			if ( !hasOwn.call( os, o[i] ) ) {
-				os[ o[i] ] = {
-					rows: [],
-					n: null
-				};
-			}
-			os[ o[i] ].rows.push( i );
-		}
-
-		for ( i in ns ) {
-			if ( hasOwn.call( ns, i ) ) {
-				if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-					n[ ns[i].rows[0] ] = {
-						text: n[ ns[i].rows[0] ],
-						row: os[i].rows[0]
-					};
-					o[ os[i].rows[0] ] = {
-						text: o[ os[i].rows[0] ],
-						row: ns[i].rows[0]
-					};
-				}
-			}
-		}
-
-		for ( i = 0; i < n.length - 1; i++ ) {
-			if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
-						n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
-				n[ i + 1 ] = {
-					text: n[ i + 1 ],
-					row: n[i].row + 1
-				};
-				o[ n[i].row + 1 ] = {
-					text: o[ n[i].row + 1 ],
-					row: i + 1
-				};
-			}
-		}
-
-		for ( i = n.length - 1; i > 0; i-- ) {
-			if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
-						n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
-				n[ i - 1 ] = {
-					text: n[ i - 1 ],
-					row: n[i].row - 1
-				};
-				o[ n[i].row - 1 ] = {
-					text: o[ n[i].row - 1 ],
-					row: i - 1
-				};
-			}
-		}
-
-		return {
-			o: o,
-			n: n
-		};
-	}
-
-	return function( o, n ) {
-		o = o.replace( /\s+$/, "" );
-		n = n.replace( /\s+$/, "" );
-
-		var i, pre,
-			str = "",
-			out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
-			oSpace = o.match(/\s+/g),
-			nSpace = n.match(/\s+/g);
-
-		if ( oSpace == null ) {
-			oSpace = [ " " ];
-		}
-		else {
-			oSpace.push( " " );
-		}
-
-		if ( nSpace == null ) {
-			nSpace = [ " " ];
-		}
-		else {
-			nSpace.push( " " );
-		}
-
-		if ( out.n.length === 0 ) {
-			for ( i = 0; i < out.o.length; i++ ) {
-				str += "<del>" + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if ( out.n[0].text == null ) {
-				for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
-					str += "<del>" + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-
-			for ( i = 0; i < out.n.length; i++ ) {
-				if (out.n[i].text == null) {
-					str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					// `pre` initialized at top of scope
-					pre = "";
-
-					for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
-						pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-
-		return str;
-	};
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
-	extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.html b/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.html
+++ /dev/null
@@ -1,134 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown Element Attributes</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-				<section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$" data-element-attributes="{_\s*?([^}]+?)}">>
-					<script type="text/template">
-						## Slide 1.1
-						<!-- {_class="fragment fade-out" data-fragment-index="1"} -->
-
-						--
-
-						## Slide 1.2
-						<!-- {_class="fragment shrink"} -->
-
-						Paragraph 1
-						<!-- {_class="fragment grow"} -->
-
-						Paragraph 2
-						<!-- {_class="fragment grow"} -->
-
-						- list item 1 <!-- {_class="fragment roll-in"} -->
-						- list item 2 <!-- {_class="fragment roll-in"} -->
-						- list item 3 <!-- {_class="fragment roll-in"} -->
-
-
-						---
-
-						## Slide 2
-
-
-						Paragraph 1.2  
-						multi-line <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.2 <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.3 <!-- {_class="fragment highlight-red"} -->
-
-						Paragraph 2.4 <!-- {_class="fragment highlight-red"} -->
-
-						- list item 1 <!-- {_class="fragment highlight-green"} -->
-						- list item 2<!-- {_class="fragment highlight-green"} -->
-						- list item 3<!-- {_class="fragment highlight-green"} -->
-						- list item 4
-						<!-- {_class="fragment highlight-green"} -->
-						- list item 5<!-- {_class="fragment highlight-green"} -->
-
-						Test
-
-						![Example Picture](examples/assets/image2.png)
-						<!-- {_class="reveal stretch"} -->
-
-					</script>
-				</section>
-
-
-
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown with default separator
-						## Slide 1 Def <!-- .element: class="fragment highlight-red" data-fragment-index="1" -->
-
-
-						## Slide 2 Def
-						<!-- .element: class="fragment highlight-red" -->
-
-					</script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-					A paragraph
-					<!-- .element: class="fragment highlight-blue" -->
-				  </script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-
-					Multiple  
-					Line
-					<!-- .element: class="fragment highlight-blue" -->
-				  </script>
-				</section>
-
-				<section data-markdown>
-				  <script type="text/template">
-					## Hello world
-
-					Test<!-- .element: class="fragment highlight-blue" -->
-
-					More Test
-				  </script>
-				</section>
-
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown-element-attributes.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.js b/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-element-attributes.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
-	});
-
-
-	test( 'Attributes on element header in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
-	});
-
-	test( 'Attributes on element paragraphs in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
-	});
-
-	test( 'Attributes on element list items in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
-	});
-
-	test( 'Attributes on element paragraphs in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
-	});
-
-	test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
-	});
-
-	test( 'Attributes on elements in single slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.html b/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.html
+++ /dev/null
@@ -1,128 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown Attributes</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by three lines, vertical slides by two lines, attributes are one any line starting with (spaces and) two dashes -->
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-attributes="--\s(.*?)$"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown
-						## Slide 1
-
-
-
-						## Slide 2
-						<!-- -- id="slide2" data-transition="zoom" data-background="#A0C66B" -->
-
-
-						## Slide 2.1
-						<!-- -- data-background="#ff0000" data-transition="fade" -->
-
-
-						## Slide 2.2
-						[Link to Slide2](#/slide2)
-
-
-
-						## Slide 3
-						<!-- -- data-transition="zoom" data-background="#C6916B" -->
-
-
-
-						## Slide 4
-					</script>
-				</section>
-
-				<section 	data-markdown data-separator="^\n\n\n"
-									data-vertical="^\n\n"
-									data-notes="^Note:"
-									data-charset="utf-8">
-					<script type="text/template">
-						# Test attributes in Markdown with default separator
-						## Slide 1 Def
-
-
-
-						## Slide 2 Def
-						<!-- .slide: id="slide2def" data-transition="concave" data-background="#A7C66B" -->
-
-
-						## Slide 2.1 Def
-						<!-- .slide: data-background="#f70000" data-transition="page" -->
-
-
-						## Slide 2.2 Def
-						[Link to Slide2](#/slide2def)
-
-
-
-						## Slide 3 Def
-						<!-- .slide: data-transition="concave" data-background="#C7916B" -->
-
-
-
-						## Slide 4
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						<!-- .slide: data-background="#ff0000" -->
-						## Hello world
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Hello world
-						<!-- .slide: data-background="#ff0000" -->
-					</script>
-				</section>
-
-				<section data-markdown>
-					<script type="text/template">
-						## Hello world
-
-						Test
-						<!-- .slide: data-background="#ff0000" -->
-
-						More Test
-					</script>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown-slide-attributes.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.js b/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown-slide-attributes.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
-	});
-
-	test( 'Id on slide', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
-	});
-
-	test( 'data-background attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-background attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-transition attributes with inline content', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown.html b/docs/slides/IHP14/_support/reveal.js/test/test-markdown.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown.html
+++ /dev/null
@@ -1,52 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Test Markdown</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-  		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<!-- <section data-markdown="example.md" data-separator="^\n\n\n" data-vertical="^\n\n"></section> -->
-
-				<!-- Slides are separated by newline + three dashes + newline, vertical slides identical but two dashes -->
-				<section data-markdown data-separator="^\n---\n$" data-vertical="^\n--\n$">
-					<script type="text/template">
-						## Slide 1.1
-
-						--
-
-						## Slide 1.2
-
-						---
-
-						## Slide 2
-					</script>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="../plugin/markdown/marked.js"></script>
-		<script src="../plugin/markdown/markdown.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test-markdown.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test-markdown.js b/docs/slides/IHP14/_support/reveal.js/test/test-markdown.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test-markdown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test.html b/docs/slides/IHP14/_support/reveal.js/test/test.html
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test.html
+++ /dev/null
@@ -1,81 +0,0 @@
-<!doctype html>
-<html lang="en">
-
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Tests</title>
-
-		<link rel="stylesheet" href="../css/reveal.min.css">
-		<link rel="stylesheet" href="qunit-1.12.0.css">
-	</head>
-
-	<body style="overflow: auto;">
-
-		<div id="qunit"></div>
-  		<div id="qunit-fixture"></div>
-
-		<div class="reveal" style="display: none;">
-
-			<div class="slides">
-
-				<section>
-					<h1>1</h1>
-				</section>
-
-				<section>
-					<section>
-						<h1>2.1</h1>
-					</section>
-					<section>
-						<h1>2.2</h1>
-					</section>
-					<section>
-						<h1>2.3</h1>
-					</section>
-				</section>
-
-				<section id="fragment-slides">
-					<section>
-						<h1>3.1</h1>
-						<ul>
-							<li class="fragment">4.1</li>
-							<li class="fragment">4.2</li>
-							<li class="fragment">4.3</li>
-						</ul>
-					</section>
-
-					<section>
-						<h1>3.2</h1>
-						<ul>
-							<li class="fragment" data-fragment-index="0">4.1</li>
-							<li class="fragment" data-fragment-index="0">4.2</li>
-						</ul>
-					</section>
-
-					<section>
-						<h1>3.3</h1>
-						<ul>
-							<li class="fragment" data-fragment-index="1">3.3.1</li>
-							<li class="fragment" data-fragment-index="4">3.3.2</li>
-							<li class="fragment" data-fragment-index="4">3.3.3</li>
-						</ul>
-					</section>
-				</section>
-
-				<section>
-					<h1>4</h1>
-				</section>
-
-			</div>
-
-		</div>
-
-		<script src="../lib/js/head.min.js"></script>
-		<script src="../js/reveal.min.js"></script>
-		<script src="qunit-1.12.0.js"></script>
-
-		<script src="test.js"></script>
-
-	</body>
-</html>
diff --git a/docs/slides/IHP14/_support/reveal.js/test/test.js b/docs/slides/IHP14/_support/reveal.js/test/test.js
deleted file mode 100644
--- a/docs/slides/IHP14/_support/reveal.js/test/test.js
+++ /dev/null
@@ -1,438 +0,0 @@
-
-// These tests expect the DOM to contain a presentation
-// with the following slide structure:
-//
-// 1
-// 2 - Three sub-slides
-// 3 - Three fragment elements
-// 3 - Two fragments with same data-fragment-index
-// 4
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	// ---------------------------------------------------------------
-	// DOM TESTS
-
-	QUnit.module( 'DOM' );
-
-	test( 'Initial slides classes', function() {
-		var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
-
-		ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
-	});
-
-	// ---------------------------------------------------------------
-	// API TESTS
-
-	QUnit.module( 'API' );
-
-	test( 'Reveal.isReady', function() {
-		strictEqual( Reveal.isReady(), true, 'returns true' );
-	});
-
-	test( 'Reveal.isOverview', function() {
-		strictEqual( Reveal.isOverview(), false, 'false by default' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
-	});
-
-	test( 'Reveal.isPaused', function() {
-		strictEqual( Reveal.isPaused(), false, 'false by default' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), true, 'true after pausing' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), false, 'false after resuming' );
-	});
-
-	test( 'Reveal.isFirstSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-
-		Reveal.slide( 1, 0 );
-		strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.isLastSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-
-		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
-
-		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.getIndices', function() {
-		var indices = Reveal.getIndices();
-
-		ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
-		ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
-		ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
-
-		Reveal.slide( 1, 0 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
-
-		Reveal.slide( 1, 2 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
-
-		Reveal.slide( 0, 0 );
-	});
-
-	test( 'Reveal.getSlide', function() {
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-
-		equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
-
-		strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
-	});
-
-	test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
-		Reveal.slide( 0, 0 );
-		Reveal.slide( 1, 0 );
-
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-		var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
-
-		equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
-		equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
-	});
-
-	test( 'Reveal.getScale', function() {
-		ok( typeof Reveal.getScale() === 'number', 'has scale' );
-	});
-
-	test( 'Reveal.getConfig', function() {
-		ok( typeof Reveal.getConfig() === 'object', 'has config' );
-	});
-
-	test( 'Reveal.configure', function() {
-		strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
-
-		Reveal.configure({ loop: true });
-		strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
-
-		Reveal.configure({ loop: false, customTestValue: 1 });
-		strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
-	});
-
-	test( 'Reveal.availableRoutes', function() {
-		Reveal.slide( 0, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
-
-		Reveal.slide( 1, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
-	});
-
-	test( 'Reveal.next', function() {
-		Reveal.slide( 0, 0 );
-
-		// Step through vertical child slides
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
-
-		// Step through fragments
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
-	});
-
-	test( 'Reveal.next at end', function() {
-		Reveal.slide( 3 );
-
-		// We're at the end, this should have no effect
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-	});
-
-
-	// ---------------------------------------------------------------
-	// FRAGMENT TESTS
-
-	QUnit.module( 'Fragments' );
-
-	test( 'Sliding to fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
-
-		Reveal.slide( 2, 0, 0 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
-
-		Reveal.slide( 2, 0, 2 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
-
-		Reveal.slide( 2, 0, 1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
-	});
-
-	test( 'Hiding all fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
-
-		Reveal.slide( 2, 0, -1 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
-	});
-
-	test( 'Current fragment', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
-
-		Reveal.slide( 1, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
-	});
-
-	test( 'Stepping through fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-
-		// forwards:
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
-
-		Reveal.right();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
-
-		Reveal.down();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
-
-		Reveal.down(); // moves to f #3
-
-		// backwards:
-
-		Reveal.prev();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
-
-		Reveal.left();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
-
-		Reveal.up();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
-	});
-
-	test( 'Stepping past fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 0, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
-	});
-
-	test( 'Fragment indices', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
-	});
-
-	test( 'Index generation', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		// These have no indices defined to start with
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
-	});
-
-	test( 'Index normalization', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
-
-		// These start out as 1-4-4 and should normalize to 0-1-1
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
-	});
-
-	asyncTest( 'fragmentshown event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmentshown', _onEvent );
-
-		Reveal.slide( 2, 0 );
-		Reveal.slide( 2, 0 ); // should do nothing
-		Reveal.slide( 2, 0, 0 ); // should do nothing
-		Reveal.next();
-		Reveal.next();
-		Reveal.prev(); // shouldn't fire fragmentshown
-
-		start();
-
-		Reveal.removeEventListener( 'fragmentshown', _onEvent );
-	});
-
-	asyncTest( 'fragmenthidden event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmenthidden', _onEvent );
-
-		Reveal.slide( 2, 0, 2 );
-		Reveal.slide( 2, 0, 2 ); // should do nothing
-		Reveal.prev();
-		Reveal.prev();
-		Reveal.next(); // shouldn't fire fragmenthidden
-
-		start();
-
-		Reveal.removeEventListener( 'fragmenthidden', _onEvent );
-	});
-
-
-	// ---------------------------------------------------------------
-	// CONFIGURATION VALUES
-
-	QUnit.module( 'Configuration' );
-
-	test( 'Controls', function() {
-		var controlsElement = document.querySelector( '.reveal>.controls' );
-
-		Reveal.configure({ controls: false });
-		equal( controlsElement.style.display, 'none', 'controls are hidden' );
-
-		Reveal.configure({ controls: true });
-		equal( controlsElement.style.display, 'block', 'controls are visible' );
-	});
-
-	test( 'Progress', function() {
-		var progressElement = document.querySelector( '.reveal>.progress' );
-
-		Reveal.configure({ progress: false });
-		equal( progressElement.style.display, 'none', 'progress are hidden' );
-
-		Reveal.configure({ progress: true });
-		equal( progressElement.style.display, 'block', 'progress are visible' );
-	});
-
-	test( 'Loop', function() {
-		Reveal.configure({ loop: true });
-
-		Reveal.slide( 0, 0 );
-
-		Reveal.left();
-		notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
-
-		Reveal.right();
-		equal( Reveal.getIndices().h, 0, 'looped from end to start' );
-
-		Reveal.configure({ loop: false });
-	});
-
-
-	// ---------------------------------------------------------------
-	// EVENT TESTS
-
-	QUnit.module( 'Events' );
-
-	asyncTest( 'slidechanged', function() {
-		expect( 3 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'slidechanged', _onEvent );
-
-		Reveal.slide( 1, 0 ); // should trigger
-		Reveal.slide( 1, 0 ); // should do nothing
-		Reveal.next(); // should trigger
-		Reveal.slide( 3, 0 ); // should trigger
-		Reveal.next(); // should do nothing
-
-		start();
-
-		Reveal.removeEventListener( 'slidechanged', _onEvent );
-
-	});
-
-	asyncTest( 'paused', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'paused', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'paused', _onEvent );
-	});
-
-	asyncTest( 'resumed', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'resumed', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'resumed', _onEvent );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/IHP14/_support/template.reveal b/docs/slides/IHP14/_support/template.reveal
deleted file mode 100644
--- a/docs/slides/IHP14/_support/template.reveal
+++ /dev/null
@@ -1,122 +0,0 @@
-<!doctype html>  
-<html lang="en">
-	
-<head>
-<meta charset="utf-8">
-
-<title>Liquid Types</title>
-
-<meta name="description" content="Liquid Types IHP 2014">
-<meta name="author" content="Ranjit Jhala">
-
-<meta name="apple-mobile-web-app-capable" content="yes" />
-
-<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="$reveal$/css/reveal.css">
-<link rel="stylesheet" href="$reveal$/css/theme/seminar.css" id="theme">
-<!-- <link rel="stylesheet" href="$reveal$/css/print/pdf.css"> -->
-<link rel="stylesheet" href="../_support/liquidhaskell.css">
-
-<!-- For syntax highlighting -->
-<link rel="stylesheet" href="$reveal$/lib/css/zenburn.css">
-
-<script>
-	// If the query includes 'print-pdf' we'll use the PDF print sheet
-	document.write( '<link rel="stylesheet" href="$reveal$/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
-</script>
-
-<!--[if lt IE 9]>
-<script src="lib/js/html5shiv.js"></script>
-<![endif]-->
-</head>
-<body>
-
-\(
-\require{color}
-\definecolor{kvcol}{RGB}{203,23,206}
-\definecolor{tycol}{RGB}{5,177,93}
-\definecolor{refcol}{RGB}{18,110,213}
-
-\newcommand{\quals}{\mathbb{Q}}
-\newcommand{\defeq}{\ \doteq\ }
-\newcommand{\subty}{\preceq}
-\newcommand{\True}{\mathit{True}}
-\newcommand{\Int}{\mathtt{Int}}
-\newcommand{\Nat}{\mathtt{Nat}}
-\newcommand{\Zero}{\mathtt{Zero}}
-\newcommand{\foo}[4]{{#1}^{#4} + {#2}^{#4} = {#3}^{#4}}
-\newcommand{\reft}[3]{\{\bindx{#1}{#2} \mid {#3}\}}
-\newcommand{\ereft}[3]{\bindx{#1}{\{#2 \mid #3\}}}
-\newcommand{\bindx}[2]{{#1}\!:\!{#2}}
-\newcommand{\reftx}[2]{\{{#1}\mid{#2}\}}
-\newcommand{\inferrule}[3][]{\frac{#2}{#3}\;{#1}}
-\newcommand{\kvar}[1]{\color{kvcol}{\mathbf{\kappa_{#1}}}}
-\newcommand{\llen}[1]{\mathtt{llen}(#1)}
-\)
-
-<div class="reveal">
-<!-- 
-Used to fade in a background when a specific slide state is reached
--->
-<div class="state-background"></div>
-
-<!-- Slides
-Any section element inside of this "slides" container is displayed as a slide
--->
-<div class="slides">
-<!-- Pandoc -->
-$if(title)$
-<section class="titlepage">
-<h1 class="title">$title$</h1>
-$for(author)$
-<h2 class="author">$author$</h2>
-$endfor$
-<h3 class="date">$date$</h3>
-</section>
-$endif$
-$body$
-<!-- End Pandoc -->
-
-</div>
-<!-- End Slides -->
-
-<!-- Presentation progress bar -->
-<div class="progress"><span></span></div>
-</div>
-
-<!-- Initialize reveal.js :: make settings changes here -->
-<script src="$reveal$/lib/js/head.min.js"></script>
-<script src="$reveal$/js/reveal.js"></script>
-
-<script type="text/javascript" src="https://c328740.ssl.cf1.rackcdn.com/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
-
-
-<script>		
-	// Full list of configuration options available here:
-	// https://github.com/hakimel/reveal.js#configuration
-	Reveal.initialize({
-		controls: true,
-		progress: true,
-		history: true,
-		center: false,
-        rollingLinks: false,
-        theme: Reveal.getQueryHash().theme || 'seminar', // available themes are in /css/theme
-		transition: Reveal.getQueryHash().transition || 'fade', // default/cube/page/concave/linear(2d)
-
-		// Optional libraries used to extend on reveal.js
-		dependencies: [
-			//{ src: '$reveal$/lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-			{ src: '$reveal$/lib/js/classList.js', condition: function() { return !document.body.classList; } },
-			{ src: '$reveal$/lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-			{ src: '$reveal$/plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		]
-	});
-</script>
-
-</body>
-</html>
diff --git a/docs/slides/IHP14/cleanup b/docs/slides/IHP14/cleanup
deleted file mode 100644
--- a/docs/slides/IHP14/cleanup
+++ /dev/null
@@ -1,1 +0,0 @@
-find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf
diff --git a/docs/slides/IHP14/img/RedBlack.png b/docs/slides/IHP14/img/RedBlack.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/img/RedBlack.png and /dev/null differ
diff --git a/docs/slides/IHP14/img/tension0.png b/docs/slides/IHP14/img/tension0.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/img/tension0.png and /dev/null differ
diff --git a/docs/slides/IHP14/img/tension1.png b/docs/slides/IHP14/img/tension1.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/img/tension1.png and /dev/null differ
diff --git a/docs/slides/IHP14/img/tension2.png b/docs/slides/IHP14/img/tension2.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/img/tension2.png and /dev/null differ
diff --git a/docs/slides/IHP14/img/tension3.png b/docs/slides/IHP14/img/tension3.png
deleted file mode 100644
Binary files a/docs/slides/IHP14/img/tension3.png and /dev/null differ
diff --git a/docs/slides/IHP14/lhs/00_Motivation_GoWrong.lhs b/docs/slides/IHP14/lhs/00_Motivation_GoWrong.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/00_Motivation_GoWrong.lhs
+++ /dev/null
@@ -1,176 +0,0 @@
-Well-Typed Programs Can Go Wrong
-================================
-
- {#asd}
--------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-Division By Zero
-----------------
-
-
-
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> let average xs = sum xs `div` length xs
-
-λ> average [1,2,3]
-2
-\end{code}
-</div>
-
-<div class="fragment"> 
-
-\begin{code} <br> 
-λ> average []
-*** Exception: divide by zero
-\end{code}
-
-</div>
-
-Missing Keys
-------------
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> :m +Data.Map 
-λ> let m = fromList [ ("haskell", "lazy")
-                    , ("ocaml"  , "eager")]
-
-λ> m ! "haskell"
-"lazy"
-\end{code}
-</div>
-
-<div class="fragment"> 
-\begin{code} <br> 
-λ> m ! "javascript"
-"*** Exception: key is not in the map
-\end{code}
-</div>
-
-Segmentation Faults
--------------------
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> :m +Data.Vector 
-λ> let v = fromList ["haskell", "ocaml"]
-λ> unsafeIndex v 0
-"haskell"
-\end{code}
-</div>
-
-<div class="fragment"> 
-\begin{code} <br> 
-λ> V.unsafeIndex v 3
-
-
-'ghci' terminated by signal SIGSEGV ...
-\end{code}
-</div>
-
-
-"HeartBleeds"
--------------
-
-\begin{code} <div/>
-λ> :m + Data.Text Data.Text.Unsafe 
-λ> let t = pack "Kanazawa"
-λ> takeWord16 5 t
-"Kanaz"
-\end{code}
-
-<br>
-
-<div class="fragment"> 
-Memory overflows **leaking secrets**...
-
-<br>
-
-\begin{code} <div/>
-λ> takeWord16 20 t
-"Kanazawa\1912\3148\SOH\NUL\15928\2486\SOH\NUL"
-\end{code}
-</div>
-
-Goal
-----
-
-Extend Hindley-Milner To Prevent More Errors
-
-Liquid Types for Haskell
-========================
-
-LiquidHaskell
--------------
-
-<br>
-<br>
-
-<div class="fragment">Refine **types** with **predicates**</div>
-
-<br>
-<br>
-
-<div class="fragment">**Expressive** specification & **Automatic** verification</div>
-
-
-Automatic
----------
-
-[Liquid Types, PLDI 08](http://goto.ucsd.edu/~rjhala/liquid/liquid_types.pdf)
-
-<br>
-
-+ Abstract Interpretation (covered briefly...) 
-
-+ SMT Solvers 
-
-Expressive
-----------
-
-<br>
-<br>
-
-This talk ...
-
-Try Yourself
-------------
-
-<br>
-
-**google: ** `"liquidhaskell demo"` 
-
- {#zog} 
---------
-
-<br>
-<br>
-<br>
-<br>
-
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-
-
-Plan 
-----
-
-+ <a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>, <a href="08_Recursive.lhs.slides.html" target= "_blank">Data</a>,<a href="07_Array.lhs.slides.html" target= "_blank">...</a>,<a href="05_Composition.lhs.slides.html" target= "_blank">...</a></div>
-+ <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Lazy Evaluation</a></div>
-+ <div class="fragment"><a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
diff --git a/docs/slides/IHP14/lhs/00_Motivation_Logic.lhs b/docs/slides/IHP14/lhs/00_Motivation_Logic.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/00_Motivation_Logic.lhs
+++ /dev/null
@@ -1,136 +0,0 @@
- {#asds}
-========
-
-Algorithmic Verification 
-------------------------
-
-
-<br>
-<br>
-
-**Goal**
-
-<br>
-
-Proving program properties *without* writing proofs!
-
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-Algorithmic Verification
-========================
-
-Tension
--------
-
-<img src="../img/tension0.png" height=300px>
-
-Automation vs. Expressiveness
-
-Tension
--------
-
-<img src="../img/tension1.png" height=300px>
-
-Extremes: Hindley-Milner vs. CoC
-
-Tension
--------
-
-<img src="../img/tension2.png" height=300px>
-
-Trading off Automation for Expressiveness
-
-Tension
--------
-
-<img src="../img/tension3.png" height=300px>
-
-**Goal:** Find a sweet spot?
-
-Program Logics
---------------
-
-<br>
-
-**Floyd-Hoare** (ESC, Dafny, SLAM/BLAST,...)
-
-<br>
-
-+ **Properties:**   Assertions & Pre- and Post-conditions
-
-+ **Proofs:**       Verification Conditions proved by SMT
-
-+ **Inference:**    Abstract Interpretation
-
-<br>
-
-<div class="fragment"> Automatic but **not** Expressive </div>
-
-
-Program Logics
---------------
-
-<br>
-
-Automatic but **not** Expressive
-
-<br>
-
-+ Rich Data Types ?
-
-+ Higher-order functions ?
-
-+ Polymorphism ?
-
-
-Liquid Types
-------------
-
-<br>
-
-Generalize Floyd-Hoare Logic with Types
-
-<div class="fragment"> 
-<br>
-
-+ **Properties:**  Types + Predicates
-
-+ **Proofs:**      Subtyping + Verification Conditions
-
-+ **Inference:**   Hindley-Milner + Abstract Interpretation
-
-</div>
-
-<div class="fragment"> 
-  <br>
-  Towards reconciling Automation and Expressiveness
-</div>
-
-Liquid Types
-------------
-
-<br>
-<br>
-
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-
-
-Plan 
-----
-
-+ <a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>, <a href="08_Recursive.lhs.slides.html" target= "_blank">Data</a>,<a href="07_Array.lhs.slides.html" target= "_blank">...</a>,<a href="05_Composition.lhs.slides.html" target= "_blank">...</a></div>
-+ <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Lazy Evaluation</a></div>
-+ <div class="fragment"><a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
diff --git a/docs/slides/IHP14/lhs/01_SimpleRefinements.lhs b/docs/slides/IHP14/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,850 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-nats    :: L Int
-evens   :: L Int
-odds    :: L Int
-range   :: Int -> Int -> L Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example: Integers equal to `0`
-------------------------------
-
-<br>
-
-\begin{code}
-{-@ type Zero = {v:Int | v = 0} @-}
-
-{-@ zero :: Zero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}` 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
-</div>
-
-
-
-Refinements Are Predicates
-==========================
-
-From A Decidable Logic
-----------------------
-
-<br> 
-
-1. Expressions
-
-2. Predicates
-
-<br>
-
-<div class="fragment">
-
-**Refinement Logic: QF-UFLIA**
-
-Quant.-Free. Uninterpreted Functions and Linear Arithmetic 
-
-</div>
-
-
-Expressions
------------
-
-<br>
-
-\begin{code} <div/> 
-e := x, y, z,...    -- variable
-   | 0, 1, 2,...    -- constant
-   | (e + e)        -- addition
-   | (e - e)        -- subtraction
-   | (c * e)        -- linear multiplication
-   | (f e1 ... en)  -- uninterpreted function
-\end{code}
-
-Predicates
-----------
-
-<br>
-
-\begin{code} <div/>
-p := e           -- atom 
-   | e1 == e2    -- equality
-   | e1 <  e2    -- ordering 
-   | (p && p)    -- and
-   | (p || p)    -- or
-   | (not p)     -- negation
-\end{code}
-
-<br>
-
-
-Refinement Types
-----------------
-
-
-<br>
-
-\begin{code}<div/>
-b := Int 
-   | Bool 
-   | ...         -- base types
-   | a, b, c     -- type variables
-
-t := {x:b | p}   -- refined base 
-   | x:t -> t    -- refined function  
-\end{code}
-
-
-Subtyping Judgment 
-------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-<div class="fragment">
-
-<br>
-
-Where **environment** $\Gamma$ is a sequence of binders
-
-<br>
-
-$$\Gamma \defeq \overline{\bindx{x_i}{t_i}}$$
-
-</div>
-
-Subtyping is Implication
-------------------------
-
-[PVS' Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-<br>
-
-(For **Base** Types ...)
-
-
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$
-\begin{array}{rl}
-{\mathbf{If\ VC\ is\ Valid}}   & \bigwedge_i P_i \Rightarrow  Q  \Rightarrow R \\
-                & \\
-{\mathbf{Then}} & \overline{\bindx{x_i}{P_i}} \vdash \reft{v}{b}{Q} \subty \reft{v}{v}{R} \\
-\end{array}
-$$ 
-
-
-Example: Natural Numbers
-------------------------
-
-<br>
-
-\begin{code} <div/>  
-        type Nat = {v:Int | 0 <= v}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-$$
-\begin{array}{rcrccll}
-\mathbf{VC\ is\ Valid:} & \True     & \Rightarrow &  v = 0   & \Rightarrow &  0 \leq v & \mbox{(by SMT)} \\
-%                &           &             &          &             &           \\
-\mathbf{So:}      & \emptyset & \vdash      & \Zero  & \subty      & \Nat   &   \\
-\end{array}
-$$
-</div>
-
-<br>
-
-<div class="fragment">
-
-Hence, we can type:
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero   -- zero :: Zero <: Nat
-\end{code}
-</div>
-
-Contracts: Function Types
-=========================
-
- {#as}
-------
-
-Pre-Conditions
---------------
-
-
-<br>
-
-\begin{code}
-safeDiv n d = n `div` d   -- crashes if d==0
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Requires** non-zero input divisor `d`
-
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-</div>
-
-<br>
-
-
-<div class="fragment">
-Specify pre-condition as **input type** 
-
-\begin{code}
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-</div>
-
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{code} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ bad :: Nat -> Int @-}
-bad n   = 10 `safeDiv` n
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Rejected As** 
-
-$$\bindx{n}{\Nat} \vdash \reftx{v}{v = n} \not \subty \reftx{v}{v \not = 0}$$
-
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{code} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Verifies As** 
-
-$\bindx{n}{\Nat} \vdash \reftx{v}{v = n+1} \subty \reftx{v}{v \not = 0}$
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{code} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code} <div/>
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{code}
-
-<br>
-
-**Verifies As**
-
-$$(0 \leq n) \Rightarrow (v = n+1) \Rightarrow (v \not = 0)$$
-
-
-
-Post-Conditions
----------------
-
-**Ensures** output is a `Nat` greater than input `x`.
-
-\begin{code}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-<div class="fragment">
-Specify post-condition as **output type**
-
-\begin{code}
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-**Dependent Function Types**
-
-Outputs *refer to* inputs
-</div>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{code} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-Postcondition is checked at **return-site**
-
-<br>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{code} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-\bindx{x}{\Int},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\bindx{x}{\Int},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\end{array}$$
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{code} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-(0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow (0 \leq v \wedge x \leq v) \\
-(0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow (0 \leq v \wedge x \leq v) \\
-\end{array}$$
-
-
- {#inference}
-=============
-
-From Checking To Inference
---------------------------
-
-**So far**
-
-How to **check** code against given signature
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-How to **synthesize** signatures from code
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**2-Phase Process**
-
-1. H-M to synthesize *types*
-2. A-I to synthesize *refinements*  
-
-</div>
-
-<br>
-
-<div class="fragment">Lets quickly look at 2. </div>
-
-
-
-From Checking To Inference
-==========================
-
-
-Recipe
-------
-
-<br>
-
-<div class="fragment">
-
-**Step 1. Templates**
-
-Types with variables $\kvar{}$ for *unknown* refinements
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Step 2. Constraints**
-
-Typecheck templates: VCs $\rightarrow$ Horn constraints over $\kvar{}$
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Step 3. Solve**
-
-Via least-fixpoint over suitable abstract domain
-
-</div>
-
-Step 1. Templates (`abs`)
--------------------------
-
-<br>
-
-<div class="fragment">
-**Type**
-
-$$\bindx{x}{\Int} \rightarrow \Int$$
-</div>
-
-<br>
-
-<div class="fragment">
-**Template**
-
-$$\ereft{x}{\Int}{\kvar{1}} \rightarrow \reft{v}{\Int}{\kvar{2}}$$
-</div>
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Subtyping Queries**
-
-<br>
-
-$$
-\begin{array}{rll}
-\bindx{x}{\kvar{1}},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{\kvar{2}} \\
-\bindx{x}{\kvar{1}},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{\kvar{2}} \\
-\end{array}
-$$
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Verification Conditions**
-
-<br>
-
-$$\begin{array}{rll}
-{\kvar{1}} \wedge (0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow \kvar{2} \\
-{\kvar{1}} \wedge (0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow \kvar{2} \\
-\end{array}$$
-
-
-Step 2. Constraints (`abs`)
--------------------------
-
-<br>
-
-**Horn Constraints** over $\kvar{}$
-
-<br>
-
-$$\begin{array}{rll}
-{\kvar{1}} \wedge (0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow \kvar{2} \\
-{\kvar{1}} \wedge (0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow \kvar{2} \\
-\end{array}$$
-
-<br>
-<br>
-
-**Note:** $\kvar{}$ occur positively, hence constraints are monotone.
-
-Step 3. Solve (`abs`)
----------------------
-
-Least-fixpoint over abstract domain 
-
-<br>
-
-
-<div class="fragment">
-**Predicate Abstraction**
-
-Conjunction of predicates from (finite) ground set $\quals$
-</div>
-
-<br>
-
-<div class="fragment">
-$$\mbox{e.g.}\ \quals \defeq \{ c \sim X \}$$
-
-<br>
-
-$$\begin{array}{ccll}
-  c     & \in & \{0,1,\ldots   \}                & \mbox{program constants} \\
-  X     & \in & \{n,x,v,\ldots \}                & \mbox{program variables} \\
-  \sim  & \in & \{<, \leq, >, \geq, =, \not =\}  & \mbox{comparisons}       \\
-  \end{array}$$
-
-</div>
-
-Step 3. Solve (`abs`)
----------------------
-
-Least-fixpoint over abstract domain 
-
-<br>
-
-**Predicate Abstraction**
-
-Conjunction of predicates from (finite) ground set $\quals$
-
-<br>
-
-+ Obtain $\quals$ via CEGAR
-+ Or use other domains
-
-<br>
-
-[[Rybalchenko et al., CAV 2011]](http://goto.ucsd.edu/~rjhala/papers/hmc.html)
-
-
-Recipe Scales Up
-----------------
-
-<br>
-
-**1. Templates** $\rightarrow$ **2. Horn Constraints** $\rightarrow$ **3. Fixpoint**
-
-<br>
-
-<div class="fragment">
-+ Define type checker, get inference for free 
-
-+ Scales to Data types, HO functions, Polymorphism
-
-</div>
-<br>
-
-<div class="fragment">
-**Key Requirement** 
-
-Refinements belong in abstract domain, e.g. QF-UFLIA
-</div>
-
-
-
- {#universalinvariants}
-=======================
-
-Types = Universal Invariants
-----------------------------
-
-(Notoriously hard with *pure* SMT)
-
-Types Yield Universal Invariants
-================================
-
-Example: Lists
---------------
-
-
-<div class="hidden">
-\begin{code}
-infixr `C`
-\end{code}
-</div>
-
-
-<br>
-<br>
-<br>
-
-
-\begin{code}
-data L a = N          -- Empty 
-         | C a (L a)  -- Cons 
-\end{code}
-
-
-<br>
-
-<div class="fragment">
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{code}
-nats     =  0 `C` 1 `C` 3 `C` N
-\end{code}
-</div>
-
-
-Example: Lists
---------------
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{code} <div/>
-nats     =  0 `C` 1 `C` 2 `C` N
-\end{code}
-
-<br>
-
-**Logic**
-
-$$\forall x \in \mathtt{nats}. 0 \leq x$$
-
-<br>
-
-<div class="fragment">
-VCs over **quantified formulas** ... *terrible* for SMT
-</div>
-
-
-Example: Lists
---------------
-
-How to **specify** every element in `nats` is non-negative?
-
-\begin{code} <div/>
-nats     =  0 `C` 1 `C` 2 `C` N
-\end{code}
-
-<br>
-
-**Refinement Types**
-
-\begin{code}
-{-@ nats :: L Nat @-}
-\end{code}
-
-<br>
-
-+ <div class="fragment">Type *implicitly* has quantification</div>
-+ <div class="fragment">Sub-typing *eliminates* quantifiers</div>
-+ <div class="fragment">Robust verification via *quantifier-free* VCs</div>
-
-Example: Lists
---------------
-
-How to **verify** ? 
-
-\begin{code} <div/>
-{-@ nats :: L Nat @-}
-nats   = l0
-  where
-    l0 = 0 `C` l1  -- Nat `C` L Nat >>> L Nat
-    l1 = 1 `C` l2  -- Nat `C` L Nat >>> L Nat
-    l2 = 2 `C` l3  -- Nat `C` L Nat >>> L Nat
-    l3 = N         -- L Nat
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `nats` contained `-2`? 
-
-</div>
-
-<!--
-
-Example: Even/Odd Lists
------------------------
-
-\begin{code}
-{-@ type Even = {v:Int | v mod 2 =  0} @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ evens :: L Even @-}
-evens     =  0 `C` 2 `C` 4 `C` N
-
-{-@ odds  :: L Odd  @-}
-odds      =  1 `C` 3 `C` 5 `C` N 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `evens` contained `1`? 
-</div>
-
--->
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ type Btwn I J = {v:_ | (I<=v && v<J)} @-}
-\end{code}
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ range :: i:Int -> j:Int -> L (Btwn i j) @-}
-range i j            = go i
-  where
-    go n | n < j     = n `C` go (n + 1)  
-         | otherwise = N
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Type of `go` is automatically inferred
-</div>
-
-
-Example: Indexing Into List
----------------------------
-
-\begin{code} 
-(!)          :: L a -> Int -> a
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "Oops!"
-\end{code}
-
-<br>
-
-<div class="fragment">(Mouseover to view type of `liquidError`)</div>
-
-<br>
-
-<div class="fragment">To ensure safety, *require* `i` between `0` and list **length**</div>
-
-<br>
-
-<div class="fragment">Need way to **measure** the length of a list [[continue...]](02_Measures.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/IHP14/lhs/02_Measures.lhs b/docs/slides/IHP14/lhs/02_Measures.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/02_Measures.lhs
+++ /dev/null
@@ -1,470 +0,0 @@
-
- {#measures}
-============
-
-Measuring Data Types
---------------------
-
-<div class="hidden">
-
-\begin{code}
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-
-length      :: L a -> Int
-(!)         :: L a -> Int -> a
-insert      :: Ord a => a -> L a -> L a
-insertSort  :: Ord a => [a] -> L a
-
-infixr `C`
-\end{code}
-
-</div>
-
-
-Measuring Data Types 
-====================
-
-Recap
------
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-
-Example: Length of a List 
--------------------------
-
-Given a type for lists:
-
-<br>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<div class="fragment">
-<br>
-
-We can define the **length** as:
-
-<br>
-
-\begin{code}
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-</div>
-
-Example: Length of a List 
--------------------------
-
-\begin{code} <div/>
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-<br>
-
-We **strengthen** data constructor types
-
-<br>
-
-\begin{code} <div/>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{code}
-
-Measures Are Uninterpreted
---------------------------
-
-\begin{code} <br>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{code}
-
-<br>
-
-`llen` is an **uninterpreted function** in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-<br>
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) $f$ obeys **congruence** axiom:
-
-<br>
-
-$$\forall \overline{x}, \overline{y}. \overline{x} = \overline{y} \Rightarrow
-f(\overline{x}) = f(\overline{y})$$
-
-<br>
-
-<div class="fragment">
-Other properties of `llen` asserted when typing **fold** & **unfold**
-</div>
-
-<br>
-
-<div class="fragment">
-Crucial for *efficient*, *decidable* and *predictable* verification.
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-Other properties of `llen` asserted when typing **fold** & **unfold**
-
-<br>
-
-<div class="fragment">
-\begin{code}**Fold**<br>
-z = C x y     -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}**Unfold**<br>
-case z of 
-  N     -> e1 -- z :: {v | llen v = 0}
-  C x y -> e2 -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-
-Measured Refinements
---------------------
-
-Now, we can verify:
-
-<br>
-
-\begin{code}
-{-@ length      :: xs:L a -> (EqLen xs) @-}
-length N        = 0
-length (C _ xs) = 1 + length xs
-\end{code}
-
-<div class="fragment">
-
-<br>
-
-Where `EqLen` is a type alias:
-
-\begin{code}
-{-@ type EqLen Xs = {v:Nat | v = (llen Xs)} @-}
-\end{code}
-
-</div>
-
-List Indexing Redux
--------------------
-
-We can type list lookup:
-
-\begin{code}
-{-@ (!)      :: xs:L a -> (LtLen xs) -> a @-}
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "never happens!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-Where `LtLen` is a type alias:
-
-\begin{code}
-{-@ type LtLen Xs = {v:Nat | v < (llen Xs)} @-}
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-&nbsp; What if we *remove* the precondition?
-
-</div>
-
-Multiple Measures
------------------
-
-<br>
-
-Support **many** measures on a type ...
-
-<br>
-
-<div class="fragment">
-... by **conjoining** the constructor refinements.
-</div>
-
-[[Skip...]](#/refined-data-cons)
-
-
-<!--
-
-Multiple Measures
-=================
-
- {#adasd}
----------
-
-We allow *many* measures for a type
-
-Ex: List Emptiness 
-------------------
-
-Measure describing whether a `List` is empty 
-
-\begin{code}
-{-@ measure isNull :: (L a) -> Prop
-    isNull (N)      = true
-    isNull (C x xs) = false           @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-We **strengthen** data constructors
-
-\begin{code} <div/> 
-data L a where 
-  N :: {v : L a | (isNull v)}
-  C :: a -> L a -> {v:(L a) | not (isNull v)}
-\end{code}
-
-</div>
-
-Conjoining Refinements
-----------------------
-
-Data constructor refinements are **conjoined** 
-
-\begin{code} <br>
-data L a where 
-  N :: {v:L a |  (llen v) = 0 
-              && (isNull v) }
-  C :: a 
-    -> xs:L a 
-    -> {v:L a |  (llen v) = 1 + (llen xs) 
-              && not (isNull v)          }
-\end{code}
-
--->
-
-Multiple Measures: Red-Black Trees
-==================================
-
- {#rbtree}
-----------
-
-<img src="../img/RedBlack.png" height=300px>
-
-+ <div class="fragment">**Color:** `Red` nodes have `Black` children</div>
-+ <div class="fragment">**Height:** Number of `Black` nodes equal on *all paths*</div>
-<br>
-
-[[Skip...]](#/refined-data-cons)
-
-Basic Type 
-----------
-
-\begin{code} <br>
-data Tree a = Leaf 
-            | Node Color a (Tree a) (Tree a)
-
-data Color  = Red 
-            | Black
-\end{code}
-
-Color Invariant 
----------------
-
-`Red` nodes have `Black` children
-
-<div class="fragment">
-\begin{code} <br>
-measure isRB        :: Tree a -> Prop
-isRB (Leaf)         = true
-isRB (Node c x l r) = c=Red => (isB l && isB r)
-                      && isRB l && isRB r
-\end{code}
-</div>
-
-<div class="fragment">
-\begin{code} where <br>
-measure isB         :: Tree a -> Prop 
-isB (Leaf)          = true
-isB (Node c x l r)  = c == Black 
-\end{code}
-</div>
-
-*Almost* Color Invariant 
-------------------------
-
-<br>
-
-Color Invariant **except** at root. 
-
-<br>
-
-<div class="fragment">
-\begin{code} <br>
-measure isAlmost        :: Tree a -> Prop
-isAlmost (Leaf)         = true
-isAlmost (Node c x l r) = isRB l && isRB r
-\end{code}
-</div>
-
-
-Height Invariant
-----------------
-
-Number of `Black` nodes equal on **all paths**
-
-<div class="fragment">
-\begin{code} <br>
-measure isBH        :: RBTree a -> Prop
-isBH (Leaf)         =  true
-isBH (Node c x l r) =  bh l = bh r 
-                    && isBH l && isBH r 
-\end{code}
-</div>
-
-<div class="fragment">
-\begin{code} where <br>
-measure bh        :: RBTree a -> Int
-bh (Leaf)         = 0
-bh (Node c x l r) = bh l 
-                  + if c = Red then 0 else 1
-\end{code}
-</div>
-
-Refined Type 
-------------
-
-\begin{code} <br>
--- Red-Black Trees
-type RBT a  = {v:Tree a | isRB v && isBH v}
-
--- Almost Red-Black Trees
-type ARBT a = {v:Tree a | isAlmost v && isBH v}
-\end{code}
-
-<br>
-
-[Details](https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/RBTree.hs)
-
-<!--
-
-Measures vs. Index Types
-========================
-
-Decouple Property & Type 
-------------------------
-
-Unlike [indexed types](http://dl.acm.org/citation.cfm?id=270793) ...
-
-<br>
-
-<div class="fragment">
-
-+ Measures **decouple** properties from structures
-
-+ Support **multiple** properties over structures 
-
-+ Enable  **reuse** of structures in different contexts                 
-
-</div>
-
-<br>
-
-<div class="fragment">Invaluable in practice!</div>
-
--->
-
-Refined Data Constructors
-=========================
-
- {#refined-data-cons}
----------------------
-
-Can encode invariants **inside constructors**
-
-<div class="fragment">
-
-<br>
-
-\begin{code}
-{-@ data L a = N
-             | C { x  :: a 
-                 , xs :: L {v:a| x <= v} } @-}
-\end{code}
-</div>
-<br>
-
-<div class="fragment">
-Head `x` is less than **every** element of tail `xs`
-</div>
-
-<br>
-
-<div class="fragment">
-i.e. specifies **increasing** Lists 
-</div>
-
-Increasing Lists 
-----------------
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: x:a -> xs: L {v:a | x <= v} -> L a
-\end{code}
-
-<br>
-
-- <div class="fragment">We **check** property when **folding** `C`</div>
-- <div class="fragment">We **assume** property when **unfolding** `C`</div>
-
-Increasing Lists 
-----------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs" target= "_blank">Demo: Insertion Sort</a> (hover for inferred types) 
-
-<br>
-
-\begin{code}
-insertSort = foldr insert N
-
-insert y (x `C` xs) 
-  | y <= x    = y `C` (x `C` xs)
-  | otherwise = x `C` insert y xs
-insert y N    = y `C` N    
-\end{code}
-
-<br>
-
-<div class="fragment">**Problem 1:** What if we need [increasing & decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. **Measures:** Strengthened Constructors
-    - <div class="fragment">**Decouple** property from structure</div>
-    <!-- - <div class="fragment">**Reuse** structure across *different* properties</div> -->
-
-<br>
-
-<div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target="_blank">[continue]</a></div>
diff --git a/docs/slides/IHP14/lhs/03_HigherOrderFunctions.lhs b/docs/slides/IHP14/lhs/03_HigherOrderFunctions.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/03_HigherOrderFunctions.lhs
+++ /dev/null
@@ -1,233 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-\begin{code}
-module Loop (
-    listSum
-  , sumNats
-  ) where
-
-import Prelude
-
-{-@ LIQUID "--no-termination"@-}
-sumNats  :: [Int] -> Int
-add         :: Int -> Int -> Int
-\end{code}
-</div>
-
-Higher-Order Specifications
----------------------------
-
-Types scale to *Higher-Order* Specifications
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Very difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-<br>
-
-\begin{code}
-loop :: Int -> Int -> α -> (Int -> α -> α) -> α
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-By subtyping, we infer `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-\begin{code}
-listSum     :: [Int] -> Int
-listSum xs  = loop 0 n 0 body 
-  where 
-    body    = \i acc -> acc + (xs !! i)
-    n       = length xs
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Function Subtyping** 
-
-+ `body` called with `i :: Btwn 0 (llen xs)`
-
-+ Hence, indexing with `!!` is safe.
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Loop.hs" target= "_blank">Demo:</a> Tweak `loop` exit condition? 
-</div>
-
-Polymorphic Instantiation
-=========================
-
- {#poly}
---------
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code}
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{code} Recall 
-foldl :: (α -> β -> α) -> α -> [β] -> α
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-How to **instantiate** `α` and `β` ?
-</div>
-
-Function Subtyping
-------------------
-
-\begin{code}<div/>
-(+) ::  x:Int -> y:Int -> {v:Int|v=x+y} 
-    <:  Nat   -> Nat   -> Nat
-\end{code}
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{code}<div/>
-               |- Nat       <: Int  -- Contra
-  x:Nat, y:Nat |- {v = x+y} <: Nat  -- Co
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{code}<div/>
-  0<=x && 0<=y && v = x+y   => 0 <= v
-\end{code}
-</div>
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code} <div/> 
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-\begin{code} Where:
-foldl :: (α -> β -> α) -> α -> [β] -> α
-(+)   :: Nat -> Nat -> Nat
-\end{code}
-
-<br>
-
-<div class="fragment">
-Hence, `sumNats` verified by **instantiating** `α,β := Nat`
-</div>
-
-<br>
-
-<div class="fragment">
-`α` is **loop invariant**, instantiation is invariant **synthesis**
-</div>
-
-Instantiation And Inference
----------------------------
-
-Polymorphism ubiquitous, so inference is critical!
-
-<br>
-
-<div class="fragment">
-**Step 1. Templates** 
-Instantiate with unknown refinements
-
-$$
-\begin{array}{rcl}
-\alpha & \defeq & \reft{v}{\Int}{\kvar{\alpha}}\\
-\beta  & \defeq & \reft{v}{\Int}{\kvar{\beta}}\\
-\end{array}
-$$
-</div>
-
-<br>
-<div class="fragment">
-**Step 2. Horn-Constraints** 
-By type checking the templates
-</div>
-
-<br>
-<div class="fragment">
-**Step 3. Fixpoint** 
-Abstract interpretatn. to get solution for $\kvar{}$
-</div>
-
-
-Iteration Dependence
---------------------
-
-**Problem:** Cannot use parametric polymorphism to verify
-
-<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-As property only holds after **last iteration** ...
-
-<br>
-
-... cannot instantiate $\alpha \defeq \reft{v}{\Int}{v = n + m}$
-</div>
-
-<br>
-
-<div class="fragment">
-**Problem:** *Iteration-dependent* invariants...? &nbsp; &nbsp; [[Continue]](04_AbstractRefinements.lhs.slides.html)
-</div>
-
diff --git a/docs/slides/IHP14/lhs/04_AbstractRefinements.lhs b/docs/slides/IHP14/lhs/04_AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/04_AbstractRefinements.lhs
+++ /dev/null
@@ -1,385 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude 
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-o, no        :: Int
-maxInt       :: Int -> Int -> Int
-\end{code}
-</div>
-
-
-
-Abstract Refinements
---------------------
-
-
-
-Abstract Refinements
-====================
-
-Two Problems
-------------
-
-<br>
-<br>
-
-<div class="fragment">
-
-**Problem 1:** 
-
-How to specify increasing *and* decreasing lists?
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Problem 2:** 
-
-How to specify *iteration-dependence* in higher-order functions?
-
-</div>
-
-
-Problem Is Pervasive
---------------------
-
-Lets distill it to a simple example...
-
-<div class="fragment">
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-\begin{code}
-{-@ type Odd  = {v:Int | (v mod 2) = 1} @-}
-{-@ type Even = {v:Int | (v mod 2) = 0} @-}
-\end{code}
-
-</div>
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
-\begin{code} <br> 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if y <= x then x else y
-\end{code}
-
-
-
-Example: `maxInt` 
------------------
-
-Has **many incomparable** refinement types
-
-\begin{code}<br>
-maxInt :: Nat  -> Nat  -> Nat
-maxInt :: Even -> Even -> Even
-maxInt :: Odd  -> Odd  -> Odd 
-\end{code}
-
-<br>
-
-<div class="fragment">Oh no! **Which** one should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns *one of* its two inputs `x` and `y` 
-
-<div class="fragment">
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-</div>
-
-<div class="fragment">Above holds *for all properties*!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract properties over types**
-
-</div>
-
-<!--
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<div class="fragment"> 
-
-Instantiate `α` at callsites
-
-\begin{code}
-{-@ o :: Odd  @-}
-o = maxInt 3 7     -- α := Odd
-
-{-@ e :: Even @-}
-e = maxInt 2 8     -- α := Even
-\end{code}
-
-</div>
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<br>
-
-But there is a fly in the ointment ...
-
-Polymorphic `max` in Haskell
-----------------------------
-
-\begin{code} In Haskell the type of max is
-max :: (Ord α) => α -> α -> α
-\end{code}
-
-<br>
-
-\begin{code} Could *ignore* the class constraints, instantiate as before...
-{-@ o :: Odd @-}
-o     = max 3 7  -- α := Odd 
-\end{code}
-
-
-Polymorphic `(+)` in Haskell
-----------------------------
-
-\begin{code} ... but this is *unsound*!
-max :: (Ord α) => α -> α -> α
-(+) :: (Num α) => α -> α -> α
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-*Ignoring* class constraints would let us "prove":
-
-\begin{code}
-{-@ no :: Odd @-}
-no     = 3 + 7    -- α := Odd !
-\end{code}
-
-</div>
-
-Type Polymorphism? No.
-----------------------
-
-<div class="fragment">Need to try a bit harder...</div>
-
--->
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-\begin{code}<div/>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html)
-&nbsp; `Int<p>` &nbsp; is just  &nbsp; $\reft{v}{\Int}{p(v)}$ 
-
-<br>
-
-Abstract Refinement is **uninterpreted function** in SMT logic
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-**Check Implementation via SMT**
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = y} & \subty \reftx{v}{p(v)} \\
-\ereft{x}{\Int}{p(x)},\ereft{y}{\Int}{p(y)} & \vdash \reftx{v}{v = x} & \subty \reftx{v}{p(v)} \\
-\end{array}$$
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-**Check Implementation via SMT**
-
-<br>
-
-$$\begin{array}{rll}
-{p(x)} \wedge {p(y)} & \Rightarrow {v = y} & \Rightarrow {p(v)} \\
-{p(x)} \wedge {p(y)} & \Rightarrow {v = x} & \Rightarrow {p(v)} \\
-\end{array}$$
-
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**When** we call `maxInt` with args with some refinement,</div>
-
-- <div class="fragment">**Then** `p` instantiated with *same* refinement,</div>
-
-- <div class="fragment">**Result** of call will also have *same* concrete refinement.</div>
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ o' :: Odd  @-}
-o' = maxInt 3 7     -- p := \v -> Odd v 
-
-{-@ e' :: Even @-}
-e' = maxInt 2 8     -- p := \v -> Even v 
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-Infer **Instantiation** by Liquid Typing 
-
-At call-site, instantiate `p` with unknown $\kvar{p}$ and solve!
-</div>
-
-
-<!--
-
-Using Abstract Refinements
---------------------------
-
-Or any other property ...
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type RGB = {v:_ | (0 <= v && v < 256)} @-}
-
-{-@ rgb :: RGB @-}
-rgb = maxInt 56 8   -- p := \v -> 0 <= v < 256
-\end{code}
-
-</div>
-
--->
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract Refinements** over Types
-
-<br>
-<br>
-
-<div class="fragment">
-  Abstract Refinements are *very* expressive ... <a href="06_Inductive.lhs.slides.html" target="_blank">[continue]</a>
-</div>
-
diff --git a/docs/slides/IHP14/lhs/05_Composition.lhs b/docs/slides/IHP14/lhs/05_Composition.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/05_Composition.lhs
+++ /dev/null
@@ -1,161 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-\begin{code}
-module Composition where
-
-import Prelude hiding ((.))
-
-plus     :: Int -> Int -> Int
-plus3'   :: Int -> Int
-\end{code}
-</div>
-
-
-Example: `plus`
----------------
-
-\begin{code}
-{-@ plus :: x:_ -> y:_ -> {v:_ | v=x+y} @-}
-plus x y = x + y
-\end{code}
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     = plus 3
-\end{code}
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-\begin{code}
-(#) :: (b -> c) -> (a -> b) -> a -> c
-(#) f g x = f (g x)
-\end{code}
-
-
-`plus3` By Composition
------------------------
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     = plus 1 # plus 2
-\end{code}
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
-\begin{code} <br>
-(#) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{code}
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-\begin{code}
-{-@ (.) :: forall <p :: b->c->Prop, 
-                   q :: a->b->Prop>.
-             f:(x:b -> c<p x>) 
-          -> g:(x:a -> b<q x>) 
-          -> y:a -> exists[z:b<q y>].c<p z>
- @-}
-(.) f g y = f (g y)
-\end{code}
-
-Using (.) Operator 
-------------------
-
-<br>
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/IHP14/lhs/06_Inductive.lhs b/docs/slides/IHP14/lhs/06_Inductive.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/06_Inductive.lhs
+++ /dev/null
@@ -1,459 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Induction
----------
-
-Encoding *induction* with Abstract refinements
-
-<div class="hidden">
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
--- import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-
-size  :: L a -> Int
-add   :: Int -> Int -> Int
-loop  :: Int -> Int -> α -> (Int -> α -> α) -> α
-foldr :: (L a -> a -> b -> b) -> b -> L a -> b
-\end{code}
-</div>
-
-Induction
-=========
-
-Example: `loop` redux 
----------------------
-
-Recall the *higher-order* `loop` 
-
-<br>
-
-\begin{code}
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-**Problem**
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Base Case:** &nbsp; Initial accumulator `base` satisfies invariant
-
-
-`(p lo base)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Inductive Step:** &nbsp; `f` *preserves* invariant at `i`
-
-
-`(p i acc) => (p (i+1) (f i acc))`
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**"By Induction"** &nbsp; `out` satisfies invariant at `hi` 
-
-`(p hi out)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-        lo:Int
-     -> hi:{Int | lo <= hi}
-     -> base:a<p lo>                      
-     -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-     -> a<p hi>                           @-}
-\end{code}
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-\begin{code}<br> 
-p    :: Int -> a -> Prop             -- invt 
-base :: a<p lo>                      -- base 
-f    :: i:Int -> a<p i> -> a<p(i+1)> -- step
-out  :: a<p hi>                      -- goal
-\end{code}
-
-
-
-Using Induction
----------------
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-**Verified** by *instantiating* the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-<!--
-
-Using Induction
----------------
-
-\begin{code} <div/>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-Verified by instantiating `p := \i acc -> acc = i + n`
-
-- <div class="fragment">**Base:**  `n = 0 + n`</div>
-
-- <div class="fragment">**Step:**  `acc = i + n  =>  acc + 1 = (i + 1) + n`</div>
-
-- <div class="fragment">**Goal:**  `out = m + n`</div>
-
--->
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over such lists ...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code} <br>
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code}
-{-@ foldr :: 
-    forall a b <p :: L a -> b -> Prop>. 
-      (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-    -> b<p N> 
-    -> ys:L a
-    -> b<p ys>                            @-}
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`foldr`: Abstract Refinement
-----------------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  ::  b<p ys>                            
-\end{code}
-
-<br>
-
-`(p xs b)` relates `b` with **folded** `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`foldr`: Base Case
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`base` is related to **empty** list `N`
-
-`base :: b<p N>` 
-
-
-
-`foldr`: Ind. Step 
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`step` **extends** relation from `xs` to `C x xs`
-
-`step :: xs:_ -> x:_ -> b<p xs> -> b<p (C x xs)>`
-
-
-`foldr`: Output
----------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-Hence, relation holds between `out` and **entire input** list `ys`
-
-`out :: b<p ys>`
-
-Using `foldr`: Size
--------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ size :: xs:_ -> {v:Int| v = (llen xs)} @-}
-size     = foldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-<div class="fragment">
-by *automatically instantiating*
-
-`p := \xs acc -> acc = (llen xs)`
-</div>
-
-Using `foldr`: Append
----------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ (++) :: xs:_ -> ys:_ -> (Cat a xs ys) @-} 
-xs ++ ys = foldr (\_ -> C) ys xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-where 
-
-\begin{code}
-{-@ type Cat a X Y = 
-    {v:_|(llen v) = (llen X) + (llen Y)} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-By automatically instantiating 
-
-`p := \xs acc -> llen acc = llen xs + llen ys`
-
-</div>
-
-Recap
------
-
-Abstract refinements *decouple* **invariant** from **traversal**
-
-<br>
-
-<div class="fragment">**Reusable** specifications for higher-order functions.</div>
-
-<br>
-
-<div class="fragment">**Automatic** checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + <div class="fragment">**Functions**</div>
-    + <div class="fragment">**Data** <a href="08_Recursive.lhs.slides.html" target="_blank">[continue]</a></div>
-
diff --git a/docs/slides/IHP14/lhs/07_Array.lhs b/docs/slides/IHP14/lhs/07_Array.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/07_Array.lhs
+++ /dev/null
@@ -1,405 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *data structures*
-</div>
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidError)
-
-{-@ LIQUID "--no-termination" @-}
-
-fibMemo   :: Vec Int -> Int -> (Vec Int, Int)
-fastFib   :: Int -> Int
-idv       :: Int -> Vec Int
-axiom_fib :: Int -> Bool
-axiom_fib = undefined
-
-{-@ predicate AxFib I = (fib I) == (if I <= 1 then 1 else fib(I-1) + fib(I-2)) @-}
-\end{code}
-</div>
-
-<div class="fragment">
-
-Implemented as maps from `Int` to `a` 
-
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-\begin{code}
-{-@ data Vec a < dom :: Int -> Prop,
-                 rng :: Int -> a -> Prop >
-      = V {a :: i:Int<dom> -> a <rng i>}  @-}
-\end{code}
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-A quick alias for *segments* between `I` and `J`
-
-<br>
-
-\begin{code}
-{-@ predicate Seg V I J = (I <= V && V < J) @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type IdVec N = Vec <{\v -> (Seg v 0 N)}, 
-                        {\k v -> v=k}> 
-                       Int                  @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-\begin{code}
-{-@ idv :: n:Nat -> (IdVec n) @-}
-idv n   = V (\k -> if 0 < k && k < n 
-                     then k 
-                     else liquidError "eeks")
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>Whats the problem? How can we fix it?
-</div>
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> (Seg v 0 N)}, 
-          {\k v -> (k = N-1 => v = 0)}> 
-          Int                             @-}
-\end{code}
-
-</div>
-
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                               @-}
-\end{code}
-
-
-Accessing Vectors
------------------
-
-Next: lets *abstractly* type `Vec`tor operations, *e.g.* 
-
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-Ex: Empty Vectors
------------------
-
-`empty` returns Vector whose domain is `false`
-
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. 
-               Vec <{v:Int|false}, p> a     @-}
-
-empty     = V $ \_ -> error "empty vector!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-Ex: `get` Key's Value 
----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-\begin{code}
-{-@ get :: forall a <d :: Int -> Prop,  
-                     r :: Int -> a -> Prop>.
-           key:Int <d>
-        -> vec:Vec <d, r> a
-        -> a<r key>                        @-}
-
-get k (V f) = f k
-\end{code}
-
-
-Ex: `set` Key's Value 
----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-Ex: `set` Key's Value 
----------------------
-
-\begin{code}
-{-@ set :: forall a <d :: Int -> Prop,
-                     r :: Int -> a -> Prop>.
-           key: Int<d> -> val: a<r key>
-        -> vec: Vec<{v:Int<d>| v /= key},r> a
-        -> Vec <d, r> a                     @-}
-set key val (V f) = V $ \k -> if k == key 
-                                then val 
-                                else f key
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-<!-- INSERT tests/pos/vecloop.lhs here AFTER FIXED -->
-
-Using the Vector API
---------------------
-
-Memoized Fibonacci
-------------------
-
-Use `Vec` API to write a *memoized* fibonacci function
-
-<br>
-
-<div class="fragment">
-\begin{code} Using the fibonacci table:
-type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                              
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-But wait, what is `fib` ?
-</div>
-
-
-Specifying Fibonacci
---------------------
-
-`fib` is *uninterpreted* in the refinement logic  
-
-<br>
-
-\begin{code}
-{-@ measure fib :: Int -> Int @-}
-\end{code}
-
-<br>
-
-Specifying Fibonacci
---------------------
-
-We *axiomatize* the definition of `fib` in SMT ...
-
-\begin{code}<br>
-predicate AxFib I = 
-  (fib I) == if I <= 1 
-               then 1 
-               else fib(I-1) + fib(I-2)
-\end{code}
-
-Specifying Fibonacci
---------------------
-
-Finally, lift axiom into LiquidHaskell as *ghost function*
-
-<br>
-
-\begin{code}
-{-@ axiom_fib :: 
-      i:_ -> {v:_|((Prop v) <=> (AxFib i))} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Recipe for *escaping* SMT limitations
-
-1. *Prove* fact externally
-2. *Use* as ghost function call
-</div>
-
-
-Fast Fibonacci
---------------
-
-An efficient fibonacci function
-
-<br>
-
-\begin{code}
-{-@ fastFib :: n:Int -> {v:_ | v = (fib n)} @-}
-fastFib n   = snd $ fibMemo (V (\_ -> 0)) n
-\end{code}
-
-<br>
-
-<div class="fragment">
-- `fibMemo` *takes* a table initialized with `0`
-
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-</div>
-
-
-Memoized Fibonacci 
-------------------
-
-\begin{code}
-fibMemo t i 
-  | i <= 1    
-  = (t, liquidAssume (axiom_fib i) 1)
-  | otherwise 
-  = case get i t of   
-     0 -> let (t1,n1) = fibMemo t  (i-1)
-              (t2,n2) = fibMemo t1 (i-2)
-              n       = liquidAssume 
-                        (axiom_fib i) (n1+n2)
-          in (set i n t2,  n)
-     n -> (t, n)
-\end{code}
-
-Memoized Fibonacci 
-------------------
-
-- `fibMemo` *takes* a table initialized with `0`
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-
-<br>
-
-\begin{code}
-{-@ fibMemo :: FibV 
-            -> i:Int 
-            -> (FibV,{v:Int | v = (fib i)}) @-}
-\end{code}
-
-
-Recap
------
-
-Created a `Vec` container 
-
-Decoupled *domain* and *range* invariants from *data*
-
-<br>
-
-<div class="fragment">
-
-Previous, special purpose program analyses 
-
-- [Gopan-Reps-Sagiv, POPL 05](link)
-- [J.-McMillan, CAV 07](link)
-- [Logozzo-Cousot-Cousot, POPL 11](link)
-- [Dillig-Dillig, POPL 12](link) 
-- ...
-
-Encoded as instance of abstract refinement types!
-</div>
-
-
-
-
diff --git a/docs/slides/IHP14/lhs/08_Recursive.lhs b/docs/slides/IHP14/lhs/08_Recursive.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/08_Recursive.lhs
+++ /dev/null
@@ -1,546 +0,0 @@
-Decouple Invariants From Data {#recursive} 
-==========================================
-
- {#asd}
--------
-
-Recursive Structures 
---------------------
-
-Lets see another example of decoupling...
-
-<div class="hidden">
-\begin{code}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module List (insertSort) where
-
-{-@ LIQUID "--no-termination" @-}
-
-mergeSort     :: Ord a => [a] -> [a]
-insertSort :: (Ord a) => [a] -> L a 
-slist :: L Int
-slist' :: L Int
-iGoUp, iGoDn, iDiff :: [Int]
-infixr `C`
-\end{code}
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-\begin{code}
-data L a = N 
-         | C { hd :: a, tl :: L a }
-\end{code}
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define **increasing** Lists with strengthened constructors:
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: hd:a -> tl: L {v:a | hd <= v} -> L a
-\end{code}
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing *and* decreasing lists?](http://hackage.haskell.org/package/base-4.7.0.0/docs/src/Data-List.html#sort)
-
-<br>
-
-<div class="fragment">
-[Separate (indexed) types](http://web.cecs.pdx.edu/~sheard/Code/QSort.html) get quite complicated ...
-</div>
-
-Abstract That Refinement!
--------------------------
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C { hd :: a, tl :: L <p> a<p hd> } @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> `p` is a **binary relation** between two `a` values</div>
-
-<br>
-
-<div class="fragment"> Definition relates `hd` with **all** the elements of `tl`</div>
-
-<br>
-
-<div class="fragment"> Recursive: `p` holds for **every pair** of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
-\begin{code} <br>
-x1 `C` x2 `C` x3 `C` rest :: L <p> a 
-\end{code}
-
-Example: Unfold Once
---------------------
-
-\begin{code} <br> 
-x1                 :: a
-x2 `C` x3 `C` rest :: L <p> a<p x1> 
-\end{code}
-
-Example: Unfold Twice
----------------------
-
-\begin{code} <br> 
-x1          :: a
-x2          :: a<p x1>  
-x3 `C` rest :: L <p> a<p x1 && p x2> 
-\end{code}
-
-Example: Unfold Thrice
-----------------------
-
-\begin{code} <br> 
-x1   :: a
-x2   :: a<p x1>  
-x3   :: a<p x1 && p x2>  
-rest :: L <p> a<p x1 && p x2 && p x3> 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair*?
-
-<br>
-
-<div class="fragment">**Instantiate** `p` with a *concrete* refinement</div>
-
-
-Example: Increasing Lists
--------------------------
-
-**Instantiate** `p` with a *concrete* refinement
-
-<br>
-
-\begin{code}
-{-@ type IncL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> Refinement says: &nbsp; `hd` less than **every** `v` in tail,</div>
-
-<br>
-
-<div class="fragment"> i.e., `IncL` denotes **increasing** lists. </div>
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell *verifies* that `slist` is indeed increasing...
-
-\begin{code}
-{-@ slist :: IncL Int @-}
-slist     = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> 
-
-<div class="fragment">
-
-... and *protests* that `slist'` is not: 
-
-\begin{code}
-{-@ slist' :: IncL Int @-}
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-</div>
-
-Insertion Sort
---------------
-
-\begin{code}
-{-@ insertSort :: (Ord a) => [a] -> IncL a @-}
-insertSort     = foldr insert N
-
-insert y N          = y `C` N
-insert y (x `C` xs) 
-  | y < x           = y `C` (x `C` xs)
-  | otherwise       = x `C` insert y xs
-\end{code}
-
-<br>
-
-(Mouseover `insert` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
-\begin{code} <br> 
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) { h :: a, tl :: [a<p h>]<p> }
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Incs a = [a]<{\h v -> h <= v}> @-}
-
-{-@ iGoUp :: Incs Int @-}
-iGoUp     = [1,2,3]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Decs a = [a]<{\h v -> h >= v}> @-}
-
-{-@ iGoDn :: Decs Int @-}
-iGoDn     = [3,2,1]
-\end{code}
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-\begin{code}
-{-@ type Difs a = [a]<{\h v -> h /= v}> @-}
-
-{-@ iDiff :: Difs Int @-}
-iDiff     = [1,3,2]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Now we can check all the usual list sorting algorithms 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target="_blank">Demo:</a> List Sorting
-
-<!-- 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-{-@ mergeSort  :: (Ord a) => [a] -> Incs a @-}
-mergeSort []   = []
-mergeSort [x]  = [x]
-mergeSort xs   = merge xs1' xs2' 
-  where 
-   (xs1, xs2)  = split xs
-   xs1'        = mergeSort xs1
-   xs2'        = mergeSort xs2
-\end{code}
-
-Example: `mergeSort` [2/2]
---------------------------
-
-\begin{code}
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-
-merge xs []    = xs
-merge [] ys    = ys
-merge (x:xs) (y:ys) 
-  | x <= y     = x : merge xs (y:ys)
-  | otherwise  = y : merge (x:xs) ys
-\end{code}
-
-
-
-Example: `Data.List.sort` 
--------------------------
-
-<br>
-
-GHC's "official" list sorting routine
-
-<br>
-
-Juggling lists of increasing & decreasing lists
-
-
-
-
-Ex: `Data.List.sort` [1/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-sequences (a:b:xs)
-  | a `compare` b == GT = descending b [a]  xs
-  | otherwise           = ascending  b (a:) xs
-sequences [x]           = [[x]]
-sequences []            = [[]]
-\end{code}
-
-Ex: `Data.List.sort` [2/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-descending a as (b:bs)
-  | a `compare` b == GT 
-  = descending b (a:as) bs
-descending a as bs      
-  = (a:as): sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [3/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-
-\begin{code}
-ascending a as (b:bs)
-  | a `compare` b /= GT 
-  = ascending b (\ys -> as (a:ys)) bs
-ascending a as bs      
-  = as [a]: sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [4/5]
---------------------------
-
-**Step 2.** Merge sequences
-
-<br>
-
-\begin{code}
-mergeAll [x]        = x
-mergeAll xs         = mergeAll (mergePairs xs)
-
-mergePairs (a:b:xs) = merge a b: mergePairs xs
-mergePairs [x]      = [x]
-mergePairs []       = []
-\end{code}
-
-
-Ex: `Data.List.sort` [5/5]
---------------------------
-
-Put it all together
-
-<br>
-
-\begin{code}
-{-@ sort :: (Ord a) => [a] -> Incs a  @-}
-sort = mergeAll . sequences
-\end{code}
-
-<br>
-
-<div class="fragment">No other hints or annotations required.</div>
-
--->
-
-Phew!
------
-
-Lets see one last example...
-
-<br>
-<br>
-<br>
-<br>
-
-[[Skip]](#/1/32)
-
-
-Example: Binary Trees
----------------------
-
-... `Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, in `Data.Map` as a binary tree:
-
-<br>
-
-\begin{code}
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-<br>
-
-\begin{code}
-{-@ data Map k a < l :: k -> k -> Prop
-                 , r :: k -> k -> Prop >
-    = Tip
-    | Bin (sz :: Size) (key :: k) (val :: a)
-          (left  :: Map <l,r> (k<l key>) a)
-          (right :: Map <l,r> (k<r key>) a) @-}
-\end{code}
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-\begin{code}
-{-@ type BST k a = 
-      Map <{\r v -> v < r }, 
-           {\r v -> v > r }> 
-          k a                   @-}
-\end{code}
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-\begin{code}
-{-@ type MinHeap k a = 
-      Map <{\r v -> r <= v}, 
-           {\r v -> r <= v}> 
-           k a               @-}
-\end{code}
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-\begin{code}
-{-@ type MaxHeap k a = 
-      Map <{\r v -> r >= v}, 
-           {\r v -> r >= v}> 
-           k a               @-}
-\end{code}
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-<br>
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<br>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a> Binary Search Maps
-</div>
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from **functions**
-
-+ `max`
-+ `loop`
-+ `foldr`
-
-</div>
-
-<div class="fragment">
-Decouple invariants from **data**
-
-+ `Vector`
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract:** Refinements over functions and data
-5. <div class="fragment">Er, what about Haskell's **lazy evaluation**?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](09_Laziness.lhs.slides.html)</div>
diff --git a/docs/slides/IHP14/lhs/09_Laziness.lhs b/docs/slides/IHP14/lhs/09_Laziness.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/09_Laziness.lhs
+++ /dev/null
@@ -1,272 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-\begin{code}
-module Laziness where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short"          @-}
-
-
-safeDiv :: Int -> Int -> Int
-foo     :: Int -> Int
--- zero    :: Int 
--- diverge :: a -> b
-\end{code}
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-
-
-[[Skip]](11_Evaluation.lhs.slides.html)
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for **strict** languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `Sage`, `F7`, `F*`, ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-\begin{code}
-{-@ safeDiv :: Int -> {v:Int|v /= 0} -> Int @-}
-safeDiv n 0 = liquidError "div-by-zero!"
-safeDiv n d = n `div` d
-\end{code}
-
-<br>
-
-<div class="fragment">
-Should only call `safeDiv` with **non-zero** values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value **strictly less than** input.
-
-<br>
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-\end{code}
-
-LiquidHaskell Lies! 
--------------------
-
-\begin{code}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0    
-              a = foo z
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Why is this program **deemed safe**?! 
-</div>
-
-
-*Safe* With Eager Eval
-----------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Safe** in Java, ML: program spins away, **never hits** divide-by-zero 
-</div>
-
-*Unsafe* With Lazy Eval
------------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-**Unsafe** in Haskell: program skips `foo z` and **hits** divide-by-zero!
-
-Problem: Divergence
--------------------
-
-What is denoted by:
-
-`e :: {v:Int | P}`
-
-
-<br>
-
-<div class="fragment">
-`e` evaluates to `Int` satisfying `P`  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-\begin{code} **Consider** <div/> 
-        {-@ e :: {v : Int | P} @-}
-
-        let x = e in body 
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Eager Evaluation** 
-
-*Can* assume `P(x)` when checking `body`
-</div>
-
-<br>
-
-<div class="fragment">
-**Lazy Evaluation** 
-
-*Cannot* assume `P(x)` when checking `body`
-</div>
-
-Eager vs. Lazy Binders 
-----------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-Inconsistent refinement for `a` is sound for **eager**, unsound for **lazy**
-
-
-Panic! Now what?
----------------
-
-<div class="fragment">
-**Solution** 
-
-Assign *non-trivial* refinements to *non-diverging* terms!
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Require A Termination Analysis**
-
-Don't worry, its easy...
-
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target="_blank">Demo:</a> &nbsp; Disable `"--no-termination"` and see what happens!
-</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. **Lazy Evaluation:** Requires Termination
-6. <div class="fragment">**Termination:** via Refinements!</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](10_Termination.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/IHP14/lhs/10_Termination.lhs b/docs/slides/IHP14/lhs/10_Termination.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/10_Termination.lhs
+++ /dev/null
@@ -1,314 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-\begin{code}
-module Termination where
-
-import Prelude hiding (gcd, mod, map)
-fib :: Int -> Int
-gcd :: Int -> Int -> Int
-infixr `C`
-
-data L a = N | C a (L a)
-
-{-@ invariant {v: (L a) | 0 <= (llen v)} @-}
-
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
-merge :: Ord a => L a -> L a -> L a
-\end{code}
-</div>
-
-<!--
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
--->
-
-Refinements & Termination
--------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination **using refinements**
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on **smaller** inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-+ [DML](http://dl.acm.org/citation.cfm?id=609232)
-+ [Size Change Principle](http://dl.acm.org/citation.cfm?id=360210)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
-\begin{code} <div/>
-foo   :: Nat -> T
-foo x =  body
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have `Nat` inputs *smaller than* `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-\begin{code}
-{-@ fib  :: Nat -> Nat @-}
-fib 0    = 1
-fib 1    = 1
-fib n    = fib (n-1) + fib (n-2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a> &nbsp; What if we drop the `fib 1` equation? 
-</div>
-
-Refinements Are Essential!
---------------------------
-
-\begin{code}
-{-@ gcd :: a:Nat -> {b:Nat | b < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ mod :: a:Nat 
-        -> b:{v:Nat|(0 < v && v < a)} 
-        -> {v:Nat| v < b}                 @-}
-\end{code}
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= (mS v) < (mS x)} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
-\begin{code} 
-map f N        = N
-map f (C x xs) = (f x) `C` (map f xs) 
-\end{code}
-
-<br>
-
-Terminates using **default** measure `llen` 
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ data L [llen] a = N 
-                    | C { x::a, xs :: L a} @-}
-
-{-@ measure llen :: L a -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)   @-}
-\end{code}
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of smallness spread across **multiple inputs**?
-
-<br>
-
-\begin{code}
-merge xs@(x `C` xs') ys@(y `C` ys')
-  | x < y     = x `C` merge xs' ys
-  | otherwise = y `C` merge xs ys'
-\end{code}
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their **sum** does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their **sum** does.
-
-<br>
-
-\begin{code}
-{-@ merge :: Ord a => xs:_ -> ys:_ -> _ 
-          /  [(llen xs) + (llen ys)]     @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Synthesize **ghost** parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-... thereby reducing to decreasing **single parameter** case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-<br>
-
-<div class="fragment">**Mutual** recursion</div>
-
-<br>
-
-<div class="fragment">**Lexicographic** ordering</div>
-
-<br>
-
-<div class="fragment">Fit easily into our framework ...</div>
-
-Recap
------
-
-Main idea: Recursive calls on **smaller** inputs
-
-<br>
-
-<div class="fragment">Use refinements to **check** smaller</div>
-
-<br>
-
-<div class="fragment">Use refinements to **establish** smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> Meta-theory is tricky, but all ends well.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. Lazy Evaluation: Requires Termination
-6. **Termination:** via Refinements!
-7. <div class="fragment">**Evaluation:** How good is this in practice?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/IHP14/lhs/11_Evaluation.lhs b/docs/slides/IHP14/lhs/11_Evaluation.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/11_Evaluation.lhs
+++ /dev/null
@@ -1,92 +0,0 @@
- {#ASda}
-========
-
-Evaluation
-----------
-
-
-
-Evaluation
-==========
-
-LiquidHaskell Is For Real
--------------------------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-<br>
-
-Substantial code bases.
-
-<br>
-
-Complex properties.
-
-<br>
-
-<div class="fragment">Inference is crucial.</div>
-
-
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**
----------------------------   ---------
-`Data.List`                         814
-`Data.Set.Splay`                    149
-`Data.Vector.Algorithms`           1219
-`Data.Map.Base`                    1396
-`Data.Text`                        3125
-`Data.Bytestring`                  3501 
-**Total**                     **10224**
----------------------------   ---------
-
-</div>
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**     **Time**
----------------------------   ---------   ----------
-`Data.List`                         814          52s
-`Data.Set.Splay`                    149          26s
-`Data.Vector.Algorithms`           1219         196s 
-`Data.Map.Base`                    1396         247s
-`Data.Text`                        3125         809s
-`Data.Bytestring`                  3501         549s
-**Total**                     **10224**    **1880s**
----------------------------   ---------   ----------
-
-</div>
-
-
-Termination
------------
-
-Proving termination is **easy in practice**.
-
-<br>
-
-- <div class="fragment">`503` recursive functions</div>
-- <div class="fragment">`67%` automatically proved</div>
-- <div class="fragment">`30%` need *witnesses* `/[...]`</div>
-- <div class="fragment">`1`   witness per `100` lines of code</div>
-- <div class="fragment">`20`  *not proven* to terminate</div>
-- <div class="fragment">`12`  *do not* terminate (e.g. top-level `IO` loops)</div>
-- <div class="fragment">`8`   currently *outside scope* of LiquidHaskell</div>
-
-
-<div class="fragment">[[continue...]](12_Conclusion.lhs.slides.html)</div>
-
diff --git a/docs/slides/IHP14/lhs/12_Conclusion.lhs b/docs/slides/IHP14/lhs/12_Conclusion.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/12_Conclusion.lhs
+++ /dev/null
@@ -1,127 +0,0 @@
- {#ASda}
-========
-
-Conclusion
-----------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-Conclusion
-==========
-
-
-Liquid Types 
-------------
-
-Generalize Program **Logics** via **Types**
-
-<br>
-
-<div class="fragment">Expressive *and* Automatic</div>
-
-
-Liquid Types 
-------------
-
-Generalize Program **Logics** via **Types**
-
-<br>
-
-Expressive *and* Automatic
-
-<br>
-
-**Take Home 1: Inference**
-
-+ Typecheck "templates" 
-
-+ Abstract Interpretation
- 
-Liquid Types 
-------------
-
-Generalize Program **Logics** via **Types**
-
-<br>
-
-Expressive *and* Automatic
-
-<br>
-
-**Take Home 2: Uninterpreted Functions**
-
-+ Measures for Datatype properties
-
-+ Abstract Refinements 
- 
-Liquid Types 
-------------
-
-Generalize Program **Logics** via **Types**
-
-<br>
-
-Expressive *and* Automatic
-
-<br>
-
-**Take Home 3: Laziness breaks *partial* correctness**
- 
-+ Use refinements prove termination
-
-+ Use termination to prove refinements
-
-<!--
-
-Take Home Messages
-------------------
-
-1. <div class="fragment"> **Inference**
-    + Typecheck "templates" 
-    + Abstract Interpretation
-   </div>
-
-
-2. <div class="fragment">**Uninterpreted functions**
-    + Measures for Datatype properties
-    + Abstract Refinements 
-   </div>
-
-3. <div class="fragment">**Laziness breaks *partial* correctness**
-    + Use refinements prove termination
-    + Use termination to prove refinements
-   </div>
-
-
-Future Work
------------
-
-<br>
-<br>
-
-- <div class="fragment">Speed</div>
-
-- <div class="fragment">Case Studies</div>
-
-- <div class="fragment">**Error Feedback**</div>
-
--->
-
- {#asd}
-=======
-
-Thank You!
-----------
-
-<br>
-
-[`http://goto.ucsd.edu/liquid`](http://goto.ucsd.edu/liquid)
-
-<br>
-
diff --git a/docs/slides/IHP14/lhs/Index.lhs b/docs/slides/IHP14/lhs/Index.lhs
deleted file mode 100644
--- a/docs/slides/IHP14/lhs/Index.lhs
+++ /dev/null
@@ -1,51 +0,0 @@
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-
- {#ASD}
-=======
-
-Liquid Types For Haskell
-------------------------
-
-
-<br>
-<br>
-
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, D. Vytiniotis, S. Peyton-Jones
-
-<br>
-
-<div class="fragment">
-[[continue]](00_Motivation_Logic.lhs.slides.html)
-</div>
-
-
-Plan 
-----
-
-
-+ <a href="00_Motivation_Logic.lhs.slides.html" target="_blank">Motivation</a>
-+ <div class="fragment"><a href="01_SimpleRefinements.lhs.slides.html" target="_blank">Refinements</a></div>
-+ <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-+ <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-+ <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>, <a href="08_Recursive.lhs.slides.html" target= "_blank">Data</a>,<a href="07_Array.lhs.slides.html" target= "_blank">...</a>,<a href="05_Composition.lhs.slides.html" target= "_blank">...</a></div>
-+ <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Laziness</a> and <a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-+ <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-+ <div class="fragment"><a href="12_Conclusion.lhs.slides.html" target="_blank">Conclusion</a></div>
-
diff --git a/docs/slides/LambdaConf15/lhs/01_SimpleRefinements.lhs b/docs/slides/LambdaConf15/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/LambdaConf15/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,457 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example: Integers equal to `0`
-------------------------------
-
-<br>
-
-\begin{code}
-{-@ type Zero = {v:Int | v = 0} @-}
-
-{-@ zero :: Zero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}` 
-
-<br>
-
-<div class="fragment">
-[DEMO](../hs/000_Refinements.hs)
-
-
-<!-- BEGIN CUT
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
--->
-
-</div>
-
-Refinements Are Predicates
-==========================
-
-From A Decidable Logic
-----------------------
-
-<br> 
-
-1. Expressions
-
-2. Predicates
-
-<br>
-
-<div class="fragment">
-
-**Refinement Logic: QF-UFLIA**
-
-Quant.-Free. Uninterpreted Functions and Linear Arithmetic 
-
-</div>
-
-
-Expressions
------------
-
-<br>
-
-\begin{spec} <div/> 
-e := x, y, z,...    -- variable
-   | 0, 1, 2,...    -- constant
-   | (e + e)        -- addition
-   | (e - e)        -- subtraction
-   | (c * e)        -- linear multiplication
-   | (f e1 ... en)  -- uninterpreted function
-\end{spec}
-
-Predicates
-----------
-
-<br>
-
-\begin{spec} <div/>
-p := e           -- atom 
-   | e1 == e2    -- equality
-   | e1 <  e2    -- ordering 
-   | (p && p)    -- and
-   | (p || p)    -- or
-   | (not p)     -- negation
-\end{spec}
-
-<br>
-
-
-Refinement Types
-----------------
-
-
-<br>
-
-\begin{spec}<div/>
-b := Int 
-   | Bool 
-   | ...         -- base types
-   | a, b, c     -- type variables
-
-t := {x:b | p}   -- refined base 
-   | x:t -> t    -- refined function  
-\end{spec}
-
-
-Subtyping Judgment 
-------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-<div class="fragment">
-
-<br>
-
-Where **environment** $\Gamma$ is a sequence of binders
-
-<br>
-
-$$\Gamma \defeq \overline{\bindx{x_i}{t_i}}$$
-
-</div>
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-
-<br>
-
-[PVS' Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-<br>
-
-(For **Base** Types ...)
-
-
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
-$$\boxed{\Gamma \vdash t_1 \preceq t_2}$$
-
-
-<br>
-
-$$
-\begin{array}{rl}
-{\mathbf{If\ VC\ is\ Valid}}   & \bigwedge_i P_i \Rightarrow  Q  \Rightarrow R \\
-                & \\
-{\mathbf{Then}} & \overline{\bindx{x_i}{P_i}} \vdash \reft{v}{b}{Q} \subty \reft{v}{b}{R} \\
-\end{array}
-$$ 
-
-
-Example: Natural Numbers
-------------------------
-
-<br>
-
-\begin{spec} <div/>  
-        type Nat = {v:Int | 0 <= v}
-\end{spec}
-
-<br>
-
-<div class="fragment">
-
-$$
-\begin{array}{rcrccll}
-\mathbf{VC\ is\ Valid:} & \True     & \Rightarrow &  v = 0   & \Rightarrow &  0 \leq v & \mbox{(by SMT)} \\
-%                &           &             &          &             &           \\
-\mathbf{So:}      & \emptyset & \vdash      & \Zero  & \subty      & \Nat   &   \\
-\end{array}
-$$
-</div>
-
-<br>
-
-<div class="fragment">
-
-Hence, we can type:
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero   -- zero :: Zero <: Nat
-\end{code}
-</div>
-
-Contracts: Function Types
-=========================
-
- {#as}
-------
-
-Pre-Conditions
---------------
-
-
-<br>
-
-\begin{code}
-safeDiv n d = n `div` d   -- crashes if d==0
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Requires** non-zero input divisor `d`
-
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-</div>
-
-<br>
-
-
-<div class="fragment">
-Specify pre-condition as **input type** 
-
-\begin{code}
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{code}
-
-</div>
-
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ bad :: Nat -> Int @-}
-bad n   = 10 `safeDiv` n
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Rejected As** 
-
-$$\bindx{n}{\Nat} \vdash \reftx{v}{v = n} \not \subty \reftx{v}{v \not = 0}$$
-
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{code}
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Verifies As** 
-
-$\bindx{n}{\Nat} \vdash \reftx{v}{v = n+1} \subty \reftx{v}{v \not = 0}$
-</div>
-
-Precondition: `safeDiv`
------------------------
-
-Specify pre-condition as **input type** 
-
-\begin{spec} <div/>
-{-@ safeDiv :: n:Int -> d:NonZero -> Int @-}
-\end{spec}
-
-<br>
-
-Precondition is checked at **call-site**
-
-\begin{spec} <div/>
-{-@ ok  :: Nat -> Int @-}
-ok n    = 10 `safeDiv` (n+1)
-\end{spec}
-
-<br>
-
-**Verifies As**
-
-$$(0 \leq n) \Rightarrow (v = n+1) \Rightarrow (v \not = 0)$$
-
-
-
-Post-Conditions
----------------
-
-**Ensures** output is a `Nat` greater than input `x`.
-
-\begin{code}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{code}
-
-<br>
-
-<div class="fragment">
-Specify post-condition as **output type**
-
-\begin{code}
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-**Dependent Function Types**
-
-Outputs *refer to* inputs
-</div>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-Postcondition is checked at **return-site**
-
-<br>
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-\bindx{x}{\Int},\bindx{\_}{0 \leq x}      & \vdash \reftx{v}{v = x}     & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\bindx{x}{\Int},\bindx{\_}{0 \not \leq x} & \vdash \reftx{v}{v = 0 - x} & \subty \reftx{v}{0 \leq v \wedge x \leq v} \\
-\end{array}$$
-
-Postcondition: `abs`
---------------------
-
-Specify post-condition as **output type** 
-
-\begin{spec} <div/>
-{-@ abs :: x:Int -> {v:Nat | x <= v} @-}
-abs x | 0 <= x    = x 
-      | otherwise = 0 - x
-\end{spec}
-
-<br>
-
-**Verified As**
-
-<br>
-
-$$\begin{array}{rll}
-(0 \leq x)      & \Rightarrow (v = x)     & \Rightarrow (0 \leq v \wedge x \leq v) \\
-(0 \not \leq x) & \Rightarrow (v = 0 - x) & \Rightarrow (0 \leq v \wedge x \leq v) \\
-\end{array}$$
-
-
-Recipe Scales Up
-----------------
-
-<br>
-
-<div class="fragment">
-Define type *checker* and get *inference* for free [[PLDI 08]](http://goto.ucsd.edu/~rjhala/papers/liquid_types.pdf)
-</div>
-
-<br>
-
-<div class="fragment">
-Scales to Collections, HOFs, Polymorphism ...
-</div>
-
-<br>
-
-<div class="fragment">
-[DEMO](../hs/001_Refinements.hs)
-
-<br>
-
-[[continue...]](02_Measures.lhs.slides.html)
-
-</div>
diff --git a/docs/slides/NEU14/00_Refinements-blank.hs b/docs/slides/NEU14/00_Refinements-blank.hs
deleted file mode 100644
--- a/docs/slides/NEU14/00_Refinements-blank.hs
+++ /dev/null
@@ -1,182 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-
------------------------------------------------------------------------
--- | 1. Simple Refinement Types
------------------------------------------------------------------------
-
--- Nat
-{-@ type Nat = {v: Int | v >= 0} @-}
-
--- Pos
-{-@ type Pos = {v: Int | v > 0} @-}
-
-
------------------------------------------------------------------------
--- | 2. Function Contracts: Preconditions & Dead Code 
------------------------------------------------------------------------
-
-
-{-@ dead :: {v:String | false} -> a @-}
-dead :: String -> a 
-dead = undefined
-
------------------------------------------------------------------------
--- | 3. Function Contracts: Safe Division 
------------------------------------------------------------------------
-
-{-@ divide :: Int -> Pos -> Int @-}
-divide :: Int -> Int -> Int
-divide n 0 = dead "dbz"
-divide n k = n `div` k
-
-
-
-
------------------------------------------------------------------------
--- | 4. Dividing Safely
------------------------------------------------------------------------
-
-{-@ foo :: Int -> Nat -> Int @-}
-foo     :: Int -> Int -> Int
-foo x y = if y == 0 then foo x y else divide x y
-
-
-
------------------------------------------------------------------------
--- | 4. Data Types
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
-
-
- 
------------------------------------------------------------------------
--- | 4. A few Higher-Order Functions
------------------------------------------------------------------------
-
-{-@ map :: (a -> b) -> xs:_ -> {v:_ | size v = size xs} @-}
-map f N = N
-map f (C x xs) = f x `C` (map f xs)
-
-
-
--- foldr
-foldr f b N        = b
-foldr f b (C x xs) = f x (foldr f b xs)
-
--- foldr1
-{-@ foldr1 :: (a -> a -> a) -> {v:List a | size v > 0} -> a @-}
-foldr1 f (C x xs) = foldr f x xs
-foldr1 _ N        = dead "EMPTY!!!"
-
-
-
-
-
------------------------------------------------------------------------
--- | 5. Measuring the Size of Data
------------------------------------------------------------------------
-
-{-@ measure size @-}
-size :: List a -> Int
-size N        = 0
-size (C x xs) = 1 + size xs 
-
-
-
--- measures = strengthened constructors
-
-
-
-
--- data List a where
---   N :: forall a. {List a | size v = 0}...
---   C :: forall a. x:a -> xs:List a -> {v:List a | size v = 1 + size xs}
-
-
-
-
------------------------------------------------------------------------
--- | 5. Weighted-Averages 
------------------------------------------------------------------------
-
-
-{-@ wtAverage :: {v:List (Pos, Int) | size v > 0} -> Int @-}
-wtAverage :: List (Int, Int) -> Int
-wtAverage wxs = total `divide` weights
-  where
-    total     = foldr1 (+) (map (\(w,x) -> w * x) wxs) 
-    weights   = foldr1 (+) (map (\(w,_) -> w)     wxs) 
-    
-
-
-
-
-
-
--- Exercise: How would you modify the types to get output `Pos` above? 
-
-
-
-
-
------------------------------------------------------------------------
--- | 5. Ordered Lists: Take 1
------------------------------------------------------------------------
-
--- You can do a lot with strengthened constructors
-
-
--- Ordered Lists
-
-
-{-@ data List a = N | C {x :: a, xs :: List {v:a | x <= v}} @-}
-okList = 1 `C` 2 `C` 4 `C` N
-
-
-
-
-
------------------------------------------------------------------------
--- | 6. Sorting Lists 
------------------------------------------------------------------------
-
-
-insert x N        = x `C` N
-insert x (C y ys)
-  | x < y         = x `C` (y `C` ys)
-  | otherwise     = y `C` (insert x ys)
-
-
-insertSort []     = N
-insertSort (x:xs) = insert x (insertSort xs)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
--- Note that adding ordering BREAKS `map`, but ...
-
-
diff --git a/docs/slides/NEU14/00_Refinements.hs b/docs/slides/NEU14/00_Refinements.hs
deleted file mode 100644
--- a/docs/slides/NEU14/00_Refinements.hs
+++ /dev/null
@@ -1,124 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--diffcheck"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Refinements where
-
-import Prelude hiding (map, foldr, foldr1)
-
-
-wtAverage :: List (Int, Int) -> Int
-
-
------------------------------------------------------------------------
--- | 1. Simple Refinement Types
------------------------------------------------------------------------
-
-{-@ type Nat = {v:Int | v >= 0} @-}
-{-@ type Pos = {v:Int | v >  0} @-}
-
-
------------------------------------------------------------------------
--- | 2. Function Contracts: Preconditions & Dead Code 
------------------------------------------------------------------------
-
-{-@ dead :: {v:_ | false} -> a @-}
-dead msg = error msg
-
------------------------------------------------------------------------
--- | 3. Function Contracts: Safe Division 
------------------------------------------------------------------------
-
-
-
-{-@ divide :: _ -> {v:_ | v > 0 } -> Int @-}
-divide     :: Int -> Int -> Int
-divide x 0 = dead 12  -- "divide-by-zero"
-divide x n = x `div` n
-
-
-
------------------------------------------------------------------------
--- | 4. Dividing Safely
------------------------------------------------------------------------
-
-
-
------------------------------------------------------------------------
--- | 4. Data Types
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
- 
------------------------------------------------------------------------
--- | 4. Measuring the Size of Data
------------------------------------------------------------------------
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
--- data List a where
---   N :: forall a. {v: List a | size v = 0}
---   C :: forall a. x:a -> xs:List a -> {v: List a | size v = 1 + size xs}
-                
------------------------------------------------------------------------
--- | 5. A few Higher-Order Functions
------------------------------------------------------------------------
-
-{-@ map              :: (a -> b) -> xs:List a -> {v: List b | size v = size xs} @-}
-map f (N)            = N
-map f (C x xs)       = C (f x) (map f xs) 
-
-{-@ foldr1           :: (a -> a -> a) -> {v: List a | 0 < size v } -> a @-}
-foldr1 f (C x xs)    = foldr f x xs
-foldr1 f N           = dead "foldr1"
-
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
- 
-
------------------------------------------------------------------------
--- | 5. Weighted-Averages 
------------------------------------------------------------------------
-
-{-@ wtAverage :: {v : List (Pos, Pos) | size v > 0} -> Int @-}
-wtAverage wxs = total `divide` weights
-  where
-    total     = sum $ map (\(w, x) -> w * x) wxs
-    weights   = sum $ map (\(w, _) -> w    ) wxs
-    sum       = foldr1 (+)
-
-
--- | Exercise: How would you modify the types to get output `Pos` above? 
-
------------------------------------------------------------------------
--- | 5. Ordered Lists: Take 1
------------------------------------------------------------------------
-
-{- data List a = N | C {x :: a, xs :: List {v:a | x <= v}} @-}
-
-okList :: List Int
-okList = 1 `C` 2 `C` 4 `C` N
-
--- Note that adding ordering BREAKS `map`...
-
-
-
-{-@ insert         :: _ -> xs:_ -> {v:_ | size v = 1 + size xs} @-}
-insert x N         = x `C` N
-insert x (C y ys)
-  | x <= y         = x `C` y `C` ys
-  | otherwise      = y `C` insert x ys 
-
-
-
-
-{-@ insertSort     :: (Ord a) => xs:[a] -> {v:List a | size v = len xs} @-}
-insertSort []      = N
-insertSort (x:xs)  = insert x (insertSort xs)
diff --git a/docs/slides/NEU14/01_AbstractRefinements-blank.hs b/docs/slides/NEU14/01_AbstractRefinements-blank.hs
deleted file mode 100644
--- a/docs/slides/NEU14/01_AbstractRefinements-blank.hs
+++ /dev/null
@@ -1,212 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module AbstractRefinements (
-    listMax
-  , insertSort
-  , insertSort'
-  ) where
-
-
-import Data.Set hiding (insert, foldr,size) 
-import Prelude hiding (map, foldr)
-
-
-
------------------------------------------------------------------------
--- | 0. Abstract Refinements 
------------------------------------------------------------------------
-
-
--- Warmup: How shall we type listMax?
-
-{-@ listMax  :: forall <p :: Int -> Prop>. {v:[Int<p>] | len v > 0}
-             -> Int<p> @-}
-listMax     :: [Int] -> Int
-listMax xs  = foldr1 max xs 
-
-
-
--- Lets define a few different subsets of Int
-
-{-@ type Even = {v: Int | v mod 2 = 0} @-}
-{-@ type Odd  = {v: Int | v mod 2 /= 0} @-}
-{-@ type RGB  = {v: Int | 0 <= v && v <= 255}  @-}
-
-
--- compute the largest of some lists
-
-{-@ xE :: Even @-}
-xE = listMax [0, 1] 
-
-
-
-{-@ xO :: Odd @-}
-xO = listMax [1, 21, 4001, 961] 
-
-
-
-{-@ xR :: RGB @-}
-xR = listMax [1, 21, 41, 61] 
-
-
--- Why do we get the errors? How do we fix it?
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 1. Abstract Refinement from List's Type 
------------------------------------------------------------------------
-
-{-@ data List a <p :: a -> a -> Prop> =
-        N
-      | C { x :: a, xs :: List<p> (a<p x>) }
-  @-}
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 2. Instantiating Abstract Refinements 
------------------------------------------------------------------------
-
-
-{-@ type IncrList a = List <{\x1 x2 -> x1 <= x2}> a@-} 
-{-@ type DecrList a = List <{\x1 x2 -> x1 >= x2}> a@-} 
-{-@ type DiffList a = List <{\x1 x2 -> x1 /= x2}> a@-} 
-
-ups, downs  :: List Int
-
-{-@ ups :: IncrList Int @-}
-ups   = 1 `C` 2 `C` 3 `C` N
-
-{-@ downs :: DecrList Int @-}
-downs = 10 `C` 8 `C` 6 `C` N
-
-
-
-
------------------------------------------------------------------------
--- | 3. Insertion Sort: Revisited
------------------------------------------------------------------------
-
-{-@ insert         :: _ -> xs:_ -> {v:_ | size v = 1 + size xs} @-}
-insert x N         = x `C` N
-insert x (C y ys)
-  | x <= y         = x `C` y `C` ys
-  | otherwise      = y `C` insert x ys 
-
-
-
-{-@ insertSort      :: xs:List a -> {v:IncrList a | EqSize v xs} @-}
-insertSort N        = N
-insertSort (C x xs) = insert x (insertSort xs)
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 3. Insertion Sort: using a `foldr` 
------------------------------------------------------------------------
-
-
-{-@ insertSort' :: xs:List a -> {v:IncrList a | true } @-}
-insertSort' xs = foldr insert N xs 
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 4. But, there are limits...
------------------------------------------------------------------------
-
--- how big is the list returned by insertSort' ?
-
-
--- Hmm. Thats a bummer... How do we type `foldr` to verify the above?
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 5. Induction, as an Abstract Refinement 
------------------------------------------------------------------------
-
-
-ifoldr = undefined
-
-{- insertSort' :: xs:List a -> {v:IncrList a | size v = size xs} -}
-
-
-
-
-
-
-
------------------------------------------------------------------------
--- | 6. But can you prove that you've permuted the input?
------------------------------------------------------------------------
-
-
--- Lets reason about the set of elements in a container
-
--- measure elems
-
-{-@ predicate EqSize X Y = size X = size Y @-}
-
--- predicate EqElems
-
-
------------------------------------------------------------------------
--- | Old definitions from 00_Refinements.hs
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
- 
diff --git a/docs/slides/NEU14/01_AbstractRefinements.hs b/docs/slides/NEU14/01_AbstractRefinements.hs
deleted file mode 100644
--- a/docs/slides/NEU14/01_AbstractRefinements.hs
+++ /dev/null
@@ -1,169 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--no-warnings"    @-}
-{-@ LIQUID "--no-termination" @-}
-
-module AbstractRefinements (
-    listMax
-  , insertSort
-  , insertSort'
-  , insertSort''
-  , insertSort'''
-  ) where
-
-import Data.Set hiding (insert, foldr,size) 
-import Prelude hiding (map, foldr)
-
-listMax     :: [Int] -> Int
-
------------------------------------------------------------------------
--- | 0. Abstract Refinements 
------------------------------------------------------------------------
-
-{-@ listMax :: forall <p :: Int -> Prop>. {v:[Int<p>] | len v > 0} -> Int<p> @-} 
-listMax xs  = foldr1 max xs 
-
-
--- Lets define a few different subsets of Int
-
-{-@ type Even = {v:Int | v mod 2 == 0}      @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0}      @-}
-{-@ type RGB  = {v:Int | 0 <= v && v < 256} @-}
-
-
-
-{-@ xE :: Even @-}
-xE = listMax [0, 200, 4000, 60] 
-
-
-{-@ xO :: Odd @-}
-xO = listMax [1, 21, 4001, 961] 
-
-
-{-@ xR :: RGB @-}
-xR = listMax [1, 21, 41, 61] 
-
-
-
------------------------------------------------------------------------
--- | 1. Abstract Refinement from List's Type 
------------------------------------------------------------------------
-
-
-
-{-@ data List a <p :: a -> a -> Prop> 
-     = N | C {x :: a, xs :: List<p> a<p x>} @-}
-
-
-
------------------------------------------------------------------------
--- | 2. Instantiating Abstract Refinements 
------------------------------------------------------------------------
-
-
-
-
-{-@ type IncrList a = List <{\x y -> x <= y}> a @-} 
-{-@ type DecrList a = List <{\x y -> x >= y}> a @-} 
-{-@ type DiffList a = List <{\x y -> x /= y}> a @-} 
-
-{-@ ups   :: IncrList Integer @-}
-ups       = 1 `C` 2 `C` 4 `C` N
-
-{-@ downs :: DecrList Integer @-}
-downs     = 100 `C` 20 `C` 4 `C` N
-
-{-@ diffs :: DiffList Integer @-}
-diffs     = 100 `C` 1000 `C` 10 `C` 1 `C`  N
-
-
-
------------------------------------------------------------------------
--- | 3. Insertion Sort: Revisited
------------------------------------------------------------------------
-
-{-@ insert         :: x:_ -> xs:_ -> {v:_ | AddElt v x xs && size v = 1 + size xs} @-}
-insert x N         = x `C` N
-insert x (C y ys)
-  | x <= y         = x `C` y `C` ys
-  | otherwise      = y `C` insert x ys 
-
-
-
-{-@ insertSort      :: xs:List a -> {v:IncrList a | size v = size xs} @-}
-insertSort N        = N
-insertSort (C x xs) = insert x (insertSort xs)
-
-
-
------------------------------------------------------------------------
--- | 3. Insertion Sort: using a `foldr` 
------------------------------------------------------------------------
-
-
-
-{-@ insertSort' :: xs:List a -> IncrList a @-}
-insertSort' xs = foldr insert N xs
-
-
-
-
------------------------------------------------------------------------
--- | 4. But, there are limits...
------------------------------------------------------------------------
-
--- but why is this not ok?
-
-{-@ insertSort'' :: xs:List a -> {v:IncrList a | EqSize v xs && EqElem v xs} @-}
-insertSort'' xs   = foldr insert N xs
-
-
--- Hmm. Thats a bummer... How do we type `foldr` to verify the above?
-
-
------------------------------------------------------------------------
--- | 5. Induction, as an Abstract Refinement 
------------------------------------------------------------------------
-
-
-{-@ ifoldr :: forall a b <p :: List a -> b -> Prop>. 
-                 (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-               -> b<p N> 
-               -> ys:List a
-               -> b<p ys>                            @-}
-ifoldr :: (List a -> a -> b -> b) -> b -> List a -> b
-ifoldr f b N        = b
-ifoldr f b (C x xs) = f xs x (ifoldr f b xs)
-
-
-{-@ insertSort''' :: xs:List a -> {v:IncrList a | EqSize v xs && EqElem v xs} @-}
-insertSort''' xs = ifoldr (\_ -> insert) N xs
-
-
-
-
------------------------------------------------------------------------
--- | Old definitions from 00_Refinements.hs
------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-infixr 9 `C`
-
-{-@ measure size @-}
-size          :: List a -> Int
-size (C x xs) = 1 + size xs 
-size N        = 0
-
-foldr f acc N        = acc
-foldr f acc (C x xs) = f x (foldr f acc xs)
-
-
-{-@ predicate EqSize X Y = size X  = size Y @-}
-{-@ predicate EqElem X Y = elems X = elems Y @-}
-
-{-@ predicate AddElt V X Xs = elems V = Set_cup (Set_sng X) (elems Xs) @-}
- 
-{-@ measure elems ::List a -> (Set a)
-    elems (N)      = (Set_empty 0)
-    elems (C x xs) = (Set_cup (Set_sng x) (elems xs))
-  @-}
diff --git a/docs/slides/NEU14/02_Termination-blank.hs b/docs/slides/NEU14/02_Termination-blank.hs
deleted file mode 100644
--- a/docs/slides/NEU14/02_Termination-blank.hs
+++ /dev/null
@@ -1,187 +0,0 @@
-module Termination (fac, tailFac, map, merge) where
-
-import Prelude hiding (gcd, mod, map, repeat, take)
-import Language.Haskell.Liquid.Prelude
-
-
-
--------------------------------------------------------------------------
--- | Simple Termination
--------------------------------------------------------------------------
-
-fac   :: Int -> Int
-fac   = undefined
-
-
-
-
-
-
-
-
-
-
--------------------------------------------------------------------------
--- | Semantic Termination
--------------------------------------------------------------------------
-
-gcd :: Int -> Int -> Int
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-
-
-mod :: Int -> Int -> Int
-mod a b
-  | a - b >  b = mod (a - b) b
-  | a - b <  b = a - b
-  | a - b == b = 0
-
--------------------------------------------------------------------------
--- Explicit Metrics #1 
--------------------------------------------------------------------------
-
-tailFac   :: Int -> Int
-tailFac n = loop 1 n
-
-loop      :: Int -> Int -> Int
-loop      = undefined
-
-         
-
-
--------------------------------------------------------------------------
--- Explicit Metrics #2 
--------------------------------------------------------------------------
-
-range :: Int -> Int -> [Int]
-range lo hi = undefined
-
-
-
--------------------------------------------------------------------------
--- | Structural Recursion 
--------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-map :: (a -> b) -> List a -> List b
-map = undefined
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{-@ measure size :: List a -> Int
-    size (N)      = 0  
-    size (C x xs) = (1 + size xs)
-  @-}
-
-
-
-
--------------------------------------------------------------------------
--- | Default Metrics
--------------------------------------------------------------------------
-
-
-{-@ data List [size] a = N | C {x :: a, xs :: List a } @-}
-
-
-
--------------------------------------------------------------------------
--- | Termination Expressions Metrics
--------------------------------------------------------------------------
-
-merge :: (Ord a) => List a -> List a -> List a
-merge (C x xs) (C y ys)
-  | x < y      = x `C` merge xs (y `C` ys)
-  | otherwise  = y `C` merge (x `C` xs) ys
-merge _   ys   = ys
-
-
-
-
-
-
-
-
-
--------------------------------------------------------------------------
--- | Infinite Streams
--------------------------------------------------------------------------
-
-{- data List [sz] a <p :: List a -> Prop>
-      = N | C { x  :: a
-              , xs :: List <p> a <<p>>
-              }
-  -}
-
-
-{-@ measure emp  :: (List a) -> Prop
-    emp (N)      = true
-    emp (C x xs) = false
-  @-}
-
-{- type Stream a = {xs: List <{\v -> not (emp v)}> a | not (emp xs)} @-}
-
-{- Lazy repeat @-}
-                 
-{- repeat :: a -> Stream a @-}
--- repeat   :: a -> List a
--- repeat x = x `C` repeat x
-
-
-{- take :: Nat -> Stream a -> List a @-}
--- take  :: Int -> List a -> List a
--- take 0 _        = N
--- take n (C x xs) = x `C` take (n-1) xs
--- take _ N        = liquidError "never happens"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------
-
-
-{-@ invariant {v : List a | 0 <= size v} @-}
-
-
-
-
-
-
-
diff --git a/docs/slides/NEU14/02_Termination.hs b/docs/slides/NEU14/02_Termination.hs
deleted file mode 100644
--- a/docs/slides/NEU14/02_Termination.hs
+++ /dev/null
@@ -1,178 +0,0 @@
-module Termination where
-
-import Prelude hiding (gcd, mod, map, repeat, take)
-import Language.Haskell.Liquid.Prelude
-
-fac   :: Int -> Int
-tfac  :: Int -> Int -> Int
-map   :: (a -> b) -> List a -> List b
-merge :: (Ord a) => List a -> List a -> List a
-
-
--------------------------------------------------------------------------
--- | Simple Termination
--------------------------------------------------------------------------
-
-{-@ fac :: Nat -> Nat @-}
-fac 0 = 1
-fac 1 = 1
-fac n = n * fac (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- | Semantic Termination
--------------------------------------------------------------------------
-
-{-@ gcd :: a:Nat -> b:{v:Nat | v < a} -> Int @-}
-gcd :: Int -> Int -> Int
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-
-
-{-@ mod :: a:Nat -> b:{v:Nat| ((v < a) && (v > 0))} -> {v:Nat | v < b} @-}
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
--------------------------------------------------------------------------
--- Explicit Metrics #1 
--------------------------------------------------------------------------
-
-{-@ tfac :: Nat -> n:Nat -> Nat / [n] @-}
-tfac acc 0 = acc
-tfac acc n = tfac (n * acc) (n-1)
-
-
-
-
--------------------------------------------------------------------------
--- Explicit Metrics #2 
--------------------------------------------------------------------------
-
-{-@ range :: lo:Nat -> hi:Nat -> [Nat] / [hi-lo] @-}
-range :: Int -> Int -> [Int]
-range lo hi
-  | lo < hi   = lo : range (lo + 1) hi
-  | otherwise = []
-
-
-
--------------------------------------------------------------------------
--- | Structural Recursion 
--------------------------------------------------------------------------
-
-data List a = N | C a (List a)
-
-{-@ measure sz  :: List a -> Int 
-    sz (C x xs) = 1 + (sz xs)
-    sz (N)      = 0
-  @-}
-
-{-@ map :: (a -> b) -> xs:List a -> (List b) / [sz xs] @-}
-map _ N        = N
-map f (C x xs) = f x `C` map f xs
-
-
-
--------------------------------------------------------------------------
--- | Default Metrics
--------------------------------------------------------------------------
-
-{-@ data List [sz] a = N | C {x :: a, xs :: List a } @-}
-
-map' _ N        = N
-map' f (C x xs) = f x `C` map' f xs
-
-
-
--------------------------------------------------------------------------
--- | Termination Expressions Metrics
--------------------------------------------------------------------------
-
-{-@ merge :: xs:_ -> ys:_ -> _ / [sz xs + sz ys] @-}
-
-merge (C x xs) (C y ys)
-  | x < y      = x `C` merge xs (y `C` ys)
-  | otherwise  = y `C` merge (x `C` xs) ys
-merge _   ys   = ys
-
-
-
-
-
-
-
-
-
--------------------------------------------------------------------------
--- | Infinite Streams
--------------------------------------------------------------------------
-
-{- data List [sz] a <p :: List a -> Prop>
-      = N | C { x  :: a
-              , xs :: List <p> a <<p>>
-              }
-  -}
-
-
-{-@ measure emp  :: (List a) -> Prop
-    emp (N)      = true
-    emp (C x xs) = false
-  @-}
-
-{- type Stream a = {xs: List <{\v -> not (emp v)}> a | not (emp xs)} @-}
-
-{- Lazy repeat @-}
-                 
-{- repeat :: a -> Stream a @-}
--- repeat   :: a -> List a
--- repeat x = x `C` repeat x
-
-
-{- take :: Nat -> Stream a -> List a @-}
--- take  :: Int -> List a -> List a
--- take 0 _        = N
--- take n (C x xs) = x `C` take (n-1) xs
--- take _ N        = liquidError "never happens"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
------------------------------------------------------
-
-
-{-@ invariant {v : List a | 0 <= sz v} @-}
-
-
-
-
-
-
-
-
diff --git a/docs/slides/NEU14/AlphaConvert.hs b/docs/slides/NEU14/AlphaConvert.hs
deleted file mode 100644
--- a/docs/slides/NEU14/AlphaConvert.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{-@ LIQUID "--fullcheck"      @-}
-{-@ LIQUID "--maxparams=3"    @-}
-
--- | An example from "A Relational Framework for Higher-Order Shape Analysis",
---   by Gowtham Kaki Suresh Jagannathan, ICFP 2014.
-
-module AlphaConvert (subst, alpha) where
-
-import Prelude hiding ((++), elem)
-import Data.Set (Set (..))
-import Language.Haskell.Liquid.Prelude   
-
-alpha  :: [Bndr] -> Expr -> Expr 
-subst  :: Expr -> Bndr -> Expr -> Expr
-maxs   :: [Int] -> Int 
-lemma1 :: Int -> [Int] -> Bool
-fresh  :: [Bndr] -> Bndr
-free   :: Expr -> [Bndr]
-
----------------------------------------------------------------------
--- | Datatype Definition --------------------------------------------
----------------------------------------------------------------------
-
-type Bndr 
-  = Int
-
-data Expr 
-  = Var Bndr  
-  | Abs Bndr Expr
-  | App Expr Expr
-
-{-@ measure fv       :: Expr -> (Set Bndr)
-    fv (Var x)       = (Set_sng x)
-    fv (Abs x e)     = (Set_dif (fv e) (Set_sng x))
-    fv (App e a)     = (Set_cup (fv e) (fv a)) 
-  @-}
-
-{-@ measure isAbs    :: Expr -> Prop
-    isAbs (Var v)    = false
-    isAbs (Abs v e)  = true
-    isAbs (App e a)  = false             
-  @-}
-
-{-@ predicate AddV E E2 X E1   = fv E = Set_cup (Set_dif (fv E2) (Set_sng X)) (fv E1) @-}
-{-@ predicate EqV E1 E2        = fv E1 = fv E2                                        @-}
-{-@ predicate Occ X E          = Set_mem X (fv E)                                     @-}
-{-@ predicate Subst E E1 X E2  = if (Occ X E2) then (AddV E E2 X E1) else (EqV E E2)  @-}
-
-----------------------------------------------------------------------------
--- | Part 5: Capture Avoiding Substitution ---------------------------------
-----------------------------------------------------------------------------
-{-@ subst :: e1:Expr -> x:Bndr -> e2:Expr -> {e:Expr | Subst e e1 x e2} @-} 
-----------------------------------------------------------------------------
-
-subst e1 x e2@(Var y)
-  | x == y                = e1
-  | otherwise             = e2
-
-subst e1 x (App ea eb)    = App ea' eb'
-  where
-    ea'                   = subst e1 x ea
-    eb'                   = subst e1 x eb
-
-subst e1 x e2@(Abs y e)  
-  | x == y                = e2
-  | y `elem` xs           = subst e1 x (alpha xs e2) 
-  | otherwise             = Abs y      (subst e1 x e)
-     where
-      xs                  = free e1 
-
-----------------------------------------------------------------------------
--- | Part 4: Alpha Conversion ----------------------------------------------
-----------------------------------------------------------------------------
-{-@ alpha :: ys:[Bndr] -> e:{Expr | isAbs e} -> {v:Expr | EqV v e} @-}
-----------------------------------------------------------------------------
-alpha ys (Abs x e) = Abs x' (subst (Var x') x e)
-  where 
-    xs             = free e
-    x'             = fresh (x : ys ++ xs)
-
-alpha _  _         = liquidError "never"
-
-
-----------------------------------------------------------------------------
--- | Part 3: Fresh Variables -----------------------------------------------
-----------------------------------------------------------------------------
-{-@ fresh :: xs:[Bndr] -> {v:Bndr | NotElem v xs} @-}
-----------------------------------------------------------------------------
-fresh bs = liquidAssert (lemma1 n bs) n
-  where 
-    n    = 1 + maxs bs
-
-{-@ maxs :: xs:_ -> {v:_ | v = maxs xs} @-}
-maxs ([])   = 0
-maxs (x:xs) = if (x > maxs xs) then x else (maxs xs) 
- 
- 
-{-@ measure maxs :: [Int] -> Int 
-    maxs ([])   = 0
-    maxs (x:xs) = if (x > maxs xs) then x else (maxs xs) 
-  @-}
-
-{-@ lemma1 :: x:Int -> xs:{[Int] | x > maxs xs} -> {v:Bool | Prop v && NotElem x xs} @-}
-lemma1 _ []     = True 
-lemma1 x (_:ys) = lemma1 x ys 
-
-
-----------------------------------------------------------------------------
--- | Part 2: Free Variables ------------------------------------------------
-----------------------------------------------------------------------------
-
-----------------------------------------------------------------------------
-{-@ free         :: e:Expr -> {v:[Bndr] | elts v = fv e} @-}
-----------------------------------------------------------------------------
-free (Var x)     = [x]
-free (App e e')  = free e ++ free e'
-free (Abs x e)   = free e \\ x
-
-
-----------------------------------------------------------------------------
--- | Part I: Sets with Lists -----------------------------------------------
-----------------------------------------------------------------------------
-
-{-@ predicate IsCup X Y Z  = elts X = Set_cup (elts Y) (elts Z)    @-}
-{-@ predicate IsDel X Y Z  = elts X = Set_dif (elts Y) (Set_sng Z) @-}
-{-@ predicate Elem  X Ys   = Set_mem X (elts Ys)                   @-}
-{-@ predicate NotElem X Ys = not (Elem X Ys)                       @-}
-
-{-@ (++)      :: xs:[a] -> ys:[a] -> {v:[a] | IsCup v xs ys}  @-}
-[]     ++ ys  = ys
-(x:xs) ++ ys  = x : (xs ++ ys)
-
-{-@ (\\)      :: (Eq a) => xs:[a] -> y:a -> {v:[a] | IsDel v xs y} @-}
-xs   \\ y     = [x | x <- xs, x /= y]
-
-{-@ elem      :: (Eq a) => x:a -> ys:[a] -> {v:Bool | Prop v <=> Elem x ys} @-}
-elem x []     = False
-elem x (y:ys) = x == y || elem x ys
- 
-{-@ measure elts :: [a] -> (Set a) 
-    elts ([])    = {v | Set_emp v}
-    elts (x:xs)  = {v | v = Set_cup (Set_sng x) (elts xs) }
-  @-}
diff --git a/docs/slides/NEU14/Eval.hs b/docs/slides/NEU14/Eval.hs
deleted file mode 100644
--- a/docs/slides/NEU14/Eval.hs
+++ /dev/null
@@ -1,51 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-
-module Eval (eval) where
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-import Prelude hiding (lookup)
-import Data.Set (Set (..))
-
-type Val  = Int
-
-type Bndr = String 
-
-data Expr = Const Int
-          | Var   Bndr
-          | Plus  Expr Expr
-          | Let   Bndr Expr Expr
-
-type Env  = [(Bndr, Val)]
-
-------------------------------------------------------------------
-{-@ lookup :: x:Bndr -> {v:Env | Set_mem x (vars v)} -> Val @-}
-lookup :: Bndr -> Env -> Val
----------------------  -------------------------------------------
-lookup x ((y,v):env)   
-  | x == y             = v
-  | otherwise          = lookup x env
-lookup x []            = liquidError "Unbound Variable"
-
-------------------------------------------------------------------
-{-@ eval :: g:Env -> ClosedExpr g -> Val @-}
-------------------------------------------------------------------
-eval env (Const i)     = i
-eval env (Var x)       = lookup x env 
-eval env (Plus e1 e2)  = eval env e1 + eval env e2 
-eval env (Let x e1 e2) = eval env' e2 
-  where 
-    env'               = (x, eval env e1) : env
-
-{-@ type ClosedExpr G  = {v:Expr | Set_sub (free v) (vars G)} @-}
-
-{-@ measure vars :: Env -> (Set Bndr)
-    vars ([])    = (Set_empty 0)
-    vars (b:env) = (Set_cup (Set_sng (fst b)) (vars env))
-  @-}
-
-{-@ measure free       :: Expr -> (Set Bndr) 
-    free (Const i)     = (Set_empty 0)
-    free (Var x)       = (Set_sng x) 
-    free (Plus e1 e2)  = (Set_cup (free e1) (free e2))
-    free (Let x e1 e2) = (Set_cup (free e1) (Set_dif (free e2) (Set_sng x)))
-  @-}
diff --git a/docs/slides/NEU14/RBTree.hs b/docs/slides/NEU14/RBTree.hs
deleted file mode 100644
--- a/docs/slides/NEU14/RBTree.hs
+++ /dev/null
@@ -1,209 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diff"           @-}
-
-module Foo where
-
-import Language.Haskell.Liquid.Prelude
-
-data RBTree a = Leaf 
-              | Node Color a !(RBTree a) !(RBTree a)
-              deriving (Show)
-
-data Color = B -- ^ Black
-           | R -- ^ Red
-           deriving (Eq,Show)
-
----------------------------------------------------------------------------
--- | Add an element -------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ add :: (Ord a) => a -> RBT a -> RBT a @-}
-add x s = makeBlack (ins x s)
-
-{-@ ins :: (Ord a) => a -> t:RBT a -> {v: ARBTN a {bh t} | IsB t => isRB v} @-}
-ins kx Leaf             = Node R kx Leaf Leaf
-ins kx s@(Node B x l r) = case compare kx x of
-                            LT -> let t = lbal x (ins kx l) r in t 
-                            GT -> let t = rbal x l (ins kx r) in t 
-                            EQ -> s
-ins kx s@(Node R x l r) = case compare kx x of
-                            LT -> Node R x (ins kx l) r
-                            GT -> Node R x l (ins kx r)
-                            EQ -> s
-
----------------------------------------------------------------------------
--- | Delete an element ----------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ remove :: (Ord a) => a -> RBT a -> RBT a @-}
-remove x t = makeBlack (del x t)
-
-{-@ predicate HDel T V = bh V = if (isB T) then (bh T) - 1 else bh T @-}
-
-{-@ del              :: (Ord a) => a -> t:RBT a -> {v:ARBT a | HDel t v && (isB t || isRB v)} @-}
-del x Leaf           = Leaf
-del x (Node _ y a b) = case compare x y of
-   EQ -> append y a b 
-   LT -> case a of
-           Leaf         -> Node R y Leaf b
-           Node B _ _ _ -> lbalS y (del x a) b
-           _            -> let t = Node R y (del x a) b in t 
-   GT -> case b of
-           Leaf         -> Node R y a Leaf 
-           Node B _ _ _ -> rbalS y a (del x b)
-           _            -> Node R y a (del x b)
-
-{-@ append :: y:a -> l:RBT {v:a | v < y} -> r:RBTN {v:a | y < v} {bh l} -> ARBT2 a l r @-}
-append :: a -> RBTree a -> RBTree a -> RBTree a
-append _ Leaf r                               = r
-append _ l Leaf                               = l
-append piv (Node R lx ll lr) (Node R rx rl rr)  = case append piv lr rl of 
-                                                    Node R x lr' rl' -> Node R x (Node R lx ll lr') (Node R rx rl' rr)
-                                                    lrl              -> Node R lx ll (Node R rx lrl rr)
-append piv (Node B lx ll lr) (Node B rx rl rr)  = case append piv lr rl of 
-                                                    Node R x lr' rl' -> Node R x (Node B lx ll lr') (Node B rx rl' rr)
-                                                    lrl              -> lbalS lx ll (Node B rx lrl rr)
-append piv l@(Node B _ _ _) (Node R rx rl rr)   = Node R rx (append piv l rl) rr
-append piv l@(Node R lx ll lr) r@(Node B _ _ _) = Node R lx ll (append piv lr r)
-
----------------------------------------------------------------------------
--- | Delete Minimum Element -----------------------------------------------
----------------------------------------------------------------------------
-
-{-@ deleteMin            :: RBT a -> RBT a @-}
-deleteMin (Leaf)         = Leaf
-deleteMin (Node _ x l r) = makeBlack t
-  where 
-    (_, t)               = deleteMin' x l r
-
-
-{-@ deleteMin'                   :: k:a -> l:RBT {v:a | v < k} -> r:RBTN {v:a | k < v} {bh l} -> (a, ARBT2 a l r) @-}
-deleteMin' k Leaf r              = (k, r)
-deleteMin' x (Node R lx ll lr) r = (k, Node R x l' r)   where (k, l') = deleteMin' lx ll lr 
-deleteMin' x (Node B lx ll lr) r = (k, lbalS x l' r )   where (k, l') = deleteMin' lx ll lr 
-
----------------------------------------------------------------------------
--- | Rotations ------------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ lbalS                             :: k:a -> l:ARBT {v:a | v < k} -> r:RBTN {v:a | k < v} {1 + bh l} -> {v: ARBTN a {1 + bh l} | IsB r => isRB v} @-}
-lbalS k (Node R x a b) r              = Node R k (Node B x a b) r
-lbalS k l (Node B y a b)              = let t = rbal k l (Node R y a b) in t 
-lbalS k l (Node R z (Node B y a b) c) = Node R y (Node B k l a) (rbal z b (makeRed c))
-lbalS k l r                           = liquidError "nein"
-
-{-@ rbalS                             :: k:a -> l:RBT {v:a | v < k} -> r:ARBTN {v:a | k < v} {bh l - 1} -> {v: ARBTN a {bh l} | IsB l => isRB v} @-}
-rbalS k l (Node R y b c)              = Node R k l (Node B y b c)
-rbalS k (Node B x a b) r              = let t = lbal k (Node R x a b) r  in t 
-rbalS k (Node R x a (Node B y b c)) r = Node R y (lbal x (makeRed a) b) (Node B k c r)
-rbalS k l r                           = liquidError "nein"
-
-{-@ lbal                              :: k:a -> l:ARBT {v:a | v < k} -> RBTN {v:a | k < v} {bh l} -> RBTN a {1 + bh l} @-}
-lbal k (Node R y (Node R x a b) c) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k (Node R x a (Node R y b c)) r  = Node R y (Node B x a b) (Node B k c r)
-lbal k l r                            = Node B k l r
-
-{-@ rbal                              :: k:a -> l:RBT {v:a | v < k} -> ARBTN {v:a | k < v} {bh l} -> RBTN a {1 + bh l} @-}
-rbal x a (Node R y b (Node R z c d))  = Node R y (Node B x a b) (Node B z c d)
-rbal x a (Node R z (Node R y b c) d)  = Node R y (Node B x a b) (Node B z c d)
-rbal x l r                            = Node B x l r
-
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-
-{-@ type BlackRBT a = {v: RBT a | IsB v && bh v > 0} @-}
-
-{-@ makeRed :: l:BlackRBT a -> ARBTN a {bh l - 1} @-}
-makeRed (Node B x l r) = Node R x l r
-makeRed _              = liquidError "nein"
-
-{-@ makeBlack :: ARBT a -> RBT a @-}
-makeBlack Leaf           = Leaf
-makeBlack (Node _ x l r) = Node B x l r
-
----------------------------------------------------------------------------
--- | Specifications -------------------------------------------------------
----------------------------------------------------------------------------
-
--- | Red-Black Trees
-
-{-@ type RBT a    = {v: ORBT a | isRB v && isBH v } @-}
-{-@ type RBTN a N = {v: RBT a  | bh v = N }         @-}
-
--- | Invariant 1: Binary Search Ordering 
-
-{-@ data RBTree a <l :: a -> a -> Prop, r :: a -> a -> Prop>
-            = Leaf
-            | Node (c    :: Color)
-                   (key  :: a)
-                   (left :: RBTree <l, r> (a <l key>))
-                   (left :: RBTree <l, r> (a <r key>))
-  @-}
-
-{-@ type ORBT a = RBTree <{\root v -> v < root }, {\root v -> v > root}> a @-}
-
--- | Invariant 2: Black Height Same on All Paths 
-
-{-@ measure isBH        :: RBTree a -> Prop
-    isBH (Leaf)         = true
-    isBH (Node c x l r) = (isBH l && isBH r && bh l = bh r)
-  @-}
-
-{-@ measure bh        :: RBTree a -> Int
-    bh (Leaf)         = 0
-    bh (Node c x l r) = bh l + if (c == R) then 0 else 1 
-  @-}
-
--- | Invariant 3: Red Nodes have Black Children
-
-{-@ measure isRB        :: RBTree a -> Prop
-    isRB (Leaf)         = true
-    isRB (Node c x l r) = isRB l && isRB r && (c == R => (IsB l && IsB r))
-  @-}
-
-{-@ measure col         :: RBTree a -> Color
-    col (Node c x l r)  = c
-    col (Leaf)          = B
-  @-}
-
-{-@ measure isB        :: RBTree a -> Prop
-    isB (Leaf)         = false
-    isB (Node c x l r) = c == B 
-  @-}
-
-{-@ predicate IsB T = not (col T == R) @-}
-
---------------------------------------------------------------------------
--- | Auxiliary Specifications --------------------------------------------
---------------------------------------------------------------------------
-
--- | Almost Red-Black Trees
-
-{-@ measure isARB        :: (RBTree a) -> Prop
-    isARB (Leaf)         = true 
-    isARB (Node c x l r) = (isRB l && isRB r)
-  @-}
-
-
--- | Conditionally Red-Black Tree
-
-{-@ type ARBT2 a L R = {v:ARBTN a {bh L} | (IsB L && IsB R) => isRB v} @-}
-{-@ type ARBT a      = {v: ORBT a | isARB v && isBH v} @-}
-{-@ type ARBTN a N   = {v: ARBT a | bh v = N }         @-}
-
-
--------------------------------------------------------------------------------
--- Auxiliary Invariants -------------------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ predicate Invs V = Inv1 V && Inv2 V && Inv3 V   @-}
-{-@ predicate Inv1 V = (isARB V && IsB V) => isRB V @-}
-{-@ predicate Inv2 V = isRB v => isARB v            @-}
-{-@ predicate Inv3 V = 0 <= bh v                    @-}
-{-@ invariant {v: Color | v = R || v = B}           @-}
-{-@ invariant {v: RBTree a | Invs v}                @-}
-
-{-@ inv :: RBTree a -> {v:RBTree a | Invs v}        @-}
-inv Leaf           = Leaf
-inv (Node c x l r) = Node c x (inv l) (inv r)
diff --git a/docs/slides/flops14/Makefile b/docs/slides/flops14/Makefile
deleted file mode 100644
--- a/docs/slides/flops14/Makefile
+++ /dev/null
@@ -1,73 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-RJSERVER=rjhala@goto.ucsd.edu:~/public_html/liquid/haskell/plpv/lhs/
-####################################################################
-
-# REVEAL=$(PANDOC) -t revealjs -V revealjs-url=../_support/reveal -V theme=serif
-
-REVEAL=pandoc \
-	   --from=markdown\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal
-
-PANDOC=pandoc --columns=80  -s --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid --short-names 
-
-mdObjects   := $(patsubst %.lhs,%.lhs.markdown,$(wildcard lhs/*.lhs))
-htmlObjects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-pdfObjects  := $(patsubst %.lhs,%.lhs.slides.pdf,$(wildcard lhs/*.lhs))
-
-####################################################################
-
-
-all: slides 
-
-one: $(mdObjects)
-	$(REVEAL) lhs/.liquid/00_Index.lhs.markdown > lhs/index.html
-
-tut: $(mdObjects)
-	$(REVEAL) lhs/.liquid/*.markdown > lhs/tutorial.html 
-
-
-slides: $(htmlObjects)
-
-
-pdfslides: $(pdfObjects)
-
-plpv: slides
-	scp lhs/*.html $(RJSERVER)
-
-lhs/.liquid/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-lhs/%.lhs.slides.html: lhs/.liquid/%.lhs.markdown
-	$(REVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/.liquid/%.lhs.markdown
-	$(BEAMER) $? -o $@
-
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/flops14/TODO.md b/docs/slides/flops14/TODO.md
deleted file mode 100644
--- a/docs/slides/flops14/TODO.md
+++ /dev/null
@@ -1,21 +0,0 @@
-Timing
-------
-
-[4]  Motivation 
-                        <------------------ 4 
-[8]  Refinements
-                        <------------------ 12 
-[8]  Measures
-                        <------------------ 20 
-[8]  Higher-Order Functions
-                        <------------------ 28 
-[5] Abstract Refinements: 
-[8]   Code, 
-[8]   Data,...,...
-                        <------------------ 49
-[4] Lazy Evaluation
-[5] Termination
-                        <------------------ 58 
-[3] Evaluation
-                        <------------------ 61 
-
diff --git a/docs/slides/flops14/_support/liquid.css b/docs/slides/flops14/_support/liquid.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/flops14/_support/reveal/LICENSE b/docs/slides/flops14/_support/reveal/LICENSE
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/flops14/_support/reveal/README.md b/docs/slides/flops14/_support/reveal/README.md
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/README.md
+++ /dev/null
@@ -1,226 +0,0 @@
-# reveal.js
-
-A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/).
-
-reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a browser with support for CSS 3D transforms but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere.
-
-
-#### More reading in the Wiki:
-- [Changelog](https://github.com/hakimel/reveal.js/wiki/Changelog): Up-to-date version history.
-- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own!
-- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Changelog): Explanation of browser support and fallbacks.
-
-
-The framework is and will remain free. Donations are available as an optional way of supporting the project. Proceeds go towards futher development, hosting and domain costs for the GUI editor which will be out shortly.
-
-[![Click here to lend your support to: reveal.js and make a donation at www.pledgie.com !](http://www.pledgie.com/campaigns/18182.png?skin_name=chrome)](http://www.pledgie.com/campaigns/18182)
-
-
-## Instructions
-
-### Markup
-
-Markup heirarchy needs to be ``<div class="reveal"> <div class="slides"> <section>`` where the ``<section>`` represents one slide and can be repeated indefinitely. If you place multiple ``<section>``'s inside of another ``<section>`` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example:
-
-```html
-<div class="reveal">
-	<div class="slides"> 
-		<section>Single Horizontal Slide</section>
-		<section>
-			<section>Vertical Slide 1</section>
-			<section>Vertical Slide 2</section>
-		</section>
-	</div>
-</div>
-```
-
-### Markdown
-
-It's possible to write your slides using Markdown. To enable Markdown simply add the ```data-markdown``` attribute to your ```<section>``` elements and reveal.js will automatically load the JavaScript parser. 
-
-This is based on [data-markdown](https://gist.github.com/1343518) from [Paul Irish](https://github.com/paulirish) which in turn uses [showdown](https://github.com/coreyti/showdown/). This is sensitive to indentation (avoid mixing tabs and spaces) and line breaks (avoid consecutive breaks). Updates to come.
-
-```html
-<section data-markdown>
-	## Page title
-	
-	A paragraph with some text and a [link](http://hakim.se).
-</section>
-```
-
-
-### Configuration
-
-At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below.
-
-```javascript
-Reveal.initialize({
-	// Display controls in the bottom right corner
-	controls: true,
-
-	// Display a presentation progress bar
-	progress: true,
-
-	// Push each slide change to the browser history
-	history: false,
-
-	// Enable keyboard shortcuts for navigation
-	keyboard: true,
-
-	// Loop the presentation
-	loop: false,
-
-	// Number of milliseconds between automatically proceeding to the 
-	// next slide, disabled when set to 0
-	autoSlide: 0,
-
-	// Enable slide navigation via mouse wheel
-	mouseWheel: true,
-
-	// Apply a 3D roll to links on hover
-	rollingLinks: true,
-
-	// Transition style
-	transition: 'default' // default/cube/page/concave/linear(2d)
-});
-```
-
-### Dependencies
-
-Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example:
-
-```javascript
-Reveal.initialize({
-	dependencies: [
-		// Syntax highlight for <code> elements
-		{ src: 'lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-		// Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/
-		{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }
-		// Interpret Markdown in <section> elements
-		{ src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		{ src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		// Speaker notes support
-		{ src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		{ src: '/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-	]
-});
-```
-
-You can add your own extensions using the same syntax. The following properties are available for each dependency object:
-- **src**: Path to the script to load
-- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false
-- **callback**: [optional] Function to execute when the script has loaded
-- **condition**: [optional] Function which must return true for the script to be loaded
-
-
-### API
-
-The Reveal class provides a minimal JavaScript API for controlling navigation and reading state:
-
-```javascript
-// Navigation
-Reveal.navigateTo( indexh, indexv );
-Reveal.navigateLeft();
-Reveal.navigateRight();
-Reveal.navigateUp();
-Reveal.navigateDown();
-Reveal.navigatePrev();
-Reveal.navigateNext();
-Reveal.toggleOverview();
-
-// Retrieves the previous and current slide elements
-Reveal.getPreviousSlide();
-Reveal.getCurrentSlide();
-
-Reveal.getIndices(); // { h: 0, v: 0 } }
-```
-
-### States
-
-If you set ``data-state="somestate"`` on a slide ``<section>``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide.
-
-Furthermore you can also listen to these changes in state via JavaScript:
-
-```javascript
-Reveal.addEventListener( 'somestate', function() {
-	// TODO: Sprinkle magic
-}, false );
-```
-
-### Slide change event
-
-An 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes.
-
-```javascript
-Reveal.addEventListener( 'slidechanged', function( event ) {
-	// event.previousSlide, event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-### Fragment events
-
-When a slide fragment is either shown or hidden reveal.js will dispatch an event.
-
-```javascript
-Reveal.addEventListener( 'fragmentshown', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-Reveal.addEventListener( 'fragmenthidden', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-```
-
-### Internal links
-
-It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```<section id="some-slide">```):
-
-```html
-<a href="#/2/2">Link</a>
-<a href="#/some-slide">Link</a>
-```
-
-## PDF Export
-
-Presentations can be exported to PDF via a special print stylesheet. This feature requires that you use [Google Chrome](http://google.com/chrome). 
-Here's an example of an exported presentation that's been uploaded to SlideShare: http://www.slideshare.net/hakimel/revealjs-13872948.
-
-1. Open the desired presentation with *print-pdf* anywhere in the query, for example: [lab.hakim.se/reveal-js?print-pdf](http://lab.hakim.se/reveal-js?print-pdf)
-2. Open the in-browser print dialog (CMD+P).
-3. Change the **Destination** setting to **Save as PDF**.
-4. Change the **Layout** to **Landscape**.
-5. Change the **Margins** to **None**.
-6. Click **Save**.
-
-![Chrome Print Settings](https://s3.amazonaws.com/hakim-static/reveal-js/pdf-print-settings.png)
-
-## Speaker Notes
-
-If you're interested in using speaker notes, reveal.js comes with a Node server that allows you to deliver your presentation in one browser while viewing speaker notes in another. 
-
-To include speaker notes in your presentation, simply add an `<aside class="notes">` element to any slide. These notes will be hidden in the main presentation view.
-
-You'll also need to [install Node.js](http://nodejs.org/); then, install the server dependencies by running `npm install`.
-
-Once Node.js and the dependencies are installed, run the following command from the root directory:
-
-		node plugin/speakernotes
-
-By default, the slides will be served at [localhost:1947](http://localhost:1947).
-
-You can change the appearance of the speaker notes by editing the file at `plugin/speakernotes/notes.html`.	
-
-### Known Issues
-
-- The notes page is supposed to show the current slide and the next slide, but when it first starts, it always shows the first slide in both positions. 
-
-## Folder Structure
-- **css/** Core styles without which the project does not function
-- **js/** Like above but for JavaScript
-- **plugin/** Components that have been developed as extensions to reveal.js
-- **lib/** All other third party assets (JavaScript, CSS, fonts)
-
-## License
-
-MIT licensed
-
-Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
diff --git a/docs/slides/flops14/_support/reveal/css/liquidhaskell.css b/docs/slides/flops14/_support/reveal/css/liquidhaskell.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/liquidhaskell.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/flops14/_support/reveal/css/main.css b/docs/slides/flops14/_support/reveal/css/main.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/main.css
+++ /dev/null
@@ -1,925 +0,0 @@
-@charset "UTF-8";
-
-/**
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-.reveal a {
-  color: #8b7c69;
-  text-decoration: none;
-}
-
-/*********************************************
- * RESET STYLES
- *********************************************/
-
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, embed, 
-figure, figcaption, footer, header, hgroup, 
-menu, nav, output, ruby, section, summary,
-time, mark, audio, video {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	font-size: 100%;
-	font: inherit;
-	vertical-align: baseline;
-}
-
-article, aside, details, figcaption, figure, 
-footer, header, hgroup, menu, nav, section {
-	display: block;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-html, 
-body {
-	padding: 0;
-	margin: 0;
-	width: 100%;
-	height: 100%;
-	min-height: 600px;
-	overflow: hidden;
-}
-
-body {
-	position: relative;
-	line-height: 1;
-}
-
-@media screen and (max-width: 1024px) {
-	body {
-		font-size: 30px;
-	}
-}
-
-::selection { 
-	background:#FF5E99; 
-	color:#fff; 
-	text-shadow: none; 
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1 { font-size: 0.77em; }
-.reveal h2 { font-size: 2.11em;	}
-.reveal h3 { font-size: 1.55em;	}
-.reveal h4 { font-size: 1em;	}
-
-
-/*********************************************
- * VIEW FRAGMENTS
- *********************************************/
-
-.reveal .slides section .fragment {
-	opacity: 0;
-
-	-webkit-transition: all .2s ease;
-	   -moz-transition: all .2s ease;
-	    -ms-transition: all .2s ease;
-	     -o-transition: all .2s ease;
-	        transition: all .2s ease;
-}
-	.reveal .slides section .fragment.visible {
-		opacity: 1;
-	}
-
-
-/*********************************************
- * DEFAULT ELEMENT STYLES
- *********************************************/
-
-.reveal .slides section {
-	line-height: 1.2em;
-	font-weight: normal;
-}
-
-.reveal img {
-	/* preserve aspect ratio and scale image so it's bound within the section */
-	max-width: 100%;
-	max-height: 100%;
-} 
-
-.reveal strong, 
-.reveal b {
-	font-weight: bold;
-}
-
-.reveal em, 
-.reveal i {
-	font-style: italic;
-}
-
-.reveal ol, 
-.reveal ul {
-	display: inline-block;
-
-	text-align: left;
-	margin: 0 0 0 .7em;
-}
-
-.reveal ol {
-	list-style-type: decimal;
-}
-
-.reveal ul {
-	list-style-type: disc;
-	padding-bottom: 0.8em;
-}
-
-.reveal ul ul {
-	list-style-type: circle;
-}
-
-.reveal ul ul ul {
-	list-style-type: square;
-}
-
-.reveal ul ul,
-.reveal ul ol,
-.reveal ol ol,
-.reveal ol ul {
-	display: block;
-	margin-left: 0;
-}
-
-.reveal p {
-	margin-bottom: 10px;
-	line-height: 1.2em;
-}
-
-.reveal q,
-.reveal blockquote {
-	quotes: none;
-}
-
-
-.reveal blockquote {
-	display: block;
-	position: relative;
-	width: 70%;
-	margin: 5px auto;
-	padding: 5px;
-	
-	font-size: 80%;
-	font-style: italic;
-	background: rgba(255, 255, 255, 0.05);
-	box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
-}
-
-
-
-/*--DW-- disable funky quote marks for blockquotes*/
-/*
-.reveal blockquote:before {
-	content: '“';
-}
-.reveal blockquote:after {
-	content: '”';
-}
-*/
-
-.reveal q {	
-	font-style: italic;
-}
-	.reveal q:before {
-		content: '“';
-	}
-	.reveal q:after {
-		content: '”';
-	}
-
-.reveal pre {
-	display: block;
-	position: relative;
-	width: 90%;
-	margin: 10px auto;
-
-	text-align: left;
-	font-size: 0.85em;
-	font-family: monospace;
-	line-height: 1.2em;
-
-	word-wrap: break-word;
-
-	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
-}
-
-.reveal code {
-	font-family: monospace;
-	overflow-x: auto;
-}
-
-.reveal table th, 
-.reveal table td {
-	text-align: left;
-	padding-right: .3em;
-}
-
-.reveal table th {
-	text-shadow: rgb(255,255,255) 1px 1px 2px;
-}
-
-.reveal sup { 
-	vertical-align: super;
-}
-.reveal sub { 
-	vertical-align: sub;
-}
-
-.reveal small {
-	display: inline-block;
-	font-size: 0.6em;
-	line-height: 1.2em;
-	vertical-align: top;
-}
-
-.reveal small * {
-	vertical-align: top;
-}
-
-
-/*********************************************
- * CONTROLS
- *********************************************/
-
-.reveal .controls {
-	display: none;
-	position: fixed;
-	width: 100px;
-	height: 100px;
-	z-index: 30;
-
-	right: 0;
-	bottom: 0;
-}
-	
-	.reveal .controls a {
-		font-family: Arial;
-		font-size: 0.83em;
-		position: absolute;
-		opacity: 0.1;
-	}
-		.reveal .controls a.enabled {
-			opacity: 0.6;
-		}
-		.reveal .controls a.enabled:active {
-			margin-top: 1px;
-		}
-
-	.reveal .controls .left {
-		top: 30px;
-	}
-
-	.reveal .controls .right {
-		left: 60px;
-		top: 30px;
-	}
-
-	.reveal .controls .up {
-		left: 30px;
-	}
-
-	.reveal .controls .down {
-		left: 30px;
-		top: 60px;
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	position: fixed;
-	display: none;
-	height: 3px;
-	width: 100%;
-	bottom: 0;
-	left: 0;
-}
-	
-	.reveal .progress span {
-		display: block;
-		height: 100%;
-		width: 0px;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * ROLLING LINKS
- *********************************************/
-
-.reveal .roll {
-	display: inline-block;
-	line-height: 1.2;
-	overflow: hidden;
-
-	vertical-align: top;
-
-	-webkit-perspective: 400px;
-	   -moz-perspective: 400px;
-	    -ms-perspective: 400px;
-	        perspective: 400px;
-
-	-webkit-perspective-origin: 50% 50%;
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-	.reveal .roll:hover {
-		background: none;
-		text-shadow: none;
-	}
-.reveal .roll span {
-	display: block;
-	position: relative;
-	padding: 0 2px;
-
-	pointer-events: none;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal .roll:hover span {
-	    background: rgba(0,0,0,0.5);
-
-	    -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	       -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	        -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	            transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	}
-.reveal .roll span:after {
-	content: attr(data-title);
-
-	display: block;
-	position: absolute;
-	left: 0;
-	top: 0;
-	padding: 0 2px;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	   -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	    -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	        transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-}
-
-
-/*********************************************
- * SLIDES
- *********************************************/
-
-.reveal .slides {
-	position: absolute;
-	max-width: 1024px;
-	width: 100%;
-	height: 80%;
-	left: 50%;
-	top: 50%;
-	margin-top: -320px;
-	padding: 20px 0px;
-	overflow: visible;
-	
-	text-align: center;
-
-	-webkit-transition: -webkit-perspective .4s ease;
-	   -moz-transition: -moz-perspective .4s ease;
-	    -ms-transition: -ms-perspective .4s ease;
-	     -o-transition: -o-perspective .4s ease;
-	        transition: perspective .4s ease;
-	
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-
-	-webkit-perspective-origin: 0% 25%;
-	   -moz-perspective-origin: 0% 25%;
-	    -ms-perspective-origin: 0% 25%;
-	        perspective-origin: 0% 25%;
-}
-
-.reveal .slides>section,
-.reveal .slides>section>section {
-	display: none;
-	position: absolute;
-	width: 100%;
-	min-height: 600px;
-
-	z-index: 10;
-	
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-	
-	-webkit-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	   -moz-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	    -ms-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	     -o-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	        transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-}
-
-.reveal .slides>section.present {
-	display: block;
-	z-index: 11;
-	opacity: 1;
-}
-
-.reveal .slides>section {
-	margin-left: -50%;
-}
-
-
-/*********************************************
- * DEFAULT TRANSITION
- *********************************************/
-
-.reveal .slides>section.past {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section.future {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section.past {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	   -moz-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	    -ms-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	        transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-}
-.reveal .slides>section>section.future {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	   -moz-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	    -ms-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	        transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-}
-
-
-/*********************************************
- * CONCAVE TRANSITION
- *********************************************/
-
-.reveal.concave  .slides>section.past {
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal.concave  .slides>section.future {
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal.concave  .slides>section>section.past {
-	-webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	   -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	    -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	        transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-}
-.reveal.concave  .slides>section>section.future {
-	-webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	   -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	    -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	        transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-}
-
-
-/*********************************************
- * LINEAR TRANSITION
- *********************************************/
-
-.reveal.linear .slides>section.past {
-	-webkit-transform: translate(-150%, 0);
-	   -moz-transform: translate(-150%, 0);
-	    -ms-transform: translate(-150%, 0);
-	     -o-transform: translate(-150%, 0);
-	        transform: translate(-150%, 0);
-}
-.reveal.linear .slides>section.future {
-	-webkit-transform: translate(150%, 0);
-	   -moz-transform: translate(150%, 0);
-	    -ms-transform: translate(150%, 0);
-	     -o-transform: translate(150%, 0);
-	        transform: translate(150%, 0);
-}
-
-.reveal.linear .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal.linear .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-/*********************************************
- * BOX TRANSITION
- *********************************************/
-
-.reveal.cube .slides {
-	margin-top: -350px;
-
-	-webkit-perspective-origin: 50% 25%;
-	   -moz-perspective-origin: 50% 25%;
-	    -ms-perspective-origin: 50% 25%;
-	        perspective-origin: 50% 25%;
-
-	-webkit-perspective: 1300px;
-	   -moz-perspective: 1300px;
-	    -ms-perspective: 1300px;
-	        perspective: 1300px;
-}
-
-.reveal.cube .slides section {
-	padding: 30px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-	
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.cube .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: #232628;
-		border-radius: 4px;
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.cube .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-		   -moz-transform: translateZ(-90px) rotateX( 65deg );
-		    -ms-transform: translateZ(-90px) rotateX( 65deg );
-		     -o-transform: translateZ(-90px) rotateX( 65deg );
-		        transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.cube .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.cube .slides>section.past {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-}
-
-.reveal.cube .slides>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg);
-}
-
-.reveal.cube .slides>section>section.past {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg);
-}
-
-.reveal.cube .slides>section>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg);
-}
-
-
-/*********************************************
- * PAGE TRANSITION
- *********************************************/
-
-.reveal.page .slides {
-	margin-top: -350px;
-
-	-webkit-perspective-origin: 50% 50%;
- 	   -moz-perspective-origin: 50% 50%;
- 	    -ms-perspective-origin: 50% 50%;
- 	        perspective-origin: 50% 50%;
-
-	-webkit-perspective: 3000px;
-	   -moz-perspective: 3000px;
-	    -ms-perspective: 3000px;
-	        perspective: 3000px;
-}
-
-.reveal.page .slides section {
-	padding: 30px;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.page .slides section.past {
-		z-index: 12;
-	}
-	.reveal.page .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.page .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.page .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.page .slides>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	   -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	    -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	        transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-}
-
-.reveal.page .slides>section.future {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-.reveal.page .slides>section>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	   -moz-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	    -ms-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	        transform: translate3d(0, -40%, 0) rotateX(80deg);
-}
-
-.reveal.page .slides>section>section.future {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-
-/*********************************************
- * OVERVIEW
- *********************************************/
-
-.reveal.overview .slides {
-	-webkit-perspective: 700px;
-	   -moz-perspective: 700px;
-	    -ms-perspective: 700px;
-	        perspective: 700px;
-}
-
-.reveal.overview .slides section {
-	padding: 20px 0;
-	max-height: 600px;
-	overflow: hidden;	
-	opacity: 1;
-	cursor: pointer;
-	background: rgba(0,0,0,0.1);
-}
-.reveal.overview .slides section .fragment {
-	opacity: 1;
-}
-.reveal.overview .slides section:after,
-.reveal.overview .slides section:before {
-	display: none !important;
-}
-.reveal.overview .slides section>section {
-	opacity: 1;
-	cursor: pointer;
-}
-	.reveal.overview .slides section:hover {
-		background: rgba(0,0,0,0.3);
-	}
-
-	.reveal.overview .slides section.present {
-		background: rgba(0,0,0,0.3);
-	}
-.reveal.overview .slides>section.stack {
-	background: none;
-	padding: 0;
-	overflow: visible;
-}
-
-
-/*********************************************
- * FALLBACK
- *********************************************/
-
-.no-transforms {
-	overflow-y: auto;
-}
-
-.no-transforms .slides section {
-	display: block!important;
-	opacity: 1!important;
-	position: relative!important;
-	height: auto;
-	min-height: auto;
-	margin-bottom: 100px;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-
-
-/*********************************************
- * DEFAULT STATES
- *********************************************/
-
-.state-background {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	background: rgba( 0, 0, 0, 0 );
-
-	-webkit-transition: background 800ms ease;
-	   -moz-transition: background 800ms ease;
-	    -ms-transition: background 800ms ease;
-	     -o-transition: background 800ms ease;
-	        transition: background 800ms ease;
-}
-.alert .state-background {
-	background: rgba( 200, 50, 30, 0.6 );
-}
-.soothe .state-background {
-	background: rgba( 50, 200, 90, 0.4 );
-}
-.blackout .state-background {
-	background: rgba( 0, 0, 0, 0.6 );
-}
-
-
-/*********************************************
- * SPEAKER NOTES
- *********************************************/
-
-.reveal aside.notes {
-	display: none;
-}
-
diff --git a/docs/slides/flops14/_support/reveal/css/print/paper.css b/docs/slides/flops14/_support/reveal/css/print/paper.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/print/paper.css
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and 
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending 
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-body {
-	background: #fff;
-	font-size: 13pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-html {
-	background: #fff;
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print. 
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow, 
-.controls a, 
-.reveal .progress, 
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display:none;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 13pt;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	color: #000; 
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Diffrentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	color: #000!important;
-	height: auto;
-	line-height: normal;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	text-shadow: 0 0 0 #000 !important;
-	text-align: left;
-	letter-spacing: normal;
-}
-/* Need to reduce the size of the fonts for printing */
-h1 { font-size: 26pt !important;  }
-h2 { font-size: 22pt !important; }
-h3 { font-size: 20pt !important; }
-h4 { font-size: 20pt !important; font-variant: small-caps; }
-h5 { font-size: 19pt !important; }
-h6 { font-size: 18pt !important; font-style: italic; }
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link, 
-a:visited {
-	color: #000 !important;
-	font-weight: bold;
-	text-decoration: underline;
-}
-.reveal a:link:after, 
-.reveal a:visited:after {
-	content: " (" attr(href) ") ";
-	color: #222 !important;
-	font-size: 90%;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-	text-align: left !important;
-}
-.reveal .slides {
-	position: static;
-	width: auto;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section, .reveal .slides>section>section, 
-.reveal .slides>section.past, .reveal .slides>section.future,
-.reveal.linear .slides>section, .reveal.linear .slides>section>section,
-.reveal.linear .slides>section.past, .reveal.linear .slides>section.future {
-	
-	visibility: visible;
-	position: static;
-	width: 90%;
-	height: auto;
-	display: block;
-	overflow: visible;
-
-	left: 0%;
-	top: 0%;
-	margin-left: 0px;
-	margin-top: 0px;
-	padding: 20px 0px;
-
-	opacity: 1;
-
-	-webkit-transform-style: flat;
-	   -moz-transform-style: flat;
-	    -ms-transform-style: flat;
-	        transform-style: flat;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-.reveal section {
-	page-break-after: always !important; 
-	display: block !important;
-}
-.reveal section.stack {
-	page-break-after: avoid !important; 
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-}
-.reveal section img {
-	display: block;
-	margin: 15px 0px;
-	background: rgba(255,255,255,1);
-	border: 1px solid #666;
-	box-shadow: none;
-}
diff --git a/docs/slides/flops14/_support/reveal/css/print/pdf.css b/docs/slides/flops14/_support/reveal/css/print/pdf.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/print/pdf.css
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and 
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending 
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-* {
-	-webkit-print-color-adjust: exact; 
-}
-
-body {
-	font-size: 22pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-	background: #333;
-}
-
-html {
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print. 
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow, 
-.controls a, 
-.reveal .progress, 
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display:none;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 22pt;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Diffrentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	text-shadow: 0 0 0 #000 !important;
-}
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link, 
-a:visited {
-	font-weight: bold;
-	text-decoration: underline;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-}
-.reveal .slides {
-	position: static;
-	width: 100%;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section, .reveal .slides>section>section, 
-.reveal .slides>section.past, .reveal .slides>section.future,
-.reveal.linear .slides>section, .reveal.linear .slides>section>section,
-.reveal.linear .slides>section.past, .reveal.linear .slides>section.future {
-	
-	visibility: visible;
-	position: static;
-	width: 100%;
-	height: auto;
-	min-height: initial;
-	display: block;
-	overflow: visible;
-
-	left: 0%;
-	top: 0%;
-	margin-left: 0px;
-	margin-top: 50px;
-	padding: 20px 0px;
-
-	opacity: 1;
-
-	-webkit-transform-style: flat;
-	   -moz-transform-style: flat;
-	    -ms-transform-style: flat;
-	        transform-style: flat;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-.reveal section {
-	page-break-after: always !important; 
-	display: block !important;
-}
-.reveal section.stack {
-	margin: 0px !important;
-	padding: 0px !important;
-	page-break-after: avoid !important; 
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-}
-.reveal img {
-	box-shadow: none;
-}
-.reveal .roll {
-	overflow: visible;
-	line-height: 1em;
-}
-
-.reveal small a {
-	font-size: 16pt !important;
-}
diff --git a/docs/slides/flops14/_support/reveal/css/theme/beige.css b/docs/slides/flops14/_support/reveal/css/theme/beige.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/beige.css
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * A beige theme for reveal.js presentations, similar 
- * to the default theme.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #333;
-
-	background: #f7f3de;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%, rgba(247,242,211,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(247,242,211,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-}
-
-::-moz-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: #333;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-transform: uppercase;
-}
-
-.reveal h1 {
-	text-shadow: 	0 1px 0 #ccc,
-					0 2px 0 #c9c9c9,
-					0 3px 0 #bbb,
-					0 4px 0 #b9b9b9,
-					0 5px 0 #aaa,
-					0 6px 1px rgba(0,0,0,.1),
-					0 0 5px rgba(0,0,0,.1),
-					0 1px 3px rgba(0,0,0,.3),
-					0 3px 5px rgba(0,0,0,.2),
-					0 5px 10px rgba(0,0,0,.25),
-					0 20px 20px rgba(0,0,0,.15);
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: #8b743d;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: #8b743d;
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #8b743d;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: #8b743d;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: #8b743d;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/flops14/_support/reveal/css/theme/default.css b/docs/slides/flops14/_support/reveal/css/theme/default.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/default.css
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/* Undo globally centered text from main.css*/
-.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-
-.reveal p + ul {
-	padding-left: 4%
-}
-
-
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h1 {
-	padding-top: 3%%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-.reveal .titlepage h1,
-.reveal h1.topic {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		color: hsl(185, 85%, 70%);
-		
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #13DAEC;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: hsl(185, 85%, 70%);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: hsl(185, 85%, 50%);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/flops14/_support/reveal/css/theme/seminar.css b/docs/slides/flops14/_support/reveal/css/theme/seminar.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/seminar.css
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	// :color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-/*
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-*/
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/flops14/_support/reveal/css/theme/seminar.orig.css b/docs/slides/flops14/_support/reveal/css/theme/seminar.orig.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/seminar.orig.css
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.ttf') format('truetype');
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'OpenSans', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/*--DW-- uncomment below to undo globally centered text from main.css*/
-
-/*.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-.reveal ul ul {
-	padding-left: 8%;
-	padding-top: 0.7em;
-	font-size: 85%;
-}*/
-
-/*--DW--
-* override list width to make multiline list items
-* a bit more manageable
-*/
-.reveal ul {
-	max-width: 80%;
-}
-
-.reveal li {
-	padding-bottom: 0.3em;
-}
-
-/*--DW-- uncenter pararagraph blocks*/
-.reveal .slides p {
-	text-align: left
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-
-
-/*********************************************
- * BLOCKQUOTES
- *********************************************/
-
-/*--DW--*/
-.reveal blockquote
-{   background: rgba(255,255,255, .2);
-    font-size: 75%;
-    text-align: justify;
-    width: 70%;
-    padding: 0.5em 5% 0.2em;
-    margin: 0 10%;
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-    -moz-box-shadow: .1em .1em .5em black inset;
-    box-shadow: .1em .1em .5em black inset;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-.reveal a:not(.image):hover {
-	color: hsl(185, 85%, 70%);
-	
-	text-shadow: none;
-	border: none;
-	border-radius: 2px;
-}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES AND FIGURES
- *********************************************/
-
-/*--DW-- added figures; changed img styling*/
-/*pandoc*/
-.reveal figure {
-	margin-left: auto;
-	margin-right: auto;
-}
-
-/*pandoc*/
-.reveal figcaption {
-	text-align: center;
-	font-size: 75%;
-	font-style: italic;
-}
-.reveal section img,
-.reveal section embed {
-/*	width: 80%;
-	height: 80%;
-*/	display: block;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 15px;
-	background: rgba(255,255,255, .75);
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-       -moz-box-shadow: .1em .1em .5em black inset;
-            box-shadow: .1em .1em .5em black inset;
-
-/*--DW-- original image box styling*/
-/*
--webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
--webkit-transition: all .2s linear;
-   -moz-transition: all .2s linear;
-    -ms-transition: all .2s linear;
-     -o-transition: all .2s linear;
-        transition: all .2s linear;
-*/
-}
-
-.reveal a:hover img {
-	background: rgba(255,255,255,0.2);
-	border-color: #13DAEC;
-	
-	-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		/*color: hsl(185, 85%, 70%);*/
-		color: rgba(138, 201, 85, 0.60);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		/*background: hsl(185, 85%, 50%);*/
-		background: rgba(138, 201, 85, 0.60);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/flops14/_support/reveal/css/theme/serif.css b/docs/slides/flops14/_support/reveal/css/theme/serif.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/serif.css
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; 
-}
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/flops14/_support/reveal/css/theme/simple.css b/docs/slides/flops14/_support/reveal/css/theme/simple.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/simple.css
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar 
- * to the default theme. The accent color is darkblue; 
- * do a find-replace to change it.
- * 
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se; so is the theme - beige.css - that this is based off of.
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@import url(http://fonts.googleapis.com/css?family=News+Cycle:400,700);
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: black !important;
-
-	background: white;
-}
-
-::-moz-selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-::selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: black;
-	font-family: 'News Cycle', Impact, sans-serif;
-	line-height: 0.9em;
-	
-	text-transform: uppercase;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: darkblue;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: darkblue;
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: darkblue;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: black;
-}
-	.reveal .controls a.enabled {
-		color: darkblue;
-		opacity: 1;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: darkblue;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/flops14/_support/reveal/css/theme/sky.css b/docs/slides/flops14/_support/reveal/css/theme/sky.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/css/theme/sky.css
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Sky theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@import url(http://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Open Sans', sans-serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #333;
-
-	background: #f7fbfc;
-	background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmN2ZiZmMiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjYWRkOWU0IiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background: -moz-radial-gradient(center, ellipse cover,  #f7fbfc 0%, #add9e4 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#f7fbfc), color-stop(100%,#add9e4));
-	background: -webkit-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: -o-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: radial-gradient(ellipse at center,  #f7fbfc 0%,#add9e4 100%);
-}
-
-::-moz-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: #333;
-	font-family: 'Quicksand', sans-serif;
-	line-height: 0.9em;
-	letter-spacing: -0.08em;
-	
-	text-transform: uppercase;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: #3b759e;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: #3b759e;
-}
-
-
-/*********************************************
- * MISC
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 1px solid #ddd;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #3b759e;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-.reveal blockquote {
-	background: rgba(255, 255, 255, 0.4);
-}
-
-.reveal p {
-	margin-bottom: 20px;
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: #3b759e;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: #3b759e;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/flops14/_support/reveal/js/.reveal.js.swo b/docs/slides/flops14/_support/reveal/js/.reveal.js.swo
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/js/.reveal.js.swo and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/js/.reveal.js.swp b/docs/slides/flops14/_support/reveal/js/.reveal.js.swp
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/js/.reveal.js.swp and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swo b/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swo
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swo and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swp b/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swp
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/js/.reveal.min.js.swp and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/js/reveal.js b/docs/slides/flops14/_support/reveal/js/reveal.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/js/reveal.js
+++ /dev/null
@@ -1,1149 +0,0 @@
-/*!
- * reveal.js 2.0 r22
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var Reveal = (function(){
-	
-	var HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section',
-		VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
-
-		IS_TOUCH_DEVICE = !!( 'ontouchstart' in window ),
-
-		// Configurations defaults, can be overridden at initialization time 
-		config = {
-			// Display controls in the bottom right corner
-			controls: true,
-
-			// Display a presentation progress bar
-			progress: true,
-
-			// Push each slide change to the browser history
-			history: false,
-
-			// Enable keyboard shortcuts for navigation
-			keyboard: true,
-
-			// Loop the presentation
-			loop: false,
-
-			// Number of milliseconds between automatically proceeding to the 
-			// next slide, disabled when set to 0
-			autoSlide: 0,
-
-			// Enable slide navigation via mouse wheel
-			mouseWheel: true,
-
-			// Apply a 3D roll to links on hover
-			rollingLinks: true,
-
-			// Transition style (see /css/theme)
-			theme: 'default', 
-
-			// Transition style
-			transition: 'default', // default/cube/page/concave/linear(2d),
-
-			// Script dependencies to load
-			dependencies: []
-		},
-
-		// The horizontal and verical index of the currently active slide
-		indexh = 0,
-		indexv = 0,
-
-		// The previous and current slide HTML elements
-		previousSlide,
-		currentSlide,
-
-		// Slides may hold a data-state attribute which we pick up and apply 
-		// as a class to the body. This list contains the combined state of 
-		// all current slides.
-		state = [],
-
-		// Cached references to DOM elements
-		dom = {},
-
-		// Detect support for CSS 3D transforms
-		supports3DTransforms =  'WebkitPerspective' in document.body.style ||
-                        		'MozPerspective' in document.body.style ||
-                        		'msPerspective' in document.body.style ||
-                        		'OPerspective' in document.body.style ||
-                        		'perspective' in document.body.style,
-        
-        supports2DTransforms =  'WebkitTransform' in document.body.style ||
-                        		'MozTransform' in document.body.style ||
-                        		'msTransform' in document.body.style ||
-                        		'OTransform' in document.body.style ||
-                        		'transform' in document.body.style,
-		
-		// Throttles mouse wheel navigation
-		mouseWheelTimeout = 0,
-
-		// An interval used to automatically move on to the next slide
-		autoSlideTimeout = 0,
-
-		// Delays updates to the URL due to a Chrome thumbnailer bug
-		writeURLTimeout = 0,
-
-		// Holds information about the currently ongoing touch input
-		touch = {
-			startX: 0,
-			startY: 0,
-			startSpan: 0,
-			startCount: 0,
-			handled: false,
-			threshold: 40
-		};
-	
-	
-	/**
-	 * Starts up the presentation if the client is capable.
-	 */
-	function initialize( options ) {
-		if( ( !supports2DTransforms && !supports3DTransforms ) ) {
-			document.body.setAttribute( 'class', 'no-transforms' );
-
-			// If the browser doesn't support core features we won't be 
-			// using JavaScript to control the presentation
-			return;
-		}
-
-		// Copy options over to our config object
-		extend( config, options );
-
-		// Cache references to DOM elements
-		dom.theme = document.querySelector( '#theme' );
-		dom.wrapper = document.querySelector( '.reveal' );
-		dom.progress = document.querySelector( '.reveal .progress' );
-		dom.progressbar = document.querySelector( '.reveal .progress span' );
-
-		if ( config.controls ) {
-			dom.controls = document.querySelector( '.reveal .controls' );
-			dom.controlsLeft = document.querySelector( '.reveal .controls .left' );
-			dom.controlsRight = document.querySelector( '.reveal .controls .right' );
-			dom.controlsUp = document.querySelector( '.reveal .controls .up' );
-			dom.controlsDown = document.querySelector( '.reveal .controls .down' );
-		}
-
-		// Loads the dependencies and continues to #start() once done
-		load();
-
-		// Set up hiding of the browser address bar
-		if( navigator.userAgent.match( /(iphone|ipod|android)/i ) ) {
-			// Give the page some scrollable overflow
-			document.documentElement.style.overflow = 'scroll';
-			document.body.style.height = '120%';
-
-			// Events that should trigger the address bar to hide
-			window.addEventListener( 'load', removeAddressBar, false );
-			window.addEventListener( 'orientationchange', removeAddressBar, false );
-		}
-		
-	}
-
-	/**
-	 * Loads the dependencies of reveal.js. Dependencies are 
-	 * defined via the configuration option 'dependencies' 
-	 * and will be loaded prior to starting/binding reveal.js. 
-	 * Some dependencies may have an 'async' flag, if so they 
-	 * will load after reveal.js has been started up.
-	 */
-	function load() {
-		var scripts = [],
-			scriptsAsync = [];
-
-		for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
-			var s = config.dependencies[i];
-
-			// Load if there's no condition or the condition is truthy
-			if( !s.condition || s.condition() ) {
-				if( s.async ) {
-					scriptsAsync.push( s.src );
-				}
-				else {
-					scripts.push( s.src );
-				}
-
-				// Extension may contain callback functions
-				if( typeof s.callback === 'function' ) {
-					head.ready( s.src.match( /([\w\d_-]*)\.?[^\\\/]*$/i )[0], s.callback );
-				}
-			}
-		}
-
-		// Called once synchronous scritps finish loading
-		function proceed() {
-			// Load asynchronous scripts
-			head.js.apply( null, scriptsAsync );
-			
-			start();
-		}
-
-		if( scripts.length ) {
-			head.ready( proceed );
-
-			// Load synchronous scripts
-			head.js.apply( null, scripts );
-		}
-		else {
-			proceed();
-		}
-	}
-
-	/**
-	 * Starts up reveal.js by binding input events and navigating 
-	 * to the current URL deeplink if there is one.
-	 */
-	function start() {
-		// Subscribe to input
-		addEventListeners();
-
-		// Updates the presentation to match the current configuration values
-		configure();
-
-		// Read the initial hash
-		readURL();
-
-		// Start auto-sliding if it's enabled
-		cueAutoSlide();
-	}
-
-	/**
-	 * Applies the configuration settings from the config object.
-	 */
-	function configure() {
-		if( supports3DTransforms === false ) {
-			config.transition = 'linear';
-		}
-
-		if( config.controls && dom.controls ) {
-			dom.controls.style.display = 'block';
-		}
-
-		if( config.progress && dom.progress ) {
-			dom.progress.style.display = 'block';
-		}
-
-		// Load the theme in the config, if it's not already loaded
-		if( config.theme && dom.theme ) {
-			var themeURL = dom.theme.getAttribute( 'href' );
-			var themeFinder = /[^/]*?(?=\.css)/;
-			var themeName = themeURL.match(themeFinder)[0];
-			if(  config.theme !== themeName ) {
-				themeURL = themeURL.replace(themeFinder, config.theme);
-				dom.theme.setAttribute( 'href', themeURL );
-			}
-		}
-
-
-		if( config.transition !== 'default' ) {
-			dom.wrapper.classList.add( config.transition );
-		}
-
-		if( config.mouseWheel ) {
-			document.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.addEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-
-		if( config.rollingLinks ) {
-			// Add some 3D magic to our anchors
-			linkify();
-		}
-	}
-
-	function addEventListeners() {
-		document.addEventListener( 'touchstart', onDocumentTouchStart, false );
-		document.addEventListener( 'touchmove', onDocumentTouchMove, false );
-		document.addEventListener( 'touchend', onDocumentTouchEnd, false );
-		window.addEventListener( 'hashchange', onWindowHashChange, false );
-
-		if( config.keyboard ) {
-			document.addEventListener( 'keydown', onDocumentKeyDown, false );
-		}
-
-		if ( config.controls && dom.controls ) {
-			dom.controlsLeft.addEventListener( 'click', preventAndForward( navigateLeft ), false );
-			dom.controlsRight.addEventListener( 'click', preventAndForward( navigateRight ), false );
-			dom.controlsUp.addEventListener( 'click', preventAndForward( navigateUp ), false );
-			dom.controlsDown.addEventListener( 'click', preventAndForward( navigateDown ), false );	
-		}
-	}
-
-	function removeEventListeners() {
-		document.removeEventListener( 'keydown', onDocumentKeyDown, false );
-		document.removeEventListener( 'touchstart', onDocumentTouchStart, false );
-		document.removeEventListener( 'touchmove', onDocumentTouchMove, false );
-		document.removeEventListener( 'touchend', onDocumentTouchEnd, false );
-		window.removeEventListener( 'hashchange', onWindowHashChange, false );
-		
-		if ( config.controls && dom.controls ) {
-			dom.controlsLeft.removeEventListener( 'click', preventAndForward( navigateLeft ), false );
-			dom.controlsRight.removeEventListener( 'click', preventAndForward( navigateRight ), false );
-			dom.controlsUp.removeEventListener( 'click', preventAndForward( navigateUp ), false );
-			dom.controlsDown.removeEventListener( 'click', preventAndForward( navigateDown ), false );
-		}
-	}
-
-	/**
-	 * Extend object a with the properties of object b. 
-	 * If there's a conflict, object b takes precedence.
-	 */
-	function extend( a, b ) {
-		for( var i in b ) {
-			a[ i ] = b[ i ];
-		}
-	}
-
-	/**
-	 * Measures the distance in pixels between point a
-	 * and point b. 
-	 * 
-	 * @param {Object} a point with x/y properties
-	 * @param {Object} b point with x/y properties
-	 */
-	function distanceBetween( a, b ) {
-		var dx = a.x - b.x,
-			dy = a.y - b.y;
-
-		return Math.sqrt( dx*dx + dy*dy );
-	}
-
-	/**
-	 * Prevents an events defaults behavior calls the 
-	 * specified delegate.
-	 * 
-	 * @param {Function} delegate The method to call 
-	 * after the wrapper has been executed
-	 */
-	function preventAndForward( delegate ) {
-		return function( event ) {
-			event.preventDefault();
-			delegate.call();
-		}
-	}
-
-	/**
-	 * Causes the address bar to hide on mobile devices, 
-	 * more vertical space ftw.
-	 */
-	function removeAddressBar() {
-		setTimeout( function() {
-			window.scrollTo( 0, 1 );
-		}, 0 );
-	}
-	
-	/**
-	 * Handler for the document level 'keydown' event.
-	 * 
-	 * @param {Object} event
-	 */
-	function onDocumentKeyDown( event ) {
-		// FFT: Use document.querySelector( ':focus' ) === null 
-		// instead of checking contentEditable?
-
-		// Disregard the event if the target is editable or a 
-		// modifier is present
-		if ( event.target.contentEditable != 'inherit' || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-				
-		var triggered = false;
-
-		switch( event.keyCode ) {
-			// p, page up
-			case 80: case 33: navigatePrev(); triggered = true; break; 
-			// n, page down
-			case 78: case 34: navigateNext(); triggered = true; break;
-			// h, left
-			case 72: case 37: navigateLeft(); triggered = true; break;
-			// l, right
-			case 76: case 39: navigateRight(); triggered = true; break;
-			// k, up
-			case 75: case 38: navigateUp(); triggered = true; break;
-			// j, down
-			case 74: case 40: navigateDown(); triggered = true; break;
-			// home
-			case 36: navigateTo( 0 ); triggered = true; break;
-			// end
-			case 35: navigateTo( Number.MAX_VALUE ); triggered = true; break;
-			// space
-			case 32: overviewIsActive() ? deactivateOverview() : navigateNext(); triggered = true; break;
-			// return
-			case 13: if( overviewIsActive() ) { deactivateOverview(); triggered = true; } break;
-		}
-
-		// If the input resulted in a triggered action we should prevent 
-		// the browsers default behavior
-		if( triggered ) {
-			event.preventDefault();
-		}
-		else if ( event.keyCode === 27 && supports3DTransforms ) {
-			toggleOverview();
-	
-			event.preventDefault();
-		}
-
-		// If auto-sliding is enabled we need to cue up 
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Handler for the document level 'touchstart' event,
-	 * enables support for swipe and pinch gestures.
-	 */
-	function onDocumentTouchStart( event ) {
-		touch.startX = event.touches[0].clientX;
-		touch.startY = event.touches[0].clientY;
-		touch.startCount = event.touches.length;
-
-		// If there's two touches we need to memorize the distance 
-		// between those two points to detect pinching
-		if( event.touches.length === 2 ) {
-			touch.startSpan = distanceBetween( {
-				x: event.touches[1].clientX,
-				y: event.touches[1].clientY
-			}, {
-				x: touch.startX,
-				y: touch.startY
-			} );
-		}
-	}
-	
-	/**
-	 * Handler for the document level 'touchmove' event.
-	 */
-	function onDocumentTouchMove( event ) {
-		// Each touch should only trigger one action
-		if( !touch.handled ) {
-			var currentX = event.touches[0].clientX;
-			var currentY = event.touches[0].clientY;
-
-			// If the touch started off with two points and still has 
-			// two active touches; test for the pinch gesture
-			if( event.touches.length === 2 && touch.startCount === 2 ) {
-
-				// The current distance in pixels between the two touch points
-				var currentSpan = distanceBetween( {
-					x: event.touches[1].clientX,
-					y: event.touches[1].clientY
-				}, {
-					x: touch.startX,
-					y: touch.startY
-				} );
-
-				// If the span is larger than the desire amount we've got 
-				// ourselves a pinch
-				if( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) {
-					touch.handled = true;
-
-					if( currentSpan < touch.startSpan ) {
-						activateOverview();
-					}
-					else {
-						deactivateOverview();
-					}
-				}
-
-			}
-			// There was only one touch point, look for a swipe
-			else if( event.touches.length === 1 ) {
-				var deltaX = currentX - touch.startX,
-					deltaY = currentY - touch.startY;
-
-				if( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.handled = true;
-					navigateLeft();
-				} 
-				else if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.handled = true;
-					navigateRight();
-				} 
-				else if( deltaY > touch.threshold ) {
-					touch.handled = true;
-					navigateUp();
-				} 
-				else if( deltaY < -touch.threshold ) {
-					touch.handled = true;
-					navigateDown();
-				}
-			}
-
-			event.preventDefault();
-		}
-	}
-
-	/**
-	 * Handler for the document level 'touchend' event.
-	 */
-	function onDocumentTouchEnd( event ) {
-		touch.handled = false;
-	}
-
-	/**
-	 * Handles mouse wheel scrolling, throttled to avoid 
-	 * skipping multiple slides.
-	 */
-	function onDocumentMouseScroll( event ){
-		clearTimeout( mouseWheelTimeout );
-
-		mouseWheelTimeout = setTimeout( function() {
-			var delta = event.detail || -event.wheelDelta;
-			if( delta > 0 ) {
-				navigateNext();
-			}
-			else {
-				navigatePrev();
-			}
-		}, 100 );
-	}
-	
-	/**
-	 * Handler for the window level 'hashchange' event.
-	 * 
-	 * @param {Object} event
-	 */
-	function onWindowHashChange( event ) {
-		readURL();
-	}
-
-	/**
-	 * Wrap all links in 3D goodness.
-	 */
-	function linkify() {
-		if( supports3DTransforms && !( 'msPerspective' in document.body.style ) ) {
-        	var nodes = document.querySelectorAll( '.reveal .slides section a:not(.image)' );
-
-	        for( var i = 0, len = nodes.length; i < len; i++ ) {
-	            var node = nodes[i];
-	            
-	            if( node.textContent && !node.querySelector( 'img' ) && ( !node.className || !node.classList.contains( node, 'roll' ) ) ) {
-	                node.classList.add( 'roll' );
-	                node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>';
-	            }
-	        };
-        }
-	}
-
-	/**
-	 * Displays the overview of slides (quick nav) by 
-	 * scaling down and arranging all slide elements.
-	 * 
-	 * Experimental feature, might be dropped if perf 
-	 * can't be improved.
-	 */
-	function activateOverview() {
-		
-		dom.wrapper.classList.add( 'overview' );
-
-		var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-		for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) {
-			var hslide = horizontalSlides[i],
-				htransform = 'translateZ(-2500px) translate(' + ( ( i - indexh ) * 105 ) + '%, 0%)';
-			
-			hslide.setAttribute( 'data-index-h', i );
-			hslide.style.display = 'block';
-			hslide.style.WebkitTransform = htransform;
-			hslide.style.MozTransform = htransform;
-			hslide.style.msTransform = htransform;
-			hslide.style.OTransform = htransform;
-			hslide.style.transform = htransform;
-		
-			if( !hslide.classList.contains( 'stack' ) ) {
-				// Navigate to this slide on click
-				hslide.addEventListener( 'click', onOverviewSlideClicked, true );
-			}
-	
-			var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( 'section' ) );
-
-			for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) {
-				var vslide = verticalSlides[j],
-					vtransform = 'translate(0%, ' + ( ( j - ( i === indexh ? indexv : 0 ) ) * 105 ) + '%)';
-
-				vslide.setAttribute( 'data-index-h', i );
-				vslide.setAttribute( 'data-index-v', j );
-				vslide.style.display = 'block';
-				vslide.style.WebkitTransform = vtransform;
-				vslide.style.MozTransform = vtransform;
-				vslide.style.msTransform = vtransform;
-				vslide.style.OTransform = vtransform;
-				vslide.style.transform = vtransform;
-
-				// Navigate to this slide on click
-				vslide.addEventListener( 'click', onOverviewSlideClicked, true );
-			}
-			
-		}
-	}
-	
-	/**
-	 * Exits the slide overview and enters the currently
-	 * active slide.
-	 */
-	function deactivateOverview() {
-		dom.wrapper.classList.remove( 'overview' );
-
-		var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) );
-
-		for( var i = 0, len = slides.length; i < len; i++ ) {
-			var element = slides[i];
-
-			// Resets all transforms to use the external styles
-			element.style.WebkitTransform = '';
-			element.style.MozTransform = '';
-			element.style.msTransform = '';
-			element.style.OTransform = '';
-			element.style.transform = '';
-
-			element.removeEventListener( 'click', onOverviewSlideClicked );
-		}
-
-		slide();
-	}
-
-	/**
-	 * Checks if the overview is currently active.
-	 * 
-	 * @return {Boolean} true if the overview is active,
-	 * false otherwise
-	 */
-	function overviewIsActive() {
-		return dom.wrapper.classList.contains( 'overview' );
-	}
-
-	/**
-	 * Invoked when a slide is and we're in the overview.
-	 */
-	function onOverviewSlideClicked( event ) {
-		// TODO There's a bug here where the event listeners are not 
-		// removed after deactivating the overview.
-		if( overviewIsActive() ) {
-			event.preventDefault();
-
-			deactivateOverview();
-
-			indexh = this.getAttribute( 'data-index-h' );
-			indexv = this.getAttribute( 'data-index-v' );
-
-			slide();
-		}
-	}
-
-	/**
-	 * Updates one dimension of slides by showing the slide
-	 * with the specified index.
-	 * 
-	 * @param {String} selector A CSS selector that will fetch
-	 * the group of slides we are working with
-	 * @param {Number} index The index of the slide that should be
-	 * shown
-	 * 
-	 * @return {Number} The index of the slide that is now shown,
-	 * might differ from the passed in index if it was out of 
-	 * bounds.
-	 */
-	function updateSlides( selector, index ) {
-		
-		// Select all slides and convert the NodeList result to
-		// an array
-		var slides = Array.prototype.slice.call( document.querySelectorAll( selector ) ),
-			slidesLength = slides.length;
-		
-		if( slidesLength ) {
-
-			// Should the index loop?
-			if( config.loop ) {
-				index %= slidesLength;
-
-				if( index < 0 ) {
-					index = slidesLength + index;
-				}
-			}
-			
-			// Enforce max and minimum index bounds
-			index = Math.max( Math.min( index, slidesLength - 1 ), 0 );
-			
-			for( var i = 0; i < slidesLength; i++ ) {
-				var slide = slides[i];
-
-				// Optimization; hide all slides that are three or more steps 
-				// away from the present slide
-				if( overviewIsActive() === false ) {
-					// The distance loops so that it measures 1 between the first
-					// and last slides
-					var distance = Math.abs( ( index - i ) % ( slidesLength - 3 ) ) || 0;
-
-					slide.style.display = distance > 3 ? 'none' : 'block';
-				}
-
-				slides[i].classList.remove( 'past' );
-				slides[i].classList.remove( 'present' );
-				slides[i].classList.remove( 'future' );
-
-				if( i < index ) {
-					// Any element previous to index is given the 'past' class
-					slides[i].classList.add( 'past' );
-				}
-				else if( i > index ) {
-					// Any element subsequent to index is given the 'future' class
-					slides[i].classList.add( 'future' );
-				}
-
-				// If this element contains vertical slides
-				if( slide.querySelector( 'section' ) ) {
-					slides[i].classList.add( 'stack' );
-				}
-			}
-
-			// Mark the current slide as present
-			slides[index].classList.add( 'present' );
-
-			// If this slide has a state associated with it, add it
-			// onto the current state of the deck
-			var slideState = slides[index].getAttribute( 'data-state' );
-			if( slideState ) {
-				state = state.concat( slideState.split( ' ' ) );
-			}
-		}
-		else {
-			// Since there are no slides we can't be anywhere beyond the 
-			// zeroth index
-			index = 0;
-		}
-		
-		return index;
-		
-	}
-	
-	/**
-	 * Updates the visual slides to represent the currently
-	 * set indices. 
-	 */
-	function slide( h, v ) {
-		// Remember where we were at before
-		previousSlide = currentSlide;
-
-		// Remember the state before this slide
-		var stateBefore = state.concat();
-
-		// Reset the state array
-		state.length = 0;
-
-		var indexhBefore = indexh,
-			indexvBefore = indexv;
-
-		// Activate and transition to the new slide
-		indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );
-		indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );
-
-		// Apply the new state
-		stateLoop: for( var i = 0, len = state.length; i < len; i++ ) {
-			// Check if this state existed on the previous slide. If it 
-			// did, we will avoid adding it repeatedly.
-			for( var j = 0; j < stateBefore.length; j++ ) {
-				if( stateBefore[j] === state[i] ) {
-					stateBefore.splice( j, 1 );
-					continue stateLoop;
-				}
-			}
-
-			document.documentElement.classList.add( state[i] );
-
-			// Dispatch custom event matching the state's name
-			dispatchEvent( state[i] );
-		}
-
-		// Clean up the remaints of the previous state
-		while( stateBefore.length ) {
-			document.documentElement.classList.remove( stateBefore.pop() );
-		}
-
-		// Update progress if enabled
-		if( config.progress && dom.progress ) {
-			dom.progressbar.style.width = ( indexh / ( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ).length - 1 ) ) * window.innerWidth + 'px';
-		}
-
-		// Close the overview if it's active
-		if( overviewIsActive() ) {
-			activateOverview();
-		}
-
-		updateControls();
-		
-		clearTimeout( writeURLTimeout );
-		writeURLTimeout = setTimeout( writeURL, 1500 );
-
-		// Query all horizontal slides in the deck
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-		// Find the current horizontal slide and any possible vertical slides
-		// within it
-		var currentHorizontalSlide = horizontalSlides[ indexh ],
-			currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );
-
-		// Store references to the previous and current slides
-		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;
-
-		// Dispatch an event if the slide changed
-		if( indexh !== indexhBefore || indexv !== indexvBefore ) {
-			dispatchEvent( 'slidechanged', {
-				'indexh': indexh, 
-				'indexv': indexv,
-				'previousSlide': previousSlide,
-				'currentSlide': currentSlide
-			} );
-		}
-		else {
-			// Ensure that the previous slide is never the same as the current
-			previousSlide = null;
-		}
-
-		// Solves an edge case where the previous slide maintains the 
-		// 'present' class when navigating between adjacent vertical 
-		// stacks
-		if( previousSlide ) {
-			previousSlide.classList.remove( 'present' );
-		}
-	}
-
-	/**
-	 * Updates the state and link pointers of the controls.
-	 */
-	function updateControls() {
-		if ( !config.controls || !dom.controls ) {
-			return;
-		}
-		
-		var routes = availableRoutes();
-
-		// Remove the 'enabled' class from all directions
-		[ dom.controlsLeft, dom.controlsRight, dom.controlsUp, dom.controlsDown ].forEach( function( node ) {
-			node.classList.remove( 'enabled' );
-		} )
-
-		if( routes.left ) dom.controlsLeft.classList.add( 'enabled' );
-		if( routes.right ) dom.controlsRight.classList.add( 'enabled' );
-		if( routes.up ) dom.controlsUp.classList.add( 'enabled' );
-		if( routes.down ) dom.controlsDown.classList.add( 'enabled' );
-	}
-
-	/**
-	 * Determine what available routes there are for navigation.
-	 * 
-	 * @return {Object} containing four booleans: left/right/up/down
-	 */
-	function availableRoutes() {
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-		var verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-		return {
-			left: indexh > 0,
-			right: indexh < horizontalSlides.length - 1,
-			up: indexv > 0,
-			down: indexv < verticalSlides.length - 1
-		};
-	}
-	
-	/**
-	 * Reads the current URL (hash) and navigates accordingly.
-	 */
-	function readURL() {
-		var hash = window.location.hash;
-
-		// Attempt to parse the hash as either an index or name
-		var bits = hash.slice( 2 ).split( '/' ),
-			name = hash.replace( /#|\//gi, '' );
-
-		// If the first bit is invalid and there is a name we can 
-		// assume that this is a named link
-		if( isNaN( parseInt( bits[0] ) ) && name.length ) {
-			// Find the slide with the specified name
-			var slide = document.querySelector( '#' + name );
-
-			if( slide ) {
-				// Find the position of the named slide and navigate to it
-				var indices = Reveal.getIndices( slide );
-				navigateTo( indices.h, indices.v );
-			}
-			// If the slide doesn't exist, navigate to the current slide
-			else {
-				navigateTo( indexh, indexv );
-			}
-		}
-		else {
-			// Read the index components of the hash
-			var h = parseInt( bits[0] ) || 0,
-				v = parseInt( bits[1] ) || 0;
-
-			navigateTo( h, v );
-		}
-	}
-	
-	/**
-	 * Updates the page URL (hash) to reflect the current
-	 * state. 
-	 */
-	function writeURL() {
-		if( config.history ) {
-			var url = '/';
-			
-			// Only include the minimum possible number of components in
-			// the URL
-			if( indexh > 0 || indexv > 0 ) url += indexh;
-			if( indexv > 0 ) url += '/' + indexv;
-			
-			window.location.hash = url;
-		}
-	}
-
-	/**
-	 * Dispatches an event of the specified type from the 
-	 * reveal DOM element.
-	 */
-	function dispatchEvent( type, properties ) {
-		var event = document.createEvent( "HTMLEvents", 1, 2 );
-		event.initEvent( type, true, true );
-		extend( event, properties );
-		dom.wrapper.dispatchEvent( event );
-	}
-
-	/**
-	 * Navigate to the next slide fragment.
-	 * 
-	 * @return {Boolean} true if there was a next fragment,
-	 * false otherwise
-	 */
-	function nextFragment() {
-		// Vertical slides:
-		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
-			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
-			if( verticalFragments.length ) {
-				verticalFragments[0].classList.add( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmentshown', { fragment: verticalFragments[0] } );
-				return true;
-			}
-		}
-		// Horizontal slides:
-		else {
-			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
-			if( horizontalFragments.length ) {
-				horizontalFragments[0].classList.add( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmentshown', { fragment: horizontalFragments[0] } );
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Navigate to the previous slide fragment.
-	 * 
-	 * @return {Boolean} true if there was a previous fragment,
-	 * false otherwise
-	 */
-	function previousFragment() {
-		// Vertical slides:
-		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
-			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
-			if( verticalFragments.length ) {
-				verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmenthidden', { fragment: verticalFragments[ verticalFragments.length - 1 ] } );
-				return true;
-			}
-		}
-		// Horizontal slides:
-		else {
-			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
-			if( horizontalFragments.length ) {
-				horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmenthidden', { fragment: horizontalFragments[ horizontalFragments.length - 1 ] } );
-				return true;
-			}
-		}
-		
-		return false;
-	}
-
-	function cueAutoSlide() {
-		clearTimeout( autoSlideTimeout );
-
-		// Cue the next auto-slide if enabled
-		if( config.autoSlide ) {
-			autoSlideTimeout = setTimeout( navigateNext, config.autoSlide );
-		}
-	}
-	
-	/**
-	 * Triggers a navigation to the specified indices.
-	 * 
-	 * @param {Number} h The horizontal index of the slide to show
-	 * @param {Number} v The vertical index of the slide to show
-	 */
-	function navigateTo( h, v ) {
-		slide( h, v );
-	}
-	
-	function navigateLeft() {
-		// Prioritize hiding fragments
-		if( overviewIsActive() || previousFragment() === false ) {
-			slide( indexh - 1, 0 );
-		}
-	}
-	function navigateRight() {
-		// Prioritize revealing fragments
-		if( overviewIsActive() || nextFragment() === false ) {
-			slide( indexh + 1, 0 );
-		}
-	}
-	function navigateUp() {
-		// Prioritize hiding fragments
-		if( overviewIsActive() || previousFragment() === false ) {
-			slide( indexh, indexv - 1 );
-		}
-	}
-	function navigateDown() {
-		// Prioritize revealing fragments
-		if( overviewIsActive() || nextFragment() === false ) {
-			slide( indexh, indexv + 1 );
-		}
-	}
-
-	/**
-	 * Navigates backwards, prioritized in the following order:
-	 * 1) Previous fragment
-	 * 2) Previous vertical slide
-	 * 3) Previous horizontal slide
-	 */
-	function navigatePrev() {
-		// Prioritize revealing fragments
-		if( previousFragment() === false ) {
-			if( availableRoutes().up ) {
-				navigateUp();
-			}
-			else {
-				// Fetch the previous horizontal slide, if there is one
-				var previousSlide = document.querySelector( '.reveal .slides>section.past:nth-child(' + indexh + ')' );
-
-				if( previousSlide ) {
-					indexv = ( previousSlide.querySelectorAll('section').length + 1 ) || 0;
-					indexh --;
-					slide();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Same as #navigatePrev() but navigates forwards.
-	 */
-	function navigateNext() {
-		// Prioritize revealing fragments
-		if( nextFragment() === false ) {
-			availableRoutes().down ? navigateDown() : navigateRight();
-		}
-
-		// If auto-sliding is enabled we need to cue up 
-		// another timeout
-		cueAutoSlide();
-	}
-
-	/**
-	 * Toggles the slide overview mode on and off.
-	 */
-	function toggleOverview() {
-		if( overviewIsActive() ) {
-			deactivateOverview();
-		}
-		else {
-			activateOverview();
-		}
-	}
-	
-	// Expose some methods publicly
-	return {
-		initialize: initialize,
-		navigateTo: navigateTo,
-		navigateLeft: navigateLeft,
-		navigateRight: navigateRight,
-		navigateUp: navigateUp,
-		navigateDown: navigateDown,
-		navigatePrev: navigatePrev,
-		navigateNext: navigateNext,
-		toggleOverview: toggleOverview,
-
-		// Adds or removes all internal event listeners (such as keyboard)
-		addEventListeners: addEventListeners,
-		removeEventListeners: removeEventListeners,
-
-		// Returns the indices of the current, or specified, slide
-		getIndices: function( slide ) {
-			// By default, return the current indices
-			var h = indexh,
-				v = indexv;
-
-			// If a slide is specified, return the indices of that slide
-			if( slide ) {
-				var isVertical = !!slide.parentNode.nodeName.match( /section/gi );
-				var slideh = isVertical ? slide.parentNode : slide;
-
-				// Select all horizontal slides
-				var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-				// Now that we know which the horizontal slide is, get its index
-				h = Math.max( horizontalSlides.indexOf( slideh ), 0 );
-
-				// If this is a vertical slide, grab the vertical index
-				if( isVertical ) {
-					v = Math.max( Array.prototype.slice.call( slide.parentNode.children ).indexOf( slide ), 0 );
-				}
-			}
-
-			return { h: h, v: v };
-		},
-
-		// Returns the previous slide element, may be null
-		getPreviousSlide: function() {
-			return previousSlide
-		},
-
-		// Returns the current slide element
-		getCurrentSlide: function() {
-			return currentSlide
-		},
-
-		// Helper method, retrieves query string as a key/value hash
-		getQueryHash: function() {
-			var query = {};
-
-			location.search.replace( /[A-Z0-9]+?=(\w*)/gi, function(a) {
-				query[ a.split( '=' ).shift() ] = a.split( '=' ).pop();
-			} );
-
-			return query;
-		},
-
-		// Forward event binding to the reveal DOM element
-		addEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture );
-			}
-		},
-		removeEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture );
-			}
-		}
-	};
-	
-})();
diff --git a/docs/slides/flops14/_support/reveal/js/reveal.min.js b/docs/slides/flops14/_support/reveal/js/reveal.min.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/js/reveal.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * reveal.js 2.0 r22
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var Reveal=(function(){var k=".reveal .slides>section",b=".reveal .slides>section.present>section",e=!!("ontouchstart" in window),N={controls:true,progress:true,history:false,keyboard:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},l=0,c=0,w,E,ac=[],d={},P="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,m="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,x=0,j=0,B=0,W={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40};function h(ad){if((!m&&!P)){document.body.setAttribute("class","no-transforms");return}r(N,ad);d.theme=document.querySelector("#theme");d.wrapper=document.querySelector(".reveal");d.progress=document.querySelector(".reveal .progress");d.progressbar=document.querySelector(".reveal .progress span");if(N.controls){d.controls=document.querySelector(".reveal .controls");d.controlsLeft=document.querySelector(".reveal .controls .left");d.controlsRight=document.querySelector(".reveal .controls .right");d.controlsUp=document.querySelector(".reveal .controls .up");d.controlsDown=document.querySelector(".reveal .controls .down")}R();if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll";document.body.style.height="120%";window.addEventListener("load",X,false);window.addEventListener("orientationchange",X,false)}}function R(){var ae=[],ai=[];for(var af=0,ad=N.dependencies.length;af<ad;af++){var ag=N.dependencies[af];if(!ag.condition||ag.condition()){if(ag.async){ai.push(ag.src)}else{ae.push(ag.src)}if(typeof ag.callback==="function"){head.ready(ag.src.match(/([\w\d_-]*)\.?[^\\\/]*$/i)[0],ag.callback)}}}function ah(){head.js.apply(null,ai);F()}if(ae.length){head.ready(ah);head.js.apply(null,ae)}else{ah()}}function F(){C();I();H();K()}function I(){if(P===false){N.transition="linear"}if(N.controls&&d.controls){d.controls.style.display="block"}if(N.progress&&d.progress){d.progress.style.display="block"}if(N.theme&&d.theme){var af=d.theme.getAttribute("href");var ad=/[^/]*?(?=\.css)/;var ae=af.match(ad)[0];if(N.theme!==ae){af=af.replace(ad,N.theme);d.theme.setAttribute("href",af)}}if(N.transition!=="default"){d.wrapper.classList.add(N.transition)}if(N.mouseWheel){document.addEventListener("DOMMouseScroll",n,false);document.addEventListener("mousewheel",n,false)}if(N.rollingLinks){J()}}function C(){document.addEventListener("touchstart",y,false);document.addEventListener("touchmove",Z,false);document.addEventListener("touchend",S,false);window.addEventListener("hashchange",u,false);if(N.keyboard){document.addEventListener("keydown",aa,false)}if(N.controls&&d.controls){d.controlsLeft.addEventListener("click",o(z),false);d.controlsRight.addEventListener("click",o(i),false);d.controlsUp.addEventListener("click",o(s),false);d.controlsDown.addEventListener("click",o(D),false)}}function Q(){document.removeEventListener("keydown",aa,false);document.removeEventListener("touchstart",y,false);document.removeEventListener("touchmove",Z,false);document.removeEventListener("touchend",S,false);window.removeEventListener("hashchange",u,false);if(N.controls&&d.controls){d.controlsLeft.removeEventListener("click",o(z),false);d.controlsRight.removeEventListener("click",o(i),false);d.controlsUp.removeEventListener("click",o(s),false);d.controlsDown.removeEventListener("click",o(D),false)}}function r(ae,ad){for(var af in ad){ae[af]=ad[af]}}function O(af,ad){var ag=af.x-ad.x,ae=af.y-ad.y;return Math.sqrt(ag*ag+ae*ae)}function o(ad){return function(ae){ae.preventDefault();ad.call()}}function X(){setTimeout(function(){window.scrollTo(0,1)},0)}function aa(ae){if(ae.target.contentEditable!="inherit"||ae.shiftKey||ae.altKey||ae.ctrlKey||ae.metaKey){return}var ad=false;switch(ae.keyCode){case 80:case 33:U();ad=true;break;case 78:case 34:v();ad=true;break;case 72:case 37:z();ad=true;break;case 76:case 39:i();ad=true;break;case 75:case 38:s();ad=true;break;case 74:case 40:D();ad=true;break;case 36:L(0);ad=true;break;case 35:L(Number.MAX_VALUE);ad=true;break;case 32:V()?Y():v();ad=true;break;case 13:if(V()){Y();ad=true}break}if(ad){ae.preventDefault()}else{if(ae.keyCode===27&&P){T();ae.preventDefault()}}K()}function y(ad){W.startX=ad.touches[0].clientX;W.startY=ad.touches[0].clientY;W.startCount=ad.touches.length;if(ad.touches.length===2){W.startSpan=O({x:ad.touches[1].clientX,y:ad.touches[1].clientY},{x:W.startX,y:W.startY})}}function Z(ai){if(!W.handled){var ag=ai.touches[0].clientX;var af=ai.touches[0].clientY;if(ai.touches.length===2&&W.startCount===2){var ah=O({x:ai.touches[1].clientX,y:ai.touches[1].clientY},{x:W.startX,y:W.startY});if(Math.abs(W.startSpan-ah)>W.threshold){W.handled=true;if(ah<W.startSpan){G()}else{Y()}}}else{if(ai.touches.length===1){var ae=ag-W.startX,ad=af-W.startY;if(ae>W.threshold&&Math.abs(ae)>Math.abs(ad)){W.handled=true;z()}else{if(ae<-W.threshold&&Math.abs(ae)>Math.abs(ad)){W.handled=true;i()}else{if(ad>W.threshold){W.handled=true;s()}else{if(ad<-W.threshold){W.handled=true;D()}}}}}}ai.preventDefault()}}function S(ad){W.handled=false}function n(ad){clearTimeout(x);x=setTimeout(function(){var ae=ad.detail||-ad.wheelDelta;if(ae>0){v()}else{U()}},100)}function u(ad){H()}function J(){if(P&&!("msPerspective" in document.body.style)){var ae=document.querySelectorAll(".reveal .slides section a:not(.image)");for(var af=0,ad=ae.length;af<ad;af++){var ag=ae[af];if(ag.textContent&&!ag.querySelector("img")&&(!ag.className||!ag.classList.contains(ag,"roll"))){ag.classList.add("roll");ag.innerHTML='<span data-title="'+ag.text+'">'+ag.innerHTML+"</span>"}}}}function G(){d.wrapper.classList.add("overview");var ad=Array.prototype.slice.call(document.querySelectorAll(k));for(var ai=0,ag=ad.length;ai<ag;ai++){var af=ad[ai],am="translateZ(-2500px) translate("+((ai-l)*105)+"%, 0%)";af.setAttribute("data-index-h",ai);af.style.display="block";af.style.WebkitTransform=am;af.style.MozTransform=am;af.style.msTransform=am;af.style.OTransform=am;af.style.transform=am;if(!af.classList.contains("stack")){af.addEventListener("click",A,true)}var al=Array.prototype.slice.call(af.querySelectorAll("section"));for(var ah=0,ae=al.length;ah<ae;ah++){var ak=al[ah],aj="translate(0%, "+((ah-(ai===l?c:0))*105)+"%)";ak.setAttribute("data-index-h",ai);ak.setAttribute("data-index-v",ah);ak.style.display="block";ak.style.WebkitTransform=aj;ak.style.MozTransform=aj;ak.style.msTransform=aj;ak.style.OTransform=aj;ak.style.transform=aj;ak.addEventListener("click",A,true)}}}function Y(){d.wrapper.classList.remove("overview");var ag=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));for(var af=0,ad=ag.length;af<ad;af++){var ae=ag[af];ae.style.WebkitTransform="";ae.style.MozTransform="";ae.style.msTransform="";ae.style.OTransform="";ae.style.transform="";ae.removeEventListener("click",A)}a()}function V(){return d.wrapper.classList.contains("overview")}function A(ad){if(V()){ad.preventDefault();Y();l=this.getAttribute("data-index-h");c=this.getAttribute("data-index-v");a()}}function ab(ae,ag){var ai=Array.prototype.slice.call(document.querySelectorAll(ae)),aj=ai.length;if(aj){if(N.loop){ag%=aj;if(ag<0){ag=aj+ag}}ag=Math.max(Math.min(ag,aj-1),0);for(var ah=0;ah<aj;ah++){var ad=ai[ah];if(V()===false){var ak=Math.abs((ag-ah)%(aj-3))||0;ad.style.display=ak>3?"none":"block"}ai[ah].classList.remove("past");ai[ah].classList.remove("present");ai[ah].classList.remove("future");if(ah<ag){ai[ah].classList.add("past")}else{if(ah>ag){ai[ah].classList.add("future")}}if(ad.querySelector("section")){ai[ah].classList.add("stack")}}ai[ag].classList.add("present");var af=ai[ag].getAttribute("data-state");if(af){ac=ac.concat(af.split(" "))}}else{ag=0}return ag}function a(aj,an){w=E;var ag=ac.concat();ac.length=0;var am=l,ae=c;l=ab(k,aj===undefined?l:aj);c=ab(b,an===undefined?c:an);stateLoop:for(var ah=0,ak=ac.length;ah<ak;ah++){for(var af=0;af<ag.length;af++){if(ag[af]===ac[ah]){ag.splice(af,1);continue stateLoop}}document.documentElement.classList.add(ac[ah]);p(ac[ah])}while(ag.length){document.documentElement.classList.remove(ag.pop())}if(N.progress&&d.progress){d.progressbar.style.width=(l/(document.querySelectorAll(k).length-1))*window.innerWidth+"px"}if(V()){G()}q();clearTimeout(B);B=setTimeout(g,1500);var ad=document.querySelectorAll(k);var al=ad[l],ai=al.querySelectorAll("section");E=ai[c]||al;if(l!==am||c!==ae){p("slidechanged",{indexh:l,indexv:c,previousSlide:w,currentSlide:E})}else{w=null}if(w){w.classList.remove("present")}}function q(){if(!N.controls||!d.controls){return}var ad=f();[d.controlsLeft,d.controlsRight,d.controlsUp,d.controlsDown].forEach(function(ae){ae.classList.remove("enabled")});if(ad.left){d.controlsLeft.classList.add("enabled")}if(ad.right){d.controlsRight.classList.add("enabled")}if(ad.up){d.controlsUp.classList.add("enabled")}if(ad.down){d.controlsDown.classList.add("enabled")}}function f(){var ad=document.querySelectorAll(k);var ae=document.querySelectorAll(b);return{left:l>0,right:l<ad.length-1,up:c>0,down:c<ae.length-1}}function H(){var ai=window.location.hash;var ah=ai.slice(2).split("/"),af=ai.replace(/#|\//gi,"");if(isNaN(parseInt(ah[0]))&&af.length){var ad=document.querySelector("#"+af);if(ad){var aj=Reveal.getIndices(ad);L(aj.h,aj.v)}else{L(l,c)}}else{var ag=parseInt(ah[0])||0,ae=parseInt(ah[1])||0;L(ag,ae)}}function g(){if(N.history){var ad="/";if(l>0||c>0){ad+=l}if(c>0){ad+="/"+c}window.location.hash=ad}}function p(ae,ad){var af=document.createEvent("HTMLEvents",1,2);af.initEvent(ae,true,true);r(af,ad);d.wrapper.dispatchEvent(af)}function t(){if(document.querySelector(b+".present")){var ae=document.querySelectorAll(b+".present .fragment:not(.visible)");if(ae.length){ae[0].classList.add("visible");p("fragmentshown",{fragment:ae[0]});return true}}else{var ad=document.querySelectorAll(k+".present .fragment:not(.visible)");if(ad.length){ad[0].classList.add("visible");p("fragmentshown",{fragment:ad[0]});return true}}return false}function M(){if(document.querySelector(b+".present")){var ae=document.querySelectorAll(b+".present .fragment.visible");if(ae.length){ae[ae.length-1].classList.remove("visible");p("fragmenthidden",{fragment:ae[ae.length-1]});return true}}else{var ad=document.querySelectorAll(k+".present .fragment.visible");if(ad.length){ad[ad.length-1].classList.remove("visible");p("fragmenthidden",{fragment:ad[ad.length-1]});return true}}return false}function K(){clearTimeout(j);if(N.autoSlide){j=setTimeout(v,N.autoSlide)}}function L(ae,ad){a(ae,ad)}function z(){if(V()||M()===false){a(l-1,0)}}function i(){if(V()||t()===false){a(l+1,0)}}function s(){if(V()||M()===false){a(l,c-1)}}function D(){if(V()||t()===false){a(l,c+1)}}function U(){if(M()===false){if(f().up){s()}else{var ad=document.querySelector(".reveal .slides>section.past:nth-child("+l+")");if(ad){c=(ad.querySelectorAll("section").length+1)||0;l--;a()}}}}function v(){if(t()===false){f().down?D():i()}K()}function T(){if(V()){Y()}else{G()}}return{initialize:h,navigateTo:L,navigateLeft:z,navigateRight:i,navigateUp:s,navigateDown:D,navigatePrev:U,navigateNext:v,toggleOverview:T,addEventListeners:C,removeEventListeners:Q,getIndices:function(ad){var ah=l,af=c;if(ad){var ai=!!ad.parentNode.nodeName.match(/section/gi);var ag=ai?ad.parentNode:ad;var ae=Array.prototype.slice.call(document.querySelectorAll(k));ah=Math.max(ae.indexOf(ag),0);if(ai){af=Math.max(Array.prototype.slice.call(ad.parentNode.children).indexOf(ad),0)}}return{h:ah,v:af}},getPreviousSlide:function(){return w},getCurrentSlide:function(){return E},getQueryHash:function(){var ad={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(ae){ad[ae.split("=").shift()]=ae.split("=").pop()});return ad},addEventListener:function(ae,af,ad){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).addEventListener(ae,af,ad)}},removeEventListener:function(ae,af,ad){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).removeEventListener(ae,af,ad)}}}})();
diff --git a/docs/slides/flops14/_support/reveal/lib/css/zenburn.css b/docs/slides/flops14/_support/reveal/lib/css/zenburn.css
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/css/zenburn.css
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-
-Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
-based on dark.css by Ivan Sagalaev
-
-*/
-
-pre code {
-  display: block; padding: 0.5em;
-  background: #3F3F3F;
-  color: #DCDCDC;
-}
-
-pre .keyword,
-pre .tag,
-pre .django .tag,
-pre .django .keyword,
-pre .css .class,
-pre .css .id,
-pre .lisp .title {
-  color: #E3CEAB;
-}
-
-pre .django .template_tag,
-pre .django .variable,
-pre .django .filter .argument {
-  color: #DCDCDC;
-}
-
-pre .number,
-pre .date {
-  color: #8CD0D3;
-}
-
-pre .dos .envvar,
-pre .dos .stream,
-pre .variable,
-pre .apache .sqbracket {
-  color: #EFDCBC;
-}
-
-pre .dos .flow,
-pre .diff .change,
-pre .python .exception,
-pre .python .built_in,
-pre .literal,
-pre .tex .special {
-  color: #EFEFAF;
-}
-
-pre .diff .chunk,
-pre .ruby .subst {
-  color: #8F8F8F;
-}
-
-pre .dos .keyword,
-pre .python .decorator,
-pre .class .title,
-pre .haskell .label,
-pre .function .title,
-pre .ini .title,
-pre .diff .header,
-pre .ruby .class .parent,
-pre .apache .tag,
-pre .nginx .built_in,
-pre .tex .command,
-pre .input_number {
-    color: #efef8f;
-}
-
-pre .dos .winutils,
-pre .ruby .symbol,
-pre .ruby .symbol .string,
-pre .ruby .symbol .keyword,
-pre .ruby .symbol .keymethods,
-pre .ruby .string,
-pre .ruby .instancevar {
-  color: #DCA3A3;
-}
-
-pre .diff .deletion,
-pre .string,
-pre .tag .value,
-pre .preprocessor,
-pre .built_in,
-pre .sql .aggregate,
-pre .javadoc,
-pre .smalltalk .class,
-pre .smalltalk .localvars,
-pre .smalltalk .array,
-pre .css .rules .value,
-pre .attr_selector,
-pre .pseudo,
-pre .apache .cbracket,
-pre .tex .formula {
-  color: #CC9393;
-}
-
-pre .shebang,
-pre .diff .addition,
-pre .comment,
-pre .java .annotation,
-pre .template_comment,
-pre .pi,
-pre .doctype {
-  color: #7F9F7F;
-}
-
-pre .xml .css,
-pre .xml .javascript,
-pre .xml .vbscript,
-pre .tex .formula {
-  opacity: 0.5;
-}
-
diff --git a/docs/slides/flops14/_support/reveal/lib/font/OpenSans-Regular.ttf b/docs/slides/flops14/_support/reveal/lib/font/OpenSans-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/lib/font/OpenSans-Regular.ttf and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf b/docs/slides/flops14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/lib/font/league_gothic-webfont.ttf b/docs/slides/flops14/_support/reveal/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/flops14/_support/reveal/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/flops14/_support/reveal/lib/js/classList.js b/docs/slides/flops14/_support/reveal/lib/js/classList.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/classList.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
-if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
diff --git a/docs/slides/flops14/_support/reveal/lib/js/data-markdown.js b/docs/slides/flops14/_support/reveal/lib/js/data-markdown.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/data-markdown.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// From https://gist.github.com/1343518
-// Modified by Hakim to handle markdown indented with tabs
-(function(){
-
-    var slides = document.querySelectorAll('[data-markdown]');
-
-    for( var i = 0, len = slides.length; i < len; i++ ) {
-        var elem = slides[i];
-
-        // strip leading whitespace so it isn't evaluated as code
-        var text = elem.innerHTML;
-
-        var leadingWs = text.match(/^\n?(\s*)/)[1].length,
-            leadingTabs = text.match(/^\n?(\t*)/)[1].length;
-
-        if( leadingTabs > 0 ) {
-            text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-        }
-        else if( leadingWs > 1 ) {
-            text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-        }
-
-        // here, have sum HTML
-        elem.innerHTML = (new Showdown.converter()).makeHtml(text);
-    }
-
-})();
diff --git a/docs/slides/flops14/_support/reveal/lib/js/head.min.js b/docs/slides/flops14/_support/reveal/lib/js/head.min.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/head.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
-    Head JS     The only script in your <HEAD>
-    Copyright   Tero Piirainen (tipiirai)
-    License     MIT / http://bit.ly/mit-license
-    Version     0.96
-
-    http://headjs.com
-*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c<a.length;c++)b.call(a,a[c],c)}}function r(a){var b;if(typeof a=="object")for(var c in a)a[c]&&(b={name:c,url:a[c]});else b={name:q(a),url:a};var d=h[b.name];if(d&&d.url===b.url)return d;h[b.name]=b;return b}function q(a){var b=a.split("/"),c=b[b.length-1],d=c.indexOf("?");return d!=-1?c.substring(0,d):c}function p(a){a._done||(a(),a._done=1)}var b=a.documentElement,c,d,e=[],f=[],g={},h={},i=a.createElement("script").async===!0||"MozAppearance"in a.documentElement.style||window.opera,j=window.head_conf&&head_conf.head||"head",k=window[j]=window[j]||function(){k.ready.apply(null,arguments)},l=1,m=2,n=3,o=4;i?k.js=function(){var a=arguments,b=a[a.length-1],c={};t(b)||(b=null),s(a,function(d,e){d!=b&&(d=r(d),c[d.name]=d,x(d,b&&e==a.length-2?function(){u(c)&&p(b)}:null))});return k}:k.js=function(){var a=arguments,b=[].slice.call(a,1),d=b[0];if(!c){f.push(function(){k.js.apply(null,a)});return k}d?(s(b,function(a){t(a)||w(r(a))}),x(r(a[0]),t(d)?d:function(){k.js.apply(null,b)})):x(r(a[0]));return k},k.ready=function(b,c){if(b==a){d?p(c):e.push(c);return k}t(b)&&(c=b,b="ALL");if(typeof b!="string"||!t(c))return k;var f=h[b];if(f&&f.state==o||b=="ALL"&&u()&&d){p(c);return k}var i=g[b];i?i.push(c):i=g[b]=[c];return k},k.ready(a,function(){u()&&s(g.ALL,function(a){p(a)}),k.feature&&k.feature("domloaded",!0)});if(window.addEventListener)a.addEventListener("DOMContentLoaded",z,!1),window.addEventListener("load",z,!1);else if(window.attachEvent){a.attachEvent("onreadystatechange",function(){a.readyState==="complete"&&z()});var A=1;try{A=window.frameElement}catch(B){}!A&&b.doScroll&&function(){try{b.doScroll("left"),z()}catch(a){setTimeout(arguments.callee,1);return}}(),window.attachEvent("onload",z)}!a.readyState&&a.addEventListener&&(a.readyState="loading",a.addEventListener("DOMContentLoaded",handler=function(){a.removeEventListener("DOMContentLoaded",handler,!1),a.readyState="complete"},!1)),setTimeout(function(){c=!0,s(f,function(a){a()})},300)})(document)
diff --git a/docs/slides/flops14/_support/reveal/lib/js/highlight.js b/docs/slides/flops14/_support/reveal/lib/js/highlight.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/highlight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Syntax highlighting with language autodetection.
-http://softwaremaniacs.org/soft/highlight/
-*/
-var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function c(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function j(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function g(t,s){var r="";for(var q=0;q<t.childNodes.length;q++){if(t.childNodes[q].nodeType==3){var p=t.childNodes[q].nodeValue;if(s){p=p.replace(/\n/g,"")}r+=p}else{if(t.childNodes[q].nodeName=="BR"){r+="\n"}else{r+=g(t.childNodes[q])}}}if(/MSIE [678]/.test(navigator.userAgent)){r=r.replace(/\r/g,"\n")}return r}function a(s){var q=s.className.split(/\s+/);q=q.concat(s.parentNode.className.split(/\s+/));for(var p=0;p<q.length;p++){var r=q[p].replace(/^language-/,"");if(d[r]||r=="no-highlight"){return r}}}function b(p){var q=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{q.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);q.push({event:"stop",offset:t,node:s.childNodes[r]})}}}return t})(p,0);return q}function l(y,z,x){var r=0;var w="";var t=[];function u(){if(y.length&&z.length){if(y[0].offset!=z[0].offset){return(y[0].offset<z[0].offset)?y:z}else{return z[0].event=="start"?y:z}}else{return y.length?y:z}}function s(C){var D="<"+C.nodeName.toLowerCase();for(var A=0;A<C.attributes.length;A++){var B=C.attributes[A];D+=" "+B.nodeName.toLowerCase();if(B.nodeValue!=undefined&&B.nodeValue!=false&&B.nodeValue!=null){D+='="'+m(B.nodeValue)+'"'}}return D+">"}while(y.length||z.length){var v=u().splice(0,1)[0];w+=m(x.substr(r,v.offset-r));r=v.offset;if(v.event=="start"){w+=s(v.node);t.push(v.node)}else{if(v.event=="stop"){var q=t.length;do{q--;var p=t[q];w+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);t.splice(q,1);while(q<t.length){w+=s(t[q]);q++}}}}w+=x.substr(r);return w}function i(){function p(u,t,v){if(u.compiled){return}if(!v){u.bR=c(t,u.b?u.b:"\\B|\\b");if(!u.e&&!u.eW){u.e="\\B|\\b"}if(u.e){u.eR=c(t,u.e)}}if(u.i){u.iR=c(t,u.i)}if(u.r==undefined){u.r=1}if(u.k){u.lR=c(t,u.l||hljs.IR,true)}for(var s in u.k){if(!u.k.hasOwnProperty(s)){continue}if(u.k[s] instanceof Object){u.kG=u.k}else{u.kG={keyword:u.k}}break}if(!u.c){u.c=[]}u.compiled=true;for(var r=0;r<u.c.length;r++){p(u.c[r],t,false)}if(u.starts){p(u.starts,t,false)}}for(var q in d){if(!d.hasOwnProperty(q)){continue}p(d[q].dM,d[q],true)}}function e(J,D){if(!i.called){i();i.called=true}function z(r,M){for(var L=0;L<M.c.length;L++){if(M.c[L].bR.test(r)){return M.c[L]}}}function w(L,r){if(C[L].e&&C[L].eR.test(r)){return 1}if(C[L].eW){var M=w(L-1,r);return M?M+1:0}return 0}function x(r,L){return L.iR&&L.iR.test(r)}function A(O,N){var M=[];for(var L=0;L<O.c.length;L++){M.push(O.c[L].b)}var r=C.length-1;do{if(C[r].e){M.push(C[r].e)}r--}while(C[r+1].eW);if(O.i){M.push(O.i)}return c(N,"("+M.join("|")+")",true)}function s(M,L){var N=C[C.length-1];if(!N.t){N.t=A(N,H)}N.t.lastIndex=L;var r=N.t.exec(M);if(r){return[M.substr(L,r.index-L),r[0],false]}else{return[M.substr(L),"",true]}}function p(O,r){var L=H.cI?r[0].toLowerCase():r[0];for(var N in O.kG){if(!O.kG.hasOwnProperty(N)){continue}var M=O.kG[N].hasOwnProperty(L);if(M){return[N,M]}}return false}function F(M,O){if(!O.k){return m(M)}var N="";var P=0;O.lR.lastIndex=0;var L=O.lR.exec(M);while(L){N+=m(M.substr(P,L.index-P));var r=p(O,L);if(r){t+=r[1];N+='<span class="'+r[0]+'">'+m(L[0])+"</span>"}else{N+=m(L[0])}P=O.lR.lastIndex;L=O.lR.exec(M)}N+=m(M.substr(P,M.length-P));return N}function K(r,M){if(M.sL&&d[M.sL]){var L=e(M.sL,r);t+=L.keyword_count;return L.value}else{return F(r,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){q+=L;M.buffer=""}else{if(M.eB){q+=m(r)+L;M.buffer=""}else{q+=L;M.buffer=r}}C.push(M);B+=M.r}function E(O,L,Q){var R=C[C.length-1];if(Q){q+=K(R.buffer+O,R);return false}var M=z(L,R);if(M){q+=K(R.buffer+O,R);I(M,L);return M.rB}var r=w(C.length-1,L);if(r){var N=R.cN?"</span>":"";if(R.rE){q+=K(R.buffer+O,R)+N}else{if(R.eE){q+=K(R.buffer+O,R)+N+m(L)}else{q+=K(R.buffer+O+L,R)+N}}while(r>1){N=C[C.length-2].cN?"</span>":"";q+=N;r--;C.length--}var P=C[C.length-1];C.length--;C[C.length-1].buffer="";if(P.starts){I(P.starts,"")}return R.rE}if(x(L,R)){throw"Illegal"}}var H=d[J];var C=[H.dM];var B=0;var t=0;var q="";try{var v=0;H.dM.buffer="";do{var y=s(D,v);var u=E(y[0],y[1],y[2]);v+=y[0].length;if(!u){v+=y[1].length}}while(!y[2]);if(C.length>1){throw"Illegal"}return{r:B,keyword_count:t,value:q}}catch(G){if(G=="Illegal"){return{r:0,keyword_count:0,value:m(D)}}else{throw G}}}function f(t){var r={keyword_count:0,r:0,value:m(t)};var q=r;for(var p in d){if(!d.hasOwnProperty(p)){continue}var s=e(p,t);s.language=p;if(s.keyword_count+s.r>q.keyword_count+q.r){q=s}if(s.keyword_count+s.r>r.keyword_count+r.r){q=r;r=s}}if(q.language){r.second_best=q}return r}function h(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function o(u,x,q){var y=g(u,q);var s=a(u);if(s=="no-highlight"){return}if(s){var w=e(s,y)}else{var w=f(y);s=w.language}var p=b(u);if(p.length){var r=document.createElement("pre");r.innerHTML=w.value;w.value=l(p,b(r),y)}w.value=h(w.value,x,q);var t=u.className;if(!t.match("(\\s|^)(language-)?"+s+"(\\s|$)")){t=t?(t+" "+s):s}if(/MSIE [678]/.test(navigator.userAgent)&&u.tagName=="CODE"&&u.parentNode.tagName=="PRE"){var r=u.parentNode;var v=document.createElement("div");v.innerHTML="<pre><code>"+w.value+"</code></pre>";u=v.firstChild.firstChild;v.firstChild.cN=r.cN;r.parentNode.replaceChild(v.firstChild,r)}else{u.innerHTML=w.value}u.className=t;u.result={language:s,kw:w.keyword_count,re:w.r};if(w.second_best){u.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function k(){if(k.called){return}k.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=j(r[p]);if(q){o(q,hljs.tabReplace)}}}function n(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",k,false);window.addEventListener("load",k,false)}else{if(window.attachEvent){window.attachEvent("onload",k)}else{window.onload=k}}}var d={};this.LANGUAGES=d;this.highlight=e;this.highlightAuto=f;this.fixMarkup=h;this.highlightBlock=o;this.initHighlighting=k;this.initHighlightingOnLoad=n;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(p,s){var r={};for(var q in p){r[q]=p[q]}if(s){for(var q in s){r[q]=s[q]}}return r}}();hljs.LANGUAGES.cs={dM:{k:{"abstract":1,as:1,base:1,bool:1,"break":1,"byte":1,"case":1,"catch":1,"char":1,checked:1,"class":1,"const":1,"continue":1,decimal:1,"default":1,delegate:1,"do":1,"do":1,"double":1,"else":1,"enum":1,event:1,explicit:1,extern:1,"false":1,"finally":1,fixed:1,"float":1,"for":1,foreach:1,"goto":1,"if":1,implicit:1,"in":1,"int":1,"interface":1,internal:1,is:1,lock:1,"long":1,namespace:1,"new":1,"null":1,object:1,operator:1,out:1,override:1,params:1,"private":1,"protected":1,"public":1,readonly:1,ref:1,"return":1,sbyte:1,sealed:1,"short":1,sizeof:1,stackalloc:1,"static":1,string:1,struct:1,"switch":1,"this":1,"throw":1,"true":1,"try":1,"typeof":1,uint:1,ulong:1,unchecked:1,unsafe:1,ushort:1,using:1,virtual:1,"volatile":1,"void":1,"while":1,ascending:1,descending:1,from:1,get:1,group:1,into:1,join:1,let:1,orderby:1,partial:1,select:1,set:1,value:1,"var":1,where:1,yield:1},c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},hljs.CLCM,hljs.CBLCLM,{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},hljs.ASM,hljs.QSM,hljs.CNM]}};hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.javascript={dM:{k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/",e:"/[gim]*",c:[{b:"\\\\/"}]}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:{"font-face":1,page:1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style",e:">",k:{title:{style:1}},c:[a],starts:{cN:"css",e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script",e:">",k:{title:{script:1}},c:[a],starts:{cN:"javascript",e:"<\/script>",rE:true,sL:"javascript"}},{cN:"vbscript",b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ />]+"},a]}]}}}();hljs.LANGUAGES.java={dM:{k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1},c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,{cN:"class",b:"(class |interface )",e:"{",k:{"class":1,"interface":1},i:":",c:[{b:"(implements|extends)",k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR}]},hljs.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}};hljs.LANGUAGES.php={cI:true,dM:{k:{and:1,include_once:1,list:1,"abstract":1,global:1,"private":1,echo:1,"interface":1,as:1,"static":1,endswitch:1,array:1,"null":1,"if":1,endwhile:1,or:1,"const":1,"for":1,endforeach:1,self:1,"var":1,"while":1,isset:1,"public":1,"protected":1,exit:1,foreach:1,"throw":1,elseif:1,"extends":1,include:1,__FILE__:1,empty:1,require_once:1,"function":1,"do":1,xor:1,"return":1,"implements":1,parent:1,clone:1,use:1,__CLASS__:1,__LINE__:1,"else":1,"break":1,print:1,"eval":1,"new":1,"catch":1,__METHOD__:1,"class":1,"case":1,exception:1,php_user_filter:1,"default":1,die:1,require:1,__FUNCTION__:1,enddeclare:1,"final":1,"try":1,"this":1,"switch":1,"continue":1,endfor:1,endif:1,declare:1,unset:1,"true":1,"false":1,namespace:1},c:[hljs.CLCM,hljs.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+",r:10}]},hljs.CNM,hljs.inherit(hljs.ASM,{i:null}),hljs.inherit(hljs.QSM,{i:null}),{cN:"variable",b:"\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"}]}};hljs.LANGUAGES.python=function(){var c={cN:"string",b:"(u|b)?r?'''",e:"'''",r:10};var b={cN:"string",b:'(u|b)?r?"""',e:'"""',r:10};var a={cN:"string",b:"(u|r|ur|b|br)'",e:"'",c:[hljs.BE],r:10};var f={cN:"string",b:'(u|r|ur|b|br)"',e:'"',c:[hljs.BE],r:10};var d={cN:"title",b:hljs.UIR};var e={cN:"params",b:"\\(",e:"\\)",c:[c,b,a,f,hljs.ASM,hljs.QSM]};return{dM:{k:{keyword:{and:1,elif:1,is:1,global:1,as:1,"in":1,"if":1,from:1,raise:1,"for":1,except:1,"finally":1,print:1,"import":1,pass:1,"return":1,exec:1,"else":1,"break":1,not:1,"with":1,"class":1,assert:1,yield:1,"try":1,"while":1,"continue":1,del:1,or:1,def:1,lambda:1,nonlocal:10},built_in:{None:1,True:1,False:1,Ellipsis:1,NotImplemented:1}},i:"(</|->|\\?)",c:[hljs.HCM,c,b,a,f,hljs.ASM,hljs.QSM,{cN:"function",b:"\\bdef ",e:":",i:"$",k:{def:1},c:[d,e],r:10},{cN:"class",b:"\\bclass ",e:":",i:"[${]",k:{"class":1},c:[d,e],r:10},hljs.CNM,{cN:"decorator",b:"@",e:"$"}]}}}();hljs.LANGUAGES.perl=function(){var c={getpwent:1,getservent:1,quotemeta:1,msgrcv:1,scalar:1,kill:1,dbmclose:1,undef:1,lc:1,ma:1,syswrite:1,tr:1,send:1,umask:1,sysopen:1,shmwrite:1,vec:1,qx:1,utime:1,local:1,oct:1,semctl:1,localtime:1,readpipe:1,"do":1,"return":1,format:1,read:1,sprintf:1,dbmopen:1,pop:1,getpgrp:1,not:1,getpwnam:1,rewinddir:1,qq:1,fileno:1,qw:1,endprotoent:1,wait:1,sethostent:1,bless:1,s:1,opendir:1,"continue":1,each:1,sleep:1,endgrent:1,shutdown:1,dump:1,chomp:1,connect:1,getsockname:1,die:1,socketpair:1,close:1,flock:1,exists:1,index:1,shmget:1,sub:1,"for":1,endpwent:1,redo:1,lstat:1,msgctl:1,setpgrp:1,abs:1,exit:1,select:1,print:1,ref:1,gethostbyaddr:1,unshift:1,fcntl:1,syscall:1,"goto":1,getnetbyaddr:1,join:1,gmtime:1,symlink:1,semget:1,splice:1,x:1,getpeername:1,recv:1,log:1,setsockopt:1,cos:1,last:1,reverse:1,gethostbyname:1,getgrnam:1,study:1,formline:1,endhostent:1,times:1,chop:1,length:1,gethostent:1,getnetent:1,pack:1,getprotoent:1,getservbyname:1,rand:1,mkdir:1,pos:1,chmod:1,y:1,substr:1,endnetent:1,printf:1,next:1,open:1,msgsnd:1,readdir:1,use:1,unlink:1,getsockopt:1,getpriority:1,rindex:1,wantarray:1,hex:1,system:1,getservbyport:1,endservent:1,"int":1,chr:1,untie:1,rmdir:1,prototype:1,tell:1,listen:1,fork:1,shmread:1,ucfirst:1,setprotoent:1,"else":1,sysseek:1,link:1,getgrgid:1,shmctl:1,waitpid:1,unpack:1,getnetbyname:1,reset:1,chdir:1,grep:1,split:1,require:1,caller:1,lcfirst:1,until:1,warn:1,"while":1,values:1,shift:1,telldir:1,getpwuid:1,my:1,getprotobynumber:1,"delete":1,and:1,sort:1,uc:1,defined:1,srand:1,accept:1,"package":1,seekdir:1,getprotobyname:1,semop:1,our:1,rename:1,seek:1,"if":1,q:1,chroot:1,sysread:1,setpwent:1,no:1,crypt:1,getc:1,chown:1,sqrt:1,write:1,setnetent:1,setpriority:1,foreach:1,tie:1,sin:1,msgget:1,map:1,stat:1,getlogin:1,unless:1,elsif:1,truncate:1,exec:1,keys:1,glob:1,tied:1,closedir:1,ioctl:1,socket:1,readlink:1,"eval":1,xor:1,readline:1,binmode:1,setservent:1,eof:1,ord:1,bind:1,alarm:1,pipe:1,atan2:1,getgrent:1,exp:1,time:1,push:1,setgrent:1,gt:1,lt:1,or:1,ne:1,m:1};var d={cN:"subst",b:"[$@]\\{",e:"}",k:c,r:10};var b={cN:"variable",b:"\\$\\d"};var a={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var g=[hljs.BE,d,b,a];var f={b:"->",c:[{b:hljs.IR},{b:"{",e:"}"}]};var e=[b,a,hljs.HCM,{cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},f,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:g,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:g,r:5},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"string",b:'"',e:'"',c:g,r:0},{cN:"string",b:"`",e:"`",c:[hljs.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[hljs.BE],r:0},{cN:"sub",b:"\\bsub\\b",e:"(\\s*\\(.*?\\))?[;{]",k:{sub:1},r:5},{cN:"operator",b:"-\\w\\b",r:0},{cN:"pod",b:"\\=\\w",e:"\\=cut"}];d.c=e;f.c[1].c=e;return{dM:{k:c,c:e}}}();hljs.LANGUAGES.cpp=function(){var b={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};var a={cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10};a.c=[a];return{dM:{k:b,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},a]}}}();
diff --git a/docs/slides/flops14/_support/reveal/lib/js/html5shiv.js b/docs/slides/flops14/_support/reveal/lib/js/html5shiv.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/html5shiv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-document.createElement('header');
-document.createElement('nav');
-document.createElement('section');
-document.createElement('article');
-document.createElement('aside');
-document.createElement('footer');
-document.createElement('hgroup');
diff --git a/docs/slides/flops14/_support/reveal/lib/js/showdown.js b/docs/slides/flops14/_support/reveal/lib/js/showdown.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/lib/js/showdown.js
+++ /dev/null
@@ -1,1341 +0,0 @@
-//
-// showdown.js -- A javascript port of Markdown.
-//
-// Copyright (c) 2007 John Fraser.
-//
-// Original Markdown Copyright (c) 2004-2005 John Gruber
-//   <http://daringfireball.net/projects/markdown/>
-//
-// Redistributable under a BSD-style open source license.
-// See license.txt for more information.
-//
-// The full source distribution is at:
-//
-//				A A L
-//				T C A
-//				T K B
-//
-//   <http://www.attacklab.net/>
-//
-
-//
-// Wherever possible, Showdown is a straight, line-by-line port
-// of the Perl version of Markdown.
-//
-// This is not a normal parser design; it's basically just a
-// series of string substitutions.  It's hard to read and
-// maintain this way,  but keeping Showdown close to the original
-// design makes it easier to port new features.
-//
-// More importantly, Showdown behaves like markdown.pl in most
-// edge cases.  So web applications can do client-side preview
-// in Javascript, and then build identical HTML on the server.
-//
-// This port needs the new RegExp functionality of ECMA 262,
-// 3rd Edition (i.e. Javascript 1.5).  Most modern web browsers
-// should do fine.  Even with the new regular expression features,
-// We do a lot of work to emulate Perl's regex functionality.
-// The tricky changes in this file mostly have the "attacklab:"
-// label.  Major or self-explanatory changes don't.
-//
-// Smart diff tools like Araxis Merge will be able to match up
-// this file with markdown.pl in a useful way.  A little tweaking
-// helps: in a copy of markdown.pl, replace "#" with "//" and
-// replace "$text" with "text".  Be sure to ignore whitespace
-// and line endings.
-//
-
-
-//
-// Showdown usage:
-//
-//   var text = "Markdown *rocks*.";
-//
-//   var converter = new Showdown.converter();
-//   var html = converter.makeHtml(text);
-//
-//   alert(html);
-//
-// Note: move the sample code to the bottom of this
-// file before uncommenting it.
-//
-
-
-//
-// Showdown namespace
-//
-var Showdown = {};
-
-//
-// converter
-//
-// Wraps all "globals" so that the only thing
-// exposed is makeHtml().
-//
-Showdown.converter = function() {
-
-//
-// Globals:
-//
-
-// Global hashes, used by various utility routines
-var g_urls;
-var g_titles;
-var g_html_blocks;
-
-// Used to track when we're inside an ordered or unordered list
-// (see _ProcessListItems() for details):
-var g_list_level = 0;
-
-
-this.makeHtml = function(text) {
-//
-// Main function. The order in which other subs are called here is
-// essential. Link and image substitutions need to happen before
-// _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the <a>
-// and <img> tags get encoded.
-//
-
-	// Clear the global hashes. If we don't clear these, you get conflicts
-	// from other articles when generating a page which contains more than
-	// one article (e.g. an index page that shows the N most recent
-	// articles):
-	g_urls = new Array();
-	g_titles = new Array();
-	g_html_blocks = new Array();
-
-	// attacklab: Replace ~ with ~T
-	// This lets us use tilde as an escape char to avoid md5 hashes
-	// The choice of character is arbitray; anything that isn't
-    // magic in Markdown will work.
-	text = text.replace(/~/g,"~T");
-
-	// attacklab: Replace $ with ~D
-	// RegExp interprets $ as a special character
-	// when it's in a replacement string
-	text = text.replace(/\$/g,"~D");
-
-	// Standardize line endings
-	text = text.replace(/\r\n/g,"\n"); // DOS to Unix
-	text = text.replace(/\r/g,"\n"); // Mac to Unix
-
-	// Make sure text begins and ends with a couple of newlines:
-	text = "\n\n" + text + "\n\n";
-
-	// Convert all tabs to spaces.
-	text = _Detab(text);
-
-	// Strip any lines consisting only of spaces and tabs.
-	// This makes subsequent regexen easier to write, because we can
-	// match consecutive blank lines with /\n+/ instead of something
-	// contorted like /[ \t]*\n+/ .
-	text = text.replace(/^[ \t]+$/mg,"");
-
-	// Handle github codeblocks prior to running HashHTML so that
-	// HTML contained within the codeblock gets escaped propertly
-	text = _DoGithubCodeBlocks(text);
-
-	// Turn block-level HTML blocks into hash entries
-	text = _HashHTMLBlocks(text);
-
-	// Strip link definitions, store in hashes.
-	text = _StripLinkDefinitions(text);
-
-	text = _RunBlockGamut(text);
-
-	text = _UnescapeSpecialChars(text);
-
-	// attacklab: Restore dollar signs
-	text = text.replace(/~D/g,"$$");
-
-	// attacklab: Restore tildes
-	text = text.replace(/~T/g,"~");
-
-	return text;
-};
-
-
-var _StripLinkDefinitions = function(text) {
-//
-// Strips link definitions from text, stores the URLs and titles in
-// hash references.
-//
-
-	// Link defs are in the form: ^[id]: url "optional title"
-
-	/*
-		var text = text.replace(/
-				^[ ]{0,3}\[(.+)\]:  // id = $1  attacklab: g_tab_width - 1
-				  [ \t]*
-				  \n?				// maybe *one* newline
-				  [ \t]*
-				<?(\S+?)>?			// url = $2
-				  [ \t]*
-				  \n?				// maybe one newline
-				  [ \t]*
-				(?:
-				  (\n*)				// any lines skipped = $3 attacklab: lookbehind removed
-				  ["(]
-				  (.+?)				// title = $4
-				  [")]
-				  [ \t]*
-				)?					// title is optional
-				(?:\n+|$)
-			  /gm,
-			  function(){...});
-	*/
-	var text = text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|\Z)/gm,
-		function (wholeMatch,m1,m2,m3,m4) {
-			m1 = m1.toLowerCase();
-			g_urls[m1] = _EncodeAmpsAndAngles(m2);  // Link IDs are case-insensitive
-			if (m3) {
-				// Oops, found blank lines, so it's not a title.
-				// Put back the parenthetical statement we stole.
-				return m3+m4;
-			} else if (m4) {
-				g_titles[m1] = m4.replace(/"/g,"&quot;");
-			}
-
-			// Completely remove the definition from the text
-			return "";
-		}
-	);
-
-	return text;
-}
-
-
-var _HashHTMLBlocks = function(text) {
-	// attacklab: Double up blank lines to reduce lookaround
-	text = text.replace(/\n/g,"\n\n");
-
-	// Hashify HTML blocks:
-	// We only want to do this for block-level HTML tags, such as headers,
-	// lists, and tables. That's because we still want to wrap <p>s around
-	// "paragraphs" that are wrapped in non-block-level tags, such as anchors,
-	// phrase emphasis, and spans. The list of tags we're looking for is
-	// hard-coded:
-	var block_tags_a = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside";
-	var block_tags_b = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside";
-
-	// First, look for nested blocks, e.g.:
-	//   <div>
-	//     <div>
-	//     tags for inner block must be indented.
-	//     </div>
-	//   </div>
-	//
-	// The outermost tags must start at the left margin for this to match, and
-	// the inner nested divs must be indented.
-	// We need to do this before the next, more liberal match, because the next
-	// match will start at the first `<div>` and stop at the first `</div>`.
-
-	// attacklab: This regex can be expensive when it fails.
-	/*
-		var text = text.replace(/
-		(						// save in $1
-			^					// start of line  (with /m)
-			<($block_tags_a)	// start tag = $2
-			\b					// word break
-								// attacklab: hack around khtml/pcre bug...
-			[^\r]*?\n			// any number of lines, minimally matching
-			</\2>				// the matching end tag
-			[ \t]*				// trailing spaces/tabs
-			(?=\n+)				// followed by a newline
-		)						// attacklab: there are sentinel newlines at end of document
-		/gm,function(){...}};
-	*/
-	text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,hashElement);
-
-	//
-	// Now match more liberally, simply from `\n<tag>` to `</tag>\n`
-	//
-
-	/*
-		var text = text.replace(/
-		(						// save in $1
-			^					// start of line  (with /m)
-			<($block_tags_b)	// start tag = $2
-			\b					// word break
-								// attacklab: hack around khtml/pcre bug...
-			[^\r]*?				// any number of lines, minimally matching
-			.*</\2>				// the matching end tag
-			[ \t]*				// trailing spaces/tabs
-			(?=\n+)				// followed by a newline
-		)						// attacklab: there are sentinel newlines at end of document
-		/gm,function(){...}};
-	*/
-	text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,hashElement);
-
-	// Special case just for <hr />. It was easier to make a special case than
-	// to make the other regex more complicated.
-
-	/*
-		text = text.replace(/
-		(						// save in $1
-			\n\n				// Starting after a blank line
-			[ ]{0,3}
-			(<(hr)				// start tag = $2
-			\b					// word break
-			([^<>])*?			//
-			\/?>)				// the matching end tag
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// Special case for standalone HTML comments:
-
-	/*
-		text = text.replace(/
-		(						// save in $1
-			\n\n				// Starting after a blank line
-			[ ]{0,3}			// attacklab: g_tab_width - 1
-			<!
-			(--[^\r]*?--\s*)+
-			>
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// PHP and ASP-style processor instructions (<?...?> and <%...%>)
-
-	/*
-		text = text.replace(/
-		(?:
-			\n\n				// Starting after a blank line
-		)
-		(						// save in $1
-			[ ]{0,3}			// attacklab: g_tab_width - 1
-			(?:
-				<([?%])			// $2
-				[^\r]*?
-				\2>
-			)
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// attacklab: Undo double lines (see comment at top of this function)
-	text = text.replace(/\n\n/g,"\n");
-	return text;
-}
-
-var hashElement = function(wholeMatch,m1) {
-	var blockText = m1;
-
-	// Undo double lines
-	blockText = blockText.replace(/\n\n/g,"\n");
-	blockText = blockText.replace(/^\n/,"");
-
-	// strip trailing blank lines
-	blockText = blockText.replace(/\n+$/g,"");
-
-	// Replace the element text with a marker ("~KxK" where x is its key)
-	blockText = "\n\n~K" + (g_html_blocks.push(blockText)-1) + "K\n\n";
-
-	return blockText;
-};
-
-var _RunBlockGamut = function(text) {
-//
-// These are all the transformations that form block-level
-// tags like paragraphs, headers, and list items.
-//
-	text = _DoHeaders(text);
-
-	// Do Horizontal Rules:
-	var key = hashBlock("<hr />");
-	text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,key);
-	text = text.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,key);
-	text = text.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,key);
-
-	text = _DoLists(text);
-	text = _DoCodeBlocks(text);
-	text = _DoBlockQuotes(text);
-
-	// We already ran _HashHTMLBlocks() before, in Markdown(), but that
-	// was to escape raw HTML in the original Markdown source. This time,
-	// we're escaping the markup we've just created, so that we don't wrap
-	// <p> tags around block-level tags.
-	text = _HashHTMLBlocks(text);
-	text = _FormParagraphs(text);
-
-	return text;
-};
-
-
-var _RunSpanGamut = function(text) {
-//
-// These are all the transformations that occur *within* block-level
-// tags like paragraphs, headers, and list items.
-//
-
-	text = _DoCodeSpans(text);
-	text = _EscapeSpecialCharsWithinTagAttributes(text);
-	text = _EncodeBackslashEscapes(text);
-
-	// Process anchor and image tags. Images must come first,
-	// because ![foo][f] looks like an anchor.
-	text = _DoImages(text);
-	text = _DoAnchors(text);
-
-	// Make links out of things like `<http://example.com/>`
-	// Must come after _DoAnchors(), because you can use < and >
-	// delimiters in inline links like [this](<url>).
-	text = _DoAutoLinks(text);
-	text = _EncodeAmpsAndAngles(text);
-	text = _DoItalicsAndBold(text);
-
-	// Do hard breaks:
-	text = text.replace(/  +\n/g," <br />\n");
-
-	return text;
-}
-
-var _EscapeSpecialCharsWithinTagAttributes = function(text) {
-//
-// Within tags -- meaning between < and > -- encode [\ ` * _] so they
-// don't conflict with their use in Markdown for code, italics and strong.
-//
-
-	// Build a regex to find HTML tags and comments.  See Friedl's
-	// "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
-	var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;
-
-	text = text.replace(regex, function(wholeMatch) {
-		var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g,"$1`");
-		tag = escapeCharacters(tag,"\\`*_");
-		return tag;
-	});
-
-	return text;
-}
-
-var _DoAnchors = function(text) {
-//
-// Turn Markdown link shortcuts into XHTML <a> tags.
-//
-	//
-	// First, handle reference-style links: [link text] [id]
-	//
-
-	/*
-		text = text.replace(/
-		(							// wrap whole match in $1
-			\[
-			(
-				(?:
-					\[[^\]]*\]		// allow brackets nested one level
-					|
-					[^\[]			// or anything else
-				)*
-			)
-			\]
-
-			[ ]?					// one optional space
-			(?:\n[ ]*)?				// one optional newline followed by spaces
-
-			\[
-			(.*?)					// id = $3
-			\]
-		)()()()()					// pad remaining backreferences
-		/g,_DoAnchors_callback);
-	*/
-	text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeAnchorTag);
-
-	//
-	// Next, inline-style links: [link text](url "optional title")
-	//
-
-	/*
-		text = text.replace(/
-			(						// wrap whole match in $1
-				\[
-				(
-					(?:
-						\[[^\]]*\]	// allow brackets nested one level
-					|
-					[^\[\]]			// or anything else
-				)
-			)
-			\]
-			\(						// literal paren
-			[ \t]*
-			()						// no id, so leave $3 empty
-			<?(.*?)>?				// href = $4
-			[ \t]*
-			(						// $5
-				(['"])				// quote char = $6
-				(.*?)				// Title = $7
-				\6					// matching quote
-				[ \t]*				// ignore any spaces/tabs between closing quote and )
-			)?						// title is optional
-			\)
-		)
-		/g,writeAnchorTag);
-	*/
-	text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeAnchorTag);
-
-	//
-	// Last, handle reference-style shortcuts: [link text]
-	// These must come last in case you've also got [link test][1]
-	// or [link test](/foo)
-	//
-
-	/*
-		text = text.replace(/
-		(		 					// wrap whole match in $1
-			\[
-			([^\[\]]+)				// link text = $2; can't contain '[' or ']'
-			\]
-		)()()()()()					// pad rest of backreferences
-		/g, writeAnchorTag);
-	*/
-	text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag);
-
-	return text;
-}
-
-var writeAnchorTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
-	if (m7 == undefined) m7 = "";
-	var whole_match = m1;
-	var link_text   = m2;
-	var link_id	 = m3.toLowerCase();
-	var url		= m4;
-	var title	= m7;
-
-	if (url == "") {
-		if (link_id == "") {
-			// lower-case and turn embedded newlines into spaces
-			link_id = link_text.toLowerCase().replace(/ ?\n/g," ");
-		}
-		url = "#"+link_id;
-
-		if (g_urls[link_id] != undefined) {
-			url = g_urls[link_id];
-			if (g_titles[link_id] != undefined) {
-				title = g_titles[link_id];
-			}
-		}
-		else {
-			if (whole_match.search(/\(\s*\)$/m)>-1) {
-				// Special case for explicit empty url
-				url = "";
-			} else {
-				return whole_match;
-			}
-		}
-	}
-
-	url = escapeCharacters(url,"*_");
-	var result = "<a href=\"" + url + "\"";
-
-	if (title != "") {
-		title = title.replace(/"/g,"&quot;");
-		title = escapeCharacters(title,"*_");
-		result +=  " title=\"" + title + "\"";
-	}
-
-	result += ">" + link_text + "</a>";
-
-	return result;
-}
-
-
-var _DoImages = function(text) {
-//
-// Turn Markdown image shortcuts into <img> tags.
-//
-
-	//
-	// First, handle reference-style labeled images: ![alt text][id]
-	//
-
-	/*
-		text = text.replace(/
-		(						// wrap whole match in $1
-			!\[
-			(.*?)				// alt text = $2
-			\]
-
-			[ ]?				// one optional space
-			(?:\n[ ]*)?			// one optional newline followed by spaces
-
-			\[
-			(.*?)				// id = $3
-			\]
-		)()()()()				// pad rest of backreferences
-		/g,writeImageTag);
-	*/
-	text = text.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeImageTag);
-
-	//
-	// Next, handle inline images:  ![alt text](url "optional title")
-	// Don't forget: encode * and _
-
-	/*
-		text = text.replace(/
-		(						// wrap whole match in $1
-			!\[
-			(.*?)				// alt text = $2
-			\]
-			\s?					// One optional whitespace character
-			\(					// literal paren
-			[ \t]*
-			()					// no id, so leave $3 empty
-			<?(\S+?)>?			// src url = $4
-			[ \t]*
-			(					// $5
-				(['"])			// quote char = $6
-				(.*?)			// title = $7
-				\6				// matching quote
-				[ \t]*
-			)?					// title is optional
-		\)
-		)
-		/g,writeImageTag);
-	*/
-	text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeImageTag);
-
-	return text;
-}
-
-var writeImageTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
-	var whole_match = m1;
-	var alt_text   = m2;
-	var link_id	 = m3.toLowerCase();
-	var url		= m4;
-	var title	= m7;
-
-	if (!title) title = "";
-
-	if (url == "") {
-		if (link_id == "") {
-			// lower-case and turn embedded newlines into spaces
-			link_id = alt_text.toLowerCase().replace(/ ?\n/g," ");
-		}
-		url = "#"+link_id;
-
-		if (g_urls[link_id] != undefined) {
-			url = g_urls[link_id];
-			if (g_titles[link_id] != undefined) {
-				title = g_titles[link_id];
-			}
-		}
-		else {
-			return whole_match;
-		}
-	}
-
-	alt_text = alt_text.replace(/"/g,"&quot;");
-	url = escapeCharacters(url,"*_");
-	var result = "<img src=\"" + url + "\" alt=\"" + alt_text + "\"";
-
-	// attacklab: Markdown.pl adds empty title attributes to images.
-	// Replicate this bug.
-
-	//if (title != "") {
-		title = title.replace(/"/g,"&quot;");
-		title = escapeCharacters(title,"*_");
-		result +=  " title=\"" + title + "\"";
-	//}
-
-	result += " />";
-
-	return result;
-}
-
-
-var _DoHeaders = function(text) {
-
-	// Setext-style headers:
-	//	Header 1
-	//	========
-	//
-	//	Header 2
-	//	--------
-	//
-	text = text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,
-		function(wholeMatch,m1){return hashBlock('<h1 id="' + headerId(m1) + '">' + _RunSpanGamut(m1) + "</h1>");});
-
-	text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,
-		function(matchFound,m1){return hashBlock('<h2 id="' + headerId(m1) + '">' + _RunSpanGamut(m1) + "</h2>");});
-
-	// atx-style headers:
-	//  # Header 1
-	//  ## Header 2
-	//  ## Header 2 with closing hashes ##
-	//  ...
-	//  ###### Header 6
-	//
-
-	/*
-		text = text.replace(/
-			^(\#{1,6})				// $1 = string of #'s
-			[ \t]*
-			(.+?)					// $2 = Header text
-			[ \t]*
-			\#*						// optional closing #'s (not counted)
-			\n+
-		/gm, function() {...});
-	*/
-
-	text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,
-		function(wholeMatch,m1,m2) {
-			var h_level = m1.length;
-			return hashBlock("<h" + h_level + ' id="' + headerId(m2) + '">' + _RunSpanGamut(m2) + "</h" + h_level + ">");
-		});
-
-	function headerId(m) {
-		return m.replace(/[^\w]/g, '').toLowerCase();
-	}
-	return text;
-}
-
-// This declaration keeps Dojo compressor from outputting garbage:
-var _ProcessListItems;
-
-var _DoLists = function(text) {
-//
-// Form HTML ordered (numbered) and unordered (bulleted) lists.
-//
-
-	// attacklab: add sentinel to hack around khtml/safari bug:
-	// http://bugs.webkit.org/show_bug.cgi?id=11231
-	text += "~0";
-
-	// Re-usable pattern to match any entirel ul or ol list:
-
-	/*
-		var whole_list = /
-		(									// $1 = whole list
-			(								// $2
-				[ ]{0,3}					// attacklab: g_tab_width - 1
-				([*+-]|\d+[.])				// $3 = first list item marker
-				[ \t]+
-			)
-			[^\r]+?
-			(								// $4
-				~0							// sentinel for workaround; should be $
-			|
-				\n{2,}
-				(?=\S)
-				(?!							// Negative lookahead for another list item marker
-					[ \t]*
-					(?:[*+-]|\d+[.])[ \t]+
-				)
-			)
-		)/g
-	*/
-	var whole_list = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
-
-	if (g_list_level) {
-		text = text.replace(whole_list,function(wholeMatch,m1,m2) {
-			var list = m1;
-			var list_type = (m2.search(/[*+-]/g)>-1) ? "ul" : "ol";
-
-			// Turn double returns into triple returns, so that we can make a
-			// paragraph for the last item in a list, if necessary:
-			list = list.replace(/\n{2,}/g,"\n\n\n");;
-			var result = _ProcessListItems(list);
-
-			// Trim any trailing whitespace, to put the closing `</$list_type>`
-			// up on the preceding line, to get it past the current stupid
-			// HTML block parser. This is a hack to work around the terrible
-			// hack that is the HTML block parser.
-			result = result.replace(/\s+$/,"");
-			result = "<"+list_type+">" + result + "</"+list_type+">\n";
-			return result;
-		});
-	} else {
-		whole_list = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g;
-		text = text.replace(whole_list,function(wholeMatch,m1,m2,m3) {
-			var runup = m1;
-			var list = m2;
-
-			var list_type = (m3.search(/[*+-]/g)>-1) ? "ul" : "ol";
-			// Turn double returns into triple returns, so that we can make a
-			// paragraph for the last item in a list, if necessary:
-			var list = list.replace(/\n{2,}/g,"\n\n\n");;
-			var result = _ProcessListItems(list);
-			result = runup + "<"+list_type+">\n" + result + "</"+list_type+">\n";
-			return result;
-		});
-	}
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-}
-
-_ProcessListItems = function(list_str) {
-//
-//  Process the contents of a single ordered or unordered list, splitting it
-//  into individual list items.
-//
-	// The $g_list_level global keeps track of when we're inside a list.
-	// Each time we enter a list, we increment it; when we leave a list,
-	// we decrement. If it's zero, we're not in a list anymore.
-	//
-	// We do this because when we're not inside a list, we want to treat
-	// something like this:
-	//
-	//    I recommend upgrading to version
-	//    8. Oops, now this line is treated
-	//    as a sub-list.
-	//
-	// As a single paragraph, despite the fact that the second line starts
-	// with a digit-period-space sequence.
-	//
-	// Whereas when we're inside a list (or sub-list), that line will be
-	// treated as the start of a sub-list. What a kludge, huh? This is
-	// an aspect of Markdown's syntax that's hard to parse perfectly
-	// without resorting to mind-reading. Perhaps the solution is to
-	// change the syntax rules such that sub-lists must start with a
-	// starting cardinal number; e.g. "1." or "a.".
-
-	g_list_level++;
-
-	// trim trailing blank lines:
-	list_str = list_str.replace(/\n{2,}$/,"\n");
-
-	// attacklab: add sentinel to emulate \z
-	list_str += "~0";
-
-	/*
-		list_str = list_str.replace(/
-			(\n)?							// leading line = $1
-			(^[ \t]*)						// leading whitespace = $2
-			([*+-]|\d+[.]) [ \t]+			// list marker = $3
-			([^\r]+?						// list item text   = $4
-			(\n{1,2}))
-			(?= \n* (~0 | \2 ([*+-]|\d+[.]) [ \t]+))
-		/gm, function(){...});
-	*/
-	list_str = list_str.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,
-		function(wholeMatch,m1,m2,m3,m4){
-			var item = m4;
-			var leading_line = m1;
-			var leading_space = m2;
-
-			if (leading_line || (item.search(/\n{2,}/)>-1)) {
-				item = _RunBlockGamut(_Outdent(item));
-			}
-			else {
-				// Recursion for sub-lists:
-				item = _DoLists(_Outdent(item));
-				item = item.replace(/\n$/,""); // chomp(item)
-				item = _RunSpanGamut(item);
-			}
-
-			return  "<li>" + item + "</li>\n";
-		}
-	);
-
-	// attacklab: strip sentinel
-	list_str = list_str.replace(/~0/g,"");
-
-	g_list_level--;
-	return list_str;
-}
-
-
-var _DoCodeBlocks = function(text) {
-//
-//  Process Markdown `<pre><code>` blocks.
-//
-
-	/*
-		text = text.replace(text,
-			/(?:\n\n|^)
-			(								// $1 = the code block -- one or more lines, starting with a space/tab
-				(?:
-					(?:[ ]{4}|\t)			// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
-					.*\n+
-				)+
-			)
-			(\n*[ ]{0,3}[^ \t\n]|(?=~0))	// attacklab: g_tab_width
-		/g,function(){...});
-	*/
-
-	// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
-	text += "~0";
-
-	text = text.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,
-		function(wholeMatch,m1,m2) {
-			var codeblock = m1;
-			var nextChar = m2;
-
-			codeblock = _EncodeCode( _Outdent(codeblock));
-			codeblock = _Detab(codeblock);
-			codeblock = codeblock.replace(/^\n+/g,""); // trim leading newlines
-			codeblock = codeblock.replace(/\n+$/g,""); // trim trailing whitespace
-
-			codeblock = "<pre><code>" + codeblock + "\n</code></pre>";
-
-			return hashBlock(codeblock) + nextChar;
-		}
-	);
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-};
-
-var _DoGithubCodeBlocks = function(text) {
-//
-//  Process Github-style code blocks
-//  Example:
-//  ```ruby
-//  def hello_world(x)
-//    puts "Hello, #{x}"
-//  end
-//  ```
-//
-
-
-	// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
-	text += "~0";
-
-	text = text.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,
-		function(wholeMatch,m1,m2) {
-			var language = m1;
-			var codeblock = m2;
-
-			codeblock = _EncodeCode(codeblock);
-			codeblock = _Detab(codeblock);
-			codeblock = codeblock.replace(/^\n+/g,""); // trim leading newlines
-			codeblock = codeblock.replace(/\n+$/g,""); // trim trailing whitespace
-
-			codeblock = "<pre><code" + (language ? " class=\"" + language + '"' : "") + ">" + codeblock + "\n</code></pre>";
-
-			return hashBlock(codeblock);
-		}
-	);
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-}
-
-var hashBlock = function(text) {
-	text = text.replace(/(^\n+|\n+$)/g,"");
-	return "\n\n~K" + (g_html_blocks.push(text)-1) + "K\n\n";
-}
-
-var _DoCodeSpans = function(text) {
-//
-//   *  Backtick quotes are used for <code></code> spans.
-//
-//   *  You can use multiple backticks as the delimiters if you want to
-//	 include literal backticks in the code span. So, this input:
-//
-//		 Just type ``foo `bar` baz`` at the prompt.
-//
-//	   Will translate to:
-//
-//		 <p>Just type <code>foo `bar` baz</code> at the prompt.</p>
-//
-//	There's no arbitrary limit to the number of backticks you
-//	can use as delimters. If you need three consecutive backticks
-//	in your code, use four for delimiters, etc.
-//
-//  *  You can use spaces to get literal backticks at the edges:
-//
-//		 ... type `` `bar` `` ...
-//
-//	   Turns to:
-//
-//		 ... type <code>`bar`</code> ...
-//
-
-	/*
-		text = text.replace(/
-			(^|[^\\])					// Character before opening ` can't be a backslash
-			(`+)						// $2 = Opening run of `
-			(							// $3 = The code block
-				[^\r]*?
-				[^`]					// attacklab: work around lack of lookbehind
-			)
-			\2							// Matching closer
-			(?!`)
-		/gm, function(){...});
-	*/
-
-	text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
-		function(wholeMatch,m1,m2,m3,m4) {
-			var c = m3;
-			c = c.replace(/^([ \t]*)/g,"");	// leading whitespace
-			c = c.replace(/[ \t]*$/g,"");	// trailing whitespace
-			c = _EncodeCode(c);
-			return m1+"<code>"+c+"</code>";
-		});
-
-	return text;
-}
-
-var _EncodeCode = function(text) {
-//
-// Encode/escape certain characters inside Markdown code runs.
-// The point is that in code, these characters are literals,
-// and lose their special Markdown meanings.
-//
-	// Encode all ampersands; HTML entities are not
-	// entities within a Markdown code span.
-	text = text.replace(/&/g,"&amp;");
-
-	// Do the angle bracket song and dance:
-	text = text.replace(/</g,"&lt;");
-	text = text.replace(/>/g,"&gt;");
-
-	// Now, escape characters that are magic in Markdown:
-	text = escapeCharacters(text,"\*_{}[]\\",false);
-
-// jj the line above breaks this:
-//---
-
-//* Item
-
-//   1. Subitem
-
-//            special char: *
-//---
-
-	return text;
-}
-
-
-var _DoItalicsAndBold = function(text) {
-
-	// <strong> must go first:
-	text = text.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,
-		"<strong>$2</strong>");
-
-	text = text.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,
-		"<em>$2</em>");
-
-	return text;
-}
-
-
-var _DoBlockQuotes = function(text) {
-
-	/*
-		text = text.replace(/
-		(								// Wrap whole match in $1
-			(
-				^[ \t]*>[ \t]?			// '>' at the start of a line
-				.+\n					// rest of the first line
-				(.+\n)*					// subsequent consecutive lines
-				\n*						// blanks
-			)+
-		)
-		/gm, function(){...});
-	*/
-
-	text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,
-		function(wholeMatch,m1) {
-			var bq = m1;
-
-			// attacklab: hack around Konqueror 3.5.4 bug:
-			// "----------bug".replace(/^-/g,"") == "bug"
-
-			bq = bq.replace(/^[ \t]*>[ \t]?/gm,"~0");	// trim one level of quoting
-
-			// attacklab: clean up hack
-			bq = bq.replace(/~0/g,"");
-
-			bq = bq.replace(/^[ \t]+$/gm,"");		// trim whitespace-only lines
-			bq = _RunBlockGamut(bq);				// recurse
-
-			bq = bq.replace(/(^|\n)/g,"$1  ");
-			// These leading spaces screw with <pre> content, so we need to fix that:
-			bq = bq.replace(
-					/(\s*<pre>[^\r]+?<\/pre>)/gm,
-				function(wholeMatch,m1) {
-					var pre = m1;
-					// attacklab: hack around Konqueror 3.5.4 bug:
-					pre = pre.replace(/^  /mg,"~0");
-					pre = pre.replace(/~0/g,"");
-					return pre;
-				});
-
-			return hashBlock("<blockquote>\n" + bq + "\n</blockquote>");
-		});
-	return text;
-}
-
-
-var _FormParagraphs = function(text) {
-//
-//  Params:
-//    $text - string to process with html <p> tags
-//
-
-	// Strip leading and trailing lines:
-	text = text.replace(/^\n+/g,"");
-	text = text.replace(/\n+$/g,"");
-
-	var grafs = text.split(/\n{2,}/g);
-	var grafsOut = new Array();
-
-	//
-	// Wrap <p> tags.
-	//
-	var end = grafs.length;
-	for (var i=0; i<end; i++) {
-		var str = grafs[i];
-
-		// if this is an HTML marker, copy it
-		if (str.search(/~K(\d+)K/g) >= 0) {
-			grafsOut.push(str);
-		}
-		else if (str.search(/\S/) >= 0) {
-			str = _RunSpanGamut(str);
-			str = str.replace(/^([ \t]*)/g,"<p>");
-			str += "</p>"
-			grafsOut.push(str);
-		}
-
-	}
-
-	//
-	// Unhashify HTML blocks
-	//
-	end = grafsOut.length;
-	for (var i=0; i<end; i++) {
-		// if this is a marker for an html block...
-		while (grafsOut[i].search(/~K(\d+)K/) >= 0) {
-			var blockText = g_html_blocks[RegExp.$1];
-			blockText = blockText.replace(/\$/g,"$$$$"); // Escape any dollar signs
-			grafsOut[i] = grafsOut[i].replace(/~K\d+K/,blockText);
-		}
-	}
-
-	return grafsOut.join("\n\n");
-}
-
-
-var _EncodeAmpsAndAngles = function(text) {
-// Smart processing for ampersands and angle brackets that need to be encoded.
-
-	// Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
-	//   http://bumppo.net/projects/amputator/
-	text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;");
-
-	// Encode naked <'s
-	text = text.replace(/<(?![a-z\/?\$!])/gi,"&lt;");
-
-	return text;
-}
-
-
-var _EncodeBackslashEscapes = function(text) {
-//
-//   Parameter:  String.
-//   Returns:	The string, with after processing the following backslash
-//			   escape sequences.
-//
-
-	// attacklab: The polite way to do this is with the new
-	// escapeCharacters() function:
-	//
-	// 	text = escapeCharacters(text,"\\",true);
-	// 	text = escapeCharacters(text,"`*_{}[]()>#+-.!",true);
-	//
-	// ...but we're sidestepping its use of the (slow) RegExp constructor
-	// as an optimization for Firefox.  This function gets called a LOT.
-
-	text = text.replace(/\\(\\)/g,escapeCharacters_callback);
-	text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g,escapeCharacters_callback);
-	return text;
-}
-
-
-var _DoAutoLinks = function(text) {
-
-	text = text.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,"<a href=\"$1\">$1</a>");
-
-	// Email addresses: <address@domain.foo>
-
-	/*
-		text = text.replace(/
-			<
-			(?:mailto:)?
-			(
-				[-.\w]+
-				\@
-				[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+
-			)
-			>
-		/gi, _DoAutoLinks_callback());
-	*/
-	text = text.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,
-		function(wholeMatch,m1) {
-			return _EncodeEmailAddress( _UnescapeSpecialChars(m1) );
-		}
-	);
-
-	return text;
-}
-
-
-var _EncodeEmailAddress = function(addr) {
-//
-//  Input: an email address, e.g. "foo@example.com"
-//
-//  Output: the email address as a mailto link, with each character
-//	of the address encoded as either a decimal or hex entity, in
-//	the hopes of foiling most address harvesting spam bots. E.g.:
-//
-//	<a href="&#x6D;&#97;&#105;&#108;&#x74;&#111;:&#102;&#111;&#111;&#64;&#101;
-//	   x&#x61;&#109;&#x70;&#108;&#x65;&#x2E;&#99;&#111;&#109;">&#102;&#111;&#111;
-//	   &#64;&#101;x&#x61;&#109;&#x70;&#108;&#x65;&#x2E;&#99;&#111;&#109;</a>
-//
-//  Based on a filter by Matthew Wickline, posted to the BBEdit-Talk
-//  mailing list: <http://tinyurl.com/yu7ue>
-//
-
-	// attacklab: why can't javascript speak hex?
-	function char2hex(ch) {
-		var hexDigits = '0123456789ABCDEF';
-		var dec = ch.charCodeAt(0);
-		return(hexDigits.charAt(dec>>4) + hexDigits.charAt(dec&15));
-	}
-
-	var encode = [
-		function(ch){return "&#"+ch.charCodeAt(0)+";";},
-		function(ch){return "&#x"+char2hex(ch)+";";},
-		function(ch){return ch;}
-	];
-
-	addr = "mailto:" + addr;
-
-	addr = addr.replace(/./g, function(ch) {
-		if (ch == "@") {
-		   	// this *must* be encoded. I insist.
-			ch = encode[Math.floor(Math.random()*2)](ch);
-		} else if (ch !=":") {
-			// leave ':' alone (to spot mailto: later)
-			var r = Math.random();
-			// roughly 10% raw, 45% hex, 45% dec
-			ch =  (
-					r > .9  ?	encode[2](ch)   :
-					r > .45 ?	encode[1](ch)   :
-								encode[0](ch)
-				);
-		}
-		return ch;
-	});
-
-	addr = "<a href=\"" + addr + "\">" + addr + "</a>";
-	addr = addr.replace(/">.+:/g,"\">"); // strip the mailto: from the visible part
-
-	return addr;
-}
-
-
-var _UnescapeSpecialChars = function(text) {
-//
-// Swap back in all the special characters we've hidden.
-//
-	text = text.replace(/~E(\d+)E/g,
-		function(wholeMatch,m1) {
-			var charCodeToReplace = parseInt(m1);
-			return String.fromCharCode(charCodeToReplace);
-		}
-	);
-	return text;
-}
-
-
-var _Outdent = function(text) {
-//
-// Remove one level of line-leading tabs or spaces
-//
-
-	// attacklab: hack around Konqueror 3.5.4 bug:
-	// "----------bug".replace(/^-/g,"") == "bug"
-
-	text = text.replace(/^(\t|[ ]{1,4})/gm,"~0"); // attacklab: g_tab_width
-
-	// attacklab: clean up hack
-	text = text.replace(/~0/g,"")
-
-	return text;
-}
-
-var _Detab = function(text) {
-// attacklab: Detab's completely rewritten for speed.
-// In perl we could fix it by anchoring the regexp with \G.
-// In javascript we're less fortunate.
-
-	// expand first n-1 tabs
-	text = text.replace(/\t(?=\t)/g,"    "); // attacklab: g_tab_width
-
-	// replace the nth with two sentinels
-	text = text.replace(/\t/g,"~A~B");
-
-	// use the sentinel to anchor our regex so it doesn't explode
-	text = text.replace(/~B(.+?)~A/g,
-		function(wholeMatch,m1,m2) {
-			var leadingText = m1;
-			var numSpaces = 4 - leadingText.length % 4;  // attacklab: g_tab_width
-
-			// there *must* be a better way to do this:
-			for (var i=0; i<numSpaces; i++) leadingText+=" ";
-
-			return leadingText;
-		}
-	);
-
-	// clean up sentinels
-	text = text.replace(/~A/g,"    ");  // attacklab: g_tab_width
-	text = text.replace(/~B/g,"");
-
-	return text;
-}
-
-
-//
-//  attacklab: Utility functions
-//
-
-
-var escapeCharacters = function(text, charsToEscape, afterBackslash) {
-	// First we have to escape the escape characters so that
-	// we can build a character class out of them
-	var regexString = "([" + charsToEscape.replace(/([\[\]\\])/g,"\\$1") + "])";
-
-	if (afterBackslash) {
-		regexString = "\\\\" + regexString;
-	}
-
-	var regex = new RegExp(regexString,"g");
-	text = text.replace(regex,escapeCharacters_callback);
-
-	return text;
-}
-
-
-var escapeCharacters_callback = function(wholeMatch,m1) {
-	var charCodeToEscape = m1.charCodeAt(0);
-	return "~E"+charCodeToEscape+"E";
-}
-
-} // end of Showdown.converter
-
-// export
-if (typeof module !== 'undefined') module.exports = Showdown;
diff --git a/docs/slides/flops14/_support/reveal/package.json b/docs/slides/flops14/_support/reveal/package.json
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	"author": "Hakim El Hattab",
-	"name": "reveal.js",
-	"description": "HTML5 Slideware with Presenter Notes",
-	"version": "1.5.0",
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/hakimel/reveal.js.git"
-	},
-	"engines": {
-		"node": "~0.6.8"
-	},
-	"dependencies": {
-		"underscore" : "1.3.3",
-		"express" : "2.5.9",
-		"socket.io" : "0.9.6",
-		"mustache" : "0.4.0"
-	},
-	"devDependencies": {}
-}
diff --git a/docs/slides/flops14/_support/reveal/plugin/speakernotes/client.js b/docs/slides/flops14/_support/reveal/plugin/speakernotes/client.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/plugin/speakernotes/client.js
+++ /dev/null
@@ -1,35 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/flops14/_support/reveal/plugin/speakernotes/index.js b/docs/slides/flops14/_support/reveal/plugin/speakernotes/index.js
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/plugin/speakernotes/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/speakernotes/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'speakernotes/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m', 
-	green = '\033[32m', 
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/flops14/_support/reveal/plugin/speakernotes/notes.html b/docs/slides/flops14/_support/reveal/plugin/speakernotes/notes.html
deleted file mode 100644
--- a/docs/slides/flops14/_support/reveal/plugin/speakernotes/notes.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				float: left;
-				font-size: 18px;
-				width: 640px;
-				margin-top: 10px;
-			}
-
-			#wrap-current-slide {
-				width: 400px;
-				height: 320px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 800px;
-				height: 600px;
-				border: none;
-				-moz-transform: scale(0.5);
-				-moz-transform-origin: 0 0;
-				-o-transform: scale(0.5);
-				-o-transform-origin: 0 0;
-				-webkit-transform: scale(0.5);
-				-webkit-transform-origin: 0 0;
-			}
-
-			#wrap-next-slide {
-				width: 320px;
-				height: 256px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 800px;
-				height: 600px;
-				border: none;
-				-moz-transform: scale(0.25);
-				-moz-transform-origin: 0 0;
-				-o-transform: scale(0.25);
-				-o-transform-origin: 0 0;
-				-webkit-transform: scale(0.25);
-				-webkit-transform-origin: 0 0;
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-		</style>
-	</head>
-
-	<body>
-
-		<div id="wrap-current-slide" class="slides">
-			<iframe src="/?receiver" width="800" height="600" id="current-slide"></iframe>
-		</div>
-
-		<div id="notes"></div>
-
-		<div id="wrap-next-slide" class="slides">
-			<iframe src="/?receiver" width="640" height="512" id="next-slide"></iframe>
-			<span>UPCOMING:</span>
-		</div>
-
-		<script src="/socket.io/socket.io.js"></script>
-
-		<script>
-		var socketId = '{{socketId}}';
-		var socket = io.connect(window.location.origin);
-		var notes = document.getElementById('notes');
-		var currentSlide = document.getElementById('current-slide');
-		var nextSlide = document.getElementById('next-slide');
-
-		socket.on('slidedata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			notes.innerHTML = data.notes;
-			currentSlide.contentWindow.Reveal.navigateTo(data.indexh, data.indexv);
-			nextSlide.contentWindow.Reveal.navigateTo(data.nextindexh, data.nextindexv);
-		});
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/flops14/_support/template.reveal b/docs/slides/flops14/_support/template.reveal
deleted file mode 100644
--- a/docs/slides/flops14/_support/template.reveal
+++ /dev/null
@@ -1,103 +0,0 @@
-<!doctype html>  
-<html lang="en">
-	
-<head>
-<meta charset="utf-8">
-
-<title>LiquidHaskell FLOPS 2014</title>
-
-<meta name="description" content="LiquidHaskell FLOPS 2014">
-<meta name="author" content="Ranjit Jhala">
-
-<meta name="apple-mobile-web-app-capable" content="yes" />
-<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="$reveal$/css/main.css">
-<link rel="stylesheet" href="$reveal$/css/theme/seminar.css" id="theme">
-<link rel="stylesheet" href="$reveal$/css/liquidhaskell.css">
-
-<!-- For syntax highlighting -->
-<link rel="stylesheet" href="$reveal$/lib/css/zenburn.css">
-
-<script>
-	// If the query includes 'print-pdf' we'll use the PDF print sheet
-	document.write( '<link rel="stylesheet" href="../_support/reveal_01/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
-</script>
-
-<!--[if lt IE 9]>
-<script src="lib/js/html5shiv.js"></script>
-<![endif]-->
-</head>
-<body>
-	
-<div class="reveal">
-<!-- 
-Used to fade in a background when a specific slide state is reached
--->
-<div class="state-background"></div>
-
-<!-- Slides
-Any section element inside of this "slides" container is displayed as a slide
--->
-<div class="slides">
-<!-- Pandoc -->
-$if(title)$
-<section class="titlepage">
-<h1 class="title">$title$</h1>
-$for(author)$
-<h2 class="author">$author$</h2>
-$endfor$
-<h3 class="date">$date$</h3>
-</section>
-$endif$
-$body$
-<!-- End Pandoc -->
-
-</div>
-<!-- End Slides -->
-
-<!-- The navigational controls UI -->
-<aside class="controls">
-<a class="left" href="#">&#x25C4;</a>
-<a class="right" href="#">&#x25BA;</a>
-<a class="up" href="#">&#x25B2;</a>
-<a class="down" href="#">&#x25BC;</a>
-</aside>
-
-<!-- Presentation progress bar -->
-<div class="progress"><span></span></div>
-</div>
-
-<!-- Initialize reveal.js :: make settings changes here -->
-<script src="$reveal$/lib/js/head.min.js"></script>
-<script src="$reveal$/js/reveal.js"></script>
-<script>		
-	// Full list of configuration options available here:
-	// https://github.com/hakimel/reveal.js#configuration
-	Reveal.initialize({
-		controls: true,
-		progress: true,
-		history: true,
-		center: false,
-        rollingLinks: false,
-        theme: Reveal.getQueryHash().theme || 'seminar', // available themes are in /css/theme
-		transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/linear(2d)
-
-		// Optional libraries used to extend on reveal.js
-		dependencies: [
-			{ src: '$reveal$/lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-			{ src: '$reveal$/lib/js/classList.js', condition: function() { return !document.body.classList; } },
-			{ src: '$reveal$/lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-			{ src: '$reveal$/plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		]
-	});
-</script>
-<!-- Script for LiveReload -->
-<script>document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')
-</script>
-</body>
-</html>
diff --git a/docs/slides/flops14/cleanup b/docs/slides/flops14/cleanup
deleted file mode 100644
--- a/docs/slides/flops14/cleanup
+++ /dev/null
@@ -1,1 +0,0 @@
-find . | grep -E -e '\.(smt2|bak|json|css|md|hi|out|fqout|fq|o|err|annot|log|html|cgi|liquid)$' | xargs rm -rf
diff --git a/docs/slides/flops14/img/RedBlack.png b/docs/slides/flops14/img/RedBlack.png
deleted file mode 100644
Binary files a/docs/slides/flops14/img/RedBlack.png and /dev/null differ
diff --git a/docs/slides/flops14/lhs/00_Index.lhs b/docs/slides/flops14/lhs/00_Index.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/00_Index.lhs
+++ /dev/null
@@ -1,198 +0,0 @@
-
-
- {#ASD}
-=======
-
-Liquid Types For Haskell
-------------------------
-
-
-<br>
-<br>
-
-**Ranjit Jhala**
-
-University of California, San Diego
-
-<br>
-<br>
-
-
-Joint work with: 
-
-N. Vazou, E. Seidel, P. Rondon, D. Vytiniotis, S. Peyton-Jones
-
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-Well-Typed Programs Can Go Wrong
-================================
-
- {#asd}
--------
-
-Division By Zero
-----------------
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> let average xs = sum xs `div` length xs
-
-λ> average [1,2,3]
-2
-\end{code}
-</div>
-
-<div class="fragment"> 
-
-\begin{code} <br> 
-λ> average []
-*** Exception: divide by zero
-\end{code}
-
-</div>
-
-Missing Keys
-------------
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> :m +Data.Map 
-λ> let m = fromList [ ("haskell", "lazy")
-                    , ("ocaml"  , "eager")]
-
-λ> m ! "haskell"
-"lazy"
-\end{code}
-</div>
-
-<div class="fragment"> 
-\begin{code} <br> 
-λ> m ! "javascript"
-"*** Exception: key is not in the map
-\end{code}
-</div>
-
-Segmentation Faults
--------------------
-
-<div class="fragment"> 
-\begin{code} <div/> 
-λ> :m +Data.Vector 
-λ> let v = fromList ["haskell", "ocaml"]
-λ> unsafeIndex v 0
-"haskell"
-\end{code}
-</div>
-
-<div class="fragment"> 
-\begin{code} <br> 
-λ> V.unsafeIndex v 3
-
-
-'ghci' terminated by signal SIGSEGV ...
-\end{code}
-</div>
-
-
-"HeartBleeds"
--------------
-
-\begin{code} <div/>
-λ> :m + Data.Text Data.Text.Unsafe 
-λ> let t = pack "Kanazawa"
-λ> takeWord16 5 t
-"Kanaz"
-\end{code}
-
-<br>
-
-<div class="fragment"> 
-Memory overflows **leaking secrets**...
-
-<br>
-
-\begin{code} <div/>
-λ> takeWord16 20 t
-"kamakura\1912\3148\SOH\NUL\15928\2486\SOH\NUL"
-\end{code}
-</div>
-
-Goal
-----
-
-Extend Hindley-Milner To Prevent More Errors
-
-Liquid Types for Haskell
-========================
-
-LiquidHaskell
--------------
-
-<br>
-<br>
-
-<div class="fragment">Refine **types** with **predicates**</div>
-
-<br>
-<br>
-
-<div class="fragment">**Expressive** specification & **Automatic** verification</div>
-
-
-
-Automatic
----------
-
-[Liquid Types, PLDI 08](http://goto.ucsd.edu/~rjhala/liquid/liquid_types.pdf)
-
-<br>
-
-+ Abstract Interpretation 
-
-+ SMT Solvers 
-
-Expressive
-----------
-
-<br>
-<br>
-
-This talk ...
-
-Try Yourself
-------------
-
-<br>
-
-**google: ** `"liquidhaskell demo"` 
-
- {#zog} 
---------
-
-<br>
-<br>
-<br>
-<br>
-
-[[continue]](01_SimpleRefinements.lhs.slides.html)
-
-
-Plan 
-----
-
-1. <a href="01_SimpleRefinements.lhs.slides.html" target= "_blank">Refinements
-2. <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-3. <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-4. <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements:</a> <a href="06_Inductive.lhs.slides.html" target="_blank">Code</a>, <a href="08_Recursive.lhs.slides.html" target= "_blank">Data</a>,<a href="07_Array.lhs.slides.html" target= "_blank">...</a>,<a href="05_Composition.lhs.slides.html" target= "_blank">...</a></div>
-5. <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Lazy Evaluation</a></div>
-6. <div class="fragment"><a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-7. <div class="fragment"><a href="11_Evaluation.lhs.slides.html" target="_blank">Evaluation</a></div>
-
diff --git a/docs/slides/flops14/lhs/01_SimpleRefinements.lhs b/docs/slides/flops14/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,391 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-nats    :: L Int
-evens   :: L Int
-odds    :: L Int
-range   :: Int -> Int -> L Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Ex: `Int`egers equal to `0`
----------------------------
-
-<br>
-
-\begin{code}
-{-@ type EqZero = {v:Int | v = 0} @-}
-
-{-@ zero :: EqZero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}` 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
-</div>
-
-
-
-Refinements Are Predicates
-==========================
-
-From A Decidable Logic
-----------------------
-
-1. Expressions
-
-2. Predicates
-
-
-Expressions
------------
-
-<br>
-
-\begin{code} <div/> 
-e := x, y, z,...      -- variable
-   | 0, 1, 2,...      -- constant
-   | (e + e)          -- addition
-   | (e - e)          -- subtraction
-   | (c * e)          -- linear multiplication
-   | (v e1 e2 ... en) -- uninterpreted function
-\end{code}
-
-Predicates
-----------
-
-<br>
-
-\begin{code} <div/>
-p := e           -- atom 
-   | e1 == e2    -- equality
-   | e1 <  e2    -- ordering 
-   | (p && p)    -- and
-   | (p || p)    -- or
-   | (not p)     -- negation
-\end{code}
-
-
-Subtyping is Implication
-------------------------
-
-[PVS' Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-
-<!--
-
-Subtyping is Implication
-------------------------
-
-<br>
-<br>
-
---------  ---  ------------------   ---------   ------------------
-  **If**   :   Refinement of `S`    *implies*   Refinement of `T` 
-
-**Then**   :   `S`                  *subtype*   `T`
---------  ---  ------------------   ---------   ------------------
-
-<br>
-
--->
-
-Subtyping is Implication
-------------------------
-
-
-<br>
-<br>
-
----------   ------------   --------------------------   
-  **If:**            `P`   `=> Q` 
-            
-**Then:**    `{v:t | P}`   `<: {v:t | Q}`
----------   ------------   --------------------------   
-
-
-Example: Natural Numbers
-------------------------
-
-\begin{code} <div/> 
-        type Nat = {v:Int | 0 <= v}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
--------------    ---------  ----------------
-  **By SMT:**      `v = 0`  `=>`  `0 <= v` 
-             
-      **So:**     `EqZero`  `<:`  `Nat`
--------------    ---------  ----------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-Hence, we can type:
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero   -- zero :: EqZero <: Nat
-\end{code}
-</div>
-
- {#universalinvariants}
-=======================
-
-Types = Universal Invariants
-----------------------------
-
-(Notoriously hard with *pure* SMT)
-
-Types Yield Universal Invariants
-================================
-
-Example: Lists
---------------
-
-<div class="hidden">
-\begin{code}
-infixr `C`
-\end{code}
-</div>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-*Every element* in `nats` is non-negative:
-
-<br>
-
-\begin{code}
-{-@ nats :: L Nat @-}
-nats     =  0 `C` 1 `C` 3 `C` N
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `nats` contained `-2`? 
-
-</div>
-
-Example: Even/Odd Lists
------------------------
-
-\begin{code}
-{-@ type Even = {v:Int | v mod 2 =  0} @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ evens :: L Even @-}
-evens     =  0 `C` 2 `C` 4 `C` N
-
-{-@ odds  :: L Odd  @-}
-odds      =  1 `C` 3 `C` 5 `C` N 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `evens` contained `1`? 
-</div>
-
-
-
-Contracts: Function Types
-=========================
-
- {#as}
-------
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-**Precondition** divisor is *non-zero*.
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-
-</div>
-
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-+ **Pre-condition** divisor is *non-zero*.
-+ **Input type** specifies *pre-condition*
-
-<br>
-
-\begin{code}
-{-@ safeDiv :: Int -> NonZero -> Int @-}
-safeDiv x y = x `div` y
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if precondition does not hold?
-
-</div>
-
-Example: `abs`
---------------
-
-<br>
-
-+ **Postcondition** result is non-negative
-+ **Output type** specifies *post-condition*
-
-<br>
-
-\begin{code}
-{-@ abs       :: x:Int -> Nat @-}
-abs x 
-  | 0 <= x    = x 
-  | otherwise = 0 - x
-\end{code}
-
-
- {#dependentfunctions}
-======================
-
-Dependent Function Types
-------------------------
-
-<br>
-
-Outputs **refer to** inputs
-
-<br>
-
-**Relational** invariants
-
-
-Dependent Function Types
-========================
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s **between** `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ type Btwn I J = {v:_ | (I<=v && v<J)} @-}
-\end{code}
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ range :: i:Int -> j:Int -> L (Btwn i j) @-}
-range i j            = go i
-  where
-    go n | n < j     = n `C` go (n + 1)  
-         | otherwise =  N
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Type of `go` is automatically inferred
-</div>
-
-
-Example: Indexing Into List
----------------------------
-
-\begin{code} 
-(!)          :: L a -> Int -> a
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "Oops!"
-\end{code}
-
-<br>
-
-<div class="fragment">(Mouseover to view type of `liquidError`)</div>
-
-<br>
-
-<div class="fragment">To ensure safety, *require* `i` between `0` and list **length**</div>
-
-<br>
-
-<div class="fragment">Need way to **measure** the length of a list [[continue...]](02_Measures.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/flops14/lhs/02_Measures.lhs b/docs/slides/flops14/lhs/02_Measures.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/02_Measures.lhs
+++ /dev/null
@@ -1,441 +0,0 @@
-
- {#measures}
-============
-
-Measuring Data Types
---------------------
-
-<div class="hidden">
-
-\begin{code}
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-
-length      :: L a -> Int
-(!)         :: L a -> Int -> a
-insert      :: Ord a => a -> L a -> L a
-insertSort  :: Ord a => [a] -> L a
-
-infixr `C`
-\end{code}
-
-</div>
-
-
-Measuring Data Types 
-====================
-
-Recap
------
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-
-Example: Length of a List 
--------------------------
-
-Given a type for lists:
-
-<br>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<div class="fragment">
-<br>
-
-We can define the **length** as:
-
-<br>
-
-\begin{code}
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-</div>
-
-Example: Length of a List 
--------------------------
-
-\begin{code} <div/>
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-<br>
-
-LiquidHaskell **strengthens** data constructor types
-
-<br>
-
-\begin{code} <div/>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{code}
-
-Measures Are Uninterpreted
---------------------------
-
-\begin{code} <br>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> t:_ -> {v:_| llen v = 1 + llen t}
-\end{code}
-
-<br>
-
-`llen` is an **uninterpreted function** in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-<br>
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) `f` obeys *congruence* axiom:
-
-<br>
-
-`forall x y. (x = y) => (f x) = (f y)`
-
-<br>
-
-<div class="fragment">
-All other facts about `llen` asserted at **fold** and **unfold**
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-Facts about `llen` asserted at *syntax-directed* **fold** and **unfold**
-
-<br>
-
-<div class="fragment">
-\begin{code}**Fold**<br>
-z = C x y     -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}**Unfold**<br>
-case z of 
-  N     -> e1 -- z :: {v | llen v = 0}
-  C x y -> e2 -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-
-Measured Refinements
---------------------
-
-Now, we can verify:
-
-<br>
-
-\begin{code}
-{-@ length      :: xs:L a -> (EqLen xs) @-}
-length N        = 0
-length (C _ xs) = 1 + length xs
-\end{code}
-
-<div class="fragment">
-
-<br>
-
-Where `EqLen` is a type alias:
-
-\begin{code}
-{-@ type EqLen Xs = {v:Nat | v = (llen Xs)} @-}
-\end{code}
-
-</div>
-
-List Indexing Redux
--------------------
-
-We can type list lookup:
-
-\begin{code}
-{-@ (!)      :: xs:L a -> (LtLen xs) -> a @-}
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "never happens!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-Where `LtLen` is a type alias:
-
-\begin{code}
-{-@ type LtLen Xs = {v:Nat | v < (llen Xs)} @-}
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-&nbsp; What if we *remove* the precondition?
-
-</div>
-
-Multiple Measures
-=================
-
- {#adasd}
----------
-
-LiquidHaskell allows *many* measures for a type
-
-
-Ex: List Emptiness 
-------------------
-
-Measure describing whether a `List` is empty 
-
-\begin{code}
-{-@ measure isNull :: (L a) -> Prop
-    isNull (N)      = true
-    isNull (C x xs) = false           @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-LiquidHaskell **strengthens** data constructors
-
-\begin{code} <div/> 
-data L a where 
-  N :: {v : L a | (isNull v)}
-  C :: a -> L a -> {v:(L a) | not (isNull v)}
-\end{code}
-
-</div>
-
-Conjoining Refinements
-----------------------
-
-Data constructor refinements are **conjoined** 
-
-\begin{code} <br>
-data L a where 
-  N :: {v:L a |  (llen v) = 0 
-              && (isNull v) }
-  C :: a 
-    -> xs:L a 
-    -> {v:L a |  (llen v) = 1 + (llen xs) 
-              && not (isNull v)          }
-\end{code}
-
-Multiple Measures: Red-Black Trees
-==================================
-
- {#asdad}
----------
-
-<img src="../img/RedBlack.png" height=300px>
-
-+ <div class="fragment">**Color Invariant:** `Red` nodes have `Black` children</div>
-+ <div class="fragment">**Height Invariant:** Number of `Black` nodes equal on *all paths*</div>
-<br>
-
-[[Skip...]](#/4)
-
-Basic Type 
-----------
-
-\begin{code} <br>
-data Tree a = Leaf 
-            | Node Color a (Tree a) (Tree a)
-
-data Color  = Red 
-            | Black
-\end{code}
-
-Color Invariant 
----------------
-
-`Red` nodes have `Black` children
-
-<div class="fragment">
-\begin{code} <br>
-measure isRB        :: Tree a -> Prop
-isRB (Leaf)         = true
-isRB (Node c x l r) = c=Red => (isB l && isB r)
-                      && isRB l && isRB r
-\end{code}
-</div>
-
-<div class="fragment">
-\begin{code} where <br>
-measure isB         :: Tree a -> Prop 
-isB (Leaf)          = true
-isB (Node c x l r)  = c == Black 
-\end{code}
-</div>
-
-*Almost* Color Invariant 
-------------------------
-
-<br>
-
-Color Invariant **except** at root. 
-
-<br>
-
-<div class="fragment">
-\begin{code} <br>
-measure isAlmost        :: Tree a -> Prop
-isAlmost (Leaf)         = true
-isAlmost (Node c x l r) = isRB l && isRB r
-\end{code}
-</div>
-
-
-Height Invariant
-----------------
-
-Number of `Black` nodes equal on **all paths**
-
-<div class="fragment">
-\begin{code} <br>
-measure isBH        :: RBTree a -> Prop
-isBH (Leaf)         =  true
-isBH (Node c x l r) =  bh l = bh r 
-                    && isBH l && isBH r 
-\end{code}
-</div>
-
-<div class="fragment">
-\begin{code} where <br>
-measure bh        :: RBTree a -> Int
-bh (Leaf)         = 0
-bh (Node c x l r) = bh l 
-                  + if c = Red then 0 else 1
-\end{code}
-</div>
-
-Refined Type 
-------------
-
-\begin{code} <br>
--- Red-Black Trees
-type RBT a  = {v:Tree a | isRB v && isBH v}
-
--- Almost Red-Black Trees
-type ARBT a = {v:Tree a | isAlmost v && isBH v}
-\end{code}
-
-<br>
-
-[Details](https://github.com/ucsd-progsys/liquidhaskell/blob/master/tests/pos/RBTree.hs)
-
-
-Measures vs. Index Types
-========================
-
-Decouple Property & Type 
-------------------------
-
-Unlike [indexed types](http://dl.acm.org/citation.cfm?id=270793) ...
-
-<br>
-
-<div class="fragment">
-
-+ Measures **decouple** properties from structures
-
-+ Support **multiple** properties over structures 
-
-+ Enable  **reuse** of structures in different contexts                 
-
-</div>
-
-<br>
-
-<div class="fragment">Invaluable in practice!</div>
-
-Refined Data Constructors
-=========================
-
- {#asd}
--------
-
-Can encode invariants **inside constructors**
-
-<div class="fragment">
-
-<br>
-
-\begin{code}
-{-@ data L a = N
-             | C { x  :: a 
-                 , xs :: L {v:a| x <= v} } @-}
-\end{code}
-</div>
-<br>
-
-<div class="fragment">
-Head `x` is less than **every** element of tail `xs`
-</div>
-
-<br>
-
-<div class="fragment">
-i.e. specifies **increasing** Lists 
-</div>
-
-Increasing Lists 
-----------------
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: x:a -> xs: L {v:a | x <= v} -> L a
-\end{code}
-
-<br>
-
-- <div class="fragment">LiquidHaskell **checks** property when **folding** `C`</div>
-- <div class="fragment">LiquidHaskell **assumes** property when **unfolding** `C`</div>
-
-Increasing Lists 
-----------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs" target= "_blank">Demo: Insertion Sort</a> (hover for inferred types) 
-
-<br>
-
-\begin{code}
-insertSort = foldr insert N
-
-insert y (x `C` xs) 
-  | y <= x    = y `C` (x `C` xs)
-  | otherwise = x `C` insert y xs
-insert y N    = y `C` N    
-\end{code}
-
-<br>
-
-<div class="fragment">**Problem 1:** What if we need *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. **Measures:** Strengthened Constructors
-    - <div class="fragment">**Decouple** property from structure</div>
-    - <div class="fragment">**Reuse** structure across *different* properties</div>
-
-<br>
-
-<div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target="_blank">[continue]</a></div>
diff --git a/docs/slides/flops14/lhs/03_HigherOrderFunctions.lhs b/docs/slides/flops14/lhs/03_HigherOrderFunctions.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/03_HigherOrderFunctions.lhs
+++ /dev/null
@@ -1,215 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-\begin{code}
-module Loop (
-    listSum
-  , sumNats
-  ) where
-
-import Prelude
-
-{-@ LIQUID "--no-termination"@-}
-sumNats  :: [Int] -> Int
-add         :: Int -> Int -> Int
-\end{code}
-</div>
-
-Higher-Order Specifications
----------------------------
-
-Types scale to *Higher-Order* Specifications
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Very difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-<br>
-
-\begin{code}
-loop :: Int -> Int -> α -> (Int -> α -> α) -> α
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-LiquidHaskell infers `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-\begin{code}
-listSum     :: [Int] -> Int
-listSum xs  = loop 0 n 0 body 
-  where 
-    body    = \i acc -> acc + (xs !! i)
-    n       = length xs
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Function Subtyping** 
-
-+ `body` called with `i :: Btwn 0 (llen xs)`
-
-+ Hence, indexing with `!!` is safe.
-</div>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Loop.hs" target= "_blank">Demo:</a> Tweak `loop` exit condition? 
-</div>
-
-Polymorphic Instantiation
-=========================
-
- {#poly}
---------
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code}
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{code} Recall 
-foldl :: (α -> β -> α) -> α -> [β] -> α
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-How to **instantiate** `α` and `β` ?
-</div>
-
-Function Subtyping
-------------------
-
-\begin{code}<div/>
-(+) ::  x:Int -> y:Int -> {v:Int|v=x+y} 
-    <:  Nat   -> Nat   -> Nat
-\end{code}
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{code}<div/>
-               |- Nat       <: Int  -- Contra
-  x:Nat, y:Nat |- {v = x+y} <: Nat  -- Co
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-Because,
-
-\begin{code}<div/>
-  0<=x && 0<=y && v = x+y   => 0 <= v
-\end{code}
-</div>
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code} <div/> 
-{-@ sumNats :: [Nat] -> Nat @-}
-sumNats xs  = foldl (+) 0 xs 
-\end{code}
-
-<br>
-
-\begin{code} Where:
-foldl :: (α -> β -> α) -> α -> [β] -> α
-(+)   :: Nat -> Nat -> Nat
-\end{code}
-
-<br>
-
-<div class="fragment">
-`sumNats` verified by **instantiating** `α,β := Nat`
-</div>
-
-<br>
-
-<div class="fragment">
-`α` is **loop invariant**, instantiation is invariant **synthesis**
-</div>
-
-Instantiation And Inference
----------------------------
-
-Polymorphic instantiation happens *everywhere*...
-
-<br>
-
-... so *automatic inference* is crucial
-
-<br>
-
-Cannot use *unification* (unlike indexed approaches)
-
-<br>
-
-LiquidHaskell uses [SMT and Abstract Interpretation.](http://goto.ucsd.edu/~rjhala/papers/liquid_types.html)
-
-
-Iteration Dependence
---------------------
-
-**Problem:** Cannot use parametric polymorphism to verify
-
-<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-As property only holds after **last iteration** ...
-
-... cannot instantiate `α := {v:Int | v = n + m}`
-</div>
-
-<br>
-
-<div class="fragment">
-**Problem:** Need *iteration-dependent* invariants...&nbsp; &nbsp; [[Continue]](04_AbstractRefinements.lhs.slides.html)
-</div>
-
diff --git a/docs/slides/flops14/lhs/04_AbstractRefinements.lhs b/docs/slides/flops14/lhs/04_AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/04_AbstractRefinements.lhs
+++ /dev/null
@@ -1,330 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude 
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-o, no        :: Int
-maxInt       :: Int -> Int -> Int
-\end{code}
-</div>
-
-
-
-Abstract Refinements
---------------------
-
-
-
-Abstract Refinements
-====================
-
-Two Problems
-------------
-
-<br>
-<br>
-
-<div class="fragment">
-
-**Problem 1:** 
-
-How do we specify *both* increasing and decreasing lists?
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Problem 2:** 
-
-How do we specify *iteration-dependence* in higher-order functions?
-
-</div>
-
-
-Problem Is Pervasive
---------------------
-
-Lets distill it to a simple example...
-
-<div class="fragment">
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-\begin{code}
-{-@ type Odd  = {v:Int | (v mod 2) = 1} @-}
-{-@ type Even = {v:Int | (v mod 2) = 0} @-}
-\end{code}
-
-</div>
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
-\begin{code} <br> 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if y <= x then x else y
-\end{code}
-
-
-
-Example: `maxInt` 
------------------
-
-Has **many incomparable** refinement types
-
-\begin{code}<br>
-maxInt :: Nat  -> Nat  -> Nat
-maxInt :: Even -> Even -> Even
-maxInt :: Odd  -> Odd  -> Odd 
-\end{code}
-
-<br>
-
-<div class="fragment">Oh no! **Which** one should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns *one of* its two inputs `x` and `y` 
-
-<div class="fragment">
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-</div>
-
-<div class="fragment">Above holds *for all properties*!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract properties over types**
-
-</div>
-
-<!--
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<div class="fragment"> 
-
-Instantiate `α` at callsites
-
-\begin{code}
-{-@ o :: Odd  @-}
-o = maxInt 3 7     -- α := Odd
-
-{-@ e :: Even @-}
-e = maxInt 2 8     -- α := Even
-\end{code}
-
-</div>
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<br>
-
-But there is a fly in the ointment ...
-
-Polymorphic `max` in Haskell
-----------------------------
-
-\begin{code} In Haskell the type of max is
-max :: (Ord α) => α -> α -> α
-\end{code}
-
-<br>
-
-\begin{code} Could *ignore* the class constraints, instantiate as before...
-{-@ o :: Odd @-}
-o     = max 3 7  -- α := Odd 
-\end{code}
-
-
-Polymorphic `(+)` in Haskell
-----------------------------
-
-\begin{code} ... but this is *unsound*!
-max :: (Ord α) => α -> α -> α
-(+) :: (Num α) => α -> α -> α
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-*Ignoring* class constraints would let us "prove":
-
-\begin{code}
-{-@ no :: Odd @-}
-no     = 3 + 7    -- α := Odd !
-\end{code}
-
-</div>
-
-Type Polymorphism? No.
-----------------------
-
-<div class="fragment">Need to try a bit harder...</div>
-
--->
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-Enable *quantification over refinements* ...
-
-<br>
-
-\begin{code}<div/>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html) &nbsp; `Int<p>`  &nbsp; is just  &nbsp; `{v:Int | (p v)}`
-
-<br>
-
-i.e., Abstract Refinement is an **uninterpreted function** in SMT logic
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-**Check** and **Instantiate** 
-
-Using [SMT and Abstract Interpretation.](http://goto.ucsd.edu/~rjhala/papers/liquid_types.html)
-
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**When** we call `maxInt` with args with some refinement,</div>
-
-- <div class="fragment">**Then** `p` instantiated with *same* refinement,</div>
-
-- <div class="fragment">**Result** of call will also have *same* concrete refinement.</div>
-
-<div class="fragment">
-
-\begin{code}
-{-@ o' :: Odd  @-}
-o' = maxInt 3 7     -- p := \v -> Odd v 
-
-{-@ e' :: Even @-}
-e' = maxInt 2 8     -- p := \v -> Even v 
-\end{code}
-
-</div>
-
-Using Abstract Refinements
---------------------------
-
-Or any other property ...
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type RGB = {v:_ | (0 <= v && v < 256)} @-}
-
-{-@ rgb :: RGB @-}
-rgb = maxInt 56 8   -- p := \v -> 0 <= v < 256
-\end{code}
-
-</div>
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract Refinements** over Types
-
-<br>
-<br>
-
-<div class="fragment">
-  Abstract Refinements are *very* expressive ... <a href="06_Inductive.lhs.slides.html" target="_blank">[continue]</a>
-</div>
-
diff --git a/docs/slides/flops14/lhs/05_Composition.lhs b/docs/slides/flops14/lhs/05_Composition.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/05_Composition.lhs
+++ /dev/null
@@ -1,161 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-\begin{code}
-module Composition where
-
-import Prelude hiding ((.))
-
-plus     :: Int -> Int -> Int
-plus3'   :: Int -> Int
-\end{code}
-</div>
-
-
-Example: `plus`
----------------
-
-\begin{code}
-{-@ plus :: x:_ -> y:_ -> {v:_ | v=x+y} @-}
-plus x y = x + y
-\end{code}
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     = plus 3
-\end{code}
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-\begin{code}
-(#) :: (b -> c) -> (a -> b) -> a -> c
-(#) f g x = f (g x)
-\end{code}
-
-
-`plus3` By Composition
------------------------
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     = plus 1 # plus 2
-\end{code}
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
-\begin{code} <br>
-(#) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{code}
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-\begin{code}
-{-@ (.) :: forall <p :: b->c->Prop, 
-                   q :: a->b->Prop>.
-             f:(x:b -> c<p x>) 
-          -> g:(x:a -> b<q x>) 
-          -> y:a -> exists[z:b<q y>].c<p z>
- @-}
-(.) f g y = f (g y)
-\end{code}
-
-Using (.) Operator 
-------------------
-
-<br>
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/flops14/lhs/06_Inductive.lhs b/docs/slides/flops14/lhs/06_Inductive.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/06_Inductive.lhs
+++ /dev/null
@@ -1,457 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Induction
----------
-
-Encoding *induction* with Abstract refinements
-
-<div class="hidden">
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
--- import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-
-size  :: L a -> Int
-add   :: Int -> Int -> Int
-loop  :: Int -> Int -> α -> (Int -> α -> α) -> α
-foldr :: (L a -> a -> b -> b) -> b -> L a -> b
-\end{code}
-</div>
-
-Induction
-=========
-
-Example: `loop` redux 
----------------------
-
-Recall the *higher-order* `loop` 
-
-<br>
-
-\begin{code}
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-**Problem**
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Base Case:** &nbsp; Initial accumulator `base` satisfies invariant
-
-
-`(p lo base)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Inductive Step:** &nbsp; `f` *preserves* invariant at `i`
-
-
-`(p i acc) => (p (i+1) (f i acc))`
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**"By Induction"** &nbsp; `out` satisfies invariant at `hi` 
-
-`(p hi out)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-        lo:Int
-     -> hi:{Int | lo <= hi}
-     -> base:a<p lo>                      
-     -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-     -> a<p hi>                           @-}
-\end{code}
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-\begin{code}<br> 
-p    :: Int -> a -> Prop             -- invt 
-base :: a<p lo>                      -- base 
-f    :: i:Int -> a<p i> -> a<p(i+1)> -- step
-out  :: a<p hi>                      -- goal
-\end{code}
-
-
-
-Using Induction
----------------
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-**Verified** by *instantiating* the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-<!--
-
-Using Induction
----------------
-
-\begin{code} <div/>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-Verified by instantiating `p := \i acc -> acc = i + n`
-
-- <div class="fragment">**Base:**  `n = 0 + n`</div>
-
-- <div class="fragment">**Step:**  `acc = i + n  =>  acc + 1 = (i + 1) + n`</div>
-
-- <div class="fragment">**Goal:**  `out = m + n`</div>
-
--->
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over such lists ...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code} <br>
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code}
-{-@ foldr :: 
-    forall a b <p :: L a -> b -> Prop>. 
-      (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-    -> b<p N> 
-    -> ys:L a
-    -> b<p ys>                            @-}
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`foldr`: Abstract Refinement
-----------------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  ::  b<p ys>                            
-\end{code}
-
-<br>
-
-`(p xs b)` relates `b` with **folded** `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`foldr`: Base Case
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`base` is related to **empty** list `N`
-
-`base :: b<p N>` 
-
-
-
-`foldr`: Ind. Step 
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`step` **extends** relation from `xs` to `C x xs`
-
-`step :: xs:_ -> x:_ -> b<p xs> -> b<p (C x xs)>`
-
-
-`foldr`: Output
----------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-Hence, relation holds between `out` and **entire input** list `ys`
-
-`out :: b<p ys>`
-
-Using `foldr`: Size
--------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ size :: xs:_ -> {v:Int| v = (llen xs)} @-}
-size     = foldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-<div class="fragment">
-by *automatically instantiating*
-
-`p := \xs acc -> acc = (llen xs)`
-</div>
-
-Using `foldr`: Append
----------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ (++) :: xs:_ -> ys:_ -> (Cat a xs ys) @-} 
-xs ++ ys = foldr (\_ -> C) ys xs 
-\end{code}
-
-<div class="fragment">
-where 
-
-\begin{code}
-{-@ type Cat a X Y = 
-    {v:_|(llen v) = (llen X) + (llen Y)} @-}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-By automatically instantiating 
-
-`p := \xs acc -> llen acc = llen xs + llen ys`
-
-</div>
-
-Recap
------
-
-Abstract refinements *decouple* **invariant** from **traversal**
-
-<br>
-
-<div class="fragment">**Reusable** specifications for higher-order functions.</div>
-
-<br>
-
-<div class="fragment">**Automatic** checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over Type Signatures
-    + <div class="fragment">**Functions**</div>
-    + <div class="fragment">**Data** <a href="08_Recursive.lhs.slides.html" target="_blank">[continue]</a></div>
-
diff --git a/docs/slides/flops14/lhs/07_Array.lhs b/docs/slides/flops14/lhs/07_Array.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/07_Array.lhs
+++ /dev/null
@@ -1,405 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *data structures*
-</div>
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidError)
-
-{-@ LIQUID "--no-termination" @-}
-
-fibMemo   :: Vec Int -> Int -> (Vec Int, Int)
-fastFib   :: Int -> Int
-idv       :: Int -> Vec Int
-axiom_fib :: Int -> Bool
-axiom_fib = undefined
-
-{-@ predicate AxFib I = (fib I) == (if I <= 1 then 1 else fib(I-1) + fib(I-2)) @-}
-\end{code}
-</div>
-
-<div class="fragment">
-
-Implemented as maps from `Int` to `a` 
-
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-\begin{code}
-{-@ data Vec a < dom :: Int -> Prop,
-                 rng :: Int -> a -> Prop >
-      = V {a :: i:Int<dom> -> a <rng i>}  @-}
-\end{code}
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-A quick alias for *segments* between `I` and `J`
-
-<br>
-
-\begin{code}
-{-@ predicate Seg V I J = (I <= V && V < J) @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type IdVec N = Vec <{\v -> (Seg v 0 N)}, 
-                        {\k v -> v=k}> 
-                       Int                  @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-\begin{code}
-{-@ idv :: n:Nat -> (IdVec n) @-}
-idv n   = V (\k -> if 0 < k && k < n 
-                     then k 
-                     else liquidError "eeks")
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>Whats the problem? How can we fix it?
-</div>
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> (Seg v 0 N)}, 
-          {\k v -> (k = N-1 => v = 0)}> 
-          Int                             @-}
-\end{code}
-
-</div>
-
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                               @-}
-\end{code}
-
-
-Accessing Vectors
------------------
-
-Next: lets *abstractly* type `Vec`tor operations, *e.g.* 
-
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-Ex: Empty Vectors
------------------
-
-`empty` returns Vector whose domain is `false`
-
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. 
-               Vec <{v:Int|false}, p> a     @-}
-
-empty     = V $ \_ -> error "empty vector!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-Ex: `get` Key's Value 
----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-\begin{code}
-{-@ get :: forall a <d :: Int -> Prop,  
-                     r :: Int -> a -> Prop>.
-           key:Int <d>
-        -> vec:Vec <d, r> a
-        -> a<r key>                        @-}
-
-get k (V f) = f k
-\end{code}
-
-
-Ex: `set` Key's Value 
----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-Ex: `set` Key's Value 
----------------------
-
-\begin{code}
-{-@ set :: forall a <d :: Int -> Prop,
-                     r :: Int -> a -> Prop>.
-           key: Int<d> -> val: a<r key>
-        -> vec: Vec<{v:Int<d>| v /= key},r> a
-        -> Vec <d, r> a                     @-}
-set key val (V f) = V $ \k -> if k == key 
-                                then val 
-                                else f key
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-<!-- INSERT tests/pos/vecloop.lhs here AFTER FIXED -->
-
-Using the Vector API
---------------------
-
-Memoized Fibonacci
-------------------
-
-Use `Vec` API to write a *memoized* fibonacci function
-
-<br>
-
-<div class="fragment">
-\begin{code} Using the fibonacci table:
-type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                              
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-But wait, what is `fib` ?
-</div>
-
-
-Specifying Fibonacci
---------------------
-
-`fib` is *uninterpreted* in the refinement logic  
-
-<br>
-
-\begin{code}
-{-@ measure fib :: Int -> Int @-}
-\end{code}
-
-<br>
-
-Specifying Fibonacci
---------------------
-
-We *axiomatize* the definition of `fib` in SMT ...
-
-\begin{code}<br>
-predicate AxFib I = 
-  (fib I) == if I <= 1 
-               then 1 
-               else fib(I-1) + fib(I-2)
-\end{code}
-
-Specifying Fibonacci
---------------------
-
-Finally, lift axiom into LiquidHaskell as *ghost function*
-
-<br>
-
-\begin{code}
-{-@ axiom_fib :: 
-      i:_ -> {v:_|((Prop v) <=> (AxFib i))} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Recipe for *escaping* SMT limitations
-
-1. *Prove* fact externally
-2. *Use* as ghost function call
-</div>
-
-
-Fast Fibonacci
---------------
-
-An efficient fibonacci function
-
-<br>
-
-\begin{code}
-{-@ fastFib :: n:Int -> {v:_ | v = (fib n)} @-}
-fastFib n   = snd $ fibMemo (V (\_ -> 0)) n
-\end{code}
-
-<br>
-
-<div class="fragment">
-- `fibMemo` *takes* a table initialized with `0`
-
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-</div>
-
-
-Memoized Fibonacci 
-------------------
-
-\begin{code}
-fibMemo t i 
-  | i <= 1    
-  = (t, liquidAssume (axiom_fib i) 1)
-  | otherwise 
-  = case get i t of   
-     0 -> let (t1,n1) = fibMemo t  (i-1)
-              (t2,n2) = fibMemo t1 (i-2)
-              n       = liquidAssume 
-                        (axiom_fib i) (n1+n2)
-          in (set i n t2,  n)
-     n -> (t, n)
-\end{code}
-
-Memoized Fibonacci 
-------------------
-
-- `fibMemo` *takes* a table initialized with `0`
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-
-<br>
-
-\begin{code}
-{-@ fibMemo :: FibV 
-            -> i:Int 
-            -> (FibV,{v:Int | v = (fib i)}) @-}
-\end{code}
-
-
-Recap
------
-
-Created a `Vec` container 
-
-Decoupled *domain* and *range* invariants from *data*
-
-<br>
-
-<div class="fragment">
-
-Previous, special purpose program analyses 
-
-- [Gopan-Reps-Sagiv, POPL 05](link)
-- [J.-McMillan, CAV 07](link)
-- [Logozzo-Cousot-Cousot, POPL 11](link)
-- [Dillig-Dillig, POPL 12](link) 
-- ...
-
-Encoded as instance of abstract refinement types!
-</div>
-
-
-
-
diff --git a/docs/slides/flops14/lhs/08_Recursive.lhs b/docs/slides/flops14/lhs/08_Recursive.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/08_Recursive.lhs
+++ /dev/null
@@ -1,544 +0,0 @@
-Decouple Invariants From Data {#recursive} 
-==========================================
-
- {#asd}
--------
-
-Recursive Structures 
---------------------
-
-Lets see another example of decoupling...
-
-<div class="hidden">
-\begin{code}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module List (insertSort) where
-
-{-@ LIQUID "--no-termination" @-}
-
-mergeSort     :: Ord a => [a] -> [a]
-insertSort :: (Ord a) => [a] -> L a 
-slist :: L Int
-slist' :: L Int
-iGoUp, iGoDn, iDiff :: [Int]
-infixr `C`
-\end{code}
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-\begin{code}
-data L a = N 
-         | C { hd :: a, tl :: L a }
-\end{code}
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define **increasing** Lists with strengthened constructors:
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: hd:a -> tl: L {v:a | hd <= v} -> L a
-\end{code}
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing *and* decreasing lists?](http://hackage.haskell.org/package/base-4.7.0.0/docs/src/Data-List.html#sort)
-
-<br>
-
-<div class="fragment">
-[Separate (indexed) types](http://web.cecs.pdx.edu/~sheard/Code/QSort.html) get quite complicated ...
-</div>
-
-Abstract That Refinement!
--------------------------
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C { hd :: a, tl :: L <p> a<p hd> } @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> `p` is a **binary relation** between two `a` values</div>
-
-<br>
-
-<div class="fragment"> Definition relates `hd` with **all** the elements of `tl`</div>
-
-<br>
-
-<div class="fragment"> Recursive: `p` holds for **every pair** of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
-\begin{code} <br>
-x1 `C` x2 `C` x3 `C` rest :: L <p> a 
-\end{code}
-
-Example: Unfold Once
---------------------
-
-\begin{code} <br> 
-x1                 :: a
-x2 `C` x3 `C` rest :: L <p> a<p x1> 
-\end{code}
-
-Example: Unfold Twice
----------------------
-
-\begin{code} <br> 
-x1          :: a
-x2          :: a<p x1>  
-x3 `C` rest :: L <p> a<p x1 && p x2> 
-\end{code}
-
-Example: Unfold Thrice
-----------------------
-
-\begin{code} <br> 
-x1   :: a
-x2   :: a<p x1>  
-x3   :: a<p x1 && p x2>  
-rest :: L <p> a<p x1 && p x2 && p x3> 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair*?
-
-<br>
-
-<div class="fragment">**Instantiate** `p` with a *concrete* refinement</div>
-
-
-Example: Increasing Lists
--------------------------
-
-**Instantiate** `p` with a *concrete* refinement
-
-<br>
-
-\begin{code}
-{-@ type IncL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-<br>
-
-<div class="fragment"> Refinement says: &nbsp; `hd` less than **every** `v` in tail,</div>
-
-<br>
-
-<div class="fragment"> i.e., `IncL` denotes **increasing** lists. </div>
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell *verifies* that `slist` is indeed increasing...
-
-\begin{code}
-{-@ slist :: IncL Int @-}
-slist     = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> 
-
-<div class="fragment">
-
-... and *protests* that `slist'` is not: 
-
-\begin{code}
-{-@ slist' :: IncL Int @-}
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-</div>
-
-Insertion Sort
---------------
-
-\begin{code}
-{-@ insertSort :: (Ord a) => [a] -> IncL a @-}
-insertSort     = foldr insert N
-
-insert y N          = y `C` N
-insert y (x `C` xs) 
-  | y < x           = y `C` (x `C` xs)
-  | otherwise       = x `C` insert y xs
-\end{code}
-
-<br>
-
-(Mouseover `insert` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
-\begin{code} <br> 
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) { h :: a, tl :: [a<p h>]<p> }
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Incs a = [a]<{\h v -> h <= v}> @-}
-
-{-@ iGoUp :: Incs Int @-}
-iGoUp     = [1,2,3]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Decs a = [a]<{\h v -> h >= v}> @-}
-
-{-@ iGoDn :: Decs Int @-}
-iGoDn     = [3,2,1]
-\end{code}
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-\begin{code}
-{-@ type Difs a = [a]<{\h v -> h /= v}> @-}
-
-{-@ iDiff :: Difs Int @-}
-iDiff     = [1,3,2]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Now we can check all the usual list sorting algorithms 
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target="_blank">Demo:</a> List Sorting
-
-<!-- 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-{-@ mergeSort  :: (Ord a) => [a] -> Incs a @-}
-mergeSort []   = []
-mergeSort [x]  = [x]
-mergeSort xs   = merge xs1' xs2' 
-  where 
-   (xs1, xs2)  = split xs
-   xs1'        = mergeSort xs1
-   xs2'        = mergeSort xs2
-\end{code}
-
-Example: `mergeSort` [2/2]
---------------------------
-
-\begin{code}
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-
-merge xs []    = xs
-merge [] ys    = ys
-merge (x:xs) (y:ys) 
-  | x <= y     = x : merge xs (y:ys)
-  | otherwise  = y : merge (x:xs) ys
-\end{code}
-
-
-
-Example: `Data.List.sort` 
--------------------------
-
-<br>
-
-GHC's "official" list sorting routine
-
-<br>
-
-Juggling lists of increasing & decreasing lists
-
-
-
-
-Ex: `Data.List.sort` [1/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-sequences (a:b:xs)
-  | a `compare` b == GT = descending b [a]  xs
-  | otherwise           = ascending  b (a:) xs
-sequences [x]           = [[x]]
-sequences []            = [[]]
-\end{code}
-
-Ex: `Data.List.sort` [2/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-descending a as (b:bs)
-  | a `compare` b == GT 
-  = descending b (a:as) bs
-descending a as bs      
-  = (a:as): sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [3/5]
---------------------------
-
-**Step 1.** Make sequences of increasing & decreasing lists
-
-<br>
-
-
-\begin{code}
-ascending a as (b:bs)
-  | a `compare` b /= GT 
-  = ascending b (\ys -> as (a:ys)) bs
-ascending a as bs      
-  = as [a]: sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [4/5]
---------------------------
-
-**Step 2.** Merge sequences
-
-<br>
-
-\begin{code}
-mergeAll [x]        = x
-mergeAll xs         = mergeAll (mergePairs xs)
-
-mergePairs (a:b:xs) = merge a b: mergePairs xs
-mergePairs [x]      = [x]
-mergePairs []       = []
-\end{code}
-
-
-Ex: `Data.List.sort` [5/5]
---------------------------
-
-Put it all together
-
-<br>
-
-\begin{code}
-{-@ sort :: (Ord a) => [a] -> Incs a  @-}
-sort = mergeAll . sequences
-\end{code}
-
-<br>
-
-<div class="fragment">No other hints or annotations required.</div>
-
--->
-
-Phew!
------
-
-Lets see one last example...
-
-<br>
-<br>
-<br>
-<br>
-
-[[Skip]](#/1/32)
-
-
-Example: Binary Trees
----------------------
-
-... `Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, in `Data.Map` as a binary tree:
-
-<br>
-
-\begin{code}
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-\begin{code}
-{-@ data Map k a < l :: k -> k -> Prop
-                 , r :: k -> k -> Prop >
-    = Tip
-    | Bin (sz :: Size) (key :: k) (val :: a)
-          (left  :: Map <l,r> (k<l key>) a)
-          (right :: Map <l,r> (k<r key>) a) @-}
-\end{code}
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-\begin{code}
-{-@ type BST k a = 
-      Map <{\r v -> v < r }, 
-           {\r v -> v > r }> 
-          k a                   @-}
-\end{code}
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-\begin{code}
-{-@ type MinHeap k a = 
-      Map <{\r v -> r <= v}, 
-           {\r v -> r <= v}> 
-           k a               @-}
-\end{code}
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-\begin{code}
-{-@ type MaxHeap k a = 
-      Map <{\r v -> r >= v}, 
-           {\r v -> r >= v}> 
-           k a               @-}
-\end{code}
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-<br>
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<br>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a> Binary Search Maps
-</div>
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from **functions**
-
-+ `max`
-+ `loop`
-+ `foldr`
-
-</div>
-
-<div class="fragment">
-Decouple invariants from **data**
-
-+ `Vector`
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. **Abstract:** Refinements over functions and data
-5. <div class="fragment">Er, what about Haskell's **lazy evaluation**?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](09_Laziness.lhs.slides.html)</div>
diff --git a/docs/slides/flops14/lhs/09_Laziness.lhs b/docs/slides/flops14/lhs/09_Laziness.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/09_Laziness.lhs
+++ /dev/null
@@ -1,272 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-\begin{code}
-module Laziness where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short"          @-}
-
-
-safeDiv :: Int -> Int -> Int
-foo     :: Int -> Int
--- zero    :: Int 
--- diverge :: a -> b
-\end{code}
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-<br>
-
-
-[[Skip]](11_Evaluation.lhs.slides.html)
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for **strict** languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `Sage`, `F7`, `F*`, ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-\begin{code}
-{-@ safeDiv :: Int -> {v:Int|v /= 0} -> Int @-}
-safeDiv n 0 = liquidError "div-by-zero!"
-safeDiv n d = n `div` d
-\end{code}
-
-<br>
-
-<div class="fragment">
-Should only call `safeDiv` with **non-zero** values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value **strictly less than** input.
-
-<br>
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-\end{code}
-
-LiquidHaskell Lies! 
--------------------
-
-\begin{code}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0    
-              a = foo z
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Why is this program **deemed safe**?! 
-</div>
-
-
-*Safe* With Eager Eval
-----------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Safe** in Java, ML: program spins away, **never hits** divide-by-zero 
-</div>
-
-*Unsafe* With Lazy Eval
------------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-**Unsafe** in Haskell: program skips `foo z` and **hits** divide-by-zero!
-
-Problem: Divergence
--------------------
-
-What is denoted by:
-
-`e :: {v:Int | P}`
-
-
-<br>
-
-<div class="fragment">
-`e` evaluates to `Int` satisfying `P`  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-\begin{code} **Consider** <div/> 
-        {-@ e :: {v : Int | P} @-}
-
-        let x = e in body 
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Eager Evaluation** 
-
-*Can* assume `P(x)` when checking `body`
-</div>
-
-<br>
-
-<div class="fragment">
-**Lazy Evaluation** 
-
-*Cannot* assume `P(x)` when checking `body`
-</div>
-
-Eager vs. Lazy Binders 
-----------------------
-
-\begin{code} <div/>
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0     -- :: {v:Int| v = 0}
-              a = foo z -- :: {v:Nat| v < z}
-          in  
-              (\x -> 2013 `safeDiv` z) a 
-\end{code}
-
-<br>
-
-Inconsistent refinement for `a` is sound for **eager**, unsound for **lazy**
-
-
-Panic! Now what?
----------------
-
-<div class="fragment">
-**Solution** 
-
-Assign *non-trivial* refinements to *non-diverging* terms!
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Require A Termination Analysis**
-
-Don't worry, its easy...
-
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target="_blank">Demo:</a> &nbsp; Disable `"--no-termination"` and see what happens!
-</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. **Lazy Evaluation:** Requires Termination
-6. <div class="fragment">**Termination:** via Refinements!</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](10_Termination.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/flops14/lhs/10_Termination.lhs b/docs/slides/flops14/lhs/10_Termination.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/10_Termination.lhs
+++ /dev/null
@@ -1,314 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-\begin{code}
-module Termination where
-
-import Prelude hiding (gcd, mod, map)
-fib :: Int -> Int
-gcd :: Int -> Int -> Int
-infixr `C`
-
-data L a = N | C a (L a)
-
-{-@ invariant {v: (L a) | 0 <= (llen v)} @-}
-
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
-merge :: Ord a => L a -> L a -> L a
-\end{code}
-</div>
-
-<!--
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
--->
-
-Refinements & Termination
--------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination **using refinements**
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on **smaller** inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-+ [DML](http://dl.acm.org/citation.cfm?id=609232)
-+ [Size Change Principle](http://dl.acm.org/citation.cfm?id=360210)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
-\begin{code} <div/>
-foo   :: Nat -> T
-foo x =  body
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have `Nat` inputs *smaller than* `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-\begin{code}
-{-@ fib  :: Nat -> Nat @-}
-fib 0    = 1
-fib 1    = 1
-fib n    = fib (n-1) + fib (n-2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a> &nbsp; What if we drop the `fib 1` equation? 
-</div>
-
-Refinements Are Essential!
---------------------------
-
-\begin{code}
-{-@ gcd :: a:Nat -> {b:Nat | b < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ mod :: a:Nat 
-        -> b:{v:Nat|(0 < v && v < a)} 
-        -> {v:Nat| v < b}                 @-}
-\end{code}
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= (mS v) < (mS x)} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
-\begin{code} 
-map f N        = N
-map f (C x xs) = (f x) `C` (map f xs) 
-\end{code}
-
-<br>
-
-Terminates using **default** measure `llen` 
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ data L [llen] a = N 
-                    | C { x::a, xs :: L a} @-}
-
-{-@ measure llen :: L a -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)   @-}
-\end{code}
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of smallness spread across **multiple inputs**?
-
-<br>
-
-\begin{code}
-merge xs@(x `C` xs') ys@(y `C` ys')
-  | x < y     = x `C` merge xs' ys
-  | otherwise = y `C` merge xs ys'
-\end{code}
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their **sum** does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their **sum** does.
-
-<br>
-
-\begin{code}
-{-@ merge :: Ord a => xs:_ -> ys:_ -> _ 
-          /  [(llen xs) + (llen ys)]     @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Synthesize **ghost** parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-... thereby reducing to decreasing **single parameter** case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-<br>
-
-<div class="fragment">**Mutual** recursion</div>
-
-<br>
-
-<div class="fragment">**Lexicographic** ordering</div>
-
-<br>
-
-<div class="fragment">Fit easily into our framework ...</div>
-
-Recap
------
-
-Main idea: Recursive calls on **smaller** inputs
-
-<br>
-
-<div class="fragment">Use refinements to **check** smaller</div>
-
-<br>
-
-<div class="fragment">Use refinements to **establish** smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> Meta-theory is tricky, but all ends well.</div>
-
-Recap
------
-
-1. Refinements: Types + Predicates
-2. Subtyping: SMT Implication
-3. Measures: Strengthened Constructors
-4. Abstract: Refinements over functions and data
-5. Lazy Evaluation: Requires Termination
-6. **Termination:** via Refinements!
-7. <div class="fragment">**Evaluation:** How good is this in practice?</div>
-
-<br>
-<br>
-
-<div class="fragment">[[continue...]](11_Evaluation.lhs.slides.html)</div>
-
-
diff --git a/docs/slides/flops14/lhs/11_Evaluation.lhs b/docs/slides/flops14/lhs/11_Evaluation.lhs
deleted file mode 100644
--- a/docs/slides/flops14/lhs/11_Evaluation.lhs
+++ /dev/null
@@ -1,118 +0,0 @@
- {#ASda}
-========
-
-Evaluation
-----------
-
-
-
-Evaluation
-==========
-
-LiquidHaskell Is For Real
--------------------------
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg: to force Makefile"
-\end{code}
-
-</div>
-
-
-<br>
-
-Substantial code bases.
-
-<br>
-
-Complex properties.
-
-<br>
-
-<div class="fragment">Inference is crucial.</div>
-
-
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**
----------------------------   ---------
-`Data.List`                         814
-`Data.Set.Splay`                    149
-`Data.Vector.Algorithms`           1219
-`Data.Map.Base`                    1396
-`Data.Text`                        3125
-`Data.Bytestring`                  3501 
-**Total**                     **10224**
----------------------------   ---------
-
-</div>
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                     **LOC**     **Time**
----------------------------   ---------   ----------
-`Data.List`                         814          52s
-`Data.Set.Splay`                    149          26s
-`Data.Vector.Algorithms`           1219         196s 
-`Data.Map.Base`                    1396         247s
-`Data.Text`                        3125         809s
-`Data.Bytestring`                  3501         549s
-**Total**                     **10224**    **1880s**
----------------------------   ---------   ----------
-
-</div>
-
-
-Termination
------------
-
-Proving termination is **easy in practice**.
-
-<br>
-
-- <div class="fragment">`503` recursive functions</div>
-- <div class="fragment">`67%` automatically proved</div>
-- <div class="fragment">`30%` need *witnesses* `/[...]`</div>
-- <div class="fragment">`1`   witness per `100` lines of code</div>
-- <div class="fragment">`20`  *not proven* to terminate</div>
-- <div class="fragment">`12`  *do not* terminate (e.g. top-level `IO` loops)</div>
-- <div class="fragment">`8`   currently *outside scope* of LiquidHaskell</div>
-
-
-Future Work
------------
-
-<br>
-<br>
-
-- <div class="fragment">Speed</div>
-
-- <div class="fragment">Case Studies</div>
-
-- <div class="fragment">**Error Messages**</div>
-
- {#asd}
-=======
-
-
-Thank You!
-----------
-
-<br>
-
-`cabal install liquidhaskell`
-
-<br>
-
-`https://github.com/ucsd-progsys/liquidhaskell`
-
-<br>
diff --git a/docs/slides/flops14/reveal.js/.gitignore b/docs/slides/flops14/reveal.js/.gitignore
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-.svn
-log/*.log
-tmp/**
-node_modules/
-.sass-cache
diff --git a/docs/slides/flops14/reveal.js/.travis.yml b/docs/slides/flops14/reveal.js/.travis.yml
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-before_script:
-  - npm install -g grunt-cli
diff --git a/docs/slides/flops14/reveal.js/Gruntfile.js b/docs/slides/flops14/reveal.js/Gruntfile.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/Gruntfile.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* global module:false */
-module.exports = function(grunt) {
-	var port = grunt.option('port') || 8000;
-	// Project configuration
-	grunt.initConfig({
-		pkg: grunt.file.readJSON('package.json'),
-		meta: {
-			banner:
-				'/*!\n' +
-				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
-				' * http://lab.hakim.se/reveal-js\n' +
-				' * MIT licensed\n' +
-				' *\n' +
-				' * Copyright (C) 2013 Hakim El Hattab, http://hakim.se\n' +
-				' */'
-		},
-
-		qunit: {
-			files: [ 'test/*.html' ]
-		},
-
-		uglify: {
-			options: {
-				banner: '<%= meta.banner %>\n'
-			},
-			build: {
-				src: 'js/reveal.js',
-				dest: 'js/reveal.min.js'
-			}
-		},
-
-		cssmin: {
-			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
-			}
-		},
-
-		sass: {
-			main: {
-				files: {
-					'css/theme/default.css': 'css/theme/source/default.scss',
-					'css/theme/beige.css': 'css/theme/source/beige.scss',
-					'css/theme/night.css': 'css/theme/source/night.scss',
-					'css/theme/serif.css': 'css/theme/source/serif.scss',
-					'css/theme/simple.css': 'css/theme/source/simple.scss',
-					'css/theme/sky.css': 'css/theme/source/sky.scss',
-					'css/theme/moon.css': 'css/theme/source/moon.scss',
-					'css/theme/solarized.css': 'css/theme/source/solarized.scss',
-					'css/theme/blood.css': 'css/theme/source/blood.scss'
-				}
-			}
-		},
-
-		jshint: {
-			options: {
-				curly: false,
-				eqeqeq: true,
-				immed: true,
-				latedef: true,
-				newcap: true,
-				noarg: true,
-				sub: true,
-				undef: true,
-				eqnull: true,
-				browser: true,
-				expr: true,
-				globals: {
-					head: false,
-					module: false,
-					console: false,
-					unescape: false
-				}
-			},
-			files: [ 'Gruntfile.js', 'js/reveal.js' ]
-		},
-
-		connect: {
-			server: {
-				options: {
-					port: port,
-					base: '.'
-				}
-			}
-		},
-
-		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**'
-			]
-		},
-
-		watch: {
-			main: {
-				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-				tasks: 'default'
-			},
-			theme: {
-				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
-				tasks: 'themes'
-			}
-		}
-
-	});
-
-	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
-	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
-	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-contrib-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
-	grunt.loadNpmTasks( 'grunt-zip' );
-
-	// Default task
-	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );
-
-	// Theme task
-	grunt.registerTask( 'themes', [ 'sass' ] );
-
-	// Package presentation to archive
-	grunt.registerTask( 'package', [ 'default', 'zip' ] );
-
-	// Serve presentation locally
-	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
-
-	// Run tests
-	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
-
-};
diff --git a/docs/slides/flops14/reveal.js/LICENSE b/docs/slides/flops14/reveal.js/LICENSE
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2013 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.eot b/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.eot
deleted file mode 100644
Binary files a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.eot and /dev/null differ
diff --git a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.svg b/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.svg
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="LeagueGothicRegular" horiz-adv-x="724" >
-<font-face units-per-em="2048" ascent="1505" descent="-543" />
-<missing-glyph horiz-adv-x="315" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="682" />
-<glyph unicode=" "  horiz-adv-x="315" />
-<glyph unicode="&#x09;" horiz-adv-x="315" />
-<glyph unicode="&#xa0;" horiz-adv-x="315" />
-<glyph unicode="!" horiz-adv-x="387" d="M74 1505h239l-55 -1099h-129zM86 0v227h215v-227h-215z" />
-<glyph unicode="&#x22;" horiz-adv-x="329" d="M57 1505h215l-30 -551h-154z" />
-<glyph unicode="#" horiz-adv-x="1232" d="M49 438l27 195h198l37 258h-196l26 194h197l57 420h197l-57 -420h260l57 420h197l-58 -420h193l-27 -194h-192l-37 -258h190l-26 -195h-191l-59 -438h-197l60 438h-261l-59 -438h-197l60 438h-199zM471 633h260l37 258h-260z" />
-<glyph unicode="$" horiz-adv-x="692" d="M37 358l192 13q12 -186 129 -187q88 0 93 185q0 74 -61 175q-21 36 -34 53l-40 55q-28 38 -65.5 90t-70.5 101.5t-70.5 141.5t-37.5 170q4 293 215 342v131h123v-125q201 -23 235 -282l-192 -25q-14 129 -93 125q-80 -2 -84 -162q0 -102 94 -227l41 -59q30 -42 37 -52 t33 -48l37 -52q41 -57 68 -109l26 -55q43 -94 43 -186q-4 -338 -245 -369v-217h-123v221q-236 41 -250 352z" />
-<glyph unicode="%" horiz-adv-x="1001" d="M55 911v437q0 110 82 156q33 18 90.5 18t97.5 -44t44 -87l4 -43v-437q0 -107 -81 -157q-32 -19 -77 -19q-129 0 -156 135zM158 0l553 1505h131l-547 -1505h-137zM178 911q-4 -55 37 -55q16 0 25.5 14.5t9.5 26.5v451q2 55 -35 55q-18 0 -27.5 -13.5t-9.5 -27.5v-451z M631 158v436q0 108 81 156q33 20 79 20q125 0 153 -135l4 -41v-436q0 -110 -80 -156q-32 -18 -90.5 -18t-98.5 43t-44 88zM754 158q-4 -57 37 -58q37 0 34 58v436q2 55 -34 55q-18 0 -27.5 -13t-9.5 -28v-450z" />
-<glyph unicode="&#x26;" horiz-adv-x="854" d="M49 304q0 126 44 225.5t126 222.5q-106 225 -106 442v18q0 94 47 180q70 130 223 130q203 0 252 -215q14 -61 12 -113q0 -162 -205 -434q76 -174 148 -285q33 96 47 211l176 -33q-16 -213 -92 -358q55 -63 92 -76v-235q-23 0 -86 37.5t-123 101.5q-123 -139 -252 -139 t-216 97t-87 223zM263 325.5q1 -65.5 28.5 -107.5t78.5 -42t117 86q-88 139 -174 295q-18 -30 -34.5 -98t-15.5 -133.5zM305 1194q0 -111 55 -246q101 156 101 252q-2 2 0 15.5t-2 36t-11 42.5q-19 52 -61.5 52t-62 -38t-19.5 -75v-39z" />
-<glyph unicode="'" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="(" horiz-adv-x="561" d="M66 645q0 143 29.5 292.5t73.5 261.5q92 235 159 343l30 47l162 -84q-38 -53 -86.5 -148t-82.5 -189.5t-61.5 -238t-27.5 -284.5t26.5 -282.5t64.5 -240.5q80 -207 141 -296l26 -39l-162 -84q-41 61 -96 173t-94 217.5t-70.5 257t-31.5 294.5z" />
-<glyph unicode=")" horiz-adv-x="561" d="M41 -213q36 50 85.5 147t83.5 190t61.5 236.5t27.5 284.5t-26.5 282.5t-64.5 240.5q-78 205 -140 298l-27 39l162 84q41 -61 96 -173.5t94 -217t71 -257.5t32 -296t-30 -292.5t-74 -260.5q-92 -233 -159 -342l-30 -47z" />
-<glyph unicode="*" horiz-adv-x="677" d="M74 1251l43 148l164 -70l-19 176h154l-19 -176l164 70l43 -148l-172 -34l115 -138l-131 -80l-78 152l-76 -152l-131 80l115 138z" />
-<glyph unicode="+" horiz-adv-x="1060" d="M74 649v172h370v346h172v-346h371v-172h-371v-346h-172v346h-370z" />
-<glyph unicode="," horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="-" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="." horiz-adv-x="321" d="M53 0v227h215v-227h-215z" />
-<glyph unicode="/" horiz-adv-x="720" d="M8 -147l543 1652h162l-537 -1652h-168z" />
-<glyph unicode="0" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="1" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="2" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="3" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="4" horiz-adv-x="684" d="M25 328v194l323 983h221v-983h103v-194h-103v-328h-202v328h-342zM213 522h154v516h-13z" />
-<glyph unicode="5" horiz-adv-x="704" d="M74 438h221v-59q0 -115 14.5 -159t52 -44t53 45t15.5 156v336q0 111 -70 110q-33 0 -59.5 -40t-26.5 -70h-186v792h535v-219h-344v-313q74 55 127 51q78 0 133 -40t77 -100q35 -98 35 -171v-336q0 -393 -289 -393q-78 0 -133 29.5t-84.5 71.5t-46.5 109q-24 98 -24 244z " />
-<glyph unicode="6" horiz-adv-x="700" d="M66 309v856q0 356 288.5 356.5t288.5 -356.5v-94h-221q0 162 -11.5 210t-53.5 48t-56 -37t-14 -127v-268q59 37 124.5 37t119 -36t75.5 -93q37 -92 37 -189v-307q0 -90 -42 -187q-26 -61 -89 -99.5t-157.5 -38.5t-158 38.5t-88.5 99.5q-42 98 -42 187zM287 244 q0 -20 17.5 -44t49 -24t50 24.5t18.5 43.5v450q0 18 -18.5 43t-49 25t-48 -20.5t-19.5 -41.5v-456z" />
-<glyph unicode="7" horiz-adv-x="589" d="M8 1286v219h557v-221l-221 -1284h-229l225 1286h-332z" />
-<glyph unicode="8" horiz-adv-x="696" d="M53 322v176q0 188 115 297q-102 102 -102 276v127q0 213 147 293q57 31 135 31t135.5 -31t84 -71t42.5 -93q21 -66 21 -129v-127q0 -174 -103 -276q115 -109 115 -297v-176q0 -222 -153 -306q-60 -32 -142 -32t-141.5 32.5t-88 73.5t-44.5 96q-21 69 -21 136zM269 422 q1 -139 16.5 -187.5t57.5 -48.5t59.5 30t21.5 71t4 158t-13.5 174t-66.5 57t-66.5 -57.5t-12.5 -196.5zM284 1116q-1 -123 11 -173t53 -50t53.5 50t12.5 170t-12.5 167t-51.5 47t-52 -44t-14 -167z" />
-<glyph unicode="9" horiz-adv-x="700" d="M57 340v94h222q0 -162 11 -210t53 -48t56.5 37t14.5 127v283q-59 -37 -125 -37t-119 35.5t-76 92.5q-37 96 -37 189v293q0 87 43 188q25 60 88.5 99t157.5 39t157.5 -39t88.5 -99q43 -101 43 -188v-856q0 -356 -289 -356t-289 356zM279 825q0 -18 18 -42.5t49 -24.5 t48.5 20.5t19.5 40.5v443q0 20 -17.5 43.5t-49.5 23.5t-50 -24.5t-18 -42.5v-437z" />
-<glyph unicode=":" horiz-adv-x="362" d="M74 0v227h215v-227h-215zM74 893v227h215v-227h-215z" />
-<glyph unicode=";" horiz-adv-x="362" d="M74 0v227h215v-227l-113 -266h-102l71 266h-71zM74 893v227h215v-227h-215z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="=" horiz-adv-x="1058" d="M74 477v172h911v-172h-911zM74 864v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="?" horiz-adv-x="645" d="M25 1260q24 67 78 131q105 128 235 122q82 -2 138 -33.5t82 -81.5q46 -88 46 -170.5t-80 -219.5l-57 -96q-18 -32 -42 -106.5t-24 -143.5v-256h-190v256q0 102 24.5 195t48 140t65.5 118t50 105t-9 67.5t-60 34.5t-78 -48t-49 -98zM199 0h215v227h-215v-227z" />
-<glyph unicode="@" horiz-adv-x="872" d="M66 303v889q0 97 73 200q39 56 117 93t184.5 37t184 -37t116.5 -93q74 -105 74 -200v-793h-164l-20 56q-14 -28 -46 -48t-67 -20q-145 0 -145 172v485q0 170 145 170q71 0 113 -67v45q0 51 -45 104.5t-145.5 53.5t-145.5 -53.5t-45 -104.5v-889q0 -53 44 -103t153.5 -50 t160.5 63l152 -86q-109 -143 -320 -143q-106 0 -184 35.5t-117 90.5q-73 102 -73 193zM535 573q0 -53 48 -53t48 53v455q0 53 -48 53t-48 -53v-455z" />
-<glyph unicode="A" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="B" horiz-adv-x="745" d="M82 0v1505h194q205 0 304.5 -91t99.5 -308q0 -106 -29.5 -175t-107.5 -136q14 -5 47 -38.5t54 -71.5q52 -97 52 -259q0 -414 -342 -426h-272zM303 219q74 0 109 31q55 56 55 211t-63 195q-42 26 -93 26h-8v-463zM303 885q87 0 119 39q45 55 45 138t-14.5 124t-30.5 60.5 t-45 28.5q-35 11 -74 11v-401z" />
-<glyph unicode="C" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175z" />
-<glyph unicode="D" horiz-adv-x="761" d="M82 0v1505h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174zM303 221q117 0 140.5 78t23.5 399v111q0 322 -23.5 398.5t-140.5 76.5v-1063z" />
-<glyph unicode="E" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506z" />
-<glyph unicode="F" horiz-adv-x="616" d="M82 0v1505h526v-227h-305v-395h205v-228h-205v-655h-221z" />
-<glyph unicode="G" horiz-adv-x="737" d="M67 271.5q0 26.5 1 37.5v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-231h-221v231q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-905q0 -46 19.5 -78.5t54 -32.5t53 28t18.5 54l2 29v272h-88v187h309v-750h-131l-26 72 q-70 -88 -172 -88q-203 0 -250 213q-11 48 -11 74.5z" />
-<glyph unicode="H" horiz-adv-x="778" d="M82 0v1505h221v-622h172v622h221v-1505h-221v655h-172v-655h-221z" />
-<glyph unicode="I" horiz-adv-x="385" d="M82 0v1505h221v-1505h-221z" />
-<glyph unicode="J" horiz-adv-x="423" d="M12 -14v217q4 0 12.5 -1t29 2t35.5 12t28.5 34.5t13.5 62.5v1192h221v-1226q0 -137 -74 -216q-74 -78 -223 -78h-4q-19 0 -39 1z" />
-<glyph unicode="K" horiz-adv-x="768" d="M82 0v1505h221v-526h8l195 526h215l-203 -495l230 -1010h-216l-153 655l-6 31h-6l-64 -154v-532h-221z" />
-<glyph unicode="L" horiz-adv-x="604" d="M82 0v1505h221v-1300h293v-205h-514z" />
-<glyph unicode="M" horiz-adv-x="991" d="M82 0v1505h270l131 -688l11 -80h4l10 80l131 688h270v-1505h-204v1010h-13l-149 -1010h-94l-142 946l-8 64h-12v-1010h-205z" />
-<glyph unicode="N" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203z" />
-<glyph unicode="O" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="P" horiz-adv-x="720" d="M82 0v1505h221q166 0 277.5 -105.5t111.5 -345t-111.5 -346t-277.5 -106.5v-602h-221zM303 827q102 0 134 45.5t32 175.5t-33 181t-133 51v-453z" />
-<glyph unicode="Q" horiz-adv-x="729" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -94 -45 -182q33 -43 88 -53v-189q-160 0 -227 117q-55 -18 -125 -18t-130 33.5t-88 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887 q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="R" horiz-adv-x="739" d="M82 0v1505h221q377 0 377 -434q0 -258 -123 -342l141 -729h-221l-115 635h-59v-635h-221zM303 840q117 0 149 98q15 49 15 125t-15.5 125t-45.5 68q-44 30 -103 30v-446z" />
-<glyph unicode="S" horiz-adv-x="702" d="M37 422l217 20q0 -256 104 -256q90 0 91 166q0 59 -32 117.5t-45 79.5l-54 79q-40 58 -77 113t-73.5 117t-68 148.5t-31.5 162.5q0 139 71.5 245t216.5 108h10q88 0 152 -36t94 -100q54 -120 54 -264l-217 -20q0 217 -89 217q-75 -2 -75 -146q0 -59 23 -105 q32 -66 58 -104l197 -296q31 -49 67 -139.5t36 -166.5q0 -378 -306 -378h-2q-229 0 -290 188q-31 99 -31 250z" />
-<glyph unicode="T" horiz-adv-x="647" d="M4 1278v227h639v-227h-209v-1278h-221v1278h-209z" />
-<glyph unicode="U" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175z" />
-<glyph unicode="V" horiz-adv-x="716" d="M18 1505h215l111 -827l8 -64h13l118 891h215l-229 -1505h-221z" />
-<glyph unicode="W" horiz-adv-x="1036" d="M25 1505h204l88 -782l5 -49h16l100 831h160l100 -831h17l92 831h205l-203 -1505h-172l-115 801h-8l-115 -801h-172z" />
-<glyph unicode="X" horiz-adv-x="737" d="M16 0l244 791l-240 714h218l120 -381l7 -18h8l127 399h217l-240 -714l244 -791h-217l-127 449l-4 18h-8l-132 -467h-217z" />
-<glyph unicode="Y" horiz-adv-x="700" d="M14 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641z" />
-<glyph unicode="Z" horiz-adv-x="626" d="M20 0v238l347 1048h-297v219h536v-219l-352 -1067h352v-219h-586z" />
-<glyph unicode="[" horiz-adv-x="538" d="M82 -213v1718h399v-196h-202v-1325h202v-197h-399z" />
-<glyph unicode="\" horiz-adv-x="792" d="M8 1692h162l614 -1872h-168z" />
-<glyph unicode="]" horiz-adv-x="538" d="M57 -16h203v1325h-203v196h400v-1718h-400v197z" />
-<glyph unicode="^" horiz-adv-x="1101" d="M53 809l381 696h234l381 -696h-199l-299 543l-299 -543h-199z" />
-<glyph unicode="_" horiz-adv-x="1210" d="M74 -154h1063v-172h-1063v172z" />
-<glyph unicode="`" horiz-adv-x="1024" d="M293 1489h215l106 -184h-159z" />
-<glyph unicode="a" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="b" horiz-adv-x="686" d="M82 0v1505h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-74h-207zM289 246q0 -29 19.5 -48.5t42 -19.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -21.5t-19.5 -46.5v-628z" />
-<glyph unicode="c" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331z" />
-<glyph unicode="d" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v458h207v-1505h-207v74q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 19.5t19.5 48.5v628q0 25 -19.5 46.5t-42 21.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="e" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="f" horiz-adv-x="475" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-65 0 -65 -175v-5v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="g" horiz-adv-x="700" d="M12 -184q0 94 162 170q-125 35 -125 149q0 45 40 93t89 75q-51 35 -80.5 95.5t-34.5 105.5l-4 43v305q0 35 16.5 91t41 94t79 69t126.5 31q135 0 206 -103q102 102 170 103v-185q-72 0 -120 -24l10 -70v-317q0 -37 -17.5 -90.5t-42 -90t-79 -66.5t-104.5 -30t-62 2 q-29 -25 -29 -46t11 -33.5t42 -20.5t45.5 -10t65.5 -10.5t95 -21.5t89 -41q96 -60 96 -205t-103 -212q-100 -65 -250 -65h-9q-156 2 -240 50t-84 165zM213 -150q0 -77 132 -77h3q59 0 108.5 19t49.5 54t-20.5 52.5t-90.5 29.5l-106 21q-76 -43 -76 -99zM262 509 q0 -17 15.5 -45t44.5 -28q63 6 63 101v307q-2 0 0 10q1 3 1 7q0 8 -3 19q-4 15 -9 30q-11 36 -46 36t-50.5 -25.5t-15.5 -52.5v-359z" />
-<glyph unicode="h" horiz-adv-x="690" d="M82 0v1505h207v-479l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="i" horiz-adv-x="370" d="M82 0v1120h207v-1120h-207zM82 1298v207h207v-207h-207z" />
-<glyph unicode="j" horiz-adv-x="364" d="M-45 -182q29 -8 57 -8q64 0 64 142v1168h207v-1149q0 -186 -51 -266q-23 -35 -71 -62.5t-115 -27.5t-91 12v191zM76 1298v207h207v-207h-207z" />
-<glyph unicode="k" horiz-adv-x="641" d="M82 0v1505h207v-714h10l113 329h186l-149 -364l188 -756h-199l-102 453l-4 16h-10l-33 -82v-387h-207z" />
-<glyph unicode="l" horiz-adv-x="370" d="M82 0v1505h207v-1505h-207z" />
-<glyph unicode="m" horiz-adv-x="1021" d="M82 0v1120h207v-94q2 0 33 30q80 81 139 81q100 0 139 -125q125 125 194.5 125t109.5 -69t40 -150v-918h-194v887q-1 49 -56 49q-41 0 -78 -53v-883h-194v887q0 49 -55 49q-41 0 -78 -53v-883h-207z" />
-<glyph unicode="n" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="o" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="p" horiz-adv-x="686" d="M82 -385v1505h207v-73q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="q" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v73h207v-1505h-207v459q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 21.5t19.5 46.5v628q0 29 -19.5 48.5t-42 19.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="r" horiz-adv-x="503" d="M82 0v1120h207v-125q8 41 58.5 91.5t148.5 50.5v-230q-34 11 -77 11t-86.5 -39t-43.5 -101v-778h-207z" />
-<glyph unicode="s" horiz-adv-x="630" d="M37 326h192q0 -170 97 -170q71 0 71 131q0 78 -129 202q-68 66 -98.5 99t-64 101.5t-33.5 134t12 114.5t39 95q59 100 201 104h11q161 0 211 -105q42 -86 42 -198h-193q0 131 -67 131q-63 -2 -64 -131q0 -33 23.5 -73t45 -62.5t66.5 -65.5q190 -182 191 -342 q0 -123 -64.5 -215t-199.5 -92q-197 0 -260 170q-29 76 -29 172z" />
-<glyph unicode="t" horiz-adv-x="501" d="M20 934v186h105v277h207v-277h141v-186h-141v-557q0 -184 65 -184l76 8v-203q-45 -14 -112 -14t-114.5 28.5t-70 64.5t-34.5 96q-17 79 -17 187v574h-105z" />
-<glyph unicode="u" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5z" />
-<glyph unicode="v" horiz-adv-x="602" d="M16 1120h201l68 -649l8 -72h16l76 721h201l-183 -1120h-204z" />
-<glyph unicode="w" horiz-adv-x="905" d="M20 1120h189l65 -585l9 -64h12l96 649h123l86 -585l10 -64h13l73 649h189l-166 -1120h-172l-80 535l-10 63h-8l-91 -598h-172z" />
-<glyph unicode="x" horiz-adv-x="618" d="M16 0l193 578l-176 542h194l74 -262l6 -31h4l6 31l74 262h195l-176 -542l192 -578h-201l-84 283l-6 30h-4l-6 -30l-84 -283h-201z" />
-<glyph unicode="y" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5z" />
-<glyph unicode="z" horiz-adv-x="532" d="M12 0v168l285 764h-240v188h459v-168l-285 -764h285v-188h-504z" />
-<glyph unicode="{" horiz-adv-x="688" d="M61 453v163q72 0 102 49.5t30 90.5v397q0 223 96 298t342 71v-172q-135 2 -188.5 -38t-53.5 -159v-397q0 -143 -127 -221q127 -82 127 -222v-397q0 -119 53.5 -159t188.5 -38v-172q-246 -4 -342 71t-96 298v397q0 57 -41 97.5t-91 42.5z" />
-<glyph unicode="|" horiz-adv-x="356" d="M82 -512v2204h192v-2204h-192z" />
-<glyph unicode="}" horiz-adv-x="688" d="M57 -281q135 -2 188.5 38t53.5 159v397q0 139 127 222q-127 78 -127 221v397q0 119 -53 159t-189 38v172q246 4 342.5 -71t96.5 -298v-397q0 -63 41 -101.5t90 -38.5v-163q-72 -4 -101.5 -52.5t-29.5 -87.5v-397q0 -223 -96.5 -298t-342.5 -71v172z" />
-<glyph unicode="~" horiz-adv-x="1280" d="M113 1352q35 106 115 200q34 41 94.5 74t121 33t116.5 -18.5t82 -33t83 -51.5q106 -72 174 -71q109 0 178 153l13 29l135 -57q-63 -189 -206 -276q-56 -34 -120 -34q-121 0 -272 101q-115 74 -178.5 74t-113.5 -45.5t-69 -90.5l-18 -45z" />
-<glyph unicode="&#xa1;" horiz-adv-x="387" d="M74 -385l55 1100h129l55 -1100h-239zM86 893v227h215v-227h-215z" />
-<glyph unicode="&#xa2;" horiz-adv-x="636" d="M66 508v489q0 297 208 328v242h123v-244q98 -16 144.5 -88t46.5 -227v-88h-189v135q0 90 -72.5 90t-72.5 -90v-604q0 -90 72 -91q74 0 73 91v155h189v-108q0 -156 -46 -228.5t-145 -89.5v-303h-123v301q-209 31 -208 330z" />
-<glyph unicode="&#xa3;" horiz-adv-x="817" d="M4 63q8 20 23.5 53.5t70 91.5t117.5 68q37 111 37 189t-31 184h-188v137h147l-6 21q-78 254 -78 333t15.5 140t48.5 116q72 122 231 126q190 4 267 -126q65 -108 65 -276h-213q0 201 -115 197q-47 -2 -68.5 -51t-21.5 -139.5t70 -315.5l6 -25h211v-137h-174 q25 -100 24.5 -189t-57.5 -204q16 -8 44 -24q59 -35 89 -35q74 4 82 190l188 -22q-12 -182 -81.5 -281.5t-169.5 -99.5q-51 0 -143.5 51t-127.5 51t-63.5 -25.5t-40.5 -52.5l-12 -24z" />
-<glyph unicode="&#xa5;" horiz-adv-x="720" d="M25 1505h217l110 -481l6 -14h4l7 14l110 481h217l-196 -753h147v-138h-176v-137h176v-137h-176v-340h-221v340h-176v137h176v137h-176v138h147z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1024" d="M272 1305v200h191v-200h-191zM561 1305v200h191v-200h-191z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM627 487v531q0 122 97 174q40 22 95 22 q147 0 182 -147l7 -49v-125h-138v142q0 11 -12 28.5t-37 17.5q-47 -2 -49 -63v-531q0 -63 49 -63q53 2 49 63v125h138v-125q0 -68 -40 -127q-18 -26 -57 -47.5t-108.5 -21.5t-117.5 49t-54 98z" />
-<glyph unicode="&#xaa;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xad;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#xae;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM625 313v879h196q231 0 232 -258 q0 -76 -16.5 -125t-71.5 -96l106 -400h-151l-95 365h-55v-365h-145zM770 805h45q43 0 65.5 21.5t27.5 45t5 61.5t-5 62.5t-27.5 46t-65.5 21.5h-45v-258z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M313 1315v162h398v-162h-398z" />
-<glyph unicode="&#xb2;" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="&#xb3;" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1024" d="M410 1305l106 184h215l-162 -184h-159z" />
-<glyph unicode="&#xb7;" horiz-adv-x="215" d="M0 649v228h215v-228h-215z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1024" d="M426 -111h172v-141l-45 -133h-104l40 133h-63v141z" />
-<glyph unicode="&#xb9;" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="&#xba;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="&#xbf;" horiz-adv-x="645" d="M41 -106q0 82 80 219l57 95q18 32 42 106.5t24 144.5v256h190v-256q0 -102 -24.5 -195.5t-48 -140.5t-65.5 -118t-50 -104.5t9 -67.5t60 -35t78 48.5t49 98.5l179 -84q-24 -66 -78 -132q-104 -126 -236 -122q-163 4 -220 115q-46 90 -46 172zM231 893v227h215v-227h-215z " />
-<glyph unicode="&#xc0;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM141 1823h215l107 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc1;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM293 1638l106 185h215l-161 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc2;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM133 1638l141 185h220l141 -185h-189l-63 72l-61 -72h-189zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc3;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM184 1632v152q49 39 95.5 39t104.5 -18.5t100.5 -19.5t97.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-98 19.5t-102 -33zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc4;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM143 1638v201h191v-201h-191zM307 541h152l-64 475l-6 39h-12zM432 1638v201h191v-201h-191z" />
-<glyph unicode="&#xc5;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM231 1761.5q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM307 541h152l-64 475l-6 39h-12zM309 1761.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50 t-23.5 50t-52.5 21.5t-52.5 -21.5t-23.5 -50z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1099" d="M16 0l420 1505h623v-227h-285v-395h205v-242h-205v-414h285v-227h-506v307h-227l-90 -307h-220zM393 541h160v514h-10z" />
-<glyph unicode="&#xc7;" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM268 -111v-141h64l-41 -133h104l45 133v141h-172z" />
-<glyph unicode="&#xc8;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM111 1823h215l106 -185h-160z" />
-<glyph unicode="&#xc9;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM236 1638l106 185h215l-162 -185h-159z" />
-<glyph unicode="&#xca;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM84 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xcb;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM94 1638v201h191v-201h-191zM383 1638v201h190v-201h-190z" />
-<glyph unicode="&#xcc;" horiz-adv-x="401" d="M-6 1823h215l106 -185h-159zM98 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcd;" horiz-adv-x="401" d="M82 0v1505h221v-1505h-221zM86 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xce;" horiz-adv-x="370" d="M-66 1638l142 185h219l141 -185h-188l-64 72l-61 -72h-189zM74 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcf;" horiz-adv-x="372" d="M-53 1638v201h190v-201h-190zM76 0v1505h221v-1505h-221zM236 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd0;" horiz-adv-x="761" d="M20 655v228h62v622h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174v655h-62zM303 221q117 0 141.5 81t22.5 452q2 371 -22.5 450.5t-141.5 79.5v-401h84v-228h-84v-434z " />
-<glyph unicode="&#xd1;" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203zM207 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39t-102.5 19.5t-100 19.5t-99.5 -33z" />
-<glyph unicode="&#xd2;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM121 1823h215l106 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd3;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM285 1638l106 185h215l-162 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5 t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd4;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM113 1638l141 185h219l141 -185h-188l-64 72l-61 -72h-188zM289 309q0 -46 19.5 -78 t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd5;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM164 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39 t-102.5 19.5t-100 19.5t-99.5 -33zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd6;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM123 1638v201h190v-201h-190zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887zM412 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd8;" d="M59 -20l47 157q-36 74 -36 148l-2 24v887q0 42 17 106t45 107t88.5 78t148 35t153.5 -43l15 47h122l-45 -150q43 -84 43 -155l2 -25v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-150.5 -34.5t-153 43l-15 -47h-129zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v488zM289 727l147 479q-8 100 -74 101q-35 0 -53 -28t-18 -54l-2 -29v-469z" />
-<glyph unicode="&#xd9;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM145 1823h215l107 -185h-160z" />
-<glyph unicode="&#xda;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM307 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xdb;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM125 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xdc;" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175zM135 1638v201h191v-201h-191zM424 1638v201h190v-201h-190z" />
-<glyph unicode="&#xdd;" horiz-adv-x="704" d="M16 1505l226 -864v-641h221v641l225 864h-217l-111 -481l-6 -14h-4l-6 14l-111 481h-217zM254 1638l106 185h215l-161 -185h-160z" />
-<glyph unicode="&#xde;" d="M82 0v1505h219v-241h2q166 0 277.5 -105.5t111.5 -345.5t-111.5 -346.5t-277.5 -106.5v-360h-221zM303 586q102 0 134 45t32 175t-33 181t-133 51v-452z" />
-<glyph unicode="&#xdf;" horiz-adv-x="733" d="M66 0v1235q0 123 70.5 205t206.5 82t204.5 -81t68.5 -197t-88 -181q152 -88 152 -488q0 -362 -87 -475q-46 -59 -102.5 -79.5t-144.5 -20.5v193q45 0 70 25q57 57 57 357q0 316 -57 377q-25 27 -70 27v141q35 0 60.5 33t25.5 84q0 100 -86 100q-74 0 -74 -102v-1235h-206 z" />
-<glyph unicode="&#xe0;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1489h215 l107 -184h-160zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe1;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xe2;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM90 1305 l141 184h220l141 -184h-189l-63 71l-61 -71h-189zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe3;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM143 1305v151 q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe4;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1305v200 h191v-200h-191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM391 1305v200h191v-200h-191z" />
-<glyph unicode="&#xe5;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM188 1421.5 q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM266 1421.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50t-23.5 50t-52.5 21.5t-52.5 -21.5 t-23.5 -50z" />
-<glyph unicode="&#xe6;" horiz-adv-x="989" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t197.5 88q84 0 152 -52q66 51 162 52q199 0 251 -197q14 -51 15 -92v-326h-342v-256q0 -60 38 -88q17 -12 38 -12q70 10 73 113v122h193v-129 q0 -37 -16.5 -93t-41 -95t-80 -69.5t-130.5 -30.5q-158 0 -226 131q-102 -131 -221 -131q-59 0 -112.5 60t-53.5 191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM588 684h149v158q0 48 -19.5 81t-53 33t-53 -28.5t-21.5 -57.5l-2 -28v-158z " />
-<glyph unicode="&#xe7;" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331zM238 -111v-141h63l-41 -133h105l45 133v141h-172z " />
-<glyph unicode="&#xe8;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM102 1489h215l107 -184 h-160zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xe9;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xea;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM80 1305l141 184h219 l142 -184h-189l-63 71l-62 -71h-188zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xeb;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM90 1305v200h191v-200 h-191zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-33 1489h215l107 -184h-160zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M82 0h207v1120h-207v-1120zM82 1305l106 184h215l-161 -184h-160z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-66 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xef;" horiz-adv-x="372" d="M-53 1305v200h190v-200h-190zM82 0v1120h207v-1120h-207zM236 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf0;" horiz-adv-x="673" d="M76 279v579q0 279 172 279q63 0 155 -78q-12 109 -51 203l-82 -72l-55 63l100 88l-45 66l109 100q25 -27 53 -61l94 82l56 -66l-101 -88q125 -201 125 -446v-656q0 -102 -56 -188q-26 -39 -80 -69.5t-129 -30.5t-130 30.5t-80 73.5q-53 91 -53 160zM270 267.5 q-2 -11.5 2 -29t10 -34.5q16 -38 58 -38q70 10 72 113v563q-2 0 0 11t-2 28.5t-10 34.5q-16 40 -60 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207zM147 1305v151q49 39 95.5 39t105 -18.5t97 -19.5t100.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#xf2;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM98 1489h215l107 -184h-160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf3;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5 t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM260 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xf4;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM78 1305l141 184h219l142 -184h-189l-63 71l-62 -71h-188zM258 267.5q-2 -11.5 2 -29 t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf5;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM131 1305v151q49 39 95.5 39t104.5 -18.5t98.5 -19.5t98.5 32v-152q-51 -39 -95 -39 t-102 19.5t-101 19.5t-99 -32zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf6;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM90 1305v200h191v-200h-191zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf8;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t118 32t117.5 -19l21 80h75l-30 -121q88 -84 94 -229v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-120.5 -30.5t-112 16l-20 -78h-80l31 121q-41 39 -64.5 97.5t-25.5 97.5zM258 436l125 486q-18 35 -55 34q-68 -10 -70 -114 v-406zM274 197q17 -31 54 -31q70 10 71 113v403z" />
-<glyph unicode="&#xf9;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM113 1489h215l106 -184h-160z" />
-<glyph unicode="&#xfa;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM274 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfb;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM94 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189z" />
-<glyph unicode="&#xfc;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM106 1305v200h191v-200h-191zM395 1305v200h191v-200h-191z" />
-<glyph unicode="&#xfd;" horiz-adv-x="634" d="M25 1120l190 -1153q0 -68 -36 -123t-97 -61l-49 4v-184q70 -4 92 -4q115 0 192.5 95t94.5 222l198 1204h-202l-82 -688l-4 -57h-9l-4 57l-82 688h-202zM231 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfe;" horiz-adv-x="686" d="M82 -385v1890h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="&#xff;" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5zM78 1305v200h190v-200h-190zM367 1305v200h190v-200h-190z" />
-<glyph unicode="&#x152;" horiz-adv-x="983" d="M68 309v887q0 41 17 101.5t45 100.5t88.5 73.5t143.5 33.5h580v-227h-285v-395h205v-242h-205v-414h285v-227h-580q-84 0 -144 31.5t-88 78.5q-55 91 -60 169zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v901q-6 96 -74 97q-35 0 -53 -28t-18 -54l-2 -29 v-887z" />
-<glyph unicode="&#x153;" horiz-adv-x="995" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t145.5 32t156 -60q66 59 170 60q199 0 252 -197q14 -51 14 -92v-326h-342v-250q0 -46 22.5 -76t53.5 -30q70 10 73 113v122h193v-129q0 -37 -16.5 -93t-41 -95t-80 -69.5t-146 -30.5t-154.5 57q-68 -57 -156 -57t-143.5 30.5 t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM594 684h149v158q0 48 -19 81t-58 33t-55.5 -37.5t-16.5 -70.5v-164z" />
-<glyph unicode="&#x178;" horiz-adv-x="704" d="M16 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641zM113 1638v201h190v-201h-190zM401 1638v201h191v-201h-191z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1021" d="M260 1305l141 184h220l141 -184h-189l-63 71l-61 -71h-189z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1024" d="M313 1305v151q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#x2000;" horiz-adv-x="952" />
-<glyph unicode="&#x2001;" horiz-adv-x="1905" />
-<glyph unicode="&#x2002;" horiz-adv-x="952" />
-<glyph unicode="&#x2003;" horiz-adv-x="1905" />
-<glyph unicode="&#x2004;" horiz-adv-x="635" />
-<glyph unicode="&#x2005;" horiz-adv-x="476" />
-<glyph unicode="&#x2006;" horiz-adv-x="317" />
-<glyph unicode="&#x2007;" horiz-adv-x="317" />
-<glyph unicode="&#x2008;" horiz-adv-x="238" />
-<glyph unicode="&#x2009;" horiz-adv-x="381" />
-<glyph unicode="&#x200a;" horiz-adv-x="105" />
-<glyph unicode="&#x2010;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2011;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2012;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2013;" horiz-adv-x="806" d="M74 649v195h659v-195h-659z" />
-<glyph unicode="&#x2014;" horiz-adv-x="972" d="M74 649v195h825v-195h-825z" />
-<glyph unicode="&#x2018;" horiz-adv-x="309" d="M49 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x2019;" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="&#x201a;" horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="&#x201c;" horiz-adv-x="624" d="M53 1012v227l113 266h102l-71 -266h71v-227h-215zM356 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x201d;" horiz-adv-x="624" d="M53 1012l72 266h-72v227h215v-227l-112 -266h-103zM356 1012l72 266h-72v227h215v-227l-112 -266h-103z" />
-<glyph unicode="&#x201e;" horiz-adv-x="624" d="M53 0v227h215v-227l-112 -266h-103l72 266h-72zM356 0v227h215v-227l-112 -266h-103l72 266h-72z" />
-<glyph unicode="&#x2022;" horiz-adv-x="663" d="M82 815q0 104 72.5 177t177 73t177.5 -72.5t73 -177t-73 -177.5t-177 -73t-177 73t-73 177z" />
-<glyph unicode="&#x2026;" horiz-adv-x="964" d="M53 0v227h215v-227h-215zM375 0v227h215v-227h-215zM696 0v227h215v-227h-215z" />
-<glyph unicode="&#x202f;" horiz-adv-x="381" />
-<glyph unicode="&#x2039;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="&#x203a;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="&#x205f;" horiz-adv-x="476" />
-<glyph unicode="&#x20ac;" horiz-adv-x="813" d="M53 547v137h107v137h-107v137h107v238q0 42 17.5 106t45 107t88 78t144.5 35t144 -34t88 -81q53 -90 61 -178l2 -33v-84h-207v84q-2 0 0 11.5t-3 27.5t-12 33q-18 39 -69 39q-70 -10 -78 -111v-238h233v-137h-233v-137h233v-137h-233v-238q0 -43 21.5 -76.5t59.5 -33.5 t58.5 27.5t20.5 56.5l2 26v84h207v-84q0 -38 -17.5 -104t-45.5 -109t-88 -77.5t-144 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175l-2 35v238h-107z" />
-<glyph unicode="&#x2122;" horiz-adv-x="937" d="M74 1401v104h321v-104h-104v-580h-113v580h-104zM440 821v684h138l67 -319h6l68 319h137v-684h-104v449l-78 -449h-51l-80 449v-449h-103z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 0v1120h1120v-1120h-1120z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2v-184q-41 12 -91 12t-69.5 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h358v-1120h-207v934h-151v-934h-207v934h-105z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2h164v-1505h-207v1329q-37 4 -67.5 4t-50 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="&#xfb03;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1120h207v-1120h-207zM1032 1298v207h207v-207h-207z" />
-<glyph unicode="&#xfb04;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1505h207v-1505h-207z" />
-</font>
-</defs></svg> 
diff --git a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.ttf b/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.woff b/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.woff
deleted file mode 100644
Binary files a/docs/slides/flops14/reveal.js/lib/font/league_gothic-webfont.woff and /dev/null differ
diff --git a/docs/slides/flops14/reveal.js/lib/font/league_gothic_license b/docs/slides/flops14/reveal.js/lib/font/league_gothic_license
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/lib/font/league_gothic_license
+++ /dev/null
@@ -1,2 +0,0 @@
-SIL Open Font License (OFL)
-http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/docs/slides/flops14/reveal.js/plugin/highlight/highlight.js b/docs/slides/flops14/reveal.js/plugin/highlight/highlight.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/highlight/highlight.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// START CUSTOM REVEAL.JS INTEGRATION
-(function() {
-	if( typeof window.addEventListener === 'function' ) {
-		var hljs_nodes = document.querySelectorAll( 'pre code' );
-
-		for( var i = 0, len = hljs_nodes.length; i < len; i++ ) {
-			var element = hljs_nodes[i];
-
-			// trim whitespace if data-trim attribute is present
-			if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) {
-				element.innerHTML = element.innerHTML.trim();
-			}
-
-			// Now escape html unless prevented by author
-			if( ! element.hasAttribute( 'data-noescape' )) {
-				element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
-			}
-
-			// re-highlight when focus is lost (for edited code)
-			element.addEventListener( 'focusout', function( event ) {
-				hljs.highlightBlock( event.currentTarget );
-			}, false );
-		}
-	}
-})();
-// END CUSTOM REVEAL.JS INTEGRATION
-
-// highlight.js build includes support for:
-// All languages in master + fsharp
-
-
-var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+(q.parentNode?q.parentNode.className:"")).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(r){function o(s){return(s&&s.source)||s}function p(t,s){return RegExp(o(t),"m"+(r.cI?"i":"")+(s?"g":""))}function q(z,x){if(z.compiled){return}z.compiled=true;var u=[];if(z.k){var s={};function A(B,t){t.split(" ").forEach(function(C){var D=C.split("|");s[D[0]]=[B,D[1]?Number(D[1]):1];u.push(D[0])})}z.lR=p(z.l||hljs.IR+"(?!\\.)",true);if(typeof z.k=="string"){A("keyword",z.k)}else{for(var y in z.k){if(!z.k.hasOwnProperty(y)){continue}A(y,z.k[y])}}z.k=s}if(x){if(z.bWK){z.b="\\b("+u.join("|")+")\\b(?!\\.)\\s*"}z.bR=p(z.b?z.b:"\\B|\\b");if(!z.e&&!z.eW){z.e="\\B|\\b"}if(z.e){z.eR=p(z.e)}z.tE=o(z.e)||"";if(z.eW&&x.tE){z.tE+=(z.e?"|":"")+x.tE}}if(z.i){z.iR=p(z.i)}if(z.r===undefined){z.r=1}if(!z.c){z.c=[]}for(var w=0;w<z.c.length;w++){if(z.c[w]=="self"){z.c[w]=z}q(z.c[w],z)}if(z.starts){q(z.starts,x)}var v=[];for(var w=0;w<z.c.length;w++){v.push(o(z.c[w].b))}if(z.tE){v.push(o(z.tE))}if(z.i){v.push(o(z.i))}z.t=v.length?p(v.join("|"),true):{exec:function(t){return null}}}q(r)}function d(E,F,C){function o(r,N){for(var M=0;M<N.c.length;M++){var L=N.c[M].bR.exec(r);if(L&&L.index==0){return N.c[M]}}}function s(L,r){if(L.e&&L.eR.test(r)){return L}if(L.eW){return s(L.parent,r)}}function t(r,L){return !C&&L.i&&L.iR.test(r)}function y(M,r){var L=G.cI?r[0].toLowerCase():r[0];return M.k.hasOwnProperty(L)&&M.k[L]}function H(){var L=l(w);if(!A.k){return L}var r="";var O=0;A.lR.lastIndex=0;var M=A.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=y(A,M);if(N){v+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=A.lR.lastIndex;M=A.lR.exec(L)}return r+L.substr(O)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function K(){return A.sL!==undefined?z():H()}function J(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){x+=L;w=""}else{if(M.eB){x+=l(r)+L;w=""}else{x+=L;w=r}}A=Object.create(M,{parent:{value:A}})}function D(L,r){w+=L;if(r===undefined){x+=K();return 0}var N=o(r,A);if(N){x+=K();J(N,r);return N.rB?0:r.length}var O=s(A,r);if(O){var M=A;if(!(M.rE||M.eE)){w+=r}x+=K();do{if(A.cN){x+="</span>"}B+=A.r;A=A.parent}while(A!=O.parent);if(M.eE){x+=l(r)}w="";if(O.starts){J(O.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw new Error('Illegal lexem "'+r+'" for mode "'+(A.cN||"<unnamed>")+'"')}w+=r;return r.length||1}var G=e[E];f(G);var A=G;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(F);if(!u){break}q=D(F.substr(p,u.index-p),u[0]);p=u.index+q}D(F.substr(p));return{r:B,keyword_count:v,value:x,language:E}}catch(I){if(I.message.indexOf("Illegal")!=-1){return{r:0,keyword_count:0,value:l(F)}}else{throw I}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s,false);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v,true):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.apache=function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,k:{keyword:"acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",literal:"on off"},c:[a.HCM,{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,{cN:"tag",b:"</?",e:">"},a.QSM]}}(hljs);hljs.LANGUAGES.applescript=function(a){var b=a.inherit(a.QSM,{i:""});var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bWK:true,k:"on",i:"[${=;\\n]",c:[e,d]}].concat(c),i:"//"}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);hljs.LANGUAGES.asciidoc=function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{4,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}}(hljs);hljs.LANGUAGES.avrasm=function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$"},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}}(hljs);hljs.LANGUAGES.axapta=function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"{",i:":",k:"class interface",c:[{cN:"inheritance",bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]}]}}(hljs);hljs.LANGUAGES.bash=function(a){var c={cN:"variable",b:/\$[\w\d#@][\w\d_]*/};var b={cN:"variable",b:/\$\{(.*?)\}/};var e={cN:"string",b:/"/,e:/"/,c:[a.BE,c,b,{cN:"variable",b:/\$\(/,e:/\)/,c:a.BE}],r:0};var d={cN:"string",b:/'/,e:/'/,r:0};return{l:/-?[a-z]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[{cN:"title",b:/\w[\w\d_]*/}],r:0},a.HCM,a.NM,e,d,c,b]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f={cN:"title",b:a};var e={cN:"subst",b:"#\\{",e:"}",k:b,};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",b:"'''",e:"'''",c:[c.BE]},{cN:"string",b:"'",e:"'",c:[c.BE],r:0},{cN:"string",b:'"""',e:'"""',c:[c.BE,e]},{cN:"string",b:'"',e:'"',c:[c.BE,e],r:0},{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*",r:0},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bWK:true,k:"class",e:"$",i:"[:\\[\\]]",c:[{bWK:true,k:"extends",eW:true,i:":",c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true}])}}(hljs);hljs.LANGUAGES.cpp=function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"<",e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.css=function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.d=function(x){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r={b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?',r:0};var f={cN:"string",b:'[rq]"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,t,j,m,s,e,g,d]}}(hljs);hljs.LANGUAGES.delphi=function(b){var f="and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure";var e="safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static";var a={cN:"comment",b:"{",e:"}",r:0};var g={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var d={cN:"string",b:"(#\\d+)+"};var h={cN:"function",bWK:true,e:"[:;]",k:"function constructor|10 destructor|10 procedure|10",c:[{cN:"title",b:b.IR},{cN:"params",b:"\\(",e:"\\)",k:f,c:[c,d]},a,g]};return{cI:true,k:f,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,g,b.CLCM,c,d,b.NM,h,{cN:"class",b:"=\\bclass\\b",e:"end;",k:e,c:[c,d,a,g,b.CLCM,h]}]}}(hljs);hljs.LANGUAGES.diff=function(a){return{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}if(e(l,k)){m=b.concat(m)}if(m.length){g.c=m}}return g}var d={cN:"filter",b:"\\|[A-Za-z]+\\:?",k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:'"',e:'"'}]};var b=[{cN:"template_comment",b:"{%\\s*comment\\s*%}",e:"{%\\s*endcomment\\s*%}"},{cN:"template_comment",b:"{#",e:"#}"},{cN:"template_tag",b:"{%",e:"%}",k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[d]},{cN:"variable",b:"{{",e:"}}",c:[d]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.dos=function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.fsharp=function(a){var b="'[a-zA-Z0-9_]+";return{k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun|10 function global if in inherit inline interface internal lazy let match member module mutable|10 namespace new null of open or override private public rec|10 return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"//",e:"$",rB:true},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bWK:true,e:"\\(|=|$",k:"type",c:[{cN:"title",b:a.UIR}]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"typeparam",b:"<",e:">",c:[{cN:"title",b:b}]},a.CLCM,a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.haml=function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(-#|/).*$",r:0},{b:"^\\s*-(?!#)",starts:{e:"\\n",sL:"ruby"},r:0},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+",r:0},{cN:"value",b:"[#\\.]\\w+",r:0},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,r:0,c:[{cN:"symbol",b:":\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,r:0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0}],r:10},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"},r:0}]}}(hljs);hljs.LANGUAGES.handlebars=function(c){function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}m=d.concat(m);if(m.length){g.c=m}}return g}var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";var e={cN:"variable",b:"[a-zA-Z.]+",k:b};var d=[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z .]+",k:b},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z .]+",k:b},{cN:"variable",b:"[a-zA-Z.]+",k:b}]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"},{b:"->|<-"}]}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",eE:true,i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,sL:"xml"}],r:0},{cN:"function",bWK:true,e:/{/,k:"function",c:[{cN:"title",b:/[A-Za-z$_][0-9A-Za-z$_]*/},{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.lasso=function(b){var a="[a-zA-Z_][a-zA-Z0-9_.]*|&[lg]t;";var c="<\\?(lasso(script)?|=)";return{cI:true,l:a,k:{literal:"true false none minimal full all infinity nan and or not bw ew cn lt lte gt gte eq neq ft rx nrx",built_in:"array date decimal duration integer map pair string tag xml null list queue set stack staticarray local var variable data global self inherited void",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require skip split_thread sum take thread to trait type where with yield"},c:[{cN:"preprocessor",b:"\\]|\\?>",r:0,starts:{cN:"markup",e:"\\[|"+c,rE:true}},{cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true}},{cN:"preprocessor",b:"\\[no_square_brackets|\\[/noprocess|"+c},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10},b.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},b.CBLCLM,b.CNM,b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",b:"#\\d+|[#$]"+a},{cN:"tag",b:"::",e:a},{cN:"attribute",b:"\\.\\.\\.|-"+b.UIR},{cN:"class",bWK:true,k:"define",eE:true,e:"\\(|=>",c:[{cN:"title",b:b.UIR+"=?"}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var l="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var m="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var k={cN:"shebang",b:"^#!",e:"$"};var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:m},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+m+" +"+m,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var n={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var o={cN:"keyword",b:"[:&]"+l};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,o,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,o,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={eW:true,r:0};j.c=[{cN:"title",b:l},f];f.c=[e,c,j,a].concat(d).concat([h,n,g,o]);return{i:"[^\\s]",c:d.concat([k,a,h,n,e,c,j])}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^    ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.mel=function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variable",b:"\\$\\d",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},a.CLCM,a.CBLCLM]}}(hljs);hljs.LANGUAGES.mizar=function(a){return{k:["environ vocabularies notations constructors definitions registrations theorems schemes requirements","begin end definition registration cluster existence pred func defpred deffunc theorem proof","let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from","be being by means equals implies iff redefine define now not or attr is mode suppose per cases set","thesis contradiction scheme reserve struct","correctness compatibility coherence symmetry assymetry reflexivity irreflexivity","connectedness uniqueness commutativity idempotence involutiveness projectivity"].join(" "),c:[{cN:"comment",b:"::",e:"$"}]}}(hljs);hljs.LANGUAGES.nginx=function(b){var c=[{cN:"variable",b:"\\$\\d+"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+b.UIR}];var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[b.HCM,{cN:"string",b:'"',e:'"',c:[b.BE].concat(c),r:0},{cN:"string",b:"'",e:"'",c:[b.BE].concat(c),r:0},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[b.BE].concat(c)},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[b.BE].concat(c)},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0}].concat(c)};return{c:[b.HCM,{b:b.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:b.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property self synchronized end synthesize id optional required nonatomic super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}(hljs);hljs.LANGUAGES.parser3=function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.profile=function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:a.UIR,r:0}],r:0}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var c=[{cN:"string",b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{cN:"string",b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{cN:"string",b:/(u|r|ur)'/,e:/'/,c:[a.BE],r:10},{cN:"string",b:/(u|r|ur)"/,e:/"/,c:[a.BE],r:10},{cN:"string",b:/(b|br)'/,e:/'/,c:[a.BE]},{cN:"string",b:/(b|br)"/,e:/"/,c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:/\(/,e:/\)/,c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:/:/,i:/[${=;\n]/,c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}])}}(hljs);hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);hljs.LANGUAGES.rib=function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}}(hljs);hljs.LANGUAGES.rsl=function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bWK:true,e:"\\(",k:"surface displacement light volume imager"},{cN:"shading",bWK:true,e:"\\(",k:"illuminate illuminance gather"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.ruleslanguage=function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEMASK|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN DELETE SAVE SAVE_UPDATE CLEAR DETERMINANT LABEL REPORT REVENUE ABORT CALL DONE LEAVE EACH IN LIST NOVALUE FROM TOTAL CHARGE BLOCK AND OR CSV_FILE BILL_PERIOD RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ABORT WARN NUMDAYS RATE_CODE READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}}(hljs);hljs.LANGUAGES.rust=function(b){var d={cN:"title",b:b.UIR};var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char check claim comm const cont copy dir do drop else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut priv pub pure ref return self static str struct task true trait type u16 u32 u64 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b.QSM,{i:null}),b.ASM,c,{cN:"function",bWK:true,e:"(\\(|<)",k:"fn",c:[d]},{cN:"preprocessor",b:"#\\[",e:"\\]"},{bWK:true,e:"(=|<)",k:"type",c:[d],i:"\\S"},{bWK:true,e:"({|<)",k:"trait enum",c:[d],i:"\\S"}]}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.scss=function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include for extend charset import media page font-face namespace",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*"+b+"(\\s+"+b+")*\\s*\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,c:[{cN:"operator",b:"(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.tex=function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",i:"[^,:\\n\\s\\.]",c:[{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.vbnet=function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"(//|endif|gosub|variant|wend)",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}}(hljs);hljs.LANGUAGES.vbscript=function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$"},a.CNM]}}(hljs);hljs.LANGUAGES.vhdl=function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);
diff --git a/docs/slides/flops14/reveal.js/plugin/leap/leap.js b/docs/slides/flops14/reveal.js/plugin/leap/leap.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/leap/leap.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2013, Leap Motion, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Version 0.2.0 - http://js.leapmotion.com/0.2.0/leap.min.js
- * Grab latest versions from http://js.leapmotion.com/
- */
-
-!function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){var chooseProtocol=require("./protocol").chooseProtocol,EventEmitter=require("events").EventEmitter,_=require("underscore");var BaseConnection=module.exports=function(opts){this.opts=_.defaults(opts||{},{host:"127.0.0.1",enableGestures:false,port:6437,enableHeartbeat:true,heartbeatInterval:100,requestProtocolVersion:3});this.host=opts.host;this.port=opts.port;this.on("ready",function(){this.enableGestures(this.opts.enableGestures);if(this.opts.enableHeartbeat)this.startHeartbeat()});this.on("disconnect",function(){if(this.opts.enableHeartbeat)this.stopHeartbeat()});this.heartbeatTimer=null};BaseConnection.prototype.getUrl=function(){return"ws://"+this.host+":"+this.port+"/v"+this.opts.requestProtocolVersion+".json"};BaseConnection.prototype.sendHeartbeat=function(){if(this.protocol){this.setHeartbeatState(true);this.protocol.sendHeartbeat(this)}};BaseConnection.prototype.handleOpen=function(){this.emit("connect")};BaseConnection.prototype.enableGestures=function(enabled){this.gesturesEnabled=enabled?true:false;this.send(this.protocol.encode({enableGestures:this.gesturesEnabled}))};BaseConnection.prototype.handleClose=function(){this.disconnect();this.startReconnection()};BaseConnection.prototype.startReconnection=function(){var connection=this;setTimeout(function(){connection.connect()},1e3)};BaseConnection.prototype.disconnect=function(){if(!this.socket)return;this.socket.close();delete this.socket;delete this.protocol;this.emit("disconnect")};BaseConnection.prototype.handleData=function(data){var message=JSON.parse(data);var messageEvent;if(this.protocol===undefined){messageEvent=this.protocol=chooseProtocol(message);this.emit("ready")}else{messageEvent=this.protocol(message)}this.emit(messageEvent.type,messageEvent)};BaseConnection.prototype.connect=function(){if(this.socket)return;this.socket=this.setupSocket();return true};BaseConnection.prototype.send=function(data){this.socket.send(data)};BaseConnection.prototype.stopHeartbeat=function(){if(!this.heartbeatTimer)return;clearInterval(this.heartbeatTimer);delete this.heartbeatTimer;this.setHeartbeatState(false)};BaseConnection.prototype.setHeartbeatState=function(state){if(this.heartbeatState===state)return;this.heartbeatState=state;this.emit(this.heartbeatState?"focus":"blur")};_.extend(BaseConnection.prototype,EventEmitter.prototype)},{"./protocol":12,events:17,underscore:20}],2:[function(require,module,exports){var CircularBuffer=module.exports=function(size){this.pos=0;this._buf=[];this.size=size};CircularBuffer.prototype.get=function(i){if(i==undefined)i=0;if(i>=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:<br/>";out+=this.toString();out+="<br/><br/>Hands:<br/>";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+="  "+this.hands[handIdx].toString()+"<br/>"}out+="<br/><br/>Pointables:<br/>";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+="  "+this.pointables[pointableIdx].toString()+"<br/>"}if(this.gestures){out+="<br/><br/>Gestures:<br/>";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+="  "+this.gestures[gestureIdx].toString()+"<br/>"}}out+="<br/><br/>Raw JSON:<br/>";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);
-out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1]}return a}}();vec2.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};if(typeof exports!=="undefined"){exports.vec2=vec2}var vec3={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec3.create=function(){return new Float32Array(3)};vec3.clone=function(a){var out=new Float32Array(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.fromValues=function(x,y,z){var out=new Float32Array(3);out[0]=x;out[1]=y;out[2]=z;return out};vec3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.set=function(out,x,y,z){out[0]=x;out[1]=y;out[2]=z;return out};vec3.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out};vec3.sub=vec3.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out};vec3.mul=vec3.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out};vec3.div=vec3.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out};vec3.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out};vec3.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out};vec3.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out};vec3.dist=vec3.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrDist=vec3.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z};vec3.len=vec3.length=function(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrLen=vec3.squaredLength=function(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z};vec3.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out};vec3.normalize=function(out,a){var x=a[0],y=a[1],z=a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();vec3.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};if(typeof exports!=="undefined"){exports.vec3=vec3}var vec4={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec4.create=function(){return new Float32Array(4)};vec4.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.fromValues=function(x,y,z,w){var out=new Float32Array(4);out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.set=function(out,x,y,z,w){out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];out[3]=a[3]+b[3];return out};vec4.sub=vec4.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];out[3]=a[3]-b[3];return out};vec4.mul=vec4.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];out[3]=a[3]*b[3];return out};vec4.div=vec4.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];out[3]=a[3]/b[3];return out};vec4.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);out[3]=Math.min(a[3],b[3]);return out};vec4.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);out[3]=Math.max(a[3],b[3]);return out};vec4.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;out[3]=a[3]*b;return out};vec4.dist=vec4.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrDist=vec4.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return x*x+y*y+z*z+w*w};vec4.len=vec4.length=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrLen=vec4.squaredLength=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return x*x+y*y+z*z+w*w};vec4.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=-a[3];return out};vec4.normalize=function(out,a){var x=a[0],y=a[1],z=a[2],w=a[3];var len=x*x+y*y+z*z+w*w;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];vec[3]=a[i+3];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2];a[i+3]=vec[3]}return a}}();vec4.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.vec4=vec4}var mat2={};var mat2Identity=new Float32Array([1,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat2.create=function(){return new Float32Array(mat2Identity)};mat2.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;return out};mat2.transpose=function(out,a){if(out===a){var a1=a[1];out[1]=a[2];out[2]=a1}else{out[0]=a[0];out[1]=a[2];out[2]=a[1];out[3]=a[3]}return out};mat2.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],det=a0*a3-a2*a1;if(!det){return null}det=1/det;out[0]=a3*det;out[1]=-a1*det;out[2]=-a2*det;out[3]=a0*det;return out};mat2.adjoint=function(out,a){var a0=a[0];out[0]=a[3];out[1]=-a[1];out[2]=-a[2];out[3]=a0;return out};mat2.determinant=function(a){return a[0]*a[3]-a[2]*a[1]};mat2.mul=mat2.multiply=function(out,a,b){var a0=a[0],a1=a[1],a2=a[2],a3=a[3];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=a0*b0+a1*b2;out[1]=a0*b1+a1*b3;out[2]=a2*b0+a3*b2;out[3]=a2*b1+a3*b3;return out};mat2.rotate=function(out,a,rad){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],s=Math.sin(rad),c=Math.cos(rad);out[0]=a0*c+a1*s;out[1]=a0*-s+a1*c;out[2]=a2*c+a3*s;out[3]=a2*-s+a3*c;return out};mat2.scale=function(out,a,v){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],v0=v[0],v1=v[1];out[0]=a0*v0;out[1]=a1*v1;out[2]=a2*v0;out[3]=a3*v1;return out};mat2.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.mat2=mat2}var mat3={};var mat3Identity=new Float32Array([1,0,0,0,1,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat3.create=function(){return new Float32Array(mat3Identity)};mat3.clone=function(a){var out=new Float32Array(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out};mat3.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out};mat3.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det){return null}det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out};mat3.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02*a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out};mat3.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)};mat3.mul=mat3.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02=b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out};mat3.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};if(typeof exports!=="undefined"){exports.mat3=mat3}var mat4={};var mat4Identity=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat4.create=function(){return new Float32Array(mat4Identity)};mat4.clone=function(a){var out=new Float32Array(16);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=1;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=1;out[11]=0;out[12]=0;out[13]=0;out[14]=0;out[15]=1;return out};mat4.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a03=a[3],a12=a[6],a13=a[7],a23=a[11];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a01;out[6]=a[9];out[7]=a[13];out[8]=a02;out[9]=a12;out[11]=a[14];out[12]=a03;out[13]=a13;out[14]=a23}else{out[0]=a[0];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a[1];out[5]=a[5];out[6]=a[9];out[7]=a[13];out[8]=a[2];out[9]=a[6];out[10]=a[10];out[11]=a[14];out[12]=a[3];out[13]=a[7];out[14]=a[11];out[15]=a[15]}return out};mat4.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det){return null}det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a02*b10-a01*b11-a03*b09)*det;out[2]=(a31*b05-a32*b04+a33*b03)*det;out[3]=(a22*b04-a21*b05-a23*b03)*det;out[4]=(a12*b08-a10*b11-a13*b07)*det;out[5]=(a00*b11-a02*b08+a03*b07)*det;out[6]=(a32*b02-a30*b05-a33*b01)*det;out[7]=(a20*b05-a22*b02+a23*b01)*det;out[8]=(a10*b10-a11*b08+a13*b06)*det;out[9]=(a01*b08-a00*b10-a03*b06)*det;out[10]=(a30*b04-a31*b02+a33*b00)*det;out[11]=(a21*b02-a20*b04-a23*b00)*det;out[12]=(a11*b07-a10*b09-a12*b06)*det;out[13]=(a00*b09-a01*b07+a02*b06)*det;out[14]=(a31*b01-a30*b03-a32*b00)*det;out[15]=(a20*b03-a21*b01+a22*b00)*det;return out};mat4.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];out[0]=a11*(a22*a33-a23*a32)-a21*(a12*a33-a13*a32)+a31*(a12*a23-a13*a22);out[1]=-(a01*(a22*a33-a23*a32)-a21*(a02*a33-a03*a32)+a31*(a02*a23-a03*a22));out[2]=a01*(a12*a33-a13*a32)-a11*(a02*a33-a03*a32)+a31*(a02*a13-a03*a12);out[3]=-(a01*(a12*a23-a13*a22)-a11*(a02*a23-a03*a22)+a21*(a02*a13-a03*a12));out[4]=-(a10*(a22*a33-a23*a32)-a20*(a12*a33-a13*a32)+a30*(a12*a23-a13*a22));out[5]=a00*(a22*a33-a23*a32)-a20*(a02*a33-a03*a32)+a30*(a02*a23-a03*a22);out[6]=-(a00*(a12*a33-a13*a32)-a10*(a02*a33-a03*a32)+a30*(a02*a13-a03*a12));out[7]=a00*(a12*a23-a13*a22)-a10*(a02*a23-a03*a22)+a20*(a02*a13-a03*a12);out[8]=a10*(a21*a33-a23*a31)-a20*(a11*a33-a13*a31)+a30*(a11*a23-a13*a21);out[9]=-(a00*(a21*a33-a23*a31)-a20*(a01*a33-a03*a31)+a30*(a01*a23-a03*a21));out[10]=a00*(a11*a33-a13*a31)-a10*(a01*a33-a03*a31)+a30*(a01*a13-a03*a11);out[11]=-(a00*(a11*a23-a13*a21)-a10*(a01*a23-a03*a21)+a20*(a01*a13-a03*a11));out[12]=-(a10*(a21*a32-a22*a31)-a20*(a11*a32-a12*a31)+a30*(a11*a22-a12*a21));out[13]=a00*(a21*a32-a22*a31)-a20*(a01*a32-a02*a31)+a30*(a01*a22-a02*a21);out[14]=-(a00*(a11*a32-a12*a31)-a10*(a01*a32-a02*a31)+a30*(a01*a12-a02*a11));out[15]=a00*(a11*a22-a12*a21)-a10*(a01*a22-a02*a21)+a20*(a01*a12-a02*a11);return out};mat4.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32;return b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06};mat4.mul=mat4.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=b0*a00+b1*a10+b2*a20+b3*a30;out[1]=b0*a01+b1*a11+b2*a21+b3*a31;out[2]=b0*a02+b1*a12+b2*a22+b3*a32;out[3]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[4];b1=b[5];b2=b[6];b3=b[7];out[4]=b0*a00+b1*a10+b2*a20+b3*a30;out[5]=b0*a01+b1*a11+b2*a21+b3*a31;out[6]=b0*a02+b1*a12+b2*a22+b3*a32;out[7]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[8];b1=b[9];b2=b[10];b3=b[11];out[8]=b0*a00+b1*a10+b2*a20+b3*a30;out[9]=b0*a01+b1*a11+b2*a21+b3*a31;out[10]=b0*a02+b1*a12+b2*a22+b3*a32;out[11]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[12];b1=b[13];b2=b[14];b3=b[15];out[12]=b0*a00+b1*a10+b2*a20+b3*a30;out[13]=b0*a01+b1*a11+b2*a21+b3*a31;out[14]=b0*a02+b1*a12+b2*a22+b3*a32;out[15]=b0*a03+b1*a13+b2*a23+b3*a33;return out};mat4.translate=function(out,a,v){var x=v[0],y=v[1],z=v[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(a===out){out[12]=a[0]*x+a[4]*y+a[8]*z+a[12];out[13]=a[1]*x+a[5]*y+a[9]*z+a[13];out[14]=a[2]*x+a[6]*y+a[10]*z+a[14];out[15]=a[3]*x+a[7]*y+a[11]*z+a[15]}else{a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];out[0]=a00;out[1]=a01;out[2]=a02;out[3]=a03;out[4]=a10;out[5]=a11;out[6]=a12;out[7]=a13;out[8]=a20;out[9]=a21;out[10]=a22;out[11]=a23;out[12]=a00*x+a10*y+a20*z+a[12];out[13]=a01*x+a11*y+a21*z+a[13];out[14]=a02*x+a12*y+a22*z+a[14];out[15]=a03*x+a13*y+a23*z+a[15]}return out};mat4.scale=function(out,a,v){var x=v[0],y=v[1],z=v[2];out[0]=a[0]*x;out[1]=a[1]*x;out[2]=a[2]*x;out[3]=a[3]*x;out[4]=a[4]*y;out[5]=a[5]*y;out[6]=a[6]*y;out[7]=a[7]*y;out[8]=a[8]*z;out[9]=a[9]*z;out[10]=a[10]*z;out[11]=a[11]*z;out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.rotate=function(out,a,rad,axis){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(Math.abs(len)<GLMAT_EPSILON){return null}len=1/len;x*=len;y*=len;z*=len;s=Math.sin(rad);c=Math.cos(rad);t=1-c;a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;out[0]=a00*b00+a10*b01+a20*b02;out[1]=a01*b00+a11*b01+a21*b02;out[2]=a02*b00+a12*b01+a22*b02;out[3]=a03*b00+a13*b01+a23*b02;out[4]=a00*b10+a10*b11+a20*b12;out[5]=a01*b10+a11*b11+a21*b12;out[6]=a02*b10+a12*b11+a22*b12;out[7]=a03*b10+a13*b11+a23*b12;out[8]=a00*b20+a10*b21+a20*b22;out[9]=a01*b20+a11*b21+a21*b22;out[10]=a02*b20+a12*b21+a22*b22;out[11]=a03*b20+a13*b21+a23*b22;if(a!==out){out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}return out};mat4.rotateX=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[4]=a10*c+a20*s;out[5]=a11*c+a21*s;out[6]=a12*c+a22*s;out[7]=a13*c+a23*s;out[8]=a20*c-a10*s;out[9]=a21*c-a11*s;out[10]=a22*c-a12*s;out[11]=a23*c-a13*s;return out};mat4.rotateY=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c-a20*s;out[1]=a01*c-a21*s;out[2]=a02*c-a22*s;out[3]=a03*c-a23*s;out[8]=a00*s+a20*c;out[9]=a01*s+a21*c;out[10]=a02*s+a22*c;out[11]=a03*s+a23*c;return out};mat4.rotateZ=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7];if(a!==out){out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c+a10*s;out[1]=a01*c+a11*s;out[2]=a02*c+a12*s;out[3]=a03*c+a13*s;out[4]=a10*c-a00*s;out[5]=a11*c-a01*s;out[6]=a12*c-a02*s;out[7]=a13*c-a03*s;return out};mat4.fromRotationTranslation=function(out,q,v){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-(yy+zz);out[1]=xy+wz;out[2]=xz-wy;out[3]=0;out[4]=xy-wz;out[5]=1-(xx+zz);out[6]=yz+wx;out[7]=0;out[8]=xz+wy;out[9]=yz-wx;out[10]=1-(xx+yy);out[11]=0;out[12]=v[0];out[13]=v[1];out[14]=v[2];out[15]=1;return out};mat4.frustum=function(out,left,right,bottom,top,near,far){var rl=1/(right-left),tb=1/(top-bottom),nf=1/(near-far);out[0]=near*2*rl;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=near*2*tb;out[6]=0;out[7]=0;out[8]=(right+left)*rl;out[9]=(top+bottom)*tb;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=far*near*2*nf;out[15]=0;return out};mat4.perspective=function(out,fovy,aspect,near,far){var f=1/Math.tan(fovy/2),nf=1/(near-far);out[0]=f/aspect;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=f;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=2*far*near*nf;out[15]=0;return out};mat4.ortho=function(out,left,right,bottom,top,near,far){var lr=1/(left-right),bt=1/(bottom-top),nf=1/(near-far);out[0]=-2*lr;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=-2*bt;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=2*nf;out[11]=0;out[12]=(left+right)*lr;out[13]=(top+bottom)*bt;out[14]=(far+near)*nf;out[15]=1;return out};mat4.lookAt=function(out,eye,center,up){var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(Math.abs(eyex-centerx)<GLMAT_EPSILON&&Math.abs(eyey-centery)<GLMAT_EPSILON&&Math.abs(eyez-centerz)<GLMAT_EPSILON){return mat4.identity(out)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}out[0]=x0;out[1]=y0;out[2]=z0;out[3]=0;out[4]=x1;out[5]=y1;out[6]=z1;out[7]=0;out[8]=x2;out[9]=y2;out[10]=z2;out[11]=0;out[12]=-(x0*eyex+x1*eyey+x2*eyez);out[13]=-(y0*eyex+y1*eyey+y2*eyez);out[14]=-(z0*eyex+z1*eyey+z2*eyez);out[15]=1;return out};mat4.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};if(typeof exports!=="undefined"){exports.mat4=mat4}var quat={};var quatIdentity=new Float32Array([0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}quat.create=function(){return new Float32Array(quatIdentity)};quat.clone=vec4.clone;quat.fromValues=vec4.fromValues;quat.copy=vec4.copy;quat.set=vec4.set;quat.identity=function(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out};quat.setAxisAngle=function(out,axis,rad){rad=rad*.5;var s=Math.sin(rad);out[0]=s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out};quat.add=vec4.add;quat.mul=quat.multiply=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out};quat.scale=vec4.scale;quat.rotateX=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out};quat.rotateY=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out};quat.rotateZ=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out};quat.calculateW=function(out,a){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out};quat.dot=vec4.dot;quat.lerp=vec4.lerp;quat.slerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=a[3];var cosHalfTheta=ax*bx+ay*by+az*bz+aw*bw,halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{for(var key in obj){if(_.has(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker)return}}}};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;
-var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={};var iterator=lookupIterator(value||_.identity);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key){if(!_.has(result,key))result[key]=0;result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n!=null&&!guard){return slice.call(array,Math.max(array.length-n,0))}else{return array[array.length-1]}};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){each(input,function(value){if(_.isArray(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(args,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,l=list.length;i<l;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,l+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};_.bind=function(func,context){if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));var args=slice.call(arguments,2);return function(){return func.apply(context,args.concat(slice.call(arguments)))}};_.partial=function(func){var args=slice.call(arguments,1);return function(){return func.apply(this,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)funcs=_.functions(obj);each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,result;var previous=0;var later=function(){previous=new Date;timeout=null;result=func.apply(context,args)};return function(){var now=new Date;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args)}else if(!timeout){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]);
-
-/*
- * Leap Motion integration for Reveal.js.
- * James Sun  [sun16]
- * Rory Hardy [gneatgeek]
- */
-
-(function () {
-  var body        = document.body,
-      controller  = new Leap.Controller({ enableGestures: true }),
-      lastGesture = 0,
-      leapConfig  = Reveal.getConfig().leap,
-      pointer     = document.createElement( 'div' ),
-      config      = {
-        autoCenter       : true,      // Center pointer around detected position.
-        gestureDelay     : 500,       // How long to delay between gestures.
-        naturalSwipe     : true,      // Swipe as if it were a touch screen.
-        pointerColor     : '#00aaff', // Default color of the pointer.
-        pointerOpacity   : 0.7,       // Default opacity of the pointer.
-        pointerSize      : 15,        // Default minimum height/width of the pointer.
-        pointerTolerance : 120        // Bigger = slower pointer.
-      },
-      entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare.
-
-      // Merge user defined settings with defaults
-      if( leapConfig ) {
-        for( key in leapConfig ) {
-          config[key] = leapConfig[key];
-        }
-      }
-
-      pointer.id = 'leap';
-
-      pointer.style.position        = 'absolute';
-      pointer.style.visibility      = 'hidden';
-      pointer.style.zIndex          = 50;
-      pointer.style.opacity         = config.pointerOpacity;
-      pointer.style.backgroundColor = config.pointerColor;
-
-      body.appendChild( pointer );
-
-  // Leap's loop
-  controller.on( 'frame', function ( frame ) {
-    // Timing code to rate limit gesture execution
-    now = new Date().getTime();
-
-    // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies.
-    // The innaccuracies were observed on a development model and may not be an issue with consumer models.
-    if( frame.fingers.length > 0 && frame.fingers.length < 3 ) {
-      // Invert direction and multiply by 3 for greater effect.
-      size = -3 * frame.fingers[0].tipPosition[2];
-
-      if( size < config.pointerSize ) {
-        size = config.pointerSize;
-      }
-
-      pointer.style.width        = size     + 'px';
-      pointer.style.height       = size     + 'px';
-      pointer.style.borderRadius = size - 5 + 'px';
-      pointer.style.visibility   = 'visible';
-
-      if( config.autoCenter ) {
-        tipPosition = frame.fingers[0].tipPosition;
-
-        // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option.
-        if( !entered ) {
-          entered         = true;
-          enteredPosition = frame.fingers[0].tipPosition;
-        }
-
-        pointer.style.top =
-          (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) +
-            ( body.offsetHeight / 2 ) + 'px';
-
-        pointer.style.left =
-          (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) +
-            ( body.offsetWidth / 2 ) + 'px';
-      }
-      else {
-        pointer.style.top  = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) *
-          body.offsetHeight + 'px';
-
-        pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) +
-          ( body.offsetWidth / 2 ) + 'px';
-      }
-    }
-    else {
-      // Hide pointer on exit
-      entered                  = false;
-      pointer.style.visibility = 'hidden';
-    }
-
-    // Gestures
-    if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) {
-      var gesture = frame.gestures[0];
-
-      // One hand gestures
-      if( frame.hands.length === 1 ) {
-        // Swipe gestures. 3+ fingers.
-        if( frame.fingers.length > 2 && gesture.type === 'swipe' ) {
-          // Define here since some gestures will throw undefined for these.
-          var x = gesture.direction[0],
-              y = gesture.direction[1];
-
-          // Left/right swipe gestures
-          if( Math.abs( x ) > Math.abs( y )) {
-            if( x > 0 ) {
-              config.naturalSwipe ? Reveal.left() : Reveal.right();
-            }
-            else {
-              config.naturalSwipe ? Reveal.right() : Reveal.left();
-            }
-          }
-          // Up/down swipe gestures
-          else {
-            if( y > 0 ) {
-              config.naturalSwipe ? Reveal.down() : Reveal.up();
-            }
-            else {
-              config.naturalSwipe ? Reveal.up() : Reveal.down();
-            }
-          }
-
-          lastGesture = now;
-        }
-      }
-      // Two hand gestures
-      else if( frame.hands.length === 2 ) {
-        // Upward two hand swipe gesture
-        if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) {
-          Reveal.toggleOverview();
-        }
-
-        lastGesture = now;
-      }
-    }
-  });
-
-  controller.connect();
-})();
diff --git a/docs/slides/flops14/reveal.js/plugin/markdown/markdown.js b/docs/slides/flops14/reveal.js/plugin/markdown/markdown.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/markdown/markdown.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * The reveal.js markdown plugin. Handles parsing of
- * markdown inside of presentations as well as loading
- * of external markdown documents.
- */
-(function( root, factory ) {
-	if( typeof exports === 'object' ) {
-		module.exports = factory( require( './marked' ) );
-	}
-	else {
-		// Browser globals (root is window)
-		root.RevealMarkdown = factory( root.marked );
-		root.RevealMarkdown.initialize();
-	}
-}( this, function( marked ) {
-
-	if( typeof marked === 'undefined' ) {
-		throw 'The reveal.js Markdown plugin requires marked to be loaded';
-	}
-
-	if( typeof hljs !== 'undefined' ) {
-		marked.setOptions({
-			highlight: function( lang, code ) {
-				return hljs.highlightAuto( lang, code ).value;
-			}
-		});
-	}
-
-	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
-		DEFAULT_NOTES_SEPARATOR = 'note:',
-		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
-		DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
-
-
-	/**
-	 * Retrieves the markdown contents of a slide section
-	 * element. Normalizes leading tabs/whitespace.
-	 */
-	function getMarkdownFromSlide( section ) {
-
-		var template = section.querySelector( 'script' );
-
-		// strip leading whitespace so it isn't evaluated as code
-		var text = ( template || section ).textContent;
-
-		var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
-			leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
-
-		if( leadingTabs > 0 ) {
-			text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-		}
-		else if( leadingWs > 1 ) {
-			text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-		}
-
-		return text;
-
-	}
-
-	/**
-	 * Given a markdown slide section element, this will
-	 * return all arguments that aren't related to markdown
-	 * parsing. Used to forward any other user-defined arguments
-	 * to the output markdown slide.
-	 */
-	function getForwardedAttributes( section ) {
-
-		var attributes = section.attributes;
-		var result = [];
-
-		for( var i = 0, len = attributes.length; i < len; i++ ) {
-			var name = attributes[i].name,
-				value = attributes[i].value;
-
-			// disregard attributes that are used for markdown loading/parsing
-			if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
-
-			if( value ) {
-				result.push( name + '=' + value );
-			}
-			else {
-				result.push( name );
-			}
-		}
-
-		return result.join( ' ' );
-
-	}
-
-	/**
-	 * Inspects the given options and fills out default
-	 * values for what's not defined.
-	 */
-	function getSlidifyOptions( options ) {
-
-		options = options || {};
-		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
-		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
-		options.attributes = options.attributes || '';
-
-		return options;
-
-	}
-
-	/**
-	 * Helper function for constructing a markdown slide.
-	 */
-	function createMarkdownSlide( content, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
-
-		if( notesMatch.length === 2 ) {
-			content = notesMatch[0] + '<aside class="notes" data-markdown>' + notesMatch[1].trim() + '</aside>';
-		}
-
-		return '<script type="text/template">' + content + '</script>';
-
-	}
-
-	/**
-	 * Parses a data string into multiple slides based
-	 * on the passed in separator arguments.
-	 */
-	function slidify( markdown, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-			horizontalSeparatorRegex = new RegExp( options.separator );
-
-		var matches,
-			lastIndex = 0,
-			isHorizontal,
-			wasHorizontal = true,
-			content,
-			sectionStack = [];
-
-		// iterate until all blocks between separators are stacked up
-		while( matches = separatorRegex.exec( markdown ) ) {
-			notes = null;
-
-			// determine direction (horizontal by default)
-			isHorizontal = horizontalSeparatorRegex.test( matches[0] );
-
-			if( !isHorizontal && wasHorizontal ) {
-				// create vertical stack
-				sectionStack.push( [] );
-			}
-
-			// pluck slide content from markdown input
-			content = markdown.substring( lastIndex, matches.index );
-
-			if( isHorizontal && wasHorizontal ) {
-				// add to horizontal stack
-				sectionStack.push( content );
-			}
-			else {
-				// add to vertical stack
-				sectionStack[sectionStack.length-1].push( content );
-			}
-
-			lastIndex = separatorRegex.lastIndex;
-			wasHorizontal = isHorizontal;
-		}
-
-		// add the remaining slide
-		( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
-
-		var markdownSections = '';
-
-		// flatten the hierarchical stack, and insert <section data-markdown> tags
-		for( var i = 0, len = sectionStack.length; i < len; i++ ) {
-			// vertical
-			if( sectionStack[i] instanceof Array ) {
-				markdownSections += '<section '+ options.attributes +'>';
-
-				sectionStack[i].forEach( function( child ) {
-					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
-				} );
-
-				markdownSections += '</section>';
-			}
-			else {
-				markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
-			}
-		}
-
-		return markdownSections;
-
-	}
-
-	/**
-	 * Parses any current data-markdown slides, splits
-	 * multi-slide markdown into separate sections and
-	 * handles loading of external markdown.
-	 */
-	function processSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]'),
-			section;
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			section = sections[i];
-
-			if( section.getAttribute( 'data-markdown' ).length ) {
-
-				var xhr = new XMLHttpRequest(),
-					url = section.getAttribute( 'data-markdown' );
-
-				datacharset = section.getAttribute( 'data-charset' );
-
-				// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
-				if( datacharset != null && datacharset != '' ) {
-					xhr.overrideMimeType( 'text/html; charset=' + datacharset );
-				}
-
-				xhr.onreadystatechange = function() {
-					if( xhr.readyState === 4 ) {
-						if ( xhr.status >= 200 && xhr.status < 300 ) {
-
-							section.outerHTML = slidify( xhr.responseText, {
-								separator: section.getAttribute( 'data-separator' ),
-								verticalSeparator: section.getAttribute( 'data-vertical' ),
-								notesSeparator: section.getAttribute( 'data-notes' ),
-								attributes: getForwardedAttributes( section )
-							});
-
-						}
-						else {
-
-							section.outerHTML = '<section data-state="alert">' +
-								'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
-								'Check your browser\'s JavaScript console for more details.' +
-								'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
-								'</section>';
-
-						}
-					}
-				};
-
-				xhr.open( 'GET', url, false );
-
-				try {
-					xhr.send();
-				}
-				catch ( e ) {
-					alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
-				}
-
-			}
-			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) {
-
-				section.outerHTML = slidify( getMarkdownFromSlide( section ), {
-					separator: section.getAttribute( 'data-separator' ),
-					verticalSeparator: section.getAttribute( 'data-vertical' ),
-					notesSeparator: section.getAttribute( 'data-notes' ),
-					attributes: getForwardedAttributes( section )
-				});
-
-			}
-			else {
-				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
-			}
-		}
-
-	}
-
-	/**
-	 * Check if a node value has the attributes pattern.
-	 * If yes, extract it and add that value as one or several attributes
-	 * the the terget element.
-	 *
-	 * You need Cache Killer on Chrome to see the effect on any FOM transformation
-	 * directly on refresh (F5)
-	 * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
-	 */
-	function addAttributeInElement( node, elementTarget, separator ) {
-
-		var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
-		var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-		var nodeValue = node.nodeValue;
-		if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
-
-			var classes = matches[1];
-			nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
-			node.nodeValue = nodeValue;
-			while( matchesClass = mardownClassRegex.exec( classes ) ) {
-				elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add attributes to the parent element of a text node,
-	 * or the element of an attribute node.
-	 */
-	function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
-
-		if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
-			previousParentElement = element;
-			for( var i = 0; i < element.childNodes.length; i++ ) {
-				childElement = element.childNodes[i];
-				if ( i > 0 ) {
-					j = i - 1;
-					while ( j >= 0 ) {
-						aPreviousChildElement = element.childNodes[j];
-						if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
-							previousParentElement = aPreviousChildElement;
-							break;
-						}
-						j = j - 1;
-					}
-				}
-				parentSection = section;
-				if( childElement.nodeName ==  "section" ) {
-					parentSection = childElement ;
-					previousParentElement = childElement ;
-				}
-				if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
-					addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
-				}
-			}
-		}
-
-		if ( element.nodeType == Node.COMMENT_NODE ) {
-			if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
-				addAttributeInElement( element, section, separatorSectionAttributes );
-			}
-		}
-	}
-
-	/**
-	 * Converts any current data-markdown slides in the
-	 * DOM to HTML.
-	 */
-	function convertSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]');
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			var section = sections[i];
-
-			// Only parse the same slide once
-			if( !section.getAttribute( 'data-markdown-parsed' ) ) {
-
-				section.setAttribute( 'data-markdown-parsed', true )
-
-				var notes = section.querySelector( 'aside.notes' );
-				var markdown = getMarkdownFromSlide( section );
-
-				section.innerHTML = marked( markdown );
-				addAttributes( 	section, section, null, section.getAttribute( 'data-element-attributes' ) ||
-								section.parentNode.getAttribute( 'data-element-attributes' ) ||
-								DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
-								section.getAttribute( 'data-attributes' ) ||
-								section.parentNode.getAttribute( 'data-attributes' ) ||
-								DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
-
-				// If there were notes, we need to re-add them after
-				// having overwritten the section's HTML
-				if( notes ) {
-					section.appendChild( notes );
-				}
-
-			}
-
-		}
-
-	}
-
-	// API
-	return {
-
-		initialize: function() {
-			processSlides();
-			convertSlides();
-		},
-
-		// TODO: Do these belong in the API?
-		processSlides: processSlides,
-		convertSlides: convertSlides,
-		slidify: slidify
-
-	};
-
-}));
diff --git a/docs/slides/flops14/reveal.js/plugin/markdown/marked.js b/docs/slides/flops14/reveal.js/plugin/markdown/marked.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/markdown/marked.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * marked - a markdown parser
- * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
- * https://github.com/chjj/marked
- */
-
-(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
-text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",
-/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1",
-"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};
-Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,
-"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,
-"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]="center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].split(/ *\| */);this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=
-src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);
-bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+
-1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&&
-(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]=
-"center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1][cap[1].length-1]==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",
-text:cap[0]});continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
-code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
-em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;
-if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);
-out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length);
-out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src=
-src.substring(cap[0].length);out+="<strong>"+this.output(cap[2]||cap[1])+"</strong>";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+="<em>"+this.output(cap[2]||cap[1])+"</em>";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+="<code>"+escape(cap[2],true)+"</code>";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="<br>";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+="<del>"+
-this.output(cap[1])+"</del>";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'<a href="'+escape(link.href)+'"'+(link.title?' title="'+escape(link.title)+'"':"")+">"+this.output(cap[1])+"</a>";else return'<img src="'+escape(link.href)+'" alt="'+escape(cap[1])+'"'+(link.title?' title="'+
-escape(link.title)+'"':"")+">"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null;
-this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;
-while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"<hr>\n";case "heading":return"<h"+this.token.depth+">"+this.inline.output(this.token.text)+"</h"+this.token.depth+">\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text=
-escape(this.token.text,true);return"<pre><code"+(this.token.lang?' class="'+this.options.langPrefix+this.token.lang+'"':"")+">"+this.token.text+"</code></pre>\n";case "table":var body="",heading,i,row,cell,j;body+="<thead>\n<tr>\n";for(i=0;i<this.token.header.length;i++){heading=this.inline.output(this.token.header[i]);body+=this.token.align[i]?'<th align="'+this.token.align[i]+'">'+heading+"</th>\n":"<th>"+heading+"</th>\n"}body+="</tr>\n</thead>\n";body+="<tbody>\n";for(i=0;i<this.token.cells.length;i++){row=
-this.token.cells[i];body+="<tr>\n";for(j=0;j<row.length;j++){cell=this.inline.output(row[j]);body+=this.token.align[j]?'<td align="'+this.token.align[j]+'">'+cell+"</td>\n":"<td>"+cell+"</td>\n"}body+="</tr>\n"}body+="</tbody>\n";return"<table>\n"+body+"</table>\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"<blockquote>\n"+body+"</blockquote>\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+=
-this.tok();return"<"+type+">\n"+body+"</"+type+">\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"<li>"+body+"</li>\n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"<li>"+body+"</li>\n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"<p>"+this.inline.output(this.token.text)+
-"</p>\n";case "text":return"<p>"+this.parseText()+"</p>\n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=
-1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target)if(Object.prototype.hasOwnProperty.call(target,key))obj[key]=target[key]}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}if(opt)opt=merge({},marked.defaults,opt);var tokens=Lexer.lex(tokens,opt),highlight=opt.highlight,pending=0,l=tokens.length,i=0;if(!highlight||highlight.length<3)return callback(null,Parser.parse(tokens,opt));var done=function(){delete opt.highlight;
-var out=Parser.parse(tokens,opt);opt.highlight=highlight;return callback(null,out)};for(;i<l;i++)(function(token){if(token.type!=="code")return;pending++;return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text)return--pending||done();token.text=code;token.escaped=true;--pending||done()})})(tokens[i]);return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";
-if((opt||marked.defaults).silent)return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;
-marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}());
diff --git a/docs/slides/flops14/reveal.js/plugin/math/math.js b/docs/slides/flops14/reveal.js/plugin/math/math.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/math/math.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for MathJax.
- *
- * @author Hakim El Hattab
- */
-var RevealMath = window.RevealMath || (function(){
-
-	var options = Reveal.getConfig().math || {};
-	options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
-	options.config = options.config || 'TeX-AMS_HTML-full';
-
-	loadScript( options.mathjax + '?config=' + options.config, function() {
-
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
-			skipStartupTypeset: true
-		});
-
-		// Typeset followed by an immediate reveal.js layout since
-		// the typesetting process could affect slide height
-		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
-		MathJax.Hub.Queue( Reveal.layout );
-
-		// Reprocess equations in slides when they turn visible
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-
-			MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
-
-		} );
-
-	} );
-
-	function loadScript( url, callback ) {
-
-		var head = document.querySelector( 'head' );
-		var script = document.createElement( 'script' );
-		script.type = 'text/javascript';
-		script.src = url;
-
-		// Wrapper for callback to make sure it only fires once
-		var finish = function() {
-			if( typeof callback === 'function' ) {
-				callback.call();
-				callback = null;
-			}
-		}
-
-		script.onload = finish;
-
-		// IE
-		script.onreadystatechange = function() {
-			if ( this.readyState === 'loaded' ) {
-				finish();
-			}
-		}
-
-		// Normal browsers
-		head.appendChild( script );
-
-	}
-
-})();
diff --git a/docs/slides/flops14/reveal.js/plugin/multiplex/client.js b/docs/slides/flops14/reveal.js/plugin/multiplex/client.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/multiplex/client.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
-	var multiplex = Reveal.getConfig().multiplex;
-	var socketId = multiplex.id;
-	var socket = io.connect(multiplex.url);
-
-	socket.on(multiplex.id, function(data) {
-		// ignore data from sockets that aren't ours
-		if (data.socketId !== socketId) { return; }
-		if( window.location.host === 'localhost:1947' ) return;
-
-		Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
-	});
-}());
diff --git a/docs/slides/flops14/reveal.js/plugin/multiplex/index.js b/docs/slides/flops14/reveal.js/plugin/multiplex/index.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/multiplex/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var express		= require('express');
-var fs			= require('fs');
-var io			= require('socket.io');
-var crypto		= require('crypto');
-
-var app			= express.createServer();
-var staticDir	= express.static;
-
-io				= io.listen(app);
-
-var opts = {
-	port: 1948,
-	baseDir : __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
-		if (createHash(slideData.secret) === slideData.socketId) {
-			slideData.secret = null;
-			socket.broadcast.emit(slideData.socketId, slideData);
-		};
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/token", function(req,res) {
-	var ts = new Date().getTime();
-	var rand = Math.floor(Math.random()*9999999);
-	var secret = ts.toString() + rand.toString();
-	res.send({secret: secret, socketId: createHash(secret)});
-});
-
-var createHash = function(secret) {
-	var cipher = crypto.createCipher('blowfish', secret);
-	return(cipher.final('hex'));
-};
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
diff --git a/docs/slides/flops14/reveal.js/plugin/multiplex/master.js b/docs/slides/flops14/reveal.js/plugin/multiplex/master.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/multiplex/master.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function() {
-	// Don't emit events from inside of notes windows
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var multiplex = Reveal.getConfig().multiplex;
-
-	var socket = io.connect(multiplex.url);
-
-	var notify = function( slideElement, indexh, indexv, origin ) {
-		if( typeof origin === 'undefined' && origin !== 'remote' ) {
-			var nextindexh;
-			var nextindexv;
-
-			var fragmentindex = Reveal.getIndices().f;
-			if (typeof fragmentindex == 'undefined') {
-				fragmentindex = 0;
-			}
-
-			if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-				nextindexh = indexh;
-				nextindexv = indexv + 1;
-			} else {
-				nextindexh = indexh + 1;
-				nextindexv = 0;
-			}
-
-			var slideData = {
-				indexh : indexh,
-				indexv : indexv,
-				indexf : fragmentindex,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				secret: multiplex.secret,
-				socketId : multiplex.id
-			};
-
-			socket.emit('slidechanged', slideData);
-		}
-	}
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		notify( event.currentSlide, event.indexh, event.indexv, event.origin );
-	} );
-
-	var fragmentNotify = function( event ) {
-		notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
-	};
-
-	Reveal.addEventListener( 'fragmentshown', fragmentNotify );
-	Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
-}());
diff --git a/docs/slides/flops14/reveal.js/plugin/notes-server/client.js b/docs/slides/flops14/reveal.js/plugin/notes-server/client.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/notes-server/client.js
+++ /dev/null
@@ -1,57 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-	window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
-
-	// Fires when a fragment is shown
-	Reveal.addEventListener( 'fragmentshown', function( event ) {
-		var fragmentData = {
-			fragment : 'next',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when a fragment is hidden
-	Reveal.addEventListener( 'fragmenthidden', function( event ) {
-		var fragmentData = {
-			fragment : 'previous',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when slide is changed
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId,
-			markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
-
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/flops14/reveal.js/plugin/notes-server/index.js b/docs/slides/flops14/reveal.js/plugin/notes-server/index.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/notes-server/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-	socket.on('fragmentchanged', function(fragmentData) {
-		socket.broadcast.emit('fragmentdata', fragmentData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/flops14/reveal.js/plugin/notes/notes.js b/docs/slides/flops14/reveal.js/plugin/notes/notes.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/notes/notes.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Handles opening of and synchronization with the reveal.js
- * notes window.
- */
-var RevealNotes = (function() {
-
-	function openNotes() {
-		var jsFileLocation = document.querySelector('script[src$="notes.js"]').src;  // this js file path
-		jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, '');   // the js folder path
-		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
-
-		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', post );
-
-		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', post );
-
-		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', post );
-
-		/**
-		 * Posts the current slide data to the notes window
-		 */
-		function post() {
-			var slideElement = Reveal.getCurrentSlide(),
-				slideIndices = Reveal.getIndices(),
-				messageData;
-
-			var notes = slideElement.querySelector( 'aside.notes' ),
-				nextindexh,
-				nextindexv;
-
-			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-				nextindexh = slideIndices.h;
-				nextindexv = slideIndices.v + 1;
-			} else {
-				nextindexh = slideIndices.h + 1;
-				nextindexv = 0;
-			}
-
-			messageData = {
-				notes : notes ? notes.innerHTML : '',
-				indexh : slideIndices.h,
-				indexv : slideIndices.v,
-				indexf : slideIndices.f,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-			};
-
-			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
-		}
-
-		// Navigate to the current slide when the notes are loaded
-		notesPopup.addEventListener( 'load', function( event ) {
-			post();
-		}, false );
-	}
-
-	// If the there's a 'notes' query set, open directly
-	if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
-		openNotes();
-	}
-
-	// Open the notes when the 's' key is hit
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openNotes();
-		}
-	}, false );
-
-	return { open: openNotes };
-})();
diff --git a/docs/slides/flops14/reveal.js/plugin/postmessage/postmessage.js b/docs/slides/flops14/reveal.js/plugin/postmessage/postmessage.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/postmessage/postmessage.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-	simple postmessage plugin
-
-	Useful when a reveal slideshow is inside an iframe.
-	It allows to call reveal methods from outside.
-
-	Example:
-		 var reveal =  window.frames[0];
-
-		 // Reveal.prev(); 
-		 reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
-		 // Reveal.next(); 
-		 reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
-		 // Reveal.slide(2, 2); 
-		 reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
-
-	Add to the slideshow:
-
-		dependencies: [
-			...
-			{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
-		]
-
-*/
-
-(function (){
-
-	window.addEventListener( "message", function ( event ) {
-		var data = JSON.parse( event.data ),
-				method = data.method,
-				args = data.args;
-
-		if( typeof Reveal[method] === 'function' ) {
-			Reveal[method].apply( Reveal, data.args );
-		}
-	}, false);
-
-}());
-
-
-
diff --git a/docs/slides/flops14/reveal.js/plugin/print-pdf/print-pdf.js b/docs/slides/flops14/reveal.js/plugin/print-pdf/print-pdf.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/print-pdf/print-pdf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * phantomjs script for printing presentations to PDF.
- *
- * Example:
- * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
- *
- * By Manuel Bieh (https://github.com/manuelbieh)
- */
-
-// html2pdf.js
-var page = new WebPage();
-var system = require( 'system' );
-
-page.viewportSize  = {
-	width: 1024,
-	height: 768
-};
-
-page.paperSize = {
-	format: 'letter',
-	orientation: 'landscape',
-	margin: {
-		left: '0',
-		right: '0',
-		top: '0',
-		bottom: '0'
-	}
-};
-
-var revealFile = system.args[1] || 'index.html?print-pdf';
-var slideFile = system.args[2] || 'slides.pdf';
-
-if( slideFile.match( /\.pdf$/gi ) === null ) {
-	slideFile += '.pdf';
-}
-
-console.log( 'Printing PDF...' );
-
-page.open( revealFile, function( status ) {
-	console.log( 'Printed succesfully' );
-	page.render( slideFile );
-	phantom.exit();
-} );
-
diff --git a/docs/slides/flops14/reveal.js/plugin/remotes/remotes.js b/docs/slides/flops14/reveal.js/plugin/remotes/remotes.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/remotes/remotes.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Touch-based remote controller for your presentation courtesy 
- * of the folks at http://remotes.io
- */
-
-(function(window){
-
-    /**
-     * Detects if we are dealing with a touch enabled device (with some false positives)
-     * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js   
-     */
-    var hasTouch  = (function(){
-        return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
-    })();
-
-    /**
-     * Detects if notes are enable and the current page is opened inside an /iframe
-     * this prevents loading Remotes.io several times
-     */
-    var isNotesAndIframe = (function(){
-        return window.RevealNotes && !(self == top);
-    })();
-
-    if(!hasTouch && !isNotesAndIframe){
-        head.ready( 'remotes.ne.min.js', function() {
-            new Remotes("preview")
-                .on("swipe-left", function(e){ Reveal.right(); })
-                .on("swipe-right", function(e){ Reveal.left(); })
-                .on("swipe-up", function(e){ Reveal.down(); })
-                .on("swipe-down", function(e){ Reveal.up(); })
-                .on("tap", function(e){ Reveal.next(); })
-                .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
-                .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
-            ;
-        } );
-
-        head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
-    }
-})(window);
diff --git a/docs/slides/flops14/reveal.js/plugin/search/search.js b/docs/slides/flops14/reveal.js/plugin/search/search.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/search/search.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
- * by navigatating to that slide and highlighting it.
- *
- * By Jon Snyder <snyder.jon@gmail.com>, February 2013
- */
-
-var RevealSearch = (function() {
-
-	var matchedSlides;
-	var currentMatchedIndex;
-	var searchboxDirty;
-	var myHilitor;
-
-// Original JavaScript code by Chirp Internet: www.chirp.com.au
-// Please acknowledge use of this code by including this header.
-// 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
-
-function Hilitor(id, tag)
-{
-
-  var targetNode = document.getElementById(id) || document.body;
-  var hiliteTag = tag || "EM";
-  var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
-  var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
-  var wordColor = [];
-  var colorIdx = 0;
-  var matchRegex = "";
-  var matchingSlides = [];
-
-  this.setRegex = function(input)
-  {
-    input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
-    matchRegex = new RegExp("(" + input + ")","i");
-  }
-
-  this.getRegex = function()
-  {
-    return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
-  }
-
-  // recursively apply word highlighting
-  this.hiliteWords = function(node)
-  {
-    if(node == undefined || !node) return;
-    if(!matchRegex) return;
-    if(skipTags.test(node.nodeName)) return;
-
-    if(node.hasChildNodes()) {
-      for(var i=0; i < node.childNodes.length; i++)
-        this.hiliteWords(node.childNodes[i]);
-    }
-    if(node.nodeType == 3) { // NODE_TEXT
-      if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
-      	//find the slide's section element and save it in our list of matching slides
-      	var secnode = node.parentNode;
-      	while (secnode.nodeName != 'SECTION') {
-      		secnode = secnode.parentNode;
-      	}
-      	
-      	var slideIndex = Reveal.getIndices(secnode);
-      	var slidelen = matchingSlides.length;
-      	var alreadyAdded = false;
-      	for (var i=0; i < slidelen; i++) {
-      		if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
-      			alreadyAdded = true;
-      		}
-      	}
-      	if (! alreadyAdded) {
-      		matchingSlides.push(slideIndex);
-      	}
-      	
-        if(!wordColor[regs[0].toLowerCase()]) {
-          wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
-        }
-
-        var match = document.createElement(hiliteTag);
-        match.appendChild(document.createTextNode(regs[0]));
-        match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
-        match.style.fontStyle = "inherit";
-        match.style.color = "#000";
-
-        var after = node.splitText(regs.index);
-        after.nodeValue = after.nodeValue.substring(regs[0].length);
-        node.parentNode.insertBefore(match, after);
-      }
-    }
-  };
-
-  // remove highlighting
-  this.remove = function()
-  {
-    var arr = document.getElementsByTagName(hiliteTag);
-    while(arr.length && (el = arr[0])) {
-      el.parentNode.replaceChild(el.firstChild, el);
-    }
-  };
-
-  // start highlighting at target node
-  this.apply = function(input)
-  {
-    if(input == undefined || !input) return;
-    this.remove();
-    this.setRegex(input);
-    this.hiliteWords(targetNode);
-    return matchingSlides;
-  };
-
-}
-
-	function openSearch() {
-		//ensure the search term input dialog is visible and has focus:
-		var inputbox = document.getElementById("searchinput");
-		inputbox.style.display = "inline";
-		inputbox.focus();
-		inputbox.select();
-	}
-
-	function toggleSearch() {
-		var inputbox = document.getElementById("searchinput");
-		if (inputbox.style.display !== "inline") {
-			openSearch();
-		}
-		else {
-			inputbox.style.display = "none";
-			myHilitor.remove();
-		}
-	}
-
-	function doSearch() {
-		//if there's been a change in the search term, perform a new search:
-		if (searchboxDirty) {
-			var searchstring = document.getElementById("searchinput").value;
-
-			//find the keyword amongst the slides
-			myHilitor = new Hilitor("slidecontent");
-			matchedSlides = myHilitor.apply(searchstring);
-			currentMatchedIndex = 0;
-		}
-
-		//navigate to the next slide that has the keyword, wrapping to the first if necessary
-		if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
-			currentMatchedIndex = 0;
-		}
-		if (matchedSlides.length > currentMatchedIndex) {
-			Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
-			currentMatchedIndex++;
-		}
-	}
-
-	var dom = {};
-	dom.wrapper = document.querySelector( '.reveal' );
-
-	if( !dom.wrapper.querySelector( '.searchbox' ) ) {
-			var searchElement = document.createElement( 'div' );
-			searchElement.id = "searchinputdiv";
-			searchElement.classList.add( 'searchdiv' );
-      searchElement.style.position = 'absolute';
-      searchElement.style.top = '10px';
-      searchElement.style.left = '10px';
-      //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
-			searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
-			dom.wrapper.appendChild( searchElement );
-	}
-
-	document.getElementById("searchbutton").addEventListener( 'click', function(event) {
-		doSearch();
-	}, false );
-
-	document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
-		switch (event.keyCode) {
-			case 13:
-				event.preventDefault();
-				doSearch();
-				searchboxDirty = false;
-				break;
-			default:
-				searchboxDirty = true;
-		}
-	}, false );
-
-	// Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
-	/*
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openSearch();
-		}
-	}, false );
-*/
-	return { open: openSearch };
-})();
diff --git a/docs/slides/flops14/reveal.js/plugin/zoom-js/zoom.js b/docs/slides/flops14/reveal.js/plugin/zoom-js/zoom.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/plugin/zoom-js/zoom.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Custom reveal.js integration
-(function(){
-	var isEnabled = true;
-
-	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
-		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
-
-		if( event[ modifier ] && isEnabled ) {
-			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
-		}
-	} );
-
-	Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
-	Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
-})();
-
-/*!
- * zoom.js 0.2 (modified version for use with reveal.js)
- * http://lab.hakim.se/zoom-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var zoom = (function(){
-
-	// The current zoom level (scale)
-	var level = 1;
-
-	// The current mouse position, used for panning
-	var mouseX = 0,
-		mouseY = 0;
-
-	// Timeout before pan is activated
-	var panEngageTimeout = -1,
-		panUpdateInterval = -1;
-
-	var currentOptions = null;
-
-	// Check for transform support so that we can fallback otherwise
-	var supportsTransforms = 	'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-	if( supportsTransforms ) {
-		// The easing that will be applied when we zoom in/out
-		document.body.style.transition = 'transform 0.8s ease';
-		document.body.style.OTransition = '-o-transform 0.8s ease';
-		document.body.style.msTransition = '-ms-transform 0.8s ease';
-		document.body.style.MozTransition = '-moz-transform 0.8s ease';
-		document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
-	}
-
-	// Zoom out if the user hits escape
-	document.addEventListener( 'keyup', function( event ) {
-		if( level !== 1 && event.keyCode === 27 ) {
-			zoom.out();
-		}
-	}, false );
-
-	// Monitor mouse movement for panning
-	document.addEventListener( 'mousemove', function( event ) {
-		if( level !== 1 ) {
-			mouseX = event.clientX;
-			mouseY = event.clientY;
-		}
-	}, false );
-
-	/**
-	 * Applies the CSS required to zoom in, prioritizes use of CSS3
-	 * transforms but falls back on zoom for IE.
-	 *
-	 * @param {Number} pageOffsetX
-	 * @param {Number} pageOffsetY
-	 * @param {Number} elementOffsetX
-	 * @param {Number} elementOffsetY
-	 * @param {Number} scale
-	 */
-	function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
-
-		if( supportsTransforms ) {
-			var origin = pageOffsetX +'px '+ pageOffsetY +'px',
-				transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
-
-			document.body.style.transformOrigin = origin;
-			document.body.style.OTransformOrigin = origin;
-			document.body.style.msTransformOrigin = origin;
-			document.body.style.MozTransformOrigin = origin;
-			document.body.style.WebkitTransformOrigin = origin;
-
-			document.body.style.transform = transform;
-			document.body.style.OTransform = transform;
-			document.body.style.msTransform = transform;
-			document.body.style.MozTransform = transform;
-			document.body.style.WebkitTransform = transform;
-		}
-		else {
-			// Reset all values
-			if( scale === 1 ) {
-				document.body.style.position = '';
-				document.body.style.left = '';
-				document.body.style.top = '';
-				document.body.style.width = '';
-				document.body.style.height = '';
-				document.body.style.zoom = '';
-			}
-			// Apply scale
-			else {
-				document.body.style.position = 'relative';
-				document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
-				document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
-				document.body.style.width = ( scale * 100 ) + '%';
-				document.body.style.height = ( scale * 100 ) + '%';
-				document.body.style.zoom = scale;
-			}
-		}
-
-		level = scale;
-
-		if( level !== 1 && document.documentElement.classList ) {
-			document.documentElement.classList.add( 'zoomed' );
-		}
-		else {
-			document.documentElement.classList.remove( 'zoomed' );
-		}
-	}
-
-	/**
-	 * Pan the document when the mosue cursor approaches the edges
-	 * of the window.
-	 */
-	function pan() {
-		var range = 0.12,
-			rangeX = window.innerWidth * range,
-			rangeY = window.innerHeight * range,
-			scrollOffset = getScrollOffset();
-
-		// Up
-		if( mouseY < rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
-		}
-		// Down
-		else if( mouseY > window.innerHeight - rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
-		}
-
-		// Left
-		if( mouseX < rangeX ) {
-			window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
-		}
-		// Right
-		else if( mouseX > window.innerWidth - rangeX ) {
-			window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
-		}
-	}
-
-	function getScrollOffset() {
-		return {
-			x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
-			y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
-		}
-	}
-
-	return {
-		/**
-		 * Zooms in on either a rectangle or HTML element.
-		 *
-		 * @param {Object} options
-		 *   - element: HTML element to zoom in on
-		 *   OR
-		 *   - x/y: coordinates in non-transformed space to zoom in on
-		 *   - width/height: the portion of the screen to zoom in on
-		 *   - scale: can be used instead of width/height to explicitly set scale
-		 */
-		to: function( options ) {
-			// Due to an implementation limitation we can't zoom in
-			// to another element without zooming out first
-			if( level !== 1 ) {
-				zoom.out();
-			}
-			else {
-				options.x = options.x || 0;
-				options.y = options.y || 0;
-
-				// If an element is set, that takes precedence
-				if( !!options.element ) {
-					// Space around the zoomed in element to leave on screen
-					var padding = 20;
-
-					options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
-					options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
-					options.x = options.element.getBoundingClientRect().left - padding;
-					options.y = options.element.getBoundingClientRect().top - padding;
-				}
-
-				// If width/height values are set, calculate scale from those values
-				if( options.width !== undefined && options.height !== undefined ) {
-					options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
-				}
-
-				if( options.scale > 1 ) {
-					options.x *= options.scale;
-					options.y *= options.scale;
-
-					var scrollOffset = getScrollOffset();
-
-					if( options.element ) {
-						scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
-					}
-
-					magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
-
-					if( options.pan !== false ) {
-
-						// Wait with engaging panning as it may conflict with the
-						// zoom transition
-						panEngageTimeout = setTimeout( function() {
-							panUpdateInterval = setInterval( pan, 1000 / 60 );
-						}, 800 );
-
-					}
-				}
-
-				currentOptions = options;
-			}
-		},
-
-		/**
-		 * Resets the document zoom state to its default.
-		 */
-		out: function() {
-			clearTimeout( panEngageTimeout );
-			clearInterval( panUpdateInterval );
-
-			var scrollOffset = getScrollOffset();
-
-			if( currentOptions && currentOptions.element ) {
-				scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
-			}
-
-			magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
-
-			level = 1;
-		},
-
-		// Alias
-		magnify: function( options ) { this.to( options ) },
-		reset: function() { this.out() },
-
-		zoomLevel: function() {
-			return level;
-		}
-	}
-
-})();
-
diff --git a/docs/slides/flops14/reveal.js/test/examples/assets/image1.png b/docs/slides/flops14/reveal.js/test/examples/assets/image1.png
deleted file mode 100644
Binary files a/docs/slides/flops14/reveal.js/test/examples/assets/image1.png and /dev/null differ
diff --git a/docs/slides/flops14/reveal.js/test/examples/assets/image2.png b/docs/slides/flops14/reveal.js/test/examples/assets/image2.png
deleted file mode 100644
Binary files a/docs/slides/flops14/reveal.js/test/examples/assets/image2.png and /dev/null differ
diff --git a/docs/slides/flops14/reveal.js/test/qunit-1.12.0.css b/docs/slides/flops14/reveal.js/test/qunit-1.12.0.css
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/qunit-1.12.0.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-
-	border-radius: 5px 5px 0 0;
-	-moz-border-radius: 5px 5px 0 0;
-	-webkit-border-top-right-radius: 5px;
-	-webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-	padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 0 0.5em 2em;
-	color: #5E740B;
-	background-color: #eee;
-	overflow: hidden;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
-	float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {
-	display: none;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #c2ccd1;
-	text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #fff;
-
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: black; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3c510c;
-	background-color: #fff;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-	-moz-border-radius: 0 0 5px 5px;
-	-webkit-border-bottom-right-radius: 5px;
-	-webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
-	font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/docs/slides/flops14/reveal.js/test/qunit-1.12.0.js b/docs/slides/flops14/reveal.js/test/qunit-1.12.0.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/qunit-1.12.0.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
-	assert,
-	config,
-	onErrorFnPrev,
-	testId = 0,
-	fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	// Keep a local reference to Date (GH-283)
-	Date = window.Date,
-	setTimeout = window.setTimeout,
-	defined = {
-		setTimeout: typeof window.setTimeout !== "undefined",
-		sessionStorage: (function() {
-			var x = "qunit-test-string";
-			try {
-				sessionStorage.setItem( x, x );
-				sessionStorage.removeItem( x );
-				return true;
-			} catch( e ) {
-				return false;
-			}
-		}())
-	},
-	/**
-	 * Provides a normalized error string, correcting an issue
-	 * with IE 7 (and prior) where Error.prototype.toString is
-	 * not properly implemented
-	 *
-	 * Based on http://es5.github.com/#x15.11.4.4
-	 *
-	 * @param {String|Error} error
-	 * @return {String} error message
-	 */
-	errorString = function( error ) {
-		var name, message,
-			errorString = error.toString();
-		if ( errorString.substring( 0, 7 ) === "[object" ) {
-			name = error.name ? error.name.toString() : "Error";
-			message = error.message ? error.message.toString() : "";
-			if ( name && message ) {
-				return name + ": " + message;
-			} else if ( name ) {
-				return name;
-			} else if ( message ) {
-				return message;
-			} else {
-				return "Error";
-			}
-		} else {
-			return errorString;
-		}
-	},
-	/**
-	 * Makes a clone of an object using only Array or Object as base,
-	 * and copies over the own enumerable properties.
-	 *
-	 * @param {Object} obj
-	 * @return {Object} New object with only the own properties (recursively).
-	 */
-	objectValues = function( obj ) {
-		// Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
-		/*jshint newcap: false */
-		var key, val,
-			vals = QUnit.is( "array", obj ) ? [] : {};
-		for ( key in obj ) {
-			if ( hasOwn.call( obj, key ) ) {
-				val = obj[key];
-				vals[key] = val === Object(val) ? objectValues(val) : val;
-			}
-		}
-		return vals;
-	};
-
-function Test( settings ) {
-	extend( this, settings );
-	this.assertions = [];
-	this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
-	init: function() {
-		var a, b, li,
-			tests = id( "qunit-tests" );
-
-		if ( tests ) {
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml;
-
-			// `a` initialized at top of scope
-			a = document.createElement( "a" );
-			a.innerHTML = "Rerun";
-			a.href = QUnit.url({ testNumber: this.testNumber });
-
-			li = document.createElement( "li" );
-			li.appendChild( b );
-			li.appendChild( a );
-			li.className = "running";
-			li.id = this.id = "qunit-test-output" + testId++;
-
-			tests.appendChild( li );
-		}
-	},
-	setup: function() {
-		if (
-			// Emit moduleStart when we're switching from one module to another
-			this.module !== config.previousModule ||
-				// They could be equal (both undefined) but if the previousModule property doesn't
-				// yet exist it means this is the first test in a suite that isn't wrapped in a
-				// module, in which case we'll just emit a moduleStart event for 'undefined'.
-				// Without this, reporters can get testStart before moduleStart  which is a problem.
-				!hasOwn.call( config, "previousModule" )
-		) {
-			if ( hasOwn.call( config, "previousModule" ) ) {
-				runLoggingCallbacks( "moduleDone", QUnit, {
-					name: config.previousModule,
-					failed: config.moduleStats.bad,
-					passed: config.moduleStats.all - config.moduleStats.bad,
-					total: config.moduleStats.all
-				});
-			}
-			config.previousModule = this.module;
-			config.moduleStats = { all: 0, bad: 0 };
-			runLoggingCallbacks( "moduleStart", QUnit, {
-				name: this.module
-			});
-		}
-
-		config.current = this;
-
-		this.testEnvironment = extend({
-			setup: function() {},
-			teardown: function() {}
-		}, this.moduleTestEnvironment );
-
-		this.started = +new Date();
-		runLoggingCallbacks( "testStart", QUnit, {
-			name: this.testName,
-			module: this.module
-		});
-
-		/*jshint camelcase:false */
-
-
-		/**
-		 * Expose the current test environment.
-		 *
-		 * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
-		 */
-		QUnit.current_testEnvironment = this.testEnvironment;
-
-		/*jshint camelcase:true */
-
-		if ( !config.pollution ) {
-			saveGlobal();
-		}
-		if ( config.notrycatch ) {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-			return;
-		}
-		try {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-		} catch( e ) {
-			QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-		}
-	},
-	run: function() {
-		config.current = this;
-
-		var running = id( "qunit-testresult" );
-
-		if ( running ) {
-			running.innerHTML = "Running: <br/>" + this.nameHtml;
-		}
-
-		if ( this.async ) {
-			QUnit.stop();
-		}
-
-		this.callbackStarted = +new Date();
-
-		if ( config.notrycatch ) {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-			return;
-		}
-
-		try {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-		} catch( e ) {
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-
-			QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-			// else next test will carry the responsibility
-			saveGlobal();
-
-			// Restart the tests if they're blocking
-			if ( config.blocking ) {
-				QUnit.start();
-			}
-		}
-	},
-	teardown: function() {
-		config.current = this;
-		if ( config.notrycatch ) {
-			if ( typeof this.callbackRuntime === "undefined" ) {
-				this.callbackRuntime = +new Date() - this.callbackStarted;
-			}
-			this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			return;
-		} else {
-			try {
-				this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			} catch( e ) {
-				QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-			}
-		}
-		checkPollution();
-	},
-	finish: function() {
-		config.current = this;
-		if ( config.requireExpects && this.expected === null ) {
-			QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-		} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-			QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-		} else if ( this.expected === null && !this.assertions.length ) {
-			QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
-		}
-
-		var i, assertion, a, b, time, li, ol,
-			test = this,
-			good = 0,
-			bad = 0,
-			tests = id( "qunit-tests" );
-
-		this.runtime = +new Date() - this.started;
-		config.stats.all += this.assertions.length;
-		config.moduleStats.all += this.assertions.length;
-
-		if ( tests ) {
-			ol = document.createElement( "ol" );
-			ol.className = "qunit-assert-list";
-
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				assertion = this.assertions[i];
-
-				li = document.createElement( "li" );
-				li.className = assertion.result ? "pass" : "fail";
-				li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-				ol.appendChild( li );
-
-				if ( assertion.result ) {
-					good++;
-				} else {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-
-			// store result when possible
-			if ( QUnit.config.reorder && defined.sessionStorage ) {
-				if ( bad ) {
-					sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-				} else {
-					sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-				}
-			}
-
-			if ( bad === 0 ) {
-				addClass( ol, "qunit-collapsed" );
-			}
-
-			// `b` initialized at top of scope
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
-			addEvent(b, "click", function() {
-				var next = b.parentNode.lastChild,
-					collapsed = hasClass( next, "qunit-collapsed" );
-				( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-			});
-
-			addEvent(b, "dblclick", function( e ) {
-				var target = e && e.target ? e.target : window.event.srcElement;
-				if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-					target = target.parentNode;
-				}
-				if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-					window.location = QUnit.url({ testNumber: test.testNumber });
-				}
-			});
-
-			// `time` initialized at top of scope
-			time = document.createElement( "span" );
-			time.className = "runtime";
-			time.innerHTML = this.runtime + " ms";
-
-			// `li` initialized at top of scope
-			li = id( this.id );
-			li.className = bad ? "fail" : "pass";
-			li.removeChild( li.firstChild );
-			a = li.firstChild;
-			li.appendChild( b );
-			li.appendChild( a );
-			li.appendChild( time );
-			li.appendChild( ol );
-
-		} else {
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				if ( !this.assertions[i].result ) {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-		}
-
-		runLoggingCallbacks( "testDone", QUnit, {
-			name: this.testName,
-			module: this.module,
-			failed: bad,
-			passed: this.assertions.length - bad,
-			total: this.assertions.length,
-			duration: this.runtime
-		});
-
-		QUnit.reset();
-
-		config.current = undefined;
-	},
-
-	queue: function() {
-		var bad,
-			test = this;
-
-		synchronize(function() {
-			test.init();
-		});
-		function run() {
-			// each of these can by async
-			synchronize(function() {
-				test.setup();
-			});
-			synchronize(function() {
-				test.run();
-			});
-			synchronize(function() {
-				test.teardown();
-			});
-			synchronize(function() {
-				test.finish();
-			});
-		}
-
-		// `bad` initialized at top of scope
-		// defer when previous test run passed, if storage is available
-		bad = QUnit.config.reorder && defined.sessionStorage &&
-						+sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
-		if ( bad ) {
-			run();
-		} else {
-			synchronize( run, true );
-		}
-	}
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function( name, testEnvironment ) {
-		config.currentModule = name;
-		config.currentModuleTestEnvironment = testEnvironment;
-		config.modules[name] = true;
-	},
-
-	asyncTest: function( testName, expected, callback ) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		QUnit.test( testName, expected, callback, true );
-	},
-
-	test: function( testName, expected, callback, async ) {
-		var test,
-			nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
-		}
-
-		test = new Test({
-			nameHtml: nameHtml,
-			testName: testName,
-			expected: expected,
-			async: async,
-			callback: callback,
-			module: config.currentModule,
-			moduleTestEnvironment: config.currentModuleTestEnvironment,
-			stack: sourceFromStacktrace( 2 )
-		});
-
-		if ( !validTest( test ) ) {
-			return;
-		}
-
-		test.queue();
-	},
-
-	// Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
-	expect: function( asserts ) {
-		if (arguments.length === 1) {
-			config.current.expected = asserts;
-		} else {
-			return config.current.expected;
-		}
-	},
-
-	start: function( count ) {
-		// QUnit hasn't been initialized yet.
-		// Note: RequireJS (et al) may delay onLoad
-		if ( config.semaphore === undefined ) {
-			QUnit.begin(function() {
-				// This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-				setTimeout(function() {
-					QUnit.start( count );
-				});
-			});
-			return;
-		}
-
-		config.semaphore -= count || 1;
-		// don't start until equal number of stop-calls
-		if ( config.semaphore > 0 ) {
-			return;
-		}
-		// ignore if start is called more often then stop
-		if ( config.semaphore < 0 ) {
-			config.semaphore = 0;
-			QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-			return;
-		}
-		// A slight delay, to avoid any current callbacks
-		if ( defined.setTimeout ) {
-			setTimeout(function() {
-				if ( config.semaphore > 0 ) {
-					return;
-				}
-				if ( config.timeout ) {
-					clearTimeout( config.timeout );
-				}
-
-				config.blocking = false;
-				process( true );
-			}, 13);
-		} else {
-			config.blocking = false;
-			process( true );
-		}
-	},
-
-	stop: function( count ) {
-		config.semaphore += count || 1;
-		config.blocking = true;
-
-		if ( config.testTimeout && defined.setTimeout ) {
-			clearTimeout( config.timeout );
-			config.timeout = setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				config.semaphore = 1;
-				QUnit.start();
-			}, config.testTimeout );
-		}
-	}
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-	/**
-	 * Asserts rough true-ish result.
-	 * @name ok
-	 * @function
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function( result, msg ) {
-		if ( !config.current ) {
-			throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-		result = !!result;
-		msg = msg || (result ? "okay" : "failed" );
-
-		var source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: msg
-			};
-
-		msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
-		if ( !result ) {
-			source = sourceFromStacktrace( 2 );
-			if ( source ) {
-				details.source = source;
-				msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
-			}
-		}
-		runLoggingCallbacks( "log", QUnit, details );
-		config.current.assertions.push({
-			result: result,
-			message: msg
-		});
-	},
-
-	/**
-	 * Assert that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 * @name equal
-	 * @function
-	 * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-	 */
-	equal: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected == actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notEqual
-	 * @function
-	 */
-	notEqual: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected != actual, actual, expected, message );
-	},
-
-	/**
-	 * @name propEqual
-	 * @function
-	 */
-	propEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notPropEqual
-	 * @function
-	 */
-	notPropEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name deepEqual
-	 * @function
-	 */
-	deepEqual: function( actual, expected, message ) {
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notDeepEqual
-	 * @function
-	 */
-	notDeepEqual: function( actual, expected, message ) {
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name strictEqual
-	 * @function
-	 */
-	strictEqual: function( actual, expected, message ) {
-		QUnit.push( expected === actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notStrictEqual
-	 * @function
-	 */
-	notStrictEqual: function( actual, expected, message ) {
-		QUnit.push( expected !== actual, actual, expected, message );
-	},
-
-	"throws": function( block, expected, message ) {
-		var actual,
-			expectedOutput = expected,
-			ok = false;
-
-		// 'expected' is optional
-		if ( typeof expected === "string" ) {
-			message = expected;
-			expected = null;
-		}
-
-		config.current.ignoreGlobalErrors = true;
-		try {
-			block.call( config.current.testEnvironment );
-		} catch (e) {
-			actual = e;
-		}
-		config.current.ignoreGlobalErrors = false;
-
-		if ( actual ) {
-			// we don't want to validate thrown error
-			if ( !expected ) {
-				ok = true;
-				expectedOutput = null;
-			// expected is a regexp
-			} else if ( QUnit.objectType( expected ) === "regexp" ) {
-				ok = expected.test( errorString( actual ) );
-			// expected is a constructor
-			} else if ( actual instanceof expected ) {
-				ok = true;
-			// expected is a validation function which returns true is validation passed
-			} else if ( expected.call( {}, actual ) === true ) {
-				expectedOutput = null;
-				ok = true;
-			}
-
-			QUnit.push( ok, actual, expectedOutput, message );
-		} else {
-			QUnit.pushFailure( message, null, "No exception was thrown." );
-		}
-	}
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-	QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-	QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
-	function F() {}
-	F.prototype = QUnit;
-	QUnit = new F();
-	// Make F QUnit's constructor so that we can add to the prototype later
-	QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true,
-
-	// when enabled, show only failing tests
-	// gets persisted through sessionStorage and can be changed in UI via checkbox
-	hidepassed: false,
-
-	// by default, run previously failed tests first
-	// very useful in combination with "Hide passed tests" checked
-	reorder: true,
-
-	// by default, modify document.title when suite is done
-	altertitle: true,
-
-	// when enabled, all tests must call expect()
-	requireExpects: false,
-
-	// add checkboxes that are persisted in the query-string
-	// when enabled, the id is set to `true` as a `QUnit.config` property
-	urlConfig: [
-		{
-			id: "noglobals",
-			label: "Check for Globals",
-			tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-		},
-		{
-			id: "notrycatch",
-			label: "No try-catch",
-			tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-		}
-	],
-
-	// Set of all modules.
-	modules: {},
-
-	// logging callback queues
-	begin: [],
-	done: [],
-	log: [],
-	testStart: [],
-	testDone: [],
-	moduleStart: [],
-	moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-	extend( window, QUnit.constructor.prototype );
-
-	// Expose QUnit object
-	window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-	var i,
-		location = window.location || { search: "", protocol: "file:" },
-		params = location.search.slice( 1 ).split( "&" ),
-		length = params.length,
-		urlParams = {},
-		current;
-
-	if ( params[ 0 ] ) {
-		for ( i = 0; i < length; i++ ) {
-			current = params[ i ].split( "=" );
-			current[ 0 ] = decodeURIComponent( current[ 0 ] );
-			// allow just a key to turn on a flag, e.g., test.html?noglobals
-			current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-			urlParams[ current[ 0 ] ] = current[ 1 ];
-		}
-	}
-
-	QUnit.urlParams = urlParams;
-
-	// String search anywhere in moduleName+testName
-	config.filter = urlParams.filter;
-
-	// Exact match of the module name
-	config.module = urlParams.module;
-
-	config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-	assert: assert,
-
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend( config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date(),
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			filter: "",
-			queue: [],
-			semaphore: 1
-		});
-
-		var tests, banner, result,
-			qunit = id( "qunit" );
-
-		if ( qunit ) {
-			qunit.innerHTML =
-				"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-				"<h2 id='qunit-banner'></h2>" +
-				"<div id='qunit-testrunner-toolbar'></div>" +
-				"<h2 id='qunit-userAgent'></h2>" +
-				"<ol id='qunit-tests'></ol>";
-		}
-
-		tests = id( "qunit-tests" );
-		banner = id( "qunit-banner" );
-		result = id( "qunit-testresult" );
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-
-		if ( tests ) {
-			result = document.createElement( "p" );
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests );
-			result.innerHTML = "Running...<br/>&nbsp;";
-		}
-	},
-
-	// Resets the test setup. Useful for tests that modify the DOM.
-	/*
-	DEPRECATED: Use multiple tests instead of resetting inside a test.
-	Use testStart or testDone for custom cleanup.
-	This method will throw an error in 2.0, and will be removed in 2.1
-	*/
-	reset: function() {
-		var fixture = id( "qunit-fixture" );
-		if ( fixture ) {
-			fixture.innerHTML = config.fixture;
-		}
-	},
-
-	// Trigger an event on an element.
-	// @example triggerEvent( document.body, "click" );
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent( "MouseEvents" );
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
-			elem.dispatchEvent( event );
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent( "on" + type );
-		}
-	},
-
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) === type;
-	},
-
-	objectType: function( obj ) {
-		if ( typeof obj === "undefined" ) {
-				return "undefined";
-		// consider: typeof null === object
-		}
-		if ( obj === null ) {
-				return "null";
-		}
-
-		var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-			type = match && match[1] || "";
-
-		switch ( type ) {
-			case "Number":
-				if ( isNaN(obj) ) {
-					return "nan";
-				}
-				return "number";
-			case "String":
-			case "Boolean":
-			case "Array":
-			case "Date":
-			case "RegExp":
-			case "Function":
-				return type.toLowerCase();
-		}
-		if ( typeof obj === "object" ) {
-			return "object";
-		}
-		return undefined;
-	},
-
-	push: function( result, actual, expected, message ) {
-		if ( !config.current ) {
-			throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-		}
-
-		var output, source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: message,
-				actual: actual,
-				expected: expected
-			};
-
-		message = escapeText( message ) || ( result ? "okay" : "failed" );
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		if ( !result ) {
-			expected = escapeText( QUnit.jsDump.parse(expected) );
-			actual = escapeText( QUnit.jsDump.parse(actual) );
-			output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
-			if ( actual !== expected ) {
-				output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-				output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-			}
-
-			source = sourceFromStacktrace();
-
-			if ( source ) {
-				details.source = source;
-				output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-			}
-
-			output += "</table>";
-		}
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: !!result,
-			message: output
-		});
-	},
-
-	pushFailure: function( message, source, actual ) {
-		if ( !config.current ) {
-			throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-
-		var output,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: false,
-				message: message
-			};
-
-		message = escapeText( message ) || "error";
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		output += "<table>";
-
-		if ( actual ) {
-			output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-		}
-
-		if ( source ) {
-			details.source = source;
-			output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-		}
-
-		output += "</table>";
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: false,
-			message: output
-		});
-	},
-
-	url: function( params ) {
-		params = extend( extend( {}, QUnit.urlParams ), params );
-		var key,
-			querystring = "?";
-
-		for ( key in params ) {
-			if ( hasOwn.call( params, key ) ) {
-				querystring += encodeURIComponent( key ) + "=" +
-					encodeURIComponent( params[ key ] ) + "&";
-			}
-		}
-		return window.location.protocol + "//" + window.location.host +
-			window.location.pathname + querystring.slice( 0, -1 );
-	},
-
-	extend: extend,
-	id: id,
-	addEvent: addEvent,
-	addClass: addClass,
-	hasClass: hasClass,
-	removeClass: removeClass
-	// load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
-	// Logging callbacks; all receive a single argument with the listed properties
-	// run test/logs.html for any related changes
-	begin: registerLoggingCallback( "begin" ),
-
-	// done: { failed, passed, total, runtime }
-	done: registerLoggingCallback( "done" ),
-
-	// log: { result, actual, expected, message }
-	log: registerLoggingCallback( "log" ),
-
-	// testStart: { name }
-	testStart: registerLoggingCallback( "testStart" ),
-
-	// testDone: { name, failed, passed, total, duration }
-	testDone: registerLoggingCallback( "testDone" ),
-
-	// moduleStart: { name }
-	moduleStart: registerLoggingCallback( "moduleStart" ),
-
-	// moduleDone: { name, failed, passed, total }
-	moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-QUnit.load = function() {
-	runLoggingCallbacks( "begin", QUnit, {} );
-
-	// Initialize the config, saving the execution queue
-	var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-		urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-		numModules = 0,
-		moduleNames = [],
-		moduleFilterHtml = "",
-		urlConfigHtml = "",
-		oldconfig = extend( {}, config );
-
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	len = config.urlConfig.length;
-
-	for ( i = 0; i < len; i++ ) {
-		val = config.urlConfig[i];
-		if ( typeof val === "string" ) {
-			val = {
-				id: val,
-				label: val,
-				tooltip: "[no tooltip available]"
-			};
-		}
-		config[ val.id ] = QUnit.urlParams[ val.id ];
-		urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-			"' name='" + escapeText( val.id ) +
-			"' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-			" title='" + escapeText( val.tooltip ) +
-			"'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-			"' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
-	}
-	for ( i in config.modules ) {
-		if ( config.modules.hasOwnProperty( i ) ) {
-			moduleNames.push(i);
-		}
-	}
-	numModules = moduleNames.length;
-	moduleNames.sort( function( a, b ) {
-		return a.localeCompare( b );
-	});
-	moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-		( config.module === undefined  ? "selected='selected'" : "" ) +
-		">< All Modules ></option>";
-
-
-	for ( i = 0; i < numModules; i++) {
-			moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
-				( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
-				">" + escapeText(moduleNames[i]) + "</option>";
-	}
-	moduleFilterHtml += "</select>";
-
-	// `userAgent` initialized at top of scope
-	userAgent = id( "qunit-userAgent" );
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-
-	// `banner` initialized at top of scope
-	banner = id( "qunit-header" );
-	if ( banner ) {
-		banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
-	}
-
-	// `toolbar` initialized at top of scope
-	toolbar = id( "qunit-testrunner-toolbar" );
-	if ( toolbar ) {
-		// `filter` initialized at top of scope
-		filter = document.createElement( "input" );
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-
-		addEvent( filter, "click", function() {
-			var tmp,
-				ol = document.getElementById( "qunit-tests" );
-
-			if ( filter.checked ) {
-				ol.className = ol.className + " hidepass";
-			} else {
-				tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-				ol.className = tmp.replace( / hidepass /, " " );
-			}
-			if ( defined.sessionStorage ) {
-				if (filter.checked) {
-					sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
-				} else {
-					sessionStorage.removeItem( "qunit-filter-passed-tests" );
-				}
-			}
-		});
-
-		if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-			filter.checked = true;
-			// `ol` initialized at top of scope
-			ol = document.getElementById( "qunit-tests" );
-			ol.className = ol.className + " hidepass";
-		}
-		toolbar.appendChild( filter );
-
-		// `label` initialized at top of scope
-		label = document.createElement( "label" );
-		label.setAttribute( "for", "qunit-filter-pass" );
-		label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		urlConfigCheckboxesContainer = document.createElement("span");
-		urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-		urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-		// For oldIE support:
-		// * Add handlers to the individual elements instead of the container
-		// * Use "click" instead of "change"
-		// * Fallback from event.target to event.srcElement
-		addEvents( urlConfigCheckboxes, "click", function( event ) {
-			var params = {},
-				target = event.target || event.srcElement;
-			params[ target.name ] = target.checked ? true : undefined;
-			window.location = QUnit.url( params );
-		});
-		toolbar.appendChild( urlConfigCheckboxesContainer );
-
-		if (numModules > 1) {
-			moduleFilter = document.createElement( "span" );
-			moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
-			moduleFilter.innerHTML = moduleFilterHtml;
-			addEvent( moduleFilter.lastChild, "change", function() {
-				var selectBox = moduleFilter.getElementsByTagName("select")[0],
-					selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
-				window.location = QUnit.url({
-					module: ( selectedModule === "" ) ? undefined : selectedModule,
-					// Remove any existing filters
-					filter: undefined,
-					testNumber: undefined
-				});
-			});
-			toolbar.appendChild(moduleFilter);
-		}
-	}
-
-	// `main` initialized at top of scope
-	main = id( "qunit-fixture" );
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if ( config.autostart ) {
-		QUnit.start();
-	}
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-	var ret = false;
-	if ( onErrorFnPrev ) {
-		ret = onErrorFnPrev( error, filePath, linerNr );
-	}
-
-	// Treat return value as window.onerror itself does,
-	// Only do our handling if not suppressed.
-	if ( ret !== true ) {
-		if ( QUnit.config.current ) {
-			if ( QUnit.config.current.ignoreGlobalErrors ) {
-				return true;
-			}
-			QUnit.pushFailure( error, filePath + ":" + linerNr );
-		} else {
-			QUnit.test( "global failure", extend( function() {
-				QUnit.pushFailure( error, filePath + ":" + linerNr );
-			}, { validTest: validTest } ) );
-		}
-		return false;
-	}
-
-	return ret;
-};
-
-function done() {
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		runLoggingCallbacks( "moduleDone", QUnit, {
-			name: config.currentModule,
-			failed: config.moduleStats.bad,
-			passed: config.moduleStats.all - config.moduleStats.bad,
-			total: config.moduleStats.all
-		});
-	}
-	delete config.previousModule;
-
-	var i, key,
-		banner = id( "qunit-banner" ),
-		tests = id( "qunit-tests" ),
-		runtime = +new Date() - config.started,
-		passed = config.stats.all - config.stats.bad,
-		html = [
-			"Tests completed in ",
-			runtime,
-			" milliseconds.<br/>",
-			"<span class='passed'>",
-			passed,
-			"</span> assertions of <span class='total'>",
-			config.stats.all,
-			"</span> passed, <span class='failed'>",
-			config.stats.bad,
-			"</span> failed."
-		].join( "" );
-
-	if ( banner ) {
-		banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
-	}
-
-	if ( tests ) {
-		id( "qunit-testresult" ).innerHTML = html;
-	}
-
-	if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-		// show ✖ for good, ✔ for bad suite result in title
-		// use escape sequences in case file gets loaded with non-utf-8-charset
-		document.title = [
-			( config.stats.bad ? "\u2716" : "\u2714" ),
-			document.title.replace( /^[\u2714\u2716] /i, "" )
-		].join( " " );
-	}
-
-	// clear own sessionStorage items if all tests passed
-	if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-		// `key` & `i` initialized at top of scope
-		for ( i = 0; i < sessionStorage.length; i++ ) {
-			key = sessionStorage.key( i++ );
-			if ( key.indexOf( "qunit-test-" ) === 0 ) {
-				sessionStorage.removeItem( key );
-			}
-		}
-	}
-
-	// scroll back to top to show results
-	if ( window.scrollTo ) {
-		window.scrollTo(0, 0);
-	}
-
-	runLoggingCallbacks( "done", QUnit, {
-		failed: config.stats.bad,
-		passed: passed,
-		total: config.stats.all,
-		runtime: runtime
-	});
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-	var include,
-		filter = config.filter && config.filter.toLowerCase(),
-		module = config.module && config.module.toLowerCase(),
-		fullName = (test.module + ": " + test.testName).toLowerCase();
-
-	// Internally-generated tests are always valid
-	if ( test.callback && test.callback.validTest === validTest ) {
-		delete test.callback.validTest;
-		return true;
-	}
-
-	if ( config.testNumber ) {
-		return test.testNumber === config.testNumber;
-	}
-
-	if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-		return false;
-	}
-
-	if ( !filter ) {
-		return true;
-	}
-
-	include = filter.charAt( 0 ) !== "!";
-	if ( !include ) {
-		filter = filter.slice( 1 );
-	}
-
-	// If the filter matches, we need to honour include
-	if ( fullName.indexOf( filter ) !== -1 ) {
-		return include;
-	}
-
-	// Otherwise, do the opposite
-	return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-	offset = offset === undefined ? 3 : offset;
-
-	var stack, include, i;
-
-	if ( e.stacktrace ) {
-		// Opera
-		return e.stacktrace.split( "\n" )[ offset + 3 ];
-	} else if ( e.stack ) {
-		// Firefox, Chrome
-		stack = e.stack.split( "\n" );
-		if (/^error$/i.test( stack[0] ) ) {
-			stack.shift();
-		}
-		if ( fileName ) {
-			include = [];
-			for ( i = offset; i < stack.length; i++ ) {
-				if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-					break;
-				}
-				include.push( stack[ i ] );
-			}
-			if ( include.length ) {
-				return include.join( "\n" );
-			}
-		}
-		return stack[ offset ];
-	} else if ( e.sourceURL ) {
-		// Safari, PhantomJS
-		// hopefully one day Safari provides actual stacktraces
-		// exclude useless self-reference for generated Error objects
-		if ( /qunit.js$/.test( e.sourceURL ) ) {
-			return;
-		}
-		// for actual exceptions, this is useful
-		return e.sourceURL + ":" + e.line;
-	}
-}
-function sourceFromStacktrace( offset ) {
-	try {
-		throw new Error();
-	} catch ( e ) {
-		return extractStacktrace( e, offset );
-	}
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-	if ( !s ) {
-		return "";
-	}
-	s = s + "";
-	// Both single quotes and double quotes (for attributes)
-	return s.replace( /['"<>&]/g, function( s ) {
-		switch( s ) {
-			case "'":
-				return "&#039;";
-			case "\"":
-				return "&quot;";
-			case "<":
-				return "&lt;";
-			case ">":
-				return "&gt;";
-			case "&":
-				return "&amp;";
-		}
-	});
-}
-
-function synchronize( callback, last ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process( last );
-	}
-}
-
-function process( last ) {
-	function next() {
-		process( last );
-	}
-	var start = new Date().getTime();
-	config.depth = config.depth ? config.depth + 1 : 1;
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-			config.queue.shift()();
-		} else {
-			setTimeout( next, 13 );
-			break;
-		}
-	}
-	config.depth--;
-	if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-		done();
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			if ( hasOwn.call( window, key ) ) {
-				// in Opera sometimes DOM element ids show up here, ignore them
-				if ( /^qunit-test-output/.test( key ) ) {
-					continue;
-				}
-				config.pollution.push( key );
-			}
-		}
-	}
-}
-
-function checkPollution() {
-	var newGlobals,
-		deletedGlobals,
-		old = config.pollution;
-
-	saveGlobal();
-
-	newGlobals = diff( config.pollution, old );
-	if ( newGlobals.length > 0 ) {
-		QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-	}
-
-	deletedGlobals = diff( old, config.pollution );
-	if ( deletedGlobals.length > 0 ) {
-		QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var i, j,
-		result = a.slice();
-
-	for ( i = 0; i < result.length; i++ ) {
-		for ( j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice( i, 1 );
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function extend( a, b ) {
-	for ( var prop in b ) {
-		if ( hasOwn.call( b, prop ) ) {
-			// Avoid "Member not found" error in IE8 caused by messing with window.constructor
-			if ( !( prop === "constructor" && a === window ) ) {
-				if ( b[ prop ] === undefined ) {
-					delete a[ prop ];
-				} else {
-					a[ prop ] = b[ prop ];
-				}
-			}
-		}
-	}
-
-	return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
-	// Standards-based browsers
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	// IE
-	} else {
-		elem.attachEvent( "on" + type, fn );
-	}
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
-	var i = elems.length;
-	while ( i-- ) {
-		addEvent( elems[i], type, fn );
-	}
-}
-
-function hasClass( elem, name ) {
-	return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-	if ( !hasClass( elem, name ) ) {
-		elem.className += (elem.className ? " " : "") + name;
-	}
-}
-
-function removeClass( elem, name ) {
-	var set = " " + elem.className + " ";
-	// Class name may appear multiple times
-	while ( set.indexOf(" " + name + " ") > -1 ) {
-		set = set.replace(" " + name + " " , " ");
-	}
-	// If possible, trim it for prettiness, but not necessarily
-	elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
-	return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-		document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-	return function( callback ) {
-		config[key].push( callback );
-	};
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-	var i, callbacks;
-	if ( QUnit.hasOwnProperty( key ) ) {
-		QUnit[ key ].call(scope, args );
-	} else {
-		callbacks = config[ key ];
-		for ( i = 0; i < callbacks.length; i++ ) {
-			callbacks[ i ].call( scope, args );
-		}
-	}
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
-	// Call the o related callback with the given arguments.
-	function bindCallbacks( o, callbacks, args ) {
-		var prop = QUnit.objectType( o );
-		if ( prop ) {
-			if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
-				return callbacks[ prop ].apply( callbacks, args );
-			} else {
-				return callbacks[ prop ]; // or undefined
-			}
-		}
-	}
-
-	// the real equiv function
-	var innerEquiv,
-		// stack to decide between skip/abort functions
-		callers = [],
-		// stack to avoiding loops from circular referencing
-		parents = [],
-		parentsB = [],
-
-		getProto = Object.getPrototypeOf || function ( obj ) {
-			/*jshint camelcase:false */
-			return obj.__proto__;
-		},
-		callbacks = (function () {
-
-			// for string, boolean, number and null
-			function useStrictEquality( b, a ) {
-				/*jshint eqeqeq:false */
-				if ( b instanceof a.constructor || a instanceof b.constructor ) {
-					// to catch short annotation VS 'new' annotation of a
-					// declaration
-					// e.g. var i = 1;
-					// var j = new Number(1);
-					return a == b;
-				} else {
-					return a === b;
-				}
-			}
-
-			return {
-				"string": useStrictEquality,
-				"boolean": useStrictEquality,
-				"number": useStrictEquality,
-				"null": useStrictEquality,
-				"undefined": useStrictEquality,
-
-				"nan": function( b ) {
-					return isNaN( b );
-				},
-
-				"date": function( b, a ) {
-					return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
-				},
-
-				"regexp": function( b, a ) {
-					return QUnit.objectType( b ) === "regexp" &&
-						// the regex itself
-						a.source === b.source &&
-						// and its modifiers
-						a.global === b.global &&
-						// (gmi) ...
-						a.ignoreCase === b.ignoreCase &&
-						a.multiline === b.multiline &&
-						a.sticky === b.sticky;
-				},
-
-				// - skip when the property is a method of an instance (OOP)
-				// - abort otherwise,
-				// initial === would have catch identical references anyway
-				"function": function() {
-					var caller = callers[callers.length - 1];
-					return caller !== Object && typeof caller !== "undefined";
-				},
-
-				"array": function( b, a ) {
-					var i, j, len, loop, aCircular, bCircular;
-
-					// b could be an object literal here
-					if ( QUnit.objectType( b ) !== "array" ) {
-						return false;
-					}
-
-					len = a.length;
-					if ( len !== b.length ) {
-						// safe and faster
-						return false;
-					}
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-					for ( i = 0; i < len; i++ ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									parents.pop();
-									parentsB.pop();
-									return false;
-								}
-							}
-						}
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							parents.pop();
-							parentsB.pop();
-							return false;
-						}
-					}
-					parents.pop();
-					parentsB.pop();
-					return true;
-				},
-
-				"object": function( b, a ) {
-					/*jshint forin:false */
-					var i, j, loop, aCircular, bCircular,
-						// Default to true
-						eq = true,
-						aProperties = [],
-						bProperties = [];
-
-					// comparing constructors is more strict than using
-					// instanceof
-					if ( a.constructor !== b.constructor ) {
-						// Allow objects with no prototype to be equivalent to
-						// objects with Object as their constructor.
-						if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
-							( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
-								return false;
-						}
-					}
-
-					// stack constructor before traversing properties
-					callers.push( a.constructor );
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-
-					// be strict: don't ensure hasOwnProperty and go deep
-					for ( i in a ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									eq = false;
-									break;
-								}
-							}
-						}
-						aProperties.push(i);
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							eq = false;
-							break;
-						}
-					}
-
-					parents.pop();
-					parentsB.pop();
-					callers.pop(); // unstack, we are done
-
-					for ( i in b ) {
-						bProperties.push( i ); // collect b's properties
-					}
-
-					// Ensures identical properties name
-					return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
-				}
-			};
-		}());
-
-	innerEquiv = function() { // can take multiple arguments
-		var args = [].slice.apply( arguments );
-		if ( args.length < 2 ) {
-			return true; // end transition
-		}
-
-		return (function( a, b ) {
-			if ( a === b ) {
-				return true; // catch the most you can
-			} else if ( a === null || b === null || typeof a === "undefined" ||
-					typeof b === "undefined" ||
-					QUnit.objectType(a) !== QUnit.objectType(b) ) {
-				return false; // don't lose time with error prone cases
-			} else {
-				return bindCallbacks(a, callbacks, [ b, a ]);
-			}
-
-			// apply transition with (1..n) arguments
-		}( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
-	};
-
-	return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
-	}
-	function literal( o ) {
-		return o + "";
-	}
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join ) {
-			arr = arr.join( "," + s + inner );
-		}
-		if ( !arr ) {
-			return pre + post;
-		}
-		return [ pre, inner + arr, base + post ].join(s);
-	}
-	function array( arr, stack ) {
-		var i = arr.length, ret = new Array(i);
-		this.up();
-		while ( i-- ) {
-			ret[i] = this.parse( arr[i] , undefined , stack);
-		}
-		this.down();
-		return join( "[", ret, "]" );
-	}
-
-	var reName = /^function (\w+)/,
-		jsDump = {
-			// type is used mostly internally, you can fix a (custom)type in advance
-			parse: function( obj, type, stack ) {
-				stack = stack || [ ];
-				var inStack, res,
-					parser = this.parsers[ type || this.typeOf(obj) ];
-
-				type = typeof parser;
-				inStack = inArray( obj, stack );
-
-				if ( inStack !== -1 ) {
-					return "recursion(" + (inStack - stack.length) + ")";
-				}
-				if ( type === "function" )  {
-					stack.push( obj );
-					res = parser.call( this, obj, stack );
-					stack.pop();
-					return res;
-				}
-				return ( type === "string" ) ? parser : this.parsers.error;
-			},
-			typeOf: function( obj ) {
-				var type;
-				if ( obj === null ) {
-					type = "null";
-				} else if ( typeof obj === "undefined" ) {
-					type = "undefined";
-				} else if ( QUnit.is( "regexp", obj) ) {
-					type = "regexp";
-				} else if ( QUnit.is( "date", obj) ) {
-					type = "date";
-				} else if ( QUnit.is( "function", obj) ) {
-					type = "function";
-				} else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
-					type = "window";
-				} else if ( obj.nodeType === 9 ) {
-					type = "document";
-				} else if ( obj.nodeType ) {
-					type = "node";
-				} else if (
-					// native arrays
-					toString.call( obj ) === "[object Array]" ||
-					// NodeList objects
-					( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-				) {
-					type = "array";
-				} else if ( obj.constructor === Error.prototype.constructor ) {
-					type = "error";
-				} else {
-					type = typeof obj;
-				}
-				return type;
-			},
-			separator: function() {
-				return this.multiline ?	this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
-			},
-			// extra can be a number, shortcut for increasing-calling-decreasing
-			indent: function( extra ) {
-				if ( !this.multiline ) {
-					return "";
-				}
-				var chr = this.indentChar;
-				if ( this.HTML ) {
-					chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
-				}
-				return new Array( this.depth + ( extra || 0 ) ).join(chr);
-			},
-			up: function( a ) {
-				this.depth += a || 1;
-			},
-			down: function( a ) {
-				this.depth -= a || 1;
-			},
-			setParser: function( name, parser ) {
-				this.parsers[name] = parser;
-			},
-			// The next 3 are exposed so you can use them
-			quote: quote,
-			literal: literal,
-			join: join,
-			//
-			depth: 1,
-			// This is the list of parsers, to modify them, use jsDump.setParser
-			parsers: {
-				window: "[Window]",
-				document: "[Document]",
-				error: function(error) {
-					return "Error(\"" + error.message + "\")";
-				},
-				unknown: "[Unknown]",
-				"null": "null",
-				"undefined": "undefined",
-				"function": function( fn ) {
-					var ret = "function",
-						// functions never have name in IE
-						name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-					if ( name ) {
-						ret += " " + name;
-					}
-					ret += "( ";
-
-					ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
-					return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
-				},
-				array: array,
-				nodelist: array,
-				"arguments": array,
-				object: function( map, stack ) {
-					/*jshint forin:false */
-					var ret = [ ], keys, key, val, i;
-					QUnit.jsDump.up();
-					keys = [];
-					for ( key in map ) {
-						keys.push( key );
-					}
-					keys.sort();
-					for ( i = 0; i < keys.length; i++ ) {
-						key = keys[ i ];
-						val = map[ key ];
-						ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
-					}
-					QUnit.jsDump.down();
-					return join( "{", ret, "}" );
-				},
-				node: function( node ) {
-					var len, i, val,
-						open = QUnit.jsDump.HTML ? "&lt;" : "<",
-						close = QUnit.jsDump.HTML ? "&gt;" : ">",
-						tag = node.nodeName.toLowerCase(),
-						ret = open + tag,
-						attrs = node.attributes;
-
-					if ( attrs ) {
-						for ( i = 0, len = attrs.length; i < len; i++ ) {
-							val = attrs[i].nodeValue;
-							// IE6 includes all attributes in .attributes, even ones not explicitly set.
-							// Those have values like undefined, null, 0, false, "" or "inherit".
-							if ( val && val !== "inherit" ) {
-								ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
-							}
-						}
-					}
-					ret += close;
-
-					// Show content of TextNode or CDATASection
-					if ( node.nodeType === 3 || node.nodeType === 4 ) {
-						ret += node.nodeValue;
-					}
-
-					return ret + open + "/" + tag + close;
-				},
-				// function calls it internally, it's the arguments part of the function
-				functionArgs: function( fn ) {
-					var args,
-						l = fn.length;
-
-					if ( !l ) {
-						return "";
-					}
-
-					args = new Array(l);
-					while ( l-- ) {
-						// 97 is 'a'
-						args[l] = String.fromCharCode(97+l);
-					}
-					return " " + args.join( ", " ) + " ";
-				},
-				// object calls it internally, the key part of an item in a map
-				key: quote,
-				// function calls it internally, it's the content of the function
-				functionCode: "[code]",
-				// node calls it internally, it's an html attribute value
-				attribute: quote,
-				string: quote,
-				date: quote,
-				regexp: literal,
-				number: literal,
-				"boolean": literal
-			},
-			// if true, entities are escaped ( <, >, \t, space and \n )
-			HTML: false,
-			// indentation unit
-			indentChar: "  ",
-			// if true, items in a collection, are separated by a \n, else just a space.
-			multiline: true
-		};
-
-	return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
-	if ( array.indexOf ) {
-		return array.indexOf( elem );
-	}
-
-	for ( var i = 0, length = array.length; i < length; i++ ) {
-		if ( array[ i ] === elem ) {
-			return i;
-		}
-	}
-
-	return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	/*jshint eqeqeq:false, eqnull:true */
-	function diff( o, n ) {
-		var i,
-			ns = {},
-			os = {};
-
-		for ( i = 0; i < n.length; i++ ) {
-			if ( !hasOwn.call( ns, n[i] ) ) {
-				ns[ n[i] ] = {
-					rows: [],
-					o: null
-				};
-			}
-			ns[ n[i] ].rows.push( i );
-		}
-
-		for ( i = 0; i < o.length; i++ ) {
-			if ( !hasOwn.call( os, o[i] ) ) {
-				os[ o[i] ] = {
-					rows: [],
-					n: null
-				};
-			}
-			os[ o[i] ].rows.push( i );
-		}
-
-		for ( i in ns ) {
-			if ( hasOwn.call( ns, i ) ) {
-				if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-					n[ ns[i].rows[0] ] = {
-						text: n[ ns[i].rows[0] ],
-						row: os[i].rows[0]
-					};
-					o[ os[i].rows[0] ] = {
-						text: o[ os[i].rows[0] ],
-						row: ns[i].rows[0]
-					};
-				}
-			}
-		}
-
-		for ( i = 0; i < n.length - 1; i++ ) {
-			if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
-						n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
-				n[ i + 1 ] = {
-					text: n[ i + 1 ],
-					row: n[i].row + 1
-				};
-				o[ n[i].row + 1 ] = {
-					text: o[ n[i].row + 1 ],
-					row: i + 1
-				};
-			}
-		}
-
-		for ( i = n.length - 1; i > 0; i-- ) {
-			if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
-						n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
-				n[ i - 1 ] = {
-					text: n[ i - 1 ],
-					row: n[i].row - 1
-				};
-				o[ n[i].row - 1 ] = {
-					text: o[ n[i].row - 1 ],
-					row: i - 1
-				};
-			}
-		}
-
-		return {
-			o: o,
-			n: n
-		};
-	}
-
-	return function( o, n ) {
-		o = o.replace( /\s+$/, "" );
-		n = n.replace( /\s+$/, "" );
-
-		var i, pre,
-			str = "",
-			out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
-			oSpace = o.match(/\s+/g),
-			nSpace = n.match(/\s+/g);
-
-		if ( oSpace == null ) {
-			oSpace = [ " " ];
-		}
-		else {
-			oSpace.push( " " );
-		}
-
-		if ( nSpace == null ) {
-			nSpace = [ " " ];
-		}
-		else {
-			nSpace.push( " " );
-		}
-
-		if ( out.n.length === 0 ) {
-			for ( i = 0; i < out.o.length; i++ ) {
-				str += "<del>" + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if ( out.n[0].text == null ) {
-				for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
-					str += "<del>" + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-
-			for ( i = 0; i < out.n.length; i++ ) {
-				if (out.n[i].text == null) {
-					str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					// `pre` initialized at top of scope
-					pre = "";
-
-					for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
-						pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-
-		return str;
-	};
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
-	extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/docs/slides/flops14/reveal.js/test/test-markdown-element-attributes.js b/docs/slides/flops14/reveal.js/test/test-markdown-element-attributes.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/test-markdown-element-attributes.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
-	});
-
-
-	test( 'Attributes on element header in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
-	});
-
-	test( 'Attributes on element paragraphs in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
-	});
-
-	test( 'Attributes on element list items in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
-	});
-
-	test( 'Attributes on element paragraphs in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
-	});
-
-	test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
-	});
-
-	test( 'Attributes on elements in single slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/flops14/reveal.js/test/test-markdown-slide-attributes.js b/docs/slides/flops14/reveal.js/test/test-markdown-slide-attributes.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/test-markdown-slide-attributes.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
-	});
-
-	test( 'Id on slide', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
-	});
-
-	test( 'data-background attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-background attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-transition attributes with inline content', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/flops14/reveal.js/test/test-markdown.js b/docs/slides/flops14/reveal.js/test/test-markdown.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/test-markdown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/flops14/reveal.js/test/test.js b/docs/slides/flops14/reveal.js/test/test.js
deleted file mode 100644
--- a/docs/slides/flops14/reveal.js/test/test.js
+++ /dev/null
@@ -1,438 +0,0 @@
-
-// These tests expect the DOM to contain a presentation
-// with the following slide structure:
-//
-// 1
-// 2 - Three sub-slides
-// 3 - Three fragment elements
-// 3 - Two fragments with same data-fragment-index
-// 4
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	// ---------------------------------------------------------------
-	// DOM TESTS
-
-	QUnit.module( 'DOM' );
-
-	test( 'Initial slides classes', function() {
-		var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
-
-		ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
-	});
-
-	// ---------------------------------------------------------------
-	// API TESTS
-
-	QUnit.module( 'API' );
-
-	test( 'Reveal.isReady', function() {
-		strictEqual( Reveal.isReady(), true, 'returns true' );
-	});
-
-	test( 'Reveal.isOverview', function() {
-		strictEqual( Reveal.isOverview(), false, 'false by default' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
-	});
-
-	test( 'Reveal.isPaused', function() {
-		strictEqual( Reveal.isPaused(), false, 'false by default' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), true, 'true after pausing' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), false, 'false after resuming' );
-	});
-
-	test( 'Reveal.isFirstSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-
-		Reveal.slide( 1, 0 );
-		strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.isLastSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-
-		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
-
-		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.getIndices', function() {
-		var indices = Reveal.getIndices();
-
-		ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
-		ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
-		ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
-
-		Reveal.slide( 1, 0 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
-
-		Reveal.slide( 1, 2 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
-
-		Reveal.slide( 0, 0 );
-	});
-
-	test( 'Reveal.getSlide', function() {
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-
-		equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
-
-		strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
-	});
-
-	test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
-		Reveal.slide( 0, 0 );
-		Reveal.slide( 1, 0 );
-
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-		var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
-
-		equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
-		equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
-	});
-
-	test( 'Reveal.getScale', function() {
-		ok( typeof Reveal.getScale() === 'number', 'has scale' );
-	});
-
-	test( 'Reveal.getConfig', function() {
-		ok( typeof Reveal.getConfig() === 'object', 'has config' );
-	});
-
-	test( 'Reveal.configure', function() {
-		strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
-
-		Reveal.configure({ loop: true });
-		strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
-
-		Reveal.configure({ loop: false, customTestValue: 1 });
-		strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
-	});
-
-	test( 'Reveal.availableRoutes', function() {
-		Reveal.slide( 0, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
-
-		Reveal.slide( 1, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
-	});
-
-	test( 'Reveal.next', function() {
-		Reveal.slide( 0, 0 );
-
-		// Step through vertical child slides
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
-
-		// Step through fragments
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
-	});
-
-	test( 'Reveal.next at end', function() {
-		Reveal.slide( 3 );
-
-		// We're at the end, this should have no effect
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-	});
-
-
-	// ---------------------------------------------------------------
-	// FRAGMENT TESTS
-
-	QUnit.module( 'Fragments' );
-
-	test( 'Sliding to fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
-
-		Reveal.slide( 2, 0, 0 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
-
-		Reveal.slide( 2, 0, 2 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
-
-		Reveal.slide( 2, 0, 1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
-	});
-
-	test( 'Hiding all fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
-
-		Reveal.slide( 2, 0, -1 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
-	});
-
-	test( 'Current fragment', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
-
-		Reveal.slide( 1, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
-	});
-
-	test( 'Stepping through fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-
-		// forwards:
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
-
-		Reveal.right();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
-
-		Reveal.down();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
-
-		Reveal.down(); // moves to f #3
-
-		// backwards:
-
-		Reveal.prev();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
-
-		Reveal.left();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
-
-		Reveal.up();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
-	});
-
-	test( 'Stepping past fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 0, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
-	});
-
-	test( 'Fragment indices', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
-	});
-
-	test( 'Index generation', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		// These have no indices defined to start with
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
-	});
-
-	test( 'Index normalization', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
-
-		// These start out as 1-4-4 and should normalize to 0-1-1
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
-	});
-
-	asyncTest( 'fragmentshown event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmentshown', _onEvent );
-
-		Reveal.slide( 2, 0 );
-		Reveal.slide( 2, 0 ); // should do nothing
-		Reveal.slide( 2, 0, 0 ); // should do nothing
-		Reveal.next();
-		Reveal.next();
-		Reveal.prev(); // shouldn't fire fragmentshown
-
-		start();
-
-		Reveal.removeEventListener( 'fragmentshown', _onEvent );
-	});
-
-	asyncTest( 'fragmenthidden event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmenthidden', _onEvent );
-
-		Reveal.slide( 2, 0, 2 );
-		Reveal.slide( 2, 0, 2 ); // should do nothing
-		Reveal.prev();
-		Reveal.prev();
-		Reveal.next(); // shouldn't fire fragmenthidden
-
-		start();
-
-		Reveal.removeEventListener( 'fragmenthidden', _onEvent );
-	});
-
-
-	// ---------------------------------------------------------------
-	// CONFIGURATION VALUES
-
-	QUnit.module( 'Configuration' );
-
-	test( 'Controls', function() {
-		var controlsElement = document.querySelector( '.reveal>.controls' );
-
-		Reveal.configure({ controls: false });
-		equal( controlsElement.style.display, 'none', 'controls are hidden' );
-
-		Reveal.configure({ controls: true });
-		equal( controlsElement.style.display, 'block', 'controls are visible' );
-	});
-
-	test( 'Progress', function() {
-		var progressElement = document.querySelector( '.reveal>.progress' );
-
-		Reveal.configure({ progress: false });
-		equal( progressElement.style.display, 'none', 'progress are hidden' );
-
-		Reveal.configure({ progress: true });
-		equal( progressElement.style.display, 'block', 'progress are visible' );
-	});
-
-	test( 'Loop', function() {
-		Reveal.configure({ loop: true });
-
-		Reveal.slide( 0, 0 );
-
-		Reveal.left();
-		notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
-
-		Reveal.right();
-		equal( Reveal.getIndices().h, 0, 'looped from end to start' );
-
-		Reveal.configure({ loop: false });
-	});
-
-
-	// ---------------------------------------------------------------
-	// EVENT TESTS
-
-	QUnit.module( 'Events' );
-
-	asyncTest( 'slidechanged', function() {
-		expect( 3 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'slidechanged', _onEvent );
-
-		Reveal.slide( 1, 0 ); // should trigger
-		Reveal.slide( 1, 0 ); // should do nothing
-		Reveal.next(); // should trigger
-		Reveal.slide( 3, 0 ); // should trigger
-		Reveal.next(); // should do nothing
-
-		start();
-
-		Reveal.removeEventListener( 'slidechanged', _onEvent );
-
-	});
-
-	asyncTest( 'paused', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'paused', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'paused', _onEvent );
-	});
-
-	asyncTest( 'resumed', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'resumed', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'resumed', _onEvent );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/niki/Makefile b/docs/slides/niki/Makefile
deleted file mode 100644
--- a/docs/slides/niki/Makefile
+++ /dev/null
@@ -1,45 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-####################################################################
-
-
-PANDOC=pandoc --columns=80  -s  --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid
-objects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-
-
-####################################################################
-
-all: slides copy
-
-slides: $(objects)
-
-lhs/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-lhs/%.lhs.slides.html: lhs/%.lhs.markdown
-	$(DZSLIDES) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/%.lhs.markdown
-	$(BEAMER) $? -o $@ 
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-#	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/niki/fonts/OFT.txt b/docs/slides/niki/fonts/OFT.txt
deleted file mode 100644
--- a/docs/slides/niki/fonts/OFT.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-﻿Copyright (c) 2011, ParaType Ltd. (http://www.paratype.com/public),
-with Reserved Font Names "PT Sans", "PT Serif", "PT Mono" and "ParaType".
-
-This Font Software is licensed under the Open Font License, Version 1.1 
-This license is copied below, and is also available with a FAQ at: 
-http://scripts.sil.org/OFL
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/docs/slides/niki/fonts/PT_Mono-Regular.ttf b/docs/slides/niki/fonts/PT_Mono-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Mono-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Bold.ttf b/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Bold.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Bold.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Regular.ttf b/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Narrow-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Web-Bold.ttf b/docs/slides/niki/fonts/PT_Sans-Web-Bold.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Web-Bold.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Web-BoldItalic.ttf b/docs/slides/niki/fonts/PT_Sans-Web-BoldItalic.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Web-BoldItalic.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Web-Italic.ttf b/docs/slides/niki/fonts/PT_Sans-Web-Italic.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Web-Italic.ttf and /dev/null differ
diff --git a/docs/slides/niki/fonts/PT_Sans-Web-Regular.ttf b/docs/slides/niki/fonts/PT_Sans-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/fonts/PT_Sans-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/benchmarks.png b/docs/slides/niki/html/benchmarks.png
deleted file mode 100644
Binary files a/docs/slides/niki/html/benchmarks.png and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/OFT.txt b/docs/slides/niki/html/fonts/OFT.txt
deleted file mode 100644
--- a/docs/slides/niki/html/fonts/OFT.txt
+++ /dev/null
@@ -1,93 +0,0 @@
-﻿Copyright (c) 2011, ParaType Ltd. (http://www.paratype.com/public),
-with Reserved Font Names "PT Sans", "PT Serif", "PT Mono" and "ParaType".
-
-This Font Software is licensed under the Open Font License, Version 1.1 
-This license is copied below, and is also available with a FAQ at: 
-http://scripts.sil.org/OFL
-
------------------------------------------------------------
-SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
------------------------------------------------------------
-
-PREAMBLE
-The goals of the Open Font License (OFL) are to stimulate worldwide
-development of collaborative font projects, to support the font creation
-efforts of academic and linguistic communities, and to provide a free and
-open framework in which fonts may be shared and improved in partnership
-with others.
-
-The OFL allows the licensed fonts to be used, studied, modified and
-redistributed freely as long as they are not sold by themselves. The
-fonts, including any derivative works, can be bundled, embedded, 
-redistributed and/or sold with any software provided that any reserved
-names are not used by derivative works. The fonts and derivatives,
-however, cannot be released under any other type of license. The
-requirement for fonts to remain under this license does not apply
-to any document created using the fonts or their derivatives.
-
-DEFINITIONS
-"Font Software" refers to the set of files released by the Copyright
-Holder(s) under this license and clearly marked as such. This may
-include source files, build scripts and documentation.
-
-"Reserved Font Name" refers to any names specified as such after the
-copyright statement(s).
-
-"Original Version" refers to the collection of Font Software components as
-distributed by the Copyright Holder(s).
-
-"Modified Version" refers to any derivative made by adding to, deleting,
-or substituting -- in part or in whole -- any of the components of the
-Original Version, by changing formats or by porting the Font Software to a
-new environment.
-
-"Author" refers to any designer, engineer, programmer, technical
-writer or other person who contributed to the Font Software.
-
-PERMISSION & CONDITIONS
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of the Font Software, to use, study, copy, merge, embed, modify,
-redistribute, and sell modified and unmodified copies of the Font
-Software, subject to the following conditions:
-
-1) Neither the Font Software nor any of its individual components,
-in Original or Modified Versions, may be sold by itself.
-
-2) Original or Modified Versions of the Font Software may be bundled,
-redistributed and/or sold with any software, provided that each copy
-contains the above copyright notice and this license. These can be
-included either as stand-alone text files, human-readable headers or
-in the appropriate machine-readable metadata fields within text or
-binary files as long as those fields can be easily viewed by the user.
-
-3) No Modified Version of the Font Software may use the Reserved Font
-Name(s) unless explicit written permission is granted by the corresponding
-Copyright Holder. This restriction only applies to the primary font name as
-presented to the users.
-
-4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
-Software shall not be used to promote, endorse or advertise any
-Modified Version, except to acknowledge the contribution(s) of the
-Copyright Holder(s) and the Author(s) or with their explicit written
-permission.
-
-5) The Font Software, modified or unmodified, in part or in whole,
-must be distributed entirely under this license, and must not be
-distributed under any other license. The requirement for fonts to
-remain under this license does not apply to any document created
-using the Font Software.
-
-TERMINATION
-This license becomes null and void if any of the above conditions are
-not met.
-
-DISCLAIMER
-THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
-OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
-COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
-INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
-DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
-OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/docs/slides/niki/html/fonts/PT_Mono-Regular.ttf b/docs/slides/niki/html/fonts/PT_Mono-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Mono-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Bold.ttf b/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Bold.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Bold.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Regular.ttf b/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Narrow-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Web-Bold.ttf b/docs/slides/niki/html/fonts/PT_Sans-Web-Bold.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Web-Bold.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Web-BoldItalic.ttf b/docs/slides/niki/html/fonts/PT_Sans-Web-BoldItalic.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Web-BoldItalic.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Web-Italic.ttf b/docs/slides/niki/html/fonts/PT_Sans-Web-Italic.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Web-Italic.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/fonts/PT_Sans-Web-Regular.ttf b/docs/slides/niki/html/fonts/PT_Sans-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/niki/html/fonts/PT_Sans-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/niki/html/liquid.css b/docs/slides/niki/html/liquid.css
deleted file mode 100644
--- a/docs/slides/niki/html/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  // font-size: 120%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/niki/html/slides.css b/docs/slides/niki/html/slides.css
deleted file mode 100644
--- a/docs/slides/niki/html/slides.css
+++ /dev/null
@@ -1,258 +0,0 @@
-@font-face {
-	font-family: 'PT Mono';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Mono-Regular.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans';
-    font-style: normal; 
-	font-weight: bold;
-	src: local("☺"), url('fonts/PT_Sans-Web-Bold.ttf') format('truetype');
-}@font-face {
-	font-family: 'PT Sans';
-    font-style: italic;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Web-Italic.ttf') format('truetype');
-}@font-face {
-	font-family: 'PT Sans';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Web-Regular.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans Narrow';
-    font-style: normal;
-	font-weight: bold;
-	src: local("☺"), url('fonts/PT_Sans-Narrow-Web-Bold.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans Narrow';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-}
-html {
-    height: 100%;
-	background-color: #fefffe;
-}
-body {
-	width: 1024px !important;
-    height: 600px !important;
-	margin-left: -512px !important;
-	margin-top: -300px !important;
-}
-section {
-	background: transparent;
-	color: #000;
-	width: 100%  !important;
-	/* width: 800px !important; */
-	height: 600px !important;
-    padding: 50px 112px 0;	
-	font-family: 'PT Sans', sans-serif;
-	font-size: 16pt;
-}
-
-body :first-child {
-}
-address, blockquote, dl, fieldset, form, h1, h2, h3, h4, h5, h6, hr, ol, p, pre, table, ul, dl { padding: 10px 20px 10px 20px; }
-h1, h2, h3 {
-	text-align: left;
-	color: #666; 
-	font-family: 'PT Sans Narrow', sans-serif;
-	font-weight: bold;
-}
-input, select {
-border 0.5pt solid black;
-font-size: 16pt;
-line-height: 10pt;
-padding: 0 0 -2.5pt 0;
-z-index:1;
-}
-ul, ol {
-	margin: 10px 10px 10px 50px;
-}
-a { color: #205CB3; }
-section.titleslide h1 { margin-top: 200px; }
-h1.title { margin-top: 150px; font-size:200%; margin-bottom: 20px; text-align: center; text-shadow:0px 2px 1px #444; 
--webkit-transition: color 1s ease-in-out;
--moz-transition: color 1s ease-in-out;
- }
-h1.title:hover {
-color: #C43628;
-}
-h2.author { font-size: 120%; margin-top: 0px; margin-bottom: 0px; text-align:center; color: #555; font-family: 'PT Sans Narrow'; font-weight: normal;}
-h3.date { font-size: 80%; margin-top: 0px; text-align: center; color: #555; font-family: 'PT Mono'; font-weight: normal;}
-h1 { font-size: 180%; margin: 0 0 10px; text-shadow:0px 2px 1px #fff;}
-h2 { font-size: 140%; } 
-h3 { font-size: 100%; }
-blockquote { font-style: italic }
-q {
-	display: inline-block;
-	width: 700px;
-	height: 600px;
-	background-color: black;
-	color: white;
-	font-size: 60px;
-	padding: 50px;
-}
-footer {
-	position: absolute;
-	bottom: 10px;
-	right: 20px;
-	text-shadow: white 0px 1px 0px, rgba(0, 0, 0, 0.2) 0 2px 5px;
-}
-/* JHALA: pre, code { background: transparent; } */
-pre, code {background-color:#E6F0FA;}
-
-pre { padding: 10px 50px; }
-td > pre { padding: 0px; }
-td { padding: 5px; }
-::-moz-selection { background-color: khaki; }
-code { font-family: 'PT Mono'; font-size: 90%; }
-code > span.co { font-style: normal; }
-code > span.kw { font-weight: normal; }
-code > span.er { font-weight: normal; }
-
-/* Transition effect */
-/* Feel free to change the transition effect for original
-animations. See here:
-https://developer.mozilla.org/en/CSS/CSS_transitions
-How to use CSS3 Transitions: */
-section {
-	-moz-transition: left 400ms ease-in-out 0s;
-	-webkit-transition: left 400ms ease-in-out 0s;
-	-ms-transition: left 400ms ease-in-out 0s;
-	transition: left 400ms ease-in-out 0s;
-}
-
-/* Before */
-section { left: -150%; }
-/* Now */
-section[aria-selected] { left: 0; }
-/* After */
-section[aria-selected] ~ section { left: +150%; }
-
-/* Incremental elements */
-
-/* By default, visible */
-.incremental > * { opacity: 1; }
-
-/* The current item */
-.incremental > *[aria-selected] { color: red; opacity: 1; }
-
-/* The items to-be-selected */
-.incremental > *[aria-selected] ~ * { opacity: 0.2; }
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-a { color: #205CB3; }
-
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 60%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 80%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/niki/lhs/AbstractRefinements.lhs b/docs/slides/niki/lhs/AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/AbstractRefinements.lhs
+++ /dev/null
@@ -1,254 +0,0 @@
-Abstract Refinements
----------------------
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude hiding (max)
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-Polymorphic Max Function
------------------------
-\begin{code} Consinder a polymorphic max function:
-max     :: a -> a -> a
-max x y = if x >= y then x else y
-\end{code}
-
-<br>
-
-\begin{code} We can instantiate `a` with `Odd`
-max     :: Odd -> Odd -> Odd
-
-maxOdd :: Odd
-maxOdd = max 3 7
-\end{code}
-
-
-Polymorphic Max in Haskell
------------------------
-\begin{code} In Haskell the type of max is
-max     :: Ord a => a -> a -> a
-\end{code}
-
-
-<br>
-
-We could **ignore** the class constraints, and procced as before:
-
-\begin{code} Instantiate `a` with `Odd`
-max     :: Odd -> Odd -> Odd
-
-maxOdd :: Odd
-maxOdd = max 3 7
-\end{code}
-
-
-Polymorphic Add in Haskell
------------------------
-
-\begin{code} But this can lead to **unsoundness**:
-max     :: Ord a => a -> a -> a
-(+)     :: Num a => a -> a -> a
-\end{code}
-
-<br>
-
-So, **ignoring** class constraints allows us to: 
-\begin{code} instantiate `a` with `Odd`
-(+)     :: Odd -> Odd -> Odd
-
-addOdd :: Odd
-addOdd = 3 + 7
-\end{code}
-
-
-Polymorphism via Parametric Invariants 
---------------------------------------
-
-`max` returns *one of* its two inputs `x` and `y`. 
-
-- **If** *both inputs* satisfy a property  
-
-- **Then** *output* must satisfy that property
-
-This holds, **regardless of what that property was!**
- 
-- That  is, we can **abstract over refinements**
-
-- Or,  **parameterize** a type over its refinements.
-
-Parametric Invariants
---------------------- 
-
-\begin{code}
-{-@ max :: forall <p :: a -> Prop>. Ord a => a<p> -> a<p> -> a<p> @-}
-max     :: Ord a => a -> a -> a
-max x y = if x <= y then y else x 
-\end{code}
-
-
-
-Where
-
-- `a<p>` is just an abbreviation for `{v:a | (p v)}`
-
-
-This type states explicitly:
-
-- **For any property** `p`, that is a property of `a`, 
-
-- `max` takes two **inputs** of which satisfy `p`,
-
-- `max` returns an **output** that satisfies `p`. 
-
-
-
-Using Abstract Refinements
---------------------------
-
-- **If** we call `max` with two arguments with the same concrete refinement,
-
-- **Then** the `p` will be instantiated with that concrete refinement,
-
-- **The output** of the call will also enjoy the concrete refinement.
-
-
-
-\begin{code}
-{-@ type Odd = {v:Int | (v mod 2) = 1} @-}
-
-{-@ maxOdd :: Odd @-}
-maxOdd     :: Int
-maxOdd     = max 3 5
-\end{code}
-
-
-Abstract Refinements in Type Constructors
------------------------------------------
-
-Types cannot track information of monomorphic arguments:
-
-\begin{code}
-data F = F {w::Int}
-\end{code}
-
-<br>
-
-The type `F` cannot give us information about the field `x`.
-
-\begin{code}
-foo = let f = F 0 in -- :: f :: F
-      case f of 
-      F x -> liquidAssert (x >= 0)
-\end{code}
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=AbstractRefinements.hs" target= "_blank">Demo:</a> 
-Lets solve this error using Abstract Refinements
-
-Abstract Refinements in Type Constructors
------------------------------------------
-
-- Abstract over the refinement you care
-\begin{code}
-data G = G {y::Int{- <p> -}}
-\end{code}
-
-- Move it to the left-hand side
-\begin{code}
-{-@ data G <p :: Int -> Prop> = G (y::Int<p>) @-}
-\end{code}
-
-- The type `G <p>` now describes the field `x`.
-
-\begin{code}
-bar = let f = G 0 in -- :: f :: G <{v = 0}>
-      case f of 
-      G x -> liquidAssert (x >= 0)
-\end{code}
-
-Abstract Refinements in Lists
------------------------------------------
-
-\begin{code} Remember increasing Lists?
-data IL a = N | C (x :: a) (xs :: L {v:a | x <= v})
-\end{code}
-
-- Abstract over the refinement you care
-\begin{code}
-data L a = N | C {x :: a, xs :: L a {- v:a | p v x -}}
-\end{code}
-
-- Move it to the left-hand side
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop> = 
-      N 
-    | C (x :: a) (xs :: L <p> a<p x>)  @-}
-\end{code}
-
-<br>
-
-We can get back increasing Lists:
-\begin{code}
-{-@ type IncrL a = L <{\x v -> x <= v}> a @-}
-\end{code}
-
-
-Multiple Instantiations
------------------------
-
-\begin{code} Now increasing lists 
-type IncrL a = L <{\x v -> x <= v}> a
-\end{code}
-
-<br>
-
-\begin{code} Co-exist with decreasing ones
-type DecrL a = L <{\x v -> x >= v}> a
-\end{code}
-
-Ghc Sort
---------
-
-We can now verify algorithms that use **both** increasing and decreasing lists
-
-\begin{code}
-{-@ type OList a = [a]<{\hd v -> hd <= v}> @-}
-
-{-@ sort :: (Ord a) => [a] -> OList a  @-}
-sort :: (Ord a) => [a] -> [a]
-sort = mergeAll . sequences
-  where
-    sequences (a:b:xs)
-      | a `compare` b == GT = descending b [a]  xs
-      | otherwise           = ascending  b (a:) xs
-    sequences [x] = [[x]]
-    sequences []  = [[]]
-
-    descending a as (b:bs)
-      | a `compare` b == GT = descending b (a:as) bs
-    descending a as bs      = (a:as): sequences bs
-
-    ascending a as (b:bs)
-      | a `compare` b /= GT = ascending b (\ys -> as (a:ys)) bs
-    ascending a as bs       = as [a]: sequences bs
-\end{code}
-
-Ghc Sort : Helper Functions
----------------------------
-
-\begin{code}
-mergeAll [x] = x
-mergeAll xs  = mergeAll (mergePairs xs)
-
-mergePairs (a:b:xs) = merge1 a b: mergePairs xs
-mergePairs [x]      = [x]
-mergePairs []       = []
-
-merge1 (a:as') (b:bs')
-  | a `compare` b == GT = b:merge1 (a:as')  bs'
-  | otherwise           = a:merge1 as' (b:bs')
-merge1 [] bs            = bs
-merge1 as []            = as
-\end{code}
diff --git a/docs/slides/niki/lhs/Array.lhs b/docs/slides/niki/lhs/Array.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Array.lhs
+++ /dev/null
@@ -1,226 +0,0 @@
-%Indexed-Dependent Refinements
-
-Indexed-Dependent Refinements
------------------------------
-
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume)
-
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-Indexed-Dependent Refinements
------------------------------
-
-We define a Vector of `a`s 
-implemented as a function from `Int` to `a`s <br>
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-Abstract Over the Domain and Range
-----------------------------------
-
-We parameterize the definition with two abstract refinements:
-<br>
-<br>
-
-\begin{code}
-{-@ data Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
-      = V {a :: i:Int<dom> -> a <rng i>}
-  @-}
-\end{code}
-
-
-- `dom`: describes the *domain* 
-
-- `rng`: describes each value with respect to its index
-
-Describing Vectors
-------------------
-
-\begin{code}By instantiating these two predicates, we describe Vector's *domain* and *range*
-{-@ data Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
-      = V {a :: i:Int<dom> -> a <rng i>}
-  @-}
-\end{code}
-<br>
-
-A vector of `Int` *defined on* values less than `42`
-*containing values* equal to their index:
-<br>
-<br>
-
-\begin{code}
-{-@ type IdVec = 
-      Vec <{\v -> (v < 42)}, {\j v -> (v = j)}> Int
-  @-}
-\end{code}
-
-Describing Vectors
-------------------
-\begin{code}By instantiating these two predicates, we describe Vector's *domain* and *range*
-{-@ data Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
-      = V {a :: i:Int<dom> -> a <rng i>}
-  @-}
-\end{code}
-<br>
-
-A vector *defined on* the range `[0..n)` with its *last element* equal to `0`:
-<br>
-<br>
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> (0 <= v && v < N)}, {\j v -> (j = N - 1 => v = 0)}> Int
-  @-}
-\end{code}
-
-Describing Vectors
-------------------
-\begin{code}By instantiating these two predicates, we describe Vector's *domain* and *range*
-{-@ data Vec a <dom :: Int -> Prop, rng :: Int -> a -> Prop>
-      = V {a :: i:Int<dom> -> a <rng i>}
-  @-}
-\end{code}
-<br>
-
-
-A vector *defined on* integers whose *value at index `j`* is either 
-`0` or the `j`th fibonacci:
-<br>
-<br>
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> 0=0}, {\j v -> ((v != 0) => (v = (fib j)))}> Int 
-  @-}
-\end{code}
-
-
-Operations on Vectors
----------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target= "_blank">Demo:</a> 
-
-We give appropriate types to vector operations (empty, set, get...)
-
-- This means *abstracting* over the domain and range
-
-
-Empty
------
-
-`empty` returns a Vector whose domain is always false
-<br>
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. Vec < {v:Int | 0=1}, p> a @-}
-
-empty     :: Vec  a
-empty     = V $ \_ -> (error "Empty array!")
-\end{code}
-
-Typing Get
-----------
-
-If `i` satisfies the domain then
-if we `get` the `i`th element of an array, 
-the result should satisfy the range at `i`
-<br>
-<br>
-
-\begin{code}
-{-@ get :: forall a <r :: Int -> a -> Prop, d :: Int -> Prop>.
-           i: Int<d>
-        -> a: Vec<d, r> a
-        -> a<r i> @-}
-
-get :: Int -> Vec a -> a
-get i (V f) = f i
-\end{code}
-
-Typing Set
-----------
-
-If `i` satisfies the domain then
-if we `set` the `i`th element of a Vector to a value
-that satisfies range at `i`, 
-then Vector's domain will be extended with `i`
-<br>
-<br>
-
-\begin{code}
-{-@ set :: forall a <r :: Int -> a -> Prop, d :: Int -> Prop>.
-           i: Int<d>
-        -> x: a<r i>
-        -> a: Vec < {v:Int<d> | v != i}, r> a
-        -> Vec <d, r> a @-}
-
-set :: Int -> a -> Vec a -> Vec a
-set i v (V f) = V $ \k -> if k == i then v else f k
-\end{code}
-
-Using Vectors
--------------
-
-\begin{code}Remember the fibonacci memoization Vector:
-type FibV = 
-     Vec <{\v -> 0=0}, {\j v -> ((v != 0) => (v = (fib j)))}> Int
-\end{code}
-<br>
-
-Where `fib` is an *uninterprented function* 
-\begin{code}
-{-@ measure fib :: Int -> Int @-}
-\end{code}
-<br>
-
-We used `fib` to define the `axiom_fib`
-
-\begin{code}
-{-@ predicate Fib I = 
-  (fib i) = (if (i <= 1) then 1 else ((fib (i-1)) + (fib (i-2))))
-  @-}
-
-{-@ assume axiom_fib :: i:Int -> {v: Bool | ((Prop v) <=> (Fib i))} @-}
-
-axiom_fib :: Int -> Bool
-axiom_fib i = undefined
-\end{code}
-
-
-Fast Fibonacci
---------------
-Now we can efficiently compute the `i`th fibonacci number
-
-\begin{code}
-{-@ fastFib :: x:Int -> {v:Int | v = fib(x)} @-}
-fastFib     :: Int -> Int
-fastFib n   = snd $ fibMemo (V (\_ -> 0)) n
-\end{code}
-
-Fibonacci Memo
---------------
-
-\begin{code}
-{-@ fibMemo :: FibV -> i:Int -> (FibV, {v: Int | v = (fib i)}) @-}
-
-fibMemo :: Vec Int -> Int -> (Vec Int, Int)
-fibMemo t i 
-  | i <= 1    
-  = (t, liquidAssume (axiom_fib i) (1 :: Int))
-  
-  | otherwise 
-  = case get i t of   
-      0 -> let (t1, n1) = fibMemo t  (i-1)
-               (t2, n2) = fibMemo t1 (i-2)
-               n        = liquidAssume (axiom_fib i) (n1 + n2)
-            in (set i n t2,  n)
-      n -> (t, n)
-\end{code}
diff --git a/docs/slides/niki/lhs/Composition.lhs b/docs/slides/niki/lhs/Composition.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Composition.lhs
+++ /dev/null
@@ -1,103 +0,0 @@
-% Function Composition
-
-Function Composition
---------------------
-
-\begin{code}
-module Composition where
-\end{code}
-
-A Plus Function
----------------
-
-Consider a simple `plus` function 
-
-\begin{code}
-{-@ plus :: x:Int -> y:Int -> {v:Int | v = x + y} @-}
-plus     :: Int -> Int -> Int
-plus x y = x + y
-\end{code}
-
-A Simple Addition 
------------------
-
-Consider a simple use of `plus` a function that adds `3` to its input:
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     :: Int -> Int
-plus3' x   = x + 3
-\end{code}
-
-- The refinement type captures its behaviour...
-
-- ... and LiquidHaskell easily verifies this type.
-
-A Composed Variant
-------------------
-
-Instead, suppose we defined the previous function by composition 
-
-We first add `2` to the argument and then add `1` to the intermediate result...
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     :: Int -> Int
-plus3''     = (plus 1) . (plus 2)
-\end{code}
-
-but verification **fails** as we need a way to **compose** the refinements!
-
-**Problem** What is a suitable description of the compose operator
-
-\begin{code} _ 
-(.) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{code}
-
-that lets us **relate** `a` and `c` via `b` ?
-
-
-
-Composing Refinements, Abstractly
----------------------------------
-
-- We can analyze the *composition* operator
-
-- With a very *descriptive* abstract refinement type!
-
-\begin{code}
-
-{-@ cc :: forall < p :: b -> c -> Prop
-                , q :: a -> b -> Prop>.
-         f:(x:b -> c<p x>) 
-      -> g:(x:a -> b<q x>) 
-      -> y:a 
-      -> exists[z:b<q y>].c<p z>
- @-}
-
-cc :: (b -> c) -> (a -> b) -> a -> c
-cc f g x = f (g x)
-\end{code}
-
-Using Composition
------------------
-
-We can verify the desired `plus3` function:
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     :: Int -> Int
-plus3     = (+ 1) `cc` (+ 2)
-\end{code}
-
-LiquidHaskell verifies the above, by **instantiating**
-
-- `p` with `v = x + 1`
-- `q` with `v = x + 2`
-
-which lets it infer that the output of `plus3` has type:
-
-- `exists [z:{v=y+2}]. {v = z + 1}`
-
-which is a subtype of `{v:Int | v = 3}`
-
diff --git a/docs/slides/niki/lhs/Inductive.lhs b/docs/slides/niki/lhs/Inductive.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Inductive.lhs
+++ /dev/null
@@ -1,178 +0,0 @@
-% Inductive Refinements
-
-Inductive Refinements
----------------------
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
-import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-
-`loop` Revisited
-----------------
-
-Recall the **higher-order** `loop` function <br>
-
-\begin{code}
-loop :: Int -> Int -> a -> (Int -> a -> a) -> a
-loop lo hi base f            = go lo base
-  where go i acc | i < hi    = go (i+1) (f i acc)
-                 | otherwise = acc
-\end{code}
-
-We used `loop` to write <br>
-
-\begin{code}
-
-{-@ add :: n:Nat -> m:{v:Int| v >= 0} -> {v:Int| v = m + n} @-}
-add :: Int -> Int -> Int
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-**Problem:** Verification requires an **index dependent loop invariant** `p` 
-
-- Which relates index `i` with accumulator `acc`: formally `(p acc i)`
-
-Loop Invariants and Induction
------------------------------
-\begin{code} Recall the **higher-order** `loop` function
-loop :: Int -> Int -> a -> (Int -> a -> a) -> a
-loop lo hi base f            = go lo base
-  where go i acc | i < hi    = go (i+1) (f i acc)
-                 | otherwise = acc
-\end{code}
-
-To verify output satisfies relation at `hi` we prove that **if**
-
-- **base case** initial accumulator `base` satisfies invariant at `lo`
-    - `(p base lo)`
-
-- **induction step** `f` **preserves** the invariant at `i`
-    - **if** `(p acc i)` <b>then</b> `(p (f i acc) (i+1))`
-
-- **then** "by induction" result satisfies invariant at `hi`
-    - `(p (loop lo hi base f) hi)`
-
-
-Encoding Induction With Abstract Refinements
---------------------------------------------
-
-We capture induction with an **abstract refinement type** for `loop` <br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-             lo:Int 
-          -> hi:{v:Int|lo <= v}
-          -> base:a<p lo> 
-          -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-          -> a<p hi>
-  @-}
-\end{code}
-
-<br>
-
-\begin{code} `p` is the index dependent invariant!
-p     :: Int -> a -> Prop>                  -- ind  hyp 
-base  :: a<p lo>                            -- base case 
-f     :: (i:Int -> a<p i> -> a <p (i+1)>)   -- ind. step
-out   :: a<p hi>                            -- output holds at hi         
-\end{code}
-
-
-Encoding Induction With Abstract Refinements
---------------------------------------------
-
-\begin{code} Lets revisit 
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br> The invariant is: `p` instantiated with `\i acc -> acc = i + n`
-
-**base case:**  `(p 0 n)` holds as `n = 0 + n`
-
-**ind. step**  `\_ z -> z + 1` preserves invariant
-
-- `acc =  i + n` *implies* `acc + 1 = (i + 1) + n`
-
-**output** hence, `loop 0 m n (\_ z -> z + 1) = m + n`
-
-Which lets us verify that
-
-\begin{code}.
-add :: n:Nat -> m:Nat -> {v:Int| v = m + n}
-\end{code}
-
-Structural Induction With Abstract Refinements
-----------------------------------------------
-
-Same idea applies for induction over *structures*
-
-We define a `foldr` function that resembles loop.
-\begin{code}
-\end{code}
-\begin{code}
-{-@ foldr :: forall a b <p :: L a -> b -> Prop>. 
-                (xs:L a -> x:a -> b <p xs> -> b <p (Measures.C x xs)>) 
-              -> b <p Measures.N> 
-              -> ys: L a
-              -> b <p ys>
-  @-}
-foldr :: (L a -> a -> b -> b) -> b -> L a -> b
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-- **base case** `b` is related to nil `N`
-- **ind. step** `f` extends relation over cons `C`
-- **output** relation holds over entire list `ys`
-
-
-
-Structural Induction With Abstract Refinements
-----------------------------------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ size :: xs:L a -> {v: Int | v = (llen xs)} @-}
-size :: L a -> Int
-size = foldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-Here, the relation 
-
-- `(p xs acc)` 
-
-is **automatically instantiated** with
-
-- `acc = (llen xs)`
-
-Structural Induction With Abstract Refinements
-----------------------------------------------
-
-Similarly we can now verify <br>
-
-\begin{code}_
-{-@ ++ :: xs:L a -> ys:L a -> {v:L a | (llen v) = (llen xs) + (llen ys)} @-} 
-xs ++ ys = foldr (\_ z zs -> C z zs) ys xs 
-\end{code}
-
-<br>
-
-Here, the relation 
-
-- `(p xs acc)` 
-
-is **automatically instantiated** with
-
-- `(llen acc) = (llen xs) + (llen ys)`
-
-
diff --git a/docs/slides/niki/lhs/Laziness.lhs b/docs/slides/niki/lhs/Laziness.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Laziness.lhs
+++ /dev/null
@@ -1,99 +0,0 @@
-% Laziness
-
-Laziness
---------
-
-
-\begin{code}
-module Laziness where
-import Language.Haskell.Liquid.Prelude
-\end{code}
-
-
-Infinite Computations can lead to Unsoundness
-----------------------------------------------
-
-Infinite Computations can be refined with **false**
-\begin{code}
-{-@ foo :: n:Nat -> {v:Nat | v < n} @-}
-foo     :: Int -> Int
-foo n   | n > 0     = n - 1
-        | otherwise = foo n
-\end{code}
-
-<br>
-
-Under **false** anything can be proven
-\begin{code}
-prop = liquidAssert ((\x -> 0==1) (foo 0))
-\end{code}
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target=
-"_blank">Demo:</a> Check a real property here! 
-
-Our solution (Current Work)
----------------------------
-
-- Use **termination analysis** to track infinite computations
-
-- Use **true** refinements for infinite computations
-
-
-Size-based Termination Analysis
--------------------------------
-
-- Use refinement types to force the recursive argument to **decrease**
-\begin{code}
-{-@ unsafeFoo :: n:Nat -> {v:Nat | v < n} @-}
-unsafeFoo     :: Int -> Int
-  -- unsafeFoo :: n'{v:Nat | v < n} -> {v:Nat | v < n'}
-unsafeFoo n   | n > 0     = n - 1
-              | otherwise = unsafeFoo n
-\end{code}
-
-<br>
-
-- `prop` is safe, but the program is decided unsafe
-\begin{code}
-prop1 = liquidAssert ((\x -> 0==1) inf)
-  where inf = unsafeFoo 0
-\end{code}
-
-Refinements of infinite Computations
-------------------------------------
-If you need a non-terminating function, use `Lazy` to declare
-
- - We know that `foo` may not terminate
-
- - Its return type is refined with **true**
-
-\begin{code}
-{-@ Lazy safeFoo @-}
-{-@ safeFoo :: n:Nat -> {v:Int | true} @-}
-safeFoo    :: Int   -> Int
-safeFoo n   | n > 0     = n - 1
-            | otherwise = safeFoo n
-\end{code}
-
-<br>
-
-Now, `prop` is unsafe
-
-\begin{code}
-prop2 = liquidAssert ((\x -> 0==1) inf)
-  where inf = safeFoo 0
-\end{code}
-
-Restore Soundness
------------------
-
-- Use **termination analysis** to track infinite objects
-
-- Use **true** refinements for infinite objects
-
-`Foo` was declared `Lazy`
--------------------------
-\begin{code}
-{-@ Lazy foo @-}
-\end{code}
-
diff --git a/docs/slides/niki/lhs/List.lhs b/docs/slides/niki/lhs/List.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/List.lhs
+++ /dev/null
@@ -1,484 +0,0 @@
-% Recursive Invariants
-
-Recursive Invariants
---------------------
-
-\begin{code}
-module List where
-
-{-@ LIQUID "--no-termination" @-}
-\end{code}
-
-
-Recursive Invariants
---------------------
-
-Recall the definition of lists <br>
-
-\begin{code}
-infixr `C`
-data L a = N | C a (L a)
-\end{code}
-
-Lets parameterize the definition with an abstract refinement `p` <br>
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C (h :: a) (tl :: (L <p> a<p h>))
-  @-}
-\end{code}
-
-- `p` is a binary relation between two `a` values
-
-- definition relates *head* with all the *tail* elements 
-
-**Recursive** : So `p` holds between **every pair** of list elements!
-
-Recursive Invariants: Example
------------------------------
-
-Consider a list with three elements <br>
-
-\begin{code} _ 
-h1 `C` h2 `C` h3 `C` N :: L <p> a 
-\end{code}
-
-Recursive Invariants: Example
------------------------------
-
-If we unfold the list **once** we get <br>
-
-\begin{code} _
-h1              :: a
-h2 `C` h3 `C` N :: L <p> a<p h1> 
-\end{code}
-
-Recursive Invariants: Example
------------------------------
-
-If we unfold the list a **second** time we get <br>
-
-\begin{code} _ 
-h1       :: a
-h2       :: a<p h1>  
-h3 `C` N :: L <p> a<p h1 && p h2> 
-\end{code}
-
-Recursive Invariants: Example
------------------------------
-
-Finally, with a **third** unfold we get <br>
-
-\begin{code} _ 
-h1 :: a
-h2 :: a<p h1>  
-h3 :: a<p h1 && p h2>  
-N  :: L <p> a<p h1 && p h2 && p h3> 
-\end{code}
-
-<br>
-
-Note how `p` holds between **every pair** of elements in the list. 
-
-Using Recursive Invariants
---------------------------
-
-That was a rather *abstract*.
-
-How would we **use** the fact that `p` holds between **every pair** ?
-
-
-Using Recursive Invariants
---------------------------
-
-That was a rather *abstract*.
-
-How would we **use** the fact that `p` holds between **every pair** ?
-
-<br>
-
-Lets *instantiate* `p` with a concrete refinement 
-
-<br>
-
-\begin{code}
-{-@ type SL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-- The refinement says `hd` is less than the arbitrary tail element `v`.
-
-- Thus `SL` denotes lists sorted in **increasing order**!
-
-Using Recursive Invariants
---------------------------
-
-LiquidHaskell verifies that the following list is indeed increasing...
-
-<br>
-
-\begin{code}
-{-@ slist :: SL Int @-}
-slist :: L Int
-slist = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> ... and complains that the following is not: <br>
-
-
-\begin{code}
-{-@ slist' :: SL Int @-}
-slist' :: L Int
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-
-
-InsertSort
-----------
-
-More interestingly, we can verify that various sorting algorithms return sorted lists.
-
-<br>
-
-\begin{code}
-{-@ insertSort' :: (Ord a) => [a] -> SL a @-}
-insertSort'     :: (Ord a) => [a] -> L a 
-insertSort'     = foldr insert' N
-\end{code}
-
-<br> The hard work is done by `insert` defined as <br>
-
-\begin{code}
-insert' y N                      = y `C` N                           
-insert' y (x `C` xs) | y <= x    = y `C` x `C` xs
-                     | otherwise = x `C` insert' y xs
-\end{code}
-
-<br>
-
-**Hover** the mouse over `insert'` to see what type was inferred for it.
-
-Analyzing Plain Lists
----------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-
-
-We can easily modify GHC's List definition to abstract over a refinement:
-
-<br>
-
-\begin{code} _
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) (h :: a) (tl :: ([a<p h>]<p>))
-\end{code}
-
-<br>
-
-So, we can define and use **ordered** versions of GHC Lists
-
-<br>
-
-\begin{code}
-{-@ type OList a = [a]<{\hd v -> (hd <= v)}> @-}
-\end{code}
-
-Insertion Sort
---------------
-
-Now we can verify the usual sorting algorithms: 
-
-<br>
-
-\begin{code}
-{-@ insertSort :: (Ord a) => xs:[a] -> OList a @-}
-insertSort xs  = foldr insert [] xs
-\end{code}
-
-<br> 
-
-where the helper does the work
-
-<br>
-
-\begin{code}
-insert y []                   = [y]
-insert y (x : xs) | y <= x    = y : x : xs 
-                  | otherwise = x : insert y xs
-\end{code}
-
-Merge Sort
-----------
-
-Now we can verify the usual sorting algorithms: 
-
-
-\begin{code}
-{-@ mergeSort :: (Ord a) => [a] -> OList a @-}
-mergeSort     :: Ord a => [a] -> [a]
-mergeSort []  = []
-mergeSort [x] = [x]
-mergeSort xs  = merge (mergeSort xs1) (mergeSort xs2) 
-  where 
-   (xs1, xs2) = split xs
-
-split :: [a]    -> ([a], [a])
-split (x:(y:zs)) = (x:xs, y:ys) where (xs, ys) = split zs
-split xs         = (xs, [])
-
-merge :: Ord a => [a] -> [a] -> [a]
-merge xs [] = xs
-merge [] ys = ys
-merge (x:xs) (y:ys) | x <= y    = x:(merge xs (y:ys))
-                    | otherwise = y:(merge (x:xs) ys)
-\end{code}
-
-<br> A significant amount of inference happens above. See the types.
-
-QuickSort
----------
-
-Now we can verify the usual sorting algorithms: <br>
-
-\begin{code}
-{-@ quickSort    :: (Ord a) => [a] -> OList a @-}
-quickSort []     = []
-quickSort (x:xs) = append x lts gts 
-  where 
-    lts          = quickSort [y | y <- xs, y < x]
-    gts          = quickSort [z | z <- xs, z >= x]
-\end{code}
-
-<br> We require a special `append` parameterized by the **pivot** <br>
-
-\begin{code}
-append k []     ys  = k : ys
-append k (x:xs) ys  = x : append k xs ys
-\end{code}
-
-Look at the inferred type to understand why!
-
-
-Other Instantiations: Decreasing Lists
---------------------------------------
-
-We may *instantiate* `p` with many different concrete relations
-
-<br> **Decreasing Lists** <br>
-
-\begin{code}
-{-@ type DecrList a = [a]<{\hd v -> (hd >= v)}> @-}
-\end{code}
-
-<br> After which we can check that <br>
-
-\begin{code}
-{-@ decList :: DecrList Int @-}
-decList :: [Int]
-decList = [3, 2, 1, 0]
-\end{code}
-
-Multiple Instantiations: Distinct Lists 
----------------------------------------
-
-We may *instantiate* `p` with many different concrete relations
-
-<br> **Distinct Lists**: Lists not containing any duplicate values <br>
-
-\begin{code}
-{-@ type DiffList a = [a]<{\hd v -> (hd /= v)}> @-}
-\end{code}
-
-<br> After which we can check that <br>
-
-\begin{code}
-{-@ diffList :: DiffList Int @-}
-diffList :: [Int]
-diffList = [2, 3, 1, 0]
-\end{code}
-
-Binary Trees 
-------------
-
-
-- Consider a `Map` from keys of type `k` to values of type `a` 
-
-- Implemented as a binary tree:
-
-\begin{code}
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-
-Binary Trees 
-------------
-
-We abstract from the structure two refinements `l` and `r` 
-
-- `l` relates root `key` with **left**-subtree keys
-
-- `r` relates root `key` with **right**-subtree keys
-
-\begin{code}
-{-@
-  data Map k a <l :: k -> k -> Prop, r :: k -> k -> Prop>
-      = Tip
-      | Bin (sz    :: Size)
-            (key   :: k)
-            (value :: a)
-            (left  :: Map <l, r> (k <l key>) a)
-            (right :: Map <l, r> (k <r key>) a)
-  @-}
-\end{code}
-
-
-Ordered Trees
--------------
-
-Thus, if we instantiate the refinements thus: 
-
-<br>
-
-\begin{code}
-{-@ type BST k a     = Map <{\r v -> v < r }, {\r v -> v > r }> k a @-}
-{-@ type MinHeap k a = Map <{\r v -> r <= v}, {\r v -> r <= v}> k a @-}
-{-@ type MaxHeap k a = Map <{\r v -> r >= v}, {\r v -> r >= v}> k a @-}
-\end{code}
-
-- `BST k v` denotes **binary-search** ordered trees
-
-- `MinHeap k v` denotes **min-heap** ordered trees
-
-- `MaxHeap k v` denotes **max-heap** ordered trees.
-
-Binary Search Ordering
-----------------------
-
-We can use the `BST` type to automatically verify that tricky functions
-ensure and preserve binary-search ordering.
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target= "_blank">Demo:</a> 
-
-\begin{code}So, we can have
-empty :: BST k a
-
-insert :: Ord k => k:k -> a:a -> t:BST k a -> BST k a
-
-delete :: (Ord k) => k:k -> t:BST k a -> BST k a
-\end{code}
-
-Binary Search Ordering: Empty
------------------------------
-
-\begin{code}
-{-@ empty :: BST k a @-}
-empty     :: Map k a
-empty     = Tip
-\end{code}
-
-Binary Search Ordering: Insert
-------------------------------
-
-\begin{code}
-{-@ insertBST :: Ord k => k:k -> a:a -> t:BST k a -> BST k a @-}
-insertBST     :: Ord k => k -> a -> Map k a -> Map k a
-insertBST kx x t
-  = case t of
-     Tip -> singleton kx x
-     Bin sz ky y l r
-         -> case compare kx ky of
-              LT -> balance ky y (insertBST kx x l) r
-              GT -> balance ky y l (insertBST kx x r)
-              EQ -> Bin sz kx x l r
-\end{code}
-
-Binary Search Ordering: Delete 
-------------------------------
-
-\begin{code}
-{-@ delete :: (Ord k) => k:k -> t:BST k a -> BST k a @-}
-delete :: Ord k => k -> Map k a -> Map k a
-delete k t
-  = case t of
-      Tip -> Tip
-      Bin _ kx x l r
-          -> case compare k kx of
-               LT -> balance kx x (delete k l) r
-               GT -> balance kx x l (delete k r)
-               EQ -> glue kx l r
-\end{code}
-
-
-Helper Functions: Constructors
-------------------------------
-
-Below are the helper functions used by `insert` and `delete`:
-
-\begin{code}
-singleton :: k -> a -> Map k a
-singleton k x
-  = Bin 1 k x Tip Tip
-
-bin :: k -> a -> Map k a -> Map k a -> Map k a
-bin k x l r
-  = Bin (size l + size r + 1) k x l r
-
-size :: Map k a -> Int
-size t
-  = case t of
-      Tip            -> 0
-      Bin sz _ _ _ _ -> sz
-\end{code}
-
-Helper Functions: Extractors 
-----------------------------
-
-\begin{code}
-deleteFindMax t
-  = case t of
-      Bin _ k x l Tip -> (k, x, l)
-      Bin _ k x l r -> let (km3, vm, rm) = deleteFindMax r in
-                       (km3, vm, (balance k x l rm))
-      Tip           -> (error ms, error ms, Tip)
-  where 
-    ms = "Map.deleteFindMax : empty Map"
-
-deleteFindMin t
-  = case t of
-      Bin _ k x Tip r -> (k, x, r)
-      Bin _ k x l r -> let (km4, vm, lm) = deleteFindMin l in
-                       (km4, vm, (balance k x lm r))
-      Tip             -> (error ms, error ms, Tip)
-  where 
-    ms = "Map.deleteFindMin : empty Map"
-\end{code}
-
-Helper Functions: Connectors 
-----------------------------
-
-Below are the helper functions used by `insert` and `delete`:
-
-\begin{code}
-glue :: k -> Map k a -> Map k a -> Map k a
-glue k Tip r = r
-glue k l Tip = l
-glue k l r
-  | size l > size r = let (km1, vm, lm) = deleteFindMax l 
-                      in balance km1 vm lm r
-
-  | otherwise       = let (km2, vm, rm) = deleteFindMin r 
-                      in balance km2 vm l rm
-
-{-@ balance :: key:k 
-            -> a 
-            -> (BST {v:k | v < key} a) 
-            -> (BST {v:k| key < v} a) -> (BST k a) @-}
-balance :: k -> a -> Map k a -> Map k a -> Map k a
-balance k x l r = undefined
-\end{code}
-
-
-
diff --git a/docs/slides/niki/lhs/Loop.lhs b/docs/slides/niki/lhs/Loop.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Loop.lhs
+++ /dev/null
@@ -1,121 +0,0 @@
-% Higher Order Specifications
-
-
-Higher Order Specifications
----------------------------
-
-\begin{code}
-module Loop where
-
-{-@ LIQUID "--no-termination"@-}
-\end{code}
-
-
-Higher Order Specifications
----------------------------
-
-Consider a `loop` function: <br>
-
-\begin{code}
-loop :: Int -> Int -> a -> (Int -> a -> a) -> a
-loop lo hi base f        = go lo base
-  where 
-    go i acc | i < hi    = go (i+1) (f i acc)
-             | otherwise = acc
-\end{code}
-
-<br>
-
-LiquidHaskell **infers**
-
-- if `lo <= hi` then `f` called with `lo <= i < hi`
-
-
-Higher Order Specifications
----------------------------
-
-Lets use `(!!)` to write a function that sums an `Int` list
-
-\begin{code}
-{-@ listSum :: [Int] -> Int @-}
-listSum     :: [Int] -> Int
-listSum xs  = loop 0 n 0 body 
-  where 
-    body    = \i acc -> acc + (xs !! i)
-    n       = length xs
-\end{code}
-
-By **function subtyping** LiquidHaskell **infers**
-
-- `body` called with `0 <= i < llen xs` 
-- hence, indexing safe.
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Loop.hs" target= "_blank">Demo:</a> 
-Let's change the `0` to `-1` and see what happens!
-
-Higher Order Specifications
----------------------------
-
-We can give this function a better type:
-
-\begin{code}
-{-@ listNatSum :: [Nat] -> Nat @-}
-listNatSum     :: [Int] -> Int
-listNatSum xs  = loop 0 n 0 body 
-  where 
-    body       = \i acc -> acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-To verify this type, note: `(+) :: Nat -> Nat -> Nat` 
-
-LiquidHaskell **instantiates** `a` in `loop` with `Nat` 
-
-- `loop :: Int -> Int -> Nat -> (Int -> Nat -> Nat) -> Nat`
-
-Yielding the output.
-
-Higher Order Specifications
----------------------------
-
-By the same analysis, LiquidHaskell verifies that <br>
-
-\begin{code}
-{-@ listEvenSum :: [Even] -> Even @-}
-listEvenSum     :: [Int] -> Int
-listEvenSum xs  = loop 0 n 0 body 
-  where body   = \i acc -> acc + (xs !! i)
-        n      = length xs
-\end{code}
-
-Here, the system deduces that `(+)` has type
-
-- `x:Int-> y:Int -> {v:Int| v=x+y} <: Even -> Even -> Even`
-
-Hence, verification proceeds by *instantiating* `a` with `Even`
-
-- `loop :: Int -> Int -> Even -> (Int -> Even -> Even) -> Even`
-
-
-
-Another Example
----------------
-
-Consider a simpler example:<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Int| v = m + n} @-}
-add     :: Int -> Int -> Int
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-Cannot use parametric polymorphism as before! 
-
-- Cannot instantiate `a` with `{v:Int|v = n + m}` ... 
-- ... as this only holds after **last iteration** of loop!
-
-Require Higher Order Invariants
-
-- On values computed in **intermediate** iterations...
-- ... i.e. invariants that **depend on the iteration index**.
-
diff --git a/docs/slides/niki/lhs/Measures.lhs b/docs/slides/niki/lhs/Measures.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/Measures.lhs
+++ /dev/null
@@ -1,176 +0,0 @@
-% Measures
-
-Measures
------------------------
-
-\begin{code}
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-\end{code}
-
-
-Measuring A List's length in logic
-----------------------------------
-
-On `List` data type
-\begin{code}
-infixr `C`
-data L a = N | C a (L a)
-\end{code}
-
-We define a **measure** for the length of a `List` <br>
-
-\begin{code}
-{-@ measure llen :: (L a) -> Int
-    llen(N)      = 0
-    llen(C x xs) = 1 + (llen xs)
-  @-}
-\end{code}
-
-<br>
-
-\begin{code} LiquidHaskell then **automatically strengthens** the types of data constructors
-data L a where 
-  N :: {v : L a | (llen v) = 0}
-  C :: x:a -> xs:(L a) -> {v:(L a) |(llen v) = 1 + (llen xs)}
-\end{code}
-
-Measuring A List's length in logic
-----------------------------------
-
-Now we can verify
-
-<br>
-
-\begin{code}
-{-@ length :: xs:(L a) -> {v:Int | v = (llen xs)} @-}
-length     :: L a -> Int
-length N        = 0
-length (C _ xs) = 1 + (length xs)
-\end{code}
-
-Measuring A List's length in logic
-----------------------------------
-
-And we can type `(!!)` as
-
-
-<br>
-
-\begin{code}
-{-@ (!!)     :: ls:(L a) -> i:{v:Nat | v < (llen ls)} -> a @-}
-(!!)         :: L a -> Int -> a
-(C x _) !! 0 = x
-(C _ xs)!! n = xs!!(n-1)
-_       !! _ = liquidError "This should not happen!"
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-Lets see what happens if we **change** the precondition
-
-
-Another measure for List
---------------------------
-
-We define a new **measure** to check nullity of a `List` <br>
-
-\begin{code}
-{-@ measure isNull :: (L a) -> Prop
-    isNull(N)      = true
-    isNull(C x xs) = false
-  @-}
-\end{code}
-
-<br>
-
-\begin{code} LiquidHaskell then **automatically strengthens** the types of data constructors
-data L a where 
-  N :: {v : L a | isNull v}
-  C :: x:a -> xs:(L a) -> {v:(L a) | not (isNull v)}
-\end{code}
-
-
-
-Multiple measures for List
---------------------------
-
-The types of data constructors will be the **conjuction** of all the inferred types:
-
-
-\begin{code} The types from `llen` definition
-data L a where 
-  N :: {v : L a | (llen v) = 0}
-  C :: a -> xs: L a -> {v:L a |(llen v) = 1 + (llen xs)}
-\end{code}
-
-<br>
-\begin{code} and the types from `isNull`
-data L a where 
-  N :: {v : L a | isNull v}
-  C :: a -> xs: L a -> {v:L a | not (isNull v)}
-\end{code}
-
-
-<br>
-\begin{code} So, the final types will be
-data L a where 
-  N :: {v : L a | (llen v) = 0 && (isNull v)}
-  C :: a -> xs: L a -> {v:L a |(llen v) = 1 + (llen xs) && not (isNull v)}
-\end{code}
-
-
-Invariants in Data Constructors
-------------------------------
-
-We can refine the definition of data types setting **invariants**
-\begin{code}
-{-@ data L a = N
-             | C (x :: a) (xs :: L {v:a | x <= v})  @-}
-\end{code}
-
-<br>
-
-\begin{code} As before,the types of data constuctors are strengthened to
-data L a where
-  N :: L a
-  C :: x:a -> xs: L {v:a | x <= v} -> L a
-\end{code}
-
-LiquidHaskell
-
-- **Proves** the property when `C` is called
-
-- **Assumes** the property when `C` is opened
-
-
-
-Increasing Lists
------------------
-
-This invariant constrains all Lists to **increasing**
-\begin{code}
-{-@ data L a = N
-             | C (x :: a) (xs :: L {v:a | x <= v})  @-}
-\end{code}
-
-<br>
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs"
-target= "_blank">Insert sort</a> 
-\begin{code}
-{-@ insert :: Ord a => a -> L a -> L a @-}
-insert :: Ord a => a -> L a -> L a
-insert y (x `C` xs) | x <= y    = x `C` insert y xs
-                    | otherwise = y `C` insert x xs
-
-{-@ insertSort  :: Ord a => [a] -> L a @-}
-insertSort  :: Ord a => [a] -> L a
-insertSort = foldr insert N
-\end{code}
-
-<br>
-What if increasing and decreasing lists should co-exist?
-
-We use **abstract refinements** to allow it!
diff --git a/docs/slides/niki/lhs/SimpleRefinements.lhs b/docs/slides/niki/lhs/SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/niki/lhs/SimpleRefinements.lhs
+++ /dev/null
@@ -1,138 +0,0 @@
-% Simple Refinement Types
-
-Simple Refinement Types
------------------------
-
-\begin{code}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-\end{code}
-
-
-Simple Refinement Types
------------------------
-
-We use special comments to give specifications, 
-as *refinement types*.
-
-This type describes `Int` values that equal `0`.
-
-
-\begin{code}
-{-@ zero :: {v:Int | v = 0} @-}
-zero     :: Int
-zero     =  0
-\end{code}
-
-Refinements are *logical formulas*
-----------------------------------
-
-If 
-
-- refinement of `T1` **implies** refinement of `T2` 
-
-- `p1 => p2`
-
-Then
-
-- `T1` is a **subtype** of `T2`
-
-- `{v:t | p1} <: {v:t | p2}`
-
-Refinements are *logical formulas*
-----------------------------------
-
-For example, since
-
-- `v = 0` *implies* `v >= 0`
-
-Therefore
- 
-- `{v:Int | v = 0} <: {v:Int | v >= 0}`
-
-
-Refinements are *logical formulas*
-----------------------------------
-
-\begin{code} So we can have a type for natural numbers: <br>
-type Nat = {v:Int | v >= 0}
-\end{code}
-
-<br>
-
-And, via SMT based subtyping LiquidHaskell verifies:
-
-<br>
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     :: Int
-zero'     =  0
-\end{code}
-
-
-Lists: Universal Invariants 
----------------------------
-
-Constructors enable *universally quantified* invariants.
-
-For example, we define a list:
-
-\begin{code}
-infixr `C`
-data L a = N | C a (L a)
-\end{code}
-
-<br>
-
-And specify that, *every element* in a list is non-negative:
-
-\begin{code}
-{-@ natList :: L Nat @-}
-natList     :: L Int
-natList     =  0 `C` 1 `C` 3 `C` N
-\end{code}
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-Lets see what happens if `natList` contained a negative number. 
-
-Refinement Function Types
--------------------------
-
-Consider a `safeDiv` operator: <br>
-
-\begin{code}
-safeDiv    :: Int -> Int -> Int
-safeDiv x y = x `div` y
-\end{code}
-
-<br>
-We can use refinements to specify a **precondition**: divisor is **non-zero** <br>
-
-\begin{code}
-{-@ safeDiv :: Int -> {v:Int | v != 0} -> Int @-}
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-Lets see what happens if the preconditions cannot be
-proven. 
-
-Dependent Function Types
-------------------------
-
-\begin{code} Consider a list indexing function:
-(!!)         :: L a -> Int -> a
-(C x _) !! 0 = x
-(C _ xs)!! n = xs!!(n-1)
-_       !! _ = liquidError "This should not happen!"
-\end{code}
-
-<br>
-
-We desire a **precondition** that index `i` be between `0` and **list length**.
-
-We use **measures** to talk about the length of a list in **logic**.
-
-
diff --git a/docs/slides/niki/lhs/liquid.css b/docs/slides/niki/lhs/liquid.css
deleted file mode 100644
--- a/docs/slides/niki/lhs/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  // font-size: 120%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/niki/lhs/slides.css b/docs/slides/niki/lhs/slides.css
deleted file mode 100644
--- a/docs/slides/niki/lhs/slides.css
+++ /dev/null
@@ -1,258 +0,0 @@
-@font-face {
-	font-family: 'PT Mono';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Mono-Regular.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans';
-    font-style: normal; 
-	font-weight: bold;
-	src: local("☺"), url('fonts/PT_Sans-Web-Bold.ttf') format('truetype');
-}@font-face {
-	font-family: 'PT Sans';
-    font-style: italic;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Web-Italic.ttf') format('truetype');
-}@font-face {
-	font-family: 'PT Sans';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Web-Regular.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans Narrow';
-    font-style: normal;
-	font-weight: bold;
-	src: local("☺"), url('fonts/PT_Sans-Narrow-Web-Bold.ttf') format('truetype');
-}
-@font-face {
-	font-family: 'PT Sans Narrow';
-    font-style: normal;
-	font-weight: normal;
-	src: local("☺"), url('fonts/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-}
-html {
-    height: 100%;
-	background-color: #fefffe;
-}
-body {
-	width: 1024px !important;
-    height: 600px !important;
-	margin-left: -512px !important;
-	margin-top: -300px !important;
-}
-section {
-	background: transparent;
-	color: #000;
-	width: 100%  !important;
-	/* width: 800px !important; */
-	height: 600px !important;
-    padding: 50px 112px 0;	
-	font-family: 'PT Sans', sans-serif;
-	font-size: 16pt;
-}
-
-body :first-child {
-}
-address, blockquote, dl, fieldset, form, h1, h2, h3, h4, h5, h6, hr, ol, p, pre, table, ul, dl { padding: 10px 20px 10px 20px; }
-h1, h2, h3 {
-	text-align: left;
-	color: #666; 
-	font-family: 'PT Sans Narrow', sans-serif;
-	font-weight: bold;
-}
-input, select {
-border 0.5pt solid black;
-font-size: 16pt;
-line-height: 10pt;
-padding: 0 0 -2.5pt 0;
-z-index:1;
-}
-ul, ol {
-	margin: 10px 10px 10px 50px;
-}
-a { color: #205CB3; }
-section.titleslide h1 { margin-top: 200px; }
-h1.title { margin-top: 150px; font-size:200%; margin-bottom: 20px; text-align: center; text-shadow:0px 2px 1px #444; 
--webkit-transition: color 1s ease-in-out;
--moz-transition: color 1s ease-in-out;
- }
-h1.title:hover {
-color: #C43628;
-}
-h2.author { font-size: 120%; margin-top: 0px; margin-bottom: 0px; text-align:center; color: #555; font-family: 'PT Sans Narrow'; font-weight: normal;}
-h3.date { font-size: 80%; margin-top: 0px; text-align: center; color: #555; font-family: 'PT Mono'; font-weight: normal;}
-h1 { font-size: 180%; margin: 0 0 10px; text-shadow:0px 2px 1px #fff;}
-h2 { font-size: 140%; } 
-h3 { font-size: 100%; }
-blockquote { font-style: italic }
-q {
-	display: inline-block;
-	width: 700px;
-	height: 600px;
-	background-color: black;
-	color: white;
-	font-size: 60px;
-	padding: 50px;
-}
-footer {
-	position: absolute;
-	bottom: 10px;
-	right: 20px;
-	text-shadow: white 0px 1px 0px, rgba(0, 0, 0, 0.2) 0 2px 5px;
-}
-/* JHALA: pre, code { background: transparent; } */
-pre, code {background-color:#E6F0FA;}
-
-pre { padding: 10px 50px; }
-td > pre { padding: 0px; }
-td { padding: 5px; }
-::-moz-selection { background-color: khaki; }
-code { font-family: 'PT Mono'; font-size: 90%; }
-code > span.co { font-style: normal; }
-code > span.kw { font-weight: normal; }
-code > span.er { font-weight: normal; }
-
-/* Transition effect */
-/* Feel free to change the transition effect for original
-animations. See here:
-https://developer.mozilla.org/en/CSS/CSS_transitions
-How to use CSS3 Transitions: */
-section {
-	-moz-transition: left 400ms ease-in-out 0s;
-	-webkit-transition: left 400ms ease-in-out 0s;
-	-ms-transition: left 400ms ease-in-out 0s;
-	transition: left 400ms ease-in-out 0s;
-}
-
-/* Before */
-section { left: -150%; }
-/* Now */
-section[aria-selected] { left: 0; }
-/* After */
-section[aria-selected] ~ section { left: +150%; }
-
-/* Incremental elements */
-
-/* By default, visible */
-.incremental > * { opacity: 1; }
-
-/* The current item */
-.incremental > *[aria-selected] { color: red; opacity: 1; }
-
-/* The items to-be-selected */
-.incremental > *[aria-selected] ~ * { opacity: 0.2; }
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-a { color: #205CB3; }
-
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 60%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 80%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/plpv14/Makefile b/docs/slides/plpv14/Makefile
deleted file mode 100644
--- a/docs/slides/plpv14/Makefile
+++ /dev/null
@@ -1,70 +0,0 @@
-####################################################################
-SERVERHOME=nvazou@goto.ucsd.edu:~/public_html/liquidtutorial/
-RJSERVER=rjhala@goto.ucsd.edu:~/public_html/liquid/haskell/plpv/lhs/
-####################################################################
-
-# REVEAL=$(PANDOC) -t revealjs -V revealjs-url=../_support/reveal -V theme=serif
-
-REVEAL=pandoc \
-	   --from=markdown+simple_tables 		\
-	   --to=html5                           \
-	   --standalone                         \
-	   --mathjax \
-	   --section-divs                       \
-	   --template=_support/template.reveal  \
-	   --variable reveal=../_support/reveal
-
-PANDOC=pandoc --columns=80  -s --mathjax --slide-level=2
-SLIDY=$(PANDOC) -t slidy
-DZSLIDES=$(PANDOC) --highlight-style tango --css=slides.css -w dzslides
-HANDOUT=$(PANDOC) --highlight-style tango --css=text.css -w html5
-WEBTEX=$(PANDOC) -s --webtex -i -t slidy
-BEAMER=pandoc -t beamer
-LIQUID=liquid --short-names 
-
-mdObjects   := $(patsubst %.lhs,%.lhs.markdown,$(wildcard lhs/*.lhs))
-htmlObjects := $(patsubst %.lhs,%.lhs.slides.html,$(wildcard lhs/*.lhs))
-
-####################################################################
-
-one: $(mdObjects)
-	$(REVEAL) lhs/00_Index.lhs.markdown > lhs/index.html
-
-tut: $(mdObjects)
-	$(REVEAL) lhs/*.markdown > lhs/tutorial.html 
-
-all: slides copy
-
-slides: $(htmlObjects)
-
-plpv: slides
-	scp lhs/*.html $(RJSERVER)
-
-lhs/%.lhs.markdown: lhs/%.lhs
-	-$(LIQUID) $?
-
-lhs/%.lhs.slides.html: lhs/%.lhs.markdown
-	$(REVEAL) $? -o $@ 
-
-lhs/%.lhs.slides.pdf: lhs/%.lhs.markdown
-	$(BEAMER) $? -o $@ 
-
-foo:
-	$(LIQUID) lhs/Foo.lhs
-	$(REVEAL) lhs/Foo.lhs.markdown -o lhs/Foo.lhs.html
-
-copy:
-	cp lhs/*lhs.html html/
-	cp lhs/*lhs.slides.html html/
-	cp css/*.css html/
-	cp -r fonts html/
-	cp index.html html/
-	cp Benchmarks.html html/
-
-clean:
-#	cd lhs/ && ../cleanup && cd ../
-#	cd html/ && rm -rf * && cd ../
-#	cp index.html html/
-
-upload: 
-	scp -r html/* $(SERVERHOME)
diff --git a/docs/slides/plpv14/_support/liquid.css b/docs/slides/plpv14/_support/liquid.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/plpv14/_support/reveal/LICENSE b/docs/slides/plpv14/_support/reveal/LICENSE
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/plpv14/_support/reveal/README.md b/docs/slides/plpv14/_support/reveal/README.md
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/README.md
+++ /dev/null
@@ -1,226 +0,0 @@
-# reveal.js
-
-A framework for easily creating beautiful presentations using HTML. [Check out the live demo](http://lab.hakim.se/reveal-js/).
-
-reveal.js comes with a broad range of features including [nested slides](https://github.com/hakimel/reveal.js#markup), [markdown contents](https://github.com/hakimel/reveal.js#markdown), [PDF export](https://github.com/hakimel/reveal.js#pdf-export), [speaker notes](https://github.com/hakimel/reveal.js#speaker-notes) and a [JavaScript API](https://github.com/hakimel/reveal.js#api). It's best viewed in a browser with support for CSS 3D transforms but [fallbacks](https://github.com/hakimel/reveal.js/wiki/Browser-Support) are available to make sure your presentation can still be viewed elsewhere.
-
-
-#### More reading in the Wiki:
-- [Changelog](https://github.com/hakimel/reveal.js/wiki/Changelog): Up-to-date version history.
-- [Examples](https://github.com/hakimel/reveal.js/wiki/Example-Presentations): Presentations created with reveal.js, add your own!
-- [Browser Support](https://github.com/hakimel/reveal.js/wiki/Changelog): Explanation of browser support and fallbacks.
-
-
-The framework is and will remain free. Donations are available as an optional way of supporting the project. Proceeds go towards futher development, hosting and domain costs for the GUI editor which will be out shortly.
-
-[![Click here to lend your support to: reveal.js and make a donation at www.pledgie.com !](http://www.pledgie.com/campaigns/18182.png?skin_name=chrome)](http://www.pledgie.com/campaigns/18182)
-
-
-## Instructions
-
-### Markup
-
-Markup heirarchy needs to be ``<div class="reveal"> <div class="slides"> <section>`` where the ``<section>`` represents one slide and can be repeated indefinitely. If you place multiple ``<section>``'s inside of another ``<section>`` they will be shown as vertical slides. The first of the vertical slides is the "root" of the others (at the top), and it will be included in the horizontal sequence. For example:
-
-```html
-<div class="reveal">
-	<div class="slides"> 
-		<section>Single Horizontal Slide</section>
-		<section>
-			<section>Vertical Slide 1</section>
-			<section>Vertical Slide 2</section>
-		</section>
-	</div>
-</div>
-```
-
-### Markdown
-
-It's possible to write your slides using Markdown. To enable Markdown simply add the ```data-markdown``` attribute to your ```<section>``` elements and reveal.js will automatically load the JavaScript parser. 
-
-This is based on [data-markdown](https://gist.github.com/1343518) from [Paul Irish](https://github.com/paulirish) which in turn uses [showdown](https://github.com/coreyti/showdown/). This is sensitive to indentation (avoid mixing tabs and spaces) and line breaks (avoid consecutive breaks). Updates to come.
-
-```html
-<section data-markdown>
-	## Page title
-	
-	A paragraph with some text and a [link](http://hakim.se).
-</section>
-```
-
-
-### Configuration
-
-At the end of your page you need to initialize reveal by running the following code. Note that all config values are optional and will default as specified below.
-
-```javascript
-Reveal.initialize({
-	// Display controls in the bottom right corner
-	controls: true,
-
-	// Display a presentation progress bar
-	progress: true,
-
-	// Push each slide change to the browser history
-	history: false,
-
-	// Enable keyboard shortcuts for navigation
-	keyboard: true,
-
-	// Loop the presentation
-	loop: false,
-
-	// Number of milliseconds between automatically proceeding to the 
-	// next slide, disabled when set to 0
-	autoSlide: 0,
-
-	// Enable slide navigation via mouse wheel
-	mouseWheel: true,
-
-	// Apply a 3D roll to links on hover
-	rollingLinks: true,
-
-	// Transition style
-	transition: 'default' // default/cube/page/concave/linear(2d)
-});
-```
-
-### Dependencies
-
-Reveal.js doesn't _rely_ on any third party scripts to work but a few optional libraries are included by default. These libraries are loaded as dependencies in the order they appear, for example:
-
-```javascript
-Reveal.initialize({
-	dependencies: [
-		// Syntax highlight for <code> elements
-		{ src: 'lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-		// Cross-browser shim that fully implements classList - https://github.com/eligrey/classList.js/
-		{ src: 'lib/js/classList.js', condition: function() { return !document.body.classList; } }
-		// Interpret Markdown in <section> elements
-		{ src: 'lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		{ src: 'lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-		// Speaker notes support
-		{ src: 'plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		{ src: '/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-	]
-});
-```
-
-You can add your own extensions using the same syntax. The following properties are available for each dependency object:
-- **src**: Path to the script to load
-- **async**: [optional] Flags if the script should load after reveal.js has started, defaults to false
-- **callback**: [optional] Function to execute when the script has loaded
-- **condition**: [optional] Function which must return true for the script to be loaded
-
-
-### API
-
-The Reveal class provides a minimal JavaScript API for controlling navigation and reading state:
-
-```javascript
-// Navigation
-Reveal.navigateTo( indexh, indexv );
-Reveal.navigateLeft();
-Reveal.navigateRight();
-Reveal.navigateUp();
-Reveal.navigateDown();
-Reveal.navigatePrev();
-Reveal.navigateNext();
-Reveal.toggleOverview();
-
-// Retrieves the previous and current slide elements
-Reveal.getPreviousSlide();
-Reveal.getCurrentSlide();
-
-Reveal.getIndices(); // { h: 0, v: 0 } }
-```
-
-### States
-
-If you set ``data-state="somestate"`` on a slide ``<section>``, "somestate" will be applied as a class on the document element when that slide is opened. This allows you to apply broad style changes to the page based on the active slide.
-
-Furthermore you can also listen to these changes in state via JavaScript:
-
-```javascript
-Reveal.addEventListener( 'somestate', function() {
-	// TODO: Sprinkle magic
-}, false );
-```
-
-### Slide change event
-
-An 'slidechanged' event is fired each time the slide is changed (regardless of state). The event object holds the index values of the current slide as well as a reference to the previous and current slide HTML nodes.
-
-```javascript
-Reveal.addEventListener( 'slidechanged', function( event ) {
-	// event.previousSlide, event.currentSlide, event.indexh, event.indexv
-} );
-```
-
-### Fragment events
-
-When a slide fragment is either shown or hidden reveal.js will dispatch an event.
-
-```javascript
-Reveal.addEventListener( 'fragmentshown', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-Reveal.addEventListener( 'fragmenthidden', function( event ) {
-	// event.fragment = the fragment DOM element
-} );
-```
-
-### Internal links
-
-It's easy to link between slides. The first example below targets the index of another slide whereas the second targets a slide with an ID attribute (```<section id="some-slide">```):
-
-```html
-<a href="#/2/2">Link</a>
-<a href="#/some-slide">Link</a>
-```
-
-## PDF Export
-
-Presentations can be exported to PDF via a special print stylesheet. This feature requires that you use [Google Chrome](http://google.com/chrome). 
-Here's an example of an exported presentation that's been uploaded to SlideShare: http://www.slideshare.net/hakimel/revealjs-13872948.
-
-1. Open the desired presentation with *print-pdf* anywhere in the query, for example: [lab.hakim.se/reveal-js?print-pdf](http://lab.hakim.se/reveal-js?print-pdf)
-2. Open the in-browser print dialog (CMD+P).
-3. Change the **Destination** setting to **Save as PDF**.
-4. Change the **Layout** to **Landscape**.
-5. Change the **Margins** to **None**.
-6. Click **Save**.
-
-![Chrome Print Settings](https://s3.amazonaws.com/hakim-static/reveal-js/pdf-print-settings.png)
-
-## Speaker Notes
-
-If you're interested in using speaker notes, reveal.js comes with a Node server that allows you to deliver your presentation in one browser while viewing speaker notes in another. 
-
-To include speaker notes in your presentation, simply add an `<aside class="notes">` element to any slide. These notes will be hidden in the main presentation view.
-
-You'll also need to [install Node.js](http://nodejs.org/); then, install the server dependencies by running `npm install`.
-
-Once Node.js and the dependencies are installed, run the following command from the root directory:
-
-		node plugin/speakernotes
-
-By default, the slides will be served at [localhost:1947](http://localhost:1947).
-
-You can change the appearance of the speaker notes by editing the file at `plugin/speakernotes/notes.html`.	
-
-### Known Issues
-
-- The notes page is supposed to show the current slide and the next slide, but when it first starts, it always shows the first slide in both positions. 
-
-## Folder Structure
-- **css/** Core styles without which the project does not function
-- **js/** Like above but for JavaScript
-- **plugin/** Components that have been developed as extensions to reveal.js
-- **lib/** All other third party assets (JavaScript, CSS, fonts)
-
-## License
-
-MIT licensed
-
-Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
diff --git a/docs/slides/plpv14/_support/reveal/css/liquidhaskell.css b/docs/slides/plpv14/_support/reveal/css/liquidhaskell.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/liquidhaskell.css
+++ /dev/null
@@ -1,105 +0,0 @@
-
-/******************************************************************/
-/* LIQUID: Hacking the Background *********************************/
-/******************************************************************/
-
-.hidden {
-  display: none;
-}
-
-.reveal .hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-  font-size:70%
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   
-}
-
-.hs-definition { 
-  color: #06287E 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext {display: none}
-
-a.annot:hover span.annottext { 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  font-size: 75%;
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-  color:black;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 100%;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/plpv14/_support/reveal/css/main.css b/docs/slides/plpv14/_support/reveal/css/main.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/main.css
+++ /dev/null
@@ -1,925 +0,0 @@
-@charset "UTF-8";
-
-/**
- * reveal.js
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-.reveal a {
-  color: #8b7c69;
-  text-decoration: none;
-}
-
-/*********************************************
- * RESET STYLES
- *********************************************/
-
-
-html, body, div, span, applet, object, iframe,
-h1, h2, h3, h4, h5, h6, p, blockquote, pre,
-a, abbr, acronym, address, big, cite, code,
-del, dfn, em, img, ins, kbd, q, s, samp,
-small, strike, strong, sub, sup, tt, var,
-b, u, i, center,
-dl, dt, dd, ol, ul, li,
-fieldset, form, label, legend,
-table, caption, tbody, tfoot, thead, tr, th, td,
-article, aside, canvas, details, embed, 
-figure, figcaption, footer, header, hgroup, 
-menu, nav, output, ruby, section, summary,
-time, mark, audio, video {
-	margin: 0;
-	padding: 0;
-	border: 0;
-	font-size: 100%;
-	font: inherit;
-	vertical-align: baseline;
-}
-
-article, aside, details, figcaption, figure, 
-footer, header, hgroup, menu, nav, section {
-	display: block;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-html, 
-body {
-	padding: 0;
-	margin: 0;
-	width: 100%;
-	height: 100%;
-	min-height: 600px;
-	overflow: hidden;
-}
-
-body {
-	position: relative;
-	line-height: 1;
-}
-
-@media screen and (max-width: 1024px) {
-	body {
-		font-size: 30px;
-	}
-}
-
-::selection { 
-	background:#FF5E99; 
-	color:#fff; 
-	text-shadow: none; 
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1 { font-size: 0.77em; }
-.reveal h2 { font-size: 2.11em;	}
-.reveal h3 { font-size: 1.55em;	}
-.reveal h4 { font-size: 1em;	}
-
-
-/*********************************************
- * VIEW FRAGMENTS
- *********************************************/
-
-.reveal .slides section .fragment {
-	opacity: 0;
-
-	-webkit-transition: all .2s ease;
-	   -moz-transition: all .2s ease;
-	    -ms-transition: all .2s ease;
-	     -o-transition: all .2s ease;
-	        transition: all .2s ease;
-}
-	.reveal .slides section .fragment.visible {
-		opacity: 1;
-	}
-
-
-/*********************************************
- * DEFAULT ELEMENT STYLES
- *********************************************/
-
-.reveal .slides section {
-	line-height: 1.2em;
-	font-weight: normal;
-}
-
-.reveal img {
-	/* preserve aspect ratio and scale image so it's bound within the section */
-	max-width: 100%;
-	max-height: 100%;
-} 
-
-.reveal strong, 
-.reveal b {
-	font-weight: bold;
-}
-
-.reveal em, 
-.reveal i {
-	font-style: italic;
-}
-
-.reveal ol, 
-.reveal ul {
-	display: inline-block;
-
-	text-align: left;
-	margin: 0 0 0 .7em;
-}
-
-.reveal ol {
-	list-style-type: decimal;
-}
-
-.reveal ul {
-	list-style-type: disc;
-	padding-bottom: 0.8em;
-}
-
-.reveal ul ul {
-	list-style-type: circle;
-}
-
-.reveal ul ul ul {
-	list-style-type: square;
-}
-
-.reveal ul ul,
-.reveal ul ol,
-.reveal ol ol,
-.reveal ol ul {
-	display: block;
-	margin-left: 0;
-}
-
-.reveal p {
-	margin-bottom: 10px;
-	line-height: 1.2em;
-}
-
-.reveal q,
-.reveal blockquote {
-	quotes: none;
-}
-
-
-.reveal blockquote {
-	display: block;
-	position: relative;
-	width: 70%;
-	margin: 5px auto;
-	padding: 5px;
-	
-	font-size: 80%;
-	font-style: italic;
-	background: rgba(255, 255, 255, 0.05);
-	box-shadow: 0px 0px 2px rgba(0,0,0,0.2);
-}
-
-
-
-/*--DW-- disable funky quote marks for blockquotes*/
-/*
-.reveal blockquote:before {
-	content: '“';
-}
-.reveal blockquote:after {
-	content: '”';
-}
-*/
-
-.reveal q {	
-	font-style: italic;
-}
-	.reveal q:before {
-		content: '“';
-	}
-	.reveal q:after {
-		content: '”';
-	}
-
-.reveal pre {
-	display: block;
-	position: relative;
-	width: 90%;
-	margin: 10px auto;
-
-	text-align: left;
-	font-size: 0.85em;
-	font-family: monospace;
-	line-height: 1.2em;
-
-	word-wrap: break-word;
-
-	box-shadow: 0px 0px 6px rgba(0,0,0,0.3);
-}
-
-.reveal code {
-	font-family: monospace;
-	overflow-x: auto;
-}
-
-.reveal table th, 
-.reveal table td {
-	text-align: left;
-	padding-right: .3em;
-}
-
-.reveal table th {
-	text-shadow: rgb(255,255,255) 1px 1px 2px;
-}
-
-.reveal sup { 
-	vertical-align: super;
-}
-.reveal sub { 
-	vertical-align: sub;
-}
-
-.reveal small {
-	display: inline-block;
-	font-size: 0.6em;
-	line-height: 1.2em;
-	vertical-align: top;
-}
-
-.reveal small * {
-	vertical-align: top;
-}
-
-
-/*********************************************
- * CONTROLS
- *********************************************/
-
-.reveal .controls {
-	display: none;
-	position: fixed;
-	width: 100px;
-	height: 100px;
-	z-index: 30;
-
-	right: 0;
-	bottom: 0;
-}
-	
-	.reveal .controls a {
-		font-family: Arial;
-		font-size: 0.83em;
-		position: absolute;
-		opacity: 0.1;
-	}
-		.reveal .controls a.enabled {
-			opacity: 0.6;
-		}
-		.reveal .controls a.enabled:active {
-			margin-top: 1px;
-		}
-
-	.reveal .controls .left {
-		top: 30px;
-	}
-
-	.reveal .controls .right {
-		left: 60px;
-		top: 30px;
-	}
-
-	.reveal .controls .up {
-		left: 30px;
-	}
-
-	.reveal .controls .down {
-		left: 30px;
-		top: 60px;
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	position: fixed;
-	display: none;
-	height: 3px;
-	width: 100%;
-	bottom: 0;
-	left: 0;
-}
-	
-	.reveal .progress span {
-		display: block;
-		height: 100%;
-		width: 0px;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-/*********************************************
- * ROLLING LINKS
- *********************************************/
-
-.reveal .roll {
-	display: inline-block;
-	line-height: 1.2;
-	overflow: hidden;
-
-	vertical-align: top;
-
-	-webkit-perspective: 400px;
-	   -moz-perspective: 400px;
-	    -ms-perspective: 400px;
-	        perspective: 400px;
-
-	-webkit-perspective-origin: 50% 50%;
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-	.reveal .roll:hover {
-		background: none;
-		text-shadow: none;
-	}
-.reveal .roll span {
-	display: block;
-	position: relative;
-	padding: 0 2px;
-
-	pointer-events: none;
-
-	-webkit-transition: all 400ms ease;
-	   -moz-transition: all 400ms ease;
-	    -ms-transition: all 400ms ease;
-	        transition: all 400ms ease;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	        backface-visibility: hidden;
-}
-	.reveal .roll:hover span {
-	    background: rgba(0,0,0,0.5);
-
-	    -webkit-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	       -moz-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	        -ms-transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	            transform: translate3d( 0px, 0px, -45px ) rotateX( 90deg );
-	}
-.reveal .roll span:after {
-	content: attr(data-title);
-
-	display: block;
-	position: absolute;
-	left: 0;
-	top: 0;
-	padding: 0 2px;
-
-	-webkit-transform-origin: 50% 0%;
-	   -moz-transform-origin: 50% 0%;
-	    -ms-transform-origin: 50% 0%;
-	        transform-origin: 50% 0%;
-
-	-webkit-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	   -moz-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	    -ms-transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-	        transform: translate3d( 0px, 110%, 0px ) rotateX( -90deg );
-}
-
-
-/*********************************************
- * SLIDES
- *********************************************/
-
-.reveal .slides {
-	position: absolute;
-	max-width: 1024px;
-	width: 100%;
-	height: 80%;
-	left: 50%;
-	top: 50%;
-	margin-top: -320px;
-	padding: 20px 0px;
-	overflow: visible;
-	
-	text-align: center;
-
-	-webkit-transition: -webkit-perspective .4s ease;
-	   -moz-transition: -moz-perspective .4s ease;
-	    -ms-transition: -ms-perspective .4s ease;
-	     -o-transition: -o-perspective .4s ease;
-	        transition: perspective .4s ease;
-	
-	-webkit-perspective: 600px;
-	   -moz-perspective: 600px;
-	    -ms-perspective: 600px;
-	        perspective: 600px;
-
-	-webkit-perspective-origin: 0% 25%;
-	   -moz-perspective-origin: 0% 25%;
-	    -ms-perspective-origin: 0% 25%;
-	        perspective-origin: 0% 25%;
-}
-
-.reveal .slides>section,
-.reveal .slides>section>section {
-	display: none;
-	position: absolute;
-	width: 100%;
-	min-height: 600px;
-
-	z-index: 10;
-	
-	-webkit-transform-style: preserve-3d;
-	   -moz-transform-style: preserve-3d;
-	    -ms-transform-style: preserve-3d;
-	        transform-style: preserve-3d;
-	
-	-webkit-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	   -moz-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	    -ms-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	     -o-transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	        transition: all 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-}
-
-.reveal .slides>section.present {
-	display: block;
-	z-index: 11;
-	opacity: 1;
-}
-
-.reveal .slides>section {
-	margin-left: -50%;
-}
-
-
-/*********************************************
- * DEFAULT TRANSITION
- *********************************************/
-
-.reveal .slides>section.past {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg) translate3d(-100%, 0, 0);
-}
-.reveal .slides>section.future {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg) translate3d(100%, 0, 0);
-}
-
-.reveal .slides>section>section.past {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	   -moz-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	    -ms-transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-	        transform: translate3d(0, -50%, 0) rotateX(70deg) translate3d(0, -50%, 0);
-}
-.reveal .slides>section>section.future {
-	display: block;
-	opacity: 0;
-	
-	-webkit-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	   -moz-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	    -ms-transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-	        transform: translate3d(0, 50%, 0) rotateX(-70deg) translate3d(0, 50%, 0);
-}
-
-
-/*********************************************
- * CONCAVE TRANSITION
- *********************************************/
-
-.reveal.concave  .slides>section.past {
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-	        transform: translate3d(-100%, 0, 0) rotateY(90deg) translate3d(-100%, 0, 0);
-}
-.reveal.concave  .slides>section.future {
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-	        transform: translate3d(100%, 0, 0) rotateY(-90deg) translate3d(100%, 0, 0);
-}
-
-.reveal.concave  .slides>section>section.past {
-	-webkit-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	   -moz-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	    -ms-transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-	        transform: translate3d(0, -80%, 0) rotateX(-70deg) translate3d(0, -80%, 0);
-}
-.reveal.concave  .slides>section>section.future {
-	-webkit-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	   -moz-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	    -ms-transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-	        transform: translate3d(0, 80%, 0) rotateX(70deg) translate3d(0, 80%, 0);
-}
-
-
-/*********************************************
- * LINEAR TRANSITION
- *********************************************/
-
-.reveal.linear .slides>section.past {
-	-webkit-transform: translate(-150%, 0);
-	   -moz-transform: translate(-150%, 0);
-	    -ms-transform: translate(-150%, 0);
-	     -o-transform: translate(-150%, 0);
-	        transform: translate(-150%, 0);
-}
-.reveal.linear .slides>section.future {
-	-webkit-transform: translate(150%, 0);
-	   -moz-transform: translate(150%, 0);
-	    -ms-transform: translate(150%, 0);
-	     -o-transform: translate(150%, 0);
-	        transform: translate(150%, 0);
-}
-
-.reveal.linear .slides>section>section.past {
-	-webkit-transform: translate(0, -150%);
-	   -moz-transform: translate(0, -150%);
-	    -ms-transform: translate(0, -150%);
-	     -o-transform: translate(0, -150%);
-	        transform: translate(0, -150%);
-}
-.reveal.linear .slides>section>section.future {
-	-webkit-transform: translate(0, 150%);
-	   -moz-transform: translate(0, 150%);
-	    -ms-transform: translate(0, 150%);
-	     -o-transform: translate(0, 150%);
-	        transform: translate(0, 150%);
-}
-
-/*********************************************
- * BOX TRANSITION
- *********************************************/
-
-.reveal.cube .slides {
-	margin-top: -350px;
-
-	-webkit-perspective-origin: 50% 25%;
-	   -moz-perspective-origin: 50% 25%;
-	    -ms-perspective-origin: 50% 25%;
-	        perspective-origin: 50% 25%;
-
-	-webkit-perspective: 1300px;
-	   -moz-perspective: 1300px;
-	    -ms-perspective: 1300px;
-	        perspective: 1300px;
-}
-
-.reveal.cube .slides section {
-	padding: 30px;
-
-	-webkit-backface-visibility: hidden;
-	   -moz-backface-visibility: hidden;
-	    -ms-backface-visibility: hidden;
-	        backface-visibility: hidden;
-	
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.cube .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: #232628;
-		border-radius: 4px;
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.cube .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-		   -moz-transform: translateZ(-90px) rotateX( 65deg );
-		    -ms-transform: translateZ(-90px) rotateX( 65deg );
-		     -o-transform: translateZ(-90px) rotateX( 65deg );
-		        transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.cube .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.cube .slides>section.past {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	   -moz-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	    -ms-transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-	        transform: translate3d(-100%, 0, 0) rotateY(-90deg);
-}
-
-.reveal.cube .slides>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	   -moz-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	    -ms-transform: translate3d(100%, 0, 0) rotateY(90deg);
-	        transform: translate3d(100%, 0, 0) rotateY(90deg);
-}
-
-.reveal.cube .slides>section>section.past {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	   -moz-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	    -ms-transform: translate3d(0, -100%, 0) rotateX(90deg);
-	        transform: translate3d(0, -100%, 0) rotateX(90deg);
-}
-
-.reveal.cube .slides>section>section.future {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	   -moz-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	    -ms-transform: translate3d(0, 100%, 0) rotateX(-90deg);
-	        transform: translate3d(0, 100%, 0) rotateX(-90deg);
-}
-
-
-/*********************************************
- * PAGE TRANSITION
- *********************************************/
-
-.reveal.page .slides {
-	margin-top: -350px;
-
-	-webkit-perspective-origin: 50% 50%;
- 	   -moz-perspective-origin: 50% 50%;
- 	    -ms-perspective-origin: 50% 50%;
- 	        perspective-origin: 50% 50%;
-
-	-webkit-perspective: 3000px;
-	   -moz-perspective: 3000px;
-	    -ms-perspective: 3000px;
-	        perspective: 3000px;
-}
-
-.reveal.page .slides section {
-	padding: 30px;
-
-	-webkit-box-sizing: border-box;
-	   -moz-box-sizing: border-box;
-	        box-sizing: border-box;
-}
-	.reveal.page .slides section.past {
-		z-index: 12;
-	}
-	.reveal.page .slides section:not(.stack):before {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 100%;
-		height: 100%;
-		left: 0;
-		top: 0;
-		background: rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ( -20px );
-		   -moz-transform: translateZ( -20px );
-		    -ms-transform: translateZ( -20px );
-		     -o-transform: translateZ( -20px );
-		        transform: translateZ( -20px );
-	}
-	.reveal.page .slides section:not(.stack):after {
-		content: '';
-		position: absolute;
-		display: block;
-		width: 90%;
-		height: 30px;
-		left: 5%;
-		bottom: 0;
-		background: none;
-		z-index: 1;
-
-		border-radius: 4px;
-		box-shadow: 0px 95px 25px rgba(0,0,0,0.2);
-
-		-webkit-transform: translateZ(-90px) rotateX( 65deg );
-	}
-
-.reveal.page .slides>section.stack {
-	padding: 0;
-	background: none;
-}
-
-.reveal.page .slides>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	   -moz-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	    -ms-transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-	        transform: translate3d(-40%, 0, 0) rotateY(-80deg);
-}
-
-.reveal.page .slides>section.future {
-	-webkit-transform-origin: 100% 0%;
-	   -moz-transform-origin: 100% 0%;
-	    -ms-transform-origin: 100% 0%;
-	        transform-origin: 100% 0%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-.reveal.page .slides>section>section.past {
-	-webkit-transform-origin: 0% 0%;
-	   -moz-transform-origin: 0% 0%;
-	    -ms-transform-origin: 0% 0%;
-	        transform-origin: 0% 0%;
-
-	-webkit-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	   -moz-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	    -ms-transform: translate3d(0, -40%, 0) rotateX(80deg);
-	        transform: translate3d(0, -40%, 0) rotateX(80deg);
-}
-
-.reveal.page .slides>section>section.future {
-	-webkit-transform-origin: 0% 100%;
-	   -moz-transform-origin: 0% 100%;
-	    -ms-transform-origin: 0% 100%;
-	        transform-origin: 0% 100%;
-
-	-webkit-transform: translate3d(0, 0, 0);
-	   -moz-transform: translate3d(0, 0, 0);
-	    -ms-transform: translate3d(0, 0, 0);
-	        transform: translate3d(0, 0, 0);
-}
-
-
-/*********************************************
- * OVERVIEW
- *********************************************/
-
-.reveal.overview .slides {
-	-webkit-perspective: 700px;
-	   -moz-perspective: 700px;
-	    -ms-perspective: 700px;
-	        perspective: 700px;
-}
-
-.reveal.overview .slides section {
-	padding: 20px 0;
-	max-height: 600px;
-	overflow: hidden;	
-	opacity: 1;
-	cursor: pointer;
-	background: rgba(0,0,0,0.1);
-}
-.reveal.overview .slides section .fragment {
-	opacity: 1;
-}
-.reveal.overview .slides section:after,
-.reveal.overview .slides section:before {
-	display: none !important;
-}
-.reveal.overview .slides section>section {
-	opacity: 1;
-	cursor: pointer;
-}
-	.reveal.overview .slides section:hover {
-		background: rgba(0,0,0,0.3);
-	}
-
-	.reveal.overview .slides section.present {
-		background: rgba(0,0,0,0.3);
-	}
-.reveal.overview .slides>section.stack {
-	background: none;
-	padding: 0;
-	overflow: visible;
-}
-
-
-/*********************************************
- * FALLBACK
- *********************************************/
-
-.no-transforms {
-	overflow-y: auto;
-}
-
-.no-transforms .slides section {
-	display: block!important;
-	opacity: 1!important;
-	position: relative!important;
-	height: auto;
-	min-height: auto;
-	margin-bottom: 100px;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-
-
-/*********************************************
- * DEFAULT STATES
- *********************************************/
-
-.state-background {
-	position: absolute;
-	width: 100%;
-	height: 100%;
-	background: rgba( 0, 0, 0, 0 );
-
-	-webkit-transition: background 800ms ease;
-	   -moz-transition: background 800ms ease;
-	    -ms-transition: background 800ms ease;
-	     -o-transition: background 800ms ease;
-	        transition: background 800ms ease;
-}
-.alert .state-background {
-	background: rgba( 200, 50, 30, 0.6 );
-}
-.soothe .state-background {
-	background: rgba( 50, 200, 90, 0.4 );
-}
-.blackout .state-background {
-	background: rgba( 0, 0, 0, 0.6 );
-}
-
-
-/*********************************************
- * SPEAKER NOTES
- *********************************************/
-
-.reveal aside.notes {
-	display: none;
-}
-
diff --git a/docs/slides/plpv14/_support/reveal/css/print/paper.css b/docs/slides/plpv14/_support/reveal/css/print/paper.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/print/paper.css
+++ /dev/null
@@ -1,170 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and 
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending 
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-body {
-	background: #fff;
-	font-size: 13pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-}
-html {
-	background: #fff;
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print. 
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow, 
-.controls a, 
-.reveal .progress, 
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display:none;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 13pt;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	color: #000; 
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Diffrentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	color: #000!important;
-	height: auto;
-	line-height: normal;
-	font-family: Georgia, "Times New Roman", Times, serif !important;
-	text-shadow: 0 0 0 #000 !important;
-	text-align: left;
-	letter-spacing: normal;
-}
-/* Need to reduce the size of the fonts for printing */
-h1 { font-size: 26pt !important;  }
-h2 { font-size: 22pt !important; }
-h3 { font-size: 20pt !important; }
-h4 { font-size: 20pt !important; font-variant: small-caps; }
-h5 { font-size: 19pt !important; }
-h6 { font-size: 18pt !important; font-style: italic; }
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link, 
-a:visited {
-	color: #000 !important;
-	font-weight: bold;
-	text-decoration: underline;
-}
-.reveal a:link:after, 
-.reveal a:visited:after {
-	content: " (" attr(href) ") ";
-	color: #222 !important;
-	font-size: 90%;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-	text-align: left !important;
-}
-.reveal .slides {
-	position: static;
-	width: auto;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section, .reveal .slides>section>section, 
-.reveal .slides>section.past, .reveal .slides>section.future,
-.reveal.linear .slides>section, .reveal.linear .slides>section>section,
-.reveal.linear .slides>section.past, .reveal.linear .slides>section.future {
-	
-	visibility: visible;
-	position: static;
-	width: 90%;
-	height: auto;
-	display: block;
-	overflow: visible;
-
-	left: 0%;
-	top: 0%;
-	margin-left: 0px;
-	margin-top: 0px;
-	padding: 20px 0px;
-
-	opacity: 1;
-
-	-webkit-transform-style: flat;
-	   -moz-transform-style: flat;
-	    -ms-transform-style: flat;
-	        transform-style: flat;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-.reveal section {
-	page-break-after: always !important; 
-	display: block !important;
-}
-.reveal section.stack {
-	page-break-after: avoid !important; 
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-}
-.reveal section img {
-	display: block;
-	margin: 15px 0px;
-	background: rgba(255,255,255,1);
-	border: 1px solid #666;
-	box-shadow: none;
-}
diff --git a/docs/slides/plpv14/_support/reveal/css/print/pdf.css b/docs/slides/plpv14/_support/reveal/css/print/pdf.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/print/pdf.css
+++ /dev/null
@@ -1,158 +0,0 @@
-/* Default Print Stylesheet Template
-   by Rob Glazebrook of CSSnewbie.com
-   Last Updated: June 4, 2008
-
-   Feel free (nay, compelled) to edit, append, and 
-   manipulate this file as you see fit. */
-
-
-/* SECTION 1: Set default width, margin, float, and
-   background. This prevents elements from extending 
-   beyond the edge of the printed page, and prevents
-   unnecessary background images from printing */
-* {
-	-webkit-print-color-adjust: exact; 
-}
-
-body {
-	font-size: 22pt;
-	width: auto;
-	height: auto;
-	border: 0;
-	margin: 0 5%;
-	padding: 0;
-	float: none !important;
-	overflow: visible;
-	background: #333;
-}
-
-html {
-	width: auto;
-	height: auto;
-	overflow: visible;
-}
-
-/* SECTION 2: Remove any elements not needed in print. 
-   This would include navigation, ads, sidebars, etc. */
-.nestedarrow, 
-.controls a, 
-.reveal .progress, 
-.reveal.overview,
-.fork-reveal,
-.share-reveal,
-.state-background {
-	display:none;
-}
-
-/* SECTION 3: Set body font face, size, and color.
-   Consider using a serif font for readability. */
-body, p, td, li, div, a {
-	font-size: 22pt;
-}
-
-/* SECTION 4: Set heading font face, sizes, and color.
-   Diffrentiate your headings from your body text.
-   Perhaps use a large sans-serif for distinction. */
-h1,h2,h3,h4,h5,h6 {
-	text-shadow: 0 0 0 #000 !important;
-}
-
-/* SECTION 5: Make hyperlinks more usable.
-   Ensure links are underlined, and consider appending
-   the URL to the end of the link for usability. */
-a:link, 
-a:visited {
-	font-weight: bold;
-	text-decoration: underline;
-}
-
-
-/* SECTION 6: more reveal.js specific additions by @skypanther */
-ul, ol, div, p {
-	visibility: visible;
-	position: static;
-	width: auto;
-	height: auto;
-	display: block;
-	overflow: visible;
-	margin: auto;
-}
-.reveal .slides {
-	position: static;
-	width: 100%;
-	height: auto;
-
-	left: auto;
-	top: auto;
-	margin-left: auto;
-	margin-top: auto;
-	padding: auto;
-
-	overflow: visible;
-	display: block;
-
-	text-align: center;
-	-webkit-perspective: none;
-	   -moz-perspective: none;
-	    -ms-perspective: none;
-	        perspective: none;
-
-	-webkit-perspective-origin: 50% 50%; /* there isn't a none/auto value but 50-50 is the default */
-	   -moz-perspective-origin: 50% 50%;
-	    -ms-perspective-origin: 50% 50%;
-	        perspective-origin: 50% 50%;
-}
-.reveal .slides>section, .reveal .slides>section>section, 
-.reveal .slides>section.past, .reveal .slides>section.future,
-.reveal.linear .slides>section, .reveal.linear .slides>section>section,
-.reveal.linear .slides>section.past, .reveal.linear .slides>section.future {
-	
-	visibility: visible;
-	position: static;
-	width: 100%;
-	height: auto;
-	min-height: initial;
-	display: block;
-	overflow: visible;
-
-	left: 0%;
-	top: 0%;
-	margin-left: 0px;
-	margin-top: 50px;
-	padding: 20px 0px;
-
-	opacity: 1;
-
-	-webkit-transform-style: flat;
-	   -moz-transform-style: flat;
-	    -ms-transform-style: flat;
-	        transform-style: flat;
-
-	-webkit-transform: none;
-	   -moz-transform: none;
-	    -ms-transform: none;
-	        transform: none;
-}
-.reveal section {
-	page-break-after: always !important; 
-	display: block !important;
-}
-.reveal section.stack {
-	margin: 0px !important;
-	padding: 0px !important;
-	page-break-after: avoid !important; 
-}
-.reveal section .fragment {
-	opacity: 1 !important;
-}
-.reveal img {
-	box-shadow: none;
-}
-.reveal .roll {
-	overflow: visible;
-	line-height: 1em;
-}
-
-.reveal small a {
-	font-size: 16pt !important;
-}
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/beige.css b/docs/slides/plpv14/_support/reveal/css/theme/beige.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/beige.css
+++ /dev/null
@@ -1,179 +0,0 @@
-/**
- * A beige theme for reveal.js presentations, similar 
- * to the default theme.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #333;
-
-	background: #f7f3de;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%, rgba(247,242,211,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(255,255,255,1)), color-stop(100%,rgba(247,242,211,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(255,255,255,1) 0%,rgba(247,242,211,1) 100%);
-}
-
-::-moz-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: #333;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-transform: uppercase;
-}
-
-.reveal h1 {
-	text-shadow: 	0 1px 0 #ccc,
-					0 2px 0 #c9c9c9,
-					0 3px 0 #bbb,
-					0 4px 0 #b9b9b9,
-					0 5px 0 #aaa,
-					0 6px 1px rgba(0,0,0,.1),
-					0 0 5px rgba(0,0,0,.1),
-					0 1px 3px rgba(0,0,0,.3),
-					0 3px 5px rgba(0,0,0,.2),
-					0 5px 10px rgba(0,0,0,.25),
-					0 20px 20px rgba(0,0,0,.15);
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: #8b743d;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: #8b743d;
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #8b743d;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: #8b743d;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: #8b743d;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/default.css b/docs/slides/plpv14/_support/reveal/css/theme/default.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/default.css
+++ /dev/null
@@ -1,223 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.eot');
-	src: url('../../lib/font/league_gothic-webfont.eot?#iefix') format('embedded-opentype'),
-		 url('../../lib/font/league_gothic-webfont.woff') format('woff'),
-		 url('../../lib/font/league_gothic-webfont.ttf') format('truetype'),
-		 url('../../lib/font/league_gothic-webfont.svg#LeagueGothicRegular') format('svg');
-
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/* Undo globally centered text from main.css*/
-.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-
-.reveal p + ul {
-	padding-left: 4%
-}
-
-
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h1 {
-	padding-top: 3%%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-.reveal .titlepage h1,
-.reveal h1.topic {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		color: hsl(185, 85%, 70%);
-		
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #13DAEC;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: hsl(185, 85%, 70%);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: hsl(185, 85%, 50%);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/seminar.css b/docs/slides/plpv14/_support/reveal/css/theme/seminar.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/seminar.css
+++ /dev/null
@@ -1,196 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	// :color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-/*
-.reveal a:not(.image) {
-  line-height: 1.3em; }
-
-
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-*/
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/seminar.orig.css b/docs/slides/plpv14/_support/reveal/css/theme/seminar.orig.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/seminar.orig.css
+++ /dev/null
@@ -1,301 +0,0 @@
-/**
- * The default theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@font-face {
-	font-family: 'League Gothic';
-	src: url('../../lib/font/league_gothic-webfont.ttf') format('truetype');
-	font-weight: normal;
-	font-style: normal;
-}
-
-@font-face {
-		font-family: 'PTSansNarrow';
-        src: url('../../lib/font/PT_Sans-Narrow-Web-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-@font-face {
-		font-family: 'OpenSans';
-        src: url('../../lib/font/OpenSans-Regular.ttf') format('truetype');
-        font-weight: normal;
-        font-style: normal;
-}
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'OpenSans', Times, 'Times New Roman', serif;
-	font-size: 36;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #eee;
-
-	background-image: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiM1NTVhNWYiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjMWMxZTIwIiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background-color: #2b2b2b;
-	background: -moz-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%, rgba(28,30,32,1) 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,rgba(85,90,95,1)), color-stop(100%,rgba(28,30,32,1)));
-	background: -webkit-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -o-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-	background: radial-gradient(center, ellipse cover,  rgba(85,90,95,1) 0%,rgba(28,30,32,1) 100%);
-}
-
-
-/*********************************************
- * main.css OVERIDES
- *********************************************/
-
-
-/*--DW-- uncomment below to undo globally centered text from main.css*/
-
-/*.reveal .slides {
-	text-align: left;
-}
-
-.reveal li {
-	padding-bottom: 0.7em;
-	line-height: 1em;
-}
-.reveal ul ul {
-	padding-left: 8%;
-	padding-top: 0.7em;
-	font-size: 85%;
-}*/
-
-/*--DW--
-* override list width to make multiline list items
-* a bit more manageable
-*/
-.reveal ul {
-	max-width: 80%;
-}
-
-.reveal li {
-	padding-bottom: 0.3em;
-}
-
-/*--DW-- uncenter pararagraph blocks*/
-.reveal .slides p {
-	text-align: left
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2 {
-	margin: 0 0 20px 0;
-	color: #eee;
-	font-family: 'League Gothic', Impact, sans-serif;
-	line-height: 0.9em;
-	letter-spacing: 0.02em;
-	
-	text-align: center;
-	text-transform: uppercase;
-	text-shadow: 0px 1px 0px rgba(0,0,0,1);
-}
-
-.reveal h2 {
-	font-family: 'PTSansNarrow';
-	font-size: 130%;
-}
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-
-
-/*********************************************
- * BLOCKQUOTES
- *********************************************/
-
-/*--DW--*/
-.reveal blockquote
-{   background: rgba(255,255,255, .2);
-    font-size: 75%;
-    text-align: justify;
-    width: 70%;
-    padding: 0.5em 5% 0.2em;
-    margin: 0 10%;
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-    -moz-box-shadow: .1em .1em .5em black inset;
-    box-shadow: .1em .1em .5em black inset;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: hsl(185, 85%, 50%);
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-.reveal a:not(.image):hover {
-	color: hsl(185, 85%, 70%);
-	
-	text-shadow: none;
-	border: none;
-	border-radius: 2px;
-}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: hsl(185, 60%, 35%);
-}
-
-
-/*********************************************
- * IMAGES AND FIGURES
- *********************************************/
-
-/*--DW-- added figures; changed img styling*/
-/*pandoc*/
-.reveal figure {
-	margin-left: auto;
-	margin-right: auto;
-}
-
-/*pandoc*/
-.reveal figcaption {
-	text-align: center;
-	font-size: 75%;
-	font-style: italic;
-}
-.reveal section img,
-.reveal section embed {
-/*	width: 80%;
-	height: 80%;
-*/	display: block;
-	margin-left: auto;
-	margin-right: auto;
-	padding: 15px;
-	background: rgba(255,255,255, .75);
-    border: 2px solid rgba(255, 255, 255, .1);
-    -webkit-box-shadow: .1em .1em .5em black inset;
-       -moz-box-shadow: .1em .1em .5em black inset;
-            box-shadow: .1em .1em .5em black inset;
-
-/*--DW-- original image box styling*/
-/*
--webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-
--webkit-transition: all .2s linear;
-   -moz-transition: all .2s linear;
-    -ms-transition: all .2s linear;
-     -o-transition: all .2s linear;
-        transition: all .2s linear;
-*/
-}
-
-.reveal a:hover img {
-	background: rgba(255,255,255,0.2);
-	border-color: #13DAEC;
-	
-	-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		/*color: hsl(185, 85%, 70%);*/
-		color: rgba(138, 201, 85, 0.60);
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		/*background: hsl(185, 85%, 50%);*/
-		background: rgba(138, 201, 85, 0.60);
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/serif.css b/docs/slides/plpv14/_support/reveal/css/theme/serif.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/serif.css
+++ /dev/null
@@ -1,190 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar
- * to the default theme. The accent color is brown.
- *
- * This theme is Copyright (C) 2012-2013 Owen Versteeg, http://owenversteeg.com - it is MIT licensed.
- */
-.reveal a:not(.image) {
-  line-height: 1.3em; 
-}
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-body {
-  background: #f0f1eb;
-  background-color: #f0f1eb; }
-
-.reveal {
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  font-size: 36px;
-  font-weight: normal;
-  letter-spacing: -0.02em;
-  color: black; }
-
-::selection {
-  color: white;
-  background: #26351c;
-  text-shadow: none; }
-
-/*********************************************
- * HEADERS
- *********************************************/
-.reveal h1,
-.reveal h2,
-.reveal h3,
-.reveal h4,
-.reveal h5,
-.reveal h6 {
-  margin: 0 0 40px 0;
-  color: #383d3d;
-  font-family: "Palatino Linotype", "Book Antiqua", Palatino, FreeSerif, serif;
-  line-height: 0.9em;
-  letter-spacing: 0.02em;
-  text-transform: none;
-  text-shadow: none; }
-
-.reveal h1 {
-  text-shadow: 0px 0px 6px rgba(0, 0, 0, 0.2); }
-
-
-
-/*pandoc*/
-.reveal .level1 h1 {
-	padding-top: 3%;
-	padding-bottom: 0.3em;
-	border-bottom: 1px solid #8e8e8e;
-	font-size: 100%;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h1 {
-	font-size: 3em;
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.05em 0.05em 0.25em blue;
-}
-
-/*pandoc*/
-.reveal .titlepage h2 {
-	font-size: 1em;
-	color: rgba(255,255,255,0.5);
-}
-
-/*pandoc*/
-.reveal .titlepage h3 {
-	font-size: 0.75em;
-	color: rgba(255,255,255,0.5);
-	text-align: center;
-}
-
-/*pandoc*/
-.reveal .topic h1 {
-	font-size: 2.11em;
-	color: rgba(255,255,255,0.9);
-	padding-top: 30%;
-	padding-bottom: 1em;
-	border: none;
-	text-shadow: 0.1em 0.1em 0.1em black;
-}
-
-/*pandoc*/
-.reveal .placeholder h1,
-.reveal .placeholder h2 {
-	border: none;
-}
-
-
-
-/*********************************************
- * LINKS
- *********************************************/
-.reveal a:not(.image) {
-  color: #51483d;
-  text-decoration: none;
-  -webkit-transition: color .15s ease;
-  -moz-transition: color .15s ease;
-  -ms-transition: color .15s ease;
-  -o-transition: color .15s ease;
-  transition: color .15s ease; }
-
-.reveal a:not(.image):hover {
-  color: #8b7c69;
-  text-shadow: none;
-  border: none; }
-
-.reveal .roll span:after {
-  color: #fff;
-  background: #25211c; }
-
-/*********************************************
- * IMAGES
- *********************************************/
-.reveal section img {
-  margin: 15px 0px;
-  background: rgba(255, 255, 255, 0.12);
-  border: 4px solid black;
-  box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-  -webkit-transition: all .2s linear;
-  -moz-transition: all .2s linear;
-  -ms-transition: all .2s linear;
-  -o-transition: all .2s linear;
-  transition: all .2s linear; }
-
-.reveal a:hover img {
-  background: rgba(255, 255, 255, 0.2);
-  border-color: #51483d;
-  box-shadow: 0 0 20px rgba(0, 0, 0, 0.55); }
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-.reveal .controls div.navigate-left,
-.reveal .controls div.navigate-left.enabled {
-  border-right-color: #51483d; }
-
-.reveal .controls div.navigate-right,
-.reveal .controls div.navigate-right.enabled {
-  border-left-color: #51483d; }
-
-.reveal .controls div.navigate-up,
-.reveal .controls div.navigate-up.enabled {
-  border-bottom-color: #51483d; }
-
-.reveal .controls div.navigate-down,
-.reveal .controls div.navigate-down.enabled {
-  border-top-color: #51483d; }
-
-.reveal .controls div.navigate-left.enabled:hover {
-  border-right-color: #8b7c69; }
-
-.reveal .controls div.navigate-right.enabled:hover {
-  border-left-color: #8b7c69; }
-
-.reveal .controls div.navigate-up.enabled:hover {
-  border-bottom-color: #8b7c69; }
-
-.reveal .controls div.navigate-down.enabled:hover {
-  border-top-color: #8b7c69; }
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-.reveal .progress {
-  background: rgba(0, 0, 0, 0.2); }
-
-.reveal .progress span {
-  background: #51483d;
-  -webkit-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -moz-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -ms-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  -o-transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985);
-  transition: width 800ms cubic-bezier(0.26, 0.86, 0.44, 0.985); }
-
-/*********************************************
- * SLIDE NUMBER
- *********************************************/
-.reveal .slide-number {
-  color: #51483d; }
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/simple.css b/docs/slides/plpv14/_support/reveal/css/theme/simple.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/simple.css
+++ /dev/null
@@ -1,150 +0,0 @@
-/**
- * A simple theme for reveal.js presentations, similar 
- * to the default theme. The accent color is darkblue; 
- * do a find-replace to change it.
- * 
- * This theme is Copyright (C) 2012 Owen Versteeg, https://github.com/StereotypicalApps. It is MIT licensed.
- * reveal.js is Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se; so is the theme - beige.css - that this is based off of.
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@import url(http://fonts.googleapis.com/css?family=News+Cycle:400,700);
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Lato', Times, 'Times New Roman', serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: black !important;
-
-	background: white;
-}
-
-::-moz-selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-::selection {
-    background:rgba(0, 0, 0, 0.99);
-	color: white; 
-}
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: black;
-	font-family: 'News Cycle', Impact, sans-serif;
-	line-height: 0.9em;
-	
-	text-transform: uppercase;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: darkblue;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: darkblue;
-}
-
-
-/*********************************************
- * IMAGES
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 4px solid #eee;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: darkblue;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: black;
-}
-	.reveal .controls a.enabled {
-		color: darkblue;
-		opacity: 1;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: darkblue;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/plpv14/_support/reveal/css/theme/sky.css b/docs/slides/plpv14/_support/reveal/css/theme/sky.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/css/theme/sky.css
+++ /dev/null
@@ -1,165 +0,0 @@
-/**
- * Sky theme for reveal.js presentations.
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-
-/*********************************************
- * FONT-FACE DEFINITIONS
- *********************************************/
-
-@import url(http://fonts.googleapis.com/css?family=Quicksand:400,700,400italic,700italic);
-@import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,700italic,400,700);
-
-
-
-/*********************************************
- * GLOBAL STYLES
- *********************************************/
-
-body {
-	font-family: 'Open Sans', sans-serif;
-	font-size: 36px;
-	font-weight: 200;
-	letter-spacing: -0.02em;
-	color: #333;
-
-	background: #f7fbfc;
-	background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPHJhZGlhbEdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgY3g9IjUwJSIgY3k9IjUwJSIgcj0iNzUlIj4KICAgIDxzdG9wIG9mZnNldD0iMCUiIHN0b3AtY29sb3I9IiNmN2ZiZmMiIHN0b3Atb3BhY2l0eT0iMSIvPgogICAgPHN0b3Agb2Zmc2V0PSIxMDAlIiBzdG9wLWNvbG9yPSIjYWRkOWU0IiBzdG9wLW9wYWNpdHk9IjEiLz4KICA8L3JhZGlhbEdyYWRpZW50PgogIDxyZWN0IHg9Ii01MCIgeT0iLTUwIiB3aWR0aD0iMTAxIiBoZWlnaHQ9IjEwMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
-	background: -moz-radial-gradient(center, ellipse cover,  #f7fbfc 0%, #add9e4 100%);
-	background: -webkit-gradient(radial, center center, 0px, center center, 100%, color-stop(0%,#f7fbfc), color-stop(100%,#add9e4));
-	background: -webkit-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: -o-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: -ms-radial-gradient(center, ellipse cover,  #f7fbfc 0%,#add9e4 100%);
-	background: radial-gradient(ellipse at center,  #f7fbfc 0%,#add9e4 100%);
-}
-
-::-moz-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::-webkit-selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-::selection {
-	background:rgba(79, 64, 28, 0.99);
-	color: white; 
-}
-
-
-/*********************************************
- * HEADERS
- *********************************************/
-
-.reveal h1, 
-.reveal h2, 
-.reveal h3, 
-.reveal h4, 
-.reveal h5, 
-.reveal h6 {
-	margin: 0 0 20px 0;
-	color: #333;
-	font-family: 'Quicksand', sans-serif;
-	line-height: 0.9em;
-	letter-spacing: -0.08em;
-	
-	text-transform: uppercase;
-}
-
-
-/*********************************************
- * LINKS
- *********************************************/
-
-.reveal a:not(.image) {
-	color: #3b759e;
-	text-decoration: none;
-
-	-webkit-transition: color .15s ease;
-	   -moz-transition: color .15s ease;
-	    -ms-transition: color .15s ease;
-	     -o-transition: color .15s ease;
-	        transition: color .15s ease;
-}
-	.reveal a:not(.image):hover {
-		text-shadow: none;
-		border: none;
-		border-radius: 2px;
-	}
-
-.reveal .roll span:after {
-	color: #fff;
-	background: #3b759e;
-}
-
-
-/*********************************************
- * MISC
- *********************************************/
-
-.reveal section img {
-	margin: 30px 0 0 0;
-	background: rgba(255,255,255,0.12);
-	border: 1px solid #ddd;
-	
-	-webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	   -moz-box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
-	
-	-webkit-transition: all .2s linear;
-	   -moz-transition: all .2s linear;
-	    -ms-transition: all .2s linear;
-	     -o-transition: all .2s linear;
-	        transition: all .2s linear;
-}
-
-	.reveal a:hover img {
-		background: rgba(255,255,255,0.2);
-		border-color: #3b759e;
-		
-		-webkit-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		   -moz-box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-		        box-shadow: 0 0 20px rgba(0, 0, 0, 0.55);
-	}
-
-.reveal blockquote {
-	background: rgba(255, 255, 255, 0.4);
-}
-
-.reveal p {
-	margin-bottom: 20px;
-}
-
-
-/*********************************************
- * NAVIGATION CONTROLS
- *********************************************/
-
-.reveal .controls a {
-	color: #fff;
-}
-	.reveal .controls a.enabled {
-		color: #3b759e;
-		text-shadow: 0px 0px 2px hsla(185, 45%, 70%, 0.3);
-	}
-
-
-/*********************************************
- * PROGRESS BAR
- *********************************************/
-
-.reveal .progress {
-	background: rgba(0,0,0,0.2);
-}
-	.reveal .progress span {
-		background: #3b759e;
-
-		-webkit-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		   -moz-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		    -ms-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		     -o-transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-		        transition: width 800ms cubic-bezier(0.260, 0.860, 0.440, 0.985);
-	}
-
-
diff --git a/docs/slides/plpv14/_support/reveal/js/.reveal.js.swo b/docs/slides/plpv14/_support/reveal/js/.reveal.js.swo
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/js/.reveal.js.swo and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/js/.reveal.js.swp b/docs/slides/plpv14/_support/reveal/js/.reveal.js.swp
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/js/.reveal.js.swp and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swo b/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swo
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swo and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swp b/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swp
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/js/.reveal.min.js.swp and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/js/reveal.js b/docs/slides/plpv14/_support/reveal/js/reveal.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/js/reveal.js
+++ /dev/null
@@ -1,1149 +0,0 @@
-/*!
- * reveal.js 2.0 r22
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- * 
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var Reveal = (function(){
-	
-	var HORIZONTAL_SLIDES_SELECTOR = '.reveal .slides>section',
-		VERTICAL_SLIDES_SELECTOR = '.reveal .slides>section.present>section',
-
-		IS_TOUCH_DEVICE = !!( 'ontouchstart' in window ),
-
-		// Configurations defaults, can be overridden at initialization time 
-		config = {
-			// Display controls in the bottom right corner
-			controls: true,
-
-			// Display a presentation progress bar
-			progress: true,
-
-			// Push each slide change to the browser history
-			history: false,
-
-			// Enable keyboard shortcuts for navigation
-			keyboard: true,
-
-			// Loop the presentation
-			loop: false,
-
-			// Number of milliseconds between automatically proceeding to the 
-			// next slide, disabled when set to 0
-			autoSlide: 0,
-
-			// Enable slide navigation via mouse wheel
-			mouseWheel: true,
-
-			// Apply a 3D roll to links on hover
-			rollingLinks: true,
-
-			// Transition style (see /css/theme)
-			theme: 'default', 
-
-			// Transition style
-			transition: 'default', // default/cube/page/concave/linear(2d),
-
-			// Script dependencies to load
-			dependencies: []
-		},
-
-		// The horizontal and verical index of the currently active slide
-		indexh = 0,
-		indexv = 0,
-
-		// The previous and current slide HTML elements
-		previousSlide,
-		currentSlide,
-
-		// Slides may hold a data-state attribute which we pick up and apply 
-		// as a class to the body. This list contains the combined state of 
-		// all current slides.
-		state = [],
-
-		// Cached references to DOM elements
-		dom = {},
-
-		// Detect support for CSS 3D transforms
-		supports3DTransforms =  'WebkitPerspective' in document.body.style ||
-                        		'MozPerspective' in document.body.style ||
-                        		'msPerspective' in document.body.style ||
-                        		'OPerspective' in document.body.style ||
-                        		'perspective' in document.body.style,
-        
-        supports2DTransforms =  'WebkitTransform' in document.body.style ||
-                        		'MozTransform' in document.body.style ||
-                        		'msTransform' in document.body.style ||
-                        		'OTransform' in document.body.style ||
-                        		'transform' in document.body.style,
-		
-		// Throttles mouse wheel navigation
-		mouseWheelTimeout = 0,
-
-		// An interval used to automatically move on to the next slide
-		autoSlideTimeout = 0,
-
-		// Delays updates to the URL due to a Chrome thumbnailer bug
-		writeURLTimeout = 0,
-
-		// Holds information about the currently ongoing touch input
-		touch = {
-			startX: 0,
-			startY: 0,
-			startSpan: 0,
-			startCount: 0,
-			handled: false,
-			threshold: 40
-		};
-	
-	
-	/**
-	 * Starts up the presentation if the client is capable.
-	 */
-	function initialize( options ) {
-		if( ( !supports2DTransforms && !supports3DTransforms ) ) {
-			document.body.setAttribute( 'class', 'no-transforms' );
-
-			// If the browser doesn't support core features we won't be 
-			// using JavaScript to control the presentation
-			return;
-		}
-
-		// Copy options over to our config object
-		extend( config, options );
-
-		// Cache references to DOM elements
-		dom.theme = document.querySelector( '#theme' );
-		dom.wrapper = document.querySelector( '.reveal' );
-		dom.progress = document.querySelector( '.reveal .progress' );
-		dom.progressbar = document.querySelector( '.reveal .progress span' );
-
-		if ( config.controls ) {
-			dom.controls = document.querySelector( '.reveal .controls' );
-			dom.controlsLeft = document.querySelector( '.reveal .controls .left' );
-			dom.controlsRight = document.querySelector( '.reveal .controls .right' );
-			dom.controlsUp = document.querySelector( '.reveal .controls .up' );
-			dom.controlsDown = document.querySelector( '.reveal .controls .down' );
-		}
-
-		// Loads the dependencies and continues to #start() once done
-		load();
-
-		// Set up hiding of the browser address bar
-		if( navigator.userAgent.match( /(iphone|ipod|android)/i ) ) {
-			// Give the page some scrollable overflow
-			document.documentElement.style.overflow = 'scroll';
-			document.body.style.height = '120%';
-
-			// Events that should trigger the address bar to hide
-			window.addEventListener( 'load', removeAddressBar, false );
-			window.addEventListener( 'orientationchange', removeAddressBar, false );
-		}
-		
-	}
-
-	/**
-	 * Loads the dependencies of reveal.js. Dependencies are 
-	 * defined via the configuration option 'dependencies' 
-	 * and will be loaded prior to starting/binding reveal.js. 
-	 * Some dependencies may have an 'async' flag, if so they 
-	 * will load after reveal.js has been started up.
-	 */
-	function load() {
-		var scripts = [],
-			scriptsAsync = [];
-
-		for( var i = 0, len = config.dependencies.length; i < len; i++ ) {
-			var s = config.dependencies[i];
-
-			// Load if there's no condition or the condition is truthy
-			if( !s.condition || s.condition() ) {
-				if( s.async ) {
-					scriptsAsync.push( s.src );
-				}
-				else {
-					scripts.push( s.src );
-				}
-
-				// Extension may contain callback functions
-				if( typeof s.callback === 'function' ) {
-					head.ready( s.src.match( /([\w\d_-]*)\.?[^\\\/]*$/i )[0], s.callback );
-				}
-			}
-		}
-
-		// Called once synchronous scritps finish loading
-		function proceed() {
-			// Load asynchronous scripts
-			head.js.apply( null, scriptsAsync );
-			
-			start();
-		}
-
-		if( scripts.length ) {
-			head.ready( proceed );
-
-			// Load synchronous scripts
-			head.js.apply( null, scripts );
-		}
-		else {
-			proceed();
-		}
-	}
-
-	/**
-	 * Starts up reveal.js by binding input events and navigating 
-	 * to the current URL deeplink if there is one.
-	 */
-	function start() {
-		// Subscribe to input
-		addEventListeners();
-
-		// Updates the presentation to match the current configuration values
-		configure();
-
-		// Read the initial hash
-		readURL();
-
-		// Start auto-sliding if it's enabled
-		cueAutoSlide();
-	}
-
-	/**
-	 * Applies the configuration settings from the config object.
-	 */
-	function configure() {
-		if( supports3DTransforms === false ) {
-			config.transition = 'linear';
-		}
-
-		if( config.controls && dom.controls ) {
-			dom.controls.style.display = 'block';
-		}
-
-		if( config.progress && dom.progress ) {
-			dom.progress.style.display = 'block';
-		}
-
-		// Load the theme in the config, if it's not already loaded
-		if( config.theme && dom.theme ) {
-			var themeURL = dom.theme.getAttribute( 'href' );
-			var themeFinder = /[^/]*?(?=\.css)/;
-			var themeName = themeURL.match(themeFinder)[0];
-			if(  config.theme !== themeName ) {
-				themeURL = themeURL.replace(themeFinder, config.theme);
-				dom.theme.setAttribute( 'href', themeURL );
-			}
-		}
-
-
-		if( config.transition !== 'default' ) {
-			dom.wrapper.classList.add( config.transition );
-		}
-
-		if( config.mouseWheel ) {
-			document.addEventListener( 'DOMMouseScroll', onDocumentMouseScroll, false ); // FF
-			document.addEventListener( 'mousewheel', onDocumentMouseScroll, false );
-		}
-
-		if( config.rollingLinks ) {
-			// Add some 3D magic to our anchors
-			linkify();
-		}
-	}
-
-	function addEventListeners() {
-		document.addEventListener( 'touchstart', onDocumentTouchStart, false );
-		document.addEventListener( 'touchmove', onDocumentTouchMove, false );
-		document.addEventListener( 'touchend', onDocumentTouchEnd, false );
-		window.addEventListener( 'hashchange', onWindowHashChange, false );
-
-		if( config.keyboard ) {
-			document.addEventListener( 'keydown', onDocumentKeyDown, false );
-		}
-
-		if ( config.controls && dom.controls ) {
-			dom.controlsLeft.addEventListener( 'click', preventAndForward( navigateLeft ), false );
-			dom.controlsRight.addEventListener( 'click', preventAndForward( navigateRight ), false );
-			dom.controlsUp.addEventListener( 'click', preventAndForward( navigateUp ), false );
-			dom.controlsDown.addEventListener( 'click', preventAndForward( navigateDown ), false );	
-		}
-	}
-
-	function removeEventListeners() {
-		document.removeEventListener( 'keydown', onDocumentKeyDown, false );
-		document.removeEventListener( 'touchstart', onDocumentTouchStart, false );
-		document.removeEventListener( 'touchmove', onDocumentTouchMove, false );
-		document.removeEventListener( 'touchend', onDocumentTouchEnd, false );
-		window.removeEventListener( 'hashchange', onWindowHashChange, false );
-		
-		if ( config.controls && dom.controls ) {
-			dom.controlsLeft.removeEventListener( 'click', preventAndForward( navigateLeft ), false );
-			dom.controlsRight.removeEventListener( 'click', preventAndForward( navigateRight ), false );
-			dom.controlsUp.removeEventListener( 'click', preventAndForward( navigateUp ), false );
-			dom.controlsDown.removeEventListener( 'click', preventAndForward( navigateDown ), false );
-		}
-	}
-
-	/**
-	 * Extend object a with the properties of object b. 
-	 * If there's a conflict, object b takes precedence.
-	 */
-	function extend( a, b ) {
-		for( var i in b ) {
-			a[ i ] = b[ i ];
-		}
-	}
-
-	/**
-	 * Measures the distance in pixels between point a
-	 * and point b. 
-	 * 
-	 * @param {Object} a point with x/y properties
-	 * @param {Object} b point with x/y properties
-	 */
-	function distanceBetween( a, b ) {
-		var dx = a.x - b.x,
-			dy = a.y - b.y;
-
-		return Math.sqrt( dx*dx + dy*dy );
-	}
-
-	/**
-	 * Prevents an events defaults behavior calls the 
-	 * specified delegate.
-	 * 
-	 * @param {Function} delegate The method to call 
-	 * after the wrapper has been executed
-	 */
-	function preventAndForward( delegate ) {
-		return function( event ) {
-			event.preventDefault();
-			delegate.call();
-		}
-	}
-
-	/**
-	 * Causes the address bar to hide on mobile devices, 
-	 * more vertical space ftw.
-	 */
-	function removeAddressBar() {
-		setTimeout( function() {
-			window.scrollTo( 0, 1 );
-		}, 0 );
-	}
-	
-	/**
-	 * Handler for the document level 'keydown' event.
-	 * 
-	 * @param {Object} event
-	 */
-	function onDocumentKeyDown( event ) {
-		// FFT: Use document.querySelector( ':focus' ) === null 
-		// instead of checking contentEditable?
-
-		// Disregard the event if the target is editable or a 
-		// modifier is present
-		if ( event.target.contentEditable != 'inherit' || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-				
-		var triggered = false;
-
-		switch( event.keyCode ) {
-			// p, page up
-			case 80: case 33: navigatePrev(); triggered = true; break; 
-			// n, page down
-			case 78: case 34: navigateNext(); triggered = true; break;
-			// h, left
-			case 72: case 37: navigateLeft(); triggered = true; break;
-			// l, right
-			case 76: case 39: navigateRight(); triggered = true; break;
-			// k, up
-			case 75: case 38: navigateUp(); triggered = true; break;
-			// j, down
-			case 74: case 40: navigateDown(); triggered = true; break;
-			// home
-			case 36: navigateTo( 0 ); triggered = true; break;
-			// end
-			case 35: navigateTo( Number.MAX_VALUE ); triggered = true; break;
-			// space
-			case 32: overviewIsActive() ? deactivateOverview() : navigateNext(); triggered = true; break;
-			// return
-			case 13: if( overviewIsActive() ) { deactivateOverview(); triggered = true; } break;
-		}
-
-		// If the input resulted in a triggered action we should prevent 
-		// the browsers default behavior
-		if( triggered ) {
-			event.preventDefault();
-		}
-		else if ( event.keyCode === 27 && supports3DTransforms ) {
-			toggleOverview();
-	
-			event.preventDefault();
-		}
-
-		// If auto-sliding is enabled we need to cue up 
-		// another timeout
-		cueAutoSlide();
-
-	}
-
-	/**
-	 * Handler for the document level 'touchstart' event,
-	 * enables support for swipe and pinch gestures.
-	 */
-	function onDocumentTouchStart( event ) {
-		touch.startX = event.touches[0].clientX;
-		touch.startY = event.touches[0].clientY;
-		touch.startCount = event.touches.length;
-
-		// If there's two touches we need to memorize the distance 
-		// between those two points to detect pinching
-		if( event.touches.length === 2 ) {
-			touch.startSpan = distanceBetween( {
-				x: event.touches[1].clientX,
-				y: event.touches[1].clientY
-			}, {
-				x: touch.startX,
-				y: touch.startY
-			} );
-		}
-	}
-	
-	/**
-	 * Handler for the document level 'touchmove' event.
-	 */
-	function onDocumentTouchMove( event ) {
-		// Each touch should only trigger one action
-		if( !touch.handled ) {
-			var currentX = event.touches[0].clientX;
-			var currentY = event.touches[0].clientY;
-
-			// If the touch started off with two points and still has 
-			// two active touches; test for the pinch gesture
-			if( event.touches.length === 2 && touch.startCount === 2 ) {
-
-				// The current distance in pixels between the two touch points
-				var currentSpan = distanceBetween( {
-					x: event.touches[1].clientX,
-					y: event.touches[1].clientY
-				}, {
-					x: touch.startX,
-					y: touch.startY
-				} );
-
-				// If the span is larger than the desire amount we've got 
-				// ourselves a pinch
-				if( Math.abs( touch.startSpan - currentSpan ) > touch.threshold ) {
-					touch.handled = true;
-
-					if( currentSpan < touch.startSpan ) {
-						activateOverview();
-					}
-					else {
-						deactivateOverview();
-					}
-				}
-
-			}
-			// There was only one touch point, look for a swipe
-			else if( event.touches.length === 1 ) {
-				var deltaX = currentX - touch.startX,
-					deltaY = currentY - touch.startY;
-
-				if( deltaX > touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.handled = true;
-					navigateLeft();
-				} 
-				else if( deltaX < -touch.threshold && Math.abs( deltaX ) > Math.abs( deltaY ) ) {
-					touch.handled = true;
-					navigateRight();
-				} 
-				else if( deltaY > touch.threshold ) {
-					touch.handled = true;
-					navigateUp();
-				} 
-				else if( deltaY < -touch.threshold ) {
-					touch.handled = true;
-					navigateDown();
-				}
-			}
-
-			event.preventDefault();
-		}
-	}
-
-	/**
-	 * Handler for the document level 'touchend' event.
-	 */
-	function onDocumentTouchEnd( event ) {
-		touch.handled = false;
-	}
-
-	/**
-	 * Handles mouse wheel scrolling, throttled to avoid 
-	 * skipping multiple slides.
-	 */
-	function onDocumentMouseScroll( event ){
-		clearTimeout( mouseWheelTimeout );
-
-		mouseWheelTimeout = setTimeout( function() {
-			var delta = event.detail || -event.wheelDelta;
-			if( delta > 0 ) {
-				navigateNext();
-			}
-			else {
-				navigatePrev();
-			}
-		}, 100 );
-	}
-	
-	/**
-	 * Handler for the window level 'hashchange' event.
-	 * 
-	 * @param {Object} event
-	 */
-	function onWindowHashChange( event ) {
-		readURL();
-	}
-
-	/**
-	 * Wrap all links in 3D goodness.
-	 */
-	function linkify() {
-		if( supports3DTransforms && !( 'msPerspective' in document.body.style ) ) {
-        	var nodes = document.querySelectorAll( '.reveal .slides section a:not(.image)' );
-
-	        for( var i = 0, len = nodes.length; i < len; i++ ) {
-	            var node = nodes[i];
-	            
-	            if( node.textContent && !node.querySelector( 'img' ) && ( !node.className || !node.classList.contains( node, 'roll' ) ) ) {
-	                node.classList.add( 'roll' );
-	                node.innerHTML = '<span data-title="'+ node.text +'">' + node.innerHTML + '</span>';
-	            }
-	        };
-        }
-	}
-
-	/**
-	 * Displays the overview of slides (quick nav) by 
-	 * scaling down and arranging all slide elements.
-	 * 
-	 * Experimental feature, might be dropped if perf 
-	 * can't be improved.
-	 */
-	function activateOverview() {
-		
-		dom.wrapper.classList.add( 'overview' );
-
-		var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-		for( var i = 0, len1 = horizontalSlides.length; i < len1; i++ ) {
-			var hslide = horizontalSlides[i],
-				htransform = 'translateZ(-2500px) translate(' + ( ( i - indexh ) * 105 ) + '%, 0%)';
-			
-			hslide.setAttribute( 'data-index-h', i );
-			hslide.style.display = 'block';
-			hslide.style.WebkitTransform = htransform;
-			hslide.style.MozTransform = htransform;
-			hslide.style.msTransform = htransform;
-			hslide.style.OTransform = htransform;
-			hslide.style.transform = htransform;
-		
-			if( !hslide.classList.contains( 'stack' ) ) {
-				// Navigate to this slide on click
-				hslide.addEventListener( 'click', onOverviewSlideClicked, true );
-			}
-	
-			var verticalSlides = Array.prototype.slice.call( hslide.querySelectorAll( 'section' ) );
-
-			for( var j = 0, len2 = verticalSlides.length; j < len2; j++ ) {
-				var vslide = verticalSlides[j],
-					vtransform = 'translate(0%, ' + ( ( j - ( i === indexh ? indexv : 0 ) ) * 105 ) + '%)';
-
-				vslide.setAttribute( 'data-index-h', i );
-				vslide.setAttribute( 'data-index-v', j );
-				vslide.style.display = 'block';
-				vslide.style.WebkitTransform = vtransform;
-				vslide.style.MozTransform = vtransform;
-				vslide.style.msTransform = vtransform;
-				vslide.style.OTransform = vtransform;
-				vslide.style.transform = vtransform;
-
-				// Navigate to this slide on click
-				vslide.addEventListener( 'click', onOverviewSlideClicked, true );
-			}
-			
-		}
-	}
-	
-	/**
-	 * Exits the slide overview and enters the currently
-	 * active slide.
-	 */
-	function deactivateOverview() {
-		dom.wrapper.classList.remove( 'overview' );
-
-		var slides = Array.prototype.slice.call( document.querySelectorAll( '.reveal .slides section' ) );
-
-		for( var i = 0, len = slides.length; i < len; i++ ) {
-			var element = slides[i];
-
-			// Resets all transforms to use the external styles
-			element.style.WebkitTransform = '';
-			element.style.MozTransform = '';
-			element.style.msTransform = '';
-			element.style.OTransform = '';
-			element.style.transform = '';
-
-			element.removeEventListener( 'click', onOverviewSlideClicked );
-		}
-
-		slide();
-	}
-
-	/**
-	 * Checks if the overview is currently active.
-	 * 
-	 * @return {Boolean} true if the overview is active,
-	 * false otherwise
-	 */
-	function overviewIsActive() {
-		return dom.wrapper.classList.contains( 'overview' );
-	}
-
-	/**
-	 * Invoked when a slide is and we're in the overview.
-	 */
-	function onOverviewSlideClicked( event ) {
-		// TODO There's a bug here where the event listeners are not 
-		// removed after deactivating the overview.
-		if( overviewIsActive() ) {
-			event.preventDefault();
-
-			deactivateOverview();
-
-			indexh = this.getAttribute( 'data-index-h' );
-			indexv = this.getAttribute( 'data-index-v' );
-
-			slide();
-		}
-	}
-
-	/**
-	 * Updates one dimension of slides by showing the slide
-	 * with the specified index.
-	 * 
-	 * @param {String} selector A CSS selector that will fetch
-	 * the group of slides we are working with
-	 * @param {Number} index The index of the slide that should be
-	 * shown
-	 * 
-	 * @return {Number} The index of the slide that is now shown,
-	 * might differ from the passed in index if it was out of 
-	 * bounds.
-	 */
-	function updateSlides( selector, index ) {
-		
-		// Select all slides and convert the NodeList result to
-		// an array
-		var slides = Array.prototype.slice.call( document.querySelectorAll( selector ) ),
-			slidesLength = slides.length;
-		
-		if( slidesLength ) {
-
-			// Should the index loop?
-			if( config.loop ) {
-				index %= slidesLength;
-
-				if( index < 0 ) {
-					index = slidesLength + index;
-				}
-			}
-			
-			// Enforce max and minimum index bounds
-			index = Math.max( Math.min( index, slidesLength - 1 ), 0 );
-			
-			for( var i = 0; i < slidesLength; i++ ) {
-				var slide = slides[i];
-
-				// Optimization; hide all slides that are three or more steps 
-				// away from the present slide
-				if( overviewIsActive() === false ) {
-					// The distance loops so that it measures 1 between the first
-					// and last slides
-					var distance = Math.abs( ( index - i ) % ( slidesLength - 3 ) ) || 0;
-
-					slide.style.display = distance > 3 ? 'none' : 'block';
-				}
-
-				slides[i].classList.remove( 'past' );
-				slides[i].classList.remove( 'present' );
-				slides[i].classList.remove( 'future' );
-
-				if( i < index ) {
-					// Any element previous to index is given the 'past' class
-					slides[i].classList.add( 'past' );
-				}
-				else if( i > index ) {
-					// Any element subsequent to index is given the 'future' class
-					slides[i].classList.add( 'future' );
-				}
-
-				// If this element contains vertical slides
-				if( slide.querySelector( 'section' ) ) {
-					slides[i].classList.add( 'stack' );
-				}
-			}
-
-			// Mark the current slide as present
-			slides[index].classList.add( 'present' );
-
-			// If this slide has a state associated with it, add it
-			// onto the current state of the deck
-			var slideState = slides[index].getAttribute( 'data-state' );
-			if( slideState ) {
-				state = state.concat( slideState.split( ' ' ) );
-			}
-		}
-		else {
-			// Since there are no slides we can't be anywhere beyond the 
-			// zeroth index
-			index = 0;
-		}
-		
-		return index;
-		
-	}
-	
-	/**
-	 * Updates the visual slides to represent the currently
-	 * set indices. 
-	 */
-	function slide( h, v ) {
-		// Remember where we were at before
-		previousSlide = currentSlide;
-
-		// Remember the state before this slide
-		var stateBefore = state.concat();
-
-		// Reset the state array
-		state.length = 0;
-
-		var indexhBefore = indexh,
-			indexvBefore = indexv;
-
-		// Activate and transition to the new slide
-		indexh = updateSlides( HORIZONTAL_SLIDES_SELECTOR, h === undefined ? indexh : h );
-		indexv = updateSlides( VERTICAL_SLIDES_SELECTOR, v === undefined ? indexv : v );
-
-		// Apply the new state
-		stateLoop: for( var i = 0, len = state.length; i < len; i++ ) {
-			// Check if this state existed on the previous slide. If it 
-			// did, we will avoid adding it repeatedly.
-			for( var j = 0; j < stateBefore.length; j++ ) {
-				if( stateBefore[j] === state[i] ) {
-					stateBefore.splice( j, 1 );
-					continue stateLoop;
-				}
-			}
-
-			document.documentElement.classList.add( state[i] );
-
-			// Dispatch custom event matching the state's name
-			dispatchEvent( state[i] );
-		}
-
-		// Clean up the remaints of the previous state
-		while( stateBefore.length ) {
-			document.documentElement.classList.remove( stateBefore.pop() );
-		}
-
-		// Update progress if enabled
-		if( config.progress && dom.progress ) {
-			dom.progressbar.style.width = ( indexh / ( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ).length - 1 ) ) * window.innerWidth + 'px';
-		}
-
-		// Close the overview if it's active
-		if( overviewIsActive() ) {
-			activateOverview();
-		}
-
-		updateControls();
-		
-		clearTimeout( writeURLTimeout );
-		writeURLTimeout = setTimeout( writeURL, 1500 );
-
-		// Query all horizontal slides in the deck
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-
-		// Find the current horizontal slide and any possible vertical slides
-		// within it
-		var currentHorizontalSlide = horizontalSlides[ indexh ],
-			currentVerticalSlides = currentHorizontalSlide.querySelectorAll( 'section' );
-
-		// Store references to the previous and current slides
-		currentSlide = currentVerticalSlides[ indexv ] || currentHorizontalSlide;
-
-		// Dispatch an event if the slide changed
-		if( indexh !== indexhBefore || indexv !== indexvBefore ) {
-			dispatchEvent( 'slidechanged', {
-				'indexh': indexh, 
-				'indexv': indexv,
-				'previousSlide': previousSlide,
-				'currentSlide': currentSlide
-			} );
-		}
-		else {
-			// Ensure that the previous slide is never the same as the current
-			previousSlide = null;
-		}
-
-		// Solves an edge case where the previous slide maintains the 
-		// 'present' class when navigating between adjacent vertical 
-		// stacks
-		if( previousSlide ) {
-			previousSlide.classList.remove( 'present' );
-		}
-	}
-
-	/**
-	 * Updates the state and link pointers of the controls.
-	 */
-	function updateControls() {
-		if ( !config.controls || !dom.controls ) {
-			return;
-		}
-		
-		var routes = availableRoutes();
-
-		// Remove the 'enabled' class from all directions
-		[ dom.controlsLeft, dom.controlsRight, dom.controlsUp, dom.controlsDown ].forEach( function( node ) {
-			node.classList.remove( 'enabled' );
-		} )
-
-		if( routes.left ) dom.controlsLeft.classList.add( 'enabled' );
-		if( routes.right ) dom.controlsRight.classList.add( 'enabled' );
-		if( routes.up ) dom.controlsUp.classList.add( 'enabled' );
-		if( routes.down ) dom.controlsDown.classList.add( 'enabled' );
-	}
-
-	/**
-	 * Determine what available routes there are for navigation.
-	 * 
-	 * @return {Object} containing four booleans: left/right/up/down
-	 */
-	function availableRoutes() {
-		var horizontalSlides = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR );
-		var verticalSlides = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR );
-
-		return {
-			left: indexh > 0,
-			right: indexh < horizontalSlides.length - 1,
-			up: indexv > 0,
-			down: indexv < verticalSlides.length - 1
-		};
-	}
-	
-	/**
-	 * Reads the current URL (hash) and navigates accordingly.
-	 */
-	function readURL() {
-		var hash = window.location.hash;
-
-		// Attempt to parse the hash as either an index or name
-		var bits = hash.slice( 2 ).split( '/' ),
-			name = hash.replace( /#|\//gi, '' );
-
-		// If the first bit is invalid and there is a name we can 
-		// assume that this is a named link
-		if( isNaN( parseInt( bits[0] ) ) && name.length ) {
-			// Find the slide with the specified name
-			var slide = document.querySelector( '#' + name );
-
-			if( slide ) {
-				// Find the position of the named slide and navigate to it
-				var indices = Reveal.getIndices( slide );
-				navigateTo( indices.h, indices.v );
-			}
-			// If the slide doesn't exist, navigate to the current slide
-			else {
-				navigateTo( indexh, indexv );
-			}
-		}
-		else {
-			// Read the index components of the hash
-			var h = parseInt( bits[0] ) || 0,
-				v = parseInt( bits[1] ) || 0;
-
-			navigateTo( h, v );
-		}
-	}
-	
-	/**
-	 * Updates the page URL (hash) to reflect the current
-	 * state. 
-	 */
-	function writeURL() {
-		if( config.history ) {
-			var url = '/';
-			
-			// Only include the minimum possible number of components in
-			// the URL
-			if( indexh > 0 || indexv > 0 ) url += indexh;
-			if( indexv > 0 ) url += '/' + indexv;
-			
-			window.location.hash = url;
-		}
-	}
-
-	/**
-	 * Dispatches an event of the specified type from the 
-	 * reveal DOM element.
-	 */
-	function dispatchEvent( type, properties ) {
-		var event = document.createEvent( "HTMLEvents", 1, 2 );
-		event.initEvent( type, true, true );
-		extend( event, properties );
-		dom.wrapper.dispatchEvent( event );
-	}
-
-	/**
-	 * Navigate to the next slide fragment.
-	 * 
-	 * @return {Boolean} true if there was a next fragment,
-	 * false otherwise
-	 */
-	function nextFragment() {
-		// Vertical slides:
-		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
-			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
-			if( verticalFragments.length ) {
-				verticalFragments[0].classList.add( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmentshown', { fragment: verticalFragments[0] } );
-				return true;
-			}
-		}
-		// Horizontal slides:
-		else {
-			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment:not(.visible)' );
-			if( horizontalFragments.length ) {
-				horizontalFragments[0].classList.add( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmentshown', { fragment: horizontalFragments[0] } );
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Navigate to the previous slide fragment.
-	 * 
-	 * @return {Boolean} true if there was a previous fragment,
-	 * false otherwise
-	 */
-	function previousFragment() {
-		// Vertical slides:
-		if( document.querySelector( VERTICAL_SLIDES_SELECTOR + '.present' ) ) {
-			var verticalFragments = document.querySelectorAll( VERTICAL_SLIDES_SELECTOR + '.present .fragment.visible' );
-			if( verticalFragments.length ) {
-				verticalFragments[ verticalFragments.length - 1 ].classList.remove( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmenthidden', { fragment: verticalFragments[ verticalFragments.length - 1 ] } );
-				return true;
-			}
-		}
-		// Horizontal slides:
-		else {
-			var horizontalFragments = document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR + '.present .fragment.visible' );
-			if( horizontalFragments.length ) {
-				horizontalFragments[ horizontalFragments.length - 1 ].classList.remove( 'visible' );
-
-				// Notify subscribers of the change
-				dispatchEvent( 'fragmenthidden', { fragment: horizontalFragments[ horizontalFragments.length - 1 ] } );
-				return true;
-			}
-		}
-		
-		return false;
-	}
-
-	function cueAutoSlide() {
-		clearTimeout( autoSlideTimeout );
-
-		// Cue the next auto-slide if enabled
-		if( config.autoSlide ) {
-			autoSlideTimeout = setTimeout( navigateNext, config.autoSlide );
-		}
-	}
-	
-	/**
-	 * Triggers a navigation to the specified indices.
-	 * 
-	 * @param {Number} h The horizontal index of the slide to show
-	 * @param {Number} v The vertical index of the slide to show
-	 */
-	function navigateTo( h, v ) {
-		slide( h, v );
-	}
-	
-	function navigateLeft() {
-		// Prioritize hiding fragments
-		if( overviewIsActive() || previousFragment() === false ) {
-			slide( indexh - 1, 0 );
-		}
-	}
-	function navigateRight() {
-		// Prioritize revealing fragments
-		if( overviewIsActive() || nextFragment() === false ) {
-			slide( indexh + 1, 0 );
-		}
-	}
-	function navigateUp() {
-		// Prioritize hiding fragments
-		if( overviewIsActive() || previousFragment() === false ) {
-			slide( indexh, indexv - 1 );
-		}
-	}
-	function navigateDown() {
-		// Prioritize revealing fragments
-		if( overviewIsActive() || nextFragment() === false ) {
-			slide( indexh, indexv + 1 );
-		}
-	}
-
-	/**
-	 * Navigates backwards, prioritized in the following order:
-	 * 1) Previous fragment
-	 * 2) Previous vertical slide
-	 * 3) Previous horizontal slide
-	 */
-	function navigatePrev() {
-		// Prioritize revealing fragments
-		if( previousFragment() === false ) {
-			if( availableRoutes().up ) {
-				navigateUp();
-			}
-			else {
-				// Fetch the previous horizontal slide, if there is one
-				var previousSlide = document.querySelector( '.reveal .slides>section.past:nth-child(' + indexh + ')' );
-
-				if( previousSlide ) {
-					indexv = ( previousSlide.querySelectorAll('section').length + 1 ) || 0;
-					indexh --;
-					slide();
-				}
-			}
-		}
-	}
-
-	/**
-	 * Same as #navigatePrev() but navigates forwards.
-	 */
-	function navigateNext() {
-		// Prioritize revealing fragments
-		if( nextFragment() === false ) {
-			availableRoutes().down ? navigateDown() : navigateRight();
-		}
-
-		// If auto-sliding is enabled we need to cue up 
-		// another timeout
-		cueAutoSlide();
-	}
-
-	/**
-	 * Toggles the slide overview mode on and off.
-	 */
-	function toggleOverview() {
-		if( overviewIsActive() ) {
-			deactivateOverview();
-		}
-		else {
-			activateOverview();
-		}
-	}
-	
-	// Expose some methods publicly
-	return {
-		initialize: initialize,
-		navigateTo: navigateTo,
-		navigateLeft: navigateLeft,
-		navigateRight: navigateRight,
-		navigateUp: navigateUp,
-		navigateDown: navigateDown,
-		navigatePrev: navigatePrev,
-		navigateNext: navigateNext,
-		toggleOverview: toggleOverview,
-
-		// Adds or removes all internal event listeners (such as keyboard)
-		addEventListeners: addEventListeners,
-		removeEventListeners: removeEventListeners,
-
-		// Returns the indices of the current, or specified, slide
-		getIndices: function( slide ) {
-			// By default, return the current indices
-			var h = indexh,
-				v = indexv;
-
-			// If a slide is specified, return the indices of that slide
-			if( slide ) {
-				var isVertical = !!slide.parentNode.nodeName.match( /section/gi );
-				var slideh = isVertical ? slide.parentNode : slide;
-
-				// Select all horizontal slides
-				var horizontalSlides = Array.prototype.slice.call( document.querySelectorAll( HORIZONTAL_SLIDES_SELECTOR ) );
-
-				// Now that we know which the horizontal slide is, get its index
-				h = Math.max( horizontalSlides.indexOf( slideh ), 0 );
-
-				// If this is a vertical slide, grab the vertical index
-				if( isVertical ) {
-					v = Math.max( Array.prototype.slice.call( slide.parentNode.children ).indexOf( slide ), 0 );
-				}
-			}
-
-			return { h: h, v: v };
-		},
-
-		// Returns the previous slide element, may be null
-		getPreviousSlide: function() {
-			return previousSlide
-		},
-
-		// Returns the current slide element
-		getCurrentSlide: function() {
-			return currentSlide
-		},
-
-		// Helper method, retrieves query string as a key/value hash
-		getQueryHash: function() {
-			var query = {};
-
-			location.search.replace( /[A-Z0-9]+?=(\w*)/gi, function(a) {
-				query[ a.split( '=' ).shift() ] = a.split( '=' ).pop();
-			} );
-
-			return query;
-		},
-
-		// Forward event binding to the reveal DOM element
-		addEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).addEventListener( type, listener, useCapture );
-			}
-		},
-		removeEventListener: function( type, listener, useCapture ) {
-			if( 'addEventListener' in window ) {
-				( dom.wrapper || document.querySelector( '.reveal' ) ).removeEventListener( type, listener, useCapture );
-			}
-		}
-	};
-	
-})();
diff --git a/docs/slides/plpv14/_support/reveal/js/reveal.min.js b/docs/slides/plpv14/_support/reveal/js/reveal.min.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/js/reveal.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/*!
- * reveal.js 2.0 r22
- * http://lab.hakim.se/reveal-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var Reveal=(function(){var k=".reveal .slides>section",b=".reveal .slides>section.present>section",e=!!("ontouchstart" in window),N={controls:true,progress:true,history:false,keyboard:true,loop:false,autoSlide:0,mouseWheel:true,rollingLinks:true,theme:"default",transition:"default",dependencies:[]},l=0,c=0,w,E,ac=[],d={},P="WebkitPerspective" in document.body.style||"MozPerspective" in document.body.style||"msPerspective" in document.body.style||"OPerspective" in document.body.style||"perspective" in document.body.style,m="WebkitTransform" in document.body.style||"MozTransform" in document.body.style||"msTransform" in document.body.style||"OTransform" in document.body.style||"transform" in document.body.style,x=0,j=0,B=0,W={startX:0,startY:0,startSpan:0,startCount:0,handled:false,threshold:40};function h(ad){if((!m&&!P)){document.body.setAttribute("class","no-transforms");return}r(N,ad);d.theme=document.querySelector("#theme");d.wrapper=document.querySelector(".reveal");d.progress=document.querySelector(".reveal .progress");d.progressbar=document.querySelector(".reveal .progress span");if(N.controls){d.controls=document.querySelector(".reveal .controls");d.controlsLeft=document.querySelector(".reveal .controls .left");d.controlsRight=document.querySelector(".reveal .controls .right");d.controlsUp=document.querySelector(".reveal .controls .up");d.controlsDown=document.querySelector(".reveal .controls .down")}R();if(navigator.userAgent.match(/(iphone|ipod|android)/i)){document.documentElement.style.overflow="scroll";document.body.style.height="120%";window.addEventListener("load",X,false);window.addEventListener("orientationchange",X,false)}}function R(){var ae=[],ai=[];for(var af=0,ad=N.dependencies.length;af<ad;af++){var ag=N.dependencies[af];if(!ag.condition||ag.condition()){if(ag.async){ai.push(ag.src)}else{ae.push(ag.src)}if(typeof ag.callback==="function"){head.ready(ag.src.match(/([\w\d_-]*)\.?[^\\\/]*$/i)[0],ag.callback)}}}function ah(){head.js.apply(null,ai);F()}if(ae.length){head.ready(ah);head.js.apply(null,ae)}else{ah()}}function F(){C();I();H();K()}function I(){if(P===false){N.transition="linear"}if(N.controls&&d.controls){d.controls.style.display="block"}if(N.progress&&d.progress){d.progress.style.display="block"}if(N.theme&&d.theme){var af=d.theme.getAttribute("href");var ad=/[^/]*?(?=\.css)/;var ae=af.match(ad)[0];if(N.theme!==ae){af=af.replace(ad,N.theme);d.theme.setAttribute("href",af)}}if(N.transition!=="default"){d.wrapper.classList.add(N.transition)}if(N.mouseWheel){document.addEventListener("DOMMouseScroll",n,false);document.addEventListener("mousewheel",n,false)}if(N.rollingLinks){J()}}function C(){document.addEventListener("touchstart",y,false);document.addEventListener("touchmove",Z,false);document.addEventListener("touchend",S,false);window.addEventListener("hashchange",u,false);if(N.keyboard){document.addEventListener("keydown",aa,false)}if(N.controls&&d.controls){d.controlsLeft.addEventListener("click",o(z),false);d.controlsRight.addEventListener("click",o(i),false);d.controlsUp.addEventListener("click",o(s),false);d.controlsDown.addEventListener("click",o(D),false)}}function Q(){document.removeEventListener("keydown",aa,false);document.removeEventListener("touchstart",y,false);document.removeEventListener("touchmove",Z,false);document.removeEventListener("touchend",S,false);window.removeEventListener("hashchange",u,false);if(N.controls&&d.controls){d.controlsLeft.removeEventListener("click",o(z),false);d.controlsRight.removeEventListener("click",o(i),false);d.controlsUp.removeEventListener("click",o(s),false);d.controlsDown.removeEventListener("click",o(D),false)}}function r(ae,ad){for(var af in ad){ae[af]=ad[af]}}function O(af,ad){var ag=af.x-ad.x,ae=af.y-ad.y;return Math.sqrt(ag*ag+ae*ae)}function o(ad){return function(ae){ae.preventDefault();ad.call()}}function X(){setTimeout(function(){window.scrollTo(0,1)},0)}function aa(ae){if(ae.target.contentEditable!="inherit"||ae.shiftKey||ae.altKey||ae.ctrlKey||ae.metaKey){return}var ad=false;switch(ae.keyCode){case 80:case 33:U();ad=true;break;case 78:case 34:v();ad=true;break;case 72:case 37:z();ad=true;break;case 76:case 39:i();ad=true;break;case 75:case 38:s();ad=true;break;case 74:case 40:D();ad=true;break;case 36:L(0);ad=true;break;case 35:L(Number.MAX_VALUE);ad=true;break;case 32:V()?Y():v();ad=true;break;case 13:if(V()){Y();ad=true}break}if(ad){ae.preventDefault()}else{if(ae.keyCode===27&&P){T();ae.preventDefault()}}K()}function y(ad){W.startX=ad.touches[0].clientX;W.startY=ad.touches[0].clientY;W.startCount=ad.touches.length;if(ad.touches.length===2){W.startSpan=O({x:ad.touches[1].clientX,y:ad.touches[1].clientY},{x:W.startX,y:W.startY})}}function Z(ai){if(!W.handled){var ag=ai.touches[0].clientX;var af=ai.touches[0].clientY;if(ai.touches.length===2&&W.startCount===2){var ah=O({x:ai.touches[1].clientX,y:ai.touches[1].clientY},{x:W.startX,y:W.startY});if(Math.abs(W.startSpan-ah)>W.threshold){W.handled=true;if(ah<W.startSpan){G()}else{Y()}}}else{if(ai.touches.length===1){var ae=ag-W.startX,ad=af-W.startY;if(ae>W.threshold&&Math.abs(ae)>Math.abs(ad)){W.handled=true;z()}else{if(ae<-W.threshold&&Math.abs(ae)>Math.abs(ad)){W.handled=true;i()}else{if(ad>W.threshold){W.handled=true;s()}else{if(ad<-W.threshold){W.handled=true;D()}}}}}}ai.preventDefault()}}function S(ad){W.handled=false}function n(ad){clearTimeout(x);x=setTimeout(function(){var ae=ad.detail||-ad.wheelDelta;if(ae>0){v()}else{U()}},100)}function u(ad){H()}function J(){if(P&&!("msPerspective" in document.body.style)){var ae=document.querySelectorAll(".reveal .slides section a:not(.image)");for(var af=0,ad=ae.length;af<ad;af++){var ag=ae[af];if(ag.textContent&&!ag.querySelector("img")&&(!ag.className||!ag.classList.contains(ag,"roll"))){ag.classList.add("roll");ag.innerHTML='<span data-title="'+ag.text+'">'+ag.innerHTML+"</span>"}}}}function G(){d.wrapper.classList.add("overview");var ad=Array.prototype.slice.call(document.querySelectorAll(k));for(var ai=0,ag=ad.length;ai<ag;ai++){var af=ad[ai],am="translateZ(-2500px) translate("+((ai-l)*105)+"%, 0%)";af.setAttribute("data-index-h",ai);af.style.display="block";af.style.WebkitTransform=am;af.style.MozTransform=am;af.style.msTransform=am;af.style.OTransform=am;af.style.transform=am;if(!af.classList.contains("stack")){af.addEventListener("click",A,true)}var al=Array.prototype.slice.call(af.querySelectorAll("section"));for(var ah=0,ae=al.length;ah<ae;ah++){var ak=al[ah],aj="translate(0%, "+((ah-(ai===l?c:0))*105)+"%)";ak.setAttribute("data-index-h",ai);ak.setAttribute("data-index-v",ah);ak.style.display="block";ak.style.WebkitTransform=aj;ak.style.MozTransform=aj;ak.style.msTransform=aj;ak.style.OTransform=aj;ak.style.transform=aj;ak.addEventListener("click",A,true)}}}function Y(){d.wrapper.classList.remove("overview");var ag=Array.prototype.slice.call(document.querySelectorAll(".reveal .slides section"));for(var af=0,ad=ag.length;af<ad;af++){var ae=ag[af];ae.style.WebkitTransform="";ae.style.MozTransform="";ae.style.msTransform="";ae.style.OTransform="";ae.style.transform="";ae.removeEventListener("click",A)}a()}function V(){return d.wrapper.classList.contains("overview")}function A(ad){if(V()){ad.preventDefault();Y();l=this.getAttribute("data-index-h");c=this.getAttribute("data-index-v");a()}}function ab(ae,ag){var ai=Array.prototype.slice.call(document.querySelectorAll(ae)),aj=ai.length;if(aj){if(N.loop){ag%=aj;if(ag<0){ag=aj+ag}}ag=Math.max(Math.min(ag,aj-1),0);for(var ah=0;ah<aj;ah++){var ad=ai[ah];if(V()===false){var ak=Math.abs((ag-ah)%(aj-3))||0;ad.style.display=ak>3?"none":"block"}ai[ah].classList.remove("past");ai[ah].classList.remove("present");ai[ah].classList.remove("future");if(ah<ag){ai[ah].classList.add("past")}else{if(ah>ag){ai[ah].classList.add("future")}}if(ad.querySelector("section")){ai[ah].classList.add("stack")}}ai[ag].classList.add("present");var af=ai[ag].getAttribute("data-state");if(af){ac=ac.concat(af.split(" "))}}else{ag=0}return ag}function a(aj,an){w=E;var ag=ac.concat();ac.length=0;var am=l,ae=c;l=ab(k,aj===undefined?l:aj);c=ab(b,an===undefined?c:an);stateLoop:for(var ah=0,ak=ac.length;ah<ak;ah++){for(var af=0;af<ag.length;af++){if(ag[af]===ac[ah]){ag.splice(af,1);continue stateLoop}}document.documentElement.classList.add(ac[ah]);p(ac[ah])}while(ag.length){document.documentElement.classList.remove(ag.pop())}if(N.progress&&d.progress){d.progressbar.style.width=(l/(document.querySelectorAll(k).length-1))*window.innerWidth+"px"}if(V()){G()}q();clearTimeout(B);B=setTimeout(g,1500);var ad=document.querySelectorAll(k);var al=ad[l],ai=al.querySelectorAll("section");E=ai[c]||al;if(l!==am||c!==ae){p("slidechanged",{indexh:l,indexv:c,previousSlide:w,currentSlide:E})}else{w=null}if(w){w.classList.remove("present")}}function q(){if(!N.controls||!d.controls){return}var ad=f();[d.controlsLeft,d.controlsRight,d.controlsUp,d.controlsDown].forEach(function(ae){ae.classList.remove("enabled")});if(ad.left){d.controlsLeft.classList.add("enabled")}if(ad.right){d.controlsRight.classList.add("enabled")}if(ad.up){d.controlsUp.classList.add("enabled")}if(ad.down){d.controlsDown.classList.add("enabled")}}function f(){var ad=document.querySelectorAll(k);var ae=document.querySelectorAll(b);return{left:l>0,right:l<ad.length-1,up:c>0,down:c<ae.length-1}}function H(){var ai=window.location.hash;var ah=ai.slice(2).split("/"),af=ai.replace(/#|\//gi,"");if(isNaN(parseInt(ah[0]))&&af.length){var ad=document.querySelector("#"+af);if(ad){var aj=Reveal.getIndices(ad);L(aj.h,aj.v)}else{L(l,c)}}else{var ag=parseInt(ah[0])||0,ae=parseInt(ah[1])||0;L(ag,ae)}}function g(){if(N.history){var ad="/";if(l>0||c>0){ad+=l}if(c>0){ad+="/"+c}window.location.hash=ad}}function p(ae,ad){var af=document.createEvent("HTMLEvents",1,2);af.initEvent(ae,true,true);r(af,ad);d.wrapper.dispatchEvent(af)}function t(){if(document.querySelector(b+".present")){var ae=document.querySelectorAll(b+".present .fragment:not(.visible)");if(ae.length){ae[0].classList.add("visible");p("fragmentshown",{fragment:ae[0]});return true}}else{var ad=document.querySelectorAll(k+".present .fragment:not(.visible)");if(ad.length){ad[0].classList.add("visible");p("fragmentshown",{fragment:ad[0]});return true}}return false}function M(){if(document.querySelector(b+".present")){var ae=document.querySelectorAll(b+".present .fragment.visible");if(ae.length){ae[ae.length-1].classList.remove("visible");p("fragmenthidden",{fragment:ae[ae.length-1]});return true}}else{var ad=document.querySelectorAll(k+".present .fragment.visible");if(ad.length){ad[ad.length-1].classList.remove("visible");p("fragmenthidden",{fragment:ad[ad.length-1]});return true}}return false}function K(){clearTimeout(j);if(N.autoSlide){j=setTimeout(v,N.autoSlide)}}function L(ae,ad){a(ae,ad)}function z(){if(V()||M()===false){a(l-1,0)}}function i(){if(V()||t()===false){a(l+1,0)}}function s(){if(V()||M()===false){a(l,c-1)}}function D(){if(V()||t()===false){a(l,c+1)}}function U(){if(M()===false){if(f().up){s()}else{var ad=document.querySelector(".reveal .slides>section.past:nth-child("+l+")");if(ad){c=(ad.querySelectorAll("section").length+1)||0;l--;a()}}}}function v(){if(t()===false){f().down?D():i()}K()}function T(){if(V()){Y()}else{G()}}return{initialize:h,navigateTo:L,navigateLeft:z,navigateRight:i,navigateUp:s,navigateDown:D,navigatePrev:U,navigateNext:v,toggleOverview:T,addEventListeners:C,removeEventListeners:Q,getIndices:function(ad){var ah=l,af=c;if(ad){var ai=!!ad.parentNode.nodeName.match(/section/gi);var ag=ai?ad.parentNode:ad;var ae=Array.prototype.slice.call(document.querySelectorAll(k));ah=Math.max(ae.indexOf(ag),0);if(ai){af=Math.max(Array.prototype.slice.call(ad.parentNode.children).indexOf(ad),0)}}return{h:ah,v:af}},getPreviousSlide:function(){return w},getCurrentSlide:function(){return E},getQueryHash:function(){var ad={};location.search.replace(/[A-Z0-9]+?=(\w*)/gi,function(ae){ad[ae.split("=").shift()]=ae.split("=").pop()});return ad},addEventListener:function(ae,af,ad){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).addEventListener(ae,af,ad)}},removeEventListener:function(ae,af,ad){if("addEventListener" in window){(d.wrapper||document.querySelector(".reveal")).removeEventListener(ae,af,ad)}}}})();
diff --git a/docs/slides/plpv14/_support/reveal/lib/css/zenburn.css b/docs/slides/plpv14/_support/reveal/lib/css/zenburn.css
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/css/zenburn.css
+++ /dev/null
@@ -1,115 +0,0 @@
-/*
-
-Zenburn style from voldmar.ru (c) Vladimir Epifanov <voldmar@voldmar.ru>
-based on dark.css by Ivan Sagalaev
-
-*/
-
-pre code {
-  display: block; padding: 0.5em;
-  background: #3F3F3F;
-  color: #DCDCDC;
-}
-
-pre .keyword,
-pre .tag,
-pre .django .tag,
-pre .django .keyword,
-pre .css .class,
-pre .css .id,
-pre .lisp .title {
-  color: #E3CEAB;
-}
-
-pre .django .template_tag,
-pre .django .variable,
-pre .django .filter .argument {
-  color: #DCDCDC;
-}
-
-pre .number,
-pre .date {
-  color: #8CD0D3;
-}
-
-pre .dos .envvar,
-pre .dos .stream,
-pre .variable,
-pre .apache .sqbracket {
-  color: #EFDCBC;
-}
-
-pre .dos .flow,
-pre .diff .change,
-pre .python .exception,
-pre .python .built_in,
-pre .literal,
-pre .tex .special {
-  color: #EFEFAF;
-}
-
-pre .diff .chunk,
-pre .ruby .subst {
-  color: #8F8F8F;
-}
-
-pre .dos .keyword,
-pre .python .decorator,
-pre .class .title,
-pre .haskell .label,
-pre .function .title,
-pre .ini .title,
-pre .diff .header,
-pre .ruby .class .parent,
-pre .apache .tag,
-pre .nginx .built_in,
-pre .tex .command,
-pre .input_number {
-    color: #efef8f;
-}
-
-pre .dos .winutils,
-pre .ruby .symbol,
-pre .ruby .symbol .string,
-pre .ruby .symbol .keyword,
-pre .ruby .symbol .keymethods,
-pre .ruby .string,
-pre .ruby .instancevar {
-  color: #DCA3A3;
-}
-
-pre .diff .deletion,
-pre .string,
-pre .tag .value,
-pre .preprocessor,
-pre .built_in,
-pre .sql .aggregate,
-pre .javadoc,
-pre .smalltalk .class,
-pre .smalltalk .localvars,
-pre .smalltalk .array,
-pre .css .rules .value,
-pre .attr_selector,
-pre .pseudo,
-pre .apache .cbracket,
-pre .tex .formula {
-  color: #CC9393;
-}
-
-pre .shebang,
-pre .diff .addition,
-pre .comment,
-pre .java .annotation,
-pre .template_comment,
-pre .pi,
-pre .doctype {
-  color: #7F9F7F;
-}
-
-pre .xml .css,
-pre .xml .javascript,
-pre .xml .vbscript,
-pre .tex .formula {
-  opacity: 0.5;
-}
-
diff --git a/docs/slides/plpv14/_support/reveal/lib/font/OpenSans-Regular.ttf b/docs/slides/plpv14/_support/reveal/lib/font/OpenSans-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/lib/font/OpenSans-Regular.ttf and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf b/docs/slides/plpv14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/lib/font/PT_Sans-Narrow-Web-Regular.ttf and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/lib/font/league_gothic-webfont.ttf b/docs/slides/plpv14/_support/reveal/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/plpv14/_support/reveal/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/classList.js b/docs/slides/plpv14/_support/reveal/lib/js/classList.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/classList.js
+++ /dev/null
@@ -1,2 +0,0 @@
-/*! @source http://purl.eligrey.com/github/classList.js/blob/master/classList.js*/
-if(typeof document!=="undefined"&&!("classList" in document.createElement("a"))){(function(j){var a="classList",f="prototype",m=(j.HTMLElement||j.Element)[f],b=Object,k=String[f].trim||function(){return this.replace(/^\s+|\s+$/g,"")},c=Array[f].indexOf||function(q){var p=0,o=this.length;for(;p<o;p++){if(p in this&&this[p]===q){return p}}return -1},n=function(o,p){this.name=o;this.code=DOMException[o];this.message=p},g=function(p,o){if(o===""){throw new n("SYNTAX_ERR","An invalid or illegal string was specified")}if(/\s/.test(o)){throw new n("INVALID_CHARACTER_ERR","String contains an invalid character")}return c.call(p,o)},d=function(s){var r=k.call(s.className),q=r?r.split(/\s+/):[],p=0,o=q.length;for(;p<o;p++){this.push(q[p])}this._updateClassName=function(){s.className=this.toString()}},e=d[f]=[],i=function(){return new d(this)};n[f]=Error[f];e.item=function(o){return this[o]||null};e.contains=function(o){o+="";return g(this,o)!==-1};e.add=function(o){o+="";if(g(this,o)===-1){this.push(o);this._updateClassName()}};e.remove=function(p){p+="";var o=g(this,p);if(o!==-1){this.splice(o,1);this._updateClassName()}};e.toggle=function(o){o+="";if(g(this,o)===-1){this.add(o)}else{this.remove(o)}};e.toString=function(){return this.join(" ")};if(b.defineProperty){var l={get:i,enumerable:true,configurable:true};try{b.defineProperty(m,a,l)}catch(h){if(h.number===-2146823252){l.enumerable=false;b.defineProperty(m,a,l)}}}else{if(b[f].__defineGetter__){m.__defineGetter__(a,i)}}}(self))};
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/data-markdown.js b/docs/slides/plpv14/_support/reveal/lib/js/data-markdown.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/data-markdown.js
+++ /dev/null
@@ -1,27 +0,0 @@
-// From https://gist.github.com/1343518
-// Modified by Hakim to handle markdown indented with tabs
-(function(){
-
-    var slides = document.querySelectorAll('[data-markdown]');
-
-    for( var i = 0, len = slides.length; i < len; i++ ) {
-        var elem = slides[i];
-
-        // strip leading whitespace so it isn't evaluated as code
-        var text = elem.innerHTML;
-
-        var leadingWs = text.match(/^\n?(\s*)/)[1].length,
-            leadingTabs = text.match(/^\n?(\t*)/)[1].length;
-
-        if( leadingTabs > 0 ) {
-            text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-        }
-        else if( leadingWs > 1 ) {
-            text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-        }
-
-        // here, have sum HTML
-        elem.innerHTML = (new Showdown.converter()).makeHtml(text);
-    }
-
-})();
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/head.min.js b/docs/slides/plpv14/_support/reveal/lib/js/head.min.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/head.min.js
+++ /dev/null
@@ -1,8 +0,0 @@
-/**
-    Head JS     The only script in your <HEAD>
-    Copyright   Tero Piirainen (tipiirai)
-    License     MIT / http://bit.ly/mit-license
-    Version     0.96
-
-    http://headjs.com
-*/(function(a){function z(){d||(d=!0,s(e,function(a){p(a)}))}function y(c,d){var e=a.createElement("script");e.type="text/"+(c.type||"javascript"),e.src=c.src||c,e.async=!1,e.onreadystatechange=e.onload=function(){var a=e.readyState;!d.done&&(!a||/loaded|complete/.test(a))&&(d.done=!0,d())},(a.body||b).appendChild(e)}function x(a,b){if(a.state==o)return b&&b();if(a.state==n)return k.ready(a.name,b);if(a.state==m)return a.onpreload.push(function(){x(a,b)});a.state=n,y(a.url,function(){a.state=o,b&&b(),s(g[a.name],function(a){p(a)}),u()&&d&&s(g.ALL,function(a){p(a)})})}function w(a,b){a.state===undefined&&(a.state=m,a.onpreload=[],y({src:a.url,type:"cache"},function(){v(a)}))}function v(a){a.state=l,s(a.onpreload,function(a){a.call()})}function u(a){a=a||h;var b;for(var c in a){if(a.hasOwnProperty(c)&&a[c].state!=o)return!1;b=!0}return b}function t(a){return Object.prototype.toString.call(a)=="[object Function]"}function s(a,b){if(!!a){typeof a=="object"&&(a=[].slice.call(a));for(var c=0;c<a.length;c++)b.call(a,a[c],c)}}function r(a){var b;if(typeof a=="object")for(var c in a)a[c]&&(b={name:c,url:a[c]});else b={name:q(a),url:a};var d=h[b.name];if(d&&d.url===b.url)return d;h[b.name]=b;return b}function q(a){var b=a.split("/"),c=b[b.length-1],d=c.indexOf("?");return d!=-1?c.substring(0,d):c}function p(a){a._done||(a(),a._done=1)}var b=a.documentElement,c,d,e=[],f=[],g={},h={},i=a.createElement("script").async===!0||"MozAppearance"in a.documentElement.style||window.opera,j=window.head_conf&&head_conf.head||"head",k=window[j]=window[j]||function(){k.ready.apply(null,arguments)},l=1,m=2,n=3,o=4;i?k.js=function(){var a=arguments,b=a[a.length-1],c={};t(b)||(b=null),s(a,function(d,e){d!=b&&(d=r(d),c[d.name]=d,x(d,b&&e==a.length-2?function(){u(c)&&p(b)}:null))});return k}:k.js=function(){var a=arguments,b=[].slice.call(a,1),d=b[0];if(!c){f.push(function(){k.js.apply(null,a)});return k}d?(s(b,function(a){t(a)||w(r(a))}),x(r(a[0]),t(d)?d:function(){k.js.apply(null,b)})):x(r(a[0]));return k},k.ready=function(b,c){if(b==a){d?p(c):e.push(c);return k}t(b)&&(c=b,b="ALL");if(typeof b!="string"||!t(c))return k;var f=h[b];if(f&&f.state==o||b=="ALL"&&u()&&d){p(c);return k}var i=g[b];i?i.push(c):i=g[b]=[c];return k},k.ready(a,function(){u()&&s(g.ALL,function(a){p(a)}),k.feature&&k.feature("domloaded",!0)});if(window.addEventListener)a.addEventListener("DOMContentLoaded",z,!1),window.addEventListener("load",z,!1);else if(window.attachEvent){a.attachEvent("onreadystatechange",function(){a.readyState==="complete"&&z()});var A=1;try{A=window.frameElement}catch(B){}!A&&b.doScroll&&function(){try{b.doScroll("left"),z()}catch(a){setTimeout(arguments.callee,1);return}}(),window.attachEvent("onload",z)}!a.readyState&&a.addEventListener&&(a.readyState="loading",a.addEventListener("DOMContentLoaded",handler=function(){a.removeEventListener("DOMContentLoaded",handler,!1),a.readyState="complete"},!1)),setTimeout(function(){c=!0,s(f,function(a){a()})},300)})(document)
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/highlight.js b/docs/slides/plpv14/_support/reveal/lib/js/highlight.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/highlight.js
+++ /dev/null
@@ -1,5 +0,0 @@
-/*
-Syntax highlighting with language autodetection.
-http://softwaremaniacs.org/soft/highlight/
-*/
-var hljs=new function(){function m(p){return p.replace(/&/gm,"&amp;").replace(/</gm,"&lt;")}function c(r,q,p){return RegExp(q,"m"+(r.cI?"i":"")+(p?"g":""))}function j(r){for(var p=0;p<r.childNodes.length;p++){var q=r.childNodes[p];if(q.nodeName=="CODE"){return q}if(!(q.nodeType==3&&q.nodeValue.match(/\s+/))){break}}}function g(t,s){var r="";for(var q=0;q<t.childNodes.length;q++){if(t.childNodes[q].nodeType==3){var p=t.childNodes[q].nodeValue;if(s){p=p.replace(/\n/g,"")}r+=p}else{if(t.childNodes[q].nodeName=="BR"){r+="\n"}else{r+=g(t.childNodes[q])}}}if(/MSIE [678]/.test(navigator.userAgent)){r=r.replace(/\r/g,"\n")}return r}function a(s){var q=s.className.split(/\s+/);q=q.concat(s.parentNode.className.split(/\s+/));for(var p=0;p<q.length;p++){var r=q[p].replace(/^language-/,"");if(d[r]||r=="no-highlight"){return r}}}function b(p){var q=[];(function(s,t){for(var r=0;r<s.childNodes.length;r++){if(s.childNodes[r].nodeType==3){t+=s.childNodes[r].nodeValue.length}else{if(s.childNodes[r].nodeName=="BR"){t+=1}else{q.push({event:"start",offset:t,node:s.childNodes[r]});t=arguments.callee(s.childNodes[r],t);q.push({event:"stop",offset:t,node:s.childNodes[r]})}}}return t})(p,0);return q}function l(y,z,x){var r=0;var w="";var t=[];function u(){if(y.length&&z.length){if(y[0].offset!=z[0].offset){return(y[0].offset<z[0].offset)?y:z}else{return z[0].event=="start"?y:z}}else{return y.length?y:z}}function s(C){var D="<"+C.nodeName.toLowerCase();for(var A=0;A<C.attributes.length;A++){var B=C.attributes[A];D+=" "+B.nodeName.toLowerCase();if(B.nodeValue!=undefined&&B.nodeValue!=false&&B.nodeValue!=null){D+='="'+m(B.nodeValue)+'"'}}return D+">"}while(y.length||z.length){var v=u().splice(0,1)[0];w+=m(x.substr(r,v.offset-r));r=v.offset;if(v.event=="start"){w+=s(v.node);t.push(v.node)}else{if(v.event=="stop"){var q=t.length;do{q--;var p=t[q];w+=("</"+p.nodeName.toLowerCase()+">")}while(p!=v.node);t.splice(q,1);while(q<t.length){w+=s(t[q]);q++}}}}w+=x.substr(r);return w}function i(){function p(u,t,v){if(u.compiled){return}if(!v){u.bR=c(t,u.b?u.b:"\\B|\\b");if(!u.e&&!u.eW){u.e="\\B|\\b"}if(u.e){u.eR=c(t,u.e)}}if(u.i){u.iR=c(t,u.i)}if(u.r==undefined){u.r=1}if(u.k){u.lR=c(t,u.l||hljs.IR,true)}for(var s in u.k){if(!u.k.hasOwnProperty(s)){continue}if(u.k[s] instanceof Object){u.kG=u.k}else{u.kG={keyword:u.k}}break}if(!u.c){u.c=[]}u.compiled=true;for(var r=0;r<u.c.length;r++){p(u.c[r],t,false)}if(u.starts){p(u.starts,t,false)}}for(var q in d){if(!d.hasOwnProperty(q)){continue}p(d[q].dM,d[q],true)}}function e(J,D){if(!i.called){i();i.called=true}function z(r,M){for(var L=0;L<M.c.length;L++){if(M.c[L].bR.test(r)){return M.c[L]}}}function w(L,r){if(C[L].e&&C[L].eR.test(r)){return 1}if(C[L].eW){var M=w(L-1,r);return M?M+1:0}return 0}function x(r,L){return L.iR&&L.iR.test(r)}function A(O,N){var M=[];for(var L=0;L<O.c.length;L++){M.push(O.c[L].b)}var r=C.length-1;do{if(C[r].e){M.push(C[r].e)}r--}while(C[r+1].eW);if(O.i){M.push(O.i)}return c(N,"("+M.join("|")+")",true)}function s(M,L){var N=C[C.length-1];if(!N.t){N.t=A(N,H)}N.t.lastIndex=L;var r=N.t.exec(M);if(r){return[M.substr(L,r.index-L),r[0],false]}else{return[M.substr(L),"",true]}}function p(O,r){var L=H.cI?r[0].toLowerCase():r[0];for(var N in O.kG){if(!O.kG.hasOwnProperty(N)){continue}var M=O.kG[N].hasOwnProperty(L);if(M){return[N,M]}}return false}function F(M,O){if(!O.k){return m(M)}var N="";var P=0;O.lR.lastIndex=0;var L=O.lR.exec(M);while(L){N+=m(M.substr(P,L.index-P));var r=p(O,L);if(r){t+=r[1];N+='<span class="'+r[0]+'">'+m(L[0])+"</span>"}else{N+=m(L[0])}P=O.lR.lastIndex;L=O.lR.exec(M)}N+=m(M.substr(P,M.length-P));return N}function K(r,M){if(M.sL&&d[M.sL]){var L=e(M.sL,r);t+=L.keyword_count;return L.value}else{return F(r,M)}}function I(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){q+=L;M.buffer=""}else{if(M.eB){q+=m(r)+L;M.buffer=""}else{q+=L;M.buffer=r}}C.push(M);B+=M.r}function E(O,L,Q){var R=C[C.length-1];if(Q){q+=K(R.buffer+O,R);return false}var M=z(L,R);if(M){q+=K(R.buffer+O,R);I(M,L);return M.rB}var r=w(C.length-1,L);if(r){var N=R.cN?"</span>":"";if(R.rE){q+=K(R.buffer+O,R)+N}else{if(R.eE){q+=K(R.buffer+O,R)+N+m(L)}else{q+=K(R.buffer+O+L,R)+N}}while(r>1){N=C[C.length-2].cN?"</span>":"";q+=N;r--;C.length--}var P=C[C.length-1];C.length--;C[C.length-1].buffer="";if(P.starts){I(P.starts,"")}return R.rE}if(x(L,R)){throw"Illegal"}}var H=d[J];var C=[H.dM];var B=0;var t=0;var q="";try{var v=0;H.dM.buffer="";do{var y=s(D,v);var u=E(y[0],y[1],y[2]);v+=y[0].length;if(!u){v+=y[1].length}}while(!y[2]);if(C.length>1){throw"Illegal"}return{r:B,keyword_count:t,value:q}}catch(G){if(G=="Illegal"){return{r:0,keyword_count:0,value:m(D)}}else{throw G}}}function f(t){var r={keyword_count:0,r:0,value:m(t)};var q=r;for(var p in d){if(!d.hasOwnProperty(p)){continue}var s=e(p,t);s.language=p;if(s.keyword_count+s.r>q.keyword_count+q.r){q=s}if(s.keyword_count+s.r>r.keyword_count+r.r){q=r;r=s}}if(q.language){r.second_best=q}return r}function h(r,q,p){if(q){r=r.replace(/^((<[^>]+>|\t)+)/gm,function(t,w,v,u){return w.replace(/\t/g,q)})}if(p){r=r.replace(/\n/g,"<br>")}return r}function o(u,x,q){var y=g(u,q);var s=a(u);if(s=="no-highlight"){return}if(s){var w=e(s,y)}else{var w=f(y);s=w.language}var p=b(u);if(p.length){var r=document.createElement("pre");r.innerHTML=w.value;w.value=l(p,b(r),y)}w.value=h(w.value,x,q);var t=u.className;if(!t.match("(\\s|^)(language-)?"+s+"(\\s|$)")){t=t?(t+" "+s):s}if(/MSIE [678]/.test(navigator.userAgent)&&u.tagName=="CODE"&&u.parentNode.tagName=="PRE"){var r=u.parentNode;var v=document.createElement("div");v.innerHTML="<pre><code>"+w.value+"</code></pre>";u=v.firstChild.firstChild;v.firstChild.cN=r.cN;r.parentNode.replaceChild(v.firstChild,r)}else{u.innerHTML=w.value}u.className=t;u.result={language:s,kw:w.keyword_count,re:w.r};if(w.second_best){u.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function k(){if(k.called){return}k.called=true;var r=document.getElementsByTagName("pre");for(var p=0;p<r.length;p++){var q=j(r[p]);if(q){o(q,hljs.tabReplace)}}}function n(){if(window.addEventListener){window.addEventListener("DOMContentLoaded",k,false);window.addEventListener("load",k,false)}else{if(window.attachEvent){window.attachEvent("onload",k)}else{window.onload=k}}}var d={};this.LANGUAGES=d;this.highlight=e;this.highlightAuto=f;this.fixMarkup=h;this.highlightBlock=o;this.initHighlighting=k;this.initHighlightingOnLoad=n;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="\\b(0x[A-Za-z0-9]+|\\d+(\\.\\d+)?)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\.",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.inherit=function(p,s){var r={};for(var q in p){r[q]=p[q]}if(s){for(var q in s){r[q]=s[q]}}return r}}();hljs.LANGUAGES.cs={dM:{k:{"abstract":1,as:1,base:1,bool:1,"break":1,"byte":1,"case":1,"catch":1,"char":1,checked:1,"class":1,"const":1,"continue":1,decimal:1,"default":1,delegate:1,"do":1,"do":1,"double":1,"else":1,"enum":1,event:1,explicit:1,extern:1,"false":1,"finally":1,fixed:1,"float":1,"for":1,foreach:1,"goto":1,"if":1,implicit:1,"in":1,"int":1,"interface":1,internal:1,is:1,lock:1,"long":1,namespace:1,"new":1,"null":1,object:1,operator:1,out:1,override:1,params:1,"private":1,"protected":1,"public":1,readonly:1,ref:1,"return":1,sbyte:1,sealed:1,"short":1,sizeof:1,stackalloc:1,"static":1,string:1,struct:1,"switch":1,"this":1,"throw":1,"true":1,"try":1,"typeof":1,uint:1,ulong:1,unchecked:1,unsafe:1,ushort:1,using:1,virtual:1,"volatile":1,"void":1,"while":1,ascending:1,descending:1,from:1,get:1,group:1,into:1,join:1,let:1,orderby:1,partial:1,select:1,set:1,value:1,"var":1,where:1,yield:1},c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},hljs.CLCM,hljs.CBLCLM,{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},hljs.ASM,hljs.QSM,hljs.CNM]}};hljs.LANGUAGES.ruby=function(){var g="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var a="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var n={keyword:{and:1,"false":1,then:1,defined:1,module:1,"in":1,"return":1,redo:1,"if":1,BEGIN:1,retry:1,end:1,"for":1,"true":1,self:1,when:1,next:1,until:1,"do":1,begin:1,unless:1,END:1,rescue:1,nil:1,"else":1,"break":1,undef:1,not:1,"super":1,"class":1,"case":1,require:1,yield:1,alias:1,"while":1,ensure:1,elsif:1,or:1,def:1},keymethods:{__id__:1,__send__:1,abort:1,abs:1,"all?":1,allocate:1,ancestors:1,"any?":1,arity:1,assoc:1,at:1,at_exit:1,autoload:1,"autoload?":1,"between?":1,binding:1,binmode:1,"block_given?":1,call:1,callcc:1,caller:1,capitalize:1,"capitalize!":1,casecmp:1,"catch":1,ceil:1,center:1,chomp:1,"chomp!":1,chop:1,"chop!":1,chr:1,"class":1,class_eval:1,"class_variable_defined?":1,class_variables:1,clear:1,clone:1,close:1,close_read:1,close_write:1,"closed?":1,coerce:1,collect:1,"collect!":1,compact:1,"compact!":1,concat:1,"const_defined?":1,const_get:1,const_missing:1,const_set:1,constants:1,count:1,crypt:1,"default":1,default_proc:1,"delete":1,"delete!":1,delete_at:1,delete_if:1,detect:1,display:1,div:1,divmod:1,downcase:1,"downcase!":1,downto:1,dump:1,dup:1,each:1,each_byte:1,each_index:1,each_key:1,each_line:1,each_pair:1,each_value:1,each_with_index:1,"empty?":1,entries:1,eof:1,"eof?":1,"eql?":1,"equal?":1,"eval":1,exec:1,exit:1,"exit!":1,extend:1,fail:1,fcntl:1,fetch:1,fileno:1,fill:1,find:1,find_all:1,first:1,flatten:1,"flatten!":1,floor:1,flush:1,for_fd:1,foreach:1,fork:1,format:1,freeze:1,"frozen?":1,fsync:1,getc:1,gets:1,global_variables:1,grep:1,gsub:1,"gsub!":1,"has_key?":1,"has_value?":1,hash:1,hex:1,id:1,include:1,"include?":1,included_modules:1,index:1,indexes:1,indices:1,induced_from:1,inject:1,insert:1,inspect:1,instance_eval:1,instance_method:1,instance_methods:1,"instance_of?":1,"instance_variable_defined?":1,instance_variable_get:1,instance_variable_set:1,instance_variables:1,"integer?":1,intern:1,invert:1,ioctl:1,"is_a?":1,isatty:1,"iterator?":1,join:1,"key?":1,keys:1,"kind_of?":1,lambda:1,last:1,length:1,lineno:1,ljust:1,load:1,local_variables:1,loop:1,lstrip:1,"lstrip!":1,map:1,"map!":1,match:1,max:1,"member?":1,merge:1,"merge!":1,method:1,"method_defined?":1,method_missing:1,methods:1,min:1,module_eval:1,modulo:1,name:1,nesting:1,"new":1,next:1,"next!":1,"nil?":1,nitems:1,"nonzero?":1,object_id:1,oct:1,open:1,pack:1,partition:1,pid:1,pipe:1,pop:1,popen:1,pos:1,prec:1,prec_f:1,prec_i:1,print:1,printf:1,private_class_method:1,private_instance_methods:1,"private_method_defined?":1,private_methods:1,proc:1,protected_instance_methods:1,"protected_method_defined?":1,protected_methods:1,public_class_method:1,public_instance_methods:1,"public_method_defined?":1,public_methods:1,push:1,putc:1,puts:1,quo:1,raise:1,rand:1,rassoc:1,read:1,read_nonblock:1,readchar:1,readline:1,readlines:1,readpartial:1,rehash:1,reject:1,"reject!":1,remainder:1,reopen:1,replace:1,require:1,"respond_to?":1,reverse:1,"reverse!":1,reverse_each:1,rewind:1,rindex:1,rjust:1,round:1,rstrip:1,"rstrip!":1,scan:1,seek:1,select:1,send:1,set_trace_func:1,shift:1,singleton_method_added:1,singleton_methods:1,size:1,sleep:1,slice:1,"slice!":1,sort:1,"sort!":1,sort_by:1,split:1,sprintf:1,squeeze:1,"squeeze!":1,srand:1,stat:1,step:1,store:1,strip:1,"strip!":1,sub:1,"sub!":1,succ:1,"succ!":1,sum:1,superclass:1,swapcase:1,"swapcase!":1,sync:1,syscall:1,sysopen:1,sysread:1,sysseek:1,system:1,syswrite:1,taint:1,"tainted?":1,tell:1,test:1,"throw":1,times:1,to_a:1,to_ary:1,to_f:1,to_hash:1,to_i:1,to_int:1,to_io:1,to_proc:1,to_s:1,to_str:1,to_sym:1,tr:1,"tr!":1,tr_s:1,"tr_s!":1,trace_var:1,transpose:1,trap:1,truncate:1,"tty?":1,type:1,ungetc:1,uniq:1,"uniq!":1,unpack:1,unshift:1,untaint:1,untrace_var:1,upcase:1,"upcase!":1,update:1,upto:1,"value?":1,values:1,values_at:1,warn:1,write:1,write_nonblock:1,"zero?":1,zip:1}};var h={cN:"yardoctag",b:"@[A-Za-z]+"};var d={cN:"comment",b:"#",e:"$",c:[h]};var c={cN:"comment",b:"^\\=begin",e:"^\\=end",c:[h],r:10};var b={cN:"comment",b:"^__END__",e:"\\n$"};var u={cN:"subst",b:"#\\{",e:"}",l:g,k:n};var p=[hljs.BE,u];var s={cN:"string",b:"'",e:"'",c:p,r:0};var r={cN:"string",b:'"',e:'"',c:p,r:0};var q={cN:"string",b:"%[qw]?\\(",e:"\\)",c:p,r:10};var o={cN:"string",b:"%[qw]?\\[",e:"\\]",c:p,r:10};var m={cN:"string",b:"%[qw]?{",e:"}",c:p,r:10};var l={cN:"string",b:"%[qw]?<",e:">",c:p,r:10};var k={cN:"string",b:"%[qw]?/",e:"/",c:p,r:10};var j={cN:"string",b:"%[qw]?%",e:"%",c:p,r:10};var i={cN:"string",b:"%[qw]?-",e:"-",c:p,r:10};var t={cN:"string",b:"%[qw]?\\|",e:"\\|",c:p,r:10};var e={cN:"function",b:"\\bdef\\s+",e:" |$|;",l:g,k:n,c:[{cN:"title",b:a,l:g,k:n},{cN:"params",b:"\\(",e:"\\)",l:g,k:n},d,c,b]};var f={cN:"identifier",b:g,l:g,k:n,r:0};var v=[d,c,b,s,r,q,o,m,l,k,j,i,t,{cN:"class",b:"\\b(class|module)\\b",e:"$|;",k:{"class":1,module:1},c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+hljs.IR+"::)?"+hljs.IR}]},d,c,b]},e,{cN:"constant",b:"(::)?([A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:[s,r,q,o,m,l,k,j,i,t,f],r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},f,{b:"("+hljs.RSR+")\\s*",c:[d,c,b,{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[hljs.BE]}],r:0}];u.c=v;e.c[1].c=v;return{dM:{l:g,k:n,c:v}}}();hljs.LANGUAGES.javascript={dM:{k:{keyword:{"in":1,"if":1,"for":1,"while":1,"finally":1,"var":1,"new":1,"function":1,"do":1,"return":1,"void":1,"else":1,"break":1,"catch":1,"instanceof":1,"with":1,"throw":1,"case":1,"default":1,"try":1,"this":1,"switch":1,"continue":1,"typeof":1,"delete":1},literal:{"true":1,"false":1,"null":1}},c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM,hljs.CNM,{b:"("+hljs.RSR+"|case|return|throw)\\s*",k:{"return":1,"throw":1,"case":1},c:[hljs.CLCM,hljs.CBLCLM,{cN:"regexp",b:"/",e:"/[gim]*",c:[{b:"\\\\/"}]}],r:0},{cN:"function",b:"\\bfunction\\b",e:"{",k:{"function":1},c:[{cN:"title",b:"[A-Za-z$_][0-9A-Za-z$_]*"},{cN:"params",b:"\\(",e:"\\)",c:[hljs.ASM,hljs.QSM,hljs.CLCM,hljs.CBLCLM]}]}]}};hljs.LANGUAGES.css=function(){var a={cN:"function",b:hljs.IR+"\\(",e:"\\)",c:[{eW:true,eE:true,c:[hljs.NM,hljs.ASM,hljs.QSM]}]};return{cI:true,dM:{i:"[=/|']",c:[hljs.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:{"font-face":1,page:1}},{cN:"at_rule",b:"@",e:"[{;]",eE:true,k:{"import":1,page:1,media:1,charset:1},c:[a,hljs.ASM,hljs.QSM,hljs.NM]},{cN:"tag",b:hljs.IR,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[hljs.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[a,hljs.NM,hljs.QSM,hljs.ASM,hljs.CBLCLM,{cN:"hexcolor",b:"\\#[0-9A-F]+"},{cN:"important",b:"!important"}]}}]}]}]}}}();hljs.LANGUAGES.xml=function(){var b="[A-Za-z0-9\\._:-]+";var a={eW:true,c:[{cN:"attribute",b:b,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,dM:{c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style",e:">",k:{title:{style:1}},c:[a],starts:{cN:"css",e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script",e:">",k:{title:{script:1}},c:[a],starts:{cN:"javascript",e:"<\/script>",rE:true,sL:"javascript"}},{cN:"vbscript",b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",c:[{cN:"title",b:"[^ />]+"},a]}]}}}();hljs.LANGUAGES.java={dM:{k:{"false":1,"synchronized":1,"int":1,"abstract":1,"float":1,"private":1,"char":1,"interface":1,"boolean":1,"static":1,"null":1,"if":1,"const":1,"for":1,"true":1,"while":1,"long":1,"throw":1,strictfp:1,"finally":1,"protected":1,"extends":1,"import":1,"native":1,"final":1,"implements":1,"return":1,"void":1,"enum":1,"else":1,"break":1,"transient":1,"new":1,"catch":1,"instanceof":1,"byte":1,"super":1,"class":1,"volatile":1,"case":1,assert:1,"short":1,"package":1,"default":1,"double":1,"public":1,"try":1,"this":1,"switch":1,"continue":1,"throws":1},c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},hljs.CLCM,hljs.CBLCLM,hljs.ASM,hljs.QSM,{cN:"class",b:"(class |interface )",e:"{",k:{"class":1,"interface":1},i:":",c:[{b:"(implements|extends)",k:{"extends":1,"implements":1},r:10},{cN:"title",b:hljs.UIR}]},hljs.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}};hljs.LANGUAGES.php={cI:true,dM:{k:{and:1,include_once:1,list:1,"abstract":1,global:1,"private":1,echo:1,"interface":1,as:1,"static":1,endswitch:1,array:1,"null":1,"if":1,endwhile:1,or:1,"const":1,"for":1,endforeach:1,self:1,"var":1,"while":1,isset:1,"public":1,"protected":1,exit:1,foreach:1,"throw":1,elseif:1,"extends":1,include:1,__FILE__:1,empty:1,require_once:1,"function":1,"do":1,xor:1,"return":1,"implements":1,parent:1,clone:1,use:1,__CLASS__:1,__LINE__:1,"else":1,"break":1,print:1,"eval":1,"new":1,"catch":1,__METHOD__:1,"class":1,"case":1,exception:1,php_user_filter:1,"default":1,die:1,require:1,__FUNCTION__:1,enddeclare:1,"final":1,"try":1,"this":1,"switch":1,"continue":1,endfor:1,endif:1,declare:1,unset:1,"true":1,"false":1,namespace:1},c:[hljs.CLCM,hljs.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+",r:10}]},hljs.CNM,hljs.inherit(hljs.ASM,{i:null}),hljs.inherit(hljs.QSM,{i:null}),{cN:"variable",b:"\\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"}]}};hljs.LANGUAGES.python=function(){var c={cN:"string",b:"(u|b)?r?'''",e:"'''",r:10};var b={cN:"string",b:'(u|b)?r?"""',e:'"""',r:10};var a={cN:"string",b:"(u|r|ur|b|br)'",e:"'",c:[hljs.BE],r:10};var f={cN:"string",b:'(u|r|ur|b|br)"',e:'"',c:[hljs.BE],r:10};var d={cN:"title",b:hljs.UIR};var e={cN:"params",b:"\\(",e:"\\)",c:[c,b,a,f,hljs.ASM,hljs.QSM]};return{dM:{k:{keyword:{and:1,elif:1,is:1,global:1,as:1,"in":1,"if":1,from:1,raise:1,"for":1,except:1,"finally":1,print:1,"import":1,pass:1,"return":1,exec:1,"else":1,"break":1,not:1,"with":1,"class":1,assert:1,yield:1,"try":1,"while":1,"continue":1,del:1,or:1,def:1,lambda:1,nonlocal:10},built_in:{None:1,True:1,False:1,Ellipsis:1,NotImplemented:1}},i:"(</|->|\\?)",c:[hljs.HCM,c,b,a,f,hljs.ASM,hljs.QSM,{cN:"function",b:"\\bdef ",e:":",i:"$",k:{def:1},c:[d,e],r:10},{cN:"class",b:"\\bclass ",e:":",i:"[${]",k:{"class":1},c:[d,e],r:10},hljs.CNM,{cN:"decorator",b:"@",e:"$"}]}}}();hljs.LANGUAGES.perl=function(){var c={getpwent:1,getservent:1,quotemeta:1,msgrcv:1,scalar:1,kill:1,dbmclose:1,undef:1,lc:1,ma:1,syswrite:1,tr:1,send:1,umask:1,sysopen:1,shmwrite:1,vec:1,qx:1,utime:1,local:1,oct:1,semctl:1,localtime:1,readpipe:1,"do":1,"return":1,format:1,read:1,sprintf:1,dbmopen:1,pop:1,getpgrp:1,not:1,getpwnam:1,rewinddir:1,qq:1,fileno:1,qw:1,endprotoent:1,wait:1,sethostent:1,bless:1,s:1,opendir:1,"continue":1,each:1,sleep:1,endgrent:1,shutdown:1,dump:1,chomp:1,connect:1,getsockname:1,die:1,socketpair:1,close:1,flock:1,exists:1,index:1,shmget:1,sub:1,"for":1,endpwent:1,redo:1,lstat:1,msgctl:1,setpgrp:1,abs:1,exit:1,select:1,print:1,ref:1,gethostbyaddr:1,unshift:1,fcntl:1,syscall:1,"goto":1,getnetbyaddr:1,join:1,gmtime:1,symlink:1,semget:1,splice:1,x:1,getpeername:1,recv:1,log:1,setsockopt:1,cos:1,last:1,reverse:1,gethostbyname:1,getgrnam:1,study:1,formline:1,endhostent:1,times:1,chop:1,length:1,gethostent:1,getnetent:1,pack:1,getprotoent:1,getservbyname:1,rand:1,mkdir:1,pos:1,chmod:1,y:1,substr:1,endnetent:1,printf:1,next:1,open:1,msgsnd:1,readdir:1,use:1,unlink:1,getsockopt:1,getpriority:1,rindex:1,wantarray:1,hex:1,system:1,getservbyport:1,endservent:1,"int":1,chr:1,untie:1,rmdir:1,prototype:1,tell:1,listen:1,fork:1,shmread:1,ucfirst:1,setprotoent:1,"else":1,sysseek:1,link:1,getgrgid:1,shmctl:1,waitpid:1,unpack:1,getnetbyname:1,reset:1,chdir:1,grep:1,split:1,require:1,caller:1,lcfirst:1,until:1,warn:1,"while":1,values:1,shift:1,telldir:1,getpwuid:1,my:1,getprotobynumber:1,"delete":1,and:1,sort:1,uc:1,defined:1,srand:1,accept:1,"package":1,seekdir:1,getprotobyname:1,semop:1,our:1,rename:1,seek:1,"if":1,q:1,chroot:1,sysread:1,setpwent:1,no:1,crypt:1,getc:1,chown:1,sqrt:1,write:1,setnetent:1,setpriority:1,foreach:1,tie:1,sin:1,msgget:1,map:1,stat:1,getlogin:1,unless:1,elsif:1,truncate:1,exec:1,keys:1,glob:1,tied:1,closedir:1,ioctl:1,socket:1,readlink:1,"eval":1,xor:1,readline:1,binmode:1,setservent:1,eof:1,ord:1,bind:1,alarm:1,pipe:1,atan2:1,getgrent:1,exp:1,time:1,push:1,setgrent:1,gt:1,lt:1,or:1,ne:1,m:1};var d={cN:"subst",b:"[$@]\\{",e:"}",k:c,r:10};var b={cN:"variable",b:"\\$\\d"};var a={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var g=[hljs.BE,d,b,a];var f={b:"->",c:[{b:hljs.IR},{b:"{",e:"}"}]};var e=[b,a,hljs.HCM,{cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5},f,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:g,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:g,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:g,r:5},{cN:"string",b:"'",e:"'",c:[hljs.BE],r:0},{cN:"string",b:'"',e:'"',c:g,r:0},{cN:"string",b:"`",e:"`",c:[hljs.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[hljs.BE],r:0},{cN:"sub",b:"\\bsub\\b",e:"(\\s*\\(.*?\\))?[;{]",k:{sub:1},r:5},{cN:"operator",b:"-\\w\\b",r:0},{cN:"pod",b:"\\=\\w",e:"\\=cut"}];d.c=e;f.c[1].c=e;return{dM:{k:c,c:e}}}();hljs.LANGUAGES.cpp=function(){var b={keyword:{"false":1,"int":1,"float":1,"while":1,"private":1,"char":1,"catch":1,"export":1,virtual:1,operator:2,sizeof:2,dynamic_cast:2,typedef:2,const_cast:2,"const":1,struct:1,"for":1,static_cast:2,union:1,namespace:1,unsigned:1,"long":1,"throw":1,"volatile":2,"static":1,"protected":1,bool:1,template:1,mutable:1,"if":1,"public":1,friend:2,"do":1,"return":1,"goto":1,auto:1,"void":2,"enum":1,"else":1,"break":1,"new":1,extern:1,using:1,"true":1,"class":1,asm:1,"case":1,typeid:1,"short":1,reinterpret_cast:2,"default":1,"double":1,register:1,explicit:1,signed:1,typename:1,"try":1,"this":1,"switch":1,"continue":1,wchar_t:1,inline:1,"delete":1,alignof:1,char16_t:1,char32_t:1,constexpr:1,decltype:1,noexcept:1,nullptr:1,static_assert:1,thread_local:1},built_in:{std:1,string:1,cin:1,cout:1,cerr:1,clog:1,stringstream:1,istringstream:1,ostringstream:1,auto_ptr:1,deque:1,list:1,queue:1,stack:1,vector:1,map:1,set:1,bitset:1,multiset:1,multimap:1,unordered_set:1,unordered_map:1,unordered_multiset:1,unordered_multimap:1,array:1,shared_ptr:1}};var a={cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10};a.c=[a];return{dM:{k:b,i:"</",c:[hljs.CLCM,hljs.CBLCLM,hljs.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},hljs.CNM,{cN:"preprocessor",b:"#",e:"$"},a]}}}();
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/html5shiv.js b/docs/slides/plpv14/_support/reveal/lib/js/html5shiv.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/html5shiv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-document.createElement('header');
-document.createElement('nav');
-document.createElement('section');
-document.createElement('article');
-document.createElement('aside');
-document.createElement('footer');
-document.createElement('hgroup');
diff --git a/docs/slides/plpv14/_support/reveal/lib/js/showdown.js b/docs/slides/plpv14/_support/reveal/lib/js/showdown.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/lib/js/showdown.js
+++ /dev/null
@@ -1,1341 +0,0 @@
-//
-// showdown.js -- A javascript port of Markdown.
-//
-// Copyright (c) 2007 John Fraser.
-//
-// Original Markdown Copyright (c) 2004-2005 John Gruber
-//   <http://daringfireball.net/projects/markdown/>
-//
-// Redistributable under a BSD-style open source license.
-// See license.txt for more information.
-//
-// The full source distribution is at:
-//
-//				A A L
-//				T C A
-//				T K B
-//
-//   <http://www.attacklab.net/>
-//
-
-//
-// Wherever possible, Showdown is a straight, line-by-line port
-// of the Perl version of Markdown.
-//
-// This is not a normal parser design; it's basically just a
-// series of string substitutions.  It's hard to read and
-// maintain this way,  but keeping Showdown close to the original
-// design makes it easier to port new features.
-//
-// More importantly, Showdown behaves like markdown.pl in most
-// edge cases.  So web applications can do client-side preview
-// in Javascript, and then build identical HTML on the server.
-//
-// This port needs the new RegExp functionality of ECMA 262,
-// 3rd Edition (i.e. Javascript 1.5).  Most modern web browsers
-// should do fine.  Even with the new regular expression features,
-// We do a lot of work to emulate Perl's regex functionality.
-// The tricky changes in this file mostly have the "attacklab:"
-// label.  Major or self-explanatory changes don't.
-//
-// Smart diff tools like Araxis Merge will be able to match up
-// this file with markdown.pl in a useful way.  A little tweaking
-// helps: in a copy of markdown.pl, replace "#" with "//" and
-// replace "$text" with "text".  Be sure to ignore whitespace
-// and line endings.
-//
-
-
-//
-// Showdown usage:
-//
-//   var text = "Markdown *rocks*.";
-//
-//   var converter = new Showdown.converter();
-//   var html = converter.makeHtml(text);
-//
-//   alert(html);
-//
-// Note: move the sample code to the bottom of this
-// file before uncommenting it.
-//
-
-
-//
-// Showdown namespace
-//
-var Showdown = {};
-
-//
-// converter
-//
-// Wraps all "globals" so that the only thing
-// exposed is makeHtml().
-//
-Showdown.converter = function() {
-
-//
-// Globals:
-//
-
-// Global hashes, used by various utility routines
-var g_urls;
-var g_titles;
-var g_html_blocks;
-
-// Used to track when we're inside an ordered or unordered list
-// (see _ProcessListItems() for details):
-var g_list_level = 0;
-
-
-this.makeHtml = function(text) {
-//
-// Main function. The order in which other subs are called here is
-// essential. Link and image substitutions need to happen before
-// _EscapeSpecialCharsWithinTagAttributes(), so that any *'s or _'s in the <a>
-// and <img> tags get encoded.
-//
-
-	// Clear the global hashes. If we don't clear these, you get conflicts
-	// from other articles when generating a page which contains more than
-	// one article (e.g. an index page that shows the N most recent
-	// articles):
-	g_urls = new Array();
-	g_titles = new Array();
-	g_html_blocks = new Array();
-
-	// attacklab: Replace ~ with ~T
-	// This lets us use tilde as an escape char to avoid md5 hashes
-	// The choice of character is arbitray; anything that isn't
-    // magic in Markdown will work.
-	text = text.replace(/~/g,"~T");
-
-	// attacklab: Replace $ with ~D
-	// RegExp interprets $ as a special character
-	// when it's in a replacement string
-	text = text.replace(/\$/g,"~D");
-
-	// Standardize line endings
-	text = text.replace(/\r\n/g,"\n"); // DOS to Unix
-	text = text.replace(/\r/g,"\n"); // Mac to Unix
-
-	// Make sure text begins and ends with a couple of newlines:
-	text = "\n\n" + text + "\n\n";
-
-	// Convert all tabs to spaces.
-	text = _Detab(text);
-
-	// Strip any lines consisting only of spaces and tabs.
-	// This makes subsequent regexen easier to write, because we can
-	// match consecutive blank lines with /\n+/ instead of something
-	// contorted like /[ \t]*\n+/ .
-	text = text.replace(/^[ \t]+$/mg,"");
-
-	// Handle github codeblocks prior to running HashHTML so that
-	// HTML contained within the codeblock gets escaped propertly
-	text = _DoGithubCodeBlocks(text);
-
-	// Turn block-level HTML blocks into hash entries
-	text = _HashHTMLBlocks(text);
-
-	// Strip link definitions, store in hashes.
-	text = _StripLinkDefinitions(text);
-
-	text = _RunBlockGamut(text);
-
-	text = _UnescapeSpecialChars(text);
-
-	// attacklab: Restore dollar signs
-	text = text.replace(/~D/g,"$$");
-
-	// attacklab: Restore tildes
-	text = text.replace(/~T/g,"~");
-
-	return text;
-};
-
-
-var _StripLinkDefinitions = function(text) {
-//
-// Strips link definitions from text, stores the URLs and titles in
-// hash references.
-//
-
-	// Link defs are in the form: ^[id]: url "optional title"
-
-	/*
-		var text = text.replace(/
-				^[ ]{0,3}\[(.+)\]:  // id = $1  attacklab: g_tab_width - 1
-				  [ \t]*
-				  \n?				// maybe *one* newline
-				  [ \t]*
-				<?(\S+?)>?			// url = $2
-				  [ \t]*
-				  \n?				// maybe one newline
-				  [ \t]*
-				(?:
-				  (\n*)				// any lines skipped = $3 attacklab: lookbehind removed
-				  ["(]
-				  (.+?)				// title = $4
-				  [")]
-				  [ \t]*
-				)?					// title is optional
-				(?:\n+|$)
-			  /gm,
-			  function(){...});
-	*/
-	var text = text.replace(/^[ ]{0,3}\[(.+)\]:[ \t]*\n?[ \t]*<?(\S+?)>?[ \t]*\n?[ \t]*(?:(\n*)["(](.+?)[")][ \t]*)?(?:\n+|\Z)/gm,
-		function (wholeMatch,m1,m2,m3,m4) {
-			m1 = m1.toLowerCase();
-			g_urls[m1] = _EncodeAmpsAndAngles(m2);  // Link IDs are case-insensitive
-			if (m3) {
-				// Oops, found blank lines, so it's not a title.
-				// Put back the parenthetical statement we stole.
-				return m3+m4;
-			} else if (m4) {
-				g_titles[m1] = m4.replace(/"/g,"&quot;");
-			}
-
-			// Completely remove the definition from the text
-			return "";
-		}
-	);
-
-	return text;
-}
-
-
-var _HashHTMLBlocks = function(text) {
-	// attacklab: Double up blank lines to reduce lookaround
-	text = text.replace(/\n/g,"\n\n");
-
-	// Hashify HTML blocks:
-	// We only want to do this for block-level HTML tags, such as headers,
-	// lists, and tables. That's because we still want to wrap <p>s around
-	// "paragraphs" that are wrapped in non-block-level tags, such as anchors,
-	// phrase emphasis, and spans. The list of tags we're looking for is
-	// hard-coded:
-	var block_tags_a = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del|style|section|header|footer|nav|article|aside";
-	var block_tags_b = "p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside";
-
-	// First, look for nested blocks, e.g.:
-	//   <div>
-	//     <div>
-	//     tags for inner block must be indented.
-	//     </div>
-	//   </div>
-	//
-	// The outermost tags must start at the left margin for this to match, and
-	// the inner nested divs must be indented.
-	// We need to do this before the next, more liberal match, because the next
-	// match will start at the first `<div>` and stop at the first `</div>`.
-
-	// attacklab: This regex can be expensive when it fails.
-	/*
-		var text = text.replace(/
-		(						// save in $1
-			^					// start of line  (with /m)
-			<($block_tags_a)	// start tag = $2
-			\b					// word break
-								// attacklab: hack around khtml/pcre bug...
-			[^\r]*?\n			// any number of lines, minimally matching
-			</\2>				// the matching end tag
-			[ \t]*				// trailing spaces/tabs
-			(?=\n+)				// followed by a newline
-		)						// attacklab: there are sentinel newlines at end of document
-		/gm,function(){...}};
-	*/
-	text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|ins|del)\b[^\r]*?\n<\/\2>[ \t]*(?=\n+))/gm,hashElement);
-
-	//
-	// Now match more liberally, simply from `\n<tag>` to `</tag>\n`
-	//
-
-	/*
-		var text = text.replace(/
-		(						// save in $1
-			^					// start of line  (with /m)
-			<($block_tags_b)	// start tag = $2
-			\b					// word break
-								// attacklab: hack around khtml/pcre bug...
-			[^\r]*?				// any number of lines, minimally matching
-			.*</\2>				// the matching end tag
-			[ \t]*				// trailing spaces/tabs
-			(?=\n+)				// followed by a newline
-		)						// attacklab: there are sentinel newlines at end of document
-		/gm,function(){...}};
-	*/
-	text = text.replace(/^(<(p|div|h[1-6]|blockquote|pre|table|dl|ol|ul|script|noscript|form|fieldset|iframe|math|style|section|header|footer|nav|article|aside)\b[^\r]*?.*<\/\2>[ \t]*(?=\n+)\n)/gm,hashElement);
-
-	// Special case just for <hr />. It was easier to make a special case than
-	// to make the other regex more complicated.
-
-	/*
-		text = text.replace(/
-		(						// save in $1
-			\n\n				// Starting after a blank line
-			[ ]{0,3}
-			(<(hr)				// start tag = $2
-			\b					// word break
-			([^<>])*?			//
-			\/?>)				// the matching end tag
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(\n[ ]{0,3}(<(hr)\b([^<>])*?\/?>)[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// Special case for standalone HTML comments:
-
-	/*
-		text = text.replace(/
-		(						// save in $1
-			\n\n				// Starting after a blank line
-			[ ]{0,3}			// attacklab: g_tab_width - 1
-			<!
-			(--[^\r]*?--\s*)+
-			>
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(\n\n[ ]{0,3}<!(--[^\r]*?--\s*)+>[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// PHP and ASP-style processor instructions (<?...?> and <%...%>)
-
-	/*
-		text = text.replace(/
-		(?:
-			\n\n				// Starting after a blank line
-		)
-		(						// save in $1
-			[ ]{0,3}			// attacklab: g_tab_width - 1
-			(?:
-				<([?%])			// $2
-				[^\r]*?
-				\2>
-			)
-			[ \t]*
-			(?=\n{2,})			// followed by a blank line
-		)
-		/g,hashElement);
-	*/
-	text = text.replace(/(?:\n\n)([ ]{0,3}(?:<([?%])[^\r]*?\2>)[ \t]*(?=\n{2,}))/g,hashElement);
-
-	// attacklab: Undo double lines (see comment at top of this function)
-	text = text.replace(/\n\n/g,"\n");
-	return text;
-}
-
-var hashElement = function(wholeMatch,m1) {
-	var blockText = m1;
-
-	// Undo double lines
-	blockText = blockText.replace(/\n\n/g,"\n");
-	blockText = blockText.replace(/^\n/,"");
-
-	// strip trailing blank lines
-	blockText = blockText.replace(/\n+$/g,"");
-
-	// Replace the element text with a marker ("~KxK" where x is its key)
-	blockText = "\n\n~K" + (g_html_blocks.push(blockText)-1) + "K\n\n";
-
-	return blockText;
-};
-
-var _RunBlockGamut = function(text) {
-//
-// These are all the transformations that form block-level
-// tags like paragraphs, headers, and list items.
-//
-	text = _DoHeaders(text);
-
-	// Do Horizontal Rules:
-	var key = hashBlock("<hr />");
-	text = text.replace(/^[ ]{0,2}([ ]?\*[ ]?){3,}[ \t]*$/gm,key);
-	text = text.replace(/^[ ]{0,2}([ ]?\-[ ]?){3,}[ \t]*$/gm,key);
-	text = text.replace(/^[ ]{0,2}([ ]?\_[ ]?){3,}[ \t]*$/gm,key);
-
-	text = _DoLists(text);
-	text = _DoCodeBlocks(text);
-	text = _DoBlockQuotes(text);
-
-	// We already ran _HashHTMLBlocks() before, in Markdown(), but that
-	// was to escape raw HTML in the original Markdown source. This time,
-	// we're escaping the markup we've just created, so that we don't wrap
-	// <p> tags around block-level tags.
-	text = _HashHTMLBlocks(text);
-	text = _FormParagraphs(text);
-
-	return text;
-};
-
-
-var _RunSpanGamut = function(text) {
-//
-// These are all the transformations that occur *within* block-level
-// tags like paragraphs, headers, and list items.
-//
-
-	text = _DoCodeSpans(text);
-	text = _EscapeSpecialCharsWithinTagAttributes(text);
-	text = _EncodeBackslashEscapes(text);
-
-	// Process anchor and image tags. Images must come first,
-	// because ![foo][f] looks like an anchor.
-	text = _DoImages(text);
-	text = _DoAnchors(text);
-
-	// Make links out of things like `<http://example.com/>`
-	// Must come after _DoAnchors(), because you can use < and >
-	// delimiters in inline links like [this](<url>).
-	text = _DoAutoLinks(text);
-	text = _EncodeAmpsAndAngles(text);
-	text = _DoItalicsAndBold(text);
-
-	// Do hard breaks:
-	text = text.replace(/  +\n/g," <br />\n");
-
-	return text;
-}
-
-var _EscapeSpecialCharsWithinTagAttributes = function(text) {
-//
-// Within tags -- meaning between < and > -- encode [\ ` * _] so they
-// don't conflict with their use in Markdown for code, italics and strong.
-//
-
-	// Build a regex to find HTML tags and comments.  See Friedl's
-	// "Mastering Regular Expressions", 2nd Ed., pp. 200-201.
-	var regex = /(<[a-z\/!$]("[^"]*"|'[^']*'|[^'">])*>|<!(--.*?--\s*)+>)/gi;
-
-	text = text.replace(regex, function(wholeMatch) {
-		var tag = wholeMatch.replace(/(.)<\/?code>(?=.)/g,"$1`");
-		tag = escapeCharacters(tag,"\\`*_");
-		return tag;
-	});
-
-	return text;
-}
-
-var _DoAnchors = function(text) {
-//
-// Turn Markdown link shortcuts into XHTML <a> tags.
-//
-	//
-	// First, handle reference-style links: [link text] [id]
-	//
-
-	/*
-		text = text.replace(/
-		(							// wrap whole match in $1
-			\[
-			(
-				(?:
-					\[[^\]]*\]		// allow brackets nested one level
-					|
-					[^\[]			// or anything else
-				)*
-			)
-			\]
-
-			[ ]?					// one optional space
-			(?:\n[ ]*)?				// one optional newline followed by spaces
-
-			\[
-			(.*?)					// id = $3
-			\]
-		)()()()()					// pad remaining backreferences
-		/g,_DoAnchors_callback);
-	*/
-	text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeAnchorTag);
-
-	//
-	// Next, inline-style links: [link text](url "optional title")
-	//
-
-	/*
-		text = text.replace(/
-			(						// wrap whole match in $1
-				\[
-				(
-					(?:
-						\[[^\]]*\]	// allow brackets nested one level
-					|
-					[^\[\]]			// or anything else
-				)
-			)
-			\]
-			\(						// literal paren
-			[ \t]*
-			()						// no id, so leave $3 empty
-			<?(.*?)>?				// href = $4
-			[ \t]*
-			(						// $5
-				(['"])				// quote char = $6
-				(.*?)				// Title = $7
-				\6					// matching quote
-				[ \t]*				// ignore any spaces/tabs between closing quote and )
-			)?						// title is optional
-			\)
-		)
-		/g,writeAnchorTag);
-	*/
-	text = text.replace(/(\[((?:\[[^\]]*\]|[^\[\]])*)\]\([ \t]*()<?(.*?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeAnchorTag);
-
-	//
-	// Last, handle reference-style shortcuts: [link text]
-	// These must come last in case you've also got [link test][1]
-	// or [link test](/foo)
-	//
-
-	/*
-		text = text.replace(/
-		(		 					// wrap whole match in $1
-			\[
-			([^\[\]]+)				// link text = $2; can't contain '[' or ']'
-			\]
-		)()()()()()					// pad rest of backreferences
-		/g, writeAnchorTag);
-	*/
-	text = text.replace(/(\[([^\[\]]+)\])()()()()()/g, writeAnchorTag);
-
-	return text;
-}
-
-var writeAnchorTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
-	if (m7 == undefined) m7 = "";
-	var whole_match = m1;
-	var link_text   = m2;
-	var link_id	 = m3.toLowerCase();
-	var url		= m4;
-	var title	= m7;
-
-	if (url == "") {
-		if (link_id == "") {
-			// lower-case and turn embedded newlines into spaces
-			link_id = link_text.toLowerCase().replace(/ ?\n/g," ");
-		}
-		url = "#"+link_id;
-
-		if (g_urls[link_id] != undefined) {
-			url = g_urls[link_id];
-			if (g_titles[link_id] != undefined) {
-				title = g_titles[link_id];
-			}
-		}
-		else {
-			if (whole_match.search(/\(\s*\)$/m)>-1) {
-				// Special case for explicit empty url
-				url = "";
-			} else {
-				return whole_match;
-			}
-		}
-	}
-
-	url = escapeCharacters(url,"*_");
-	var result = "<a href=\"" + url + "\"";
-
-	if (title != "") {
-		title = title.replace(/"/g,"&quot;");
-		title = escapeCharacters(title,"*_");
-		result +=  " title=\"" + title + "\"";
-	}
-
-	result += ">" + link_text + "</a>";
-
-	return result;
-}
-
-
-var _DoImages = function(text) {
-//
-// Turn Markdown image shortcuts into <img> tags.
-//
-
-	//
-	// First, handle reference-style labeled images: ![alt text][id]
-	//
-
-	/*
-		text = text.replace(/
-		(						// wrap whole match in $1
-			!\[
-			(.*?)				// alt text = $2
-			\]
-
-			[ ]?				// one optional space
-			(?:\n[ ]*)?			// one optional newline followed by spaces
-
-			\[
-			(.*?)				// id = $3
-			\]
-		)()()()()				// pad rest of backreferences
-		/g,writeImageTag);
-	*/
-	text = text.replace(/(!\[(.*?)\][ ]?(?:\n[ ]*)?\[(.*?)\])()()()()/g,writeImageTag);
-
-	//
-	// Next, handle inline images:  ![alt text](url "optional title")
-	// Don't forget: encode * and _
-
-	/*
-		text = text.replace(/
-		(						// wrap whole match in $1
-			!\[
-			(.*?)				// alt text = $2
-			\]
-			\s?					// One optional whitespace character
-			\(					// literal paren
-			[ \t]*
-			()					// no id, so leave $3 empty
-			<?(\S+?)>?			// src url = $4
-			[ \t]*
-			(					// $5
-				(['"])			// quote char = $6
-				(.*?)			// title = $7
-				\6				// matching quote
-				[ \t]*
-			)?					// title is optional
-		\)
-		)
-		/g,writeImageTag);
-	*/
-	text = text.replace(/(!\[(.*?)\]\s?\([ \t]*()<?(\S+?)>?[ \t]*((['"])(.*?)\6[ \t]*)?\))/g,writeImageTag);
-
-	return text;
-}
-
-var writeImageTag = function(wholeMatch,m1,m2,m3,m4,m5,m6,m7) {
-	var whole_match = m1;
-	var alt_text   = m2;
-	var link_id	 = m3.toLowerCase();
-	var url		= m4;
-	var title	= m7;
-
-	if (!title) title = "";
-
-	if (url == "") {
-		if (link_id == "") {
-			// lower-case and turn embedded newlines into spaces
-			link_id = alt_text.toLowerCase().replace(/ ?\n/g," ");
-		}
-		url = "#"+link_id;
-
-		if (g_urls[link_id] != undefined) {
-			url = g_urls[link_id];
-			if (g_titles[link_id] != undefined) {
-				title = g_titles[link_id];
-			}
-		}
-		else {
-			return whole_match;
-		}
-	}
-
-	alt_text = alt_text.replace(/"/g,"&quot;");
-	url = escapeCharacters(url,"*_");
-	var result = "<img src=\"" + url + "\" alt=\"" + alt_text + "\"";
-
-	// attacklab: Markdown.pl adds empty title attributes to images.
-	// Replicate this bug.
-
-	//if (title != "") {
-		title = title.replace(/"/g,"&quot;");
-		title = escapeCharacters(title,"*_");
-		result +=  " title=\"" + title + "\"";
-	//}
-
-	result += " />";
-
-	return result;
-}
-
-
-var _DoHeaders = function(text) {
-
-	// Setext-style headers:
-	//	Header 1
-	//	========
-	//
-	//	Header 2
-	//	--------
-	//
-	text = text.replace(/^(.+)[ \t]*\n=+[ \t]*\n+/gm,
-		function(wholeMatch,m1){return hashBlock('<h1 id="' + headerId(m1) + '">' + _RunSpanGamut(m1) + "</h1>");});
-
-	text = text.replace(/^(.+)[ \t]*\n-+[ \t]*\n+/gm,
-		function(matchFound,m1){return hashBlock('<h2 id="' + headerId(m1) + '">' + _RunSpanGamut(m1) + "</h2>");});
-
-	// atx-style headers:
-	//  # Header 1
-	//  ## Header 2
-	//  ## Header 2 with closing hashes ##
-	//  ...
-	//  ###### Header 6
-	//
-
-	/*
-		text = text.replace(/
-			^(\#{1,6})				// $1 = string of #'s
-			[ \t]*
-			(.+?)					// $2 = Header text
-			[ \t]*
-			\#*						// optional closing #'s (not counted)
-			\n+
-		/gm, function() {...});
-	*/
-
-	text = text.replace(/^(\#{1,6})[ \t]*(.+?)[ \t]*\#*\n+/gm,
-		function(wholeMatch,m1,m2) {
-			var h_level = m1.length;
-			return hashBlock("<h" + h_level + ' id="' + headerId(m2) + '">' + _RunSpanGamut(m2) + "</h" + h_level + ">");
-		});
-
-	function headerId(m) {
-		return m.replace(/[^\w]/g, '').toLowerCase();
-	}
-	return text;
-}
-
-// This declaration keeps Dojo compressor from outputting garbage:
-var _ProcessListItems;
-
-var _DoLists = function(text) {
-//
-// Form HTML ordered (numbered) and unordered (bulleted) lists.
-//
-
-	// attacklab: add sentinel to hack around khtml/safari bug:
-	// http://bugs.webkit.org/show_bug.cgi?id=11231
-	text += "~0";
-
-	// Re-usable pattern to match any entirel ul or ol list:
-
-	/*
-		var whole_list = /
-		(									// $1 = whole list
-			(								// $2
-				[ ]{0,3}					// attacklab: g_tab_width - 1
-				([*+-]|\d+[.])				// $3 = first list item marker
-				[ \t]+
-			)
-			[^\r]+?
-			(								// $4
-				~0							// sentinel for workaround; should be $
-			|
-				\n{2,}
-				(?=\S)
-				(?!							// Negative lookahead for another list item marker
-					[ \t]*
-					(?:[*+-]|\d+[.])[ \t]+
-				)
-			)
-		)/g
-	*/
-	var whole_list = /^(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/gm;
-
-	if (g_list_level) {
-		text = text.replace(whole_list,function(wholeMatch,m1,m2) {
-			var list = m1;
-			var list_type = (m2.search(/[*+-]/g)>-1) ? "ul" : "ol";
-
-			// Turn double returns into triple returns, so that we can make a
-			// paragraph for the last item in a list, if necessary:
-			list = list.replace(/\n{2,}/g,"\n\n\n");;
-			var result = _ProcessListItems(list);
-
-			// Trim any trailing whitespace, to put the closing `</$list_type>`
-			// up on the preceding line, to get it past the current stupid
-			// HTML block parser. This is a hack to work around the terrible
-			// hack that is the HTML block parser.
-			result = result.replace(/\s+$/,"");
-			result = "<"+list_type+">" + result + "</"+list_type+">\n";
-			return result;
-		});
-	} else {
-		whole_list = /(\n\n|^\n?)(([ ]{0,3}([*+-]|\d+[.])[ \t]+)[^\r]+?(~0|\n{2,}(?=\S)(?![ \t]*(?:[*+-]|\d+[.])[ \t]+)))/g;
-		text = text.replace(whole_list,function(wholeMatch,m1,m2,m3) {
-			var runup = m1;
-			var list = m2;
-
-			var list_type = (m3.search(/[*+-]/g)>-1) ? "ul" : "ol";
-			// Turn double returns into triple returns, so that we can make a
-			// paragraph for the last item in a list, if necessary:
-			var list = list.replace(/\n{2,}/g,"\n\n\n");;
-			var result = _ProcessListItems(list);
-			result = runup + "<"+list_type+">\n" + result + "</"+list_type+">\n";
-			return result;
-		});
-	}
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-}
-
-_ProcessListItems = function(list_str) {
-//
-//  Process the contents of a single ordered or unordered list, splitting it
-//  into individual list items.
-//
-	// The $g_list_level global keeps track of when we're inside a list.
-	// Each time we enter a list, we increment it; when we leave a list,
-	// we decrement. If it's zero, we're not in a list anymore.
-	//
-	// We do this because when we're not inside a list, we want to treat
-	// something like this:
-	//
-	//    I recommend upgrading to version
-	//    8. Oops, now this line is treated
-	//    as a sub-list.
-	//
-	// As a single paragraph, despite the fact that the second line starts
-	// with a digit-period-space sequence.
-	//
-	// Whereas when we're inside a list (or sub-list), that line will be
-	// treated as the start of a sub-list. What a kludge, huh? This is
-	// an aspect of Markdown's syntax that's hard to parse perfectly
-	// without resorting to mind-reading. Perhaps the solution is to
-	// change the syntax rules such that sub-lists must start with a
-	// starting cardinal number; e.g. "1." or "a.".
-
-	g_list_level++;
-
-	// trim trailing blank lines:
-	list_str = list_str.replace(/\n{2,}$/,"\n");
-
-	// attacklab: add sentinel to emulate \z
-	list_str += "~0";
-
-	/*
-		list_str = list_str.replace(/
-			(\n)?							// leading line = $1
-			(^[ \t]*)						// leading whitespace = $2
-			([*+-]|\d+[.]) [ \t]+			// list marker = $3
-			([^\r]+?						// list item text   = $4
-			(\n{1,2}))
-			(?= \n* (~0 | \2 ([*+-]|\d+[.]) [ \t]+))
-		/gm, function(){...});
-	*/
-	list_str = list_str.replace(/(\n)?(^[ \t]*)([*+-]|\d+[.])[ \t]+([^\r]+?(\n{1,2}))(?=\n*(~0|\2([*+-]|\d+[.])[ \t]+))/gm,
-		function(wholeMatch,m1,m2,m3,m4){
-			var item = m4;
-			var leading_line = m1;
-			var leading_space = m2;
-
-			if (leading_line || (item.search(/\n{2,}/)>-1)) {
-				item = _RunBlockGamut(_Outdent(item));
-			}
-			else {
-				// Recursion for sub-lists:
-				item = _DoLists(_Outdent(item));
-				item = item.replace(/\n$/,""); // chomp(item)
-				item = _RunSpanGamut(item);
-			}
-
-			return  "<li>" + item + "</li>\n";
-		}
-	);
-
-	// attacklab: strip sentinel
-	list_str = list_str.replace(/~0/g,"");
-
-	g_list_level--;
-	return list_str;
-}
-
-
-var _DoCodeBlocks = function(text) {
-//
-//  Process Markdown `<pre><code>` blocks.
-//
-
-	/*
-		text = text.replace(text,
-			/(?:\n\n|^)
-			(								// $1 = the code block -- one or more lines, starting with a space/tab
-				(?:
-					(?:[ ]{4}|\t)			// Lines must start with a tab or a tab-width of spaces - attacklab: g_tab_width
-					.*\n+
-				)+
-			)
-			(\n*[ ]{0,3}[^ \t\n]|(?=~0))	// attacklab: g_tab_width
-		/g,function(){...});
-	*/
-
-	// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
-	text += "~0";
-
-	text = text.replace(/(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g,
-		function(wholeMatch,m1,m2) {
-			var codeblock = m1;
-			var nextChar = m2;
-
-			codeblock = _EncodeCode( _Outdent(codeblock));
-			codeblock = _Detab(codeblock);
-			codeblock = codeblock.replace(/^\n+/g,""); // trim leading newlines
-			codeblock = codeblock.replace(/\n+$/g,""); // trim trailing whitespace
-
-			codeblock = "<pre><code>" + codeblock + "\n</code></pre>";
-
-			return hashBlock(codeblock) + nextChar;
-		}
-	);
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-};
-
-var _DoGithubCodeBlocks = function(text) {
-//
-//  Process Github-style code blocks
-//  Example:
-//  ```ruby
-//  def hello_world(x)
-//    puts "Hello, #{x}"
-//  end
-//  ```
-//
-
-
-	// attacklab: sentinel workarounds for lack of \A and \Z, safari\khtml bug
-	text += "~0";
-
-	text = text.replace(/(?:^|\n)```(.*)\n([\s\S]*?)\n```/g,
-		function(wholeMatch,m1,m2) {
-			var language = m1;
-			var codeblock = m2;
-
-			codeblock = _EncodeCode(codeblock);
-			codeblock = _Detab(codeblock);
-			codeblock = codeblock.replace(/^\n+/g,""); // trim leading newlines
-			codeblock = codeblock.replace(/\n+$/g,""); // trim trailing whitespace
-
-			codeblock = "<pre><code" + (language ? " class=\"" + language + '"' : "") + ">" + codeblock + "\n</code></pre>";
-
-			return hashBlock(codeblock);
-		}
-	);
-
-	// attacklab: strip sentinel
-	text = text.replace(/~0/,"");
-
-	return text;
-}
-
-var hashBlock = function(text) {
-	text = text.replace(/(^\n+|\n+$)/g,"");
-	return "\n\n~K" + (g_html_blocks.push(text)-1) + "K\n\n";
-}
-
-var _DoCodeSpans = function(text) {
-//
-//   *  Backtick quotes are used for <code></code> spans.
-//
-//   *  You can use multiple backticks as the delimiters if you want to
-//	 include literal backticks in the code span. So, this input:
-//
-//		 Just type ``foo `bar` baz`` at the prompt.
-//
-//	   Will translate to:
-//
-//		 <p>Just type <code>foo `bar` baz</code> at the prompt.</p>
-//
-//	There's no arbitrary limit to the number of backticks you
-//	can use as delimters. If you need three consecutive backticks
-//	in your code, use four for delimiters, etc.
-//
-//  *  You can use spaces to get literal backticks at the edges:
-//
-//		 ... type `` `bar` `` ...
-//
-//	   Turns to:
-//
-//		 ... type <code>`bar`</code> ...
-//
-
-	/*
-		text = text.replace(/
-			(^|[^\\])					// Character before opening ` can't be a backslash
-			(`+)						// $2 = Opening run of `
-			(							// $3 = The code block
-				[^\r]*?
-				[^`]					// attacklab: work around lack of lookbehind
-			)
-			\2							// Matching closer
-			(?!`)
-		/gm, function(){...});
-	*/
-
-	text = text.replace(/(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm,
-		function(wholeMatch,m1,m2,m3,m4) {
-			var c = m3;
-			c = c.replace(/^([ \t]*)/g,"");	// leading whitespace
-			c = c.replace(/[ \t]*$/g,"");	// trailing whitespace
-			c = _EncodeCode(c);
-			return m1+"<code>"+c+"</code>";
-		});
-
-	return text;
-}
-
-var _EncodeCode = function(text) {
-//
-// Encode/escape certain characters inside Markdown code runs.
-// The point is that in code, these characters are literals,
-// and lose their special Markdown meanings.
-//
-	// Encode all ampersands; HTML entities are not
-	// entities within a Markdown code span.
-	text = text.replace(/&/g,"&amp;");
-
-	// Do the angle bracket song and dance:
-	text = text.replace(/</g,"&lt;");
-	text = text.replace(/>/g,"&gt;");
-
-	// Now, escape characters that are magic in Markdown:
-	text = escapeCharacters(text,"\*_{}[]\\",false);
-
-// jj the line above breaks this:
-//---
-
-//* Item
-
-//   1. Subitem
-
-//            special char: *
-//---
-
-	return text;
-}
-
-
-var _DoItalicsAndBold = function(text) {
-
-	// <strong> must go first:
-	text = text.replace(/(\*\*|__)(?=\S)([^\r]*?\S[*_]*)\1/g,
-		"<strong>$2</strong>");
-
-	text = text.replace(/(\*|_)(?=\S)([^\r]*?\S)\1/g,
-		"<em>$2</em>");
-
-	return text;
-}
-
-
-var _DoBlockQuotes = function(text) {
-
-	/*
-		text = text.replace(/
-		(								// Wrap whole match in $1
-			(
-				^[ \t]*>[ \t]?			// '>' at the start of a line
-				.+\n					// rest of the first line
-				(.+\n)*					// subsequent consecutive lines
-				\n*						// blanks
-			)+
-		)
-		/gm, function(){...});
-	*/
-
-	text = text.replace(/((^[ \t]*>[ \t]?.+\n(.+\n)*\n*)+)/gm,
-		function(wholeMatch,m1) {
-			var bq = m1;
-
-			// attacklab: hack around Konqueror 3.5.4 bug:
-			// "----------bug".replace(/^-/g,"") == "bug"
-
-			bq = bq.replace(/^[ \t]*>[ \t]?/gm,"~0");	// trim one level of quoting
-
-			// attacklab: clean up hack
-			bq = bq.replace(/~0/g,"");
-
-			bq = bq.replace(/^[ \t]+$/gm,"");		// trim whitespace-only lines
-			bq = _RunBlockGamut(bq);				// recurse
-
-			bq = bq.replace(/(^|\n)/g,"$1  ");
-			// These leading spaces screw with <pre> content, so we need to fix that:
-			bq = bq.replace(
-					/(\s*<pre>[^\r]+?<\/pre>)/gm,
-				function(wholeMatch,m1) {
-					var pre = m1;
-					// attacklab: hack around Konqueror 3.5.4 bug:
-					pre = pre.replace(/^  /mg,"~0");
-					pre = pre.replace(/~0/g,"");
-					return pre;
-				});
-
-			return hashBlock("<blockquote>\n" + bq + "\n</blockquote>");
-		});
-	return text;
-}
-
-
-var _FormParagraphs = function(text) {
-//
-//  Params:
-//    $text - string to process with html <p> tags
-//
-
-	// Strip leading and trailing lines:
-	text = text.replace(/^\n+/g,"");
-	text = text.replace(/\n+$/g,"");
-
-	var grafs = text.split(/\n{2,}/g);
-	var grafsOut = new Array();
-
-	//
-	// Wrap <p> tags.
-	//
-	var end = grafs.length;
-	for (var i=0; i<end; i++) {
-		var str = grafs[i];
-
-		// if this is an HTML marker, copy it
-		if (str.search(/~K(\d+)K/g) >= 0) {
-			grafsOut.push(str);
-		}
-		else if (str.search(/\S/) >= 0) {
-			str = _RunSpanGamut(str);
-			str = str.replace(/^([ \t]*)/g,"<p>");
-			str += "</p>"
-			grafsOut.push(str);
-		}
-
-	}
-
-	//
-	// Unhashify HTML blocks
-	//
-	end = grafsOut.length;
-	for (var i=0; i<end; i++) {
-		// if this is a marker for an html block...
-		while (grafsOut[i].search(/~K(\d+)K/) >= 0) {
-			var blockText = g_html_blocks[RegExp.$1];
-			blockText = blockText.replace(/\$/g,"$$$$"); // Escape any dollar signs
-			grafsOut[i] = grafsOut[i].replace(/~K\d+K/,blockText);
-		}
-	}
-
-	return grafsOut.join("\n\n");
-}
-
-
-var _EncodeAmpsAndAngles = function(text) {
-// Smart processing for ampersands and angle brackets that need to be encoded.
-
-	// Ampersand-encoding based entirely on Nat Irons's Amputator MT plugin:
-	//   http://bumppo.net/projects/amputator/
-	text = text.replace(/&(?!#?[xX]?(?:[0-9a-fA-F]+|\w+);)/g,"&amp;");
-
-	// Encode naked <'s
-	text = text.replace(/<(?![a-z\/?\$!])/gi,"&lt;");
-
-	return text;
-}
-
-
-var _EncodeBackslashEscapes = function(text) {
-//
-//   Parameter:  String.
-//   Returns:	The string, with after processing the following backslash
-//			   escape sequences.
-//
-
-	// attacklab: The polite way to do this is with the new
-	// escapeCharacters() function:
-	//
-	// 	text = escapeCharacters(text,"\\",true);
-	// 	text = escapeCharacters(text,"`*_{}[]()>#+-.!",true);
-	//
-	// ...but we're sidestepping its use of the (slow) RegExp constructor
-	// as an optimization for Firefox.  This function gets called a LOT.
-
-	text = text.replace(/\\(\\)/g,escapeCharacters_callback);
-	text = text.replace(/\\([`*_{}\[\]()>#+-.!])/g,escapeCharacters_callback);
-	return text;
-}
-
-
-var _DoAutoLinks = function(text) {
-
-	text = text.replace(/<((https?|ftp|dict):[^'">\s]+)>/gi,"<a href=\"$1\">$1</a>");
-
-	// Email addresses: <address@domain.foo>
-
-	/*
-		text = text.replace(/
-			<
-			(?:mailto:)?
-			(
-				[-.\w]+
-				\@
-				[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+
-			)
-			>
-		/gi, _DoAutoLinks_callback());
-	*/
-	text = text.replace(/<(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)>/gi,
-		function(wholeMatch,m1) {
-			return _EncodeEmailAddress( _UnescapeSpecialChars(m1) );
-		}
-	);
-
-	return text;
-}
-
-
-var _EncodeEmailAddress = function(addr) {
-//
-//  Input: an email address, e.g. "foo@example.com"
-//
-//  Output: the email address as a mailto link, with each character
-//	of the address encoded as either a decimal or hex entity, in
-//	the hopes of foiling most address harvesting spam bots. E.g.:
-//
-//	<a href="&#x6D;&#97;&#105;&#108;&#x74;&#111;:&#102;&#111;&#111;&#64;&#101;
-//	   x&#x61;&#109;&#x70;&#108;&#x65;&#x2E;&#99;&#111;&#109;">&#102;&#111;&#111;
-//	   &#64;&#101;x&#x61;&#109;&#x70;&#108;&#x65;&#x2E;&#99;&#111;&#109;</a>
-//
-//  Based on a filter by Matthew Wickline, posted to the BBEdit-Talk
-//  mailing list: <http://tinyurl.com/yu7ue>
-//
-
-	// attacklab: why can't javascript speak hex?
-	function char2hex(ch) {
-		var hexDigits = '0123456789ABCDEF';
-		var dec = ch.charCodeAt(0);
-		return(hexDigits.charAt(dec>>4) + hexDigits.charAt(dec&15));
-	}
-
-	var encode = [
-		function(ch){return "&#"+ch.charCodeAt(0)+";";},
-		function(ch){return "&#x"+char2hex(ch)+";";},
-		function(ch){return ch;}
-	];
-
-	addr = "mailto:" + addr;
-
-	addr = addr.replace(/./g, function(ch) {
-		if (ch == "@") {
-		   	// this *must* be encoded. I insist.
-			ch = encode[Math.floor(Math.random()*2)](ch);
-		} else if (ch !=":") {
-			// leave ':' alone (to spot mailto: later)
-			var r = Math.random();
-			// roughly 10% raw, 45% hex, 45% dec
-			ch =  (
-					r > .9  ?	encode[2](ch)   :
-					r > .45 ?	encode[1](ch)   :
-								encode[0](ch)
-				);
-		}
-		return ch;
-	});
-
-	addr = "<a href=\"" + addr + "\">" + addr + "</a>";
-	addr = addr.replace(/">.+:/g,"\">"); // strip the mailto: from the visible part
-
-	return addr;
-}
-
-
-var _UnescapeSpecialChars = function(text) {
-//
-// Swap back in all the special characters we've hidden.
-//
-	text = text.replace(/~E(\d+)E/g,
-		function(wholeMatch,m1) {
-			var charCodeToReplace = parseInt(m1);
-			return String.fromCharCode(charCodeToReplace);
-		}
-	);
-	return text;
-}
-
-
-var _Outdent = function(text) {
-//
-// Remove one level of line-leading tabs or spaces
-//
-
-	// attacklab: hack around Konqueror 3.5.4 bug:
-	// "----------bug".replace(/^-/g,"") == "bug"
-
-	text = text.replace(/^(\t|[ ]{1,4})/gm,"~0"); // attacklab: g_tab_width
-
-	// attacklab: clean up hack
-	text = text.replace(/~0/g,"")
-
-	return text;
-}
-
-var _Detab = function(text) {
-// attacklab: Detab's completely rewritten for speed.
-// In perl we could fix it by anchoring the regexp with \G.
-// In javascript we're less fortunate.
-
-	// expand first n-1 tabs
-	text = text.replace(/\t(?=\t)/g,"    "); // attacklab: g_tab_width
-
-	// replace the nth with two sentinels
-	text = text.replace(/\t/g,"~A~B");
-
-	// use the sentinel to anchor our regex so it doesn't explode
-	text = text.replace(/~B(.+?)~A/g,
-		function(wholeMatch,m1,m2) {
-			var leadingText = m1;
-			var numSpaces = 4 - leadingText.length % 4;  // attacklab: g_tab_width
-
-			// there *must* be a better way to do this:
-			for (var i=0; i<numSpaces; i++) leadingText+=" ";
-
-			return leadingText;
-		}
-	);
-
-	// clean up sentinels
-	text = text.replace(/~A/g,"    ");  // attacklab: g_tab_width
-	text = text.replace(/~B/g,"");
-
-	return text;
-}
-
-
-//
-//  attacklab: Utility functions
-//
-
-
-var escapeCharacters = function(text, charsToEscape, afterBackslash) {
-	// First we have to escape the escape characters so that
-	// we can build a character class out of them
-	var regexString = "([" + charsToEscape.replace(/([\[\]\\])/g,"\\$1") + "])";
-
-	if (afterBackslash) {
-		regexString = "\\\\" + regexString;
-	}
-
-	var regex = new RegExp(regexString,"g");
-	text = text.replace(regex,escapeCharacters_callback);
-
-	return text;
-}
-
-
-var escapeCharacters_callback = function(wholeMatch,m1) {
-	var charCodeToEscape = m1.charCodeAt(0);
-	return "~E"+charCodeToEscape+"E";
-}
-
-} // end of Showdown.converter
-
-// export
-if (typeof module !== 'undefined') module.exports = Showdown;
diff --git a/docs/slides/plpv14/_support/reveal/package.json b/docs/slides/plpv14/_support/reveal/package.json
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/package.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
-	"author": "Hakim El Hattab",
-	"name": "reveal.js",
-	"description": "HTML5 Slideware with Presenter Notes",
-	"version": "1.5.0",
-	"repository": {
-		"type": "git",
-		"url": "git://github.com/hakimel/reveal.js.git"
-	},
-	"engines": {
-		"node": "~0.6.8"
-	},
-	"dependencies": {
-		"underscore" : "1.3.3",
-		"express" : "2.5.9",
-		"socket.io" : "0.9.6",
-		"mustache" : "0.4.0"
-	},
-	"devDependencies": {}
-}
diff --git a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/client.js b/docs/slides/plpv14/_support/reveal/plugin/speakernotes/client.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/client.js
+++ /dev/null
@@ -1,35 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/index.js b/docs/slides/plpv14/_support/reveal/plugin/speakernotes/index.js
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/index.js
+++ /dev/null
@@ -1,55 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/speakernotes/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'speakernotes/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m', 
-	green = '\033[32m', 
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/notes.html b/docs/slides/plpv14/_support/reveal/plugin/speakernotes/notes.html
deleted file mode 100644
--- a/docs/slides/plpv14/_support/reveal/plugin/speakernotes/notes.html
+++ /dev/null
@@ -1,111 +0,0 @@
-<!doctype html>
-<html lang="en">
-	<head>
-		<meta charset="utf-8">
-
-		<title>reveal.js - Slide Notes</title>
-
-		<style>
-			body {
-				font-family: Helvetica;
-			}
-
-			#notes {
-				float: left;
-				font-size: 18px;
-				width: 640px;
-				margin-top: 10px;
-			}
-
-			#wrap-current-slide {
-				width: 400px;
-				height: 320px;
-				float: left;
-				overflow: hidden;
-			}
-
-			#current-slide {
-				width: 800px;
-				height: 600px;
-				border: none;
-				-moz-transform: scale(0.5);
-				-moz-transform-origin: 0 0;
-				-o-transform: scale(0.5);
-				-o-transform-origin: 0 0;
-				-webkit-transform: scale(0.5);
-				-webkit-transform-origin: 0 0;
-			}
-
-			#wrap-next-slide {
-				width: 320px;
-				height: 256px;
-				float: left;
-				margin: 0 0 0 10px;
-				overflow: hidden;
-			}
-
-			#next-slide {
-				width: 800px;
-				height: 600px;
-				border: none;
-				-moz-transform: scale(0.25);
-				-moz-transform-origin: 0 0;
-				-o-transform: scale(0.25);
-				-o-transform-origin: 0 0;
-				-webkit-transform: scale(0.25);
-				-webkit-transform-origin: 0 0;
-			}
-
-			.slides {
-				position: relative;
-				margin-bottom: 10px;
-				border: 1px solid black;
-				border-radius: 2px;
-				background: rgb(28, 30, 32);
-			}
-
-			.slides span {
-				position: absolute;
-				top: 3px;
-				left: 3px;
-				font-weight: bold;
-				font-size: 14px;
-				color: rgba( 255, 255, 255, 0.9 );
-			}
-		</style>
-	</head>
-
-	<body>
-
-		<div id="wrap-current-slide" class="slides">
-			<iframe src="/?receiver" width="800" height="600" id="current-slide"></iframe>
-		</div>
-
-		<div id="notes"></div>
-
-		<div id="wrap-next-slide" class="slides">
-			<iframe src="/?receiver" width="640" height="512" id="next-slide"></iframe>
-			<span>UPCOMING:</span>
-		</div>
-
-		<script src="/socket.io/socket.io.js"></script>
-
-		<script>
-		var socketId = '{{socketId}}';
-		var socket = io.connect(window.location.origin);
-		var notes = document.getElementById('notes');
-		var currentSlide = document.getElementById('current-slide');
-		var nextSlide = document.getElementById('next-slide');
-
-		socket.on('slidedata', function(data) {
-			// ignore data from sockets that aren't ours
-			if (data.socketId !== socketId) { return; }
-
-			notes.innerHTML = data.notes;
-			currentSlide.contentWindow.Reveal.navigateTo(data.indexh, data.indexv);
-			nextSlide.contentWindow.Reveal.navigateTo(data.nextindexh, data.nextindexv);
-		});
-		</script>
-
-	</body>
-</html>
diff --git a/docs/slides/plpv14/_support/template.reveal b/docs/slides/plpv14/_support/template.reveal
deleted file mode 100644
--- a/docs/slides/plpv14/_support/template.reveal
+++ /dev/null
@@ -1,103 +0,0 @@
-<!doctype html>  
-<html lang="en">
-	
-<head>
-<meta charset="utf-8">
-
-<title>LiquidHaskell Tutorial</title>
-
-<meta name="description" content="Tutorial Slides">
-<meta name="author" content="Ranjit Jhala">
-
-<meta name="apple-mobile-web-app-capable" content="yes" />
-<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />
-
-<link href='http://fonts.googleapis.com/css?family=Lato:400,700,400italic,700italic' rel='stylesheet' type='text/css'>
-
-<link rel="stylesheet" href="$reveal$/css/main.css">
-<link rel="stylesheet" href="$reveal$/css/theme/seminar.css" id="theme">
-<link rel="stylesheet" href="$reveal$/css/liquidhaskell.css">
-
-<!-- For syntax highlighting -->
-<link rel="stylesheet" href="$reveal$/lib/css/zenburn.css">
-
-<script>
-	// If the query includes 'print-pdf' we'll use the PDF print sheet
-	document.write( '<link rel="stylesheet" href="../_support/reveal_01/css/print/' + ( window.location.search.match( /print-pdf/gi ) ? 'pdf' : 'paper' ) + '.css" type="text/css" media="print">' );
-</script>
-
-<!--[if lt IE 9]>
-<script src="lib/js/html5shiv.js"></script>
-<![endif]-->
-</head>
-<body>
-	
-<div class="reveal">
-<!-- 
-Used to fade in a background when a specific slide state is reached
--->
-<div class="state-background"></div>
-
-<!-- Slides
-Any section element inside of this "slides" container is displayed as a slide
--->
-<div class="slides">
-<!-- Pandoc -->
-$if(title)$
-<section class="titlepage">
-<h1 class="title">$title$</h1>
-$for(author)$
-<h2 class="author">$author$</h2>
-$endfor$
-<h3 class="date">$date$</h3>
-</section>
-$endif$
-$body$
-<!-- End Pandoc -->
-
-</div>
-<!-- End Slides -->
-
-<!-- The navigational controls UI -->
-<aside class="controls">
-<a class="left" href="#">&#x25C4;</a>
-<a class="right" href="#">&#x25BA;</a>
-<a class="up" href="#">&#x25B2;</a>
-<a class="down" href="#">&#x25BC;</a>
-</aside>
-
-<!-- Presentation progress bar -->
-<div class="progress"><span></span></div>
-</div>
-
-<!-- Initialize reveal.js :: make settings changes here -->
-<script src="$reveal$/lib/js/head.min.js"></script>
-<script src="$reveal$/js/reveal.js"></script>
-<script>		
-	// Full list of configuration options available here:
-	// https://github.com/hakimel/reveal.js#configuration
-	Reveal.initialize({
-		controls: true,
-		progress: true,
-		history: true,
-		center: false,
-        rollingLinks: false,
-        theme: Reveal.getQueryHash().theme || 'seminar', // available themes are in /css/theme
-		transition: Reveal.getQueryHash().transition || 'default', // default/cube/page/concave/linear(2d)
-
-		// Optional libraries used to extend on reveal.js
-		dependencies: [
-			{ src: '$reveal$/lib/js/highlight.js', async: true, callback: function() { window.hljs.initHighlightingOnLoad(); } },
-			{ src: '$reveal$/lib/js/classList.js', condition: function() { return !document.body.classList; } },
-			{ src: '$reveal$/lib/js/showdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/lib/js/data-markdown.js', condition: function() { return !!document.querySelector( '[data-markdown]' ); } },
-			{ src: '$reveal$/socket.io/socket.io.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-			{ src: '$reveal$/plugin/speakernotes/client.js', async: true, condition: function() { return window.location.host === 'localhost:1947'; } },
-		]
-	});
-</script>
-<!-- Script for LiveReload -->
-<script>document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')
-</script>
-</body>
-</html>
diff --git a/docs/slides/plpv14/hopa/AbstractRefinements.lhs b/docs/slides/plpv14/hopa/AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/hopa/AbstractRefinements.lhs
+++ /dev/null
@@ -1,130 +0,0 @@
-% Abstract Refinements
-
-Abstract Refinements
---------------------
-
-\begin{code}
-module AbstractRefinements where
-\end{code}
-
-
-Abstract Refinements
---------------------
-
-<br>
-
-\begin{code} Consider the following function 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-\begin{code} We can give `maxInt` many (incomparable) refinement types:
-maxInt :: Nat -> Nat -> Nat
-
-maxInt :: Even -> Even -> Even
-
-maxInt :: Prime -> Prime -> Prime
-\end{code}
-
-But **which** is the **right** type?
-
-
-Parametric Invariants 
----------------------
-
-`maxInt` returns *one of* its two inputs `x` and `y`. 
-
-- **If** *both inputs* satisfy a property  
-
-- **Then** *output* must satisfy that property
-
-This holds, **regardless of what that property was!**
- 
-- That  is, we can **abstract over refinements**
-
-- Or,  **parameterize** a type over its refinements.
-
-Parametric Invariants
---------------------- 
-
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. Int<p> -> Int<p> -> Int<p> @-}
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-
-
-Where
-
-- `Int<p>` is just an abbreviation for `{v:Int | (p v)}`
-
-
-This type states explicitly:
-
-- **For any property** `p`, that is a property of `Int`, 
-
-- `maxInt` takes two **inputs** of which satisfy `p`,
-
-- `maxInt` returns an **output** that satisfies `p`. 
-
-
-Parametric Invariants via Abstract Refinements
----------------------------------------------- 
-
-\begin{code} We type `maxInt` as
-maxInt :: forall <p :: Int -> Prop>. Int<p> -> Int<p> -> Int<p> 
-\end{code}
-
-We call `p` an an **abstract refinement** <br>
-
-
-In the refinement logic,
-
-- abstract refinements are **uninterpreted function symbols**
-
-- which (only) satisfy the *congruence axiom*: forall x, y. x = y => (p x) = (p y)
-
-
-
-Using Abstract Refinements
---------------------------
-
-- **If** we call `maxInt` with two `Int`s with the same concrete refinement,
-
-- **Then** the `p` will be instantiated with that concrete refinement,
-
-- **The output** of the call will also enjoy the concrete refinement.
-
-For example, the refinement is instantiated with `\v -> v >= 0` <br>
-
-\begin{code}
-{-@ maxNat :: Nat @-}
-maxNat     :: Int
-maxNat     = maxInt 2 5
-\end{code}
-
-Using Abstract Refinements
---------------------------
-
-- **If** we call `maxInt` with two `Int`s with the same concrete refinement,
-
-- **Then** the `p` will be instantiated with that concrete refinement,
-
-- **The output** of the call will also enjoy the concrete refinement.
-
-Or any other property <br>
-
-\begin{code}
-{-@ type RGB = {v: Int | ((0 <= v) && (v < 256)) } @-}
-\end{code}
-
-<br> to verify <br>
-
-\begin{code}
-{-@ maxRGB :: RGB @-}
-maxRGB     :: Int
-maxRGB     = maxInt 56 8
-\end{code}
diff --git a/docs/slides/plpv14/lhs/.01_SimpleRefinements.lhs.swn b/docs/slides/plpv14/lhs/.01_SimpleRefinements.lhs.swn
deleted file mode 100644
Binary files a/docs/slides/plpv14/lhs/.01_SimpleRefinements.lhs.swn and /dev/null differ
diff --git a/docs/slides/plpv14/lhs/00_Index.lhs b/docs/slides/plpv14/lhs/00_Index.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/00_Index.lhs
+++ /dev/null
@@ -1,151 +0,0 @@
-Refinement Types For Haskell
-============================
-
- {#berg} 
---------
-
-<br>
-
-+ Niki Vazou
-+ Eric Seidel
-+ *Ranjit Jhala*
-
-<br>
-
-**UC San Diego**
-
-<div class="hidden">
-
-\begin{code}
-main = putStrLn "Easter Egg"
-\end{code}
-
-</div>
-
-Install
--------
-
-<br>
-
-`cabal install liquidhaskell`
-
-<br>
-
-<div class="fragment"> 
-
-  Requires an SMTLIB2 binary 
-  
-  <br>
-
-  + `http://z3.codeplex.com`
-  + `http://cvc4.cs.nyu.edu`
-  + `http://mathsat.fbk.eu`
-
-</div>
-
-Try Online
-----------
-
-<br>
-
-`http://goto.ucsd.edu/liquid/haskell/demo`
-
-Follow Slides
--------------
-
-<br>
-
-`goto.ucsd.edu/~rjhala/liquid/haskell/plpv/lhs/`
-
-
- {#plan} 
---------
-
-1. <div class="fragment"><a href="01_SimpleRefinements.lhs.slides.html" target= "_blank">Refinements</a></div>
-2. <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-3. <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-4. <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements</a></div>
-    - <div class="fragment"><a href="05_Composition.lhs.slides.html" target="_blank">Dependency</a><a href="06_Inductive.lhs.slides.html" target= "_blank">, Induction</a> <a href="07_Array.lhs.slides.html" target= "_blank">, Indexing</a> <a href="08_Recursive.lhs.slides.html" target= "_blank">, Recursion</a></div>
-5. <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Lazy Evaluation</a></div>
-6. <div class="fragment"><a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-
-<!--
-
-[Higher Order Functions](03_HigherOrderFunctions.lhs.slides.html)
-   </div>
-4. <div class="fragment">
-      [Abstract Refinements](04_AbstractRefinements.lhs.slides.html)
-   </div>
-    - <div class="fragment">[Dependency](05_Composition.lhs.slides.html), 
-                            [Induction](06_Inductive.lhs.slides.html), 
-                            [Indexing](07_Array.lhs.slides.html), 
-                            [Recursion](08_Recursive.lhs.slides.html)
-      </div>
-5. <div class="fragment">
-    [Lazy Evaluation](09_Laziness.lhs.slides.html)
-   </div>
-6. <div class="fragment">
-     [Termination](10_Termination.lhs.slides.html)
-   </div>
-
--->
-
-Evaluation
-==========
-
-LiquidHaskell Is For Real
--------------------------
-
-<br>
-
-Substantial code bases, tricky properties.
-
-<br>
-
-<div class="fragment">Inference, FTW.</div>
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                      LOC
----------------------------   ------
-`GHC.List`                       310
-`Data.List`                      504
-`Data.Set.Splay`                 149
-`Data.Vector.Algorithms`        1219
-`Data.Map.Base`                 1396
-`Data.Text`                     3125
-`Data.Bytestring`               3501 
----------------------------   ------
-
-</div>
-
-Evaluation: Termination
------------------------
-
-How bad is *termination* requirement anyway?
-
-- <div class="fragment">`520` recursive functions</div>
-- <div class="fragment">`67%` automatically proved</div>
-- <div class="fragment">`30%` need *witnesses* `/[...]`</div>
-- <div class="fragment">`18`  *not proven terminating*</div>
-- <div class="fragment">`12`  don't actually terminate (top-level `IO`)</div>
-- <div class="fragment">`6`   *probably* terminate, but *we* can't tell why.</div>
-
-
-Future Work
------------
-
-- Error Messages
-
-- Speed
-
-- Case Studies
-
-Thank You!
-----------
-
-`cabal install liquidhaskell`
-
diff --git a/docs/slides/plpv14/lhs/00_Index.lhs.markdown b/docs/slides/plpv14/lhs/00_Index.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/00_Index.lhs.markdown
+++ /dev/null
@@ -1,151 +0,0 @@
-Refinement Types For Haskell
-============================
-
- {#berg} 
---------
-
-<br>
-
-+ Niki Vazou
-+ Eric Seidel
-+ *Ranjit Jhala*
-
-<br>
-
-**UC San Diego**
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>20: </span><a class=annot href="#"><span class=annottext>{x2 : (IO ()) | (x2 == Main.main)}</span><span class='hs-definition'>main</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>[(Char)] -&gt; (IO ())</span><span class='hs-varid'>putStrLn</span></a> <a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"Easter Egg"</span></a>
-</pre>
-
-</div>
-
-Install
--------
-
-<br>
-
-`cabal install liquidhaskell`
-
-<br>
-
-<div class="fragment"> 
-
-  Requires an SMTLIB2 binary 
-  
-  <br>
-
-  + `http://z3.codeplex.com`
-  + `http://cvc4.cs.nyu.edu`
-  + `http://mathsat.fbk.eu`
-
-</div>
-
-Try Online
-----------
-
-<br>
-
-`http://goto.ucsd.edu/liquid/haskell/demo`
-
-Follow Slides
--------------
-
-<br>
-
-`goto.ucsd.edu/~rjhala/liquid/haskell/plpv/lhs/`
-
-
- {#plan} 
---------
-
-1. <div class="fragment"><a href="01_SimpleRefinements.lhs.slides.html" target= "_blank">Refinements</a></div>
-2. <div class="fragment"><a href="02_Measures.lhs.slides.html" target= "_blank">Measures</a></div>
-3. <div class="fragment"><a href="03_HigherOrderFunctions.lhs.slides.html" target= "_blank">Higher-Order Functions</a></div>
-4. <div class="fragment"><a href="04_AbstractRefinements.lhs.slides.html" target= "_blank">Abstract Refinements</a></div>
-    - <div class="fragment"><a href="05_Composition.lhs.slides.html" target="_blank">Dependency</a><a href="06_Inductive.lhs.slides.html" target= "_blank">, Induction</a> <a href="07_Array.lhs.slides.html" target= "_blank">, Indexing</a> <a href="08_Recursive.lhs.slides.html" target= "_blank">, Recursion</a></div>
-5. <div class="fragment"><a href="09_Laziness.lhs.slides.html" target="_blank">Lazy Evaluation</a></div>
-6. <div class="fragment"><a href="10_Termination.lhs.slides.html" target="_blank">Termination</a></div>
-
-<!--
-
-[Higher Order Functions](03_HigherOrderFunctions.lhs.slides.html)
-   </div>
-4. <div class="fragment">
-      [Abstract Refinements](04_AbstractRefinements.lhs.slides.html)
-   </div>
-    - <div class="fragment">[Dependency](05_Composition.lhs.slides.html), 
-                            [Induction](06_Inductive.lhs.slides.html), 
-                            [Indexing](07_Array.lhs.slides.html), 
-                            [Recursion](08_Recursive.lhs.slides.html)
-      </div>
-5. <div class="fragment">
-    [Lazy Evaluation](09_Laziness.lhs.slides.html)
-   </div>
-6. <div class="fragment">
-     [Termination](10_Termination.lhs.slides.html)
-   </div>
-
--->
-
-Evaluation
-==========
-
-LiquidHaskell Is For Real
--------------------------
-
-<br>
-
-Substantial code bases, tricky properties.
-
-<br>
-
-<div class="fragment">Inference, FTW.</div>
-
-Numbers
--------
-
-<div align="center">
-
-**Library**                      LOC
----------------------------   ------
-`GHC.List`                       310
-`Data.List`                      504
-`Data.Set.Splay`                 149
-`Data.Vector.Algorithms`        1219
-`Data.Map.Base`                 1396
-`Data.Text`                     3125
-`Data.Bytestring`               3501 
----------------------------   ------
-
-</div>
-
-Evaluation: Termination
------------------------
-
-How bad is *termination* requirement anyway?
-
-- <div class="fragment">`520` recursive functions</div>
-- <div class="fragment">`67%` automatically proved</div>
-- <div class="fragment">`30%` need *witnesses* `/[...]`</div>
-- <div class="fragment">`18`  *not proven terminating*</div>
-- <div class="fragment">`12`  don't actually terminate (top-level `IO`)</div>
-- <div class="fragment">`6`   *probably* terminate, but *we* can't tell why.</div>
-
-
-Future Work
------------
-
-- Error Messages
-
-- Speed
-
-- Case Studies
-
-Thank You!
-----------
-
-`cabal install liquidhaskell`
-
diff --git a/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs b/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs
+++ /dev/null
@@ -1,360 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-module SimpleRefinements where
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (abs, max)
-
--- boring haskell type sigs
-zero    :: Int
-zero'   :: Int
-safeDiv :: Int -> Int -> Int
-abs     :: Int -> Int
-nats    :: L Int
-evens   :: L Int
-odds    :: L Int
-range   :: Int -> Int -> L Int
-\end{code}
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example
--------
-
-Integers equal to `0`
-
-<br>
-
-\begin{code}
-{-@ type EqZero = {v:Int | v = 0} @-}
-\end{code}
-
-
-Example
--------
-
-Integers equal to `0`
-
-<br>
-
-\begin{code}
-{-@ zero :: EqZero @-}
-zero     =  0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}`
-</div>
-
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
-Lets take a look.
-</div>
-
- {#refinementsArePredicates}
-============================
-
-Refinements Are Predicates
---------------------------
-
-
-Refinements Are Predicates
-==========================
-
-Subtyping is Implication
-------------------------
-
-[Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
---------  ---  ---------------------------------------------
-  **If**   :   Refinement of `S` *implies* refinement of `T` 
-
-**Then**   :   `S` is a *subtype* of `T`
---------  ---  ---------------------------------------------
-
-<br>
-
-
-Subtyping is Implication
-------------------------
-
-
-<br>
-
---------   ---     ----------------------------
-  **If**    :      `p => q`
-                
-**Then**    :      `{v : t | p} <: {v : t | q}`
---------   ---     ----------------------------
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
---------    ---  ---------------------------------------------------
-  **As**     :   `v=0` *implies* `0<=v` ... via SMT
-                 
-  **So**     :   `{v:Int | v=0} <: {v:Int | 0<=v}`
---------    ---  ---------------------------------------------------
-
-
-Example: Natural Numbers
-------------------------
-
-\begin{code} . 
-type Nat = {v : Int | 0 <= v}
-\end{code}
-
-<br>
-
-Via SMT, LiquidHaskell infers `EqZero <: Nat`, hence:
-
-<br>
-
-\begin{code}
-{-@ zero' :: Nat @-}
-zero'     =  zero
-\end{code}
-
- {#universalinvariants}
-=======================
-
-Types = Universal Invariants
-----------------------------
-
-(Notoriously hard with *pure* SMT)
-
-Types Yield Universal Invariants
-================================
-
-Example: Lists
---------------
-
-<div class="hidden">
-\begin{code}
-infixr `C`
-\end{code}
-</div>
-
-\begin{code}
-data L a = N | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-*Every element* in `nats` is non-negative:
-\begin{code}
-{-@ nats :: L Nat @-}
-nats     =  0 `C` 1 `C` 3 `C` N
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `nats` contained `-2`? 
-
-</div>
-
-Example: Even/Odd Lists
------------------------
-
-\begin{code}
-{-@ type Even = {v:Int | v mod 2 =  0} @-}
-{-@ type Odd  = {v:Int | v mod 2 /= 0} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ evens :: L Even @-}
-evens     =  0 `C` 2 `C` 4 `C` N
-
-{-@ odds  :: L Odd  @-}
-odds      =  1 `C` 3 `C` 5 `C` N 
-\end{code}
-</div>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `evens` contained `1`? 
-</div>
-
- {#functiontypes}
-=================
-
-Contracts = Function Types
---------------------------
-
-Contracts: Function Types
-=========================
-
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-**Precondition** divisor is *non-zero*.
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ type NonZero = {v:Int | v /= 0} @-}
-\end{code}
-</div>
-
-<br>
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-+ **Pre-condition** divisor is *non-zero*.
-+ **Input type** specifies *pre-condition*
-
-<br>
-
-\begin{code}
-{-@ safeDiv :: Int -> NonZero -> Int @-}
-safeDiv x y = x `div` y
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if precondition does not hold?
-
-</div>
-
-Example: `abs`
---------------
-
-<br>
-
-+ **Postcondition** result is non-negative
-+ **Output type** specifies *post-condition*
-
-<br>
-
-\begin{code}
-{-@ abs       :: x:Int -> Nat @-}
-abs x 
-  | 0 <= x    = x 
-  | otherwise = 0 - x
-\end{code}
-
-
-
- {#dependentfunctions}
-======================
-
-Dependent Function Types
-------------------------
-
-+ Outputs *refer to* inputs
-+ *Relational* invariants
-
-
-Dependent Function Types
-========================
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ type Btwn I J = {v:_|(I <= v && v < J)} @-}
-\end{code}
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-\begin{code}
-{-@ range :: i:Int -> j:Int -> L (Btwn i j) @-}
-range i j         = go i
-  where
-    go n
-      | n < j     = n `C` go (n + 1)  
-      | otherwise = N
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Question:** What is the type of `go` ?
-</div>
-
-
-Example: Indexing Into List
----------------------------
-
-\begin{code} 
-(!)          :: L a -> Int -> a
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "Oops!"
-\end{code}
-
-<br>
-
-<div class="fragment">(Mouseover to view type of `liquidError`)</div>
-
-<br>
-
-- <div class="fragment">**Q:** How to ensure safety? </div>
-- <div class="fragment">**A:** Precondition: `i` between `0` and list **length**.
-
-<div class="fragment">Need way to [measure](#measures) *length of a list* ...</div>
-
-
diff --git a/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs.markdown b/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/01_SimpleRefinements.lhs.markdown
+++ /dev/null
@@ -1,386 +0,0 @@
- {#simplerefinements}
-=======================
-
-Simple Refinement Types
------------------------
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>10: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>11: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>SimpleRefinements</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>12: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>13: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>abs</span><span class='hs-layout'>,</span> <span class='hs-varid'>max</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>14: </span>
-<span class=hs-linenum>15: </span><span class='hs-comment'>-- boring haskell type sigs</span>
-<span class=hs-linenum>16: </span><span class='hs-definition'>zero</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>17: </span><span class='hs-definition'>zero'</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>18: </span><span class='hs-definition'>safeDiv</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>19: </span><span class='hs-definition'>abs</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>20: </span><span class='hs-definition'>nats</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>21: </span><span class='hs-definition'>evens</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>22: </span><span class='hs-definition'>odds</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>23: </span><span class='hs-definition'>range</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-</pre>
-
-</div>
-
-
-Simple Refinement Types
-=======================
-
-
-Types + Predicates 
-------------------
-
-
-Example
--------
-
-Integers equal to `0`
-
-<br>
-
-
-<pre><span class=hs-linenum>45: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>EqZero</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-Example
--------
-
-Integers equal to `0`
-
-<br>
-
-
-<pre><span class=hs-linenum>57: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>zero</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>EqZero</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>58: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV == 0)}</span><span class='hs-definition'>zero</span></a>     <span class='hs-keyglyph'>=</span>  <a class=annot href="#"><span class=annottext>x1:(Int#) -&gt; {x2 : (Int) | (x2 == (x1  :  int))}</span><span class='hs-num'>0</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-Refinement types via special comments `{-@ ... @-}`
-</div>
-
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo</a> 
-Lets take a look.
-</div>
-
- {#refinementsArePredicates}
-============================
-
-Refinements Are Predicates
---------------------------
-
-
-Refinements Are Predicates
-==========================
-
-Subtyping is Implication
-------------------------
-
-[Predicate Subtyping](http://pvs.csl.sri.com/papers/subtypes98/tse98.pdf)
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
---------  ---  ---------------------------------------------
-  **If**   :   Refinement of `S` *implies* refinement of `T` 
-
-**Then**   :   `S` is a *subtype* of `T`
---------  ---  ---------------------------------------------
-
-<br>
-
-
-Subtyping is Implication
-------------------------
-
-
-<br>
-
---------   ---     ----------------------------
-  **If**    :      `p => q`
-                
-**Then**    :      `{v : t | p} <: {v : t | q}`
---------   ---     ----------------------------
-
-
-Subtyping is Implication
-------------------------
-
-<br>
-
---------    ---  ---------------------------------------------------
-  **As**     :   `v=0` *implies* `0<=v` ... via SMT
-                 
-  **So**     :   `{v:Int | v=0} <: {v:Int | 0<=v}`
---------    ---  ---------------------------------------------------
-
-
-Example: Natural Numbers
-------------------------
-
- . 
-<pre><span class=hs-linenum>134: </span><span class='hs-keyword'>type</span> <span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span> <span class='hs-conop'>:</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-num'>0</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span>
-</pre>
-
-<br>
-
-Via SMT, LiquidHaskell infers `EqZero <: Nat`, hence:
-
-<br>
-
-
-<pre><span class=hs-linenum>144: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>zero'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>145: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-definition'>zero'</span></a>     <span class='hs-keyglyph'>=</span>  <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == 0) &amp;&amp; (x3 == SimpleRefinements.zero)}</span><span class='hs-varid'>zero</span></a>
-</pre>
-
- {#universalinvariants}
-=======================
-
-Types = Universal Invariants
-----------------------------
-
-(Notoriously hard with *pure* SMT)
-
-Types Yield Universal Invariants
-================================
-
-Example: Lists
---------------
-
-<div class="hidden">
-
-<pre><span class=hs-linenum>164: </span><span class='hs-keyword'>infixr</span> <span class='hs-varop'>`C`</span>
-</pre>
-</div>
-
-
-<pre><span class=hs-linenum>169: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-*Every element* in `nats` is non-negative:
-
-<pre><span class=hs-linenum>177: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>nats</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>178: </span><a class=annot href="#"><span class=annottext>(L {VV : (Int) | (VV &gt;= 0)})</span><span class='hs-definition'>nats</span></a>     <span class='hs-keyglyph'>=</span>  <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x14 : (Int) | (x14 &gt;= 0) &amp;&amp; (x14 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x14)}
--&gt; (L {x14 : (Int) | (x14 &gt;= 0) &amp;&amp; (x14 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x14)})
--&gt; (L {x14 : (Int) | (x14 &gt;= 0) &amp;&amp; (x14 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x14)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)}
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)}
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>(L {x2 : (Int) | false})</span><span class='hs-conid'>N</span></a>
-</pre>
-</div>
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `nats` contained `-2`? 
-
-</div>
-
-Example: Even/Odd Lists
------------------------
-
-
-<pre><span class=hs-linenum>195: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Even</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-varid'>mod</span> <span class='hs-num'>2</span> <span class='hs-keyglyph'>=</span>  <span class='hs-num'>0</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>196: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-varid'>mod</span> <span class='hs-num'>2</span> <span class='hs-varop'>/=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-
-<pre><span class=hs-linenum>203: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>evens</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Even</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>204: </span><a class=annot href="#"><span class=annottext>(L {VV : (Int) | ((VV mod 2) == 0)})</span><span class='hs-definition'>evens</span></a>     <span class='hs-keyglyph'>=</span>  <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x17 : (Int) | ((x17 mod 2) == 0) &amp;&amp; (x17 &gt;= 0) &amp;&amp; (x17 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x17)}
--&gt; (L {x17 : (Int) | ((x17 mod 2) == 0) &amp;&amp; (x17 &gt;= 0) &amp;&amp; (x17 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x17)})
--&gt; (L {x17 : (Int) | ((x17 mod 2) == 0) &amp;&amp; (x17 &gt;= 0) &amp;&amp; (x17 &gt;= SimpleRefinements.zero) &amp;&amp; (SimpleRefinements.zero &lt;= x17)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a> <a class=annot href="#"><span class=annottext>{x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)}
--&gt; (L {x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)})
--&gt; (L {x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (4  :  int))}</span><span class='hs-num'>4</span></a> <a class=annot href="#"><span class=annottext>{x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)}
--&gt; (L {x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)})
--&gt; (L {x23 : (Int) | ((x23 mod 2) == 0) &amp;&amp; (x23 /= 0) &amp;&amp; (x23 &gt; 0) &amp;&amp; (x23 &gt; SimpleRefinements.zero) &amp;&amp; (x23 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x23)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>(L {x2 : (Int) | false})</span><span class='hs-conid'>N</span></a>
-<span class=hs-linenum>205: </span>
-<span class=hs-linenum>206: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>odds</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>207: </span><a class=annot href="#"><span class=annottext>(L {VV : (Int) | ((VV mod 2) == 1)})</span><span class='hs-definition'>odds</span></a>      <span class='hs-keyglyph'>=</span>  <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)}
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)}
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (5  :  int))}</span><span class='hs-num'>5</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)}
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})
--&gt; (L {x20 : (Int) | ((x20 mod 2) == 1) &amp;&amp; (x20 &gt; 0) &amp;&amp; (x20 &gt; SimpleRefinements.zero) &amp;&amp; (x20 &gt;= 0) &amp;&amp; (SimpleRefinements.zero &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>(L {x2 : (Int) | false})</span><span class='hs-conid'>N</span></a> 
-</pre>
-</div>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if `evens` contained `1`? 
-</div>
-
- {#functiontypes}
-=================
-
-Contracts = Function Types
---------------------------
-
-Contracts: Function Types
-=========================
-
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-**Precondition** divisor is *non-zero*.
-
-<br>
-
-<div class="fragment">
-
-<pre><span class=hs-linenum>237: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>NonZero</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-varop'>/=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-</div>
-
-<br>
-
-Example: `safeDiv`
-------------------
-
-<br>
-
-+ **Pre-condition** divisor is *non-zero*.
-+ **Input type** specifies *pre-condition*
-
-<br>
-
-
-<pre><span class=hs-linenum>254: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>safeDiv</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>NonZero</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>255: </span><a class=annot href="#"><span class=annottext>(Int) -&gt; {VV : (Int) | (VV /= 0)} -&gt; (Int)</span><span class='hs-definition'>safeDiv</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV /= 0)}</span><span class='hs-varid'>y</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; x2:(Int)
--&gt; {x6 : (Int) | (((x1 &gt;= 0) &amp;&amp; (x2 &gt;= 0)) =&gt; (x6 &gt;= 0)) &amp;&amp; (((x1 &gt;= 0) &amp;&amp; (x2 &gt;= 1)) =&gt; (x6 &lt;= x1)) &amp;&amp; (x6 == (x1 / x2))}</span><span class='hs-varop'>`div`</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == y) &amp;&amp; (x3 /= 0)}</span><span class='hs-varid'>y</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellSimpleRefinements.hs" target= "_blank">Demo:</a> 
-What if precondition does not hold?
-
-</div>
-
-Example: `abs`
---------------
-
-<br>
-
-+ **Postcondition** result is non-negative
-+ **Output type** specifies *post-condition*
-
-<br>
-
-
-<pre><span class=hs-linenum>278: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>abs</span>       <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>279: </span><a class=annot href="#"><span class=annottext>(Int) -&gt; {VV : (Int) | (VV &gt;= 0)}</span><span class='hs-definition'>abs</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>x</span></a> 
-<span class=hs-linenum>280: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; x2:(Int) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt;= x2))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == x)}</span><span class='hs-varid'>x</span></a>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == x)}</span><span class='hs-varid'>x</span></a> 
-<span class=hs-linenum>281: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == x)}</span><span class='hs-varid'>x</span></a>
-</pre>
-
-
-
- {#dependentfunctions}
-======================
-
-Dependent Function Types
-------------------------
-
-+ Outputs *refer to* inputs
-+ *Relational* invariants
-
-
-Dependent Function Types
-========================
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-
-<pre><span class=hs-linenum>313: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Btwn</span> <span class='hs-conid'>I</span> <span class='hs-conid'>J</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span><span class='hs-keyglyph'>|</span><span class='hs-layout'>(</span><span class='hs-conid'>I</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&lt;</span> <span class='hs-conid'>J</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-Example: `range`
-----------------
-
-`(range i j)` returns `Int`s between `i` and `j`
-
-<br>
-
-
-<pre><span class=hs-linenum>324: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>range</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>j</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-layout'>(</span><span class='hs-conid'>Btwn</span> <span class='hs-varid'>i</span> <span class='hs-varid'>j</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>325: </span><a class=annot href="#"><span class=annottext>i:(Int) -&gt; j:(Int) -&gt; (L {v : (Int) | (v &lt; j) &amp;&amp; (i &lt;= v)})</span><span class='hs-definition'>range</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>j</span></a>         <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x10 : (Int) | (x10 &gt;= i) &amp;&amp; (i &lt;= x10)}
--&gt; (L {x7 : (Int) | (x7 &gt;= i) &amp;&amp; (x7 &gt;= x1) &amp;&amp; (x7 &lt; j) &amp;&amp; (i &lt;= x7) &amp;&amp; (x1 &lt;= x7)})</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a>
-<span class=hs-linenum>326: </span>  <span class='hs-keyword'>where</span>
-<span class=hs-linenum>327: </span>    <a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= i) &amp;&amp; (i &lt;= VV)}
--&gt; (L {VV : (Int) | (VV &gt;= i) &amp;&amp; (VV &gt;= n) &amp;&amp; (VV &lt; j) &amp;&amp; (i &lt;= VV) &amp;&amp; (n &lt;= VV)})</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= i) &amp;&amp; (i &lt;= VV)}</span><span class='hs-varid'>n</span></a>
-<span class=hs-linenum>328: </span>      <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == n) &amp;&amp; (x4 &gt;= i) &amp;&amp; (i &lt;= x4)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == j)}</span><span class='hs-varid'>j</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == n) &amp;&amp; (x4 &gt;= i) &amp;&amp; (i &lt;= x4)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>{x20 : (Int) | (x20 &gt;= i) &amp;&amp; (x20 &gt;= n) &amp;&amp; (x20 &lt; j) &amp;&amp; (i &lt;= x20) &amp;&amp; (n &lt;= x20)}
--&gt; (L {x20 : (Int) | (x20 &gt;= i) &amp;&amp; (x20 &gt;= n) &amp;&amp; (x20 &lt; j) &amp;&amp; (i &lt;= x20) &amp;&amp; (n &lt;= x20)})
--&gt; (L {x20 : (Int) | (x20 &gt;= i) &amp;&amp; (x20 &gt;= n) &amp;&amp; (x20 &lt; j) &amp;&amp; (i &lt;= x20) &amp;&amp; (n &lt;= x20)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= i) &amp;&amp; (i &lt;= VV)}
--&gt; (L {VV : (Int) | (VV &gt;= i) &amp;&amp; (VV &gt;= n) &amp;&amp; (VV &lt; j) &amp;&amp; (i &lt;= VV) &amp;&amp; (n &lt;= VV)})</span><span class='hs-varid'>go</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == n) &amp;&amp; (x4 &gt;= i) &amp;&amp; (i &lt;= x4)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>  
-<span class=hs-linenum>329: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(L {x2 : (Int) | false})</span><span class='hs-conid'>N</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-**Question:** What is the type of `go` ?
-</div>
-
-
-Example: Indexing Into List
----------------------------
-
- 
-<pre><span class=hs-linenum>343: </span><span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-layout'>)</span>          <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>344: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span>  <a class=annot href="#"><span class=annottext>forall a. (L a) -&gt; (Int) -&gt; a</span><span class='hs-varop'>!</span></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a>
-<span class=hs-linenum>345: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-varop'>!</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(L a)</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>(L a) -&gt; (Int) -&gt; a</span><span class='hs-varop'>!</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>346: </span><span class='hs-keyword'>_</span>        <span class='hs-varop'>!</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x1 : [(Char)] | false} -&gt; {VV : a | false}</span><span class='hs-varid'>liquidError</span></a> <span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"Oops!"</span></a></span>
-</pre>
-
-<br>
-
-<div class="fragment">(Mouseover to view type of `liquidError`)</div>
-
-<br>
-
-- <div class="fragment">**Q:** How to ensure safety? </div>
-- <div class="fragment">**A:** Precondition: `i` between `0` and list **length**.
-
-<div class="fragment">Need way to [measure](#measures) *length of a list* ...</div>
-
-
diff --git a/docs/slides/plpv14/lhs/02_Measures.lhs b/docs/slides/plpv14/lhs/02_Measures.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/02_Measures.lhs
+++ /dev/null
@@ -1,321 +0,0 @@
-
- {#measures}
-============
-
-Measuring Data Types
---------------------
-
-<div class="hidden">
-
-\begin{code}
-module Measures where
-import Prelude hiding ((!!), length)
-import Language.Haskell.Liquid.Prelude
-
-length      :: L a -> Int
-(!)         :: L a -> Int -> a
-insert      :: Ord a => a -> L a -> L a
-insertSort  :: Ord a => [a] -> L a
-\end{code}
-
-</div>
-
-Measuring Data Types 
-====================
-
-Recap
------
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-<!--
-
----   -----------------------   ---  -------------------------
- 1.      **Refinement Types**    :   Types + Predicates
- 2.             **Subtyping**    :   SMT / Logical Implication 
----   -----------------------   ---  -------------------------
-
--->
-
-
-Example: Lists 
---------------
-
-<div class="hidden">
-
-\begin{code}
-infixr `C`
-\end{code}
-
-</div>
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-Example: Length of a List 
--------------------------
-
-\begin{code}
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-LiquidHaskell *strengthens* data constructor types
-\begin{code} <div/>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> xs:L a 
-         -> {v:L a | (llen v) = 1 + (llen xs)}
-\end{code}
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-\begin{code} <br>
-data L a where 
-  N :: {v: L a | (llen v) = 0}
-  C :: a -> xs:L a 
-         -> {v:L a | (llen v) = 1 + (llen xs)}
-\end{code}
-
-<br>
-
-`llen` is an *uninterpreted function* in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) `f` obeys *congruence* axiom:
-
-`forall x y. (x = y) => (f x) = (f y)`
-
-<br>
-
-<div class="fragment">
-All other facts about `llen` asserted at *fold* and *unfold*
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-All other facts about `llen` asserted at *fold* and *unfold*
-
-<br>
-
-<div class="fragment">
-\begin{code}**Fold**<br>
-z = C x y -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}**Unfold**<br>
-case z of 
-  N     -> e1 -- z :: {v | llen v = 0}
-  C x y -> e2 -- z :: {v | llen v = 1 + llen y}
-\end{code}
-</div>
-
-
-Measured Refinements
---------------------
-
-Now, we can verify:
-
-<br>
-
-\begin{code}
-{-@ length      :: xs:L a -> (EqLen xs) @-}
-length N        = 0
-length (C _ xs) = 1 + (length xs)
-\end{code}
-
-<div class="fragment">
-
-<br>
-
-Where `EqLen` is a type alias:
-
-\begin{code}
-{-@ type EqLen Xs = {v:Nat | v = (llen Xs)} @-}
-\end{code}
-
-</div>
-
-List Indexing Redux
--------------------
-
-We can type list indexed lookup:
-
-<br>
-
-\begin{code}
-{-@ (!)      :: xs:L a -> (LtLen xs) -> a @-}
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "never happens!"
-\end{code}
-
-<br>
-
-Where `LtLen` is a type alias:
-
-\begin{code}
-{-@ type LtLen Xs = {v:Nat | v < (llen Xs)} @-}
-\end{code}
-
-
-List Indexing Redux
--------------------
-
-Now we can type list indexed lookup:
-
-\begin{code} <br>
-{-@ (!)      :: xs:L a -> (LtLen xs) -> a @-}
-(C x _)  ! 0 = x
-(C _ xs) ! i = xs ! (i - 1)
-_        ! _ = liquidError "never happens!"
-\end{code}
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-What if we *remove* the precondition?
-
-Multiple Measures
------------------
-
-LiquidHaskell allows *many* measures for a type
-
-
-Multiple Measures 
------------------
-
-**Example:** Nullity of a `List` 
-
-\begin{code}
-{-@ measure isNull :: (L a) -> Prop
-    isNull (N)      = true
-    isNull (C x xs) = false           @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-\begin{code} LiquidHaskell **strengthens** data constructors
-data L a where 
-  N :: {v : L a | (isNull v)}
-  C :: a -> L a -> {v:(L a) | not (isNull v)}
-\end{code}
-
-</div>
-
-Multiple Measures
------------------
-
-LiquidHaskell *conjoins* data constructor types:
-
-\begin{code} <br>
-data L a where 
-  N :: {v:L a |  (llen v) = 0 
-              && (isNull v) }
-  C :: a 
-    -> xs:L a 
-    -> {v:L a |  (llen v) = 1 + (llen xs) 
-              && not (isNull v)          }
-\end{code}
-
-Multiple Measures
------------------
-
-Unlike [indexed types](http://dl.acm.org/citation.cfm?id=270793) ...
-
-<br>
-
-+ <div class="fragment">Measures *decouple* properties from structures</div>
-+ <div class="fragment">Support *multiple* properties over structures </div>
-+ <div class="fragment">Enable  *reuse* of structures                 </div>
-
-<br>
-
-<div class="fragment">Invaluable in practice!</div>
-
-Refined Data Constructors
--------------------------
-
-Can *directly pack* properties inside data constructors
-
-<div class="fragment">
-
-<br>
-
-\begin{code}
-{-@ data L a = N
-             | C (x :: a) 
-                 (xs :: L {v:a | x <= v})  @-}
-\end{code}
-
-</div>
-
-<div class="fragment">
-
-<br>
-
-Specifies *increasing* Lists 
-</div>
-
-Refined Data Constructors
--------------------------
-
-**Example:** Increasing Lists, with strengthened constructors:
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: x:a -> xs: L {v:a | x <= v} -> L a
-\end{code}
-
-<br>
-
-- <div class="fragment">LiquidHaskell *checks* property when *folding* `C`</div>
-- <div class="fragment">LiquidHaskell *assumes* property when *unfolding* `C`</div>
-
-Refined Data Constructors
--------------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs" target= "_blank">Demo: Insertion Sort</a> (hover for inferred types) 
-
-\begin{code}
-insertSort = foldr insert N
-
-insert y (x `C` xs) 
-  | y <= x    = y `C` (x `C` xs)
-  | otherwise = x `C` insert y xs
-insert y N    = y `C` N    
-\end{code}
-
-<br>
-
-<div class="fragment">**Problem 1:** What if we need *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?</div>
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. <div class="fragment">**Measures:** Strengthened Constructors</div>
-    - <div class="fragment">*Decouple* structure & property, enable *reuse*</div>
-
diff --git a/docs/slides/plpv14/lhs/02_Measures.lhs.markdown b/docs/slides/plpv14/lhs/02_Measures.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/02_Measures.lhs.markdown
+++ /dev/null
@@ -1,331 +0,0 @@
-
- {#measures}
-============
-
-Measuring Data Types
---------------------
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>11: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Measures</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>12: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>!!</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>length</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>13: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>14: </span>
-<span class=hs-linenum>15: </span><span class='hs-definition'>length</span>      <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>16: </span><span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-layout'>)</span>         <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>17: </span><span class='hs-definition'>insert</span>      <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>18: </span><span class='hs-definition'>insertSort</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-</pre>
-
-</div>
-
-Measuring Data Types 
-====================
-
-Recap
------
-
-1. <div class="fragment">**Refinements:** Types + Predicates</div>
-2. <div class="fragment">**Subtyping:** SMT Implication</div>
-
-<!--
-
----   -----------------------   ---  -------------------------
- 1.      **Refinement Types**    :   Types + Predicates
- 2.             **Subtyping**    :   SMT / Logical Implication 
----   -----------------------   ---  -------------------------
-
--->
-
-
-Example: Lists 
---------------
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>48: </span><span class='hs-keyword'>infixr</span> <span class='hs-varop'>`C`</span>
-</pre>
-
-</div>
-
-<br>
-
-
-<pre><span class=hs-linenum>56: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> 
-<span class=hs-linenum>57: </span>         <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-</pre>
-
-Example: Length of a List 
--------------------------
-
-
-<pre><span class=hs-linenum>64: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>measure</span> <span class='hs-varid'>llen</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>65: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>N</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
-<span class=hs-linenum>66: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>  <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-LiquidHaskell *strengthens* data constructor types
- <div/>
-<pre><span class=hs-linenum>74: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>75: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>76: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> 
-<span class=hs-linenum>77: </span>         <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
- <br>
-<pre><span class=hs-linenum>85: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>86: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>87: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> 
-<span class=hs-linenum>88: </span>         <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
-<br>
-
-`llen` is an *uninterpreted function* in SMT logic
-
-Measures Are Uninterpreted
---------------------------
-
-In SMT, [uninterpreted function](http://fm.csl.sri.com/SSFT12/smt-euf-arithmetic.pdf) `f` obeys *congruence* axiom:
-
-`forall x y. (x = y) => (f x) = (f y)`
-
-<br>
-
-<div class="fragment">
-All other facts about `llen` asserted at *fold* and *unfold*
-</div>
-
-Measures Are Uninterpreted
---------------------------
-
-All other facts about `llen` asserted at *fold* and *unfold*
-
-<br>
-
-<div class="fragment">
-**Fold**<br>
-<pre><span class=hs-linenum>117: </span><span class='hs-definition'>z</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-comment'>-- z :: {v | llen v = 1 + llen y}</span>
-</pre>
-</div>
-
-<br>
-
-<div class="fragment">
-**Unfold**<br>
-<pre><span class=hs-linenum>125: </span><span class='hs-keyword'>case</span> <span class='hs-varid'>z</span> <span class='hs-keyword'>of</span> 
-<span class=hs-linenum>126: </span>  <span class='hs-conid'>N</span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>e1</span> <span class='hs-comment'>-- z :: {v | llen v = 0}</span>
-<span class=hs-linenum>127: </span>  <span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>e2</span> <span class='hs-comment'>-- z :: {v | llen v = 1 + llen y}</span>
-</pre>
-</div>
-
-
-Measured Refinements
---------------------
-
-Now, we can verify:
-
-<br>
-
-
-<pre><span class=hs-linenum>140: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>length</span>      <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>EqLen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>141: </span><a class=annot href="#"><span class=annottext>forall a. x1:(L a) -&gt; {VV : (Int) | (VV == (llen x1)) &amp;&amp; (VV &gt;= 0)}</span><span class='hs-definition'>length</span></a> <span class='hs-conid'>N</span>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int#) -&gt; {x2 : (Int) | (x2 == (x1  :  int))}</span><span class='hs-num'>0</span></a>
-<span class=hs-linenum>142: </span><span class='hs-definition'>length</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall a. x1:(L a) -&gt; {VV : (Int) | (VV == (llen x1)) &amp;&amp; (VV &gt;= 0)}</span><span class='hs-varid'>length</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L a) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<div class="fragment">
-
-<br>
-
-Where `EqLen` is a type alias:
-
-
-<pre><span class=hs-linenum>152: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>EqLen</span> <span class='hs-conid'>Xs</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-conid'>Xs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-List Indexing Redux
--------------------
-
-We can type list indexed lookup:
-
-<br>
-
-
-<pre><span class=hs-linenum>165: </span><span class='hs-keyword'>{-@</span> <span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>LtLen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>166: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span>  <a class=annot href="#"><span class=annottext>forall a.
-x1:(L a) -&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; (llen x1))} -&gt; a</span><span class='hs-varop'>!</span></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a>
-<span class=hs-linenum>167: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-varop'>!</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(L {VV : a | (x &lt;= VV)})</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>forall a.
-x1:(L a) -&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; (llen x1))} -&gt; a</span><span class='hs-varop'>!</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 &gt;= 0)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>168: </span><span class='hs-keyword'>_</span>        <span class='hs-varop'>!</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x1 : [(Char)] | false} -&gt; {VV : a | false}</span><span class='hs-varid'>liquidError</span></a> <a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"never happens!"</span></a>
-</pre>
-
-<br>
-
-Where `LtLen` is a type alias:
-
-
-<pre><span class=hs-linenum>176: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>LtLen</span> <span class='hs-conid'>Xs</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&lt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-conid'>Xs</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-List Indexing Redux
--------------------
-
-Now we can type list indexed lookup:
-
- <br>
-<pre><span class=hs-linenum>186: </span><span class='hs-keyword'>{-@</span> <span class='hs-layout'>(</span><span class='hs-varop'>!</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>LtLen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>187: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>_</span><span class='hs-layout'>)</span>  <span class='hs-varop'>!</span> <span class='hs-num'>0</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>x</span>
-<span class=hs-linenum>188: </span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-keyword'>_</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-varop'>!</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>xs</span> <span class='hs-varop'>!</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span> <span class='hs-comment'>-</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>189: </span><span class='hs-keyword'>_</span>        <span class='hs-varop'>!</span> <span class='hs-keyword'>_</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>liquidError</span> <span class='hs-str'>"never happens!"</span>
-</pre>
-
-<br>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellMeasure.hs" target= "_blank">Demo:</a> 
-What if we *remove* the precondition?
-
-Multiple Measures
------------------
-
-LiquidHaskell allows *many* measures for a type
-
-
-Multiple Measures 
------------------
-
-**Example:** Nullity of a `List` 
-
-
-<pre><span class=hs-linenum>209: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>measure</span> <span class='hs-varid'>isNull</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>
-<span class=hs-linenum>210: </span>    <span class='hs-varid'>isNull</span> <span class='hs-layout'>(</span><span class='hs-conid'>N</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>=</span> <span class='hs-varid'>true</span>
-<span class=hs-linenum>211: </span>    <span class='hs-varid'>isNull</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>false</span>           <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-
- LiquidHaskell **strengthens** data constructors
-<pre><span class=hs-linenum>219: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>220: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span> <span class='hs-conop'>:</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>isNull</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-<span class=hs-linenum>221: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>not</span> <span class='hs-layout'>(</span><span class='hs-varid'>isNull</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span>
-</pre>
-
-</div>
-
-Multiple Measures
------------------
-
-LiquidHaskell *conjoins* data constructor types:
-
- <br>
-<pre><span class=hs-linenum>232: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>233: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span>  <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span> 
-<span class=hs-linenum>234: </span>              <span class='hs-varop'>&amp;&amp;</span> <span class='hs-layout'>(</span><span class='hs-varid'>isNull</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-layout'>}</span>
-<span class=hs-linenum>235: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> 
-<span class=hs-linenum>236: </span>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> 
-<span class=hs-linenum>237: </span>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span>  <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>238: </span>              <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>not</span> <span class='hs-layout'>(</span><span class='hs-varid'>isNull</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span>          <span class='hs-layout'>}</span>
-</pre>
-
-Multiple Measures
------------------
-
-Unlike [indexed types](http://dl.acm.org/citation.cfm?id=270793) ...
-
-<br>
-
-+ <div class="fragment">Measures *decouple* properties from structures</div>
-+ <div class="fragment">Support *multiple* properties over structures </div>
-+ <div class="fragment">Enable  *reuse* of structures                 </div>
-
-<br>
-
-<div class="fragment">Invaluable in practice!</div>
-
-Refined Data Constructors
--------------------------
-
-Can *directly pack* properties inside data constructors
-
-<div class="fragment">
-
-<br>
-
-
-<pre><span class=hs-linenum>266: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span>
-<span class=hs-linenum>267: </span>             <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>268: </span>                 <span class='hs-layout'>(</span><span class='hs-varid'>xs</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-layout'>)</span>  <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-<div class="fragment">
-
-<br>
-
-Specifies *increasing* Lists 
-</div>
-
-Refined Data Constructors
--------------------------
-
-**Example:** Increasing Lists, with strengthened constructors:
-
- <br>
-<pre><span class=hs-linenum>286: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>287: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>288: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span> <span class='hs-conid'>L</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>x</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-</pre>
-
-<br>
-
-- <div class="fragment">LiquidHaskell *checks* property when *folding* `C`</div>
-- <div class="fragment">LiquidHaskell *assumes* property when *unfolding* `C`</div>
-
-Refined Data Constructors
--------------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=HaskellInsertSort.hs" target= "_blank">Demo: Insertion Sort</a> (hover for inferred types) 
-
-
-<pre><span class=hs-linenum>302: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; [a] -&gt; (L a)</span><span class='hs-definition'>insertSort</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(a -&gt; (L a) -&gt; (L a)) -&gt; (L a) -&gt; [a] -&gt; (L a)</span><span class='hs-varid'>foldr</span></a> <a class=annot href="#"><span class=annottext>a -&gt; (L a) -&gt; (L a)</span><span class='hs-varid'>insert</span></a> <a class=annot href="#"><span class=annottext>{x3 : (L {VV : a | false}) | (((isNull x3)) &lt;=&gt; true) &amp;&amp; ((llen x3) == 0)}</span><span class='hs-conid'>N</span></a>
-<span class=hs-linenum>303: </span>
-<span class=hs-linenum>304: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; a -&gt; (L a) -&gt; (L a)</span><span class='hs-definition'>insert</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>y</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>305: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>x1:a -&gt; x2:a -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt;= x2))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>x1:{VV : a | (VV &gt;= y)}
--&gt; x2:(L {VV : a | (VV &gt;= y) &amp;&amp; (x1 &lt;= VV)})
--&gt; {x3 : (L {VV : a | (VV &gt;= y)}) | (((isNull x3)) &lt;=&gt; false) &amp;&amp; ((llen x3) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:{VV : a | (VV &gt;= x) &amp;&amp; (VV &gt;= y)}
--&gt; x2:(L {VV : a | (VV &gt;= x) &amp;&amp; (VV &gt;= y) &amp;&amp; (x1 &lt;= VV)})
--&gt; {x3 : (L {VV : a | (VV &gt;= x) &amp;&amp; (VV &gt;= y)}) | (((isNull x3)) &lt;=&gt; false) &amp;&amp; ((llen x3) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L {VV : a | (x &lt;= VV)}) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>306: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:{VV : a | (VV &gt;= x)}
--&gt; x2:(L {VV : a | (VV &gt;= x) &amp;&amp; (x1 &lt;= VV)})
--&gt; {x3 : (L {VV : a | (VV &gt;= x)}) | (((isNull x3)) &lt;=&gt; false) &amp;&amp; ((llen x3) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; a -&gt; (L a) -&gt; (L a)</span><span class='hs-varid'>insert</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L {VV : a | (x &lt;= VV)}) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>307: </span><span class='hs-definition'>insert</span> <span class='hs-varid'>y</span> <span class='hs-conid'>N</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>x1:{VV : a | (VV == y)}
--&gt; x2:(L {VV : a | (VV == y) &amp;&amp; (x1 &lt;= VV)})
--&gt; {x3 : (L {VV : a | (VV == y)}) | (((isNull x3)) &lt;=&gt; false) &amp;&amp; ((llen x3) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x3 : (L {VV : a | false}) | (((isNull x3)) &lt;=&gt; true) &amp;&amp; ((llen x3) == 0)}</span><span class='hs-conid'>N</span></a>    
-</pre>
-
-<br>
-
-<div class="fragment">**Problem 1:** What if we need *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?</div>
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. <div class="fragment">**Measures:** Strengthened Constructors</div>
-    - <div class="fragment">*Decouple* structure & property, enable *reuse*</div>
-
diff --git a/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs b/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs
+++ /dev/null
@@ -1,173 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-\begin{code}
-module Loop (
-    listSum
-  , listNatSum
-  ) where
-
-import Prelude
-
-{-@ LIQUID "--no-termination"@-}
-listNatSum  :: [Int] -> Int
-add         :: Int -> Int -> Int
-\end{code}
-</div>
-
-Higher-Order Specifications
----------------------------
-
-Types scale to *Higher-Order* Specifications
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Very difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-\begin{code}
-loop :: Int -> Int -> α -> (Int -> α -> α) -> α
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-LiquidHaskell infers `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-\begin{code}
-listSum xs  = loop 0 n 0 body 
-  where 
-    body    = \i acc -> acc + (xs !! i)
-    n       = length xs
-\end{code}
-
-<br>
-
-- <div class="fragment">*Function subtyping:* `body` called on `i :: Btwn 0 (llen xs)`</div>
-- <div class="fragment">Hence, indexing with `!!` is safe.</div>
-
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Loop.hs" target= "_blank">Demo:</a> Tweak `loop` exit condition? 
-</div>
-
-Example: Summing `Nat`s
------------------------
-
-<br>
-
-\begin{code}
-{-@ listNatSum :: [Nat] -> Nat @-}
-listNatSum xs  = loop 0 n 0 body 
-  where 
-    body       = \i acc -> acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-<br>
-
-<div class="fragment" align="center">
-
-----  ----  ---------------------------------------
- (+)  `::`  `x:Int -> y:Int -> {v:Int| v=x+y}`
-      `<:`  `Nat   -> Nat   -> Nat`
-----  ----  ---------------------------------------
-
-</div>
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code} <br> 
-{-@ listNatSum :: [Nat] -> Nat @-}
-listNatSum xs  = loop 0 n 0 body 
-  where 
-    body       = \i acc -> acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-<br>
-
-Hence, verified by *instantiating* `α` of `loop` with `Nat`
-
-<div class="fragment">`Int -> Int -> Nat -> (Int -> Nat -> Nat) -> Nat`</div>
-
-Example: Summing `Nat`s
------------------------
-
-\begin{code} <br> 
-{-@ listNatSum :: [Nat] -> Nat @-}
-listNatSum xs  = loop 0 n 0 body 
-  where 
-    body       = \i acc -> acc + (xs !! i)
-    n          = length xs
-\end{code}
-
-<br>
-
-+ Parameter `α` corresponds to *loop invariant*
-
-+ Instantiation corresponds to invariant *synthesis*
-
-
-Instantiation And Inference
----------------------------
-
-+ <div class="fragment">Polymorphic instantiation happens *everywhere*</div> 
-
-+ <div class="fragment">Automatic inference is crucial</div>
-
-+ <div class="fragment">*Cannot use* unification (unlike indexed approaches)</div>
-
-+ <div class="fragment">*Can reuse* [SMT/predicate abstraction.](http://goto.ucsd.edu/~rjhala/papers/liquid_types.html)</div>
-
-
-
-Iteration Dependence
---------------------
-
-**Cannot** use parametric polymorphism to verify:
-
-<br>
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-
-- <div class="fragment">As property only holds after **last** loop iteration...</div>
-
-- <div class="fragment">... cannot instantiate `α` with `{v:Int | v = n + m}`</div>
-
-<div class="fragment">**Problem:** Need *iteration-dependent* invariants...</div>
-
diff --git a/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs.markdown b/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/03_HigherOrderFunctions.lhs.markdown
+++ /dev/null
@@ -1,205 +0,0 @@
-  {#hofs}
-=========
-
-<div class="hidden">
-
-<pre><span class=hs-linenum> 6: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Loop</span> <span class='hs-layout'>(</span>
-<span class=hs-linenum> 7: </span>    <span class='hs-varid'>listSum</span>
-<span class=hs-linenum> 8: </span>  <span class='hs-layout'>,</span> <span class='hs-varid'>listNatSum</span>
-<span class=hs-linenum> 9: </span>  <span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>10: </span>
-<span class=hs-linenum>11: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>12: </span>
-<span class=hs-linenum>13: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span><span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>14: </span><span class='hs-definition'>listNatSum</span>  <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Int</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>15: </span><span class='hs-definition'>add</span>         <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-</pre>
-</div>
-
-Higher-Order Specifications
----------------------------
-
-Types scale to *Higher-Order* Specifications
-
-<br>
-
-<div class="fragment">
-
-+ map
-+ fold
-+ visitors
-+ callbacks
-+ ...
-
-</div>
-
-<br>
-
-<div class="fragment">Very difficult with *first-order program logics*</div>
-
-
-Higher Order Specifications
-===========================
-
-Example: Higher Order Loop
---------------------------
-
-
-<pre><span class=hs-linenum>48: </span><span class='hs-definition'>loop</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span>
-<span class=hs-linenum>49: </span><a class=annot href="#"><span class=annottext>forall a.
-lo:{VV : (Int) | (VV == 0) &amp;&amp; (VV &gt;= 0)}
--&gt; hi:{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo)}
--&gt; a
--&gt; ({VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo) &amp;&amp; (VV &lt; hi)} -&gt; a -&gt; a)
--&gt; a</span><span class='hs-definition'>loop</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV == 0) &amp;&amp; (VV &gt;= 0)}</span><span class='hs-varid'>lo</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo)}</span><span class='hs-varid'>hi</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>base</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo) &amp;&amp; (VV &lt; hi)} -&gt; a -&gt; a</span><span class='hs-varid'>f</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 &gt;= 0) &amp;&amp; (x4 &gt;= lo) &amp;&amp; (x4 &lt;= hi)} -&gt; a -&gt; a</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == 0) &amp;&amp; (x4 == lo) &amp;&amp; (x4 &gt;= 0)}</span><span class='hs-varid'>lo</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == base)}</span><span class='hs-varid'>base</span></a>
-<span class=hs-linenum>50: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>51: </span>    <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo) &amp;&amp; (VV &lt;= hi)} -&gt; a -&gt; a</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo) &amp;&amp; (VV &lt;= hi)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>acc</span></a> 
-<span class=hs-linenum>52: </span>      <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &gt;= i) &amp;&amp; (x12 &gt;= lo) &amp;&amp; (x12 &lt;= hi)}
--&gt; x2:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &gt;= i) &amp;&amp; (x12 &gt;= lo) &amp;&amp; (x12 &lt;= hi)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == hi) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &gt;= lo)}</span><span class='hs-varid'>hi</span></a>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= lo) &amp;&amp; (VV &lt;= hi)} -&gt; a -&gt; a</span><span class='hs-varid'>go</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 &gt;= 0) &amp;&amp; (x4 &gt;= lo) &amp;&amp; (x4 &lt; hi)} -&gt; a -&gt; a</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == acc)}</span><span class='hs-varid'>acc</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>53: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == acc)}</span><span class='hs-varid'>acc</span></a>
-</pre>
-
-<br>
-
-LiquidHaskell infers `f` called with values `(Btwn lo hi)`
-
-
-Example: Summing Lists
-----------------------
-
-
-<pre><span class=hs-linenum>65: </span><a class=annot href="#"><span class=annottext>forall a. (Num a) =&gt; [a] -&gt; a</span><span class='hs-definition'>listSum</span></a> <a class=annot href="#"><span class=annottext>[a]</span><span class='hs-varid'>xs</span></a>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 == 0) &amp;&amp; (x12 &gt;= 0)}
--&gt; x2:{x9 : (Int) | (x9 &gt;= 0) &amp;&amp; (x9 &gt;= x1)}
--&gt; a
--&gt; ({x6 : (Int) | (x6 &gt;= 0) &amp;&amp; (x6 &gt;= x1) &amp;&amp; (x6 &lt; x2)} -&gt; a -&gt; a)
--&gt; a</span><span class='hs-varid'>loop</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 == (len xs))}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; n)} -&gt; a -&gt; a</span><span class='hs-varid'>body</span></a> 
-<span class=hs-linenum>66: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>67: </span>    <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)} -&gt; a -&gt; a</span><span class='hs-varid'>body</span></a>    <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>\</span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>acc</span></a> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == acc)}</span><span class='hs-varid'>acc</span></a> <a class=annot href="#"><span class=annottext>x1:a -&gt; x2:a -&gt; {VV : a | (VV == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>x1:[a] -&gt; {x3 : (Int) | (x3 &lt; (len x1)) &amp;&amp; (0 &lt;= x3)} -&gt; a</span><span class='hs-varop'>!!</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == i) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &lt; n)}</span><span class='hs-varid'>i</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>68: </span>    <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (len xs))}</span><span class='hs-varid'>n</span></a>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:[a] -&gt; {x2 : (Int) | (x2 == (len x1))}</span><span class='hs-varid'>length</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-<br>
-
-- <div class="fragment">*Function subtyping:* `body` called on `i :: Btwn 0 (llen xs)`</div>
-- <div class="fragment">Hence, indexing with `!!` is safe.</div>
-
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Loop.hs" target= "_blank">Demo:</a> Tweak `loop` exit condition? 
-</div>
-
-Example: Summing `Nat`s
------------------------
-
-<br>
-
-
-<pre><span class=hs-linenum>87: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>listNatSum</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Nat</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>88: </span><a class=annot href="#"><span class=annottext>[{VV : (Int) | (VV &gt;= 0)}] -&gt; {VV : (Int) | (VV &gt;= 0)}</span><span class='hs-definition'>listNatSum</span></a> <a class=annot href="#"><span class=annottext>[{VV : (Int) | (VV &gt;= 0)}]</span><span class='hs-varid'>xs</span></a>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x20 : (Int) | (x20 == 0) &amp;&amp; (x20 &gt;= 0)}
--&gt; x2:{x17 : (Int) | (x17 &gt;= 0) &amp;&amp; (x17 &gt;= x1)}
--&gt; {x14 : (Int) | (x14 &gt;= 0)}
--&gt; ({x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &gt;= x1) &amp;&amp; (x12 &lt; x2)}
-    -&gt; {x14 : (Int) | (x14 &gt;= 0)} -&gt; {x14 : (Int) | (x14 &gt;= 0)})
--&gt; {x14 : (Int) | (x14 &gt;= 0)}</span><span class='hs-varid'>loop</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 == (len xs))}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x8 : (Int) | (x8 &gt;= 0) &amp;&amp; (x8 &lt; n)}
--&gt; x2:{x5 : (Int) | (x5 &gt;= 0)}
--&gt; {x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &gt;= x2)}</span><span class='hs-varid'>body</span></a> 
-<span class=hs-linenum>89: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>90: </span>    <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)}
--&gt; acc:{VV : (Int) | (VV &gt;= 0)}
--&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= acc)}</span><span class='hs-varid'>body</span></a>       <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>\</span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>acc</span></a> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == acc) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>acc</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x4 : [{x7 : (Int) | (x7 &gt;= 0)}] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>x1:[{x9 : (Int) | (x9 &gt;= 0)}]
--&gt; {x5 : (Int) | (x5 &lt; (len x1)) &amp;&amp; (0 &lt;= x5)}
--&gt; {x9 : (Int) | (x9 &gt;= 0)}</span><span class='hs-varop'>!!</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == i) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &lt; n)}</span><span class='hs-varid'>i</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>91: </span>    <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (len xs))}</span><span class='hs-varid'>n</span></a>          <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:[{x6 : (Int) | (x6 &gt;= 0)}] -&gt; {x2 : (Int) | (x2 == (len x1))}</span><span class='hs-varid'>length</span></a> <a class=annot href="#"><span class=annottext>{x4 : [{x7 : (Int) | (x7 &gt;= 0)}] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-<br>
-
-<div class="fragment" align="center">
-
-----  ----  ---------------------------------------
- (+)  `::`  `x:Int -> y:Int -> {v:Int| v=x+y}`
-      `<:`  `Nat   -> Nat   -> Nat`
-----  ----  ---------------------------------------
-
-</div>
-
-Example: Summing `Nat`s
------------------------
-
- <br> 
-<pre><span class=hs-linenum>109: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>listNatSum</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Nat</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>110: </span><span class='hs-definition'>listNatSum</span> <span class='hs-varid'>xs</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>n</span> <span class='hs-num'>0</span> <span class='hs-varid'>body</span> 
-<span class=hs-linenum>111: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>112: </span>    <span class='hs-varid'>body</span>       <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>acc</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>xs</span> <span class='hs-varop'>!!</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>113: </span>    <span class='hs-varid'>n</span>          <span class='hs-keyglyph'>=</span> <span class='hs-varid'>length</span> <span class='hs-varid'>xs</span>
-</pre>
-
-<br>
-
-Hence, verified by *instantiating* `α` of `loop` with `Nat`
-
-<div class="fragment">`Int -> Int -> Nat -> (Int -> Nat -> Nat) -> Nat`</div>
-
-Example: Summing `Nat`s
------------------------
-
- <br> 
-<pre><span class=hs-linenum>126: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>listNatSum</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Nat</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>127: </span><span class='hs-definition'>listNatSum</span> <span class='hs-varid'>xs</span>  <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>n</span> <span class='hs-num'>0</span> <span class='hs-varid'>body</span> 
-<span class=hs-linenum>128: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>129: </span>    <span class='hs-varid'>body</span>       <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>\</span><span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>acc</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>xs</span> <span class='hs-varop'>!!</span> <span class='hs-varid'>i</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>130: </span>    <span class='hs-varid'>n</span>          <span class='hs-keyglyph'>=</span> <span class='hs-varid'>length</span> <span class='hs-varid'>xs</span>
-</pre>
-
-<br>
-
-+ Parameter `α` corresponds to *loop invariant*
-
-+ Instantiation corresponds to invariant *synthesis*
-
-
-Instantiation And Inference
----------------------------
-
-+ <div class="fragment">Polymorphic instantiation happens *everywhere*</div> 
-
-+ <div class="fragment">Automatic inference is crucial</div>
-
-+ <div class="fragment">*Cannot use* unification (unlike indexed approaches)</div>
-
-+ <div class="fragment">*Can reuse* [SMT/predicate abstraction.](http://goto.ucsd.edu/~rjhala/papers/liquid_types.html)</div>
-
-
-
-Iteration Dependence
---------------------
-
-**Cannot** use parametric polymorphism to verify:
-
-<br>
-
-
-<pre><span class=hs-linenum>161: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>|v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>162: </span><a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= 0)}
--&gt; m:{VV : (Int) | (VV &gt;= 0)}
--&gt; {VV : (Int) | (VV == (m + n)) &amp;&amp; (VV &gt;= 0)}</span><span class='hs-definition'>add</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>m</span></a> <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>x1:{x24 : (Int) | (x24 == 0) &amp;&amp; (x24 &gt;= 0)}
--&gt; x2:{x21 : (Int) | (x21 &gt;= 0) &amp;&amp; (x21 &gt;= x1)}
--&gt; {x18 : (Int) | (x18 &gt;= 0) &amp;&amp; (x18 &gt;= n)}
--&gt; ({x15 : (Int) | (x15 &gt;= 0) &amp;&amp; (x15 &gt;= x1) &amp;&amp; (x15 &lt; x2)}
-    -&gt; {x18 : (Int) | (x18 &gt;= 0) &amp;&amp; (x18 &gt;= n)}
-    -&gt; {x18 : (Int) | (x18 &gt;= 0) &amp;&amp; (x18 &gt;= n)})
--&gt; {x18 : (Int) | (x18 &gt;= 0) &amp;&amp; (x18 &gt;= n)}</span><span class='hs-varid'>loop</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == m) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>m</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a></span><span class=hs-error> </span><span class=hs-error><span class='hs-layout'>(</span></span><span class=hs-error><a class=annot href="#"><span class=annottext>{x11 : (Int) | (x11 &gt;= 0) &amp;&amp; (x11 &lt; m)}
--&gt; x2:{x8 : (Int) | (x8 &gt;= 0) &amp;&amp; (x8 &gt;= n)}
--&gt; {x5 : (Int) | (x5 &gt; 0) &amp;&amp; (x5 &gt; x2) &amp;&amp; (x5 &gt; n) &amp;&amp; (x5 &gt;= 0)}</span><span class='hs-keyglyph'>\</span></a></span><span class=hs-error><span class='hs-keyword'>_</span></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= n)}</span><span class='hs-varid'>i</span></a></span><span class=hs-error> </span><span class=hs-error><span class='hs-keyglyph'>-&gt;</span></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == i) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &gt;= n)}</span><span class='hs-varid'>i</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a></span><span class=hs-error><span class='hs-layout'>)</span></span>
-</pre>
-
-<br>
-
-
-- <div class="fragment">As property only holds after **last** loop iteration...</div>
-
-- <div class="fragment">... cannot instantiate `α` with `{v:Int | v = n + m}`</div>
-
-<div class="fragment">**Problem:** Need *iteration-dependent* invariants...</div>
-
diff --git a/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs b/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs
+++ /dev/null
@@ -1,303 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-\begin{code}
-module AbstractRefinements where
-
-import Prelude 
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-o, no        :: Int
-maxInt       :: Int -> Int -> Int
-\end{code}
-</div>
-
-
-
-Abstract Refinements
---------------------
-
-
-
-Abstract Refinements
-====================
-
-Two Problems
-------------
-
-<div class="fragment">
-
-**Problem 1:** 
-
-How do we specify *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Problem 2:** 
-
-How do we specify *iteration-dependence* in higher-order functions?
-
-</div>
-
-
-Problem Is Pervasive
---------------------
-
-Lets distill it to a simple example...
-
-<div class="fragment">
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-\begin{code}
-{-@ type Odd  = {v:Int | (v mod 2) = 1} @-}
-{-@ type Even = {v:Int | (v mod 2) = 0} @-}
-\end{code}
-
-</div>
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
-\begin{code} <br> 
-maxInt     :: Int -> Int -> Int 
-maxInt x y = if y <= x then x else y
-\end{code}
-
-
-
-Example: `maxInt` 
------------------
-
-Has *many incomparable* refinement types
-
-\begin{code}<br>
-maxInt :: Nat  -> Nat  -> Nat
-maxInt :: Even -> Even -> Even
-maxInt :: Odd  -> Odd  -> Odd 
-\end{code}
-
-<br>
-
-<div class="fragment">Yikes. **Which** one should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns *one of* its two inputs `x` and `y` 
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-
-<div class="fragment">Above holds *for all* properties!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract refinements over types**
-
-</div>
-
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<div class="fragment"> 
-
-Instantiate `α` at callsites
-
-\begin{code}
-{-@ o :: Odd  @-}
-o = maxInt 3 7     -- α := Odd
-
-{-@ e :: Even @-}
-e = maxInt 2 8     -- α := Even
-\end{code}
-
-</div>
-
-By Type Polymorphism?
----------------------
-
-\begin{code} <br> 
-max     :: α -> α -> α 
-max x y = if y <= x then x else y
-\end{code}
-
-<br>
-
-But there is a fly in the ointment ...
-
-Polymorphic `max` in Haskell
-----------------------------
-
-\begin{code} In Haskell the type of max is
-max :: (Ord α) => α -> α -> α
-\end{code}
-
-<br>
-
-\begin{code} Could *ignore* the class constraints, instantiate as before...
-{-@ o :: Odd @-}
-o     = max 3 7  -- α := Odd 
-\end{code}
-
-
-Polymorphic `(+)` in Haskell
-----------------------------
-
-\begin{code} ... but this is *unsound*!
-max :: (Ord α) => α -> α -> α
-(+) :: (Num α) => α -> α -> α
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-*Ignoring* class constraints would let us "prove":
-
-\begin{code}
-{-@ no :: Odd @-}
-no     = 3 + 7    -- α := Odd !
-\end{code}
-
-</div>
-
-Type Polymorphism? No.
-----------------------
-
-<div class="fragment">Need to try a bit harder...</div>
-
-By Parametric Refinements!
---------------------------
-
-That is, enable *quantification over refinements*...
-
-Parametric Refinements 
-----------------------
-
-\begin{code}
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html) `Int<p>` is `{v:Int | (p v)}`
-
-<br>
-
-<div class="fragment">So, Abstract Refinement is an *uninterpreted function* in SMT logic</div>
-
-Parametric Refinements 
-----------------------
-
-\begin{code}<br>
-{-@ maxInt :: forall <p :: Int -> Prop>. 
-                Int<p> -> Int<p> -> Int<p>  @-}
-
-maxInt x y = if x <= y then y else x 
-\end{code}
-
-<br>
-
-**Check** and **Instantiate** type using *SMT & predicate abstraction*
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**When** we call `maxInt` with args with some refinement,</div>
-
-- <div class="fragment">**Then** `p` instantiated with *same* refinement,</div>
-
-- <div class="fragment">**Result** of call will also have concrete refinement.</div>
-
-<div class="fragment">
-
-\begin{code}
-{-@ o' :: Odd  @-}
-o' = maxInt 3 7     -- p := \v -> Odd v 
-
-{-@ e' :: Even @-}
-e' = maxInt 2 8     -- p := \v -> Even v 
-\end{code}
-
-</div>
-
-Using Abstract Refinements
---------------------------
-
-Or any other property 
-
-<br>
-
-\begin{code}
-{-@ type RGB = {v:_ | (0 <= v && v < 256)} @-}
-
-{-@ rgb :: RGB @-}
-rgb = maxInt 56 8
-\end{code}
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. <div class="fragment">**Abstract:** Refinements over Type Signatures</div>
-
diff --git a/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs.markdown b/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/04_AbstractRefinements.lhs.markdown
+++ /dev/null
@@ -1,317 +0,0 @@
-  {#abstractrefinements}
-========================
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>7: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>AbstractRefinements</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>8: </span>
-<span class=hs-linenum>9: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> 
-<span class=hs-linenum>10: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>11: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>12: </span>
-<span class=hs-linenum>13: </span><span class='hs-definition'>o</span><span class='hs-layout'>,</span> <span class='hs-varid'>no</span>        <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>14: </span><span class='hs-definition'>maxInt</span>       <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-</pre>
-</div>
-
-
-
-Abstract Refinements
---------------------
-
-
-
-Abstract Refinements
-====================
-
-Two Problems
-------------
-
-<div class="fragment">
-
-**Problem 1:** 
-
-How do we specify *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-**Problem 2:** 
-
-How do we specify *iteration-dependence* in higher-order functions?
-
-</div>
-
-
-Problem Is Pervasive
---------------------
-
-Lets distill it to a simple example...
-
-<div class="fragment">
-
-<br>
-
-(First, a few aliases)
-
-<br>
-
-
-<pre><span class=hs-linenum>64: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>v</span> <span class='hs-varid'>mod</span> <span class='hs-num'>2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>65: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Even</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-varid'>v</span> <span class='hs-varid'>mod</span> <span class='hs-num'>2</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-
-Example: `maxInt` 
------------------
-
-Compute the larger of two `Int`s:
-
- <br> 
-<pre><span class=hs-linenum>77: </span><span class='hs-definition'>maxInt</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> 
-<span class=hs-linenum>78: </span><span class='hs-definition'>maxInt</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>y</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>y</span>
-</pre>
-
-
-
-Example: `maxInt` 
------------------
-
-Has *many incomparable* refinement types
-
-<br>
-<pre><span class=hs-linenum>89: </span><span class='hs-definition'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Nat</span>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span>
-<span class=hs-linenum>90: </span><span class='hs-definition'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Even</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Even</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Even</span>
-<span class=hs-linenum>91: </span><span class='hs-definition'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Odd</span> 
-</pre>
-
-<br>
-
-<div class="fragment">Yikes. **Which** one should we use?</div>
-
-
-Refinement Polymorphism 
------------------------
-
-`maxInt` returns *one of* its two inputs `x` and `y` 
-
-<div align="center">
-
-<br>
-
----------   ---   -------------------------------------------
-   **If**    :    the *inputs* satisfy a property  
-
- **Then**    :    the *output* satisfies that property
----------   ---   -------------------------------------------
-
-<br>
-
-</div>
-
-<div class="fragment">Above holds *for all* properties!</div>
-
-<br>
-
-<div class="fragment"> 
-
-**Need to abstract refinements over types**
-
-</div>
-
-
-By Type Polymorphism?
----------------------
-
- <br> 
-<pre><span class=hs-linenum>133: </span><span class='hs-definition'>max</span>     <span class='hs-keyglyph'>::</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> 
-<span class=hs-linenum>134: </span><span class='hs-definition'>max</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>y</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>y</span>
-</pre>
-
-<div class="fragment"> 
-
-Instantiate `α` at callsites
-
-
-<pre><span class=hs-linenum>142: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>o</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>143: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | ((VV mod 2) == 1)}</span><span class='hs-definition'>o</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{x3 : (Int)&lt;p&gt; | true}
--&gt; {x2 : (Int)&lt;p&gt; | true} -&gt; {x1 : (Int)&lt;p&gt; | true}</span><span class='hs-varid'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (7  :  int))}</span><span class='hs-num'>7</span></a>     <span class='hs-comment'>-- α := Odd</span>
-<span class=hs-linenum>144: </span>
-<span class=hs-linenum>145: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>e</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Even</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>146: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | ((VV mod 2) == 0)}</span><span class='hs-definition'>e</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{x3 : (Int)&lt;p&gt; | true}
--&gt; {x2 : (Int)&lt;p&gt; | true} -&gt; {x1 : (Int)&lt;p&gt; | true}</span><span class='hs-varid'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (8  :  int))}</span><span class='hs-num'>8</span></a>     <span class='hs-comment'>-- α := Even</span>
-</pre>
-
-</div>
-
-By Type Polymorphism?
----------------------
-
- <br> 
-<pre><span class=hs-linenum>155: </span><span class='hs-definition'>max</span>     <span class='hs-keyglyph'>::</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> 
-<span class=hs-linenum>156: </span><span class='hs-definition'>max</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>y</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>x</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>y</span>
-</pre>
-
-<br>
-
-But there is a fly in the ointment ...
-
-Polymorphic `max` in Haskell
-----------------------------
-
- In Haskell the type of max is
-<pre><span class=hs-linenum>167: </span><span class='hs-definition'>max</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>α</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span>
-</pre>
-
-<br>
-
- Could *ignore* the class constraints, instantiate as before...
-<pre><span class=hs-linenum>173: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>o</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Odd</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>174: </span><span class='hs-definition'>o</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>max</span> <span class='hs-num'>3</span> <span class='hs-num'>7</span>  <span class='hs-comment'>-- α := Odd </span>
-</pre>
-
-
-Polymorphic `(+)` in Haskell
-----------------------------
-
- ... but this is *unsound*!
-<pre><span class=hs-linenum>182: </span><span class='hs-definition'>max</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>α</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span>
-<span class=hs-linenum>183: </span><span class='hs-layout'>(</span><span class='hs-varop'>+</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Num</span> <span class='hs-varid'>α</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-
-*Ignoring* class constraints would let us "prove":
-
-
-<pre><span class=hs-linenum>193: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>no</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Odd</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>194: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | ((VV mod 2) == 1)}</span><span class='hs-definition'>no</span></a>     <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (7  :  int))}</span><span class='hs-num'>7</span></a></span>    <span class='hs-comment'>-- α := Odd !</span>
-</pre>
-
-</div>
-
-Type Polymorphism? No.
-----------------------
-
-<div class="fragment">Need to try a bit harder...</div>
-
-By Parametric Refinements!
---------------------------
-
-That is, enable *quantification over refinements*...
-
-Parametric Refinements 
-----------------------
-
-
-<pre><span class=hs-linenum>213: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span> 
-<span class=hs-linenum>214: </span>                <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>215: </span>
-<span class=hs-linenum>216: </span><a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{VV : (Int)&lt;p&gt; | true}
--&gt; {VV : (Int)&lt;p&gt; | true} -&gt; {VV : (Int)&lt;p&gt; | true}</span><span class='hs-definition'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | ((papp1 p VV))}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | ((papp1 p VV))}</span><span class='hs-varid'>y</span></a> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 p x3)) &amp;&amp; (x3 == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:{x6 : (Int) | ((papp1 p x6))}
--&gt; x2:{x6 : (Int) | ((papp1 p x6))}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt;= x2))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 p x3)) &amp;&amp; (x3 == y)}</span><span class='hs-varid'>y</span></a> <span class='hs-keyword'>then</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 p x3)) &amp;&amp; (x3 == y)}</span><span class='hs-varid'>y</span></a> <span class='hs-keyword'>else</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 p x3)) &amp;&amp; (x3 == x)}</span><span class='hs-varid'>x</span></a> 
-</pre>
-
-<br>
-
-
-<div class="fragment">Type says: **for any** `p` that is a property of `Int`, </div>
-
-- <div class="fragment">`max` **takes** two `Int`s that satisfy `p`,</div>
-
-- <div class="fragment">`max` **returns** an `Int` that satisfies `p`.</div>
-
-Parametric Refinements 
-----------------------
-
-<br>
-<pre><span class=hs-linenum>232: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span> 
-<span class=hs-linenum>233: </span>                <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>234: </span>
-<span class=hs-linenum>235: </span><span class='hs-definition'>maxInt</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>x</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>y</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>y</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>x</span> 
-</pre>
-
-<br>
-
-[Key idea: ](http://goto.ucsd.edu/~rjhala/papers/abstract_refinement_types.html) `Int<p>` is `{v:Int | (p v)}`
-
-<br>
-
-<div class="fragment">So, Abstract Refinement is an *uninterpreted function* in SMT logic</div>
-
-Parametric Refinements 
-----------------------
-
-<br>
-<pre><span class=hs-linenum>250: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>maxInt</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span> 
-<span class=hs-linenum>251: </span>                <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>252: </span>
-<span class=hs-linenum>253: </span><span class='hs-definition'>maxInt</span> <span class='hs-varid'>x</span> <span class='hs-varid'>y</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>if</span> <span class='hs-varid'>x</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>y</span> <span class='hs-keyword'>then</span> <span class='hs-varid'>y</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>x</span> 
-</pre>
-
-<br>
-
-**Check** and **Instantiate** type using *SMT & predicate abstraction*
-
-Using Abstract Refinements
---------------------------
-
-- <div class="fragment">**When** we call `maxInt` with args with some refinement,</div>
-
-- <div class="fragment">**Then** `p` instantiated with *same* refinement,</div>
-
-- <div class="fragment">**Result** of call will also have concrete refinement.</div>
-
-<div class="fragment">
-
-
-<pre><span class=hs-linenum>272: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>o'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Odd</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>273: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | ((VV mod 2) == 1)}</span><span class='hs-definition'>o'</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{x3 : (Int)&lt;p&gt; | true}
--&gt; {x2 : (Int)&lt;p&gt; | true} -&gt; {x1 : (Int)&lt;p&gt; | true}</span><span class='hs-varid'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (7  :  int))}</span><span class='hs-num'>7</span></a>     <span class='hs-comment'>-- p := \v -&gt; Odd v </span>
-<span class=hs-linenum>274: </span>
-<span class=hs-linenum>275: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>e'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Even</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>276: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | ((VV mod 2) == 0)}</span><span class='hs-definition'>e'</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{x3 : (Int)&lt;p&gt; | true}
--&gt; {x2 : (Int)&lt;p&gt; | true} -&gt; {x1 : (Int)&lt;p&gt; | true}</span><span class='hs-varid'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (8  :  int))}</span><span class='hs-num'>8</span></a>     <span class='hs-comment'>-- p := \v -&gt; Even v </span>
-</pre>
-
-</div>
-
-Using Abstract Refinements
---------------------------
-
-Or any other property 
-
-<br>
-
-
-<pre><span class=hs-linenum>289: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>RGB</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-num'>0</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&lt;</span> <span class='hs-num'>256</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>290: </span>
-<span class=hs-linenum>291: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>rgb</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>RGB</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>292: </span><a class=annot href="#"><span class=annottext>{v : (Int) | (v &lt; 256) &amp;&amp; (0 &lt;= v)}</span><span class='hs-definition'>rgb</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; Bool&gt;.
-{x3 : (Int)&lt;p&gt; | true}
--&gt; {x2 : (Int)&lt;p&gt; | true} -&gt; {x1 : (Int)&lt;p&gt; | true}</span><span class='hs-varid'>maxInt</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (56  :  int))}</span><span class='hs-num'>56</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (8  :  int))}</span><span class='hs-num'>8</span></a>
-</pre>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. <div class="fragment">**Abstract:** Refinements over Type Signatures</div>
-
diff --git a/docs/slides/plpv14/lhs/05_Composition.lhs b/docs/slides/plpv14/lhs/05_Composition.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/05_Composition.lhs
+++ /dev/null
@@ -1,161 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-\begin{code}
-module Composition where
-
-import Prelude hiding ((.))
-
-plus     :: Int -> Int -> Int
-plus3'   :: Int -> Int
-\end{code}
-</div>
-
-
-Example: `plus`
----------------
-
-\begin{code}
-{-@ plus :: x:_ -> y:_ -> {v:_ | v=x+y} @-}
-plus x y = x + y
-\end{code}
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-\begin{code}
-{-@ plus3' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3'     = plus 3
-\end{code}
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-\begin{code}
-(#) :: (b -> c) -> (a -> b) -> a -> c
-(#) f g x = f (g x)
-\end{code}
-
-
-`plus3` By Composition
------------------------
-
-\begin{code}
-{-@ plus3'' :: x:Int -> {v:Int | v = x + 3} @-}
-plus3''     = plus 1 # plus 2
-\end{code}
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
-\begin{code} <br>
-(#) :: (b -> c) -> (a -> b) -> (a -> c)
-\end{code}
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-\begin{code}
-{-@ (.) :: forall <p :: b->c->Prop, 
-                   q :: a->b->Prop>.
-             f:(x:b -> c<p x>) 
-          -> g:(x:a -> b<q x>) 
-          -> y:a -> exists[z:b<q y>].c<p z>
- @-}
-(.) f g y = f (g y)
-\end{code}
-
-Using (.) Operator 
-------------------
-
-<br>
-
-\begin{code}
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
-\begin{code} <br>
-{-@ plus3 :: x:Int -> {v:Int | v = x + 3} @-}
-plus3     = plus 1 . plus 2
-\end{code}
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/plpv14/lhs/05_Composition.lhs.markdown b/docs/slides/plpv14/lhs/05_Composition.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/05_Composition.lhs.markdown
+++ /dev/null
@@ -1,169 +0,0 @@
-Abstract Refinements {#composition}
-===================================
-
-Very General Mechanism 
-----------------------
-
-**Next:** Lets add parameters...
-
-<div class="hidden">
-
-<pre><span class=hs-linenum>11: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Composition</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>12: </span>
-<span class=hs-linenum>13: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>.</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>14: </span>
-<span class=hs-linenum>15: </span><span class='hs-definition'>plus</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>16: </span><span class='hs-definition'>plus3'</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-</pre>
-</div>
-
-
-Example: `plus`
----------------
-
-
-<pre><span class=hs-linenum>25: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyword'>_</span> <span class='hs-keyword'>| v=x+y}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>26: </span><a class=annot href="#"><span class=annottext>x:(Int) -&gt; y:(Int) -&gt; {v : (Int) | (v == (x + y))}</span><span class='hs-definition'>plus</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>y</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == y)}</span><span class='hs-varid'>y</span></a>
-</pre>
-
-
-Example: `plus 3` 
------------------
-
-<br>
-
-
-<pre><span class=hs-linenum>36: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus3'</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = x + 3}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>37: </span><a class=annot href="#"><span class=annottext>x:(Int) -&gt; {VV : (Int) | (VV == (x + 3))}</span><span class='hs-definition'>plus3'</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Int) | (x2 == (x1 + x2))}</span><span class='hs-varid'>plus</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a>
-</pre>
-
-<br>
-
-Easily verified by LiquidHaskell
-
-A Composed Variant
-------------------
-
-Lets define `plus3` by *composition*
-
-A Composition Operator 
-----------------------
-
-
-<pre><span class=hs-linenum>53: </span><span class='hs-layout'>(</span><span class='hs-cpp'>#</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>c</span>
-<span class=hs-linenum>54: </span><a class=annot href="#"><span class=annottext>forall a b c. (a -&gt; b) -&gt; (c -&gt; a) -&gt; c -&gt; b</span><span class='hs-layout'>(</span></a><span class='hs-cpp'>#</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>g</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>x</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>f</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>g</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a><span class='hs-layout'>)</span>
-</pre>
-
-
-`plus3` By Composition
------------------------
-
-
-<pre><span class=hs-linenum>62: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus3''</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = x + 3}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>63: </span><a class=annot href="#"><span class=annottext>x:(Int) -&gt; {VV : (Int) | (VV == (x + 3))}</span><span class='hs-definition'>plus3''</span></a>     <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Int) | (x2 == (x1 + x2))}</span><span class='hs-varid'>plus</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>((Int) -&gt; (Int)) -&gt; ((Int) -&gt; (Int)) -&gt; (Int) -&gt; (Int)</span><span class='hs-cpp'>#</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Int) | (x2 == (x1 + x2))}</span><span class='hs-varid'>plus</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a></span>
-</pre>
-
-<br>
-
-Yikes! Verification *fails*. But why?
-
-<br>
-
-<div class="fragment">(Hover mouse over `#` for a clue)</div>
-
-How to type compose (#) ? 
--------------------------
-
-This specification is *too weak* <br>
-
- <br>
-<pre><span class=hs-linenum>80: </span><span class='hs-layout'>(</span><span class='hs-cpp'>#</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>c</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-Output type does not *relate* `c` with `a`!
-
-How to type compose (.) ?
--------------------------
-
-Write specification with abstract refinement type:
-
-<br>
-
-
-<pre><span class=hs-linenum>95: </span><span class='hs-keyword'>{-@</span> <span class='hs-layout'>(</span><span class='hs-varop'>.</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>c</span><span class='hs-keyglyph'>-&gt;</span><span class='hs-conid'>Prop</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>96: </span>                   <span class='hs-varid'>q</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-keyglyph'>-&gt;</span><span class='hs-varid'>b</span><span class='hs-keyglyph'>-&gt;</span><span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span>
-<span class=hs-linenum>97: </span>             <span class='hs-varid'>f</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>c</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>98: </span>          <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>g</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>q</span> <span class='hs-varid'>x</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>99: </span>          <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>exists</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>z</span><span class='hs-conop'>:</span><span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>q</span> <span class='hs-varid'>y</span><span class='hs-varop'>&gt;</span><span class='hs-keyglyph'>]</span><span class='hs-varop'>.</span><span class='hs-varid'>c</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>z</span><span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>100: </span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>101: </span><a class=annot href="#"><span class=annottext>forall a b c &lt;p :: b-&gt; a-&gt; Bool, q :: c-&gt; b-&gt; Bool&gt;.
-(x:b -&gt; {VV : a&lt;p x&gt; | true})
--&gt; (x:c -&gt; {VV : b&lt;q x&gt; | true})
--&gt; y:c
--&gt; exists [z:{VV : b&lt;q y&gt; | true}].{VV : a&lt;p z&gt; | true}</span><span class='hs-layout'>(</span></a><span class='hs-varop'>.</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>x:a -&gt; {VV : b | ((papp2 p VV x))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>x:a -&gt; {VV : b | ((papp2 q VV x))}</span><span class='hs-varid'>g</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>y</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:a -&gt; {VV : b | ((papp2 p VV x1))}</span><span class='hs-varid'>f</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:a -&gt; {VV : b | ((papp2 q VV x1))}</span><span class='hs-varid'>g</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a><span class='hs-layout'>)</span>
-</pre>
-
-Using (.) Operator 
-------------------
-
-<br>
-
-
-<pre><span class=hs-linenum>110: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus3</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = x + 3}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>111: </span><a class=annot href="#"><span class=annottext>x:(Int) -&gt; {VV : (Int) | (VV == (x + 3))}</span><span class='hs-definition'>plus3</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Int) | (x2 == (x1 + x2))}</span><span class='hs-varid'>plus</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a> <a class=annot href="#"><span class=annottext>forall &lt;q :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool, p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-(x:(Int) -&gt; {x8 : (Int)&lt;p x&gt; | true})
--&gt; (x:(Int) -&gt; {x9 : (Int)&lt;q x&gt; | true})
--&gt; x3:(Int)
--&gt; exists [z:{x9 : (Int)&lt;q x3&gt; | true}].{x8 : (Int)&lt;p z&gt; | true}</span><span class='hs-varop'>.</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x2 : (Int) | (x2 == (x1 + x2))}</span><span class='hs-varid'>plus</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">*Verifies!*</div>
-
-
-Using (.) Operator 
-------------------
-
- <br>
-<pre><span class=hs-linenum>123: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus3</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = x + 3}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>124: </span><span class='hs-definition'>plus3</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>plus</span> <span class='hs-num'>1</span> <span class='hs-varop'>.</span> <span class='hs-varid'>plus</span> <span class='hs-num'>2</span>
-</pre>
-
-<br>
-
-LiquidHaskell *instantiates*
-
-- `p` with `\x -> v = x + 1`
-- `q` with `\x -> v = x + 2`
-
-Using (.) Operator 
-------------------
-
- <br>
-<pre><span class=hs-linenum>138: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>plus3</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = x + 3}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>139: </span><span class='hs-definition'>plus3</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>plus</span> <span class='hs-num'>1</span> <span class='hs-varop'>.</span> <span class='hs-varid'>plus</span> <span class='hs-num'>2</span>
-</pre>
-
-<br> To *infer* that output of `plus3` has type: 
-
-`exists [z:{v = y + 2}].{v = z + 1}`
-
-<div class="fragment">
-
-`<:`
-
-`{v:Int|v=3}`
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + <div class="fragment">*Dependencies* using refinement parameters</div>
diff --git a/docs/slides/plpv14/lhs/06_Inductive.lhs b/docs/slides/plpv14/lhs/06_Inductive.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/06_Inductive.lhs
+++ /dev/null
@@ -1,464 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Induction
----------
-
-Encoding *induction* with Abstract refinements
-
-<div class="hidden">
-
-\begin{code}
-module Loop where
-import Prelude hiding ((!!), foldr, length, (++))
--- import Measures
-import Language.Haskell.Liquid.Prelude
-{-@ LIQUID "--no-termination" @-}
-
-{-@ measure llen  :: (L a) -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)  @-}
-
-size  :: L a -> Int
-add   :: Int -> Int -> Int
-loop  :: Int -> Int -> α -> (Int -> α -> α) -> α
-foldr :: (L a -> a -> b -> b) -> b -> L a -> b
-\end{code}
-</div>
-
-Induction
-=========
-
-Example: `loop` redux 
----------------------
-
-Recall the *higher-order* `loop` 
-
-<br>
-
-\begin{code}
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-**Problem**
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
-\begin{code} <br>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat|v=m+n} @-}
-add n m = loop 0 m n (\_ i -> i + 1)
-\end{code}
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Base Case** Initial accumulator `base` satisfies invariant
-
-
-`(p base lo)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**Inductive Step** `f` *preserves* invariant at `i`
-
-
-`(p acc i) => (p (f i acc) (i + 1))`
-
-Induction in `loop` (by hand)
------------------------------
-
-\begin{code} <br> 
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-\end{code}
-
-<br>
-
-**"By Induction"** `out` satisfies invariant at `hi` 
-
-`(p out hi)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-\begin{code}
-{-@ loop :: forall a <p :: Int -> a -> Prop>.
-        lo:Int 
-     -> hi:{v:Int|lo <= v}
-     -> base:a<p lo>                      
-     -> f:(i:Int -> a<p i> -> a<p (i+1)>) 
-     -> a<p hi>                           @-}
-\end{code}
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-\begin{code}<br> 
-p    :: Int -> a -> Prop             -- invt 
-base :: a<p lo>                      -- base 
-f    :: i:Int -> a<p i> -> a<p(i+1)> -- step
-out  :: a<p hi>                      -- goal
-\end{code}
-
-
-
-Using Induction
----------------
-
-\begin{code}
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-**Verified** by instantiating the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-Using Induction
----------------
-
-\begin{code} <div/>
-{-@ add :: n:Nat -> m:Nat -> {v:Nat| v=m+n} @-}
-add n m = loop 0 m n (\_ z -> z + 1)
-\end{code}
-
-<br>
-
-Verified by instantiating `p := \i acc -> acc = i + n`
-
-- <div class="fragment">**Base:**  `n = 0 + n`</div>
-
-- <div class="fragment">**Step:**  `acc = i + n  =>  acc + 1 = (i + 1) + n`</div>
-
-- <div class="fragment">**Goal:**  `out = m + n`</div>
-
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over such lists ...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code} <br>
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Example: `foldr`
-----------------
-
-\begin{code}
-{-@ foldr :: 
-    forall a b <p :: L a -> b -> Prop>. 
-      (xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)>) 
-    -> b<p N> 
-    -> ys:L a
-    -> b<p ys>                            @-}
-foldr f b N        = b
-foldr f b (C x xs) = f xs x (foldr f b xs)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`foldr`: Abstract Refinement
-----------------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  ::  b<p ys>                            
-\end{code}
-
-<br>
-
-`(p xs b)` relates `b` with folded `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`foldr`: Base Case
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`base` is related to empty list `N`
-
-`base :: b<p N>` states 
-
-
-
-`foldr`: Ind. Step 
-------------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-`step` extends relation from `xs` to `C x xs`
-
-`step :: xs:L a -> x:a -> b<p xs> -> b<p(C x xs)>`
-
-
-`foldr`: Output
----------------
-
-\begin{code} <div/>
-p    :: L a -> b -> Prop   
-step :: xs:_ -> x:_ -> b<p xs> -> b<p(C x xs)> 
-base :: b<p N> 
-ys   :: L a
-out  :: b<p ys>                            
-\end{code}
-
-<br>
-
-Relation holds between `out` and input list `ys`
-
-`out :: b<p ys>`
-
-Using `foldr`: Size
--------------------
-
-We can now verify <br>
-
-\begin{code}
-{-@ size :: xs:_ -> {v:Int| v = (llen xs)} @-}
-size     = foldr (\_ _ n -> n + 1) 0
-\end{code}
-
-<br>
-
-<div class="fragment">
-Verified by automatically instantiating 
-
-`p := \xs acc -> acc = (llen xs)`
-</div>
-
-Using `foldr`: Append
----------------------
-
-\begin{code}
-{-@ (++) :: xs:_ -> ys:_ -> (Cat a xs ys) @-} 
-xs ++ ys = foldr (\_ -> C) ys xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-where the alias `Cat` is:
-
-<br>
-
-\begin{code}
-{-@ type Cat a X Y = 
-    {v:L a|(llen v) = (llen X) + (llen Y)} @-}
-\end{code}
-
-</div>
-
-Using `foldr`: Append
----------------------
-
-\begin{code} <div/>
-{-@ (++) :: xs:_ -> ys:_ -> (Cat a xs ys) @-} 
-xs ++ ys = foldr (\_ -> C) ys xs 
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Verified by automatically instantiating 
-
-`p := \xs acc -> llen acc = llen xs + llen ys`
-
-</div>
-
-Recap
------
-
-Abstract refinements decouple *invariant* from *traversal*
-
-<br>
-
-+ <div class="fragment">*reusable* specifications for higher-order functions.</div>
-
-+ <div class="fragment">*automatic* checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + *Dependencies*
-    + <div class="fragment">*Induction*</div>
diff --git a/docs/slides/plpv14/lhs/06_Inductive.lhs.markdown b/docs/slides/plpv14/lhs/06_Inductive.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/06_Inductive.lhs.markdown
+++ /dev/null
@@ -1,535 +0,0 @@
-Abstract Refinements {#induction}
-=================================
-
-Induction
----------
-
-Encoding *induction* with Abstract refinements
-
-<div class="hidden">
-
-
-<pre><span class=hs-linenum>12: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Loop</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>13: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-layout'>(</span><span class='hs-varop'>!!</span><span class='hs-layout'>)</span><span class='hs-layout'>,</span> <span class='hs-varid'>foldr</span><span class='hs-layout'>,</span> <span class='hs-varid'>length</span><span class='hs-layout'>,</span> <span class='hs-layout'>(</span><span class='hs-varop'>++</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>14: </span><span class='hs-comment'>-- import Measures</span>
-<span class=hs-linenum>15: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>16: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>17: </span>
-<span class=hs-linenum>18: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>measure</span> <span class='hs-varid'>llen</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>19: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>N</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
-<span class=hs-linenum>20: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>21: </span>
-<span class=hs-linenum>22: </span><span class='hs-definition'>size</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>23: </span><span class='hs-definition'>add</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>24: </span><span class='hs-definition'>loop</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>α</span>
-<span class=hs-linenum>25: </span><span class='hs-definition'>foldr</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span>
-</pre>
-</div>
-
-Induction
-=========
-
-Example: `loop` redux 
----------------------
-
-Recall the *higher-order* `loop` 
-
-<br>
-
-
-<pre><span class=hs-linenum>40: </span><a class=annot href="#"><span class=annottext>forall a &lt;p :: (GHC.Types.Int)-&gt; a-&gt; Bool&gt;.
-lo:(Int)
--&gt; hi:{VV : (Int) | (lo &lt;= VV)}
--&gt; {VV : a&lt;p lo&gt; | true}
--&gt; (i:(Int)
-    -&gt; {VV : a&lt;p i&gt; | true}
-    -&gt; forall [ex:{VV : (Int) | (VV == (i + 1))}].{VV : a&lt;p ex&gt; | true})
--&gt; {VV : a&lt;p hi&gt; | true}</span><span class='hs-definition'>loop</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>lo</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (lo &lt;= VV)}</span><span class='hs-varid'>hi</span></a> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 p VV lo))}</span><span class='hs-varid'>base</span></a> <a class=annot href="#"><span class=annottext>i:(Int)
--&gt; {VV : a | ((papp2 p VV i))}
--&gt; forall [ex:{VV : (Int) | (VV == (i + 1))}].{VV : a | ((papp2 p VV ex))}</span><span class='hs-varid'>f</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x4 : (Int) | (x4 &gt;= lo) &amp;&amp; (lo &lt;= x4) &amp;&amp; (x4 &lt;= hi)}
--&gt; {VV : a | ((papp2 p VV x1))} -&gt; {VV : a | ((papp2 p VV hi))}</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == lo)}</span><span class='hs-varid'>lo</span></a> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 p VV lo)) &amp;&amp; (VV == base)}</span><span class='hs-varid'>base</span></a>
-<span class=hs-linenum>41: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>42: </span>    <a class=annot href="#"><span class=annottext>i:{VV : (Int) | (VV &gt;= lo) &amp;&amp; (VV &lt;= hi) &amp;&amp; (lo &lt;= VV)}
--&gt; {VV : a | ((papp2 p VV i))} -&gt; {VV : a | ((papp2 p VV hi))}</span><span class='hs-varid'>go</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= lo) &amp;&amp; (VV &lt;= hi) &amp;&amp; (lo &lt;= VV)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 p VV i))}</span><span class='hs-varid'>acc</span></a> 
-<span class=hs-linenum>43: </span>      <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (lo &lt;= x5) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>x1:{x14 : (Int) | (x14 &gt;= i) &amp;&amp; (x14 &gt;= lo) &amp;&amp; (i &lt;= x14) &amp;&amp; (lo &lt;= x14) &amp;&amp; (x14 &lt;= hi)}
--&gt; x2:{x14 : (Int) | (x14 &gt;= i) &amp;&amp; (x14 &gt;= lo) &amp;&amp; (i &lt;= x14) &amp;&amp; (lo &lt;= x14) &amp;&amp; (x14 &lt;= hi)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == hi) &amp;&amp; (lo &lt;= x3)}</span><span class='hs-varid'>hi</span></a>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>i:{VV : (Int) | (VV &gt;= lo) &amp;&amp; (VV &lt;= hi) &amp;&amp; (lo &lt;= VV)}
--&gt; {VV : a | ((papp2 p VV i))} -&gt; {VV : a | ((papp2 p VV hi))}</span><span class='hs-varid'>go</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (lo &lt;= x5) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; {VV : a | ((papp2 p VV x1))}
--&gt; forall [ex:{VV : (Int) | (VV == (x1 + 1))}].{VV : a | ((papp2 p VV ex))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == i) &amp;&amp; (x5 &gt;= lo) &amp;&amp; (lo &lt;= x5) &amp;&amp; (x5 &lt;= hi)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 p VV i)) &amp;&amp; (VV == acc)}</span><span class='hs-varid'>acc</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>44: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 p VV i)) &amp;&amp; (VV == acc)}</span><span class='hs-varid'>acc</span></a>
-</pre>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
- <br>
-<pre><span class=hs-linenum>53: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>|v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>54: </span><span class='hs-definition'>add</span> <span class='hs-varid'>n</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>i</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-
-**Problem**
-
-- As property only holds after *last* loop iteration...
-
-- ... cannot instantiate `α` with `{v:Int | v = n + m}`
-
-</div>
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
- <br>
-<pre><span class=hs-linenum>75: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>|v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>76: </span><span class='hs-definition'>add</span> <span class='hs-varid'>n</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>i</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-**Problem** 
-
-Need invariant relating *iteration* `i` with *accumulator* `acc`
-
-
-Iteration Dependence
---------------------
-
-We used `loop` to write 
-
- <br>
-<pre><span class=hs-linenum>92: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>|v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>93: </span><span class='hs-definition'>add</span> <span class='hs-varid'>n</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>i</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>i</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-**Solution** 
-
-- Abstract Refinement `p :: Int -> a -> Prop`
-
-- `(p i acc)` relates *iteration* `i` with *accumulator* `acc`
-
-
-
-Induction in `loop` (by hand)
------------------------------
-
- <br> 
-<pre><span class=hs-linenum>110: </span><span class='hs-definition'>loop</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>hi</span> <span class='hs-varid'>base</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>base</span>
-<span class=hs-linenum>111: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>112: </span>    <span class='hs-varid'>go</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> 
-<span class=hs-linenum>113: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>hi</span>    <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>114: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>acc</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-<div align="center">
-
-------------  ---   ----------------------------
-  **Assume**   :    `out = loop lo hi base f` 
-
-   **Prove**   :    `(p hi out)`
-------------  ---   ----------------------------
-
-</div>
-</div>
-
-
-Induction in `loop` (by hand)
------------------------------
-
- <br> 
-<pre><span class=hs-linenum>136: </span><span class='hs-definition'>loop</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>hi</span> <span class='hs-varid'>base</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>base</span>
-<span class=hs-linenum>137: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>138: </span>    <span class='hs-varid'>go</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> 
-<span class=hs-linenum>139: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>hi</span>    <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>140: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>acc</span>
-</pre>
-
-<br>
-
-**Base Case** Initial accumulator `base` satisfies invariant
-
-
-`(p base lo)`   
-
-
-Induction in `loop` (by hand)
------------------------------
-
- <br> 
-<pre><span class=hs-linenum>155: </span><span class='hs-definition'>loop</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>hi</span> <span class='hs-varid'>base</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>base</span>
-<span class=hs-linenum>156: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>157: </span>    <span class='hs-varid'>go</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> 
-<span class=hs-linenum>158: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>hi</span>    <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>159: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>acc</span>
-</pre>
-
-<br>
-
-**Inductive Step** `f` *preserves* invariant at `i`
-
-
-`(p acc i) => (p (f i acc) (i + 1))`
-
-Induction in `loop` (by hand)
------------------------------
-
- <br> 
-<pre><span class=hs-linenum>173: </span><span class='hs-definition'>loop</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>hi</span> <span class='hs-varid'>base</span> <span class='hs-varid'>f</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-varid'>lo</span> <span class='hs-varid'>base</span>
-<span class=hs-linenum>174: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>175: </span>    <span class='hs-varid'>go</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span> 
-<span class=hs-linenum>176: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>i</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>hi</span>    <span class='hs-keyglyph'>=</span> <span class='hs-varid'>go</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>f</span> <span class='hs-varid'>i</span> <span class='hs-varid'>acc</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>177: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>acc</span>
-</pre>
-
-<br>
-
-**"By Induction"** `out` satisfies invariant at `hi` 
-
-`(p out hi)`
-
-
-Induction in `loop` (by type)
------------------------------
-
-Induction is an **abstract refinement type** for `loop` 
-
-<br>
-
-
-<pre><span class=hs-linenum>195: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>loop</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span>
-<span class=hs-linenum>196: </span>        <span class='hs-varid'>lo</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> 
-<span class=hs-linenum>197: </span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>hi</span><span class='hs-conop'>:</span><span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span><span class='hs-keyword'>|lo &lt;= v}</span>
-<span class=hs-linenum>198: </span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>base</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>lo</span><span class='hs-varop'>&gt;</span>                      
-<span class=hs-linenum>199: </span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>f</span><span class='hs-conop'>:</span><span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>i</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>200: </span>     <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>hi</span><span class='hs-varop'>&gt;</span>                           <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-Induction in `loop` (by type)
------------------------------
-
-`p` is the *index dependent* invariant!
-
-
-<br> 
-<pre><span class=hs-linenum>212: </span><span class='hs-definition'>p</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>             <span class='hs-comment'>-- invt </span>
-<span class=hs-linenum>213: </span><span class='hs-definition'>base</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>lo</span><span class='hs-varop'>&gt;</span>                      <span class='hs-comment'>-- base </span>
-<span class=hs-linenum>214: </span><span class='hs-definition'>f</span>    <span class='hs-keyglyph'>::</span> <span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>i</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-varid'>i</span><span class='hs-varop'>+</span><span class='hs-num'>1</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span> <span class='hs-comment'>-- step</span>
-<span class=hs-linenum>215: </span><span class='hs-definition'>out</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>hi</span><span class='hs-varop'>&gt;</span>                      <span class='hs-comment'>-- goal</span>
-</pre>
-
-
-
-Using Induction
----------------
-
-
-<pre><span class=hs-linenum>224: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>| v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>225: </span><a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= 0)}
--&gt; m:{VV : (Int) | (VV &gt;= 0)}
--&gt; {VV : (Int) | (VV == (m + n)) &amp;&amp; (VV &gt;= 0)}</span><span class='hs-definition'>add</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>m</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:(Int)
--&gt; x2:{x21 : (Int) | (x1 &lt;= x21)}
--&gt; {x19 : (Int)&lt;p x1&gt; | (x19 &gt;= 0) &amp;&amp; (x19 &gt;= n) &amp;&amp; (n &lt;= x19)}
--&gt; (i:(Int)
-    -&gt; {x19 : (Int)&lt;p i&gt; | (x19 &gt;= 0) &amp;&amp; (x19 &gt;= n) &amp;&amp; (n &lt;= x19)}
-    -&gt; forall [ex:{VV : (Int) | (VV == (i + 1))}].{x19 : (Int)&lt;p ex&gt; | (x19 &gt;= 0) &amp;&amp; (x19 &gt;= n) &amp;&amp; (n &lt;= x19)})
--&gt; {x19 : (Int)&lt;p x2&gt; | (x19 &gt;= 0) &amp;&amp; (x19 &gt;= n) &amp;&amp; (n &lt;= x19)}</span><span class='hs-varid'>loop</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == m) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>m</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; x2:{x17 : (Int) | (x17 == (x1 + n)) &amp;&amp; (x17 == (n + x1)) &amp;&amp; (x17 &gt;= 0) &amp;&amp; (x17 &gt;= x1) &amp;&amp; (x17 &gt;= n) &amp;&amp; (x1 &lt;= x17) &amp;&amp; (n &lt;= x17)}
--&gt; {x9 : (Int) | (x9 == (x2 + 1)) &amp;&amp; (x9 &gt; 0) &amp;&amp; (x9 &gt; x1) &amp;&amp; (x9 &gt; x2) &amp;&amp; (x9 &gt; n) &amp;&amp; (x9 &gt;= 0) &amp;&amp; (x1 &lt;= x9) &amp;&amp; (n &lt;= x9)}</span><span class='hs-keyglyph'>\</span></a><span class='hs-keyword'>_</span> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &gt;= n) &amp;&amp; (n &lt;= VV)}</span><span class='hs-varid'>z</span></a> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == z) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (x5 &gt;= n) &amp;&amp; (n &lt;= x5)}</span><span class='hs-varid'>z</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-**Verified** by instantiating the abstract refinement of `loop`
-
-`p := \i acc -> acc = i + n`
-
-
-Using Induction
----------------
-
- <div/>
-<pre><span class=hs-linenum>239: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>add</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>m</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>| v=m+n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>240: </span><span class='hs-definition'>add</span> <span class='hs-varid'>n</span> <span class='hs-varid'>m</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>loop</span> <span class='hs-num'>0</span> <span class='hs-varid'>m</span> <span class='hs-varid'>n</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-varid'>z</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>z</span> <span class='hs-varop'>+</span> <span class='hs-num'>1</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-Verified by instantiating `p := \i acc -> acc = i + n`
-
-- <div class="fragment">**Base:**  `n = 0 + n`</div>
-
-- <div class="fragment">**Step:**  `acc = i + n  =>  acc + 1 = (i + 1) + n`</div>
-
-- <div class="fragment">**Goal:**  `out = m + n`</div>
-
-
-Generalizes To Structures 
--------------------------
-
-Same idea applies for induction over *structures* ...
-
-
-Structural Induction
-====================
-
-Example: Lists
---------------
-
-<br>
-
-
-<pre><span class=hs-linenum>269: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> 
-<span class=hs-linenum>270: </span>         <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Lets write a generic loop over such lists ...
-</div>
-
-Example: `foldr`
-----------------
-
- <br>
-<pre><span class=hs-linenum>283: </span><span class='hs-definition'>foldr</span> <span class='hs-varid'>f</span> <span class='hs-varid'>b</span> <span class='hs-conid'>N</span>        <span class='hs-keyglyph'>=</span> <span class='hs-varid'>b</span>
-<span class=hs-linenum>284: </span><span class='hs-definition'>foldr</span> <span class='hs-varid'>f</span> <span class='hs-varid'>b</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>f</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>x</span> <span class='hs-layout'>(</span><span class='hs-varid'>foldr</span> <span class='hs-varid'>f</span> <span class='hs-varid'>b</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Lets brace ourselves for the type...
-</div>
-
-Example: `foldr`
-----------------
-
-
-<pre><span class=hs-linenum>297: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>foldr</span> <span class='hs-keyglyph'>::</span> 
-<span class=hs-linenum>298: </span>    <span class='hs-keyword'>forall</span> <span class='hs-varid'>a</span> <span class='hs-varid'>b</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span> 
-<span class=hs-linenum>299: </span>      <span class='hs-layout'>(</span><span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>xs</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>300: </span>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-conid'>N</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>301: </span>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>302: </span>    <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>ys</span><span class='hs-varop'>&gt;</span>                            <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>303: </span><a class=annot href="#"><span class=annottext>forall a b &lt;p :: (Loop.L a)-&gt; b-&gt; Bool&gt;.
-(xs:(L a)
- -&gt; x:a
- -&gt; {VV : b&lt;p xs&gt; | true}
- -&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x xs))}].{VV : b&lt;p ex&gt; | true})
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.N))}].{VV : b&lt;p ex&gt; | true}
--&gt; ys:(L a)
--&gt; {VV : b&lt;p ys&gt; | true}</span><span class='hs-definition'>foldr</span></a> <a class=annot href="#"><span class=annottext>xs:(L a)
--&gt; x:a
--&gt; {VV : b | ((papp2 p VV xs))}
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x xs))}].{VV : b | ((papp2 p VV ex))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>forall [ex:{VV : (L a) | (VV == (Loop.N))}].{VV : a | ((papp2 p VV ex))}</span><span class='hs-varid'>b</span></a> <span class='hs-conid'>N</span>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall [ex:{VV : (L a) | (VV == (Loop.N))}].{VV : a | ((papp2 p VV ex))}</span><span class='hs-varid'>b</span></a>
-<span class=hs-linenum>304: </span><span class='hs-definition'>foldr</span> <span class='hs-varid'>f</span> <span class='hs-varid'>b</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(L a)
--&gt; x2:a
--&gt; {VV : b | ((papp2 p VV x1))}
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x2 x1))}].{VV : b | ((papp2 p VV ex))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L a) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall &lt;p :: (Loop.L a)-&gt; b-&gt; Bool&gt;.
-(xs:(L a)
- -&gt; x:a
- -&gt; {VV : b&lt;p xs&gt; | true}
- -&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x xs))}].{VV : b&lt;p ex&gt; | true})
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.N))}].{VV : b&lt;p ex&gt; | true}
--&gt; x4:(L a)
--&gt; {VV : b&lt;p x4&gt; | true}</span><span class='hs-varid'>foldr</span></a> <a class=annot href="#"><span class=annottext>x1:(L a)
--&gt; x2:a
--&gt; {VV : b | ((papp2 p VV x1))}
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x2 x1))}].{VV : b | ((papp2 p VV ex))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>forall [ex:{VV : (L a) | (VV == (Loop.N))}].{VV : a | ((papp2 p VV ex))}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L a) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Lets step through the type...
-</div>
-
-
-`foldr`: Abstract Refinement
-----------------------------
-
- <div/>
-<pre><span class=hs-linenum>318: </span><span class='hs-definition'>p</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>   
-<span class=hs-linenum>319: </span><span class='hs-definition'>step</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>xs</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>320: </span><span class='hs-definition'>base</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-conid'>N</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>321: </span><span class='hs-definition'>ys</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>322: </span><span class='hs-definition'>out</span>  <span class='hs-keyglyph'>::</span>  <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>ys</span><span class='hs-varop'>&gt;</span>                            
-</pre>
-
-<br>
-
-`(p xs b)` relates `b` with folded `xs`
-
-`p :: L a -> b -> Prop`
-
-
-`foldr`: Base Case
-------------------
-
- <div/>
-<pre><span class=hs-linenum>336: </span><span class='hs-definition'>p</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>   
-<span class=hs-linenum>337: </span><span class='hs-definition'>step</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>xs</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>338: </span><span class='hs-definition'>base</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-conid'>N</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>339: </span><span class='hs-definition'>ys</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>340: </span><span class='hs-definition'>out</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>ys</span><span class='hs-varop'>&gt;</span>                            
-</pre>
-
-<br>
-
-`base` is related to empty list `N`
-
-`base :: b<p N>` states 
-
-
-
-`foldr`: Ind. Step 
-------------------
-
- <div/>
-<pre><span class=hs-linenum>355: </span><span class='hs-definition'>p</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>   
-<span class=hs-linenum>356: </span><span class='hs-definition'>step</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>xs</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>357: </span><span class='hs-definition'>base</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-conid'>N</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>358: </span><span class='hs-definition'>ys</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>359: </span><span class='hs-definition'>out</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>ys</span><span class='hs-varop'>&gt;</span>                            
-</pre>
-
-<br>
-
-`step` extends relation from `xs` to `C x xs`
-
-`step :: xs:L a -> x:a -> b<p xs> -> b<p(C x xs)>`
-
-
-`foldr`: Output
----------------
-
- <div/>
-<pre><span class=hs-linenum>373: </span><span class='hs-definition'>p</span>    <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>   
-<span class=hs-linenum>374: </span><span class='hs-definition'>step</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>xs</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>375: </span><span class='hs-definition'>base</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-conid'>N</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>376: </span><span class='hs-definition'>ys</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>377: </span><span class='hs-definition'>out</span>  <span class='hs-keyglyph'>::</span> <span class='hs-varid'>b</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>ys</span><span class='hs-varop'>&gt;</span>                            
-</pre>
-
-<br>
-
-Relation holds between `out` and input list `ys`
-
-`out :: b<p ys>`
-
-Using `foldr`: Size
--------------------
-
-We can now verify <br>
-
-
-<pre><span class=hs-linenum>392: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>size</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span><span class='hs-keyword'>| v = (llen xs)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>393: </span><a class=annot href="#"><span class=annottext>forall a. xs:(L a) -&gt; {VV : (Int) | (VV == (llen xs))}</span><span class='hs-definition'>size</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (Loop.L a)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-(xs:(L a)
- -&gt; x:a
- -&gt; {x12 : (Int)&lt;p xs&gt; | (x12 &gt;= 0)}
- -&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x xs))}].{x12 : (Int)&lt;p ex&gt; | (x12 &gt;= 0)})
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.N))}].{x12 : (Int)&lt;p ex&gt; | (x12 &gt;= 0)}
--&gt; x4:(L a)
--&gt; {x12 : (Int)&lt;p x4&gt; | (x12 &gt;= 0)}</span><span class='hs-varid'>foldr</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:(L a)
--&gt; a
--&gt; x3:{x8 : (Int) | (x8 == (llen x1)) &amp;&amp; (x8 &gt;= 0)}
--&gt; {x5 : (Int) | (x5 == (x3 + 1)) &amp;&amp; (x5 &gt; 0) &amp;&amp; (x5 &gt; x3) &amp;&amp; (x5 &gt;= 0)}</span><span class='hs-keyglyph'>\</span></a><span class='hs-keyword'>_</span> <span class='hs-keyword'>_</span> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>n</span></a> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-Verified by automatically instantiating 
-
-`p := \xs acc -> acc = (llen xs)`
-</div>
-
-Using `foldr`: Append
----------------------
-
-
-<pre><span class=hs-linenum>408: </span><span class='hs-keyword'>{-@</span> <span class='hs-layout'>(</span><span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Cat</span> <span class='hs-varid'>a</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span> 
-<span class=hs-linenum>409: </span><a class=annot href="#"><span class=annottext>(L a)</span><span class='hs-definition'>xs</span></a> <a class=annot href="#"><span class=annottext>forall a.
-xs:(L a)
--&gt; ys:(L a)
--&gt; {VV : (L a) | ((llen VV) == ((llen xs) + (llen ys)))}</span><span class='hs-varop'>++</span></a> <a class=annot href="#"><span class=annottext>(L a)</span><span class='hs-varid'>ys</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: (Loop.L a)-&gt; (Loop.L a)-&gt; Bool&gt;.
-(xs:(L a)
- -&gt; x:a
- -&gt; {x8 : (L a)&lt;p xs&gt; | true}
- -&gt; forall [ex:{VV : (L a) | (VV == (Loop.C x xs))}].{x8 : (L a)&lt;p ex&gt; | true})
--&gt; forall [ex:{VV : (L a) | (VV == (Loop.N))}].{x8 : (L a)&lt;p ex&gt; | true}
--&gt; x4:(L a)
--&gt; {x8 : (L a)&lt;p x4&gt; | true}</span><span class='hs-varid'>foldr</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>(L a)
--&gt; a -&gt; x3:(L a) -&gt; {x2 : (L a) | ((llen x2) == (1 + (llen x3)))}</span><span class='hs-keyglyph'>\</span></a><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>a -&gt; x2:(L a) -&gt; {x2 : (L a) | ((llen x2) == (1 + (llen x2)))}</span><span class='hs-conid'>C</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x2 : (L a) | (x2 == ys)}</span><span class='hs-varid'>ys</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L a) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a> 
-</pre>
-
-<br>
-
-<div class="fragment">
-
-where the alias `Cat` is:
-
-<br>
-
-
-<pre><span class=hs-linenum>421: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Cat</span> <span class='hs-varid'>a</span> <span class='hs-conid'>X</span> <span class='hs-conid'>Y</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>422: </span>    <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-keyglyph'>|</span><span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>v</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-conid'>X</span><span class='hs-layout'>)</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-conid'>Y</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-Using `foldr`: Append
----------------------
-
- <div/>
-<pre><span class=hs-linenum>431: </span><span class='hs-keyword'>{-@</span> <span class='hs-layout'>(</span><span class='hs-varop'>++</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Cat</span> <span class='hs-varid'>a</span> <span class='hs-varid'>xs</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span> 
-<span class=hs-linenum>432: </span><span class='hs-definition'>xs</span> <span class='hs-varop'>++</span> <span class='hs-varid'>ys</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foldr</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>C</span><span class='hs-layout'>)</span> <span class='hs-varid'>ys</span> <span class='hs-varid'>xs</span> 
-</pre>
-
-<br>
-
-<div class="fragment">
-
-Verified by automatically instantiating 
-
-`p := \xs acc -> llen acc = llen xs + llen ys`
-
-</div>
-
-Recap
------
-
-Abstract refinements decouple *invariant* from *traversal*
-
-<br>
-
-+ <div class="fragment">*reusable* specifications for higher-order functions.</div>
-
-+ <div class="fragment">*automatic* checking and instantiation by SMT.</div>
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract:** Refinements over Type Signatures
-    + *Dependencies*
-    + <div class="fragment">*Induction*</div>
diff --git a/docs/slides/plpv14/lhs/07_Array.lhs b/docs/slides/plpv14/lhs/07_Array.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/07_Array.lhs
+++ /dev/null
@@ -1,405 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *data structures*
-</div>
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-\begin{code}
-module LiquidArray where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidError)
-
-{-@ LIQUID "--no-termination" @-}
-
-fibMemo   :: Vec Int -> Int -> (Vec Int, Int)
-fastFib   :: Int -> Int
-idv       :: Int -> Vec Int
-axiom_fib :: Int -> Bool
-axiom_fib = undefined
-
-{-@ predicate AxFib I = (fib I) == (if I <= 1 then 1 else fib(I-1) + fib(I-2)) @-}
-\end{code}
-</div>
-
-<div class="fragment">
-
-Implemented as maps from `Int` to `a` 
-
-<br>
-
-\begin{code}
-data Vec a = V (Int -> a)
-\end{code}
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-\begin{code}
-{-@ data Vec a < dom :: Int -> Prop,
-                 rng :: Int -> a -> Prop >
-      = V {a :: i:Int<dom> -> a <rng i>}  @-}
-\end{code}
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-A quick alias for *segments* between `I` and `J`
-
-<br>
-
-\begin{code}
-{-@ predicate Seg V I J = (I <= V && V < J) @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type IdVec N = Vec <{\v -> (Seg v 0 N)}, 
-                        {\k v -> v=k}> 
-                       Int                  @-}
-\end{code}
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-\begin{code}
-{-@ idv :: n:Nat -> (IdVec n) @-}
-idv n   = V (\k -> if 0 < k && k < n 
-                     then k 
-                     else liquidError "eeks")
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>Whats the problem? How can we fix it?
-</div>
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-\begin{code}
-{-@ type ZeroTerm N = 
-     Vec <{\v -> (Seg v 0 N)}, 
-          {\k v -> (k = N-1 => v = 0)}> 
-          Int                             @-}
-\end{code}
-
-</div>
-
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-\begin{code}
-{-@ type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                               @-}
-\end{code}
-
-
-Accessing Vectors
------------------
-
-Next: lets *abstractly* type `Vec`tor operations, *e.g.* 
-
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-Ex: Empty Vectors
------------------
-
-`empty` returns Vector whose domain is `false`
-
-<br>
-
-\begin{code}
-{-@ empty :: forall <p :: Int -> a -> Prop>. 
-               Vec <{v:Int|false}, p> a     @-}
-
-empty     = V $ \_ -> error "empty vector!"
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-Ex: `get` Key's Value 
----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-\begin{code}
-{-@ get :: forall a <d :: Int -> Prop,  
-                     r :: Int -> a -> Prop>.
-           key:Int <d>
-        -> vec:Vec <d, r> a
-        -> a<r key>                        @-}
-
-get k (V f) = f k
-\end{code}
-
-
-Ex: `set` Key's Value 
----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-Ex: `set` Key's Value 
----------------------
-
-\begin{code}
-{-@ set :: forall a <d :: Int -> Prop,
-                     r :: Int -> a -> Prop>.
-           key: Int<d> -> val: a<r key>
-        -> vec: Vec<{v:Int<d>| v /= key},r> a
-        -> Vec <d, r> a                     @-}
-set key val (V f) = V $ \k -> if k == key 
-                                then val 
-                                else f key
-\end{code}
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-<!-- INSERT tests/pos/vecloop.lhs here AFTER FIXED -->
-
-Using the Vector API
---------------------
-
-Memoized Fibonacci
-------------------
-
-Use `Vec` API to write a *memoized* fibonacci function
-
-<br>
-
-<div class="fragment">
-\begin{code} Using the fibonacci table:
-type FibV =  
-     Vec <{\v -> true}, 
-          {\k v -> (v = 0 || v = (fib k))}> 
-          Int                              
-\end{code}
-</div>
-
-<br>
-
-<div class="fragment">
-But wait, what is `fib` ?
-</div>
-
-
-Specifying Fibonacci
---------------------
-
-`fib` is *uninterpreted* in the refinement logic  
-
-<br>
-
-\begin{code}
-{-@ measure fib :: Int -> Int @-}
-\end{code}
-
-<br>
-
-Specifying Fibonacci
---------------------
-
-We *axiomatize* the definition of `fib` in SMT ...
-
-\begin{code}<br>
-predicate AxFib I = 
-  (fib I) == if I <= 1 
-               then 1 
-               else fib(I-1) + fib(I-2)
-\end{code}
-
-Specifying Fibonacci
---------------------
-
-Finally, lift axiom into LiquidHaskell as *ghost function*
-
-<br>
-
-\begin{code}
-{-@ axiom_fib :: 
-      i:_ -> {v:_|((Prop v) <=> (AxFib i))} @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Note:** Recipe for *escaping* SMT limitations
-
-1. *Prove* fact externally
-2. *Use* as ghost function call
-</div>
-
-
-Fast Fibonacci
---------------
-
-An efficient fibonacci function
-
-<br>
-
-\begin{code}
-{-@ fastFib :: n:Int -> {v:_ | v = (fib n)} @-}
-fastFib n   = snd $ fibMemo (V (\_ -> 0)) n
-\end{code}
-
-<br>
-
-<div class="fragment">
-- `fibMemo` *takes* a table initialized with `0`
-
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-</div>
-
-
-Memoized Fibonacci 
-------------------
-
-\begin{code}
-fibMemo t i 
-  | i <= 1    
-  = (t, liquidAssume (axiom_fib i) 1)
-  | otherwise 
-  = case get i t of   
-     0 -> let (t1,n1) = fibMemo t  (i-1)
-              (t2,n2) = fibMemo t1 (i-2)
-              n       = liquidAssume 
-                        (axiom_fib i) (n1+n2)
-          in (set i n t2,  n)
-     n -> (t, n)
-\end{code}
-
-Memoized Fibonacci 
-------------------
-
-- `fibMemo` *takes* a table initialized with `0`
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-
-<br>
-
-\begin{code}
-{-@ fibMemo :: FibV 
-            -> i:Int 
-            -> (FibV,{v:Int | v = (fib i)}) @-}
-\end{code}
-
-
-Recap
------
-
-Created a `Vec` container 
-
-Decoupled *domain* and *range* invariants from *data*
-
-<br>
-
-<div class="fragment">
-
-Previous, special purpose program analyses 
-
-- [Gopan-Reps-Sagiv, POPL 05](link)
-- [J.-McMillan, CAV 07](link)
-- [Logozzo-Cousot-Cousot, POPL 11](link)
-- [Dillig-Dillig, POPL 12](link) 
-- ...
-
-Encoded as instance of abstract refinement types!
-</div>
-
-
-
-
diff --git a/docs/slides/plpv14/lhs/07_Array.lhs.markdown b/docs/slides/plpv14/lhs/07_Array.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/07_Array.lhs.markdown
+++ /dev/null
@@ -1,467 +0,0 @@
-Abstract Refinements {#data}
-============================
-
-Recap
------
-
-**So far**
-
-Decouple invariants from *functions*
-
-<br>
-
-<div class="fragment">
-
-**Next**
-
-Decouple invariants from *data structures*
-</div>
-
-Decouple Invariants From Data {#vector} 
-=======================================
-
-Example: Vectors 
-----------------
-
-<div class="hidden">
-
-<pre><span class=hs-linenum>28: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>LiquidArray</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>29: </span>
-<span class=hs-linenum>30: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span> <span class='hs-layout'>(</span><span class='hs-varid'>liquidAssume</span><span class='hs-layout'>,</span> <span class='hs-varid'>liquidError</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>31: </span>
-<span class=hs-linenum>32: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>33: </span>
-<span class=hs-linenum>34: </span><span class='hs-definition'>fibMemo</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Vec</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Vec</span> <span class='hs-conid'>Int</span><span class='hs-layout'>,</span> <span class='hs-conid'>Int</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>35: </span><span class='hs-definition'>fastFib</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>36: </span><span class='hs-definition'>idv</span>       <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Vec</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>37: </span><span class='hs-definition'>axiom_fib</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Bool</span>
-<span class=hs-linenum>38: </span><a class=annot href="#"><span class=annottext>i:(Int)
--&gt; {v : (Bool) | (((Prop v)) &lt;=&gt; ((fib i) == (if (i &lt;= 1) then 1 else ((fib (i - 1)) + (fib (i - 2))))))}</span><span class='hs-definition'>axiom_fib</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a. a</span><span class='hs-varid'>undefined</span></a>
-<span class=hs-linenum>39: </span>
-<span class=hs-linenum>40: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>predicate</span> <span class='hs-conid'>AxFib</span> <span class='hs-conid'>I</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>fib</span> <span class='hs-conid'>I</span><span class='hs-layout'>)</span> <span class='hs-varop'>==</span> <span class='hs-layout'>(</span><span class='hs-keyword'>if</span> <span class='hs-conid'>I</span> <span class='hs-varop'>&lt;=</span> <span class='hs-num'>1</span> <span class='hs-keyword'>then</span> <span class='hs-num'>1</span> <span class='hs-keyword'>else</span> <span class='hs-varid'>fib</span><span class='hs-layout'>(</span><span class='hs-conid'>I</span><span class='hs-comment'>-</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varop'>+</span> <span class='hs-varid'>fib</span><span class='hs-layout'>(</span><span class='hs-conid'>I</span><span class='hs-comment'>-</span><span class='hs-num'>2</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-</div>
-
-<div class="fragment">
-
-Implemented as maps from `Int` to `a` 
-
-<br>
-
-
-<pre><span class=hs-linenum>51: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>Vec</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>V</span> <span class='hs-layout'>(</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-</pre>
-
-</div>
-
-
-Abstract *Domain* and *Range*
------------------------------
-
-Parameterize type with *two* abstract refinements:
-
-<br>
-
-
-<pre><span class=hs-linenum>65: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>data</span> <span class='hs-conid'>Vec</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>dom</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-layout'>,</span>
-<span class=hs-linenum>66: </span>                 <span class='hs-varid'>rng</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span> <span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>67: </span>      <span class='hs-keyglyph'>=</span> <span class='hs-conid'>V</span> <span class='hs-layout'>{</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>dom</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>rng</span> <span class='hs-varid'>i</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>}</span>  <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-- `dom`: *domain* on which `Vec` is *defined* 
-
-- `rng`: *range*  and relationship with *index*
-
-Abstract *Domain* and *Range*
------------------------------
-
-Diverse `Vec`tors by *instantiating* `dom` and `rng`
-
-<br>
-
-<div class="fragment">
-
-A quick alias for *segments* between `I` and `J`
-
-<br>
-
-
-<pre><span class=hs-linenum>90: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>predicate</span> <span class='hs-conid'>Seg</span> <span class='hs-conid'>V</span> <span class='hs-conid'>I</span> <span class='hs-conid'>J</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-conid'>I</span> <span class='hs-varop'>&lt;=</span> <span class='hs-conid'>V</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-conid'>V</span> <span class='hs-varop'>&lt;</span> <span class='hs-conid'>J</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-<div class="fragment">
-
-
-<pre><span class=hs-linenum>105: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>IdVec</span> <span class='hs-conid'>N</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Seg</span> <span class='hs-varid'>v</span> <span class='hs-num'>0</span> <span class='hs-conid'>N</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>106: </span>                        <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>v</span><span class='hs-keyglyph'>=</span><span class='hs-varid'>k</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>107: </span>                       <span class='hs-conid'>Int</span>                  <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-Ex: Identity Vectors
---------------------
-
-Defined between `[0..N)` mapping each key to itself:
-
-<br>
-
-
-<pre><span class=hs-linenum>120: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>idv</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>IdVec</span> <span class='hs-varid'>n</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>121: </span><a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= 0)}
--&gt; (Vec &lt;(VV &lt; n) &amp;&amp; (0 &lt;= VV), \k4 VV -&gt; (VV == k4)&gt; (Int))</span><span class='hs-definition'>idv</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>n</span></a>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;rng :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool, dom :: (GHC.Types.Int)-&gt; Bool&gt;.
-(i:{x13 : (Int)&lt;dom&gt; | true}
- -&gt; {x12 : (Int)&lt;rng i&gt; | (x12 &gt; 0) &amp;&amp; (x12 &gt;= 0) &amp;&amp; (x12 &lt; n)})
--&gt; (Vec &lt;dom, rng&gt; {x12 : (Int) | (x12 &gt; 0) &amp;&amp; (x12 &gt;= 0) &amp;&amp; (x12 &lt; n)})</span><span class='hs-conid'>V</span></a> <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)}</span><span class='hs-varid'>k</span></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>if</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &lt; n) &amp;&amp; (0 &lt;= x12) &amp;&amp; (x12 &lt;= k)}
--&gt; x2:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &lt; n) &amp;&amp; (0 &lt;= x12) &amp;&amp; (x12 &lt;= k)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == k) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &lt; n)}</span><span class='hs-varid'>k</span></a> <a class=annot href="#"><span class=annottext>x1:(Bool)
--&gt; x2:(Bool)
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (((Prop x1)) &amp;&amp; ((Prop x2))))}</span><span class='hs-varop'>&amp;&amp;</span></a> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == k) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &lt; n)}</span><span class='hs-varid'>k</span></a> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &gt;= k) &amp;&amp; (0 &lt;= x12) &amp;&amp; (x12 &lt;= n)}
--&gt; x2:{x12 : (Int) | (x12 &gt;= 0) &amp;&amp; (x12 &gt;= k) &amp;&amp; (0 &lt;= x12) &amp;&amp; (x12 &lt;= n)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a> 
-<span class=hs-linenum>122: </span>                     <span class='hs-keyword'>then</span> <a class=annot href="#"><span class=annottext>{x4 : (Int) | (x4 == k) &amp;&amp; (x4 &gt;= 0) &amp;&amp; (x4 &lt; n)}</span><span class='hs-varid'>k</span></a> 
-<span class=hs-linenum>123: </span>                     <span class='hs-keyword'>else</span> <a class=annot href="#"><span class=annottext>{x2 : [(Char)] | false} -&gt; {x1 : (Int) | false}</span><span class='hs-varid'>liquidError</span></a> <span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"eeks"</span></a></span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>Whats the problem? How can we fix it?
-</div>
-
-Ex: Zero-Terminated Vectors
----------------------------
-
-Defined between `[0..N)`, with *last* element equal to `0`:
-
-<br>
-
-<div class="fragment">
-
-
-<pre><span class=hs-linenum>142: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>ZeroTerm</span> <span class='hs-conid'>N</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>143: </span>     <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>Seg</span> <span class='hs-varid'>v</span> <span class='hs-num'>0</span> <span class='hs-conid'>N</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>144: </span>          <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>k</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span><span class='hs-comment'>-</span><span class='hs-num'>1</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>145: </span>          <span class='hs-conid'>Int</span>                             <span class='hs-keyword'>@-}</span>
-</pre>
-
-</div>
-
-
-Ex: Fibonacci Table 
--------------------
-
-A vector whose value at index `k` is either 
-
-- `0` (undefined), or, 
-
-- `k`th fibonacci number 
-
-
-<pre><span class=hs-linenum>161: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>FibV</span> <span class='hs-keyglyph'>=</span>  
-<span class=hs-linenum>162: </span>     <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>true</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>163: </span>          <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span> <span class='hs-varop'>||</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>fib</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>164: </span>          <span class='hs-conid'>Int</span>                               <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-Accessing Vectors
------------------
-
-Next: lets *abstractly* type `Vec`tor operations, *e.g.* 
-
-<br>
-
-- `empty`
-
-- `set`
-
-- `get`
-
-
-Ex: Empty Vectors
------------------
-
-`empty` returns Vector whose domain is `false`
-
-<br>
-
-
-<pre><span class=hs-linenum>190: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>empty</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span> 
-<span class=hs-linenum>191: </span>               <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span><span class='hs-keyword'>|false}</span><span class='hs-layout'>,</span> <span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span>     <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>192: </span>
-<span class=hs-linenum>193: </span><a class=annot href="#"><span class=annottext>forall a &lt;p :: (GHC.Types.Int)-&gt; a-&gt; Bool&gt;.
-(Vec &lt;false, \_ VV -&gt; p&gt; a)</span><span class='hs-definition'>empty</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>({x4 : (Int) | false} -&gt; {VV : a | false})
--&gt; (Vec &lt;false, \_ VV -&gt; false&gt; {VV : a | false})</span><span class='hs-conid'>V</span></a> <a class=annot href="#"><span class=annottext>(({x9 : (Int) | false} -&gt; {VV : a | false})
- -&gt; (Vec &lt;false, \_ VV -&gt; false&gt; {VV : a | false}))
--&gt; ({x9 : (Int) | false} -&gt; {VV : a | false})
--&gt; (Vec &lt;false, \_ VV -&gt; false&gt; {VV : a | false})</span><span class='hs-varop'>$</span></a> <a class=annot href="#"><span class=annottext>{x1 : (Int) | false} -&gt; {VV : a | false}</span><span class='hs-keyglyph'>\</span></a><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>[(Char)] -&gt; {VV : a | false}</span><span class='hs-varid'>error</span></a> <a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"empty vector!"</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-What would happen if we changed `false` to `true`?
-</div>
-
-Ex: `get` Key's Value 
----------------------
-
-- *Input* `key` in *domain*
-
-- *Output* value in *range* related with `k`
-
-
-<pre><span class=hs-linenum>211: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>get</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-layout'>,</span>  
-<span class=hs-linenum>212: </span>                     <span class='hs-varid'>r</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span>
-<span class=hs-linenum>213: </span>           <span class='hs-varid'>key</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span><span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>214: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>vec</span><span class='hs-conop'>:</span><span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>r</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>215: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>r</span> <span class='hs-varid'>key</span><span class='hs-varop'>&gt;</span>                        <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>216: </span>
-<span class=hs-linenum>217: </span><a class=annot href="#"><span class=annottext>forall a &lt;d :: (GHC.Types.Int)-&gt; Bool, r :: (GHC.Types.Int)-&gt; a-&gt; Bool&gt;.
-key:{VV : (Int)&lt;d&gt; | true}
--&gt; (Vec &lt;d, \_ VV -&gt; r&gt; a) -&gt; {VV : a&lt;r key&gt; | true}</span><span class='hs-definition'>get</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | ((papp1 d VV))}</span><span class='hs-varid'>k</span></a> <span class='hs-layout'>(</span><span class='hs-conid'>V</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x2 : (Int) | ((papp1 d x2))} -&gt; {VV : a | ((papp2 r VV x1))}</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 d x3)) &amp;&amp; (x3 == k)}</span><span class='hs-varid'>k</span></a>
-</pre>
-
-
-Ex: `set` Key's Value 
----------------------
-
-- <div class="fragment">Input `key` in *domain*</div>
-
-- <div class="fragment">Input `val` in *range* related with `key`</div>
-
-- <div class="fragment">Input `vec` defined at *domain except at* `key`</div>
-
-- <div class="fragment">Output domain *includes* `key`</div>
-
-Ex: `set` Key's Value 
----------------------
-
-
-<pre><span class=hs-linenum>236: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>set</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyword'>forall</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-layout'>,</span>
-<span class=hs-linenum>237: </span>                     <span class='hs-varid'>r</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;.</span>
-<span class=hs-linenum>238: </span>           <span class='hs-varid'>key</span><span class='hs-conop'>:</span> <span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span><span class='hs-varop'>&gt;</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>val</span><span class='hs-conop'>:</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>r</span> <span class='hs-varid'>key</span><span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>239: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>vec</span><span class='hs-conop'>:</span> <span class='hs-conid'>Vec</span><span class='hs-varop'>&lt;</span><span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span><span class='hs-varop'>&gt;</span><span class='hs-keyword'>| v /= key}</span><span class='hs-layout'>,</span><span class='hs-varid'>r</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>240: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>d</span><span class='hs-layout'>,</span> <span class='hs-varid'>r</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span>                     <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>241: </span><a class=annot href="#"><span class=annottext>forall a &lt;d :: (GHC.Types.Int)-&gt; Bool, r :: (GHC.Types.Int)-&gt; a-&gt; Bool&gt;.
-key:{VV : (Int)&lt;d&gt; | true}
--&gt; {VV : a&lt;r key&gt; | true}
--&gt; (Vec &lt;d &amp; (VV /= key), \_ VV -&gt; r&gt; a)
--&gt; (Vec &lt;d, \_ VV -&gt; r&gt; a)</span><span class='hs-definition'>set</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | ((papp1 d VV))}</span><span class='hs-varid'>key</span></a> <a class=annot href="#"><span class=annottext>{VV : a | ((papp2 r VV key))}</span><span class='hs-varid'>val</span></a> <span class='hs-layout'>(</span><span class='hs-conid'>V</span> <span class='hs-varid'>f</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>({x6 : (Int) | ((papp1 d x6))} -&gt; {VV : a | ((papp2 r VV key))})
--&gt; (Vec &lt;((papp1 d x3)), \_ VV -&gt; ((papp2 r VV key))&gt; {VV : a | ((papp2 r VV key))})</span><span class='hs-conid'>V</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>(({x13 : (Int) | ((papp1 d x13))} -&gt; {VV : a | ((papp2 r VV key))})
- -&gt; (Vec &lt;((papp1 d x10)), \_ VV -&gt; ((papp2 r VV key))&gt; {VV : a | ((papp2 r VV key))}))
--&gt; ({x13 : (Int) | ((papp1 d x13))}
-    -&gt; {VV : a | ((papp2 r VV key))})
--&gt; (Vec &lt;((papp1 d x10)), \_ VV -&gt; ((papp2 r VV key))&gt; {VV : a | ((papp2 r VV key))})</span><span class='hs-varop'>$</span></a></span><span class=hs-error> </span><span class=hs-error><span class='hs-keyglyph'>\</span></span><span class=hs-error><a class=annot href="#"><span class=annottext>{VV : (Int) | ((papp1 d VV))}</span><span class='hs-varid'>k</span></a></span><span class=hs-error> </span><span class=hs-error><span class='hs-keyglyph'>-&gt;</span></span><span class=hs-error> </span><span class=hs-error><span class='hs-keyword'>if</span></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 d x3)) &amp;&amp; (x3 == k)}</span><span class='hs-varid'>k</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>x1:{x6 : (Int) | ((papp1 d x6))}
--&gt; x2:{x6 : (Int) | ((papp1 d x6))}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 == x2))}</span><span class='hs-varop'>==</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 d x3)) &amp;&amp; (x3 == key)}</span><span class='hs-varid'>key</span></a></span><span class=hs-error> </span>
-<span class=hs-linenum>242: </span>                                <span class=hs-error><span class='hs-keyword'>then</span></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{VV : a | ((papp2 r VV key)) &amp;&amp; (VV == val)}</span><span class='hs-varid'>val</span></a></span><span class=hs-error> </span><span class=hs-error>
-</span><span class=hs-linenum>243: </span>                                <span class=hs-error><span class='hs-keyword'>else</span></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>x1:{x3 : (Int) | ((papp1 d x3)) &amp;&amp; (x3 /= key)}
--&gt; {VV : a | ((papp2 r VV x1))}</span><span class='hs-varid'>f</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x3 : (Int) | ((papp1 d x3)) &amp;&amp; (x3 == key)}</span><span class='hs-varid'>key</span></a></span>
-</pre>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Array.hs" target="_blank">Demo:</a>
-Help! Can you spot and fix the errors? 
-</div>
-
-<!-- INSERT tests/pos/vecloop.lhs here AFTER FIXED -->
-
-Using the Vector API
---------------------
-
-Memoized Fibonacci
-------------------
-
-Use `Vec` API to write a *memoized* fibonacci function
-
-<br>
-
-<div class="fragment">
- Using the fibonacci table:
-<pre><span class=hs-linenum>267: </span><span class='hs-keyword'>type</span> <span class='hs-conid'>FibV</span> <span class='hs-keyglyph'>=</span>  
-<span class=hs-linenum>268: </span>     <span class='hs-conid'>Vec</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>true</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>269: </span>          <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>k</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span> <span class='hs-varop'>||</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><span class='hs-varid'>fib</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>270: </span>          <span class='hs-conid'>Int</span>                              
-</pre>
-</div>
-
-<br>
-
-<div class="fragment">
-But wait, what is `fib` ?
-</div>
-
-
-Specifying Fibonacci
---------------------
-
-`fib` is *uninterpreted* in the refinement logic  
-
-<br>
-
-
-<pre><span class=hs-linenum>289: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>measure</span> <span class='hs-varid'>fib</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-Specifying Fibonacci
---------------------
-
-We *axiomatize* the definition of `fib` in SMT ...
-
-<br>
-<pre><span class=hs-linenum>300: </span><span class='hs-definition'>predicate</span> <span class='hs-conid'>AxFib</span> <span class='hs-conid'>I</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>301: </span>  <span class='hs-layout'>(</span><span class='hs-varid'>fib</span> <span class='hs-conid'>I</span><span class='hs-layout'>)</span> <span class='hs-varop'>==</span> <span class='hs-keyword'>if</span> <span class='hs-conid'>I</span> <span class='hs-varop'>&lt;=</span> <span class='hs-num'>1</span> 
-<span class=hs-linenum>302: </span>               <span class='hs-keyword'>then</span> <span class='hs-num'>1</span> 
-<span class=hs-linenum>303: </span>               <span class='hs-keyword'>else</span> <span class='hs-varid'>fib</span><span class='hs-layout'>(</span><span class='hs-conid'>I</span><span class='hs-comment'>-</span><span class='hs-num'>1</span><span class='hs-layout'>)</span> <span class='hs-varop'>+</span> <span class='hs-varid'>fib</span><span class='hs-layout'>(</span><span class='hs-conid'>I</span><span class='hs-comment'>-</span><span class='hs-num'>2</span><span class='hs-layout'>)</span>
-</pre>
-
-Specifying Fibonacci
---------------------
-
-Finally, lift axiom into LiquidHaskell as *ghost function*
-
-<br>
-
-
-<pre><span class=hs-linenum>314: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>axiom_fib</span> <span class='hs-keyglyph'>::</span> 
-<span class=hs-linenum>315: </span>      <span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyword'>_</span><span class='hs-keyword'>|((Prop v) &lt;=&gt; (AxFib i))}</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-**Note:** Recipe for *escaping* SMT limitations
-
-1. *Prove* fact externally
-2. *Use* as ghost function call
-</div>
-
-
-Fast Fibonacci
---------------
-
-An efficient fibonacci function
-
-<br>
-
-
-<pre><span class=hs-linenum>336: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>fastFib</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-keyword'>_</span> <span class='hs-keyword'>| v = (fib n)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>337: </span><a class=annot href="#"><span class=annottext>n:(Int) -&gt; {v : (Int) | (v == (fib n))}</span><span class='hs-definition'>fastFib</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>n</span></a>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>((Vec &lt;false, \x10 VV -&gt; ((x9 == 0) || (x9 == (fib x10)))&gt; (Int)), {x13 : (Int) | (x13 == (fib n))})
--&gt; {x2 : (Int) | (x2 == (fib n))}</span><span class='hs-varid'>snd</span></a> <a class=annot href="#"><span class=annottext>(((Vec &lt;false, \x24 VV -&gt; ((x23 == 0) || (x23 == (fib x24)))&gt; (Int)), {x27 : (Int) | (x27 == (fib n))})
- -&gt; {x16 : (Int) | (x16 == (fib n))})
--&gt; ((Vec &lt;false, \x24 VV -&gt; ((x23 == 0) || (x23 == (fib x24)))&gt; (Int)), {x27 : (Int) | (x27 == (fib n))})
--&gt; {x16 : (Int) | (x16 == (fib n))}</span><span class='hs-varop'>$</span></a> <a class=annot href="#"><span class=annottext>(Vec &lt;True, \x18 VV -&gt; ((x17 == 0) || (x17 == (fib x18)))&gt; (Int))
--&gt; x2:(Int)
--&gt; ((Vec &lt;True, \x8 VV -&gt; ((x7 == 0) || (x7 == (fib x8)))&gt; (Int)), {x11 : (Int) | (x11 == (fib x2))})</span><span class='hs-varid'>fibMemo</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall &lt;rng :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool, dom :: (GHC.Types.Int)-&gt; Bool&gt;.
-(i:{x15 : (Int)&lt;dom&gt; | true}
- -&gt; {x14 : (Int)&lt;rng i&gt; | ((x14 == 0) || (x14 == (fib n))) &amp;&amp; (x14 == 0) &amp;&amp; (x14 &gt;= 0)})
--&gt; (Vec &lt;dom, rng&gt; {x14 : (Int) | ((x14 == 0) || (x14 == (fib n))) &amp;&amp; (x14 == 0) &amp;&amp; (x14 &gt;= 0)})</span><span class='hs-conid'>V</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>(Int) -&gt; {x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-keyglyph'>\</span></a><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == n)}</span><span class='hs-varid'>n</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-- `fibMemo` *takes* a table initialized with `0`
-
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-</div>
-
-
-Memoized Fibonacci 
-------------------
-
-
-<pre><span class=hs-linenum>353: </span><a class=annot href="#"><span class=annottext>(Vec &lt;True, \k10 VV -&gt; ((VV == 0) || (VV == (fib k10)))&gt; (Int))
--&gt; i:(Int)
--&gt; ((Vec &lt;True, \k10 VV -&gt; ((VV == 0) || (VV == (fib k10)))&gt; (Int)), {VV : (Int) | (VV == (fib i))})</span><span class='hs-definition'>fibMemo</span></a> <a class=annot href="#"><span class=annottext>(Vec &lt;True, \k10 VV -&gt; ((VV == 0) || (VV == (fib k10)))&gt; (Int))</span><span class='hs-varid'>t</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>i</span></a> 
-<span class=hs-linenum>354: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; x2:(Int) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt;= x2))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a>    
-<span class=hs-linenum>355: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a-&gt; b-&gt; Bool&gt;.
-x1:a
--&gt; x2:{VV : b&lt;p2 x1&gt; | true}
--&gt; {x3 : (a, b)&lt;p2&gt; | ((fst x3) == x1) &amp;&amp; ((snd x3) == x2)}</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{x2 : (Vec &lt;True, \x7 VV -&gt; ((x6 == 0) || (x6 == (fib x7)))&gt; (Int)) | (x2 == t)}</span><span class='hs-varid'>t</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>x1:(Bool)
--&gt; {x8 : (Int) | (x8 == 1) &amp;&amp; (x8 &gt; 0) &amp;&amp; (x8 &gt;= i)}
--&gt; {x8 : (Int) | ((Prop x1)) &amp;&amp; (x8 == 1) &amp;&amp; (x8 &gt; 0) &amp;&amp; (x8 &gt;= i)}</span><span class='hs-varid'>liquidAssume</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; ((fib x1) == (if (x1 &lt;= 1) then 1 else ((fib (x1 - 1)) + (fib (x1 - 2))))))}</span><span class='hs-varid'>axiom_fib</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>356: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> 
-<span class=hs-linenum>357: </span>  <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>case</span> <a class=annot href="#"><span class=annottext>forall &lt;r :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool, d :: (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x7 : (Int)&lt;d&gt; | true}
--&gt; (Vec &lt;d, \x5 VV -&gt; r x5&gt; (Int)) -&gt; {x6 : (Int)&lt;r x1&gt; | true}</span><span class='hs-varid'>get</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Vec &lt;True, \x7 VV -&gt; ((x6 == 0) || (x6 == (fib x7)))&gt; (Int)) | (x2 == t)}</span><span class='hs-varid'>t</span></a> <span class='hs-keyword'>of</span>   
-<span class=hs-linenum>358: </span>     <span class='hs-num'>0</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>let</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Vec &lt;True, \x1 VV -&gt; ((VV == 0) || (VV == (fib x1)))&gt; (Int)) | (VV == t1)}</span><span class='hs-varid'>t1</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV == n1)}</span><span class='hs-varid'>n1</span></a><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(Vec &lt;True, \x18 VV -&gt; ((x17 == 0) || (x17 == (fib x18)))&gt; (Int))
--&gt; x2:(Int)
--&gt; ((Vec &lt;True, \x8 VV -&gt; ((x7 == 0) || (x7 == (fib x8)))&gt; (Int)), {x11 : (Int) | (x11 == (fib x2))})</span><span class='hs-varid'>fibMemo</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Vec &lt;True, \x7 VV -&gt; ((x6 == 0) || (x6 == (fib x7)))&gt; (Int)) | (x2 == t)}</span><span class='hs-varid'>t</span></a>  <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>359: </span>              <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : (Vec &lt;(VV /= i), \x1 VV -&gt; ((VV == 0) || (VV == (fib x1)))&gt; (Int)) | (VV == t2)}</span><span class='hs-varid'>t2</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV == n2)}</span><span class='hs-varid'>n2</span></a><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(Vec &lt;True, \x18 VV -&gt; ((x17 == 0) || (x17 == (fib x18)))&gt; (Int))
--&gt; x2:(Int)
--&gt; ((Vec &lt;True, \x8 VV -&gt; ((x7 == 0) || (x7 == (fib x8)))&gt; (Int)), {x11 : (Int) | (x11 == (fib x2))})</span><span class='hs-varid'>fibMemo</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Vec &lt;True, \x8 VV -&gt; ((x7 == 0) || (x7 == (fib x8)))&gt; (Int)) | (x3 == t1) &amp;&amp; (x3 == t1)}</span><span class='hs-varid'>t1</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>360: </span>              <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>n</span></a>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Bool) -&gt; (Int) -&gt; {x2 : (Int) | ((Prop x1))}</span><span class='hs-varid'>liquidAssume</span></a> 
-<span class=hs-linenum>361: </span>                        <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; ((fib x1) == (if (x1 &lt;= 1) then 1 else ((fib (x1 - 1)) + (fib (x1 - 2))))))}</span><span class='hs-varid'>axiom_fib</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n1) &amp;&amp; (x3 == n1)}</span><span class='hs-varid'>n1</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n2) &amp;&amp; (x3 == n2)}</span><span class='hs-varid'>n2</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>362: </span>          <span class='hs-keyword'>in</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a-&gt; b-&gt; Bool&gt;.
-x1:a
--&gt; x2:{VV : b&lt;p2 x1&gt; | true}
--&gt; {x3 : (a, b)&lt;p2&gt; | ((fst x3) == x1) &amp;&amp; ((snd x3) == x2)}</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>forall &lt;r :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool, d :: (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x13 : (Int)&lt;d&gt; | true}
--&gt; {x12 : (Int)&lt;r x1&gt; | true}
--&gt; (Vec &lt;d &amp; (x8 /= x1), \x10 VV -&gt; r x10&gt; (Int))
--&gt; (Vec &lt;d, \x4 VV -&gt; r x4&gt; (Int))</span><span class='hs-varid'>set</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == i)}</span><span class='hs-varid'>i</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == n)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Vec &lt;(x5 /= i), \x9 VV -&gt; ((x8 == 0) || (x8 == (fib x9)))&gt; (Int)) | (x3 == t2) &amp;&amp; (x3 == t2)}</span><span class='hs-varid'>t2</span></a><span class='hs-layout'>,</span>  <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == n)}</span><span class='hs-varid'>n</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>363: </span>     <span class='hs-varid'>n</span> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>{x2 : ({x7 : (Vec &lt;True, \x12 VV -&gt; ((x11 == 0) || (x11 == (fib x12)))&gt; (Int)) | (x7 == t)}, {x16 : (Int) | (x16 == (fib i)) &amp;&amp; (x16 /= 0)})&lt;\_ VV -&gt; (x16 == (fib i)) &amp;&amp; (x16 /= 0)&gt; | ((fst x2) == t)}</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{x2 : (Vec &lt;True, \x7 VV -&gt; ((x6 == 0) || (x6 == (fib x7)))&gt; (Int)) | (x2 == t)}</span><span class='hs-varid'>t</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | ((x3 == 0) || (x3 == (fib i)))}</span><span class='hs-varid'>n</span></a><span class='hs-layout'>)</span>
-</pre>
-
-Memoized Fibonacci 
-------------------
-
-- `fibMemo` *takes* a table initialized with `0`
-- `fibMemo` *returns* a table with `fib` values upto `n`.
-
-<br>
-
-
-<pre><span class=hs-linenum>375: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>fibMemo</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>FibV</span> 
-<span class=hs-linenum>376: </span>            <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>i</span><span class='hs-conop'>:</span><span class='hs-conid'>Int</span> 
-<span class=hs-linenum>377: </span>            <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-conid'>FibV</span><span class='hs-layout'>,</span><span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span> <span class='hs-keyword'>| v = (fib i)}</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-Recap
------
-
-Created a `Vec` container 
-
-Decoupled *domain* and *range* invariants from *data*
-
-<br>
-
-<div class="fragment">
-
-Previous, special purpose program analyses 
-
-- [Gopan-Reps-Sagiv, POPL 05](link)
-- [J.-McMillan, CAV 07](link)
-- [Logozzo-Cousot-Cousot, POPL 11](link)
-- [Dillig-Dillig, POPL 12](link) 
-- ...
-
-Encoded as instance of abstract refinement types!
-</div>
-
-
-
-
diff --git a/docs/slides/plpv14/lhs/08_Recursive.lhs b/docs/slides/plpv14/lhs/08_Recursive.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/08_Recursive.lhs
+++ /dev/null
@@ -1,488 +0,0 @@
-Decouple Invariants From Data {#recursive} 
-==========================================
-
-Recursive Structures 
---------------------
-
-<div class="fragment">
-Lets see another example of decoupling...
-</div>
-
-<div class="hidden">
-\begin{code}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-
-module List (insertSort) where
-
-{-@ LIQUID "--no-termination" @-}
-
-mergeSort     :: Ord a => [a] -> [a]
-insertSort :: (Ord a) => [a] -> L a 
-slist :: L Int
-slist' :: L Int
-iGoUp, iGoDn, iDiff :: [Int]
-infixr `C`
-\end{code}
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-\begin{code}
-data L a = N 
-         | C a (L a)
-\end{code}
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define *increasing* Lists with strengthened constructors:
-
-\begin{code} <br>
-data L a where
-  N :: L a
-  C :: hd:a -> tl: L {v:a | hd <= v} -> L a
-\end{code}
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?
-
-<br>
-
-<div class="fragment">
-*Separate* types are tedious...
-</div>
-
-
-Abstract That Refinement!
--------------------------
-
-\begin{code}
-{-@ data L a <p :: a -> a -> Prop>
-      = N 
-      | C (hd :: a) (tl :: (L <p> a<p hd>)) @-}
-\end{code}
-
-<br>
-
-- <div class="fragment"> `p` is a *binary* relation between two `a` values</div>
-
-- <div class="fragment"> Definition relates `hd` with *all* the elements of `tl`</div>
-
-- <div class="fragment"> Recursive: `p` holds for *every pair* of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
-\begin{code} <br>
-x1 `C` x2 `C` x3 `C` rest :: L <p> a 
-\end{code}
-
-Example: Unfold Once
---------------------
-
-\begin{code} <br> 
-x1                 :: a
-x2 `C` x3 `C` rest :: L <p> a<p x1> 
-\end{code}
-
-Example: Unfold Twice
----------------------
-
-\begin{code} <br> 
-x1          :: a
-x2          :: a<p x1>  
-x3 `C` rest :: L <p> a<p x1 && p x2> 
-\end{code}
-
-Example: Unfold Thrice
-----------------------
-
-\begin{code} <br> 
-x1   :: a
-x2   :: a<p x1>  
-x3   :: a<p x1 && p x2>  
-rest :: L <p> a<p x1 && p x2 && p x3> 
-\end{code}
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair* ?
-
-
-Example: Increasing Lists
--------------------------
-
-*Instantiate* `p` with a *concrete* refinement
-
-<br>
-
-\begin{code}
-{-@ type IncL a = L <{\hd v -> hd <= v}> a @-}
-\end{code}
-
-<br>
-
-- <div class="fragment"> Refinement says `hd` less than each tail element `v`,</div>
-
-- <div class="fragment"> Thus, `IncL` denotes *increaing* lists. </div>
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell verifies that `slist` is indeed increasing...
-
-\begin{code}
-{-@ slist :: IncL Int @-}
-slist     = 1 `C` 6 `C` 12 `C` N
-\end{code}
-
-<br> 
-
-<div class="fragment">
-
-... and protests that `slist'` is not: 
-
-\begin{code}
-{-@ slist' :: IncL Int @-}
-slist' = 6 `C` 1 `C` 12 `C` N
-\end{code}
-</div>
-
-Insertion Sort
---------------
-
-\begin{code}
-{-@ insertSort :: (Ord a) => [a] -> IncL a @-}
-insertSort     = foldr insert N
-
-insert y N          = y `C` N
-insert y (x `C` xs) 
-  | y < x           = y `C` (x `C` xs)
-  | otherwise       = x `C` insert y xs
-\end{code}
-
-<br>
-
-(*Hover* over `insert'` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
-\begin{code} <br> 
-data [a] <p :: a -> a -> Prop>
-  = [] 
-  | (:) (h :: a) (tl :: ([a<p h>]<p>))
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Incs a = [a]<{\h v -> h <= v}> @-}
-
-{-@ iGoUp :: Incs Int @-}
-iGoUp     = [1,2,3]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-\begin{code}
-{-@ type Decs a = [a]<{\h v -> h >= v}> @-}
-
-{-@ iGoDn :: Decs Int @-}
-iGoDn     = [3,2,1]
-\end{code}
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-\begin{code}
-{-@ type Difs a = [a]<{\h v -> h /= v}> @-}
-
-{-@ iDiff :: Difs Int @-}
-iDiff     = [1,3,2]
-\end{code}
-
-Checking GHC Lists
-------------------
-
-Now we can check all the usual list sorting algorithms 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-{-@ mergeSort  :: (Ord a) => [a] -> Incs a @-}
-mergeSort []   = []
-mergeSort [x]  = [x]
-mergeSort xs   = merge xs1' xs2' 
-  where 
-   (xs1, xs2)  = split xs
-   xs1'        = mergeSort xs1
-   xs2'        = mergeSort xs2
-\end{code}
-
-Example: `mergeSort` [1/2]
---------------------------
-
-\begin{code}
-split (x:y:zs) = (x:xs, y:ys) 
-  where 
-    (xs, ys)   = split zs
-split xs       = (xs, [])
-
-merge xs []    = xs
-merge [] ys    = ys
-merge (x:xs) (y:ys) 
-  | x <= y     = x : merge xs (y:ys)
-  | otherwise  = y : merge (x:xs) ys
-\end{code}
-
-Example: `Data.List.sort` 
--------------------------
-
-GHC's "official" list sorting routine
-
-Juggling lists of increasing & decreasing lists
-
-
-Ex: `Data.List.sort` [1/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-{-@ sort :: (Ord a) => [a] -> Incs a  @-}
-sort = mergeAll . sequences
-
-sequences (a:b:xs)
-  | a `compare` b == GT = descending b [a]  xs
-  | otherwise           = ascending  b (a:) xs
-sequences [x]           = [[x]]
-sequences []            = [[]]
-\end{code}
-
-Ex: `Data.List.sort` [2/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-descending a as (b:bs)
-  | a `compare` b == GT 
-  = descending b (a:as) bs
-descending a as bs      
-  = (a:as): sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [3/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-
-\begin{code}
-ascending a as (b:bs)
-  | a `compare` b /= GT 
-  = ascending b (\ys -> as (a:ys)) bs
-ascending a as bs      
-  = as [a]: sequences bs
-\end{code}
-
-Ex: `Data.List.sort` [4/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-\begin{code}
-mergeAll [x]        = x
-mergeAll xs         = mergeAll (mergePairs xs)
-
-mergePairs (a:b:xs) = merge a b: mergePairs xs
-mergePairs [x]      = [x]
-mergePairs []       = []
-\end{code}
-
-Phew!
------
-
-Lets see one last example...
-
-
-Example: Binary Trees
----------------------
-
-... `Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, in `Data.Map` as a binary tree:
-
-<br>
-
-\begin{code}
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-\end{code}
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-\begin{code}
-{-@ data Map k a < l :: k -> k -> Prop
-                 , r :: k -> k -> Prop >
-    = Tip
-    | Bin (sz :: Size) (key :: k) (val :: a)
-          (left  :: Map <l,r> (k<l key>) a)
-          (right :: Map <l,r> (k<r key>) a) @-}
-\end{code}
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-\begin{code}
-{-@ type BST k a = 
-      Map <{\r v -> v < r }, 
-           {\r v -> v > r }> 
-          k a                   @-}
-\end{code}
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-\begin{code}
-{-@ type MinHeap k a = 
-      Map <{\r v -> r <= v}, 
-           {\r v -> r <= v}> 
-           k a               @-}
-\end{code}
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-\begin{code}
-{-@ type MaxHeap k a = 
-      Map <{\r v -> r >= v}, 
-           {\r v -> r >= v}> 
-           k a               @-}
-\end{code}
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a>Try online!
-</div>
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from *functions*
-
-+ `max`
-+ `loop`
-+ `foldr`
-
-</div>
-
-<div class="fragment">
-Decouple invariants from *data*
-
-+ `Vector`
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. <div class="fragment">Er, what of *lazy evaluation*?</div>
diff --git a/docs/slides/plpv14/lhs/08_Recursive.lhs.markdown b/docs/slides/plpv14/lhs/08_Recursive.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/08_Recursive.lhs.markdown
+++ /dev/null
@@ -1,671 +0,0 @@
-Decouple Invariants From Data {#recursive} 
-==========================================
-
-Recursive Structures 
---------------------
-
-<div class="fragment">
-Lets see another example of decoupling...
-</div>
-
-<div class="hidden">
-
-<pre><span class=hs-linenum>13: </span><span class='hs-comment'>{-# LANGUAGE NoMonomorphismRestriction #-}</span>
-<span class=hs-linenum>14: </span>
-<span class=hs-linenum>15: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>List</span> <span class='hs-layout'>(</span><span class='hs-varid'>insertSort</span><span class='hs-layout'>)</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>16: </span>
-<span class=hs-linenum>17: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>18: </span>
-<span class=hs-linenum>19: </span><span class='hs-definition'>mergeSort</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>20: </span><span class='hs-definition'>insertSort</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> 
-<span class=hs-linenum>21: </span><span class='hs-definition'>slist</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>22: </span><span class='hs-definition'>slist'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>23: </span><span class='hs-definition'>iGoUp</span><span class='hs-layout'>,</span> <span class='hs-varid'>iGoDn</span><span class='hs-layout'>,</span> <span class='hs-varid'>iDiff</span> <span class='hs-keyglyph'>::</span> <span class='hs-keyglyph'>[</span><span class='hs-conid'>Int</span><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>24: </span><span class='hs-keyword'>infixr</span> <span class='hs-varop'>`C`</span>
-</pre>
-</div>
-
-Decouple Invariants From Recursive Data
-=======================================
-
-Recall: Lists
--------------
-
-
-<pre><span class=hs-linenum>35: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> 
-<span class=hs-linenum>36: </span>         <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-</pre>
-
-
-Recall: Refined Constructors 
-----------------------------
-
-Define *increasing* Lists with strengthened constructors:
-
- <br>
-<pre><span class=hs-linenum>46: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>47: </span>  <span class='hs-conid'>N</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>48: </span>  <span class='hs-conid'>C</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>hd</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>tl</span><span class='hs-conop'>:</span> <span class='hs-conid'>L</span> <span class='hs-layout'>{</span><span class='hs-varid'>v</span><span class='hs-conop'>:</span><span class='hs-varid'>a</span> <span class='hs-keyglyph'>|</span> <span class='hs-varid'>hd</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-</pre>
-
-Problem: Decreasing Lists?
---------------------------
-
-What if we need *both* [increasing and decreasing lists](http://web.cecs.pdx.edu/~sheard/Code/QSort.html)?
-
-<br>
-
-<div class="fragment">
-*Separate* types are tedious...
-</div>
-
-
-Abstract That Refinement!
--------------------------
-
-
-<pre><span class=hs-linenum>67: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>68: </span>      <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> 
-<span class=hs-linenum>69: </span>      <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-layout'>(</span><span class='hs-varid'>hd</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>tl</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>hd</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-- <div class="fragment"> `p` is a *binary* relation between two `a` values</div>
-
-- <div class="fragment"> Definition relates `hd` with *all* the elements of `tl`</div>
-
-- <div class="fragment"> Recursive: `p` holds for *every pair* of elements!</div>
-
-Example
--------
-
-Consider a list with *three* or more elements 
-
- <br>
-<pre><span class=hs-linenum>86: </span><span class='hs-definition'>x1</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>x2</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>x3</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>rest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span> 
-</pre>
-
-Example: Unfold Once
---------------------
-
- <br> 
-<pre><span class=hs-linenum>93: </span><span class='hs-definition'>x1</span>                 <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>94: </span><span class='hs-definition'>x2</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>x3</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>rest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span><span class='hs-varop'>&gt;</span> 
-</pre>
-
-Example: Unfold Twice
----------------------
-
- <br> 
-<pre><span class=hs-linenum>101: </span><span class='hs-definition'>x1</span>          <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>102: </span><span class='hs-definition'>x2</span>          <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span><span class='hs-varop'>&gt;</span>  
-<span class=hs-linenum>103: </span><span class='hs-definition'>x3</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>rest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>p</span> <span class='hs-varid'>x2</span><span class='hs-varop'>&gt;</span> 
-</pre>
-
-Example: Unfold Thrice
-----------------------
-
- <br> 
-<pre><span class=hs-linenum>110: </span><span class='hs-definition'>x1</span>   <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span>
-<span class=hs-linenum>111: </span><span class='hs-definition'>x2</span>   <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span><span class='hs-varop'>&gt;</span>  
-<span class=hs-linenum>112: </span><span class='hs-definition'>x3</span>   <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>p</span> <span class='hs-varid'>x2</span><span class='hs-varop'>&gt;</span>  
-<span class=hs-linenum>113: </span><span class='hs-definition'>rest</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>x1</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>p</span> <span class='hs-varid'>x2</span> <span class='hs-varop'>&amp;&amp;</span> <span class='hs-varid'>p</span> <span class='hs-varid'>x3</span><span class='hs-varop'>&gt;</span> 
-</pre>
-
-<br>
-
-<div class="fragment">
-Note how `p` holds between **every pair** of elements in the list. 
-</div>
-
-A Concrete Example
-------------------
-
-That was a rather *abstract*!
-
-<br>
-
-How can we *use* fact that `p` holds between *every pair* ?
-
-
-Example: Increasing Lists
--------------------------
-
-*Instantiate* `p` with a *concrete* refinement
-
-<br>
-
-
-<pre><span class=hs-linenum>140: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>IncL</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>L</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>hd</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>hd</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-- <div class="fragment"> Refinement says `hd` less than each tail element `v`,</div>
-
-- <div class="fragment"> Thus, `IncL` denotes *increaing* lists. </div>
-
-Example: Increasing Lists
--------------------------
-
-LiquidHaskell verifies that `slist` is indeed increasing...
-
-
-<pre><span class=hs-linenum>155: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>slist</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IncL</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>156: </span><a class=annot href="#"><span class=annottext>(L &lt;\hd2 VV -&gt; (hd2 &lt;= VV)&gt; (Int))</span><span class='hs-definition'>slist</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (6  :  int))}</span><span class='hs-num'>6</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (12  :  int))}</span><span class='hs-num'>12</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>(L &lt;\_ VV -&gt; false&gt; {x3 : (Int) | false})</span><span class='hs-conid'>N</span></a>
-</pre>
-
-<br> 
-
-<div class="fragment">
-
-... and protests that `slist'` is not: 
-
-
-<pre><span class=hs-linenum>166: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>slist'</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>IncL</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>167: </span><a class=annot href="#"><span class=annottext>(L &lt;\hd2 VV -&gt; (hd2 &lt;= VV)&gt; (Int))</span><span class='hs-definition'>slist'</span></a> <span class='hs-keyglyph'>=</span> <span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (6  :  int))}</span><span class='hs-num'>6</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (12  :  int))}</span><span class='hs-num'>12</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>forall &lt;p :: (GHC.Types.Int)-&gt; (GHC.Types.Int)-&gt; Bool&gt;.
-x1:{x10 : (Int) | (x10 &gt; 0)}
--&gt; (L &lt;p&gt; {x10 : (Int)&lt;p x1&gt; | (x10 &gt; 0)})
--&gt; (L &lt;p&gt; {x10 : (Int) | (x10 &gt; 0)})</span><span class='hs-varop'>`C`</span></a></span><span class=hs-error> </span><span class=hs-error><a class=annot href="#"><span class=annottext>(L &lt;\_ VV -&gt; false&gt; {x3 : (Int) | false})</span><span class='hs-conid'>N</span></a></span>
-</pre>
-</div>
-
-Insertion Sort
---------------
-
-
-<pre><span class=hs-linenum>175: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>insertSort</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>IncL</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>176: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; [a] -&gt; (L &lt;\hd2 VV -&gt; (hd2 &lt;= VV)&gt; a)</span><span class='hs-definition'>insertSort</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>(a
- -&gt; (L &lt;\x11 VV -&gt; (VV &gt;= x11)&gt; a)
- -&gt; (L &lt;\x11 VV -&gt; (VV &gt;= x11)&gt; a))
--&gt; (L &lt;\x11 VV -&gt; (VV &gt;= x11)&gt; a)
--&gt; [a]
--&gt; (L &lt;\x11 VV -&gt; (VV &gt;= x11)&gt; a)</span><span class='hs-varid'>foldr</span></a> <a class=annot href="#"><span class=annottext>a -&gt; (L &lt;\x4 VV -&gt; (VV &gt;= x4)&gt; a) -&gt; (L &lt;\x2 VV -&gt; (VV &gt;= x2)&gt; a)</span><span class='hs-varid'>insert</span></a> <a class=annot href="#"><span class=annottext>(L &lt;\_ VV -&gt; false&gt; {VV : a | false})</span><span class='hs-conid'>N</span></a>
-<span class=hs-linenum>177: </span>
-<span class=hs-linenum>178: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a -&gt; (L &lt;\x2 VV -&gt; (VV &gt;= x2)&gt; a) -&gt; (L &lt;\x1 VV -&gt; (VV &gt;= x1)&gt; a)</span><span class='hs-definition'>insert</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>y</span></a> <span class='hs-conid'>N</span>          <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV == y)}
--&gt; (L &lt;p&gt; {VV : a&lt;p x1&gt; | (VV == y)})
--&gt; (L &lt;p&gt; {VV : a | (VV == y)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>(L &lt;\_ VV -&gt; false&gt; {VV : a | false})</span><span class='hs-conid'>N</span></a>
-<span class=hs-linenum>179: </span><span class='hs-definition'>insert</span> <span class='hs-varid'>y</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>180: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>x1:a -&gt; x2:a -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a>           <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt;= y)}
--&gt; (L &lt;p&gt; {VV : a&lt;p x1&gt; | (VV &gt;= y)})
--&gt; (L &lt;p&gt; {VV : a | (VV &gt;= y)})</span><span class='hs-varop'>`C`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt; y) &amp;&amp; (VV &gt;= x)}
--&gt; (L &lt;p&gt; {VV : a&lt;p x1&gt; | (VV &gt; y) &amp;&amp; (VV &gt;= x)})
--&gt; (L &lt;p&gt; {VV : a | (VV &gt; y) &amp;&amp; (VV &gt;= x)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L &lt;\x3 VV -&gt; (VV &gt;= x3)&gt; {VV : a | (VV &gt;= x)}) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>181: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt;= x)}
--&gt; (L &lt;p&gt; {VV : a&lt;p x1&gt; | (VV &gt;= x)})
--&gt; (L &lt;p&gt; {VV : a | (VV &gt;= x)})</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a -&gt; (L &lt;\x2 VV -&gt; (VV &gt;= x2)&gt; a) -&gt; (L &lt;\x1 VV -&gt; (VV &gt;= x1)&gt; a)</span><span class='hs-varid'>insert</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>{x2 : (L &lt;\x3 VV -&gt; (VV &gt;= x3)&gt; {VV : a | (VV &gt;= x)}) | (x2 == xs)}</span><span class='hs-varid'>xs</span></a>
-</pre>
-
-<br>
-
-(*Hover* over `insert'` to see inferred type.)
-
-Checking GHC Lists
-------------------
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Order.hs" target= "_blank">Demo:</a> 
-Above applies to GHC's List definition:
-
- <br> 
-<pre><span class=hs-linenum>195: </span><span class='hs-keyword'>data</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span><span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>196: </span>  <span class='hs-keyglyph'>=</span> <span class='hs-conid'>[]</span> 
-<span class=hs-linenum>197: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-layout'>(</span><span class='hs-conop'>:</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>h</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>tl</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span> <span class='hs-varid'>h</span><span class='hs-varop'>&gt;</span><span class='hs-keyglyph'>]</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>p</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span>
-</pre>
-
-Checking GHC Lists
-------------------
-
-Increasing Lists
-
-<br>
-
-
-<pre><span class=hs-linenum>208: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Incs</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>h</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>h</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>209: </span>
-<span class=hs-linenum>210: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>iGoUp</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Incs</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>211: </span><a class=annot href="#"><span class=annottext>[(Int)]&lt;\h6 VV -&gt; (h6 &lt;= VV)&gt;</span><span class='hs-definition'>iGoUp</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : [{x14 : (Int) | (x14 &gt; 0)}]&lt;\x11 VV -&gt; (x11 /= x12) &amp;&amp; (x12 &gt; 0) &amp;&amp; (x12 &gt; x11) &amp;&amp; (x11 &lt;= x12)&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a><span class='hs-keyglyph'>]</span>
-</pre>
-
-Checking GHC Lists
-------------------
-
-Decreasing Lists
-
-<br>
-
-
-<pre><span class=hs-linenum>222: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Decs</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>h</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>h</span> <span class='hs-varop'>&gt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>223: </span>
-<span class=hs-linenum>224: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>iGoDn</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Decs</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>225: </span><a class=annot href="#"><span class=annottext>[(Int)]&lt;\h8 VV -&gt; (h8 &gt;= VV)&gt;</span><span class='hs-definition'>iGoDn</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : [{x15 : (Int) | (x15 &gt; 0)}]&lt;\x13 VV -&gt; (x12 == 1) &amp;&amp; (x13 /= x12) &amp;&amp; (x12 &gt; 0) &amp;&amp; (x13 &gt;= x12) &amp;&amp; (x12 &lt; x13)&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-keyglyph'>]</span>
-</pre>
-
-
-Checking GHC Lists
-------------------
-
-Duplicate-free Lists
-
-<br>
-
-
-<pre><span class=hs-linenum>237: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>Difs</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span><span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>h</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>h</span> <span class='hs-varop'>/=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>238: </span>
-<span class=hs-linenum>239: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>iDiff</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Difs</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>240: </span><a class=annot href="#"><span class=annottext>[(Int)]&lt;\h10 VV -&gt; (h10 /= VV)&gt;</span><span class='hs-definition'>iDiff</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : [{x14 : (Int) | (x14 &gt; 0)}]&lt;\x12 VV -&gt; (x12 /= x11) &amp;&amp; (x11 &gt; 0) &amp;&amp; (x12 &gt;= x11) &amp;&amp; (x11 &lt; x12)&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (3  :  int))}</span><span class='hs-num'>3</span></a><span class='hs-layout'>,</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a><span class='hs-keyglyph'>]</span>
-</pre>
-
-Checking GHC Lists
-------------------
-
-Now we can check all the usual list sorting algorithms 
-
-Example: `mergeSort` [1/2]
---------------------------
-
-
-<pre><span class=hs-linenum>252: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>mergeSort</span>  <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Incs</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>253: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; [a] -&gt; [a]&lt;\h6 VV -&gt; (h6 &lt;= VV)&gt;</span><span class='hs-definition'>mergeSort</span></a> <span class='hs-conid'>[]</span>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-{x4 : [{VV : a | false}]&lt;p&gt; | (((null x4)) &lt;=&gt; true) &amp;&amp; ((len x4) == 0) &amp;&amp; ((sumLens x4) == 0)}</span><span class='hs-conid'>[]</span></a>
-<span class=hs-linenum>254: </span><span class='hs-definition'>mergeSort</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x6 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>255: </span><span class='hs-definition'>mergeSort</span> <span class='hs-varid'>xs</span>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x10 : [a]&lt;\x11 VV -&gt; (VV &gt;= x11)&gt; | ((len x10) &gt;= 0)}
--&gt; x2:{x7 : [a]&lt;\x8 VV -&gt; (VV &gt;= x8)&gt; | ((len x7) &gt;= 0)}
--&gt; {x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | ((len x4) &gt;= 0) &amp;&amp; ((len x4) &gt;= (len x1)) &amp;&amp; ((len x4) &gt;= (len x2))}</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | (x4 == xs1') &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs1'</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | (x4 == xs2') &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs2'</span></a> 
-<span class=hs-linenum>256: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>257: </span>   <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : [a] | (VV == xs1) &amp;&amp; ((len VV) == (len xs1)) &amp;&amp; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &gt;= (len xs2))}</span><span class='hs-varid'>xs1</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV == xs2) &amp;&amp; ((len VV) == (len xs2)) &amp;&amp; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len xs1)) &amp;&amp; ((len VV) &lt;= (len xs1))}</span><span class='hs-varid'>xs2</span></a><span class='hs-layout'>)</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x14 : [a] | ((len x14) &gt; 0)}
--&gt; ({x9 : [a] | ((len x9) &gt;= 0) &amp;&amp; ((len x9) &lt;= (len x1))}, {x12 : [a] | ((len x12) &gt;= 0) &amp;&amp; ((len x12) &lt;= (len x1))})&lt;\x5 VV -&gt; ((len x6) &gt;= 0) &amp;&amp; ((len x6) &lt;= (len x5)) &amp;&amp; ((len x6) &lt;= (len x1))&gt;</span><span class='hs-varid'>split</span></a> <a class=annot href="#"><span class=annottext>{x3 : [a] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>258: </span>   <a class=annot href="#"><span class=annottext>[a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt;</span><span class='hs-varid'>xs1'</span></a>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>[a] -&gt; [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt;</span><span class='hs-varid'>mergeSort</span></a> <a class=annot href="#"><span class=annottext>{x7 : [a] | (x7 == xs1) &amp;&amp; (x7 == xs1) &amp;&amp; ((len x7) == (len xs1)) &amp;&amp; ((len x7) &gt;= 0) &amp;&amp; ((len x7) &gt;= (len xs2)) &amp;&amp; ((sumLens x7) &gt;= 0)}</span><span class='hs-varid'>xs1</span></a>
-<span class=hs-linenum>259: </span>   <a class=annot href="#"><span class=annottext>[a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt;</span><span class='hs-varid'>xs2'</span></a>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>[a] -&gt; [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt;</span><span class='hs-varid'>mergeSort</span></a> <a class=annot href="#"><span class=annottext>{x8 : [a] | (x8 == xs2) &amp;&amp; (x8 == xs2) &amp;&amp; ((len x8) == (len xs2)) &amp;&amp; ((len x8) &gt;= 0) &amp;&amp; ((sumLens x8) &gt;= 0) &amp;&amp; ((len x8) &lt;= (len xs1)) &amp;&amp; ((len x8) &lt;= (len xs1))}</span><span class='hs-varid'>xs2</span></a>
-</pre>
-
-Example: `mergeSort` [1/2]
---------------------------
-
-
-<pre><span class=hs-linenum>266: </span><a class=annot href="#"><span class=annottext>forall a.
-x1:{VV : [a] | ((len VV) &gt;= 0)}
--&gt; ({VV : [a] | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))}, {VV : [a] | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))})&lt;\x1 VV -&gt; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1)) &amp;&amp; ((len VV) &lt;= (len x1))&gt;</span><span class='hs-definition'>split</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-varid'>zs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a-&gt; b-&gt; Bool&gt;.
-x1:a
--&gt; x2:{VV : b&lt;p2 x1&gt; | true}
--&gt; {x3 : (a, b)&lt;p2&gt; | ((fst x3) == x1) &amp;&amp; ((snd x3) == x2)}</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:a
--&gt; x2:[{VV : a&lt;p x1&gt; | true}]&lt;p&gt;
--&gt; {x4 : [a]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x8 : [a] | (x8 == xs) &amp;&amp; (x8 == xs) &amp;&amp; ((len x8) == (len xs)) &amp;&amp; ((len x8) &gt;= 0) &amp;&amp; ((len x8) &gt;= (len ys)) &amp;&amp; ((sumLens x8) &gt;= 0) &amp;&amp; ((len x8) &lt;= (len zs))}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:a
--&gt; x2:[{VV : a&lt;p x1&gt; | true}]&lt;p&gt;
--&gt; {x4 : [a]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x9 : [a] | (x9 == ys) &amp;&amp; (x9 == ys) &amp;&amp; ((len x9) == (len ys)) &amp;&amp; ((len x9) &gt;= 0) &amp;&amp; ((sumLens x9) &gt;= 0) &amp;&amp; ((len x9) &lt;= (len xs)) &amp;&amp; ((len x9) &lt;= (len xs)) &amp;&amp; ((len x9) &lt;= (len zs))}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span> 
-<span class=hs-linenum>267: </span>  <span class='hs-keyword'>where</span> 
-<span class=hs-linenum>268: </span>    <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : [a] | (VV == xs) &amp;&amp; ((len VV) == (len xs)) &amp;&amp; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &gt;= (len ys)) &amp;&amp; ((len VV) &lt;= (len zs))}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{VV : [a] | (VV == ys) &amp;&amp; ((len VV) == (len ys)) &amp;&amp; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len xs)) &amp;&amp; ((len VV) &lt;= (len xs)) &amp;&amp; ((len VV) &lt;= (len zs))}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span>   <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-x1:{VV : [a] | ((len VV) &gt;= 0)}
--&gt; ({VV : [a] | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))}, {VV : [a] | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))})&lt;\x1 VV -&gt; ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1)) &amp;&amp; ((len VV) &lt;= (len x1))&gt;</span><span class='hs-varid'>split</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == zs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>zs</span></a>
-<span class=hs-linenum>269: </span><span class='hs-definition'>split</span> <span class='hs-varid'>xs</span>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a b &lt;p2 :: a-&gt; b-&gt; Bool&gt;.
-x1:a
--&gt; x2:{VV : b&lt;p2 x1&gt; | true}
--&gt; {x3 : (a, b)&lt;p2&gt; | ((fst x3) == x1) &amp;&amp; ((snd x3) == x2)}</span><span class='hs-layout'>(</span></a><a class=annot href="#"><span class=annottext>{x3 : [a] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>,</span> <a class=annot href="#"><span class=annottext>{x6 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-conid'>[]</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>270: </span>
-<span class=hs-linenum>271: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-xs:{VV : [a]&lt;\x3 VV -&gt; (VV &gt;= x3)&gt; | ((len VV) &gt;= 0)}
--&gt; x1:{VV : [a]&lt;\x2 VV -&gt; (VV &gt;= x2)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &gt;= (len x1)) &amp;&amp; ((len VV) &gt;= (len xs))}</span><span class='hs-definition'>merge</span></a> <a class=annot href="#"><span class=annottext>{VV : [a]&lt;\x1 VV -&gt; (VV &gt;= x1)&gt; | ((len VV) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <span class='hs-conid'>[]</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>272: </span><span class='hs-definition'>merge</span> <span class='hs-conid'>[]</span> <span class='hs-varid'>ys</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x3 : [a]&lt;\x4 VV -&gt; (VV &gt;= x4)&gt; | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-<span class=hs-linenum>273: </span><span class='hs-definition'>merge</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>y</span><span class='hs-conop'>:</span><span class='hs-varid'>ys</span><span class='hs-layout'>)</span> 
-<span class=hs-linenum>274: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:a -&gt; x2:a -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt;= x2))}</span><span class='hs-varop'>&lt;=</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (x &lt;= VV)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (x &lt;= VV)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (x &lt;= VV)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-xs:{VV : [a]&lt;\x3 VV -&gt; (VV &gt;= x3)&gt; | ((len VV) &gt;= 0)}
--&gt; x1:{VV : [a]&lt;\x2 VV -&gt; (VV &gt;= x2)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &gt;= (len x1)) &amp;&amp; ((len VV) &gt;= (len xs))}</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV &gt;= x)}]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (x &lt;= VV) &amp;&amp; (y &lt;= VV)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (x &lt;= VV) &amp;&amp; (y &lt;= VV)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (x &lt;= VV) &amp;&amp; (y &lt;= VV)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV &gt;= y)}]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == ys) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>275: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt;= y)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (VV &gt;= y)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (VV &gt;= y)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-xs:{VV : [a]&lt;\x3 VV -&gt; (VV &gt;= x3)&gt; | ((len VV) &gt;= 0)}
--&gt; x1:{VV : [a]&lt;\x2 VV -&gt; (VV &gt;= x2)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &gt;= (len x1)) &amp;&amp; ((len VV) &gt;= (len xs))}</span><span class='hs-varid'>merge</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt; y)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (VV &gt; y)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (VV &gt; y)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV &gt;= x)}]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV &gt;= y)}]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == ys) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>ys</span></a>
-</pre>
-
-Example: `Data.List.sort` 
--------------------------
-
-GHC's "official" list sorting routine
-
-Juggling lists of increasing & decreasing lists
-
-
-Ex: `Data.List.sort` [1/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-
-<pre><span class=hs-linenum>294: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>sort</span> <span class='hs-keyglyph'>::</span> <span class='hs-layout'>(</span><span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>a</span><span class='hs-keyglyph'>]</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Incs</span> <span class='hs-varid'>a</span>  <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>295: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; [a] -&gt; [a]&lt;\h6 VV -&gt; (h6 &lt;= VV)&gt;</span><span class='hs-definition'>sort</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x5 : [{x9 : [a]&lt;\x10 VV -&gt; (x10 &lt;= VV)&gt; | ((len x9) &gt;= 0)}]&lt;\_ VV -&gt; ((len x7) &gt;= 0)&gt; | ((len x5) &gt; 0)}
--&gt; {x2 : [a]&lt;\x3 VV -&gt; (x3 &lt;= VV)&gt; | ((len x2) &gt;= 0)}</span><span class='hs-varid'>mergeAll</span></a> <a class=annot href="#"><span class=annottext>forall &lt;q :: [a]-&gt; [[a]]-&gt; Bool, p :: [[a]]-&gt; [a]-&gt; Bool&gt;.
-(x:{x26 : [{x30 : [a]&lt;\x31 VV -&gt; (x31 &lt;= VV)&gt; | ((len x30) &gt;= 0)}]&lt;\_ VV -&gt; ((len x28) &gt;= 0)&gt; | ((len x26) &gt; 0)}
- -&gt; {x23 : [a]&lt;\x24 VV -&gt; (x24 &lt;= VV)&gt;&lt;p x&gt; | ((len x23) &gt;= 0)})
--&gt; (y:[a]
-    -&gt; {x26 : [{x30 : [a]&lt;\x31 VV -&gt; (x31 &lt;= VV)&gt; | ((len x30) &gt;= 0)}]&lt;\_ VV -&gt; ((len x28) &gt;= 0)&gt;&lt;q y&gt; | ((len x26) &gt; 0)})
--&gt; x3:[a]
--&gt; exists [z:{x26 : [{x30 : [a]&lt;\x31 VV -&gt; (x31 &lt;= VV)&gt; | ((len x30) &gt;= 0)}]&lt;\_ VV -&gt; ((len x28) &gt;= 0)&gt;&lt;q x3&gt; | ((len x26) &gt; 0)}].{x23 : [a]&lt;\x24 VV -&gt; (x24 &lt;= VV)&gt;&lt;p z&gt; | ((len x23) &gt;= 0)}</span><span class='hs-varop'>.</span></a> <a class=annot href="#"><span class=annottext>[a]
--&gt; {x2 : [{x6 : [a]&lt;\x7 VV -&gt; (x7 &lt;= VV)&gt; | ((len x6) &gt;= 0)}]&lt;\_ VV -&gt; ((len x4) &gt;= 0)&gt; | ((len x2) &gt; 0)}</span><span class='hs-varid'>sequences</span></a>
-<span class=hs-linenum>296: </span>
-<span class=hs-linenum>297: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-[a]
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-definition'>sequences</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>a</span><span class='hs-conop'>:</span><span class='hs-varid'>b</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>298: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:a
--&gt; x2:a
--&gt; {x4 : (Ordering) | ((x4 == GHC.Types.EQ) &lt;=&gt; (x1 == x2)) &amp;&amp; ((x4 == GHC.Types.GT) &lt;=&gt; (x1 &gt; x2)) &amp;&amp; ((x4 == GHC.Types.LT) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>`compare`</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:(Ordering)
--&gt; x2:(Ordering) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 == x2))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Ordering) | (x3 == GHC.Types.GT) &amp;&amp; ((cmp x3) == GHC.Types.GT)}</span><span class='hs-conid'>GT</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; {VV : [{VV : a | (VV &gt; a)}]&lt;\x2 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x2)&gt; | ((len VV) &gt; 0)}
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>descending</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV == a) &amp;&amp; (VV &gt; b)}]&lt;\_ VV -&gt; false&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><span class='hs-keyglyph'>]</span>  <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>299: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span>           <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; (x1:{VV : [{VV : a | (VV &gt;= a)}]&lt;\x3 VV -&gt; (a &lt;= VV) &amp;&amp; (x3 &lt;= VV)&gt; | ((len VV) &gt; 0)}
-    -&gt; {VV : [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt; | (VV /= x1) &amp;&amp; ((len VV) &gt; 0) &amp;&amp; ((len VV) &gt; (len x1))})
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>ascending</span></a>  <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (a &lt;= VV)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (a &lt;= VV)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (a &lt;= VV)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>300: </span><span class='hs-definition'>sequences</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span>           <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x6 : [{x8 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV == a)}]&lt;\_ VV -&gt; false&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>x</span></a><span class='hs-keyglyph'>]</span><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>301: </span><span class='hs-definition'>sequences</span> <span class='hs-conid'>[]</span>            <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x6 : [{x8 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x6 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-conid'>[]</span></a><span class='hs-keyglyph'>]</span>
-</pre>
-
-Ex: `Data.List.sort` [2/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-
-<pre><span class=hs-linenum>312: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; {VV : [{VV : a | (VV &gt; a)}]&lt;\x2 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x2)&gt; | ((len VV) &gt; 0)}
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-definition'>descending</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>{VV : [{VV : a | (VV &gt; a)}]&lt;\x1 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x1)&gt; | ((len VV) &gt; 0)}</span><span class='hs-keyword'>as</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>b</span><span class='hs-conop'>:</span><span class='hs-varid'>bs</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>313: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:a
--&gt; x2:a
--&gt; {x4 : (Ordering) | ((x4 == GHC.Types.EQ) &lt;=&gt; (x1 == x2)) &amp;&amp; ((x4 == GHC.Types.GT) &lt;=&gt; (x1 &gt; x2)) &amp;&amp; ((x4 == GHC.Types.LT) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>`compare`</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:(Ordering)
--&gt; x2:(Ordering) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 == x2))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Ordering) | (x3 == GHC.Types.GT) &amp;&amp; ((cmp x3) == GHC.Types.GT)}</span><span class='hs-conid'>GT</span></a> 
-<span class=hs-linenum>314: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; {VV : [{VV : a | (VV &gt; a)}]&lt;\x2 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x2)&gt; | ((len VV) &gt; 0)}
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>descending</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt; b)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (VV &gt; b)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (VV &gt; b)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x5 : [{VV : a | (VV &gt; a)}]&lt;\x6 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x6)&gt; | (x5 == as) &amp;&amp; ((len x5) &gt; 0) &amp;&amp; ((len x5) &gt;= 0) &amp;&amp; ((sumLens x5) &gt;= 0)}</span><span class='hs-keyword'>as</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == bs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>bs</span></a>
-<span class=hs-linenum>315: </span><span class='hs-definition'>descending</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>as</span> <span class='hs-varid'>bs</span>      
-<span class=hs-linenum>316: </span>  <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (a &lt;= VV)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (a &lt;= VV)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (a &lt;= VV)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x5 : [{VV : a | (VV &gt; a)}]&lt;\x6 VV -&gt; (VV &gt; a) &amp;&amp; (VV &gt; x6)&gt; | (x5 == as) &amp;&amp; ((len x5) &gt; 0) &amp;&amp; ((len x5) &gt;= 0) &amp;&amp; ((sumLens x5) &gt;= 0)}</span><span class='hs-keyword'>as</span></a><span class='hs-layout'>)</span><a class=annot href="#"><span class=annottext>forall &lt;p :: [a]-&gt; [a]-&gt; Bool&gt;.
-x1:{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt; | ((len x15) &gt;= 0)}
--&gt; x2:[{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt;&lt;p x1&gt; | ((len x15) &gt;= 0)}]&lt;p&gt;
--&gt; {x4 : [{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt; | ((len x15) &gt;= 0)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-[a]
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>sequences</span></a> <a class=annot href="#"><span class=annottext>{x3 : [a] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>bs</span></a>
-</pre>
-
-Ex: `Data.List.sort` [3/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-
-
-<pre><span class=hs-linenum>328: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; (x1:{VV : [{VV : a | (VV &gt;= a)}]&lt;\x3 VV -&gt; (a &lt;= VV) &amp;&amp; (x3 &lt;= VV)&gt; | ((len VV) &gt; 0)}
-    -&gt; {VV : [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt; | (VV /= x1) &amp;&amp; ((len VV) &gt; 0) &amp;&amp; ((len VV) &gt; (len x1))})
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-definition'>ascending</span></a> <a class=annot href="#"><span class=annottext>a</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:{VV : [{VV : a | (VV &gt;= a)}]&lt;\x2 VV -&gt; (a &lt;= VV) &amp;&amp; (x2 &lt;= VV)&gt; | ((len VV) &gt; 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | (VV /= x1) &amp;&amp; ((len VV) &gt; 0) &amp;&amp; ((len VV) &gt; (len x1))}</span><span class='hs-keyword'>as</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>b</span><span class='hs-conop'>:</span><span class='hs-varid'>bs</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>329: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:a
--&gt; x2:a
--&gt; {x4 : (Ordering) | ((x4 == GHC.Types.EQ) &lt;=&gt; (x1 == x2)) &amp;&amp; ((x4 == GHC.Types.GT) &lt;=&gt; (x1 &gt; x2)) &amp;&amp; ((x4 == GHC.Types.LT) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>`compare`</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:(Ordering)
--&gt; x2:(Ordering) -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 /= x2))}</span><span class='hs-varop'>/=</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Ordering) | (x3 == GHC.Types.GT) &amp;&amp; ((cmp x3) == GHC.Types.GT)}</span><span class='hs-conid'>GT</span></a> 
-<span class=hs-linenum>330: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-a:a
--&gt; (x1:{VV : [{VV : a | (VV &gt;= a)}]&lt;\x3 VV -&gt; (a &lt;= VV) &amp;&amp; (x3 &lt;= VV)&gt; | ((len VV) &gt; 0)}
-    -&gt; {VV : [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt; | (VV /= x1) &amp;&amp; ((len VV) &gt; 0) &amp;&amp; ((len VV) &gt; (len x1))})
--&gt; {VV : [a] | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>ascending</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == b)}</span><span class='hs-varid'>b</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:{x7 : [{VV : a | (VV &gt;= a) &amp;&amp; (VV &gt;= b)}]&lt;\x8 VV -&gt; (a &lt;= VV) &amp;&amp; (b &lt;= VV) &amp;&amp; (x8 &lt;= VV)&gt; | ((len x7) &gt; 0)}
--&gt; {x4 : [a]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 /= x1) &amp;&amp; ((len x4) &gt; 0) &amp;&amp; ((len x4) &gt; (len x1))}</span><span class='hs-keyglyph'>\</span></a><a class=annot href="#"><span class=annottext>{VV : [{VV : a | (VV &gt;= a) &amp;&amp; (VV &gt;= b)}]&lt;\x1 VV -&gt; (a &lt;= VV) &amp;&amp; (b &lt;= VV) &amp;&amp; (x1 &lt;= VV)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>ys</span></a> <span class='hs-keyglyph'>-&gt;</span> <a class=annot href="#"><span class=annottext>x1:{x7 : [{VV : a | (VV &gt;= a)}]&lt;\x8 VV -&gt; (a &lt;= VV) &amp;&amp; (x8 &lt;= VV)&gt; | ((len x7) &gt; 0)}
--&gt; {x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | (x4 /= x1) &amp;&amp; ((len x4) &gt; 0) &amp;&amp; ((len x4) &gt; (len x1))}</span><span class='hs-keyword'>as</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: a-&gt; a-&gt; Bool&gt;.
-x1:{VV : a | (VV &gt;= a)}
--&gt; x2:[{VV : a&lt;p x1&gt; | (VV &gt;= a)}]&lt;p&gt;
--&gt; {x4 : [{VV : a | (VV &gt;= a)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a><a class=annot href="#"><span class=annottext>{x5 : [{VV : a | (VV &gt;= a) &amp;&amp; (VV &gt;= b)}]&lt;\x6 VV -&gt; (a &lt;= VV) &amp;&amp; (b &lt;= VV) &amp;&amp; (x6 &lt;= VV)&gt; | (x5 == ys) &amp;&amp; ((len x5) &gt; 0) &amp;&amp; ((len x5) &gt;= 0) &amp;&amp; ((sumLens x5) &gt;= 0)}</span><span class='hs-varid'>ys</span></a><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x4 : [a] | (x4 == bs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>bs</span></a>
-<span class=hs-linenum>331: </span><span class='hs-definition'>ascending</span> <span class='hs-varid'>a</span> <span class='hs-keyword'>as</span> <span class='hs-varid'>bs</span>      
-<span class=hs-linenum>332: </span>  <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x7 : [{VV : a | (VV &gt;= a)}]&lt;\x8 VV -&gt; (a &lt;= VV) &amp;&amp; (x8 &lt;= VV)&gt; | ((len x7) &gt; 0)}
--&gt; {x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | (x4 /= x1) &amp;&amp; ((len x4) &gt; 0) &amp;&amp; ((len x4) &gt; (len x1))}</span><span class='hs-keyword'>as</span></a> <a class=annot href="#"><span class=annottext>{x4 : [{VV : a | (VV == a) &amp;&amp; (VV &gt; b)}]&lt;\_ VV -&gt; false&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{VV : a | (VV == a)}</span><span class='hs-varid'>a</span></a><span class='hs-keyglyph'>]</span><a class=annot href="#"><span class=annottext>forall &lt;p :: [a]-&gt; [a]-&gt; Bool&gt;.
-x1:{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt; | ((len x15) &gt;= 0)}
--&gt; x2:[{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt;&lt;p x1&gt; | ((len x15) &gt;= 0)}]&lt;p&gt;
--&gt; {x4 : [{x15 : [a]&lt;\x16 VV -&gt; (x16 &lt;= VV)&gt; | ((len x15) &gt;= 0)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-[a]
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt; 0)}</span><span class='hs-varid'>sequences</span></a> <a class=annot href="#"><span class=annottext>{x3 : [a] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>bs</span></a>
-</pre>
-
-Ex: `Data.List.sort` [4/4]
---------------------------
-
-Juggling lists of increasing & decreasing lists
-
-<br>
-
-
-<pre><span class=hs-linenum>343: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-{VV : [{VV : [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}</span><span class='hs-definition'>mergeAll</span></a> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | (x4 == x) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>x</span></a>
-<span class=hs-linenum>344: </span><span class='hs-definition'>mergeAll</span> <span class='hs-varid'>xs</span>         <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-{VV : [{VV : [a]&lt;\x2 VV -&gt; (x2 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}</span><span class='hs-varid'>mergeAll</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:{x10 : [{x14 : [a]&lt;\x15 VV -&gt; (VV &gt;= x15)&gt; | ((len x14) &gt;= 0)}]&lt;\_ VV -&gt; ((len x12) &gt;= 0)&gt; | ((len x10) &gt;= 0)}
--&gt; {x3 : [{x7 : [a]&lt;\x8 VV -&gt; (VV &gt;= x8)&gt; | ((len x7) &gt;= 0)}]&lt;\_ VV -&gt; ((len x5) &gt;= 0)&gt; | ((len x3) &gt;= 0) &amp;&amp; ((len x3) &lt;= (len x1))}</span><span class='hs-varid'>mergePairs</span></a> <a class=annot href="#"><span class=annottext>{x3 : [{x7 : [a]&lt;\x8 VV -&gt; (x8 &lt;= VV)&gt; | ((len x7) &gt;= 0)}]&lt;\_ VV -&gt; ((len x5) &gt;= 0)&gt; | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span>
-<span class=hs-linenum>345: </span>
-<span class=hs-linenum>346: </span><a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-x1:{VV : [{VV : [a]&lt;\x2 VV -&gt; (VV &gt;= x2)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))}</span><span class='hs-definition'>mergePairs</span></a> <span class='hs-layout'>(</span><span class='hs-varid'>a</span><span class='hs-conop'>:</span><span class='hs-varid'>b</span><span class='hs-conop'>:</span><span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x10 : [a]&lt;\x11 VV -&gt; (VV &gt;= x11)&gt; | ((len x10) &gt;= 0)}
--&gt; x2:{x7 : [a]&lt;\x8 VV -&gt; (VV &gt;= x8)&gt; | ((len x7) &gt;= 0)}
--&gt; {x4 : [a]&lt;\x5 VV -&gt; (x5 &lt;= VV)&gt; | ((len x4) &gt;= 0) &amp;&amp; ((len x4) &gt;= (len x1)) &amp;&amp; ((len x4) &gt;= (len x2))}</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == a) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == b) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>b</span></a><a class=annot href="#"><span class=annottext>forall &lt;p :: [a]-&gt; [a]-&gt; Bool&gt;.
-x1:{x15 : [a]&lt;\x16 VV -&gt; (VV &gt;= x16)&gt; | ((len x15) &gt;= 0)}
--&gt; x2:[{x15 : [a]&lt;\x16 VV -&gt; (VV &gt;= x16)&gt;&lt;p x1&gt; | ((len x15) &gt;= 0)}]&lt;p&gt;
--&gt; {x4 : [{x15 : [a]&lt;\x16 VV -&gt; (VV &gt;= x16)&gt; | ((len x15) &gt;= 0)}]&lt;p&gt; | (((null x4)) &lt;=&gt; false) &amp;&amp; ((len x4) == (1 + (len x2))) &amp;&amp; ((sumLens x4) == ((len x1) + (sumLens x2)))}</span><span class='hs-conop'>:</span></a> <a class=annot href="#"><span class=annottext>forall a.
-(Ord a) =&gt;
-x1:{VV : [{VV : [a]&lt;\x2 VV -&gt; (VV &gt;= x2)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0)}
--&gt; {VV : [{VV : [a]&lt;\x1 VV -&gt; (x1 &lt;= VV)&gt; | ((len VV) &gt;= 0)}]&lt;\_ VV -&gt; ((len VV) &gt;= 0)&gt; | ((len VV) &gt;= 0) &amp;&amp; ((len VV) &lt;= (len x1))}</span><span class='hs-varid'>mergePairs</span></a> <a class=annot href="#"><span class=annottext>{x4 : [{x8 : [a]&lt;\x9 VV -&gt; (VV &gt;= x9)&gt; | ((len x8) &gt;= 0)}]&lt;\_ VV -&gt; ((len x6) &gt;= 0)&gt; | (x4 == xs) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>xs</span></a>
-<span class=hs-linenum>347: </span><span class='hs-definition'>mergePairs</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>]</span>      <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x6 : [{x8 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | false}]&lt;\_ VV -&gt; false&gt; | (((null x6)) &lt;=&gt; true) &amp;&amp; ((len x6) == 0) &amp;&amp; ((sumLens x6) == 0) &amp;&amp; ((len x6) &gt;= 0) &amp;&amp; ((sumLens x6) &gt;= 0)}</span><span class='hs-keyglyph'>[</span></a><a class=annot href="#"><span class=annottext>{x4 : [a]&lt;\x5 VV -&gt; (VV &gt;= x5)&gt; | (x4 == a) &amp;&amp; ((len x4) &gt;= 0) &amp;&amp; ((sumLens x4) &gt;= 0)}</span><span class='hs-varid'>x</span></a><span class='hs-keyglyph'>]</span>
-<span class=hs-linenum>348: </span><span class='hs-definition'>mergePairs</span> <span class='hs-conid'>[]</span>       <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall &lt;p :: [a]-&gt; [a]-&gt; Bool&gt;.
-{x4 : [{x6 : [{VV : a | false}]&lt;\_ VV -&gt; false&gt; | false}]&lt;p&gt; | (((null x4)) &lt;=&gt; true) &amp;&amp; ((len x4) == 0) &amp;&amp; ((sumLens x4) == 0)}</span><span class='hs-conid'>[]</span></a>
-</pre>
-
-Phew!
------
-
-Lets see one last example...
-
-
-Example: Binary Trees
----------------------
-
-... `Map` from keys of type `k` to values of type `a` 
-
-<br>
-
-<div class="fragment">
-
-Implemented, in `Data.Map` as a binary tree:
-
-<br>
-
-
-<pre><span class=hs-linenum>371: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>Map</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Tip</span>
-<span class=hs-linenum>372: </span>             <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Bin</span> <span class='hs-conid'>Size</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-conid'>Map</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>373: </span>
-<span class=hs-linenum>374: </span><span class='hs-keyword'>type</span> <span class='hs-conid'>Size</span>    <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Int</span>
-</pre>
-</div>
-
-Two Abstract Refinements
-------------------------
-
-- `l` : relates root `key` with `left`-subtree keys
-- `r` : relates root `key` with `right`-subtree keys
-
-
-<pre><span class=hs-linenum>385: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>data</span> <span class='hs-conid'>Map</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>l</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span>
-<span class=hs-linenum>386: </span>                 <span class='hs-layout'>,</span> <span class='hs-varid'>r</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>k</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Prop</span> <span class='hs-varop'>&gt;</span>
-<span class=hs-linenum>387: </span>    <span class='hs-keyglyph'>=</span> <span class='hs-conid'>Tip</span>
-<span class=hs-linenum>388: </span>    <span class='hs-keyglyph'>|</span> <span class='hs-conid'>Bin</span> <span class='hs-layout'>(</span><span class='hs-varid'>sz</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Size</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>key</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>k</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>val</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>389: </span>          <span class='hs-layout'>(</span><span class='hs-varid'>left</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Map</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>l</span><span class='hs-layout'>,</span><span class='hs-varid'>r</span><span class='hs-varop'>&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>k</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>l</span> <span class='hs-varid'>key</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>390: </span>          <span class='hs-layout'>(</span><span class='hs-varid'>right</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Map</span> <span class='hs-varop'>&lt;</span><span class='hs-varid'>l</span><span class='hs-layout'>,</span><span class='hs-varid'>r</span><span class='hs-varop'>&gt;</span> <span class='hs-layout'>(</span><span class='hs-varid'>k</span><span class='hs-varop'>&lt;</span><span class='hs-varid'>r</span> <span class='hs-varid'>key</span><span class='hs-varop'>&gt;</span><span class='hs-layout'>)</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-Ex: Binary Search Trees
------------------------
-
-Keys are *Binary-Search* Ordered
-
-<br>
-
-
-<pre><span class=hs-linenum>402: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>BST</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>403: </span>      <span class='hs-conid'>Map</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&lt;</span> <span class='hs-varid'>r</span> <span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>404: </span>           <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>v</span> <span class='hs-varop'>&gt;</span> <span class='hs-varid'>r</span> <span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>405: </span>          <span class='hs-varid'>k</span> <span class='hs-varid'>a</span>                   <span class='hs-keyword'>@-}</span>
-</pre>
-
-Ex: Minimum Heaps 
------------------
-
-Root contains *minimum* value
-
-<br>
-
-
-<pre><span class=hs-linenum>416: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>MinHeap</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>417: </span>      <span class='hs-conid'>Map</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>r</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>418: </span>           <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>r</span> <span class='hs-varop'>&lt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>419: </span>           <span class='hs-varid'>k</span> <span class='hs-varid'>a</span>               <span class='hs-keyword'>@-}</span>
-</pre>
-
-Ex: Maximum Heaps 
------------------
-
-Root contains *maximum* value
-
-<br>
-
-
-<pre><span class=hs-linenum>430: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>type</span> <span class='hs-conid'>MaxHeap</span> <span class='hs-varid'>k</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> 
-<span class=hs-linenum>431: </span>      <span class='hs-conid'>Map</span> <span class='hs-varop'>&lt;</span><span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>r</span> <span class='hs-varop'>&gt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-layout'>,</span> 
-<span class=hs-linenum>432: </span>           <span class='hs-layout'>{</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>r</span> <span class='hs-varid'>v</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>r</span> <span class='hs-varop'>&gt;=</span> <span class='hs-varid'>v</span><span class='hs-layout'>}</span><span class='hs-varop'>&gt;</span> 
-<span class=hs-linenum>433: </span>           <span class='hs-varid'>k</span> <span class='hs-varid'>a</span>               <span class='hs-keyword'>@-}</span>
-</pre>
-
-
-Example: Data.Map
------------------
-
-Standard Key-Value container
-
-- <div class="fragment">1300+ non-comment lines</div>
-
-- <div class="fragment">`insert`, `split`, `merge`,...</div>
-
-- <div class="fragment">Rotation, Rebalance,...</div>
-
-<div class="fragment">
-SMT & inference crucial for [verification](https://github.com/ucsd-progsys/liquidhaskell/blob/master/benchmarks/esop2013-submission/Base.hs)
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=Map.hs" target="_blank">Demo:</a>Try online!
-</div>
-
-Recap: Abstract Refinements
----------------------------
-
-<div class="fragment">
-
-Decouple invariants from *functions*
-
-+ `max`
-+ `loop`
-+ `foldr`
-
-</div>
-
-<div class="fragment">
-Decouple invariants from *data*
-
-+ `Vector`
-+ `List`
-+ `Tree`
-
-</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. <div class="fragment">Er, what of *lazy evaluation*?</div>
diff --git a/docs/slides/plpv14/lhs/09_Laziness.lhs b/docs/slides/plpv14/lhs/09_Laziness.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/09_Laziness.lhs
+++ /dev/null
@@ -1,237 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-\begin{code}
-module Laziness where
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--no-termination" @-}
-
-divide :: Int -> Int -> Int
-foo     :: Int -> Int
--- zero    :: Int 
--- diverge :: a -> b
-\end{code}
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for *strict* languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `F7`, `F*`, `Sage` ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-\begin{code}
-{-@ divide :: Int -> {v:Int| v /= 0} -> Int @-}
-divide n 0 = liquidError "div-by-zero!"
-divide n d = n `div` d
-\end{code}
-
-<br>
-
-<div class="fragment">
-Should only try to `divide` by non-zero values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value *strictly less than* input.
-
-<br>
-
-\begin{code}
-{-@ foo       :: n:Nat -> {v:Nat | v < n} @-}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-\end{code}
-
-LiquidHaskell Lies! 
--------------------
-
-\begin{code}
-explode = let z = 0
-          in  (\x -> (2013 `divide` z)) (foo z)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Why is this deemed *safe*? 
-</div>
-
-<br>
-
-<div class="fragment">
-(Where's the *red* highlight when you want it?)
-</div>
-
-
-Safe With Eager Eval
---------------------
-
-\begin{code} <div/>
-{- foo       :: n:Nat -> {v:Nat | v < n} -}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0
-          in  (\x -> (2013 `divide` z)) (foo z)
-\end{code}
-
-<br>
-
-<div class="fragment">
-In Java, ML, etc: program spins away, *never hits* divide-by-zero 
-</div>
-
-Unsafe With Lazy Eval
----------------------
-
-\begin{code}<div/>
-{- foo       :: n:Nat -> {v:Nat | v < n} -}
-foo n   
-  | n > 0     = n - 1
-  | otherwise = foo n
-
-explode = let z = 0
-          in  (\x -> (2013 `divide` z)) (foo z)
-\end{code}
-
-<br>
-
-In Haskell, program *skips* `(foo z)` & hits divide-by-zero!
-
-Problem: Divergence
--------------------
-
-<div class="fragment">
-What is denoted by `e :: {v:Int | 0 <= v}` ?
-</div>
-
-<br>
-
-<div class="fragment">
-`e` evaluates to a `Nat`  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-With Eager Evaluation 
----------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-<br>
-
-<div class="fragment">
-**Can** assume `x` is a `Nat` when checking `body`
-</div>
-
-But With Lazy Evaluation 
-------------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-<br>
-
-<div class="fragment">
-**Cannot** assume `x` is a `Nat` when checking e!
-</div>
-
-Oops. Now what?
----------------
-
-**Solution** 
-
-Only assign *non-trivial* refinements to *non-diverging* terms!
-
-<br>
-
-<div class="fragment">
-
-**Require A Termination Analysis**
-
-(Oh dear.)
-
-</div>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target="_blank">Demo:</a>Disable `"--no-termination" and see what happens!
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. **Lazy Evaluation:** Requires Termination
-6. <div class="fragment">**Termination:** Via Refinements!</div>
-
diff --git a/docs/slides/plpv14/lhs/09_Laziness.lhs.markdown b/docs/slides/plpv14/lhs/09_Laziness.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/09_Laziness.lhs.markdown
+++ /dev/null
@@ -1,244 +0,0 @@
- {#laziness}
-============
-
-<div class="hidden">
-
-<pre><span class=hs-linenum>6: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Laziness</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum>7: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Language</span><span class='hs-varop'>.</span><span class='hs-conid'>Haskell</span><span class='hs-varop'>.</span><span class='hs-conid'>Liquid</span><span class='hs-varop'>.</span><span class='hs-conid'>Prelude</span>
-<span class=hs-linenum>8: </span>
-<span class=hs-linenum>9: </span><span class='hs-keyword'>{-@</span> <span class='hs-conid'>LIQUID</span> <span class='hs-str'>"--no-termination"</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>10: </span>
-<span class=hs-linenum>11: </span><span class='hs-definition'>divide</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>12: </span><span class='hs-definition'>foo</span>     <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>13: </span><span class='hs-comment'>-- zero    :: Int </span>
-<span class=hs-linenum>14: </span><span class='hs-comment'>-- diverge :: a -&gt; b</span>
-</pre>
-</div>
-
-
-Lazy Evaluation?
-----------------
-
-Lazy Evaluation
-===============
-
-SMT based Verification
-----------------------
-
-Techniques developed for *strict* languages
-
-<br>
-
-<div class="fragment">
-
------------------------   ---   ------------------------------------------
-        **Floyd-Hoare**    :    `ESCJava`, `SpecSharp` ...
-     **Model Checkers**    :    `Slam`, `Blast` ...
-   **Refinement Types**    :    `DML`, `Stardust`, `F7`, `F*`, `Sage` ...
------------------------   ---   ------------------------------------------
-
-</div>
-
-<br>
-
-<div class="fragment">
-Surely soundness carries over to Haskell, right?
-</div>
-
-
-Back To the Beginning
----------------------
-
-
-<pre><span class=hs-linenum>53: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>divide</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Int</span><span class='hs-keyword'>| v /= 0}</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>54: </span><a class=annot href="#"><span class=annottext>(Int) -&gt; {VV : (Int) | (VV /= 0)} -&gt; (Int)</span><span class='hs-definition'>divide</span></a> <a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-varid'>n</span></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : [(Char)] | false} -&gt; {x1 : (Int) | false}</span><span class='hs-varid'>liquidError</span></a> <a class=annot href="#"><span class=annottext>{x3 : [(Char)] | ((len x3) &gt;= 0) &amp;&amp; ((sumLens x3) &gt;= 0)}</span><span class='hs-str'>"div-by-zero!"</span></a>
-<span class=hs-linenum>55: </span><span class='hs-definition'>divide</span> <span class='hs-varid'>n</span> <span class='hs-varid'>d</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == n)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:(Int)
--&gt; x2:(Int)
--&gt; {x6 : (Int) | (((x1 &gt;= 0) &amp;&amp; (x2 &gt;= 0)) =&gt; (x6 &gt;= 0)) &amp;&amp; (((x1 &gt;= 0) &amp;&amp; (x2 &gt;= 1)) =&gt; (x6 &lt;= x1)) &amp;&amp; (x6 == (x1 / x2))}</span><span class='hs-varop'>`div`</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 /= 0)}</span><span class='hs-varid'>d</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-Should only try to `divide` by non-zero values
-</div>
-
-An Innocent Function
---------------------
-
-`foo` returns a value *strictly less than* input.
-
-<br>
-
-
-<pre><span class=hs-linenum>72: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>foo</span>       <span class='hs-keyglyph'>::</span> <span class='hs-varid'>n</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span> <span class='hs-keyword'>| v &lt; n}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>73: </span><a class=annot href="#"><span class=annottext>n:{VV : (Int) | (VV &gt;= 0)} -&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; n)}</span><span class='hs-definition'>foo</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>n</span></a>   
-<span class=hs-linenum>74: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:{x8 : (Int) | (x8 &gt;= 0) &amp;&amp; (x8 &lt;= n)}
--&gt; x2:{x8 : (Int) | (x8 &gt;= 0) &amp;&amp; (x8 &lt;= n)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &gt; x2))}</span><span class='hs-varop'>&gt;</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a>
-<span class=hs-linenum>75: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{x5 : (Int) | (x5 &gt;= 0)}
--&gt; {x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; x1)}</span><span class='hs-varid'>foo</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == n) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>n</span></a>
-</pre>
-
-LiquidHaskell Lies! 
--------------------
-
-
-<pre><span class=hs-linenum>82: </span><a class=annot href="#"><span class=annottext>(Int)</span><span class='hs-definition'>explode</span></a> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>let</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-varid'>z</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (0  :  int))}</span><span class='hs-num'>0</span></a>
-<span class=hs-linenum>83: </span>          <span class='hs-keyword'>in</span>  <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x:{VV : (Int) | (VV == 0) &amp;&amp; (VV == 1) &amp;&amp; (VV == Laziness.explode) &amp;&amp; (VV == z) &amp;&amp; (VV &gt; 0) &amp;&amp; (VV &gt; Laziness.explode) &amp;&amp; (VV &gt; z) &amp;&amp; (VV &lt; 0) &amp;&amp; (VV &lt; Laziness.explode) &amp;&amp; (VV &lt; z)}
--&gt; {VV : (Int) | (VV == 0) &amp;&amp; (VV == 1) &amp;&amp; (VV == Laziness.explode) &amp;&amp; (VV == x) &amp;&amp; (VV == z) &amp;&amp; (VV &gt; 0) &amp;&amp; (VV &gt; Laziness.explode) &amp;&amp; (VV &gt; x) &amp;&amp; (VV &gt; z) &amp;&amp; (VV &lt; 0) &amp;&amp; (VV &lt; Laziness.explode) &amp;&amp; (VV &lt; x) &amp;&amp; (VV &lt; z)}</span><span class='hs-keyglyph'>\</span></a><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV == 0) &amp;&amp; (VV == 1) &amp;&amp; (VV == Laziness.explode) &amp;&amp; (VV == z) &amp;&amp; (VV &gt; 0) &amp;&amp; (VV &gt; Laziness.explode) &amp;&amp; (VV &gt; z) &amp;&amp; (VV &lt; 0) &amp;&amp; (VV &lt; Laziness.explode) &amp;&amp; (VV &lt; z)}</span><span class='hs-varid'>x</span></a> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2013  :  int))}</span><span class='hs-num'>2013</span></a> <a class=annot href="#"><span class=annottext>(Int) -&gt; {x3 : (Int) | (x3 /= 0)} -&gt; (Int)</span><span class='hs-varop'>`divide`</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == z) &amp;&amp; (x3 == (0  :  int))}</span><span class='hs-varid'>z</span></a><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>x1:{x5 : (Int) | (x5 &gt;= 0)}
--&gt; {x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; x1)}</span><span class='hs-varid'>foo</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == z) &amp;&amp; (x3 == (0  :  int))}</span><span class='hs-varid'>z</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Why is this deemed *safe*? 
-</div>
-
-<br>
-
-<div class="fragment">
-(Where's the *red* highlight when you want it?)
-</div>
-
-
-Safe With Eager Eval
---------------------
-
- <div/>
-<pre><span class=hs-linenum>103: </span><span class='hs-comment'>{- foo       :: n:Nat -&gt; {v:Nat | v &lt; n} -}</span>
-<span class=hs-linenum>104: </span><span class='hs-definition'>foo</span> <span class='hs-varid'>n</span>   
-<span class=hs-linenum>105: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>n</span> <span class='hs-varop'>&gt;</span> <span class='hs-num'>0</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>n</span> <span class='hs-comment'>-</span> <span class='hs-num'>1</span>
-<span class=hs-linenum>106: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foo</span> <span class='hs-varid'>n</span>
-<span class=hs-linenum>107: </span>
-<span class=hs-linenum>108: </span><span class='hs-definition'>explode</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>z</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
-<span class=hs-linenum>109: </span>          <span class='hs-keyword'>in</span>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>x</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-num'>2013</span> <span class='hs-varop'>`divide`</span> <span class='hs-varid'>z</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>foo</span> <span class='hs-varid'>z</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-In Java, ML, etc: program spins away, *never hits* divide-by-zero 
-</div>
-
-Unsafe With Lazy Eval
----------------------
-
-<div/>
-<pre><span class=hs-linenum>122: </span><span class='hs-comment'>{- foo       :: n:Nat -&gt; {v:Nat | v &lt; n} -}</span>
-<span class=hs-linenum>123: </span><span class='hs-definition'>foo</span> <span class='hs-varid'>n</span>   
-<span class=hs-linenum>124: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>n</span> <span class='hs-varop'>&gt;</span> <span class='hs-num'>0</span>     <span class='hs-keyglyph'>=</span> <span class='hs-varid'>n</span> <span class='hs-comment'>-</span> <span class='hs-num'>1</span>
-<span class=hs-linenum>125: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>foo</span> <span class='hs-varid'>n</span>
-<span class=hs-linenum>126: </span>
-<span class=hs-linenum>127: </span><span class='hs-definition'>explode</span> <span class='hs-keyglyph'>=</span> <span class='hs-keyword'>let</span> <span class='hs-varid'>z</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
-<span class=hs-linenum>128: </span>          <span class='hs-keyword'>in</span>  <span class='hs-layout'>(</span><span class='hs-keyglyph'>\</span><span class='hs-varid'>x</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-layout'>(</span><span class='hs-num'>2013</span> <span class='hs-varop'>`divide`</span> <span class='hs-varid'>z</span><span class='hs-layout'>)</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>foo</span> <span class='hs-varid'>z</span><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-In Haskell, program *skips* `(foo z)` & hits divide-by-zero!
-
-Problem: Divergence
--------------------
-
-<div class="fragment">
-What is denoted by `e :: {v:Int | 0 <= v}` ?
-</div>
-
-<br>
-
-<div class="fragment">
-`e` evaluates to a `Nat`  
-</div>
-
-<div class="fragment">
-or
-
-**diverges**! 
-</div>
-
-<div class="fragment">
-<br>
-
-Classical Floyd-Hoare notion of [partial correctness](http://en.wikipedia.org/wiki/Hoare_logic#Partial_and_total_correctness)
-
-</div>
-
-
-
-Problem: Divergence
--------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-With Eager Evaluation 
----------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-<br>
-
-<div class="fragment">
-**Can** assume `x` is a `Nat` when checking `body`
-</div>
-
-But With Lazy Evaluation 
-------------------------
-
-Suppose `e :: {v:Int | 0 <= v}`
-
-<br>
-
-**Consider**
-
-`let x = e in body`
-
-<br>
-
-<div class="fragment">
-**Cannot** assume `x` is a `Nat` when checking e!
-</div>
-
-Oops. Now what?
----------------
-
-**Solution** 
-
-Only assign *non-trivial* refinements to *non-diverging* terms!
-
-<br>
-
-<div class="fragment">
-
-**Require A Termination Analysis**
-
-(Oh dear.)
-
-</div>
-
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=TellingLies.hs" target="_blank">Demo:</a>Disable `"--no-termination" and see what happens!
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. **Lazy Evaluation:** Requires Termination
-6. <div class="fragment">**Termination:** Via Refinements!</div>
-
diff --git a/docs/slides/plpv14/lhs/10_Termination.lhs b/docs/slides/plpv14/lhs/10_Termination.lhs
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/10_Termination.lhs
+++ /dev/null
@@ -1,291 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-\begin{code}
-module Termination where
-
-import Prelude hiding (gcd, mod, map)
-fib :: Int -> Int
-gcd :: Int -> Int -> Int
-infixr `C`
-
-data L a = N | C a (L a)
-
-{-@ invariant {v: (L a) | 0 <= (llen v)} @-}
-
-mod :: Int -> Int -> Int
-mod a b | a - b >  b = mod (a - b) b
-        | a - b <  b = a - b
-        | a - b == b = 0
-
-merge :: Ord a => L a -> L a -> L a
-\end{code}
-</div>
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
-Refinements & Termination
-----------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination *using refinements*
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on *smaller* inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
-\begin{code} <div/>
-foo   :: Nat -> T
-foo x =  body
-\end{code}
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have inputs *smaller* than `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-\begin{code}
-{-@ fib  :: Nat -> Nat @-}
-fib 0    = 1
-fib 1    = 1
-fib n    = fib (n-1) + fib (n-2)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a>What if we drop the `fib 1` case?
-</div>
-
-Refinements Are Essential!
---------------------------
-
-\begin{code}
-{-@ gcd :: a:Nat -> {b:Nat | b < a} -> Int @-}
-gcd a 0 = a
-gcd a b = gcd b (a `mod` b)
-\end{code}
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-\begin{code}
-{-@ mod :: a:Nat 
-        -> b:{v:Nat|(0 < v && v < a)} 
-        -> {v:Nat| v < b}                 @-}
-\end{code}
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-\begin{code}<div/>
-foo   :: S -> T
-foo x = body
-\end{code}
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= (mS v) < (mS x)} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
-\begin{code} 
-map f N        = N
-map f (C x xs) = (f x) `C` (map f xs) 
-\end{code}
-
-<br>
-
-Terminates using **default** measure `llen`
-
-<div class="fragment">
-\begin{code}
-{-@ data L [llen] a = N 
-                    | C (x::a) (xs :: L a) @-}
-{-@ measure llen :: L a -> Int
-    llen (N)      = 0
-    llen (C x xs) = 1 + (llen xs)   @-}
-\end{code}
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of *smallness* spread across inputs?
-
-<br>
-
-\begin{code}
-merge xs@(x `C` xs') ys@(y `C` ys')
-  | x < y     = x `C` merge xs' ys
-  | otherwise = y `C` merge xs ys'
-\end{code}
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their *sum* does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their *sum* does.
-
-<br>
-
-\begin{code}
-{-@ merge :: Ord a => xs:_ -> ys:_ -> _ 
-          /  [(llen xs) + (llen ys)]     @-}
-\end{code}
-
-<br>
-
-<div class="fragment">
-
-Synthesize *ghost* parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-Reduces to single-parameter-decrease case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-- <div class="fragment">Mutual recursion</div>
-
-- <div class="fragment">Lexicographic ordering...</div>
-
-Recap
------
-
-Main idea: Recursive calls on *smaller inputs*
-
-<br>
-
-- <div class="fragment">Use refinements to *check* smaller</div>
-
-- <div class="fragment">Use refinements to *establish* smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> (Meta-theory is tricky, but all ends well.)</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. **Lazy Evaluation:** Requires Termination
-6. **Termination:** Via Refinements!
-7. <div class="fragment">**Evaluation** </div>
-
-
diff --git a/docs/slides/plpv14/lhs/10_Termination.lhs.markdown b/docs/slides/plpv14/lhs/10_Termination.lhs.markdown
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/10_Termination.lhs.markdown
+++ /dev/null
@@ -1,305 +0,0 @@
-Termination {#termination}
-==========================
-
-
-<div class="hidden">
-
-<pre><span class=hs-linenum> 7: </span><span class='hs-keyword'>module</span> <span class='hs-conid'>Termination</span> <span class='hs-keyword'>where</span>
-<span class=hs-linenum> 8: </span>
-<span class=hs-linenum> 9: </span><span class='hs-keyword'>import</span> <span class='hs-conid'>Prelude</span> <span class='hs-varid'>hiding</span> <span class='hs-layout'>(</span><span class='hs-varid'>gcd</span><span class='hs-layout'>,</span> <span class='hs-varid'>mod</span><span class='hs-layout'>,</span> <span class='hs-varid'>map</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>10: </span><span class='hs-definition'>fib</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>11: </span><span class='hs-definition'>gcd</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>12: </span><span class='hs-keyword'>infixr</span> <span class='hs-varop'>`C`</span>
-<span class=hs-linenum>13: </span>
-<span class=hs-linenum>14: </span><span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-varid'>a</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>15: </span>
-<span class=hs-linenum>16: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>invariant</span> <span class='hs-keyword'>{v:</span> <span class='hs-layout'>(</span><span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>| 0 &lt;= (llen v)}</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>17: </span>
-<span class=hs-linenum>18: </span><span class='hs-definition'>mod</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>19: </span><a class=annot href="#"><span class=annottext>x1:{VV : (Int) | (VV &gt;= 0)}
--&gt; x2:{VV : (Int) | (VV &gt;= 0) &amp;&amp; (0 &lt; VV) &amp;&amp; (VV &lt; x1)}
--&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; x2)}</span><span class='hs-definition'>mod</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0) &amp;&amp; (0 &lt; VV) &amp;&amp; (VV &lt; a)}</span><span class='hs-varid'>b</span></a> <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:{x10 : (Int) | (x10 &gt; 0) &amp;&amp; (0 &lt; x10) &amp;&amp; (x10 &lt; a)}
--&gt; x2:{x10 : (Int) | (x10 &gt; 0) &amp;&amp; (0 &lt; x10) &amp;&amp; (x10 &lt; a)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &gt; x2))}</span><span class='hs-varop'>&gt;</span></a>  <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{VV : (Int) | (VV &gt;= 0)}
--&gt; x2:{VV : (Int) | (VV &gt;= 0) &amp;&amp; (0 &lt; VV) &amp;&amp; (VV &lt; x1)}
--&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; x2)}</span><span class='hs-varid'>mod</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a>
-<span class=hs-linenum>20: </span>        <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 &gt; 0) &amp;&amp; (0 &lt; x12) &amp;&amp; (x12 &lt; a) &amp;&amp; (x12 &lt;= b)}
--&gt; x2:{x12 : (Int) | (x12 &gt; 0) &amp;&amp; (0 &lt; x12) &amp;&amp; (x12 &lt; a) &amp;&amp; (x12 &lt;= b)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a>  <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a>
-<span class=hs-linenum>21: </span>        <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <a class=annot href="#"><span class=annottext>x1:{x12 : (Int) | (x12 == b) &amp;&amp; (x12 &gt; 0) &amp;&amp; (0 &lt; x12) &amp;&amp; (x12 &lt; a)}
--&gt; x2:{x12 : (Int) | (x12 == b) &amp;&amp; (x12 &gt; 0) &amp;&amp; (0 &lt; x12) &amp;&amp; (x12 &lt; a)}
--&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 == x2))}</span><span class='hs-varop'>==</span></a> <a class=annot href="#"><span class=annottext>{x5 : (Int) | (x5 == b) &amp;&amp; (x5 &gt;= 0) &amp;&amp; (0 &lt; x5) &amp;&amp; (x5 &lt; a)}</span><span class='hs-varid'>b</span></a> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int#) -&gt; {x2 : (Int) | (x2 == (x1  :  int))}</span><span class='hs-num'>0</span></a>
-<span class=hs-linenum>22: </span>
-<span class=hs-linenum>23: </span><span class='hs-definition'>merge</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span>
-</pre>
-</div>
-
-Dependent != Refinement
------------------------
-
-<div class="fragment">**Dependent Types**</div>
-
-+ <div class="fragment">*Arbitrary terms* appear inside types</div> 
-+ <div class="fragment">Termination ensures well-defined</div>
-
-<br>
-
-<div class="fragment">**Refinement Types**</div>
-
-+ <div class="fragment">*Restricted refinements* appear in types</div>
-+ <div class="fragment">Termination *not* required ...</div> 
-+ <div class="fragment">... except, alas, with *lazy* evaluation!</div>
-
-Refinements & Termination
-----------------------------
-
-<div class="fragment">
-Fortunately, we can ensure termination *using refinements*
-</div>
-
-
-Main Idea
----------
-
-Recursive calls must be on *smaller* inputs
-
-<br>
-
-+ [Turing](http://classes.soe.ucsc.edu/cmps210/Winter11/Papers/turing-1936.pdf)
-+ [Sized Types](http://dl.acm.org/citation.cfm?id=240882)
-
-Recur On *Smaller* `Nat` 
-------------------------
-
-<div class="fragment">
-
-**To ensure termination of**
-
- <div/>
-<pre><span class=hs-linenum>69: </span><span class='hs-definition'>foo</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>T</span>
-<span class=hs-linenum>70: </span><span class='hs-definition'>foo</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span>  <span class='hs-varid'>body</span>
-</pre>
-
-</div>
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:Nat | v < x} -> T`
-
-<br>
-
-*i.e.* require recursive calls have inputs *smaller* than `x`
-</div>
-
-
-
-Ex: Recur On *Smaller* `Nat` 
-----------------------------
-
-
-<pre><span class=hs-linenum>93: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>fib</span>  <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Nat</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>94: </span><a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)} -&gt; {VV : (Int) | (VV &gt;= 0)}</span><span class='hs-definition'>fib</span></a> <span class='hs-num'>0</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int#) -&gt; {x2 : (Int) | (x2 == (x1  :  int))}</span><span class='hs-num'>1</span></a>
-<span class=hs-linenum>95: </span><span class='hs-definition'>fib</span> <span class='hs-num'>1</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:(Int#) -&gt; {x2 : (Int) | (x2 == (x1  :  int))}</span><span class='hs-num'>1</span></a>
-<span class=hs-linenum>96: </span><span class='hs-definition'>fib</span> <span class='hs-varid'>n</span>    <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)} -&gt; {VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>fib</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 &gt;= 0)}</span><span class='hs-varid'>n</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (1  :  int))}</span><span class='hs-num'>1</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 + x2))}</span><span class='hs-varop'>+</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)} -&gt; {VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>fib</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 &gt;= 0)}</span><span class='hs-varid'>n</span></a><a class=annot href="#"><span class=annottext>x1:(Int) -&gt; x2:(Int) -&gt; {x4 : (Int) | (x4 == (x1 - x2))}</span><span class='hs-comment'>-</span></a><a class=annot href="#"><span class=annottext>{x2 : (Int) | (x2 == (2  :  int))}</span><span class='hs-num'>2</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Terminates, as both `n-1` and `n-2` are `< n`
-</div>
-
-<br>
-
-<div class="fragment">
-<a href="http://goto.ucsd.edu:8090/index.html#?demo=GCD.hs" target="_blank">Demo:</a>What if we drop the `fib 1` case?
-</div>
-
-Refinements Are Essential!
---------------------------
-
-
-<pre><span class=hs-linenum>115: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>gcd</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{b:</span><span class='hs-conid'>Nat</span> <span class='hs-keyword'>| b &lt; a}</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>116: </span><a class=annot href="#"><span class=annottext>x1:{VV : (Int) | (VV &gt;= 0)}
--&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; x1)} -&gt; (Int)</span><span class='hs-definition'>gcd</span></a> <a class=annot href="#"><span class=annottext>{VV : (Int) | (VV &gt;= 0)}</span><span class='hs-varid'>a</span></a> <span class='hs-num'>0</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a>
-<span class=hs-linenum>117: </span><span class='hs-definition'>gcd</span> <span class='hs-varid'>a</span> <span class='hs-varid'>b</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>x1:{VV : (Int) | (VV &gt;= 0)}
--&gt; {VV : (Int) | (VV &gt;= 0) &amp;&amp; (VV &lt; x1)} -&gt; (Int)</span><span class='hs-varid'>gcd</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; a)}</span><span class='hs-varid'>b</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 == a) &amp;&amp; (x3 &gt;= 0)}</span><span class='hs-varid'>a</span></a> <a class=annot href="#"><span class=annottext>x1:{x9 : (Int) | (x9 &gt;= 0)}
--&gt; x2:{x7 : (Int) | (x7 &gt;= 0) &amp;&amp; (0 &lt; x7) &amp;&amp; (x7 &lt; x1)}
--&gt; {x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; x2)}</span><span class='hs-varop'>`mod`</span></a> <a class=annot href="#"><span class=annottext>{x3 : (Int) | (x3 &gt;= 0) &amp;&amp; (x3 &lt; a)}</span><span class='hs-varid'>b</span></a><span class='hs-layout'>)</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-Need refinements to prove `(a mod b) < b` at *recursive* call!
-</div>
-
-<br>
-
-<div class="fragment">
-
-<pre><span class=hs-linenum>130: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>mod</span> <span class='hs-keyglyph'>::</span> <span class='hs-varid'>a</span><span class='hs-conop'>:</span><span class='hs-conid'>Nat</span> 
-<span class=hs-linenum>131: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>b</span><span class='hs-conop'>:</span><span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>|(0 &lt; v &amp;&amp; v &lt; a)}</span> 
-<span class=hs-linenum>132: </span>        <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>{v:</span><span class='hs-conid'>Nat</span><span class='hs-keyword'>| v &lt; b}</span>                 <span class='hs-keyword'>@-}</span>
-</pre>
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-<div/>
-<pre><span class=hs-linenum>142: </span><span class='hs-definition'>foo</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>S</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>T</span>
-<span class=hs-linenum>143: </span><span class='hs-definition'>foo</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>body</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-**Reduce** to `Nat` case...
-</div>
-
-<br>
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of input types other than `Nat` ?
-
-<div/>
-<pre><span class=hs-linenum>160: </span><span class='hs-definition'>foo</span>   <span class='hs-keyglyph'>::</span> <span class='hs-conid'>S</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>T</span>
-<span class=hs-linenum>161: </span><span class='hs-definition'>foo</span> <span class='hs-varid'>x</span> <span class='hs-keyglyph'>=</span> <span class='hs-varid'>body</span>
-</pre>
-
-<br>
-
-Specify a **default measure** `mS :: S -> Int`
-
-<br>
-
-<div class="fragment">
-**Check `body` Under Assumption**
-
-`foo :: {v:s | 0 <= (mS v) < (mS x)} -> T`
-</div>
-
-
-Ex: Recur on *smaller* `List`
------------------------------
-
- 
-<pre><span class=hs-linenum>181: </span><a class=annot href="#"><span class=annottext>forall a b. (a -&gt; b) -&gt; (L a) -&gt; (L b)</span><span class='hs-definition'>map</span></a> <a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>f</span></a> <span class='hs-conid'>N</span>        <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>forall a. {x2 : (L a) | ((llen x2) == 0)}</span><span class='hs-conid'>N</span></a>
-<span class=hs-linenum>182: </span><span class='hs-definition'>map</span> <span class='hs-varid'>f</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>a -&gt; x2:(L a) -&gt; {x2 : (L a) | ((llen x2) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <span class='hs-layout'>(</span><a class=annot href="#"><span class=annottext>forall a b. (a -&gt; b) -&gt; (L a) -&gt; (L b)</span><span class='hs-varid'>map</span></a> <a class=annot href="#"><span class=annottext>a -&gt; b</span><span class='hs-varid'>f</span></a> <a class=annot href="#"><span class=annottext>{x3 : (L a) | (x3 == xs) &amp;&amp; (0 &lt;= (llen x3))}</span><span class='hs-varid'>xs</span></a><span class='hs-layout'>)</span> 
-</pre>
-
-<br>
-
-Terminates using **default** measure `llen`
-
-<div class="fragment">
-
-<pre><span class=hs-linenum>191: </span><span class='hs-keyword'>{-@</span> <span class='hs-keyword'>data</span> <span class='hs-conid'>L</span> <span class='hs-keyglyph'>[</span><span class='hs-varid'>llen</span><span class='hs-keyglyph'>]</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=</span> <span class='hs-conid'>N</span> 
-<span class=hs-linenum>192: </span>                    <span class='hs-keyglyph'>|</span> <span class='hs-conid'>C</span> <span class='hs-layout'>(</span><span class='hs-varid'>x</span><span class='hs-keyglyph'>::</span><span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-layout'>(</span><span class='hs-varid'>xs</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span><span class='hs-layout'>)</span> <span class='hs-keyword'>@-}</span>
-<span class=hs-linenum>193: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>measure</span> <span class='hs-varid'>llen</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>L</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-conid'>Int</span>
-<span class=hs-linenum>194: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>N</span><span class='hs-layout'>)</span>      <span class='hs-keyglyph'>=</span> <span class='hs-num'>0</span>
-<span class=hs-linenum>195: </span>    <span class='hs-varid'>llen</span> <span class='hs-layout'>(</span><span class='hs-conid'>C</span> <span class='hs-varid'>x</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-keyglyph'>=</span> <span class='hs-num'>1</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span>   <span class='hs-keyword'>@-}</span>
-</pre>
-</div>
-
-
-Recur On *Smaller* Inputs
--------------------------
-
-What of *smallness* spread across inputs?
-
-<br>
-
-
-<pre><span class=hs-linenum>208: </span><a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; (L a) -&gt; (L a) -&gt; (L a)</span><span class='hs-definition'>merge</span></a> <a class=annot href="#"><span class=annottext>(L a)</span><span class='hs-varid'>xs</span></a><span class='hs-keyglyph'>@</span><span class='hs-layout'>(</span><span class='hs-varid'>x</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>xs'</span><span class='hs-layout'>)</span> <a class=annot href="#"><span class=annottext>(L a)</span><span class='hs-varid'>ys</span></a><span class='hs-keyglyph'>@</span><span class='hs-layout'>(</span><span class='hs-varid'>y</span> <span class='hs-varop'>`C`</span> <span class='hs-varid'>ys'</span><span class='hs-layout'>)</span>
-<span class=hs-linenum>209: </span>  <span class='hs-keyglyph'>|</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>x1:a -&gt; x2:a -&gt; {x2 : (Bool) | (((Prop x2)) &lt;=&gt; (x1 &lt; x2))}</span><span class='hs-varop'>&lt;</span></a> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a>     <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == x)}</span><span class='hs-varid'>x</span></a> <a class=annot href="#"><span class=annottext>a -&gt; x2:(L a) -&gt; {x2 : (L a) | ((llen x2) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; (L a) -&gt; (L a) -&gt; (L a)</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{x3 : (L a) | (x3 == xs') &amp;&amp; (0 &lt;= (llen x3))}</span><span class='hs-varid'>xs'</span></a> <a class=annot href="#"><span class=annottext>{x5 : (L a) | (x5 == ys) &amp;&amp; (x5 == (Termination.C y ys')) &amp;&amp; ((llen x5) == (1 + (llen ys'))) &amp;&amp; (0 &lt;= (llen x5))}</span><span class='hs-varid'>ys</span></a>
-<span class=hs-linenum>210: </span>  <span class='hs-keyglyph'>|</span> <span class='hs-varid'>otherwise</span> <span class='hs-keyglyph'>=</span> <a class=annot href="#"><span class=annottext>{VV : a | (VV == y)}</span><span class='hs-varid'>y</span></a> <a class=annot href="#"><span class=annottext>a -&gt; x2:(L a) -&gt; {x2 : (L a) | ((llen x2) == (1 + (llen x2)))}</span><span class='hs-varop'>`C`</span></a> <a class=annot href="#"><span class=annottext>forall a. (Ord a) =&gt; (L a) -&gt; (L a) -&gt; (L a)</span><span class='hs-varid'>merge</span></a> <a class=annot href="#"><span class=annottext>{x5 : (L a) | (x5 == xs) &amp;&amp; (x5 == (Termination.C x xs')) &amp;&amp; ((llen x5) == (1 + (llen xs'))) &amp;&amp; (0 &lt;= (llen x5))}</span><span class='hs-varid'>xs</span></a> <a class=annot href="#"><span class=annottext>{x3 : (L a) | (x3 == ys') &amp;&amp; (0 &lt;= (llen x3))}</span><span class='hs-varid'>ys'</span></a>
-</pre>
-
-<br>
-
-<div class="fragment">
-Neither input decreases, but their *sum* does.
-</div>
-
-Recur On *Smaller* Inputs
--------------------------
-
-Neither input decreases, but their *sum* does.
-
-<br>
-
-
-<pre><span class=hs-linenum>227: </span><span class='hs-keyword'>{-@</span> <span class='hs-varid'>merge</span> <span class='hs-keyglyph'>::</span> <span class='hs-conid'>Ord</span> <span class='hs-varid'>a</span> <span class='hs-keyglyph'>=&gt;</span> <span class='hs-varid'>xs</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-varid'>ys</span><span class='hs-conop'>:</span><span class='hs-keyword'>_</span> <span class='hs-keyglyph'>-&gt;</span> <span class='hs-keyword'>_</span> 
-<span class=hs-linenum>228: </span>          <span class='hs-varop'>/</span>  <span class='hs-keyglyph'>[</span><span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>xs</span><span class='hs-layout'>)</span> <span class='hs-varop'>+</span> <span class='hs-layout'>(</span><span class='hs-varid'>llen</span> <span class='hs-varid'>ys</span><span class='hs-layout'>)</span><span class='hs-keyglyph'>]</span>     <span class='hs-keyword'>@-}</span>
-</pre>
-
-<br>
-
-<div class="fragment">
-
-Synthesize *ghost* parameter equal to `[...]`
-
-</div>
-
-<br>
-
-<div class="fragment">
-
-Reduces to single-parameter-decrease case. 
-
-</div>
-
-Important Extensions 
---------------------
-
-- <div class="fragment">Mutual recursion</div>
-
-- <div class="fragment">Lexicographic ordering...</div>
-
-Recap
------
-
-Main idea: Recursive calls on *smaller inputs*
-
-<br>
-
-- <div class="fragment">Use refinements to *check* smaller</div>
-
-- <div class="fragment">Use refinements to *establish* smaller</div>
-
-
-A Curious Circularity
----------------------
-
-<div class="fragment">Refinements require termination ...</div> 
-
-<br>
-
-<div class="fragment">... Termination requires refinements!</div>
-
-<br>
-
-<div class="fragment"> (Meta-theory is tricky, but all ends well.)</div>
-
-
-Recap
------
-
-1. **Refinements:** Types + Predicates
-2. **Subtyping:** SMT Implication
-3. **Measures:** Strengthened Constructors
-4. **Abstract Refinements:* Decouple Invariants 
-5. **Lazy Evaluation:** Requires Termination
-6. **Termination:** Via Refinements!
-7. <div class="fragment">**Evaluation** </div>
-
-
diff --git a/docs/slides/plpv14/lhs/liquid.css b/docs/slides/plpv14/lhs/liquid.css
deleted file mode 100644
--- a/docs/slides/plpv14/lhs/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  // font-size: 120%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/docs/slides/plpv14/pdcreveal.tgz b/docs/slides/plpv14/pdcreveal.tgz
deleted file mode 100644
Binary files a/docs/slides/plpv14/pdcreveal.tgz and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/.gitignore b/docs/slides/plpv14/reveal.js/.gitignore
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.DS_Store
-.svn
-log/*.log
-tmp/**
-node_modules/
-.sass-cache
diff --git a/docs/slides/plpv14/reveal.js/.travis.yml b/docs/slides/plpv14/reveal.js/.travis.yml
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/.travis.yml
+++ /dev/null
@@ -1,5 +0,0 @@
-language: node_js
-node_js:
-  - 0.8
-before_script:
-  - npm install -g grunt-cli
diff --git a/docs/slides/plpv14/reveal.js/Gruntfile.js b/docs/slides/plpv14/reveal.js/Gruntfile.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/Gruntfile.js
+++ /dev/null
@@ -1,137 +0,0 @@
-/* global module:false */
-module.exports = function(grunt) {
-	var port = grunt.option('port') || 8000;
-	// Project configuration
-	grunt.initConfig({
-		pkg: grunt.file.readJSON('package.json'),
-		meta: {
-			banner:
-				'/*!\n' +
-				' * reveal.js <%= pkg.version %> (<%= grunt.template.today("yyyy-mm-dd, HH:MM") %>)\n' +
-				' * http://lab.hakim.se/reveal-js\n' +
-				' * MIT licensed\n' +
-				' *\n' +
-				' * Copyright (C) 2013 Hakim El Hattab, http://hakim.se\n' +
-				' */'
-		},
-
-		qunit: {
-			files: [ 'test/*.html' ]
-		},
-
-		uglify: {
-			options: {
-				banner: '<%= meta.banner %>\n'
-			},
-			build: {
-				src: 'js/reveal.js',
-				dest: 'js/reveal.min.js'
-			}
-		},
-
-		cssmin: {
-			compress: {
-				files: {
-					'css/reveal.min.css': [ 'css/reveal.css' ]
-				}
-			}
-		},
-
-		sass: {
-			main: {
-				files: {
-					'css/theme/default.css': 'css/theme/source/default.scss',
-					'css/theme/beige.css': 'css/theme/source/beige.scss',
-					'css/theme/night.css': 'css/theme/source/night.scss',
-					'css/theme/serif.css': 'css/theme/source/serif.scss',
-					'css/theme/simple.css': 'css/theme/source/simple.scss',
-					'css/theme/sky.css': 'css/theme/source/sky.scss',
-					'css/theme/moon.css': 'css/theme/source/moon.scss',
-					'css/theme/solarized.css': 'css/theme/source/solarized.scss',
-					'css/theme/blood.css': 'css/theme/source/blood.scss'
-				}
-			}
-		},
-
-		jshint: {
-			options: {
-				curly: false,
-				eqeqeq: true,
-				immed: true,
-				latedef: true,
-				newcap: true,
-				noarg: true,
-				sub: true,
-				undef: true,
-				eqnull: true,
-				browser: true,
-				expr: true,
-				globals: {
-					head: false,
-					module: false,
-					console: false,
-					unescape: false
-				}
-			},
-			files: [ 'Gruntfile.js', 'js/reveal.js' ]
-		},
-
-		connect: {
-			server: {
-				options: {
-					port: port,
-					base: '.'
-				}
-			}
-		},
-
-		zip: {
-			'reveal-js-presentation.zip': [
-				'index.html',
-				'css/**',
-				'js/**',
-				'lib/**',
-				'images/**',
-				'plugin/**'
-			]
-		},
-
-		watch: {
-			main: {
-				files: [ 'Gruntfile.js', 'js/reveal.js', 'css/reveal.css' ],
-				tasks: 'default'
-			},
-			theme: {
-				files: [ 'css/theme/source/*.scss', 'css/theme/template/*.scss' ],
-				tasks: 'themes'
-			}
-		}
-
-	});
-
-	// Dependencies
-	grunt.loadNpmTasks( 'grunt-contrib-qunit' );
-	grunt.loadNpmTasks( 'grunt-contrib-jshint' );
-	grunt.loadNpmTasks( 'grunt-contrib-cssmin' );
-	grunt.loadNpmTasks( 'grunt-contrib-uglify' );
-	grunt.loadNpmTasks( 'grunt-contrib-watch' );
-	grunt.loadNpmTasks( 'grunt-contrib-sass' );
-	grunt.loadNpmTasks( 'grunt-contrib-connect' );
-	grunt.loadNpmTasks( 'grunt-zip' );
-
-	// Default task
-	grunt.registerTask( 'default', [ 'jshint', 'cssmin', 'uglify', 'qunit' ] );
-
-	// Theme task
-	grunt.registerTask( 'themes', [ 'sass' ] );
-
-	// Package presentation to archive
-	grunt.registerTask( 'package', [ 'default', 'zip' ] );
-
-	// Serve presentation locally
-	grunt.registerTask( 'serve', [ 'connect', 'watch' ] );
-
-	// Run tests
-	grunt.registerTask( 'test', [ 'jshint', 'qunit' ] );
-
-};
diff --git a/docs/slides/plpv14/reveal.js/LICENSE b/docs/slides/plpv14/reveal.js/LICENSE
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/LICENSE
+++ /dev/null
@@ -1,19 +0,0 @@
-Copyright (C) 2013 Hakim El Hattab, http://hakim.se
-
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
diff --git a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.eot b/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.eot
deleted file mode 100644
Binary files a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.eot and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.svg b/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.svg
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.svg
+++ /dev/null
@@ -1,230 +0,0 @@
-<?xml version="1.0" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
-<svg xmlns="http://www.w3.org/2000/svg">
-<metadata></metadata>
-<defs>
-<font id="LeagueGothicRegular" horiz-adv-x="724" >
-<font-face units-per-em="2048" ascent="1505" descent="-543" />
-<missing-glyph horiz-adv-x="315" />
-<glyph horiz-adv-x="0" />
-<glyph horiz-adv-x="2048" />
-<glyph unicode="&#xd;" horiz-adv-x="682" />
-<glyph unicode=" "  horiz-adv-x="315" />
-<glyph unicode="&#x09;" horiz-adv-x="315" />
-<glyph unicode="&#xa0;" horiz-adv-x="315" />
-<glyph unicode="!" horiz-adv-x="387" d="M74 1505h239l-55 -1099h-129zM86 0v227h215v-227h-215z" />
-<glyph unicode="&#x22;" horiz-adv-x="329" d="M57 1505h215l-30 -551h-154z" />
-<glyph unicode="#" horiz-adv-x="1232" d="M49 438l27 195h198l37 258h-196l26 194h197l57 420h197l-57 -420h260l57 420h197l-58 -420h193l-27 -194h-192l-37 -258h190l-26 -195h-191l-59 -438h-197l60 438h-261l-59 -438h-197l60 438h-199zM471 633h260l37 258h-260z" />
-<glyph unicode="$" horiz-adv-x="692" d="M37 358l192 13q12 -186 129 -187q88 0 93 185q0 74 -61 175q-21 36 -34 53l-40 55q-28 38 -65.5 90t-70.5 101.5t-70.5 141.5t-37.5 170q4 293 215 342v131h123v-125q201 -23 235 -282l-192 -25q-14 129 -93 125q-80 -2 -84 -162q0 -102 94 -227l41 -59q30 -42 37 -52 t33 -48l37 -52q41 -57 68 -109l26 -55q43 -94 43 -186q-4 -338 -245 -369v-217h-123v221q-236 41 -250 352z" />
-<glyph unicode="%" horiz-adv-x="1001" d="M55 911v437q0 110 82 156q33 18 90.5 18t97.5 -44t44 -87l4 -43v-437q0 -107 -81 -157q-32 -19 -77 -19q-129 0 -156 135zM158 0l553 1505h131l-547 -1505h-137zM178 911q-4 -55 37 -55q16 0 25.5 14.5t9.5 26.5v451q2 55 -35 55q-18 0 -27.5 -13.5t-9.5 -27.5v-451z M631 158v436q0 108 81 156q33 20 79 20q125 0 153 -135l4 -41v-436q0 -110 -80 -156q-32 -18 -90.5 -18t-98.5 43t-44 88zM754 158q-4 -57 37 -58q37 0 34 58v436q2 55 -34 55q-18 0 -27.5 -13t-9.5 -28v-450z" />
-<glyph unicode="&#x26;" horiz-adv-x="854" d="M49 304q0 126 44 225.5t126 222.5q-106 225 -106 442v18q0 94 47 180q70 130 223 130q203 0 252 -215q14 -61 12 -113q0 -162 -205 -434q76 -174 148 -285q33 96 47 211l176 -33q-16 -213 -92 -358q55 -63 92 -76v-235q-23 0 -86 37.5t-123 101.5q-123 -139 -252 -139 t-216 97t-87 223zM263 325.5q1 -65.5 28.5 -107.5t78.5 -42t117 86q-88 139 -174 295q-18 -30 -34.5 -98t-15.5 -133.5zM305 1194q0 -111 55 -246q101 156 101 252q-2 2 0 15.5t-2 36t-11 42.5q-19 52 -61.5 52t-62 -38t-19.5 -75v-39z" />
-<glyph unicode="'" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="(" horiz-adv-x="561" d="M66 645q0 143 29.5 292.5t73.5 261.5q92 235 159 343l30 47l162 -84q-38 -53 -86.5 -148t-82.5 -189.5t-61.5 -238t-27.5 -284.5t26.5 -282.5t64.5 -240.5q80 -207 141 -296l26 -39l-162 -84q-41 61 -96 173t-94 217.5t-70.5 257t-31.5 294.5z" />
-<glyph unicode=")" horiz-adv-x="561" d="M41 -213q36 50 85.5 147t83.5 190t61.5 236.5t27.5 284.5t-26.5 282.5t-64.5 240.5q-78 205 -140 298l-27 39l162 84q41 -61 96 -173.5t94 -217t71 -257.5t32 -296t-30 -292.5t-74 -260.5q-92 -233 -159 -342l-30 -47z" />
-<glyph unicode="*" horiz-adv-x="677" d="M74 1251l43 148l164 -70l-19 176h154l-19 -176l164 70l43 -148l-172 -34l115 -138l-131 -80l-78 152l-76 -152l-131 80l115 138z" />
-<glyph unicode="+" horiz-adv-x="1060" d="M74 649v172h370v346h172v-346h371v-172h-371v-346h-172v346h-370z" />
-<glyph unicode="," horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="-" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="." horiz-adv-x="321" d="M53 0v227h215v-227h-215z" />
-<glyph unicode="/" horiz-adv-x="720" d="M8 -147l543 1652h162l-537 -1652h-168z" />
-<glyph unicode="0" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="1" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="2" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="3" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="4" horiz-adv-x="684" d="M25 328v194l323 983h221v-983h103v-194h-103v-328h-202v328h-342zM213 522h154v516h-13z" />
-<glyph unicode="5" horiz-adv-x="704" d="M74 438h221v-59q0 -115 14.5 -159t52 -44t53 45t15.5 156v336q0 111 -70 110q-33 0 -59.5 -40t-26.5 -70h-186v792h535v-219h-344v-313q74 55 127 51q78 0 133 -40t77 -100q35 -98 35 -171v-336q0 -393 -289 -393q-78 0 -133 29.5t-84.5 71.5t-46.5 109q-24 98 -24 244z " />
-<glyph unicode="6" horiz-adv-x="700" d="M66 309v856q0 356 288.5 356.5t288.5 -356.5v-94h-221q0 162 -11.5 210t-53.5 48t-56 -37t-14 -127v-268q59 37 124.5 37t119 -36t75.5 -93q37 -92 37 -189v-307q0 -90 -42 -187q-26 -61 -89 -99.5t-157.5 -38.5t-158 38.5t-88.5 99.5q-42 98 -42 187zM287 244 q0 -20 17.5 -44t49 -24t50 24.5t18.5 43.5v450q0 18 -18.5 43t-49 25t-48 -20.5t-19.5 -41.5v-456z" />
-<glyph unicode="7" horiz-adv-x="589" d="M8 1286v219h557v-221l-221 -1284h-229l225 1286h-332z" />
-<glyph unicode="8" horiz-adv-x="696" d="M53 322v176q0 188 115 297q-102 102 -102 276v127q0 213 147 293q57 31 135 31t135.5 -31t84 -71t42.5 -93q21 -66 21 -129v-127q0 -174 -103 -276q115 -109 115 -297v-176q0 -222 -153 -306q-60 -32 -142 -32t-141.5 32.5t-88 73.5t-44.5 96q-21 69 -21 136zM269 422 q1 -139 16.5 -187.5t57.5 -48.5t59.5 30t21.5 71t4 158t-13.5 174t-66.5 57t-66.5 -57.5t-12.5 -196.5zM284 1116q-1 -123 11 -173t53 -50t53.5 50t12.5 170t-12.5 167t-51.5 47t-52 -44t-14 -167z" />
-<glyph unicode="9" horiz-adv-x="700" d="M57 340v94h222q0 -162 11 -210t53 -48t56.5 37t14.5 127v283q-59 -37 -125 -37t-119 35.5t-76 92.5q-37 96 -37 189v293q0 87 43 188q25 60 88.5 99t157.5 39t157.5 -39t88.5 -99q43 -101 43 -188v-856q0 -356 -289 -356t-289 356zM279 825q0 -18 18 -42.5t49 -24.5 t48.5 20.5t19.5 40.5v443q0 20 -17.5 43.5t-49.5 23.5t-50 -24.5t-18 -42.5v-437z" />
-<glyph unicode=":" horiz-adv-x="362" d="M74 0v227h215v-227h-215zM74 893v227h215v-227h-215z" />
-<glyph unicode=";" horiz-adv-x="362" d="M74 0v227h215v-227l-113 -266h-102l71 266h-71zM74 893v227h215v-227h-215z" />
-<glyph unicode="&#x3c;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="=" horiz-adv-x="1058" d="M74 477v172h911v-172h-911zM74 864v172h911v-172h-911z" />
-<glyph unicode="&#x3e;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="?" horiz-adv-x="645" d="M25 1260q24 67 78 131q105 128 235 122q82 -2 138 -33.5t82 -81.5q46 -88 46 -170.5t-80 -219.5l-57 -96q-18 -32 -42 -106.5t-24 -143.5v-256h-190v256q0 102 24.5 195t48 140t65.5 118t50 105t-9 67.5t-60 34.5t-78 -48t-49 -98zM199 0h215v227h-215v-227z" />
-<glyph unicode="@" horiz-adv-x="872" d="M66 303v889q0 97 73 200q39 56 117 93t184.5 37t184 -37t116.5 -93q74 -105 74 -200v-793h-164l-20 56q-14 -28 -46 -48t-67 -20q-145 0 -145 172v485q0 170 145 170q71 0 113 -67v45q0 51 -45 104.5t-145.5 53.5t-145.5 -53.5t-45 -104.5v-889q0 -53 44 -103t153.5 -50 t160.5 63l152 -86q-109 -143 -320 -143q-106 0 -184 35.5t-117 90.5q-73 102 -73 193zM535 573q0 -53 48 -53t48 53v455q0 53 -48 53t-48 -53v-455z" />
-<glyph unicode="A" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="B" horiz-adv-x="745" d="M82 0v1505h194q205 0 304.5 -91t99.5 -308q0 -106 -29.5 -175t-107.5 -136q14 -5 47 -38.5t54 -71.5q52 -97 52 -259q0 -414 -342 -426h-272zM303 219q74 0 109 31q55 56 55 211t-63 195q-42 26 -93 26h-8v-463zM303 885q87 0 119 39q45 55 45 138t-14.5 124t-30.5 60.5 t-45 28.5q-35 11 -74 11v-401z" />
-<glyph unicode="C" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175z" />
-<glyph unicode="D" horiz-adv-x="761" d="M82 0v1505h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174zM303 221q117 0 140.5 78t23.5 399v111q0 322 -23.5 398.5t-140.5 76.5v-1063z" />
-<glyph unicode="E" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506z" />
-<glyph unicode="F" horiz-adv-x="616" d="M82 0v1505h526v-227h-305v-395h205v-228h-205v-655h-221z" />
-<glyph unicode="G" horiz-adv-x="737" d="M67 271.5q0 26.5 1 37.5v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-231h-221v231q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-905q0 -46 19.5 -78.5t54 -32.5t53 28t18.5 54l2 29v272h-88v187h309v-750h-131l-26 72 q-70 -88 -172 -88q-203 0 -250 213q-11 48 -11 74.5z" />
-<glyph unicode="H" horiz-adv-x="778" d="M82 0v1505h221v-622h172v622h221v-1505h-221v655h-172v-655h-221z" />
-<glyph unicode="I" horiz-adv-x="385" d="M82 0v1505h221v-1505h-221z" />
-<glyph unicode="J" horiz-adv-x="423" d="M12 -14v217q4 0 12.5 -1t29 2t35.5 12t28.5 34.5t13.5 62.5v1192h221v-1226q0 -137 -74 -216q-74 -78 -223 -78h-4q-19 0 -39 1z" />
-<glyph unicode="K" horiz-adv-x="768" d="M82 0v1505h221v-526h8l195 526h215l-203 -495l230 -1010h-216l-153 655l-6 31h-6l-64 -154v-532h-221z" />
-<glyph unicode="L" horiz-adv-x="604" d="M82 0v1505h221v-1300h293v-205h-514z" />
-<glyph unicode="M" horiz-adv-x="991" d="M82 0v1505h270l131 -688l11 -80h4l10 80l131 688h270v-1505h-204v1010h-13l-149 -1010h-94l-142 946l-8 64h-12v-1010h-205z" />
-<glyph unicode="N" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203z" />
-<glyph unicode="O" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5 t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="P" horiz-adv-x="720" d="M82 0v1505h221q166 0 277.5 -105.5t111.5 -345t-111.5 -346t-277.5 -106.5v-602h-221zM303 827q102 0 134 45.5t32 175.5t-33 181t-133 51v-453z" />
-<glyph unicode="Q" horiz-adv-x="729" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -94 -45 -182q33 -43 88 -53v-189q-160 0 -227 117q-55 -18 -125 -18t-130 33.5t-88 81.5q-55 94 -60 175zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887 q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="R" horiz-adv-x="739" d="M82 0v1505h221q377 0 377 -434q0 -258 -123 -342l141 -729h-221l-115 635h-59v-635h-221zM303 840q117 0 149 98q15 49 15 125t-15.5 125t-45.5 68q-44 30 -103 30v-446z" />
-<glyph unicode="S" horiz-adv-x="702" d="M37 422l217 20q0 -256 104 -256q90 0 91 166q0 59 -32 117.5t-45 79.5l-54 79q-40 58 -77 113t-73.5 117t-68 148.5t-31.5 162.5q0 139 71.5 245t216.5 108h10q88 0 152 -36t94 -100q54 -120 54 -264l-217 -20q0 217 -89 217q-75 -2 -75 -146q0 -59 23 -105 q32 -66 58 -104l197 -296q31 -49 67 -139.5t36 -166.5q0 -378 -306 -378h-2q-229 0 -290 188q-31 99 -31 250z" />
-<glyph unicode="T" horiz-adv-x="647" d="M4 1278v227h639v-227h-209v-1278h-221v1278h-209z" />
-<glyph unicode="U" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175z" />
-<glyph unicode="V" horiz-adv-x="716" d="M18 1505h215l111 -827l8 -64h13l118 891h215l-229 -1505h-221z" />
-<glyph unicode="W" horiz-adv-x="1036" d="M25 1505h204l88 -782l5 -49h16l100 831h160l100 -831h17l92 831h205l-203 -1505h-172l-115 801h-8l-115 -801h-172z" />
-<glyph unicode="X" horiz-adv-x="737" d="M16 0l244 791l-240 714h218l120 -381l7 -18h8l127 399h217l-240 -714l244 -791h-217l-127 449l-4 18h-8l-132 -467h-217z" />
-<glyph unicode="Y" horiz-adv-x="700" d="M14 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641z" />
-<glyph unicode="Z" horiz-adv-x="626" d="M20 0v238l347 1048h-297v219h536v-219l-352 -1067h352v-219h-586z" />
-<glyph unicode="[" horiz-adv-x="538" d="M82 -213v1718h399v-196h-202v-1325h202v-197h-399z" />
-<glyph unicode="\" horiz-adv-x="792" d="M8 1692h162l614 -1872h-168z" />
-<glyph unicode="]" horiz-adv-x="538" d="M57 -16h203v1325h-203v196h400v-1718h-400v197z" />
-<glyph unicode="^" horiz-adv-x="1101" d="M53 809l381 696h234l381 -696h-199l-299 543l-299 -543h-199z" />
-<glyph unicode="_" horiz-adv-x="1210" d="M74 -154h1063v-172h-1063v172z" />
-<glyph unicode="`" horiz-adv-x="1024" d="M293 1489h215l106 -184h-159z" />
-<glyph unicode="a" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="b" horiz-adv-x="686" d="M82 0v1505h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-74h-207zM289 246q0 -29 19.5 -48.5t42 -19.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -21.5t-19.5 -46.5v-628z" />
-<glyph unicode="c" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331z" />
-<glyph unicode="d" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v458h207v-1505h-207v74q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 19.5t19.5 48.5v628q0 25 -19.5 46.5t-42 21.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="e" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="f" horiz-adv-x="475" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-65 0 -65 -175v-5v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="g" horiz-adv-x="700" d="M12 -184q0 94 162 170q-125 35 -125 149q0 45 40 93t89 75q-51 35 -80.5 95.5t-34.5 105.5l-4 43v305q0 35 16.5 91t41 94t79 69t126.5 31q135 0 206 -103q102 102 170 103v-185q-72 0 -120 -24l10 -70v-317q0 -37 -17.5 -90.5t-42 -90t-79 -66.5t-104.5 -30t-62 2 q-29 -25 -29 -46t11 -33.5t42 -20.5t45.5 -10t65.5 -10.5t95 -21.5t89 -41q96 -60 96 -205t-103 -212q-100 -65 -250 -65h-9q-156 2 -240 50t-84 165zM213 -150q0 -77 132 -77h3q59 0 108.5 19t49.5 54t-20.5 52.5t-90.5 29.5l-106 21q-76 -43 -76 -99zM262 509 q0 -17 15.5 -45t44.5 -28q63 6 63 101v307q-2 0 0 10q1 3 1 7q0 8 -3 19q-4 15 -9 30q-11 36 -46 36t-50.5 -25.5t-15.5 -52.5v-359z" />
-<glyph unicode="h" horiz-adv-x="690" d="M82 0v1505h207v-479l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="i" horiz-adv-x="370" d="M82 0v1120h207v-1120h-207zM82 1298v207h207v-207h-207z" />
-<glyph unicode="j" horiz-adv-x="364" d="M-45 -182q29 -8 57 -8q64 0 64 142v1168h207v-1149q0 -186 -51 -266q-23 -35 -71 -62.5t-115 -27.5t-91 12v191zM76 1298v207h207v-207h-207z" />
-<glyph unicode="k" horiz-adv-x="641" d="M82 0v1505h207v-714h10l113 329h186l-149 -364l188 -756h-199l-102 453l-4 16h-10l-33 -82v-387h-207z" />
-<glyph unicode="l" horiz-adv-x="370" d="M82 0v1505h207v-1505h-207z" />
-<glyph unicode="m" horiz-adv-x="1021" d="M82 0v1120h207v-94q2 0 33 30q80 81 139 81q100 0 139 -125q125 125 194.5 125t109.5 -69t40 -150v-918h-194v887q-1 49 -56 49q-41 0 -78 -53v-883h-194v887q0 49 -55 49q-41 0 -78 -53v-883h-207z" />
-<glyph unicode="n" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207z" />
-<glyph unicode="o" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="p" horiz-adv-x="686" d="M82 -385v1505h207v-73q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="q" horiz-adv-x="686" d="M74 203v715q0 82 41 150.5t118 68.5q33 0 74 -22.5t66 -45.5l24 -22v73h207v-1505h-207v459q-88 -90 -165 -90t-117.5 68.5t-40.5 150.5zM281 246q0 -29 16 -48.5t38.5 -19.5t42 21.5t19.5 46.5v628q0 29 -19.5 48.5t-42 19.5t-38.5 -19.5t-16 -48.5v-628z" />
-<glyph unicode="r" horiz-adv-x="503" d="M82 0v1120h207v-125q8 41 58.5 91.5t148.5 50.5v-230q-34 11 -77 11t-86.5 -39t-43.5 -101v-778h-207z" />
-<glyph unicode="s" horiz-adv-x="630" d="M37 326h192q0 -170 97 -170q71 0 71 131q0 78 -129 202q-68 66 -98.5 99t-64 101.5t-33.5 134t12 114.5t39 95q59 100 201 104h11q161 0 211 -105q42 -86 42 -198h-193q0 131 -67 131q-63 -2 -64 -131q0 -33 23.5 -73t45 -62.5t66.5 -65.5q190 -182 191 -342 q0 -123 -64.5 -215t-199.5 -92q-197 0 -260 170q-29 76 -29 172z" />
-<glyph unicode="t" horiz-adv-x="501" d="M20 934v186h105v277h207v-277h141v-186h-141v-557q0 -184 65 -184l76 8v-203q-45 -14 -112 -14t-114.5 28.5t-70 64.5t-34.5 96q-17 79 -17 187v574h-105z" />
-<glyph unicode="u" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5z" />
-<glyph unicode="v" horiz-adv-x="602" d="M16 1120h201l68 -649l8 -72h16l76 721h201l-183 -1120h-204z" />
-<glyph unicode="w" horiz-adv-x="905" d="M20 1120h189l65 -585l9 -64h12l96 649h123l86 -585l10 -64h13l73 649h189l-166 -1120h-172l-80 535l-10 63h-8l-91 -598h-172z" />
-<glyph unicode="x" horiz-adv-x="618" d="M16 0l193 578l-176 542h194l74 -262l6 -31h4l6 31l74 262h195l-176 -542l192 -578h-201l-84 283l-6 30h-4l-6 -30l-84 -283h-201z" />
-<glyph unicode="y" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5z" />
-<glyph unicode="z" horiz-adv-x="532" d="M12 0v168l285 764h-240v188h459v-168l-285 -764h285v-188h-504z" />
-<glyph unicode="{" horiz-adv-x="688" d="M61 453v163q72 0 102 49.5t30 90.5v397q0 223 96 298t342 71v-172q-135 2 -188.5 -38t-53.5 -159v-397q0 -143 -127 -221q127 -82 127 -222v-397q0 -119 53.5 -159t188.5 -38v-172q-246 -4 -342 71t-96 298v397q0 57 -41 97.5t-91 42.5z" />
-<glyph unicode="|" horiz-adv-x="356" d="M82 -512v2204h192v-2204h-192z" />
-<glyph unicode="}" horiz-adv-x="688" d="M57 -281q135 -2 188.5 38t53.5 159v397q0 139 127 222q-127 78 -127 221v397q0 119 -53 159t-189 38v172q246 4 342.5 -71t96.5 -298v-397q0 -63 41 -101.5t90 -38.5v-163q-72 -4 -101.5 -52.5t-29.5 -87.5v-397q0 -223 -96.5 -298t-342.5 -71v172z" />
-<glyph unicode="~" horiz-adv-x="1280" d="M113 1352q35 106 115 200q34 41 94.5 74t121 33t116.5 -18.5t82 -33t83 -51.5q106 -72 174 -71q109 0 178 153l13 29l135 -57q-63 -189 -206 -276q-56 -34 -120 -34q-121 0 -272 101q-115 74 -178.5 74t-113.5 -45.5t-69 -90.5l-18 -45z" />
-<glyph unicode="&#xa1;" horiz-adv-x="387" d="M74 -385l55 1100h129l55 -1100h-239zM86 893v227h215v-227h-215z" />
-<glyph unicode="&#xa2;" horiz-adv-x="636" d="M66 508v489q0 297 208 328v242h123v-244q98 -16 144.5 -88t46.5 -227v-88h-189v135q0 90 -72.5 90t-72.5 -90v-604q0 -90 72 -91q74 0 73 91v155h189v-108q0 -156 -46 -228.5t-145 -89.5v-303h-123v301q-209 31 -208 330z" />
-<glyph unicode="&#xa3;" horiz-adv-x="817" d="M4 63q8 20 23.5 53.5t70 91.5t117.5 68q37 111 37 189t-31 184h-188v137h147l-6 21q-78 254 -78 333t15.5 140t48.5 116q72 122 231 126q190 4 267 -126q65 -108 65 -276h-213q0 201 -115 197q-47 -2 -68.5 -51t-21.5 -139.5t70 -315.5l6 -25h211v-137h-174 q25 -100 24.5 -189t-57.5 -204q16 -8 44 -24q59 -35 89 -35q74 4 82 190l188 -22q-12 -182 -81.5 -281.5t-169.5 -99.5q-51 0 -143.5 51t-127.5 51t-63.5 -25.5t-40.5 -52.5l-12 -24z" />
-<glyph unicode="&#xa5;" horiz-adv-x="720" d="M25 1505h217l110 -481l6 -14h4l7 14l110 481h217l-196 -753h147v-138h-176v-137h176v-137h-176v-340h-221v340h-176v137h176v137h-176v138h147z" />
-<glyph unicode="&#xa8;" horiz-adv-x="1024" d="M272 1305v200h191v-200h-191zM561 1305v200h191v-200h-191z" />
-<glyph unicode="&#xa9;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM627 487v531q0 122 97 174q40 22 95 22 q147 0 182 -147l7 -49v-125h-138v142q0 11 -12 28.5t-37 17.5q-47 -2 -49 -63v-531q0 -63 49 -63q53 2 49 63v125h138v-125q0 -68 -40 -127q-18 -26 -57 -47.5t-108.5 -21.5t-117.5 49t-54 98z" />
-<glyph unicode="&#xaa;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xad;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#xae;" horiz-adv-x="1644" d="M53 751.5q0 317.5 225.5 544t543 226.5t543.5 -226.5t226 -544t-226 -542.5t-543.5 -225t-543 225t-225.5 542.5zM172 751.5q0 -266.5 191.5 -458t457.5 -191.5t459 191.5t193 459t-191.5 459t-459 191.5t-459 -192.5t-191.5 -459zM625 313v879h196q231 0 232 -258 q0 -76 -16.5 -125t-71.5 -96l106 -400h-151l-95 365h-55v-365h-145zM770 805h45q43 0 65.5 21.5t27.5 45t5 61.5t-5 62.5t-27.5 46t-65.5 21.5h-45v-258z" />
-<glyph unicode="&#xaf;" horiz-adv-x="1024" d="M313 1315v162h398v-162h-398z" />
-<glyph unicode="&#xb2;" horiz-adv-x="731" d="M55 0v219l39 62q25 39 88.5 152.5t112.5 220t91 241.5t44 238q0 184 -73.5 184t-73.5 -184v-105h-222v105q0 389 295 389t295 -375q0 -336 -346 -928h350v-219h-600z" />
-<glyph unicode="&#xb3;" horiz-adv-x="686" d="M45 1071q0 249 63 343q29 42 84.5 75t134.5 33t136 -31t84.5 -71t44.5 -92q22 -71 22 -130q0 -291 -108 -399q127 -100 127 -414q0 -68 -19.5 -145.5t-47 -128t-85 -89t-136.5 -38.5t-135 31.5t-86 75.5t-48 113q-23 91 -23 230h217q2 -150 17.5 -203t59.5 -53t56.5 50.5 t12.5 104.5t1 102t0 63q-6 82 -14 95l-18 33q-12 22 -29 29q-55 22 -108 25h-19v184q133 7 156 73q12 34 12 91v105q0 146 -29 177q-16 17 -40 17q-41 0 -52.5 -49t-13.5 -207h-217z" />
-<glyph unicode="&#xb4;" horiz-adv-x="1024" d="M410 1305l106 184h215l-162 -184h-159z" />
-<glyph unicode="&#xb7;" horiz-adv-x="215" d="M0 649v228h215v-228h-215z" />
-<glyph unicode="&#xb8;" horiz-adv-x="1024" d="M426 -111h172v-141l-45 -133h-104l40 133h-63v141z" />
-<glyph unicode="&#xb9;" horiz-adv-x="475" d="M25 1180v141q129 25 205 130q16 21 30 54h133v-1505h-221v1180h-147z" />
-<glyph unicode="&#xba;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM257 259q0 -17 9 -44q18 -49 62 -49q70 10 71 113v563l1 19q0 19 -10 45q-18 50 -62 50 q-68 -10 -70 -114v-563q1 -1 1 -4z" />
-<glyph unicode="&#xbf;" horiz-adv-x="645" d="M41 -106q0 82 80 219l57 95q18 32 42 106.5t24 144.5v256h190v-256q0 -102 -24.5 -195.5t-48 -140.5t-65.5 -118t-50 -104.5t9 -67.5t60 -35t78 48.5t49 98.5l179 -84q-24 -66 -78 -132q-104 -126 -236 -122q-163 4 -220 115q-46 90 -46 172zM231 893v227h215v-227h-215z " />
-<glyph unicode="&#xc0;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM141 1823h215l107 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc1;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM293 1638l106 185h215l-161 -185h-160zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc2;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM133 1638l141 185h220l141 -185h-189l-63 72l-61 -72h-189zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc3;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM184 1632v152q49 39 95.5 39t104.5 -18.5t100.5 -19.5t97.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-98 19.5t-102 -33zM307 541h152l-64 475l-6 39h-12z" />
-<glyph unicode="&#xc4;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM143 1638v201h191v-201h-191zM307 541h152l-64 475l-6 39h-12zM432 1638v201h191v-201h-191z" />
-<glyph unicode="&#xc5;" horiz-adv-x="765" d="M20 0l228 1505h270l227 -1505h-215l-41 307h-213l-40 -307h-216zM231 1761.5q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM307 541h152l-64 475l-6 39h-12zM309 1761.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50 t-23.5 50t-52.5 21.5t-52.5 -21.5t-23.5 -50z" />
-<glyph unicode="&#xc6;" horiz-adv-x="1099" d="M16 0l420 1505h623v-227h-285v-395h205v-242h-205v-414h285v-227h-506v307h-227l-90 -307h-220zM393 541h160v514h-10z" />
-<glyph unicode="&#xc7;" horiz-adv-x="708" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-207h-206v207q-2 0 0 11.5t-3.5 27.5t-12.5 33q-17 39 -68 39q-70 -10 -78 -111v-887q0 -43 21.5 -76.5t59.5 -33.5t59.5 27.5t21.5 56.5v233h206v-207q0 -42 -17 -106t-45 -107 t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM268 -111v-141h64l-41 -133h104l45 133v141h-172z" />
-<glyph unicode="&#xc8;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM111 1823h215l106 -185h-160z" />
-<glyph unicode="&#xc9;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM236 1638l106 185h215l-162 -185h-159z" />
-<glyph unicode="&#xca;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM84 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xcb;" horiz-adv-x="628" d="M82 0v1505h506v-227h-285v-395h205v-242h-205v-414h285v-227h-506zM94 1638v201h191v-201h-191zM383 1638v201h190v-201h-190z" />
-<glyph unicode="&#xcc;" horiz-adv-x="401" d="M-6 1823h215l106 -185h-159zM98 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcd;" horiz-adv-x="401" d="M82 0v1505h221v-1505h-221zM86 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xce;" horiz-adv-x="370" d="M-66 1638l142 185h219l141 -185h-188l-64 72l-61 -72h-189zM74 0v1505h221v-1505h-221z" />
-<glyph unicode="&#xcf;" horiz-adv-x="372" d="M-53 1638v201h190v-201h-190zM76 0v1505h221v-1505h-221zM236 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd0;" horiz-adv-x="761" d="M20 655v228h62v622h174q270 0 346 -113q31 -46 50.5 -95.5t28.5 -139.5t12 -177t3 -228.5t-3 -228.5t-12 -176t-28.5 -138t-50.5 -95t-80 -68q-106 -46 -266 -46h-174v655h-62zM303 221q117 0 141.5 81t22.5 452q2 371 -22.5 450.5t-141.5 79.5v-401h84v-228h-84v-434z " />
-<glyph unicode="&#xd1;" horiz-adv-x="808" d="M82 0v1505h197l215 -784l18 -70h12v854h203v-1505h-197l-215 784l-18 70h-12v-854h-203zM207 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39t-102.5 19.5t-100 19.5t-99.5 -33z" />
-<glyph unicode="&#xd2;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM121 1823h215l106 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd3;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM285 1638l106 185h215l-162 -185h-159zM289 309q0 -46 19.5 -78t54 -32t53 27.5 t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd4;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM113 1638l141 185h219l141 -185h-188l-64 72l-61 -72h-188zM289 309q0 -46 19.5 -78 t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd5;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM164 1632v152q49 39 95 39t104.5 -18.5t102.5 -19.5t95 32v-152q-51 -39 -95 -39 t-102.5 19.5t-100 19.5t-99.5 -33zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887z" />
-<glyph unicode="&#xd6;" d="M68 309v887q0 42 17 106t45 107t88.5 78t144 35t144 -34t88.5 -81q55 -93 60 -178l2 -33v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-144 -34.5t-144 33.5t-88.5 81.5q-55 94 -60 175zM123 1638v201h190v-201h-190zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v887q0 46 -19.5 78.5t-54 32.5t-53 -28t-18.5 -54l-2 -29v-887zM412 1638v201h190v-201h-190z" />
-<glyph unicode="&#xd8;" d="M59 -20l47 157q-36 74 -36 148l-2 24v887q0 42 17 106t45 107t88.5 78t148 35t153.5 -43l15 47h122l-45 -150q43 -84 43 -155l2 -25v-887q0 -42 -17 -106t-45 -107t-88.5 -77.5t-150.5 -34.5t-153 43l-15 -47h-129zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5 l2 26v488zM289 727l147 479q-8 100 -74 101q-35 0 -53 -28t-18 -54l-2 -29v-469z" />
-<glyph unicode="&#xd9;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM145 1823h215l107 -185h-160z" />
-<glyph unicode="&#xda;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM307 1638l107 185h215l-162 -185h-160z" />
-<glyph unicode="&#xdb;" horiz-adv-x="749" d="M80 309q0 -42 17.5 -106t45 -107t88 -77.5t144.5 -34.5t144.5 33.5t88.5 81.5q55 97 60 175l2 35v1196h-221v-1196q0 -44 -19.5 -77t-54.5 -33t-53.5 27.5t-18.5 56.5l-2 26v1196h-221v-1196zM125 1638l141 185h219l142 -185h-189l-63 72l-62 -72h-188z" />
-<glyph unicode="&#xdc;" horiz-adv-x="749" d="M80 309v1196h221v-1196q0 -46 19.5 -78t54.5 -32t53 27.5t18 56.5l3 26v1196h221v-1196q0 -42 -17.5 -106t-45 -107t-88 -77.5t-144.5 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175zM135 1638v201h191v-201h-191zM424 1638v201h190v-201h-190z" />
-<glyph unicode="&#xdd;" horiz-adv-x="704" d="M16 1505l226 -864v-641h221v641l225 864h-217l-111 -481l-6 -14h-4l-6 14l-111 481h-217zM254 1638l106 185h215l-161 -185h-160z" />
-<glyph unicode="&#xde;" d="M82 0v1505h219v-241h2q166 0 277.5 -105.5t111.5 -345.5t-111.5 -346.5t-277.5 -106.5v-360h-221zM303 586q102 0 134 45t32 175t-33 181t-133 51v-452z" />
-<glyph unicode="&#xdf;" horiz-adv-x="733" d="M66 0v1235q0 123 70.5 205t206.5 82t204.5 -81t68.5 -197t-88 -181q152 -88 152 -488q0 -362 -87 -475q-46 -59 -102.5 -79.5t-144.5 -20.5v193q45 0 70 25q57 57 57 357q0 316 -57 377q-25 27 -70 27v141q35 0 60.5 33t25.5 84q0 100 -86 100q-74 0 -74 -102v-1235h-206 z" />
-<glyph unicode="&#xe0;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1489h215 l107 -184h-160zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe1;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM252 291 q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xe2;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM90 1305 l141 184h220l141 -184h-189l-63 71l-61 -71h-189zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe3;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM143 1305v151 q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250z" />
-<glyph unicode="&#xe4;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM102 1305v200 h191v-200h-191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM391 1305v200h191v-200h-191z" />
-<glyph unicode="&#xe5;" horiz-adv-x="681" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t190 88t184.5 -74t75 -180v-688q0 -109 14 -195h-202q-18 20 -19 90h-14q-20 -37 -65.5 -71.5t-102.5 -34.5t-110.5 60t-53.5 191zM188 1421.5 q0 61.5 45.5 102.5t109 41t107.5 -41t44 -102.5t-44 -102.5t-107.5 -41t-109 41t-45.5 102.5zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM266 1421.5q0 -28.5 23.5 -50t52.5 -21.5t52.5 21.5t23.5 50t-23.5 50t-52.5 21.5t-52.5 -21.5 t-23.5 -50z" />
-<glyph unicode="&#xe6;" horiz-adv-x="989" d="M49 235q0 131 34 212t83 124t98 73t88 50.5t43 36.5v123q0 102 -57 102q-41 0 -50 -42t-9 -84v-39h-207v47q0 123 80.5 211t197.5 88q84 0 152 -52q66 51 162 52q199 0 251 -197q14 -51 15 -92v-326h-342v-256q0 -60 38 -88q17 -12 38 -12q70 10 73 113v122h193v-129 q0 -37 -16.5 -93t-41 -95t-80 -69.5t-130.5 -30.5q-158 0 -226 131q-102 -131 -221 -131q-59 0 -112.5 60t-53.5 191zM252 291q0 -104 57 -105q35 0 60.5 19.5t25.5 48.5v287q-143 -62 -143 -250zM588 684h149v158q0 48 -19.5 81t-53 33t-53 -28.5t-21.5 -57.5l-2 -28v-158z " />
-<glyph unicode="&#xe7;" horiz-adv-x="645" d="M66 315v490q0 332 264 332q137 0 201.5 -71t64.5 -251v-88h-207v135q0 51 -12 70.5t-47 19.5q-58 0 -58 -90v-604q0 -90 58 -90q35 0 47 19.5t12 70.5v156h207v-109q0 -180 -64.5 -250.5t-201.5 -70.5q-264 0 -264 331zM238 -111v-141h63l-41 -133h105l45 133v141h-172z " />
-<glyph unicode="&#xe8;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM102 1489h215l107 -184 h-160zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xe9;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM258 684h150v158 q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM264 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xea;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM80 1305l141 184h219 l142 -184h-189l-63 71l-62 -71h-188zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158z" />
-<glyph unicode="&#xeb;" horiz-adv-x="659" d="M66 279v563q0 36 16 94.5t42 97.5t81 71t129 32q199 0 252 -197q14 -51 14 -92v-326h-342v-256q0 -59 39 -88q16 -12 37 -12q70 10 74 113v122h192v-129q0 -37 -16.5 -93t-41 -95t-79.5 -69.5t-130 -30.5t-130.5 30.5t-80.5 73.5q-49 87 -54 160zM90 1305v200h191v-200 h-191zM258 684h150v158q0 48 -19.5 81t-53.5 33t-53.5 -28.5t-21.5 -57.5l-2 -28v-158zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xec;" horiz-adv-x="370" d="M-33 1489h215l107 -184h-160zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xed;" horiz-adv-x="370" d="M82 0h207v1120h-207v-1120zM82 1305l106 184h215l-161 -184h-160z" />
-<glyph unicode="&#xee;" horiz-adv-x="370" d="M-66 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189zM82 0h207v1120h-207v-1120z" />
-<glyph unicode="&#xef;" horiz-adv-x="372" d="M-53 1305v200h190v-200h-190zM82 0v1120h207v-1120h-207zM236 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf0;" horiz-adv-x="673" d="M76 279v579q0 279 172 279q63 0 155 -78q-12 109 -51 203l-82 -72l-55 63l100 88l-45 66l109 100q25 -27 53 -61l94 82l56 -66l-101 -88q125 -201 125 -446v-656q0 -102 -56 -188q-26 -39 -80 -69.5t-129 -30.5t-130 30.5t-80 73.5q-53 91 -53 160zM270 267.5 q-2 -11.5 2 -29t10 -34.5q16 -38 58 -38q70 10 72 113v563q-2 0 0 11t-2 28.5t-10 34.5q-16 40 -60 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf1;" horiz-adv-x="690" d="M82 0v1120h207v-94l32 32q79 79 145.5 79t106 -69t39.5 -150v-918h-206v887q-1 49 -50 49q-41 0 -67 -53v-883h-207zM147 1305v151q49 39 95.5 39t105 -18.5t97 -19.5t100.5 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#xf2;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM98 1489h215l107 -184h-160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf3;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5 t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM260 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xf4;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM78 1305l141 184h219l142 -184h-189l-63 71l-62 -71h-188zM258 267.5q-2 -11.5 2 -29 t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf5;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM131 1305v151q49 39 95.5 39t104.5 -18.5t98.5 -19.5t98.5 32v-152q-51 -39 -95 -39 t-102 19.5t-101 19.5t-99 -32zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5z" />
-<glyph unicode="&#xf6;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t129.5 32q199 0 252 -197q14 -51 14 -92v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-129 -30.5t-130 30.5t-80.5 73.5q-52 92 -52 160zM90 1305v200h191v-200h-191zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38 q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM379 1305v200h190v-200h-190z" />
-<glyph unicode="&#xf8;" horiz-adv-x="657" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t118 32t117.5 -19l21 80h75l-30 -121q88 -84 94 -229v-576q0 -102 -56 -188q-26 -39 -80.5 -69.5t-120.5 -30.5t-112 16l-20 -78h-80l31 121q-41 39 -64.5 97.5t-25.5 97.5zM258 436l125 486q-18 35 -55 34q-68 -10 -70 -114 v-406zM274 197q17 -31 54 -31q70 10 71 113v403z" />
-<glyph unicode="&#xf9;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM113 1489h215l106 -184h-160z" />
-<glyph unicode="&#xfa;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM274 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfb;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM94 1305l142 184h219l141 -184h-188l-64 71l-61 -71h-189z" />
-<glyph unicode="&#xfc;" horiz-adv-x="690" d="M78 203v917h207v-887q0 -49 49 -49q41 0 67 54v882h207v-1120h-207v94l-31 -32q-78 -78 -145.5 -78t-107 68.5t-39.5 150.5zM106 1305v200h191v-200h-191zM395 1305v200h191v-200h-191z" />
-<glyph unicode="&#xfd;" horiz-adv-x="634" d="M25 1120l190 -1153q0 -68 -36 -123t-97 -61l-49 4v-184q70 -4 92 -4q115 0 192.5 95t94.5 222l198 1204h-202l-82 -688l-4 -57h-9l-4 57l-82 688h-202zM231 1305l107 184h215l-162 -184h-160z" />
-<glyph unicode="&#xfe;" horiz-adv-x="686" d="M82 -385v1890h207v-458q88 90 165 90t117.5 -69t40.5 -150v-715q0 -82 -41 -150.5t-118 -68.5q-33 0 -74 22.5t-66 44.5l-24 23v-459h-207zM289 246q0 -25 19.5 -46.5t42 -21.5t39 19.5t16.5 48.5v628q0 29 -16.5 48.5t-39 19.5t-42 -19.5t-19.5 -48.5v-628z" />
-<glyph unicode="&#xff;" horiz-adv-x="634" d="M25 1120h202l82 -688l4 -57h9l4 57l82 688h202l-198 -1204q-16 -127 -94 -222t-193 -95l-92 4v184q16 -4 49 -4q61 6 97 61.5t36 122.5zM78 1305v200h190v-200h-190zM367 1305v200h190v-200h-190z" />
-<glyph unicode="&#x152;" horiz-adv-x="983" d="M68 309v887q0 41 17 101.5t45 100.5t88.5 73.5t143.5 33.5h580v-227h-285v-395h205v-242h-205v-414h285v-227h-580q-84 0 -144 31.5t-88 78.5q-55 91 -60 169zM289 309q0 -46 19.5 -78t54 -32t53 27.5t18.5 56.5l2 26v901q-6 96 -74 97q-35 0 -53 -28t-18 -54l-2 -29 v-887z" />
-<glyph unicode="&#x153;" horiz-adv-x="995" d="M63 279v563q0 40 15.5 96.5t40 95.5t80 71t145.5 32t156 -60q66 59 170 60q199 0 252 -197q14 -51 14 -92v-326h-342v-250q0 -46 22.5 -76t53.5 -30q70 10 73 113v122h193v-129q0 -37 -16.5 -93t-41 -95t-80 -69.5t-146 -30.5t-154.5 57q-68 -57 -156 -57t-143.5 30.5 t-80.5 73.5q-52 92 -52 160zM258 267.5q-2 -11.5 2 -29t10 -34.5q14 -38 58 -38q70 10 71 113v563q-2 0 0 11t-2 28.5t-10 34.5q-15 40 -59 40q-68 -10 -70 -114v-563q2 0 0 -11.5zM594 684h149v158q0 48 -19 81t-58 33t-55.5 -37.5t-16.5 -70.5v-164z" />
-<glyph unicode="&#x178;" horiz-adv-x="704" d="M16 1505h217l111 -481l6 -14h4l6 14l111 481h217l-225 -864v-641h-221v641zM113 1638v201h190v-201h-190zM401 1638v201h191v-201h-191z" />
-<glyph unicode="&#x2c6;" horiz-adv-x="1021" d="M260 1305l141 184h220l141 -184h-189l-63 71l-61 -71h-189z" />
-<glyph unicode="&#x2dc;" horiz-adv-x="1024" d="M313 1305v151q49 39 95.5 39t104.5 -18.5t97 -19.5t101 32v-152q-51 -39 -95.5 -39t-102.5 19.5t-99 19.5t-101 -32z" />
-<glyph unicode="&#x2000;" horiz-adv-x="952" />
-<glyph unicode="&#x2001;" horiz-adv-x="1905" />
-<glyph unicode="&#x2002;" horiz-adv-x="952" />
-<glyph unicode="&#x2003;" horiz-adv-x="1905" />
-<glyph unicode="&#x2004;" horiz-adv-x="635" />
-<glyph unicode="&#x2005;" horiz-adv-x="476" />
-<glyph unicode="&#x2006;" horiz-adv-x="317" />
-<glyph unicode="&#x2007;" horiz-adv-x="317" />
-<glyph unicode="&#x2008;" horiz-adv-x="238" />
-<glyph unicode="&#x2009;" horiz-adv-x="381" />
-<glyph unicode="&#x200a;" horiz-adv-x="105" />
-<glyph unicode="&#x2010;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2011;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2012;" horiz-adv-x="444" d="M74 455v194h297v-194h-297z" />
-<glyph unicode="&#x2013;" horiz-adv-x="806" d="M74 649v195h659v-195h-659z" />
-<glyph unicode="&#x2014;" horiz-adv-x="972" d="M74 649v195h825v-195h-825z" />
-<glyph unicode="&#x2018;" horiz-adv-x="309" d="M49 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x2019;" horiz-adv-x="309" d="M45 1012l72 266h-72v227h215v-227l-113 -266h-102z" />
-<glyph unicode="&#x201a;" horiz-adv-x="309" d="M45 0v227h215v-227l-113 -266h-102l72 266h-72z" />
-<glyph unicode="&#x201c;" horiz-adv-x="624" d="M53 1012v227l113 266h102l-71 -266h71v-227h-215zM356 1012v227l113 266h102l-71 -266h71v-227h-215z" />
-<glyph unicode="&#x201d;" horiz-adv-x="624" d="M53 1012l72 266h-72v227h215v-227l-112 -266h-103zM356 1012l72 266h-72v227h215v-227l-112 -266h-103z" />
-<glyph unicode="&#x201e;" horiz-adv-x="624" d="M53 0v227h215v-227l-112 -266h-103l72 266h-72zM356 0v227h215v-227l-112 -266h-103l72 266h-72z" />
-<glyph unicode="&#x2022;" horiz-adv-x="663" d="M82 815q0 104 72.5 177t177 73t177.5 -72.5t73 -177t-73 -177.5t-177 -73t-177 73t-73 177z" />
-<glyph unicode="&#x2026;" horiz-adv-x="964" d="M53 0v227h215v-227h-215zM375 0v227h215v-227h-215zM696 0v227h215v-227h-215z" />
-<glyph unicode="&#x202f;" horiz-adv-x="381" />
-<glyph unicode="&#x2039;" horiz-adv-x="1058" d="M74 649v160l911 475v-199l-698 -356l698 -356v-199z" />
-<glyph unicode="&#x203a;" horiz-adv-x="1058" d="M74 174v199l698 356l-698 356v199l911 -475v-160z" />
-<glyph unicode="&#x205f;" horiz-adv-x="476" />
-<glyph unicode="&#x20ac;" horiz-adv-x="813" d="M53 547v137h107v137h-107v137h107v238q0 42 17.5 106t45 107t88 78t144.5 35t144 -34t88 -81q53 -90 61 -178l2 -33v-84h-207v84q-2 0 0 11.5t-3 27.5t-12 33q-18 39 -69 39q-70 -10 -78 -111v-238h233v-137h-233v-137h233v-137h-233v-238q0 -43 21.5 -76.5t59.5 -33.5 t58.5 27.5t20.5 56.5l2 26v84h207v-84q0 -38 -17.5 -104t-45.5 -109t-88 -77.5t-144 -34.5t-144.5 33.5t-88.5 81.5q-55 97 -60 175l-2 35v238h-107z" />
-<glyph unicode="&#x2122;" horiz-adv-x="937" d="M74 1401v104h321v-104h-104v-580h-113v580h-104zM440 821v684h138l67 -319h6l68 319h137v-684h-104v449l-78 -449h-51l-80 449v-449h-103z" />
-<glyph unicode="&#xe000;" horiz-adv-x="1120" d="M0 0v1120h1120v-1120h-1120z" />
-<glyph unicode="&#xfb01;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2v-184q-41 12 -91 12t-69.5 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h358v-1120h-207v934h-151v-934h-207v934h-105z" />
-<glyph unicode="&#xfb02;" horiz-adv-x="772" d="M20 934v186h105v31q0 172 31 231q16 31 42 67q53 71 181 71q59 0 127 -13l20 -2h164v-1505h-207v1329q-37 4 -67.5 4t-50 -18.5t-25.5 -58.5q-8 -52 -8 -107v-29h104v-186h-104v-934h-207v934h-105z" />
-<glyph unicode="&#xfb03;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1120h207v-1120h-207zM1032 1298v207h207v-207h-207z" />
-<glyph unicode="&#xfb04;" horiz-adv-x="1320" d="M20 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934h-207v934h-105zM495 934v186h105v31q0 190 51 270q23 35 71 63.5t115 28.5l97 -14v-178q-27 8 -62 8q-66 0 -65 -180v-29h104v-186h-104v-934 h-207v934h-105zM1032 0v1505h207v-1505h-207z" />
-</font>
-</defs></svg> 
diff --git a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.ttf b/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.ttf
deleted file mode 100644
Binary files a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.ttf and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.woff b/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.woff
deleted file mode 100644
Binary files a/docs/slides/plpv14/reveal.js/lib/font/league_gothic-webfont.woff and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/lib/font/league_gothic_license b/docs/slides/plpv14/reveal.js/lib/font/league_gothic_license
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/lib/font/league_gothic_license
+++ /dev/null
@@ -1,2 +0,0 @@
-SIL Open Font License (OFL)
-http://scripts.sil.org/cms/scripts/page.php?site_id=nrsi&id=OFL
diff --git a/docs/slides/plpv14/reveal.js/plugin/highlight/highlight.js b/docs/slides/plpv14/reveal.js/plugin/highlight/highlight.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/highlight/highlight.js
+++ /dev/null
@@ -1,32 +0,0 @@
-// START CUSTOM REVEAL.JS INTEGRATION
-(function() {
-	if( typeof window.addEventListener === 'function' ) {
-		var hljs_nodes = document.querySelectorAll( 'pre code' );
-
-		for( var i = 0, len = hljs_nodes.length; i < len; i++ ) {
-			var element = hljs_nodes[i];
-
-			// trim whitespace if data-trim attribute is present
-			if( element.hasAttribute( 'data-trim' ) && typeof element.innerHTML.trim === 'function' ) {
-				element.innerHTML = element.innerHTML.trim();
-			}
-
-			// Now escape html unless prevented by author
-			if( ! element.hasAttribute( 'data-noescape' )) {
-				element.innerHTML = element.innerHTML.replace(/</g,"&lt;").replace(/>/g,"&gt;");
-			}
-
-			// re-highlight when focus is lost (for edited code)
-			element.addEventListener( 'focusout', function( event ) {
-				hljs.highlightBlock( event.currentTarget );
-			}, false );
-		}
-	}
-})();
-// END CUSTOM REVEAL.JS INTEGRATION
-
-// highlight.js build includes support for:
-// All languages in master + fsharp
-
-
-var hljs=new function(){function l(o){return o.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;")}function b(p){for(var o=p.firstChild;o;o=o.nextSibling){if(o.nodeName=="CODE"){return o}if(!(o.nodeType==3&&o.nodeValue.match(/\s+/))){break}}}function h(p,o){return Array.prototype.map.call(p.childNodes,function(q){if(q.nodeType==3){return o?q.nodeValue.replace(/\n/g,""):q.nodeValue}if(q.nodeName=="BR"){return"\n"}return h(q,o)}).join("")}function a(q){var p=(q.className+" "+(q.parentNode?q.parentNode.className:"")).split(/\s+/);p=p.map(function(r){return r.replace(/^language-/,"")});for(var o=0;o<p.length;o++){if(e[p[o]]||p[o]=="no-highlight"){return p[o]}}}function c(q){var o=[];(function p(r,s){for(var t=r.firstChild;t;t=t.nextSibling){if(t.nodeType==3){s+=t.nodeValue.length}else{if(t.nodeName=="BR"){s+=1}else{if(t.nodeType==1){o.push({event:"start",offset:s,node:t});s=p(t,s);o.push({event:"stop",offset:s,node:t})}}}}return s})(q,0);return o}function j(x,v,w){var p=0;var y="";var r=[];function t(){if(x.length&&v.length){if(x[0].offset!=v[0].offset){return(x[0].offset<v[0].offset)?x:v}else{return v[0].event=="start"?x:v}}else{return x.length?x:v}}function s(A){function z(B){return" "+B.nodeName+'="'+l(B.value)+'"'}return"<"+A.nodeName+Array.prototype.map.call(A.attributes,z).join("")+">"}while(x.length||v.length){var u=t().splice(0,1)[0];y+=l(w.substr(p,u.offset-p));p=u.offset;if(u.event=="start"){y+=s(u.node);r.push(u.node)}else{if(u.event=="stop"){var o,q=r.length;do{q--;o=r[q];y+=("</"+o.nodeName.toLowerCase()+">")}while(o!=u.node);r.splice(q,1);while(q<r.length){y+=s(r[q]);q++}}}}return y+l(w.substr(p))}function f(r){function o(s){return(s&&s.source)||s}function p(t,s){return RegExp(o(t),"m"+(r.cI?"i":"")+(s?"g":""))}function q(z,x){if(z.compiled){return}z.compiled=true;var u=[];if(z.k){var s={};function A(B,t){t.split(" ").forEach(function(C){var D=C.split("|");s[D[0]]=[B,D[1]?Number(D[1]):1];u.push(D[0])})}z.lR=p(z.l||hljs.IR+"(?!\\.)",true);if(typeof z.k=="string"){A("keyword",z.k)}else{for(var y in z.k){if(!z.k.hasOwnProperty(y)){continue}A(y,z.k[y])}}z.k=s}if(x){if(z.bWK){z.b="\\b("+u.join("|")+")\\b(?!\\.)\\s*"}z.bR=p(z.b?z.b:"\\B|\\b");if(!z.e&&!z.eW){z.e="\\B|\\b"}if(z.e){z.eR=p(z.e)}z.tE=o(z.e)||"";if(z.eW&&x.tE){z.tE+=(z.e?"|":"")+x.tE}}if(z.i){z.iR=p(z.i)}if(z.r===undefined){z.r=1}if(!z.c){z.c=[]}for(var w=0;w<z.c.length;w++){if(z.c[w]=="self"){z.c[w]=z}q(z.c[w],z)}if(z.starts){q(z.starts,x)}var v=[];for(var w=0;w<z.c.length;w++){v.push(o(z.c[w].b))}if(z.tE){v.push(o(z.tE))}if(z.i){v.push(o(z.i))}z.t=v.length?p(v.join("|"),true):{exec:function(t){return null}}}q(r)}function d(E,F,C){function o(r,N){for(var M=0;M<N.c.length;M++){var L=N.c[M].bR.exec(r);if(L&&L.index==0){return N.c[M]}}}function s(L,r){if(L.e&&L.eR.test(r)){return L}if(L.eW){return s(L.parent,r)}}function t(r,L){return !C&&L.i&&L.iR.test(r)}function y(M,r){var L=G.cI?r[0].toLowerCase():r[0];return M.k.hasOwnProperty(L)&&M.k[L]}function H(){var L=l(w);if(!A.k){return L}var r="";var O=0;A.lR.lastIndex=0;var M=A.lR.exec(L);while(M){r+=L.substr(O,M.index-O);var N=y(A,M);if(N){v+=N[1];r+='<span class="'+N[0]+'">'+M[0]+"</span>"}else{r+=M[0]}O=A.lR.lastIndex;M=A.lR.exec(L)}return r+L.substr(O)}function z(){if(A.sL&&!e[A.sL]){return l(w)}var r=A.sL?d(A.sL,w):g(w);if(A.r>0){v+=r.keyword_count;B+=r.r}return'<span class="'+r.language+'">'+r.value+"</span>"}function K(){return A.sL!==undefined?z():H()}function J(M,r){var L=M.cN?'<span class="'+M.cN+'">':"";if(M.rB){x+=L;w=""}else{if(M.eB){x+=l(r)+L;w=""}else{x+=L;w=r}}A=Object.create(M,{parent:{value:A}})}function D(L,r){w+=L;if(r===undefined){x+=K();return 0}var N=o(r,A);if(N){x+=K();J(N,r);return N.rB?0:r.length}var O=s(A,r);if(O){var M=A;if(!(M.rE||M.eE)){w+=r}x+=K();do{if(A.cN){x+="</span>"}B+=A.r;A=A.parent}while(A!=O.parent);if(M.eE){x+=l(r)}w="";if(O.starts){J(O.starts,"")}return M.rE?0:r.length}if(t(r,A)){throw new Error('Illegal lexem "'+r+'" for mode "'+(A.cN||"<unnamed>")+'"')}w+=r;return r.length||1}var G=e[E];f(G);var A=G;var w="";var B=0;var v=0;var x="";try{var u,q,p=0;while(true){A.t.lastIndex=p;u=A.t.exec(F);if(!u){break}q=D(F.substr(p,u.index-p),u[0]);p=u.index+q}D(F.substr(p));return{r:B,keyword_count:v,value:x,language:E}}catch(I){if(I.message.indexOf("Illegal")!=-1){return{r:0,keyword_count:0,value:l(F)}}else{throw I}}}function g(s){var o={keyword_count:0,r:0,value:l(s)};var q=o;for(var p in e){if(!e.hasOwnProperty(p)){continue}var r=d(p,s,false);r.language=p;if(r.keyword_count+r.r>q.keyword_count+q.r){q=r}if(r.keyword_count+r.r>o.keyword_count+o.r){q=o;o=r}}if(q.language){o.second_best=q}return o}function i(q,p,o){if(p){q=q.replace(/^((<[^>]+>|\t)+)/gm,function(r,v,u,t){return v.replace(/\t/g,p)})}if(o){q=q.replace(/\n/g,"<br>")}return q}function m(r,u,p){var v=h(r,p);var t=a(r);if(t=="no-highlight"){return}var w=t?d(t,v,true):g(v);t=w.language;var o=c(r);if(o.length){var q=document.createElement("pre");q.innerHTML=w.value;w.value=j(o,c(q),v)}w.value=i(w.value,u,p);var s=r.className;if(!s.match("(\\s|^)(language-)?"+t+"(\\s|$)")){s=s?(s+" "+t):t}r.innerHTML=w.value;r.className=s;r.result={language:t,kw:w.keyword_count,re:w.r};if(w.second_best){r.second_best={language:w.second_best.language,kw:w.second_best.keyword_count,re:w.second_best.r}}}function n(){if(n.called){return}n.called=true;Array.prototype.map.call(document.getElementsByTagName("pre"),b).filter(Boolean).forEach(function(o){m(o,hljs.tabReplace)})}function k(){window.addEventListener("DOMContentLoaded",n,false);window.addEventListener("load",n,false)}var e={};this.LANGUAGES=e;this.highlight=d;this.highlightAuto=g;this.fixMarkup=i;this.highlightBlock=m;this.initHighlighting=n;this.initHighlightingOnLoad=k;this.IR="[a-zA-Z][a-zA-Z0-9_]*";this.UIR="[a-zA-Z_][a-zA-Z0-9_]*";this.NR="\\b\\d+(\\.\\d+)?";this.CNR="(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)";this.BNR="\\b(0b[01]+)";this.RSR="!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|\\.|-|-=|/|/=|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~";this.BE={b:"\\\\[\\s\\S]",r:0};this.ASM={cN:"string",b:"'",e:"'",i:"\\n",c:[this.BE],r:0};this.QSM={cN:"string",b:'"',e:'"',i:"\\n",c:[this.BE],r:0};this.CLCM={cN:"comment",b:"//",e:"$"};this.CBLCLM={cN:"comment",b:"/\\*",e:"\\*/"};this.HCM={cN:"comment",b:"#",e:"$"};this.NM={cN:"number",b:this.NR,r:0};this.CNM={cN:"number",b:this.CNR,r:0};this.BNM={cN:"number",b:this.BNR,r:0};this.REGEXP_MODE={cN:"regexp",b:/\//,e:/\/[gim]*/,i:/\n/,c:[this.BE,{b:/\[/,e:/\]/,r:0,c:[this.BE]}]};this.inherit=function(q,r){var o={};for(var p in q){o[p]=q[p]}if(r){for(var p in r){o[p]=r[p]}}return o}}();hljs.LANGUAGES["1c"]=function(b){var f="[a-zA-Zа-яА-Я][a-zA-Z0-9_а-яА-Я]*";var c="возврат дата для если и или иначе иначеесли исключение конецесли конецпопытки конецпроцедуры конецфункции конеццикла константа не перейти перем перечисление по пока попытка прервать продолжить процедура строка тогда фс функция цикл число экспорт";var e="ansitooem oemtoansi ввестивидсубконто ввестидату ввестизначение ввестиперечисление ввестипериод ввестиплансчетов ввестистроку ввестичисло вопрос восстановитьзначение врег выбранныйплансчетов вызватьисключение датагод датамесяц датачисло добавитьмесяц завершитьработусистемы заголовоксистемы записьжурналарегистрации запуститьприложение зафиксироватьтранзакцию значениевстроку значениевстрокувнутр значениевфайл значениеизстроки значениеизстрокивнутр значениеизфайла имякомпьютера имяпользователя каталогвременныхфайлов каталогиб каталогпользователя каталогпрограммы кодсимв командасистемы конгода конецпериодаби конецрассчитанногопериодаби конецстандартногоинтервала конквартала конмесяца коннедели лев лог лог10 макс максимальноеколичествосубконто мин монопольныйрежим названиеинтерфейса названиенабораправ назначитьвид назначитьсчет найти найтипомеченныенаудаление найтиссылки началопериодаби началостандартногоинтервала начатьтранзакцию начгода начквартала начмесяца начнедели номерднягода номерднянедели номернеделигода нрег обработкаожидания окр описаниеошибки основнойжурналрасчетов основнойплансчетов основнойязык открытьформу открытьформумодально отменитьтранзакцию очиститьокносообщений периодстр полноеимяпользователя получитьвремята получитьдатута получитьдокументта получитьзначенияотбора получитьпозициюта получитьпустоезначение получитьта прав праводоступа предупреждение префиксавтонумерации пустаястрока пустоезначение рабочаядаттьпустоезначение рабочаядата разделительстраниц разделительстрок разм разобратьпозициюдокумента рассчитатьрегистрына рассчитатьрегистрыпо сигнал симв символтабуляции создатьобъект сокрл сокрлп сокрп сообщить состояние сохранитьзначение сред статусвозврата стрдлина стрзаменить стрколичествострок стрполучитьстроку  стрчисловхождений сформироватьпозициюдокумента счетпокоду текущаядата текущеевремя типзначения типзначениястр удалитьобъекты установитьтана установитьтапо фиксшаблон формат цел шаблон";var a={cN:"dquote",b:'""'};var d={cN:"string",b:'"',e:'"|$',c:[a],r:0};var g={cN:"string",b:"\\|",e:'"|$',c:[a]};return{cI:true,l:f,k:{keyword:c,built_in:e},c:[b.CLCM,b.NM,d,g,{cN:"function",b:"(процедура|функция)",e:"$",l:f,k:"процедура функция",c:[{cN:"title",b:f},{cN:"tail",eW:true,c:[{cN:"params",b:"\\(",e:"\\)",l:f,k:"знач",c:[d,g]},{cN:"export",b:"экспорт",eW:true,l:f,k:"экспорт",c:[b.CLCM]}]},b.CLCM]},{cN:"preprocessor",b:"#",e:"$"},{cN:"date",b:"'\\d{2}\\.\\d{2}\\.(\\d{2}|\\d{4})'"}]}}(hljs);hljs.LANGUAGES.actionscript=function(a){var d="[a-zA-Z_$][a-zA-Z0-9_$]*";var c="([*]|[a-zA-Z_$][a-zA-Z0-9_$]*)";var e={cN:"rest_arg",b:"[.]{3}",e:d,r:10};var b={cN:"title",b:d};return{k:{keyword:"as break case catch class const continue default delete do dynamic each else extends final finally for function get if implements import in include instanceof interface internal is namespace native new override package private protected public return set static super switch this throw try typeof use var void while with",literal:"true false null undefined"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{cN:"package",bWK:true,e:"{",k:"package",c:[b]},{cN:"class",bWK:true,e:"{",k:"class interface",c:[{bWK:true,k:"extends implements"},b]},{cN:"preprocessor",bWK:true,e:";",k:"import include"},{cN:"function",bWK:true,e:"[{;]",k:"function",i:"\\S",c:[b,{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,e]},{cN:"type",b:":",e:c,r:10}]}]}}(hljs);hljs.LANGUAGES.apache=function(a){var b={cN:"number",b:"[\\$%]\\d+"};return{cI:true,k:{keyword:"acceptfilter acceptmutex acceptpathinfo accessfilename action addalt addaltbyencoding addaltbytype addcharset adddefaultcharset adddescription addencoding addhandler addicon addiconbyencoding addiconbytype addinputfilter addlanguage addmoduleinfo addoutputfilter addoutputfilterbytype addtype alias aliasmatch allow allowconnect allowencodedslashes allowoverride anonymous anonymous_logemail anonymous_mustgiveemail anonymous_nouserid anonymous_verifyemail authbasicauthoritative authbasicprovider authdbduserpwquery authdbduserrealmquery authdbmgroupfile authdbmtype authdbmuserfile authdefaultauthoritative authdigestalgorithm authdigestdomain authdigestnccheck authdigestnonceformat authdigestnoncelifetime authdigestprovider authdigestqop authdigestshmemsize authgroupfile authldapbinddn authldapbindpassword authldapcharsetconfig authldapcomparednonserver authldapdereferencealiases authldapgroupattribute authldapgroupattributeisdn authldapremoteuserattribute authldapremoteuserisdn authldapurl authname authnprovideralias authtype authuserfile authzdbmauthoritative authzdbmtype authzdefaultauthoritative authzgroupfileauthoritative authzldapauthoritative authzownerauthoritative authzuserauthoritative balancermember browsermatch browsermatchnocase bufferedlogs cachedefaultexpire cachedirlength cachedirlevels cachedisable cacheenable cachefile cacheignorecachecontrol cacheignoreheaders cacheignorenolastmod cacheignorequerystring cachelastmodifiedfactor cachemaxexpire cachemaxfilesize cacheminfilesize cachenegotiateddocs cacheroot cachestorenostore cachestoreprivate cgimapextension charsetdefault charsetoptions charsetsourceenc checkcaseonly checkspelling chrootdir contentdigest cookiedomain cookieexpires cookielog cookiename cookiestyle cookietracking coredumpdirectory customlog dav davdepthinfinity davgenericlockdb davlockdb davmintimeout dbdexptime dbdkeep dbdmax dbdmin dbdparams dbdpersist dbdpreparesql dbdriver defaulticon defaultlanguage defaulttype deflatebuffersize deflatecompressionlevel deflatefilternote deflatememlevel deflatewindowsize deny directoryindex directorymatch directoryslash documentroot dumpioinput dumpiologlevel dumpiooutput enableexceptionhook enablemmap enablesendfile errordocument errorlog example expiresactive expiresbytype expiresdefault extendedstatus extfilterdefine extfilteroptions fileetag filterchain filterdeclare filterprotocol filterprovider filtertrace forcelanguagepriority forcetype forensiclog gracefulshutdowntimeout group header headername hostnamelookups identitycheck identitychecktimeout imapbase imapdefault imapmenu include indexheadinsert indexignore indexoptions indexorderdefault indexstylesheet isapiappendlogtoerrors isapiappendlogtoquery isapicachefile isapifakeasync isapilognotsupported isapireadaheadbuffer keepalive keepalivetimeout languagepriority ldapcacheentries ldapcachettl ldapconnectiontimeout ldapopcacheentries ldapopcachettl ldapsharedcachefile ldapsharedcachesize ldaptrustedclientcert ldaptrustedglobalcert ldaptrustedmode ldapverifyservercert limitinternalrecursion limitrequestbody limitrequestfields limitrequestfieldsize limitrequestline limitxmlrequestbody listen listenbacklog loadfile loadmodule lockfile logformat loglevel maxclients maxkeepaliverequests maxmemfree maxrequestsperchild maxrequestsperthread maxspareservers maxsparethreads maxthreads mcachemaxobjectcount mcachemaxobjectsize mcachemaxstreamingbuffer mcacheminobjectsize mcacheremovalalgorithm mcachesize metadir metafiles metasuffix mimemagicfile minspareservers minsparethreads mmapfile mod_gzip_on mod_gzip_add_header_count mod_gzip_keep_workfiles mod_gzip_dechunk mod_gzip_min_http mod_gzip_minimum_file_size mod_gzip_maximum_file_size mod_gzip_maximum_inmem_size mod_gzip_temp_dir mod_gzip_item_include mod_gzip_item_exclude mod_gzip_command_version mod_gzip_can_negotiate mod_gzip_handle_methods mod_gzip_static_suffix mod_gzip_send_vary mod_gzip_update_static modmimeusepathinfo multiviewsmatch namevirtualhost noproxy nwssltrustedcerts nwsslupgradeable options order passenv pidfile protocolecho proxybadheader proxyblock proxydomain proxyerroroverride proxyftpdircharset proxyiobuffersize proxymaxforwards proxypass proxypassinterpolateenv proxypassmatch proxypassreverse proxypassreversecookiedomain proxypassreversecookiepath proxypreservehost proxyreceivebuffersize proxyremote proxyremotematch proxyrequests proxyset proxystatus proxytimeout proxyvia readmename receivebuffersize redirect redirectmatch redirectpermanent redirecttemp removecharset removeencoding removehandler removeinputfilter removelanguage removeoutputfilter removetype requestheader require rewritebase rewritecond rewriteengine rewritelock rewritelog rewriteloglevel rewritemap rewriteoptions rewriterule rlimitcpu rlimitmem rlimitnproc satisfy scoreboardfile script scriptalias scriptaliasmatch scriptinterpretersource scriptlog scriptlogbuffer scriptloglength scriptsock securelisten seerequesttail sendbuffersize serveradmin serveralias serverlimit servername serverpath serverroot serversignature servertokens setenv setenvif setenvifnocase sethandler setinputfilter setoutputfilter ssienableaccess ssiendtag ssierrormsg ssistarttag ssitimeformat ssiundefinedecho sslcacertificatefile sslcacertificatepath sslcadnrequestfile sslcadnrequestpath sslcarevocationfile sslcarevocationpath sslcertificatechainfile sslcertificatefile sslcertificatekeyfile sslciphersuite sslcryptodevice sslengine sslhonorciperorder sslmutex ssloptions sslpassphrasedialog sslprotocol sslproxycacertificatefile sslproxycacertificatepath sslproxycarevocationfile sslproxycarevocationpath sslproxyciphersuite sslproxyengine sslproxymachinecertificatefile sslproxymachinecertificatepath sslproxyprotocol sslproxyverify sslproxyverifydepth sslrandomseed sslrequire sslrequiressl sslsessioncache sslsessioncachetimeout sslusername sslverifyclient sslverifydepth startservers startthreads substitute suexecusergroup threadlimit threadsperchild threadstacksize timeout traceenable transferlog typesconfig unsetenv usecanonicalname usecanonicalphysicalport user userdir virtualdocumentroot virtualdocumentrootip virtualscriptalias virtualscriptaliasip win32disableacceptex xbithack",literal:"on off"},c:[a.HCM,{cN:"sqbracket",b:"\\s\\[",e:"\\]$"},{cN:"cbracket",b:"[\\$%]\\{",e:"\\}",c:["self",b]},b,{cN:"tag",b:"</?",e:">"},a.QSM]}}(hljs);hljs.LANGUAGES.applescript=function(a){var b=a.inherit(a.QSM,{i:""});var e={cN:"title",b:a.UIR};var d={cN:"params",b:"\\(",e:"\\)",c:["self",a.CNM,b]};var c=[{cN:"comment",b:"--",e:"$",},{cN:"comment",b:"\\(\\*",e:"\\*\\)",c:["self",{b:"--",e:"$"}]},a.HCM];return{k:{keyword:"about above after against and around as at back before beginning behind below beneath beside between but by considering contain contains continue copy div does eighth else end equal equals error every exit fifth first for fourth from front get given global if ignoring in into is it its last local me middle mod my ninth not of on onto or over prop property put ref reference repeat returning script second set seventh since sixth some tell tenth that the then third through thru timeout times to transaction try until where while whose with without",constant:"AppleScript false linefeed return pi quote result space tab true",type:"alias application boolean class constant date file integer list number real record string text",command:"activate beep count delay launch log offset read round run say summarize write",property:"character characters contents day frontmost id item length month name paragraph paragraphs rest reverse running time version weekday word words year"},c:[b,a.CNM,{cN:"type",b:"\\bPOSIX file\\b"},{cN:"command",b:"\\b(clipboard info|the clipboard|info for|list (disks|folder)|mount volume|path to|(close|open for) access|(get|set) eof|current date|do shell script|get volume settings|random number|set volume|system attribute|system info|time to GMT|(load|run|store) script|scripting components|ASCII (character|number)|localized string|choose (application|color|file|file name|folder|from list|remote application|URL)|display (alert|dialog))\\b|^\\s*return\\b"},{cN:"constant",b:"\\b(text item delimiters|current application|missing value)\\b"},{cN:"keyword",b:"\\b(apart from|aside from|instead of|out of|greater than|isn't|(doesn't|does not) (equal|come before|come after|contain)|(greater|less) than( or equal)?|(starts?|ends|begins?) with|contained by|comes (before|after)|a (ref|reference))\\b"},{cN:"property",b:"\\b(POSIX path|(date|time) string|quoted form)\\b"},{cN:"function_start",bWK:true,k:"on",i:"[${=;\\n]",c:[e,d]}].concat(c),i:"//"}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);hljs.LANGUAGES.asciidoc=function(a){return{c:[{cN:"comment",b:"^/{4,}\\n",e:"\\n/{4,}$",r:10},{cN:"comment",b:"^//",e:"$",r:0},{cN:"title",b:"^\\.\\w.*$"},{b:"^[=\\*]{4,}\\n",e:"\\n^[=\\*]{4,}$",r:10},{cN:"header",b:"^(={1,5}) .+?( \\1)?$",r:10},{cN:"header",b:"^[^\\[\\]\\n]+?\\n[=\\-~\\^\\+]{2,}$",r:10},{cN:"attribute",b:"^:.+?:",e:"\\s",eE:true,r:10},{cN:"attribute",b:"^\\[.+?\\]$",r:0},{cN:"blockquote",b:"^_{4,}\\n",e:"\\n_{4,}$",r:10},{cN:"code",b:"^[\\-\\.]{4,}\\n",e:"\\n[\\-\\.]{4,}$",r:10},{b:"^\\+{4,}\\n",e:"\\n\\+{4,}$",c:[{b:"<",e:">",sL:"xml",r:0}],r:10},{cN:"bullet",b:"^(\\*+|\\-+|\\.+|[^\\n]+?::)\\s+"},{cN:"label",b:"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\s+",r:10},{cN:"strong",b:"\\B\\*(?![\\*\\s])",e:"(\\n{2}|\\*)",c:[{b:"\\\\*\\w",r:0}]},{cN:"emphasis",b:"\\B'(?!['\\s])",e:"(\\n{2}|')",c:[{b:"\\\\'\\w",r:0}],r:0},{cN:"emphasis",b:"_(?![_\\s])",e:"(\\n{2}|_)",r:0},{cN:"code",b:"(`.+?`|\\+.+?\\+)",r:0},{cN:"code",b:"^[ \\t]",e:"$",r:0},{cN:"horizontal_rule",b:"^'{4,}[ \\t]*$",r:10},{b:"(link:)?(http|https|ftp|file|irc|image:?):\\S+\\[.*?\\]",rB:true,c:[{b:"(link|image:?):",r:0},{cN:"link_url",b:"\\w",e:"[^\\[]+",r:0},{cN:"link_label",b:"\\[",e:"\\]",eB:true,eE:true,r:0}],r:10}]}}(hljs);hljs.LANGUAGES.avrasm=function(a){return{cI:true,k:{keyword:"adc add adiw and andi asr bclr bld brbc brbs brcc brcs break breq brge brhc brhs brid brie brlo brlt brmi brne brpl brsh brtc brts brvc brvs bset bst call cbi cbr clc clh cli cln clr cls clt clv clz com cp cpc cpi cpse dec eicall eijmp elpm eor fmul fmuls fmulsu icall ijmp in inc jmp ld ldd ldi lds lpm lsl lsr mov movw mul muls mulsu neg nop or ori out pop push rcall ret reti rjmp rol ror sbc sbr sbrc sbrs sec seh sbi sbci sbic sbis sbiw sei sen ser ses set sev sez sleep spm st std sts sub subi swap tst wdr",built_in:"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 r16 r17 r18 r19 r20 r21 r22 r23 r24 r25 r26 r27 r28 r29 r30 r31 x|0 xh xl y|0 yh yl z|0 zh zl ucsr1c udr1 ucsr1a ucsr1b ubrr1l ubrr1h ucsr0c ubrr0h tccr3c tccr3a tccr3b tcnt3h tcnt3l ocr3ah ocr3al ocr3bh ocr3bl ocr3ch ocr3cl icr3h icr3l etimsk etifr tccr1c ocr1ch ocr1cl twcr twdr twar twsr twbr osccal xmcra xmcrb eicra spmcsr spmcr portg ddrg ping portf ddrf sreg sph spl xdiv rampz eicrb eimsk gimsk gicr eifr gifr timsk tifr mcucr mcucsr tccr0 tcnt0 ocr0 assr tccr1a tccr1b tcnt1h tcnt1l ocr1ah ocr1al ocr1bh ocr1bl icr1h icr1l tccr2 tcnt2 ocr2 ocdr wdtcr sfior eearh eearl eedr eecr porta ddra pina portb ddrb pinb portc ddrc pinc portd ddrd pind spdr spsr spcr udr0 ucsr0a ucsr0b ubrr0l acsr admux adcsr adch adcl porte ddre pine pinf"},c:[a.CBLCLM,{cN:"comment",b:";",e:"$"},a.CNM,a.BNM,{cN:"number",b:"\\b(\\$[a-zA-Z0-9]+|0o[0-7]+)"},a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"label",b:"^[A-Za-z0-9_.$]+:"},{cN:"preprocessor",b:"#",e:"$"},{cN:"preprocessor",b:"\\.[a-zA-Z]+"},{cN:"localvars",b:"@[0-9]+"}]}}(hljs);hljs.LANGUAGES.axapta=function(a){return{k:"false int abstract private char boolean static null if for true while long throw finally protected final return void enum else break new catch byte super case short default double public try this switch continue reverse firstfast firstonly forupdate nofetch sum avg minof maxof count order group by asc desc index hint like dispaly edit client server ttsbegin ttscommit str real date container anytype common div mod",c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"{",i:":",k:"class interface",c:[{cN:"inheritance",bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]}]}}(hljs);hljs.LANGUAGES.bash=function(a){var c={cN:"variable",b:/\$[\w\d#@][\w\d_]*/};var b={cN:"variable",b:/\$\{(.*?)\}/};var e={cN:"string",b:/"/,e:/"/,c:[a.BE,c,b,{cN:"variable",b:/\$\(/,e:/\)/,c:a.BE}],r:0};var d={cN:"string",b:/'/,e:/'/,r:0};return{l:/-?[a-z]+/,k:{keyword:"if then else elif fi for break continue while in do done exit return set declare case esac export exec",literal:"true false",built_in:"printf echo read cd pwd pushd popd dirs let eval unset typeset readonly getopts source shopt caller type hash bind help sudo",operator:"-ne -eq -lt -gt -f -d -e -s -l -a"},c:[{cN:"shebang",b:/^#![^\n]+sh\s*$/,r:10},{cN:"function",b:/\w[\w\d_]*\s*\(\s*\)\s*\{/,rB:true,c:[{cN:"title",b:/\w[\w\d_]*/}],r:0},a.HCM,a.NM,e,d,c,b]}}(hljs);hljs.LANGUAGES.brainfuck=function(a){return{c:[{cN:"comment",b:"[^\\[\\]\\.,\\+\\-<> \r\n]",eE:true,e:"[\\[\\]\\.,\\+\\-<> \r\n]",r:0},{cN:"title",b:"[\\[\\]]",r:0},{cN:"string",b:"[\\.,]"},{cN:"literal",b:"[\\+\\-]"}]}}(hljs);hljs.LANGUAGES.clojure=function(l){var e={built_in:"def cond apply if-not if-let if not not= = &lt; < > &lt;= <= >= == + / * - rem quot neg? pos? delay? symbol? keyword? true? false? integer? empty? coll? list? set? ifn? fn? associative? sequential? sorted? counted? reversible? number? decimal? class? distinct? isa? float? rational? reduced? ratio? odd? even? char? seq? vector? string? map? nil? contains? zero? instance? not-every? not-any? libspec? -> ->> .. . inc compare do dotimes mapcat take remove take-while drop letfn drop-last take-last drop-while while intern condp case reduced cycle split-at split-with repeat replicate iterate range merge zipmap declare line-seq sort comparator sort-by dorun doall nthnext nthrest partition eval doseq await await-for let agent atom send send-off release-pending-sends add-watch mapv filterv remove-watch agent-error restart-agent set-error-handler error-handler set-error-mode! error-mode shutdown-agents quote var fn loop recur throw try monitor-enter monitor-exit defmacro defn defn- macroexpand macroexpand-1 for doseq dosync dotimes and or when when-not when-let comp juxt partial sequence memoize constantly complement identity assert peek pop doto proxy defstruct first rest cons defprotocol cast coll deftype defrecord last butlast sigs reify second ffirst fnext nfirst nnext defmulti defmethod meta with-meta ns in-ns create-ns import intern refer keys select-keys vals key val rseq name namespace promise into transient persistent! conj! assoc! dissoc! pop! disj! import use class type num float double short byte boolean bigint biginteger bigdec print-method print-dup throw-if throw printf format load compile get-in update-in pr pr-on newline flush read slurp read-line subvec with-open memfn time ns assert re-find re-groups rand-int rand mod locking assert-valid-fdecl alias namespace resolve ref deref refset swap! reset! set-validator! compare-and-set! alter-meta! reset-meta! commute get-validator alter ref-set ref-history-count ref-min-history ref-max-history ensure sync io! new next conj set! memfn to-array future future-call into-array aset gen-class reduce merge map filter find empty hash-map hash-set sorted-map sorted-map-by sorted-set sorted-set-by vec vector seq flatten reverse assoc dissoc list disj get union difference intersection extend extend-type extend-protocol int nth delay count concat chunk chunk-buffer chunk-append chunk-first chunk-rest max min dec unchecked-inc-int unchecked-inc unchecked-dec-inc unchecked-dec unchecked-negate unchecked-add-int unchecked-add unchecked-subtract-int unchecked-subtract chunk-next chunk-cons chunked-seq? prn vary-meta lazy-seq spread list* str find-keyword keyword symbol gensym force rationalize"};var f="[a-zA-Z_0-9\\!\\.\\?\\-\\+\\*\\/\\<\\=\\>\\&\\#\\$';]+";var a="[\\s:\\(\\{]+\\d+(\\.\\d+)?";var d={cN:"number",b:a,r:0};var j={cN:"string",b:'"',e:'"',c:[l.BE],r:0};var o={cN:"comment",b:";",e:"$",r:0};var n={cN:"collection",b:"[\\[\\{]",e:"[\\]\\}]"};var c={cN:"comment",b:"\\^"+f};var b={cN:"comment",b:"\\^\\{",e:"\\}"};var h={cN:"attribute",b:"[:]"+f};var m={cN:"list",b:"\\(",e:"\\)"};var g={eW:true,k:{literal:"true false nil"},r:0};var i={k:e,l:f,cN:"title",b:f,starts:g};m.c=[{cN:"comment",b:"comment"},i];g.c=[m,j,c,b,o,h,n,d];n.c=[m,j,c,o,h,n,d];return{i:"\\S",c:[o,m]}}(hljs);hljs.LANGUAGES.cmake=function(a){return{cI:true,k:"add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_subdirectory add_test aux_source_directory break build_command cmake_minimum_required cmake_policy configure_file create_test_sourcelist define_property else elseif enable_language enable_testing endforeach endfunction endif endmacro endwhile execute_process export find_file find_library find_package find_path find_program fltk_wrap_ui foreach function get_cmake_property get_directory_property get_filename_component get_property get_source_file_property get_target_property get_test_property if include include_directories include_external_msproject include_regular_expression install link_directories load_cache load_command macro mark_as_advanced message option output_required_files project qt_wrap_cpp qt_wrap_ui remove_definitions return separate_arguments set set_directory_properties set_property set_source_files_properties set_target_properties set_tests_properties site_name source_group string target_link_libraries try_compile try_run unset variable_watch while build_name exec_program export_library_dependencies install_files install_programs install_targets link_libraries make_directory remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file",c:[{cN:"envvar",b:"\\${",e:"}"},a.HCM,a.QSM,a.NM]}}(hljs);hljs.LANGUAGES.coffeescript=function(c){var b={keyword:"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super then unless until loop of by when and or is isnt not",literal:"true false null undefined yes no on off",reserved:"case default function var void with const let enum export import native __hasProp __extends __slice __bind __indexOf",built_in:"npm require console print module exports global window document"};var a="[A-Za-z$_][0-9A-Za-z$_]*";var f={cN:"title",b:a};var e={cN:"subst",b:"#\\{",e:"}",k:b,};var d=[c.BNM,c.inherit(c.CNM,{starts:{e:"(\\s*/)?",r:0}}),{cN:"string",b:"'''",e:"'''",c:[c.BE]},{cN:"string",b:"'",e:"'",c:[c.BE],r:0},{cN:"string",b:'"""',e:'"""',c:[c.BE,e]},{cN:"string",b:'"',e:'"',c:[c.BE,e],r:0},{cN:"regexp",b:"///",e:"///",c:[c.HCM]},{cN:"regexp",b:"//[gim]*",r:0},{cN:"regexp",b:"/\\S(\\\\.|[^\\n])*?/[gim]*(?=\\s|\\W|$)"},{cN:"property",b:"@"+a},{b:"`",e:"`",eB:true,eE:true,sL:"javascript"}];e.c=d;return{k:b,c:d.concat([{cN:"comment",b:"###",e:"###"},c.HCM,{cN:"function",b:"("+a+"\\s*=\\s*)?(\\(.*\\))?\\s*[-=]>",e:"[-=]>",rB:true,c:[f,{cN:"params",b:"\\(",rB:true,c:[{b:/\(/,e:/\)/,k:b,c:["self"].concat(d)}]}]},{cN:"class",bWK:true,k:"class",e:"$",i:"[:\\[\\]]",c:[{bWK:true,k:"extends",eW:true,i:":",c:[f]},f]},{cN:"attribute",b:a+":",e:":",rB:true,eE:true}])}}(hljs);hljs.LANGUAGES.cpp=function(a){var b={keyword:"false int float while private char catch export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const struct for static_cast|10 union namespace unsigned long throw volatile static protected bool template mutable if public friend do return goto auto void enum else break new extern using true class asm case typeid short reinterpret_cast|10 default double register explicit signed typename try this switch continue wchar_t inline delete alignof char16_t char32_t constexpr decltype noexcept nullptr static_assert thread_local restrict _Bool complex",built_in:"std string cin cout cerr clog stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'\\\\?.",e:"'",i:"."},{cN:"number",b:"\\b(\\d+(\\.\\d*)?|\\.\\d+)(u|U|l|L|ul|UL|f|F)"},a.CNM,{cN:"preprocessor",b:"#",e:"$",c:[{b:"<",e:">",i:"\\n"},a.CLCM]},{cN:"stl_container",b:"\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\s*<",e:">",k:b,r:10,c:["self"]}]}}(hljs);hljs.LANGUAGES.cs=function(a){return{k:"abstract as base bool break byte case catch char checked class const continue decimal default delegate do double else enum event explicit extern false finally fixed float for foreach goto if implicit in int interface internal is lock long namespace new null object operator out override params private protected public readonly ref return sbyte sealed short sizeof stackalloc static string struct switch this throw true try typeof uint ulong unchecked unsafe ushort using virtual volatile void while async await ascending descending from get group into join let orderby partial select set value var where yield",c:[{cN:"comment",b:"///",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"///|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"}]},a.CLCM,a.CBLCLM,{cN:"preprocessor",b:"#",e:"$",k:"if else elif endif define undef warning error line region endregion pragma checksum"},{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},a.ASM,a.QSM,a.CNM]}}(hljs);hljs.LANGUAGES.css=function(a){var b="[a-zA-Z-][a-zA-Z0-9_-]*";var c={cN:"function",b:b+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};return{cI:true,i:"[=/|']",c:[a.CBLCLM,{cN:"id",b:"\\#[A-Za-z0-9_-]+"},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"pseudo",b:":(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\\\"\\']+"},{cN:"at_rule",b:"@(font-face|page)",l:"[a-z-]+",k:"font-face page"},{cN:"at_rule",b:"@",e:"[{;]",c:[{cN:"keyword",b:/\S+/},{b:/\s/,eW:true,eE:true,r:0,c:[c,a.ASM,a.QSM,a.NM]}]},{cN:"tag",b:b,r:0},{cN:"rules",b:"{",e:"}",i:"[^\\s]",r:0,c:[a.CBLCLM,{cN:"rule",b:"[^\\s]",rB:true,e:";",eW:true,c:[{cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[c,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"hexcolor",b:"#[0-9A-Fa-f]+"},{cN:"important",b:"!important"}]}}]}]}]}}(hljs);hljs.LANGUAGES.d=function(x){var b={keyword:"abstract alias align asm assert auto body break byte case cast catch class const continue debug default delete deprecated do else enum export extern final finally for foreach foreach_reverse|10 goto if immutable import in inout int interface invariant is lazy macro mixin module new nothrow out override package pragma private protected public pure ref return scope shared static struct super switch synchronized template this throw try typedef typeid typeof union unittest version void volatile while with __FILE__ __LINE__ __gshared|10 __thread __traits __DATE__ __EOF__ __TIME__ __TIMESTAMP__ __VENDOR__ __VERSION__",built_in:"bool cdouble cent cfloat char creal dchar delegate double dstring float function idouble ifloat ireal long real short string ubyte ucent uint ulong ushort wchar wstring",literal:"false null true"};var c="(0|[1-9][\\d_]*)",q="(0|[1-9][\\d_]*|\\d[\\d_]*|[\\d_]+?\\d)",h="0[bB][01_]+",v="([\\da-fA-F][\\da-fA-F_]*|_[\\da-fA-F][\\da-fA-F_]*)",y="0[xX]"+v,p="([eE][+-]?"+q+")",o="("+q+"(\\.\\d*|"+p+")|\\d+\\."+q+q+"|\\."+c+p+"?)",k="(0[xX]("+v+"\\."+v+"|\\.?"+v+")[pP][+-]?"+q+")",l="("+c+"|"+h+"|"+y+")",n="("+k+"|"+o+")";var z="\\\\(['\"\\?\\\\abfnrtv]|u[\\dA-Fa-f]{4}|[0-7]{1,3}|x[\\dA-Fa-f]{2}|U[\\dA-Fa-f]{8})|&[a-zA-Z\\d]{2,};";var m={cN:"number",b:"\\b"+l+"(L|u|U|Lu|LU|uL|UL)?",r:0};var j={cN:"number",b:"\\b("+n+"([fF]|L|i|[fF]i|Li)?|"+l+"(i|[fF]i|Li))",r:0};var s={cN:"string",b:"'("+z+"|.)",e:"'",i:"."};var r={b:z,r:0};var w={cN:"string",b:'"',c:[r],e:'"[cwd]?',r:0};var f={cN:"string",b:'[rq]"',e:'"[cwd]?',r:5};var u={cN:"string",b:"`",e:"`[cwd]?"};var i={cN:"string",b:'x"[\\da-fA-F\\s\\n\\r]*"[cwd]?',r:10};var t={cN:"string",b:'q"\\{',e:'\\}"'};var e={cN:"shebang",b:"^#!",e:"$",r:5};var g={cN:"preprocessor",b:"#(line)",e:"$",r:5};var d={cN:"keyword",b:"@[a-zA-Z_][a-zA-Z_\\d]*"};var a={cN:"comment",b:"\\/\\+",c:["self"],e:"\\+\\/",r:10};return{l:x.UIR,k:b,c:[x.CLCM,x.CBLCLM,a,i,w,f,u,t,j,m,s,e,g,d]}}(hljs);hljs.LANGUAGES.delphi=function(b){var f="and safecall cdecl then string exports library not pascal set virtual file in array label packed end. index while const raise for to implementation with except overload destructor downto finally program exit unit inherited override if type until function do begin repeat goto nil far initialization object else var uses external resourcestring interface end finalization class asm mod case on shr shl of register xorwrite threadvar try record near stored constructor stdcall inline div out or procedure";var e="safecall stdcall pascal stored const implementation finalization except to finally program inherited override then exports string read not mod shr try div shl set library message packed index for near overload label downto exit public goto interface asm on of constructor or private array unit raise destructor var type until function else external with case default record while protected property procedure published and cdecl do threadvar file in if end virtual write far out begin repeat nil initialization object uses resourcestring class register xorwrite inline static";var a={cN:"comment",b:"{",e:"}",r:0};var g={cN:"comment",b:"\\(\\*",e:"\\*\\)",r:10};var c={cN:"string",b:"'",e:"'",c:[{b:"''"}],r:0};var d={cN:"string",b:"(#\\d+)+"};var h={cN:"function",bWK:true,e:"[:;]",k:"function constructor|10 destructor|10 procedure|10",c:[{cN:"title",b:b.IR},{cN:"params",b:"\\(",e:"\\)",k:f,c:[c,d]},a,g]};return{cI:true,k:f,i:'("|\\$[G-Zg-z]|\\/\\*|</)',c:[a,g,b.CLCM,c,d,b.NM,h,{cN:"class",b:"=\\bclass\\b",e:"end;",k:e,c:[c,d,a,g,b.CLCM,h]}]}}(hljs);hljs.LANGUAGES.diff=function(a){return{c:[{cN:"chunk",b:"^\\@\\@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +\\@\\@$",r:10},{cN:"chunk",b:"^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$",r:10},{cN:"chunk",b:"^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$",r:10},{cN:"header",b:"Index: ",e:"$"},{cN:"header",b:"=====",e:"=====$"},{cN:"header",b:"^\\-\\-\\-",e:"$"},{cN:"header",b:"^\\*{3} ",e:"$"},{cN:"header",b:"^\\+\\+\\+",e:"$"},{cN:"header",b:"\\*{5}",e:"\\*{5}$"},{cN:"addition",b:"^\\+",e:"$"},{cN:"deletion",b:"^\\-",e:"$"},{cN:"change",b:"^\\!",e:"$"}]}}(hljs);hljs.LANGUAGES.django=function(c){function e(h,g){return(g==undefined||(!h.cN&&g.cN=="tag")||h.cN=="value")}function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}if(e(l,k)){m=b.concat(m)}if(m.length){g.c=m}}return g}var d={cN:"filter",b:"\\|[A-Za-z]+\\:?",k:"truncatewords removetags linebreaksbr yesno get_digit timesince random striptags filesizeformat escape linebreaks length_is ljust rjust cut urlize fix_ampersands title floatformat capfirst pprint divisibleby add make_list unordered_list urlencode timeuntil urlizetrunc wordcount stringformat linenumbers slice date dictsort dictsortreversed default_if_none pluralize lower join center default truncatewords_html upper length phone2numeric wordwrap time addslashes slugify first escapejs force_escape iriencode last safe safeseq truncatechars localize unlocalize localtime utc timezone",c:[{cN:"argument",b:'"',e:'"'}]};var b=[{cN:"template_comment",b:"{%\\s*comment\\s*%}",e:"{%\\s*endcomment\\s*%}"},{cN:"template_comment",b:"{#",e:"#}"},{cN:"template_tag",b:"{%",e:"%}",k:"comment endcomment load templatetag ifchanged endifchanged if endif firstof for endfor in ifnotequal endifnotequal widthratio extends include spaceless endspaceless regroup by as ifequal endifequal ssi now with cycle url filter endfilter debug block endblock else autoescape endautoescape csrf_token empty elif endwith static trans blocktrans endblocktrans get_static_prefix get_media_prefix plural get_current_language language get_available_languages get_current_language_bidi get_language_info get_language_info_list localize endlocalize localtime endlocaltime timezone endtimezone get_current_timezone verbatim",c:[d]},{cN:"variable",b:"{{",e:"}}",c:[d]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.dos=function(a){return{cI:true,k:{flow:"if else goto for in do call exit not exist errorlevel defined equ neq lss leq gtr geq",keyword:"shift cd dir echo setlocal endlocal set pause copy",stream:"prn nul lpt3 lpt2 lpt1 con com4 com3 com2 com1 aux",winutils:"ping net ipconfig taskkill xcopy ren del"},c:[{cN:"envvar",b:"%%[^ ]"},{cN:"envvar",b:"%[^ ]+?%"},{cN:"envvar",b:"![^ ]+?!"},{cN:"number",b:"\\b\\d+",r:0},{cN:"comment",b:"@?rem",e:"$"}]}}(hljs);hljs.LANGUAGES["erlang-repl"]=function(a){return{k:{special_functions:"spawn spawn_link self",reserved:"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor"},c:[{cN:"prompt",b:"^[0-9]+> ",r:10},{cN:"comment",b:"%",e:"$"},{cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0},a.ASM,a.QSM,{cN:"constant",b:"\\?(::)?([A-Z]\\w*(::)?)+"},{cN:"arrow",b:"->"},{cN:"ok",b:"ok"},{cN:"exclamation_mark",b:"!"},{cN:"function_or_atom",b:"(\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\b[a-z'][a-zA-Z0-9_']*)",r:0},{cN:"variable",b:"[A-Z][a-zA-Z0-9_']*",r:0}]}}(hljs);hljs.LANGUAGES.erlang=function(i){var c="[a-z'][a-zA-Z0-9_']*";var o="("+c+":"+c+"|"+c+")";var f={keyword:"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun let not of orelse|10 query receive rem try when xor",literal:"false true"};var l={cN:"comment",b:"%",e:"$",r:0};var e={cN:"number",b:"\\b(\\d+#[a-fA-F0-9]+|\\d+(\\.\\d+)?([eE][-+]?\\d+)?)",r:0};var g={b:"fun\\s+"+c+"/\\d+"};var n={b:o+"\\(",e:"\\)",rB:true,r:0,c:[{cN:"function_name",b:o,r:0},{b:"\\(",e:"\\)",eW:true,rE:true,r:0}]};var h={cN:"tuple",b:"{",e:"}",r:0};var a={cN:"variable",b:"\\b_([A-Z][A-Za-z0-9_]*)?",r:0};var m={cN:"variable",b:"[A-Z][a-zA-Z0-9_]*",r:0};var b={b:"#",e:"}",i:".",r:0,rB:true,c:[{cN:"record_name",b:"#"+i.UIR,r:0},{b:"{",eW:true,r:0}]};var k={k:f,b:"(fun|receive|if|try|case)",e:"end"};k.c=[l,g,i.inherit(i.ASM,{cN:""}),k,n,i.QSM,e,h,a,m,b];var j=[l,g,k,n,i.QSM,e,h,a,m,b];n.c[1].c=j;h.c=j;b.c[1].c=j;var d={cN:"params",b:"\\(",e:"\\)",c:j};return{k:f,i:"(</|\\*=|\\+=|-=|/=|/\\*|\\*/|\\(\\*|\\*\\))",c:[{cN:"function",b:"^"+c+"\\s*\\(",e:"->",rB:true,i:"\\(|#|//|/\\*|\\\\|:",c:[d,{cN:"title",b:c}],starts:{e:";|\\.",k:f,c:j}},l,{cN:"pp",b:"^-",e:"\\.",r:0,eE:true,rB:true,l:"-"+i.IR,k:"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior",c:[d]},e,i.QSM,b,a,m,h]}}(hljs);hljs.LANGUAGES.fsharp=function(a){var b="'[a-zA-Z0-9_]+";return{k:"yield! return! let! do!abstract and as assert base begin class default delegate do done downcast downto elif else end exception extern false finally for fun|10 function global if in inherit inline interface internal lazy let match member module mutable|10 namespace new null of open or override private public rec|10 return sig static struct then to true try type upcast use val void when while with yield",c:[{cN:"string",b:'@"',e:'"',c:[{b:'""'}]},{cN:"string",b:'"""',e:'"""'},{cN:"comment",b:"//",e:"$",rB:true},{cN:"comment",b:"\\(\\*",e:"\\*\\)"},{cN:"class",bWK:true,e:"\\(|=|$",k:"type",c:[{cN:"title",b:a.UIR}]},{cN:"annotation",b:"\\[<",e:">\\]",r:10},{cN:"typeparam",b:"<",e:">",c:[{cN:"title",b:b}]},a.CLCM,a.CBLCLM,a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),a.CNM]}}(hljs);hljs.LANGUAGES.glsl=function(a){return{k:{keyword:"atomic_uint attribute bool break bvec2 bvec3 bvec4 case centroid coherent const continue default discard dmat2 dmat2x2 dmat2x3 dmat2x4 dmat3 dmat3x2 dmat3x3 dmat3x4 dmat4 dmat4x2 dmat4x3 dmat4x4 do double dvec2 dvec3 dvec4 else flat float for highp if iimage1D iimage1DArray iimage2D iimage2DArray iimage2DMS iimage2DMSArray iimage2DRect iimage3D iimageBuffer iimageCube iimageCubeArray image1D image1DArray image2D image2DArray image2DMS image2DMSArray image2DRect image3D imageBuffer imageCube imageCubeArray in inout int invariant isampler1D isampler1DArray isampler2D isampler2DArray isampler2DMS isampler2DMSArray isampler2DRect isampler3D isamplerBuffer isamplerCube isamplerCubeArray ivec2 ivec3 ivec4 layout lowp mat2 mat2x2 mat2x3 mat2x4 mat3 mat3x2 mat3x3 mat3x4 mat4 mat4x2 mat4x3 mat4x4 mediump noperspective out patch precision readonly restrict return sample sampler1D sampler1DArray sampler1DArrayShadow sampler1DShadow sampler2D sampler2DArray sampler2DArrayShadow sampler2DMS sampler2DMSArray sampler2DRect sampler2DRectShadow sampler2DShadow sampler3D samplerBuffer samplerCube samplerCubeArray samplerCubeArrayShadow samplerCubeShadow smooth struct subroutine switch uimage1D uimage1DArray uimage2D uimage2DArray uimage2DMS uimage2DMSArray uimage2DRect uimage3D uimageBuffer uimageCube uimageCubeArray uint uniform usampler1D usampler1DArray usampler2D usampler2DArray usampler2DMS usampler2DMSArray usampler2DRect usampler3D usamplerBuffer usamplerCube usamplerCubeArray uvec2 uvec3 uvec4 varying vec2 vec3 vec4 void volatile while writeonly",built_in:"gl_BackColor gl_BackLightModelProduct gl_BackLightProduct gl_BackMaterial gl_BackSecondaryColor gl_ClipDistance gl_ClipPlane gl_ClipVertex gl_Color gl_DepthRange gl_EyePlaneQ gl_EyePlaneR gl_EyePlaneS gl_EyePlaneT gl_Fog gl_FogCoord gl_FogFragCoord gl_FragColor gl_FragCoord gl_FragData gl_FragDepth gl_FrontColor gl_FrontFacing gl_FrontLightModelProduct gl_FrontLightProduct gl_FrontMaterial gl_FrontSecondaryColor gl_InstanceID gl_InvocationID gl_Layer gl_LightModel gl_LightSource gl_MaxAtomicCounterBindings gl_MaxAtomicCounterBufferSize gl_MaxClipDistances gl_MaxClipPlanes gl_MaxCombinedAtomicCounterBuffers gl_MaxCombinedAtomicCounters gl_MaxCombinedImageUniforms gl_MaxCombinedImageUnitsAndFragmentOutputs gl_MaxCombinedTextureImageUnits gl_MaxDrawBuffers gl_MaxFragmentAtomicCounterBuffers gl_MaxFragmentAtomicCounters gl_MaxFragmentImageUniforms gl_MaxFragmentInputComponents gl_MaxFragmentUniformComponents gl_MaxFragmentUniformVectors gl_MaxGeometryAtomicCounterBuffers gl_MaxGeometryAtomicCounters gl_MaxGeometryImageUniforms gl_MaxGeometryInputComponents gl_MaxGeometryOutputComponents gl_MaxGeometryOutputVertices gl_MaxGeometryTextureImageUnits gl_MaxGeometryTotalOutputComponents gl_MaxGeometryUniformComponents gl_MaxGeometryVaryingComponents gl_MaxImageSamples gl_MaxImageUnits gl_MaxLights gl_MaxPatchVertices gl_MaxProgramTexelOffset gl_MaxTessControlAtomicCounterBuffers gl_MaxTessControlAtomicCounters gl_MaxTessControlImageUniforms gl_MaxTessControlInputComponents gl_MaxTessControlOutputComponents gl_MaxTessControlTextureImageUnits gl_MaxTessControlTotalOutputComponents gl_MaxTessControlUniformComponents gl_MaxTessEvaluationAtomicCounterBuffers gl_MaxTessEvaluationAtomicCounters gl_MaxTessEvaluationImageUniforms gl_MaxTessEvaluationInputComponents gl_MaxTessEvaluationOutputComponents gl_MaxTessEvaluationTextureImageUnits gl_MaxTessEvaluationUniformComponents gl_MaxTessGenLevel gl_MaxTessPatchComponents gl_MaxTextureCoords gl_MaxTextureImageUnits gl_MaxTextureUnits gl_MaxVaryingComponents gl_MaxVaryingFloats gl_MaxVaryingVectors gl_MaxVertexAtomicCounterBuffers gl_MaxVertexAtomicCounters gl_MaxVertexAttribs gl_MaxVertexImageUniforms gl_MaxVertexOutputComponents gl_MaxVertexTextureImageUnits gl_MaxVertexUniformComponents gl_MaxVertexUniformVectors gl_MaxViewports gl_MinProgramTexelOffsetgl_ModelViewMatrix gl_ModelViewMatrixInverse gl_ModelViewMatrixInverseTranspose gl_ModelViewMatrixTranspose gl_ModelViewProjectionMatrix gl_ModelViewProjectionMatrixInverse gl_ModelViewProjectionMatrixInverseTranspose gl_ModelViewProjectionMatrixTranspose gl_MultiTexCoord0 gl_MultiTexCoord1 gl_MultiTexCoord2 gl_MultiTexCoord3 gl_MultiTexCoord4 gl_MultiTexCoord5 gl_MultiTexCoord6 gl_MultiTexCoord7 gl_Normal gl_NormalMatrix gl_NormalScale gl_ObjectPlaneQ gl_ObjectPlaneR gl_ObjectPlaneS gl_ObjectPlaneT gl_PatchVerticesIn gl_PerVertex gl_Point gl_PointCoord gl_PointSize gl_Position gl_PrimitiveID gl_PrimitiveIDIn gl_ProjectionMatrix gl_ProjectionMatrixInverse gl_ProjectionMatrixInverseTranspose gl_ProjectionMatrixTranspose gl_SampleID gl_SampleMask gl_SampleMaskIn gl_SamplePosition gl_SecondaryColor gl_TessCoord gl_TessLevelInner gl_TessLevelOuter gl_TexCoord gl_TextureEnvColor gl_TextureMatrixInverseTranspose gl_TextureMatrixTranspose gl_Vertex gl_VertexID gl_ViewportIndex gl_in gl_out EmitStreamVertex EmitVertex EndPrimitive EndStreamPrimitive abs acos acosh all any asin asinh atan atanh atomicCounter atomicCounterDecrement atomicCounterIncrement barrier bitCount bitfieldExtract bitfieldInsert bitfieldReverse ceil clamp cos cosh cross dFdx dFdy degrees determinant distance dot equal exp exp2 faceforward findLSB findMSB floatBitsToInt floatBitsToUint floor fma fract frexp ftransform fwidth greaterThan greaterThanEqual imageAtomicAdd imageAtomicAnd imageAtomicCompSwap imageAtomicExchange imageAtomicMax imageAtomicMin imageAtomicOr imageAtomicXor imageLoad imageStore imulExtended intBitsToFloat interpolateAtCentroid interpolateAtOffset interpolateAtSample inverse inversesqrt isinf isnan ldexp length lessThan lessThanEqual log log2 matrixCompMult max memoryBarrier min mix mod modf noise1 noise2 noise3 noise4 normalize not notEqual outerProduct packDouble2x32 packHalf2x16 packSnorm2x16 packSnorm4x8 packUnorm2x16 packUnorm4x8 pow radians reflect refract round roundEven shadow1D shadow1DLod shadow1DProj shadow1DProjLod shadow2D shadow2DLod shadow2DProj shadow2DProjLod sign sin sinh smoothstep sqrt step tan tanh texelFetch texelFetchOffset texture texture1D texture1DLod texture1DProj texture1DProjLod texture2D texture2DLod texture2DProj texture2DProjLod texture3D texture3DLod texture3DProj texture3DProjLod textureCube textureCubeLod textureGather textureGatherOffset textureGatherOffsets textureGrad textureGradOffset textureLod textureLodOffset textureOffset textureProj textureProjGrad textureProjGradOffset textureProjLod textureProjLodOffset textureProjOffset textureQueryLod textureSize transpose trunc uaddCarry uintBitsToFloat umulExtended unpackDouble2x32 unpackHalf2x16 unpackSnorm2x16 unpackSnorm4x8 unpackUnorm2x16 unpackUnorm4x8 usubBorrow gl_TextureMatrix gl_TextureMatrixInverse",literal:"true false"},i:'"',c:[a.CLCM,a.CBLCLM,a.CNM,{cN:"preprocessor",b:"#",e:"$"}]}}(hljs);hljs.LANGUAGES.go=function(a){var b={keyword:"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer",constant:"true false iota nil",typename:"bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune",built_in:"append cap close complex copy imag len make new panic print println real recover delete"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",r:0},{cN:"string",b:"`",e:"`"},{cN:"number",b:"[^a-zA-Z_0-9](\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?",r:0},a.CNM]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.haml=function(a){return{cI:true,c:[{cN:"doctype",b:"^!!!( (5|1\\.1|Strict|Frameset|Basic|Mobile|RDFa|XML\\b.*))?$",r:10},{cN:"comment",b:"^\\s*(-#|/).*$",r:0},{b:"^\\s*-(?!#)",starts:{e:"\\n",sL:"ruby"},r:0},{cN:"tag",b:"^\\s*%",c:[{cN:"title",b:"\\w+",r:0},{cN:"value",b:"[#\\.]\\w+",r:0},{b:"{\\s*",e:"\\s*}",eE:true,c:[{b:":\\w+\\s*=>",e:",\\s+",rB:true,eW:true,r:0,c:[{cN:"symbol",b:":\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0},{b:"\\(\\s*",e:"\\s*\\)",eE:true,c:[{b:"\\w+\\s*=",e:"\\s+",rB:true,eW:true,r:0,c:[{cN:"attribute",b:"\\w+",r:0},{cN:"string",b:'"',e:'"',r:0},{cN:"string",b:"'",e:"'",r:0},{b:"\\w+",r:0}]},],r:0}],r:10},{cN:"bullet",b:"^\\s*[=~]\\s*",r:0},{b:"#{",starts:{e:"}",sL:"ruby"},r:0}]}}(hljs);hljs.LANGUAGES.handlebars=function(c){function f(l,k){var g={};for(var j in l){if(j!="contains"){g[j]=l[j]}var m=[];for(var h=0;l.c&&h<l.c.length;h++){m.push(f(l.c[h],l))}m=d.concat(m);if(m.length){g.c=m}}return g}var b="each in with if else unless bindattr action collection debugger log outlet template unbound view yield";var e={cN:"variable",b:"[a-zA-Z.]+",k:b};var d=[{cN:"expression",b:"{{",e:"}}",c:[{cN:"begin-block",b:"#[a-zA-Z .]+",k:b},{cN:"string",b:'"',e:'"'},{cN:"end-block",b:"\\/[a-zA-Z .]+",k:b},{cN:"variable",b:"[a-zA-Z.]+",k:b}]}];var a=f(c.LANGUAGES.xml);a.cI=true;return a}(hljs);hljs.LANGUAGES.haskell=function(a){var d={cN:"type",b:"\\b[A-Z][\\w']*",r:0};var c={cN:"container",b:"\\(",e:"\\)",i:'"',c:[{cN:"type",b:"\\b[A-Z][\\w]*(\\((\\.\\.|,|\\w+)\\))?"},{cN:"title",b:"[_a-z][\\w']*"}]};var b={cN:"container",b:"{",e:"}",c:c.c};return{k:"let in if then else case of where do module import hiding qualified type data newtype deriving class instance not as foreign ccall safe unsafe",c:[{cN:"comment",b:"--",e:"$"},{cN:"preprocessor",b:"{-#",e:"#-}"},{cN:"comment",c:["self"],b:"{-",e:"-}"},{cN:"string",b:"\\s+'",e:"'",c:[a.BE],r:0},a.QSM,{cN:"import",b:"\\bimport",e:"$",k:"import qualified as hiding",c:[c],i:"\\W\\.|;"},{cN:"module",b:"\\bmodule",e:"where",k:"module where",c:[c],i:"\\W\\.|;"},{cN:"class",b:"\\b(class|instance)",e:"where",k:"class where instance",c:[d]},{cN:"typedef",b:"\\b(data|(new)?type)",e:"$",k:"data type newtype deriving",c:[d,c,b]},a.CNM,{cN:"shebang",b:"#!\\/usr\\/bin\\/env runhaskell",e:"$"},d,{cN:"title",b:"^[_a-z][\\w']*"},{b:"->|<-"}]}}(hljs);hljs.LANGUAGES.http=function(a){return{i:"\\S",c:[{cN:"status",b:"^HTTP/[0-9\\.]+",e:"$",c:[{cN:"number",b:"\\b\\d{3}\\b"}]},{cN:"request",b:"^[A-Z]+ (.*?) HTTP/[0-9\\.]+$",rB:true,e:"$",c:[{cN:"string",b:" ",e:" ",eB:true,eE:true}]},{cN:"attribute",b:"^\\w",e:": ",eE:true,i:"\\n|\\s|=",starts:{cN:"string",e:"$"}},{b:"\\n\\n",starts:{sL:"",eW:true}}]}}(hljs);hljs.LANGUAGES.ini=function(a){return{cI:true,i:"[^\\s]",c:[{cN:"comment",b:";",e:"$"},{cN:"title",b:"^\\[",e:"\\]"},{cN:"setting",b:"^[a-z0-9\\[\\]_-]+[ \\t]*=[ \\t]*",e:"$",c:[{cN:"value",eW:true,k:"on off true false yes no",c:[a.QSM,a.NM],r:0}]}]}}(hljs);hljs.LANGUAGES.java=function(a){return{k:"false synchronized int abstract float private char boolean static null if const for true while long throw strictfp finally protected import native final return void enum else break transient new catch instanceof byte super volatile case assert short package default double public try this switch continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"(^|\\s)@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,{cN:"class",bWK:true,e:"{",k:"class interface",eE:true,i:":",c:[{bWK:true,k:"extends implements",r:10},{cN:"title",b:a.UIR}]},a.CNM,{cN:"annotation",b:"@[A-Za-z]+"}]}}(hljs);hljs.LANGUAGES.javascript=function(a){return{k:{keyword:"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const",literal:"true false null undefined NaN Infinity"},c:[a.ASM,a.QSM,a.CLCM,a.CBLCLM,a.CNM,{b:"("+a.RSR+"|\\b(case|return|throw)\\b)\\s*",k:"return throw case",c:[a.CLCM,a.CBLCLM,a.REGEXP_MODE,{b:/</,e:/>;/,sL:"xml"}],r:0},{cN:"function",bWK:true,e:/{/,k:"function",c:[{cN:"title",b:/[A-Za-z$_][0-9A-Za-z$_]*/},{cN:"params",b:/\(/,e:/\)/,c:[a.CLCM,a.CBLCLM],i:/["'\(]/}],i:/\[|%/}]}}(hljs);hljs.LANGUAGES.json=function(a){var e={literal:"true false null"};var d=[a.QSM,a.CNM];var c={cN:"value",e:",",eW:true,eE:true,c:d,k:e};var b={b:"{",e:"}",c:[{cN:"attribute",b:'\\s*"',e:'"\\s*:\\s*',eB:true,eE:true,c:[a.BE],i:"\\n",starts:c}],i:"\\S"};var f={b:"\\[",e:"\\]",c:[a.inherit(c,{cN:null})],i:"\\S"};d.splice(d.length,0,b,f);return{c:d,k:e,i:"\\S"}}(hljs);hljs.LANGUAGES.lasso=function(b){var a="[a-zA-Z_][a-zA-Z0-9_.]*|&[lg]t;";var c="<\\?(lasso(script)?|=)";return{cI:true,l:a,k:{literal:"true false none minimal full all infinity nan and or not bw ew cn lt lte gt gte eq neq ft rx nrx",built_in:"array date decimal duration integer map pair string tag xml null list queue set stack staticarray local var variable data global self inherited void",keyword:"error_code error_msg error_pop error_push error_reset cache database_names database_schemanames database_tablenames define_tag define_type email_batch encode_set html_comment handle handle_error header if inline iterate ljax_target link link_currentaction link_currentgroup link_currentrecord link_detail link_firstgroup link_firstrecord link_lastgroup link_lastrecord link_nextgroup link_nextrecord link_prevgroup link_prevrecord log loop namespace_using output_none portal private protect records referer referrer repeating resultset rows search_args search_arguments select sort_args sort_arguments thread_atomic value_list while abort case else if_empty if_false if_null if_true loop_abort loop_continue loop_count params params_up return return_value run_children soap_definetag soap_lastrequest soap_lastresponse tag_name ascending average by define descending do equals frozen group handle_failure import in into join let match max min on order parent protected provide public require skip split_thread sum take thread to trait type where with yield"},c:[{cN:"preprocessor",b:"\\]|\\?>",r:0,starts:{cN:"markup",e:"\\[|"+c,rE:true}},{cN:"preprocessor",b:"\\[noprocess\\]",starts:{cN:"markup",e:"\\[/noprocess\\]",rE:true}},{cN:"preprocessor",b:"\\[no_square_brackets|\\[/noprocess|"+c},{cN:"preprocessor",b:"\\[",r:0},{cN:"shebang",b:"^#!.+lasso9\\b",r:10},b.CLCM,{cN:"javadoc",b:"/\\*\\*!",e:"\\*/"},b.CBLCLM,b.CNM,b.inherit(b.ASM,{i:null}),b.inherit(b.QSM,{i:null}),{cN:"string",b:"`",e:"`"},{cN:"variable",b:"#\\d+|[#$]"+a},{cN:"tag",b:"::",e:a},{cN:"attribute",b:"\\.\\.\\.|-"+b.UIR},{cN:"class",bWK:true,k:"define",eE:true,e:"\\(|=>",c:[{cN:"title",b:b.UIR+"=?"}]}]}}(hljs);hljs.LANGUAGES.lisp=function(i){var l="[a-zA-Z_\\-\\+\\*\\/\\<\\=\\>\\&\\#][a-zA-Z0-9_\\-\\+\\*\\/\\<\\=\\>\\&\\#!]*";var m="(\\-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s)(\\+|\\-)?\\d+)?";var k={cN:"shebang",b:"^#!",e:"$"};var a={cN:"literal",b:"\\b(t{1}|nil)\\b"};var d=[{cN:"number",b:m},{cN:"number",b:"#b[0-1]+(/[0-1]+)?"},{cN:"number",b:"#o[0-7]+(/[0-7]+)?"},{cN:"number",b:"#x[0-9a-f]+(/[0-9a-f]+)?"},{cN:"number",b:"#c\\("+m+" +"+m,e:"\\)"}];var h={cN:"string",b:'"',e:'"',c:[i.BE],r:0};var n={cN:"comment",b:";",e:"$"};var g={cN:"variable",b:"\\*",e:"\\*"};var o={cN:"keyword",b:"[:&]"+l};var b={b:"\\(",e:"\\)",c:["self",a,h].concat(d)};var e={cN:"quoted",b:"['`]\\(",e:"\\)",c:d.concat([h,g,o,b])};var c={cN:"quoted",b:"\\(quote ",e:"\\)",k:{title:"quote"},c:d.concat([h,g,o,b])};var j={cN:"list",b:"\\(",e:"\\)"};var f={eW:true,r:0};j.c=[{cN:"title",b:l},f];f.c=[e,c,j,a].concat(d).concat([h,n,g,o]);return{i:"[^\\s]",c:d.concat([k,a,h,n,e,c,j])}}(hljs);hljs.LANGUAGES.lua=function(b){var a="\\[=*\\[";var e="\\]=*\\]";var c={b:a,e:e,c:["self"]};var d=[{cN:"comment",b:"--(?!"+a+")",e:"$"},{cN:"comment",b:"--"+a,e:e,c:[c],r:10}];return{l:b.UIR,k:{keyword:"and break do else elseif end false for if in local nil not or repeat return then true until while",built_in:"_G _VERSION assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstring module next pairs pcall print rawequal rawget rawset require select setfenv setmetatable tonumber tostring type unpack xpcall coroutine debug io math os package string table"},c:d.concat([{cN:"function",bWK:true,e:"\\)",k:"function",c:[{cN:"title",b:"([_a-zA-Z]\\w*\\.)*([_a-zA-Z]\\w*:)?[_a-zA-Z]\\w*"},{cN:"params",b:"\\(",eW:true,c:d}].concat(d)},b.CNM,b.ASM,b.QSM,{cN:"string",b:a,e:e,c:[c],r:10}])}}(hljs);hljs.LANGUAGES.markdown=function(a){return{c:[{cN:"header",b:"^#{1,3}",e:"$"},{cN:"header",b:"^.+?\\n[=-]{2,}$"},{b:"<",e:">",sL:"xml",r:0},{cN:"bullet",b:"^([*+-]|(\\d+\\.))\\s+"},{cN:"strong",b:"[*_]{2}.+?[*_]{2}"},{cN:"emphasis",b:"\\*.+?\\*"},{cN:"emphasis",b:"_.+?_",r:0},{cN:"blockquote",b:"^>\\s+",e:"$"},{cN:"code",b:"`.+?`"},{cN:"code",b:"^    ",e:"$",r:0},{cN:"horizontal_rule",b:"^-{3,}",e:"$"},{b:"\\[.+?\\]\\(.+?\\)",rB:true,c:[{cN:"link_label",b:"\\[.+\\]"},{cN:"link_url",b:"\\(",e:"\\)",eB:true,eE:true}]}]}}(hljs);hljs.LANGUAGES.matlab=function(a){var b=[a.CNM,{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0}];return{k:{keyword:"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while",built_in:"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson"},i:'(//|"|#|/\\*|\\s+/\\w+)',c:[{cN:"function",bWK:true,e:"$",k:"function",c:[{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)"},{cN:"params",b:"\\[",e:"\\]"}]},{cN:"transposed_variable",b:"[a-zA-Z_][a-zA-Z_0-9]*('+[\\.']*|[\\.']+)",e:""},{cN:"matrix",b:"\\[",e:"\\]'*[\\.']*",c:b},{cN:"cell",b:"\\{",e:"\\}'*[\\.']*",c:b},{cN:"comment",b:"\\%",e:"$"}].concat(b)}}(hljs);hljs.LANGUAGES.mel=function(a){return{k:"int float string vector matrix if else switch case default while do for in break continue global proc return about abs addAttr addAttributeEditorNodeHelp addDynamic addNewShelfTab addPP addPanelCategory addPrefixToName advanceToNextDrivenKey affectedNet affects aimConstraint air alias aliasAttr align alignCtx alignCurve alignSurface allViewFit ambientLight angle angleBetween animCone animCurveEditor animDisplay animView annotate appendStringArray applicationName applyAttrPreset applyTake arcLenDimContext arcLengthDimension arclen arrayMapper art3dPaintCtx artAttrCtx artAttrPaintVertexCtx artAttrSkinPaintCtx artAttrTool artBuildPaintMenu artFluidAttrCtx artPuttyCtx artSelectCtx artSetPaintCtx artUserPaintCtx assignCommand assignInputDevice assignViewportFactories attachCurve attachDeviceAttr attachSurface attrColorSliderGrp attrCompatibility attrControlGrp attrEnumOptionMenu attrEnumOptionMenuGrp attrFieldGrp attrFieldSliderGrp attrNavigationControlGrp attrPresetEditWin attributeExists attributeInfo attributeMenu attributeQuery autoKeyframe autoPlace bakeClip bakeFluidShading bakePartialHistory bakeResults bakeSimulation basename basenameEx batchRender bessel bevel bevelPlus binMembership bindSkin blend2 blendShape blendShapeEditor blendShapePanel blendTwoAttr blindDataType boneLattice boundary boxDollyCtx boxZoomCtx bufferCurve buildBookmarkMenu buildKeyframeMenu button buttonManip CBG cacheFile cacheFileCombine cacheFileMerge cacheFileTrack camera cameraView canCreateManip canvas capitalizeString catch catchQuiet ceil changeSubdivComponentDisplayLevel changeSubdivRegion channelBox character characterMap characterOutlineEditor characterize chdir checkBox checkBoxGrp checkDefaultRenderGlobals choice circle circularFillet clamp clear clearCache clip clipEditor clipEditorCurrentTimeCtx clipSchedule clipSchedulerOutliner clipTrimBefore closeCurve closeSurface cluster cmdFileOutput cmdScrollFieldExecuter cmdScrollFieldReporter cmdShell coarsenSubdivSelectionList collision color colorAtPoint colorEditor colorIndex colorIndexSliderGrp colorSliderButtonGrp colorSliderGrp columnLayout commandEcho commandLine commandPort compactHairSystem componentEditor compositingInterop computePolysetVolume condition cone confirmDialog connectAttr connectControl connectDynamic connectJoint connectionInfo constrain constrainValue constructionHistory container containsMultibyte contextInfo control convertFromOldLayers convertIffToPsd convertLightmap convertSolidTx convertTessellation convertUnit copyArray copyFlexor copyKey copySkinWeights cos cpButton cpCache cpClothSet cpCollision cpConstraint cpConvClothToMesh cpForces cpGetSolverAttr cpPanel cpProperty cpRigidCollisionFilter cpSeam cpSetEdit cpSetSolverAttr cpSolver cpSolverTypes cpTool cpUpdateClothUVs createDisplayLayer createDrawCtx createEditor createLayeredPsdFile createMotionField createNewShelf createNode createRenderLayer createSubdivRegion cross crossProduct ctxAbort ctxCompletion ctxEditMode ctxTraverse currentCtx currentTime currentTimeCtx currentUnit currentUnit curve curveAddPtCtx curveCVCtx curveEPCtx curveEditorCtx curveIntersect curveMoveEPCtx curveOnSurface curveSketchCtx cutKey cycleCheck cylinder dagPose date defaultLightListCheckBox defaultNavigation defineDataServer defineVirtualDevice deformer deg_to_rad delete deleteAttr deleteShadingGroupsAndMaterials deleteShelfTab deleteUI deleteUnusedBrushes delrandstr detachCurve detachDeviceAttr detachSurface deviceEditor devicePanel dgInfo dgdirty dgeval dgtimer dimWhen directKeyCtx directionalLight dirmap dirname disable disconnectAttr disconnectJoint diskCache displacementToPoly displayAffected displayColor displayCull displayLevelOfDetail displayPref displayRGBColor displaySmoothness displayStats displayString displaySurface distanceDimContext distanceDimension doBlur dolly dollyCtx dopeSheetEditor dot dotProduct doubleProfileBirailSurface drag dragAttrContext draggerContext dropoffLocator duplicate duplicateCurve duplicateSurface dynCache dynControl dynExport dynExpression dynGlobals dynPaintEditor dynParticleCtx dynPref dynRelEdPanel dynRelEditor dynamicLoad editAttrLimits editDisplayLayerGlobals editDisplayLayerMembers editRenderLayerAdjustment editRenderLayerGlobals editRenderLayerMembers editor editorTemplate effector emit emitter enableDevice encodeString endString endsWith env equivalent equivalentTol erf error eval eval evalDeferred evalEcho event exactWorldBoundingBox exclusiveLightCheckBox exec executeForEachObject exists exp expression expressionEditorListen extendCurve extendSurface extrude fcheck fclose feof fflush fgetline fgetword file fileBrowserDialog fileDialog fileExtension fileInfo filetest filletCurve filter filterCurve filterExpand filterStudioImport findAllIntersections findAnimCurves findKeyframe findMenuItem findRelatedSkinCluster finder firstParentOf fitBspline flexor floatEq floatField floatFieldGrp floatScrollBar floatSlider floatSlider2 floatSliderButtonGrp floatSliderGrp floor flow fluidCacheInfo fluidEmitter fluidVoxelInfo flushUndo fmod fontDialog fopen formLayout format fprint frameLayout fread freeFormFillet frewind fromNativePath fwrite gamma gauss geometryConstraint getApplicationVersionAsFloat getAttr getClassification getDefaultBrush getFileList getFluidAttr getInputDeviceRange getMayaPanelTypes getModifiers getPanel getParticleAttr getPluginResource getenv getpid glRender glRenderEditor globalStitch gmatch goal gotoBindPose grabColor gradientControl gradientControlNoAttr graphDollyCtx graphSelectContext graphTrackCtx gravity grid gridLayout group groupObjectsByName HfAddAttractorToAS HfAssignAS HfBuildEqualMap HfBuildFurFiles HfBuildFurImages HfCancelAFR HfConnectASToHF HfCreateAttractor HfDeleteAS HfEditAS HfPerformCreateAS HfRemoveAttractorFromAS HfSelectAttached HfSelectAttractors HfUnAssignAS hardenPointCurve hardware hardwareRenderPanel headsUpDisplay headsUpMessage help helpLine hermite hide hilite hitTest hotBox hotkey hotkeyCheck hsv_to_rgb hudButton hudSlider hudSliderButton hwReflectionMap hwRender hwRenderLoad hyperGraph hyperPanel hyperShade hypot iconTextButton iconTextCheckBox iconTextRadioButton iconTextRadioCollection iconTextScrollList iconTextStaticLabel ikHandle ikHandleCtx ikHandleDisplayScale ikSolver ikSplineHandleCtx ikSystem ikSystemInfo ikfkDisplayMethod illustratorCurves image imfPlugins inheritTransform insertJoint insertJointCtx insertKeyCtx insertKnotCurve insertKnotSurface instance instanceable instancer intField intFieldGrp intScrollBar intSlider intSliderGrp interToUI internalVar intersect iprEngine isAnimCurve isConnected isDirty isParentOf isSameObject isTrue isValidObjectName isValidString isValidUiName isolateSelect itemFilter itemFilterAttr itemFilterRender itemFilterType joint jointCluster jointCtx jointDisplayScale jointLattice keyTangent keyframe keyframeOutliner keyframeRegionCurrentTimeCtx keyframeRegionDirectKeyCtx keyframeRegionDollyCtx keyframeRegionInsertKeyCtx keyframeRegionMoveKeyCtx keyframeRegionScaleKeyCtx keyframeRegionSelectKeyCtx keyframeRegionSetKeyCtx keyframeRegionTrackCtx keyframeStats lassoContext lattice latticeDeformKeyCtx launch launchImageEditor layerButton layeredShaderPort layeredTexturePort layout layoutDialog lightList lightListEditor lightListPanel lightlink lineIntersection linearPrecision linstep listAnimatable listAttr listCameras listConnections listDeviceAttachments listHistory listInputDeviceAxes listInputDeviceButtons listInputDevices listMenuAnnotation listNodeTypes listPanelCategories listRelatives listSets listTransforms listUnselected listerEditor loadFluid loadNewShelf loadPlugin loadPluginLanguageResources loadPrefObjects localizedPanelLabel lockNode loft log longNameOf lookThru ls lsThroughFilter lsType lsUI Mayatomr mag makeIdentity makeLive makePaintable makeRoll makeSingleSurface makeTubeOn makebot manipMoveContext manipMoveLimitsCtx manipOptions manipRotateContext manipRotateLimitsCtx manipScaleContext manipScaleLimitsCtx marker match max memory menu menuBarLayout menuEditor menuItem menuItemToShelf menuSet menuSetPref messageLine min minimizeApp mirrorJoint modelCurrentTimeCtx modelEditor modelPanel mouse movIn movOut move moveIKtoFK moveKeyCtx moveVertexAlongDirection multiProfileBirailSurface mute nParticle nameCommand nameField namespace namespaceInfo newPanelItems newton nodeCast nodeIconButton nodeOutliner nodePreset nodeType noise nonLinear normalConstraint normalize nurbsBoolean nurbsCopyUVSet nurbsCube nurbsEditUV nurbsPlane nurbsSelect nurbsSquare nurbsToPoly nurbsToPolygonsPref nurbsToSubdiv nurbsToSubdivPref nurbsUVSet nurbsViewDirectionVector objExists objectCenter objectLayer objectType objectTypeUI obsoleteProc oceanNurbsPreviewPlane offsetCurve offsetCurveOnSurface offsetSurface openGLExtension openMayaPref optionMenu optionMenuGrp optionVar orbit orbitCtx orientConstraint outlinerEditor outlinerPanel overrideModifier paintEffectsDisplay pairBlend palettePort paneLayout panel panelConfiguration panelHistory paramDimContext paramDimension paramLocator parent parentConstraint particle particleExists particleInstancer particleRenderInfo partition pasteKey pathAnimation pause pclose percent performanceOptions pfxstrokes pickWalk picture pixelMove planarSrf plane play playbackOptions playblast plugAttr plugNode pluginInfo pluginResourceUtil pointConstraint pointCurveConstraint pointLight pointMatrixMult pointOnCurve pointOnSurface pointPosition poleVectorConstraint polyAppend polyAppendFacetCtx polyAppendVertex polyAutoProjection polyAverageNormal polyAverageVertex polyBevel polyBlendColor polyBlindData polyBoolOp polyBridgeEdge polyCacheMonitor polyCheck polyChipOff polyClipboard polyCloseBorder polyCollapseEdge polyCollapseFacet polyColorBlindData polyColorDel polyColorPerVertex polyColorSet polyCompare polyCone polyCopyUV polyCrease polyCreaseCtx polyCreateFacet polyCreateFacetCtx polyCube polyCut polyCutCtx polyCylinder polyCylindricalProjection polyDelEdge polyDelFacet polyDelVertex polyDuplicateAndConnect polyDuplicateEdge polyEditUV polyEditUVShell polyEvaluate polyExtrudeEdge polyExtrudeFacet polyExtrudeVertex polyFlipEdge polyFlipUV polyForceUV polyGeoSampler polyHelix polyInfo polyInstallAction polyLayoutUV polyListComponentConversion polyMapCut polyMapDel polyMapSew polyMapSewMove polyMergeEdge polyMergeEdgeCtx polyMergeFacet polyMergeFacetCtx polyMergeUV polyMergeVertex polyMirrorFace polyMoveEdge polyMoveFacet polyMoveFacetUV polyMoveUV polyMoveVertex polyNormal polyNormalPerVertex polyNormalizeUV polyOptUvs polyOptions polyOutput polyPipe polyPlanarProjection polyPlane polyPlatonicSolid polyPoke polyPrimitive polyPrism polyProjection polyPyramid polyQuad polyQueryBlindData polyReduce polySelect polySelectConstraint polySelectConstraintMonitor polySelectCtx polySelectEditCtx polySeparate polySetToFaceNormal polySewEdge polyShortestPathCtx polySmooth polySoftEdge polySphere polySphericalProjection polySplit polySplitCtx polySplitEdge polySplitRing polySplitVertex polyStraightenUVBorder polySubdivideEdge polySubdivideFacet polyToSubdiv polyTorus polyTransfer polyTriangulate polyUVSet polyUnite polyWedgeFace popen popupMenu pose pow preloadRefEd print progressBar progressWindow projFileViewer projectCurve projectTangent projectionContext projectionManip promptDialog propModCtx propMove psdChannelOutliner psdEditTextureFile psdExport psdTextureFile putenv pwd python querySubdiv quit rad_to_deg radial radioButton radioButtonGrp radioCollection radioMenuItemCollection rampColorPort rand randomizeFollicles randstate rangeControl readTake rebuildCurve rebuildSurface recordAttr recordDevice redo reference referenceEdit referenceQuery refineSubdivSelectionList refresh refreshAE registerPluginResource rehash reloadImage removeJoint removeMultiInstance removePanelCategory rename renameAttr renameSelectionList renameUI render renderGlobalsNode renderInfo renderLayerButton renderLayerParent renderLayerPostProcess renderLayerUnparent renderManip renderPartition renderQualityNode renderSettings renderThumbnailUpdate renderWindowEditor renderWindowSelectContext renderer reorder reorderDeformers requires reroot resampleFluid resetAE resetPfxToPolyCamera resetTool resolutionNode retarget reverseCurve reverseSurface revolve rgb_to_hsv rigidBody rigidSolver roll rollCtx rootOf rot rotate rotationInterpolation roundConstantRadius rowColumnLayout rowLayout runTimeCommand runup sampleImage saveAllShelves saveAttrPreset saveFluid saveImage saveInitialState saveMenu savePrefObjects savePrefs saveShelf saveToolSettings scale scaleBrushBrightness scaleComponents scaleConstraint scaleKey scaleKeyCtx sceneEditor sceneUIReplacement scmh scriptCtx scriptEditorInfo scriptJob scriptNode scriptTable scriptToShelf scriptedPanel scriptedPanelType scrollField scrollLayout sculpt searchPathArray seed selLoadSettings select selectContext selectCurveCV selectKey selectKeyCtx selectKeyframeRegionCtx selectMode selectPref selectPriority selectType selectedNodes selectionConnection separator setAttr setAttrEnumResource setAttrMapping setAttrNiceNameResource setConstraintRestPosition setDefaultShadingGroup setDrivenKeyframe setDynamic setEditCtx setEditor setFluidAttr setFocus setInfinity setInputDeviceMapping setKeyCtx setKeyPath setKeyframe setKeyframeBlendshapeTargetWts setMenuMode setNodeNiceNameResource setNodeTypeFlag setParent setParticleAttr setPfxToPolyCamera setPluginResource setProject setStampDensity setStartupMessage setState setToolTo setUITemplate setXformManip sets shadingConnection shadingGeometryRelCtx shadingLightRelCtx shadingNetworkCompare shadingNode shapeCompare shelfButton shelfLayout shelfTabLayout shellField shortNameOf showHelp showHidden showManipCtx showSelectionInTitle showShadingGroupAttrEditor showWindow sign simplify sin singleProfileBirailSurface size sizeBytes skinCluster skinPercent smoothCurve smoothTangentSurface smoothstep snap2to2 snapKey snapMode snapTogetherCtx snapshot soft softMod softModCtx sort sound soundControl source spaceLocator sphere sphrand spotLight spotLightPreviewPort spreadSheetEditor spring sqrt squareSurface srtContext stackTrace startString startsWith stitchAndExplodeShell stitchSurface stitchSurfacePoints strcmp stringArrayCatenate stringArrayContains stringArrayCount stringArrayInsertAtIndex stringArrayIntersector stringArrayRemove stringArrayRemoveAtIndex stringArrayRemoveDuplicates stringArrayRemoveExact stringArrayToString stringToStringArray strip stripPrefixFromName stroke subdAutoProjection subdCleanTopology subdCollapse subdDuplicateAndConnect subdEditUV subdListComponentConversion subdMapCut subdMapSewMove subdMatchTopology subdMirror subdToBlind subdToPoly subdTransferUVsToCache subdiv subdivCrease subdivDisplaySmoothness substitute substituteAllString substituteGeometry substring surface surfaceSampler surfaceShaderList swatchDisplayPort switchTable symbolButton symbolCheckBox sysFile system tabLayout tan tangentConstraint texLatticeDeformContext texManipContext texMoveContext texMoveUVShellContext texRotateContext texScaleContext texSelectContext texSelectShortestPathCtx texSmudgeUVContext texWinToolCtx text textCurves textField textFieldButtonGrp textFieldGrp textManip textScrollList textToShelf textureDisplacePlane textureHairColor texturePlacementContext textureWindow threadCount threePointArcCtx timeControl timePort timerX toNativePath toggle toggleAxis toggleWindowVisibility tokenize tokenizeList tolerance tolower toolButton toolCollection toolDropped toolHasOptions toolPropertyWindow torus toupper trace track trackCtx transferAttributes transformCompare transformLimits translator trim trunc truncateFluidCache truncateHairCache tumble tumbleCtx turbulence twoPointArcCtx uiRes uiTemplate unassignInputDevice undo undoInfo ungroup uniform unit unloadPlugin untangleUV untitledFileName untrim upAxis updateAE userCtx uvLink uvSnapshot validateShelfName vectorize view2dToolCtx viewCamera viewClipPlane viewFit viewHeadOn viewLookAt viewManip viewPlace viewSet visor volumeAxis vortex waitCursor warning webBrowser webBrowserPrefs whatIs window windowPref wire wireContext workspace wrinkle wrinkleContext writeTake xbmLangPathList xform",i:"</",c:[a.CNM,a.ASM,a.QSM,{cN:"string",b:"`",e:"`",c:[a.BE]},{cN:"variable",b:"\\$\\d",r:5},{cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+|[^\\s\\w{]|{\\w+}|\\w+)"},a.CLCM,a.CBLCLM]}}(hljs);hljs.LANGUAGES.mizar=function(a){return{k:["environ vocabularies notations constructors definitions registrations theorems schemes requirements","begin end definition registration cluster existence pred func defpred deffunc theorem proof","let take assume then thus hence ex for st holds consider reconsider such that and in provided of as from","be being by means equals implies iff redefine define now not or attr is mode suppose per cases set","thesis contradiction scheme reserve struct","correctness compatibility coherence symmetry assymetry reflexivity irreflexivity","connectedness uniqueness commutativity idempotence involutiveness projectivity"].join(" "),c:[{cN:"comment",b:"::",e:"$"}]}}(hljs);hljs.LANGUAGES.nginx=function(b){var c=[{cN:"variable",b:"\\$\\d+"},{cN:"variable",b:"\\${",e:"}"},{cN:"variable",b:"[\\$\\@]"+b.UIR}];var a={eW:true,l:"[a-z/_]+",k:{built_in:"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll"},r:0,i:"=>",c:[b.HCM,{cN:"string",b:'"',e:'"',c:[b.BE].concat(c),r:0},{cN:"string",b:"'",e:"'",c:[b.BE].concat(c),r:0},{cN:"url",b:"([a-z]+):/",e:"\\s",eW:true,eE:true},{cN:"regexp",b:"\\s\\^",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"~\\*?\\s+",e:"\\s|{|;",rE:true,c:[b.BE].concat(c)},{cN:"regexp",b:"\\*(\\.[a-z\\-]+)+",c:[b.BE].concat(c)},{cN:"regexp",b:"([a-z\\-]+\\.)+\\*",c:[b.BE].concat(c)},{cN:"number",b:"\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}(:\\d{1,5})?\\b"},{cN:"number",b:"\\b\\d+[kKmMgGdshdwy]*\\b",r:0}].concat(c)};return{c:[b.HCM,{b:b.UIR+"\\s",e:";|{",rB:true,c:[{cN:"title",b:b.UIR,starts:a}],r:0}],i:"[^\\s\\}]"}}(hljs);hljs.LANGUAGES.objectivec=function(a){var b={keyword:"int float while private char catch export sizeof typedef const struct for union unsigned long volatile static protected bool mutable if public do return goto void enum else break extern asm case short default double throw register explicit signed typename try this switch continue wchar_t inline readonly assign property self synchronized end synthesize id optional required nonatomic super unichar finally dynamic IBOutlet IBAction selector strong weak readonly",literal:"false true FALSE TRUE nil YES NO NULL",built_in:"NSString NSDictionary CGRect CGPoint UIButton UILabel UITextView UIWebView MKMapView UISegmentedControl NSObject UITableViewDelegate UITableViewDataSource NSThread UIActivityIndicator UITabbar UIToolBar UIBarButtonItem UIImageView NSAutoreleasePool UITableView BOOL NSInteger CGFloat NSException NSLog NSMutableString NSMutableArray NSMutableDictionary NSURL NSIndexPath CGSize UITableViewCell UIView UIViewController UINavigationBar UINavigationController UITabBarController UIPopoverController UIPopoverControllerDelegate UIImage NSNumber UISearchBar NSFetchedResultsController NSFetchedResultsChangeType UIScrollView UIScrollViewDelegate UIEdgeInsets UIColor UIFont UIApplication NSNotFound NSNotificationCenter NSNotification UILocalNotification NSBundle NSFileManager NSTimeInterval NSDate NSCalendar NSUserDefaults UIWindow NSRange NSArray NSError NSURLRequest NSURLConnection UIInterfaceOrientation MPMoviePlayerController dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once"};return{k:b,i:"</",c:[a.CLCM,a.CBLCLM,a.CNM,a.QSM,{cN:"string",b:"'",e:"[^\\\\]'",i:"[^\\\\][^']"},{cN:"preprocessor",b:"#import",e:"$",c:[{cN:"title",b:'"',e:'"'},{cN:"title",b:"<",e:">"}]},{cN:"preprocessor",b:"#",e:"$"},{cN:"class",bWK:true,e:"({|$)",k:"interface class protocol implementation",c:[{cN:"id",b:a.UIR}]},{cN:"variable",b:"\\."+a.UIR,r:0}]}}(hljs);hljs.LANGUAGES.parser3=function(a){return{sL:"xml",r:0,c:[{cN:"comment",b:"^#",e:"$"},{cN:"comment",b:"\\^rem{",e:"}",r:10,c:[{b:"{",e:"}",c:["self"]}]},{cN:"preprocessor",b:"^@(?:BASE|USE|CLASS|OPTIONS)$",r:10},{cN:"title",b:"@[\\w\\-]+\\[[\\w^;\\-]*\\](?:\\[[\\w^;\\-]*\\])?(?:.*)$"},{cN:"variable",b:"\\$\\{?[\\w\\-\\.\\:]+\\}?"},{cN:"keyword",b:"\\^[\\w\\-\\.\\:]+"},{cN:"number",b:"\\^#[0-9a-fA-F]+"},a.CNM]}}(hljs);hljs.LANGUAGES.perl=function(e){var a="getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when";var d={cN:"subst",b:"[$@]\\{",e:"\\}",k:a,r:10};var b={cN:"variable",b:"\\$\\d"};var i={cN:"variable",b:"[\\$\\%\\@\\*](\\^\\w\\b|#\\w+(\\:\\:\\w+)*|[^\\s\\w{]|{\\w+}|\\w+(\\:\\:\\w*)*)"};var f=[e.BE,d,b,i];var h={b:"->",c:[{b:e.IR},{b:"{",e:"}"}]};var g={cN:"comment",b:"^(__END__|__DATA__)",e:"\\n$",r:5};var c=[b,i,e.HCM,g,{cN:"comment",b:"^\\=\\w",e:"\\=cut",eW:true},h,{cN:"string",b:"q[qwxr]?\\s*\\(",e:"\\)",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\[",e:"\\]",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\{",e:"\\}",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\|",e:"\\|",c:f,r:5},{cN:"string",b:"q[qwxr]?\\s*\\<",e:"\\>",c:f,r:5},{cN:"string",b:"qw\\s+q",e:"q",c:f,r:5},{cN:"string",b:"'",e:"'",c:[e.BE],r:0},{cN:"string",b:'"',e:'"',c:f,r:0},{cN:"string",b:"`",e:"`",c:[e.BE]},{cN:"string",b:"{\\w+}",r:0},{cN:"string",b:"-?\\w+\\s*\\=\\>",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{b:"("+e.RSR+"|\\b(split|return|print|reverse|grep)\\b)\\s*",k:"split return print reverse grep",r:0,c:[e.HCM,g,{cN:"regexp",b:"(s|tr|y)/(\\\\.|[^/])*/(\\\\.|[^/])*/[a-z]*",r:10},{cN:"regexp",b:"(m|qr)?/",e:"/[a-z]*",c:[e.BE],r:0}]},{cN:"sub",bWK:true,e:"(\\s*\\(.*?\\))?[;{]",k:"sub",r:5},{cN:"operator",b:"-\\w\\b",r:0}];d.c=c;h.c[1].c=c;return{k:a,c:c}}(hljs);hljs.LANGUAGES.php=function(a){var e={cN:"variable",b:"\\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"};var b=[a.inherit(a.ASM,{i:null}),a.inherit(a.QSM,{i:null}),{cN:"string",b:'b"',e:'"',c:[a.BE]},{cN:"string",b:"b'",e:"'",c:[a.BE]}];var c=[a.BNM,a.CNM];var d={cN:"title",b:a.UIR};return{cI:true,k:"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return implements parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception php_user_filter default die require __FUNCTION__ enddeclare final try this switch continue endfor endif declare unset true false namespace trait goto instanceof insteadof __DIR__ __NAMESPACE__ __halt_compiler",c:[a.CLCM,a.HCM,{cN:"comment",b:"/\\*",e:"\\*/",c:[{cN:"phpdoc",b:"\\s@[A-Za-z]+"}]},{cN:"comment",eB:true,b:"__halt_compiler.+?;",eW:true},{cN:"string",b:"<<<['\"]?\\w+['\"]?$",e:"^\\w+;",c:[a.BE]},{cN:"preprocessor",b:"<\\?php",r:10},{cN:"preprocessor",b:"\\?>"},e,{cN:"function",bWK:true,e:"{",k:"function",i:"\\$|\\[|%",c:[d,{cN:"params",b:"\\(",e:"\\)",c:["self",e,a.CBLCLM].concat(b).concat(c)}]},{cN:"class",bWK:true,e:"{",k:"class",i:"[:\\(\\$]",c:[{bWK:true,eW:true,k:"extends",c:[d]},d]},{b:"=>"}].concat(b).concat(c)}}(hljs);hljs.LANGUAGES.profile=function(a){return{c:[a.CNM,{cN:"built_in",b:"{",e:"}$",eB:true,eE:true,c:[a.ASM,a.QSM],r:0},{cN:"filename",b:"[a-zA-Z_][\\da-zA-Z_]+\\.[\\da-zA-Z_]{1,3}",e:":",eE:true},{cN:"header",b:"(ncalls|tottime|cumtime)",e:"$",k:"ncalls tottime|10 cumtime|10 filename",r:10},{cN:"summary",b:"function calls",e:"$",c:[a.CNM],r:10},a.ASM,a.QSM,{cN:"function",b:"\\(",e:"\\)$",c:[{cN:"title",b:a.UIR,r:0}],r:0}]}}(hljs);hljs.LANGUAGES.python=function(a){var f={cN:"prompt",b:/^(>>>|\.\.\.) /};var c=[{cN:"string",b:/(u|b)?r?'''/,e:/'''/,c:[f],r:10},{cN:"string",b:/(u|b)?r?"""/,e:/"""/,c:[f],r:10},{cN:"string",b:/(u|r|ur)'/,e:/'/,c:[a.BE],r:10},{cN:"string",b:/(u|r|ur)"/,e:/"/,c:[a.BE],r:10},{cN:"string",b:/(b|br)'/,e:/'/,c:[a.BE]},{cN:"string",b:/(b|br)"/,e:/"/,c:[a.BE]}].concat([a.ASM,a.QSM]);var e={cN:"title",b:a.UIR};var d={cN:"params",b:/\(/,e:/\)/,c:["self",a.CNM,f].concat(c)};var b={bWK:true,e:/:/,i:/[${=;\n]/,c:[e,d],r:10};return{k:{keyword:"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda nonlocal|10",built_in:"None True False Ellipsis NotImplemented"},i:/(<\/|->|\?)/,c:c.concat([f,a.HCM,a.inherit(b,{cN:"function",k:"def"}),a.inherit(b,{cN:"class",k:"class"}),a.CNM,{cN:"decorator",b:/@/,e:/$/},{b:/\b(print|exec)\(/}])}}(hljs);hljs.LANGUAGES.r=function(a){var b="([a-zA-Z]|\\.[a-zA-Z.])[a-zA-Z0-9._]*";return{c:[a.HCM,{b:b,l:b,k:{keyword:"function if in break next repeat else for return switch while try tryCatch|10 stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...|10",literal:"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10"},r:0},{cN:"number",b:"0[xX][0-9a-fA-F]+[Li]?\\b",r:0},{cN:"number",b:"\\d+(?:[eE][+\\-]?\\d*)?L\\b",r:0},{cN:"number",b:"\\d+\\.(?!\\d)(?:i\\b)?",r:0},{cN:"number",b:"\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{cN:"number",b:"\\.\\d+(?:[eE][+\\-]?\\d*)?i?\\b",r:0},{b:"`",e:"`",r:0},{cN:"string",b:'"',e:'"',c:[a.BE],r:0},{cN:"string",b:"'",e:"'",c:[a.BE],r:0}]}}(hljs);hljs.LANGUAGES.rib=function(a){return{k:"ArchiveRecord AreaLightSource Atmosphere Attribute AttributeBegin AttributeEnd Basis Begin Blobby Bound Clipping ClippingPlane Color ColorSamples ConcatTransform Cone CoordinateSystem CoordSysTransform CropWindow Curves Cylinder DepthOfField Detail DetailRange Disk Displacement Display End ErrorHandler Exposure Exterior Format FrameAspectRatio FrameBegin FrameEnd GeneralPolygon GeometricApproximation Geometry Hider Hyperboloid Identity Illuminate Imager Interior LightSource MakeCubeFaceEnvironment MakeLatLongEnvironment MakeShadow MakeTexture Matte MotionBegin MotionEnd NuPatch ObjectBegin ObjectEnd ObjectInstance Opacity Option Orientation Paraboloid Patch PatchMesh Perspective PixelFilter PixelSamples PixelVariance Points PointsGeneralPolygons PointsPolygons Polygon Procedural Projection Quantize ReadArchive RelativeDetail ReverseOrientation Rotate Scale ScreenWindow ShadingInterpolation ShadingRate Shutter Sides Skew SolidBegin SolidEnd Sphere SubdivisionMesh Surface TextureCoordinates Torus Transform TransformBegin TransformEnd TransformPoints Translate TrimCurve WorldBegin WorldEnd",i:"</",c:[a.HCM,a.CNM,a.ASM,a.QSM]}}(hljs);hljs.LANGUAGES.rsl=function(a){return{k:{keyword:"float color point normal vector matrix while for if do return else break extern continue",built_in:"abs acos ambient area asin atan atmosphere attribute calculatenormal ceil cellnoise clamp comp concat cos degrees depth Deriv diffuse distance Du Dv environment exp faceforward filterstep floor format fresnel incident length lightsource log match max min mod noise normalize ntransform opposite option phong pnoise pow printf ptlined radians random reflect refract renderinfo round setcomp setxcomp setycomp setzcomp shadow sign sin smoothstep specular specularbrdf spline sqrt step tan texture textureinfo trace transform vtransform xcomp ycomp zcomp"},i:"</",c:[a.CLCM,a.CBLCLM,a.QSM,a.ASM,a.CNM,{cN:"preprocessor",b:"#",e:"$"},{cN:"shader",bWK:true,e:"\\(",k:"surface displacement light volume imager"},{cN:"shading",bWK:true,e:"\\(",k:"illuminate illuminance gather"}]}}(hljs);hljs.LANGUAGES.ruby=function(e){var a="[a-zA-Z_][a-zA-Z0-9_]*(\\!|\\?)?";var j="[a-zA-Z_]\\w*[!?=]?|[-+~]\\@|<<|>>|=~|===?|<=>|[<>]=?|\\*\\*|[-/+%^&*~`|]|\\[\\]=?";var g={keyword:"and false then defined module in return redo if BEGIN retry end for true self when next until do begin unless END rescue nil else break undef not super class case require yield alias while ensure elsif or include"};var c={cN:"yardoctag",b:"@[A-Za-z]+"};var k=[{cN:"comment",b:"#",e:"$",c:[c]},{cN:"comment",b:"^\\=begin",e:"^\\=end",c:[c],r:10},{cN:"comment",b:"^__END__",e:"\\n$"}];var d={cN:"subst",b:"#\\{",e:"}",l:a,k:g};var i=[e.BE,d];var b=[{cN:"string",b:"'",e:"'",c:i,r:0},{cN:"string",b:'"',e:'"',c:i,r:0},{cN:"string",b:"%[qw]?\\(",e:"\\)",c:i},{cN:"string",b:"%[qw]?\\[",e:"\\]",c:i},{cN:"string",b:"%[qw]?{",e:"}",c:i},{cN:"string",b:"%[qw]?<",e:">",c:i,r:10},{cN:"string",b:"%[qw]?/",e:"/",c:i,r:10},{cN:"string",b:"%[qw]?%",e:"%",c:i,r:10},{cN:"string",b:"%[qw]?-",e:"-",c:i,r:10},{cN:"string",b:"%[qw]?\\|",e:"\\|",c:i,r:10}];var h={cN:"function",bWK:true,e:" |$|;",k:"def",c:[{cN:"title",b:j,l:a,k:g},{cN:"params",b:"\\(",e:"\\)",l:a,k:g}].concat(k)};var f=k.concat(b.concat([{cN:"class",bWK:true,e:"$|;",k:"class module",c:[{cN:"title",b:"[A-Za-z_]\\w*(::\\w+)*(\\?|\\!)?",r:0},{cN:"inheritance",b:"<\\s*",c:[{cN:"parent",b:"("+e.IR+"::)?"+e.IR}]}].concat(k)},h,{cN:"constant",b:"(::)?(\\b[A-Z]\\w*(::)?)+",r:0},{cN:"symbol",b:":",c:b.concat([{b:j}]),r:0},{cN:"symbol",b:a+":",r:0},{cN:"number",b:"(\\b0[0-7_]+)|(\\b0x[0-9a-fA-F_]+)|(\\b[1-9][0-9_]*(\\.[0-9_]+)?)|[0_]\\b",r:0},{cN:"number",b:"\\?\\w"},{cN:"variable",b:"(\\$\\W)|((\\$|\\@\\@?)(\\w+))"},{b:"("+e.RSR+")\\s*",c:k.concat([{cN:"regexp",b:"/",e:"/[a-z]*",i:"\\n",c:[e.BE,d]}]),r:0}]));d.c=f;h.c[1].c=f;return{l:a,k:g,c:f}}(hljs);hljs.LANGUAGES.ruleslanguage=function(a){return{k:{keyword:"BILL_PERIOD BILL_START BILL_STOP RS_EFFECTIVE_START RS_EFFECTIVE_STOP RS_JURIS_CODE RS_OPCO_CODE INTDADDATTRIBUTE|5 INTDADDVMSG|5 INTDBLOCKOP|5 INTDBLOCKOPNA|5 INTDCLOSE|5 INTDCOUNT|5 INTDCOUNTSTATUSCODE|5 INTDCREATEMASK|5 INTDCREATEDAYMASK|5 INTDCREATEFACTORMASK|5 INTDCREATEHANDLE|5 INTDCREATEMASK|5 INTDCREATEOVERRIDEDAYMASK|5 INTDCREATEOVERRIDEMASK|5 INTDCREATESTATUSCODEMASK|5 INTDCREATETOUPERIOD|5 INTDDELETE|5 INTDDIPTEST|5 INTDEXPORT|5 INTDGETERRORCODE|5 INTDGETERRORMESSAGE|5 INTDISEQUAL|5 INTDJOIN|5 INTDLOAD|5 INTDLOADACTUALCUT|5 INTDLOADDATES|5 INTDLOADHIST|5 INTDLOADLIST|5 INTDLOADLISTDATES|5 INTDLOADLISTENERGY|5 INTDLOADLISTHIST|5 INTDLOADRELATEDCHANNEL|5 INTDLOADSP|5 INTDLOADSTAGING|5 INTDLOADUOM|5 INTDLOADUOMDATES|5 INTDLOADUOMHIST|5 INTDLOADVERSION|5 INTDOPEN|5 INTDREADFIRST|5 INTDREADNEXT|5 INTDRECCOUNT|5 INTDRELEASE|5 INTDREPLACE|5 INTDROLLAVG|5 INTDROLLPEAK|5 INTDSCALAROP|5 INTDSCALE|5 INTDSETATTRIBUTE|5 INTDSETDSTPARTICIPANT|5 INTDSETSTRING|5 INTDSETVALUE|5 INTDSETVALUESTATUS|5 INTDSHIFTSTARTTIME|5 INTDSMOOTH|5 INTDSORT|5 INTDSPIKETEST|5 INTDSUBSET|5 INTDTOU|5 INTDTOURELEASE|5 INTDTOUVALUE|5 INTDUPDATESTATS|5 INTDVALUE|5 STDEV INTDDELETEEX|5 INTDLOADEXACTUAL|5 INTDLOADEXCUT|5 INTDLOADEXDATES|5 INTDLOADEX|5 INTDLOADEXRELATEDCHANNEL|5 INTDSAVEEX|5 MVLOAD|5 MVLOADACCT|5 MVLOADACCTDATES|5 MVLOADACCTHIST|5 MVLOADDATES|5 MVLOADHIST|5 MVLOADLIST|5 MVLOADLISTDATES|5 MVLOADLISTHIST|5 IF FOR NEXT DONE SELECT END CALL ABORT CLEAR CHANNEL FACTOR LIST NUMBER OVERRIDE SET WEEK DISTRIBUTIONNODE ELSE WHEN THEN OTHERWISE IENUM CSV INCLUDE LEAVE RIDER SAVE DELETE NOVALUE SECTION WARN DELETE SAVE SAVE_UPDATE CLEAR DETERMINANT LABEL REPORT REVENUE ABORT CALL DONE LEAVE EACH IN LIST NOVALUE FROM TOTAL CHARGE BLOCK AND OR CSV_FILE BILL_PERIOD RATE_CODE AUXILIARY_DEMAND UIDACCOUNT RS BILL_PERIOD_SELECT HOURS_PER_MONTH INTD_ERROR_STOP SEASON_SCHEDULE_NAME ACCOUNTFACTOR ARRAYUPPERBOUND CALLSTOREDPROC GETADOCONNECTION GETCONNECT GETDATASOURCE GETQUALIFIER GETUSERID HASVALUE LISTCOUNT LISTOP LISTUPDATE LISTVALUE PRORATEFACTOR RSPRORATE SETBINPATH SETDBMONITOR WQ_OPEN BILLINGHOURS DATE DATEFROMFLOAT DATETIMEFROMSTRING DATETIMETOSTRING DATETOFLOAT DAY DAYDIFF DAYNAME DBDATETIME HOUR MINUTE MONTH MONTHDIFF MONTHHOURS MONTHNAME ROUNDDATE SAMEWEEKDAYLASTYEAR SECOND WEEKDAY WEEKDIFF YEAR YEARDAY YEARSTR COMPSUM HISTCOUNT HISTMAX HISTMIN HISTMINNZ HISTVALUE MAXNRANGE MAXRANGE MINRANGE COMPIKVA COMPKVA COMPKVARFROMKQKW COMPLF IDATTR FLAG LF2KW LF2KWH MAXKW POWERFACTOR READING2USAGE AVGSEASON MAXSEASON MONTHLYMERGE SEASONVALUE SUMSEASON ACCTREADDATES ACCTTABLELOAD CONFIGADD CONFIGGET CREATEOBJECT CREATEREPORT EMAILCLIENT EXPBLKMDMUSAGE EXPMDMUSAGE EXPORT_USAGE FACTORINEFFECT GETUSERSPECIFIEDSTOP INEFFECT ISHOLIDAY RUNRATE SAVE_PROFILE SETREPORTTITLE USEREXIT WATFORRUNRATE TO TABLE ACOS ASIN ATAN ATAN2 BITAND CEIL COS COSECANT COSH COTANGENT DIVQUOT DIVREM EXP FABS FLOOR FMOD FREPM FREXPN LOG LOG10 MAX MAXN MIN MINNZ MODF POW ROUND ROUND2VALUE ROUNDINT SECANT SIN SINH SQROOT TAN TANH FLOAT2STRING FLOAT2STRINGNC INSTR LEFT LEN LTRIM MID RIGHT RTRIM STRING STRINGNC TOLOWER TOUPPER TRIM ABORT WARN NUMDAYS RATE_CODE READ_DATE STAGING",built_in:"IDENTIFIER OPTIONS XML_ELEMENT XML_OP XML_ELEMENT_OF DOMDOCCREATE DOMDOCLOADFILE DOMDOCLOADXML DOMDOCSAVEFILE DOMDOCGETROOT DOMDOCADDPI DOMNODEGETNAME DOMNODEGETTYPE DOMNODEGETVALUE DOMNODEGETCHILDCT DOMNODEGETFIRSTCHILD DOMNODEGETSIBLING DOMNODECREATECHILDELEMENT DOMNODESETATTRIBUTE DOMNODEGETCHILDELEMENTCT DOMNODEGETFIRSTCHILDELEMENT DOMNODEGETSIBLINGELEMENT DOMNODEGETATTRIBUTECT DOMNODEGETATTRIBUTEI DOMNODEGETATTRIBUTEBYNAME DOMNODEGETBYNAME"},c:[a.CLCM,a.CBLCLM,a.ASM,a.QSM,a.CNM,{cN:"array",b:"#[a-zA-Z .]+"}]}}(hljs);hljs.LANGUAGES.rust=function(b){var d={cN:"title",b:b.UIR};var c={cN:"number",b:"\\b(0[xb][A-Za-z0-9_]+|[0-9_]+(\\.[0-9_]+)?([uif](8|16|32|64)?)?)",r:0};var a="assert bool break char check claim comm const cont copy dir do drop else enum extern export f32 f64 fail false float fn for i16 i32 i64 i8 if impl int let log loop match mod move mut priv pub pure ref return self static str struct task true trait type u16 u32 u64 u8 uint unsafe use vec while";return{k:a,i:"</",c:[b.CLCM,b.CBLCLM,b.inherit(b.QSM,{i:null}),b.ASM,c,{cN:"function",bWK:true,e:"(\\(|<)",k:"fn",c:[d]},{cN:"preprocessor",b:"#\\[",e:"\\]"},{bWK:true,e:"(=|<)",k:"type",c:[d],i:"\\S"},{bWK:true,e:"({|<)",k:"trait enum",c:[d],i:"\\S"}]}}(hljs);hljs.LANGUAGES.scala=function(a){var c={cN:"annotation",b:"@[A-Za-z]+"};var b={cN:"string",b:'u?r?"""',e:'"""',r:10};return{k:"type yield lazy override def with val var false true sealed abstract private trait object null if for while throw finally protected extends import final return else break new catch super class case package default try this match continue throws",c:[{cN:"javadoc",b:"/\\*\\*",e:"\\*/",c:[{cN:"javadoctag",b:"@[A-Za-z]+"}],r:10},a.CLCM,a.CBLCLM,a.ASM,a.QSM,b,{cN:"class",b:"((case )?class |object |trait )",e:"({|$)",i:":",k:"case class trait object",c:[{bWK:true,k:"extends with",r:10},{cN:"title",b:a.UIR},{cN:"params",b:"\\(",e:"\\)",c:[a.ASM,a.QSM,b,c]}]},a.CNM,c]}}(hljs);hljs.LANGUAGES.scss=function(a){var c="[a-zA-Z-][a-zA-Z0-9_-]*";var d={cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]};var b={cN:"hexcolor",b:"#[0-9A-Fa-f]+"};var e={cN:"attribute",b:"[A-Z\\_\\.\\-]+",e:":",eE:true,i:"[^\\s]",starts:{cN:"value",eW:true,eE:true,c:[d,b,a.NM,a.QSM,a.ASM,a.CBLCLM,{cN:"important",b:"!important"}]}};return{cI:true,i:"[=/|']",c:[a.CLCM,a.CBLCLM,{cN:"function",b:c+"\\(",e:"\\)",c:["self",a.NM,a.ASM,a.QSM]},{cN:"id",b:"\\#[A-Za-z0-9_-]+",r:0},{cN:"class",b:"\\.[A-Za-z0-9_-]+",r:0},{cN:"attr_selector",b:"\\[",e:"\\]",i:"$"},{cN:"tag",b:"\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\b",r:0},{cN:"pseudo",b:":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)"},{cN:"pseudo",b:"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)"},{cN:"attribute",b:"\\b(z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\b",i:"[^\\s]"},{cN:"value",b:"\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\b"},{cN:"value",b:":",e:";",c:[b,a.NM,a.QSM,a.ASM,{cN:"important",b:"!important"}]},{cN:"at_rule",b:"@",e:"[{;]",k:"mixin include for extend charset import media page font-face namespace",c:[d,a.QSM,a.ASM,b,a.NM,{cN:"preprocessor",b:"\\s[A-Za-z0-9_.-]+",r:0}]}]}}(hljs);hljs.LANGUAGES.smalltalk=function(a){var b="[a-z][a-zA-Z0-9_]*";var d={cN:"char",b:"\\$.{1}"};var c={cN:"symbol",b:"#"+a.UIR};return{k:"self super nil true false thisContext",c:[{cN:"comment",b:'"',e:'"',r:0},a.ASM,{cN:"class",b:"\\b[A-Z][A-Za-z0-9_]*",r:0},{cN:"method",b:b+":"},a.CNM,c,d,{cN:"localvars",b:"\\|\\s*"+b+"(\\s+"+b+")*\\s*\\|"},{cN:"array",b:"\\#\\(",e:"\\)",c:[a.ASM,d,a.CNM,c]}]}}(hljs);hljs.LANGUAGES.sql=function(a){return{cI:true,c:[{cN:"operator",b:"(begin|end|start|commit|rollback|savepoint|lock|alter|create|drop|rename|call|delete|do|handler|insert|load|replace|select|truncate|update|set|show|pragma|grant)\\b(?!:)",e:";",eW:true,k:{keyword:"all partial global month current_timestamp using go revoke smallint indicator end-exec disconnect zone with character assertion to add current_user usage input local alter match collate real then rollback get read timestamp session_user not integer bit unique day minute desc insert execute like ilike|2 level decimal drop continue isolation found where constraints domain right national some module transaction relative second connect escape close system_user for deferred section cast current sqlstate allocate intersect deallocate numeric public preserve full goto initially asc no key output collation group by union session both last language constraint column of space foreign deferrable prior connection unknown action commit view or first into float year primary cascaded except restrict set references names table outer open select size are rows from prepare distinct leading create only next inner authorization schema corresponding option declare precision immediate else timezone_minute external varying translation true case exception join hour default double scroll value cursor descriptor values dec fetch procedure delete and false int is describe char as at in varchar null trailing any absolute current_time end grant privileges when cross check write current_date pad begin temporary exec time update catalog user sql date on identity timezone_hour natural whenever interval work order cascade diagnostics nchar having left call do handler load replace truncate start lock show pragma exists number trigger if before after each row",aggregate:"count sum min max avg"},c:[{cN:"string",b:"'",e:"'",c:[a.BE,{b:"''"}],r:0},{cN:"string",b:'"',e:'"',c:[a.BE,{b:'""'}],r:0},{cN:"string",b:"`",e:"`",c:[a.BE]},a.CNM]},a.CBLCLM,{cN:"comment",b:"--",e:"$"}]}}(hljs);hljs.LANGUAGES.tex=function(a){var d={cN:"command",b:"\\\\[a-zA-Zа-яА-я]+[\\*]?"};var c={cN:"command",b:"\\\\[^a-zA-Zа-яА-я0-9]"};var b={cN:"special",b:"[{}\\[\\]\\&#~]",r:0};return{c:[{b:"\\\\[a-zA-Zа-яА-я]+[\\*]? *= *-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",rB:true,c:[d,c,{cN:"number",b:" *=",e:"-?\\d*\\.?\\d+(pt|pc|mm|cm|in|dd|cc|ex|em)?",eB:true}],r:10},d,c,b,{cN:"formula",b:"\\$\\$",e:"\\$\\$",c:[d,c,b],r:0},{cN:"formula",b:"\\$",e:"\\$",c:[d,c,b],r:0},{cN:"comment",b:"%",e:"$",r:0}]}}(hljs);hljs.LANGUAGES.vala=function(a){return{k:{keyword:"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var",built_in:"DBus GLib CCode Gee Object",literal:"false true null"},c:[{cN:"class",bWK:true,e:"{",k:"class interface delegate namespace",i:"[^,:\\n\\s\\.]",c:[{cN:"title",b:a.UIR}]},a.CLCM,a.CBLCLM,{cN:"string",b:'"""',e:'"""',r:5},a.ASM,a.QSM,a.CNM,{cN:"preprocessor",b:"^#",e:"$",r:2},{cN:"constant",b:" [A-Z_]+ ",r:0}]}}(hljs);hljs.LANGUAGES.vbnet=function(a){return{cI:true,k:{keyword:"addhandler addressof alias and andalso aggregate ansi as assembly auto binary by byref byval call case catch class compare const continue custom declare default delegate dim distinct do each equals else elseif end enum erase error event exit explicit finally for friend from function get global goto group handles if implements imports in inherits interface into is isfalse isnot istrue join key let lib like loop me mid mod module mustinherit mustoverride mybase myclass namespace narrowing new next not notinheritable notoverridable of off on operator option optional or order orelse overloads overridable overrides paramarray partial preserve private property protected public raiseevent readonly redim rem removehandler resume return select set shadows shared skip static step stop structure strict sub synclock take text then throw to try unicode until using when where while widening with withevents writeonly xor",built_in:"boolean byte cbool cbyte cchar cdate cdec cdbl char cint clng cobj csbyte cshort csng cstr ctype date decimal directcast double gettype getxmlnamespace iif integer long object sbyte short single string trycast typeof uinteger ulong ushort",literal:"true false nothing"},i:"(//|endif|gosub|variant|wend)",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$",rB:true,c:[{cN:"xmlDocTag",b:"'''|<!--|-->"},{cN:"xmlDocTag",b:"</?",e:">"},]},a.CNM,{cN:"preprocessor",b:"#",e:"$",k:"if else elseif end region externalsource"},]}}(hljs);hljs.LANGUAGES.vbscript=function(a){return{cI:true,k:{keyword:"call class const dim do loop erase execute executeglobal exit for each next function if then else on error option explicit new private property let get public randomize redim rem select case set stop sub while wend with end to elseif is or xor and not class_initialize class_terminate default preserve in me byval byref step resume goto",built_in:"lcase month vartype instrrev ubound setlocale getobject rgb getref string weekdayname rnd dateadd monthname now day minute isarray cbool round formatcurrency conversions csng timevalue second year space abs clng timeserial fixs len asc isempty maths dateserial atn timer isobject filter weekday datevalue ccur isdate instr datediff formatdatetime replace isnull right sgn array snumeric log cdbl hex chr lbound msgbox ucase getlocale cos cdate cbyte rtrim join hour oct typename trim strcomp int createobject loadpicture tan formatnumber mid scriptenginebuildversion scriptengine split scriptengineminorversion cint sin datepart ltrim sqr scriptenginemajorversion time derived eval date formatpercent exp inputbox left ascw chrw regexp server response request cstr err",literal:"true false null nothing empty"},i:"//",c:[a.inherit(a.QSM,{c:[{b:'""'}]}),{cN:"comment",b:"'",e:"$"},a.CNM]}}(hljs);hljs.LANGUAGES.vhdl=function(a){return{cI:true,k:{keyword:"abs access after alias all and architecture array assert attribute begin block body buffer bus case component configuration constant context cover disconnect downto default else elsif end entity exit fairness file for force function generate generic group guarded if impure in inertial inout is label library linkage literal loop map mod nand new next nor not null of on open or others out package port postponed procedure process property protected pure range record register reject release rem report restrict restrict_guarantee return rol ror select sequence severity shared signal sla sll sra srl strong subtype then to transport type unaffected units until use variable vmode vprop vunit wait when while with xnor xor",typename:"boolean bit character severity_level integer time delay_length natural positive string bit_vector file_open_kind file_open_status std_ulogic std_ulogic_vector std_logic std_logic_vector unsigned signed boolean_vector integer_vector real_vector time_vector"},i:"{",c:[a.CBLCLM,{cN:"comment",b:"--",e:"$"},a.QSM,a.CNM,{cN:"literal",b:"'(U|X|0|1|Z|W|L|H|-)'",c:[a.BE]},{cN:"attribute",b:"'[A-Za-z](_?[A-Za-z0-9])*",c:[a.BE]}]}}(hljs);hljs.LANGUAGES.xml=function(a){var c="[A-Za-z0-9\\._:-]+";var b={eW:true,r:0,c:[{cN:"attribute",b:c,r:0},{b:'="',rB:true,e:'"',c:[{cN:"value",b:'"',eW:true}]},{b:"='",rB:true,e:"'",c:[{cN:"value",b:"'",eW:true}]},{b:"=",c:[{cN:"value",b:"[^\\s/>]+"}]}]};return{cI:true,c:[{cN:"pi",b:"<\\?",e:"\\?>",r:10},{cN:"doctype",b:"<!DOCTYPE",e:">",r:10,c:[{b:"\\[",e:"\\]"}]},{cN:"comment",b:"<!--",e:"-->",r:10},{cN:"cdata",b:"<\\!\\[CDATA\\[",e:"\\]\\]>",r:10},{cN:"tag",b:"<style(?=\\s|>|$)",e:">",k:{title:"style"},c:[b],starts:{e:"</style>",rE:true,sL:"css"}},{cN:"tag",b:"<script(?=\\s|>|$)",e:">",k:{title:"script"},c:[b],starts:{e:"<\/script>",rE:true,sL:"javascript"}},{b:"<%",e:"%>",sL:"vbscript"},{cN:"tag",b:"</?",e:"/?>",r:0,c:[{cN:"title",b:"[^ /><]+"},b]}]}}(hljs);
diff --git a/docs/slides/plpv14/reveal.js/plugin/leap/leap.js b/docs/slides/plpv14/reveal.js/plugin/leap/leap.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/leap/leap.js
+++ /dev/null
@@ -1,157 +0,0 @@
-/*
- * Copyright (c) 2013, Leap Motion, Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
- *
- * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- * Version 0.2.0 - http://js.leapmotion.com/0.2.0/leap.min.js
- * Grab latest versions from http://js.leapmotion.com/
- */
-
-!function(e,t,n){function i(n,s){if(!t[n]){if(!e[n]){var o=typeof require=="function"&&require;if(!s&&o)return o(n,!0);if(r)return r(n,!0);throw new Error("Cannot find module '"+n+"'")}var u=t[n]={exports:{}};e[n][0].call(u.exports,function(t){var r=e[n][1][t];return i(r?r:t)},u,u.exports)}return t[n].exports}var r=typeof require=="function"&&require;for(var s=0;s<n.length;s++)i(n[s]);return i}({1:[function(require,module,exports){var chooseProtocol=require("./protocol").chooseProtocol,EventEmitter=require("events").EventEmitter,_=require("underscore");var BaseConnection=module.exports=function(opts){this.opts=_.defaults(opts||{},{host:"127.0.0.1",enableGestures:false,port:6437,enableHeartbeat:true,heartbeatInterval:100,requestProtocolVersion:3});this.host=opts.host;this.port=opts.port;this.on("ready",function(){this.enableGestures(this.opts.enableGestures);if(this.opts.enableHeartbeat)this.startHeartbeat()});this.on("disconnect",function(){if(this.opts.enableHeartbeat)this.stopHeartbeat()});this.heartbeatTimer=null};BaseConnection.prototype.getUrl=function(){return"ws://"+this.host+":"+this.port+"/v"+this.opts.requestProtocolVersion+".json"};BaseConnection.prototype.sendHeartbeat=function(){if(this.protocol){this.setHeartbeatState(true);this.protocol.sendHeartbeat(this)}};BaseConnection.prototype.handleOpen=function(){this.emit("connect")};BaseConnection.prototype.enableGestures=function(enabled){this.gesturesEnabled=enabled?true:false;this.send(this.protocol.encode({enableGestures:this.gesturesEnabled}))};BaseConnection.prototype.handleClose=function(){this.disconnect();this.startReconnection()};BaseConnection.prototype.startReconnection=function(){var connection=this;setTimeout(function(){connection.connect()},1e3)};BaseConnection.prototype.disconnect=function(){if(!this.socket)return;this.socket.close();delete this.socket;delete this.protocol;this.emit("disconnect")};BaseConnection.prototype.handleData=function(data){var message=JSON.parse(data);var messageEvent;if(this.protocol===undefined){messageEvent=this.protocol=chooseProtocol(message);this.emit("ready")}else{messageEvent=this.protocol(message)}this.emit(messageEvent.type,messageEvent)};BaseConnection.prototype.connect=function(){if(this.socket)return;this.socket=this.setupSocket();return true};BaseConnection.prototype.send=function(data){this.socket.send(data)};BaseConnection.prototype.stopHeartbeat=function(){if(!this.heartbeatTimer)return;clearInterval(this.heartbeatTimer);delete this.heartbeatTimer;this.setHeartbeatState(false)};BaseConnection.prototype.setHeartbeatState=function(state){if(this.heartbeatState===state)return;this.heartbeatState=state;this.emit(this.heartbeatState?"focus":"blur")};_.extend(BaseConnection.prototype,EventEmitter.prototype)},{"./protocol":12,events:17,underscore:20}],2:[function(require,module,exports){var CircularBuffer=module.exports=function(size){this.pos=0;this._buf=[];this.size=size};CircularBuffer.prototype.get=function(i){if(i==undefined)i=0;if(i>=this.size)return undefined;if(i>=this._buf.length)return undefined;return this._buf[(this.pos-i-1)%this.size]};CircularBuffer.prototype.push=function(o){this._buf[this.pos%this.size]=o;return this.pos++}},{}],3:[function(require,module,exports){var Connection=module.exports=require("./base_connection");Connection.prototype.setupSocket=function(){var connection=this;var socket=new WebSocket(this.getUrl());socket.onopen=function(){connection.handleOpen()};socket.onmessage=function(message){connection.handleData(message.data)};socket.onclose=function(){connection.handleClose()};return socket};Connection.prototype.startHeartbeat=function(){if(!this.protocol.sendHeartbeat||this.heartbeatTimer)return;var connection=this;var propertyName=null;if(typeof document.hidden!=="undefined"){propertyName="hidden"}else if(typeof document.mozHidden!=="undefined"){propertyName="mozHidden"}else if(typeof document.msHidden!=="undefined"){propertyName="msHidden"}else if(typeof document.webkitHidden!=="undefined"){propertyName="webkitHidden"}else{propertyName=undefined}var windowVisible=true;var focusListener=window.addEventListener("focus",function(e){windowVisible=true});var blurListener=window.addEventListener("blur",function(e){windowVisible=false});this.on("disconnect",function(){if(connection.heartbeatTimer){clearTimeout(connection.heartbeatTimer);delete connection.heartbeatTimer}window.removeEventListener(focusListener);window.removeEventListener(blurListener)});this.heartbeatTimer=setInterval(function(){var isVisible=propertyName===undefined?true:document[propertyName]===false;if(isVisible&&windowVisible){connection.sendHeartbeat()}else{connection.setHeartbeatState(false)}},this.opts.heartbeatInterval)}},{"./base_connection":1}],4:[function(require,module,exports){!function(process){var Frame=require("./frame"),CircularBuffer=require("./circular_buffer"),Pipeline=require("./pipeline"),EventEmitter=require("events").EventEmitter,gestureListener=require("./gesture").gestureListener,_=require("underscore");var Controller=module.exports=function(opts){var inNode=typeof process!=="undefined"&&process.title==="node";opts=_.defaults(opts||{},{inNode:inNode});this.inNode=opts.inNode;opts=_.defaults(opts||{},{frameEventName:this.useAnimationLoop()?"animationFrame":"deviceFrame",supressAnimationLoop:false});this.supressAnimationLoop=opts.supressAnimationLoop;this.frameEventName=opts.frameEventName;this.history=new CircularBuffer(200);this.lastFrame=Frame.Invalid;this.lastValidFrame=Frame.Invalid;this.lastConnectionFrame=Frame.Invalid;this.accumulatedGestures=[];if(opts.connectionType===undefined){this.connectionType=this.inBrowser()?require("./connection"):require("./node_connection")}else{this.connectionType=opts.connectionType}this.connection=new this.connectionType(opts);this.setupConnectionEvents()};Controller.prototype.gesture=function(type,cb){var creator=gestureListener(this,type);if(cb!==undefined){creator.stop(cb)}return creator};Controller.prototype.inBrowser=function(){return!this.inNode};Controller.prototype.useAnimationLoop=function(){return this.inBrowser()&&typeof chrome==="undefined"};Controller.prototype.connect=function(){var controller=this;if(this.connection.connect()&&this.inBrowser()&&!controller.supressAnimationLoop){var callback=function(){controller.emit("animationFrame",controller.lastConnectionFrame);window.requestAnimFrame(callback)};window.requestAnimFrame(callback)}};Controller.prototype.disconnect=function(){this.connection.disconnect()};Controller.prototype.frame=function(num){return this.history.get(num)||Frame.Invalid};Controller.prototype.loop=function(callback){switch(callback.length){case 1:this.on(this.frameEventName,callback);break;case 2:var controller=this;var scheduler=null;var immediateRunnerCallback=function(frame){callback(frame,function(){if(controller.lastFrame!=frame){immediateRunnerCallback(controller.lastFrame)}else{controller.once(controller.frameEventName,immediateRunnerCallback)}})};this.once(this.frameEventName,immediateRunnerCallback);break}this.connect()};Controller.prototype.addStep=function(step){if(!this.pipeline)this.pipeline=new Pipeline(this);this.pipeline.addStep(step)};Controller.prototype.processFrame=function(frame){if(frame.gestures){this.accumulatedGestures=this.accumulatedGestures.concat(frame.gestures)}if(this.pipeline){frame=this.pipeline.run(frame);if(!frame)frame=Frame.Invalid}this.lastConnectionFrame=frame;this.emit("deviceFrame",frame)};Controller.prototype.processFinishedFrame=function(frame){this.lastFrame=frame;if(frame.valid){this.lastValidFrame=frame}frame.controller=this;frame.historyIdx=this.history.push(frame);if(frame.gestures){frame.gestures=this.accumulatedGestures;this.accumulatedGestures=[];for(var gestureIdx=0;gestureIdx!=frame.gestures.length;gestureIdx++){this.emit("gesture",frame.gestures[gestureIdx],frame)}}this.emit("frame",frame)};Controller.prototype.setupConnectionEvents=function(){var controller=this;this.connection.on("frame",function(frame){controller.processFrame(frame)});this.on(this.frameEventName,function(frame){controller.processFinishedFrame(frame)});this.connection.on("disconnect",function(){controller.emit("disconnect")});this.connection.on("ready",function(){controller.emit("ready")});this.connection.on("connect",function(){controller.emit("connect")});this.connection.on("focus",function(){controller.emit("focus")});this.connection.on("blur",function(){controller.emit("blur")});this.connection.on("protocol",function(protocol){controller.emit("protocol",protocol)});this.connection.on("deviceConnect",function(evt){controller.emit(evt.state?"deviceConnected":"deviceDisconnected")})};_.extend(Controller.prototype,EventEmitter.prototype)}(require("__browserify_process"))},{"./circular_buffer":2,"./connection":3,"./frame":5,"./gesture":6,"./node_connection":16,"./pipeline":10,__browserify_process:18,events:17,underscore:20}],5:[function(require,module,exports){var Hand=require("./hand"),Pointable=require("./pointable"),createGesture=require("./gesture").createGesture,glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,InteractionBox=require("./interaction_box"),_=require("underscore");var Frame=module.exports=function(data){this.valid=true;this.id=data.id;this.timestamp=data.timestamp;this.hands=[];this.handsMap={};this.pointables=[];this.tools=[];this.fingers=[];if(data.interactionBox){this.interactionBox=new InteractionBox(data.interactionBox)}this.gestures=[];this.pointablesMap={};this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.data=data;this.type="frame";this.currentFrameRate=data.currentFrameRate;var handMap={};for(var handIdx=0,handCount=data.hands.length;handIdx!=handCount;handIdx++){var hand=new Hand(data.hands[handIdx]);hand.frame=this;this.hands.push(hand);this.handsMap[hand.id]=hand;handMap[hand.id]=handIdx}for(var pointableIdx=0,pointableCount=data.pointables.length;pointableIdx!=pointableCount;pointableIdx++){var pointable=new Pointable(data.pointables[pointableIdx]);pointable.frame=this;this.pointables.push(pointable);this.pointablesMap[pointable.id]=pointable;(pointable.tool?this.tools:this.fingers).push(pointable);if(pointable.handId!==undefined&&handMap.hasOwnProperty(pointable.handId)){var hand=this.hands[handMap[pointable.handId]];hand.pointables.push(pointable);(pointable.tool?hand.tools:hand.fingers).push(pointable)}}if(data.gestures){for(var gestureIdx=0,gestureCount=data.gestures.length;gestureIdx!=gestureCount;gestureIdx++){this.gestures.push(createGesture(data.gestures[gestureIdx]))}}};Frame.prototype.tool=function(id){var pointable=this.pointable(id);return pointable.tool?pointable:Pointable.Invalid};Frame.prototype.pointable=function(id){return this.pointablesMap[id]||Pointable.Invalid};Frame.prototype.finger=function(id){var pointable=this.pointable(id);return!pointable.tool?pointable:Pointable.Invalid};Frame.prototype.hand=function(id){return this.handsMap[id]||Hand.Invalid};Frame.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Frame.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceFrame._rotation[5],this._rotation[2]-sinceFrame._rotation[6],this._rotation[3]-sinceFrame._rotation[1]])};Frame.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);return mat3.multiply(mat3.create(),sinceFrame._rotation,transpose)};Frame.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;return Math.exp(this._scaleFactor-sinceFrame._scaleFactor)};Frame.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();return vec3.subtract(vec3.create(),this._translation,sinceFrame._translation)};Frame.prototype.toString=function(){var str="Frame [ id:"+this.id+" | timestamp:"+this.timestamp+" | Hand count:("+this.hands.length+") | Pointable count:("+this.pointables.length+")";if(this.gestures)str+=" | Gesture count:("+this.gestures.length+")";str+=" ]";return str};Frame.prototype.dump=function(){var out="";out+="Frame Info:<br/>";out+=this.toString();out+="<br/><br/>Hands:<br/>";for(var handIdx=0,handCount=this.hands.length;handIdx!=handCount;handIdx++){out+="  "+this.hands[handIdx].toString()+"<br/>"}out+="<br/><br/>Pointables:<br/>";for(var pointableIdx=0,pointableCount=this.pointables.length;pointableIdx!=pointableCount;pointableIdx++){out+="  "+this.pointables[pointableIdx].toString()+"<br/>"}if(this.gestures){out+="<br/><br/>Gestures:<br/>";for(var gestureIdx=0,gestureCount=this.gestures.length;gestureIdx!=gestureCount;gestureIdx++){out+="  "+this.gestures[gestureIdx].toString()+"<br/>"}}out+="<br/><br/>Raw JSON:<br/>";out+=JSON.stringify(this.data);return out};Frame.Invalid={valid:false,hands:[],fingers:[],tools:[],gestures:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},hand:function(){return Hand.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"gl-matrix":19,underscore:20}],6:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3,EventEmitter=require("events").EventEmitter,_=require("underscore");var createGesture=exports.createGesture=function(data){var gesture;switch(data.type){case"circle":gesture=new CircleGesture(data);break;case"swipe":gesture=new SwipeGesture(data);break;case"screenTap":gesture=new ScreenTapGesture(data);break;case"keyTap":gesture=new KeyTapGesture(data);break;default:throw"unkown gesture type"}gesture.id=data.id;gesture.handIds=data.handIds;gesture.pointableIds=data.pointableIds;gesture.duration=data.duration;gesture.state=data.state;gesture.type=data.type;return gesture};var gestureListener=exports.gestureListener=function(controller,type){var handlers={};var gestureMap={};var gestureCreator=function(){var candidateGesture=gestureMap[gesture.id];if(candidateGesture!==undefined)gesture.update(gesture,frame);if(gesture.state=="start"||gesture.state=="stop"){if(type==gesture.type&&gestureMap[gesture.id]===undefined){gestureMap[gesture.id]=new Gesture(gesture,frame);gesture.update(gesture,frame)}if(gesture.state=="stop"){delete gestureMap[gesture.id]}}};controller.on("gesture",function(gesture,frame){if(gesture.type==type){if(gesture.state=="start"||gesture.state=="stop"){if(gestureMap[gesture.id]===undefined){var gestureTracker=new Gesture(gesture,frame);gestureMap[gesture.id]=gestureTracker;_.each(handlers,function(cb,name){gestureTracker.on(name,cb)})}}gestureMap[gesture.id].update(gesture,frame);if(gesture.state=="stop"){delete gestureMap[gesture.id]}}});var builder={start:function(cb){handlers["start"]=cb;return builder},stop:function(cb){handlers["stop"]=cb;return builder},complete:function(cb){handlers["stop"]=cb;return builder},update:function(cb){handlers["update"]=cb;return builder}};return builder};var Gesture=exports.Gesture=function(gesture,frame){this.gestures=[gesture];this.frames=[frame]};Gesture.prototype.update=function(gesture,frame){this.gestures.push(gesture);this.frames.push(frame);this.emit(gesture.state,this)};_.extend(Gesture.prototype,EventEmitter.prototype);var CircleGesture=function(data){this.center=data.center;this.normal=data.normal;this.progress=data.progress;this.radius=data.radius};CircleGesture.prototype.toString=function(){return"CircleGesture ["+JSON.stringify(this)+"]"};var SwipeGesture=function(data){this.startPosition=data.startPosition;this.position=data.position;this.direction=data.direction;this.speed=data.speed};SwipeGesture.prototype.toString=function(){return"SwipeGesture ["+JSON.stringify(this)+"]"};var ScreenTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};ScreenTapGesture.prototype.toString=function(){return"ScreenTapGesture ["+JSON.stringify(this)+"]"};var KeyTapGesture=function(data){this.position=data.position;this.direction=data.direction;this.progress=data.progress};KeyTapGesture.prototype.toString=function(){return"KeyTapGesture ["+JSON.stringify(this)+"]"}},{events:17,"gl-matrix":19,underscore:20}],7:[function(require,module,exports){var Pointable=require("./pointable"),glMatrix=require("gl-matrix"),mat3=glMatrix.mat3,vec3=glMatrix.vec3,_=require("underscore");var Hand=module.exports=function(data){this.id=data.id;this.palmPosition=data.palmPosition;this.direction=data.direction;this.palmVelocity=data.palmVelocity;this.palmNormal=data.palmNormal;this.sphereCenter=data.sphereCenter;this.sphereRadius=data.sphereRadius;this.valid=true;this.pointables=[];this.fingers=[];this.tools=[];this._translation=data.t;this._rotation=_.flatten(data.r);this._scaleFactor=data.s;this.timeVisible=data.timeVisible;this.stabilizedPalmPosition=data.stabilizedPalmPosition};Hand.prototype.finger=function(id){var finger=this.frame.finger(id);return finger&&finger.handId==this.id?finger:Pointable.Invalid};Hand.prototype.rotationAngle=function(sinceFrame,axis){if(!this.valid||!sinceFrame.valid)return 0;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 0;var rot=this.rotationMatrix(sinceFrame);var cs=(rot[0]+rot[4]+rot[8]-1)*.5;var angle=Math.acos(cs);angle=isNaN(angle)?0:angle;if(axis!==undefined){var rotAxis=this.rotationAxis(sinceFrame);angle*=vec3.dot(rotAxis,vec3.normalize(vec3.create(),axis))}return angle};Hand.prototype.rotationAxis=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return vec3.normalize(vec3.create(),[this._rotation[7]-sinceHand._rotation[5],this._rotation[2]-sinceHand._rotation[6],this._rotation[3]-sinceHand._rotation[1]])};Hand.prototype.rotationMatrix=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return mat3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return mat3.create();var transpose=mat3.transpose(mat3.create(),this._rotation);var m=mat3.multiply(mat3.create(),sinceHand._rotation,transpose);return m};Hand.prototype.scaleFactor=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return 1;var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return 1;return Math.exp(this._scaleFactor-sinceHand._scaleFactor)};Hand.prototype.translation=function(sinceFrame){if(!this.valid||!sinceFrame.valid)return vec3.create();var sinceHand=sinceFrame.hand(this.id);if(!sinceHand.valid)return vec3.create();return[this._translation[0]-sinceHand._translation[0],this._translation[1]-sinceHand._translation[1],this._translation[2]-sinceHand._translation[2]]};Hand.prototype.toString=function(){return"Hand [ id: "+this.id+" | palm velocity:"+this.palmVelocity+" | sphere center:"+this.sphereCenter+" ] "};Hand.Invalid={valid:false,fingers:[],tools:[],pointables:[],pointable:function(){return Pointable.Invalid},finger:function(){return Pointable.Invalid},toString:function(){return"invalid frame"},dump:function(){return this.toString()},rotationAngle:function(){return 0},rotationMatrix:function(){return mat3.create()},rotationAxis:function(){return vec3.create()},scaleFactor:function(){return 1},translation:function(){return vec3.create()}}},{"./pointable":11,"gl-matrix":19,underscore:20}],8:[function(require,module,exports){!function(){module.exports={Controller:require("./controller"),Frame:require("./frame"),Gesture:require("./gesture"),Hand:require("./hand"),Pointable:require("./pointable"),InteractionBox:require("./interaction_box"),Connection:require("./connection"),CircularBuffer:require("./circular_buffer"),UI:require("./ui"),glMatrix:require("gl-matrix"),mat3:require("gl-matrix").mat3,vec3:require("gl-matrix").vec3,loopController:undefined,loop:function(opts,callback){if(callback===undefined){callback=opts;opts={}}if(!this.loopController)this.loopController=new this.Controller(opts);this.loopController.loop(callback)}}}()},{"./circular_buffer":2,"./connection":3,"./controller":4,"./frame":5,"./gesture":6,"./hand":7,"./interaction_box":9,"./pointable":11,"./ui":13,"gl-matrix":19}],9:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var InteractionBox=module.exports=function(data){this.valid=true;this.center=data.center;this.size=data.size;this.width=data.size[0];this.height=data.size[1];this.depth=data.size[2]};InteractionBox.prototype.denormalizePoint=function(normalizedPosition){return vec3.fromValues((normalizedPosition[0]-.5)*this.size[0]+this.center[0],(normalizedPosition[1]-.5)*this.size[1]+this.center[1],(normalizedPosition[2]-.5)*this.size[2]+this.center[2])};InteractionBox.prototype.normalizePoint=function(position,clamp){var vec=vec3.fromValues((position[0]-this.center[0])/this.size[0]+.5,(position[1]-this.center[1])/this.size[1]+.5,(position[2]-this.center[2])/this.size[2]+.5);if(clamp){vec[0]=Math.min(Math.max(vec[0],0),1);vec[1]=Math.min(Math.max(vec[1],0),1);vec[2]=Math.min(Math.max(vec[2],0),1)}return vec};InteractionBox.prototype.toString=function(){return"InteractionBox [ width:"+this.width+" | height:"+this.height+" | depth:"+this.depth+" ]"};InteractionBox.Invalid={valid:false}},{"gl-matrix":19}],10:[function(require,module,exports){var Pipeline=module.exports=function(){this.steps=[]};Pipeline.prototype.addStep=function(step){this.steps.push(step)};Pipeline.prototype.run=function(frame){var stepsLength=this.steps.length;for(var i=0;i!=stepsLength;i++){if(!frame)break;frame=this.steps[i](frame)}return frame}},{}],11:[function(require,module,exports){var glMatrix=require("gl-matrix"),vec3=glMatrix.vec3;var Pointable=module.exports=function(data){this.valid=true;this.id=data.id;this.handId=data.handId;this.length=data.length;this.tool=data.tool;this.width=data.width;this.direction=data.direction;this.stabilizedTipPosition=data.stabilizedTipPosition;this.tipPosition=data.tipPosition;this.tipVelocity=data.tipVelocity;this.touchZone=data.touchZone;this.touchDistance=data.touchDistance;this.timeVisible=data.timeVisible};Pointable.prototype.toString=function(){if(this.tool==true){return"Pointable [ id:"+this.id+" "+this.length+"mmx | with:"+this.width+"mm | direction:"+this.direction+" ]"}else{return"Pointable [ id:"+this.id+" "+this.length+"mmx | direction: "+this.direction+" ]"}};Pointable.Invalid={valid:false}},{"gl-matrix":19}],12:[function(require,module,exports){var Frame=require("./frame");var Event=function(data){this.type=data.type;this.state=data.state};var chooseProtocol=exports.chooseProtocol=function(header){var protocol;switch(header.version){case 1:protocol=JSONProtocol(1,function(data){return new Frame(data)});break;case 2:protocol=JSONProtocol(2,function(data){return new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;case 3:protocol=JSONProtocol(3,function(data){return data.event?new Event(data.event):new Frame(data)});protocol.sendHeartbeat=function(connection){connection.send(protocol.encode({heartbeat:true}))};break;default:throw"unrecognized version"}return protocol};var JSONProtocol=function(version,cb){var protocol=cb;protocol.encode=function(message){return JSON.stringify(message)};protocol.version=version;protocol.versionLong="Version "+version;protocol.type="protocol";return protocol}},{"./frame":5}],13:[function(require,module,exports){exports.UI={Region:require("./ui/region"),Cursor:require("./ui/cursor")}},{"./ui/cursor":14,"./ui/region":15}],14:[function(require,module,exports){var Cursor=module.exports=function(){return function(frame){var pointable=frame.pointables.sort(function(a,b){return a.z-b.z})[0];if(pointable&&pointable.valid){frame.cursorPosition=pointable.tipPosition}return frame}}},{}],15:[function(require,module,exports){var EventEmitter=require("events").EventEmitter,_=require("underscore");var Region=module.exports=function(start,end){this.start=new Vector(start);this.end=new Vector(end);this.enteredFrame=null};Region.prototype.hasPointables=function(frame){for(var i=0;i!=frame.pointables.length;i++){var position=frame.pointables[i].tipPosition;if(position.x>=this.start.x&&position.x<=this.end.x&&position.y>=this.start.y&&position.y<=this.end.y&&position.z>=this.start.z&&position.z<=this.end.z){return true}}return false};Region.prototype.listener=function(opts){var region=this;if(opts&&opts.nearThreshold)this.setupNearRegion(opts.nearThreshold);return function(frame){return region.updatePosition(frame)}};Region.prototype.clipper=function(){var region=this;return function(frame){region.updatePosition(frame);return region.enteredFrame?frame:null}};Region.prototype.setupNearRegion=function(distance){var nearRegion=this.nearRegion=new Region([this.start.x-distance,this.start.y-distance,this.start.z-distance],[this.end.x+distance,this.end.y+distance,this.end.z+distance]);var region=this;nearRegion.on("enter",function(frame){region.emit("near",frame)});nearRegion.on("exit",function(frame){region.emit("far",frame)});region.on("exit",function(frame){region.emit("near",frame)})};Region.prototype.updatePosition=function(frame){if(this.nearRegion)this.nearRegion.updatePosition(frame);if(this.hasPointables(frame)&&this.enteredFrame==null){this.enteredFrame=frame;this.emit("enter",this.enteredFrame)}else if(!this.hasPointables(frame)&&this.enteredFrame!=null){this.enteredFrame=null;this.emit("exit",this.enteredFrame)}return frame};Region.prototype.normalize=function(position){return new Vector([(position.x-this.start.x)/(this.end.x-this.start.x),(position.y-this.start.y)/(this.end.y-this.start.y),(position.z-this.start.z)/(this.end.z-this.start.z)])};Region.prototype.mapToXY=function(position,width,height){var normalized=this.normalize(position);var x=normalized.x,y=normalized.y;if(x>1)x=1;else if(x<-1)x=-1;if(y>1)y=1;else if(y<-1)y=-1;return[(x+1)/2*width,(1-y)/2*height,normalized.z]};_.extend(Region.prototype,EventEmitter.prototype)},{events:17,underscore:20}],16:[function(require,module,exports){},{}],17:[function(require,module,exports){!function(process){if(!process.EventEmitter)process.EventEmitter=function(){};var EventEmitter=exports.EventEmitter=process.EventEmitter;var isArray=typeof Array.isArray==="function"?Array.isArray:function(xs){return Object.prototype.toString.call(xs)==="[object Array]"};function indexOf(xs,x){if(xs.indexOf)return xs.indexOf(x);for(var i=0;i<xs.length;i++){if(x===xs[i])return i}return-1}var defaultMaxListeners=10;EventEmitter.prototype.setMaxListeners=function(n){if(!this._events)this._events={};this._events.maxListeners=n};EventEmitter.prototype.emit=function(type){if(type==="error"){if(!this._events||!this._events.error||isArray(this._events.error)&&!this._events.error.length){if(arguments[1]instanceof Error){throw arguments[1]}else{throw new Error("Uncaught, unspecified 'error' event.")}return false}}if(!this._events)return false;var handler=this._events[type];if(!handler)return false;if(typeof handler=="function"){switch(arguments.length){case 1:handler.call(this);break;case 2:handler.call(this,arguments[1]);break;case 3:handler.call(this,arguments[1],arguments[2]);break;default:var args=Array.prototype.slice.call(arguments,1);handler.apply(this,args)}return true}else if(isArray(handler)){var args=Array.prototype.slice.call(arguments,1);var listeners=handler.slice();for(var i=0,l=listeners.length;i<l;i++){listeners[i].apply(this,args)}return true}else{return false}};EventEmitter.prototype.addListener=function(type,listener){if("function"!==typeof listener){throw new Error("addListener only takes instances of Function")}if(!this._events)this._events={};this.emit("newListener",type,listener);if(!this._events[type]){this._events[type]=listener}else if(isArray(this._events[type])){if(!this._events[type].warned){var m;if(this._events.maxListeners!==undefined){m=this._events.maxListeners}else{m=defaultMaxListeners}if(m&&m>0&&this._events[type].length>m){this._events[type].warned=true;console.error("(node) warning: possible EventEmitter memory "+"leak detected. %d listeners added. "+"Use emitter.setMaxListeners() to increase limit.",this._events[type].length);console.trace()}}this._events[type].push(listener)}else{this._events[type]=[this._events[type],listener]}return this};EventEmitter.prototype.on=EventEmitter.prototype.addListener;EventEmitter.prototype.once=function(type,listener){var self=this;self.on(type,function g(){self.removeListener(type,g);listener.apply(this,arguments)});return this};EventEmitter.prototype.removeListener=function(type,listener){if("function"!==typeof listener){throw new Error("removeListener only takes instances of Function")}if(!this._events||!this._events[type])return this;var list=this._events[type];if(isArray(list)){var i=indexOf(list,listener);if(i<0)return this;list.splice(i,1);if(list.length==0)delete this._events[type]}else if(this._events[type]===listener){delete this._events[type]}return this};EventEmitter.prototype.removeAllListeners=function(type){if(arguments.length===0){this._events={};return this}if(type&&this._events&&this._events[type])this._events[type]=null;return this};EventEmitter.prototype.listeners=function(type){if(!this._events)this._events={};if(!this._events[type])this._events[type]=[];if(!isArray(this._events[type])){this._events[type]=[this._events[type]]}return this._events[type]}}(require("__browserify_process"))},{__browserify_process:18}],18:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}if(canPost){var queue=[];window.addEventListener("message",function(ev){if(ev.source===window&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],19:[function(require,module,exports){!function(){!function(){"use strict";var shim={};if(typeof exports==="undefined"){if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){shim.exports={};define(function(){return shim.exports})}else{shim.exports=window}}else{shim.exports=exports}!function(exports){var vec2={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec2.create=function(){return new Float32Array(2)};vec2.clone=function(a){var out=new Float32Array(2);out[0]=a[0];out[1]=a[1];return out};vec2.fromValues=function(x,y){var out=new Float32Array(2);out[0]=x;out[1]=y;return out};vec2.copy=function(out,a){out[0]=a[0];out[1]=a[1];return out};vec2.set=function(out,x,y){out[0]=x;out[1]=y;return out};vec2.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];return out};vec2.sub=vec2.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];return out};vec2.mul=vec2.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];return out};vec2.div=vec2.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];return out};vec2.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);
-out[1]=Math.min(a[1],b[1]);return out};vec2.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);return out};vec2.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;return out};vec2.dist=vec2.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return Math.sqrt(x*x+y*y)};vec2.sqrDist=vec2.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1];return x*x+y*y};vec2.len=vec2.length=function(a){var x=a[0],y=a[1];return Math.sqrt(x*x+y*y)};vec2.sqrLen=vec2.squaredLength=function(a){var x=a[0],y=a[1];return x*x+y*y};vec2.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];return out};vec2.normalize=function(out,a){var x=a[0],y=a[1];var len=x*x+y*y;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len}return out};vec2.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]};vec2.cross=function(out,a,b){var z=a[0]*b[1]-a[1]*b[0];out[0]=out[1]=0;out[2]=z;return out};vec2.lerp=function(out,a,b,t){var ax=a[0],ay=a[1];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);return out};vec2.transformMat2=function(out,a,m){var x=a[0],y=a[1];out[0]=x*m[0]+y*m[1];out[1]=x*m[2]+y*m[3];return out};vec2.forEach=function(){var vec=new Float32Array(2);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=2}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1]}return a}}();vec2.str=function(a){return"vec2("+a[0]+", "+a[1]+")"};if(typeof exports!=="undefined"){exports.vec2=vec2}var vec3={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec3.create=function(){return new Float32Array(3)};vec3.clone=function(a){var out=new Float32Array(3);out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.fromValues=function(x,y,z){var out=new Float32Array(3);out[0]=x;out[1]=y;out[2]=z;return out};vec3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];return out};vec3.set=function(out,x,y,z){out[0]=x;out[1]=y;out[2]=z;return out};vec3.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];return out};vec3.sub=vec3.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];return out};vec3.mul=vec3.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];return out};vec3.div=vec3.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];return out};vec3.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);return out};vec3.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);return out};vec3.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;return out};vec3.dist=vec3.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrDist=vec3.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2];return x*x+y*y+z*z};vec3.len=vec3.length=function(a){var x=a[0],y=a[1],z=a[2];return Math.sqrt(x*x+y*y+z*z)};vec3.sqrLen=vec3.squaredLength=function(a){var x=a[0],y=a[1],z=a[2];return x*x+y*y+z*z};vec3.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];return out};vec3.normalize=function(out,a){var x=a[0],y=a[1],z=a[2];var len=x*x+y*y+z*z;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len}return out};vec3.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]};vec3.cross=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],bx=b[0],by=b[1],bz=b[2];out[0]=ay*bz-az*by;out[1]=az*bx-ax*bz;out[2]=ax*by-ay*bx;return out};vec3.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);return out};vec3.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12];out[1]=m[1]*x+m[5]*y+m[9]*z+m[13];out[2]=m[2]*x+m[6]*y+m[10]*z+m[14];return out};vec3.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec3.forEach=function(){var vec=new Float32Array(3);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=3}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2]}return a}}();vec3.str=function(a){return"vec3("+a[0]+", "+a[1]+", "+a[2]+")"};if(typeof exports!=="undefined"){exports.vec3=vec3}var vec4={};if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}vec4.create=function(){return new Float32Array(4)};vec4.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.fromValues=function(x,y,z,w){var out=new Float32Array(4);out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};vec4.set=function(out,x,y,z,w){out[0]=x;out[1]=y;out[2]=z;out[3]=w;return out};vec4.add=function(out,a,b){out[0]=a[0]+b[0];out[1]=a[1]+b[1];out[2]=a[2]+b[2];out[3]=a[3]+b[3];return out};vec4.sub=vec4.subtract=function(out,a,b){out[0]=a[0]-b[0];out[1]=a[1]-b[1];out[2]=a[2]-b[2];out[3]=a[3]-b[3];return out};vec4.mul=vec4.multiply=function(out,a,b){out[0]=a[0]*b[0];out[1]=a[1]*b[1];out[2]=a[2]*b[2];out[3]=a[3]*b[3];return out};vec4.div=vec4.divide=function(out,a,b){out[0]=a[0]/b[0];out[1]=a[1]/b[1];out[2]=a[2]/b[2];out[3]=a[3]/b[3];return out};vec4.min=function(out,a,b){out[0]=Math.min(a[0],b[0]);out[1]=Math.min(a[1],b[1]);out[2]=Math.min(a[2],b[2]);out[3]=Math.min(a[3],b[3]);return out};vec4.max=function(out,a,b){out[0]=Math.max(a[0],b[0]);out[1]=Math.max(a[1],b[1]);out[2]=Math.max(a[2],b[2]);out[3]=Math.max(a[3],b[3]);return out};vec4.scale=function(out,a,b){out[0]=a[0]*b;out[1]=a[1]*b;out[2]=a[2]*b;out[3]=a[3]*b;return out};vec4.dist=vec4.distance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrDist=vec4.squaredDistance=function(a,b){var x=b[0]-a[0],y=b[1]-a[1],z=b[2]-a[2],w=b[3]-a[3];return x*x+y*y+z*z+w*w};vec4.len=vec4.length=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return Math.sqrt(x*x+y*y+z*z+w*w)};vec4.sqrLen=vec4.squaredLength=function(a){var x=a[0],y=a[1],z=a[2],w=a[3];return x*x+y*y+z*z+w*w};vec4.negate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=-a[3];return out};vec4.normalize=function(out,a){var x=a[0],y=a[1],z=a[2],w=a[3];var len=x*x+y*y+z*z+w*w;if(len>0){len=1/Math.sqrt(len);out[0]=a[0]*len;out[1]=a[1]*len;out[2]=a[2]*len;out[3]=a[3]*len}return out};vec4.dot=function(a,b){return a[0]*b[0]+a[1]*b[1]+a[2]*b[2]+a[3]*b[3]};vec4.lerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3];out[0]=ax+t*(b[0]-ax);out[1]=ay+t*(b[1]-ay);out[2]=az+t*(b[2]-az);out[3]=aw+t*(b[3]-aw);return out};vec4.transformMat4=function(out,a,m){var x=a[0],y=a[1],z=a[2],w=a[3];out[0]=m[0]*x+m[4]*y+m[8]*z+m[12]*w;out[1]=m[1]*x+m[5]*y+m[9]*z+m[13]*w;out[2]=m[2]*x+m[6]*y+m[10]*z+m[14]*w;out[3]=m[3]*x+m[7]*y+m[11]*z+m[15]*w;return out};vec4.transformQuat=function(out,a,q){var x=a[0],y=a[1],z=a[2],qx=q[0],qy=q[1],qz=q[2],qw=q[3],ix=qw*x+qy*z-qz*y,iy=qw*y+qz*x-qx*z,iz=qw*z+qx*y-qy*x,iw=-qx*x-qy*y-qz*z;out[0]=ix*qw+iw*-qx+iy*-qz-iz*-qy;out[1]=iy*qw+iw*-qy+iz*-qx-ix*-qz;out[2]=iz*qw+iw*-qz+ix*-qy-iy*-qx;return out};vec4.forEach=function(){var vec=new Float32Array(4);return function(a,stride,offset,count,fn,arg){var i,l;if(!stride){stride=4}if(!offset){offset=0}if(count){l=Math.min(count*stride+offset,a.length)}else{l=a.length}for(i=offset;i<l;i+=stride){vec[0]=a[i];vec[1]=a[i+1];vec[2]=a[i+2];vec[3]=a[i+3];fn(vec,vec,arg);a[i]=vec[0];a[i+1]=vec[1];a[i+2]=vec[2];a[i+3]=vec[3]}return a}}();vec4.str=function(a){return"vec4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.vec4=vec4}var mat2={};var mat2Identity=new Float32Array([1,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat2.create=function(){return new Float32Array(mat2Identity)};mat2.clone=function(a){var out=new Float32Array(4);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];return out};mat2.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=1;return out};mat2.transpose=function(out,a){if(out===a){var a1=a[1];out[1]=a[2];out[2]=a1}else{out[0]=a[0];out[1]=a[2];out[2]=a[1];out[3]=a[3]}return out};mat2.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],det=a0*a3-a2*a1;if(!det){return null}det=1/det;out[0]=a3*det;out[1]=-a1*det;out[2]=-a2*det;out[3]=a0*det;return out};mat2.adjoint=function(out,a){var a0=a[0];out[0]=a[3];out[1]=-a[1];out[2]=-a[2];out[3]=a0;return out};mat2.determinant=function(a){return a[0]*a[3]-a[2]*a[1]};mat2.mul=mat2.multiply=function(out,a,b){var a0=a[0],a1=a[1],a2=a[2],a3=a[3];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=a0*b0+a1*b2;out[1]=a0*b1+a1*b3;out[2]=a2*b0+a3*b2;out[3]=a2*b1+a3*b3;return out};mat2.rotate=function(out,a,rad){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],s=Math.sin(rad),c=Math.cos(rad);out[0]=a0*c+a1*s;out[1]=a0*-s+a1*c;out[2]=a2*c+a3*s;out[3]=a2*-s+a3*c;return out};mat2.scale=function(out,a,v){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],v0=v[0],v1=v[1];out[0]=a0*v0;out[1]=a1*v1;out[2]=a2*v0;out[3]=a3*v1;return out};mat2.str=function(a){return"mat2("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.mat2=mat2}var mat3={};var mat3Identity=new Float32Array([1,0,0,0,1,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat3.create=function(){return new Float32Array(mat3Identity)};mat3.clone=function(a){var out=new Float32Array(9);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];return out};mat3.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=1;out[5]=0;out[6]=0;out[7]=0;out[8]=1;return out};mat3.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a12=a[5];out[1]=a[3];out[2]=a[6];out[3]=a01;out[5]=a[7];out[6]=a02;out[7]=a12}else{out[0]=a[0];out[1]=a[3];out[2]=a[6];out[3]=a[1];out[4]=a[4];out[5]=a[7];out[6]=a[2];out[7]=a[5];out[8]=a[8]}return out};mat3.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b01=a22*a11-a12*a21,b11=-a22*a10+a12*a20,b21=a21*a10-a11*a20,det=a00*b01+a01*b11+a02*b21;if(!det){return null}det=1/det;out[0]=b01*det;out[1]=(-a22*a01+a02*a21)*det;out[2]=(a12*a01-a02*a11)*det;out[3]=b11*det;out[4]=(a22*a00-a02*a20)*det;out[5]=(-a12*a00+a02*a10)*det;out[6]=b21*det;out[7]=(-a21*a00+a01*a20)*det;out[8]=(a11*a00-a01*a10)*det;return out};mat3.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];out[0]=a11*a22-a12*a21;out[1]=a02*a21-a01*a22;out[2]=a01*a12-a02*a11;out[3]=a12*a20-a10*a22;out[4]=a00*a22-a02*a20;out[5]=a02*a10-a00*a12;out[6]=a10*a21-a11*a20;out[7]=a01*a20-a00*a21;out[8]=a00*a11-a01*a10;return out};mat3.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8];return a00*(a22*a11-a12*a21)+a01*(-a22*a10+a12*a20)+a02*(a21*a10-a11*a20)};mat3.mul=mat3.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a10=a[3],a11=a[4],a12=a[5],a20=a[6],a21=a[7],a22=a[8],b00=b[0],b01=b[1],b02=b[2],b10=b[3],b11=b[4],b12=b[5],b20=b[6],b21=b[7],b22=b[8];out[0]=b00*a00+b01*a10+b02*a20;out[1]=b00*a01+b01*a11+b02*a21;out[2]=b00*a02+b01*a12+b02*a22;out[3]=b10*a00+b11*a10+b12*a20;out[4]=b10*a01+b11*a11+b12*a21;out[5]=b10*a02+b11*a12+b12*a22;out[6]=b20*a00+b21*a10+b22*a20;out[7]=b20*a01+b21*a11+b22*a21;out[8]=b20*a02+b21*a12+b22*a22;return out};mat3.str=function(a){return"mat3("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+")"};if(typeof exports!=="undefined"){exports.mat3=mat3}var mat4={};var mat4Identity=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}mat4.create=function(){return new Float32Array(mat4Identity)};mat4.clone=function(a){var out=new Float32Array(16);out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.copy=function(out,a){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.identity=function(out){out[0]=1;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=1;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=1;out[11]=0;out[12]=0;out[13]=0;out[14]=0;out[15]=1;return out};mat4.transpose=function(out,a){if(out===a){var a01=a[1],a02=a[2],a03=a[3],a12=a[6],a13=a[7],a23=a[11];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a01;out[6]=a[9];out[7]=a[13];out[8]=a02;out[9]=a12;out[11]=a[14];out[12]=a03;out[13]=a13;out[14]=a23}else{out[0]=a[0];out[1]=a[4];out[2]=a[8];out[3]=a[12];out[4]=a[1];out[5]=a[5];out[6]=a[9];out[7]=a[13];out[8]=a[2];out[9]=a[6];out[10]=a[10];out[11]=a[14];out[12]=a[3];out[13]=a[7];out[14]=a[11];out[15]=a[15]}return out};mat4.invert=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32,det=b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06;if(!det){return null}det=1/det;out[0]=(a11*b11-a12*b10+a13*b09)*det;out[1]=(a02*b10-a01*b11-a03*b09)*det;out[2]=(a31*b05-a32*b04+a33*b03)*det;out[3]=(a22*b04-a21*b05-a23*b03)*det;out[4]=(a12*b08-a10*b11-a13*b07)*det;out[5]=(a00*b11-a02*b08+a03*b07)*det;out[6]=(a32*b02-a30*b05-a33*b01)*det;out[7]=(a20*b05-a22*b02+a23*b01)*det;out[8]=(a10*b10-a11*b08+a13*b06)*det;out[9]=(a01*b08-a00*b10-a03*b06)*det;out[10]=(a30*b04-a31*b02+a33*b00)*det;out[11]=(a21*b02-a20*b04-a23*b00)*det;out[12]=(a11*b07-a10*b09-a12*b06)*det;out[13]=(a00*b09-a01*b07+a02*b06)*det;out[14]=(a31*b01-a30*b03-a32*b00)*det;out[15]=(a20*b03-a21*b01+a22*b00)*det;return out};mat4.adjoint=function(out,a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];out[0]=a11*(a22*a33-a23*a32)-a21*(a12*a33-a13*a32)+a31*(a12*a23-a13*a22);out[1]=-(a01*(a22*a33-a23*a32)-a21*(a02*a33-a03*a32)+a31*(a02*a23-a03*a22));out[2]=a01*(a12*a33-a13*a32)-a11*(a02*a33-a03*a32)+a31*(a02*a13-a03*a12);out[3]=-(a01*(a12*a23-a13*a22)-a11*(a02*a23-a03*a22)+a21*(a02*a13-a03*a12));out[4]=-(a10*(a22*a33-a23*a32)-a20*(a12*a33-a13*a32)+a30*(a12*a23-a13*a22));out[5]=a00*(a22*a33-a23*a32)-a20*(a02*a33-a03*a32)+a30*(a02*a23-a03*a22);out[6]=-(a00*(a12*a33-a13*a32)-a10*(a02*a33-a03*a32)+a30*(a02*a13-a03*a12));out[7]=a00*(a12*a23-a13*a22)-a10*(a02*a23-a03*a22)+a20*(a02*a13-a03*a12);out[8]=a10*(a21*a33-a23*a31)-a20*(a11*a33-a13*a31)+a30*(a11*a23-a13*a21);out[9]=-(a00*(a21*a33-a23*a31)-a20*(a01*a33-a03*a31)+a30*(a01*a23-a03*a21));out[10]=a00*(a11*a33-a13*a31)-a10*(a01*a33-a03*a31)+a30*(a01*a13-a03*a11);out[11]=-(a00*(a11*a23-a13*a21)-a10*(a01*a23-a03*a21)+a20*(a01*a13-a03*a11));out[12]=-(a10*(a21*a32-a22*a31)-a20*(a11*a32-a12*a31)+a30*(a11*a22-a12*a21));out[13]=a00*(a21*a32-a22*a31)-a20*(a01*a32-a02*a31)+a30*(a01*a22-a02*a21);out[14]=-(a00*(a11*a32-a12*a31)-a10*(a01*a32-a02*a31)+a30*(a01*a12-a02*a11));out[15]=a00*(a11*a22-a12*a21)-a10*(a01*a22-a02*a21)+a20*(a01*a12-a02*a11);return out};mat4.determinant=function(a){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15],b00=a00*a11-a01*a10,b01=a00*a12-a02*a10,b02=a00*a13-a03*a10,b03=a01*a12-a02*a11,b04=a01*a13-a03*a11,b05=a02*a13-a03*a12,b06=a20*a31-a21*a30,b07=a20*a32-a22*a30,b08=a20*a33-a23*a30,b09=a21*a32-a22*a31,b10=a21*a33-a23*a31,b11=a22*a33-a23*a32;return b00*b11-b01*b10+b02*b09+b03*b08-b04*b07+b05*b06};mat4.mul=mat4.multiply=function(out,a,b){var a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11],a30=a[12],a31=a[13],a32=a[14],a33=a[15];var b0=b[0],b1=b[1],b2=b[2],b3=b[3];out[0]=b0*a00+b1*a10+b2*a20+b3*a30;out[1]=b0*a01+b1*a11+b2*a21+b3*a31;out[2]=b0*a02+b1*a12+b2*a22+b3*a32;out[3]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[4];b1=b[5];b2=b[6];b3=b[7];out[4]=b0*a00+b1*a10+b2*a20+b3*a30;out[5]=b0*a01+b1*a11+b2*a21+b3*a31;out[6]=b0*a02+b1*a12+b2*a22+b3*a32;out[7]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[8];b1=b[9];b2=b[10];b3=b[11];out[8]=b0*a00+b1*a10+b2*a20+b3*a30;out[9]=b0*a01+b1*a11+b2*a21+b3*a31;out[10]=b0*a02+b1*a12+b2*a22+b3*a32;out[11]=b0*a03+b1*a13+b2*a23+b3*a33;b0=b[12];b1=b[13];b2=b[14];b3=b[15];out[12]=b0*a00+b1*a10+b2*a20+b3*a30;out[13]=b0*a01+b1*a11+b2*a21+b3*a31;out[14]=b0*a02+b1*a12+b2*a22+b3*a32;out[15]=b0*a03+b1*a13+b2*a23+b3*a33;return out};mat4.translate=function(out,a,v){var x=v[0],y=v[1],z=v[2],a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23;if(a===out){out[12]=a[0]*x+a[4]*y+a[8]*z+a[12];out[13]=a[1]*x+a[5]*y+a[9]*z+a[13];out[14]=a[2]*x+a[6]*y+a[10]*z+a[14];out[15]=a[3]*x+a[7]*y+a[11]*z+a[15]}else{a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];out[0]=a00;out[1]=a01;out[2]=a02;out[3]=a03;out[4]=a10;out[5]=a11;out[6]=a12;out[7]=a13;out[8]=a20;out[9]=a21;out[10]=a22;out[11]=a23;out[12]=a00*x+a10*y+a20*z+a[12];out[13]=a01*x+a11*y+a21*z+a[13];out[14]=a02*x+a12*y+a22*z+a[14];out[15]=a03*x+a13*y+a23*z+a[15]}return out};mat4.scale=function(out,a,v){var x=v[0],y=v[1],z=v[2];out[0]=a[0]*x;out[1]=a[1]*x;out[2]=a[2]*x;out[3]=a[3]*x;out[4]=a[4]*y;out[5]=a[5]*y;out[6]=a[6]*y;out[7]=a[7]*y;out[8]=a[8]*z;out[9]=a[9]*z;out[10]=a[10]*z;out[11]=a[11]*z;out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15];return out};mat4.rotate=function(out,a,rad,axis){var x=axis[0],y=axis[1],z=axis[2],len=Math.sqrt(x*x+y*y+z*z),s,c,t,a00,a01,a02,a03,a10,a11,a12,a13,a20,a21,a22,a23,b00,b01,b02,b10,b11,b12,b20,b21,b22;if(Math.abs(len)<GLMAT_EPSILON){return null}len=1/len;x*=len;y*=len;z*=len;s=Math.sin(rad);c=Math.cos(rad);t=1-c;a00=a[0];a01=a[1];a02=a[2];a03=a[3];a10=a[4];a11=a[5];a12=a[6];a13=a[7];a20=a[8];a21=a[9];a22=a[10];a23=a[11];b00=x*x*t+c;b01=y*x*t+z*s;b02=z*x*t-y*s;b10=x*y*t-z*s;b11=y*y*t+c;b12=z*y*t+x*s;b20=x*z*t+y*s;b21=y*z*t-x*s;b22=z*z*t+c;out[0]=a00*b00+a10*b01+a20*b02;out[1]=a01*b00+a11*b01+a21*b02;out[2]=a02*b00+a12*b01+a22*b02;out[3]=a03*b00+a13*b01+a23*b02;out[4]=a00*b10+a10*b11+a20*b12;out[5]=a01*b10+a11*b11+a21*b12;out[6]=a02*b10+a12*b11+a22*b12;out[7]=a03*b10+a13*b11+a23*b12;out[8]=a00*b20+a10*b21+a20*b22;out[9]=a01*b20+a11*b21+a21*b22;out[10]=a02*b20+a12*b21+a22*b22;out[11]=a03*b20+a13*b21+a23*b22;if(a!==out){out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}return out};mat4.rotateX=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a10=a[4],a11=a[5],a12=a[6],a13=a[7],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[0]=a[0];out[1]=a[1];out[2]=a[2];out[3]=a[3];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[4]=a10*c+a20*s;out[5]=a11*c+a21*s;out[6]=a12*c+a22*s;out[7]=a13*c+a23*s;out[8]=a20*c-a10*s;out[9]=a21*c-a11*s;out[10]=a22*c-a12*s;out[11]=a23*c-a13*s;return out};mat4.rotateY=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a20=a[8],a21=a[9],a22=a[10],a23=a[11];if(a!==out){out[4]=a[4];out[5]=a[5];out[6]=a[6];out[7]=a[7];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c-a20*s;out[1]=a01*c-a21*s;out[2]=a02*c-a22*s;out[3]=a03*c-a23*s;out[8]=a00*s+a20*c;out[9]=a01*s+a21*c;out[10]=a02*s+a22*c;out[11]=a03*s+a23*c;return out};mat4.rotateZ=function(out,a,rad){var s=Math.sin(rad),c=Math.cos(rad),a00=a[0],a01=a[1],a02=a[2],a03=a[3],a10=a[4],a11=a[5],a12=a[6],a13=a[7];if(a!==out){out[8]=a[8];out[9]=a[9];out[10]=a[10];out[11]=a[11];out[12]=a[12];out[13]=a[13];out[14]=a[14];out[15]=a[15]}out[0]=a00*c+a10*s;out[1]=a01*c+a11*s;out[2]=a02*c+a12*s;out[3]=a03*c+a13*s;out[4]=a10*c-a00*s;out[5]=a11*c-a01*s;out[6]=a12*c-a02*s;out[7]=a13*c-a03*s;return out};mat4.fromRotationTranslation=function(out,q,v){var x=q[0],y=q[1],z=q[2],w=q[3],x2=x+x,y2=y+y,z2=z+z,xx=x*x2,xy=x*y2,xz=x*z2,yy=y*y2,yz=y*z2,zz=z*z2,wx=w*x2,wy=w*y2,wz=w*z2;out[0]=1-(yy+zz);out[1]=xy+wz;out[2]=xz-wy;out[3]=0;out[4]=xy-wz;out[5]=1-(xx+zz);out[6]=yz+wx;out[7]=0;out[8]=xz+wy;out[9]=yz-wx;out[10]=1-(xx+yy);out[11]=0;out[12]=v[0];out[13]=v[1];out[14]=v[2];out[15]=1;return out};mat4.frustum=function(out,left,right,bottom,top,near,far){var rl=1/(right-left),tb=1/(top-bottom),nf=1/(near-far);out[0]=near*2*rl;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=near*2*tb;out[6]=0;out[7]=0;out[8]=(right+left)*rl;out[9]=(top+bottom)*tb;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=far*near*2*nf;out[15]=0;return out};mat4.perspective=function(out,fovy,aspect,near,far){var f=1/Math.tan(fovy/2),nf=1/(near-far);out[0]=f/aspect;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=f;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=(far+near)*nf;out[11]=-1;out[12]=0;out[13]=0;out[14]=2*far*near*nf;out[15]=0;return out};mat4.ortho=function(out,left,right,bottom,top,near,far){var lr=1/(left-right),bt=1/(bottom-top),nf=1/(near-far);out[0]=-2*lr;out[1]=0;out[2]=0;out[3]=0;out[4]=0;out[5]=-2*bt;out[6]=0;out[7]=0;out[8]=0;out[9]=0;out[10]=2*nf;out[11]=0;out[12]=(left+right)*lr;out[13]=(top+bottom)*bt;out[14]=(far+near)*nf;out[15]=1;return out};mat4.lookAt=function(out,eye,center,up){var x0,x1,x2,y0,y1,y2,z0,z1,z2,len,eyex=eye[0],eyey=eye[1],eyez=eye[2],upx=up[0],upy=up[1],upz=up[2],centerx=center[0],centery=center[1],centerz=center[2];if(Math.abs(eyex-centerx)<GLMAT_EPSILON&&Math.abs(eyey-centery)<GLMAT_EPSILON&&Math.abs(eyez-centerz)<GLMAT_EPSILON){return mat4.identity(out)}z0=eyex-centerx;z1=eyey-centery;z2=eyez-centerz;len=1/Math.sqrt(z0*z0+z1*z1+z2*z2);z0*=len;z1*=len;z2*=len;x0=upy*z2-upz*z1;x1=upz*z0-upx*z2;x2=upx*z1-upy*z0;len=Math.sqrt(x0*x0+x1*x1+x2*x2);if(!len){x0=0;x1=0;x2=0}else{len=1/len;x0*=len;x1*=len;x2*=len}y0=z1*x2-z2*x1;y1=z2*x0-z0*x2;y2=z0*x1-z1*x0;len=Math.sqrt(y0*y0+y1*y1+y2*y2);if(!len){y0=0;y1=0;y2=0}else{len=1/len;y0*=len;y1*=len;y2*=len}out[0]=x0;out[1]=y0;out[2]=z0;out[3]=0;out[4]=x1;out[5]=y1;out[6]=z1;out[7]=0;out[8]=x2;out[9]=y2;out[10]=z2;out[11]=0;out[12]=-(x0*eyex+x1*eyey+x2*eyez);out[13]=-(y0*eyex+y1*eyey+y2*eyez);out[14]=-(z0*eyex+z1*eyey+z2*eyez);out[15]=1;return out};mat4.str=function(a){return"mat4("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+", "+a[4]+", "+a[5]+", "+a[6]+", "+a[7]+", "+a[8]+", "+a[9]+", "+a[10]+", "+a[11]+", "+a[12]+", "+a[13]+", "+a[14]+", "+a[15]+")"};if(typeof exports!=="undefined"){exports.mat4=mat4}var quat={};var quatIdentity=new Float32Array([0,0,0,1]);if(!GLMAT_EPSILON){var GLMAT_EPSILON=1e-6}quat.create=function(){return new Float32Array(quatIdentity)};quat.clone=vec4.clone;quat.fromValues=vec4.fromValues;quat.copy=vec4.copy;quat.set=vec4.set;quat.identity=function(out){out[0]=0;out[1]=0;out[2]=0;out[3]=1;return out};quat.setAxisAngle=function(out,axis,rad){rad=rad*.5;var s=Math.sin(rad);out[0]=s*axis[0];out[1]=s*axis[1];out[2]=s*axis[2];out[3]=Math.cos(rad);return out};quat.add=vec4.add;quat.mul=quat.multiply=function(out,a,b){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=b[3];out[0]=ax*bw+aw*bx+ay*bz-az*by;out[1]=ay*bw+aw*by+az*bx-ax*bz;out[2]=az*bw+aw*bz+ax*by-ay*bx;out[3]=aw*bw-ax*bx-ay*by-az*bz;return out};quat.scale=vec4.scale;quat.rotateX=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+aw*bx;out[1]=ay*bw+az*bx;out[2]=az*bw-ay*bx;out[3]=aw*bw-ax*bx;return out};quat.rotateY=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],by=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw-az*by;out[1]=ay*bw+aw*by;out[2]=az*bw+ax*by;out[3]=aw*bw-ay*by;return out};quat.rotateZ=function(out,a,rad){rad*=.5;var ax=a[0],ay=a[1],az=a[2],aw=a[3],bz=Math.sin(rad),bw=Math.cos(rad);out[0]=ax*bw+ay*bz;out[1]=ay*bw-ax*bz;out[2]=az*bw+aw*bz;out[3]=aw*bw-az*bz;return out};quat.calculateW=function(out,a){var x=a[0],y=a[1],z=a[2];out[0]=x;out[1]=y;out[2]=z;out[3]=-Math.sqrt(Math.abs(1-x*x-y*y-z*z));return out};quat.dot=vec4.dot;quat.lerp=vec4.lerp;quat.slerp=function(out,a,b,t){var ax=a[0],ay=a[1],az=a[2],aw=a[3],bx=b[0],by=b[1],bz=b[2],bw=a[3];var cosHalfTheta=ax*bx+ay*by+az*bz+aw*bw,halfTheta,sinHalfTheta,ratioA,ratioB;if(Math.abs(cosHalfTheta)>=1){if(out!==a){out[0]=ax;out[1]=ay;out[2]=az;out[3]=aw}return out}halfTheta=Math.acos(cosHalfTheta);sinHalfTheta=Math.sqrt(1-cosHalfTheta*cosHalfTheta);if(Math.abs(sinHalfTheta)<.001){out[0]=ax*.5+bx*.5;out[1]=ay*.5+by*.5;out[2]=az*.5+bz*.5;out[3]=aw*.5+bw*.5;return out}ratioA=Math.sin((1-t)*halfTheta)/sinHalfTheta;ratioB=Math.sin(t*halfTheta)/sinHalfTheta;out[0]=ax*ratioA+bx*ratioB;out[1]=ay*ratioA+by*ratioB;out[2]=az*ratioA+bz*ratioB;out[3]=aw*ratioA+bw*ratioB;return out};quat.invert=function(out,a){var a0=a[0],a1=a[1],a2=a[2],a3=a[3],dot=a0*a0+a1*a1+a2*a2+a3*a3,invDot=dot?1/dot:0;out[0]=-a0*invDot;out[1]=-a1*invDot;out[2]=-a2*invDot;out[3]=a3*invDot;return out};quat.conjugate=function(out,a){out[0]=-a[0];out[1]=-a[1];out[2]=-a[2];out[3]=a[3];return out};quat.len=quat.length=vec4.length;quat.sqrLen=quat.squaredLength=vec4.squaredLength;quat.normalize=vec4.normalize;quat.str=function(a){return"quat("+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+")"};if(typeof exports!=="undefined"){exports.quat=quat}}(shim.exports)}()}()},{}],20:[function(require,module,exports){!function(){!function(){var root=this;var previousUnderscore=root._;var breaker={};var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,concat=ArrayProto.concat,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeForEach=ArrayProto.forEach,nativeMap=ArrayProto.map,nativeReduce=ArrayProto.reduce,nativeReduceRight=ArrayProto.reduceRight,nativeFilter=ArrayProto.filter,nativeEvery=ArrayProto.every,nativeSome=ArrayProto.some,nativeIndexOf=ArrayProto.indexOf,nativeLastIndexOf=ArrayProto.lastIndexOf,nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind;var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.4.4";var each=_.each=_.forEach=function(obj,iterator,context){if(obj==null)return;if(nativeForEach&&obj.forEach===nativeForEach){obj.forEach(iterator,context)}else if(obj.length===+obj.length){for(var i=0,l=obj.length;i<l;i++){if(iterator.call(context,obj[i],i,obj)===breaker)return}}else{for(var key in obj){if(_.has(obj,key)){if(iterator.call(context,obj[key],key,obj)===breaker)return}}}};_.map=_.collect=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeMap&&obj.map===nativeMap)return obj.map(iterator,context);each(obj,function(value,index,list){results[results.length]=iterator.call(context,value,index,list)});return results};var reduceError="Reduce of empty array with no initial value";_.reduce=_.foldl=_.inject=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduce&&obj.reduce===nativeReduce){if(context)iterator=_.bind(iterator,context);return initial?obj.reduce(iterator,memo):obj.reduce(iterator)}each(obj,function(value,index,list){if(!initial){memo=value;initial=true}else{memo=iterator.call(context,memo,value,index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.reduceRight=_.foldr=function(obj,iterator,memo,context){var initial=arguments.length>2;if(obj==null)obj=[];if(nativeReduceRight&&obj.reduceRight===nativeReduceRight){if(context)iterator=_.bind(iterator,context);return initial?obj.reduceRight(iterator,memo):obj.reduceRight(iterator)}var length=obj.length;if(length!==+length){var keys=_.keys(obj);length=keys.length}each(obj,function(value,index,list){index=keys?keys[--length]:--length;if(!initial){memo=obj[index];initial=true}else{memo=iterator.call(context,memo,obj[index],index,list)}});if(!initial)throw new TypeError(reduceError);return memo};_.find=_.detect=function(obj,iterator,context){var result;any(obj,function(value,index,list){if(iterator.call(context,value,index,list)){result=value;return true}});return result};_.filter=_.select=function(obj,iterator,context){var results=[];if(obj==null)return results;if(nativeFilter&&obj.filter===nativeFilter)return obj.filter(iterator,context);each(obj,function(value,index,list){if(iterator.call(context,value,index,list))results[results.length]=value});return results};_.reject=function(obj,iterator,context){return _.filter(obj,function(value,index,list){return!iterator.call(context,value,index,list)},context)};_.every=_.all=function(obj,iterator,context){iterator||(iterator=_.identity);var result=true;if(obj==null)return result;if(nativeEvery&&obj.every===nativeEvery)return obj.every(iterator,context);each(obj,function(value,index,list){if(!(result=result&&iterator.call(context,value,index,list)))return breaker});return!!result};var any=_.some=_.any=function(obj,iterator,context){iterator||(iterator=_.identity);var result=false;if(obj==null)return result;if(nativeSome&&obj.some===nativeSome)return obj.some(iterator,context);each(obj,function(value,index,list){if(result||(result=iterator.call(context,value,index,list)))return breaker});return!!result};_.contains=_.include=function(obj,target){if(obj==null)return false;if(nativeIndexOf&&obj.indexOf===nativeIndexOf)return obj.indexOf(target)!=-1;return any(obj,function(value){return value===target})};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){return(isFunc?method:value[method]).apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,function(value){return value[key]})};_.where=function(obj,attrs,first){if(_.isEmpty(attrs))return first?null:[];return _[first?"find":"filter"](obj,function(value){for(var key in attrs){if(attrs[key]!==value[key])return false}return true})};_.findWhere=function(obj,attrs){return _.where(obj,attrs,true)};_.max=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.max.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return-Infinity;var result={computed:-Infinity,value:-Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed>=result.computed&&(result={value:value,computed:computed})});return result.value};_.min=function(obj,iterator,context){if(!iterator&&_.isArray(obj)&&obj[0]===+obj[0]&&obj.length<65535){return Math.min.apply(Math,obj)}if(!iterator&&_.isEmpty(obj))return Infinity;var result={computed:Infinity,value:Infinity};each(obj,function(value,index,list){var computed=iterator?iterator.call(context,value,index,list):value;computed<result.computed&&(result={value:value,computed:computed})});return result.value};_.shuffle=function(obj){var rand;var index=0;var shuffled=[];each(obj,function(value){rand=_.random(index++);shuffled[index-1]=shuffled[rand];shuffled[rand]=value});return shuffled};var lookupIterator=function(value){return _.isFunction(value)?value:function(obj){return obj[value]}};_.sortBy=function(obj,value,context){var iterator=lookupIterator(value);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iterator.call(context,value,index,list)}}).sort(function(left,right){var a=left.criteria;
-var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index<right.index?-1:1}),"value")};var group=function(obj,value,context,behavior){var result={};var iterator=lookupIterator(value||_.identity);each(obj,function(value,index){var key=iterator.call(context,value,index,obj);behavior(result,key,value)});return result};_.groupBy=function(obj,value,context){return group(obj,value,context,function(result,key,value){(_.has(result,key)?result[key]:result[key]=[]).push(value)})};_.countBy=function(obj,value,context){return group(obj,value,context,function(result,key){if(!_.has(result,key))result[key]=0;result[key]++})};_.sortedIndex=function(array,obj,iterator,context){iterator=iterator==null?_.identity:lookupIterator(iterator);var value=iterator.call(context,obj);var low=0,high=array.length;while(low<high){var mid=low+high>>>1;iterator.call(context,array[mid])<value?low=mid+1:high=mid}return low};_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(obj.length===+obj.length)return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return obj.length===+obj.length?obj.length:_.keys(obj).length};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;return n!=null&&!guard?slice.call(array,0,n):array[0]};_.initial=function(array,n,guard){return slice.call(array,0,array.length-(n==null||guard?1:n))};_.last=function(array,n,guard){if(array==null)return void 0;if(n!=null&&!guard){return slice.call(array,Math.max(array.length-n,0))}else{return array[array.length-1]}};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,output){each(input,function(value){if(_.isArray(value)){shallow?push.apply(output,value):flatten(value,shallow,output)}else{output.push(value)}});return output};_.flatten=function(array,shallow){return flatten(array,shallow,[])};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iterator,context){if(_.isFunction(isSorted)){context=iterator;iterator=isSorted;isSorted=false}var initial=iterator?_.map(array,iterator,context):array;var results=[];var seen=[];each(initial,function(value,index){if(isSorted?!index||seen[seen.length-1]!==value:!_.contains(seen,value)){seen.push(value);results.push(array[index])}});return results};_.union=function(){return _.uniq(concat.apply(ArrayProto,arguments))};_.intersection=function(array){var rest=slice.call(arguments,1);return _.filter(_.uniq(array),function(item){return _.every(rest,function(other){return _.indexOf(other,item)>=0})})};_.difference=function(array){var rest=concat.apply(ArrayProto,slice.call(arguments,1));return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){var args=slice.call(arguments);var length=_.max(_.pluck(args,"length"));var results=new Array(length);for(var i=0;i<length;i++){results[i]=_.pluck(args,""+i)}return results};_.object=function(list,values){if(list==null)return{};var result={};for(var i=0,l=list.length;i<l;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};_.indexOf=function(array,item,isSorted){if(array==null)return-1;var i=0,l=array.length;if(isSorted){if(typeof isSorted=="number"){i=isSorted<0?Math.max(0,l+isSorted):isSorted}else{i=_.sortedIndex(array,item);return array[i]===item?i:-1}}if(nativeIndexOf&&array.indexOf===nativeIndexOf)return array.indexOf(item,isSorted);for(;i<l;i++)if(array[i]===item)return i;return-1};_.lastIndexOf=function(array,item,from){if(array==null)return-1;var hasIndex=from!=null;if(nativeLastIndexOf&&array.lastIndexOf===nativeLastIndexOf){return hasIndex?array.lastIndexOf(item,from):array.lastIndexOf(item)}var i=hasIndex?from:array.length;while(i--)if(array[i]===item)return i;return-1};_.range=function(start,stop,step){if(arguments.length<=1){stop=start||0;start=0}step=arguments[2]||1;var len=Math.max(Math.ceil((stop-start)/step),0);var idx=0;var range=new Array(len);while(idx<len){range[idx++]=start;start+=step}return range};_.bind=function(func,context){if(func.bind===nativeBind&&nativeBind)return nativeBind.apply(func,slice.call(arguments,1));var args=slice.call(arguments,2);return function(){return func.apply(context,args.concat(slice.call(arguments)))}};_.partial=function(func){var args=slice.call(arguments,1);return function(){return func.apply(this,args.concat(slice.call(arguments)))}};_.bindAll=function(obj){var funcs=slice.call(arguments,1);if(funcs.length===0)funcs=_.functions(obj);each(funcs,function(f){obj[f]=_.bind(obj[f],obj)});return obj};_.memoize=function(func,hasher){var memo={};hasher||(hasher=_.identity);return function(){var key=hasher.apply(this,arguments);return _.has(memo,key)?memo[key]:memo[key]=func.apply(this,arguments)}};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=function(func){return _.delay.apply(_,[func,1].concat(slice.call(arguments,1)))};_.throttle=function(func,wait){var context,args,timeout,result;var previous=0;var later=function(){previous=new Date;timeout=null;result=func.apply(context,args)};return function(){var now=new Date;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0){clearTimeout(timeout);timeout=null;previous=now;result=func.apply(context,args)}else if(!timeout){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,result;return function(){var context=this,args=arguments;var later=function(){timeout=null;if(!immediate)result=func.apply(context,args)};var callNow=immediate&&!timeout;clearTimeout(timeout);timeout=setTimeout(later,wait);if(callNow)result=func.apply(context,args);return result}};_.once=function(func){var ran=false,memo;return function(){if(ran)return memo;ran=true;memo=func.apply(this,arguments);func=null;return memo}};_.wrap=function(func,wrapper){return function(){var args=[func];push.apply(args,arguments);return wrapper.apply(this,args)}};_.compose=function(){var funcs=arguments;return function(){var args=arguments;for(var i=funcs.length-1;i>=0;i--){args=[funcs[i].apply(this,args)]}return args[0]}};_.after=function(times,func){if(times<=0)return func();return function(){if(--times<1){return func.apply(this,arguments)}}};_.keys=nativeKeys||function(obj){if(obj!==Object(obj))throw new TypeError("Invalid object");var keys=[];for(var key in obj)if(_.has(obj,key))keys[keys.length]=key;return keys};_.values=function(obj){var values=[];for(var key in obj)if(_.has(obj,key))values.push(obj[key]);return values};_.pairs=function(obj){var pairs=[];for(var key in obj)if(_.has(obj,key))pairs.push([key,obj[key]]);return pairs};_.invert=function(obj){var result={};for(var key in obj)if(_.has(obj,key))result[obj[key]]=key;return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){obj[prop]=source[prop]}}});return obj};_.pick=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));each(keys,function(key){if(key in obj)copy[key]=obj[key]});return copy};_.omit=function(obj){var copy={};var keys=concat.apply(ArrayProto,slice.call(arguments,1));for(var key in obj){if(!_.contains(keys,key))copy[key]=obj[key]}return copy};_.defaults=function(obj){each(slice.call(arguments,1),function(source){if(source){for(var prop in source){if(obj[prop]==null)obj[prop]=source[prop]}}});return obj};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a==1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!=toString.call(b))return false;switch(className){case"[object String]":return a==String(b);case"[object Number]":return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case"[object Date]":case"[object Boolean]":return+a==+b;case"[object RegExp]":return a.source==b.source&&a.global==b.global&&a.multiline==b.multiline&&a.ignoreCase==b.ignoreCase}if(typeof a!="object"||typeof b!="object")return false;var length=aStack.length;while(length--){if(aStack[length]==a)return bStack[length]==b}aStack.push(a);bStack.push(b);var size=0,result=true;if(className=="[object Array]"){size=a.length;result=size==b.length;if(result){while(size--){if(!(result=eq(a[size],b[size],aStack,bStack)))break}}}else{var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)){return false}for(var key in a){if(_.has(a,key)){size++;if(!(result=_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))break}}if(result){for(key in b){if(_.has(b,key)&&!size--)break}result=!size}}aStack.pop();bStack.pop();return result};_.isEqual=function(a,b){return eq(a,b,[],[])};_.isEmpty=function(obj){if(obj==null)return true;if(_.isArray(obj)||_.isString(obj))return obj.length===0;for(var key in obj)if(_.has(obj,key))return false;return true};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)=="[object Array]"};_.isObject=function(obj){return obj===Object(obj)};each(["Arguments","Function","String","Number","Date","RegExp"],function(name){_["is"+name]=function(obj){return toString.call(obj)=="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return!!(obj&&_.has(obj,"callee"))}}if(typeof/./!=="function"){_.isFunction=function(obj){return typeof obj==="function"}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!=+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)=="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.times=function(n,iterator,context){var accum=Array(n);for(var i=0;i<n;i++)accum[i]=iterator.call(context,i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};var entityMap={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};entityMap.unescape=_.invert(entityMap.escape);var entityRegexes={escape:new RegExp("["+_.keys(entityMap.escape).join("")+"]","g"),unescape:new RegExp("("+_.keys(entityMap.unescape).join("|")+")","g")};_.each(["escape","unescape"],function(method){_[method]=function(string){if(string==null)return"";return(""+string).replace(entityRegexes[method],function(match){return entityMap[method][match]})}});_.result=function(object,property){if(object==null)return null;var value=object[property];return _.isFunction(value)?value.call(object):value};_.mixin=function(obj){each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result.call(this,func.apply(_,args))}})};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n"," ":"t","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\t|\u2028|\u2029/g;_.template=function(text,data,settings){var render;settings=_.defaults({},settings,_.templateSettings);var matcher=new RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,function(match){return"\\"+escapes[match]});if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}if(evaluate){source+="';\n"+evaluate+"\n__p+='"}index=offset+match.length;return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}if(data)return render(data,_);var template=function(data){return render.call(this,data,_)};template.source="function("+(settings.variable||"obj")+"){\n"+source+"}";return template};_.chain=function(obj){return _(obj).chain()};var result=function(obj){return this._chain?_(obj).chain():obj};_.mixin(_);each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name=="shift"||name=="splice")&&obj.length===0)delete obj[0];return result.call(this,obj)}});each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result.call(this,method.apply(this._wrapped,arguments))}});_.extend(_.prototype,{chain:function(){this._chain=true;return this},value:function(){return this._wrapped}})}.call(this)}()},{}],21:[function(require,module,exports){window.requestAnimFrame=function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)}}();Leap=require("../lib/index")},{"../lib/index":8}]},{},[21]);
-
-/*
- * Leap Motion integration for Reveal.js.
- * James Sun  [sun16]
- * Rory Hardy [gneatgeek]
- */
-
-(function () {
-  var body        = document.body,
-      controller  = new Leap.Controller({ enableGestures: true }),
-      lastGesture = 0,
-      leapConfig  = Reveal.getConfig().leap,
-      pointer     = document.createElement( 'div' ),
-      config      = {
-        autoCenter       : true,      // Center pointer around detected position.
-        gestureDelay     : 500,       // How long to delay between gestures.
-        naturalSwipe     : true,      // Swipe as if it were a touch screen.
-        pointerColor     : '#00aaff', // Default color of the pointer.
-        pointerOpacity   : 0.7,       // Default opacity of the pointer.
-        pointerSize      : 15,        // Default minimum height/width of the pointer.
-        pointerTolerance : 120        // Bigger = slower pointer.
-      },
-      entered, enteredPosition, now, size, tipPosition; // Other vars we need later, but don't need to redeclare.
-
-      // Merge user defined settings with defaults
-      if( leapConfig ) {
-        for( key in leapConfig ) {
-          config[key] = leapConfig[key];
-        }
-      }
-
-      pointer.id = 'leap';
-
-      pointer.style.position        = 'absolute';
-      pointer.style.visibility      = 'hidden';
-      pointer.style.zIndex          = 50;
-      pointer.style.opacity         = config.pointerOpacity;
-      pointer.style.backgroundColor = config.pointerColor;
-
-      body.appendChild( pointer );
-
-  // Leap's loop
-  controller.on( 'frame', function ( frame ) {
-    // Timing code to rate limit gesture execution
-    now = new Date().getTime();
-
-    // Pointer: 1 to 2 fingers. Strictly one finger works but may cause innaccuracies.
-    // The innaccuracies were observed on a development model and may not be an issue with consumer models.
-    if( frame.fingers.length > 0 && frame.fingers.length < 3 ) {
-      // Invert direction and multiply by 3 for greater effect.
-      size = -3 * frame.fingers[0].tipPosition[2];
-
-      if( size < config.pointerSize ) {
-        size = config.pointerSize;
-      }
-
-      pointer.style.width        = size     + 'px';
-      pointer.style.height       = size     + 'px';
-      pointer.style.borderRadius = size - 5 + 'px';
-      pointer.style.visibility   = 'visible';
-
-      if( config.autoCenter ) {
-        tipPosition = frame.fingers[0].tipPosition;
-
-        // Check whether the finger has entered the z range of the Leap Motion. Used for the autoCenter option.
-        if( !entered ) {
-          entered         = true;
-          enteredPosition = frame.fingers[0].tipPosition;
-        }
-
-        pointer.style.top =
-          (-1 * (( tipPosition[1] - enteredPosition[1] ) * body.offsetHeight / config.pointerTolerance )) +
-            ( body.offsetHeight / 2 ) + 'px';
-
-        pointer.style.left =
-          (( tipPosition[0] - enteredPosition[0] ) * body.offsetWidth / config.pointerTolerance ) +
-            ( body.offsetWidth / 2 ) + 'px';
-      }
-      else {
-        pointer.style.top  = ( 1 - (( tipPosition[1] - 50) / config.pointerTolerance )) *
-          body.offsetHeight + 'px';
-
-        pointer.style.left = ( tipPosition[0] * body.offsetWidth / config.pointerTolerance ) +
-          ( body.offsetWidth / 2 ) + 'px';
-      }
-    }
-    else {
-      // Hide pointer on exit
-      entered                  = false;
-      pointer.style.visibility = 'hidden';
-    }
-
-    // Gestures
-    if( frame.gestures.length > 0 && (now - lastGesture) > config.gestureDelay ) {
-      var gesture = frame.gestures[0];
-
-      // One hand gestures
-      if( frame.hands.length === 1 ) {
-        // Swipe gestures. 3+ fingers.
-        if( frame.fingers.length > 2 && gesture.type === 'swipe' ) {
-          // Define here since some gestures will throw undefined for these.
-          var x = gesture.direction[0],
-              y = gesture.direction[1];
-
-          // Left/right swipe gestures
-          if( Math.abs( x ) > Math.abs( y )) {
-            if( x > 0 ) {
-              config.naturalSwipe ? Reveal.left() : Reveal.right();
-            }
-            else {
-              config.naturalSwipe ? Reveal.right() : Reveal.left();
-            }
-          }
-          // Up/down swipe gestures
-          else {
-            if( y > 0 ) {
-              config.naturalSwipe ? Reveal.down() : Reveal.up();
-            }
-            else {
-              config.naturalSwipe ? Reveal.up() : Reveal.down();
-            }
-          }
-
-          lastGesture = now;
-        }
-      }
-      // Two hand gestures
-      else if( frame.hands.length === 2 ) {
-        // Upward two hand swipe gesture
-        if( gesture.direction[1] > 0 && gesture.type === 'swipe' ) {
-          Reveal.toggleOverview();
-        }
-
-        lastGesture = now;
-      }
-    }
-  });
-
-  controller.connect();
-})();
diff --git a/docs/slides/plpv14/reveal.js/plugin/markdown/markdown.js b/docs/slides/plpv14/reveal.js/plugin/markdown/markdown.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/markdown/markdown.js
+++ /dev/null
@@ -1,392 +0,0 @@
-/**
- * The reveal.js markdown plugin. Handles parsing of
- * markdown inside of presentations as well as loading
- * of external markdown documents.
- */
-(function( root, factory ) {
-	if( typeof exports === 'object' ) {
-		module.exports = factory( require( './marked' ) );
-	}
-	else {
-		// Browser globals (root is window)
-		root.RevealMarkdown = factory( root.marked );
-		root.RevealMarkdown.initialize();
-	}
-}( this, function( marked ) {
-
-	if( typeof marked === 'undefined' ) {
-		throw 'The reveal.js Markdown plugin requires marked to be loaded';
-	}
-
-	if( typeof hljs !== 'undefined' ) {
-		marked.setOptions({
-			highlight: function( lang, code ) {
-				return hljs.highlightAuto( lang, code ).value;
-			}
-		});
-	}
-
-	var DEFAULT_SLIDE_SEPARATOR = '^\n---\n$',
-		DEFAULT_NOTES_SEPARATOR = 'note:',
-		DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR = '\\\.element\\\s*?(.+?)$',
-		DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR = '\\\.slide:\\\s*?(\\\S.+?)$';
-
-
-	/**
-	 * Retrieves the markdown contents of a slide section
-	 * element. Normalizes leading tabs/whitespace.
-	 */
-	function getMarkdownFromSlide( section ) {
-
-		var template = section.querySelector( 'script' );
-
-		// strip leading whitespace so it isn't evaluated as code
-		var text = ( template || section ).textContent;
-
-		var leadingWs = text.match( /^\n?(\s*)/ )[1].length,
-			leadingTabs = text.match( /^\n?(\t*)/ )[1].length;
-
-		if( leadingTabs > 0 ) {
-			text = text.replace( new RegExp('\\n?\\t{' + leadingTabs + '}','g'), '\n' );
-		}
-		else if( leadingWs > 1 ) {
-			text = text.replace( new RegExp('\\n? {' + leadingWs + '}','g'), '\n' );
-		}
-
-		return text;
-
-	}
-
-	/**
-	 * Given a markdown slide section element, this will
-	 * return all arguments that aren't related to markdown
-	 * parsing. Used to forward any other user-defined arguments
-	 * to the output markdown slide.
-	 */
-	function getForwardedAttributes( section ) {
-
-		var attributes = section.attributes;
-		var result = [];
-
-		for( var i = 0, len = attributes.length; i < len; i++ ) {
-			var name = attributes[i].name,
-				value = attributes[i].value;
-
-			// disregard attributes that are used for markdown loading/parsing
-			if( /data\-(markdown|separator|vertical|notes)/gi.test( name ) ) continue;
-
-			if( value ) {
-				result.push( name + '=' + value );
-			}
-			else {
-				result.push( name );
-			}
-		}
-
-		return result.join( ' ' );
-
-	}
-
-	/**
-	 * Inspects the given options and fills out default
-	 * values for what's not defined.
-	 */
-	function getSlidifyOptions( options ) {
-
-		options = options || {};
-		options.separator = options.separator || DEFAULT_SLIDE_SEPARATOR;
-		options.notesSeparator = options.notesSeparator || DEFAULT_NOTES_SEPARATOR;
-		options.attributes = options.attributes || '';
-
-		return options;
-
-	}
-
-	/**
-	 * Helper function for constructing a markdown slide.
-	 */
-	function createMarkdownSlide( content, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var notesMatch = content.split( new RegExp( options.notesSeparator, 'mgi' ) );
-
-		if( notesMatch.length === 2 ) {
-			content = notesMatch[0] + '<aside class="notes" data-markdown>' + notesMatch[1].trim() + '</aside>';
-		}
-
-		return '<script type="text/template">' + content + '</script>';
-
-	}
-
-	/**
-	 * Parses a data string into multiple slides based
-	 * on the passed in separator arguments.
-	 */
-	function slidify( markdown, options ) {
-
-		options = getSlidifyOptions( options );
-
-		var separatorRegex = new RegExp( options.separator + ( options.verticalSeparator ? '|' + options.verticalSeparator : '' ), 'mg' ),
-			horizontalSeparatorRegex = new RegExp( options.separator );
-
-		var matches,
-			lastIndex = 0,
-			isHorizontal,
-			wasHorizontal = true,
-			content,
-			sectionStack = [];
-
-		// iterate until all blocks between separators are stacked up
-		while( matches = separatorRegex.exec( markdown ) ) {
-			notes = null;
-
-			// determine direction (horizontal by default)
-			isHorizontal = horizontalSeparatorRegex.test( matches[0] );
-
-			if( !isHorizontal && wasHorizontal ) {
-				// create vertical stack
-				sectionStack.push( [] );
-			}
-
-			// pluck slide content from markdown input
-			content = markdown.substring( lastIndex, matches.index );
-
-			if( isHorizontal && wasHorizontal ) {
-				// add to horizontal stack
-				sectionStack.push( content );
-			}
-			else {
-				// add to vertical stack
-				sectionStack[sectionStack.length-1].push( content );
-			}
-
-			lastIndex = separatorRegex.lastIndex;
-			wasHorizontal = isHorizontal;
-		}
-
-		// add the remaining slide
-		( wasHorizontal ? sectionStack : sectionStack[sectionStack.length-1] ).push( markdown.substring( lastIndex ) );
-
-		var markdownSections = '';
-
-		// flatten the hierarchical stack, and insert <section data-markdown> tags
-		for( var i = 0, len = sectionStack.length; i < len; i++ ) {
-			// vertical
-			if( sectionStack[i] instanceof Array ) {
-				markdownSections += '<section '+ options.attributes +'>';
-
-				sectionStack[i].forEach( function( child ) {
-					markdownSections += '<section data-markdown>' +  createMarkdownSlide( child, options ) + '</section>';
-				} );
-
-				markdownSections += '</section>';
-			}
-			else {
-				markdownSections += '<section '+ options.attributes +' data-markdown>' + createMarkdownSlide( sectionStack[i], options ) + '</section>';
-			}
-		}
-
-		return markdownSections;
-
-	}
-
-	/**
-	 * Parses any current data-markdown slides, splits
-	 * multi-slide markdown into separate sections and
-	 * handles loading of external markdown.
-	 */
-	function processSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]'),
-			section;
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			section = sections[i];
-
-			if( section.getAttribute( 'data-markdown' ).length ) {
-
-				var xhr = new XMLHttpRequest(),
-					url = section.getAttribute( 'data-markdown' );
-
-				datacharset = section.getAttribute( 'data-charset' );
-
-				// see https://developer.mozilla.org/en-US/docs/Web/API/element.getAttribute#Notes
-				if( datacharset != null && datacharset != '' ) {
-					xhr.overrideMimeType( 'text/html; charset=' + datacharset );
-				}
-
-				xhr.onreadystatechange = function() {
-					if( xhr.readyState === 4 ) {
-						if ( xhr.status >= 200 && xhr.status < 300 ) {
-
-							section.outerHTML = slidify( xhr.responseText, {
-								separator: section.getAttribute( 'data-separator' ),
-								verticalSeparator: section.getAttribute( 'data-vertical' ),
-								notesSeparator: section.getAttribute( 'data-notes' ),
-								attributes: getForwardedAttributes( section )
-							});
-
-						}
-						else {
-
-							section.outerHTML = '<section data-state="alert">' +
-								'ERROR: The attempt to fetch ' + url + ' failed with HTTP status ' + xhr.status + '.' +
-								'Check your browser\'s JavaScript console for more details.' +
-								'<p>Remember that you need to serve the presentation HTML from a HTTP server.</p>' +
-								'</section>';
-
-						}
-					}
-				};
-
-				xhr.open( 'GET', url, false );
-
-				try {
-					xhr.send();
-				}
-				catch ( e ) {
-					alert( 'Failed to get the Markdown file ' + url + '. Make sure that the presentation and the file are served by a HTTP server and the file can be found there. ' + e );
-				}
-
-			}
-			else if( section.getAttribute( 'data-separator' ) || section.getAttribute( 'data-vertical' ) || section.getAttribute( 'data-notes' ) ) {
-
-				section.outerHTML = slidify( getMarkdownFromSlide( section ), {
-					separator: section.getAttribute( 'data-separator' ),
-					verticalSeparator: section.getAttribute( 'data-vertical' ),
-					notesSeparator: section.getAttribute( 'data-notes' ),
-					attributes: getForwardedAttributes( section )
-				});
-
-			}
-			else {
-				section.innerHTML = createMarkdownSlide( getMarkdownFromSlide( section ) );
-			}
-		}
-
-	}
-
-	/**
-	 * Check if a node value has the attributes pattern.
-	 * If yes, extract it and add that value as one or several attributes
-	 * the the terget element.
-	 *
-	 * You need Cache Killer on Chrome to see the effect on any FOM transformation
-	 * directly on refresh (F5)
-	 * http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development/7000899#answer-11786277
-	 */
-	function addAttributeInElement( node, elementTarget, separator ) {
-
-		var mardownClassesInElementsRegex = new RegExp( separator, 'mg' );
-		var mardownClassRegex = new RegExp( "([^\"= ]+?)=\"([^\"=]+?)\"", 'mg' );
-		var nodeValue = node.nodeValue;
-		if( matches = mardownClassesInElementsRegex.exec( nodeValue ) ) {
-
-			var classes = matches[1];
-			nodeValue = nodeValue.substring( 0, matches.index ) + nodeValue.substring( mardownClassesInElementsRegex.lastIndex );
-			node.nodeValue = nodeValue;
-			while( matchesClass = mardownClassRegex.exec( classes ) ) {
-				elementTarget.setAttribute( matchesClass[1], matchesClass[2] );
-			}
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Add attributes to the parent element of a text node,
-	 * or the element of an attribute node.
-	 */
-	function addAttributes( section, element, previousElement, separatorElementAttributes, separatorSectionAttributes ) {
-
-		if ( element != null && element.childNodes != undefined && element.childNodes.length > 0 ) {
-			previousParentElement = element;
-			for( var i = 0; i < element.childNodes.length; i++ ) {
-				childElement = element.childNodes[i];
-				if ( i > 0 ) {
-					j = i - 1;
-					while ( j >= 0 ) {
-						aPreviousChildElement = element.childNodes[j];
-						if ( typeof aPreviousChildElement.setAttribute == 'function' && aPreviousChildElement.tagName != "BR" ) {
-							previousParentElement = aPreviousChildElement;
-							break;
-						}
-						j = j - 1;
-					}
-				}
-				parentSection = section;
-				if( childElement.nodeName ==  "section" ) {
-					parentSection = childElement ;
-					previousParentElement = childElement ;
-				}
-				if ( typeof childElement.setAttribute == 'function' || childElement.nodeType == Node.COMMENT_NODE ) {
-					addAttributes( parentSection, childElement, previousParentElement, separatorElementAttributes, separatorSectionAttributes );
-				}
-			}
-		}
-
-		if ( element.nodeType == Node.COMMENT_NODE ) {
-			if ( addAttributeInElement( element, previousElement, separatorElementAttributes ) == false ) {
-				addAttributeInElement( element, section, separatorSectionAttributes );
-			}
-		}
-	}
-
-	/**
-	 * Converts any current data-markdown slides in the
-	 * DOM to HTML.
-	 */
-	function convertSlides() {
-
-		var sections = document.querySelectorAll( '[data-markdown]');
-
-		for( var i = 0, len = sections.length; i < len; i++ ) {
-
-			var section = sections[i];
-
-			// Only parse the same slide once
-			if( !section.getAttribute( 'data-markdown-parsed' ) ) {
-
-				section.setAttribute( 'data-markdown-parsed', true )
-
-				var notes = section.querySelector( 'aside.notes' );
-				var markdown = getMarkdownFromSlide( section );
-
-				section.innerHTML = marked( markdown );
-				addAttributes( 	section, section, null, section.getAttribute( 'data-element-attributes' ) ||
-								section.parentNode.getAttribute( 'data-element-attributes' ) ||
-								DEFAULT_ELEMENT_ATTRIBUTES_SEPARATOR,
-								section.getAttribute( 'data-attributes' ) ||
-								section.parentNode.getAttribute( 'data-attributes' ) ||
-								DEFAULT_SLIDE_ATTRIBUTES_SEPARATOR);
-
-				// If there were notes, we need to re-add them after
-				// having overwritten the section's HTML
-				if( notes ) {
-					section.appendChild( notes );
-				}
-
-			}
-
-		}
-
-	}
-
-	// API
-	return {
-
-		initialize: function() {
-			processSlides();
-			convertSlides();
-		},
-
-		// TODO: Do these belong in the API?
-		processSlides: processSlides,
-		convertSlides: convertSlides,
-		slidify: slidify
-
-	};
-
-}));
diff --git a/docs/slides/plpv14/reveal.js/plugin/markdown/marked.js b/docs/slides/plpv14/reveal.js/plugin/markdown/marked.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/markdown/marked.js
+++ /dev/null
@@ -1,37 +0,0 @@
-/**
- * marked - a markdown parser
- * Copyright (c) 2011-2013, Christopher Jeffrey. (MIT Licensed)
- * https://github.com/chjj/marked
- */
-
-(function(){var block={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:noop,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:noop,lheading:/^([^\n]+)\n *(=|-){3,} *\n*/,blockquote:/^( *>[^\n]+(\n[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment|closed|closing) *(?:\n{2,}|\s*$)/,def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:noop,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,
-text:/^[^\n]+/};block.bullet=/(?:[*+-]|\d+\.)/;block.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/;block.item=replace(block.item,"gm")(/bull/g,block.bullet)();block.list=replace(block.list)(/bull/g,block.bullet)("hr",/\n+(?=(?: *[-*_]){3,} *(?:\n+|$))/)();block._tag="(?!(?:"+"a|em|strong|small|s|cite|q|dfn|abbr|data|time|code"+"|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo"+"|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|@)\\b";block.html=replace(block.html)("comment",/\x3c!--[\s\S]*?--\x3e/)("closed",
-/<(tag)[\s\S]+?<\/\1>/)("closing",/<tag(?:"[^"]*"|'[^']*'|[^'">])*?>/)(/tag/g,block._tag)();block.paragraph=replace(block.paragraph)("hr",block.hr)("heading",block.heading)("lheading",block.lheading)("blockquote",block.blockquote)("tag","<"+block._tag)("def",block.def)();block.normal=merge({},block);block.gfm=merge({},block.normal,{fences:/^ *(`{3,}|~{3,}) *(\S+)? *\n([\s\S]+?)\s*\1 *(?:\n+|$)/,paragraph:/^/});block.gfm.paragraph=replace(block.paragraph)("(?!","(?!"+block.gfm.fences.source.replace("\\1",
-"\\2")+"|")();block.tables=merge({},block.gfm,{nptable:/^ *(\S.*\|.*)\n *([-:]+ *\|[-| :]*)\n((?:.*\|.*(?:\n|$))*)\n*/,table:/^ *\|(.+)\n *\|( *[-:]+[-| :]*)\n((?: *\|.*(?:\n|$))*)\n*/});function Lexer(options){this.tokens=[];this.tokens.links={};this.options=options||marked.defaults;this.rules=block.normal;if(this.options.gfm)if(this.options.tables)this.rules=block.tables;else this.rules=block.gfm}Lexer.rules=block;Lexer.lex=function(src,options){var lexer=new Lexer(options);return lexer.lex(src)};
-Lexer.prototype.lex=function(src){src=src.replace(/\r\n|\r/g,"\n").replace(/\t/g,"    ").replace(/\u00a0/g," ").replace(/\u2424/g,"\n");return this.token(src,true)};Lexer.prototype.token=function(src,top){var src=src.replace(/^ +$/gm,""),next,loose,cap,bull,b,item,space,i,l;while(src){if(cap=this.rules.newline.exec(src)){src=src.substring(cap[0].length);if(cap[0].length>1)this.tokens.push({type:"space"})}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);cap=cap[0].replace(/^ {4}/gm,
-"");this.tokens.push({type:"code",text:!this.options.pedantic?cap.replace(/\n+$/,""):cap});continue}if(cap=this.rules.fences.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"code",lang:cap[2],text:cap[3]});continue}if(cap=this.rules.heading.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[1].length,text:cap[2]});continue}if(top&&(cap=this.rules.nptable.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,
-"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]="center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].split(/ *\| */);this.tokens.push(item);continue}if(cap=this.rules.lheading.exec(src)){src=
-src.substring(cap[0].length);this.tokens.push({type:"heading",depth:cap[2]==="="?1:2,text:cap[1]});continue}if(cap=this.rules.hr.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"hr"});continue}if(cap=this.rules.blockquote.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"blockquote_start"});cap=cap[0].replace(/^ *> ?/gm,"");this.token(cap,top);this.tokens.push({type:"blockquote_end"});continue}if(cap=this.rules.list.exec(src)){src=src.substring(cap[0].length);
-bull=cap[2];this.tokens.push({type:"list_start",ordered:bull.length>1});cap=cap[0].match(this.rules.item);next=false;l=cap.length;i=0;for(;i<l;i++){item=cap[i];space=item.length;item=item.replace(/^ *([*+-]|\d+\.) +/,"");if(~item.indexOf("\n ")){space-=item.length;item=!this.options.pedantic?item.replace(new RegExp("^ {1,"+space+"}","gm"),""):item.replace(/^ {1,4}/gm,"")}if(this.options.smartLists&&i!==l-1){b=block.bullet.exec(cap[i+1])[0];if(bull!==b&&!(bull.length>1&&b.length>1)){src=cap.slice(i+
-1).join("\n")+src;i=l-1}}loose=next||/\n\n(?!\s*$)/.test(item);if(i!==l-1){next=item[item.length-1]==="\n";if(!loose)loose=next}this.tokens.push({type:loose?"loose_item_start":"list_item_start"});this.token(item,false);this.tokens.push({type:"list_item_end"})}this.tokens.push({type:"list_end"});continue}if(cap=this.rules.html.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:this.options.sanitize?"paragraph":"html",pre:cap[1]==="pre"||cap[1]==="script",text:cap[0]});continue}if(top&&
-(cap=this.rules.def.exec(src))){src=src.substring(cap[0].length);this.tokens.links[cap[1].toLowerCase()]={href:cap[2],title:cap[3]};continue}if(top&&(cap=this.rules.table.exec(src))){src=src.substring(cap[0].length);item={type:"table",header:cap[1].replace(/^ *| *\| *$/g,"").split(/ *\| */),align:cap[2].replace(/^ *|\| *$/g,"").split(/ *\| */),cells:cap[3].replace(/(?: *\| *)?\n$/,"").split("\n")};for(i=0;i<item.align.length;i++)if(/^ *-+: *$/.test(item.align[i]))item.align[i]="right";else if(/^ *:-+: *$/.test(item.align[i]))item.align[i]=
-"center";else if(/^ *:-+ *$/.test(item.align[i]))item.align[i]="left";else item.align[i]=null;for(i=0;i<item.cells.length;i++)item.cells[i]=item.cells[i].replace(/^ *\| *| *\| *$/g,"").split(/ *\| */);this.tokens.push(item);continue}if(top&&(cap=this.rules.paragraph.exec(src))){src=src.substring(cap[0].length);this.tokens.push({type:"paragraph",text:cap[1][cap[1].length-1]==="\n"?cap[1].slice(0,-1):cap[1]});continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);this.tokens.push({type:"text",
-text:cap[0]});continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return this.tokens};var inline={escape:/^\\([\\`*{}\[\]()#+\-.!_>])/,autolink:/^<([^ >]+(@|:\/)[^ >]+)>/,url:noop,tag:/^\x3c!--[\s\S]*?--\x3e|^<\/?\w+(?:"[^"]*"|'[^']*'|[^'">])*?>/,link:/^!?\[(inside)\]\(href\)/,reflink:/^!?\[(inside)\]\s*\[([^\]]*)\]/,nolink:/^!?\[((?:\[[^\]]*\]|[^\[\]])*)\]/,strong:/^__([\s\S]+?)__(?!_)|^\*\*([\s\S]+?)\*\*(?!\*)/,em:/^\b_((?:__|[\s\S])+?)_\b|^\*((?:\*\*|[\s\S])+?)\*(?!\*)/,
-code:/^(`+)\s*([\s\S]*?[^`])\s*\1(?!`)/,br:/^ {2,}\n(?!\s*$)/,del:noop,text:/^[\s\S]+?(?=[\\<!\[_*`]| {2,}\n|$)/};inline._inside=/(?:\[[^\]]*\]|[^\]]|\](?=[^\[]*\]))*/;inline._href=/\s*<?([^\s]*?)>?(?:\s+['"]([\s\S]*?)['"])?\s*/;inline.link=replace(inline.link)("inside",inline._inside)("href",inline._href)();inline.reflink=replace(inline.reflink)("inside",inline._inside)();inline.normal=merge({},inline);inline.pedantic=merge({},inline.normal,{strong:/^__(?=\S)([\s\S]*?\S)__(?!_)|^\*\*(?=\S)([\s\S]*?\S)\*\*(?!\*)/,
-em:/^_(?=\S)([\s\S]*?\S)_(?!_)|^\*(?=\S)([\s\S]*?\S)\*(?!\*)/});inline.gfm=merge({},inline.normal,{escape:replace(inline.escape)("])","~|])")(),url:/^(https?:\/\/[^\s<]+[^<.,:;"')\]\s])/,del:/^~~(?=\S)([\s\S]*?\S)~~/,text:replace(inline.text)("]|","~]|")("|","|https?://|")()});inline.breaks=merge({},inline.gfm,{br:replace(inline.br)("{2,}","*")(),text:replace(inline.gfm.text)("{2,}","*")()});function InlineLexer(links,options){this.options=options||marked.defaults;this.links=links;this.rules=inline.normal;
-if(!this.links)throw new Error("Tokens array requires a `links` property.");if(this.options.gfm)if(this.options.breaks)this.rules=inline.breaks;else this.rules=inline.gfm;else if(this.options.pedantic)this.rules=inline.pedantic}InlineLexer.rules=inline;InlineLexer.output=function(src,links,options){var inline=new InlineLexer(links,options);return inline.output(src)};InlineLexer.prototype.output=function(src){var out="",link,text,href,cap;while(src){if(cap=this.rules.escape.exec(src)){src=src.substring(cap[0].length);
-out+=cap[1];continue}if(cap=this.rules.autolink.exec(src)){src=src.substring(cap[0].length);if(cap[2]==="@"){text=cap[1][6]===":"?this.mangle(cap[1].substring(7)):this.mangle(cap[1]);href=this.mangle("mailto:")+text}else{text=escape(cap[1]);href=text}out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.url.exec(src)){src=src.substring(cap[0].length);text=escape(cap[1]);href=text;out+='<a href="'+href+'">'+text+"</a>";continue}if(cap=this.rules.tag.exec(src)){src=src.substring(cap[0].length);
-out+=this.options.sanitize?escape(cap[0]):cap[0];continue}if(cap=this.rules.link.exec(src)){src=src.substring(cap[0].length);out+=this.outputLink(cap,{href:cap[2],title:cap[3]});continue}if((cap=this.rules.reflink.exec(src))||(cap=this.rules.nolink.exec(src))){src=src.substring(cap[0].length);link=(cap[2]||cap[1]).replace(/\s+/g," ");link=this.links[link.toLowerCase()];if(!link||!link.href){out+=cap[0][0];src=cap[0].substring(1)+src;continue}out+=this.outputLink(cap,link);continue}if(cap=this.rules.strong.exec(src)){src=
-src.substring(cap[0].length);out+="<strong>"+this.output(cap[2]||cap[1])+"</strong>";continue}if(cap=this.rules.em.exec(src)){src=src.substring(cap[0].length);out+="<em>"+this.output(cap[2]||cap[1])+"</em>";continue}if(cap=this.rules.code.exec(src)){src=src.substring(cap[0].length);out+="<code>"+escape(cap[2],true)+"</code>";continue}if(cap=this.rules.br.exec(src)){src=src.substring(cap[0].length);out+="<br>";continue}if(cap=this.rules.del.exec(src)){src=src.substring(cap[0].length);out+="<del>"+
-this.output(cap[1])+"</del>";continue}if(cap=this.rules.text.exec(src)){src=src.substring(cap[0].length);out+=escape(cap[0]);continue}if(src)throw new Error("Infinite loop on byte: "+src.charCodeAt(0));}return out};InlineLexer.prototype.outputLink=function(cap,link){if(cap[0][0]!=="!")return'<a href="'+escape(link.href)+'"'+(link.title?' title="'+escape(link.title)+'"':"")+">"+this.output(cap[1])+"</a>";else return'<img src="'+escape(link.href)+'" alt="'+escape(cap[1])+'"'+(link.title?' title="'+
-escape(link.title)+'"':"")+">"};InlineLexer.prototype.smartypants=function(text){if(!this.options.smartypants)return text;return text.replace(/--/g,"\u2014").replace(/'([^']*)'/g,"\u2018$1\u2019").replace(/"([^"]*)"/g,"\u201c$1\u201d").replace(/\.{3}/g,"\u2026")};InlineLexer.prototype.mangle=function(text){var out="",l=text.length,i=0,ch;for(;i<l;i++){ch=text.charCodeAt(i);if(Math.random()>0.5)ch="x"+ch.toString(16);out+="&#"+ch+";"}return out};function Parser(options){this.tokens=[];this.token=null;
-this.options=options||marked.defaults}Parser.parse=function(src,options){var parser=new Parser(options);return parser.parse(src)};Parser.prototype.parse=function(src){this.inline=new InlineLexer(src.links,this.options);this.tokens=src.reverse();var out="";while(this.next())out+=this.tok();return out};Parser.prototype.next=function(){return this.token=this.tokens.pop()};Parser.prototype.peek=function(){return this.tokens[this.tokens.length-1]||0};Parser.prototype.parseText=function(){var body=this.token.text;
-while(this.peek().type==="text")body+="\n"+this.next().text;return this.inline.output(body)};Parser.prototype.tok=function(){switch(this.token.type){case "space":return"";case "hr":return"<hr>\n";case "heading":return"<h"+this.token.depth+">"+this.inline.output(this.token.text)+"</h"+this.token.depth+">\n";case "code":if(this.options.highlight){var code=this.options.highlight(this.token.text,this.token.lang);if(code!=null&&code!==this.token.text){this.token.escaped=true;this.token.text=code}}if(!this.token.escaped)this.token.text=
-escape(this.token.text,true);return"<pre><code"+(this.token.lang?' class="'+this.options.langPrefix+this.token.lang+'"':"")+">"+this.token.text+"</code></pre>\n";case "table":var body="",heading,i,row,cell,j;body+="<thead>\n<tr>\n";for(i=0;i<this.token.header.length;i++){heading=this.inline.output(this.token.header[i]);body+=this.token.align[i]?'<th align="'+this.token.align[i]+'">'+heading+"</th>\n":"<th>"+heading+"</th>\n"}body+="</tr>\n</thead>\n";body+="<tbody>\n";for(i=0;i<this.token.cells.length;i++){row=
-this.token.cells[i];body+="<tr>\n";for(j=0;j<row.length;j++){cell=this.inline.output(row[j]);body+=this.token.align[j]?'<td align="'+this.token.align[j]+'">'+cell+"</td>\n":"<td>"+cell+"</td>\n"}body+="</tr>\n"}body+="</tbody>\n";return"<table>\n"+body+"</table>\n";case "blockquote_start":var body="";while(this.next().type!=="blockquote_end")body+=this.tok();return"<blockquote>\n"+body+"</blockquote>\n";case "list_start":var type=this.token.ordered?"ol":"ul",body="";while(this.next().type!=="list_end")body+=
-this.tok();return"<"+type+">\n"+body+"</"+type+">\n";case "list_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.token.type==="text"?this.parseText():this.tok();return"<li>"+body+"</li>\n";case "loose_item_start":var body="";while(this.next().type!=="list_item_end")body+=this.tok();return"<li>"+body+"</li>\n";case "html":return!this.token.pre&&!this.options.pedantic?this.inline.output(this.token.text):this.token.text;case "paragraph":return"<p>"+this.inline.output(this.token.text)+
-"</p>\n";case "text":return"<p>"+this.parseText()+"</p>\n"}};function escape(html,encode){return html.replace(!encode?/&(?!#?\w+;)/g:/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#39;")}function replace(regex,opt){regex=regex.source;opt=opt||"";return function self(name,val){if(!name)return new RegExp(regex,opt);val=val.source||val;val=val.replace(/(^|[^\[])\^/g,"$1");regex=regex.replace(name,val);return self}}function noop(){}noop.exec=noop;function merge(obj){var i=
-1,target,key;for(;i<arguments.length;i++){target=arguments[i];for(key in target)if(Object.prototype.hasOwnProperty.call(target,key))obj[key]=target[key]}return obj}function marked(src,opt,callback){if(callback||typeof opt==="function"){if(!callback){callback=opt;opt=null}if(opt)opt=merge({},marked.defaults,opt);var tokens=Lexer.lex(tokens,opt),highlight=opt.highlight,pending=0,l=tokens.length,i=0;if(!highlight||highlight.length<3)return callback(null,Parser.parse(tokens,opt));var done=function(){delete opt.highlight;
-var out=Parser.parse(tokens,opt);opt.highlight=highlight;return callback(null,out)};for(;i<l;i++)(function(token){if(token.type!=="code")return;pending++;return highlight(token.text,token.lang,function(err,code){if(code==null||code===token.text)return--pending||done();token.text=code;token.escaped=true;--pending||done()})})(tokens[i]);return}try{if(opt)opt=merge({},marked.defaults,opt);return Parser.parse(Lexer.lex(src,opt),opt)}catch(e){e.message+="\nPlease report this to https://github.com/chjj/marked.";
-if((opt||marked.defaults).silent)return"<p>An error occured:</p><pre>"+escape(e.message+"",true)+"</pre>";throw e;}}marked.options=marked.setOptions=function(opt){merge(marked.defaults,opt);return marked};marked.defaults={gfm:true,tables:true,breaks:false,pedantic:false,sanitize:false,smartLists:false,silent:false,highlight:null,langPrefix:""};marked.Parser=Parser;marked.parser=Parser.parse;marked.Lexer=Lexer;marked.lexer=Lexer.lex;marked.InlineLexer=InlineLexer;marked.inlineLexer=InlineLexer.output;
-marked.parse=marked;if(typeof exports==="object")module.exports=marked;else if(typeof define==="function"&&define.amd)define(function(){return marked});else this.marked=marked}).call(function(){return this||(typeof window!=="undefined"?window:global)}());
diff --git a/docs/slides/plpv14/reveal.js/plugin/math/math.js b/docs/slides/plpv14/reveal.js/plugin/math/math.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/math/math.js
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * A plugin which enables rendering of math equations inside
- * of reveal.js slides. Essentially a thin wrapper for MathJax.
- *
- * @author Hakim El Hattab
- */
-var RevealMath = window.RevealMath || (function(){
-
-	var options = Reveal.getConfig().math || {};
-	options.mathjax = options.mathjax || 'http://cdn.mathjax.org/mathjax/latest/MathJax.js';
-	options.config = options.config || 'TeX-AMS_HTML-full';
-
-	loadScript( options.mathjax + '?config=' + options.config, function() {
-
-		MathJax.Hub.Config({
-			messageStyle: 'none',
-			tex2jax: { inlineMath: [['$','$'],['\\(','\\)']] },
-			skipStartupTypeset: true
-		});
-
-		// Typeset followed by an immediate reveal.js layout since
-		// the typesetting process could affect slide height
-		MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub ] );
-		MathJax.Hub.Queue( Reveal.layout );
-
-		// Reprocess equations in slides when they turn visible
-		Reveal.addEventListener( 'slidechanged', function( event ) {
-
-			MathJax.Hub.Queue( [ 'Typeset', MathJax.Hub, event.currentSlide ] );
-
-		} );
-
-	} );
-
-	function loadScript( url, callback ) {
-
-		var head = document.querySelector( 'head' );
-		var script = document.createElement( 'script' );
-		script.type = 'text/javascript';
-		script.src = url;
-
-		// Wrapper for callback to make sure it only fires once
-		var finish = function() {
-			if( typeof callback === 'function' ) {
-				callback.call();
-				callback = null;
-			}
-		}
-
-		script.onload = finish;
-
-		// IE
-		script.onreadystatechange = function() {
-			if ( this.readyState === 'loaded' ) {
-				finish();
-			}
-		}
-
-		// Normal browsers
-		head.appendChild( script );
-
-	}
-
-})();
diff --git a/docs/slides/plpv14/reveal.js/plugin/multiplex/client.js b/docs/slides/plpv14/reveal.js/plugin/multiplex/client.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/multiplex/client.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
-	var multiplex = Reveal.getConfig().multiplex;
-	var socketId = multiplex.id;
-	var socket = io.connect(multiplex.url);
-
-	socket.on(multiplex.id, function(data) {
-		// ignore data from sockets that aren't ours
-		if (data.socketId !== socketId) { return; }
-		if( window.location.host === 'localhost:1947' ) return;
-
-		Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
-	});
-}());
diff --git a/docs/slides/plpv14/reveal.js/plugin/multiplex/index.js b/docs/slides/plpv14/reveal.js/plugin/multiplex/index.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/multiplex/index.js
+++ /dev/null
@@ -1,56 +0,0 @@
-var express		= require('express');
-var fs			= require('fs');
-var io			= require('socket.io');
-var crypto		= require('crypto');
-
-var app			= express.createServer();
-var staticDir	= express.static;
-
-io				= io.listen(app);
-
-var opts = {
-	port: 1948,
-	baseDir : __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		if (typeof slideData.secret == 'undefined' || slideData.secret == null || slideData.secret === '') return;
-		if (createHash(slideData.secret) === slideData.socketId) {
-			slideData.secret = null;
-			socket.broadcast.emit(slideData.socketId, slideData);
-		};
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/token", function(req,res) {
-	var ts = new Date().getTime();
-	var rand = Math.floor(Math.random()*9999999);
-	var secret = ts.toString() + rand.toString();
-	res.send({secret: secret, socketId: createHash(secret)});
-});
-
-var createHash = function(secret) {
-	var cipher = crypto.createCipher('blowfish', secret);
-	return(cipher.final('hex'));
-};
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-console.log( brown + "reveal.js:" + reset + " Multiplex running on port " + green + opts.port + reset );
diff --git a/docs/slides/plpv14/reveal.js/plugin/multiplex/master.js b/docs/slides/plpv14/reveal.js/plugin/multiplex/master.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/multiplex/master.js
+++ /dev/null
@@ -1,51 +0,0 @@
-(function() {
-	// Don't emit events from inside of notes windows
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var multiplex = Reveal.getConfig().multiplex;
-
-	var socket = io.connect(multiplex.url);
-
-	var notify = function( slideElement, indexh, indexv, origin ) {
-		if( typeof origin === 'undefined' && origin !== 'remote' ) {
-			var nextindexh;
-			var nextindexv;
-
-			var fragmentindex = Reveal.getIndices().f;
-			if (typeof fragmentindex == 'undefined') {
-				fragmentindex = 0;
-			}
-
-			if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-				nextindexh = indexh;
-				nextindexv = indexv + 1;
-			} else {
-				nextindexh = indexh + 1;
-				nextindexv = 0;
-			}
-
-			var slideData = {
-				indexh : indexh,
-				indexv : indexv,
-				indexf : fragmentindex,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				secret: multiplex.secret,
-				socketId : multiplex.id
-			};
-
-			socket.emit('slidechanged', slideData);
-		}
-	}
-
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		notify( event.currentSlide, event.indexh, event.indexv, event.origin );
-	} );
-
-	var fragmentNotify = function( event ) {
-		notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
-	};
-
-	Reveal.addEventListener( 'fragmentshown', fragmentNotify );
-	Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
-}());
diff --git a/docs/slides/plpv14/reveal.js/plugin/notes-server/client.js b/docs/slides/plpv14/reveal.js/plugin/notes-server/client.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/notes-server/client.js
+++ /dev/null
@@ -1,57 +0,0 @@
-(function() {
-	// don't emit events from inside the previews themselves
-	if ( window.location.search.match( /receiver/gi ) ) { return; }
-
-	var socket = io.connect(window.location.origin);
-	var socketId = Math.random().toString().slice(2);
-	
-	console.log('View slide notes at ' + window.location.origin + '/notes/' + socketId);
-	window.open(window.location.origin + '/notes/' + socketId, 'notes-' + socketId);
-
-	// Fires when a fragment is shown
-	Reveal.addEventListener( 'fragmentshown', function( event ) {
-		var fragmentData = {
-			fragment : 'next',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when a fragment is hidden
-	Reveal.addEventListener( 'fragmenthidden', function( event ) {
-		var fragmentData = {
-			fragment : 'previous',
-			socketId : socketId
-		};
-		socket.emit('fragmentchanged', fragmentData);
-	} );
-
-	// Fires when slide is changed
-	Reveal.addEventListener( 'slidechanged', function( event ) {
-		var nextindexh;
-		var nextindexv;
-		var slideElement = event.currentSlide;
-
-		if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
-			nextindexh = event.indexh;
-			nextindexv = event.indexv + 1;
-		} else {
-			nextindexh = event.indexh + 1;
-			nextindexv = 0;
-		}
-
-		var notes = slideElement.querySelector('aside.notes');
-		var slideData = {
-			notes : notes ? notes.innerHTML : '',
-			indexh : event.indexh,
-			indexv : event.indexv,
-			nextindexh : nextindexh,
-			nextindexv : nextindexv,
-			socketId : socketId,
-			markdown : notes ? typeof notes.getAttribute('data-markdown') === 'string' : false
-
-		};
-
-		socket.emit('slidechanged', slideData);
-	} );
-}());
diff --git a/docs/slides/plpv14/reveal.js/plugin/notes-server/index.js b/docs/slides/plpv14/reveal.js/plugin/notes-server/index.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/notes-server/index.js
+++ /dev/null
@@ -1,59 +0,0 @@
-var express   = require('express');
-var fs        = require('fs');
-var io        = require('socket.io');
-var _         = require('underscore');
-var Mustache  = require('mustache');
-
-var app       = express.createServer();
-var staticDir = express.static;
-
-io            = io.listen(app);
-
-var opts = {
-	port :      1947,
-	baseDir :   __dirname + '/../../'
-};
-
-io.sockets.on('connection', function(socket) {
-	socket.on('slidechanged', function(slideData) {
-		socket.broadcast.emit('slidedata', slideData);
-	});
-	socket.on('fragmentchanged', function(fragmentData) {
-		socket.broadcast.emit('fragmentdata', fragmentData);
-	});
-});
-
-app.configure(function() {
-	[ 'css', 'js', 'images', 'plugin', 'lib' ].forEach(function(dir) {
-		app.use('/' + dir, staticDir(opts.baseDir + dir));
-	});
-});
-
-app.get("/", function(req, res) {
-	res.writeHead(200, {'Content-Type': 'text/html'});
-	fs.createReadStream(opts.baseDir + '/index.html').pipe(res);
-});
-
-app.get("/notes/:socketId", function(req, res) {
-
-	fs.readFile(opts.baseDir + 'plugin/notes-server/notes.html', function(err, data) {
-		res.send(Mustache.to_html(data.toString(), {
-			socketId : req.params.socketId
-		}));
-	});
-	// fs.createReadStream(opts.baseDir + 'notes-server/notes.html').pipe(res);
-});
-
-// Actually listen
-app.listen(opts.port || null);
-
-var brown = '\033[33m',
-	green = '\033[32m',
-	reset = '\033[0m';
-
-var slidesLocation = "http://localhost" + ( opts.port ? ( ':' + opts.port ) : '' );
-
-console.log( brown + "reveal.js - Speaker Notes" + reset );
-console.log( "1. Open the slides at " + green + slidesLocation + reset );
-console.log( "2. Click on the link your JS console to go to the notes page" );
-console.log( "3. Advance through your slides and your notes will advance automatically" );
diff --git a/docs/slides/plpv14/reveal.js/plugin/notes/notes.js b/docs/slides/plpv14/reveal.js/plugin/notes/notes.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/notes/notes.js
+++ /dev/null
@@ -1,78 +0,0 @@
-/**
- * Handles opening of and synchronization with the reveal.js
- * notes window.
- */
-var RevealNotes = (function() {
-
-	function openNotes() {
-		var jsFileLocation = document.querySelector('script[src$="notes.js"]').src;  // this js file path
-		jsFileLocation = jsFileLocation.replace(/notes\.js(\?.*)?$/, '');   // the js folder path
-		var notesPopup = window.open( jsFileLocation + 'notes.html', 'reveal.js - Notes', 'width=1120,height=850' );
-
-		// Fires when slide is changed
-		Reveal.addEventListener( 'slidechanged', post );
-
-		// Fires when a fragment is shown
-		Reveal.addEventListener( 'fragmentshown', post );
-
-		// Fires when a fragment is hidden
-		Reveal.addEventListener( 'fragmenthidden', post );
-
-		/**
-		 * Posts the current slide data to the notes window
-		 */
-		function post() {
-			var slideElement = Reveal.getCurrentSlide(),
-				slideIndices = Reveal.getIndices(),
-				messageData;
-
-			var notes = slideElement.querySelector( 'aside.notes' ),
-				nextindexh,
-				nextindexv;
-
-			if( slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION' ) {
-				nextindexh = slideIndices.h;
-				nextindexv = slideIndices.v + 1;
-			} else {
-				nextindexh = slideIndices.h + 1;
-				nextindexv = 0;
-			}
-
-			messageData = {
-				notes : notes ? notes.innerHTML : '',
-				indexh : slideIndices.h,
-				indexv : slideIndices.v,
-				indexf : slideIndices.f,
-				nextindexh : nextindexh,
-				nextindexv : nextindexv,
-				markdown : notes ? typeof notes.getAttribute( 'data-markdown' ) === 'string' : false
-			};
-
-			notesPopup.postMessage( JSON.stringify( messageData ), '*' );
-		}
-
-		// Navigate to the current slide when the notes are loaded
-		notesPopup.addEventListener( 'load', function( event ) {
-			post();
-		}, false );
-	}
-
-	// If the there's a 'notes' query set, open directly
-	if( window.location.search.match( /(\?|\&)notes/gi ) !== null ) {
-		openNotes();
-	}
-
-	// Open the notes when the 's' key is hit
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openNotes();
-		}
-	}, false );
-
-	return { open: openNotes };
-})();
diff --git a/docs/slides/plpv14/reveal.js/plugin/postmessage/postmessage.js b/docs/slides/plpv14/reveal.js/plugin/postmessage/postmessage.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/postmessage/postmessage.js
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-
-	simple postmessage plugin
-
-	Useful when a reveal slideshow is inside an iframe.
-	It allows to call reveal methods from outside.
-
-	Example:
-		 var reveal =  window.frames[0];
-
-		 // Reveal.prev(); 
-		 reveal.postMessage(JSON.stringify({method: 'prev', args: []}), '*');
-		 // Reveal.next(); 
-		 reveal.postMessage(JSON.stringify({method: 'next', args: []}), '*');
-		 // Reveal.slide(2, 2); 
-		 reveal.postMessage(JSON.stringify({method: 'slide', args: [2,2]}), '*');
-
-	Add to the slideshow:
-
-		dependencies: [
-			...
-			{ src: 'plugin/postmessage/postmessage.js', async: true, condition: function() { return !!document.body.classList; } }
-		]
-
-*/
-
-(function (){
-
-	window.addEventListener( "message", function ( event ) {
-		var data = JSON.parse( event.data ),
-				method = data.method,
-				args = data.args;
-
-		if( typeof Reveal[method] === 'function' ) {
-			Reveal[method].apply( Reveal, data.args );
-		}
-	}, false);
-
-}());
-
-
-
diff --git a/docs/slides/plpv14/reveal.js/plugin/print-pdf/print-pdf.js b/docs/slides/plpv14/reveal.js/plugin/print-pdf/print-pdf.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/print-pdf/print-pdf.js
+++ /dev/null
@@ -1,44 +0,0 @@
-/**
- * phantomjs script for printing presentations to PDF.
- *
- * Example:
- * phantomjs print-pdf.js "http://lab.hakim.se/reveal-js?print-pdf" reveal-demo.pdf
- *
- * By Manuel Bieh (https://github.com/manuelbieh)
- */
-
-// html2pdf.js
-var page = new WebPage();
-var system = require( 'system' );
-
-page.viewportSize  = {
-	width: 1024,
-	height: 768
-};
-
-page.paperSize = {
-	format: 'letter',
-	orientation: 'landscape',
-	margin: {
-		left: '0',
-		right: '0',
-		top: '0',
-		bottom: '0'
-	}
-};
-
-var revealFile = system.args[1] || 'index.html?print-pdf';
-var slideFile = system.args[2] || 'slides.pdf';
-
-if( slideFile.match( /\.pdf$/gi ) === null ) {
-	slideFile += '.pdf';
-}
-
-console.log( 'Printing PDF...' );
-
-page.open( revealFile, function( status ) {
-	console.log( 'Printed succesfully' );
-	page.render( slideFile );
-	phantom.exit();
-} );
-
diff --git a/docs/slides/plpv14/reveal.js/plugin/remotes/remotes.js b/docs/slides/plpv14/reveal.js/plugin/remotes/remotes.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/remotes/remotes.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/**
- * Touch-based remote controller for your presentation courtesy 
- * of the folks at http://remotes.io
- */
-
-(function(window){
-
-    /**
-     * Detects if we are dealing with a touch enabled device (with some false positives)
-     * Borrowed from modernizr: https://github.com/Modernizr/Modernizr/blob/master/feature-detects/touch.js   
-     */
-    var hasTouch  = (function(){
-        return ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;
-    })();
-
-    /**
-     * Detects if notes are enable and the current page is opened inside an /iframe
-     * this prevents loading Remotes.io several times
-     */
-    var isNotesAndIframe = (function(){
-        return window.RevealNotes && !(self == top);
-    })();
-
-    if(!hasTouch && !isNotesAndIframe){
-        head.ready( 'remotes.ne.min.js', function() {
-            new Remotes("preview")
-                .on("swipe-left", function(e){ Reveal.right(); })
-                .on("swipe-right", function(e){ Reveal.left(); })
-                .on("swipe-up", function(e){ Reveal.down(); })
-                .on("swipe-down", function(e){ Reveal.up(); })
-                .on("tap", function(e){ Reveal.next(); })
-                .on("zoom-out", function(e){ Reveal.toggleOverview(true); })
-                .on("zoom-in", function(e){ Reveal.toggleOverview(false); })
-            ;
-        } );
-
-        head.js('https://hakim-static.s3.amazonaws.com/reveal-js/remotes.ne.min.js');
-    }
-})(window);
diff --git a/docs/slides/plpv14/reveal.js/plugin/search/search.js b/docs/slides/plpv14/reveal.js/plugin/search/search.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/search/search.js
+++ /dev/null
@@ -1,196 +0,0 @@
-/*
- * Handles finding a text string anywhere in the slides and showing the next occurrence to the user
- * by navigatating to that slide and highlighting it.
- *
- * By Jon Snyder <snyder.jon@gmail.com>, February 2013
- */
-
-var RevealSearch = (function() {
-
-	var matchedSlides;
-	var currentMatchedIndex;
-	var searchboxDirty;
-	var myHilitor;
-
-// Original JavaScript code by Chirp Internet: www.chirp.com.au
-// Please acknowledge use of this code by including this header.
-// 2/2013 jon: modified regex to display any match, not restricted to word boundaries.
-
-function Hilitor(id, tag)
-{
-
-  var targetNode = document.getElementById(id) || document.body;
-  var hiliteTag = tag || "EM";
-  var skipTags = new RegExp("^(?:" + hiliteTag + "|SCRIPT|FORM|SPAN)$");
-  var colors = ["#ff6", "#a0ffff", "#9f9", "#f99", "#f6f"];
-  var wordColor = [];
-  var colorIdx = 0;
-  var matchRegex = "";
-  var matchingSlides = [];
-
-  this.setRegex = function(input)
-  {
-    input = input.replace(/^[^\w]+|[^\w]+$/g, "").replace(/[^\w'-]+/g, "|");
-    matchRegex = new RegExp("(" + input + ")","i");
-  }
-
-  this.getRegex = function()
-  {
-    return matchRegex.toString().replace(/^\/\\b\(|\)\\b\/i$/g, "").replace(/\|/g, " ");
-  }
-
-  // recursively apply word highlighting
-  this.hiliteWords = function(node)
-  {
-    if(node == undefined || !node) return;
-    if(!matchRegex) return;
-    if(skipTags.test(node.nodeName)) return;
-
-    if(node.hasChildNodes()) {
-      for(var i=0; i < node.childNodes.length; i++)
-        this.hiliteWords(node.childNodes[i]);
-    }
-    if(node.nodeType == 3) { // NODE_TEXT
-      if((nv = node.nodeValue) && (regs = matchRegex.exec(nv))) {
-      	//find the slide's section element and save it in our list of matching slides
-      	var secnode = node.parentNode;
-      	while (secnode.nodeName != 'SECTION') {
-      		secnode = secnode.parentNode;
-      	}
-      	
-      	var slideIndex = Reveal.getIndices(secnode);
-      	var slidelen = matchingSlides.length;
-      	var alreadyAdded = false;
-      	for (var i=0; i < slidelen; i++) {
-      		if ( (matchingSlides[i].h === slideIndex.h) && (matchingSlides[i].v === slideIndex.v) ) {
-      			alreadyAdded = true;
-      		}
-      	}
-      	if (! alreadyAdded) {
-      		matchingSlides.push(slideIndex);
-      	}
-      	
-        if(!wordColor[regs[0].toLowerCase()]) {
-          wordColor[regs[0].toLowerCase()] = colors[colorIdx++ % colors.length];
-        }
-
-        var match = document.createElement(hiliteTag);
-        match.appendChild(document.createTextNode(regs[0]));
-        match.style.backgroundColor = wordColor[regs[0].toLowerCase()];
-        match.style.fontStyle = "inherit";
-        match.style.color = "#000";
-
-        var after = node.splitText(regs.index);
-        after.nodeValue = after.nodeValue.substring(regs[0].length);
-        node.parentNode.insertBefore(match, after);
-      }
-    }
-  };
-
-  // remove highlighting
-  this.remove = function()
-  {
-    var arr = document.getElementsByTagName(hiliteTag);
-    while(arr.length && (el = arr[0])) {
-      el.parentNode.replaceChild(el.firstChild, el);
-    }
-  };
-
-  // start highlighting at target node
-  this.apply = function(input)
-  {
-    if(input == undefined || !input) return;
-    this.remove();
-    this.setRegex(input);
-    this.hiliteWords(targetNode);
-    return matchingSlides;
-  };
-
-}
-
-	function openSearch() {
-		//ensure the search term input dialog is visible and has focus:
-		var inputbox = document.getElementById("searchinput");
-		inputbox.style.display = "inline";
-		inputbox.focus();
-		inputbox.select();
-	}
-
-	function toggleSearch() {
-		var inputbox = document.getElementById("searchinput");
-		if (inputbox.style.display !== "inline") {
-			openSearch();
-		}
-		else {
-			inputbox.style.display = "none";
-			myHilitor.remove();
-		}
-	}
-
-	function doSearch() {
-		//if there's been a change in the search term, perform a new search:
-		if (searchboxDirty) {
-			var searchstring = document.getElementById("searchinput").value;
-
-			//find the keyword amongst the slides
-			myHilitor = new Hilitor("slidecontent");
-			matchedSlides = myHilitor.apply(searchstring);
-			currentMatchedIndex = 0;
-		}
-
-		//navigate to the next slide that has the keyword, wrapping to the first if necessary
-		if (matchedSlides.length && (matchedSlides.length <= currentMatchedIndex)) {
-			currentMatchedIndex = 0;
-		}
-		if (matchedSlides.length > currentMatchedIndex) {
-			Reveal.slide(matchedSlides[currentMatchedIndex].h, matchedSlides[currentMatchedIndex].v);
-			currentMatchedIndex++;
-		}
-	}
-
-	var dom = {};
-	dom.wrapper = document.querySelector( '.reveal' );
-
-	if( !dom.wrapper.querySelector( '.searchbox' ) ) {
-			var searchElement = document.createElement( 'div' );
-			searchElement.id = "searchinputdiv";
-			searchElement.classList.add( 'searchdiv' );
-      searchElement.style.position = 'absolute';
-      searchElement.style.top = '10px';
-      searchElement.style.left = '10px';
-      //embedded base64 search icon Designed by Sketchdock - http://www.sketchdock.com/:
-			searchElement.innerHTML = '<span><input type="search" id="searchinput" class="searchinput" style="vertical-align: top;"/><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJiSURBVHjatFZNaxNBGH5md+Mmu92NVdKDRipSAyqCghgQD4L4cRe86UUtAQ+eFCxoa4/25EXBFi8eBE+eRPoDhB6KgiiixdAPCEkx2pjvTXadd9yNsflwuyUDD/O+u8PzzDPvzOwyx3EwyCZhwG3gAkp7MnpjgbopjsltcD4gjuXZZKeAR348MYLYTm3LzOs/y3j3JTfZxgXWXmTuwPHIc4VmoOmv5IrI53+AO2DdHLjkDWQ3GoEEVFXtXQOvkSnPWcyUceviLhwbDYv8/XIVj97kse7TodLvZXxYxrPUHkQ1ufXs3FEdybEIxucySOesoNvUgWU1cP3MkCBfTFdw9fGaAMVmRELq7LBw2Q3/FaAxxWIRpw+ZIr/7IouPqzUBiqmdHAv7EuhRAwf1er2Vy4x1jW3b2d5Jfvu5IPp7l2LYbcgCFFNb+FoJ7oBqEAqFMPNqFcmEgVMJDfMT+1tvN0pNjERlMS6QA5pFOKxiKVPFhakPeL3It+WGJUDxt2wFR+JhzI7v5ctkd8DXOZAkCYYxhO+lKm4+Xfqz/rIixBuNBl7eOYzkQQNzqX249mRl6zUgEcYkaJrGhUwBinVdh6IouPzwE6/DL5w4oLkH8y981aDf+uq6hlKpJESiUdNfDZi7/ehG9K6KfiA3pml0PLcsq+cSMTj2NL9ukc4UOmz7AZ3+crkC4mHujFvXNaMFB3bEr8xPS6p5O+jXxq4VZtaen7/PwzrntjcLUE0iHPS1Ud1cdiEJl/8WivZk0wXd7zWOMkeF8s0CcAmkNrC2nvXZDbbbN73ccYnZoH9bfgswAFzAe9/h3dbKAAAAAElFTkSuQmCC" id="searchbutton" class="searchicon" style="vertical-align: top; margin-top: -1px;"/></span>';
-			dom.wrapper.appendChild( searchElement );
-	}
-
-	document.getElementById("searchbutton").addEventListener( 'click', function(event) {
-		doSearch();
-	}, false );
-
-	document.getElementById("searchinput").addEventListener( 'keyup', function( event ) {
-		switch (event.keyCode) {
-			case 13:
-				event.preventDefault();
-				doSearch();
-				searchboxDirty = false;
-				break;
-			default:
-				searchboxDirty = true;
-		}
-	}, false );
-
-	// Open the search when the 's' key is hit (yes, this conflicts with the notes plugin, disabling for now)
-	/*
-	document.addEventListener( 'keydown', function( event ) {
-		// Disregard the event if the target is editable or a
-		// modifier is present
-		if ( document.querySelector( ':focus' ) !== null || event.shiftKey || event.altKey || event.ctrlKey || event.metaKey ) return;
-
-		if( event.keyCode === 83 ) {
-			event.preventDefault();
-			openSearch();
-		}
-	}, false );
-*/
-	return { open: openSearch };
-})();
diff --git a/docs/slides/plpv14/reveal.js/plugin/zoom-js/zoom.js b/docs/slides/plpv14/reveal.js/plugin/zoom-js/zoom.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/plugin/zoom-js/zoom.js
+++ /dev/null
@@ -1,258 +0,0 @@
-// Custom reveal.js integration
-(function(){
-	var isEnabled = true;
-
-	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
-		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
-
-		if( event[ modifier ] && isEnabled ) {
-			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
-		}
-	} );
-
-	Reveal.addEventListener( 'overviewshown', function() { isEnabled = false; } );
-	Reveal.addEventListener( 'overviewhidden', function() { isEnabled = true; } );
-})();
-
-/*!
- * zoom.js 0.2 (modified version for use with reveal.js)
- * http://lab.hakim.se/zoom-js
- * MIT licensed
- *
- * Copyright (C) 2011-2012 Hakim El Hattab, http://hakim.se
- */
-var zoom = (function(){
-
-	// The current zoom level (scale)
-	var level = 1;
-
-	// The current mouse position, used for panning
-	var mouseX = 0,
-		mouseY = 0;
-
-	// Timeout before pan is activated
-	var panEngageTimeout = -1,
-		panUpdateInterval = -1;
-
-	var currentOptions = null;
-
-	// Check for transform support so that we can fallback otherwise
-	var supportsTransforms = 	'WebkitTransform' in document.body.style ||
-								'MozTransform' in document.body.style ||
-								'msTransform' in document.body.style ||
-								'OTransform' in document.body.style ||
-								'transform' in document.body.style;
-
-	if( supportsTransforms ) {
-		// The easing that will be applied when we zoom in/out
-		document.body.style.transition = 'transform 0.8s ease';
-		document.body.style.OTransition = '-o-transform 0.8s ease';
-		document.body.style.msTransition = '-ms-transform 0.8s ease';
-		document.body.style.MozTransition = '-moz-transform 0.8s ease';
-		document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
-	}
-
-	// Zoom out if the user hits escape
-	document.addEventListener( 'keyup', function( event ) {
-		if( level !== 1 && event.keyCode === 27 ) {
-			zoom.out();
-		}
-	}, false );
-
-	// Monitor mouse movement for panning
-	document.addEventListener( 'mousemove', function( event ) {
-		if( level !== 1 ) {
-			mouseX = event.clientX;
-			mouseY = event.clientY;
-		}
-	}, false );
-
-	/**
-	 * Applies the CSS required to zoom in, prioritizes use of CSS3
-	 * transforms but falls back on zoom for IE.
-	 *
-	 * @param {Number} pageOffsetX
-	 * @param {Number} pageOffsetY
-	 * @param {Number} elementOffsetX
-	 * @param {Number} elementOffsetY
-	 * @param {Number} scale
-	 */
-	function magnify( pageOffsetX, pageOffsetY, elementOffsetX, elementOffsetY, scale ) {
-
-		if( supportsTransforms ) {
-			var origin = pageOffsetX +'px '+ pageOffsetY +'px',
-				transform = 'translate('+ -elementOffsetX +'px,'+ -elementOffsetY +'px) scale('+ scale +')';
-
-			document.body.style.transformOrigin = origin;
-			document.body.style.OTransformOrigin = origin;
-			document.body.style.msTransformOrigin = origin;
-			document.body.style.MozTransformOrigin = origin;
-			document.body.style.WebkitTransformOrigin = origin;
-
-			document.body.style.transform = transform;
-			document.body.style.OTransform = transform;
-			document.body.style.msTransform = transform;
-			document.body.style.MozTransform = transform;
-			document.body.style.WebkitTransform = transform;
-		}
-		else {
-			// Reset all values
-			if( scale === 1 ) {
-				document.body.style.position = '';
-				document.body.style.left = '';
-				document.body.style.top = '';
-				document.body.style.width = '';
-				document.body.style.height = '';
-				document.body.style.zoom = '';
-			}
-			// Apply scale
-			else {
-				document.body.style.position = 'relative';
-				document.body.style.left = ( - ( pageOffsetX + elementOffsetX ) / scale ) + 'px';
-				document.body.style.top = ( - ( pageOffsetY + elementOffsetY ) / scale ) + 'px';
-				document.body.style.width = ( scale * 100 ) + '%';
-				document.body.style.height = ( scale * 100 ) + '%';
-				document.body.style.zoom = scale;
-			}
-		}
-
-		level = scale;
-
-		if( level !== 1 && document.documentElement.classList ) {
-			document.documentElement.classList.add( 'zoomed' );
-		}
-		else {
-			document.documentElement.classList.remove( 'zoomed' );
-		}
-	}
-
-	/**
-	 * Pan the document when the mosue cursor approaches the edges
-	 * of the window.
-	 */
-	function pan() {
-		var range = 0.12,
-			rangeX = window.innerWidth * range,
-			rangeY = window.innerHeight * range,
-			scrollOffset = getScrollOffset();
-
-		// Up
-		if( mouseY < rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y - ( 1 - ( mouseY / rangeY ) ) * ( 14 / level ) );
-		}
-		// Down
-		else if( mouseY > window.innerHeight - rangeY ) {
-			window.scroll( scrollOffset.x, scrollOffset.y + ( 1 - ( window.innerHeight - mouseY ) / rangeY ) * ( 14 / level ) );
-		}
-
-		// Left
-		if( mouseX < rangeX ) {
-			window.scroll( scrollOffset.x - ( 1 - ( mouseX / rangeX ) ) * ( 14 / level ), scrollOffset.y );
-		}
-		// Right
-		else if( mouseX > window.innerWidth - rangeX ) {
-			window.scroll( scrollOffset.x + ( 1 - ( window.innerWidth - mouseX ) / rangeX ) * ( 14 / level ), scrollOffset.y );
-		}
-	}
-
-	function getScrollOffset() {
-		return {
-			x: window.scrollX !== undefined ? window.scrollX : window.pageXOffset,
-			y: window.scrollY !== undefined ? window.scrollY : window.pageXYffset
-		}
-	}
-
-	return {
-		/**
-		 * Zooms in on either a rectangle or HTML element.
-		 *
-		 * @param {Object} options
-		 *   - element: HTML element to zoom in on
-		 *   OR
-		 *   - x/y: coordinates in non-transformed space to zoom in on
-		 *   - width/height: the portion of the screen to zoom in on
-		 *   - scale: can be used instead of width/height to explicitly set scale
-		 */
-		to: function( options ) {
-			// Due to an implementation limitation we can't zoom in
-			// to another element without zooming out first
-			if( level !== 1 ) {
-				zoom.out();
-			}
-			else {
-				options.x = options.x || 0;
-				options.y = options.y || 0;
-
-				// If an element is set, that takes precedence
-				if( !!options.element ) {
-					// Space around the zoomed in element to leave on screen
-					var padding = 20;
-
-					options.width = options.element.getBoundingClientRect().width + ( padding * 2 );
-					options.height = options.element.getBoundingClientRect().height + ( padding * 2 );
-					options.x = options.element.getBoundingClientRect().left - padding;
-					options.y = options.element.getBoundingClientRect().top - padding;
-				}
-
-				// If width/height values are set, calculate scale from those values
-				if( options.width !== undefined && options.height !== undefined ) {
-					options.scale = Math.max( Math.min( window.innerWidth / options.width, window.innerHeight / options.height ), 1 );
-				}
-
-				if( options.scale > 1 ) {
-					options.x *= options.scale;
-					options.y *= options.scale;
-
-					var scrollOffset = getScrollOffset();
-
-					if( options.element ) {
-						scrollOffset.x -= ( window.innerWidth - ( options.width * options.scale ) ) / 2;
-					}
-
-					magnify( scrollOffset.x, scrollOffset.y, options.x, options.y, options.scale );
-
-					if( options.pan !== false ) {
-
-						// Wait with engaging panning as it may conflict with the
-						// zoom transition
-						panEngageTimeout = setTimeout( function() {
-							panUpdateInterval = setInterval( pan, 1000 / 60 );
-						}, 800 );
-
-					}
-				}
-
-				currentOptions = options;
-			}
-		},
-
-		/**
-		 * Resets the document zoom state to its default.
-		 */
-		out: function() {
-			clearTimeout( panEngageTimeout );
-			clearInterval( panUpdateInterval );
-
-			var scrollOffset = getScrollOffset();
-
-			if( currentOptions && currentOptions.element ) {
-				scrollOffset.x -= ( window.innerWidth - ( currentOptions.width * currentOptions.scale ) ) / 2;
-			}
-
-			magnify( scrollOffset.x, scrollOffset.y, 0, 0, 1 );
-
-			level = 1;
-		},
-
-		// Alias
-		magnify: function( options ) { this.to( options ) },
-		reset: function() { this.out() },
-
-		zoomLevel: function() {
-			return level;
-		}
-	}
-
-})();
-
diff --git a/docs/slides/plpv14/reveal.js/test/examples/assets/image1.png b/docs/slides/plpv14/reveal.js/test/examples/assets/image1.png
deleted file mode 100644
Binary files a/docs/slides/plpv14/reveal.js/test/examples/assets/image1.png and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/test/examples/assets/image2.png b/docs/slides/plpv14/reveal.js/test/examples/assets/image2.png
deleted file mode 100644
Binary files a/docs/slides/plpv14/reveal.js/test/examples/assets/image2.png and /dev/null differ
diff --git a/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.css b/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.css
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.css
+++ /dev/null
@@ -1,244 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2012 jQuery Foundation and other contributors
- * Released under the MIT license.
- * http://jquery.org/license
- */
-
-/** Font Family and Sizes */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult {
-	font-family: "Helvetica Neue Light", "HelveticaNeue-Light", "Helvetica Neue", Calibri, Helvetica, Arial, sans-serif;
-}
-
-#qunit-testrunner-toolbar, #qunit-userAgent, #qunit-testresult, #qunit-tests li { font-size: small; }
-#qunit-tests { font-size: smaller; }
-
-
-/** Resets */
-
-#qunit-tests, #qunit-header, #qunit-banner, #qunit-userAgent, #qunit-testresult, #qunit-modulefilter {
-	margin: 0;
-	padding: 0;
-}
-
-
-/** Header */
-
-#qunit-header {
-	padding: 0.5em 0 0.5em 1em;
-
-	color: #8699a4;
-	background-color: #0d3349;
-
-	font-size: 1.5em;
-	line-height: 1em;
-	font-weight: normal;
-
-	border-radius: 5px 5px 0 0;
-	-moz-border-radius: 5px 5px 0 0;
-	-webkit-border-top-right-radius: 5px;
-	-webkit-border-top-left-radius: 5px;
-}
-
-#qunit-header a {
-	text-decoration: none;
-	color: #c2ccd1;
-}
-
-#qunit-header a:hover,
-#qunit-header a:focus {
-	color: #fff;
-}
-
-#qunit-testrunner-toolbar label {
-	display: inline-block;
-	padding: 0 .5em 0 .1em;
-}
-
-#qunit-banner {
-	height: 5px;
-}
-
-#qunit-testrunner-toolbar {
-	padding: 0.5em 0 0.5em 2em;
-	color: #5E740B;
-	background-color: #eee;
-	overflow: hidden;
-}
-
-#qunit-userAgent {
-	padding: 0.5em 0 0.5em 2.5em;
-	background-color: #2b81af;
-	color: #fff;
-	text-shadow: rgba(0, 0, 0, 0.5) 2px 2px 1px;
-}
-
-#qunit-modulefilter-container {
-	float: right;
-}
-
-/** Tests: Pass/Fail */
-
-#qunit-tests {
-	list-style-position: inside;
-}
-
-#qunit-tests li {
-	padding: 0.4em 0.5em 0.4em 2.5em;
-	border-bottom: 1px solid #fff;
-	list-style-position: inside;
-}
-
-#qunit-tests.hidepass li.pass, #qunit-tests.hidepass li.running  {
-	display: none;
-}
-
-#qunit-tests li strong {
-	cursor: pointer;
-}
-
-#qunit-tests li a {
-	padding: 0.5em;
-	color: #c2ccd1;
-	text-decoration: none;
-}
-#qunit-tests li a:hover,
-#qunit-tests li a:focus {
-	color: #000;
-}
-
-#qunit-tests li .runtime {
-	float: right;
-	font-size: smaller;
-}
-
-.qunit-assert-list {
-	margin-top: 0.5em;
-	padding: 0.5em;
-
-	background-color: #fff;
-
-	border-radius: 5px;
-	-moz-border-radius: 5px;
-	-webkit-border-radius: 5px;
-}
-
-.qunit-collapsed {
-	display: none;
-}
-
-#qunit-tests table {
-	border-collapse: collapse;
-	margin-top: .2em;
-}
-
-#qunit-tests th {
-	text-align: right;
-	vertical-align: top;
-	padding: 0 .5em 0 0;
-}
-
-#qunit-tests td {
-	vertical-align: top;
-}
-
-#qunit-tests pre {
-	margin: 0;
-	white-space: pre-wrap;
-	word-wrap: break-word;
-}
-
-#qunit-tests del {
-	background-color: #e0f2be;
-	color: #374e0c;
-	text-decoration: none;
-}
-
-#qunit-tests ins {
-	background-color: #ffcaca;
-	color: #500;
-	text-decoration: none;
-}
-
-/*** Test Counts */
-
-#qunit-tests b.counts                       { color: black; }
-#qunit-tests b.passed                       { color: #5E740B; }
-#qunit-tests b.failed                       { color: #710909; }
-
-#qunit-tests li li {
-	padding: 5px;
-	background-color: #fff;
-	border-bottom: none;
-	list-style-position: inside;
-}
-
-/*** Passing Styles */
-
-#qunit-tests li li.pass {
-	color: #3c510c;
-	background-color: #fff;
-	border-left: 10px solid #C6E746;
-}
-
-#qunit-tests .pass                          { color: #528CE0; background-color: #D2E0E6; }
-#qunit-tests .pass .test-name               { color: #366097; }
-
-#qunit-tests .pass .test-actual,
-#qunit-tests .pass .test-expected           { color: #999999; }
-
-#qunit-banner.qunit-pass                    { background-color: #C6E746; }
-
-/*** Failing Styles */
-
-#qunit-tests li li.fail {
-	color: #710909;
-	background-color: #fff;
-	border-left: 10px solid #EE5757;
-	white-space: pre;
-}
-
-#qunit-tests > li:last-child {
-	border-radius: 0 0 5px 5px;
-	-moz-border-radius: 0 0 5px 5px;
-	-webkit-border-bottom-right-radius: 5px;
-	-webkit-border-bottom-left-radius: 5px;
-}
-
-#qunit-tests .fail                          { color: #000000; background-color: #EE5757; }
-#qunit-tests .fail .test-name,
-#qunit-tests .fail .module-name             { color: #000000; }
-
-#qunit-tests .fail .test-actual             { color: #EE5757; }
-#qunit-tests .fail .test-expected           { color: green;   }
-
-#qunit-banner.qunit-fail                    { background-color: #EE5757; }
-
-
-/** Result */
-
-#qunit-testresult {
-	padding: 0.5em 0.5em 0.5em 2.5em;
-
-	color: #2b81af;
-	background-color: #D2E0E6;
-
-	border-bottom: 1px solid white;
-}
-#qunit-testresult .module-name {
-	font-weight: bold;
-}
-
-/** Fixture */
-
-#qunit-fixture {
-	position: absolute;
-	top: -10000px;
-	left: -10000px;
-	width: 1000px;
-	height: 1000px;
-}
diff --git a/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.js b/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/qunit-1.12.0.js
+++ /dev/null
@@ -1,2212 +0,0 @@
-/**
- * QUnit v1.12.0 - A JavaScript Unit Testing Framework
- *
- * http://qunitjs.com
- *
- * Copyright 2013 jQuery Foundation and other contributors
- * Released under the MIT license.
- * https://jquery.org/license/
- */
-
-(function( window ) {
-
-var QUnit,
-	assert,
-	config,
-	onErrorFnPrev,
-	testId = 0,
-	fileName = (sourceFromStacktrace( 0 ) || "" ).replace(/(:\d+)+\)?/, "").replace(/.+\//, ""),
-	toString = Object.prototype.toString,
-	hasOwn = Object.prototype.hasOwnProperty,
-	// Keep a local reference to Date (GH-283)
-	Date = window.Date,
-	setTimeout = window.setTimeout,
-	defined = {
-		setTimeout: typeof window.setTimeout !== "undefined",
-		sessionStorage: (function() {
-			var x = "qunit-test-string";
-			try {
-				sessionStorage.setItem( x, x );
-				sessionStorage.removeItem( x );
-				return true;
-			} catch( e ) {
-				return false;
-			}
-		}())
-	},
-	/**
-	 * Provides a normalized error string, correcting an issue
-	 * with IE 7 (and prior) where Error.prototype.toString is
-	 * not properly implemented
-	 *
-	 * Based on http://es5.github.com/#x15.11.4.4
-	 *
-	 * @param {String|Error} error
-	 * @return {String} error message
-	 */
-	errorString = function( error ) {
-		var name, message,
-			errorString = error.toString();
-		if ( errorString.substring( 0, 7 ) === "[object" ) {
-			name = error.name ? error.name.toString() : "Error";
-			message = error.message ? error.message.toString() : "";
-			if ( name && message ) {
-				return name + ": " + message;
-			} else if ( name ) {
-				return name;
-			} else if ( message ) {
-				return message;
-			} else {
-				return "Error";
-			}
-		} else {
-			return errorString;
-		}
-	},
-	/**
-	 * Makes a clone of an object using only Array or Object as base,
-	 * and copies over the own enumerable properties.
-	 *
-	 * @param {Object} obj
-	 * @return {Object} New object with only the own properties (recursively).
-	 */
-	objectValues = function( obj ) {
-		// Grunt 0.3.x uses an older version of jshint that still has jshint/jshint#392.
-		/*jshint newcap: false */
-		var key, val,
-			vals = QUnit.is( "array", obj ) ? [] : {};
-		for ( key in obj ) {
-			if ( hasOwn.call( obj, key ) ) {
-				val = obj[key];
-				vals[key] = val === Object(val) ? objectValues(val) : val;
-			}
-		}
-		return vals;
-	};
-
-function Test( settings ) {
-	extend( this, settings );
-	this.assertions = [];
-	this.testNumber = ++Test.count;
-}
-
-Test.count = 0;
-
-Test.prototype = {
-	init: function() {
-		var a, b, li,
-			tests = id( "qunit-tests" );
-
-		if ( tests ) {
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml;
-
-			// `a` initialized at top of scope
-			a = document.createElement( "a" );
-			a.innerHTML = "Rerun";
-			a.href = QUnit.url({ testNumber: this.testNumber });
-
-			li = document.createElement( "li" );
-			li.appendChild( b );
-			li.appendChild( a );
-			li.className = "running";
-			li.id = this.id = "qunit-test-output" + testId++;
-
-			tests.appendChild( li );
-		}
-	},
-	setup: function() {
-		if (
-			// Emit moduleStart when we're switching from one module to another
-			this.module !== config.previousModule ||
-				// They could be equal (both undefined) but if the previousModule property doesn't
-				// yet exist it means this is the first test in a suite that isn't wrapped in a
-				// module, in which case we'll just emit a moduleStart event for 'undefined'.
-				// Without this, reporters can get testStart before moduleStart  which is a problem.
-				!hasOwn.call( config, "previousModule" )
-		) {
-			if ( hasOwn.call( config, "previousModule" ) ) {
-				runLoggingCallbacks( "moduleDone", QUnit, {
-					name: config.previousModule,
-					failed: config.moduleStats.bad,
-					passed: config.moduleStats.all - config.moduleStats.bad,
-					total: config.moduleStats.all
-				});
-			}
-			config.previousModule = this.module;
-			config.moduleStats = { all: 0, bad: 0 };
-			runLoggingCallbacks( "moduleStart", QUnit, {
-				name: this.module
-			});
-		}
-
-		config.current = this;
-
-		this.testEnvironment = extend({
-			setup: function() {},
-			teardown: function() {}
-		}, this.moduleTestEnvironment );
-
-		this.started = +new Date();
-		runLoggingCallbacks( "testStart", QUnit, {
-			name: this.testName,
-			module: this.module
-		});
-
-		/*jshint camelcase:false */
-
-
-		/**
-		 * Expose the current test environment.
-		 *
-		 * @deprecated since 1.12.0: Use QUnit.config.current.testEnvironment instead.
-		 */
-		QUnit.current_testEnvironment = this.testEnvironment;
-
-		/*jshint camelcase:true */
-
-		if ( !config.pollution ) {
-			saveGlobal();
-		}
-		if ( config.notrycatch ) {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-			return;
-		}
-		try {
-			this.testEnvironment.setup.call( this.testEnvironment, QUnit.assert );
-		} catch( e ) {
-			QUnit.pushFailure( "Setup failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-		}
-	},
-	run: function() {
-		config.current = this;
-
-		var running = id( "qunit-testresult" );
-
-		if ( running ) {
-			running.innerHTML = "Running: <br/>" + this.nameHtml;
-		}
-
-		if ( this.async ) {
-			QUnit.stop();
-		}
-
-		this.callbackStarted = +new Date();
-
-		if ( config.notrycatch ) {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-			return;
-		}
-
-		try {
-			this.callback.call( this.testEnvironment, QUnit.assert );
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-		} catch( e ) {
-			this.callbackRuntime = +new Date() - this.callbackStarted;
-
-			QUnit.pushFailure( "Died on test #" + (this.assertions.length + 1) + " " + this.stack + ": " + ( e.message || e ), extractStacktrace( e, 0 ) );
-			// else next test will carry the responsibility
-			saveGlobal();
-
-			// Restart the tests if they're blocking
-			if ( config.blocking ) {
-				QUnit.start();
-			}
-		}
-	},
-	teardown: function() {
-		config.current = this;
-		if ( config.notrycatch ) {
-			if ( typeof this.callbackRuntime === "undefined" ) {
-				this.callbackRuntime = +new Date() - this.callbackStarted;
-			}
-			this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			return;
-		} else {
-			try {
-				this.testEnvironment.teardown.call( this.testEnvironment, QUnit.assert );
-			} catch( e ) {
-				QUnit.pushFailure( "Teardown failed on " + this.testName + ": " + ( e.message || e ), extractStacktrace( e, 1 ) );
-			}
-		}
-		checkPollution();
-	},
-	finish: function() {
-		config.current = this;
-		if ( config.requireExpects && this.expected === null ) {
-			QUnit.pushFailure( "Expected number of assertions to be defined, but expect() was not called.", this.stack );
-		} else if ( this.expected !== null && this.expected !== this.assertions.length ) {
-			QUnit.pushFailure( "Expected " + this.expected + " assertions, but " + this.assertions.length + " were run", this.stack );
-		} else if ( this.expected === null && !this.assertions.length ) {
-			QUnit.pushFailure( "Expected at least one assertion, but none were run - call expect(0) to accept zero assertions.", this.stack );
-		}
-
-		var i, assertion, a, b, time, li, ol,
-			test = this,
-			good = 0,
-			bad = 0,
-			tests = id( "qunit-tests" );
-
-		this.runtime = +new Date() - this.started;
-		config.stats.all += this.assertions.length;
-		config.moduleStats.all += this.assertions.length;
-
-		if ( tests ) {
-			ol = document.createElement( "ol" );
-			ol.className = "qunit-assert-list";
-
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				assertion = this.assertions[i];
-
-				li = document.createElement( "li" );
-				li.className = assertion.result ? "pass" : "fail";
-				li.innerHTML = assertion.message || ( assertion.result ? "okay" : "failed" );
-				ol.appendChild( li );
-
-				if ( assertion.result ) {
-					good++;
-				} else {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-
-			// store result when possible
-			if ( QUnit.config.reorder && defined.sessionStorage ) {
-				if ( bad ) {
-					sessionStorage.setItem( "qunit-test-" + this.module + "-" + this.testName, bad );
-				} else {
-					sessionStorage.removeItem( "qunit-test-" + this.module + "-" + this.testName );
-				}
-			}
-
-			if ( bad === 0 ) {
-				addClass( ol, "qunit-collapsed" );
-			}
-
-			// `b` initialized at top of scope
-			b = document.createElement( "strong" );
-			b.innerHTML = this.nameHtml + " <b class='counts'>(<b class='failed'>" + bad + "</b>, <b class='passed'>" + good + "</b>, " + this.assertions.length + ")</b>";
-
-			addEvent(b, "click", function() {
-				var next = b.parentNode.lastChild,
-					collapsed = hasClass( next, "qunit-collapsed" );
-				( collapsed ? removeClass : addClass )( next, "qunit-collapsed" );
-			});
-
-			addEvent(b, "dblclick", function( e ) {
-				var target = e && e.target ? e.target : window.event.srcElement;
-				if ( target.nodeName.toLowerCase() === "span" || target.nodeName.toLowerCase() === "b" ) {
-					target = target.parentNode;
-				}
-				if ( window.location && target.nodeName.toLowerCase() === "strong" ) {
-					window.location = QUnit.url({ testNumber: test.testNumber });
-				}
-			});
-
-			// `time` initialized at top of scope
-			time = document.createElement( "span" );
-			time.className = "runtime";
-			time.innerHTML = this.runtime + " ms";
-
-			// `li` initialized at top of scope
-			li = id( this.id );
-			li.className = bad ? "fail" : "pass";
-			li.removeChild( li.firstChild );
-			a = li.firstChild;
-			li.appendChild( b );
-			li.appendChild( a );
-			li.appendChild( time );
-			li.appendChild( ol );
-
-		} else {
-			for ( i = 0; i < this.assertions.length; i++ ) {
-				if ( !this.assertions[i].result ) {
-					bad++;
-					config.stats.bad++;
-					config.moduleStats.bad++;
-				}
-			}
-		}
-
-		runLoggingCallbacks( "testDone", QUnit, {
-			name: this.testName,
-			module: this.module,
-			failed: bad,
-			passed: this.assertions.length - bad,
-			total: this.assertions.length,
-			duration: this.runtime
-		});
-
-		QUnit.reset();
-
-		config.current = undefined;
-	},
-
-	queue: function() {
-		var bad,
-			test = this;
-
-		synchronize(function() {
-			test.init();
-		});
-		function run() {
-			// each of these can by async
-			synchronize(function() {
-				test.setup();
-			});
-			synchronize(function() {
-				test.run();
-			});
-			synchronize(function() {
-				test.teardown();
-			});
-			synchronize(function() {
-				test.finish();
-			});
-		}
-
-		// `bad` initialized at top of scope
-		// defer when previous test run passed, if storage is available
-		bad = QUnit.config.reorder && defined.sessionStorage &&
-						+sessionStorage.getItem( "qunit-test-" + this.module + "-" + this.testName );
-
-		if ( bad ) {
-			run();
-		} else {
-			synchronize( run, true );
-		}
-	}
-};
-
-// Root QUnit object.
-// `QUnit` initialized at top of scope
-QUnit = {
-
-	// call on start of module test to prepend name to all tests
-	module: function( name, testEnvironment ) {
-		config.currentModule = name;
-		config.currentModuleTestEnvironment = testEnvironment;
-		config.modules[name] = true;
-	},
-
-	asyncTest: function( testName, expected, callback ) {
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		QUnit.test( testName, expected, callback, true );
-	},
-
-	test: function( testName, expected, callback, async ) {
-		var test,
-			nameHtml = "<span class='test-name'>" + escapeText( testName ) + "</span>";
-
-		if ( arguments.length === 2 ) {
-			callback = expected;
-			expected = null;
-		}
-
-		if ( config.currentModule ) {
-			nameHtml = "<span class='module-name'>" + escapeText( config.currentModule ) + "</span>: " + nameHtml;
-		}
-
-		test = new Test({
-			nameHtml: nameHtml,
-			testName: testName,
-			expected: expected,
-			async: async,
-			callback: callback,
-			module: config.currentModule,
-			moduleTestEnvironment: config.currentModuleTestEnvironment,
-			stack: sourceFromStacktrace( 2 )
-		});
-
-		if ( !validTest( test ) ) {
-			return;
-		}
-
-		test.queue();
-	},
-
-	// Specify the number of expected assertions to guarantee that failed test (no assertions are run at all) don't slip through.
-	expect: function( asserts ) {
-		if (arguments.length === 1) {
-			config.current.expected = asserts;
-		} else {
-			return config.current.expected;
-		}
-	},
-
-	start: function( count ) {
-		// QUnit hasn't been initialized yet.
-		// Note: RequireJS (et al) may delay onLoad
-		if ( config.semaphore === undefined ) {
-			QUnit.begin(function() {
-				// This is triggered at the top of QUnit.load, push start() to the event loop, to allow QUnit.load to finish first
-				setTimeout(function() {
-					QUnit.start( count );
-				});
-			});
-			return;
-		}
-
-		config.semaphore -= count || 1;
-		// don't start until equal number of stop-calls
-		if ( config.semaphore > 0 ) {
-			return;
-		}
-		// ignore if start is called more often then stop
-		if ( config.semaphore < 0 ) {
-			config.semaphore = 0;
-			QUnit.pushFailure( "Called start() while already started (QUnit.config.semaphore was 0 already)", null, sourceFromStacktrace(2) );
-			return;
-		}
-		// A slight delay, to avoid any current callbacks
-		if ( defined.setTimeout ) {
-			setTimeout(function() {
-				if ( config.semaphore > 0 ) {
-					return;
-				}
-				if ( config.timeout ) {
-					clearTimeout( config.timeout );
-				}
-
-				config.blocking = false;
-				process( true );
-			}, 13);
-		} else {
-			config.blocking = false;
-			process( true );
-		}
-	},
-
-	stop: function( count ) {
-		config.semaphore += count || 1;
-		config.blocking = true;
-
-		if ( config.testTimeout && defined.setTimeout ) {
-			clearTimeout( config.timeout );
-			config.timeout = setTimeout(function() {
-				QUnit.ok( false, "Test timed out" );
-				config.semaphore = 1;
-				QUnit.start();
-			}, config.testTimeout );
-		}
-	}
-};
-
-// `assert` initialized at top of scope
-// Assert helpers
-// All of these must either call QUnit.push() or manually do:
-// - runLoggingCallbacks( "log", .. );
-// - config.current.assertions.push({ .. });
-// We attach it to the QUnit object *after* we expose the public API,
-// otherwise `assert` will become a global variable in browsers (#341).
-assert = {
-	/**
-	 * Asserts rough true-ish result.
-	 * @name ok
-	 * @function
-	 * @example ok( "asdfasdf".length > 5, "There must be at least 5 chars" );
-	 */
-	ok: function( result, msg ) {
-		if ( !config.current ) {
-			throw new Error( "ok() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-		result = !!result;
-		msg = msg || (result ? "okay" : "failed" );
-
-		var source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: msg
-			};
-
-		msg = "<span class='test-message'>" + escapeText( msg ) + "</span>";
-
-		if ( !result ) {
-			source = sourceFromStacktrace( 2 );
-			if ( source ) {
-				details.source = source;
-				msg += "<table><tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr></table>";
-			}
-		}
-		runLoggingCallbacks( "log", QUnit, details );
-		config.current.assertions.push({
-			result: result,
-			message: msg
-		});
-	},
-
-	/**
-	 * Assert that the first two arguments are equal, with an optional message.
-	 * Prints out both actual and expected values.
-	 * @name equal
-	 * @function
-	 * @example equal( format( "Received {0} bytes.", 2), "Received 2 bytes.", "format() replaces {0} with next argument" );
-	 */
-	equal: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected == actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notEqual
-	 * @function
-	 */
-	notEqual: function( actual, expected, message ) {
-		/*jshint eqeqeq:false */
-		QUnit.push( expected != actual, actual, expected, message );
-	},
-
-	/**
-	 * @name propEqual
-	 * @function
-	 */
-	propEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notPropEqual
-	 * @function
-	 */
-	notPropEqual: function( actual, expected, message ) {
-		actual = objectValues(actual);
-		expected = objectValues(expected);
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name deepEqual
-	 * @function
-	 */
-	deepEqual: function( actual, expected, message ) {
-		QUnit.push( QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name notDeepEqual
-	 * @function
-	 */
-	notDeepEqual: function( actual, expected, message ) {
-		QUnit.push( !QUnit.equiv(actual, expected), actual, expected, message );
-	},
-
-	/**
-	 * @name strictEqual
-	 * @function
-	 */
-	strictEqual: function( actual, expected, message ) {
-		QUnit.push( expected === actual, actual, expected, message );
-	},
-
-	/**
-	 * @name notStrictEqual
-	 * @function
-	 */
-	notStrictEqual: function( actual, expected, message ) {
-		QUnit.push( expected !== actual, actual, expected, message );
-	},
-
-	"throws": function( block, expected, message ) {
-		var actual,
-			expectedOutput = expected,
-			ok = false;
-
-		// 'expected' is optional
-		if ( typeof expected === "string" ) {
-			message = expected;
-			expected = null;
-		}
-
-		config.current.ignoreGlobalErrors = true;
-		try {
-			block.call( config.current.testEnvironment );
-		} catch (e) {
-			actual = e;
-		}
-		config.current.ignoreGlobalErrors = false;
-
-		if ( actual ) {
-			// we don't want to validate thrown error
-			if ( !expected ) {
-				ok = true;
-				expectedOutput = null;
-			// expected is a regexp
-			} else if ( QUnit.objectType( expected ) === "regexp" ) {
-				ok = expected.test( errorString( actual ) );
-			// expected is a constructor
-			} else if ( actual instanceof expected ) {
-				ok = true;
-			// expected is a validation function which returns true is validation passed
-			} else if ( expected.call( {}, actual ) === true ) {
-				expectedOutput = null;
-				ok = true;
-			}
-
-			QUnit.push( ok, actual, expectedOutput, message );
-		} else {
-			QUnit.pushFailure( message, null, "No exception was thrown." );
-		}
-	}
-};
-
-/**
- * @deprecated since 1.8.0
- * Kept assertion helpers in root for backwards compatibility.
- */
-extend( QUnit, assert );
-
-/**
- * @deprecated since 1.9.0
- * Kept root "raises()" for backwards compatibility.
- * (Note that we don't introduce assert.raises).
- */
-QUnit.raises = assert[ "throws" ];
-
-/**
- * @deprecated since 1.0.0, replaced with error pushes since 1.3.0
- * Kept to avoid TypeErrors for undefined methods.
- */
-QUnit.equals = function() {
-	QUnit.push( false, false, false, "QUnit.equals has been deprecated since 2009 (e88049a0), use QUnit.equal instead" );
-};
-QUnit.same = function() {
-	QUnit.push( false, false, false, "QUnit.same has been deprecated since 2009 (e88049a0), use QUnit.deepEqual instead" );
-};
-
-// We want access to the constructor's prototype
-(function() {
-	function F() {}
-	F.prototype = QUnit;
-	QUnit = new F();
-	// Make F QUnit's constructor so that we can add to the prototype later
-	QUnit.constructor = F;
-}());
-
-/**
- * Config object: Maintain internal state
- * Later exposed as QUnit.config
- * `config` initialized at top of scope
- */
-config = {
-	// The queue of tests to run
-	queue: [],
-
-	// block until document ready
-	blocking: true,
-
-	// when enabled, show only failing tests
-	// gets persisted through sessionStorage and can be changed in UI via checkbox
-	hidepassed: false,
-
-	// by default, run previously failed tests first
-	// very useful in combination with "Hide passed tests" checked
-	reorder: true,
-
-	// by default, modify document.title when suite is done
-	altertitle: true,
-
-	// when enabled, all tests must call expect()
-	requireExpects: false,
-
-	// add checkboxes that are persisted in the query-string
-	// when enabled, the id is set to `true` as a `QUnit.config` property
-	urlConfig: [
-		{
-			id: "noglobals",
-			label: "Check for Globals",
-			tooltip: "Enabling this will test if any test introduces new properties on the `window` object. Stored as query-strings."
-		},
-		{
-			id: "notrycatch",
-			label: "No try-catch",
-			tooltip: "Enabling this will run tests outside of a try-catch block. Makes debugging exceptions in IE reasonable. Stored as query-strings."
-		}
-	],
-
-	// Set of all modules.
-	modules: {},
-
-	// logging callback queues
-	begin: [],
-	done: [],
-	log: [],
-	testStart: [],
-	testDone: [],
-	moduleStart: [],
-	moduleDone: []
-};
-
-// Export global variables, unless an 'exports' object exists,
-// in that case we assume we're in CommonJS (dealt with on the bottom of the script)
-if ( typeof exports === "undefined" ) {
-	extend( window, QUnit.constructor.prototype );
-
-	// Expose QUnit object
-	window.QUnit = QUnit;
-}
-
-// Initialize more QUnit.config and QUnit.urlParams
-(function() {
-	var i,
-		location = window.location || { search: "", protocol: "file:" },
-		params = location.search.slice( 1 ).split( "&" ),
-		length = params.length,
-		urlParams = {},
-		current;
-
-	if ( params[ 0 ] ) {
-		for ( i = 0; i < length; i++ ) {
-			current = params[ i ].split( "=" );
-			current[ 0 ] = decodeURIComponent( current[ 0 ] );
-			// allow just a key to turn on a flag, e.g., test.html?noglobals
-			current[ 1 ] = current[ 1 ] ? decodeURIComponent( current[ 1 ] ) : true;
-			urlParams[ current[ 0 ] ] = current[ 1 ];
-		}
-	}
-
-	QUnit.urlParams = urlParams;
-
-	// String search anywhere in moduleName+testName
-	config.filter = urlParams.filter;
-
-	// Exact match of the module name
-	config.module = urlParams.module;
-
-	config.testNumber = parseInt( urlParams.testNumber, 10 ) || null;
-
-	// Figure out if we're running the tests from a server or not
-	QUnit.isLocal = location.protocol === "file:";
-}());
-
-// Extend QUnit object,
-// these after set here because they should not be exposed as global functions
-extend( QUnit, {
-	assert: assert,
-
-	config: config,
-
-	// Initialize the configuration options
-	init: function() {
-		extend( config, {
-			stats: { all: 0, bad: 0 },
-			moduleStats: { all: 0, bad: 0 },
-			started: +new Date(),
-			updateRate: 1000,
-			blocking: false,
-			autostart: true,
-			autorun: false,
-			filter: "",
-			queue: [],
-			semaphore: 1
-		});
-
-		var tests, banner, result,
-			qunit = id( "qunit" );
-
-		if ( qunit ) {
-			qunit.innerHTML =
-				"<h1 id='qunit-header'>" + escapeText( document.title ) + "</h1>" +
-				"<h2 id='qunit-banner'></h2>" +
-				"<div id='qunit-testrunner-toolbar'></div>" +
-				"<h2 id='qunit-userAgent'></h2>" +
-				"<ol id='qunit-tests'></ol>";
-		}
-
-		tests = id( "qunit-tests" );
-		banner = id( "qunit-banner" );
-		result = id( "qunit-testresult" );
-
-		if ( tests ) {
-			tests.innerHTML = "";
-		}
-
-		if ( banner ) {
-			banner.className = "";
-		}
-
-		if ( result ) {
-			result.parentNode.removeChild( result );
-		}
-
-		if ( tests ) {
-			result = document.createElement( "p" );
-			result.id = "qunit-testresult";
-			result.className = "result";
-			tests.parentNode.insertBefore( result, tests );
-			result.innerHTML = "Running...<br/>&nbsp;";
-		}
-	},
-
-	// Resets the test setup. Useful for tests that modify the DOM.
-	/*
-	DEPRECATED: Use multiple tests instead of resetting inside a test.
-	Use testStart or testDone for custom cleanup.
-	This method will throw an error in 2.0, and will be removed in 2.1
-	*/
-	reset: function() {
-		var fixture = id( "qunit-fixture" );
-		if ( fixture ) {
-			fixture.innerHTML = config.fixture;
-		}
-	},
-
-	// Trigger an event on an element.
-	// @example triggerEvent( document.body, "click" );
-	triggerEvent: function( elem, type, event ) {
-		if ( document.createEvent ) {
-			event = document.createEvent( "MouseEvents" );
-			event.initMouseEvent(type, true, true, elem.ownerDocument.defaultView,
-				0, 0, 0, 0, 0, false, false, false, false, 0, null);
-
-			elem.dispatchEvent( event );
-		} else if ( elem.fireEvent ) {
-			elem.fireEvent( "on" + type );
-		}
-	},
-
-	// Safe object type checking
-	is: function( type, obj ) {
-		return QUnit.objectType( obj ) === type;
-	},
-
-	objectType: function( obj ) {
-		if ( typeof obj === "undefined" ) {
-				return "undefined";
-		// consider: typeof null === object
-		}
-		if ( obj === null ) {
-				return "null";
-		}
-
-		var match = toString.call( obj ).match(/^\[object\s(.*)\]$/),
-			type = match && match[1] || "";
-
-		switch ( type ) {
-			case "Number":
-				if ( isNaN(obj) ) {
-					return "nan";
-				}
-				return "number";
-			case "String":
-			case "Boolean":
-			case "Array":
-			case "Date":
-			case "RegExp":
-			case "Function":
-				return type.toLowerCase();
-		}
-		if ( typeof obj === "object" ) {
-			return "object";
-		}
-		return undefined;
-	},
-
-	push: function( result, actual, expected, message ) {
-		if ( !config.current ) {
-			throw new Error( "assertion outside test context, was " + sourceFromStacktrace() );
-		}
-
-		var output, source,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: result,
-				message: message,
-				actual: actual,
-				expected: expected
-			};
-
-		message = escapeText( message ) || ( result ? "okay" : "failed" );
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		if ( !result ) {
-			expected = escapeText( QUnit.jsDump.parse(expected) );
-			actual = escapeText( QUnit.jsDump.parse(actual) );
-			output += "<table><tr class='test-expected'><th>Expected: </th><td><pre>" + expected + "</pre></td></tr>";
-
-			if ( actual !== expected ) {
-				output += "<tr class='test-actual'><th>Result: </th><td><pre>" + actual + "</pre></td></tr>";
-				output += "<tr class='test-diff'><th>Diff: </th><td><pre>" + QUnit.diff( expected, actual ) + "</pre></td></tr>";
-			}
-
-			source = sourceFromStacktrace();
-
-			if ( source ) {
-				details.source = source;
-				output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-			}
-
-			output += "</table>";
-		}
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: !!result,
-			message: output
-		});
-	},
-
-	pushFailure: function( message, source, actual ) {
-		if ( !config.current ) {
-			throw new Error( "pushFailure() assertion outside test context, was " + sourceFromStacktrace(2) );
-		}
-
-		var output,
-			details = {
-				module: config.current.module,
-				name: config.current.testName,
-				result: false,
-				message: message
-			};
-
-		message = escapeText( message ) || "error";
-		message = "<span class='test-message'>" + message + "</span>";
-		output = message;
-
-		output += "<table>";
-
-		if ( actual ) {
-			output += "<tr class='test-actual'><th>Result: </th><td><pre>" + escapeText( actual ) + "</pre></td></tr>";
-		}
-
-		if ( source ) {
-			details.source = source;
-			output += "<tr class='test-source'><th>Source: </th><td><pre>" + escapeText( source ) + "</pre></td></tr>";
-		}
-
-		output += "</table>";
-
-		runLoggingCallbacks( "log", QUnit, details );
-
-		config.current.assertions.push({
-			result: false,
-			message: output
-		});
-	},
-
-	url: function( params ) {
-		params = extend( extend( {}, QUnit.urlParams ), params );
-		var key,
-			querystring = "?";
-
-		for ( key in params ) {
-			if ( hasOwn.call( params, key ) ) {
-				querystring += encodeURIComponent( key ) + "=" +
-					encodeURIComponent( params[ key ] ) + "&";
-			}
-		}
-		return window.location.protocol + "//" + window.location.host +
-			window.location.pathname + querystring.slice( 0, -1 );
-	},
-
-	extend: extend,
-	id: id,
-	addEvent: addEvent,
-	addClass: addClass,
-	hasClass: hasClass,
-	removeClass: removeClass
-	// load, equiv, jsDump, diff: Attached later
-});
-
-/**
- * @deprecated: Created for backwards compatibility with test runner that set the hook function
- * into QUnit.{hook}, instead of invoking it and passing the hook function.
- * QUnit.constructor is set to the empty F() above so that we can add to it's prototype here.
- * Doing this allows us to tell if the following methods have been overwritten on the actual
- * QUnit object.
- */
-extend( QUnit.constructor.prototype, {
-
-	// Logging callbacks; all receive a single argument with the listed properties
-	// run test/logs.html for any related changes
-	begin: registerLoggingCallback( "begin" ),
-
-	// done: { failed, passed, total, runtime }
-	done: registerLoggingCallback( "done" ),
-
-	// log: { result, actual, expected, message }
-	log: registerLoggingCallback( "log" ),
-
-	// testStart: { name }
-	testStart: registerLoggingCallback( "testStart" ),
-
-	// testDone: { name, failed, passed, total, duration }
-	testDone: registerLoggingCallback( "testDone" ),
-
-	// moduleStart: { name }
-	moduleStart: registerLoggingCallback( "moduleStart" ),
-
-	// moduleDone: { name, failed, passed, total }
-	moduleDone: registerLoggingCallback( "moduleDone" )
-});
-
-if ( typeof document === "undefined" || document.readyState === "complete" ) {
-	config.autorun = true;
-}
-
-QUnit.load = function() {
-	runLoggingCallbacks( "begin", QUnit, {} );
-
-	// Initialize the config, saving the execution queue
-	var banner, filter, i, label, len, main, ol, toolbar, userAgent, val,
-		urlConfigCheckboxesContainer, urlConfigCheckboxes, moduleFilter,
-		numModules = 0,
-		moduleNames = [],
-		moduleFilterHtml = "",
-		urlConfigHtml = "",
-		oldconfig = extend( {}, config );
-
-	QUnit.init();
-	extend(config, oldconfig);
-
-	config.blocking = false;
-
-	len = config.urlConfig.length;
-
-	for ( i = 0; i < len; i++ ) {
-		val = config.urlConfig[i];
-		if ( typeof val === "string" ) {
-			val = {
-				id: val,
-				label: val,
-				tooltip: "[no tooltip available]"
-			};
-		}
-		config[ val.id ] = QUnit.urlParams[ val.id ];
-		urlConfigHtml += "<input id='qunit-urlconfig-" + escapeText( val.id ) +
-			"' name='" + escapeText( val.id ) +
-			"' type='checkbox'" + ( config[ val.id ] ? " checked='checked'" : "" ) +
-			" title='" + escapeText( val.tooltip ) +
-			"'><label for='qunit-urlconfig-" + escapeText( val.id ) +
-			"' title='" + escapeText( val.tooltip ) + "'>" + val.label + "</label>";
-	}
-	for ( i in config.modules ) {
-		if ( config.modules.hasOwnProperty( i ) ) {
-			moduleNames.push(i);
-		}
-	}
-	numModules = moduleNames.length;
-	moduleNames.sort( function( a, b ) {
-		return a.localeCompare( b );
-	});
-	moduleFilterHtml += "<label for='qunit-modulefilter'>Module: </label><select id='qunit-modulefilter' name='modulefilter'><option value='' " +
-		( config.module === undefined  ? "selected='selected'" : "" ) +
-		">< All Modules ></option>";
-
-
-	for ( i = 0; i < numModules; i++) {
-			moduleFilterHtml += "<option value='" + escapeText( encodeURIComponent(moduleNames[i]) ) + "' " +
-				( config.module === moduleNames[i] ? "selected='selected'" : "" ) +
-				">" + escapeText(moduleNames[i]) + "</option>";
-	}
-	moduleFilterHtml += "</select>";
-
-	// `userAgent` initialized at top of scope
-	userAgent = id( "qunit-userAgent" );
-	if ( userAgent ) {
-		userAgent.innerHTML = navigator.userAgent;
-	}
-
-	// `banner` initialized at top of scope
-	banner = id( "qunit-header" );
-	if ( banner ) {
-		banner.innerHTML = "<a href='" + QUnit.url({ filter: undefined, module: undefined, testNumber: undefined }) + "'>" + banner.innerHTML + "</a> ";
-	}
-
-	// `toolbar` initialized at top of scope
-	toolbar = id( "qunit-testrunner-toolbar" );
-	if ( toolbar ) {
-		// `filter` initialized at top of scope
-		filter = document.createElement( "input" );
-		filter.type = "checkbox";
-		filter.id = "qunit-filter-pass";
-
-		addEvent( filter, "click", function() {
-			var tmp,
-				ol = document.getElementById( "qunit-tests" );
-
-			if ( filter.checked ) {
-				ol.className = ol.className + " hidepass";
-			} else {
-				tmp = " " + ol.className.replace( /[\n\t\r]/g, " " ) + " ";
-				ol.className = tmp.replace( / hidepass /, " " );
-			}
-			if ( defined.sessionStorage ) {
-				if (filter.checked) {
-					sessionStorage.setItem( "qunit-filter-passed-tests", "true" );
-				} else {
-					sessionStorage.removeItem( "qunit-filter-passed-tests" );
-				}
-			}
-		});
-
-		if ( config.hidepassed || defined.sessionStorage && sessionStorage.getItem( "qunit-filter-passed-tests" ) ) {
-			filter.checked = true;
-			// `ol` initialized at top of scope
-			ol = document.getElementById( "qunit-tests" );
-			ol.className = ol.className + " hidepass";
-		}
-		toolbar.appendChild( filter );
-
-		// `label` initialized at top of scope
-		label = document.createElement( "label" );
-		label.setAttribute( "for", "qunit-filter-pass" );
-		label.setAttribute( "title", "Only show tests and assertions that fail. Stored in sessionStorage." );
-		label.innerHTML = "Hide passed tests";
-		toolbar.appendChild( label );
-
-		urlConfigCheckboxesContainer = document.createElement("span");
-		urlConfigCheckboxesContainer.innerHTML = urlConfigHtml;
-		urlConfigCheckboxes = urlConfigCheckboxesContainer.getElementsByTagName("input");
-		// For oldIE support:
-		// * Add handlers to the individual elements instead of the container
-		// * Use "click" instead of "change"
-		// * Fallback from event.target to event.srcElement
-		addEvents( urlConfigCheckboxes, "click", function( event ) {
-			var params = {},
-				target = event.target || event.srcElement;
-			params[ target.name ] = target.checked ? true : undefined;
-			window.location = QUnit.url( params );
-		});
-		toolbar.appendChild( urlConfigCheckboxesContainer );
-
-		if (numModules > 1) {
-			moduleFilter = document.createElement( "span" );
-			moduleFilter.setAttribute( "id", "qunit-modulefilter-container" );
-			moduleFilter.innerHTML = moduleFilterHtml;
-			addEvent( moduleFilter.lastChild, "change", function() {
-				var selectBox = moduleFilter.getElementsByTagName("select")[0],
-					selectedModule = decodeURIComponent(selectBox.options[selectBox.selectedIndex].value);
-
-				window.location = QUnit.url({
-					module: ( selectedModule === "" ) ? undefined : selectedModule,
-					// Remove any existing filters
-					filter: undefined,
-					testNumber: undefined
-				});
-			});
-			toolbar.appendChild(moduleFilter);
-		}
-	}
-
-	// `main` initialized at top of scope
-	main = id( "qunit-fixture" );
-	if ( main ) {
-		config.fixture = main.innerHTML;
-	}
-
-	if ( config.autostart ) {
-		QUnit.start();
-	}
-};
-
-addEvent( window, "load", QUnit.load );
-
-// `onErrorFnPrev` initialized at top of scope
-// Preserve other handlers
-onErrorFnPrev = window.onerror;
-
-// Cover uncaught exceptions
-// Returning true will suppress the default browser handler,
-// returning false will let it run.
-window.onerror = function ( error, filePath, linerNr ) {
-	var ret = false;
-	if ( onErrorFnPrev ) {
-		ret = onErrorFnPrev( error, filePath, linerNr );
-	}
-
-	// Treat return value as window.onerror itself does,
-	// Only do our handling if not suppressed.
-	if ( ret !== true ) {
-		if ( QUnit.config.current ) {
-			if ( QUnit.config.current.ignoreGlobalErrors ) {
-				return true;
-			}
-			QUnit.pushFailure( error, filePath + ":" + linerNr );
-		} else {
-			QUnit.test( "global failure", extend( function() {
-				QUnit.pushFailure( error, filePath + ":" + linerNr );
-			}, { validTest: validTest } ) );
-		}
-		return false;
-	}
-
-	return ret;
-};
-
-function done() {
-	config.autorun = true;
-
-	// Log the last module results
-	if ( config.currentModule ) {
-		runLoggingCallbacks( "moduleDone", QUnit, {
-			name: config.currentModule,
-			failed: config.moduleStats.bad,
-			passed: config.moduleStats.all - config.moduleStats.bad,
-			total: config.moduleStats.all
-		});
-	}
-	delete config.previousModule;
-
-	var i, key,
-		banner = id( "qunit-banner" ),
-		tests = id( "qunit-tests" ),
-		runtime = +new Date() - config.started,
-		passed = config.stats.all - config.stats.bad,
-		html = [
-			"Tests completed in ",
-			runtime,
-			" milliseconds.<br/>",
-			"<span class='passed'>",
-			passed,
-			"</span> assertions of <span class='total'>",
-			config.stats.all,
-			"</span> passed, <span class='failed'>",
-			config.stats.bad,
-			"</span> failed."
-		].join( "" );
-
-	if ( banner ) {
-		banner.className = ( config.stats.bad ? "qunit-fail" : "qunit-pass" );
-	}
-
-	if ( tests ) {
-		id( "qunit-testresult" ).innerHTML = html;
-	}
-
-	if ( config.altertitle && typeof document !== "undefined" && document.title ) {
-		// show ✖ for good, ✔ for bad suite result in title
-		// use escape sequences in case file gets loaded with non-utf-8-charset
-		document.title = [
-			( config.stats.bad ? "\u2716" : "\u2714" ),
-			document.title.replace( /^[\u2714\u2716] /i, "" )
-		].join( " " );
-	}
-
-	// clear own sessionStorage items if all tests passed
-	if ( config.reorder && defined.sessionStorage && config.stats.bad === 0 ) {
-		// `key` & `i` initialized at top of scope
-		for ( i = 0; i < sessionStorage.length; i++ ) {
-			key = sessionStorage.key( i++ );
-			if ( key.indexOf( "qunit-test-" ) === 0 ) {
-				sessionStorage.removeItem( key );
-			}
-		}
-	}
-
-	// scroll back to top to show results
-	if ( window.scrollTo ) {
-		window.scrollTo(0, 0);
-	}
-
-	runLoggingCallbacks( "done", QUnit, {
-		failed: config.stats.bad,
-		passed: passed,
-		total: config.stats.all,
-		runtime: runtime
-	});
-}
-
-/** @return Boolean: true if this test should be ran */
-function validTest( test ) {
-	var include,
-		filter = config.filter && config.filter.toLowerCase(),
-		module = config.module && config.module.toLowerCase(),
-		fullName = (test.module + ": " + test.testName).toLowerCase();
-
-	// Internally-generated tests are always valid
-	if ( test.callback && test.callback.validTest === validTest ) {
-		delete test.callback.validTest;
-		return true;
-	}
-
-	if ( config.testNumber ) {
-		return test.testNumber === config.testNumber;
-	}
-
-	if ( module && ( !test.module || test.module.toLowerCase() !== module ) ) {
-		return false;
-	}
-
-	if ( !filter ) {
-		return true;
-	}
-
-	include = filter.charAt( 0 ) !== "!";
-	if ( !include ) {
-		filter = filter.slice( 1 );
-	}
-
-	// If the filter matches, we need to honour include
-	if ( fullName.indexOf( filter ) !== -1 ) {
-		return include;
-	}
-
-	// Otherwise, do the opposite
-	return !include;
-}
-
-// so far supports only Firefox, Chrome and Opera (buggy), Safari (for real exceptions)
-// Later Safari and IE10 are supposed to support error.stack as well
-// See also https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Error/Stack
-function extractStacktrace( e, offset ) {
-	offset = offset === undefined ? 3 : offset;
-
-	var stack, include, i;
-
-	if ( e.stacktrace ) {
-		// Opera
-		return e.stacktrace.split( "\n" )[ offset + 3 ];
-	} else if ( e.stack ) {
-		// Firefox, Chrome
-		stack = e.stack.split( "\n" );
-		if (/^error$/i.test( stack[0] ) ) {
-			stack.shift();
-		}
-		if ( fileName ) {
-			include = [];
-			for ( i = offset; i < stack.length; i++ ) {
-				if ( stack[ i ].indexOf( fileName ) !== -1 ) {
-					break;
-				}
-				include.push( stack[ i ] );
-			}
-			if ( include.length ) {
-				return include.join( "\n" );
-			}
-		}
-		return stack[ offset ];
-	} else if ( e.sourceURL ) {
-		// Safari, PhantomJS
-		// hopefully one day Safari provides actual stacktraces
-		// exclude useless self-reference for generated Error objects
-		if ( /qunit.js$/.test( e.sourceURL ) ) {
-			return;
-		}
-		// for actual exceptions, this is useful
-		return e.sourceURL + ":" + e.line;
-	}
-}
-function sourceFromStacktrace( offset ) {
-	try {
-		throw new Error();
-	} catch ( e ) {
-		return extractStacktrace( e, offset );
-	}
-}
-
-/**
- * Escape text for attribute or text content.
- */
-function escapeText( s ) {
-	if ( !s ) {
-		return "";
-	}
-	s = s + "";
-	// Both single quotes and double quotes (for attributes)
-	return s.replace( /['"<>&]/g, function( s ) {
-		switch( s ) {
-			case "'":
-				return "&#039;";
-			case "\"":
-				return "&quot;";
-			case "<":
-				return "&lt;";
-			case ">":
-				return "&gt;";
-			case "&":
-				return "&amp;";
-		}
-	});
-}
-
-function synchronize( callback, last ) {
-	config.queue.push( callback );
-
-	if ( config.autorun && !config.blocking ) {
-		process( last );
-	}
-}
-
-function process( last ) {
-	function next() {
-		process( last );
-	}
-	var start = new Date().getTime();
-	config.depth = config.depth ? config.depth + 1 : 1;
-
-	while ( config.queue.length && !config.blocking ) {
-		if ( !defined.setTimeout || config.updateRate <= 0 || ( ( new Date().getTime() - start ) < config.updateRate ) ) {
-			config.queue.shift()();
-		} else {
-			setTimeout( next, 13 );
-			break;
-		}
-	}
-	config.depth--;
-	if ( last && !config.blocking && !config.queue.length && config.depth === 0 ) {
-		done();
-	}
-}
-
-function saveGlobal() {
-	config.pollution = [];
-
-	if ( config.noglobals ) {
-		for ( var key in window ) {
-			if ( hasOwn.call( window, key ) ) {
-				// in Opera sometimes DOM element ids show up here, ignore them
-				if ( /^qunit-test-output/.test( key ) ) {
-					continue;
-				}
-				config.pollution.push( key );
-			}
-		}
-	}
-}
-
-function checkPollution() {
-	var newGlobals,
-		deletedGlobals,
-		old = config.pollution;
-
-	saveGlobal();
-
-	newGlobals = diff( config.pollution, old );
-	if ( newGlobals.length > 0 ) {
-		QUnit.pushFailure( "Introduced global variable(s): " + newGlobals.join(", ") );
-	}
-
-	deletedGlobals = diff( old, config.pollution );
-	if ( deletedGlobals.length > 0 ) {
-		QUnit.pushFailure( "Deleted global variable(s): " + deletedGlobals.join(", ") );
-	}
-}
-
-// returns a new Array with the elements that are in a but not in b
-function diff( a, b ) {
-	var i, j,
-		result = a.slice();
-
-	for ( i = 0; i < result.length; i++ ) {
-		for ( j = 0; j < b.length; j++ ) {
-			if ( result[i] === b[j] ) {
-				result.splice( i, 1 );
-				i--;
-				break;
-			}
-		}
-	}
-	return result;
-}
-
-function extend( a, b ) {
-	for ( var prop in b ) {
-		if ( hasOwn.call( b, prop ) ) {
-			// Avoid "Member not found" error in IE8 caused by messing with window.constructor
-			if ( !( prop === "constructor" && a === window ) ) {
-				if ( b[ prop ] === undefined ) {
-					delete a[ prop ];
-				} else {
-					a[ prop ] = b[ prop ];
-				}
-			}
-		}
-	}
-
-	return a;
-}
-
-/**
- * @param {HTMLElement} elem
- * @param {string} type
- * @param {Function} fn
- */
-function addEvent( elem, type, fn ) {
-	// Standards-based browsers
-	if ( elem.addEventListener ) {
-		elem.addEventListener( type, fn, false );
-	// IE
-	} else {
-		elem.attachEvent( "on" + type, fn );
-	}
-}
-
-/**
- * @param {Array|NodeList} elems
- * @param {string} type
- * @param {Function} fn
- */
-function addEvents( elems, type, fn ) {
-	var i = elems.length;
-	while ( i-- ) {
-		addEvent( elems[i], type, fn );
-	}
-}
-
-function hasClass( elem, name ) {
-	return (" " + elem.className + " ").indexOf(" " + name + " ") > -1;
-}
-
-function addClass( elem, name ) {
-	if ( !hasClass( elem, name ) ) {
-		elem.className += (elem.className ? " " : "") + name;
-	}
-}
-
-function removeClass( elem, name ) {
-	var set = " " + elem.className + " ";
-	// Class name may appear multiple times
-	while ( set.indexOf(" " + name + " ") > -1 ) {
-		set = set.replace(" " + name + " " , " ");
-	}
-	// If possible, trim it for prettiness, but not necessarily
-	elem.className = typeof set.trim === "function" ? set.trim() : set.replace(/^\s+|\s+$/g, "");
-}
-
-function id( name ) {
-	return !!( typeof document !== "undefined" && document && document.getElementById ) &&
-		document.getElementById( name );
-}
-
-function registerLoggingCallback( key ) {
-	return function( callback ) {
-		config[key].push( callback );
-	};
-}
-
-// Supports deprecated method of completely overwriting logging callbacks
-function runLoggingCallbacks( key, scope, args ) {
-	var i, callbacks;
-	if ( QUnit.hasOwnProperty( key ) ) {
-		QUnit[ key ].call(scope, args );
-	} else {
-		callbacks = config[ key ];
-		for ( i = 0; i < callbacks.length; i++ ) {
-			callbacks[ i ].call( scope, args );
-		}
-	}
-}
-
-// Test for equality any JavaScript type.
-// Author: Philippe Rathé <prathe@gmail.com>
-QUnit.equiv = (function() {
-
-	// Call the o related callback with the given arguments.
-	function bindCallbacks( o, callbacks, args ) {
-		var prop = QUnit.objectType( o );
-		if ( prop ) {
-			if ( QUnit.objectType( callbacks[ prop ] ) === "function" ) {
-				return callbacks[ prop ].apply( callbacks, args );
-			} else {
-				return callbacks[ prop ]; // or undefined
-			}
-		}
-	}
-
-	// the real equiv function
-	var innerEquiv,
-		// stack to decide between skip/abort functions
-		callers = [],
-		// stack to avoiding loops from circular referencing
-		parents = [],
-		parentsB = [],
-
-		getProto = Object.getPrototypeOf || function ( obj ) {
-			/*jshint camelcase:false */
-			return obj.__proto__;
-		},
-		callbacks = (function () {
-
-			// for string, boolean, number and null
-			function useStrictEquality( b, a ) {
-				/*jshint eqeqeq:false */
-				if ( b instanceof a.constructor || a instanceof b.constructor ) {
-					// to catch short annotation VS 'new' annotation of a
-					// declaration
-					// e.g. var i = 1;
-					// var j = new Number(1);
-					return a == b;
-				} else {
-					return a === b;
-				}
-			}
-
-			return {
-				"string": useStrictEquality,
-				"boolean": useStrictEquality,
-				"number": useStrictEquality,
-				"null": useStrictEquality,
-				"undefined": useStrictEquality,
-
-				"nan": function( b ) {
-					return isNaN( b );
-				},
-
-				"date": function( b, a ) {
-					return QUnit.objectType( b ) === "date" && a.valueOf() === b.valueOf();
-				},
-
-				"regexp": function( b, a ) {
-					return QUnit.objectType( b ) === "regexp" &&
-						// the regex itself
-						a.source === b.source &&
-						// and its modifiers
-						a.global === b.global &&
-						// (gmi) ...
-						a.ignoreCase === b.ignoreCase &&
-						a.multiline === b.multiline &&
-						a.sticky === b.sticky;
-				},
-
-				// - skip when the property is a method of an instance (OOP)
-				// - abort otherwise,
-				// initial === would have catch identical references anyway
-				"function": function() {
-					var caller = callers[callers.length - 1];
-					return caller !== Object && typeof caller !== "undefined";
-				},
-
-				"array": function( b, a ) {
-					var i, j, len, loop, aCircular, bCircular;
-
-					// b could be an object literal here
-					if ( QUnit.objectType( b ) !== "array" ) {
-						return false;
-					}
-
-					len = a.length;
-					if ( len !== b.length ) {
-						// safe and faster
-						return false;
-					}
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-					for ( i = 0; i < len; i++ ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									parents.pop();
-									parentsB.pop();
-									return false;
-								}
-							}
-						}
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							parents.pop();
-							parentsB.pop();
-							return false;
-						}
-					}
-					parents.pop();
-					parentsB.pop();
-					return true;
-				},
-
-				"object": function( b, a ) {
-					/*jshint forin:false */
-					var i, j, loop, aCircular, bCircular,
-						// Default to true
-						eq = true,
-						aProperties = [],
-						bProperties = [];
-
-					// comparing constructors is more strict than using
-					// instanceof
-					if ( a.constructor !== b.constructor ) {
-						// Allow objects with no prototype to be equivalent to
-						// objects with Object as their constructor.
-						if ( !(( getProto(a) === null && getProto(b) === Object.prototype ) ||
-							( getProto(b) === null && getProto(a) === Object.prototype ) ) ) {
-								return false;
-						}
-					}
-
-					// stack constructor before traversing properties
-					callers.push( a.constructor );
-
-					// track reference to avoid circular references
-					parents.push( a );
-					parentsB.push( b );
-
-					// be strict: don't ensure hasOwnProperty and go deep
-					for ( i in a ) {
-						loop = false;
-						for ( j = 0; j < parents.length; j++ ) {
-							aCircular = parents[j] === a[i];
-							bCircular = parentsB[j] === b[i];
-							if ( aCircular || bCircular ) {
-								if ( a[i] === b[i] || aCircular && bCircular ) {
-									loop = true;
-								} else {
-									eq = false;
-									break;
-								}
-							}
-						}
-						aProperties.push(i);
-						if ( !loop && !innerEquiv(a[i], b[i]) ) {
-							eq = false;
-							break;
-						}
-					}
-
-					parents.pop();
-					parentsB.pop();
-					callers.pop(); // unstack, we are done
-
-					for ( i in b ) {
-						bProperties.push( i ); // collect b's properties
-					}
-
-					// Ensures identical properties name
-					return eq && innerEquiv( aProperties.sort(), bProperties.sort() );
-				}
-			};
-		}());
-
-	innerEquiv = function() { // can take multiple arguments
-		var args = [].slice.apply( arguments );
-		if ( args.length < 2 ) {
-			return true; // end transition
-		}
-
-		return (function( a, b ) {
-			if ( a === b ) {
-				return true; // catch the most you can
-			} else if ( a === null || b === null || typeof a === "undefined" ||
-					typeof b === "undefined" ||
-					QUnit.objectType(a) !== QUnit.objectType(b) ) {
-				return false; // don't lose time with error prone cases
-			} else {
-				return bindCallbacks(a, callbacks, [ b, a ]);
-			}
-
-			// apply transition with (1..n) arguments
-		}( args[0], args[1] ) && innerEquiv.apply( this, args.splice(1, args.length - 1 )) );
-	};
-
-	return innerEquiv;
-}());
-
-/**
- * jsDump Copyright (c) 2008 Ariel Flesler - aflesler(at)gmail(dot)com |
- * http://flesler.blogspot.com Licensed under BSD
- * (http://www.opensource.org/licenses/bsd-license.php) Date: 5/15/2008
- *
- * @projectDescription Advanced and extensible data dumping for Javascript.
- * @version 1.0.0
- * @author Ariel Flesler
- * @link {http://flesler.blogspot.com/2008/05/jsdump-pretty-dump-of-any-javascript.html}
- */
-QUnit.jsDump = (function() {
-	function quote( str ) {
-		return "\"" + str.toString().replace( /"/g, "\\\"" ) + "\"";
-	}
-	function literal( o ) {
-		return o + "";
-	}
-	function join( pre, arr, post ) {
-		var s = jsDump.separator(),
-			base = jsDump.indent(),
-			inner = jsDump.indent(1);
-		if ( arr.join ) {
-			arr = arr.join( "," + s + inner );
-		}
-		if ( !arr ) {
-			return pre + post;
-		}
-		return [ pre, inner + arr, base + post ].join(s);
-	}
-	function array( arr, stack ) {
-		var i = arr.length, ret = new Array(i);
-		this.up();
-		while ( i-- ) {
-			ret[i] = this.parse( arr[i] , undefined , stack);
-		}
-		this.down();
-		return join( "[", ret, "]" );
-	}
-
-	var reName = /^function (\w+)/,
-		jsDump = {
-			// type is used mostly internally, you can fix a (custom)type in advance
-			parse: function( obj, type, stack ) {
-				stack = stack || [ ];
-				var inStack, res,
-					parser = this.parsers[ type || this.typeOf(obj) ];
-
-				type = typeof parser;
-				inStack = inArray( obj, stack );
-
-				if ( inStack !== -1 ) {
-					return "recursion(" + (inStack - stack.length) + ")";
-				}
-				if ( type === "function" )  {
-					stack.push( obj );
-					res = parser.call( this, obj, stack );
-					stack.pop();
-					return res;
-				}
-				return ( type === "string" ) ? parser : this.parsers.error;
-			},
-			typeOf: function( obj ) {
-				var type;
-				if ( obj === null ) {
-					type = "null";
-				} else if ( typeof obj === "undefined" ) {
-					type = "undefined";
-				} else if ( QUnit.is( "regexp", obj) ) {
-					type = "regexp";
-				} else if ( QUnit.is( "date", obj) ) {
-					type = "date";
-				} else if ( QUnit.is( "function", obj) ) {
-					type = "function";
-				} else if ( typeof obj.setInterval !== undefined && typeof obj.document !== "undefined" && typeof obj.nodeType === "undefined" ) {
-					type = "window";
-				} else if ( obj.nodeType === 9 ) {
-					type = "document";
-				} else if ( obj.nodeType ) {
-					type = "node";
-				} else if (
-					// native arrays
-					toString.call( obj ) === "[object Array]" ||
-					// NodeList objects
-					( typeof obj.length === "number" && typeof obj.item !== "undefined" && ( obj.length ? obj.item(0) === obj[0] : ( obj.item( 0 ) === null && typeof obj[0] === "undefined" ) ) )
-				) {
-					type = "array";
-				} else if ( obj.constructor === Error.prototype.constructor ) {
-					type = "error";
-				} else {
-					type = typeof obj;
-				}
-				return type;
-			},
-			separator: function() {
-				return this.multiline ?	this.HTML ? "<br />" : "\n" : this.HTML ? "&nbsp;" : " ";
-			},
-			// extra can be a number, shortcut for increasing-calling-decreasing
-			indent: function( extra ) {
-				if ( !this.multiline ) {
-					return "";
-				}
-				var chr = this.indentChar;
-				if ( this.HTML ) {
-					chr = chr.replace( /\t/g, "   " ).replace( / /g, "&nbsp;" );
-				}
-				return new Array( this.depth + ( extra || 0 ) ).join(chr);
-			},
-			up: function( a ) {
-				this.depth += a || 1;
-			},
-			down: function( a ) {
-				this.depth -= a || 1;
-			},
-			setParser: function( name, parser ) {
-				this.parsers[name] = parser;
-			},
-			// The next 3 are exposed so you can use them
-			quote: quote,
-			literal: literal,
-			join: join,
-			//
-			depth: 1,
-			// This is the list of parsers, to modify them, use jsDump.setParser
-			parsers: {
-				window: "[Window]",
-				document: "[Document]",
-				error: function(error) {
-					return "Error(\"" + error.message + "\")";
-				},
-				unknown: "[Unknown]",
-				"null": "null",
-				"undefined": "undefined",
-				"function": function( fn ) {
-					var ret = "function",
-						// functions never have name in IE
-						name = "name" in fn ? fn.name : (reName.exec(fn) || [])[1];
-
-					if ( name ) {
-						ret += " " + name;
-					}
-					ret += "( ";
-
-					ret = [ ret, QUnit.jsDump.parse( fn, "functionArgs" ), "){" ].join( "" );
-					return join( ret, QUnit.jsDump.parse(fn,"functionCode" ), "}" );
-				},
-				array: array,
-				nodelist: array,
-				"arguments": array,
-				object: function( map, stack ) {
-					/*jshint forin:false */
-					var ret = [ ], keys, key, val, i;
-					QUnit.jsDump.up();
-					keys = [];
-					for ( key in map ) {
-						keys.push( key );
-					}
-					keys.sort();
-					for ( i = 0; i < keys.length; i++ ) {
-						key = keys[ i ];
-						val = map[ key ];
-						ret.push( QUnit.jsDump.parse( key, "key" ) + ": " + QUnit.jsDump.parse( val, undefined, stack ) );
-					}
-					QUnit.jsDump.down();
-					return join( "{", ret, "}" );
-				},
-				node: function( node ) {
-					var len, i, val,
-						open = QUnit.jsDump.HTML ? "&lt;" : "<",
-						close = QUnit.jsDump.HTML ? "&gt;" : ">",
-						tag = node.nodeName.toLowerCase(),
-						ret = open + tag,
-						attrs = node.attributes;
-
-					if ( attrs ) {
-						for ( i = 0, len = attrs.length; i < len; i++ ) {
-							val = attrs[i].nodeValue;
-							// IE6 includes all attributes in .attributes, even ones not explicitly set.
-							// Those have values like undefined, null, 0, false, "" or "inherit".
-							if ( val && val !== "inherit" ) {
-								ret += " " + attrs[i].nodeName + "=" + QUnit.jsDump.parse( val, "attribute" );
-							}
-						}
-					}
-					ret += close;
-
-					// Show content of TextNode or CDATASection
-					if ( node.nodeType === 3 || node.nodeType === 4 ) {
-						ret += node.nodeValue;
-					}
-
-					return ret + open + "/" + tag + close;
-				},
-				// function calls it internally, it's the arguments part of the function
-				functionArgs: function( fn ) {
-					var args,
-						l = fn.length;
-
-					if ( !l ) {
-						return "";
-					}
-
-					args = new Array(l);
-					while ( l-- ) {
-						// 97 is 'a'
-						args[l] = String.fromCharCode(97+l);
-					}
-					return " " + args.join( ", " ) + " ";
-				},
-				// object calls it internally, the key part of an item in a map
-				key: quote,
-				// function calls it internally, it's the content of the function
-				functionCode: "[code]",
-				// node calls it internally, it's an html attribute value
-				attribute: quote,
-				string: quote,
-				date: quote,
-				regexp: literal,
-				number: literal,
-				"boolean": literal
-			},
-			// if true, entities are escaped ( <, >, \t, space and \n )
-			HTML: false,
-			// indentation unit
-			indentChar: "  ",
-			// if true, items in a collection, are separated by a \n, else just a space.
-			multiline: true
-		};
-
-	return jsDump;
-}());
-
-// from jquery.js
-function inArray( elem, array ) {
-	if ( array.indexOf ) {
-		return array.indexOf( elem );
-	}
-
-	for ( var i = 0, length = array.length; i < length; i++ ) {
-		if ( array[ i ] === elem ) {
-			return i;
-		}
-	}
-
-	return -1;
-}
-
-/*
- * Javascript Diff Algorithm
- *  By John Resig (http://ejohn.org/)
- *  Modified by Chu Alan "sprite"
- *
- * Released under the MIT license.
- *
- * More Info:
- *  http://ejohn.org/projects/javascript-diff-algorithm/
- *
- * Usage: QUnit.diff(expected, actual)
- *
- * QUnit.diff( "the quick brown fox jumped over", "the quick fox jumps over" ) == "the  quick <del>brown </del> fox <del>jumped </del><ins>jumps </ins> over"
- */
-QUnit.diff = (function() {
-	/*jshint eqeqeq:false, eqnull:true */
-	function diff( o, n ) {
-		var i,
-			ns = {},
-			os = {};
-
-		for ( i = 0; i < n.length; i++ ) {
-			if ( !hasOwn.call( ns, n[i] ) ) {
-				ns[ n[i] ] = {
-					rows: [],
-					o: null
-				};
-			}
-			ns[ n[i] ].rows.push( i );
-		}
-
-		for ( i = 0; i < o.length; i++ ) {
-			if ( !hasOwn.call( os, o[i] ) ) {
-				os[ o[i] ] = {
-					rows: [],
-					n: null
-				};
-			}
-			os[ o[i] ].rows.push( i );
-		}
-
-		for ( i in ns ) {
-			if ( hasOwn.call( ns, i ) ) {
-				if ( ns[i].rows.length === 1 && hasOwn.call( os, i ) && os[i].rows.length === 1 ) {
-					n[ ns[i].rows[0] ] = {
-						text: n[ ns[i].rows[0] ],
-						row: os[i].rows[0]
-					};
-					o[ os[i].rows[0] ] = {
-						text: o[ os[i].rows[0] ],
-						row: ns[i].rows[0]
-					};
-				}
-			}
-		}
-
-		for ( i = 0; i < n.length - 1; i++ ) {
-			if ( n[i].text != null && n[ i + 1 ].text == null && n[i].row + 1 < o.length && o[ n[i].row + 1 ].text == null &&
-						n[ i + 1 ] == o[ n[i].row + 1 ] ) {
-
-				n[ i + 1 ] = {
-					text: n[ i + 1 ],
-					row: n[i].row + 1
-				};
-				o[ n[i].row + 1 ] = {
-					text: o[ n[i].row + 1 ],
-					row: i + 1
-				};
-			}
-		}
-
-		for ( i = n.length - 1; i > 0; i-- ) {
-			if ( n[i].text != null && n[ i - 1 ].text == null && n[i].row > 0 && o[ n[i].row - 1 ].text == null &&
-						n[ i - 1 ] == o[ n[i].row - 1 ]) {
-
-				n[ i - 1 ] = {
-					text: n[ i - 1 ],
-					row: n[i].row - 1
-				};
-				o[ n[i].row - 1 ] = {
-					text: o[ n[i].row - 1 ],
-					row: i - 1
-				};
-			}
-		}
-
-		return {
-			o: o,
-			n: n
-		};
-	}
-
-	return function( o, n ) {
-		o = o.replace( /\s+$/, "" );
-		n = n.replace( /\s+$/, "" );
-
-		var i, pre,
-			str = "",
-			out = diff( o === "" ? [] : o.split(/\s+/), n === "" ? [] : n.split(/\s+/) ),
-			oSpace = o.match(/\s+/g),
-			nSpace = n.match(/\s+/g);
-
-		if ( oSpace == null ) {
-			oSpace = [ " " ];
-		}
-		else {
-			oSpace.push( " " );
-		}
-
-		if ( nSpace == null ) {
-			nSpace = [ " " ];
-		}
-		else {
-			nSpace.push( " " );
-		}
-
-		if ( out.n.length === 0 ) {
-			for ( i = 0; i < out.o.length; i++ ) {
-				str += "<del>" + out.o[i] + oSpace[i] + "</del>";
-			}
-		}
-		else {
-			if ( out.n[0].text == null ) {
-				for ( n = 0; n < out.o.length && out.o[n].text == null; n++ ) {
-					str += "<del>" + out.o[n] + oSpace[n] + "</del>";
-				}
-			}
-
-			for ( i = 0; i < out.n.length; i++ ) {
-				if (out.n[i].text == null) {
-					str += "<ins>" + out.n[i] + nSpace[i] + "</ins>";
-				}
-				else {
-					// `pre` initialized at top of scope
-					pre = "";
-
-					for ( n = out.n[i].row + 1; n < out.o.length && out.o[n].text == null; n++ ) {
-						pre += "<del>" + out.o[n] + oSpace[n] + "</del>";
-					}
-					str += " " + out.n[i].text + nSpace[i] + pre;
-				}
-			}
-		}
-
-		return str;
-	};
-}());
-
-// for CommonJS environments, export everything
-if ( typeof exports !== "undefined" ) {
-	extend( exports, QUnit.constructor.prototype );
-}
-
-// get at whatever the global object is, like window in browsers
-}( (function() {return this;}.call()) ));
diff --git a/docs/slides/plpv14/reveal.js/test/test-markdown-element-attributes.js b/docs/slides/plpv14/reveal.js/test/test-markdown-element-attributes.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/test-markdown-element-attributes.js
+++ /dev/null
@@ -1,46 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 4, 'found four slides' );
-	});
-
-
-	test( 'Attributes on element header in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.fade-out' ).length, 1, 'found one vertical slide with class fragment.fade-out on header' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section h2.fragment.shrink' ).length, 1, 'found one vertical slide with class fragment.shrink on header' );
-	});
-
-	test( 'Attributes on element paragraphs in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section p.fragment.grow' ).length, 2, 'found a vertical slide with two paragraphs with class fragment.grow' );
-	});
-
-	test( 'Attributes on element list items in vertical slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section>section li.fragment.roll-in' ).length, 3, 'found a vertical slide with three list items with class fragment.roll-in' );
-	});
-
-	test( 'Attributes on element paragraphs in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-red' ).length, 4, 'found a horizontal slide with four paragraphs with class fragment.grow' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section li.fragment.highlight-green' ).length, 5, 'found a horizontal slide with five list items with class fragment.roll-in' );
-	});
-	test( 'Attributes on element list items in horizontal slides', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section img.reveal.stretch' ).length, 1, 'found a horizontal slide with stretched image, class img.reveal.stretch' );
-	});
-
-	test( 'Attributes on elements in vertical slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section h2.fragment.highlight-red' ).length, 2, 'found two h2 titles with fragment highlight-red in vertical slides with default element attribute separator' );
-	});
-
-	test( 'Attributes on elements in single slides with default element attribute separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides section p.fragment.highlight-blue' ).length, 3, 'found three elements with fragment highlight-blue in single slide with default element attribute separator' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/plpv14/reveal.js/test/test-markdown-slide-attributes.js b/docs/slides/plpv14/reveal.js/test/test-markdown-slide-attributes.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/test-markdown-slide-attributes.js
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 6, 'found six vertical slides' );
-	});
-
-	test( 'Id on slide', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section#slide2' ).length, 1, 'found one slide with id slide2' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section a[href="#/slide2"]' ).length, 1, 'found one slide with a link to slide2' );
-	});
-
-	test( 'data-background attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A0C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#ff0000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C6916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="zoom"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="fade"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="zoom"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-background attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#A7C66B"]' ).length, 1, 'found one vertical slide with data-background="#A0C66B"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-background="#f70000"]' ).length, 1, 'found one vertical slide with data-background="#ff0000"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#C7916B"]' ).length, 1, 'found one slide with data-background="#C6916B"' );
-	});
-
-	test( 'data-transition attributes with default separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="concave"]' ).length, 1, 'found one vertical slide with data-transition="zoom"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section[data-transition="page"]' ).length, 1, 'found one vertical slide with data-transition="fade"' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section [data-transition="concave"]' ).length, 1, 'found one slide with data-transition="zoom"' );
-	});
-
-	test( 'data-transition attributes with inline content', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section[data-background="#ff0000"]' ).length, 3, 'found three horizontal slides with data-background="#ff0000"' );
-	});
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/plpv14/reveal.js/test/test-markdown.js b/docs/slides/plpv14/reveal.js/test/test-markdown.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/test-markdown.js
+++ /dev/null
@@ -1,15 +0,0 @@
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	QUnit.module( 'Markdown' );
-
-	test( 'Vertical separator', function() {
-		strictEqual( document.querySelectorAll( '.reveal .slides>section>section' ).length, 2, 'found two slides' );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/plpv14/reveal.js/test/test.js b/docs/slides/plpv14/reveal.js/test/test.js
deleted file mode 100644
--- a/docs/slides/plpv14/reveal.js/test/test.js
+++ /dev/null
@@ -1,438 +0,0 @@
-
-// These tests expect the DOM to contain a presentation
-// with the following slide structure:
-//
-// 1
-// 2 - Three sub-slides
-// 3 - Three fragment elements
-// 3 - Two fragments with same data-fragment-index
-// 4
-
-
-Reveal.addEventListener( 'ready', function() {
-
-	// ---------------------------------------------------------------
-	// DOM TESTS
-
-	QUnit.module( 'DOM' );
-
-	test( 'Initial slides classes', function() {
-		var horizontalSlides = document.querySelectorAll( '.reveal .slides>section' )
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.past' ).length, 0, 'no .past slides' );
-		strictEqual( document.querySelectorAll( '.reveal .slides section.present' ).length, 1, 'one .present slide' );
-		strictEqual( document.querySelectorAll( '.reveal .slides>section.future' ).length, horizontalSlides.length - 1, 'remaining horizontal slides are .future' );
-
-		strictEqual( document.querySelectorAll( '.reveal .slides section.stack' ).length, 2, 'two .stacks' );
-
-		ok( document.querySelectorAll( '.reveal .slides section.stack' )[0].querySelectorAll( '.future' ).length > 0, 'vertical slides are given .future' );
-	});
-
-	// ---------------------------------------------------------------
-	// API TESTS
-
-	QUnit.module( 'API' );
-
-	test( 'Reveal.isReady', function() {
-		strictEqual( Reveal.isReady(), true, 'returns true' );
-	});
-
-	test( 'Reveal.isOverview', function() {
-		strictEqual( Reveal.isOverview(), false, 'false by default' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), true, 'true after toggling on' );
-
-		Reveal.toggleOverview();
-		strictEqual( Reveal.isOverview(), false, 'false after toggling off' );
-	});
-
-	test( 'Reveal.isPaused', function() {
-		strictEqual( Reveal.isPaused(), false, 'false by default' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), true, 'true after pausing' );
-
-		Reveal.togglePause();
-		strictEqual( Reveal.isPaused(), false, 'false after resuming' );
-	});
-
-	test( 'Reveal.isFirstSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-
-		Reveal.slide( 1, 0 );
-		strictEqual( Reveal.isFirstSlide(), false, 'false after Reveal.slide( 1, 0 )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isFirstSlide(), true, 'true after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.isLastSlide', function() {
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-
-		var lastSlideIndex = document.querySelectorAll( '.reveal .slides>section' ).length - 1;
-
-		Reveal.slide( lastSlideIndex, 0 );
-		strictEqual( Reveal.isLastSlide(), true, 'true after Reveal.slide( ', 0+ lastSlideIndex +' )' );
-
-		Reveal.slide( 0, 0 );
-		strictEqual( Reveal.isLastSlide(), false, 'false after Reveal.slide( 0, 0 )' );
-	});
-
-	test( 'Reveal.getIndices', function() {
-		var indices = Reveal.getIndices();
-
-		ok( typeof indices.hasOwnProperty( 'h' ), 'h exists' );
-		ok( typeof indices.hasOwnProperty( 'v' ), 'v exists' );
-		ok( typeof indices.hasOwnProperty( 'f' ), 'f exists' );
-
-		Reveal.slide( 1, 0 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 0, 'h 1, v 0' );
-
-		Reveal.slide( 1, 2 );
-		ok( Reveal.getIndices().h === 1 && Reveal.getIndices().v === 2, 'h 1, v 2' );
-
-		Reveal.slide( 0, 0 );
-	});
-
-	test( 'Reveal.getSlide', function() {
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-
-		equal( Reveal.getSlide( 0 ), firstSlide, 'gets correct first slide' );
-
-		strictEqual( Reveal.getSlide( 100 ), undefined, 'returns undefined when slide can\'t be found' );
-	});
-
-	test( 'Reveal.getPreviousSlide/getCurrentSlide', function() {
-		Reveal.slide( 0, 0 );
-		Reveal.slide( 1, 0 );
-
-		var firstSlide = document.querySelector( '.reveal .slides>section:first-child' );
-		var secondSlide = document.querySelector( '.reveal .slides>section:nth-child(2)>section' );
-
-		equal( Reveal.getPreviousSlide(), firstSlide, 'previous is slide #0' );
-		equal( Reveal.getCurrentSlide(), secondSlide, 'current is slide #1' );
-	});
-
-	test( 'Reveal.getScale', function() {
-		ok( typeof Reveal.getScale() === 'number', 'has scale' );
-	});
-
-	test( 'Reveal.getConfig', function() {
-		ok( typeof Reveal.getConfig() === 'object', 'has config' );
-	});
-
-	test( 'Reveal.configure', function() {
-		strictEqual( Reveal.getConfig().loop, false, '"loop" is false to start with' );
-
-		Reveal.configure({ loop: true });
-		strictEqual( Reveal.getConfig().loop, true, '"loop" has changed to true' );
-
-		Reveal.configure({ loop: false, customTestValue: 1 });
-		strictEqual( Reveal.getConfig().customTestValue, 1, 'supports custom values' );
-	});
-
-	test( 'Reveal.availableRoutes', function() {
-		Reveal.slide( 0, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: false, up: false, down: false, right: true }, 'correct for first slide' );
-
-		Reveal.slide( 1, 0 );
-		deepEqual( Reveal.availableRoutes(), { left: true, up: false, down: true, right: true }, 'correct for vertical slide' );
-	});
-
-	test( 'Reveal.next', function() {
-		Reveal.slide( 0, 0 );
-
-		// Step through vertical child slides
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 1, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 1, v: 2, f: undefined } );
-
-		// Step through fragments
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 } );
-	});
-
-	test( 'Reveal.next at end', function() {
-		Reveal.slide( 3 );
-
-		// We're at the end, this should have no effect
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 3, v: 0, f: undefined } );
-	});
-
-
-	// ---------------------------------------------------------------
-	// FRAGMENT TESTS
-
-	QUnit.module( 'Fragments' );
-
-	test( 'Sliding to fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: -1 }, 'Reveal.slide( 2, 0, -1 )' );
-
-		Reveal.slide( 2, 0, 0 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'Reveal.slide( 2, 0, 0 )' );
-
-		Reveal.slide( 2, 0, 2 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'Reveal.slide( 2, 0, 2 )' );
-
-		Reveal.slide( 2, 0, 1 );
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'Reveal.slide( 2, 0, 1 )' );
-	});
-
-	test( 'Hiding all fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 1, 'one fragment visible when index is 0' );
-
-		Reveal.slide( 2, 0, -1 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when index is -1' );
-	});
-
-	test( 'Current fragment', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 2, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment at index -1' );
-
-		Reveal.slide( 2, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 1, 'one current fragment at index 0' );
-
-		Reveal.slide( 1, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		strictEqual( fragmentSlide.querySelectorAll( '.fragment.current-fragment' ).length, 0, 'no current fragment when navigating to next slide' );
-	});
-
-	test( 'Stepping through fragments', function() {
-		Reveal.slide( 2, 0, -1 );
-
-		// forwards:
-
-		Reveal.next();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'next() goes to next fragment' );
-
-		Reveal.right();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'right() goes to next fragment' );
-
-		Reveal.down();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'down() goes to next fragment' );
-
-		Reveal.down(); // moves to f #3
-
-		// backwards:
-
-		Reveal.prev();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 2 }, 'prev() goes to prev fragment' );
-
-		Reveal.left();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 1 }, 'left() goes to prev fragment' );
-
-		Reveal.up();
-		deepEqual( Reveal.getIndices(), { h: 2, v: 0, f: 0 }, 'up() goes to prev fragment' );
-	});
-
-	test( 'Stepping past fragments', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		Reveal.slide( 0, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 0, 'no fragments visible when on previous slide' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 3, 'all fragments visible when on future slide' );
-	});
-
-	test( 'Fragment indices', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(2)' );
-
-		Reveal.slide( 3, 0, 0 );
-		equal( fragmentSlide.querySelectorAll( '.fragment.visible' ).length, 2, 'both fragments of same index are shown' );
-	});
-
-	test( 'Index generation', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(1)' );
-
-		// These have no indices defined to start with
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '2' );
-	});
-
-	test( 'Index normalization', function() {
-		var fragmentSlide = document.querySelector( '#fragment-slides>section:nth-child(3)' );
-
-		// These start out as 1-4-4 and should normalize to 0-1-1
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[0].getAttribute( 'data-fragment-index' ), '0' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[1].getAttribute( 'data-fragment-index' ), '1' );
-		equal( fragmentSlide.querySelectorAll( '.fragment' )[2].getAttribute( 'data-fragment-index' ), '1' );
-	});
-
-	asyncTest( 'fragmentshown event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmentshown', _onEvent );
-
-		Reveal.slide( 2, 0 );
-		Reveal.slide( 2, 0 ); // should do nothing
-		Reveal.slide( 2, 0, 0 ); // should do nothing
-		Reveal.next();
-		Reveal.next();
-		Reveal.prev(); // shouldn't fire fragmentshown
-
-		start();
-
-		Reveal.removeEventListener( 'fragmentshown', _onEvent );
-	});
-
-	asyncTest( 'fragmenthidden event', function() {
-		expect( 2 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'fragmenthidden', _onEvent );
-
-		Reveal.slide( 2, 0, 2 );
-		Reveal.slide( 2, 0, 2 ); // should do nothing
-		Reveal.prev();
-		Reveal.prev();
-		Reveal.next(); // shouldn't fire fragmenthidden
-
-		start();
-
-		Reveal.removeEventListener( 'fragmenthidden', _onEvent );
-	});
-
-
-	// ---------------------------------------------------------------
-	// CONFIGURATION VALUES
-
-	QUnit.module( 'Configuration' );
-
-	test( 'Controls', function() {
-		var controlsElement = document.querySelector( '.reveal>.controls' );
-
-		Reveal.configure({ controls: false });
-		equal( controlsElement.style.display, 'none', 'controls are hidden' );
-
-		Reveal.configure({ controls: true });
-		equal( controlsElement.style.display, 'block', 'controls are visible' );
-	});
-
-	test( 'Progress', function() {
-		var progressElement = document.querySelector( '.reveal>.progress' );
-
-		Reveal.configure({ progress: false });
-		equal( progressElement.style.display, 'none', 'progress are hidden' );
-
-		Reveal.configure({ progress: true });
-		equal( progressElement.style.display, 'block', 'progress are visible' );
-	});
-
-	test( 'Loop', function() {
-		Reveal.configure({ loop: true });
-
-		Reveal.slide( 0, 0 );
-
-		Reveal.left();
-		notEqual( Reveal.getIndices().h, 0, 'looped from start to end' );
-
-		Reveal.right();
-		equal( Reveal.getIndices().h, 0, 'looped from end to start' );
-
-		Reveal.configure({ loop: false });
-	});
-
-
-	// ---------------------------------------------------------------
-	// EVENT TESTS
-
-	QUnit.module( 'Events' );
-
-	asyncTest( 'slidechanged', function() {
-		expect( 3 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'slidechanged', _onEvent );
-
-		Reveal.slide( 1, 0 ); // should trigger
-		Reveal.slide( 1, 0 ); // should do nothing
-		Reveal.next(); // should trigger
-		Reveal.slide( 3, 0 ); // should trigger
-		Reveal.next(); // should do nothing
-
-		start();
-
-		Reveal.removeEventListener( 'slidechanged', _onEvent );
-
-	});
-
-	asyncTest( 'paused', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'paused', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'paused', _onEvent );
-	});
-
-	asyncTest( 'resumed', function() {
-		expect( 1 );
-
-		var _onEvent = function( event ) {
-			ok( true, 'event fired' );
-		}
-
-		Reveal.addEventListener( 'resumed', _onEvent );
-
-		Reveal.togglePause();
-		Reveal.togglePause();
-
-		start();
-
-		Reveal.removeEventListener( 'resumed', _onEvent );
-	});
-
-
-} );
-
-Reveal.initialize();
-
diff --git a/docs/slides/plpv14/tmp/Foo.hs b/docs/slides/plpv14/tmp/Foo.hs
deleted file mode 100644
--- a/docs/slides/plpv14/tmp/Foo.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Loop (listSum) where
-
-{-@ LIQUID "--no-termination"@-}
-
--- listSum     :: [Int] -> Int
--- listNatSum  :: [Int] -> Int
--- listEvenSum :: [Int] -> Int
--- add         :: Int -> Int -> Int
-
-loop :: Int -> Int -> a -> (Int -> a -> a) -> a
-loop lo hi base f = go lo base
-  where 
-    go i acc 
-      | i < hi    = go (i+1) (f i acc)
-      | otherwise = acc
-      
-listSum xs  = loop 0 n 0 body 
-  where 
-    body    = \i acc -> acc + (xs !! i) -- replace !! with `poo` and its safe? wtf.
-    n       = length xs
diff --git a/docs/slides/plpv14/tmp/liquid.css b/docs/slides/plpv14/tmp/liquid.css
deleted file mode 100644
--- a/docs/slides/plpv14/tmp/liquid.css
+++ /dev/null
@@ -1,105 +0,0 @@
-.hs-linenum {
-  color: #B2B2B2; 
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  // font-size: 120%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/external/hsmisc/Graphs.hs b/external/hsmisc/Graphs.hs
deleted file mode 100644
--- a/external/hsmisc/Graphs.hs
+++ /dev/null
@@ -1,69 +0,0 @@
-module Graphs where
-
-import qualified Data.Set as S
-import qualified Data.Map as M
-import Text.Printf
-import Data.Foldable (find)
-import Data.List (intercalate, sort, sortBy, foldl', nubBy)
-
-type Graph = M.Map Int [Int]
-
-ofList :: [(Int, Int)] -> Graph
-ofList uvs = sort `fmap` foldl' adds M.empty uvs
-  where adds g (u, v) = M.insert u (v: (M.findWithDefault [] u g)) g
-
-readGraph :: FilePath -> IO Graph
-readGraph f 
-  = do s     <- readFile f
-       let es = filter ((4 ==) . length) (words `fmap` lines s)
-       return $ ofList [((read u) :: Int, (read v) :: Int) | [u,_,v,_] <- es]
-  
-writeGraph :: FilePath -> Graph -> IO ()
-writeGraph f = writeFile f . showGraph 
-
-showGraph :: Graph -> String
-showGraph g  = intercalate "\n" [ printf "%d -> %d ;" u v | (u, vs) <- M.toList g, v <- vs] 
-
-postStar :: Graph -> S.Set Int -> Graph
-postStar g vs = go vs S.empty
-  where 
-    go new reach
-      | S.null new = project reach g
-      | otherwise  = let vs'    = posts g new 
-                         reach' = S.union reach new
-                         new'   = S.difference vs' reach' 
-                     in go new' reach'
-
-project :: S.Set Int -> Graph -> Graph
-project reach = M.map (filter (`S.member` reach)) . M.filterWithKey (\u _ -> S.member u reach)
-
-posts      :: Graph -> S.Set Int -> S.Set Int 
-posts g us = S.unions [post g u | u <- S.toList us]  
-
-post     :: Graph -> Int -> S.Set Int 
-post g u = S.fromList $ M.findWithDefault [] u g
-
-
-findPath :: Graph -> Int -> Int -> Maybe [Int]
-findPath g src dst = go M.empty (M.fromList [(src, [])]) 
-  where 
-    go :: M.Map Int [Int] -> M.Map Int [Int] -> Maybe [Int]
-    go reach frnt 
-      | M.null frnt = Nothing 
-      | otherwise   = case find ((dst ==) . fst) (M.assocs frnt) of
-                        Just (_, path) -> Just (reverse path)
-                        Nothing        -> let reach' = updReach reach frnt -- (S.fromList $ fst `fmap` S.elems frnt) 
-                                              frnt'  = postFront g reach frnt
-                                        in go reach' frnt'
-   
-updReach = M.unionWith  (\p1 p2 -> if length p1 < length p2 then p1 else p2)
-
-postFront g reach frnt 
-  = M.fromList 
-  $ nubBy (\x y -> fst x == fst y) 
-  $ sortBy (\x y -> let m = length . snd in compare (m x) (m y))
-      [ (v, u:path) | (u, path) <- M.assocs frnt
-                    , v         <- S.elems (post g u)
-                    , not (M.member v reach) 
-      ]
-
diff --git a/external/hsmisc/Lhs2Hs.hs b/external/hsmisc/Lhs2Hs.hs
deleted file mode 100644
--- a/external/hsmisc/Lhs2Hs.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/usr/bin/env runhaskell
-
-import System.Environment   (getArgs)
-import System.FilePath      (replaceExtension)
-import Data.Char            (isSpace)
-
-main         = getArgs >>= mapM lhs2hsFile
-
-lhs2hsFile f = do str <- readFile f
-                  writeFile (replaceExtension f ".hs") $ lhs2hs txBeginEnd {- txBird -} $ str
-
-lhs2hs tx    = unlines . tx . map trimSpaces . lines 
-trimSpaces   = reverse . dropWhile isSpace . reverse 
-
---------------------------------------------------------------------------
-txBeginEnd   = stepFold step Comment 
-
-data Mode = Code | Comment
-
-step Comment "\\begin{code}" = (Code   , "")
-step Comment ""              = (Comment, "")
-step Comment s               = (Comment, "-- " ++ s)
-step Code    "\\end{code}"   = (Comment, "")
-step Code    s               = (Code   , s )
-
-
-stepFold f b []     = []
-stepFold f b (x:xs) = y : stepFold f b' xs 
-                      where (b', y) = f b x 
---------------------------------------------------------------------------
-
-txBird  = map dropTrack 
-  where 
-    dropTrack ('>' : ' ' : l) = l
-    dropTrack l               = "--" ++ l
-
diff --git a/include/Data/ByteString/Char8.spec b/include/Data/ByteString/Char8.spec
deleted file mode 100644
--- a/include/Data/ByteString/Char8.spec
+++ /dev/null
@@ -1,400 +0,0 @@
-module spec Data.ByteString.Char8 where
-
-assume empty :: { bs : Data.ByteString.ByteString | bslen bs == 0 }
-
-assume singleton
-    :: Char -> { bs : Data.ByteString.ByteString | bslen bs == 1 }
-
-assume pack
-    :: w8s : [Char]
-    -> { bs : Data.ByteString.ByteString | bslen bs == len w8s }
-
-assume unpack
-    :: bs : Data.ByteString.ByteString
-    -> { w8s : [Char] | len w8s == bslen bs }
-
-assume cons
-    :: Char
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i + 1 }
-
-assume snoc
-    :: i : Data.ByteString.ByteString
-    -> Char
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i + 1 }
-
-assume append
-    :: l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen l + bslen r }
-
-head :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-assume uncons
-    :: i : Data.ByteString.ByteString
-    -> Maybe (Char, { o : Data.ByteString.ByteString | bslen o == bslen i - 1 })
-
-assume unsnoc
-    :: i : Data.ByteString.ByteString
-    -> Maybe ({ o : Data.ByteString.ByteString | bslen o == bslen i - 1 }, Char)
-
-last :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-tail :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-init :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-assume null
-    :: bs : Data.ByteString.ByteString
-    -> { b : Bool | b <=> bslen bs == 0 }
-
-assume length :: bs : Data.ByteString.ByteString -> { n : Int | bslen bs == n }
-
-assume map
-    :: (Char -> Char)
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume reverse
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume intersperse
-    :: Char
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | (bslen i == 0 <=> bslen o == 0) && (1 <= bslen i <=> bslen o == 2 * bslen i - 1) }
-
-assume intercalate
-    :: l : Data.ByteString.ByteString
-    -> rs : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.ByteString | len rs == 0 ==> bslen o == 0 }
-
-assume transpose
-    :: is : [Data.ByteString.ByteString]
-    -> { os : [{ bs : Data.ByteString.ByteString | bslen bs <= len is }] | len is == 0 ==> len os == 0}
-
-foldl1
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.ByteString | 1 <= bslen bs }
-    -> Char
-
-foldl1'
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.ByteString | 1 <= bslen bs }
-    -> Char
-
-foldr1
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.ByteString | 1 <= bslen bs }
-    -> Char
-
-foldr1'
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.ByteString | 1 <= bslen bs }
-    -> Char
-
-assume concat
-    :: is : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.ByteString | len is == 0 ==> bslen o }
-
-assume concatMap
-    :: (Char -> Data.ByteString.ByteString)
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen i == 0 ==> bslen o == 0 }
-
-assume any :: (Char -> Bool)
-    -> bs : Data.ByteString.ByteString
-    -> { b : Bool | bslen bs == 0 ==> not b }
-
-assume all :: (Char -> Bool)
-    -> bs : Data.ByteString.ByteString
-    -> { b : Bool | bslen bs == 0 ==> b }
-
-maximum
-    :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-minimum
-    :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Char
-
-assume scanl
-    :: (Char -> Char -> Char)
-    -> Char
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume scanl1
-    :: (Char -> Char -> Char)
-    -> i : { i : Data.ByteString.ByteString | 1 <= bslen i }
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume scanr
-    :: (Char -> Char -> Char)
-    -> Char
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume scanr1
-    :: (Char -> Char -> Char)
-    -> i : { i : Data.ByteString.ByteString | 1 <= bslen i }
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume mapAccumL
-    :: (acc -> Char -> (acc, Char))
-    -> acc
-    -> i : Data.ByteString.ByteString
-    -> (acc, { o : Data.ByteString.ByteString | bslen o == bslen i })
-
-assume mapAccumR
-    :: (acc -> Char -> (acc, Char))
-    -> acc
-    -> i : Data.ByteString.ByteString
-    -> (acc, { o : Data.ByteString.ByteString | bslen o == bslen i })
-
-assume replicate
-    :: n : Int
-    -> Char
-    -> { bs : Data.ByteString.ByteString | bslen bs == n }
-
-assume unfoldrN
-    :: n : Int
-    -> (a -> Maybe (Char, a))
-    -> a
-    -> ({ bs : Data.ByteString.ByteString | bslen bs <= n }, Maybe a)
-
-assume take
-    :: n : Int
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | (n <= 0 <=> bslen o == 0) &&
-                                          ((0 <= n && n <= bslen i) <=> bslen o == n) &&
-                                          (bslen i <= n <=> bslen o = bslen i) }
-
-assume drop
-    :: n : Int
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | (n <= 0 <=> bslen o == bslen i) &&
-                                          ((0 <= n && n <= bslen i) <=> bslen o == bslen i - n) &&
-                                          (bslen i <= n <=> bslen o == 0) }
-
-assume splitAt
-    :: n : Int
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | (n <= 0 <=> bslen l == 0) &&
-                                            ((0 <= n && n <= bslen i) <=> bslen l == n) &&
-                                            (bslen i <= n <=> bslen l == bslen i) }
-       , { r : Data.ByteString.ByteString | (n <= 0 <=> bslen r == bslen i) &&
-                                            ((0 <= n && n <= bslen i) <=> bslen r == bslen i - n) &&
-                                            (bslen i <= n <=> bslen r == 0) }
-       )
-
-assume takeWhile
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o <= bslen i }
-
-assume dropWhile
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o <= bslen i }
-
-assume span
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | bslen l <= bslen i }
-       , { r : Data.ByteString.ByteString | bslen r <= bslen i }
-       )
-
-assume spanEnd
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | bslen l <= bslen i }
-       , { r : Data.ByteString.ByteString | bslen r <= bslen i }
-       )
-
-assume break
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | bslen l <= bslen i }
-       , { r : Data.ByteString.ByteString | bslen r <= bslen i }
-       )
-
-assume breakEnd
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | bslen l <= bslen i }
-       , { r : Data.ByteString.ByteString | bslen r <= bslen i }
-       )
-
-assume group
-    :: i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | 1 <= bslen o && bslen o <= bslen i }]
-
-assume groupBy
-    :: (Char -> Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | 1 <= bslen o && bslen o <= bslen i }]
-
-assume inits
-    :: i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume tails
-    :: i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume split
-    :: Char
-    -> i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume splitWith
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume lines
-    :: i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume words
-    :: i : Data.ByteString.ByteString
-    -> [{ o : Data.ByteString.ByteString | bslen o <= bslen i }]
-
-assume unlines
-    :: is : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.ByteString | (len is == 0 <=> bslen o == 0) && bslen o >= len is }
-
-assume unwords
-    :: is : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.ByteString | (len is == 0 ==> bslen o == 0) && (1 <= len is ==> bslen o >= len is - 1) }
-
-assume isPrefixOf
-    :: l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { b : Bool | bslen l >= bslen r ==> not b }
-
-assume isSuffixOf
-    :: l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { b : Bool | bslen l > bslen r ==> not b }
-
-assume isInfixOf
-    :: l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { b : Bool | bslen l > bslen r ==> not b }
-
-assume breakSubstring
-    :: il : Data.ByteString.ByteString
-    -> ir : Data.ByteString.ByteString
-    -> ( { ol : Data.ByteString.ByteString | bslen ol <= bslen ir && (bslen il > bslen ir ==> bslen ol == bslen ir)}
-       , { or : Data.ByteString.ByteString | bslen or <= bslen ir && (bslen il > bslen ir ==> bslen or == 0) }
-       )
-
-assume elem
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> { b : Bool | bslen b == 0 ==> not b }
-
-assume notElem
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> { b : Bool | bslen b == 0 ==> b }
-
-assume find
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.ByteString
-    -> Maybe { w8 : Char | bslen bs /= 0 }
-
-assume filter
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o <= bslen i }
-
-assume partition
-    :: (Char -> Bool)
-    -> i : Data.ByteString.ByteString
-    -> ( { l : Data.ByteString.ByteString | bslen l <= bslen i }
-       , { r : Data.ByteString.ByteString | bslen r <= bslen i }
-       )
-
-index
-    :: bs : Data.ByteString.ByteString
-    -> { n : Int | 0 <= n && n < bslen bs }
-    -> Char
-
-assume elemIndex
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> Maybe { n : Int | 0 <= n && n < bslen bs }
-
-assume elemIndices
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> [{ n : Int | 0 <= n && n < bslen bs }]
-
-assume elemIndexEnd
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> Maybe { n : Int | 0 <= n && n < bslen bs }
-
-assume findIndex
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.ByteString
-    -> Maybe { n : Int | 0 <= n && n < bslen bs }
-
-assume findIndices
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.ByteString
-    -> [{ n : Int | 0 <= n && n < bslen bs }]
-
-assume count
-    :: Char
-    -> bs : Data.ByteString.ByteString
-    -> { n : Int | 0 <= n && n < bslen bs }
-
-assume zip
-    :: l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { o : [(Char, Char)] | len o <= bslen l && len o <= bslen r }
-
-assume zipWith
-    :: (Char -> Char -> a)
-    -> l : Data.ByteString.ByteString
-    -> r : Data.ByteString.ByteString
-    -> { o : [a] | len o <= bslen l && len o <= bslen r }
-
-assume unzip
-    :: i : [(Char, Char)]
-    -> ( { l : Data.ByteString.ByteString | bslen l == len i }
-       , { r : Data.ByteString.ByteString | bslen r == len i }
-       )
-
-assume sort
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume readInt
-    :: i : Data.ByteString.ByteString
-    -> Maybe { p : (Int, { o : Data.ByteString.ByteString | bslen o < bslen i}) | bslen i /= 0 }
-
-assume readInteger
-    :: i : Data.ByteString.ByteString
-    -> Maybe { p : (Integer, { o : Data.ByteString.ByteString | bslen o < bslen i}) | bslen i /= 0 }
-
-assume copy
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i }
-
-assume hGet
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.ByteString | bslen bs == n || bslen bs == 0 }
-
-assume hGetSome
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.ByteString | bslen bs <= n }
-
-assume hGetNonBlocking
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.ByteString | bslen bs <= n }
diff --git a/include/Data/ByteString/Lazy.spec b/include/Data/ByteString/Lazy.spec
deleted file mode 100644
--- a/include/Data/ByteString/Lazy.spec
+++ /dev/null
@@ -1,397 +0,0 @@
-module spec Data.ByteString.Lazy where
-
-measure bllen :: Data.ByteString.Lazy.ByteString -> { n : Data.Int.Int64 | 0 <= n }
-
-invariant { bs : Data.ByteString.Lazy.ByteString | 0 <= bllen bs }
-
-assume empty :: { bs : Data.ByteString.Lazy.ByteString | bllen bs == 0 }
-
-assume singleton
-    :: Data.Word.Word8 -> { bs : Data.ByteString.Lazy.ByteString | bllen bs == 1 }
-
-assume pack
-    :: w8s : [Data.Word.Word8]
-    -> { bs : Data.ByteString.ByteString | bllen bs == len w8s }
-
-assume unpack
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { w8s : [Data.Word.Word8] | len w8s == bllen bs }
-
-assume fromStrict
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bslen i }
-
-assume toStrict
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bllen i }
-
-assume fromChunks
-    :: i : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len i == 0 <=> bllen o == 0 }
-
-assume toChunks
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { os : [{ o : Data.ByteString.ByteString | bslen o <= bllen i}] | len os == 0 <=> bllen i == 0 }
-
-assume cons
-    :: Data.Word.Word8
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i + 1 }
-
-assume snoc
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Data.Word.Word8
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i + 1 }
-
-assume append
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen l + bllen r }
-
-head
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-assume uncons
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe (Data.Word.Word8, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i - 1 })
-
-assume unsnoc
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe ({ o : Data.ByteString.Lazy.ByteString | bllen o == bllen i - 1 }, Data.Word.Word8)
-
-last
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-tail
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-init
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-assume null
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | b <=> bllen bs == 0 }
-
-assume length
-    :: bs : Data.ByteString.Lazy.ByteString -> { n : Data.Int.Int64 | bllen bs == n }
-
-assume map
-    :: (Data.Word.Word8 -> Data.Word.Word8)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume reverse
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume intersperse
-    :: Data.Word.Word8
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (bllen i == 0 <=> bllen o == 0) && (1 <= bllen i <=> bllen o == 2 * bllen i - 1) }
-
-assume intercalate
-    :: l : Data.ByteString.Lazy.ByteString
-    -> rs : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len rs == 0 ==> bllen o == 0 }
-
-assume transpose
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { os : [{ bs : Data.ByteString.Lazy.ByteString | bllen bs <= len is }] | len is == 0 ==> len os == 0}
-
-foldl1
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-foldl1'
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-foldr1
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-foldr1'
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Data.Word.Word8
-
-assume concat
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len is == 0 ==> bllen o }
-
-assume concatMap
-    :: (Data.Word.Word8 -> Data.ByteString.Lazy.ByteString)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen i == 0 ==> bllen o == 0 }
-
-assume any :: (Data.Word.Word8 -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen bs == 0 ==> not b }
-
-assume all :: (Data.Word.Word8 -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen bs == 0 ==> b }
-
-maximum :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs } -> Data.Word.Word8
-
-minimum :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs } -> Data.Word.Word8
-
-assume scanl
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> Data.Word.Word8
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanl1
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> i : { i : Data.ByteString.Lazy.ByteString | 1 <= bllen i }
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanr
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> Data.Word.Word8
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanr1
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Data.Word.Word8)
-    -> i : { i : Data.ByteString.Lazy.ByteString | 1 <= bllen i }
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume mapAccumL
-    :: (acc -> Data.Word.Word8 -> (acc, Data.Word.Word8))
-    -> acc
-    -> i : Data.ByteString.Lazy.ByteString
-    -> (acc, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i })
-
-assume mapAccumR
-    :: (acc -> Data.Word.Word8 -> (acc, Data.Word.Word8))
-    -> acc
-    -> i : Data.ByteString.Lazy.ByteString
-    -> (acc, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i })
-
-assume replicate
-    :: n : Data.Int.Int64
-    -> Data.Word.Word8
-    -> { bs : Data.ByteString.Lazy.ByteString | bllen bs == n }
-
-assume unfoldrN
-    :: n : Int
-    -> (a -> Maybe (Data.Word.Word8, a))
-    -> a
-    -> ({ bs : Data.ByteString.Lazy.ByteString | bllen bs <= n }, Maybe a)
-
-assume take
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (n <= 0 ==> bllen o == 0) &&
-                                               ((0 <= n && n <= bllen i) <=> bllen o == n) &&
-                                               (bllen i <= n <=> bllen o = bllen i) }
-
-assume drop
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen o == bllen i) &&
-                                               ((0 <= n && n <= bllen i) <=> bllen o == bllen i - n) &&
-                                               (bllen i <= n <=> bllen o == 0) }
-
-assume splitAt
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen l == 0) &&
-                                                 ((0 <= n && n <= bllen i) <=> bllen l == n) &&
-                                                 (bllen i <= n <=> bllen l == bllen i) }
-       , { r : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen r == bllen i) &&
-                                                 ((0 <= n && n <= bllen i) <=> bllen r == bllen i - n) &&
-                                                 (bllen i <= n <=> bllen r == 0) }
-       )
-
-assume takeWhile
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume dropWhile
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume span
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume spanEnd
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume break
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume breakEnd
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-assume group
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | 1 <= bllen o && bllen o <= bllen i }]
-
-assume groupBy
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | 1 <= bllen o && bllen o <= bllen i }]
-
-assume inits
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume tails
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume split
-    :: Data.Word.Word8
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume splitWith
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume isPrefixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume isSuffixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume isInfixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume breakSubstring
-    :: il : Data.ByteString.Lazy.ByteString
-    -> ir : Data.ByteString.Lazy.ByteString
-    -> ( { ol : Data.ByteString.Lazy.ByteString | bllen ol <= bllen ir && (bllen il > bllen ir ==> bllen ol == bllen ir)}
-       , { or : Data.ByteString.Lazy.ByteString | bllen or <= bllen ir && (bllen il > bllen ir ==> bllen or == 0) }
-       )
-
-assume elem
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen b == 0 ==> not b }
-
-assume notElem
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen b == 0 ==> b }
-
-assume find
-    :: (Data.Word.Word8 -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { w8 : Data.Word.Word8 | bllen bs /= 0 }
-
-assume filter
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume partition
-    :: (Data.Word.Word8 -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-index
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-    -> Data.Word.Word8
-
-assume elemIndex
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume elemIndices
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> [{ n : Data.Int.Int64 | 0 <= n && n < bllen bs }]
-
-assume elemIndexEnd
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume findIndex
-    :: (Data.Word.Word8 -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume findIndices
-    :: (Data.Word.Word8 -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> [{ n : Data.Int.Int64 | 0 <= n && n < bllen bs }]
-
-assume count
-    :: Data.Word.Word8
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume zip
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : [(Data.Word.Word8, Data.Word.Word8)] | len o <= bllen l && len o <= bllen r }
-
-assume zipWith
-    :: (Data.Word.Word8 -> Data.Word.Word8 -> a)
-    -> l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : [a] | len o <= bllen l && len o <= bllen r }
-
-assume unzip
-    :: i : [(Data.Word.Word8, Data.Word.Word8)]
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l == len i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r == len i }
-       )
-
-assume sort
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume copy
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume hGet
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.Lazy.ByteString | bllen bs == n || bllen bs == 0 }
-
-assume hGetNonBlocking
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.Lazy.ByteString | bllen bs <= n }
diff --git a/include/Data/ByteString/Lazy/Char8.spec b/include/Data/ByteString/Lazy/Char8.spec
deleted file mode 100644
--- a/include/Data/ByteString/Lazy/Char8.spec
+++ /dev/null
@@ -1,417 +0,0 @@
-module spec Data.ByteString.Lazy where
-
-assume empty :: { bs : Data.ByteString.Lazy.ByteString | bllen bs == 0 }
-
-assume singleton
-    :: Char -> { bs : Data.ByteString.Lazy.ByteString | bllen bs == 1 }
-
-assume pack
-    :: w8s : [Char]
-    -> { bs : Data.ByteString.ByteString | bllen bs == len w8s }
-
-assume unpack
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { w8s : [Char] | len w8s == bllen bs }
-
-assume fromStrict
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bslen i }
-
-assume toStrict
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.ByteString | bslen o == bllen i }
-
-assume fromChunks
-    :: i : [Data.ByteString.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len i == 0 <=> bllen o == 0 }
-
-assume toChunks
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { os : [{ o : Data.ByteString.ByteString | bslen o <= bllen i}] | len os == 0 <=> bllen i == 0 }
-
-assume cons
-    :: Char
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i + 1 }
-
-assume snoc
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Char
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i + 1 }
-
-assume append
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen l + bllen r }
-
-head
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-assume uncons
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe (Char, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i - 1 })
-
-assume unsnoc
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe ({ o : Data.ByteString.Lazy.ByteString | bllen o == bllen i - 1 }, Char)
-
-last
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-tail
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-init
-    :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-assume null
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | b <=> bllen bs == 0 }
-
-assume length
-    :: bs : Data.ByteString.Lazy.ByteString -> { n : Data.Int.Int64 | bllen bs == n }
-
-assume map
-    :: (Char -> Char)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume reverse
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume intersperse
-    :: Char
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (bllen i == 0 <=> bllen o == 0) && (1 <= bllen i <=> bllen o == 2 * bllen i - 1) }
-
-assume intercalate
-    :: l : Data.ByteString.Lazy.ByteString
-    -> rs : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len rs == 0 ==> bllen o == 0 }
-
-assume transpose
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { os : [{ bs : Data.ByteString.Lazy.ByteString | bllen bs <= len is }] | len is == 0 ==> len os == 0}
-
-foldl1
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-foldl1'
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-foldr1
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-foldr1'
-    :: (Char -> Char -> Char)
-    -> { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs }
-    -> Char
-
-assume concat
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | len is == 0 ==> bllen o }
-
-assume concatMap
-    :: (Char -> Data.ByteString.Lazy.ByteString)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen i == 0 ==> bllen o == 0 }
-
-assume any :: (Char -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen bs == 0 ==> not b }
-
-assume all :: (Char -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen bs == 0 ==> b }
-
-maximum :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs } -> Char
-
-minimum :: { bs : Data.ByteString.Lazy.ByteString | 1 <= bllen bs } -> Char
-
-assume scanl
-    :: (Char -> Char -> Char)
-    -> Char
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanl1
-    :: (Char -> Char -> Char)
-    -> i : { i : Data.ByteString.Lazy.ByteString | 1 <= bllen i }
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanr
-    :: (Char -> Char -> Char)
-    -> Char
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume scanr1
-    :: (Char -> Char -> Char)
-    -> i : { i : Data.ByteString.Lazy.ByteString | 1 <= bllen i }
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume mapAccumL
-    :: (acc -> Char -> (acc, Char))
-    -> acc
-    -> i : Data.ByteString.Lazy.ByteString
-    -> (acc, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i })
-
-assume mapAccumR
-    :: (acc -> Char -> (acc, Char))
-    -> acc
-    -> i : Data.ByteString.Lazy.ByteString
-    -> (acc, { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i })
-
-assume replicate
-    :: n : Data.Int.Int64
-    -> Char
-    -> { bs : Data.ByteString.Lazy.ByteString | bllen bs == n }
-
-assume unfoldrN
-    :: n : Int
-    -> (a -> Maybe (Char, a))
-    -> a
-    -> ({ bs : Data.ByteString.Lazy.ByteString | bllen bs <= n }, Maybe a)
-
-assume take
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (n <= 0 ==> bllen o == 0) &&
-                                               ((0 <= n && n <= bllen i) <=> bllen o == n) &&
-                                               (bllen i <= n <=> bllen o = bllen i) }
-
-assume drop
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen o == bllen i) &&
-                                               ((0 <= n && n <= bllen i) <=> bllen o == bllen i - n) &&
-                                               (bllen i <= n <=> bllen o == 0) }
-
-assume splitAt
-    :: n : Data.Int.Int64
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen l == 0) &&
-                                                 ((0 <= n && n <= bllen i) <=> bllen l == n) &&
-                                                 (bllen i <= n <=> bllen l == bllen i) }
-       , { r : Data.ByteString.Lazy.ByteString | (n <= 0 <=> bllen r == bllen i) &&
-                                                 ((0 <= n && n <= bllen i) <=> bllen r == bllen i - n) &&
-                                                 (bllen i <= n <=> bllen r == 0) }
-       )
-
-assume takeWhile
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume dropWhile
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume span
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume spanEnd
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume break
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-assume breakEnd
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-assume group
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | 1 <= bllen o && bllen o <= bllen i }]
-
-assume groupBy
-    :: (Char -> Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | 1 <= bllen o && bllen o <= bllen i }]
-
-assume inits
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume tails
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume split
-    :: Char
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume splitWith
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume lines
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume words
-    :: i : Data.ByteString.Lazy.ByteString
-    -> [{ o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }]
-
-assume unlines
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | (len is == 0 <=> bllen o == 0) && bllen o >= len is }
-
-assume unwords
-    :: is : [Data.ByteString.Lazy.ByteString]
-    -> { o : Data.ByteString.Lazy.ByteString | (len is == 0 ==> bllen o == 0) && (1 <= len is ==> bllen o >= len is - 1) }
-
-assume isPrefixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume isSuffixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume isInfixOf
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen l >= bllen r ==> not b }
-
-assume breakSubstring
-    :: il : Data.ByteString.Lazy.ByteString
-    -> ir : Data.ByteString.Lazy.ByteString
-    -> ( { ol : Data.ByteString.Lazy.ByteString | bllen ol <= bllen ir && (bllen il > bllen ir ==> bllen ol == bllen ir)}
-       , { or : Data.ByteString.Lazy.ByteString | bllen or <= bllen ir && (bllen il > bllen ir ==> bllen or == 0) }
-       )
-
-assume elem
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen b == 0 ==> not b }
-
-assume notElem
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { b : Bool | bllen b == 0 ==> b }
-
-assume find
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { w8 : Char | bllen bs /= 0 }
-
-assume filter
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o <= bllen i }
-
-assume partition
-    :: (Char -> Bool)
-    -> i : Data.ByteString.Lazy.ByteString
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l <= bllen i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r <= bllen i }
-       )
-
-index
-    :: bs : Data.ByteString.Lazy.ByteString
-    -> { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-    -> Char
-
-assume elemIndex
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume elemIndices
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> [{ n : Data.Int.Int64 | 0 <= n && n < bllen bs }]
-
-assume elemIndexEnd
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume findIndex
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> Maybe { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume findIndices
-    :: (Char -> Bool)
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> [{ n : Data.Int.Int64 | 0 <= n && n < bllen bs }]
-
-assume count
-    :: Char
-    -> bs : Data.ByteString.Lazy.ByteString
-    -> { n : Data.Int.Int64 | 0 <= n && n < bllen bs }
-
-assume zip
-    :: l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : [(Char, Char)] | len o <= bllen l && len o <= bllen r }
-
-assume zipWith
-    :: (Char -> Char -> a)
-    -> l : Data.ByteString.Lazy.ByteString
-    -> r : Data.ByteString.Lazy.ByteString
-    -> { o : [a] | len o <= bllen l && len o <= bllen r }
-
-assume unzip
-    :: i : [(Char, Char)]
-    -> ( { l : Data.ByteString.Lazy.ByteString | bllen l == len i }
-       , { r : Data.ByteString.Lazy.ByteString | bllen r == len i }
-       )
-
-assume sort
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume readInt
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe { p : (Int, { o : Data.ByteString.Lazy.ByteString | bllen o < bllen i}) | bllen i /= 0 }
-
-assume readInteger
-    :: i : Data.ByteString.Lazy.ByteString
-    -> Maybe { p : (Integer, { o : Data.ByteString.Lazy.ByteString | bllen o < bllen i}) | bllen i /= 0 }
-
-assume copy
-    :: i : Data.ByteString.Lazy.ByteString
-    -> { o : Data.ByteString.Lazy.ByteString | bllen o == bllen i }
-
-assume hGet
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.Lazy.ByteString | bllen bs == n || bllen bs == 0 }
-
-assume hGetNonBlocking
-    :: System.IO.Handle
-    -> n : { n : Int | 0 <= n }
-    -> IO { bs : Data.ByteString.Lazy.ByteString | bllen bs <= n }
diff --git a/include/Data/ByteString/Short.spec b/include/Data/ByteString/Short.spec
deleted file mode 100644
--- a/include/Data/ByteString/Short.spec
+++ /dev/null
@@ -1,35 +0,0 @@
-module spec Data.ByteString.Short where
-
-measure sbslen :: Data.ByteString.Short.ShortByteString -> { n : Int | 0 <= n }
-
-invariant { bs : Data.ByteString.Short.ShortByteString  | 0 <= sbslen bs }
-
-assume toShort
-    :: i : Data.ByteString.ByteString
-    -> { o : Data.ByteString.Short.ShortByteString | sbslen o == bslen i }
-
-assume fromShort
-    :: o : Data.ByteString.Short.ShortByteString
-    -> { i : Data.ByteString.ByteString | bslen i == sbslen o }
-
-assume pack
-    :: w8s : [Data.Word.Word8]
-    -> { bs : Data.ByteString.Short.ShortByteString | sbslen bs == len w8s }
-
-assume unpack
-    :: bs : Data.ByteString.Short.ShortByteString
-    -> { w8s : [Data.Word.Word8] | len w8s == sbslen bs }
-
-assume empty :: { bs : Data.ByteString.Short.ShortByteString | sbslen bs == 0 }
-
-assume null
-    :: bs : Data.ByteString.Short.ShortByteString
-    -> { b : Bool | b <=> sbslen bs == 0 }
-
-assume length
-    :: bs : Data.ByteString.Short.ShortByteString -> { n : Int | sbslen bs == n }
-
-index
-    :: bs : Data.ByteString.Short.ShortByteString
-    -> { n : Int | 0 <= n && n < sbslen bs }
-    -> Data.Word.Word8
diff --git a/include/Data/ByteString/Unsafe.spec b/include/Data/ByteString/Unsafe.spec
deleted file mode 100644
--- a/include/Data/ByteString/Unsafe.spec
+++ /dev/null
@@ -1,29 +0,0 @@
-module spec Data.ByteString.Unsafe where
-
-unsafeHead
-    :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Data.Word.Word8
-
-unsafeTail
-    :: bs : { v : Data.ByteString.ByteString | bslen v > 0 }
-    -> { v : Data.ByteString.ByteString | bslen v = bslen bs - 1 }
-
-unsafeInit
-    :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Data.Word.Word8
-
-unsafeLast
-    :: { bs : Data.ByteString.ByteString | 1 <= bslen bs } -> Data.Word.Word8
-
-unsafeIndex
-    :: bs : Data.ByteString.ByteString
-    -> { n : Int | 0 <= n && n < bslen bs }
-    -> Data.Word.Word8
-
-assume unsafeTake
-    :: n : { n : Int | 0 <= n }
-    -> i : { i : Data.ByteString.ByteString | n <= bslen i }
-    -> { o : Data.ByteString.ByteString | bslen o == n }
-
-assume unsafeDrop
-    :: n : { n : Int | 0 <= n }
-    -> i : { i : Data.ByteString.ByteString | n <= bslen i }
-    -> { o : Data.ByteString.ByteString | bslen o == bslen i - n }
diff --git a/include/Data/Map.hiddenspec b/include/Data/Map.hiddenspec
deleted file mode 100644
--- a/include/Data/Map.hiddenspec
+++ /dev/null
@@ -1,27 +0,0 @@
-module spec Data.Map where
-
-embed Data.Map.Map as Map_t
-
----------------------------------------------------------------------------------------
--- | Logical Map Operators: Interpreted "natively" by the SMT solver ------------------
----------------------------------------------------------------------------------------
-
-measure Map_select :: forall k v. Data.Map.Map k v -> k -> v
-
-measure Map_store  :: forall k v. Data.Map.Map k v -> k -> v -> Data.Map.Map k v
-
-
-insert :: Ord k => k:k -> v:v -> m:Data.Map.Map k v -> {n:Data.Map.Map k v | n = Map_store m k v}
-
-lookup :: Ord k => k:k -> m:Data.Map.Map k v -> Maybe {v:v | v = Map_select m k}
-
-(!)    :: Ord k => m:Data.Map.Map k v -> k:k -> {v:v | v = Map_select m k}
-
-
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/.ghci b/liquid-fixpoint/.ghci
deleted file mode 100644
--- a/liquid-fixpoint/.ghci
+++ /dev/null
@@ -1,1 +0,0 @@
-:set -isrc
diff --git a/liquid-fixpoint/.git b/liquid-fixpoint/.git
deleted file mode 100644
--- a/liquid-fixpoint/.git
+++ /dev/null
@@ -1,1 +0,0 @@
-gitdir: ../.git/modules/liquid-fixpoint
diff --git a/liquid-fixpoint/.gitignore b/liquid-fixpoint/.gitignore
deleted file mode 100644
--- a/liquid-fixpoint/.gitignore
+++ /dev/null
@@ -1,30 +0,0 @@
-.depend
-*.cmi
-*.cmo
-*.cmx
-*.o
-/dist*
-.liquid
-/.vagrant/
-/.stack-work/
-/build.sh
-/external/fixpoint/config.make
-/external/fixpoint/fixpoint.native
-/external/fixpoint/misc
-/external/fixpoint/smtZ3.ml
-/external/ocamlgraph/META
-/external/ocamlgraph/Makefile
-/external/ocamlgraph/config.status
-/external/ocamlgraph/graph.a
-/external/ocamlgraph/graph.cma
-/external/ocamlgraph/graph.cmxa
-/external/ocamlgraph/src/dot_lexer.ml
-/external/ocamlgraph/src/dot_parser.ml
-/external/ocamlgraph/src/dot_parser.mli
-/external/ocamlgraph/src/dot_parser.output
-/external/ocamlgraph/src/gml.ml
-/external/ocamlgraph/src/version.ml
-/tests/neg/.liquid/
-/tests/pos/.liquid/
-/external/ocamlgraph/config.log
-/TAGS
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Defunctionalize.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Deps.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Indexed.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Partition.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Reducible.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Graph/Types.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Minimize.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Misc.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Parse.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Bitvector.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Interface.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Serialize.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Theories.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Smt/Types.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Eliminate.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolution.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/GradualSolve.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Instantiate.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Monad.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Sanitize.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solution.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Solve.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/TrivialSort.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyBinds.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/UniqifyKVars.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Solver/Worklist.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/SortCheck.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Config.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Constraints.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Environments.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Errors.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Names.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/PrettyPrint.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Refinements.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Solutions.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Sorts.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Spans.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Substitutions.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Triggers.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Utils.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Types/Visitor.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Files.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Progress.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.dyn_o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/Language/Fixpoint/Utils/Statistics.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/Paths_liquid_fixpoint.hs b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/Paths_liquid_fixpoint.hs
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/Paths_liquid_fixpoint.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# OPTIONS_GHC -fno-warn-missing-import-lists #-}
-{-# OPTIONS_GHC -fno-warn-implicit-prelude #-}
-module Paths_liquid_fixpoint (
-    version,
-    getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir,
-    getDataFileName, getSysconfDir
-  ) where
-
-import qualified Control.Exception as Exception
-import Data.Version (Version(..))
-import System.Environment (getEnv)
-import Prelude
-
-#if defined(VERSION_base)
-
-#if MIN_VERSION_base(4,0,0)
-catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
-#else
-catchIO :: IO a -> (Exception.Exception -> IO a) -> IO a
-#endif
-
-#else
-catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
-#endif
-catchIO = Exception.catch
-
-version :: Version
-version = Version [0,6,0,1] []
-bindir, libdir, dynlibdir, datadir, libexecdir, sysconfdir :: FilePath
-
-bindir     = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/bin"
-libdir     = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/lib/x86_64-osx-ghc-8.0.2/liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-dynlibdir  = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/lib/x86_64-osx-ghc-8.0.2"
-datadir    = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/share/x86_64-osx-ghc-8.0.2/liquid-fixpoint-0.6.0.1"
-libexecdir = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/libexec"
-sysconfdir = "/Users/niki/liquidtypes/liquidhaskell/.stack-work/install/x86_64-osx/lts-8.9/8.0.2/etc"
-
-getBinDir, getLibDir, getDynLibDir, getDataDir, getLibexecDir, getSysconfDir :: IO FilePath
-getBinDir = catchIO (getEnv "liquid_fixpoint_bindir") (\_ -> return bindir)
-getLibDir = catchIO (getEnv "liquid_fixpoint_libdir") (\_ -> return libdir)
-getDynLibDir = catchIO (getEnv "liquid_fixpoint_dynlibdir") (\_ -> return dynlibdir)
-getDataDir = catchIO (getEnv "liquid_fixpoint_datadir") (\_ -> return datadir)
-getLibexecDir = catchIO (getEnv "liquid_fixpoint_libexecdir") (\_ -> return libexecdir)
-getSysconfDir = catchIO (getEnv "liquid_fixpoint_sysconfdir") (\_ -> return sysconfdir)
-
-getDataFileName :: FilePath -> IO FilePath
-getDataFileName name = do
-  dir <- getDataDir
-  return (dir ++ "/" ++ name)
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h
+++ /dev/null
@@ -1,321 +0,0 @@
-/* DO NOT EDIT: This file is automatically generated by Cabal */
-
-/* package liquid-fixpoint-0.6.0.1 */
-#define VERSION_liquid_fixpoint "0.6.0.1"
-#define MIN_VERSION_liquid_fixpoint(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  6 || \
-  (major1) == 0 && (major2) == 6 && (minor) <= 0)
-
-/* package ansi-terminal-0.6.2.3 */
-#define VERSION_ansi_terminal "0.6.2.3"
-#define MIN_VERSION_ansi_terminal(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  6 || \
-  (major1) == 0 && (major2) == 6 && (minor) <= 2)
-
-/* package array-0.5.1.1 */
-#define VERSION_array "0.5.1.1"
-#define MIN_VERSION_array(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  5 || \
-  (major1) == 0 && (major2) == 5 && (minor) <= 1)
-
-/* package ascii-progress-0.3.3.0 */
-#define VERSION_ascii_progress "0.3.3.0"
-#define MIN_VERSION_ascii_progress(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  3 || \
-  (major1) == 0 && (major2) == 3 && (minor) <= 3)
-
-/* package async-2.1.1 */
-#define VERSION_async "2.1.1"
-#define MIN_VERSION_async(major1,major2,minor) (\
-  (major1) <  2 || \
-  (major1) == 2 && (major2) <  1 || \
-  (major1) == 2 && (major2) == 1 && (minor) <= 1)
-
-/* package attoparsec-0.13.1.0 */
-#define VERSION_attoparsec "0.13.1.0"
-#define MIN_VERSION_attoparsec(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  13 || \
-  (major1) == 0 && (major2) == 13 && (minor) <= 1)
-
-/* package base-4.9.1.0 */
-#define VERSION_base "4.9.1.0"
-#define MIN_VERSION_base(major1,major2,minor) (\
-  (major1) <  4 || \
-  (major1) == 4 && (major2) <  9 || \
-  (major1) == 4 && (major2) == 9 && (minor) <= 1)
-
-/* package bifunctors-5.4.1 */
-#define VERSION_bifunctors "5.4.1"
-#define MIN_VERSION_bifunctors(major1,major2,minor) (\
-  (major1) <  5 || \
-  (major1) == 5 && (major2) <  4 || \
-  (major1) == 5 && (major2) == 4 && (minor) <= 1)
-
-/* package binary-0.8.3.0 */
-#define VERSION_binary "0.8.3.0"
-#define MIN_VERSION_binary(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  8 || \
-  (major1) == 0 && (major2) == 8 && (minor) <= 3)
-
-/* package boxes-0.1.4 */
-#define VERSION_boxes "0.1.4"
-#define MIN_VERSION_boxes(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  1 || \
-  (major1) == 0 && (major2) == 1 && (minor) <= 4)
-
-/* package bytestring-0.10.8.1 */
-#define VERSION_bytestring "0.10.8.1"
-#define MIN_VERSION_bytestring(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  10 || \
-  (major1) == 0 && (major2) == 10 && (minor) <= 8)
-
-/* package cereal-0.5.4.0 */
-#define VERSION_cereal "0.5.4.0"
-#define MIN_VERSION_cereal(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  5 || \
-  (major1) == 0 && (major2) == 5 && (minor) <= 4)
-
-/* package cmdargs-0.10.17 */
-#define VERSION_cmdargs "0.10.17"
-#define MIN_VERSION_cmdargs(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  10 || \
-  (major1) == 0 && (major2) == 10 && (minor) <= 17)
-
-/* package containers-0.5.7.1 */
-#define VERSION_containers "0.5.7.1"
-#define MIN_VERSION_containers(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  5 || \
-  (major1) == 0 && (major2) == 5 && (minor) <= 7)
-
-/* package deepseq-1.4.2.0 */
-#define VERSION_deepseq "1.4.2.0"
-#define MIN_VERSION_deepseq(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  4 || \
-  (major1) == 1 && (major2) == 4 && (minor) <= 2)
-
-/* package directory-1.3.0.0 */
-#define VERSION_directory "1.3.0.0"
-#define MIN_VERSION_directory(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  3 || \
-  (major1) == 1 && (major2) == 3 && (minor) <= 0)
-
-/* package dotgen-0.4.2 */
-#define VERSION_dotgen "0.4.2"
-#define MIN_VERSION_dotgen(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  4 || \
-  (major1) == 0 && (major2) == 4 && (minor) <= 2)
-
-/* package fgl-5.5.3.1 */
-#define VERSION_fgl "5.5.3.1"
-#define MIN_VERSION_fgl(major1,major2,minor) (\
-  (major1) <  5 || \
-  (major1) == 5 && (major2) <  5 || \
-  (major1) == 5 && (major2) == 5 && (minor) <= 3)
-
-/* package fgl-visualize-0.1.0.1 */
-#define VERSION_fgl_visualize "0.1.0.1"
-#define MIN_VERSION_fgl_visualize(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  1 || \
-  (major1) == 0 && (major2) == 1 && (minor) <= 0)
-
-/* package filemanip-0.3.6.3 */
-#define VERSION_filemanip "0.3.6.3"
-#define MIN_VERSION_filemanip(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  3 || \
-  (major1) == 0 && (major2) == 3 && (minor) <= 6)
-
-/* package filepath-1.4.1.1 */
-#define VERSION_filepath "1.4.1.1"
-#define MIN_VERSION_filepath(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  4 || \
-  (major1) == 1 && (major2) == 4 && (minor) <= 1)
-
-/* package ghc-prim-0.5.0.0 */
-#define VERSION_ghc_prim "0.5.0.0"
-#define MIN_VERSION_ghc_prim(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  5 || \
-  (major1) == 0 && (major2) == 5 && (minor) <= 0)
-
-/* package hashable-1.2.6.0 */
-#define VERSION_hashable "1.2.6.0"
-#define MIN_VERSION_hashable(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  2 || \
-  (major1) == 1 && (major2) == 2 && (minor) <= 6)
-
-/* package intern-0.9.1.4 */
-#define VERSION_intern "0.9.1.4"
-#define MIN_VERSION_intern(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  9 || \
-  (major1) == 0 && (major2) == 9 && (minor) <= 1)
-
-/* package located-base-0.1.1.0 */
-#define VERSION_located_base "0.1.1.0"
-#define MIN_VERSION_located_base(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  1 || \
-  (major1) == 0 && (major2) == 1 && (minor) <= 1)
-
-/* package mtl-2.2.1 */
-#define VERSION_mtl "2.2.1"
-#define MIN_VERSION_mtl(major1,major2,minor) (\
-  (major1) <  2 || \
-  (major1) == 2 && (major2) <  2 || \
-  (major1) == 2 && (major2) == 2 && (minor) <= 1)
-
-/* package parallel-3.2.1.1 */
-#define VERSION_parallel "3.2.1.1"
-#define MIN_VERSION_parallel(major1,major2,minor) (\
-  (major1) <  3 || \
-  (major1) == 3 && (major2) <  2 || \
-  (major1) == 3 && (major2) == 2 && (minor) <= 1)
-
-/* package parsec-3.1.11 */
-#define VERSION_parsec "3.1.11"
-#define MIN_VERSION_parsec(major1,major2,minor) (\
-  (major1) <  3 || \
-  (major1) == 3 && (major2) <  1 || \
-  (major1) == 3 && (major2) == 1 && (minor) <= 11)
-
-/* package pretty-1.1.3.3 */
-#define VERSION_pretty "1.1.3.3"
-#define MIN_VERSION_pretty(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  1 || \
-  (major1) == 1 && (major2) == 1 && (minor) <= 3)
-
-/* package process-1.4.3.0 */
-#define VERSION_process "1.4.3.0"
-#define MIN_VERSION_process(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  4 || \
-  (major1) == 1 && (major2) == 4 && (minor) <= 3)
-
-/* package syb-0.6 */
-#define VERSION_syb "0.6"
-#define MIN_VERSION_syb(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  6 || \
-  (major1) == 0 && (major2) == 6 && (minor) <= 0)
-
-/* package text-1.2.2.1 */
-#define VERSION_text "1.2.2.1"
-#define MIN_VERSION_text(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  2 || \
-  (major1) == 1 && (major2) == 2 && (minor) <= 2)
-
-/* package text-format-0.3.1.1 */
-#define VERSION_text_format "0.3.1.1"
-#define MIN_VERSION_text_format(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  3 || \
-  (major1) == 0 && (major2) == 3 && (minor) <= 1)
-
-/* package time-1.6.0.1 */
-#define VERSION_time "1.6.0.1"
-#define MIN_VERSION_time(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  6 || \
-  (major1) == 1 && (major2) == 6 && (minor) <= 0)
-
-/* package transformers-0.5.2.0 */
-#define VERSION_transformers "0.5.2.0"
-#define MIN_VERSION_transformers(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  5 || \
-  (major1) == 0 && (major2) == 5 && (minor) <= 2)
-
-/* package unordered-containers-0.2.8.0 */
-#define VERSION_unordered_containers "0.2.8.0"
-#define MIN_VERSION_unordered_containers(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  2 || \
-  (major1) == 0 && (major2) == 2 && (minor) <= 8)
-
-/* tool cpphs-1.20.1 */
-#define TOOL_VERSION_cpphs "1.20.1"
-#define MIN_TOOL_VERSION_cpphs(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  20 || \
-  (major1) == 1 && (major2) == 20 && (minor) <= 1)
-
-/* tool gcc-4.2.1 */
-#define TOOL_VERSION_gcc "4.2.1"
-#define MIN_TOOL_VERSION_gcc(major1,major2,minor) (\
-  (major1) <  4 || \
-  (major1) == 4 && (major2) <  2 || \
-  (major1) == 4 && (major2) == 2 && (minor) <= 1)
-
-/* tool ghc-8.0.2 */
-#define TOOL_VERSION_ghc "8.0.2"
-#define MIN_TOOL_VERSION_ghc(major1,major2,minor) (\
-  (major1) <  8 || \
-  (major1) == 8 && (major2) <  0 || \
-  (major1) == 8 && (major2) == 0 && (minor) <= 2)
-
-/* tool ghc-pkg-8.0.2 */
-#define TOOL_VERSION_ghc_pkg "8.0.2"
-#define MIN_TOOL_VERSION_ghc_pkg(major1,major2,minor) (\
-  (major1) <  8 || \
-  (major1) == 8 && (major2) <  0 || \
-  (major1) == 8 && (major2) == 0 && (minor) <= 2)
-
-/* tool haddock-2.17.3 */
-#define TOOL_VERSION_haddock "2.17.3"
-#define MIN_TOOL_VERSION_haddock(major1,major2,minor) (\
-  (major1) <  2 || \
-  (major1) == 2 && (major2) <  17 || \
-  (major1) == 2 && (major2) == 17 && (minor) <= 3)
-
-/* tool hpc-0.67 */
-#define TOOL_VERSION_hpc "0.67"
-#define MIN_TOOL_VERSION_hpc(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  67 || \
-  (major1) == 0 && (major2) == 67 && (minor) <= 0)
-
-/* tool hsc2hs-0.68.1 */
-#define TOOL_VERSION_hsc2hs "0.68.1"
-#define MIN_TOOL_VERSION_hsc2hs(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  68 || \
-  (major1) == 0 && (major2) == 68 && (minor) <= 1)
-
-/* tool hscolour-1.24 */
-#define TOOL_VERSION_hscolour "1.24"
-#define MIN_TOOL_VERSION_hscolour(major1,major2,minor) (\
-  (major1) <  1 || \
-  (major1) == 1 && (major2) <  24 || \
-  (major1) == 1 && (major2) == 24 && (minor) <= 0)
-
-/* tool pkg-config-0.28 */
-#define TOOL_VERSION_pkg_config "0.28"
-#define MIN_TOOL_VERSION_pkg_config(major1,major2,minor) (\
-  (major1) <  0 || \
-  (major1) == 0 && (major2) <  28 || \
-  (major1) == 0 && (major2) == 28 && (minor) <= 0)
-
-#define CURRENT_COMPONENT_ID "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-
-#define CURRENT_PACKAGE_KEY "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint
deleted file mode 100644
# file too large to diff: liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.hi
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.hi and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.o b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.o
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/Main.o and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/bin/Fixpoint.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/bin/Fixpoint.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/fixpoint/fixpoint-tmp/bin/Fixpoint.dump-hi
+++ /dev/null
@@ -1,260 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:32.758206 UTC
-
-interface main@main:Main 8002
-  interface hash: 9d2d7de387ed04afed615a167e1f60e7
-  ABI hash: a018e8eb4472235ef1a4b5ee0656f0c2
-  export-list hash: 7abb5b2ee466f17997d3e346df534236
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 62123b5673289d20d3136827f10b285a
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Main.main
-module dependencies:
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Instantiate
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Parse
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Bitvector
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Monad
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.UniqifyBinds
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Utils.Statistics
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.Exit 068ba078eb20417d7af66db8b8ab4db1
-import  -/  liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-import  -/  liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver d69d6f3a7a82a74dfc0b63b28dcb8654
-import  -/  liquid-fixpoint-0.6.0.1@liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-d6831ef04cb9301b090dfae6f7bb7ec7
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module Main.$trModule2 Main.$trModule1) -}
-847d9fc3b8e6f0b424199f36b4999bb2
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Main"#) -}
-24ef6042833e75ffd7aa98b83ecca98d
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "main"#) -}
-ef910cbb66501a23239177a1af86387b
-  main :: GHC.Types.IO b
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Main.main1
-                  `cast`
-                (forall (b :: <*>_N). Sym (GHC.Types.N:IO[0] <b>_R)) -}
-66c6bbdb72e3b60db019e526091e1a67
-  main1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, b #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ @ b
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Types.Config.getOpts1
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case System.Console.CmdArgs.Verbosity.ref
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ System.Console.CmdArgs.Verbosity.Verbosity
-                        var#
-                        ipv of ds { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild1 {
-                   DEFAULT
-                   -> case Language.Fixpoint.Solver.solveFQ1
-                             ipv1
-                             ipv2 of ds2 { (#,#) ipv4 ipv5 ->
-                      System.Exit.exitWith1 @ b ipv5 ipv4 }
-                   System.Console.CmdArgs.Verbosity.Loud
-                   -> case GHC.IO.Handle.Text.hPutStr2
-                             GHC.IO.Handle.FD.stdout
-                             (GHC.CString.unpackAppendCString#
-                                "Options: "#
-                                (case ipv1 of ww2 { Language.Fixpoint.Types.Config.Config ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ww33 ww34 ->
-                                 Language.Fixpoint.Types.Config.$w$cshowsPrec
-                                   0#
-                                   ww3
-                                   ww4
-                                   ww5
-                                   ww6
-                                   ww7
-                                   ww8
-                                   ww9
-                                   ww10
-                                   ww11
-                                   ww12
-                                   ww13
-                                   ww14
-                                   ww15
-                                   ww16
-                                   ww17
-                                   ww18
-                                   ww19
-                                   ww20
-                                   ww21
-                                   ww22
-                                   ww23
-                                   ww24
-                                   ww25
-                                   ww26
-                                   ww27
-                                   ww28
-                                   ww29
-                                   ww30
-                                   ww31
-                                   ww32
-                                   ww33
-                                   ww34
-                                   (GHC.Types.[] @ GHC.Types.Char) }))
-                             GHC.Types.True
-                             ipv2 of ds2 { (#,#) ipv4 ipv5 ->
-                      case GHC.IO.Handle.Internals.wantWritableHandle1
-                             @ ()
-                             GHC.IO.Handle.hFlush2
-                             GHC.IO.Handle.FD.stdout
-                             GHC.IO.Handle.Internals.flushWriteBuffer1
-                               `cast`
-                             (<GHC.IO.Handle.Types.Handle__>_R
-                              ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                             ipv4 of ds3 { (#,#) ipv6 ipv7 ->
-                      case Language.Fixpoint.Solver.solveFQ1
-                             ipv1
-                             ipv6 of ds4 { (#,#) ipv8 ipv9 ->
-                      System.Exit.exitWith1 @ b ipv9 ipv8 } } } } } } }) -}
-87e4542467a6dc3616912b8a9d9b7405
-  main2 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Prim.Any #)
-  {- Arity: 1,
-     Unfolding: (GHC.TopHandler.runMainIO1
-                   @ GHC.Prim.Any
-                   (Main.main1 @ GHC.Prim.Any)
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <GHC.Prim.Any>_R))) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf-ghc8.0.2.dylib b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf-ghc8.0.2.dylib
deleted file mode 100644
# file too large to diff: liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf-ghc8.0.2.dylib
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.a b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.a
deleted file mode 100644
# file too large to diff: liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/libHSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.a
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Defunctionalize.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Defunctionalize.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Defunctionalize.dump-hi
+++ /dev/null
@@ -1,2829 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:26.486917 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Defunctionalize 8002
-  interface hash: d08caec4180264334440ad1a538f7405
-  ABI hash: f06278cdfe70ee3d1749f82b2bff2c99
-  export-list hash: a7e913dbe95bb42a0522da6a73270cff
-  orphan hash: 9bc9703251d1a4f2745f62a6a2813102
-  flag hash: efefea085f57ac4c34e4e8a84ae24728
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Defunctionalize.defuncAny
-  Language.Fixpoint.Defunctionalize.defunctionalize
-  Language.Fixpoint.Defunctionalize.makeLamArg
-  Language.Fixpoint.Defunctionalize.Defunc{Language.Fixpoint.Defunctionalize.defunc}
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  fM 450f2c1c5f56026cb37b3c83834e592d
-  mapSnd 80590cb19a206f88138689a227d85b17
-  secondM 5bd51524e54059148447181e3f40360e
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-  whenM 79a3d54805208bb28a316c5050755a17
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  checkSortExpr 4c8095767e6c0674ee9d2d18e1e3e042
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  allowHO 581420630f74330e11013d86878bcae3
-  alphaEquivalence 057db3d16fd9c58ffe26e9183c7f81c9
-  betaEquivalence 019a658d1ccc1df8daf79647ec6e823f
-  defunction 79d66872e25fc5d71896c943a621ea61
-  normalForm 9f97e94251b5c645df085fb5e7a7cde3
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  GInfo 1052549cc559e08aaa78c218edda206c
-  GWfC 87bcb851e06480707d62eba2b3c2c0c6
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  TaggedC 710144f9da9a9e879219a27a9c6dc76f
-  WfC 4501f427ab7a0541203dd170d4f9b80e
-  WfC 50354839b899806bfddb7dd9a816596d
-  _crhs 746ca2f97e781cb1955fd7640112b9a8
-  asserts 39bbdb6193c8af948ed932b55699661b
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  dLits 520fb0647a01216c687192a56bf631fa
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wexpr 83515c1aa6205bfb453ccbfabb4f0b10
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-  emptyIBindEnv dae79859b3442c211473f5cded0c14f7
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  mapMSEnv 65a479f02008539ef5db9da17758dad9
-  mapWithKeyMBindEnv 9e2275fcf8423711cbdbf21dd8f18caa
-  memberIBindEnv 6702fd78c0541d0458bf46243a55c085
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  intArgName 6428e688e6c8bd56e1f50b5eb6ad378e
-  intSymbol e3ca25b3b5ce8f9f7ec4158e72746e1c
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EApp 242f67cc5b7496adee37b0324be59497
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EEq 9242ee92a55fe451987339b69aae1cbb
-  ELam 20eee96d53677ca43811052ef690f968
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PTrue 5df77d7a117ac1937594998bc4175838
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  subst1 ff192c02dc885c0c57d77566090d0798
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  TR 45d4ab87811abab693d02e1f903b6833
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-  noTrigger 2a3844e2122655f969f8cc5c99ed8bb2
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  mapMExpr 6616a904920b9995d8850ccd6842422c
-  stripCasts b393e58e10c00b233928107eccbc8744
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State 749dca8ca0e6625b32091d445bd92b01
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Class 6d31234b0a911b56412061943d18b89e
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.State.Lazy 371607e50dde46b5f4103b3ab334a497
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefunc(,) ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Sorts.Sort)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U(U,U)><L,U>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefunc(,)0 ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U(U,1*U(U,U(U,U)))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)>_N)) -}
-53db263d1014a0931ceaa0167c2595b3
-  $fDefunc(,)0_$cdefunc ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 1, Strictness: <S,1*U(U,1*U(U,U(U,U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc ww1 ww2 }) -}
-6b71fc642dfe04f9a165e4c00b287891
-  $fDefunc(,)0_$cdefunc1 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: (\ (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Types.Visitor.mapMExpr
-                       @ (Control.Monad.Trans.State.Lazy.StateT
-                            Language.Fixpoint.Defunctionalize.DFST
-                            Data.Functor.Identity.Identity)
-                       (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                          @ Language.Fixpoint.Defunctionalize.DFST)
-                       Language.Fixpoint.Defunctionalize.$fDefunc(,)6
-                         `cast`
-                       (<Language.Fixpoint.Types.Refinements.Expr>_R
-                        ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                      <Language.Fixpoint.Defunctionalize.DFST>_N
-                                      <Data.Functor.Identity.Identity>_R
-                                      <Language.Fixpoint.Types.Refinements.Expr>_N))
-                       e
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  case s1 of wild { Language.Fixpoint.Defunctionalize.DFST dt ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                  case ds7 of wild1 {
-                    GHC.Types.False
-                    -> (e, wild)
-                         `cast`
-                       (Sym (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R))
-                    GHC.Types.True
-                    -> case (m1
-                               `cast`
-                             (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <Language.Fixpoint.Defunctionalize.DFST>_N
-                                  <Data.Functor.Identity.Identity>_R
-                                  <Language.Fixpoint.Types.Refinements.Expr>_N)
-                               wild)
-                              `cast`
-                            (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                       case ((Language.Fixpoint.Types.Visitor.mapMExpr
-                                @ (Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Defunctionalize.DFST
-                                     Data.Functor.Identity.Identity)
-                                (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                                   @ Language.Fixpoint.Defunctionalize.DFST)
-                                Language.Fixpoint.Defunctionalize.$fDefunc(,)5
-                                  `cast`
-                                (<Language.Fixpoint.Types.Refinements.Expr>_R
-                                 ->_R Trans
-                                          (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                           ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                                         <(Language.Fixpoint.Types.Refinements.Expr,
-                                                           Language.Fixpoint.Defunctionalize.DFST)>_R))
-                                          (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                                    <Language.Fixpoint.Defunctionalize.DFST>_N
-                                                    <Data.Functor.Identity.Identity>_R
-                                                    <Language.Fixpoint.Types.Refinements.Expr>_N)))
-                                a1)
-                               `cast`
-                             (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <Language.Fixpoint.Defunctionalize.DFST>_N
-                                  <Data.Functor.Identity.Identity>_R
-                                  <Language.Fixpoint.Types.Refinements.Expr>_N)
-                               s')
-                              `cast`
-                            (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R) of wild3 { (,) a2 s'1 ->
-                       case ((Language.Fixpoint.Types.Visitor.mapMExpr
-                                @ (Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Defunctionalize.DFST
-                                     Data.Functor.Identity.Identity)
-                                (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                                   @ Language.Fixpoint.Defunctionalize.DFST)
-                                Language.Fixpoint.Defunctionalize.logRedex
-                                a2)
-                               `cast`
-                             (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <Language.Fixpoint.Defunctionalize.DFST>_N
-                                  <Data.Functor.Identity.Identity>_R
-                                  <Language.Fixpoint.Types.Refinements.Expr>_N)
-                               s'1)
-                              `cast`
-                            (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R) of wild4 { (,) a3 s'2 ->
-                       (Language.Fixpoint.Types.Visitor.mapMExpr
-                          @ (Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Defunctionalize.DFST
-                               Data.Functor.Identity.Identity)
-                          (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                             @ Language.Fixpoint.Defunctionalize.DFST)
-                          Language.Fixpoint.Defunctionalize.$fDefunc(,)2
-                          a3)
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         s'2 } } } } })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Expr>_N))) -}
-592c56f47249b650c27a93620ebec6f9
-  $fDefunc(,)0_$dFunctor ::
-    GHC.Base.Functor Data.Functor.Identity.Identity
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Data.Functor.Identity.$fFunctorIdentity -}
-e71ad725156f706798e6243ebaa978a6
-  $fDefunc(,)0_$s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$cp1Applicative
-                     @ s)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$cpure
-                     @ s)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$c<*>
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c*>
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity) -}
-82546e6487c6a45fe5591b4810d910eb
-  $fDefunc(,)0_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity (a -> b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,U))><L,1*C1(U(U,U))><L,U>m,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (ds :: Control.Monad.Trans.State.Lazy.StateT
-                            s Data.Functor.Identity.Identity (a -> b))
-                   (ds1 :: Control.Monad.Trans.State.Lazy.StateT
-                             s Data.Functor.Identity.Identity a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a -> b, s)
-                      @ (b, s)
-                      (ds
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <s>_N <Data.Functor.Identity.Identity>_R <a -> b>_N)
-                         s1)
-                      (\ (ds2 :: (a -> b, s))[OneShot] ->
-                       Data.Functor.Identity.$fMonadIdentity_$c>>=
-                         @ (a, s)
-                         @ (b, s)
-                         (ds1
-                            `cast`
-                          (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <s>_N <Data.Functor.Identity.Identity>_R <a>_N)
-                            (case ds2 of wild { (,) f s' -> s' }))
-                         (\ (ds3 :: (a, s))[OneShot] ->
-                          Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                            @ (b, s)
-                            (case ds2 of wild { (,) f s' ->
-                             f (case ds3 of wild1 { (,) x s'' -> x }) },
-                             case ds3 of wild { (,) x s'' -> s'' }))))) -}
-73df398a9c4c0891eb40ea9b58ec07f8
-  $fDefunc(,)0_$s$fApplicativeStateT_$cp1Applicative ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fFunctorStateT -}
-6300d87418d17eaf0b6b0b7f3210d734
-  $fDefunc(,)0_$s$fApplicativeStateT_$cpure ::
-    a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (a, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity a)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (a, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (a, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <a>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                      @ (a, s)
-                      (a1, s1))) -}
-be4c1c98dbfaf23f012756d70bd58d7a
-  $fDefunc(,)0_$s$fFunctorStateT ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fFunctorStateT_$cfmap
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fFunctorStateT_$c<$
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Data.Functor.Identity.$fFunctorIdentity) -}
-e36146d79e93defe5017842fd74c967e
-  $fDefunc(,)0_$s$fFunctorStateT_$cfmap ::
-    (a -> b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><L,1*C1(U(U,U))><L,U>m,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (f :: a -> b)
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT
-                            s Data.Functor.Identity.Identity a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.$
-                      @ 'GHC.Types.PtrRepLifted
-                      @ (Data.Functor.Identity.Identity (a, s))
-                      @ (Data.Functor.Identity.Identity (b, s))
-                      (Data.Functor.Identity.$fFunctorIdentity_$cfmap
-                         @ (a, s)
-                         @ (b, s)
-                         (\ (ds :: (a, s)) ->
-                          (f (case ds of wild { (,) a1 s' -> a1 }),
-                           case ds of wild { (,) a1 s' -> s' })))
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m1
-                         s1))) -}
-d5bd953a7d105b35acf4729f4739c560
-  $fDefunc(,)0_$s$fMonadStateT ::
-    GHC.Base.Monad
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$cp1Monad
-                     @ s)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$c>>=
-                     @ s)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$c>>
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fMonadStateT_$creturn
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Data.Functor.Identity.$fMonadIdentity)
-                  (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$cfail
-                     @ s) -}
-53f502e66cb30429a17d8cb4f4763068
-  $fDefunc(,)0_$s$fMonadStateT_$c>> ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(A,1*U))><C(S),1*C1(U(U,U))><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT
-                            s Data.Functor.Identity.Identity a)
-                   (k :: Control.Monad.Trans.State.Lazy.StateT
-                           s Data.Functor.Identity.Identity b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a, s)
-                      @ (b, s)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m1
-                         s1)
-                      (\ (ds :: (a, s))[OneShot] ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ b
-                         k
-                         (case ds of wild { (,) a1 s' -> s' })))) -}
-73633479bae32a5d3e68856674b97711
-  $fDefunc(,)0_$s$fMonadStateT_$c>>= ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity a
-    -> (a
-        -> Control.Monad.Trans.State.Lazy.StateT
-             s Data.Functor.Identity.Identity b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,U))><C(C(S)),1*C1(C1(U(U,U)))><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT
-                            s Data.Functor.Identity.Identity a)
-                   (k :: a
-                         -> Control.Monad.Trans.State.Lazy.StateT
-                              s Data.Functor.Identity.Identity b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a, s)
-                      @ (b, s)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m1
-                         s1)
-                      (\ (ds :: (a, s))[OneShot] ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ b
-                         (k (case ds of wild { (,) a1 s' -> a1 }))
-                         (case ds of wild { (,) a1 s' -> s' })))) -}
-b8b4ba9e649be39fe13abdf0c798976a
-  $fDefunc(,)0_$s$fMonadStateT_$cfail ::
-    GHC.Base.String
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-  {- Arity: 2, Strictness: <B,U><B,A>x, Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s @ a (str :: GHC.Base.String) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (a, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s Data.Functor.Identity.Identity a)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (a, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (a, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <a>_N))
-                   (\ (ds :: s) ->
-                    Data.Functor.Identity.$fMonadIdentity_$s$dmfail @ (a, s) str)) -}
-1380f144ce8db85b11a9f5341240e22b
-  $fDefunc(,)0_$s$fMonadStateT_$cp1Monad ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT -}
-1ded39b2ab3214c1408a4da1b90a91b5
-  $fDefunc(,)1 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Sorts.Sort)
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> Data.Functor.Identity.Identity
-         ((Language.Fixpoint.Types.Names.Symbol,
-           Language.Fixpoint.Types.Sorts.Sort),
-          Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U(U,U)><L,U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort))
-                   (eta :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { (,) x t ->
-                 ((x, t), eta)
-                   `cast`
-                 (Sym (Data.Functor.Identity.N:Identity[0]
-                           <((Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Sorts.Sort),
-                             Language.Fixpoint.Defunctionalize.DFST)>_R)) }) -}
-8eb93c15d70211c7d7dfa5c576c7605a
-  $fDefunc(,)2 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Defunctionalize.DFST
-         Data.Functor.Identity.Identity
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   eta1 :: Language.Fixpoint.Types.Refinements.Expr
-                   = case Language.Fixpoint.Defunctionalize.normalizeLamsFromTo
-                            Language.Fixpoint.Defunctionalize.$fDefunc(,)3
-                            eta of wild { (,) ds1 y ->
-                     y }
-                 } in
-                 (\ (eta2 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  (eta1, eta2))
-                   `cast`
-                 (Trans
-                      (<Language.Fixpoint.Defunctionalize.DFST>_R
-                       ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                     <(Language.Fixpoint.Types.Refinements.Expr,
-                                       Language.Fixpoint.Defunctionalize.DFST)>_R))
-                      (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                <Language.Fixpoint.Defunctionalize.DFST>_N
-                                <Data.Functor.Identity.Identity>_R
-                                <Language.Fixpoint.Types.Refinements.Expr>_N)))) -}
-a88bad55b456bdab8c552b4ec7602107
-  $fDefunc(,)3 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 1#) -}
-a9eb22ef1e0378c446a1457fdd88c9cd
-  $fDefunc(,)4 ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> ((), Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 (GHC.Tuple.(), eta1)) -}
-b269cc6ac09f6c368385d372511a1ec8
-  $fDefunc(,)5 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> (Language.Fixpoint.Types.Refinements.Expr,
-        Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (e :: Language.Fixpoint.Types.Refinements.Expr)
-                   (eta :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 (e,
-                  case eta of wild { Language.Fixpoint.Defunctionalize.DFST dt ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                  case ds4 of wild1 {
-                    GHC.Types.False -> wild
-                    GHC.Types.True
-                    -> case e of wild2 {
-                         DEFAULT -> wild
-                         Language.Fixpoint.Types.Refinements.ELam ds12 ds13
-                         -> Language.Fixpoint.Defunctionalize.DFST
-                              dt
-                              ds
-                              ds1
-                              ds2
-                              ds3
-                              GHC.Types.True
-                              ds5
-                              ds6
-                              ds7
-                              ds8
-                              (GHC.Types.: @ Language.Fixpoint.Types.Refinements.Expr wild2 ds9)
-                              ds10
-                              ds11 } } })) -}
-a164b90b7ee7b7fa8d75bf9a91d635a5
-  $fDefunc(,)6 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> Data.Functor.Identity.Identity
-         (Language.Fixpoint.Types.Refinements.Expr,
-          Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 2, Strictness: <S,1*U><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case Language.Fixpoint.Defunctionalize.$wreBind
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2)
-                   `cast`
-                 (Sym (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             Language.Fixpoint.Defunctionalize.DFST)>_R)) }) -}
-90efcb3040684ae3303066f905049341
-  $fDefunc(,)7 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Defunctionalize.$fDefunc(,)8) -}
-5dc226595aa46a3464183a44994c20df
-  $fDefunc(,)8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "lambda_fun_"#) -}
-be89d469f344959906816040d0b1ee7d
-  $fDefunc(,)_$cdefunc ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Sorts.Sort)
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Sorts.Sort)
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U(U,U)><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)1
-                  `cast`
-                (<(Language.Fixpoint.Types.Names.Symbol,
-                   Language.Fixpoint.Types.Sorts.Sort)>_R
-                 ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <Language.Fixpoint.Defunctionalize.DFST>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <(Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort)>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncExpr ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Arity: 1, Strictness: <L,U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncGInfo ::
-    (Language.Fixpoint.Defunctionalize.Defunc (c a),
-     Language.Fixpoint.Types.Constraints.TaggedC c a) =>
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,C(U)><L,A><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (2, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncGInfo_$cdefunc
-                  `cast`
-                (forall (c :: <* -> *>_N) (a :: <*>_N).
-                 <Language.Fixpoint.Defunctionalize.Defunc (c a)>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.TaggedC c a>_R
-                 ->_R Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                               <Language.Fixpoint.Types.Constraints.GInfo c a>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncGInfo_$cdefunc ::
-    (Language.Fixpoint.Defunctionalize.Defunc (c a),
-     Language.Fixpoint.Types.Constraints.TaggedC c a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Constraints.GInfo c a)
-  {- Arity: 3,
-     Strictness: <L,C(U)><L,A><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Defunctionalize.Defunc (c a))
-                   (w1 :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc1 @ c @ a w w2) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncHashMap ::
-    (Language.Fixpoint.Defunctionalize.Defunc a, GHC.Classes.Eq k,
-     Data.Hashable.Class.Hashable k) =>
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Data.HashMap.Base.HashMap k a)
-  DFunId
-  {- Arity: 4,
-     Strictness: <L,C(U)><L,U(C(C1(U)),A)><L,U(A,C(U(U)))><L,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (3, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncHashMap_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N) (k :: <*>_N).
-                 <Language.Fixpoint.Defunctionalize.Defunc a>_R
-                 ->_R <GHC.Classes.Eq k>_R
-                 ->_R <Data.Hashable.Class.Hashable k>_R
-                 ->_R Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                               <Data.HashMap.Base.HashMap k a>_N)) -}
-324497e3d208e908e68a7314cc2c3cf5
-  $fDefuncHashMap1 ::
-    [(k, a)] -> Data.HashMap.Base.HashMap k a -> [(k, a)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-ceb2f6075219650d5bdf4db4b6fbaee6
-  $fDefuncHashMap2 ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> ([(k, a)], Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m,
-     Unfolding: (\ @ k
-                   @ a
-                   (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 (GHC.Types.[] @ (k, a), s1)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncHashMap_$cdefunc ::
-    (Language.Fixpoint.Defunctionalize.Defunc a, GHC.Classes.Eq k,
-     Data.Hashable.Class.Hashable k) =>
-    Data.HashMap.Base.HashMap k a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Data.HashMap.Base.HashMap k a)
-  {- Arity: 4,
-     Strictness: <L,C(U)><L,U(C(C1(U)),A)><L,U(A,C(U(U)))><L,1*U>,
-     Unfolding: (\ @ a
-                   @ k
-                   ($dDefunc :: Language.Fixpoint.Defunctionalize.Defunc a)
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (m :: Data.HashMap.Base.HashMap k a) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           [(k, a)]
-                   = letrec {
-                       go :: [(k, a)]
-                             -> Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Defunctionalize.DFST
-                                  Data.Functor.Identity.Identity
-                                  [(k, a)]
-                         {- Arity: 1, Strictness: <S,1*U> -}
-                       = \ (ds :: [(k, a)]) ->
-                         case ds of wild {
-                           []
-                           -> (Language.Fixpoint.Defunctionalize.$fDefuncHashMap2 @ k @ a)
-                                `cast`
-                              (Trans
-                                   (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                    ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                                  <([(k, a)],
-                                                    Language.Fixpoint.Defunctionalize.DFST)>_R))
-                                   (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                             <Language.Fixpoint.Defunctionalize.DFST>_N
-                                             <Data.Functor.Identity.Identity>_R
-                                             <[(k, a)]>_N)))
-                           : y ys
-                           -> let {
-                                m2 :: Control.Monad.Trans.State.Lazy.StateT
-                                        Language.Fixpoint.Defunctionalize.DFST
-                                        Data.Functor.Identity.Identity
-                                        (k, a)
-                                = case y of wild1 { (,) x1 y1 ->
-                                  let {
-                                    m3 :: Control.Monad.Trans.State.Lazy.StateT
-                                            Language.Fixpoint.Defunctionalize.DFST
-                                            Data.Functor.Identity.Identity
-                                            a
-                                    = $dDefunc
-                                        `cast`
-                                      (Language.Fixpoint.Defunctionalize.N:Defunc[0] <a>_N)
-                                        y1
-                                  } in
-                                  (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                                   let {
-                                     ds1 :: Data.Functor.Identity.Identity
-                                              (a, Language.Fixpoint.Defunctionalize.DFST)
-                                     = m3
-                                         `cast`
-                                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                                            <Data.Functor.Identity.Identity>_R
-                                            <a>_N)
-                                         s1
-                                   } in
-                                   ((x1,
-                                     case ds1
-                                            `cast`
-                                          (Data.Functor.Identity.N:Identity[0]
-                                               <(a,
-                                                 Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                                     a1 }),
-                                    case ds1
-                                           `cast`
-                                         (Data.Functor.Identity.N:Identity[0]
-                                              <(a,
-                                                Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                                    s' })
-                                     `cast`
-                                   (Sym (Data.Functor.Identity.N:Identity[0]
-                                             <((k, a), Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                                    `cast`
-                                  (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                                            <Data.Functor.Identity.Identity>_R
-                                            <(k, a)>_N)) }
-                              } in
-                              let {
-                                ds1 :: Control.Monad.Trans.State.Lazy.StateT
-                                         Language.Fixpoint.Defunctionalize.DFST
-                                         Data.Functor.Identity.Identity
-                                         [(k, a)]
-                                = go ys
-                              } in
-                              (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                               let {
-                                 ds2 :: Data.Functor.Identity.Identity
-                                          ((k, a), Language.Fixpoint.Defunctionalize.DFST)
-                                 = m2
-                                     `cast`
-                                   (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                        <Language.Fixpoint.Defunctionalize.DFST>_N
-                                        <Data.Functor.Identity.Identity>_R
-                                        <(k, a)>_N)
-                                     s1
-                               } in
-                               let {
-                                 ds3 :: Data.Functor.Identity.Identity
-                                          ([(k, a)], Language.Fixpoint.Defunctionalize.DFST)
-                                 = ds1
-                                     `cast`
-                                   (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                        <Language.Fixpoint.Defunctionalize.DFST>_N
-                                        <Data.Functor.Identity.Identity>_R
-                                        <[(k, a)]>_N)
-                                     (case ds2
-                                             `cast`
-                                           (Data.Functor.Identity.N:Identity[0]
-                                                <((k, a),
-                                                  Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) a1 s' ->
-                                      s' })
-                               } in
-                               (GHC.Types.:
-                                  @ (k, a)
-                                  (case ds2
-                                          `cast`
-                                        (Data.Functor.Identity.N:Identity[0]
-                                             <((k, a),
-                                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) a1 s' ->
-                                   a1 })
-                                  (case ds3
-                                          `cast`
-                                        (Data.Functor.Identity.N:Identity[0]
-                                             <([(k, a)],
-                                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) x s'' ->
-                                   x }),
-                                case ds3
-                                       `cast`
-                                     (Data.Functor.Identity.N:Identity[0]
-                                          <([(k, a)],
-                                            Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) x s'' ->
-                                s'' })
-                                 `cast`
-                               (Sym (Data.Functor.Identity.N:Identity[0]
-                                         <([(k, a)], Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                                `cast`
-                              (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                        <Language.Fixpoint.Defunctionalize.DFST>_N
-                                        <Data.Functor.Identity.Identity>_R
-                                        <[(k, a)]>_N)) }
-                     } in
-                     go
-                       (Language.Fixpoint.Defunctionalize.$fDefuncHashMap1
-                          @ k
-                          @ a
-                          (GHC.Types.[] @ (k, a))
-                          m)
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            ([(k, a)], Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <[(k, a)]>_N)
-                        s1
-                  } in
-                  (case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <([(k, a)],
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   Data.HashMap.Strict.fromList @ k @ a $dEq $dHashable a1 },
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <([(k, a)],
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Data.HashMap.Base.HashMap k a,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Data.HashMap.Base.HashMap k a>_N))) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncReft ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U(U,U)>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncReft_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Refinements.Reft>_N)) -}
-5ce8abfcf91bbb1591ea23312418b00b
-  $fDefuncReft_$cdefunc ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, Strictness: <S,1*U(U,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc2 ww1 ww2 }) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSEnv ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 2, Strictness: <L,C(U)><L,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSEnv_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Defunctionalize.Defunc a>_R
-                 ->_R Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                               <Language.Fixpoint.Types.Environments.SEnv a>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSEnv_$cdefunc ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 2, Strictness: <L,C(U)><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dDefunc :: Language.Fixpoint.Defunctionalize.Defunc a)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Language.Fixpoint.Types.Environments.mapMSEnv
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Defunctionalize.DFST
-                        Data.Functor.Identity.Identity)
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                      @ Language.Fixpoint.Defunctionalize.DFST)
-                   $dDefunc
-                     `cast`
-                   (Language.Fixpoint.Defunctionalize.N:Defunc[0] <a>_N)
-                   eta) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSimpC ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSimpC_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Constraints.SimpC a>_N)) -}
-4e3ea19be9f8f478aa454f9ae107e483
-  $fDefuncSimpC_$cdefunc ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>,
-     Unfolding: (\ @ a
-                   (sc :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1
-                       (Language.Fixpoint.Types.Constraints._crhs @ a sc)
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            (Language.Fixpoint.Types.Refinements.Expr,
-                             Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Expr>_N)
-                        s1
-                  } in
-                  (case sc of wild { Language.Fixpoint.Types.Constraints.SimpC ds1 ds2 ds3 ds4 ds5 ->
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) a1 s' ->
-                   case a1 of dt { DEFAULT ->
-                   Language.Fixpoint.Types.Constraints.SimpC
-                     @ a
-                     ds1
-                     dt
-                     ds3
-                     ds4
-                     ds5 } } },
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Constraints.SimpC a,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Constraints.SimpC a>_N))) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSizedEnv ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Arity: 2,
-     Strictness: <S(SS),1*U(U,U)><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSizedEnv_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-7a2fc52edb11c043319ba3d615a823c4
-  $fDefuncSizedEnv1 ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> Data.Functor.Identity.Identity
-         (Language.Fixpoint.Types.Environments.BindEnv,
-          Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 2,
-     Strictness: <S(SS),1*U(U,U)><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (w1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc3 ww1 ww2 w1 }) -}
-f2c6c3f83a3f39951adf9cda27476b19
-  $fDefuncSizedEnv_$cdefunc ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 2,
-     Strictness: <S(SS),1*U(U,U)><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSizedEnv1
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.BindEnv>_R
-                 ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <Language.Fixpoint.Defunctionalize.DFST>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSort ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSort_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Sorts.Sort>_N)) -}
-f7367666c4504da2dc32c465a97be8fa
-  $fDefuncSort_$cdefunc ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Tuple.(,)
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   @ Language.Fixpoint.Defunctionalize.DFST)
-                  `cast`
-                (<Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Trans
-                          (<Language.Fixpoint.Defunctionalize.DFST>_R
-                           ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                         <(Language.Fixpoint.Types.Sorts.Sort,
-                                           Language.Fixpoint.Defunctionalize.DFST)>_R))
-                          (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                    <Language.Fixpoint.Defunctionalize.DFST>_N
-                                    <Data.Functor.Identity.Identity>_R
-                                    <Language.Fixpoint.Types.Sorts.Sort>_N))) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncSortedReft ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U(U,U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncSortedReft_$cdefunc
-                  `cast`
-                (Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Refinements.SortedReft>_N)) -}
-b26cce5515c2937f5e6c90a247a14094
-  $fDefuncSortedReft_$cdefunc ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U(U,U))>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc4 ww1 ww4 ww5 } }) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncTriggered ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U(U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncTriggered_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Defunctionalize.Defunc a>_R
-                 ->_R Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                               <Language.Fixpoint.Types.Triggers.Triggered a>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncTriggered_$cdefunc ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Types.Triggers.Triggered a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Triggers.Triggered a)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Defunctionalize.Defunc a)
-                   (w1 :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Triggers.TR ww1 ww2 ->
-                 Language.Fixpoint.Defunctionalize.$w$cdefunc5 @ a w ww1 ww2 }) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefuncWfC ::
-    Language.Fixpoint.Defunctionalize.Defunc
-      (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefuncWfC_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                          <Language.Fixpoint.Types.Constraints.WfC a>_N)) -}
-50ce8473334a96563bce90cf38cc20d3
-  $fDefuncWfC_$cdefunc ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Constraints.WfC a)
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   (wf :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case wf of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds ds1 ds2
-                   -> let {
-                        x :: Language.Fixpoint.Types.Names.Symbol
-                        = case ds1 of wild1 { (,,) x1 t k -> x1 }
-                      } in
-                      let {
-                        k :: Language.Fixpoint.Types.Refinements.KVar
-                        = case ds1 of wild1 { (,,) x1 t k1 -> k1 }
-                      } in
-                      let {
-                        m1 :: Language.Fixpoint.Types.Sorts.Sort
-                        = case ds1 of wild1 { (,,) x1 t k1 -> t }
-                      } in
-                      let {
-                        lvl9 :: (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort,
-                                 Language.Fixpoint.Types.Refinements.KVar)
-                        = (x, m1, k)
-                      } in
-                      let {
-                        lvl10 :: Language.Fixpoint.Types.Constraints.WfC a
-                        = Language.Fixpoint.Types.Constraints.WfC @ a ds lvl9 ds2
-                      } in
-                      (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) -> (lvl10, s1))
-                        `cast`
-                      (Trans
-                           (<Language.Fixpoint.Defunctionalize.DFST>_R
-                            ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                          <(Language.Fixpoint.Types.Constraints.WfC a,
-                                            Language.Fixpoint.Defunctionalize.DFST)>_R))
-                           (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                     <Language.Fixpoint.Defunctionalize.DFST>_N
-                                     <Data.Functor.Identity.Identity>_R
-                                     <Language.Fixpoint.Types.Constraints.WfC a>_N)))
-                   Language.Fixpoint.Types.Constraints.GWfC ds ds1 ds2 ds3
-                   -> case ds1 of wild1 { (,,) x t k ->
-                      let {
-                        lvl9 :: Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Defunctionalize.DFST
-                                  Data.Functor.Identity.Identity
-                                  Language.Fixpoint.Types.Refinements.Expr
-                        = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 ds3
-                      } in
-                      let {
-                        lvl10 :: (Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort,
-                                  Language.Fixpoint.Types.Refinements.KVar)
-                        = (x, t, k)
-                      } in
-                      (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                       let {
-                         ds4 :: Data.Functor.Identity.Identity
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)
-                         = lvl9
-                             `cast`
-                           (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                <Language.Fixpoint.Defunctionalize.DFST>_N
-                                <Data.Functor.Identity.Identity>_R
-                                <Language.Fixpoint.Types.Refinements.Expr>_N)
-                             s1
-                       } in
-                       (case ds4
-                               `cast`
-                             (Data.Functor.Identity.N:Identity[0]
-                                  <(Language.Fixpoint.Types.Refinements.Expr,
-                                    Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                        case a1 of dt { DEFAULT ->
-                        Language.Fixpoint.Types.Constraints.GWfC @ a ds lvl10 ds2 dt } },
-                        case ds4
-                               `cast`
-                             (Data.Functor.Identity.N:Identity[0]
-                                  <(Language.Fixpoint.Types.Refinements.Expr,
-                                    Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                        s' })
-                         `cast`
-                       (Sym (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Constraints.WfC a,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                        `cast`
-                      (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                <Language.Fixpoint.Defunctionalize.DFST>_N
-                                <Data.Functor.Identity.Identity>_R
-                                <Language.Fixpoint.Types.Constraints.WfC a>_N)) } }) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefunc[] ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Defunctionalize.Defunc [a]
-  DFunId
-  {- Arity: 1, Strictness: <L,C(U)>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Defunctionalize.$fDefunc[]_$cdefunc
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Defunctionalize.Defunc a>_R
-                 ->_R Sym (Language.Fixpoint.Defunctionalize.N:Defunc[0]
-                               <[a]>_N)) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $fDefunc[]_$cdefunc ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    [a] -> Language.Fixpoint.Defunctionalize.DF [a]
-  {- Arity: 1, Strictness: <L,C(U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a ($dDefunc :: Language.Fixpoint.Defunctionalize.Defunc a) ->
-                 Data.Traversable.$fTraversable[]_$cmapM
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Defunctionalize.DFST
-                        Data.Functor.Identity.Identity)
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                      @ Language.Fixpoint.Defunctionalize.DFST)
-                   $dDefunc
-                     `cast`
-                   (Language.Fixpoint.Defunctionalize.N:Defunc[0] <a>_N)) -}
-41b8df487b27d2b2c246256bc09edc91
-  $sdefunc10 ::
-    [Language.Fixpoint.Types.Triggers.Triggered
-       Language.Fixpoint.Types.Refinements.Expr]
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Defunctionalize.DFST
-         Data.Functor.Identity.Identity
-         [Language.Fixpoint.Types.Triggers.Triggered
-            Language.Fixpoint.Types.Refinements.Expr]
-  {- Unfolding: (Data.Traversable.$fTraversable[]_$cmapM
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Defunctionalize.DFST
-                        Data.Functor.Identity.Identity)
-                   @ (Language.Fixpoint.Types.Triggers.Triggered
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   @ (Language.Fixpoint.Types.Triggers.Triggered
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                      @ Language.Fixpoint.Defunctionalize.DFST)
-                   Language.Fixpoint.Defunctionalize.$sdefunc11) -}
-beb43c5e8a7cbbc39d28c3d938e0e4f7
-  $sdefunc11 ::
-    Language.Fixpoint.Types.Triggers.Triggered
-      Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Triggers.Triggered
-            Language.Fixpoint.Types.Refinements.Expr)
-  {- Arity: 1,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Triggers.Triggered
-                            Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds of wild { Language.Fixpoint.Types.Triggers.TR t e ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 e
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds1 :: Data.Functor.Identity.Identity
-                             (Language.Fixpoint.Types.Refinements.Expr,
-                              Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Expr>_N)
-                        s1
-                  } in
-                  (Language.Fixpoint.Types.Triggers.TR
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     t
-                     (case ds1
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) a1 s' ->
-                      a1 }),
-                   case ds1
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild1 { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Triggers.Triggered
-                                Language.Fixpoint.Types.Refinements.Expr,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Triggers.Triggered
-                              Language.Fixpoint.Types.Refinements.Expr>_N)) }) -}
-f099986928bef9f860d8c7011cccc891
-  $tc'C:Defunc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16833345088996958154##
-                   3638964763803735568##
-                   Language.Fixpoint.Defunctionalize.$trModule
-                   Language.Fixpoint.Defunctionalize.$tc'C:Defunc1) -}
-1c4e72cd927d749fc48c9c2c43fcf72a
-  $tc'C:Defunc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Defunc"#) -}
-387d293516d3be29217553627c5017bf
-  $tc'DFST :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7161385165738204084##
-                   18440447109587075314##
-                   Language.Fixpoint.Defunctionalize.$trModule
-                   Language.Fixpoint.Defunctionalize.$tc'DFST1) -}
-fd8315f1afd3e095283cf865712943cc
-  $tc'DFST1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'DFST"#) -}
-0ce165fe9fa84f2e23ebeb8dcc54ed6d
-  $tcDFST :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3089472461778522792##
-                   6135770084242700993##
-                   Language.Fixpoint.Defunctionalize.$trModule
-                   Language.Fixpoint.Defunctionalize.$tcDFST1) -}
-238a84d157be14a2973f92165168cd37
-  $tcDFST1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "DFST"#) -}
-37537e4e4c172121e1e9a8395dc06a5a
-  $tcDefunc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12668476620645709206##
-                   11104332107851244307##
-                   Language.Fixpoint.Defunctionalize.$trModule
-                   Language.Fixpoint.Defunctionalize.$tcDefunc1) -}
-9ab061b856113e6239c4320d5a292ab1
-  $tcDefunc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Defunc"#) -}
-bf1166f3d530ea989cd067f6c8f88736
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Defunctionalize.$trModule2
-                   Language.Fixpoint.Defunctionalize.$trModule1) -}
-2e0bbf4475b039acd7e6919af793e0b8
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Defunctionalize"#) -}
-2bee2c0ca8360934d01f4e611e75205f
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-4eb61a09a6865d508b5ce568fbfba33e
-  $w$cdefunc ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 2, Strictness: <L,U><L,1*U(U,U(U,U))>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.SortedReft
-                   = case ww1 of ww2 { Language.Fixpoint.Types.Refinements.RR ww3 ww4 ->
-                     case ww4
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww5 { (,) ww6 ww7 ->
-                     let {
-                       m2 :: Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Defunctionalize.DFST
-                               Data.Functor.Identity.Identity
-                               Language.Fixpoint.Types.Refinements.Expr
-                       = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 ww7
-                     } in
-                     (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                      let {
-                        ds :: Data.Functor.Identity.Identity
-                                (Language.Fixpoint.Types.Refinements.Expr,
-                                 Language.Fixpoint.Defunctionalize.DFST)
-                        = m2
-                            `cast`
-                          (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <Language.Fixpoint.Defunctionalize.DFST>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.Expr>_N)
-                            s1
-                      } in
-                      (Language.Fixpoint.Types.Refinements.RR
-                         ww3
-                         (ww6,
-                          case ds
-                                 `cast`
-                               (Data.Functor.Identity.N:Identity[0]
-                                    <(Language.Fixpoint.Types.Refinements.Expr,
-                                      Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                          a1 })
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                       case ds
-                              `cast`
-                            (Data.Functor.Identity.N:Identity[0]
-                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                   Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                       s' })
-                        `cast`
-                      (Sym (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.SortedReft,
-                                  Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                       `cast`
-                     (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <Language.Fixpoint.Defunctionalize.DFST>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } }
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            (Language.Fixpoint.Types.Refinements.SortedReft,
-                             Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.SortedReft>_N)
-                        s1
-                  } in
-                  ((ww,
-                    case ds
-                           `cast`
-                         (Data.Functor.Identity.N:Identity[0]
-                              <(Language.Fixpoint.Types.Refinements.SortedReft,
-                                Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                    a1 }),
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.SortedReft,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <((Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft),
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)>_N))) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $w$cdefunc1 ::
-    Language.Fixpoint.Defunctionalize.Defunc (c a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Defunctionalize.DFST
-         Data.Functor.Identity.Identity
-         (Language.Fixpoint.Types.Constraints.GInfo c a)
-  {- Arity: 2, Strictness: <L,C(U)><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: [0] -}
-adb5d1326761b0542598096a1beef508
-  $w$cdefunc2 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2, Strictness: <L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 ww1
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            (Language.Fixpoint.Types.Refinements.Expr,
-                             Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Expr>_N)
-                        s1
-                  } in
-                  ((ww,
-                    case ds
-                           `cast`
-                         (Data.Functor.Identity.N:Identity[0]
-                              <(Language.Fixpoint.Types.Refinements.Expr,
-                                Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                    a1 })
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.Reft,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Reft>_N))) -}
-09cc07db53073d93279b8c9be34f6214
-  $w$cdefunc3 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> Data.Functor.Identity.Identity
-         (Language.Fixpoint.Types.Environments.BindEnv,
-          Language.Fixpoint.Defunctionalize.DFST)
-  {- Arity: 3,
-     Strictness: <S,U><S,U><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   (w :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 let {
-                   ds :: Language.Fixpoint.Types.Environments.IBindEnv
-                   = case w of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                     ds2 }
-                 } in
-                 (Language.Fixpoint.Types.Environments.$wmapWithKeyMBindEnv
-                    @ (Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Defunctionalize.DFST
-                         Data.Functor.Identity.Identity)
-                    (Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-                       @ Language.Fixpoint.Defunctionalize.DFST)
-                    (\ (ds1 :: (Language.Fixpoint.Types.Environments.BindId,
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))) ->
-                     case ds1 of wild { (,) i xs ->
-                     case i of wild1 { GHC.Types.I# x# ->
-                     case Language.Fixpoint.Types.Environments.$wpoly_go13
-                            @ ()
-                            (GHC.Prim.int2Word# x#)
-                            x#
-                            0#
-                            ds
-                              `cast`
-                            (Trans
-                                 (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                 (Data.HashSet.N:HashSet[0]
-                                      <Language.Fixpoint.Types.Environments.BindId>_N)) of wild2 {
-                       GHC.Base.Nothing
-                       -> let {
-                            lvl9 :: (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                            = case xs of wild3 { (,) x ds2 ->
-                              case ds2 of wild4 { Language.Fixpoint.Types.Refinements.RR s r ->
-                              wild3 } }
-                          } in
-                          let {
-                            lvl10 :: (Language.Fixpoint.Types.Environments.BindId,
-                                      (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Refinements.SortedReft))
-                            = (wild1, lvl9)
-                          } in
-                          (\ (eta :: Language.Fixpoint.Defunctionalize.DFST) ->
-                           (lvl10,
-                            case xs of wild3 { (,) x ds2 ->
-                            case ds2 of wild4 { Language.Fixpoint.Types.Refinements.RR s r ->
-                            eta } }))
-                            `cast`
-                          (Trans
-                               (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                              <((Language.Fixpoint.Types.Environments.BindId,
-                                                 (Language.Fixpoint.Types.Names.Symbol,
-                                                  Language.Fixpoint.Types.Refinements.SortedReft)),
-                                                Language.Fixpoint.Defunctionalize.DFST)>_R))
-                               (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                         <Language.Fixpoint.Defunctionalize.DFST>_N
-                                         <Data.Functor.Identity.Identity>_R
-                                         <(Language.Fixpoint.Types.Environments.BindId,
-                                           (Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Refinements.SortedReft))>_N)))
-                       GHC.Base.Just ds2
-                       -> let {
-                            m1 :: Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Defunctionalize.DFST
-                                    Data.Functor.Identity.Identity
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                            = case xs of wild3 { (,) x sr ->
-                              let {
-                                m2 :: Control.Monad.Trans.State.Lazy.StateT
-                                        Language.Fixpoint.Defunctionalize.DFST
-                                        Data.Functor.Identity.Identity
-                                        Language.Fixpoint.Types.Refinements.SortedReft
-                                = case sr of ww2 { Language.Fixpoint.Types.Refinements.RR ww3 ww4 ->
-                                  case ww4
-                                         `cast`
-                                       (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww5 { (,) ww6 ww7 ->
-                                  let {
-                                    m3 :: Control.Monad.Trans.State.Lazy.StateT
-                                            Language.Fixpoint.Defunctionalize.DFST
-                                            Data.Functor.Identity.Identity
-                                            Language.Fixpoint.Types.Refinements.Expr
-                                    = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 ww7
-                                  } in
-                                  (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                                   let {
-                                     ds3 :: Data.Functor.Identity.Identity
-                                              (Language.Fixpoint.Types.Refinements.Expr,
-                                               Language.Fixpoint.Defunctionalize.DFST)
-                                     = m3
-                                         `cast`
-                                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                                            <Data.Functor.Identity.Identity>_R
-                                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                                         s1
-                                   } in
-                                   (Language.Fixpoint.Types.Refinements.RR
-                                      ww3
-                                      (ww6,
-                                       case ds3
-                                              `cast`
-                                            (Data.Functor.Identity.N:Identity[0]
-                                                 <(Language.Fixpoint.Types.Refinements.Expr,
-                                                   Language.Fixpoint.Defunctionalize.DFST)>_R) of wild4 { (,) a1 s' ->
-                                       a1 })
-                                        `cast`
-                                      (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                                    case ds3
-                                           `cast`
-                                         (Data.Functor.Identity.N:Identity[0]
-                                              <(Language.Fixpoint.Types.Refinements.Expr,
-                                                Language.Fixpoint.Defunctionalize.DFST)>_R) of wild4 { (,) a1 s' ->
-                                    s' })
-                                     `cast`
-                                   (Sym (Data.Functor.Identity.N:Identity[0]
-                                             <(Language.Fixpoint.Types.Refinements.SortedReft,
-                                               Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                                    `cast`
-                                  (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                                            <Data.Functor.Identity.Identity>_R
-                                            <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } }
-                              } in
-                              (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                               let {
-                                 ds3 :: Data.Functor.Identity.Identity
-                                          (Language.Fixpoint.Types.Refinements.SortedReft,
-                                           Language.Fixpoint.Defunctionalize.DFST)
-                                 = m2
-                                     `cast`
-                                   (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                        <Language.Fixpoint.Defunctionalize.DFST>_N
-                                        <Data.Functor.Identity.Identity>_R
-                                        <Language.Fixpoint.Types.Refinements.SortedReft>_N)
-                                     s1
-                               } in
-                               ((x,
-                                 case ds3
-                                        `cast`
-                                      (Data.Functor.Identity.N:Identity[0]
-                                           <(Language.Fixpoint.Types.Refinements.SortedReft,
-                                             Language.Fixpoint.Defunctionalize.DFST)>_R) of wild4 { (,) a1 s' ->
-                                 a1 }),
-                                case ds3
-                                       `cast`
-                                     (Data.Functor.Identity.N:Identity[0]
-                                          <(Language.Fixpoint.Types.Refinements.SortedReft,
-                                            Language.Fixpoint.Defunctionalize.DFST)>_R) of wild4 { (,) a1 s' ->
-                                s' })
-                                 `cast`
-                               (Sym (Data.Functor.Identity.N:Identity[0]
-                                         <((Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Refinements.SortedReft),
-                                           Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                                `cast`
-                              (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                        <Language.Fixpoint.Defunctionalize.DFST>_N
-                                        <Data.Functor.Identity.Identity>_R
-                                        <(Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Refinements.SortedReft)>_N)) }
-                          } in
-                          (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                           let {
-                             ds3 :: Data.Functor.Identity.Identity
-                                      ((Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Refinements.SortedReft),
-                                       Language.Fixpoint.Defunctionalize.DFST)
-                             = m1
-                                 `cast`
-                               (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                    <Language.Fixpoint.Defunctionalize.DFST>_N
-                                    <Data.Functor.Identity.Identity>_R
-                                    <(Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Refinements.SortedReft)>_N)
-                                 s1
-                           } in
-                           ((wild1,
-                             case ds3
-                                    `cast`
-                                  (Data.Functor.Identity.N:Identity[0]
-                                       <((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Refinements.SortedReft),
-                                         Language.Fixpoint.Defunctionalize.DFST)>_R) of wild3 { (,) a1 s' ->
-                             a1 }),
-                            case ds3
-                                   `cast`
-                                 (Data.Functor.Identity.N:Identity[0]
-                                      <((Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Refinements.SortedReft),
-                                        Language.Fixpoint.Defunctionalize.DFST)>_R) of wild3 { (,) a1 s' ->
-                            s' })
-                             `cast`
-                           (Sym (Data.Functor.Identity.N:Identity[0]
-                                     <((Language.Fixpoint.Types.Environments.BindId,
-                                        (Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Refinements.SortedReft)),
-                                       Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                            `cast`
-                          (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                    <Language.Fixpoint.Defunctionalize.DFST>_N
-                                    <Data.Functor.Identity.Identity>_R
-                                    <(Language.Fixpoint.Types.Environments.BindId,
-                                      (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Refinements.SortedReft))>_N)) } } })
-                    ww
-                    ww1)
-                   `cast`
-                 (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                      <Language.Fixpoint.Defunctionalize.DFST>_N
-                      <Data.Functor.Identity.Identity>_R
-                      <Language.Fixpoint.Types.Environments.BindEnv>_N)
-                   w) -}
-45ea00d59814f9eed286e3baa5fe5c96
-  $w$cdefunc4 ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 3, Strictness: <S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$cdefunc1 ww2
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            (Language.Fixpoint.Types.Refinements.Expr,
-                             Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Expr>_N)
-                        s1
-                  } in
-                  (Language.Fixpoint.Types.Refinements.RR
-                     ww
-                     (ww1,
-                      case ds
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                      a1 })
-                       `cast`
-                     (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.SortedReft,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.SortedReft>_N))) -}
-c53b9aca5cc3b04709eafb121214d21a
-  $w$cdefunc5 ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> a
-    -> Language.Fixpoint.Defunctionalize.DF
-         (Language.Fixpoint.Types.Triggers.Triggered a)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,1*C1(U)><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Defunctionalize.Defunc a)
-                   (ww :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ww1 :: a) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Defunctionalize.DFST
-                           Data.Functor.Identity.Identity
-                           a
-                   = w `cast` (Language.Fixpoint.Defunctionalize.N:Defunc[0] <a>_N)
-                       ww1
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  let {
-                    ds :: Data.Functor.Identity.Identity
-                            (a, Language.Fixpoint.Defunctionalize.DFST)
-                    = m1
-                        `cast`
-                      (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <a>_N)
-                        s1
-                  } in
-                  (Language.Fixpoint.Types.Triggers.TR
-                     @ a
-                     ww
-                     (case ds
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(a,
-                                  Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                      a1 }),
-                   case ds
-                          `cast`
-                        (Data.Functor.Identity.N:Identity[0]
-                             <(a,
-                               Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) a1 s' ->
-                   s' })
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Triggers.Triggered a,
-                              Language.Fixpoint.Defunctionalize.DFST)>_R)))
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                           <Language.Fixpoint.Defunctionalize.DFST>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Triggers.Triggered a>_N))) -}
-3784dea7f01b83162d71099188d2ead1
-  $wnormalizeLamsFromTo ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr #)
-  {- Arity: 2, Strictness: <L,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 letrec {
-                   $wgo1 :: Language.Fixpoint.Types.Refinements.Expr
-                            -> (# GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr #)
-                     {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-                   = \ (w2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                     case w2 of wild {
-                       DEFAULT -> (# w, wild #)
-                       Language.Fixpoint.Types.Refinements.EApp e1 e2
-                       -> let {
-                            ds :: (GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr)
-                            = case $wgo1 e2 of ww { (#,#) ww1 ww2 -> (ww1, ww2) }
-                          } in
-                          let {
-                            ds1 :: (GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr)
-                            = case $wgo1 e1 of ww { (#,#) ww1 ww2 -> (ww1, ww2) }
-                          } in
-                          (# case ds1 of wild1 { (,) i1 e1' ->
-                             case i1 of wild2 { GHC.Types.I# x1 ->
-                             case ds of wild3 { (,) i2 e2' ->
-                             case i2 of wild4 { GHC.Types.I# y1 ->
-                             case GHC.Prim.tagToEnum#
-                                    @ GHC.Types.Bool
-                                    (GHC.Prim.<=# x1 y1) of wild5 {
-                               GHC.Types.False -> wild2 GHC.Types.True -> wild4 } } } } },
-                             case ds1 of wild1 { (,) i1 e1' ->
-                             case e1' of dt { DEFAULT ->
-                             case ds of wild2 { (,) i2 e2' ->
-                             case e2' of dt1 { DEFAULT ->
-                             Language.Fixpoint.Types.Refinements.EApp dt dt1 } } } } #)
-                       Language.Fixpoint.Types.Refinements.ECst e s
-                       -> case $wgo1 e of ww { (#,#) ww1 ww2 ->
-                          (# ww1,
-                             case ww2 of dt { DEFAULT ->
-                             Language.Fixpoint.Types.Refinements.ECst dt s } #) }
-                       Language.Fixpoint.Types.Refinements.ELam ds e
-                       -> case ds of wild1 { (,) y sy ->
-                          let {
-                            ds1 :: (GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr)
-                            = case $wgo1 e of ww { (#,#) ww1 ww2 -> (ww1, ww2) }
-                          } in
-                          let {
-                            i' :: GHC.Types.Int = case ds1 of wild2 { (,) i'1 e' -> i'1 }
-                          } in
-                          (# case i' of wild2 { GHC.Types.I# x ->
-                             GHC.Types.I# (GHC.Prim.+# x 1#) },
-                             case ds1 of wild2 { (,) i'1 e' ->
-                             let {
-                               y' :: Language.Fixpoint.Types.Names.Symbol
-                               = case Language.Fixpoint.Types.Names.intArgName1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                                 case i' of ww8 { GHC.Types.I# ww9 ->
-                                 Language.Fixpoint.Types.Names.$w$sintSymbol ww5 ww6 ww7 ww9 } } }
-                             } in
-                             case Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                    (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                       @ Language.Fixpoint.Types.Refinements.Expr
-                                       (GHC.Types.:
-                                          @ (Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Refinements.Expr)
-                                          (y, Language.Fixpoint.Types.Refinements.$WEVar y')
-                                          (GHC.Types.[]
-                                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                                Language.Fixpoint.Types.Refinements.Expr)))
-                                       (Data.HashMap.Base.Empty
-                                          @ Language.Fixpoint.Types.Names.Symbol
-                                          @ Language.Fixpoint.Types.Refinements.Expr))
-                                      `cast`
-                                    (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                    e' of dt { DEFAULT ->
-                             Language.Fixpoint.Types.Refinements.ELam (y', sy) dt } } #) }
-                       Language.Fixpoint.Types.Refinements.PAll bs e
-                       -> case $wgo1 e of ww { (#,#) ww1 ww2 ->
-                          (# ww1,
-                             case ww2 of dt { DEFAULT ->
-                             Language.Fixpoint.Types.Refinements.PAll bs dt } #) } }
-                 } in
-                 $wgo1 w1) -}
-b5f3d81636d5fa104281036b48393dc5
-  $wreBind ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DFST
-    -> (# Language.Fixpoint.Types.Refinements.Expr,
-          Language.Fixpoint.Defunctionalize.DFST #)
-  {- Arity: 2, Strictness: <S,1*U><L,U(U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case w of wild {
-                   DEFAULT -> (# wild, w1 #)
-                   Language.Fixpoint.Types.Refinements.ELam ds e
-                   -> case ds of wild1 { (,) x s ->
-                      let {
-                        ds1 :: GHC.Types.Int
-                        = case w1 of wild2 { Language.Fixpoint.Defunctionalize.DFST dt ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ->
-                          GHC.Types.I# dt }
-                      } in
-                      let {
-                        x1 :: Language.Fixpoint.Types.Names.Symbol
-                        = case Language.Fixpoint.Defunctionalize.$fDefunc(,)7 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                          case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                          case ds1 of ww8 { GHC.Types.I# ww9 ->
-                          Language.Fixpoint.Types.Names.$w$sintSymbol ww5 ww6 ww7 ww9 } } }
-                      } in
-                      (# case Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                   @ Language.Fixpoint.Types.Refinements.Expr
-                                   (GHC.Types.:
-                                      @ (Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Refinements.Expr)
-                                      (x, Language.Fixpoint.Types.Refinements.$WEVar x1)
-                                      (GHC.Types.[]
-                                         @ (Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Refinements.Expr)))
-                                   (Data.HashMap.Base.Empty
-                                      @ Language.Fixpoint.Types.Names.Symbol
-                                      @ Language.Fixpoint.Types.Refinements.Expr))
-                                  `cast`
-                                (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                e of dt { DEFAULT ->
-                         Language.Fixpoint.Types.Refinements.ELam (x1, s) dt },
-                         case w1 of wild2 { Language.Fixpoint.Defunctionalize.DFST dt ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ->
-                         case ds1 of wild3 { GHC.Types.I# x2 ->
-                         case s of v2 { DEFAULT ->
-                         case x1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                         case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                         case Language.Fixpoint.Types.Environments.$w$sinsert
-                                @ Language.Fixpoint.Types.Sorts.Sort
-                                ww1
-                                ww5
-                                ww6
-                                ww7
-                                ww3
-                                v2
-                                ds13
-                                  `cast`
-                                (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                         Language.Fixpoint.Defunctionalize.DFST
-                           (GHC.Prim.+# x2 1#)
-                           ds2
-                           ds3
-                           ds4
-                           ds5
-                           ds6
-                           ds7
-                           ds8
-                           ds9
-                           ds10
-                           ds11
-                           ds12
-                           nt
-                             `cast`
-                           (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } } } } } } #) } }) -}
-27637b64017bdd866330e8884d87dc40
-  type DF =
-    Control.Monad.Trans.State.Lazy.State
-      Language.Fixpoint.Defunctionalize.DFST
-    :: * -> *
-1e67a47d71cf14108b34fa2a3f892330
-  data DFST
-    = DFST {dfFresh :: {-# UNPACK #-}GHC.Types.Int,
-            dfEnv :: !Language.Fixpoint.Types.Environments.SEnv
-                        Language.Fixpoint.Types.Sorts.Sort,
-            dfBEnv :: !Language.Fixpoint.Types.Environments.IBindEnv,
-            dfLam :: !GHC.Types.Bool,
-            dfExt :: !GHC.Types.Bool,
-            dfAEq :: !GHC.Types.Bool,
-            dfBEq :: !GHC.Types.Bool,
-            dfNorm :: !GHC.Types.Bool,
-            dfHO :: !GHC.Types.Bool,
-            dfLNorm :: !GHC.Types.Bool,
-            dfLams :: ![Language.Fixpoint.Types.Refinements.Expr],
-            dfRedex :: ![Language.Fixpoint.Types.Refinements.Expr],
-            dfBinds :: !Language.Fixpoint.Types.Environments.SEnv
-                          Language.Fixpoint.Types.Sorts.Sort}
-c53b9aca5cc3b04709eafb121214d21a
-  class Defunc a where
-    defunc :: a -> Language.Fixpoint.Defunctionalize.DF a
-    {-# MINIMAL defunc #-}
-8ecaba9eb6dde2ea17241b3fcc535d85
-  defuncAny ::
-    Language.Fixpoint.Defunctionalize.Defunc a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> a
-    -> a
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SL))),1*C1(C1(U(1*U,A)))><L,1*U(A,A,A,A,A,A,A,1*U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,1*U,1*U,A,A,A,A,A)><L,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dDefunc :: Language.Fixpoint.Defunctionalize.Defunc a)
-                   (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (e :: a) ->
-                 case (($dDefunc
-                          `cast`
-                        (Language.Fixpoint.Defunctionalize.N:Defunc[0] <a>_N)
-                          e)
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <Language.Fixpoint.Defunctionalize.DFST>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <a>_N)
-                         (case env
-                                 `cast`
-                               (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                          case cfg of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                          case ds25 of dt { DEFAULT ->
-                          case ds26 of dt1 { DEFAULT ->
-                          case ds27 of dt2 { DEFAULT ->
-                          case case ds9 of wild1 {
-                                 GHC.Types.False -> ds8
-                                 GHC.Types.True -> GHC.Types.True } of dt3 { DEFAULT ->
-                          Language.Fixpoint.Defunctionalize.DFST
-                            0#
-                            nt
-                              `cast`
-                            (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Types.Environments.BindId
-                               @ ())
-                              `cast`
-                            (Trans
-                                 (Sym (Data.HashSet.N:HashSet[0]
-                                           <Language.Fixpoint.Types.Environments.BindId>_N))
-                                 (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                            GHC.Types.True
-                            GHC.Types.False
-                            dt
-                            dt1
-                            dt2
-                            dt3
-                            GHC.Types.True
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr)
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr)
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Types.Names.Symbol
-                               @ Language.Fixpoint.Types.Sorts.Sort)
-                              `cast`
-                            (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } } } } } }))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(a,
-                             Language.Fixpoint.Defunctionalize.DFST)>_R) of wild { (,) x ds1 ->
-                 x }) -}
-da153812c45f9b5ffe786233e1612388
-  defunctionalize ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Config.Config)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 Language.Fixpoint.Defunctionalize.defunctionalize1 @ a eta eta1) -}
-a79cb98c970f7bfacd566bcd7436de19
-  defunctionalize1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,A,A,A,1*U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,1*U,1*U,A,A,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)> -}
-11721a9e11ccac77e37c4c043374ed0c
-  dfAEq :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSLLLLLLL),1*U(A,A,A,A,A,U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds5 }) -}
-af31fece40cd072bcd2b3b19b140a1b8
-  dfBEnv ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLLLLLLLL),1*U(A,A,U,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds2 }) -}
-8af23ee5bdb5d64dfb23ce681c61c531
-  dfBEq :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLSLLLLLL),1*U(A,A,A,A,A,A,U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds6 }) -}
-1568020d2cd141183bc5d108a5b99977
-  dfBinds ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLS),1*U(A,A,A,A,A,A,A,A,A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds12 }) -}
-5174fe3aebc4de96dbae2c9e0b7b97ca
-  dfEnv ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLLLLLL),1*U(A,U,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds1 }) -}
-c80b19e3ddd043e221f539d6c60ef098
-  dfExt :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLLLLLLLL),1*U(A,A,A,A,U,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds4 }) -}
-d461fd656eab03b77cfd8fbc69e825ab
-  dfFresh :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLLLLL),1*U(U,A,A,A,A,A,A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 GHC.Types.I# dt }) -}
-cc9ce78d92eeae8d7402da7837647f07
-  dfHO :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLSLLLL),1*U(A,A,A,A,A,A,A,A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds8 }) -}
-ec554749628550bc6954868c4f3ba42e
-  dfLNorm :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLSLLL),1*U(A,A,A,A,A,A,A,A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds9 }) -}
-4a0d7d4ee668800b556868ea4d660f14
-  dfLam :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLLLLLLLL),1*U(A,A,A,U,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds3 }) -}
-20c450ac3af59890013a3b34baf862bb
-  dfLams ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLSLL),1*U(A,A,A,A,A,A,A,A,A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds10 }) -}
-13847d56cea8ea5d6ef71016f336891d
-  dfNorm :: Language.Fixpoint.Defunctionalize.DFST -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLSLLLLL),1*U(A,A,A,A,A,A,A,U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds7 }) -}
-72fd7a3b49ad85e013515bcbd6d2ecbe
-  dfRedex ::
-    Language.Fixpoint.Defunctionalize.DFST
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  RecSel Left Language.Fixpoint.Defunctionalize.DFST
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLSL),1*U(A,A,A,A,A,A,A,A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Defunctionalize.DFST) ->
-                 case ds of wild { Language.Fixpoint.Defunctionalize.DFST dt ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds11 }) -}
-67dce93583b71f9d534a999222abe037
-  logRedex ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Defunctionalize.DF
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Unfolding: (\ (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   eta1 :: Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Defunctionalize.DFST
-                             Data.Functor.Identity.Identity
-                             ()
-                   = case e of wild {
-                       DEFAULT
-                       -> Language.Fixpoint.Defunctionalize.$fDefunc(,)4
-                            `cast`
-                          (Trans
-                               (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                              <((), Language.Fixpoint.Defunctionalize.DFST)>_R))
-                               (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                         <Language.Fixpoint.Defunctionalize.DFST>_N
-                                         <Data.Functor.Identity.Identity>_R
-                                         <()>_N)))
-                       Language.Fixpoint.Types.Refinements.EApp f ds
-                       -> case ((Language.Fixpoint.Types.Visitor.visitExpr
-                                   @ [GHC.Prim.Any]
-                                   @ ()
-                                   (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                                   Language.Fixpoint.Types.Visitor.stripCasts1
-                                   GHC.Tuple.()
-                                   f)
-                                  `cast`
-                                (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                     <[GHC.Prim.Any]>_N
-                                     <Data.Functor.Identity.Identity>_R
-                                     <Language.Fixpoint.Types.Refinements.Expr>_N)
-                                  (GHC.Types.[] @ GHC.Prim.Any))
-                                 `cast`
-                               (Data.Functor.Identity.N:Identity[0]
-                                    <(Language.Fixpoint.Types.Refinements.Expr,
-                                      [GHC.Prim.Any])>_R) of wild1 { (,) x ds1 ->
-                          case x of wild2 {
-                            DEFAULT
-                            -> Language.Fixpoint.Defunctionalize.$fDefunc(,)4
-                                 `cast`
-                               (Trans
-                                    (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                     ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                                   <((),
-                                                     Language.Fixpoint.Defunctionalize.DFST)>_R))
-                                    (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                              <Language.Fixpoint.Defunctionalize.DFST>_N
-                                              <Data.Functor.Identity.Identity>_R
-                                              <()>_N)))
-                            Language.Fixpoint.Types.Refinements.ELam ds2 ds3
-                            -> (\ (eta2 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                                (GHC.Tuple.(),
-                                 case eta2 of wild3 { Language.Fixpoint.Defunctionalize.DFST dt ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ->
-                                 Language.Fixpoint.Defunctionalize.DFST
-                                   dt
-                                   ds4
-                                   ds5
-                                   ds6
-                                   ds7
-                                   ds8
-                                   ds9
-                                   ds10
-                                   ds11
-                                   ds12
-                                   ds13
-                                   (GHC.Types.:
-                                      @ Language.Fixpoint.Types.Refinements.Expr
-                                      wild
-                                      ds14)
-                                   ds15 }))
-                                 `cast`
-                               (Trans
-                                    (<Language.Fixpoint.Defunctionalize.DFST>_R
-                                     ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                                   <((),
-                                                     Language.Fixpoint.Defunctionalize.DFST)>_R))
-                                    (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                              <Language.Fixpoint.Defunctionalize.DFST>_N
-                                              <Data.Functor.Identity.Identity>_R
-                                              <()>_N))) } } }
-                 } in
-                 (\ (s1 :: Language.Fixpoint.Defunctionalize.DFST) ->
-                  (e,
-                   case s1 of wild { Language.Fixpoint.Defunctionalize.DFST dt ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                   case ds5 of wild1 {
-                     GHC.Types.False -> wild
-                     GHC.Types.True
-                     -> case (eta1
-                                `cast`
-                              (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                   <Language.Fixpoint.Defunctionalize.DFST>_N
-                                   <Data.Functor.Identity.Identity>_R
-                                   <()>_N)
-                                wild)
-                               `cast`
-                             (Data.Functor.Identity.N:Identity[0]
-                                  <((),
-                                    Language.Fixpoint.Defunctionalize.DFST)>_R) of wild2 { (,) a1 s' ->
-                        s' } } }))
-                   `cast`
-                 (Trans
-                      (<Language.Fixpoint.Defunctionalize.DFST>_R
-                       ->_R Sym (Data.Functor.Identity.N:Identity[0]
-                                     <(Language.Fixpoint.Types.Refinements.Expr,
-                                       Language.Fixpoint.Defunctionalize.DFST)>_R))
-                      (Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                <Language.Fixpoint.Defunctionalize.DFST>_N
-                                <Data.Functor.Identity.Identity>_R
-                                <Language.Fixpoint.Types.Refinements.Expr>_N)))) -}
-0420f57ff165ea4cd2a9fe38becc952f
-  makeLamArg ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.Sort)
-                   (eta :: GHC.Types.Int) ->
-                 Language.Fixpoint.Types.Names.intArgName eta) -}
-ac6261e024241b706746d7c861e71723
-  normalizeLamsFromTo ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (GHC.Types.Int, Language.Fixpoint.Types.Refinements.Expr)
-  {- Arity: 2, Strictness: <L,U><S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case Language.Fixpoint.Defunctionalize.$wnormalizeLamsFromTo
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-instance Language.Fixpoint.Defunctionalize.Defunc [(,)]
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)
-instance Language.Fixpoint.Defunctionalize.Defunc [(,)]
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Defunctionalize.$fDefuncExpr
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Defunctionalize.$fDefuncGInfo
-instance Language.Fixpoint.Defunctionalize.Defunc [Data.HashMap.Base.HashMap]
-  = Language.Fixpoint.Defunctionalize.$fDefuncHashMap
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Defunctionalize.$fDefuncReft
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Defunctionalize.$fDefuncSEnv
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Defunctionalize.$fDefuncSimpC
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Defunctionalize.$fDefuncSizedEnv
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Defunctionalize.$fDefuncSort
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Defunctionalize.$fDefuncSortedReft
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Defunctionalize.$fDefuncTriggered
-instance Language.Fixpoint.Defunctionalize.Defunc [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Defunctionalize.$fDefuncWfC
-instance Language.Fixpoint.Defunctionalize.Defunc [[]]
-  = Language.Fixpoint.Defunctionalize.$fDefunc[]
-"SPEC/Language.Fixpoint.Defunctionalize $fApplicativeStateT @ Identity _" [ALWAYS] forall @ s
-                                                                                          ($dMonad :: GHC.Base.Monad
-                                                                                                        Data.Functor.Identity.Identity)
-                                                                                          ($dFunctor :: GHC.Base.Functor
-                                                                                                          Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT @ Data.Functor.Identity.Identity
-                                                     @ s
-                                                     $dFunctor
-                                                     $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fApplicativeStateT_$c<*> @ Identity _" [ALWAYS] forall @ s
-                                                                                                ($dMonad :: GHC.Base.Monad
-                                                                                                              Data.Functor.Identity.Identity)
-                                                                                                ($dFunctor :: GHC.Base.Functor
-                                                                                                                Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*> @ Data.Functor.Identity.Identity
-                                                           @ s
-                                                           $dFunctor
-                                                           $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$c<*>
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fApplicativeStateT_$cp1Applicative @ Identity _" [ALWAYS] forall @ s
-                                                                                                          ($dMonad :: GHC.Base.Monad
-                                                                                                                        Data.Functor.Identity.Identity)
-                                                                                                          ($dFunctor :: GHC.Base.Functor
-                                                                                                                          Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$cp1Applicative @ Data.Functor.Identity.Identity
-                                                                     @ s
-                                                                     $dFunctor
-                                                                     $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$cp1Applicative
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fApplicativeStateT_$cpure @ Identity _" [ALWAYS] forall @ s
-                                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                                               Data.Functor.Identity.Identity)
-                                                                                                 ($dFunctor :: GHC.Base.Functor
-                                                                                                                 Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$cpure @ Data.Functor.Identity.Identity
-                                                            @ s
-                                                            $dFunctor
-                                                            $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fApplicativeStateT_$cpure
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fFunctorStateT @ Identity _" [ALWAYS] forall @ s
-                                                                                      ($dFunctor :: GHC.Base.Functor
-                                                                                                      Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fFunctorStateT @ Data.Functor.Identity.Identity
-                                                 @ s
-                                                 $dFunctor
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fFunctorStateT
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fFunctorStateT_$cfmap @ Identity _" [ALWAYS] forall @ s
-                                                                                             ($dFunctor :: GHC.Base.Functor
-                                                                                                             Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fFunctorStateT_$cfmap @ Data.Functor.Identity.Identity
-                                                        @ s
-                                                        $dFunctor
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fFunctorStateT_$cfmap
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fMonadStateT @ Identity _" [ALWAYS] forall @ s
-                                                                                    ($dMonad :: GHC.Base.Monad
-                                                                                                  Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT @ Data.Functor.Identity.Identity
-                                               @ s
-                                               $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fMonadStateT_$c>> @ Identity _" [ALWAYS] forall @ s
-                                                                                         ($dMonad :: GHC.Base.Monad
-                                                                                                       Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>> @ Data.Functor.Identity.Identity
-                                                    @ s
-                                                    $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$c>>
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fMonadStateT_$c>>= @ Identity _" [ALWAYS] forall @ s
-                                                                                          ($dMonad :: GHC.Base.Monad
-                                                                                                        Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>>= @ Data.Functor.Identity.Identity
-                                                     @ s
-                                                     $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$c>>=
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fMonadStateT_$cfail @ Identity _" [ALWAYS] forall @ s
-                                                                                           ($dMonad :: GHC.Base.Monad
-                                                                                                         Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cfail @ Data.Functor.Identity.Identity
-                                                      @ s
-                                                      $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$cfail
-      @ s
-"SPEC/Language.Fixpoint.Defunctionalize $fMonadStateT_$cp1Monad @ Identity _" [ALWAYS] forall @ s
-                                                                                              ($dMonad :: GHC.Base.Monad
-                                                                                                            Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cp1Monad @ Data.Functor.Identity.Identity
-                                                         @ s
-                                                         $dMonad
-  = Language.Fixpoint.Defunctionalize.$fDefunc(,)0_$s$fMonadStateT_$cp1Monad
-      @ s
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph.dump-hi
+++ /dev/null
@@ -1,251 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:12.688822 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph 8002
-  interface hash: 2e2bbf93047bcdd65ef5f993ba0bdd25
-  ABI hash: 96b1659cd922559f07884eea5976fb53
-  export-list hash: dad5544a3a41a5c3c772ca79356d39ad
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 942dd8a3565e2ef1a81fdce81e5ee716
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Deps.decompose
-  Language.Fixpoint.Graph.Deps.elimDeps
-  Language.Fixpoint.Graph.Deps.elimVars
-  Language.Fixpoint.Graph.Deps.graphStatistics
-  Language.Fixpoint.Graph.Deps.isTarget
-  Language.Fixpoint.Graph.Deps.kvEdges
-  Language.Fixpoint.Graph.Deps.slice
-  Language.Fixpoint.Graph.Partition.dumpPartitions
-  Language.Fixpoint.Graph.Partition.mcInfo
-  Language.Fixpoint.Graph.Partition.partition
-  Language.Fixpoint.Graph.Partition.partition'
-  Language.Fixpoint.Graph.Partition.partitionN
-  Language.Fixpoint.Graph.Reducible.isReducible
-  Language.Fixpoint.Graph.Types.isRealEdge
-  Language.Fixpoint.Graph.Types.lookupCMap
-  Language.Fixpoint.Graph.Types.writeEdges
-  Language.Fixpoint.Graph.Types.writeGraph
-  Language.Fixpoint.Graph.Deps.Elims{Language.Fixpoint.Graph.Deps.Deps depCuts depNonCuts}
-  Language.Fixpoint.Graph.Partition.CPart{Language.Fixpoint.Graph.Partition.CPart pcm pws}
-  Language.Fixpoint.Graph.Partition.MCInfo{Language.Fixpoint.Graph.Partition.MCInfo mcCores mcMaxPartSize mcMinPartSize}
-  Language.Fixpoint.Graph.Types.CDeps{Language.Fixpoint.Graph.Types.CDs cNumScc cPrev cRank cSucc}
-  Language.Fixpoint.Graph.Types.CEdge
-  Language.Fixpoint.Graph.Types.CGraph{Language.Fixpoint.Graph.Types.CGraph gEdges gRanks gSccs gSucc}
-  Language.Fixpoint.Graph.Types.CVertex{Language.Fixpoint.Graph.Types.Cstr Language.Fixpoint.Graph.Types.DKVar Language.Fixpoint.Graph.Types.KVar}
-  Language.Fixpoint.Graph.Types.Comps
-  Language.Fixpoint.Graph.Types.DepEdge
-  Language.Fixpoint.Graph.Types.KVComps
-  Language.Fixpoint.Graph.Types.KVGraph{Language.Fixpoint.Graph.Types.KVGraph kvgEdges}
-  Language.Fixpoint.Graph.Types.KVRead
-  Language.Fixpoint.Graph.Types.Rank{Language.Fixpoint.Graph.Types.Rank rIcc rScc rTag}
-  Language.Fixpoint.Graph.Types.Slice{Language.Fixpoint.Graph.Types.Slice slConcCs slEdges slKVarCs}
-  Language.Fixpoint.Graph.Types.SolverInfo{Language.Fixpoint.Graph.Types.SI siDeps siQuery siSol siVars}
-  Language.Fixpoint.Types.Constraints.SubcId
-  Language.Fixpoint.Types.Solutions.CMap
-module dependencies: Language.Fixpoint.Graph.Deps
-                     Language.Fixpoint.Graph.Indexed Language.Fixpoint.Graph.Partition
-                     Language.Fixpoint.Graph.Reducible Language.Fixpoint.Graph.Types
-                     Language.Fixpoint.Misc Language.Fixpoint.Smt.Theories
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  exports: d3caa92ef0344ae02ff65ece3f6ff911
-  Deps 96247b52f3d9c3a477eba6dbbd463d6a
-  Elims aa132080ffed998e6d8b22d768fb947b
-  decompose b04b584a66ff02ec06cad80d94b72146
-  depCuts 83d1edc1722d736fb5b5a3aa5d820ae7
-  depNonCuts 06fa0366722b2884b2aaf64ea62a68e8
-  elimDeps 5665258949b04edd49306c81248cfba0
-  elimVars 79f5aa78d78e83cef63fd4dd235ff9b6
-  graphStatistics ba6d87d5443281b758cf4be72c2f3799
-  isTarget 6782583cf6b58e5237626b8fd737ad77
-  kvEdges f940abc15579978762776e660e827d95
-  slice 193a333b665d84fc9d67b77efe5ba4de
-import  -/  Language.Fixpoint.Graph.Partition a564ef7164aba59432a750fd2fa72ad6
-  exports: e28e7ef4b1a924ccc45ab45862fb2004
-  CPart 292c1b9b617e2f81d7865cc58ecfae15
-  CPart fbc532eca1a5e5efd20f7b00b2ccbcb8
-  MCInfo 062ad85fa4ec107ebc680ead1f4a3a43
-  MCInfo cda0b3c9bf6295683b63c239c18def08
-  dumpPartitions 9eb22712218e3dd0b3edacc2b6a64362
-  mcCores 16c184e2111fc18c45eb67b4d7b8dabd
-  mcInfo 69679cecb02df47aa946c9cbab697449
-  mcMaxPartSize 0bf5ed078998c22e0e1d538759410ede
-  mcMinPartSize 2a35c45a76d84b1971c3c259e6a60ee1
-  partition c4307a2fa21cc63f59feb03253a7acd3
-  partition' 968dd790e46c5ddf1a99a826058b1b68
-  partitionN e548989fd65d35feffaafcbc24a4f7aa
-  pcm e7a811d6a5b55beef9a085d96a0c39d9
-  pws 323d92e3d9f8b633406b17cc43379185
-import  -/  Language.Fixpoint.Graph.Reducible 1ab4d22f279e9eae9aeab566a64a4686
-  exports: 7e5235921cd84ebead6aa8347c0eac49
-  isReducible c6168ca300b75c056e1ba7b4a4aff628
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  CDeps 06921e276f39c4e7b95fbe6bcacf0ad0
-  CDs 43218d331883e2dce5d6a0bebd96e2a2
-  CEdge f2f17be8bf25ad841321175f992cca78
-  CGraph f44ebf3b1fdf0cea81ac142be6e16d97
-  CGraph a00d3fee1cfde56cbc1d47f5041c3776
-  CVertex 0a404ef06dd0fe2a92eb89159f1cc655
-  Comps 62bad75a35b5da1349b9c4ed4d80fd9b
-  Cstr 208edca12160ed50062c4f24b3d2f6a3
-  DKVar 9fdc63b7eded96b193bb7266df2c5861
-  DepEdge 4ac4a2286cc4dbe020da97cce3aeac2f
-  KVComps f02f016fbc88b05aff52f4624502d85e
-  KVGraph 8946d4b9b790cc314663aac4d7d08389
-  KVGraph b350bdb5a7896fc566951f49e5d673e8
-  KVRead 82dc6a3d31252d41a14d27a8a93daf8c
-  KVar 8c108f3d54252c748cec2f60aab62495
-  Rank 9c156fd19ddb73ccd52e0845e9f1b10f
-  Rank cf314d50132935d83698ee9a30f06daa
-  SI 3793dbf1e3a52671229c757903084a70
-  Slice 7928ca6f16eed2b0d5139a9f65db4d4b
-  Slice 3c18a9686e97cbaaa1d4bfeafea94b61
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-  cNumScc 87afa682c8dd1e9f69a5fe4b0723474f
-  cPrev 44378df15353951216d40984b9a58e96
-  cRank 91056843e7d1f21a2e9caef0fc08c864
-  cSucc 684fe736a36e83079101e58c12b55d5f
-  gEdges 7a54076485610616456519238fb8ee79
-  gRanks a2226659a6bb28e4f5737627792d0432
-  gSccs 3ad3f4a0066333ba021b163c1a36474a
-  gSucc f998472e929f2cacdb54dfb2bca77586
-  isRealEdge 6bbecf5086b9c6a3359a2eabd0386ad0
-  kvgEdges eb6fa0ecc67f707c0c302a0c538300eb
-  lookupCMap 0870815b0e5edc51d8f96c01a17ac04c
-  rIcc 38bf3bd76439a8f20c1e4e127885f6df
-  rScc af46031dd918d7df1ae12f39ce98f7c5
-  rTag 0453fee5f00783343cf64781fece1ecc
-  siDeps dc379f0c79c4322eafe1ce9d7d223789
-  siQuery 4e84f9d57ae07ea9ec3747b32c2c102f
-  siSol dff0082a2d59e24319611bdab2e6e0f2
-  siVars 35f5142e8f813175a34215ca8bd6fe2d
-  slConcCs e83121ef94259addc17e0c64d874dff8
-  slEdges 90252d67d85dea8f83277d2ba9896cc8
-  slKVarCs 08cb92300a4bebebaccec0550947b094
-  writeEdges e7e46503d1f68a4a19fe84f261e36cdd
-  writeGraph c3658bfac120e3d950432f4c1c8acbfe
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  CMap 60b1399c548e67aa6e3ae48b1aff972a
-4e3fb6eb254d39efc5aa48c5e81761da
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.$trModule2
-                   Language.Fixpoint.Graph.$trModule1) -}
-b4a9303a6c3694e7c0dd42232abf5d4e
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Graph"#) -}
-64dad0a65b7354789e6d19bc525ce619
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Deps.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Deps.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Deps.dump-hi
+++ /dev/null
@@ -1,1759 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:09.678275 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Deps 8002
-  interface hash: 1a6830410e5c7b00222a19e483ca0766
-  ABI hash: e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  export-list hash: d3caa92ef0344ae02ff65ece3f6ff911
-  orphan hash: 20be72ef2b57e593fe856bef57398eb2
-  flag hash: faf54ffe5aa57e13af055a5bd1ed6cb2
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Deps.decompose
-  Language.Fixpoint.Graph.Deps.elimDeps
-  Language.Fixpoint.Graph.Deps.elimVars
-  Language.Fixpoint.Graph.Deps.graphStatistics
-  Language.Fixpoint.Graph.Deps.isTarget
-  Language.Fixpoint.Graph.Deps.kvEdges
-  Language.Fixpoint.Graph.Deps.slice
-  Language.Fixpoint.Graph.Deps.Elims{Language.Fixpoint.Graph.Deps.Deps depCuts depNonCuts}
-module dependencies: Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Reducible Language.Fixpoint.Graph.Types
-                     Language.Fixpoint.Misc Language.Fixpoint.Smt.Theories
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Function 7aca86bfbd92366def5f260e30cb2628
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Debug.Trace a9edf3aec504f4423d8ba829ab373a25
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Graph 54c0f58a4ccb634fc9eab39368f95434
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Tree d0006987ba7e0d1855cb2cb448efc980
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph.Indexed 1a6ad5c221d2bf0240897b54128017c1
-  exports: 38b4df2d5a1f40d37481a8a92a5c8fa3
-  IKVGraph 8b30269f684e8c9a7c7c90d9467220ac
-  addLinks cf8f8f460aea4797cd0c979b918cb926
-  delNodes 70d83a2349c39ca35fb483e914d548eb
-  edgesIkvg de867a5447b7f8fc81d0afbc7af049f4
-  getPreds c464ac54c8d6f1dc61683793e574f0c4
-  getSuccs 9a82989f7983781a8e9af4a941e4de6d
-  ikvgEdges 2e55782dd4f4e5cc3158c16b935235ac
-import  -/  Language.Fixpoint.Graph.Reducible 1ab4d22f279e9eae9aeab566a64a4686
-  exports: 7e5235921cd84ebead6aa8347c0eac49
-  isReducible c6168ca300b75c056e1ba7b4a4aff628
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  CDeps 06921e276f39c4e7b95fbe6bcacf0ad0
-  CDs 43218d331883e2dce5d6a0bebd96e2a2
-  CEdge f2f17be8bf25ad841321175f992cca78
-  CGraph f44ebf3b1fdf0cea81ac142be6e16d97
-  CGraph a00d3fee1cfde56cbc1d47f5041c3776
-  CVertex 0a404ef06dd0fe2a92eb89159f1cc655
-  Cstr 208edca12160ed50062c4f24b3d2f6a3
-  DKVar 9fdc63b7eded96b193bb7266df2c5861
-  DepEdge 4ac4a2286cc4dbe020da97cce3aeac2f
-  KVComps f02f016fbc88b05aff52f4624502d85e
-  KVGraph 8946d4b9b790cc314663aac4d7d08389
-  KVGraph b350bdb5a7896fc566951f49e5d673e8
-  KVRead 82dc6a3d31252d41a14d27a8a93daf8c
-  KVar 8c108f3d54252c748cec2f60aab62495
-  Rank 9c156fd19ddb73ccd52e0845e9f1b10f
-  Rank cf314d50132935d83698ee9a30f06daa
-  Slice 7928ca6f16eed2b0d5139a9f65db4d4b
-  Slice 3c18a9686e97cbaaa1d4bfeafea94b61
-  cNumScc 87afa682c8dd1e9f69a5fe4b0723474f
-  cPrev 44378df15353951216d40984b9a58e96
-  cRank 91056843e7d1f21a2e9caef0fc08c864
-  cSucc 684fe736a36e83079101e58c12b55d5f
-  gEdges 7a54076485610616456519238fb8ee79
-  gRanks a2226659a6bb28e4f5737627792d0432
-  gSccs 3ad3f4a0066333ba021b163c1a36474a
-  gSucc f998472e929f2cacdb54dfb2bca77586
-  isRealEdge 6bbecf5086b9c6a3359a2eabd0386ad0
-  kvgEdges eb6fa0ecc67f707c0c302a0c538300eb
-  lookupCMap 0870815b0e5edc51d8f96c01a17ac04c
-  slConcCs e83121ef94259addc17e0c64d874dff8
-  slEdges 90252d67d85dea8f83277d2ba9896cc8
-  slKVarCs 08cb92300a4bebebaccec0550947b094
-  writeEdges e7e46503d1f68a4a19fe84f261e36cdd
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  componentsWith 5c5b19dfec8fda3c44a7740b43bf0d25
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  fst3 d403c254371349110bdd0be2f09b4237
-  group e2e2979efce4bc962b883458e2dab7fa
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  autoKuts 5c6fb450711185e0d031adec34198f54
-  elimBound f90823aa10c60e40be905972f3b2f6af
-  elimStats 3875801598d5d133509c9fe402c14cd1
-  nonLinCuts 4c78dd2b827c280fd8ccb0edf9b73f30
-  noslice afa8022b0194c12eccd477b0128adaed
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  GInfo 1052549cc559e08aaa78c218edda206c
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  TaggedC 710144f9da9a9e879219a27a9c6dc76f
-  _ctag 89246fb028c6ad39022fd44f2a538952
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  ksMember d08290f25e3ce97efa755092a7bf0f5f
-  ksVars ee675ede781ff97494cb42494377b76e
-  kuts d406844fa77de9da82204390a3f0a2da
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  DocTable 23959c774350b15e84347a7f8a8a1618
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  PTable f56e84dc8639a434ea5dee7210b75707
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  ptable e5a0c2af407911261639841c294a3c86
-  showpp 0da0198db560727e041326beddb9a8d5
-  tracepp 7724a9ed27c3c4f8119ffb64ffeb17d8
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  KVar 9a92033bfe21324e80629facb0f6357f
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  CMap 60b1399c548e67aa6e3ae48b1aff972a
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  envKVars 8beb8bafb32f77bb7d6294a6bb583510
-  envKVarsN a0dcdf6742402ac65be1e924a7312c47
-  isConcC 168eb47fa1697b4be4039258d2f9ed16
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-  rhsKVars 82f909c00a52c7e77d1d76d4eab7697c
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Dot 975201bc303283f2c5a3a874b9a1f920
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-aa132080ffed998e6d8b22d768fb947b
-  $fMonoidElims ::
-    (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) =>
-    GHC.Base.Monoid (Language.Fixpoint.Graph.Deps.Elims a)
-  DFunId
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A)><L,A>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dEq :: GHC.Classes.Eq a)
-                      ($dHashable :: Data.Hashable.Class.Hashable a).
-                  @ (Language.Fixpoint.Graph.Deps.Elims a)
-                  (Language.Fixpoint.Graph.Deps.$fMonoidElims_$cmempty
-                     @ a
-                     $dEq
-                     $dHashable)
-                  (Language.Fixpoint.Graph.Deps.$fMonoidElims_$cmappend
-                     @ a
-                     $dEq
-                     $dHashable)
-                  (Language.Fixpoint.Graph.Deps.$fMonoidElims_$cmconcat
-                     @ a
-                     $dEq
-                     $dHashable) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fMonoidElims1 :: Language.Fixpoint.Graph.Deps.Elims a
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Graph.Deps.Deps
-                   @ a
-                   (Data.HashMap.Base.Empty @ a @ ())
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0] <a>_N))
-                   (Data.HashMap.Base.Empty @ a @ ())
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0] <a>_N))) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fMonoidElims_$cmappend ::
-    (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) =>
-    Language.Fixpoint.Graph.Deps.Elims a
-    -> Language.Fixpoint.Graph.Deps.Elims a
-    -> Language.Fixpoint.Graph.Deps.Elims a
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,A><S(SS),1*U(U,U)><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Data.Hashable.Class.Hashable a)
-                   (w2 :: Language.Fixpoint.Graph.Deps.Elims a)
-                   (w3 :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 case w2 of ww { Language.Fixpoint.Graph.Deps.Deps ww1 ww2 ->
-                 case w3 of ww3 { Language.Fixpoint.Graph.Deps.Deps ww4 ww5 ->
-                 case Data.HashMap.Base.$wunion
-                        @ a
-                        @ ()
-                        w
-                        ww1 `cast` (Data.HashSet.N:HashSet[0] <a>_N)
-                        ww4 `cast` (Data.HashSet.N:HashSet[0] <a>_N) of nt { DEFAULT ->
-                 case Data.HashMap.Base.$wunion
-                        @ a
-                        @ ()
-                        w
-                        ww2 `cast` (Data.HashSet.N:HashSet[0] <a>_N)
-                        ww5 `cast` (Data.HashSet.N:HashSet[0] <a>_N) of nt1 { DEFAULT ->
-                 Language.Fixpoint.Graph.Deps.Deps
-                   @ a
-                   nt `cast` (Sym (Data.HashSet.N:HashSet[0] <a>_N))
-                   nt1 `cast` (Sym (Data.HashSet.N:HashSet[0] <a>_N)) } } } }) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fMonoidElims_$cmconcat ::
-    (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) =>
-    [Language.Fixpoint.Graph.Deps.Elims a]
-    -> Language.Fixpoint.Graph.Deps.Elims a
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,A><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Data.Hashable.Class.Hashable a)
-                   (w2 :: [Language.Fixpoint.Graph.Deps.Elims a]) ->
-                 case Language.Fixpoint.Graph.Deps.$w$cmconcat
-                        @ a
-                        w
-                        w2 of ww { (#,#) ww1 ww2 ->
-                 Language.Fixpoint.Graph.Deps.Deps @ a ww1 ww2 }) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fMonoidElims_$cmempty ::
-    (GHC.Classes.Eq a, Data.Hashable.Class.Hashable a) =>
-    Language.Fixpoint.Graph.Deps.Elims a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   ($dHashable :: Data.Hashable.Class.Hashable a) ->
-                 Language.Fixpoint.Graph.Deps.$fMonoidElims1 @ a) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fPPrintElims ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Graph.Deps.Elims a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Graph.Deps.Elims a)
-                  (Language.Fixpoint.Graph.Deps.$fPPrintElims_$cpprintTidy @ a)
-                  (Language.Fixpoint.Graph.Deps.$fPPrintElims_$cpprintPrec @ a) -}
-845bcb6d2ea7970871eab0bb210277a3
-  $fPPrintElims1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPPrintElims_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPPrintElims2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-3abea768e241295708dbc40d88faada3
-  $fPPrintElims2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPPrintElims_s) -}
-56dbb7c2a38495e6a40cb1e5b870ea79
-  $fPPrintElims3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPPrintElims_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPPrintElims4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-f8f9141612fa3758b5ad5dfb07436fe8
-  $fPPrintElims4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPPrintElims_s1) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fPPrintElims_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Deps.Elims a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 Language.Fixpoint.Graph.Deps.$fPPrintElims_$cpprintTidy
-                   @ a
-                   eta
-                   eta1) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fPPrintElims_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Deps.Elims a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S(SS),1*U(U,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 case w1 of ww { Language.Fixpoint.Graph.Deps.Deps ww1 ww2 ->
-                 Language.Fixpoint.Graph.Deps.$w$cpprintTidy @ a ww1 ww2 }) -}
-ef390abaf209c0fab5c3ba8ae24d0ca3
-  $fPPrintElims_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "#Cuts ="#) -}
-cf361d6e90c7a0eaedd8ce5fb5608009
-  $fPPrintElims_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "#NonCuts ="#) -}
-ea15980857fc5096f3943a5abaadc81c
-  $fPTableStats ::
-    Language.Fixpoint.Types.PrettyPrint.PTable
-      Language.Fixpoint.Graph.Deps.Stats
-  DFunId
-  {- Arity: 1, Strictness: <S(LLLSS),1*U(U,U,U,U,U)>m2,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Graph.Deps.$fPTableStats_$cptable
-                  `cast`
-                (Sym (Language.Fixpoint.Types.PrettyPrint.N:PTable[0]
-                          <Language.Fixpoint.Graph.Deps.Stats>_N)) -}
-28c489a5a4763483a7dee9505646271a
-  $fPTableStats1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPTableStats_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPTableStats2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-1533767c66eaeefc127b07eff4a9bb8d
-  $fPTableStats10 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPTableStats_s4) -}
-805dd73109d8cade756b196939439060
-  $fPTableStats2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPTableStats_s) -}
-75a16eb6f0cc9d6268327e48732da172
-  $fPTableStats3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPTableStats_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPTableStats4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-4b45388060a30a348a2310bb189657a5
-  $fPTableStats4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPTableStats_s1) -}
-30875e93ad8b01d5afcbf6a3b970a15b
-  $fPTableStats5 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPTableStats_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPTableStats6
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-c12d304466968ddc31bb7f8a38129ee3
-  $fPTableStats6 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPTableStats_s2) -}
-11ecfc3ef3de8b9bd235130e7f2c31da
-  $fPTableStats7 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPTableStats_s3
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPTableStats8
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-7fabeefe3ec0b11a066de29606e55352
-  $fPTableStats8 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Deps.$fPTableStats_s3) -}
-7f01bf2386315990bbcd3eaccfa3dabd
-  $fPTableStats9 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Deps.$fPTableStats_s4
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Deps.$fPTableStats10
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ea15980857fc5096f3943a5abaadc81c
-  $fPTableStats_$cptable ::
-    Language.Fixpoint.Graph.Deps.Stats
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, Strictness: <S(LLLSS),1*U(U,U,U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case w of ww { Language.Fixpoint.Graph.Deps.Stats ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Graph.Deps.$w$cptable
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5 of ww6 { (#,#) ww7 ww8 ->
-                 (GHC.Types.:
-                    @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                    ww7
-                    ww8)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) } }) -}
-d782bcfb96b05a6547f3d7e204db0b4c
-  $fPTableStats_f ::
-    [Language.Fixpoint.Types.Refinements.KVar]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                   Language.Fixpoint.Types.PrettyPrint.Full) -}
-29de238da8ae0b4216f8e19ba5c831a5
-  $fPTableStats_go1 ::
-    [Language.Fixpoint.Types.Refinements.KVar]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-ee500b3496c2ca42b4ab10a5a8bf3aa0
-  $fPTableStats_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "KVars NonLin"#) -}
-fe253525e3c663ffbe9b99d0356ff125
-  $fPTableStats_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# Reducible"#) -}
-a87a649730bd27b520b82d1a14f57e86
-  $fPTableStats_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# KVars [All]"#) -}
-1060ff37ef8bac133d2edadbcb1b0eb0
-  $fPTableStats_s3 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# KVars [NonLin]"#) -}
-26fc1c745b639b07eb47c5e21abcad9c
-  $fPTableStats_s4 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# KVars [Cut]"#) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fShowElims ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Graph.Deps.Elims a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(A,A,C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Graph.Deps.Elims a)
-                  (Language.Fixpoint.Graph.Deps.$fShowElims_$cshowsPrec @ a $dShow)
-                  (Language.Fixpoint.Graph.Deps.$fShowElims_$cshow @ a $dShow)
-                  (Language.Fixpoint.Graph.Deps.$fShowElims_$cshowList @ a $dShow) -}
-9d8257b61fbe4102a359ad578ab5515d
-  $fShowElims1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-6fa0fb9bbb3463b660e01f5d2b8938bb
-  $fShowElims2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-4d2f82a71b00c5fbc68f93142e9e7183
-  $fShowElims3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "depNonCuts = "#) -}
-bf4d3677feaecfe9b45f1388ecae62a7
-  $fShowElims4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-42d69e67e7c88218830abfc318901c11
-  $fShowElims5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "depCuts = "#) -}
-c70066609eeef72e26b730ea056d248c
-  $fShowElims6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Deps {"#) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fShowElims_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Graph.Deps.Elims a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,U(A,A,C(U))><S(SS),1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 Language.Fixpoint.Graph.Deps.$fShowElims_$cshowsPrec
-                   @ a
-                   $dShow
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fShowElims_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Graph.Deps.Elims a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(A,A,C(U))><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Graph.Deps.Elims a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Graph.Deps.Elims a)
-                   (Language.Fixpoint.Graph.Deps.$fShowElims_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Graph.Deps.$fShowElims1)
-                   eta
-                   eta1) -}
-aa132080ffed998e6d8b22d768fb947b
-  $fShowElims_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Deps.Elims a -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,U(A,A,C(U))><S(S),1*U(U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Graph.Deps.Deps ww3 ww4 ->
-                 Language.Fixpoint.Graph.Deps.$w$cshowsPrec
-                   @ a
-                   w
-                   ww1
-                   ww3
-                   ww4 } }) -}
-0a16c34cc6518d45d23cc55b3ce9eb33
-  $s!1 :: v
-  {- Strictness: x -}
-e0798e362f8921204442f8c69bb2b485
-  $s$fPPrintHashSet ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar)
-                  Language.Fixpoint.Graph.Deps.$s$fPPrintHashSet_$s$fPPrintHashSet_$cpprintTidy
-                  Language.Fixpoint.Graph.Deps.$s$fPPrintHashSet1 -}
-e896d51c5f6798fabe231d7ddacf8414
-  $s$fPPrintHashSet1 ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   f :: [Language.Fixpoint.Types.Refinements.KVar]
-                        -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                       @ Language.Fixpoint.Types.Refinements.KVar
-                       Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                       eta
-                 } in
-                 \ (x :: Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Refinements.KVar) ->
-                 f (Data.HashSet.toList
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      x)) -}
-5d79f56db17a9e0e8fb1ac50f1d92436
-  $s$fPPrintHashSet_$s$fPPrintHashSet_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   f :: [Language.Fixpoint.Types.Refinements.KVar]
-                        -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                       @ Language.Fixpoint.Types.Refinements.KVar
-                       Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                       k
-                 } in
-                 \ (x :: Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Refinements.KVar) ->
-                 f (Data.HashSet.toList
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      x)) -}
-8f0c866a544dab2560b4d0bd0c73e17e
-  $s$wupdateOrConcatWithKey ::
-    (Language.Fixpoint.Graph.Types.CVertex -> v -> v -> v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex -> v -> v -> v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Graph.Types.CVertex v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo22 :: forall s3.
-                             Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                             -> Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# s3
-                             -> (# GHC.Prim.State# s3,
-                                   Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s3
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v))
-                       (w2 :: Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s3)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds1 ->
-                          case GHC.Prim.writeArray#
-                                 @ s3
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds1
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds4 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Graph.Types.CVertex v)
-                                         ds4
-                                         ww2 of ds8 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds9 ->
-                                  Language.Fixpoint.Graph.Deps.$wpoly_go2
-                                    @ v
-                                    k1
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf
-                                            Language.Fixpoint.Graph.Types.CVertex v)
-                                       ww) } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo22 @ s3 w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo22
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds4 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds4
-                        ipv2 of ds8 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Graph.Deps.$wgo1
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v))
-                        GHC.Prim.realWorld# of ds9 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s3 { DEFAULT ->
-                 letrec {
-                   $wgo23 :: GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# GHC.Prim.RealWorld
-                             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds10 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Graph.Types.CVertex v)
-                                      ww1
-                                      ww4 of ds12 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Graph.Types.CVertex v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo23 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Graph.Types.CVertex v)
-                                      ww
-                                      i# of ds12 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Graph.Types.CVertex v)
-                                      ww1
-                                      ww4 of ds13 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds14 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Graph.Types.CVertex v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Graph.Types.CVertex
-                                         @ v
-                                         k1
-                                         (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo23 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo23 n1 0# s3 of ds10 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-                        ipv8
-                        ipv9 of ds12 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-9ef706377f2d4e65a539f0dae7a1bce9
-  $s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Graph.Types.CVertex -> v -> v -> v)
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><S,1*U><L,U><S,U>,
-     Inline: [0] -}
-be72fc65bbb403e5a3e7a5a7c731dda7
-  $slookup ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> GHC.Base.Maybe v
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>,
-     Unfolding: (\ @ v
-                   (k0 :: Language.Fixpoint.Graph.Types.CVertex)
-                   (m0 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex v) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        k0 of ww2 { DEFAULT ->
-                 Language.Fixpoint.Graph.Deps.$wpoly_go6
-                   @ v
-                   (GHC.Prim.int2Word# ww2)
-                   k0
-                   0#
-                   m0 }) -}
-2c2bc9d2cd1a86bf2e2495f2463bd296
-  $tc'Deps :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16889783713631273459##
-                   9460401110994604104##
-                   Language.Fixpoint.Graph.Deps.$trModule
-                   Language.Fixpoint.Graph.Deps.$tc'Deps1) -}
-e0db031ff50bf184310d26b366866ce6
-  $tc'Deps1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Deps"#) -}
-aeebc9380a7eb8f7855d97aef1643f62
-  $tc'Stats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10098276558374809387##
-                   8081224944766195777##
-                   Language.Fixpoint.Graph.Deps.$trModule
-                   Language.Fixpoint.Graph.Deps.$tc'Stats1) -}
-af5c7dde1a5d902c316440c93debfa53
-  $tc'Stats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Stats"#) -}
-1af914611ce3608e389faa40bd4671d3
-  $tcElims :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8999050764029494583##
-                   9311580258822110022##
-                   Language.Fixpoint.Graph.Deps.$trModule
-                   Language.Fixpoint.Graph.Deps.$tcElims1) -}
-a1e624a7479e52e400a05b8752a98135
-  $tcElims1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Elims"#) -}
-056e19fecabfdf97f11e280c1f068a28
-  $tcStats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8736968255725873542##
-                   955320135910348592##
-                   Language.Fixpoint.Graph.Deps.$trModule
-                   Language.Fixpoint.Graph.Deps.$tcStats1) -}
-1dacc18bf8398d68d1b122e1091a5149
-  $tcStats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Stats"#) -}
-656ab3d90f998410ffaa4f52c3f24fcb
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.Deps.$trModule2
-                   Language.Fixpoint.Graph.Deps.$trModule1) -}
-71be970f3520859f171ca3602613265e
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Graph.Deps"#) -}
-dfae53f206aae129788bf347c2b104cb
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-aa132080ffed998e6d8b22d768fb947b
-  $w$cmconcat ::
-    GHC.Classes.Eq a =>
-    [Language.Fixpoint.Graph.Deps.Elims a]
-    -> (# Data.HashSet.HashSet a, Data.HashSet.HashSet a #)
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A)><S,1*U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: [Language.Fixpoint.Graph.Deps.Elims a]) ->
-                 let {
-                   lvl43 :: Data.HashMap.Base.HashMap a ()
-                            -> Data.HashMap.Base.HashMap a () -> Data.HashMap.Base.HashMap a ()
-                   = Data.HashMap.Base.$wunion @ a @ () w
-                 } in
-                 letrec {
-                   $wgo22 :: [Language.Fixpoint.Graph.Deps.Elims a]
-                             -> (# Data.HashSet.HashSet a, Data.HashSet.HashSet a #)
-                     {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-                   = \ (w2 :: [Language.Fixpoint.Graph.Deps.Elims a]) ->
-                     case w2 of wild {
-                       []
-                       -> (# (Data.HashMap.Base.Empty @ a @ ())
-                               `cast`
-                             (Sym (Data.HashSet.N:HashSet[0] <a>_N)),
-                             (Data.HashMap.Base.Empty @ a @ ())
-                               `cast`
-                             (Sym (Data.HashSet.N:HashSet[0] <a>_N)) #)
-                       : y ys
-                       -> case y of ww { Language.Fixpoint.Graph.Deps.Deps ww1 ww2 ->
-                          case $wgo22 ys of ww3 { (#,#) ww4 ww5 ->
-                          case lvl43
-                                 ww1 `cast` (Data.HashSet.N:HashSet[0] <a>_N)
-                                 ww4 `cast` (Data.HashSet.N:HashSet[0] <a>_N) of nt { DEFAULT ->
-                          case lvl43
-                                 ww2 `cast` (Data.HashSet.N:HashSet[0] <a>_N)
-                                 ww5 `cast` (Data.HashSet.N:HashSet[0] <a>_N) of nt1 { DEFAULT ->
-                          (# nt `cast` (Sym (Data.HashSet.N:HashSet[0] <a>_N)),
-                             nt1 `cast` (Sym (Data.HashSet.N:HashSet[0] <a>_N)) #) } } } } }
-                 } in
-                 $wgo22 w1) -}
-fdd1b0377782d56607431e669e12461b
-  $w$cpprintTidy ::
-    Data.HashSet.HashSet a
-    -> Data.HashSet.HashSet a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Data.HashSet.HashSet a)
-                   (ww1 :: Data.HashSet.HashSet a) ->
-                 case Data.HashMap.Base.$wsize
-                        @ a
-                        @ ()
-                        ww1 `cast` (Data.HashSet.N:HashSet[0] <a>_N) of ww2 { DEFAULT ->
-                 case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 case Data.HashMap.Base.$wsize
-                        @ a
-                        @ ()
-                        ww `cast` (Data.HashSet.N:HashSet[0] <a>_N) of ww6 { DEFAULT ->
-                 case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                        ww6 of ww7 { (#,#) ww8 ww9 ->
-                 case Language.Fixpoint.Graph.Deps.$fPPrintElims3
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Graph.Deps.$fPPrintElims1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                    @ ()
-                                    wild1
-                                    GHC.Types.True
-                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww8 ww9))
-                                 GHC.Types.True
-                                 wild)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww4 ww5))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww8 ww9)
-                                 GHC.Types.True
-                                 wild)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww4 ww5))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Graph.Deps.$fPPrintElims1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 wild1
-                                 GHC.Types.True
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww8 ww9))
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww4 ww5))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww8 ww9)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww4 ww5))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } } } } }) -}
-7b985dc7685a2832e19e4a37cedba3c8
-  $w$cptable ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> (# (Text.PrettyPrint.HughesPJ.Doc,
-           Text.PrettyPrint.HughesPJ.Doc),
-          [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)] #)
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: Data.HashSet.HashSet
-                             Language.Fixpoint.Types.Refinements.KVar) ->
-                 (# (Language.Fixpoint.Graph.Deps.$fPTableStats9,
-                     case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                            ww of ww5 { (#,#) ww6 ww7 ->
-                     (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww6 ww7)
-                       `cast`
-                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }),
-                    GHC.Types.:
-                      @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                      (Language.Fixpoint.Graph.Deps.$fPTableStats7,
-                       case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                              ww1 of ww5 { (#,#) ww6 ww7 ->
-                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww6 ww7)
-                         `cast`
-                       (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) })
-                      (GHC.Types.:
-                         @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                         (Language.Fixpoint.Graph.Deps.$fPTableStats5,
-                          case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                                 ww2 of ww5 { (#,#) ww6 ww7 ->
-                          (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww6 ww7)
-                            `cast`
-                          (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) })
-                         (GHC.Types.:
-                            @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                            (Language.Fixpoint.Graph.Deps.$fPTableStats3,
-                             let {
-                               s3 :: GHC.Base.String
-                               = case ww3 of wild {
-                                   GHC.Types.False -> GHC.Show.shows18
-                                   GHC.Types.True -> GHC.Show.shows17 }
-                             } in
-                             case GHC.List.$wlenAcc @ GHC.Types.Char s3 0# of ww5 { DEFAULT ->
-                             (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                @ ()
-                                (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Str s3)
-                                   ww5)
-                                (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                               `cast`
-                             (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) })
-                            (GHC.Types.:
-                               @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                               (Language.Fixpoint.Graph.Deps.$fPTableStats1,
-                                Language.Fixpoint.Graph.Deps.$fPTableStats_f
-                                  (Language.Fixpoint.Graph.Deps.$fPTableStats_go1
-                                     (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                                     ww4
-                                       `cast`
-                                     (Data.HashSet.N:HashSet[0]
-                                          <Language.Fixpoint.Types.Refinements.KVar>_N)))
-                               (GHC.Types.[]
-                                  @ (Text.PrettyPrint.HughesPJ.Doc,
-                                     Text.PrettyPrint.HughesPJ.Doc))))) #)) -}
-dec1ca9626008eb752721210d1b7b8cd
-  $w$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Prim.Int#
-    -> Data.HashSet.HashSet a
-    -> Data.HashSet.HashSet a
-    -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <L,U(A,A,C(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.HashSet.HashSet a)
-                   (ww2 :: Data.HashSet.HashSet a) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashSet.$w$cshowsPrec @ a w 0# ww1
-                 } in
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashSet.$w$cshowsPrec @ a w 0# ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Graph.Deps.$fShowElims6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Graph.Deps.$fShowElims5
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Graph.Deps.$fShowElims4
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Graph.Deps.$fShowElims3
-                                   (f1
-                                      (GHC.Base.++
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.Graph.Deps.$fShowElims2
-                                         x))))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-1fd290fd96fc38741c21ef32cd1d6323
-  $welimDeps ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> (# Language.Fixpoint.Types.Solutions.CMap
-            [Language.Fixpoint.Types.Constraints.SubcId],
-          Language.Fixpoint.Types.Solutions.CMap
-            [Language.Fixpoint.Types.Refinements.KVar],
-          Language.Fixpoint.Types.Solutions.CMap
-            Language.Fixpoint.Graph.Types.Rank,
-          GHC.Prim.Int# #)
-  {- Arity: 3,
-     Strictness: <L,U(U,A,A,A,A,U,A,A,A,A,A)><S,1*U><S,1*U>,
-     Inline: [0] -}
-e298cd9df303580c5f2d636692b2691e
-  $welimVars ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> (# [Language.Fixpoint.Graph.Types.CEdge],
-          Language.Fixpoint.Graph.Deps.Elims
-            Language.Fixpoint.Types.Refinements.KVar #)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(U),A,A,C(C1(U)),C(U))><L,U(A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,1*U,A,A,A)><L,U(U,U,U(U,U),A,A,U,A,A,A,A,A)>,
-     Inline: [0] -}
-4fccedaa632ec7fdae6e122455191182
-  $wgo1 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-4644deb33d35fb0ea78a536fda305379
-  $wgraphStatistics ::
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 7,
-     Strictness: <L,U><L,U><S,1*U><L,U><L,U><L,U(U,U,U(U,U),A,A,U,A,A,A,A,A)><S,U>,
-     Inline: [0] -}
-4cb8e2aee1f3a992997129bddceb6df5
-  $wkvEdges ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> [(Language.Fixpoint.Graph.Types.CVertex,
-         Language.Fixpoint.Graph.Types.CVertex)]
-  {- Arity: 4,
-     Strictness: <L,U(A,C(U),A,A,C(C1(U)),C(U))><S,U><L,U><L,U(U,U)>,
-     Inline: [0] -}
-26797691d2a097190b5448257f3ee337
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-831ba73ac7dbfe466407a8c8a5aa456f
-  $wpoly_go2 ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-5cf08fcd3c20cfb5abe87f34fbd3bf9c
-  $wpoly_go3 ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-30b5cd8dcb5b006feebe0a8951a1b242
-  $wpoly_go4 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Constraints.SubcId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-c680d824804b8ea828878ccb77e697dd
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-  {- Arity: 5, Strictness: <S,U><S,1*U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-22cbd02ed5b32073bf82802c268e72eb
-  $wpoly_go6 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-1adbc4dec59e91be0f5e28d12a1c029a
-  $wpoly_go7 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-231f138e5446071dadc4f018c0999da3
-  $wpoly_go8 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-81fc1542d959c419f473bedf7993ede7
-  $wslice ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    GHC.Types.Bool
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 13,
-     Strictness: <L,U(A,A,A,A,C(C1(U)),U)><S,1*U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-9d28337320d1a7430036b4fbd7848c9f
-  type Cutable a =
-    (GHC.Classes.Eq a, GHC.Classes.Ord a,
-     Data.Hashable.Class.Hashable a, GHC.Show.Show a)
-    :: GHC.Types.Constraint
-2832ab238a73dd91bc0bd5adcbdd2d75
-  type Cutter a = [(a, a, [a])] -> GHC.Base.Maybe (a, [(a, a, [a])])
-11dc0fed46b2feb1ee4f0b4b7e0ce177
-  type EdgeRank =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar GHC.Integer.Type.Integer
-aa132080ffed998e6d8b22d768fb947b
-  type role Elims nominal
-  data Elims a
-    = Deps {depCuts :: !Data.HashSet.HashSet a,
-            depNonCuts :: !Data.HashSet.HashSet a}
-ea15980857fc5096f3943a5abaadc81c
-  data Stats
-    = Stats {stNumKVCuts :: {-# UNPACK #-}GHC.Types.Int,
-             stNumKVNonLin :: {-# UNPACK #-}GHC.Types.Int,
-             stNumKVTotal :: {-# UNPACK #-}GHC.Types.Int,
-             stIsReducible :: !GHC.Types.Bool,
-             stSetKVNonLin :: !Data.HashSet.HashSet
-                                 Language.Fixpoint.Types.Refinements.KVar}
-b04b584a66ff02ec06cad80d94b72146
-  decompose ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Graph.Types.KVComps
-  {- Arity: 2, Strictness: <L,U(A,C(U),A,A,C(C1(U)),C(U))><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (eta :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 Language.Fixpoint.Misc.componentsWith
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   Language.Fixpoint.Graph.Types.$fOrdCVertex
-                   (\ (x :: Language.Fixpoint.Types.Constraints.GInfo c a)[OneShot] ->
-                    Language.Fixpoint.Graph.Deps.decompose_go
-                      (Language.Fixpoint.Misc.coalesceEdges1
-                         @ Language.Fixpoint.Graph.Types.CVertex
-                         @ Language.Fixpoint.Graph.Types.CVertex
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Graph.Types.CVertex,
-                               [Language.Fixpoint.Graph.Types.CVertex]))
-                         (Language.Fixpoint.Misc.groupBase
-                            @ Language.Fixpoint.Graph.Types.CVertex
-                            @ Language.Fixpoint.Graph.Types.CVertex
-                            Language.Fixpoint.Graph.Types.$fEqCVertex
-                            Language.Fixpoint.Graph.Types.$fHashableCVertex
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Graph.Types.CVertex
-                               @ [Language.Fixpoint.Graph.Types.CVertex])
-                            (Language.Fixpoint.Graph.Deps.kvEdges @ c @ a $dTaggedC x))))
-                   eta) -}
-7ba868f86c306cc069a97337dac22d5a
-  decompose_go ::
-    [(Language.Fixpoint.Graph.Types.CVertex,
-      [Language.Fixpoint.Graph.Types.CVertex])]
-    -> [(Language.Fixpoint.Graph.Types.CVertex,
-         Language.Fixpoint.Graph.Types.CVertex,
-         [Language.Fixpoint.Graph.Types.CVertex])]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-83d1edc1722d736fb5b5a3aa5d820ae7
-  depCuts ::
-    Language.Fixpoint.Graph.Deps.Elims a -> Data.HashSet.HashSet a
-  RecSel Left Language.Fixpoint.Graph.Deps.Elims
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Deps ds1 ds8 ->
-                 ds1 }) -}
-06fa0366722b2884b2aaf64ea62a68e8
-  depNonCuts ::
-    Language.Fixpoint.Graph.Deps.Elims a -> Data.HashSet.HashSet a
-  RecSel Left Language.Fixpoint.Graph.Deps.Elims
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Graph.Deps.Elims a) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Deps ds1 ds8 ->
-                 ds8 }) -}
-5665258949b04edd49306c81248cfba0
-  elimDeps ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Graph.Types.CDeps
-  {- Arity: 3,
-     Strictness: <L,U(U,A,A,A,A,U,A,A,A,A,A)><S,1*U><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w1 :: [Language.Fixpoint.Graph.Types.CEdge])
-                   (w2 :: Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Refinements.KVar) ->
-                 case Language.Fixpoint.Graph.Deps.$welimDeps
-                        @ a
-                        w
-                        w1
-                        w2 of ww { (#,,,#) ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Graph.Types.CDs ww1 ww2 ww3 ww4 }) -}
-79f5aa78d78e83cef63fd4dd235ff9b6
-  elimVars ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> ([Language.Fixpoint.Graph.Types.CEdge],
-        Language.Fixpoint.Graph.Deps.Elims
-          Language.Fixpoint.Types.Refinements.KVar)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(U),A,A,C(C1(U)),C(U))><L,U(A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,1*U,A,A,A)><L,U(U,U,U(U,U),A,A,U,A,A,A,A,A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (w1 :: Language.Fixpoint.Types.Config.Config)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case Language.Fixpoint.Graph.Deps.$welimVars
-                        @ c
-                        @ a
-                        w
-                        w1
-                        w2 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-ba6d87d5443281b758cf4be72c2f3799
-  graphStatistics ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a -> GHC.Types.IO ()
-  {- Arity: 3,
-     Strictness: <S(LLLLLLLLLLLLSLLLLLLLLLLLLLLLLLLL),1*U(U,A,A,A,A,A,A,A,A,A,A,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,A,A,A)><L,U(U,U,U(U,U),A,A,U,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Deps.graphStatistics1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-2341ab041f9b2a5d5c2a0cf51f4fca98
-  graphStatistics1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3,
-     Strictness: <S(LLLLLLLLLLLLSLLLLLLLLLLLLLLLLLLL),1*U(U,A,A,A,A,A,A,A,A,A,A,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,A,A,A)><L,U(U,U,U(U,U),A,A,U,A,A,A,A,A)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Graph.Deps.$wgraphStatistics
-                   @ a
-                   ww1
-                   ww12
-                   ww13
-                   ww28
-                   ww29
-                   w1
-                   w2 }) -}
-6782583cf6b58e5237626b8fd737ad77
-  isTarget ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    c a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLLLLC(S)),U(A,A,A,A,A,C(U))><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (c1 :: c a) ->
-                 case Language.Fixpoint.Types.Visitor.isConcC
-                        @ c
-                        @ a
-                        $dTaggedC
-                        c1 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                             (Language.Fixpoint.Types.Constraints.crhs
-                                @ c
-                                @ a
-                                $dTaggedC
-                                c1) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True -> GHC.Types.False } }) -}
-f940abc15579978762776e660e827d95
-  kvEdges ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 2,
-     Strictness: <L,U(A,C(U),A,A,C(C1(U)),C(U))><S(SLLLLLLLLLL),U(U,U,U(U,U),A,A,A,A,A,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Graph.Deps.$wkvEdges @ c @ a w ww1 ww2 ww3 }) -}
-193a333b665d84fc9d67b77efe5ba4de
-  slice ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,C(C1(U)),U)><S(LLLLLLLLLLLLLLLLLLLLLLLLLLLLLSLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A)><S,1*U(U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (w1 :: Language.Fixpoint.Types.Config.Config)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 case w2 of ww33 { Language.Fixpoint.Types.Constraints.FI ww34 ww35 ww36 ww37 ww38 ww39 ww40 ww41 ww42 ww43 ww44 ->
-                 Language.Fixpoint.Graph.Deps.$wslice
-                   @ c
-                   @ a
-                   w
-                   ww30
-                   ww34
-                   ww35
-                   ww36
-                   ww37
-                   ww38
-                   ww39
-                   ww40
-                   ww41
-                   ww42
-                   ww43
-                   ww44 } }) -}
-b9dea5784e6cb62655d684fc7c472d49
-  stIsReducible ::
-    Language.Fixpoint.Graph.Deps.Stats -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Graph.Deps.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLSL),1*U(A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Stats dt dt1 dt2 ds1 ds8 ->
-                 ds1 }) -}
-7f859e9f560d94383dd48bb5f6dd752d
-  stNumKVCuts :: Language.Fixpoint.Graph.Deps.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Deps.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLLL),1*U(U,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Stats dt dt1 dt2 ds1 ds8 ->
-                 GHC.Types.I# dt }) -}
-27d1e07a97c65bfbdbc27121ad5c6299
-  stNumKVNonLin ::
-    Language.Fixpoint.Graph.Deps.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Deps.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLLL),1*U(A,U,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Stats dt dt1 dt2 ds1 ds8 ->
-                 GHC.Types.I# dt1 }) -}
-255a46300950f95d46fac6dbccbbbf85
-  stNumKVTotal :: Language.Fixpoint.Graph.Deps.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Deps.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Stats dt dt1 dt2 ds1 ds8 ->
-                 GHC.Types.I# dt2 }) -}
-f07046beba9ca2b1b4e43b6f9c0217cb
-  stSetKVNonLin ::
-    Language.Fixpoint.Graph.Deps.Stats
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-  RecSel Left Language.Fixpoint.Graph.Deps.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLLS),1*U(A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Deps.Stats) ->
-                 case ds of wild { Language.Fixpoint.Graph.Deps.Stats dt dt1 dt2 ds1 ds8 ->
-                 ds8 }) -}
-instance GHC.Base.Monoid [Language.Fixpoint.Graph.Deps.Elims]
-  = Language.Fixpoint.Graph.Deps.$fMonoidElims
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Graph.Deps.Elims]
-  = Language.Fixpoint.Graph.Deps.$fPPrintElims
-instance Language.Fixpoint.Types.PrettyPrint.PTable [Language.Fixpoint.Graph.Deps.Stats]
-  = Language.Fixpoint.Graph.Deps.$fPTableStats
-instance GHC.Show.Show [Language.Fixpoint.Graph.Deps.Elims]
-  = Language.Fixpoint.Graph.Deps.$fShowElims
-"SPEC/Language.Fixpoint.Graph.Deps $fPPrintHashSet @ KVar" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                          Language.Fixpoint.Types.Refinements.KVar)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet @ Language.Fixpoint.Types.Refinements.KVar
-                                                      $dPPrint
-  = Language.Fixpoint.Graph.Deps.$s$fPPrintHashSet
-"SPEC/Language.Fixpoint.Graph.Deps $fPPrintHashSet_$cpprintTidy @ KVar" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                       Language.Fixpoint.Types.Refinements.KVar)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy @ Language.Fixpoint.Types.Refinements.KVar
-                                                                   $dPPrint
-  = Language.Fixpoint.Graph.Deps.$s$fPPrintHashSet_$s$fPPrintHashSet_$cpprintTidy
-"SPEC/Language.Fixpoint.Graph.Deps $wupdateOrConcatWithKey @ CVertex _" [0] forall @ v
-                                                                                   (w :: GHC.Classes.Eq
-                                                                                           Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ Language.Fixpoint.Graph.Types.CVertex
-                                            @ v
-                                            w
-  = Language.Fixpoint.Graph.Deps.$s$wupdateOrConcatWithKey @ v
-"SPEC/Language.Fixpoint.Graph.Deps $wupdateOrSnocWithKey @ CVertex _" [0] forall @ v
-                                                                                 (w :: GHC.Classes.Eq
-                                                                                         Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashMap.Base.$wupdateOrSnocWithKey @ Language.Fixpoint.Graph.Types.CVertex
-                                          @ v
-                                          w
-  = Language.Fixpoint.Graph.Deps.$s$wupdateOrSnocWithKey @ v
-"SPEC/Language.Fixpoint.Graph.Deps lookup @ CVertex _" [ALWAYS] forall @ v
-                                                                       ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                        Language.Fixpoint.Graph.Types.CVertex)
-                                                                       ($dEq :: GHC.Classes.Eq
-                                                                                  Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashMap.Base.lookup @ Language.Fixpoint.Graph.Types.CVertex
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Graph.Deps.$slookup @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Indexed.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Indexed.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Indexed.dump-hi
+++ /dev/null
@@ -1,1151 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:06.443831 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Indexed 8002
-  interface hash: 8a47d4a8391dfa0379d8e1e40b1a4ef0
-  ABI hash: 1a6ad5c221d2bf0240897b54128017c1
-  export-list hash: 38b4df2d5a1f40d37481a8a92a5c8fa3
-  orphan hash: 40f38045549a32a4698221395d43c43d
-  flag hash: 8e73d7dbdb9c82fc3ee2e21a2e178e96
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Indexed.addLinks
-  Language.Fixpoint.Graph.Indexed.delNodes
-  Language.Fixpoint.Graph.Indexed.edgesIkvg
-  Language.Fixpoint.Graph.Indexed.getPreds
-  Language.Fixpoint.Graph.Indexed.getSuccs
-  Language.Fixpoint.Graph.Indexed.ikvgEdges
-  Language.Fixpoint.Graph.Indexed.IKVGraph{Language.Fixpoint.Graph.Indexed.IKVGraph igPred igSucc}
-module dependencies: Language.Fixpoint.Graph.Types
-                     Language.Fixpoint.Misc Language.Fixpoint.Smt.Theories
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  CEdge f2f17be8bf25ad841321175f992cca78
-  CVertex 0a404ef06dd0fe2a92eb89159f1cc655
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-8b30269f684e8c9a7c7c90d9467220ac
-  $fShowIKVGraph ::
-    GHC.Show.Show Language.Fixpoint.Graph.Indexed.IKVGraph
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Indexed.IKVGraph
-                  Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$cshowsPrec
-                  Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$cshow
-                  Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$cshowList -}
-8b30269f684e8c9a7c7c90d9467220ac
-  $fShowIKVGraph1 ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 Language.Fixpoint.Graph.Indexed.$w$cshowsPrec 0# ww1 ww2 }) -}
-56ae6ddc27d51577bc615d1badaefe5f
-  $fShowIKVGraph2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-86ae6b60c0ef89e9cc0b7f3a77cc181b
-  $fShowIKVGraph3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "igPred = "#) -}
-8b54426f5ae90da7c7b087d1f5ca9ce5
-  $fShowIKVGraph4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-0cd87f9b398fee71a015a30e8f2deab2
-  $fShowIKVGraph5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "igSucc = "#) -}
-f8c0ba22115cbf5918cf01990bd4db66
-  $fShowIKVGraph6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "IKVGraph {"#) -}
-8b30269f684e8c9a7c7c90d9467220ac
-  $fShowIKVGraph_$cshow ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-8b30269f684e8c9a7c7c90d9467220ac
-  $fShowIKVGraph_$cshowList ::
-    [Language.Fixpoint.Graph.Indexed.IKVGraph] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Graph.Indexed.IKVGraph
-                   Language.Fixpoint.Graph.Indexed.$fShowIKVGraph1) -}
-8b30269f684e8c9a7c7c90d9467220ac
-  $fShowIKVGraph_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Graph.Indexed.IKVGraph ww3 ww4 ->
-                 Language.Fixpoint.Graph.Indexed.$w$cshowsPrec ww1 ww3 ww4 } }) -}
-62b6e7043bb7b08113a550e64c0bb0be
-  $fShowIKVGraph_$s$fShowHashSet ::
-    GHC.Show.Show
-      (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                  (Data.HashSet.$fShowHashSet_$cshowsPrec
-                     @ Language.Fixpoint.Graph.Types.CVertex
-                     Language.Fixpoint.Graph.Types.$fShowCVertex)
-                  Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet_$cshow
-                  Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet_$cshowList -}
-dbfa27dc7689fb28a0e6a5dcee15bf53
-  $fShowIKVGraph_$s$fShowHashSet_$cshow ::
-    Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Data.HashSet.HashSet
-                           Language.Fixpoint.Graph.Types.CVertex) ->
-                 Data.HashSet.$fShowHashSet_$cshowsPrec
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   Language.Fixpoint.Graph.Types.$fShowCVertex
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-4d774be4f10127ba70a5ffe31dfaf9e8
-  $fShowIKVGraph_$s$fShowHashSet_$cshowList ::
-    [Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex]
-    -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ls :: [Data.HashSet.HashSet
-                             Language.Fixpoint.Graph.Types.CVertex])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                   (Data.HashSet.$fShowHashSet_$cshowsPrec
-                      @ Language.Fixpoint.Graph.Types.CVertex
-                      Language.Fixpoint.Graph.Types.$fShowCVertex
-                      GHC.Show.shows22)
-                   ls
-                   s) -}
-8fe153e7524b8e0819e365ea54687d3a
-  $s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Graph.Types.CVertex -> v -> v -> v)
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><S,1*U><L,U><S,U>,
-     Inline: [0] -}
-02653bd2ff7ca305d8d49010cad9ee03
-  $sdelete ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-  {- Arity: 2, Strictness: <S,U><S,1*U>,
-     Unfolding: (\ @ v
-                   (k0 :: Language.Fixpoint.Graph.Types.CVertex)
-                   (m0 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex v) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        k0 of ww2 { DEFAULT ->
-                 Language.Fixpoint.Graph.Indexed.$wpoly_go3
-                   @ v
-                   (GHC.Prim.int2Word# ww2)
-                   k0
-                   0#
-                   m0 }) -}
-94f9b6789fd8e303cea03403b6a9cf6b
-  $tc'IKVGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16143761761608068701##
-                   7326080974175050798##
-                   Language.Fixpoint.Graph.Indexed.$trModule
-                   Language.Fixpoint.Graph.Indexed.$tc'IKVGraph1) -}
-7fdfc1b405a4ee8cd8ffd18bd4b2c5f3
-  $tc'IKVGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'IKVGraph"#) -}
-bb2cd705affe54b7f64c1ff4c7f469b2
-  $tcIKVGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5154887224847685705##
-                   3574947274801620141##
-                   Language.Fixpoint.Graph.Indexed.$trModule
-                   Language.Fixpoint.Graph.Indexed.$tcIKVGraph1) -}
-b79a289d6edf4b58f8bdd65af3069637
-  $tcIKVGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "IKVGraph"#) -}
-9fa6a5046275f72cc66e391470d130d8
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.Indexed.$trModule2
-                   Language.Fixpoint.Graph.Indexed.$trModule1) -}
-852d93c9f3bd5ecb52dd99787985d032
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Graph.Indexed"#) -}
-3129bcfd35b78b905814ebf201de9707
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-eb94eadb94ea8385f85ced12707d88c7
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Graph.Types.CVertex
-                             (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (ww2 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Graph.Types.CVertex
-                             (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ Language.Fixpoint.Graph.Types.CVertex
-                       @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                       Language.Fixpoint.Graph.Types.$fShowCVertex
-                       Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet
-                       0#
-                       ww1
-                 } in
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ Language.Fixpoint.Graph.Types.CVertex
-                       @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                       Language.Fixpoint.Graph.Types.$fShowCVertex
-                       Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet
-                       0#
-                       ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Graph.Indexed.$fShowIKVGraph6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Graph.Indexed.$fShowIKVGraph5
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Graph.Indexed.$fShowIKVGraph4
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Graph.Indexed.$fShowIKVGraph3
-                                   (f1
-                                      (GHC.Base.++
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.Graph.Indexed.$fShowIKVGraph2
-                                         x))))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-caa12ab5a77b60bf35239eadd39aeed6
-  $wc ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U>,
-     Inline: [0] -}
-8120fe4df8a035ef77df0e1bb6e0d2df
-  $wdelNodes ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Graph.Types.CVertex
-      (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> (# Data.HashMap.Base.HashMap
-            Language.Fixpoint.Graph.Types.CVertex
-            (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex),
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Graph.Types.CVertex
-            (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex) #)
-  {- Arity: 3, Strictness: <S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex
-                            (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Graph.Types.CVertex
-                             (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (w :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 letrec {
-                   $wgo :: [Language.Fixpoint.Graph.Types.CVertex]
-                           -> Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                           -> Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                           -> (# Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Graph.Types.CVertex
-                                   (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex),
-                                 Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Graph.Types.CVertex
-                                   (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex) #)
-                     {- Arity: 3, Strictness: <S,1*U><L,U><L,U>, Inline: [0] -}
-                   = \ (w1 :: [Language.Fixpoint.Graph.Types.CVertex])
-                       (ww2 :: Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Graph.Types.CVertex
-                                 (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                       (ww3 :: Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Graph.Types.CVertex
-                                 (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)) ->
-                     case w1 of wild {
-                       [] -> (# ww2, ww3 #)
-                       : y ys
-                       -> case Language.Fixpoint.Graph.Indexed.delNodes_$sremoves
-                                 y
-                                 w
-                                 ww3 of dt { DEFAULT ->
-                          $wgo ys ww2 dt } }
-                 } in
-                 case $wgo
-                        (Language.Fixpoint.Graph.Indexed.$wgetSuccs ww w)
-                        ww
-                        ww1 of ww2 { (#,#) ww3 ww4 ->
-                 letrec {
-                   $wgo10 :: [Language.Fixpoint.Graph.Types.CVertex]
-                             -> Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Graph.Types.CVertex
-                                  (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                             -> Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Graph.Types.CVertex
-                                  (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                             -> (# Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Graph.Types.CVertex
-                                     (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex),
-                                   Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Graph.Types.CVertex
-                                     (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex) #)
-                     {- Arity: 3, Strictness: <S,1*U><L,U><L,U>, Inline: [0] -}
-                   = \ (w1 :: [Language.Fixpoint.Graph.Types.CVertex])
-                       (ww5 :: Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Graph.Types.CVertex
-                                 (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                       (ww6 :: Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Graph.Types.CVertex
-                                 (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)) ->
-                     case w1 of wild {
-                       [] -> (# ww5, ww6 #)
-                       : y ys
-                       -> case Language.Fixpoint.Graph.Indexed.delNodes_$sremoves
-                                 y
-                                 w
-                                 ww5 of dt { DEFAULT ->
-                          $wgo10 ys dt ww6 } }
-                 } in
-                 case $wgo10
-                        (Language.Fixpoint.Graph.Indexed.$wgetPreds ww1 w)
-                        ww3
-                        ww4 of ww5 { (#,#) ww6 ww7 ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        w of ww8 { DEFAULT ->
-                 case Language.Fixpoint.Graph.Indexed.$wpoly_go3
-                        @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                        (GHC.Prim.int2Word# ww8)
-                        w
-                        0#
-                        ww6 of dt { DEFAULT ->
-                 case Language.Fixpoint.Graph.Indexed.$wpoly_go3
-                        @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                        (GHC.Prim.int2Word# ww8)
-                        w
-                        0#
-                        ww7 of dt1 { DEFAULT ->
-                 (# dt, dt1 #) } } } } }) -}
-d6abf6707e4f935a892e4eb6d66b7483
-  $wgetPreds ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Graph.Types.CVertex
-      (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex
-                            (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (w :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        w of ww2 { DEFAULT ->
-                 case Language.Fixpoint.Graph.Indexed.$wpoly_go5
-                        @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                        (GHC.Prim.int2Word# ww2)
-                        w
-                        0#
-                        ww of wild {
-                   GHC.Base.Nothing
-                   -> GHC.Types.[] @ Language.Fixpoint.Graph.Types.CVertex
-                   GHC.Base.Just v1
-                   -> Language.Fixpoint.Graph.Indexed.delNodes_go1
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CVertex)
-                        v1
-                          `cast`
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Graph.Types.CVertex>_N) } }) -}
-74152b3328d2d0432ae89936ee4291e8
-  $wgetSuccs ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Graph.Types.CVertex
-      (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex
-                            (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (w :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        w of ww2 { DEFAULT ->
-                 case Language.Fixpoint.Graph.Indexed.$wpoly_go5
-                        @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                        (GHC.Prim.int2Word# ww2)
-                        w
-                        0#
-                        ww of wild {
-                   GHC.Base.Nothing
-                   -> GHC.Types.[] @ Language.Fixpoint.Graph.Types.CVertex
-                   GHC.Base.Just v1
-                   -> Language.Fixpoint.Graph.Indexed.delNodes_go2
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CVertex)
-                        v1
-                          `cast`
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Graph.Types.CVertex>_N) } }) -}
-a3a959d606a130ee42254459e4fc7b50
-  $wgo1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-9e260421ca69cbb5938a1e8e54ce2908
-  $wgo2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-026d9c86f981a01f45e53dffcd1ca3ef
-  $wgo3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-ae380691a6df0910927d2d184b26991d
-  $wgo4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-09416dd732714afd4226453bbebd16dc
-  $wgo5 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-a9db17fd3f4adc7873d3601e495bceec
-  $wgo6 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-976fbd38109f337083e74900b7fd3db7
-  $wgo7 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-e747f36724d1f85846c908089ef9c57c
-  $wgo8 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-f0c7a6713d7acd37db3689ac4751589c
-  $wgo9 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-a4a694707bbf34210f74500ab8eede2c
-  $wpoly_go1 ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-c4d6264b6865e9a55d9f61e67c13c434
-  $wpoly_go2 ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-31c4b58fc1528d41e6236985d02b8587
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-  {- Arity: 4, Strictness: <L,U><S,1*U><L,U><S,1*U>, Inline: [0] -}
-9a83516b178b7abb2bcb0d9a118af7b5
-  $wpoly_go4 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-  {- Arity: 5, Strictness: <S,U><S,1*U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-2827248538b302ec11223d01d2c0caf3
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-8b30269f684e8c9a7c7c90d9467220ac
-  data IKVGraph
-    = IKVGraph {igSucc :: !Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Graph.Types.CVertex
-                             (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex),
-                igPred :: !Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Graph.Types.CVertex
-                             (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)}
-cf8f8f460aea4797cd0c979b918cb926
-  addLinks ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 2,
-     Unfolding: (GHC.List.foldl'
-                   @ Language.Fixpoint.Graph.Types.CEdge
-                   @ Language.Fixpoint.Graph.Indexed.IKVGraph
-                   Language.Fixpoint.Graph.Indexed.addLinks1) -}
-203e9d8022690628a26ce3e74e1ac46b
-  addLinks1 ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> (Language.Fixpoint.Graph.Types.CVertex,
-        Language.Fixpoint.Graph.Types.CVertex)
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 2, Strictness: <S(SS),1*U(U,U)><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph)
-                   (w1 :: (Language.Fixpoint.Graph.Types.CVertex,
-                           Language.Fixpoint.Graph.Types.CVertex)) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 case w1 of ww3 { (,) ww4 ww5 ->
-                 case Language.Fixpoint.Graph.Indexed.addLinks_$sinserts
-                        ww5
-                        ww4
-                        ww2 of dt { DEFAULT ->
-                 case Language.Fixpoint.Graph.Indexed.addLinks_$sinserts
-                        ww4
-                        ww5
-                        ww1 of dt1 { DEFAULT ->
-                 Language.Fixpoint.Graph.Indexed.IKVGraph dt1 dt } } } }) -}
-904afbf7a4658b4396dae8a7d8ab6098
-  addLinks_$sinserts ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-  {- Arity: 3, Strictness: <S,U><S,U><S,U>,
-     Unfolding: (\ (k :: Language.Fixpoint.Graph.Types.CVertex)
-                   (v :: Language.Fixpoint.Graph.Types.CVertex)
-                   (m :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Graph.Types.CVertex
-                           (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        k of ww2 { DEFAULT ->
-                 case case Language.Fixpoint.Graph.Indexed.$wpoly_go5
-                             @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                             (GHC.Prim.int2Word# ww2)
-                             k
-                             0#
-                             m of wild {
-                        GHC.Base.Nothing
-                        -> case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                                  -2578643520546668380#
-                                  v of ww1 { DEFAULT ->
-                           Language.Fixpoint.Graph.Indexed.$wpoly_go4
-                             @ ()
-                             (GHC.Prim.int2Word# ww1)
-                             v
-                             GHC.Tuple.()
-                             0#
-                             (Data.HashMap.Base.Empty
-                                @ Language.Fixpoint.Graph.Types.CVertex
-                                @ ()) }
-                        GHC.Base.Just v1
-                        -> case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                                  -2578643520546668380#
-                                  v of ww1 { DEFAULT ->
-                           Language.Fixpoint.Graph.Indexed.$wpoly_go4
-                             @ ()
-                             (GHC.Prim.int2Word# ww1)
-                             v
-                             GHC.Tuple.()
-                             0#
-                             v1
-                               `cast`
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Graph.Types.CVertex>_N) } } of nt { DEFAULT ->
-                 Language.Fixpoint.Graph.Indexed.$wpoly_go4
-                   @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                   (GHC.Prim.int2Word# ww2)
-                   k
-                   nt
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Graph.Types.CVertex>_N))
-                   0#
-                   m } }) -}
-70d83a2349c39ca35fb483e914d548eb
-  delNodes ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 2,
-     Unfolding: (GHC.List.foldl'
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   @ Language.Fixpoint.Graph.Indexed.IKVGraph
-                   Language.Fixpoint.Graph.Indexed.delNodes1) -}
-02a5a5a500e6b1e960ade4bdaed1568e
-  delNodes1 ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 2, Strictness: <S(SS),U(U,U)><S,U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 case Language.Fixpoint.Graph.Indexed.$wdelNodes
-                        ww1
-                        ww2
-                        w1 of ww3 { (#,#) ww4 ww5 ->
-                 Language.Fixpoint.Graph.Indexed.IKVGraph ww4 ww5 } }) -}
-b8916bfc1c3aa017bbdf1f7962109a5c
-  delNodes_$sremoves ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-  {- Arity: 3, Strictness: <S,U><S,U><S,U>,
-     Unfolding: (\ (k :: Language.Fixpoint.Graph.Types.CVertex)
-                   (v :: Language.Fixpoint.Graph.Types.CVertex)
-                   (m :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Graph.Types.CVertex
-                           (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)) ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        -2578643520546668380#
-                        k of ww2 { DEFAULT ->
-                 case case Language.Fixpoint.Graph.Indexed.$wpoly_go5
-                             @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                             (GHC.Prim.int2Word# ww2)
-                             k
-                             0#
-                             m of wild {
-                        GHC.Base.Nothing
-                        -> case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                                  -2578643520546668380#
-                                  v of ww1 { DEFAULT ->
-                           Language.Fixpoint.Graph.Indexed.$wpoly_go3
-                             @ ()
-                             (GHC.Prim.int2Word# ww1)
-                             v
-                             0#
-                             (Data.HashMap.Base.Empty
-                                @ Language.Fixpoint.Graph.Types.CVertex
-                                @ ()) }
-                        GHC.Base.Just v1
-                        -> Language.Fixpoint.Graph.Indexed.$sdelete
-                             @ ()
-                             v
-                             v1
-                               `cast`
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Graph.Types.CVertex>_N) } of nt { DEFAULT ->
-                 Language.Fixpoint.Graph.Indexed.$wpoly_go4
-                   @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-                   (GHC.Prim.int2Word# ww2)
-                   k
-                   nt
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Graph.Types.CVertex>_N))
-                   0#
-                   m } }) -}
-60bc89aa69cd687dd50c1caadc9574ec
-  delNodes_go1 ::
-    [Language.Fixpoint.Graph.Types.CVertex]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ()
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (z1 :: [Language.Fixpoint.Graph.Types.CVertex])
-                   (ds :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex ()) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty -> z1
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo3
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        0#
-                        z1
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> GHC.Types.: @ Language.Fixpoint.Graph.Types.CVertex dt1 z1
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Graph.Indexed.$wgo1
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt)
-                        0#
-                        z1
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo2
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        0#
-                        z1 }) -}
-858a573c01b65c486891aea5ac00089a
-  delNodes_go2 ::
-    [Language.Fixpoint.Graph.Types.CVertex]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex ()
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (z1 :: [Language.Fixpoint.Graph.Types.CVertex])
-                   (ds :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Graph.Types.CVertex ()) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty -> z1
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo6
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        0#
-                        z1
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> GHC.Types.: @ Language.Fixpoint.Graph.Types.CVertex dt1 z1
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Graph.Indexed.$wgo5
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex ())
-                           dt)
-                        0#
-                        z1
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo4
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Graph.Types.CVertex ())
-                           dt1)
-                        0#
-                        z1 }) -}
-de867a5447b7f8fc81d0afbc7af049f4
-  edgesIkvg ::
-    [Language.Fixpoint.Graph.Types.CEdge]
-    -> Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 1,
-     Unfolding: (GHC.List.foldl'
-                   @ Language.Fixpoint.Graph.Types.CEdge
-                   @ Language.Fixpoint.Graph.Indexed.IKVGraph
-                   Language.Fixpoint.Graph.Indexed.addLinks1
-                   Language.Fixpoint.Graph.Indexed.edgesIkvg1) -}
-a83854eedc467884fdb12633f965b761
-  edgesIkvg1 :: Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Graph.Indexed.IKVGraph
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Graph.Types.CVertex
-                      @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Graph.Types.CVertex
-                      @ (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))) -}
-c464ac54c8d6f1dc61683793e574f0c4
-  getPreds ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 Language.Fixpoint.Graph.Indexed.$wgetPreds ww2 w1 }) -}
-9a82989f7983781a8e9af4a941e4de6d
-  getSuccs ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 Language.Fixpoint.Graph.Indexed.$wgetSuccs ww1 w1 }) -}
-212e6bf3d8c9a1fe652ead2dcc63194e
-  igPred ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-  RecSel Left Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Indexed.IKVGraph ds1 ds2 ->
-                 ds2 }) -}
-aa36a8a16818d9e67c3762055a1a4ecd
-  igSucc ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Graph.Types.CVertex
-         (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex)
-  RecSel Left Language.Fixpoint.Graph.Indexed.IKVGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Indexed.IKVGraph ds1 ds2 ->
-                 ds1 }) -}
-2e55782dd4f4e5cc3158c16b935235ac
-  ikvgEdges ::
-    Language.Fixpoint.Graph.Indexed.IKVGraph
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Indexed.IKVGraph) ->
-                 case w of ww { Language.Fixpoint.Graph.Indexed.IKVGraph ww1 ww2 ->
-                 case ww1 of wild {
-                   Data.HashMap.Base.Empty
-                   -> GHC.Types.[] @ Language.Fixpoint.Graph.Types.CEdge
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo9
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt1)
-                        0#
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CEdge)
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> Language.Fixpoint.Graph.Indexed.$wc
-                        dt1
-                        dt2
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CEdge)
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Graph.Indexed.$wgo8
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt)
-                        0#
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CEdge)
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Graph.Indexed.$wgo7
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Graph.Types.CVertex
-                                (Data.HashSet.HashSet Language.Fixpoint.Graph.Types.CVertex))
-                           dt1)
-                        0#
-                        (GHC.Types.[] @ Language.Fixpoint.Graph.Types.CEdge) } }) -}
-instance GHC.Show.Show [Language.Fixpoint.Graph.Indexed.IKVGraph]
-  = Language.Fixpoint.Graph.Indexed.$fShowIKVGraph
-"SPEC/Language.Fixpoint.Graph.Indexed $fShowHashSet @ CVertex" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                            Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashSet.$fShowHashSet @ Language.Fixpoint.Graph.Types.CVertex
-                             $dShow
-  = Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet
-"SPEC/Language.Fixpoint.Graph.Indexed $fShowHashSet_$cshow @ CVertex" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                                   Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashSet.$fShowHashSet_$cshow @ Language.Fixpoint.Graph.Types.CVertex
-                                    $dShow
-  = Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet_$cshow
-"SPEC/Language.Fixpoint.Graph.Indexed $fShowHashSet_$cshowList @ CVertex" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                                       Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashSet.$fShowHashSet_$cshowList @ Language.Fixpoint.Graph.Types.CVertex
-                                        $dShow
-  = Language.Fixpoint.Graph.Indexed.$fShowIKVGraph_$s$fShowHashSet_$cshowList
-"SPEC/Language.Fixpoint.Graph.Indexed $wupdateOrSnocWithKey @ CVertex _" [0] forall @ v
-                                                                                    (w :: GHC.Classes.Eq
-                                                                                            Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashMap.Base.$wupdateOrSnocWithKey @ Language.Fixpoint.Graph.Types.CVertex
-                                          @ v
-                                          w
-  = Language.Fixpoint.Graph.Indexed.$s$wupdateOrSnocWithKey @ v
-"SPEC/Language.Fixpoint.Graph.Indexed delete @ CVertex _" [ALWAYS] forall @ v
-                                                                          ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                           Language.Fixpoint.Graph.Types.CVertex)
-                                                                          ($dEq :: GHC.Classes.Eq
-                                                                                     Language.Fixpoint.Graph.Types.CVertex)
-  Data.HashMap.Base.delete @ Language.Fixpoint.Graph.Types.CVertex
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Graph.Indexed.$sdelete @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Partition.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Partition.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Partition.dump-hi
+++ /dev/null
@@ -1,1233 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:12.096125 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Partition 8002
-  interface hash: 0f410f403e5069e0511162ad0a137271
-  ABI hash: a564ef7164aba59432a750fd2fa72ad6
-  export-list hash: e28e7ef4b1a924ccc45ab45862fb2004
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 70381a8081ceb6fb7b2b32a9d05f5d45
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Partition.dumpPartitions
-  Language.Fixpoint.Graph.Partition.mcInfo
-  Language.Fixpoint.Graph.Partition.partition
-  Language.Fixpoint.Graph.Partition.partition'
-  Language.Fixpoint.Graph.Partition.partitionN
-  Language.Fixpoint.Graph.Partition.CPart{Language.Fixpoint.Graph.Partition.CPart pcm pws}
-  Language.Fixpoint.Graph.Partition.MCInfo{Language.Fixpoint.Graph.Partition.MCInfo mcCores mcMaxPartSize mcMinPartSize}
-module dependencies: Language.Fixpoint.Graph.Deps
-                     Language.Fixpoint.Graph.Indexed Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Conc b311a66cb9dd2068c2414c0492c6937c
-import  -/  base-4.9.1.0:GHC.Conc.Sync 8d0a228e5fc4d8c110495066f4d52ea1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  exports: d3caa92ef0344ae02ff65ece3f6ff911
-  decompose b04b584a66ff02ec06cad80d94b72146
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  Cstr 208edca12160ed50062c4f24b3d2f6a3
-  KVComps f02f016fbc88b05aff52f4624502d85e
-  KVar 8c108f3d54252c748cec2f60aab62495
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  ListNE 245082d2e65bed4e03d6c17463d8b79a
-  applyNonNull 303cbe5541e25fbd8cd11b7c15ff6310
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  groupMap 18c734033fb91730028d0006da2d1307
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  cores 764aadd348c4970fb472a70cb648673b
-  maxPartSize 950722929eeeeafc9d0df91721e9a7a5
-  minPartSize a641bd1db66814db5dbafd87e7083796
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FInfo beb16efa76d83917c7875fd2371988e0
-  GInfo 1052549cc559e08aaa78c218edda206c
-  Result 1de0e7882069f13222c6effa6f71fad5
-  SubC ed16f1ec59060d74f74ea827928489f9
-  WfC 50354839b899806bfddb7dd9a816596d
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  toFixpoint 5711bd73781766989598d60d9f1939d0
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  KVar 9a92033bfe21324e80629facb0f6357f
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Part fb8c809f35f669e3a10828c82cd5b6ce
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  $fMonoidCPart ::
-    GHC.Base.Monoid (Language.Fixpoint.Graph.Partition.CPart a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Graph.Partition.CPart a)
-                  (Language.Fixpoint.Graph.Partition.$fMonoidCPart_$cmempty @ a)
-                  (Language.Fixpoint.Graph.Partition.$fMonoidCPart_$cmappend @ a)
-                  (Language.Fixpoint.Graph.Partition.$fMonoidCPart_$cmconcat @ a) -}
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  $fMonoidCPart1 ::
-    [Language.Fixpoint.Graph.Partition.CPart a]
-    -> (# Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (Language.Fixpoint.Types.Constraints.WfC a),
-          Data.HashMap.Base.HashMap
-            GHC.Integer.Type.Integer
-            (Language.Fixpoint.Types.Constraints.SubC a) #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  $fMonoidCPart_$cmappend ::
-    Language.Fixpoint.Graph.Partition.CPart a
-    -> Language.Fixpoint.Graph.Partition.CPart a
-    -> Language.Fixpoint.Graph.Partition.CPart a
-  {- Arity: 2, Strictness: <S(SS),1*U(U,U)><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Graph.Partition.CPart a)
-                   (w1 :: Language.Fixpoint.Graph.Partition.CPart a) ->
-                 case w of ww { Language.Fixpoint.Graph.Partition.CPart ww1 ww2 ->
-                 case w1 of ww3 { Language.Fixpoint.Graph.Partition.CPart ww4 ww5 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ (Language.Fixpoint.Types.Constraints.WfC a)
-                        0#
-                        ww1
-                        ww4 of dt { DEFAULT ->
-                 case Language.Fixpoint.Graph.Partition.$wpoly_go1
-                        @ (Language.Fixpoint.Types.Constraints.SubC a)
-                        0#
-                        ww2
-                        ww5 of dt1 { DEFAULT ->
-                 Language.Fixpoint.Graph.Partition.CPart @ a dt dt1 } } } }) -}
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  $fMonoidCPart_$cmconcat ::
-    [Language.Fixpoint.Graph.Partition.CPart a]
-    -> Language.Fixpoint.Graph.Partition.CPart a
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: [Language.Fixpoint.Graph.Partition.CPart a]) ->
-                 case Language.Fixpoint.Graph.Partition.$fMonoidCPart1
-                        @ a
-                        w of ww { (#,#) ww1 ww2 ->
-                 Language.Fixpoint.Graph.Partition.CPart @ a ww1 ww2 }) -}
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  $fMonoidCPart_$cmempty :: Language.Fixpoint.Graph.Partition.CPart a
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Graph.Partition.CPart
-                   @ a
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ (Language.Fixpoint.Types.Constraints.WfC a))
-                   (Data.HashMap.Base.Empty
-                      @ GHC.Integer.Type.Integer
-                      @ (Language.Fixpoint.Types.Constraints.SubC a))) -}
-cda0b3c9bf6295683b63c239c18def08
-  $fShowMCInfo ::
-    GHC.Show.Show Language.Fixpoint.Graph.Partition.MCInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Partition.MCInfo
-                  Language.Fixpoint.Graph.Partition.$fShowMCInfo_$cshowsPrec
-                  Language.Fixpoint.Graph.Partition.$fShowMCInfo_$cshow
-                  Language.Fixpoint.Graph.Partition.$fShowMCInfo_$cshowList -}
-2e553cc6fe106bbba18370e19a687c98
-  $fShowMCInfo1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-31e761042a0396fa39e9d4bab8e941b4
-  $fShowMCInfo2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mcMaxPartSize = "#) -}
-fdc85333a75a16147dcae142730af715
-  $fShowMCInfo3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mcMinPartSize = "#) -}
-74243257d0fea5ec4d9c3b6943b174af
-  $fShowMCInfo4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-bb9feaadcf3a62d0476749da69be5114
-  $fShowMCInfo5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mcCores = "#) -}
-d44e5045e383df4336c291c5006aa005
-  $fShowMCInfo6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "MCInfo {"#) -}
-cda0b3c9bf6295683b63c239c18def08
-  $fShowMCInfo_$cshow ::
-    Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Partition.MCInfo) ->
-                 Language.Fixpoint.Graph.Partition.$fShowMCInfo_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-cda0b3c9bf6295683b63c239c18def08
-  $fShowMCInfo_$cshowList ::
-    [Language.Fixpoint.Graph.Partition.MCInfo] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Graph.Partition.MCInfo
-                   Language.Fixpoint.Graph.Partition.$fShowMCInfo_$sshows) -}
-cda0b3c9bf6295683b63c239c18def08
-  $fShowMCInfo_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Partition.MCInfo)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Graph.Partition.MCInfo ww3 ww4 ww5 ->
-                 Language.Fixpoint.Graph.Partition.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-cda0b3c9bf6295683b63c239c18def08
-  $fShowMCInfo_$sshows ::
-    Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Graph.Partition.$fShowMCInfo_$cshowsPrec
-                   GHC.Show.shows22) -}
-a1260527f1abc37c99de1bff7946ead3
-  $tc'CPart :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4738592696979313199##
-                   1058625898132816188##
-                   Language.Fixpoint.Graph.Partition.$trModule
-                   Language.Fixpoint.Graph.Partition.$tc'CPart1) -}
-80520c2e3748730ace168c0c6b4e295b
-  $tc'CPart1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CPart"#) -}
-8d56016dfb1cc5949f4fd8b1fe5b9541
-  $tc'MCInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18409220414068696757##
-                   9974822388783752722##
-                   Language.Fixpoint.Graph.Partition.$trModule
-                   Language.Fixpoint.Graph.Partition.$tc'MCInfo1) -}
-616293f1d740460ac25e1a07b8c4d066
-  $tc'MCInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'MCInfo"#) -}
-0acc059d7ff43894eac3ec740d7d2188
-  $tcCPart :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   377160884648582801##
-                   3296634376090959113##
-                   Language.Fixpoint.Graph.Partition.$trModule
-                   Language.Fixpoint.Graph.Partition.$tcCPart1) -}
-f1812827ebfb0365263e1cfd3c3f934a
-  $tcCPart1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "CPart"#) -}
-d238c77eed8134bcfd084b61c53d0d04
-  $tcMCInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8840285257276322139##
-                   3063971618527179560##
-                   Language.Fixpoint.Graph.Partition.$trModule
-                   Language.Fixpoint.Graph.Partition.$tcMCInfo1) -}
-925bd47e6f5da6a9cc7003fc6b89dc44
-  $tcMCInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "MCInfo"#) -}
-dea537b1e8c2348c5c9018d8825ac44c
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.Partition.$trModule2
-                   Language.Fixpoint.Graph.Partition.$trModule1) -}
-1005a67ea6e84f4ca59ac3c6ce77586c
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Graph.Partition"#) -}
-9fb8234dbb71ee6aba67dbe54a9d567e
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-5eb055f013e78486923b1cde4ab86831
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Graph.Partition.$fShowMCInfo6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Graph.Partition.$fShowMCInfo5
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Graph.Partition.$fShowMCInfo4
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Graph.Partition.$fShowMCInfo3
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Graph.Partition.$fShowMCInfo4
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Graph.Partition.$fShowMCInfo2
-                                                      (case GHC.Show.$wshowSignedInt
-                                                              0#
-                                                              ww3
-                                                              (GHC.Base.++
-                                                                 @ GHC.Types.Char
-                                                                 Language.Fixpoint.Graph.Partition.$fShowMCInfo1
-                                                                 x) of ww4 { (#,#) ww5 ww6 ->
-                                                       GHC.Types.:
-                                                         @ GHC.Types.Char
-                                                         ww5
-                                                         ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww5
-                                           ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-b339ce98cd1d5d07abdd485537f3c43b
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo1 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo1 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo1
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-1872bc1325dfd4fc3fe2d54d0404c1c2
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Graph.Partition.$wpoly_go5
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w1
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-150b0d5d3c50406146f0d0851fce0855
-  $winsertSorted ::
-    Language.Fixpoint.Graph.Partition.CPart a
-    -> [Language.Fixpoint.Graph.Partition.CPart a]
-    -> (# Language.Fixpoint.Graph.Partition.CPart a,
-          [Language.Fixpoint.Graph.Partition.CPart a] #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U)><S,1*U>,
-     Inline: [0] -}
-91f6f290c22652954f2dd8c26d4d2362
-  $wpartitionN ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> [Language.Fixpoint.Graph.Partition.CPart a]
-    -> [Language.Fixpoint.Types.Constraints.FInfo a]
-  {- Arity: 15,
-     Strictness: <L,U><S,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId
-                             (Language.Fixpoint.Types.Constraints.SubC a))
-                   (ww4 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww5 :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (ww6 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww7 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww8 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww9 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww10 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Environments.BindId a)
-                   (ww11 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (ww12 :: [Language.Fixpoint.Types.Triggers.Triggered
-                               Language.Fixpoint.Types.Refinements.Expr])
-                   (ww13 :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w :: [Language.Fixpoint.Graph.Partition.CPart a]) ->
-                 case Data.HashMap.Base.$wsize
-                        @ GHC.Integer.Type.Integer
-                        @ (Language.Fixpoint.Types.Constraints.SubC a)
-                        ww3 of ww14 { DEFAULT ->
-                 case Data.HashMap.Base.$fFoldableHashMap_$clength
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Constraints.WfC a)
-                        ww4 of wild1 { GHC.Types.I# y ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<=# (GHC.Prim.+# ww14 y) ww1) of wild {
-                   GHC.Types.False
-                   -> letrec {
-                        toNParts :: [Language.Fixpoint.Graph.Partition.CPart a]
-                                    -> [Language.Fixpoint.Graph.Partition.CPart a]
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (p :: [Language.Fixpoint.Graph.Partition.CPart a]) ->
-                          case p of wild2 {
-                            [] -> GHC.Types.[] @ (Language.Fixpoint.Graph.Partition.CPart a)
-                            : ds ds1
-                            -> case ds1 of wild3 {
-                                 [] -> wild2
-                                 : b ds2
-                                 -> case GHC.List.$wlenAcc
-                                           @ (Language.Fixpoint.Graph.Partition.CPart a)
-                                           wild2
-                                           0# of ww15 { DEFAULT ->
-                                    let {
-                                      ds3 :: Language.Fixpoint.Graph.Partition.CPart a
-                                      = case ds of wild4 { Language.Fixpoint.Graph.Partition.CPart ds4 ds5 ->
-                                        case b of wild5 { Language.Fixpoint.Graph.Partition.CPart ds6 ds7 ->
-                                        case Language.Fixpoint.Types.Environments.$wpoly_go2
-                                               @ (Language.Fixpoint.Types.Constraints.WfC a)
-                                               0#
-                                               ds4
-                                               ds6 of dt { DEFAULT ->
-                                        case Language.Fixpoint.Graph.Partition.$wpoly_go1
-                                               @ (Language.Fixpoint.Types.Constraints.SubC a)
-                                               0#
-                                               ds5
-                                               ds7 of dt1 { DEFAULT ->
-                                        Language.Fixpoint.Graph.Partition.CPart @ a dt dt1 } } } }
-                                    } in
-                                    case GHC.Prim.tagToEnum#
-                                           @ GHC.Types.Bool
-                                           (GHC.Prim.<=# ww15 ww) of wild4 {
-                                      GHC.Types.False
-                                      -> toNParts
-                                           (Language.Fixpoint.Graph.Partition.partitionN_insertSorted
-                                              @ a
-                                              ds3
-                                              ds2)
-                                      GHC.Types.True
-                                      -> case ds of wild5 { Language.Fixpoint.Graph.Partition.CPart ds4 ds5 ->
-                                         case Data.HashMap.Base.$wsize
-                                                @ GHC.Integer.Type.Integer
-                                                @ (Language.Fixpoint.Types.Constraints.SubC a)
-                                                ds5 of ww16 { DEFAULT ->
-                                         case Data.HashMap.Base.$fFoldableHashMap_$clength
-                                                @ Language.Fixpoint.Types.Refinements.KVar
-                                                @ (Language.Fixpoint.Types.Constraints.WfC a)
-                                                ds4 of wild6 { GHC.Types.I# y1 ->
-                                         case GHC.Prim.tagToEnum#
-                                                @ GHC.Types.Bool
-                                                (GHC.Prim.>=# (GHC.Prim.+# ww16 y1) ww1) of wild7 {
-                                           GHC.Types.False
-                                           -> case b of wild8 { Language.Fixpoint.Graph.Partition.CPart ds6 ds7 ->
-                                              case Data.HashMap.Base.$wsize
-                                                     @ GHC.Integer.Type.Integer
-                                                     @ (Language.Fixpoint.Types.Constraints.SubC a)
-                                                     ds7 of ww17 { DEFAULT ->
-                                              case Data.HashMap.Base.$fFoldableHashMap_$clength
-                                                     @ Language.Fixpoint.Types.Refinements.KVar
-                                                     @ (Language.Fixpoint.Types.Constraints.WfC a)
-                                                     ds6 of wild9 { GHC.Types.I# y2 ->
-                                              case GHC.Prim.tagToEnum#
-                                                     @ GHC.Types.Bool
-                                                     (GHC.Prim.>=#
-                                                        (GHC.Prim.+#
-                                                           (GHC.Prim.+# ww16 y1)
-                                                           (GHC.Prim.+# ww17 y2))
-                                                        ww2) of wild10 {
-                                                GHC.Types.False
-                                                -> toNParts
-                                                     (Language.Fixpoint.Graph.Partition.partitionN_insertSorted
-                                                        @ a
-                                                        ds3
-                                                        ds2)
-                                                GHC.Types.True -> wild2 } } } }
-                                           GHC.Types.True -> wild2 } } } } } } } }
-                      } in
-                      GHC.Base.map
-                        @ (Language.Fixpoint.Graph.Partition.CPart a)
-                        @ (Language.Fixpoint.Types.Constraints.GInfo
-                             Language.Fixpoint.Types.Constraints.SubC a)
-                        (\ (p :: Language.Fixpoint.Graph.Partition.CPart a) ->
-                         case p of wild2 { Language.Fixpoint.Graph.Partition.CPart ds ds1 ->
-                         Language.Fixpoint.Types.Constraints.FI
-                           @ Language.Fixpoint.Types.Constraints.SubC
-                           @ a
-                           ds1
-                           ds
-                           ww5
-                           ww6
-                           ww7
-                           ww8
-                           ww9
-                           ww10
-                           ww11
-                           ww12
-                           ww13 })
-                        (toNParts
-                           (Data.OldList.sortBy
-                              @ (Language.Fixpoint.Graph.Partition.CPart a)
-                              (Language.Fixpoint.Graph.Partition.partitionN_sortPredicate
-                                 @ a
-                                 @ a)
-                              w))
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ (Language.Fixpoint.Types.Constraints.FInfo a)
-                        (Language.Fixpoint.Types.Constraints.FI
-                           @ Language.Fixpoint.Types.Constraints.SubC
-                           @ a
-                           ww3
-                           ww4
-                           ww5
-                           ww6
-                           ww7
-                           ww8
-                           ww9
-                           ww10
-                           ww11
-                           ww12
-                           ww13)
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Constraints.FInfo a)) } } }) -}
-911e3a69d6fed26425d6a0047c7de6ce
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-36c01581f7fe091bf1def24252ceb619
-  $wpoly_go2 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-703cd978155ec34b431702fd2ada489c
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-155d7deb0be83bfa43ef0707bfac33eb
-  $wpoly_go4 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-a7122e2bc0530d219e5711454ad71bf1
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-f3ce7091e35f1c02c09dde34b7d81e3e
-  $wsortPredicate ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      (Language.Fixpoint.Types.Constraints.WfC a1)
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a1)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> GHC.Types.Ordering
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ a1
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            (Language.Fixpoint.Types.Constraints.WfC a1))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             GHC.Integer.Type.Integer
-                             (Language.Fixpoint.Types.Constraints.SubC a1))
-                   (ww2 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww3 :: Data.HashMap.Base.HashMap
-                             GHC.Integer.Type.Integer
-                             (Language.Fixpoint.Types.Constraints.SubC a)) ->
-                 case Data.HashMap.Base.$wsize
-                        @ GHC.Integer.Type.Integer
-                        @ (Language.Fixpoint.Types.Constraints.SubC a1)
-                        ww1 of ww4 { DEFAULT ->
-                 case Data.HashMap.Base.$fFoldableHashMap_$clength
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Constraints.WfC a1)
-                        ww of wild1 { GHC.Types.I# y ->
-                 case Data.HashMap.Base.$wsize
-                        @ GHC.Integer.Type.Integer
-                        @ (Language.Fixpoint.Types.Constraints.SubC a)
-                        ww3 of ww5 { DEFAULT ->
-                 case Data.HashMap.Base.$fFoldableHashMap_$clength
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Constraints.WfC a)
-                        ww2 of wild2 { GHC.Types.I# y1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.+# ww4 y) (GHC.Prim.+# ww5 y1)) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.># (GHC.Prim.+# ww4 y) (GHC.Prim.+# ww5 y1)) of wild3 {
-                        GHC.Types.False -> GHC.Types.EQ GHC.Types.True -> GHC.Types.LT }
-                   GHC.Types.True -> GHC.Types.GT } } } } }) -}
-fbc532eca1a5e5efd20f7b00b2ccbcb8
-  data CPart a
-    = CPart {pws :: !Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Refinements.KVar
-                       (Language.Fixpoint.Types.Constraints.WfC a),
-             pcm :: !Data.HashMap.Base.HashMap
-                       GHC.Integer.Type.Integer
-                       (Language.Fixpoint.Types.Constraints.SubC a)}
-cda0b3c9bf6295683b63c239c18def08
-  data MCInfo
-    = MCInfo {mcCores :: {-# UNPACK #-}GHC.Types.Int,
-              mcMinPartSize :: {-# UNPACK #-}GHC.Types.Int,
-              mcMaxPartSize :: {-# UNPACK #-}GHC.Types.Int}
-a07f64203fdeb034ffe8a7bd1a1c7c4c
-  type PartitionCtor a b =
-    Language.Fixpoint.Types.Constraints.FInfo a
-    -> Data.HashMap.Base.HashMap
-         GHC.Types.Int
-         [(GHC.Integer.Type.Integer,
-           Language.Fixpoint.Types.Constraints.SubC a)]
-    -> Data.HashMap.Base.HashMap
-         GHC.Types.Int
-         [(Language.Fixpoint.Types.Refinements.KVar,
-           Language.Fixpoint.Types.Constraints.WfC a)]
-    -> GHC.Types.Int
-    -> b
-9eb22712218e3dd0b3edacc2b6a64362
-  dumpPartitions ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Config.Config
-    -> [Language.Fixpoint.Types.Constraints.FInfo a] -> GHC.Types.IO ()
-  {- Arity: 1, Strictness: <L,U(C(U),A)> -}
-16c184e2111fc18c45eb67b4d7b8dabd
-  mcCores ::
-    Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Partition.MCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Partition.MCInfo) ->
-                 case ds of wild { Language.Fixpoint.Graph.Partition.MCInfo dt dt1 dt2 ->
-                 GHC.Types.I# dt }) -}
-69679cecb02df47aa946c9cbab697449
-  mcInfo ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Types.IO Language.Fixpoint.Graph.Partition.MCInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,1*U(U),1*U(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Partition.mcInfo1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Graph.Partition.MCInfo>_R)) -}
-d18c54617fffc455f6fe80f66a31c82a
-  mcInfo1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Graph.Partition.MCInfo #)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,1*U(U),1*U(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,U>,
-     Unfolding: (\ (c :: Language.Fixpoint.Types.Config.Config)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case {__pkg_ccall base-4.9.1.0 getNumberOfProcessors GHC.Prim.State#
-                                                                        GHC.Prim.RealWorld
-                                                                      -> (# GHC.Prim.State#
-                                                                              GHC.Prim.RealWorld,
-                                                                            GHC.Prim.Word# #)}
-                        eta of wild { (#,#) ds ds1 ->
-                 (# ds,
-                    case c of wild1 { Language.Fixpoint.Types.Config.Config ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ds33 ->
-                    case ds3 of wild2 {
-                      GHC.Base.Nothing
-                      -> case ds4 of dt { GHC.Types.I# dt1 ->
-                         case ds5 of dt2 { GHC.Types.I# dt3 ->
-                         Language.Fixpoint.Graph.Partition.MCInfo
-                           (GHC.Prim.word2Int# (GHC.Prim.narrow32Word# ds1))
-                           dt1
-                           dt3 } }
-                      GHC.Base.Just v
-                      -> case v of dt { GHC.Types.I# dt1 ->
-                         case ds4 of dt2 { GHC.Types.I# dt3 ->
-                         case ds5 of dt4 { GHC.Types.I# dt5 ->
-                         Language.Fixpoint.Graph.Partition.MCInfo
-                           dt1
-                           dt3
-                           dt5 } } } } } #) }) -}
-0bf5ed078998c22e0e1d538759410ede
-  mcMaxPartSize ::
-    Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Partition.MCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Partition.MCInfo) ->
-                 case ds of wild { Language.Fixpoint.Graph.Partition.MCInfo dt dt1 dt2 ->
-                 GHC.Types.I# dt2 }) -}
-2a35c45a76d84b1971c3c259e6a60ee1
-  mcMinPartSize ::
-    Language.Fixpoint.Graph.Partition.MCInfo -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Partition.MCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Partition.MCInfo) ->
-                 case ds of wild { Language.Fixpoint.Graph.Partition.MCInfo dt dt1 dt2 ->
-                 GHC.Types.I# dt1 }) -}
-c4307a2fa21cc63f59feb03253a7acd3
-  partition ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 4,
-     Strictness: <L,U(C(U),A)><L,U><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Partition.partition1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-968dd790e46c5ddf1a99a826058b1b68
-  partition' ::
-    GHC.Base.Maybe Language.Fixpoint.Graph.Partition.MCInfo
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [Language.Fixpoint.Types.Constraints.FInfo a]
-  {- Arity: 2, Strictness: <S,1*U><L,U(U,U,U,U,U,U,U,U,U,U,U)> -}
-74fc01b411320b340499319f2cf39e71
-  partition1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 4,
-     Strictness: <L,U(C(U),A)><L,U><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (fi :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case (Language.Fixpoint.Graph.Partition.dumpPartitions
-                         @ a
-                         $dFixpoint
-                         cfg
-                         (Language.Fixpoint.Graph.Partition.partition'
-                            @ a
-                            (GHC.Base.Nothing @ Language.Fixpoint.Graph.Partition.MCInfo)
-                            fi))
-                        `cast`
-                      (GHC.Types.N:IO[0] <()>_R)
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmempty
-                      @ (GHC.Integer.Type.Integer, a) #) }) -}
-e548989fd65d35feffaafcbc24a4f7aa
-  partitionN ::
-    Language.Fixpoint.Graph.Partition.MCInfo
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [Language.Fixpoint.Graph.Partition.CPart a]
-    -> [Language.Fixpoint.Types.Constraints.FInfo a]
-  {- Arity: 3,
-     Strictness: <S(LSL),1*U(U,U,U)><S(SSSSSSSSSSL),1*U(U,U,U,U,U,U,U,U,U,U,U)><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Graph.Partition.MCInfo)
-                   (w1 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w2 :: [Language.Fixpoint.Graph.Partition.CPart a]) ->
-                 case w of ww { Language.Fixpoint.Graph.Partition.MCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Constraints.FI ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ->
-                 Language.Fixpoint.Graph.Partition.$wpartitionN
-                   @ a
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   w2 } }) -}
-5ad7f1b610e1528b76b3e902ec34737b
-  partitionN_insertSorted ::
-    Language.Fixpoint.Graph.Partition.CPart a
-    -> [Language.Fixpoint.Graph.Partition.CPart a]
-    -> [Language.Fixpoint.Graph.Partition.CPart a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U)><S,1*U>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Graph.Partition.CPart a)
-                   (w1 :: [Language.Fixpoint.Graph.Partition.CPart a]) ->
-                 case Language.Fixpoint.Graph.Partition.$winsertSorted
-                        @ a
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.:
-                   @ (Language.Fixpoint.Graph.Partition.CPart a)
-                   ww1
-                   ww2 }) -}
-4e2b7271651da68e77cc76869a533e90
-  partitionN_sortPredicate ::
-    Language.Fixpoint.Graph.Partition.CPart a1
-    -> Language.Fixpoint.Graph.Partition.CPart a -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SS),1*U(U,U)><S(SS),1*U(U,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ a1
-                   (w :: Language.Fixpoint.Graph.Partition.CPart a1)
-                   (w1 :: Language.Fixpoint.Graph.Partition.CPart a) ->
-                 case w of ww { Language.Fixpoint.Graph.Partition.CPart ww1 ww2 ->
-                 case w1 of ww3 { Language.Fixpoint.Graph.Partition.CPart ww4 ww5 ->
-                 Language.Fixpoint.Graph.Partition.$wsortPredicate
-                   @ a
-                   @ a1
-                   ww1
-                   ww2
-                   ww4
-                   ww5 } }) -}
-e7a811d6a5b55beef9a085d96a0c39d9
-  pcm ::
-    Language.Fixpoint.Graph.Partition.CPart a
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-  RecSel Left Language.Fixpoint.Graph.Partition.CPart
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Graph.Partition.CPart a) ->
-                 case ds of wild { Language.Fixpoint.Graph.Partition.CPart ds1 ds2 ->
-                 ds2 }) -}
-323d92e3d9f8b633406b17cc43379185
-  pws ::
-    Language.Fixpoint.Graph.Partition.CPart a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-  RecSel Left Language.Fixpoint.Graph.Partition.CPart
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Graph.Partition.CPart a) ->
-                 case ds of wild { Language.Fixpoint.Graph.Partition.CPart ds1 ds2 ->
-                 ds1 }) -}
-instance GHC.Base.Monoid [Language.Fixpoint.Graph.Partition.CPart]
-  = Language.Fixpoint.Graph.Partition.$fMonoidCPart
-instance GHC.Show.Show [Language.Fixpoint.Graph.Partition.MCInfo]
-  = Language.Fixpoint.Graph.Partition.$fShowMCInfo
-"SPEC/Language.Fixpoint.Graph.Partition shows @ MCInfo" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                     Language.Fixpoint.Graph.Partition.MCInfo)
-  GHC.Show.shows @ Language.Fixpoint.Graph.Partition.MCInfo $dShow
-  = Language.Fixpoint.Graph.Partition.$fShowMCInfo_$sshows
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Reducible.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Reducible.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Reducible.dump-hi
+++ /dev/null
@@ -1,404 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:05.588661 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Reducible 8002
-  interface hash: c065b36015c597b35e49437a859ca0dc
-  ABI hash: 1ab4d22f279e9eae9aeab566a64a4686
-  export-list hash: 7e5235921cd84ebead6aa8347c0eac49
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 70381a8081ceb6fb7b2b32a9d05f5d45
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Reducible.isReducible
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Tree d0006987ba7e0d1855cb2cb448efc980
-import  -/  fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive 1d5d93fb1345959541a82725223531e5
-import  -/  fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.Graph 18c48045823d2fd7b809d252d461edbb
-import  -/  fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree 7f4931ce296febd73a076893051e2fd1
-import  -/  fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.Query.DFS 2a8f32fc7c7a21623174607ee94f6293
-import  -/  fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.Query.Dominators 1e1c94248609c97ee128d7b2f8976b89
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  KVar 9a92033bfe21324e80629facb0f6357f
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  envKVars 8beb8bafb32f77bb7d6294a6bb583510
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-5d1e9b10e507217fb9cff049f18c3e5d
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.Reducible.$trModule2
-                   Language.Fixpoint.Graph.Reducible.$trModule1) -}
-b37a9b3a7a5f59971cf4b21f6e01956c
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Graph.Reducible"#) -}
-6f52717c9ae92a128fb2836b1710c082
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-0b31c226cfae211488b05d5aab68b17e
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo1 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo1 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo1
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-a208a02c59ab30c6e575203994e0bcd5
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Graph.Reducible.$wpoly_go1
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w1
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-75096ebabf8a917cc462d9efcc52dac3
-  $wisReducible ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> GHC.Types.Bool
-  {- Arity: 3, Strictness: <S,U><S,U><L,U(U,U)>, Inline: [0] -}
-d6b10e5a52f37559b0a19df879fa1d4d
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-c6168ca300b75c056e1ba7b4a4aff628
-  isReducible ::
-    Language.Fixpoint.Types.Constraints.SInfo a -> GHC.Types.Bool
-  {- Arity: 1,
-     Strictness: <S(SSLLLLLLLLL),U(U,U,U(U,U),A,A,A,A,A,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Graph.Reducible.$wisReducible
-                   @ a
-                   ww1
-                   ww2
-                   ww3 }) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Types.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Types.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Graph/Types.dump-hi
+++ /dev/null
@@ -1,2932 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:04.33648 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types [family instance module] 8002
-  interface hash: 2a7d1d079fa9312149628980dd410c69
-  ABI hash: 23e94ee5d5e98322336fb70c8000a321
-  export-list hash: b52987cff51a351c36be19c844de97bf
-  orphan hash: 27f0ac5559ded155f578bed0e88b3937
-  flag hash: d06a888bb703afad0165b18a5a15b958
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Graph.Types.isRealEdge
-  Language.Fixpoint.Graph.Types.lookupCMap
-  Language.Fixpoint.Graph.Types.writeEdges
-  Language.Fixpoint.Graph.Types.writeGraph
-  Language.Fixpoint.Graph.Types.CDeps{Language.Fixpoint.Graph.Types.CDs cNumScc cPrev cRank cSucc}
-  Language.Fixpoint.Graph.Types.CEdge
-  Language.Fixpoint.Graph.Types.CGraph{Language.Fixpoint.Graph.Types.CGraph gEdges gRanks gSccs gSucc}
-  Language.Fixpoint.Graph.Types.CVertex{Language.Fixpoint.Graph.Types.Cstr Language.Fixpoint.Graph.Types.DKVar Language.Fixpoint.Graph.Types.KVar}
-  Language.Fixpoint.Graph.Types.Comps
-  Language.Fixpoint.Graph.Types.DepEdge
-  Language.Fixpoint.Graph.Types.KVComps
-  Language.Fixpoint.Graph.Types.KVGraph{Language.Fixpoint.Graph.Types.KVGraph kvgEdges}
-  Language.Fixpoint.Graph.Types.KVRead
-  Language.Fixpoint.Graph.Types.Rank{Language.Fixpoint.Graph.Types.Rank rIcc rScc rTag}
-  Language.Fixpoint.Graph.Types.Slice{Language.Fixpoint.Graph.Types.Slice slConcCs slEdges slKVarCs}
-  Language.Fixpoint.Graph.Types.SolverInfo{Language.Fixpoint.Graph.Types.SI siDeps siQuery siSol siVars}
-  Language.Fixpoint.Types.Constraints.SubcId
-  Language.Fixpoint.Types.Solutions.CMap
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:GHC.Stack 1c2d76400d351d3e60c5031ba1182ad5
-import  -/  base-4.9.1.0:GHC.Stack.Types 51968494fa04901a60fe271cf46e18df
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  group e2e2979efce4bc962b883458e2dab7fa
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-  wrap 27fc97c6dab46486584ceaa08035eea1
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  KVar 9a92033bfe21324e80629facb0f6357f
-  kv c1246352d333802f9d4763702c5c7185
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  CMap 60b1399c548e67aa6e3ae48b1aff972a
-  QBind d48cd6c8fd87428c462add5de1e5d785
-  Sol 5c80baaee2ad2e2f29824ed6e0d2d1eb
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fEqCVertex :: GHC.Classes.Eq Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fEqCVertex_$c==
-                  Language.Fixpoint.Graph.Types.$fEqCVertex_$c/= -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fEqCVertex_$c/= ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case Language.Fixpoint.Graph.Types.$fEqCVertex_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fEqCVertex_$c== ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Graph.Types.CVertex)
-                   (ds1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case ds of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case ds1 of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case ds1 of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> case GHC.Integer.Type.eqInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-cf314d50132935d83698ee9a30f06daa
-  $fEqRank :: GHC.Classes.Eq Language.Fixpoint.Graph.Types.Rank
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.Rank
-                  Language.Fixpoint.Graph.Types.$fEqRank_$c==
-                  Language.Fixpoint.Graph.Types.$fEqRank_$c/= -}
-cf314d50132935d83698ee9a30f06daa
-  $fEqRank_$c/= ::
-    Language.Fixpoint.Graph.Types.Rank
-    -> Language.Fixpoint.Graph.Types.Rank -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U)><S(SLS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Types.Rank)
-                   (w1 :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Rank ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww1 ww5) of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww6) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Classes.$fEq[]_$s$c== ww3 ww7 of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } } }) -}
-cf314d50132935d83698ee9a30f06daa
-  $fEqRank_$c== ::
-    Language.Fixpoint.Graph.Types.Rank
-    -> Language.Fixpoint.Graph.Types.Rank -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U)><S(SLS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Types.Rank)
-                   (w1 :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Rank ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww1 ww5) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww6) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True -> GHC.Classes.$fEq[]_$s$c== ww3 ww7 } } } }) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fEqSlice :: GHC.Classes.Eq Language.Fixpoint.Graph.Types.Slice
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.Slice
-                  Language.Fixpoint.Graph.Types.$fEqSlice_$c==
-                  Language.Fixpoint.Graph.Types.$fEqSlice_$c/= -}
-ea3e3c69f347614558a1ae6bd2768d9e
-  $fEqSlice1 ::
-    GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.SubcId]
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq[] -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fEqSlice_$c/= ::
-    Language.Fixpoint.Graph.Types.Slice
-    -> Language.Fixpoint.Graph.Types.Slice -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Graph.Types.Slice)
-                   (b :: Language.Fixpoint.Graph.Types.Slice) ->
-                 case Language.Fixpoint.Graph.Types.$fEqSlice_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fEqSlice_$c== ::
-    Language.Fixpoint.Graph.Types.Slice
-    -> Language.Fixpoint.Graph.Types.Slice -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Types.Slice)
-                   (w1 :: Language.Fixpoint.Graph.Types.Slice) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Slice ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Graph.Types.Slice ww5 ww6 ww7 ->
-                 Language.Fixpoint.Graph.Types.$w$c==
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-477fc7c2987725b39d5dccea77d6e607
-  $fEqSlice_$s$fEq(,,) ::
-    GHC.Classes.Eq
-      (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-       [Language.Fixpoint.Types.Constraints.SubcId])
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-                     [Language.Fixpoint.Types.Constraints.SubcId])
-                  (GHC.Classes.$fEq(,,)_$c==
-                     @ GHC.Integer.Type.Integer
-                     @ GHC.Integer.Type.Integer
-                     @ [Language.Fixpoint.Types.Constraints.SubcId]
-                     GHC.Integer.Type.$fEqInteger
-                     GHC.Integer.Type.$fEqInteger
-                     Language.Fixpoint.Graph.Types.$fEqSlice1)
-                  Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq(,,)_$c/= -}
-470284ca55caa0e50a0a22ebfbe28c4e
-  $fEqSlice_$s$fEq(,,)_$c/= ::
-    (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-     [Language.Fixpoint.Types.Constraints.SubcId])
-    -> (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-        [Language.Fixpoint.Types.Constraints.SubcId])
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a1 :: (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-                           [Language.Fixpoint.Types.Constraints.SubcId]))
-                   (b1 :: (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-                           [Language.Fixpoint.Types.Constraints.SubcId])) ->
-                 case GHC.Classes.$fEq(,,)_$c==
-                        @ GHC.Integer.Type.Integer
-                        @ GHC.Integer.Type.Integer
-                        @ [Language.Fixpoint.Types.Constraints.SubcId]
-                        GHC.Integer.Type.$fEqInteger
-                        GHC.Integer.Type.$fEqInteger
-                        Language.Fixpoint.Graph.Types.$fEqSlice1
-                        a1
-                        b1 of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-f21a4fb6fea928dc126ee3fab632d46b
-  $fEqSlice_$s$fEq[] :: GHC.Classes.Eq [GHC.Integer.Type.Integer]
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [GHC.Integer.Type.Integer]
-                  (GHC.Classes.$fEq[]_$c==
-                     @ GHC.Integer.Type.Integer
-                     GHC.Integer.Type.$fEqInteger)
-                  Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq[]_$c/= -}
-b25f0d545aa3f6477f6a997ea29cb7aa
-  $fEqSlice_$s$fEq[]_$c/= ::
-    [GHC.Integer.Type.Integer]
-    -> [GHC.Integer.Type.Integer] -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: [GHC.Integer.Type.Integer])
-                   (y :: [GHC.Integer.Type.Integer]) ->
-                 GHC.Classes.not
-                   (GHC.Classes.$fEq[]_$c==
-                      @ GHC.Integer.Type.Integer
-                      GHC.Integer.Type.$fEqInteger
-                      x
-                      y)) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fGenericCVertex ::
-    GHC.Generics.Generic Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fGenericCVertex_$cfrom
-                  Language.Fixpoint.Graph.Types.$fGenericCVertex_$cto -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fGenericCVertex1 ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Graph.Types.KVar g1
-                   -> GHC.Generics.L1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Integer.Type.Integer)))
-                        @ x
-                        g1
-                          `cast`
-                        (Trans
-                             (Sym (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Refinements.KVar>_R
-                                       <x>_P))
-                             (Trans
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Refinements.KVar>_R))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar)>_R)) <x>_N))
-                   Language.Fixpoint.Graph.Types.DKVar g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Integer.Type.Integer)))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Refinements.KVar>_R
-                                          <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)>_R)) <x>_N)))
-                   Language.Fixpoint.Graph.Types.Cstr g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Integer.Type.Integer)))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P <GHC.Integer.Type.Integer>_R <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Integer.Type.Integer>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     GHC.Integer.Type.Integer)>_R)) <x>_N))) }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fGenericCVertex_$cfrom ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Generics.Rep Language.Fixpoint.Graph.Types.CVertex x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.$fGenericCVertex1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Graph.Types.CVertex>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "CVertex"
-                                       "Language.Fixpoint.Graph.Types"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.KVar))
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "DKVar"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.KVar))
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "Cstr"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                GHC.Integer.Type.Integer)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Graph.Types.Rep_CVertex[0]))) <x>_N) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fGenericCVertex_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Graph.Types.CVertex x
-    -> Language.Fixpoint.Graph.Types.CVertex
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Graph.Types.CVertex x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Graph.Types.Rep_CVertex[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "CVertex"
-                                   "Language.Fixpoint.Graph.Types"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "DKVar"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Refinements.KVar))
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "Cstr"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            GHC.Integer.Type.Integer)))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> Language.Fixpoint.Graph.Types.$WKVar
-                        ds1
-                          `cast`
-                        (Trans
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.KVar)>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedStrict>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          Language.Fixpoint.Types.Refinements.KVar>_R) <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Language.Fixpoint.Types.Refinements.KVar>_R
-                                  <x>_P))
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> Language.Fixpoint.Graph.Types.$WDKVar
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Refinements.KVar>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Refinements.KVar>_R
-                                       <x>_P))
-                        GHC.Generics.R1 ds2
-                        -> Language.Fixpoint.Graph.Types.$WCstr
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Integer.Type.Integer)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R GHC.Integer.Type.Integer>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <GHC.Integer.Type.Integer>_R
-                                       <x>_P)) } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fHashableCVertex ::
-    Data.Hashable.Class.Hashable Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fHashableCVertex_$chashWithSalt
-                  Language.Fixpoint.Graph.Types.$fHashableCVertex_$chash -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fHashableCVertex_$chash ::
-    Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Graph.Types.$fHashableCVertex_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fHashableCVertex_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Graph.Types.$w$chashWithSalt
-                        ww1
-                        w1 of ww2 { DEFAULT ->
-                 GHC.Types.I# ww2 } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex ::
-    GHC.Classes.Ord Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fEqCVertex
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$ccompare
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$c<
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$c<=
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$c>
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$c>=
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$cmax
-                  Language.Fixpoint.Graph.Types.$fOrdCVertex_$cmin -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$c< ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case a of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<# dt dt1) } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Graph.Types.KVar ds -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<# dt dt1) }
-                        Language.Fixpoint.Graph.Types.Cstr ipv -> GHC.Types.True } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> case GHC.Integer.Type.ltInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$c<= ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case a of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1)
-                             GHC.Types.True -> GHC.Types.True } } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Graph.Types.KVar ds -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1)
-                             GHC.Types.True -> GHC.Types.True } }
-                        Language.Fixpoint.Graph.Types.Cstr ipv -> GHC.Types.True } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> case GHC.Integer.Type.leInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$c> ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case a of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True -> GHC.Types.False }
-                             GHC.Types.True -> GHC.Types.False } } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Graph.Types.KVar ds -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True -> GHC.Types.False }
-                             GHC.Types.True -> GHC.Types.False } }
-                        Language.Fixpoint.Graph.Types.Cstr ipv -> GHC.Types.False } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> case GHC.Integer.Type.gtInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$c>= ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case a of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Graph.Types.KVar ds -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } }
-                        Language.Fixpoint.Graph.Types.Cstr ipv -> GHC.Types.False } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> case GHC.Integer.Type.geInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$ccompare ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Graph.Types.CVertex)
-                   (b :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case a of wild {
-                   Language.Fixpoint.Graph.Types.KVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.LT
-                        Language.Fixpoint.Graph.Types.KVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Classes.compareInt# dt dt1 } } }
-                   Language.Fixpoint.Graph.Types.DKVar a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Graph.Types.KVar ds -> GHC.Types.GT
-                        Language.Fixpoint.Graph.Types.DKVar b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Classes.compareInt# dt dt1 }
-                        Language.Fixpoint.Graph.Types.Cstr ipv -> GHC.Types.LT } }
-                   Language.Fixpoint.Graph.Types.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.GT
-                        Language.Fixpoint.Graph.Types.Cstr b1
-                        -> GHC.Integer.Type.compareInteger a1 b1 } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$cmax ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.CVertex)
-                   (y :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case Language.Fixpoint.Graph.Types.$fOrdCVertex_$c<= x y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fOrdCVertex_$cmin ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.CVertex)
-                   (y :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case Language.Fixpoint.Graph.Types.$fOrdCVertex_$c<= x y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fPPrintCVertex ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fPPrintCVertex_$cpprintTidy
-                  Language.Fixpoint.Graph.Types.$fPPrintCVertex_$cpprintPrec -}
-36cd738f0658c45f4e256fca50feef69
-  $fPPrintCVertex1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Types.$fPPrintCVertex_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Types.$fPPrintCVertex2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-c0198d8f7b56a031c29bcc17f2522f59
-  $fPPrintCVertex2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Types.$fPPrintCVertex_s) -}
-4eb2778de7959ffa47b4cf470d82e6cf
-  $fPPrintCVertex3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Types.$fPPrintCVertex_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Types.$fPPrintCVertex4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-896f49826ba5ce2b8ee1e1a430351960
-  $fPPrintCVertex4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Types.$fPPrintCVertex_s1) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fPPrintCVertex_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintCVertex_$cpprintTidy
-                   eta
-                   eta1) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fPPrintCVertex_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, True)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 Language.Fixpoint.Graph.Types.$w$cpprintTidy w1) -}
-32850aef484fbf49fd5a3e96d4040264
-  $fPPrintCVertex_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "id_"#) -}
-a7d26a68363447b742edf51fcc125c3f
-  $fPPrintCVertex_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "*"#) -}
-b350bdb5a7896fc566951f49e5d673e8
-  $fPPrintKVGraph ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Graph.Types.KVGraph
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.KVGraph
-                  Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$cpprintTidy
-                  Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$cpprintPrec -}
-b350bdb5a7896fc566951f49e5d673e8
-  $fPPrintKVGraph1 ::
-    Language.Fixpoint.Graph.Types.KVGraph
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,1*U(1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.KVGraph) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$spprint
-                   (case x of wild { Language.Fixpoint.Graph.Types.KVGraph ds ->
-                    ds })) -}
-55c58fc19b9bce8344077ebfb756cca5
-  $fPPrintKVGraph2 ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Graph.Types.CVertex,
-       Language.Fixpoint.Graph.Types.CVertex,
-       [Language.Fixpoint.Graph.Types.CVertex])
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint(,,) -}
-2a6b6a1f704495c26a959d07ea4baff4
-  $fPPrintKVGraph3 ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      [Language.Fixpoint.Graph.Types.CVertex]
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[] -}
-b350bdb5a7896fc566951f49e5d673e8
-  $fPPrintKVGraph_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.KVGraph
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$cpprintTidy eta) -}
-b350bdb5a7896fc566951f49e5d673e8
-  $fPPrintKVGraph_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.KVGraph
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Graph.Types.KVGraph) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintKVGraph1 eta) -}
-ece3a047ca05ca9079fe149986814970
-  $fPPrintKVGraph_$s$fPPrint(,,) ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Graph.Types.CVertex,
-       Language.Fixpoint.Graph.Types.CVertex,
-       [Language.Fixpoint.Graph.Types.CVertex])
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Graph.Types.CVertex,
-                     Language.Fixpoint.Graph.Types.CVertex,
-                     [Language.Fixpoint.Graph.Types.CVertex])
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintTidy
-                     @ Language.Fixpoint.Graph.Types.CVertex
-                     @ Language.Fixpoint.Graph.Types.CVertex
-                     @ [Language.Fixpoint.Graph.Types.CVertex]
-                     Language.Fixpoint.Graph.Types.$fPPrintCVertex
-                     Language.Fixpoint.Graph.Types.$fPPrintCVertex
-                     Language.Fixpoint.Graph.Types.$fPPrintKVGraph3)
-                  Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint(,,)_$cpprintPrec -}
-ec6be01e68008261ce8ffc9470ebdfad
-  $fPPrintKVGraph_$s$fPPrint(,,)_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (Language.Fixpoint.Graph.Types.CVertex,
-        Language.Fixpoint.Graph.Types.CVertex,
-        [Language.Fixpoint.Graph.Types.CVertex])
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A><L,U><S(SSL),1*U(1*U,1*U,U)>m7,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: (Language.Fixpoint.Graph.Types.CVertex,
-                             Language.Fixpoint.Graph.Types.CVertex,
-                             [Language.Fixpoint.Graph.Types.CVertex])) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintTidy
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   @ [Language.Fixpoint.Graph.Types.CVertex]
-                   Language.Fixpoint.Graph.Types.$fPPrintCVertex
-                   Language.Fixpoint.Graph.Types.$fPPrintCVertex
-                   Language.Fixpoint.Graph.Types.$fPPrintKVGraph3
-                   eta
-                   eta1) -}
-97035f4c68a856ec3f3153e7f5e57a6c
-  $fPPrintKVGraph_$s$fPPrint[] ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      [Language.Fixpoint.Graph.Types.CVertex]
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [Language.Fixpoint.Graph.Types.CVertex]
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                     @ Language.Fixpoint.Graph.Types.CVertex
-                     Language.Fixpoint.Graph.Types.$fPPrintCVertex)
-                  Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec1 -}
-e64a3ab07484b8e706b2f9cd18872ac8
-  $fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [(Language.Fixpoint.Graph.Types.CVertex,
-         Language.Fixpoint.Graph.Types.CVertex,
-         [Language.Fixpoint.Graph.Types.CVertex])]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ (Language.Fixpoint.Graph.Types.CVertex,
-                      Language.Fixpoint.Graph.Types.CVertex,
-                      [Language.Fixpoint.Graph.Types.CVertex])
-                   Language.Fixpoint.Graph.Types.$fPPrintKVGraph2
-                   eta) -}
-c0a87760204234e3f5214b27eb5883d6
-  $fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec1 ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [Language.Fixpoint.Graph.Types.CVertex]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   Language.Fixpoint.Graph.Types.$fPPrintCVertex
-                   eta) -}
-be5a2dfdfb9cd0efd7b5e15b95bc65bd
-  $fPPrintKVGraph_$spprint ::
-    [(Language.Fixpoint.Graph.Types.CVertex,
-      Language.Fixpoint.Graph.Types.CVertex,
-      [Language.Fixpoint.Graph.Types.CVertex])]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec
-                   Language.Fixpoint.Types.PrettyPrint.pprint1
-                   Language.Fixpoint.Types.PrettyPrint.Full) -}
-cf314d50132935d83698ee9a30f06daa
-  $fPPrintRank ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Graph.Types.Rank
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.Rank
-                  Language.Fixpoint.Graph.Types.$fPPrintRank_$cpprintTidy
-                  Language.Fixpoint.Graph.Types.$fPPrintRank_$cpprintPrec -}
-cf314d50132935d83698ee9a30f06daa
-  $fPPrintRank1 ::
-    Language.Fixpoint.Graph.Types.Rank -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(LLS),1*U(U,U,U)>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Rank ww1 ww2 ww3 ->
-                 let {
-                   s1 :: GHC.Base.String
-                   = Language.Fixpoint.Graph.Types.$w$cshowsPrec
-                       0#
-                       ww1
-                       ww2
-                       ww3
-                       (GHC.Types.[] @ GHC.Types.Char)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s1 0# of ww4 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s1)
-                       ww4)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-31fef9e18f6df217282cb717d069ab11
-  $fPPrintRank2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "rTag = "#) -}
-dce18aed0b9311d9440480d820ecd1d9
-  $fPPrintRank3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "rIcc = "#) -}
-6cf750d7f481300153b02acc3550e99b
-  $fPPrintRank4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-6a3cad9b22997d964515309911299328
-  $fPPrintRank5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "rScc = "#) -}
-47df742af3bf9103a14433f04b51e6de
-  $fPPrintRank6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Rank {"#) -}
-cf314d50132935d83698ee9a30f06daa
-  $fPPrintRank_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.Rank
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintRank_$cpprintTidy eta) -}
-cf314d50132935d83698ee9a30f06daa
-  $fPPrintRank_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Graph.Types.Rank
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Graph.Types.Rank) ->
-                 Language.Fixpoint.Graph.Types.$fPPrintRank1 eta) -}
-21367543ad92d0b1b7007e6afe151681
-  $fPPrintRank_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fShowCVertex ::
-    GHC.Show.Show Language.Fixpoint.Graph.Types.CVertex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.CVertex
-                  Language.Fixpoint.Graph.Types.$fShowCVertex_$cshowsPrec
-                  Language.Fixpoint.Graph.Types.$fShowCVertex_$cshow
-                  Language.Fixpoint.Graph.Types.$fShowCVertex_$cshowList -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fShowCVertex1 ::
-    Language.Fixpoint.Graph.Types.CVertex -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Graph.Types.CVertex)
-                   (w1 :: GHC.Base.String) ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec1 0# w w1) -}
-57fd062a5bf64d03d369c2a32f8f12a4
-  $fShowCVertex2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Cstr "#) -}
-bac0c095d6b60759c5311c933a260287
-  $fShowCVertex3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "DKVar "#) -}
-e50ddf49bc4a28696f8153286d56043f
-  $fShowCVertex4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "KVar "#) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fShowCVertex_$cshow ::
-    Language.Fixpoint.Graph.Types.CVertex -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 Language.Fixpoint.Graph.Types.$fShowCVertex_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fShowCVertex_$cshowList ::
-    [Language.Fixpoint.Graph.Types.CVertex] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Graph.Types.CVertex
-                   Language.Fixpoint.Graph.Types.$fShowCVertex1) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $fShowCVertex_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Types.CVertex)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec1 ww1 w1 w2 }) -}
-cf314d50132935d83698ee9a30f06daa
-  $fShowRank :: GHC.Show.Show Language.Fixpoint.Graph.Types.Rank
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.Rank
-                  Language.Fixpoint.Graph.Types.$fShowRank_$cshowsPrec
-                  Language.Fixpoint.Graph.Types.$fShowRank_$cshow
-                  Language.Fixpoint.Graph.Types.$fShowRank_$cshowList -}
-cf314d50132935d83698ee9a30f06daa
-  $fShowRank1 :: Language.Fixpoint.Graph.Types.Rank -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Graph.Types.Rank)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Rank ww1 ww2 ww3 ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec 0# ww1 ww2 ww3 w1 }) -}
-cf314d50132935d83698ee9a30f06daa
-  $fShowRank_$cshow ::
-    Language.Fixpoint.Graph.Types.Rank -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(LLS),1*U(U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.Rank) ->
-                 Language.Fixpoint.Graph.Types.$fShowRank_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-cf314d50132935d83698ee9a30f06daa
-  $fShowRank_$cshowList ::
-    [Language.Fixpoint.Graph.Types.Rank] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Graph.Types.Rank
-                   Language.Fixpoint.Graph.Types.$fShowRank1) -}
-cf314d50132935d83698ee9a30f06daa
-  $fShowRank_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Types.Rank -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S(LLS),1*U(U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Types.Rank)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Graph.Types.Rank ww3 ww4 ww5 ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fShowSlice :: GHC.Show.Show Language.Fixpoint.Graph.Types.Slice
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Graph.Types.Slice
-                  Language.Fixpoint.Graph.Types.$fShowSlice_$cshowsPrec
-                  Language.Fixpoint.Graph.Types.$fShowSlice_$cshow
-                  Language.Fixpoint.Graph.Types.$fShowSlice_$cshowList -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fShowSlice1 ::
-    Language.Fixpoint.Graph.Types.Slice -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Graph.Types.Slice)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.Slice ww1 ww2 ww3 ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec2
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fShowSlice_$cshow ::
-    Language.Fixpoint.Graph.Types.Slice -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Graph.Types.Slice) ->
-                 Language.Fixpoint.Graph.Types.$fShowSlice_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fShowSlice_$cshowList ::
-    [Language.Fixpoint.Graph.Types.Slice] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Graph.Types.Slice
-                   Language.Fixpoint.Graph.Types.$fShowSlice1) -}
-3c18a9686e97cbaaa1d4bfeafea94b61
-  $fShowSlice_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Graph.Types.Slice -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(1*U,1*U,1*U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Graph.Types.Slice)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Graph.Types.Slice ww3 ww4 ww5 ->
-                 Language.Fixpoint.Graph.Types.$w$cshowsPrec2
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-8eccd0bc3a56c8fab29ec23694a9d0a0
-  $tc'CDs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14266704055137824263##
-                   10678743426428501996##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'CDs1) -}
-b2404a7b4505f90e4e73662cf6def60b
-  $tc'CDs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CDs"#) -}
-2880c2da95d207255d7f47d2db81162f
-  $tc'CGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14660285522366299323##
-                   8647088390783867472##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'CGraph1) -}
-8299b0e7729edf9dc182afeff632cf8b
-  $tc'CGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CGraph"#) -}
-15071a4a5145e5c0acf8228e4b13a193
-  $tc'Cstr :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18292202892098692154##
-                   12254636870958413241##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'Cstr1) -}
-b97e051285fd29bbc851e36a74f2499d
-  $tc'Cstr1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cstr"#) -}
-a90be923ee7f40df5560a5d63a29dfc3
-  $tc'DKVar :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10634184772773626548##
-                   17792431259798845399##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'DKVar1) -}
-b4ea3b101b568901d79b6af20e23c87c
-  $tc'DKVar1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'DKVar"#) -}
-6b993439dce0466213730830e2d430ab
-  $tc'KVGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5890369340634046011##
-                   7637334433571935348##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'KVGraph1) -}
-42c65ee98e802d25b2b22d7d7d99db09
-  $tc'KVGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KVGraph"#) -}
-59f13cc1b5d4d67e87f9f8c34d43e692
-  $tc'KVar :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1744385596120515185##
-                   6694787655395754635##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'KVar1) -}
-e3201cd0bb598f461eeb11faf4602dfd
-  $tc'KVar1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KVar"#) -}
-5e9efb3aba2ce30b95eb5d3e78d0a44c
-  $tc'Rank :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1252274853917959191##
-                   2696332444392743322##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'Rank1) -}
-418de4f8d8b36d3583c5bbb2dbbee73c
-  $tc'Rank1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Rank"#) -}
-dcf71fc174475c2d489ac5ceecb2f326
-  $tc'SI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8280804752732800463##
-                   6139332826651977847##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'SI1) -}
-e838140d769312b8ac8043f1758e85ed
-  $tc'SI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SI"#) -}
-acf925e645fdb5b4321f40e56dee7999
-  $tc'Slice :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3941404508941733336##
-                   18396179355059350464##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tc'Slice1) -}
-5faf05c91913cf945ae935209a0202a0
-  $tc'Slice1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Slice"#) -}
-5034bd7121ab8b393efcce0e3a4062bb
-  $tcCDeps :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5187173951503640255##
-                   12964509274700926781##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcCDeps1) -}
-2212f7f14af1898e1aa8948994d819a9
-  $tcCDeps1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "CDeps"#) -}
-34488adaf48d9014b2e12e32e20176cb
-  $tcCGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18379186467663992671##
-                   18000992336379830247##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcCGraph1) -}
-e4e5a3bba4005857c13715db1989b45d
-  $tcCGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "CGraph"#) -}
-774369de278dc56d8020628b8112ae92
-  $tcCVertex :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1802260847599511239##
-                   4437223191264387308##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcCVertex1) -}
-e18f8407047133c4bf755038e9bf682c
-  $tcCVertex1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "CVertex"#) -}
-53385bdebfd6e3057808ee69d96e8d8d
-  $tcKVGraph :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15071197510017051543##
-                   15232815151836982203##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcKVGraph1) -}
-4a43335152756c5db65e9343db463c29
-  $tcKVGraph1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "KVGraph"#) -}
-93b15390cd760648e776a67f40449bf9
-  $tcRank :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14822976580869300178##
-                   2519207588736515429##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcRank1) -}
-bf8f8dc25b3dadbffa06159c65dbf0b8
-  $tcRank1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Rank"#) -}
-70e497bbaab0fed25cde882c9faec5e0
-  $tcSlice :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16006595713530720410##
-                   14200011304732033795##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcSlice1) -}
-1f166e629158d3d1e675ef71a6affa3d
-  $tcSlice1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Slice"#) -}
-5f5c728049ab8c3971b3f281181b9365
-  $tcSolverInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15654976707210416859##
-                   10679245508893950424##
-                   Language.Fixpoint.Graph.Types.$trModule
-                   Language.Fixpoint.Graph.Types.$tcSolverInfo1) -}
-321612e9fb73253e62829714b48ff213
-  $tcSolverInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SolverInfo"#) -}
-fc73a98ce9b1e52a7e27270c56987996
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Graph.Types.$trModule2
-                   Language.Fixpoint.Graph.Types.$trModule1) -}
-939df9c34ba0793235a0ed73caf89b66
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Graph.Types"#) -}
-f2c1667b792798c6da1695aaaa9da225
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-9160d8b8766c18464597575af74285a1
-  $w$c== ::
-    [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Graph.Types.DepEdge]
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Graph.Types.DepEdge]
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.SubcId])
-                   (ww1 :: [Language.Fixpoint.Types.Constraints.SubcId])
-                   (ww2 :: [Language.Fixpoint.Graph.Types.DepEdge])
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.SubcId])
-                   (ww4 :: [Language.Fixpoint.Types.Constraints.SubcId])
-                   (ww5 :: [Language.Fixpoint.Graph.Types.DepEdge]) ->
-                 case GHC.Classes.$fEq[]_$c==
-                        @ GHC.Integer.Type.Integer
-                        GHC.Integer.Type.$fEqInteger
-                        ww
-                        ww3 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Classes.$fEq[]_$c==
-                             @ GHC.Integer.Type.Integer
-                             GHC.Integer.Type.$fEqInteger
-                             ww1
-                             ww4 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> GHC.Classes.$fEq[]_$c==
-                             @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                Language.Fixpoint.Types.Constraints.SubcId,
-                                [Language.Fixpoint.Types.Constraints.SubcId])
-                             Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq(,,)
-                             ww2
-                             ww5 } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $w$chashWithSalt ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Prim.Int#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of wild {
-                   Language.Fixpoint.Graph.Types.KVar g1
-                   -> case g1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                      case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                      case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.State#
-                                                                                                                               GHC.Prim.RealWorld
-                                                                                                                          -> (# GHC.Prim.State#
-                                                                                                                                  GHC.Prim.RealWorld,
-                                                                                                                                GHC.Prim.Int# #)}
-                             ww7
-                             (GHC.Prim.uncheckedIShiftL# ww8 1#)
-                             (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                             (GHC.Prim.*# ww 16777619#)
-                             GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                      ds2 } } }
-                   Language.Fixpoint.Graph.Types.DKVar g1
-                   -> case g1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                      case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                      case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.State#
-                                                                                                                               GHC.Prim.RealWorld
-                                                                                                                          -> (# GHC.Prim.State#
-                                                                                                                                  GHC.Prim.RealWorld,
-                                                                                                                                GHC.Prim.Int# #)}
-                             ww7
-                             (GHC.Prim.uncheckedIShiftL# ww8 1#)
-                             (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                             (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                             GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                      ds2 } } }
-                   Language.Fixpoint.Graph.Types.Cstr g1
-                   -> case g1 of wild1 {
-                        GHC.Integer.Type.S# n
-                        -> GHC.Prim.xorI#
-                             (GHC.Prim.*#
-                                (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                16777619#)
-                             n
-                        GHC.Integer.Type.Jp# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.xorI#
-                             (GHC.Prim.*# ds1 16777619#)
-                             (GHC.Prim.quotInt# numBytes 8#) }
-                        GHC.Integer.Type.Jn# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.negateInt#
-                             (GHC.Prim.xorI#
-                                (GHC.Prim.*# ds1 16777619#)
-                                (GHC.Prim.quotInt# numBytes 8#)) } } }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $w$cpprintTidy ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case w of wild {
-                   Language.Fixpoint.Graph.Types.KVar k
-                   -> case k `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                      case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                      case Language.Fixpoint.Types.Names.$wlvl
-                             ww5
-                             ww6
-                             ww7 of ww8 { (#,#) ww9 ww10 ->
-                      (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                         @ ()
-                         (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                            @ ()
-                            Text.PrettyPrint.HughesPJ.doubleQuotes1
-                            GHC.Types.False
-                            (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10))
-                         GHC.Types.False
-                         Text.PrettyPrint.HughesPJ.doubleQuotes1)
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }
-                   Language.Fixpoint.Graph.Types.DKVar k
-                   -> case k `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                      case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                      case Language.Fixpoint.Graph.Types.$fPPrintCVertex3
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Names.$wlvl
-                                  ww5
-                                  ww6
-                                  ww7 of ww8 { (#,#) ww9 ww10 ->
-                           case Language.Fixpoint.Types.Refinements.$fFixpointKVar2
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.False
-                                      (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                         @ ()
-                                         ww9
-                                         ww10))
-                                   GHC.Types.False
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                                   GHC.Types.False
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.Refinements.$w$cpprintTidy
-                             ww5
-                             ww6
-                             ww7 } } }
-                   Language.Fixpoint.Graph.Types.Cstr i
-                   -> case Text.PrettyPrint.HughesPJ.$winteger
-                             i of ww { (#,#) ww1 ww2 ->
-                      case Language.Fixpoint.Graph.Types.$fPPrintCVertex1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              wild1
-                              GHC.Types.False
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-efd46f3d6bfc7625f6f2de454b83244a
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><S,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Graph.Types.$fPPrintRank6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Graph.Types.$fPPrintRank5
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Graph.Types.$fPPrintRank4
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Graph.Types.$fPPrintRank3
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Graph.Types.$fPPrintRank4
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Graph.Types.$fPPrintRank2
-                                                      (let {
-                                                         eta1 :: GHC.Base.String
-                                                         = GHC.Base.++
-                                                             @ GHC.Types.Char
-                                                             Language.Fixpoint.Graph.Types.$fPPrintRank_s
-                                                             x
-                                                       } in
-                                                       case ww3 of wild {
-                                                         []
-                                                         -> GHC.CString.unpackAppendCString#
-                                                              "[]"#
-                                                              eta1
-                                                         : x1 xs
-                                                         -> GHC.Types.:
-                                                              @ GHC.Types.Char
-                                                              GHC.Show.showList__2
-                                                              (case x1 of ww4 { GHC.Types.I# ww5 ->
-                                                               case GHC.Show.$wshowSignedInt
-                                                                      0#
-                                                                      ww5
-                                                                      (let {
-                                                                         lvl30 :: [GHC.Types.Char]
-                                                                         = GHC.Types.:
-                                                                             @ GHC.Types.Char
-                                                                             GHC.Show.showList__1
-                                                                             eta1
-                                                                       } in
-                                                                       letrec {
-                                                                         showl :: [GHC.Types.Int]
-                                                                                  -> GHC.Base.String
-                                                                           {- Arity: 1,
-                                                                              Strictness: <S,1*U> -}
-                                                                         = \ (ds2 :: [GHC.Types.Int]) ->
-                                                                           case ds2 of wild1 {
-                                                                             [] -> lvl30
-                                                                             : y ys
-                                                                             -> GHC.Types.:
-                                                                                  @ GHC.Types.Char
-                                                                                  GHC.Show.shows5
-                                                                                  (case y of ww6 { GHC.Types.I# ww7 ->
-                                                                                   case GHC.Show.$wshowSignedInt
-                                                                                          0#
-                                                                                          ww7
-                                                                                          (showl
-                                                                                             ys) of ww8 { (#,#) ww9 ww10 ->
-                                                                                   GHC.Types.:
-                                                                                     @ GHC.Types.Char
-                                                                                     ww9
-                                                                                     ww10 } }) }
-                                                                       } in
-                                                                       showl
-                                                                         xs) of ww6 { (#,#) ww7 ww8 ->
-                                                               GHC.Types.:
-                                                                 @ GHC.Types.Char
-                                                                 ww7
-                                                                 ww8 } }) }))) of ww4 { (#,#) ww5 ww6 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww5
-                                           ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-0a404ef06dd0fe2a92eb89159f1cc655
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Graph.Types.CVertex
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 3, Strictness: <S,U><S,1*U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Graph.Types.CVertex)
-                   (w1 :: GHC.Base.String) ->
-                 case w of wild {
-                   Language.Fixpoint.Graph.Types.KVar b1
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww 11#) of wild1 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Graph.Types.$fShowCVertex4
-                             (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5 b1 w1)
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Graph.Types.$fShowCVertex4
-                                (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w1))) }
-                   Language.Fixpoint.Graph.Types.DKVar b1
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww 11#) of wild1 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Graph.Types.$fShowCVertex3
-                             (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5 b1 w1)
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Graph.Types.$fShowCVertex3
-                                (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w1))) }
-                   Language.Fixpoint.Graph.Types.Cstr b1
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww 11#) of wild1 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Graph.Types.$fShowCVertex2
-                             (case GHC.Show.$w$cshowsPrec1 11# b1 w1 of ww2 { (#,#) ww3 ww4 ->
-                              GHC.Types.: @ GHC.Types.Char ww3 ww4 })
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Graph.Types.$fShowCVertex2
-                                (case GHC.Show.$w$cshowsPrec1
-                                        11#
-                                        b1
-                                        (GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.shows4
-                                           w1) of ww2 { (#,#) ww3 ww4 ->
-                                 GHC.Types.: @ GHC.Types.Char ww3 ww4 })) } }) -}
-9ad0606fdba1507ffcfa571307b11c6e
-  $w$cshowsPrec2 ::
-    GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Graph.Types.DepEdge]
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,1*U><L,1*U><L,1*U><L,U>,
-     Inline: [0] -}
-97aafdf5d40239b70826576956866e28
-  $wisRealEdge ::
-    Language.Fixpoint.Graph.Types.CVertex
-    -> Language.Fixpoint.Graph.Types.CVertex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Graph.Types.CVertex)
-                   (ww1 :: Language.Fixpoint.Graph.Types.CVertex) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case ww1 of wild1 {
-                        DEFAULT
-                        -> case wild of wild2 {
-                             Language.Fixpoint.Graph.Types.KVar ipv -> GHC.Types.True
-                             Language.Fixpoint.Graph.Types.Cstr ds
-                             -> case wild1 of wild3 {
-                                  Language.Fixpoint.Graph.Types.KVar ipv -> GHC.Types.True
-                                  Language.Fixpoint.Graph.Types.Cstr ds1 -> GHC.Types.False } }
-                        Language.Fixpoint.Graph.Types.DKVar ds -> GHC.Types.False }
-                   Language.Fixpoint.Graph.Types.DKVar ds -> GHC.Types.False }) -}
-06921e276f39c4e7b95fbe6bcacf0ad0
-  data CDeps
-    = CDs {cSucc :: !Language.Fixpoint.Types.Solutions.CMap
-                       [Language.Fixpoint.Types.Constraints.SubcId],
-           cPrev :: !Language.Fixpoint.Types.Solutions.CMap
-                       [Language.Fixpoint.Types.Refinements.KVar],
-           cRank :: !Language.Fixpoint.Types.Solutions.CMap
-                       Language.Fixpoint.Graph.Types.Rank,
-           cNumScc :: {-# UNPACK #-}GHC.Types.Int}
-f2f17be8bf25ad841321175f992cca78
-  type CEdge =
-    (Language.Fixpoint.Graph.Types.CVertex,
-     Language.Fixpoint.Graph.Types.CVertex)
-a00d3fee1cfde56cbc1d47f5041c3776
-  data CGraph
-    = CGraph {gEdges :: [Language.Fixpoint.Graph.Types.DepEdge],
-              gRanks :: !Language.Fixpoint.Types.Solutions.CMap GHC.Types.Int,
-              gSucc :: !Language.Fixpoint.Types.Solutions.CMap
-                          [Language.Fixpoint.Types.Constraints.SubcId],
-              gSccs :: {-# UNPACK #-}GHC.Types.Int}
-0a404ef06dd0fe2a92eb89159f1cc655
-  data CVertex
-    = KVar !Language.Fixpoint.Types.Refinements.KVar
-    | DKVar !Language.Fixpoint.Types.Refinements.KVar
-    | Cstr !GHC.Integer.Type.Integer
-62bad75a35b5da1349b9c4ed4d80fd9b
-  type Comps a = [[a]]
-4ac4a2286cc4dbe020da97cce3aeac2f
-  type DepEdge =
-    (Language.Fixpoint.Types.Constraints.SubcId,
-     Language.Fixpoint.Types.Constraints.SubcId,
-     [Language.Fixpoint.Types.Constraints.SubcId])
-f02f016fbc88b05aff52f4624502d85e
-  type KVComps =
-    Language.Fixpoint.Graph.Types.Comps
-      Language.Fixpoint.Graph.Types.CVertex
-b350bdb5a7896fc566951f49e5d673e8
-  data KVGraph
-    = KVGraph {kvgEdges :: [(Language.Fixpoint.Graph.Types.CVertex,
-                             Language.Fixpoint.Graph.Types.CVertex,
-                             [Language.Fixpoint.Graph.Types.CVertex])]}
-82dc6a3d31252d41a14d27a8a93daf8c
-  type KVRead =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      [Language.Fixpoint.Types.Constraints.SubcId]
-cf314d50132935d83698ee9a30f06daa
-  data Rank
-    = Rank {rScc :: {-# UNPACK #-}GHC.Types.Int,
-            rIcc :: {-# UNPACK #-}GHC.Types.Int,
-            rTag :: !Language.Fixpoint.Types.Constraints.Tag}
-0a404ef06dd0fe2a92eb89159f1cc655
-  axiom Rep_CVertex::
-      GHC.Generics.Rep Language.Fixpoint.Graph.Types.CVertex
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "CVertex"
-               "Language.Fixpoint.Graph.Types"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "KVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.KVar))
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "DKVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.KVar))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 GHC.Integer.Type.Integer))))
-3c18a9686e97cbaaa1d4bfeafea94b61
-  data Slice
-    = Slice {slKVarCs :: [Language.Fixpoint.Types.Constraints.SubcId],
-             slConcCs :: [Language.Fixpoint.Types.Constraints.SubcId],
-             slEdges :: [Language.Fixpoint.Graph.Types.DepEdge]}
-b09606704f7bdb5375f8da175b8cd7d6
-  type role SolverInfo nominal representational
-  data SolverInfo a b
-    = SI {siSol :: !Language.Fixpoint.Types.Solutions.Sol
-                      b Language.Fixpoint.Types.Solutions.QBind,
-          siQuery :: !Language.Fixpoint.Types.Constraints.SInfo a,
-          siDeps :: !Language.Fixpoint.Graph.Types.CDeps,
-          siVars :: !Data.HashSet.HashSet
-                       Language.Fixpoint.Types.Refinements.KVar}
-87afa682c8dd1e9f69a5fe4b0723474f
-  cNumScc :: Language.Fixpoint.Graph.Types.CDeps -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Types.CDeps
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CDeps) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CDs ds1 ds2 ds3 dt ->
-                 GHC.Types.I# dt }) -}
-44378df15353951216d40984b9a58e96
-  cPrev ::
-    Language.Fixpoint.Graph.Types.CDeps
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Refinements.KVar]
-  RecSel Left Language.Fixpoint.Graph.Types.CDeps
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLL),1*U(A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CDeps) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CDs ds1 ds2 ds3 dt ->
-                 ds2 }) -}
-91056843e7d1f21a2e9caef0fc08c864
-  cRank ::
-    Language.Fixpoint.Graph.Types.CDeps
-    -> Language.Fixpoint.Types.Solutions.CMap
-         Language.Fixpoint.Graph.Types.Rank
-  RecSel Left Language.Fixpoint.Graph.Types.CDeps
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CDeps) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CDs ds1 ds2 ds3 dt ->
-                 ds3 }) -}
-684fe736a36e83079101e58c12b55d5f
-  cSucc ::
-    Language.Fixpoint.Graph.Types.CDeps
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Graph.Types.CDeps
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLL),1*U(U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CDeps) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CDs ds1 ds2 ds3 dt ->
-                 ds1 }) -}
-7a54076485610616456519238fb8ee79
-  gEdges ::
-    Language.Fixpoint.Graph.Types.CGraph
-    -> [Language.Fixpoint.Graph.Types.DepEdge]
-  RecSel Left Language.Fixpoint.Graph.Types.CGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLL),1*U(1*U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CGraph ds1 ds2 ds3 dt ->
-                 ds1 }) -}
-a2226659a6bb28e4f5737627792d0432
-  gRanks ::
-    Language.Fixpoint.Graph.Types.CGraph
-    -> Language.Fixpoint.Types.Solutions.CMap GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Types.CGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLL),1*U(A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CGraph ds1 ds2 ds3 dt ->
-                 ds2 }) -}
-3ad3f4a0066333ba021b163c1a36474a
-  gSccs :: Language.Fixpoint.Graph.Types.CGraph -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Types.CGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CGraph ds1 ds2 ds3 dt ->
-                 GHC.Types.I# dt }) -}
-f998472e929f2cacdb54dfb2bca77586
-  gSucc ::
-    Language.Fixpoint.Graph.Types.CGraph
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Graph.Types.CGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.CGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.CGraph ds1 ds2 ds3 dt ->
-                 ds3 }) -}
-6bbecf5086b9c6a3359a2eabd0386ad0
-  isRealEdge :: Language.Fixpoint.Graph.Types.CEdge -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Graph.Types.CEdge) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Graph.Types.$wisRealEdge ww1 ww2 }) -}
-eb6fa0ecc67f707c0c302a0c538300eb
-  kvgEdges ::
-    Language.Fixpoint.Graph.Types.KVGraph
-    -> [(Language.Fixpoint.Graph.Types.CVertex,
-         Language.Fixpoint.Graph.Types.CVertex,
-         [Language.Fixpoint.Graph.Types.CVertex])]
-  RecSel Left Language.Fixpoint.Graph.Types.KVGraph
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.KVGraph) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.KVGraph ds1 ->
-                 ds1 }) -}
-0870815b0e5edc51d8f96c01a17ac04c
-  lookupCMap ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    Language.Fixpoint.Types.Solutions.CMap a
-    -> Language.Fixpoint.Types.Constraints.SubcId -> a
-  {- Arity: 3, Strictness: <L,1*U><S,1*U><S,U>,
-     Unfolding: (\ @ a
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: Language.Fixpoint.Types.Solutions.CMap a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.SubcId) ->
-                 case Data.HashMap.Base.lookup
-                        @ Language.Fixpoint.Types.Constraints.SubcId
-                        @ a
-                        GHC.Integer.Type.$fEqInteger
-                        Data.Hashable.Class.$fHashableInteger
-                        eta1
-                        eta of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Graph.Types.lookupCMap1 @ a $dIP eta1
-                   GHC.Base.Just v1 -> v1 }) -}
-224ac4fcadc19b669f7e79787c72cb5e
-  lookupCMap1 ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    Language.Fixpoint.Types.Constraints.SubcId -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-38bf3bd76439a8f20c1e4e127885f6df
-  rIcc :: Language.Fixpoint.Graph.Types.Rank -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Types.Rank
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Rank dt dt1 ds1 ->
-                 GHC.Types.I# dt1 }) -}
-af46031dd918d7df1ae12f39ce98f7c5
-  rScc :: Language.Fixpoint.Graph.Types.Rank -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Graph.Types.Rank
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Rank dt dt1 ds1 ->
-                 GHC.Types.I# dt }) -}
-0453fee5f00783343cf64781fece1ecc
-  rTag ::
-    Language.Fixpoint.Graph.Types.Rank
-    -> Language.Fixpoint.Types.Constraints.Tag
-  RecSel Left Language.Fixpoint.Graph.Types.Rank
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Rank) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Rank dt dt1 ds1 ->
-                 ds1 }) -}
-dc379f0c79c4322eafe1ce9d7d223789
-  siDeps ::
-    Language.Fixpoint.Graph.Types.SolverInfo a b
-    -> Language.Fixpoint.Graph.Types.CDeps
-  RecSel Left Language.Fixpoint.Graph.Types.SolverInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSL),1*U(A,A,U(U,U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (ds :: Language.Fixpoint.Graph.Types.SolverInfo a b) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.SI ds1 ds2 ds3 ds4 ->
-                 ds3 }) -}
-4e84f9d57ae07ea9ec3747b32c2c102f
-  siQuery ::
-    Language.Fixpoint.Graph.Types.SolverInfo a b
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  RecSel Left Language.Fixpoint.Graph.Types.SolverInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLL),1*U(A,U(U,U,U,U,U,U,U,U,U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (ds :: Language.Fixpoint.Graph.Types.SolverInfo a b) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.SI ds1 ds2 ds3 ds4 ->
-                 ds2 }) -}
-dff0082a2d59e24319611bdab2e6e0f2
-  siSol ::
-    Language.Fixpoint.Graph.Types.SolverInfo a b
-    -> Language.Fixpoint.Types.Solutions.Sol
-         b Language.Fixpoint.Types.Solutions.QBind
-  RecSel Left Language.Fixpoint.Graph.Types.SolverInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLL),1*U(U(U,U,U,U,U),A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (ds :: Language.Fixpoint.Graph.Types.SolverInfo a b) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.SI ds1 ds2 ds3 ds4 ->
-                 ds1 }) -}
-35f5142e8f813175a34215ca8bd6fe2d
-  siVars ::
-    Language.Fixpoint.Graph.Types.SolverInfo a b
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-  RecSel Left Language.Fixpoint.Graph.Types.SolverInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (ds :: Language.Fixpoint.Graph.Types.SolverInfo a b) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.SI ds1 ds2 ds3 ds4 ->
-                 ds4 }) -}
-e83121ef94259addc17e0c64d874dff8
-  slConcCs ::
-    Language.Fixpoint.Graph.Types.Slice
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Graph.Types.Slice
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Slice) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Slice ds1 ds2 ds3 ->
-                 ds2 }) -}
-90252d67d85dea8f83277d2ba9896cc8
-  slEdges ::
-    Language.Fixpoint.Graph.Types.Slice
-    -> [Language.Fixpoint.Graph.Types.DepEdge]
-  RecSel Left Language.Fixpoint.Graph.Types.Slice
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Slice) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Slice ds1 ds2 ds3 ->
-                 ds3 }) -}
-08cb92300a4bebebaccec0550947b094
-  slKVarCs ::
-    Language.Fixpoint.Graph.Types.Slice
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Graph.Types.Slice
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Graph.Types.Slice) ->
-                 case ds of wild { Language.Fixpoint.Graph.Types.Slice ds1 ds2 ds3 ->
-                 ds1 }) -}
-e7e46503d1f68a4a19fe84f261e36cdd
-  writeEdges ::
-    GHC.IO.FilePath
-    -> [Language.Fixpoint.Graph.Types.CEdge] -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.writeEdges1
-                  `cast`
-                (<GHC.IO.FilePath>_R
-                 ->_R <[Language.Fixpoint.Graph.Types.CEdge]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-cf177931548ecdbb2205a0e270277ce3
-  writeEdges1 ::
-    GHC.IO.FilePath
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U><L,1*U><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (f :: GHC.IO.FilePath)
-                   (eta :: [Language.Fixpoint.Graph.Types.CEdge])
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 System.IO.writeFile1
-                   f
-                   (Language.Fixpoint.Graph.Types.writeEdges2 eta)
-                   eta1) -}
-a71560e93edabf3154ac842eb0f908e0
-  writeEdges2 ::
-    [Language.Fixpoint.Graph.Types.CEdge] -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (x :: [Language.Fixpoint.Graph.Types.CEdge]) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Graph.Types.writeEdges5
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                           @ ()
-                           (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                              @ ()
-                              (GHC.Types.:
-                                 @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                 Language.Fixpoint.Graph.Types.writeEdges3
-                                   `cast`
-                                 (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                 (Language.Fixpoint.Graph.Types.writeEdges_go
-                                    x))) of ww { (#,#) ww1 ww2 ->
-                    ww2 })) -}
-9e393711b5ed6f58d335b00422e05f05
-  writeEdges3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Graph.Types.writeEdges_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Graph.Types.writeEdges4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-477db1c61d84ff1348786013b98423b8
-  writeEdges4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Graph.Types.writeEdges_s) -}
-62f93a0a0f3d23e3b36f65ed4f757c6c
-  writeEdges5 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                            ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s1 dt1
-                   -> case s1 of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s2
-                        -> GHC.Base.++ @ GHC.Types.Char s2 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s2
-                        -> GHC.Base.++ @ GHC.Types.Char s2 eta } }) -}
-7209d8e1e8e21227b3b88001a26b4640
-  writeEdges_go ::
-    [(Language.Fixpoint.Graph.Types.CVertex,
-      Language.Fixpoint.Graph.Types.CVertex)]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-33a8e636229a44e72ffbfa684ecda909
-  writeEdges_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "digraph Deps {"#) -}
-c3658bfac120e3d950432f4c1c8acbfe
-  writeGraph ::
-    GHC.IO.FilePath
-    -> Language.Fixpoint.Graph.Types.KVGraph -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U><L,1*U(1*U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Graph.Types.writeGraph1
-                  `cast`
-                (<GHC.IO.FilePath>_R
-                 ->_R <Language.Fixpoint.Graph.Types.KVGraph>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-bafc2f6cb77ee4e01b20c86b9ca9f8a1
-  writeGraph1 ::
-    GHC.IO.FilePath
-    -> Language.Fixpoint.Graph.Types.KVGraph
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U><L,1*U(1*U)><S,U>,
-     Unfolding: (\ (f :: GHC.IO.FilePath)
-                   (eta :: Language.Fixpoint.Graph.Types.KVGraph)
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 System.IO.writeFile1
-                   f
-                   (Language.Fixpoint.Graph.Types.writeEdges2
-                      (case eta of wild { Language.Fixpoint.Graph.Types.KVGraph g ->
-                       Language.Fixpoint.Graph.Types.writeGraph_go g }))
-                   eta1) -}
-5973f6fb124354ce7ebb7e7b79197683
-  writeGraph_go ::
-    [(Language.Fixpoint.Graph.Types.CVertex,
-      Language.Fixpoint.Graph.Types.CVertex,
-      [Language.Fixpoint.Graph.Types.CVertex])]
-    -> [Language.Fixpoint.Graph.Types.CEdge]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-instance GHC.Classes.Eq [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fEqCVertex
-instance GHC.Classes.Eq [Language.Fixpoint.Graph.Types.Rank]
-  = Language.Fixpoint.Graph.Types.$fEqRank
-instance GHC.Classes.Eq [Language.Fixpoint.Graph.Types.Slice]
-  = Language.Fixpoint.Graph.Types.$fEqSlice
-instance GHC.Generics.Generic [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fGenericCVertex
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fHashableCVertex
-instance GHC.Classes.Ord [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fOrdCVertex
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fPPrintCVertex
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Graph.Types.KVGraph]
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Graph.Types.Rank]
-  = Language.Fixpoint.Graph.Types.$fPPrintRank
-instance GHC.Show.Show [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.$fShowCVertex
-instance GHC.Show.Show [Language.Fixpoint.Graph.Types.Rank]
-  = Language.Fixpoint.Graph.Types.$fShowRank
-instance GHC.Show.Show [Language.Fixpoint.Graph.Types.Slice]
-  = Language.Fixpoint.Graph.Types.$fShowSlice
-family instance GHC.Generics.Rep [Language.Fixpoint.Graph.Types.CVertex]
-  = Language.Fixpoint.Graph.Types.Rep_CVertex
-"SPEC/Language.Fixpoint.Graph.Types $fEq(,,) @ Integer @ Integer @ [SubcId]" [ALWAYS] forall ($dEq2 :: GHC.Classes.Eq
-                                                                                                         [Language.Fixpoint.Types.Constraints.SubcId])
-                                                                                             ($dEq1 :: GHC.Classes.Eq
-                                                                                                         GHC.Integer.Type.Integer)
-                                                                                             ($dEq :: GHC.Classes.Eq
-                                                                                                        GHC.Integer.Type.Integer)
-  GHC.Classes.$fEq(,,) @ GHC.Integer.Type.Integer
-                       @ GHC.Integer.Type.Integer
-                       @ [Language.Fixpoint.Types.Constraints.SubcId]
-                       $dEq
-                       $dEq1
-                       $dEq2
-  = Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq(,,)
-"SPEC/Language.Fixpoint.Graph.Types $fEq(,,)_$c/= @ Integer @ Integer @ [SubcId]" [ALWAYS] forall ($dEq2 :: GHC.Classes.Eq
-                                                                                                              [Language.Fixpoint.Types.Constraints.SubcId])
-                                                                                                  ($dEq1 :: GHC.Classes.Eq
-                                                                                                              GHC.Integer.Type.Integer)
-                                                                                                  ($dEq :: GHC.Classes.Eq
-                                                                                                             GHC.Integer.Type.Integer)
-  GHC.Classes.$fEq(,,)_$c/= @ GHC.Integer.Type.Integer
-                            @ GHC.Integer.Type.Integer
-                            @ [Language.Fixpoint.Types.Constraints.SubcId]
-                            $dEq
-                            $dEq1
-                            $dEq2
-  = Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq(,,)_$c/=
-"SPEC/Language.Fixpoint.Graph.Types $fEq[] @ Integer" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                 GHC.Integer.Type.Integer)
-  GHC.Classes.$fEq[] @ GHC.Integer.Type.Integer $dEq
-  = Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq[]
-"SPEC/Language.Fixpoint.Graph.Types $fEq[]_$c/= @ Integer" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                      GHC.Integer.Type.Integer)
-  GHC.Classes.$fEq[]_$c/= @ GHC.Integer.Type.Integer $dEq
-  = Language.Fixpoint.Graph.Types.$fEqSlice_$s$fEq[]_$c/=
-"SPEC/Language.Fixpoint.Graph.Types $fPPrint(,,) @ CVertex @ CVertex @ [CVertex]" [ALWAYS] forall ($dPPrint2 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                  [Language.Fixpoint.Graph.Types.CVertex])
-                                                                                                  ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                  Language.Fixpoint.Graph.Types.CVertex)
-                                                                                                  ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                 Language.Fixpoint.Graph.Types.CVertex)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,) @ Language.Fixpoint.Graph.Types.CVertex
-                                                   @ Language.Fixpoint.Graph.Types.CVertex
-                                                   @ [Language.Fixpoint.Graph.Types.CVertex]
-                                                   $dPPrint
-                                                   $dPPrint1
-                                                   $dPPrint2
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint(,,)
-"SPEC/Language.Fixpoint.Graph.Types $fPPrint(,,)_$cpprintPrec @ CVertex @ CVertex @ [CVertex]" [ALWAYS] forall ($dPPrint2 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                               [Language.Fixpoint.Graph.Types.CVertex])
-                                                                                                               ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                               Language.Fixpoint.Graph.Types.CVertex)
-                                                                                                               ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                              Language.Fixpoint.Graph.Types.CVertex)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintPrec @ Language.Fixpoint.Graph.Types.CVertex
-                                                                @ Language.Fixpoint.Graph.Types.CVertex
-                                                                @ [Language.Fixpoint.Graph.Types.CVertex]
-                                                                $dPPrint
-                                                                $dPPrint1
-                                                                $dPPrint2
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint(,,)_$cpprintPrec
-"SPEC/Language.Fixpoint.Graph.Types $fPPrint[] @ CVertex" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                         Language.Fixpoint.Graph.Types.CVertex)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint[] @ Language.Fixpoint.Graph.Types.CVertex
-                                                 $dPPrint
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[]
-"SPEC/Language.Fixpoint.Graph.Types $fPPrint[]_$cpprintPrec @ (CVertex,
-                                                              CVertex, [CVertex])" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                                                                                          (Language.Fixpoint.Graph.Types.CVertex,
-                                                                                                                                                                                           Language.Fixpoint.Graph.Types.CVertex,
-                                                                                                                                                                                           [Language.Fixpoint.Graph.Types.CVertex]))
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint[]_$cpprintPrec @ (Language.Fixpoint.Graph.Types.CVertex,
-                                                                 Language.Fixpoint.Graph.Types.CVertex,
-                                                                 [Language.Fixpoint.Graph.Types.CVertex])
-                                                              $dPPrint
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec
-"SPEC/Language.Fixpoint.Graph.Types $fPPrint[]_$cpprintPrec @ CVertex" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                      Language.Fixpoint.Graph.Types.CVertex)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint[]_$cpprintPrec @ Language.Fixpoint.Graph.Types.CVertex
-                                                              $dPPrint
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$s$fPPrint[]_$cpprintPrec1
-"SPEC/Language.Fixpoint.Graph.Types pprint @ [(CVertex, CVertex,
-                                              [CVertex])]" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                                                           [(Language.Fixpoint.Graph.Types.CVertex,
-                                                                                                                                                             Language.Fixpoint.Graph.Types.CVertex,
-                                                                                                                                                             [Language.Fixpoint.Graph.Types.CVertex])])
-  Language.Fixpoint.Types.PrettyPrint.pprint @ [(Language.Fixpoint.Graph.Types.CVertex,
-                                                 Language.Fixpoint.Graph.Types.CVertex,
-                                                 [Language.Fixpoint.Graph.Types.CVertex])]
-                                             $dPPrint
-  = Language.Fixpoint.Graph.Types.$fPPrintKVGraph_$spprint
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Minimize.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Minimize.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Minimize.dump-hi
+++ /dev/null
@@ -1,915 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:13.1204 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Minimize 8002
-  interface hash: fe5234462c580f6fc3704ef0e43849dd
-  ABI hash: b47889086f2a9a7e3e89bb6a6a49bfe8
-  export-list hash: 3566eeb8bc4f41d8dde4e219f2cbee80
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: ad30940122e0f29d5af88d895ebed486
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Minimize.minKvars
-  Language.Fixpoint.Minimize.minQuals
-  Language.Fixpoint.Minimize.minQuery
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Partition a564ef7164aba59432a750fd2fa72ad6
-  partition' 968dd790e46c5ddf1a99a826058b1b68
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  safeHead 2da5d0408e1571e3220bdd32be9b0093
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  minimize e7324b88bb1b932e70bd6530742f160d
-  minimizeKs 0606dbce8acec9e6f50239f8fb136eed
-  minimizeQs 9def52e479bfeaf19a50f3c0570e33c3
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-  srcFile 139239bd1df5627505d07a6c910c85e3
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FInfo beb16efa76d83917c7875fd2371988e0
-  Result bd94cb06f2a56d7ff5b46922e02fce58
-  Result 1de0e7882069f13222c6effa6f71fad5
-  Solver f1f0ec730b81f80dd9bee7952949bcd8
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  saveQuery 05e9dce8e4549bc3d5847cf5a15cc2b4
-  srhs 6299a4aca5a3764628a25206cc77779a
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PTrue 5df77d7a117ac1937594998bc4175838
-  isNonTrivial a313063d90be250b663445dbf48dd774
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  mapKVars 0ed00aae968de150fa223abd5c1357d8
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Ext 07623a7462b8ee05bab2b75f947ad892
-  Min 6e755bf01a9e7231ebb98b4842a987f8
-  MinKVars d105d2c53bb92861a7fb1e82f58734d9
-  MinQuals 1ff12b5b092ad68917fb13048f2b74b3
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-ae3e89d7e03d731d254c0cbe03935bef
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Minimize.$trModule2
-                   Language.Fixpoint.Minimize.$trModule1) -}
-0916b68a371ff149be6f2438f3728302
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Minimize"#) -}
-36943327bce6d12e8d4c32a67f4e287d
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-14b073034e72fd86d486526638a9683b
-  $wminKvars ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 14,
-     Strictness: <L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U)><L,U><L,U><S,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Solver a)
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId
-                            (Language.Fixpoint.Types.Constraints.SubC a))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (ww3 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww4 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww6 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww7 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Environments.BindId a)
-                   (ww8 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (ww9 :: [Language.Fixpoint.Types.Triggers.Triggered
-                              Language.Fixpoint.Types.Refinements.Expr])
-                   (ww10 :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   cfg :: Language.Fixpoint.Types.Config.Config
-                   = case w of wild { Language.Fixpoint.Types.Config.Config ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ->
-                     Language.Fixpoint.Types.Config.Config
-                       ds
-                       ds1
-                       ds2
-                       ds3
-                       ds4
-                       ds5
-                       ds6
-                       ds7
-                       ds8
-                       ds9
-                       ds10
-                       ds11
-                       ds12
-                       ds13
-                       ds14
-                       ds15
-                       ds16
-                       ds17
-                       ds18
-                       ds19
-                       GHC.Types.False
-                       ds21
-                       ds22
-                       ds23
-                       ds24
-                       ds25
-                       ds26
-                       ds27
-                       ds28
-                       ds29
-                       ds30
-                       ds31 }
-                 } in
-                 let {
-                   fi :: Language.Fixpoint.Types.Constraints.FInfo a
-                   = Language.Fixpoint.Types.Constraints.FI
-                       @ Language.Fixpoint.Types.Constraints.SubC
-                       @ a
-                       ww
-                       ww1
-                       ww2
-                       ww3
-                       ww4
-                       ww5
-                       ww6
-                       ww7
-                       ww8
-                       ww9
-                       ww10
-                 } in
-                 case Language.Fixpoint.Minimize.minKvars4
-                        @ a
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        GHC.Types.False
-                        (Language.Fixpoint.Minimize.minKvars3 @ a)
-                          `cast`
-                        (<Language.Fixpoint.Types.Config.Config>_R
-                         ->_R <Language.Fixpoint.Types.Constraints.Solver a>_R
-                         ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                         ->_R <[Language.Fixpoint.Types.Refinements.KVar]>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R))
-                        cfg
-                        w1
-                        fi
-                        (Language.Fixpoint.Minimize.minKvars2
-                           @ a
-                           (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                           ww1)
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                        w2 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Types.Constraints.saveQuery1
-                        @ a
-                        (case cfg of wild { Language.Fixpoint.Types.Config.Config ds ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                         Language.Fixpoint.Types.Config.Config
-                           (Language.Fixpoint.Utils.Files.extFileName
-                              Language.Fixpoint.Utils.Files.MinKVars
-                              ds)
-                           ds2
-                           ds3
-                           ds4
-                           ds5
-                           ds6
-                           ds7
-                           ds8
-                           ds9
-                           ds10
-                           ds11
-                           ds12
-                           ds13
-                           ds14
-                           ds15
-                           ds16
-                           ds17
-                           ds18
-                           ds19
-                           ds20
-                           ds21
-                           ds22
-                           ds23
-                           ds24
-                           ds25
-                           ds26
-                           ds27
-                           ds28
-                           ds29
-                           ds30
-                           ds31
-                           ds32 })
-                        (Language.Fixpoint.Minimize.removeOtherKs @ a fi ipv1)
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        (GHC.CString.unpackAppendCString#
-                           "Required KVars: "#
-                           (case GHC.List.$wlenAcc
-                                   @ Language.Fixpoint.Types.Refinements.KVar
-                                   ipv1
-                                   0# of ww11 { DEFAULT ->
-                            case GHC.Show.$wshowSignedInt
-                                   0#
-                                   ww11
-                                   (GHC.Types.[] @ GHC.Types.Char) of ww12 { (#,#) ww13 ww14 ->
-                            GHC.Base.++
-                              @ GHC.Types.Char
-                              (GHC.Types.: @ GHC.Types.Char ww13 ww14)
-                              (GHC.CString.unpackAppendCString#
-                                 "; Total KVars: "#
-                                 (case Data.HashMap.Base.$fFoldableHashMap_$clength
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ (Language.Fixpoint.Types.Constraints.WfC a)
-                                         ww1 of ww15 { GHC.Types.I# ww16 ->
-                                  case GHC.Show.$wshowSignedInt
-                                         0#
-                                         ww16
-                                         (GHC.Types.[]
-                                            @ GHC.Types.Char) of ww17 { (#,#) ww18 ww19 ->
-                                  GHC.Types.: @ GHC.Types.Char ww18 ww19 } })) } }))
-                        GHC.Types.True
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4,
-                    Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmempty
-                      @ (GHC.Integer.Type.Integer, a) #) } } }) -}
-429d7ecd3be381ac205279d66aa6bc50
-  $wminQuals ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 14,
-     Strictness: <L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Solver a)
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId
-                            (Language.Fixpoint.Types.Constraints.SubC a))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (ww3 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww4 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww6 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww7 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Environments.BindId a)
-                   (ww8 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (ww9 :: [Language.Fixpoint.Types.Triggers.Triggered
-                              Language.Fixpoint.Types.Refinements.Expr])
-                   (ww10 :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   cfg :: Language.Fixpoint.Types.Config.Config
-                   = case w of wild { Language.Fixpoint.Types.Config.Config ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ->
-                     Language.Fixpoint.Types.Config.Config
-                       ds
-                       ds1
-                       ds2
-                       ds3
-                       ds4
-                       ds5
-                       ds6
-                       ds7
-                       ds8
-                       ds9
-                       ds10
-                       ds11
-                       ds12
-                       ds13
-                       ds14
-                       ds15
-                       ds16
-                       ds17
-                       ds18
-                       GHC.Types.False
-                       ds20
-                       ds21
-                       ds22
-                       ds23
-                       ds24
-                       ds25
-                       ds26
-                       ds27
-                       ds28
-                       ds29
-                       ds30
-                       ds31 }
-                 } in
-                 case Language.Fixpoint.Minimize.minKvars4
-                        @ a
-                        @ Language.Fixpoint.Types.Constraints.Qualifier
-                        GHC.Types.False
-                        (Language.Fixpoint.Minimize.minQuals2 @ a)
-                          `cast`
-                        (<Language.Fixpoint.Types.Config.Config>_R
-                         ->_R <Language.Fixpoint.Types.Constraints.Solver a>_R
-                         ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                         ->_R <[Language.Fixpoint.Types.Constraints.Qualifier]>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R))
-                        cfg
-                        w1
-                        (Language.Fixpoint.Types.Constraints.FI
-                           @ Language.Fixpoint.Types.Constraints.SubC
-                           @ a
-                           ww
-                           ww1
-                           ww2
-                           ww3
-                           ww4
-                           ww5
-                           ww6
-                           ww7
-                           ww8
-                           ww9
-                           ww10)
-                        ww6
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Qualifier)
-                        w2 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Types.Constraints.saveQuery1
-                        @ a
-                        (case cfg of wild { Language.Fixpoint.Types.Config.Config ds ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                         Language.Fixpoint.Types.Config.Config
-                           (Language.Fixpoint.Utils.Files.extFileName
-                              Language.Fixpoint.Utils.Files.MinQuals
-                              ds)
-                           ds2
-                           ds3
-                           ds4
-                           ds5
-                           ds6
-                           ds7
-                           ds8
-                           ds9
-                           ds10
-                           ds11
-                           ds12
-                           ds13
-                           ds14
-                           ds15
-                           ds16
-                           ds17
-                           ds18
-                           ds19
-                           ds20
-                           ds21
-                           ds22
-                           ds23
-                           ds24
-                           ds25
-                           ds26
-                           ds27
-                           ds28
-                           ds29
-                           ds30
-                           ds31
-                           ds32 })
-                        (case ipv1 of dt { DEFAULT ->
-                         Language.Fixpoint.Types.Constraints.FI
-                           @ Language.Fixpoint.Types.Constraints.SubC
-                           @ a
-                           ww
-                           ww1
-                           ww2
-                           ww3
-                           ww4
-                           ww5
-                           dt
-                           ww7
-                           ww8
-                           ww9
-                           ww10 })
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        (GHC.CString.unpackAppendCString#
-                           "Required Qualifiers: "#
-                           (case GHC.List.$wlenAcc
-                                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                                   ipv1
-                                   0# of ww11 { DEFAULT ->
-                            case GHC.Show.$wshowSignedInt
-                                   0#
-                                   ww11
-                                   (GHC.Types.[] @ GHC.Types.Char) of ww12 { (#,#) ww13 ww14 ->
-                            GHC.Base.++
-                              @ GHC.Types.Char
-                              (GHC.Types.: @ GHC.Types.Char ww13 ww14)
-                              (GHC.CString.unpackAppendCString#
-                                 "; Total Qualifiers: "#
-                                 (case GHC.List.$wlenAcc
-                                         @ Language.Fixpoint.Types.Constraints.Qualifier
-                                         ww6
-                                         0# of ww15 { DEFAULT ->
-                                  case GHC.Show.$wshowSignedInt
-                                         0#
-                                         ww15
-                                         (GHC.Types.[]
-                                            @ GHC.Types.Char) of ww16 { (#,#) ww17 ww18 ->
-                                  GHC.Types.: @ GHC.Types.Char ww17 ww18 } })) } }))
-                        GHC.Types.True
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4,
-                    Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmempty
-                      @ (GHC.Integer.Type.Integer, a) #) } } }) -}
-dd3f7bc910d06c63a6af4f8fba59bbe7
-  $wminQuery ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 4,
-     Strictness: <L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: [0] -}
-8b10db1121cd8cfa7f80f7105965bbb5
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-ddd64f15074035673aee4ebcfdb5754c
-  type Oracle a c =
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [c]
-    -> GHC.Types.IO GHC.Types.Bool
-ba7ecae33aa06c451d14f4f4a904e9bd
-  isSafe ::
-    Language.Fixpoint.Types.Constraints.Result a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case ds of wild { Language.Fixpoint.Types.Constraints.Result ds1 ds2 ds3 ->
-                 case ds1 of wild1 {
-                   DEFAULT -> GHC.Types.False
-                   Language.Fixpoint.Types.Errors.Safe -> GHC.Types.True } }) -}
-49261509aa1143eb7ac3b34392f700ce
-  minKvars ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U)><L,U><S(LSLLLLLLLLL),U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Minimize.minKvars1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.Solver a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-ebe39c7d13bae794b0f1b8a847512efb
-  minKvars1 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U)><L,U><S(LSLLLLLLLLL),U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.Solver a)
-                   (w4 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w5 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w4 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Minimize.$wminKvars
-                   @ a
-                   w2
-                   w3
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   w5 }) -}
-71e13ccb7de6672e50edbbe13d9ca128
-  minKvars2 ::
-    [Language.Fixpoint.Types.Refinements.KVar]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-35b1506f62f9d61646b19a1e16cd03b2
-  minKvars3 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 5,
-     Unfolding: (\ @ a
-                   (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (solve :: Language.Fixpoint.Types.Constraints.Solver a)[OneShot]
-                   (fi :: Language.Fixpoint.Types.Constraints.FInfo a)[OneShot]
-                   (qs :: [Language.Fixpoint.Types.Refinements.KVar])[OneShot]
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case (solve
-                         cfg
-                         (Language.Fixpoint.Minimize.removeOtherKs @ a fi qs))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Language.Fixpoint.Types.Constraints.Result
-                              (GHC.Integer.Type.Integer, a)>_R)
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    Language.Fixpoint.Minimize.isSafe
-                      @ (GHC.Integer.Type.Integer, a)
-                      ipv1 #) }) -}
-ec608a9ce2471c837d22d19bd0611b0b
-  minKvars4 ::
-    GHC.Types.Bool
-    -> Language.Fixpoint.Minimize.Oracle a c
-    -> Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [c]
-    -> [c]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, [c] #)
-  {- Arity: 8, HasNoCafRefs,
-     Strictness: <L,U><L,C(C1(C1(C1(C1(U(U,1*U))))))><L,U><L,U><L,U><S,U><L,U><S,U> -}
-02e0d05cb1fd4f15caf9ecba22906bdd
-  minQuals ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><S(LLLLLLSLLLL),U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Minimize.minQuals1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.Solver a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-d9c5c729c4c995f5df088eb941841c80
-  minQuals1 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><S(LLLLLLSLLLL),U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.Solver a)
-                   (w4 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w5 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w4 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Minimize.$wminQuals
-                   @ a
-                   w2
-                   w3
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   w5 }) -}
-69d54d0f9dea9f2687197c68cb29f4c0
-  minQuals2 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 5, HasNoCafRefs,
-     Unfolding: (\ @ a
-                   (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (solve :: Language.Fixpoint.Types.Constraints.Solver a)[OneShot]
-                   (fi :: Language.Fixpoint.Types.Constraints.FInfo a)[OneShot]
-                   (qs :: [Language.Fixpoint.Types.Constraints.Qualifier])[OneShot]
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case (solve
-                         cfg
-                         (case fi of wild { Language.Fixpoint.Types.Constraints.FI ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                          case qs of dt { DEFAULT ->
-                          Language.Fixpoint.Types.Constraints.FI
-                            @ Language.Fixpoint.Types.Constraints.SubC
-                            @ a
-                            ds
-                            ds1
-                            ds2
-                            ds3
-                            ds4
-                            ds5
-                            dt
-                            ds7
-                            ds8
-                            ds9
-                            ds10 } }))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Language.Fixpoint.Types.Constraints.Result
-                              (GHC.Integer.Type.Integer, a)>_R)
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    Language.Fixpoint.Minimize.isSafe
-                      @ (GHC.Integer.Type.Integer, a)
-                      ipv1 #) }) -}
-4df8c5a62051b3657386fc3acfc969a6
-  minQuery ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Minimize.minQuery1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.Solver a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-29344fdfb5daa38e871a9c39a83b46c7
-  minQuery1 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.Solver a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,A,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, True)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.Solver a)
-                   (w4 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w5 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Minimize.$wminQuery @ a w2 w3 w4 w5) -}
-718718a1ac7c3d68ab58a89b30866b72
-  removeOtherKs ::
-    Language.Fixpoint.Types.Constraints.FInfo a
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-  {- Arity: 2, Strictness: <L,U><L,U> -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Misc.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Misc.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Misc.dump-hi
+++ /dev/null
@@ -1,1752 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:45.386176 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Misc 8002
-  interface hash: 18cf9668c37a7311412e57f062ca8192
-  ABI hash: 268edc2be2657e56d9ac2e0e5f861c66
-  export-list hash: 0d4209a369f77ae55113ca41b56281c2
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: aa523689299a73c717110ac922c91b7d
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Misc.allCombinations
-  Language.Fixpoint.Misc.allMap
-  Language.Fixpoint.Misc.applyNonNull
-  Language.Fixpoint.Misc.arrow
-  Language.Fixpoint.Misc.asyncMapM
-  Language.Fixpoint.Misc.coalesce
-  Language.Fixpoint.Misc.coalesceEdges
-  Language.Fixpoint.Misc.colorPhaseLn
-  Language.Fixpoint.Misc.colorStrLn
-  Language.Fixpoint.Misc.componentsWith
-  Language.Fixpoint.Misc.count
-  Language.Fixpoint.Misc.dcolon
-  Language.Fixpoint.Misc.doneLine
-  Language.Fixpoint.Misc.donePhase
-  Language.Fixpoint.Misc.editDistance
-  Language.Fixpoint.Misc.ensurePath
-  Language.Fixpoint.Misc.errorstar
-  Language.Fixpoint.Misc.executeShellCommand
-  Language.Fixpoint.Misc.fM
-  Language.Fixpoint.Misc.firstMaybe
-  Language.Fixpoint.Misc.fst3
-  Language.Fixpoint.Misc.getUniqueInt
-  Language.Fixpoint.Misc.group
-  Language.Fixpoint.Misc.groupBase
-  Language.Fixpoint.Misc.groupList
-  Language.Fixpoint.Misc.groupMap
-  Language.Fixpoint.Misc.hashMapToAscList
-  Language.Fixpoint.Misc.inserts
-  Language.Fixpoint.Misc.intersperse
-  Language.Fixpoint.Misc.mapEither
-  Language.Fixpoint.Misc.mapFst
-  Language.Fixpoint.Misc.mapSnd
-  Language.Fixpoint.Misc.mfromJust
-  Language.Fixpoint.Misc.mlookup
-  Language.Fixpoint.Misc.moodColor
-  Language.Fixpoint.Misc.putBlankLn
-  Language.Fixpoint.Misc.removes
-  Language.Fixpoint.Misc.repeats
-  Language.Fixpoint.Misc.safeHead
-  Language.Fixpoint.Misc.safeInit
-  Language.Fixpoint.Misc.safeLast
-  Language.Fixpoint.Misc.safeLookup
-  Language.Fixpoint.Misc.safeUncons
-  Language.Fixpoint.Misc.safeUnsnoc
-  Language.Fixpoint.Misc.safeZip
-  Language.Fixpoint.Misc.safeZipWith
-  Language.Fixpoint.Misc.secondM
-  Language.Fixpoint.Misc.singleton
-  Language.Fixpoint.Misc.snd3
-  Language.Fixpoint.Misc.sortNub
-  Language.Fixpoint.Misc.startPhase
-  Language.Fixpoint.Misc.thd3
-  Language.Fixpoint.Misc.traceShow
-  Language.Fixpoint.Misc.tshow
-  Language.Fixpoint.Misc.whenM
-  Language.Fixpoint.Misc.withColor
-  Language.Fixpoint.Misc.wrap
-  Language.Fixpoint.Misc.wrapStars
-  Language.Fixpoint.Misc.writeLoud
-  Language.Fixpoint.Misc.EqHash
-  Language.Fixpoint.Misc.ListNE
-  Language.Fixpoint.Misc.Moods{Language.Fixpoint.Misc.Angry Language.Fixpoint.Misc.Happy Language.Fixpoint.Misc.Loud Language.Fixpoint.Misc.Ok Language.Fixpoint.Misc.Sad}
-  Language.Fixpoint.Misc.|->
-module dependencies:
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-import  -/  ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo:System.Console.ANSI e739319fbbd4966bdcd546dfbbe469b3
-import  -/  ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo:System.Console.ANSI.Common ac77f9b0df69073483b183add28b39b1
-import  -/  ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo:System.Console.ANSI.Unix 6ea483f5e4efc8e715d9a53f8f28b4a4
-import  -/  array-0.5.1.1@array-0.5.1.1:Data.Array 01310623526f8acc73d1bb69e9d9530a
-import  -/  async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK:Control.Concurrent.Async 955fb68f82189e74bba4ac5b1bd4273e
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Control.Exception a76dd9666251322fe34dbcca3a0817bf
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Function 7aca86bfbd92366def5f260e30cb2628
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Data.Unique 83bc144bd7a6b4a9dd53b82bc143c029
-import  -/  base-4.9.1.0:Debug.Trace a9edf3aec504f4423d8ba829ab373a25
-import  -/  base-4.9.1.0:GHC.Arr dbae05e7a9c0aba55cc706ecf0406507
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.IO.Exception 5064be4c355632a1d1c4f2322f56ac52
-import  -/  base-4.9.1.0:GHC.IO.Handle ba98a5b34d78cbf48b41fe58a3735c69
-import  -/  base-4.9.1.0:GHC.IO.Handle.FD bf0291e0f2b6c0eca5446f986999f1cc
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:GHC.Stack 1c2d76400d351d3e60c5031ba1182ad5
-import  -/  base-4.9.1.0:GHC.Stack.Types 51968494fa04901a60fe271cf46e18df
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.Exit 068ba078eb20417d7af66db8b8ab4db1
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Graph 54c0f58a4ccb634fc9eab39368f95434
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Tree d0006987ba7e0d1855cb2cb448efc980
-import  -/  directory-1.3.0.0@directory-1.3.0.0:System.Directory 23e4e3d52f91c33b21f0667cd90aa164
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath a3d1d13ac7dd86705b5dfaf58a5c0b9e
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath.Posix 6a5e3ee74184fdcc5da09a368e7c40f5
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3:GHC.Err.Located e7c2cc2fce5606967665701f9d888898
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  process-1.4.3.0@process-1.4.3.0:System.Process 1ee59b956b7cad68338d3f6ab3e772ed
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-addDependentFile "/usr/local/lib/ghc-8.0.2/include/ghcversion.h"
-addDependentFile ".stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h"
-7c17444fc795af4f6d0be0010b5f32e3
-  $tc'Angry :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10560475730225992029##
-                   12351923715687817633##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tc'Angry1) -}
-b74dace33cf31bee2782b6dc01490d71
-  $tc'Angry1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Angry"#) -}
-5c56563e3ccbe0a27de176eee7a7ce6e
-  $tc'Happy :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15414089159081127094##
-                   14347415981619288797##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tc'Happy1) -}
-e7956d18fa8bb732086861122e931fa2
-  $tc'Happy1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Happy"#) -}
-4d7fd693011b8ec891f315ac4173d713
-  $tc'Loud :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1998136192550018659##
-                   12069493131807427689##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tc'Loud1) -}
-1227456e2b5f0a4078e3cfe51dd67cd7
-  $tc'Loud1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Loud"#) -}
-e092c14f8af6c64b02a120e6909d6b03
-  $tc'Ok :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11911396788845309052##
-                   12616521287308421521##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tc'Ok1) -}
-159b2c45b889fc360b5e8ad1ac6f2990
-  $tc'Ok1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Ok"#) -}
-39a68efb1bc4a1db21fc8c21ee240eeb
-  $tc'Sad :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13900572287508364912##
-                   3772817592887209801##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tc'Sad1) -}
-60b0fbf9347786db6be1045f8b071dab
-  $tc'Sad1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Sad"#) -}
-b018aa5b08736ca7a92da1993b4274d4
-  $tcMoods :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3848736220652625850##
-                   7414941342969984152##
-                   Language.Fixpoint.Misc.$trModule
-                   Language.Fixpoint.Misc.$tcMoods1) -}
-481b193219d95524c7e1cd2a98dc888b
-  $tcMoods1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Moods"#) -}
-9a16c0e3adf2c317dcca72a3b1956a3b
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Misc.$trModule2
-                   Language.Fixpoint.Misc.$trModule1) -}
-4a0d97bc1803669c2f3150fd58927714
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Misc"#) -}
-7e9da7304f9cce7df7d7274836b12548
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-d325dde7e7b72ca07d916ed323e5e817
-  $wallMap ::
-    (v -> GHC.Types.Bool)
-    -> Data.HashMap.Base.HashMap k v -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ k
-                   @ v
-                   (w :: v -> GHC.Types.Bool)
-                   (w1 :: Data.HashMap.Base.HashMap k v) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ k
-                   @ v
-                   @ (GHC.Types.Bool -> GHC.Types.Bool)
-                   (\ (x1 :: v)
-                      (k1 :: GHC.Types.Bool -> GHC.Types.Bool)[OneShot]
-                      (z :: GHC.Types.Bool) ->
-                    case case z of wild {
-                           GHC.Types.False -> GHC.Types.False
-                           GHC.Types.True -> w x1 } of vx { DEFAULT ->
-                    k1 vx })
-                   (GHC.Base.id @ GHC.Types.Bool)
-                   w1
-                   GHC.Types.True) -}
-a488301745617aaf558ef5d37bb85da0
-  $wmapEither ::
-    (a -> Data.Either.Either b c) -> [a] -> (# [b], [c] #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Inline: [0] -}
-2d111c67b4bd4c6543e43fe9cf05620d
-  $wrepeats :: GHC.Prim.Int# -> [a] -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><L,U>, Inline: [0],
-     Unfolding: (\ @ a (ww :: GHC.Prim.Int#) (w :: [a]) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# 0# ww) of wild {
-                   GHC.Types.False -> GHC.Types.[] @ a
-                   GHC.Types.True
-                   -> let {
-                        lvl60 :: [a] = GHC.Base.++ @ a w (GHC.Types.[] @ a)
-                      } in
-                      letrec {
-                        $wxs2 :: GHC.Prim.Int# -> [a]
-                          {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-                        = \ (ww1 :: GHC.Prim.Int#) ->
-                          case ww1 of ds1 {
-                            DEFAULT -> GHC.Base.++ @ a w ($wxs2 (GHC.Prim.-# ds1 1#))
-                            1# -> lvl60 }
-                      } in
-                      $wxs2 ww }) -}
-171ce4f1645ad311e4994d147b92fe21
-  $wsafeUnsnoc ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> (# [a], a #)
-  {- Arity: 3, Strictness: <L,1*U><L,U><L,1*U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: ?callStack::GHC.Stack.Types.CallStack)
-                   (w1 :: GHC.Base.String)
-                   (w2 :: Language.Fixpoint.Misc.ListNE a) ->
-                 let {
-                   ds :: (a, [a])
-                   = case GHC.List.reverse1 @ a w2 (GHC.Types.[] @ a) of wild {
-                       [] -> Language.Fixpoint.Misc.safeUnsnoc1 @ a w w1
-                       : x1 xs -> (x1, xs) }
-                 } in
-                 (# case ds of wild { (,) x1 y ->
-                    GHC.List.reverse1 @ a y (GHC.Types.[] @ a) },
-                    case ds of wild { (,) x1 y -> x1 } #)) -}
-3ba4abfe6ffce2f5dac86837e06349ea
-  $wxs :: GHC.Prim.Int# -> [GHC.Types.Char]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-1a28414ffcbfa09b460a154d5c3784c7
-  type EqHash a =
-    (GHC.Classes.Eq a, GHC.Classes.Ord a,
-     Data.Hashable.Class.Hashable a)
-    :: GHC.Types.Constraint
-245082d2e65bed4e03d6c17463d8b79a
-  type ListNE a = [a]
-91b7fe939c9c0ffb716510227cc5d3ce
-  data Moods = Ok | Loud | Sad | Happy | Angry
-c0a9eb79a7b13ad47907d1a4dc3f37f3
-  allCombinations :: [[a]] -> [[a]]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-188d60cfcdd3ac787110cb94ff1521bd
-  allMap ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    (v -> GHC.Types.Bool)
-    -> Data.HashMap.Base.HashMap k v -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><L,A><L,C(U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ k
-                   @ v
-                   (w :: GHC.Classes.Eq k)
-                   (w1 :: Data.Hashable.Class.Hashable k)
-                   (w2 :: v -> GHC.Types.Bool)
-                   (w3 :: Data.HashMap.Base.HashMap k v) ->
-                 Language.Fixpoint.Misc.$wallMap @ k @ v w2 w3) -}
-303cbe5541e25fbd8cd11b7c15ff6310
-  applyNonNull :: b -> ([a] -> b) -> [a] -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,1*U><L,1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ b @ a (def :: b) (ds :: [a] -> b) (ds1 :: [a]) ->
-                 case ds1 of wild { [] -> def : ipv ipv1 -> ds wild }) -}
-8bdb9f54c894b8edbd1807cc51496c9c
-  arrow :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Misc.arrow_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Misc.arrow1
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-d7bb8c7705092630328e7bb00818a913
-  arrow1 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Misc.arrow_s) -}
-e36f9be79cd68645607a317f4f495e93
-  arrow_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "->"#) -}
-ae893d2cd008b5aa61745192d2e27805
-  asyncMapM :: (a -> GHC.Types.IO b) -> [a] -> GHC.Types.IO [b]
-  {- Arity: 3, Strictness: <L,C(C(U))><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.asyncMapM1
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> GHC.Types.IO b>_R
-                 ->_R <[a]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <[b]>_R)) -}
-7e3a6dd98770d3b3839d53679e6a3ff9
-  asyncMapM1 ::
-    (a -> GHC.Types.IO b)
-    -> [a]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, [b] #)
-  {- Arity: 3, Strictness: <L,C(C(U))><S,1*U><S,U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f :: a -> GHC.Types.IO b)
-                   (xs :: [a])
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 letrec {
-                   go :: [a]
-                         -> GHC.Prim.State# GHC.Prim.RealWorld
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                               [Control.Concurrent.Async.Async b] #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [a])
-                       (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta, GHC.Types.[] @ (Control.Concurrent.Async.Async b) #)
-                       : y ys
-                       -> case Control.Concurrent.Async.async1
-                                 @ b
-                                 (f y)
-                                 eta of ds1 { (#,#) ipv ipv1 ->
-                          case go ys ipv of ds2 { (#,#) ipv2 ipv3 ->
-                          (# ipv2,
-                             GHC.Types.: @ (Control.Concurrent.Async.Async b) ipv1 ipv3 #) } } }
-                 } in
-                 case go xs s of ds1 { (#,#) ipv ipv1 ->
-                 (Language.Fixpoint.Misc.asyncMapM2 @ b ipv1)
-                   `cast`
-                 (GHC.Types.N:IO[0] <[b]>_R)
-                   ipv }) -}
-295846912d17a147510ae12a073f3648
-  asyncMapM2 ::
-    [Control.Concurrent.Async.Async b] -> GHC.Types.IO [b]
-  {- Unfolding: (\ @ b ->
-                 Data.Traversable.$fTraversable[]_$cmapM
-                   @ GHC.Types.IO
-                   @ (Control.Concurrent.Async.Async b)
-                   @ b
-                   GHC.Base.$fMonadIO
-                   (Control.Concurrent.Async.wait @ b)) -}
-17a5aa1e08f8a412b90c8a1683456312
-  coalesce ::
-    Language.Fixpoint.Misc.EqHash v =>
-    [Language.Fixpoint.Misc.ListNE v]
-    -> [Language.Fixpoint.Misc.ListNE v]
-  {- Arity: 2,
-     Strictness: <L,U(U(C(C1(U)),A),1*U(A,C(C1(U)),A,A,A,A,A,A),U(A,C(U(U))))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ v
-                   ($d(%,,%) :: Language.Fixpoint.Misc.EqHash v)
-                   (eta :: [Language.Fixpoint.Misc.ListNE v]) ->
-                 Language.Fixpoint.Misc.componentsWith
-                   @ v
-                   @ [Language.Fixpoint.Misc.ListNE v]
-                   @ v
-                   (GHC.Classes.$p2(%,,%)
-                      @ (GHC.Classes.Eq v)
-                      @ (GHC.Classes.Ord v)
-                      @ (Data.Hashable.Class.Hashable v)
-                      $d(%,,%))
-                   (Language.Fixpoint.Misc.coalesceEdges @ v $d(%,,%))
-                   eta) -}
-390b8f5cab898ef725b7550b8d147a9d
-  coalesceEdges ::
-    Language.Fixpoint.Misc.EqHash v =>
-    [Language.Fixpoint.Misc.ListNE v] -> [(v, v, [v])]
-  {- Arity: 2,
-     Strictness: <L,U(1*U(C(C1(U)),A),A,1*U(A,C(U(U))))><S,1*U>,
-     Unfolding: (\ @ v
-                   ($d(%,,%) :: Language.Fixpoint.Misc.EqHash v)
-                   (eta :: [Language.Fixpoint.Misc.ListNE v]) ->
-                 let {
-                   uvs :: [(v, v)] = Language.Fixpoint.Misc.coalesceEdges3 @ v eta
-                 } in
-                 Language.Fixpoint.Misc.coalesceEdges2
-                   @ v
-                   (Language.Fixpoint.Misc.coalesceEdges1
-                      @ v
-                      @ v
-                      (GHC.Types.[] @ (v, [v]))
-                      (Language.Fixpoint.Misc.groupBase
-                         @ v
-                         @ v
-                         (GHC.Classes.$p1(%,,%)
-                            @ (GHC.Classes.Eq v)
-                            @ (GHC.Classes.Ord v)
-                            @ (Data.Hashable.Class.Hashable v)
-                            $d(%,,%))
-                         (GHC.Classes.$p3(%,,%)
-                            @ (GHC.Classes.Eq v)
-                            @ (GHC.Classes.Ord v)
-                            @ (Data.Hashable.Class.Hashable v)
-                            $d(%,,%))
-                         (Data.HashMap.Base.Empty @ v @ [v])
-                         (GHC.Base.++
-                            @ (v, v)
-                            uvs
-                            (GHC.Base.map
-                               @ (v, v)
-                               @ (v, v)
-                               (Data.Tuple.swap @ v @ v)
-                               uvs))))) -}
-f16fc9cb217134961d7946d1dd690e25
-  coalesceEdges1 ::
-    [(k, [v])] -> Data.HashMap.Base.HashMap k [v] -> [(k, [v])]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-9eb753170d77623cb2864798cae4ab7c
-  coalesceEdges2 :: [(v, [v])] -> [(v, v, [v])]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-54ce486cec956b77ea1dd2976f94fe64
-  coalesceEdges3 :: [[v]] -> [(v, v)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-1dfe1637de22340a8f1e40819810e232
-  colorPhaseLn ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String -> GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 4, Strictness: <L,1*U><L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.colorPhaseLn1
-                  `cast`
-                (<Language.Fixpoint.Misc.Moods>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R <[GHC.Types.Char]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-13972fc7b26a2bbcc66bb5dfe53f0994
-  colorPhaseLn1 ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String
-    -> [GHC.Types.Char]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 4, Strictness: <L,1*U><L,1*U><L,1*U><S,U>,
-     Unfolding: (\ (c :: Language.Fixpoint.Misc.Moods)
-                   (msg :: GHC.Base.String)
-                   (eta :: [GHC.Types.Char])
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Misc.colorPhaseLn2
-                   (case c of wild {
-                      Language.Fixpoint.Misc.Ok -> System.Console.ANSI.Common.Black
-                      Language.Fixpoint.Misc.Loud -> System.Console.ANSI.Common.Blue
-                      Language.Fixpoint.Misc.Sad -> System.Console.ANSI.Common.Magenta
-                      Language.Fixpoint.Misc.Happy -> System.Console.ANSI.Common.Green
-                      Language.Fixpoint.Misc.Angry -> System.Console.ANSI.Common.Red })
-                   (\ (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    GHC.IO.Handle.Text.hPutStr2
-                      GHC.IO.Handle.FD.stdout
-                      (Language.Fixpoint.Misc.wrapStars
-                         (GHC.Base.++ @ GHC.Types.Char msg eta))
-                      GHC.Types.True
-                      eta2)
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <()>_R))
-                   eta1) -}
-64ca1e0d6a998029ce1f210c97b62456
-  colorPhaseLn2 ::
-    System.Console.ANSI.Common.Color
-    -> GHC.Types.IO ()
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U><L,1*C1(U(U,A))><S,U>,
-     Unfolding: (\ (c :: System.Console.ANSI.Common.Color)
-                   (act :: GHC.Types.IO ())
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        (System.Console.ANSI.Unix.csi
-                           (GHC.Types.:
-                              @ GHC.Types.Int
-                              Language.Fixpoint.Misc.colorPhaseLn6
-                              (GHC.Types.:
-                                 @ GHC.Types.Int
-                                 (case System.Console.ANSI.Unix.$wsgrToCode
-                                         (System.Console.ANSI.Common.SetColor
-                                            System.Console.ANSI.Common.Foreground
-                                            System.Console.ANSI.Common.Vivid
-                                            c) of ww { DEFAULT ->
-                                  GHC.Types.I# ww })
-                                 (GHC.Types.[] @ GHC.Types.Int)))
-                           System.Console.ANSI.Unix.setSGRCode1)
-                        GHC.Types.False
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case act `cast` (GHC.Types.N:IO[0] <()>_R)
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 GHC.IO.Handle.Text.hPutStr2
-                   GHC.IO.Handle.FD.stdout
-                   Language.Fixpoint.Misc.colorPhaseLn3
-                   GHC.Types.False
-                   ipv2 } }) -}
-5d85fbc1ee843b53c2d9d0ccd292e0d6
-  colorPhaseLn3 :: GHC.Base.String
-  {- Unfolding: (System.Console.ANSI.Unix.csi
-                   Language.Fixpoint.Misc.colorPhaseLn4
-                   System.Console.ANSI.Unix.setSGRCode1) -}
-f1e229ec1e9ed10b60a23f082f650138
-  colorPhaseLn4 :: [GHC.Types.Int]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Misc.colorPhaseLn5
-                   (GHC.Types.[] @ GHC.Types.Int)) -}
-72f3f258ad463317b66a8ca074424cda
-  colorPhaseLn5 :: GHC.Types.Int
-  {- Unfolding: (case System.Console.ANSI.Unix.$wsgrToCode
-                        System.Console.ANSI.Common.Reset of ww { DEFAULT ->
-                 GHC.Types.I# ww }) -}
-4c6029689e5776ec1cff726728b647ac
-  colorPhaseLn6 :: GHC.Types.Int
-  {- Unfolding: (case System.Console.ANSI.Unix.$wsgrToCode
-                        Language.Fixpoint.Misc.colorPhaseLn7 of ww { DEFAULT ->
-                 GHC.Types.I# ww }) -}
-a9964d06d6357890737c5478b78fa9e2
-  colorPhaseLn7 :: System.Console.ANSI.Common.SGR
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (System.Console.ANSI.Common.SetConsoleIntensity
-                   System.Console.ANSI.Common.BoldIntensity) -}
-314c551f03113bafdefee09d97f7834e
-  colorStrLn ::
-    Language.Fixpoint.Misc.Moods -> GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.colorStrLn1
-                  `cast`
-                (<Language.Fixpoint.Misc.Moods>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-9b887366d56a78424f2bf8118224bd45
-  colorStrLn1 ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: (\ (c :: Language.Fixpoint.Misc.Moods)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Misc.colorPhaseLn2
-                   (case c of wild {
-                      Language.Fixpoint.Misc.Ok -> System.Console.ANSI.Common.Black
-                      Language.Fixpoint.Misc.Loud -> System.Console.ANSI.Common.Blue
-                      Language.Fixpoint.Misc.Sad -> System.Console.ANSI.Common.Magenta
-                      Language.Fixpoint.Misc.Happy -> System.Console.ANSI.Common.Green
-                      Language.Fixpoint.Misc.Angry -> System.Console.ANSI.Common.Red })
-                   (\ (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    GHC.IO.Handle.Text.hPutStr2
-                      GHC.IO.Handle.FD.stdout
-                      eta
-                      GHC.Types.True
-                      eta2)
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <()>_R))
-                   eta1) -}
-5c5b19dfec8fda3c44a7740b43bf0d25
-  componentsWith ::
-    GHC.Classes.Ord c => (a -> [(b, c, [c])]) -> a -> [[b]]
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A,A,A,A,A,A)><L,1*C1(U)><L,U>,
-     Unfolding: (\ @ c
-                   @ a
-                   @ b
-                   ($dOrd :: GHC.Classes.Ord c)
-                   (eF :: a -> [(b, c, [c])])
-                   (x1 :: a) ->
-                 case Data.Graph.$wgraphFromEdges
-                        @ c
-                        @ b
-                        $dOrd
-                        (eF x1) of ww { (#,,#) ww1 ww2 ww3 ->
-                 case ww1 of ww4 { GHC.Arr.Array ww5 ww6 ww7 ww8 ->
-                 case ww5 of ww9 { GHC.Types.I# ww10 ->
-                 case ww6 of ww11 { GHC.Types.I# ww12 ->
-                 let {
-                   c1 :: Data.Graph.Vertex -> b
-                     {- Arity: 1, Strictness: <L,U>,
-                        Unfolding: InlineRule (1, True, False)
-                                   (\ (x2 :: Data.Graph.Vertex) ->
-                                    case ww2 x2 of wild { (,,) x3 ds ds1 -> x3 }) -}
-                   = \ (x2 :: Data.Graph.Vertex) ->
-                     case ww2 x2 of wild { (,,) x3 ds ds1 -> x3 }
-                 } in
-                 GHC.Base.map
-                   @ (Data.Tree.Tree Data.Graph.Vertex)
-                   @ [b]
-                   (\ (x2 :: Data.Tree.Tree Data.Graph.Vertex) ->
-                    case x2 of ww13 { Data.Tree.Node ww14 ww15 ->
-                    case Data.Tree.$wpoly_squish
-                           @ Data.Graph.Vertex
-                           ww14
-                           ww15
-                           (GHC.Types.[] @ Data.Graph.Vertex) of ww16 { (#,#) ww17 ww18 ->
-                    GHC.Base.map
-                      @ GHC.Types.Int
-                      @ b
-                      c1
-                      (GHC.Types.: @ Data.Graph.Vertex ww17 ww18) } })
-                   (Data.Graph.$wcomponents ww10 ww12 ww8) } } } }) -}
-3465de1600d6142a0b40ebd8679184c9
-  count ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    [k] -> [(k, GHC.Types.Int)]
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,U(A,C(U(U)))><S,1*U>,
-     Unfolding: (\ @ k
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (eta :: [k]) ->
-                 Language.Fixpoint.Misc.count4
-                   @ k
-                   (GHC.Types.[] @ (k, GHC.Types.Int))
-                   (Language.Fixpoint.Misc.count3
-                      @ k
-                      (Language.Fixpoint.Misc.groupBase
-                         @ k
-                         @ GHC.Types.Int
-                         $dEq
-                         $dHashable
-                         (Data.HashMap.Base.Empty @ k @ [GHC.Types.Int])
-                         (GHC.Base.map
-                            @ k
-                            @ (k, GHC.Types.Int)
-                            (Language.Fixpoint.Misc.count1 @ k)
-                            eta)))) -}
-c1ab390fc809c04bda28adad6d97dfb4
-  count1 :: k -> (k, GHC.Types.Int)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ k (ds :: k) -> (ds, Language.Fixpoint.Misc.count2)) -}
-82e03ad89bd2504c2b8c09a9da4ecfee
-  count2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 1#) -}
-8e45e01df29dcb08edcc42c461afe5ab
-  count3 ::
-    Data.HashMap.Base.HashMap k [GHC.Types.Int]
-    -> Data.HashMap.Base.HashMap k GHC.Types.Int
-  {- Arity: 1, Strictness: <S,1*U> -}
-ab8ed9dbe8655e5b554f495064f42dd1
-  count4 ::
-    [(k, GHC.Types.Int)]
-    -> Data.HashMap.Base.HashMap k GHC.Types.Int
-    -> [(k, GHC.Types.Int)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-cd1daf2c95b47d528a85f6be760e3cc3
-  dcolon :: Text.PrettyPrint.HughesPJ.Doc
-  {- Strictness: m7,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.dcolon1
-                  `cast`
-                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-0bfe24caa526f57ba1d09d8dad32ca1c
-  dcolon1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- HasNoCafRefs, Strictness: m7,
-     Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                   @ ()
-                   Text.PrettyPrint.HughesPJ.colon1
-                   GHC.Types.False
-                   Text.PrettyPrint.HughesPJ.colon1) -}
-b6162b053b692e902b64c6e31cb1daad
-  doneLine ::
-    Language.Fixpoint.Misc.Moods -> GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.doneLine1
-                  `cast`
-                (<Language.Fixpoint.Misc.Moods>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-618b1c4fd3ad4f6c1f3e40729a04489c
-  doneLine1 ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (c :: Language.Fixpoint.Misc.Moods)
-                   (msg :: GHC.Base.String)
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Misc.colorPhaseLn1
-                        c
-                        Language.Fixpoint.Misc.doneLine5
-                        msg
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 Language.Fixpoint.Misc.doneLine2 ipv }) -}
-cfb39203d855198a42b31f21ba28aa90
-  doneLine2 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ (eta :: GHC.Prim.State#
-                             GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Misc.colorPhaseLn2
-                   System.Console.ANSI.Common.Black
-                   Language.Fixpoint.Misc.doneLine3
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <()>_R))
-                   eta) -}
-37c46c905bb1939aace5f027b8195fb3
-  doneLine3 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 1,
-     Unfolding: (\ (eta :: GHC.Prim.State#
-                             GHC.Prim.RealWorld)[OneShot] ->
-                 GHC.IO.Handle.Text.hPutStr2
-                   GHC.IO.Handle.FD.stdout
-                   Language.Fixpoint.Misc.doneLine4
-                   GHC.Types.True
-                   eta) -}
-396a10766e4f3f8fbb71cf4fb5a70ddb
-  doneLine4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# " "#) -}
-b0a460f4ea576a8fefc6a5a125ee7702
-  doneLine5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "DONE:  "#) -}
-1cf4579b993fe9690101309d8b0cc613
-  donePhase ::
-    Language.Fixpoint.Misc.Moods -> GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.donePhase1
-                  `cast`
-                (<Language.Fixpoint.Misc.Moods>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-7109e38f2183df52b35750895b5335ea
-  donePhase1 ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: (\ (c :: Language.Fixpoint.Misc.Moods)
-                   (str :: GHC.Base.String)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Data.OldList.lines str of wild {
-                   [] -> (# eta, GHC.Tuple.() #)
-                   : l1 ls
-                   -> case Language.Fixpoint.Misc.colorPhaseLn1
-                             c
-                             Language.Fixpoint.Misc.doneLine5
-                             l1
-                             eta of ds1 { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Misc.colorPhaseLn2
-                             System.Console.ANSI.Common.Black
-                             Language.Fixpoint.Misc.doneLine3
-                               `cast`
-                             (Sym (GHC.Types.N:IO[0] <()>_R))
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      letrec {
-                        go :: [GHC.Base.String]
-                              -> GHC.Prim.State# GHC.Prim.RealWorld
-                              -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                          {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                        = \ (ds :: [GHC.Base.String])
-                            (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                          case ds of wild1 {
-                            [] -> (# eta1, GHC.Tuple.() #)
-                            : y ys
-                            -> case Language.Fixpoint.Misc.colorPhaseLn1
-                                      c
-                                      (GHC.Types.[] @ GHC.Types.Char)
-                                      y
-                                      eta1 of ds3 { (#,#) ipv4 ipv5 ->
-                               go ys ipv4 } }
-                      } in
-                      case go ls ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      GHC.IO.Handle.Internals.wantWritableHandle1
-                        @ ()
-                        GHC.IO.Handle.hFlush2
-                        GHC.IO.Handle.FD.stdout
-                        GHC.IO.Handle.Internals.flushWriteBuffer1
-                          `cast`
-                        (<GHC.IO.Handle.Types.Handle__>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                        ipv4 } } } }) -}
-ceeddc2c62bb641348c501fc486aa751
-  editDistance :: GHC.Classes.Eq a => [a] -> [a] -> GHC.Types.Int
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><S,U><S,U> -}
-3402ad06caedf6824ca64542c1d58b7e
-  ensurePath :: GHC.IO.FilePath -> GHC.Types.IO ()
-  {- Arity: 2, Strictness: <L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.ensurePath1
-                  `cast`
-                (<GHC.IO.FilePath>_R ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-1b9485c0f87946fe1f2a23fdf84a6c92
-  ensurePath1 ::
-    GHC.IO.FilePath
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2, Strictness: <L,1*U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x1 :: GHC.IO.FilePath)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 System.Directory.createDirectoryIfMissing1
-                   GHC.Types.True
-                   (System.FilePath.Posix.takeDirectory x1)
-                   eta) -}
-e13c48ac8d5f72547a0d41e4f1437551
-  errorstar ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-d914e23484029777f6ace48e2974ef81
-  executeShellCommand ::
-    GHC.Base.String
-    -> GHC.Base.String -> GHC.Types.IO GHC.IO.Exception.ExitCode
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.executeShellCommand1
-                  `cast`
-                (<GHC.Base.String>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.IO.Exception.ExitCode>_R)) -}
-0791104b891b917d5b80f2e56a7ab6fc
-  executeShellCommand1 ::
-    GHC.Base.String
-    -> GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.IO.Exception.ExitCode #)
-  {- Arity: 3, Strictness: <L,U><L,U><S,U> -}
-450f2c1c5f56026cb37b3c83834e592d
-  fM :: GHC.Base.Monad m => (a -> b) -> a -> m b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,1*C1(U)><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (f :: a -> b)
-                   (eta :: a) ->
-                 GHC.Base.return @ m $dMonad @ b (f eta)) -}
-b4930586cc418a17c55b83c781d61cde
-  firstMaybe :: (a -> GHC.Base.Maybe b) -> [a] -> GHC.Base.Maybe b
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a @ b (f :: a -> GHC.Base.Maybe b) (eta :: [a]) ->
-                 case GHC.Base.build
-                        @ b
-                        (\ @ b1 (c :: b -> b1 -> b1)[OneShot] (n :: b1)[OneShot] ->
-                         GHC.Base.foldr
-                           @ a
-                           @ b1
-                           (Data.Maybe.mapMaybeFB @ b @ b1 @ a c f)
-                           n
-                           eta) of wild {
-                   [] -> GHC.Base.Nothing @ b : a1 ds1 -> GHC.Base.Just @ b a1 }) -}
-d403c254371349110bdd0be2f09b4237
-  fst3 :: (a, b, c) -> a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b @ c (ds :: (a, b, c)) ->
-                 case ds of wild { (,,) x1 ds1 ds2 -> x1 }) -}
-0458d8494843bbead867a6963fb5f325
-  getUniqueInt :: GHC.Types.IO GHC.Types.Int
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.getUniqueInt1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <GHC.Types.Int>_R)) -}
-6bded4b7b8bf7245a4b11956a858c892
-  getUniqueInt1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Int #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Data.Unique.uniqSource
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <GHC.Integer.Type.Integer>_N) of wild { GHC.STRef.STRef r# ->
-                 case GHC.Prim.atomicModifyMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ GHC.Integer.Type.Integer
-                        @ (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer)
-                        @ GHC.Integer.Type.Integer
-                        r#
-                        Data.Unique.newUnique2
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of b1 { DEFAULT ->
-                 case GHC.Prim.atomicModifyMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ GHC.Integer.Type.Integer
-                        @ (GHC.Integer.Type.Integer, GHC.Integer.Type.Integer)
-                        @ GHC.Integer.Type.Integer
-                        r#
-                        Data.Unique.newUnique2
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of b2 { DEFAULT ->
-                 (# ipv2,
-                    case GHC.Integer.Type.integerToInt b1 of wild1 { DEFAULT ->
-                    case GHC.Integer.Type.integerToInt b2 of wild2 { DEFAULT ->
-                    GHC.Types.I# (GHC.Prim.*# wild1 wild2) } } #) } } } } }) -}
-e2e2979efce4bc962b883458e2dab7fa
-  group ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    [(k, v)] -> Data.HashMap.Base.HashMap k [v]
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,U(A,C(U(U)))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ k
-                   @ v
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (eta :: [(k, v)]) ->
-                 Language.Fixpoint.Misc.groupBase
-                   @ k
-                   @ v
-                   $dEq
-                   $dHashable
-                   (Data.HashMap.Base.Empty @ k @ [v])
-                   eta) -}
-9dd7c99949f69030dba08f18ac31f288
-  groupBase ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    Data.HashMap.Base.HashMap k [v]
-    -> [(k, v)] -> Data.HashMap.Base.HashMap k [v]
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,U(A,C(U(U)))><S,1*U><S,1*U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (eta :: Data.HashMap.Base.HashMap k [v])
-                   (eta1 :: [(k, v)]) ->
-                 letrec {
-                   go :: [(k, v)]
-                         -> Data.HashMap.Base.HashMap k [v]
-                         -> Data.HashMap.Base.HashMap k [v]
-                     {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-                   = \ (ds :: [(k, v)]) (eta2 :: Data.HashMap.Base.HashMap k [v]) ->
-                     case ds of wild {
-                       [] -> eta2
-                       : y ys
-                       -> case y of wild1 { (,) k1 v1 ->
-                          go
-                            ys
-                            (Language.Fixpoint.Misc.inserts
-                               @ k
-                               @ v
-                               $dEq
-                               $dHashable
-                               k1
-                               v1
-                               eta2) } }
-                 } in
-                 go eta1 eta) -}
-62a88dfa37b8b6d8ee4a75635ee44736
-  groupList ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    [(k, v)] -> [(k, [v])]
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,U(A,C(U(U)))><S,1*U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (eta :: [(k, v)]) ->
-                 Language.Fixpoint.Misc.coalesceEdges1
-                   @ k
-                   @ v
-                   (GHC.Types.[] @ (k, [v]))
-                   (Language.Fixpoint.Misc.groupBase
-                      @ k
-                      @ v
-                      $dEq
-                      $dHashable
-                      (Data.HashMap.Base.Empty @ k @ [v])
-                      eta)) -}
-18c734033fb91730028d0006da2d1307
-  groupMap ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    (a -> k) -> [a] -> Data.HashMap.Base.HashMap k [a]
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,U(A,C(U(U)))><L,C(U)><S,1*U>,
-     Unfolding: (\ @ k
-                   @ a
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (f :: a -> k)
-                   (eta :: [a]) ->
-                 letrec {
-                   go :: [a]
-                         -> Data.HashMap.Base.HashMap k [a]
-                         -> Data.HashMap.Base.HashMap k [a]
-                     {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-                   = \ (ds :: [a]) (eta1 :: Data.HashMap.Base.HashMap k [a]) ->
-                     case ds of wild {
-                       [] -> eta1
-                       : y ys
-                       -> go
-                            ys
-                            (Language.Fixpoint.Misc.inserts
-                               @ k
-                               @ a
-                               $dEq
-                               $dHashable
-                               (f y)
-                               y
-                               eta1) }
-                 } in
-                 go eta (Data.HashMap.Base.Empty @ k @ [a])) -}
-da9681d74f9e9e8aaa19c0da349c7ccd
-  hashMapToAscList ::
-    GHC.Classes.Ord a => Data.HashMap.Base.HashMap a b -> [(a, b)]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A,A,A,A,A,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (eta :: Data.HashMap.Base.HashMap a b) ->
-                 Data.OldList.sortBy
-                   @ (a, b)
-                   (let {
-                      .*. :: a -> a -> GHC.Types.Ordering = GHC.Classes.compare @ a $dOrd
-                    } in
-                    \ (x1 :: (a, b)) (y :: (a, b))[OneShot] ->
-                    .*. (Data.Tuple.fst @ a @ b x1) (Data.Tuple.fst @ a @ b y))
-                   (Data.HashMap.Base.toList @ a @ b eta)) -}
-c4b41f182353024851320e0577f6fd6e
-  inserts ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k) =>
-    k
-    -> v
-    -> Data.HashMap.Base.HashMap k [v]
-    -> Data.HashMap.Base.HashMap k [v]
-  {- Arity: 5,
-     Strictness: <L,U(C(C1(U)),A)><S(LC(S(S))),U(A,C(U(U)))><S,U><L,U><S,U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (k1 :: k)
-                   (v1 :: v)
-                   (m :: Data.HashMap.Base.HashMap k [v]) ->
-                 Data.HashMap.Base.insert
-                   @ k
-                   @ [v]
-                   $dEq
-                   $dHashable
-                   k1
-                   (GHC.Types.:
-                      @ v
-                      v1
-                      (case Data.HashMap.Base.lookup
-                              @ k
-                              @ [v]
-                              $dEq
-                              $dHashable
-                              k1
-                              m of wild {
-                         GHC.Base.Nothing -> GHC.Types.[] @ v GHC.Base.Just v2 -> v2 }))
-                   m) -}
-a8af56faf80774d73c5863a2e27859d2
-  intersperse ::
-    Text.PrettyPrint.HughesPJ.Doc
-    -> [Text.PrettyPrint.HughesPJ.Doc] -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (d :: Text.PrettyPrint.HughesPJ.Doc)
-                   (ds :: [Text.PrettyPrint.HughesPJ.Doc]) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceHoriz
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.hsep1
-                           @ ()
-                           (Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                              @ ()
-                              d `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                              (Language.Fixpoint.Misc.intersperse_go
-                                 ds))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-d145ff198e27b5a56d8676de6e7c3446
-  intersperse_go ::
-    [Text.PrettyPrint.HughesPJ.Doc]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-695d68417aeb2bdbb705dbb6c81e7ebc
-  mapEither :: (a -> Data.Either.Either b c) -> [a] -> ([b], [c])
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a @ b @ c (w :: a -> Data.Either.Either b c) (w1 :: [a]) ->
-                 case Language.Fixpoint.Misc.$wmapEither
-                        @ a
-                        @ b
-                        @ c
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-54294e0357ea881c18115f64503fab09
-  mapFst :: (a -> c) -> (a, b) -> (c, b)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a @ c @ b (f :: a -> c) (ds :: (a, b)) ->
-                 case ds of wild { (,) x1 y -> (f x1, y) }) -}
-80590cb19a206f88138689a227d85b17
-  mapSnd :: (b -> c) -> (a, b) -> (a, c)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ b @ c @ a (f :: b -> c) (ds :: (a, b)) ->
-                 case ds of wild { (,) x1 y -> (x1, f y) }) -}
-9e6b0d26b701450ac09af8799f10f8e4
-  mfromJust ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> GHC.Base.Maybe a -> a
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: GHC.Base.Maybe a) ->
-                 case eta1 of wild {
-                   GHC.Base.Nothing -> Language.Fixpoint.Misc.mfromJust1 @ a $dIP eta
-                   GHC.Base.Just x1 -> x1 }) -}
-fe9063ea3236a39ac8126b99cf99d3be
-  mfromJust1 ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-971e2002d30cacbe613cae574aa79427
-  mlookup ::
-    (?callStack::GHC.Stack.Types.CallStack, GHC.Classes.Eq k,
-     GHC.Show.Show k, Data.Hashable.Class.Hashable k) =>
-    Data.HashMap.Base.HashMap k v -> k -> v
-  {- Arity: 6,
-     Strictness: <L,1*U><L,U(C(C1(U)),A)><L,1*U(A,1*C1(U),A)><S(LC(S(S))),1*U(A,1*C1(U(U)))><S,1*U><S,U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dShow :: GHC.Show.Show k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (m :: Data.HashMap.Base.HashMap k v)
-                   (k1 :: k) ->
-                 case Data.HashMap.Base.lookup
-                        @ k
-                        @ v
-                        $dEq
-                        $dHashable
-                        k1
-                        m of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Misc.mlookup1 @ v @ k $dIP $dShow k1
-                   GHC.Base.Just v1 -> v1 }) -}
-a49dce784af99adb46fb2be38653b5bc
-  mlookup1 ::
-    (?callStack::GHC.Stack.Types.CallStack, GHC.Show.Show k) => k -> v
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>x -}
-352ae1c45612720a5e536034ce07bd03
-  moodColor ::
-    Language.Fixpoint.Misc.Moods -> System.Console.ANSI.Common.Color
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Misc.Moods) ->
-                 case ds of wild {
-                   Language.Fixpoint.Misc.Ok -> System.Console.ANSI.Common.Black
-                   Language.Fixpoint.Misc.Loud -> System.Console.ANSI.Common.Blue
-                   Language.Fixpoint.Misc.Sad -> System.Console.ANSI.Common.Magenta
-                   Language.Fixpoint.Misc.Happy -> System.Console.ANSI.Common.Green
-                   Language.Fixpoint.Misc.Angry
-                   -> System.Console.ANSI.Common.Red }) -}
-054c5f958315d8678f987fa41429a6bc
-  putBlankLn :: GHC.Types.IO ()
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.putBlankLn1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <()>_R)) -}
-e1e82239f959d710f7d0baf6850ae5d1
-  putBlankLn1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        GHC.Types.True
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 GHC.IO.Handle.Internals.wantWritableHandle1
-                   @ ()
-                   GHC.IO.Handle.hFlush2
-                   GHC.IO.Handle.FD.stdout
-                   GHC.IO.Handle.Internals.flushWriteBuffer1
-                     `cast`
-                   (<GHC.IO.Handle.Types.Handle__>_R
-                    ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                   ipv }) -}
-76e41dfb3f8f1772935cfad7ed636104
-  removes ::
-    (GHC.Classes.Eq k, Data.Hashable.Class.Hashable k,
-     GHC.Classes.Eq v) =>
-    k
-    -> v
-    -> Data.HashMap.Base.HashMap k [v]
-    -> Data.HashMap.Base.HashMap k [v]
-  {- Arity: 6,
-     Strictness: <L,U(C(C1(U)),A)><S(LC(S(S))),U(A,C(U(U)))><L,1*U(1*C(C1(U)),A)><S,U><L,U><S,U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   ($dEq1 :: GHC.Classes.Eq v)
-                   (k1 :: k)
-                   (v1 :: v)
-                   (m :: Data.HashMap.Base.HashMap k [v]) ->
-                 case case Data.HashMap.Base.lookup
-                             @ k
-                             @ [v]
-                             $dEq
-                             $dHashable
-                             k1
-                             m of wild {
-                        GHC.Base.Nothing
-                        -> Data.OldList.deleteBy
-                             @ v
-                             (GHC.Classes.== @ v $dEq1)
-                             v1
-                             (GHC.Types.[] @ v)
-                        GHC.Base.Just v2
-                        -> Data.OldList.deleteBy
-                             @ v
-                             (GHC.Classes.== @ v $dEq1)
-                             v1
-                             v2 } of v2 { DEFAULT ->
-                 Data.HashMap.Base.insert @ k @ [v] $dEq $dHashable k1 v2 m }) -}
-d68b96d3a795ddff744107e5b3f5f2f2
-  repeats :: GHC.Types.Int -> [a] -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a (w :: GHC.Types.Int) (w1 :: [a]) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Misc.$wrepeats @ a ww1 w1 }) -}
-2da5d0408e1571e3220bdd32be9b0093
-  safeHead ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> a
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: [a]) ->
-                 case eta1 of wild {
-                   [] -> Language.Fixpoint.Misc.safeHead1 @ a $dIP eta
-                   : x1 ds -> x1 }) -}
-ea85fde3181469a04fb76f2a1c0fbcdf
-  safeHead1 ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-4d2f5cc14cb142a1344cea7055f6535f
-  safeInit ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> [a]
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: Language.Fixpoint.Misc.ListNE a) ->
-                 case eta1 of wild {
-                   [] -> Language.Fixpoint.Misc.safeInit1 @ a $dIP eta
-                   : ds ds1 -> GHC.List.init1 @ a ds ds1 }) -}
-f4f68ca7e8c6996431e929b3272e3ae5
-  safeInit1 ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> [a]
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-4a44f33891f1da7e26b9b30a315f9f3a
-  safeLast ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> a
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: Language.Fixpoint.Misc.ListNE a) ->
-                 case eta1 of wild {
-                   [] -> Language.Fixpoint.Misc.safeLast2 @ a $dIP eta
-                   : ds ds1
-                   -> Language.Fixpoint.Misc.safeLast1
-                        @ a
-                        wild
-                        (GHC.List.lastError @ a) }) -}
-7d898ab330c699acfcbd70a9d108a48a
-  safeLast1 :: [a] -> a -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U> -}
-b9340c32e0036a1e269b6bc97fd704bd
-  safeLast2 ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-a0aea15e18c45d6dc603d7e6041ffdd5
-  safeLookup ::
-    (?callStack::GHC.Stack.Types.CallStack, GHC.Classes.Eq k,
-     Data.Hashable.Class.Hashable k) =>
-    GHC.Base.String -> k -> Data.HashMap.Base.HashMap k v -> v
-  {- Arity: 6,
-     Strictness: <L,1*U><L,U(C(C1(U)),A)><S(LC(S(S))),1*U(A,1*C1(U(U)))><L,1*U><S,U><S,1*U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   ($dEq :: GHC.Classes.Eq k)
-                   ($dHashable :: Data.Hashable.Class.Hashable k)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: k)
-                   (eta2 :: Data.HashMap.Base.HashMap k v) ->
-                 case Data.HashMap.Base.lookup
-                        @ k
-                        @ v
-                        $dEq
-                        $dHashable
-                        eta1
-                        eta2 of wild {
-                   GHC.Base.Nothing -> Language.Fixpoint.Misc.safeLookup1 @ v $dIP eta
-                   GHC.Base.Just v1 -> v1 }) -}
-966eb80f5f5c244ff8bda9d7cf5a6e16
-  safeLookup1 ::
-    ?callStack::GHC.Stack.Types.CallStack => GHC.Base.String -> v
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-213effb5c11705f76b66c8d0c5abcb83
-  safeUncons ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> (a, [a])
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: ?callStack::GHC.Stack.Types.CallStack)
-                   (w1 :: GHC.Base.String)
-                   (w2 :: Language.Fixpoint.Misc.ListNE a) ->
-                 case w2 of wild {
-                   [] -> Language.Fixpoint.Misc.safeUncons1 @ a w w1
-                   : x1 xs -> (x1, xs) }) -}
-d536555674c180fcae90f80cfba94ce9
-  safeUncons1 ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> (a, [a])
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-323a0d59aca7803dde542498e59f25c4
-  safeUnsnoc ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> Language.Fixpoint.Misc.ListNE a -> ([a], a)
-  {- Arity: 3, Strictness: <L,1*U><L,U><L,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: ?callStack::GHC.Stack.Types.CallStack)
-                   (w1 :: GHC.Base.String)
-                   (w2 :: Language.Fixpoint.Misc.ListNE a) ->
-                 case Language.Fixpoint.Misc.$wsafeUnsnoc
-                        @ a
-                        w
-                        w1
-                        w2 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-33dd33cc51555de204e6d814839a9d96
-  safeUnsnoc1 ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> (a, [a])
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-4b17163e981a092c47f7e5dc77154e16
-  safeZip ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> [a] -> [b] -> [(a, b)]
-  {- Arity: 4, Strictness: <L,1*U><L,U><S,U><S,U>,
-     Unfolding: (\ @ a
-                   @ b
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: [a])
-                   (eta2 :: [b]) ->
-                 case GHC.List.$wlenAcc @ a eta1 0# of ww2 { DEFAULT ->
-                 case GHC.List.$wlenAcc @ b eta2 0# of ww1 { DEFAULT ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww2 ww1) of wild {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Misc.safeZip1 @ a @ b eta ww1 ww2 $dIP
-                   GHC.Types.True -> GHC.List.zip @ a @ b eta1 eta2 } } }) -}
-d35f50ca994410635c151701f0e498d0
-  safeZip1 ::
-    GHC.Base.String
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ?callStack::GHC.Stack.Types.CallStack => [(a, b)]
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><L,U>x -}
-1225cc5ae810f67123944804614964ca
-  safeZipWith ::
-    ?callStack::GHC.Stack.Types.CallStack =>
-    GHC.Base.String -> (a -> b -> c) -> [a] -> [b] -> [c]
-  {- Arity: 5, Strictness: <L,1*U><L,U><L,C(C1(U))><S,U><S,U>,
-     Unfolding: (\ @ a
-                   @ b
-                   @ c
-                   ($dIP :: ?callStack::GHC.Stack.Types.CallStack)
-                   (eta :: GHC.Base.String)
-                   (eta1 :: a -> b -> c)
-                   (eta2 :: [a])
-                   (eta3 :: [b]) ->
-                 case GHC.List.$wlenAcc @ a eta2 0# of ww2 { DEFAULT ->
-                 case GHC.List.$wlenAcc @ b eta3 0# of ww1 { DEFAULT ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww2 ww1) of wild {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Misc.safeZipWith1 @ c eta ww1 ww2 $dIP
-                   GHC.Types.True
-                   -> GHC.List.zipWith @ a @ b @ c eta1 eta2 eta3 } } }) -}
-6b1a2947a389575b5ea06eaa38976762
-  safeZipWith1 ::
-    GHC.Base.String
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ?callStack::GHC.Stack.Types.CallStack => [c]
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><L,U>x -}
-5bd51524e54059148447181e3f40360e
-  secondM :: GHC.Base.Functor f => (b -> f c) -> (a, b) -> f (a, c)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,1*C1(U)><S,1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (f :: * -> *)
-                   @ b
-                   @ c
-                   @ a
-                   ($dFunctor :: GHC.Base.Functor f)
-                   (act :: b -> f c)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x1 y ->
-                 GHC.Base.fmap
-                   @ f
-                   $dFunctor
-                   @ c
-                   @ (a, c)
-                   (\ (ds1 :: c) -> (x1, ds1))
-                   (act y) }) -}
-fb0e8b84852ba3cc36a392c0b4418a22
-  singleton :: a -> [a]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (x1 :: a) -> GHC.Types.: @ a x1 (GHC.Types.[] @ a)) -}
-5eb2c283a7808b8ac7d306bc810e3392
-  snd3 :: (a, b, c) -> b
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b @ c (ds :: (a, b, c)) ->
-                 case ds of wild { (,,) ds1 x1 ds2 -> x1 }) -}
-642a4eda4245223ed5db9730a31eb8bf
-  sortNub :: GHC.Classes.Ord a => [a] -> [a]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,1*C(C1(U)),A,A,A,A,A,A)><S,1*U>,
-     Unfolding: (\ @ a ($dOrd :: GHC.Classes.Ord a) (eta :: [a]) ->
-                 let {
-                   $dEq :: GHC.Classes.Eq a = GHC.Classes.$p1Ord @ a $dOrd
-                 } in
-                 letrec {
-                   nubOrd :: [a] -> [a] {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ a
-                       : x1 t
-                       -> case t of wild1 {
-                            [] -> wild
-                            : y ds1
-                            -> case GHC.Classes.== @ a $dEq x1 y of wild2 {
-                                 GHC.Types.False -> GHC.Types.: @ a x1 (nubOrd wild1)
-                                 GHC.Types.True -> nubOrd wild1 } } }
-                 } in
-                 nubOrd (Data.OldList.sort @ a $dOrd eta)) -}
-bd1833694f7d5d2df8719c5c5ebfae7b
-  startPhase ::
-    Language.Fixpoint.Misc.Moods -> GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.startPhase1
-                  `cast`
-                (<Language.Fixpoint.Misc.Moods>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-20a1de5fa73610d44b40bdd3ac98ba12
-  startPhase1 ::
-    Language.Fixpoint.Misc.Moods
-    -> GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (c :: Language.Fixpoint.Misc.Moods)
-                   (msg :: GHC.Base.String)
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Misc.colorPhaseLn1
-                        c
-                        Language.Fixpoint.Misc.startPhase2
-                        msg
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 Language.Fixpoint.Misc.doneLine2 ipv }) -}
-a0b84a9f76aaf2e383c5af876cab67db
-  startPhase2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "START: "#) -}
-2d331628f3195f78f50fd7eb00dfbb6e
-  thd3 :: (a, b, c) -> c
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b @ c (ds :: (a, b, c)) ->
-                 case ds of wild { (,,) ds1 ds2 x1 -> x1 }) -}
-1e7f8286a92e0deca3003c2c4c3e94d1
-  traceShow :: GHC.Show.Show a => GHC.Base.String -> a -> a
-  {- Arity: 3, Strictness: <L,1*U(A,1*C1(U),A)><L,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (s :: GHC.Base.String)
-                   (x1 :: a) ->
-                 Debug.Trace.trace
-                   @ a
-                   (GHC.CString.unpackAppendCString#
-                      "\n\
-                      \Trace: ["#
-                      (GHC.Base.++
-                         @ GHC.Types.Char
-                         s
-                         (GHC.CString.unpackAppendCString#
-                            "] : "#
-                            (GHC.Show.show @ a $dShow x1))))
-                   x1) -}
-c3e388152c637865435def68336e9158
-  tshow :: GHC.Show.Show a => a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><L,U>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a (w :: GHC.Show.Show a) (w1 :: a) ->
-                 let {
-                   s :: GHC.Base.String = GHC.Show.show @ a w w1
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-79a3d54805208bb28a316c5050755a17
-  whenM :: GHC.Base.Monad m => m GHC.Types.Bool -> m () -> m ()
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLL),U(1*U,1*C1(C1(U)),A,A,A)><L,U><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: m GHC.Types.Bool)
-                   (eta1 :: m ()) ->
-                 let {
-                   $dApplicative :: GHC.Base.Applicative m
-                   = GHC.Base.$p1Monad @ m $dMonad
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ GHC.Types.Bool
-                   @ ()
-                   eta
-                   (\ (b :: GHC.Types.Bool) ->
-                    GHC.Base.when @ m $dApplicative b eta1)) -}
-8eba01b975469f2142bff3c94538b011
-  withColor ::
-    System.Console.ANSI.Common.Color
-    -> GHC.Types.IO () -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U><L,1*C1(U(U,A))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.colorPhaseLn2
-                  `cast`
-                (<System.Console.ANSI.Common.Color>_R
-                 ->_R <GHC.Types.IO ()>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-27fc97c6dab46486584ceaa08035eea1
-  wrap :: [a] -> [a] -> [a] -> [a]
-  {- Arity: 3, HasNoCafRefs, Strictness: <S,1*U><L,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a (l1 :: [a]) (r :: [a]) (s :: [a]) ->
-                 GHC.Base.augment
-                   @ a
-                   (\ @ b (c :: a -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                    GHC.Base.foldr @ a @ b c n l1)
-                   (GHC.Base.augment
-                      @ a
-                      (\ @ b (c :: a -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                       GHC.Base.foldr @ a @ b c n s)
-                      r)) -}
-34aea75c6a17cf9647d7b3520064f875
-  wrapStars :: GHC.Base.String -> GHC.Base.String
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Unfolding: (\ (msg :: GHC.Base.String) ->
-                 GHC.CString.unpackAppendCString#
-                   "\n\
-                   \**** "#
-                   (GHC.Base.++
-                      @ GHC.Types.Char
-                      msg
-                      (GHC.CString.unpackAppendCString#
-                         " "#
-                         (case GHC.List.$wlenAcc @ GHC.Types.Char msg 0# of ww2 { DEFAULT ->
-                          let {
-                            y :: GHC.Prim.Int# = GHC.Prim.-# 74# ww2
-                          } in
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<# 0# y) of wild {
-                            GHC.Types.False -> GHC.Types.[] @ GHC.Types.Char
-                            GHC.Types.True -> Language.Fixpoint.Misc.$wxs y } })))) -}
-6a7f20b21df12531f08981646ff1bf20
-  writeLoud :: GHC.Base.String -> GHC.Types.IO ()
-  {- Arity: 2, Strictness: <L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Misc.writeLoud1
-                  `cast`
-                (<GHC.Base.String>_R ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-a085078e74540c375f65f6adb5966bce
-  writeLoud1 ::
-    GHC.Base.String
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2, Strictness: <L,1*U><S,U>,
-     Unfolding: (\ (s :: GHC.Base.String)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case System.Console.CmdArgs.Verbosity.ref
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ System.Console.CmdArgs.Verbosity.Verbosity
-                        var#
-                        eta of ds { (#,#) ipv ipv1 ->
-                 case ipv1 of wild1 {
-                   DEFAULT -> (# ipv, GHC.Tuple.() #)
-                   System.Console.CmdArgs.Verbosity.Loud
-                   -> case GHC.IO.Handle.Text.hPutStr2
-                             GHC.IO.Handle.FD.stdout
-                             s
-                             GHC.Types.True
-                             ipv of ds1 { (#,#) ipv2 ipv3 ->
-                      GHC.IO.Handle.Internals.wantWritableHandle1
-                        @ ()
-                        GHC.IO.Handle.hFlush2
-                        GHC.IO.Handle.FD.stdout
-                        GHC.IO.Handle.Internals.flushWriteBuffer1
-                          `cast`
-                        (<GHC.IO.Handle.Types.Handle__>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                        ipv2 } } } }) -}
-179563de072577d02bfeb5d1665e4175
-  type (|->) a b = Data.HashMap.Base.HashMap a b
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Parse.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Parse.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Parse.dump-hi
+++ /dev/null
@@ -1,14657 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:44.572269 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Parse [family instance module] 8002
-  interface hash: 4923401f0ae750d1340b06a0d50115cf
-  ABI hash: 2a450e80a843d90f9712d4625da0e469
-  export-list hash: 098b7748d35df0bf70ee3f03113105cd
-  orphan hash: 100403202d2657532037550e24854ceb
-  flag hash: 19e1a6ff22e28889ceb15fd8e3413586
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Parse.addOperatorP
-  Language.Fixpoint.Parse.angles
-  Language.Fixpoint.Parse.bindP
-  Language.Fixpoint.Parse.blanks
-  Language.Fixpoint.Parse.braces
-  Language.Fixpoint.Parse.brackets
-  Language.Fixpoint.Parse.bvSortP
-  Language.Fixpoint.Parse.colon
-  Language.Fixpoint.Parse.comma
-  Language.Fixpoint.Parse.condIdP
-  Language.Fixpoint.Parse.constantP
-  Language.Fixpoint.Parse.dcolon
-  Language.Fixpoint.Parse.doParse'
-  Language.Fixpoint.Parse.expr0P
-  Language.Fixpoint.Parse.exprP
-  Language.Fixpoint.Parse.freshIntP
-  Language.Fixpoint.Parse.funAppP
-  Language.Fixpoint.Parse.infixIdP
-  Language.Fixpoint.Parse.initPState
-  Language.Fixpoint.Parse.integer
-  Language.Fixpoint.Parse.isSmall
-  Language.Fixpoint.Parse.lexer
-  Language.Fixpoint.Parse.locLowerIdP
-  Language.Fixpoint.Parse.locParserP
-  Language.Fixpoint.Parse.locUpperIdP
-  Language.Fixpoint.Parse.lowerIdP
-  Language.Fixpoint.Parse.pairP
-  Language.Fixpoint.Parse.parens
-  Language.Fixpoint.Parse.parseFromFile
-  Language.Fixpoint.Parse.predP
-  Language.Fixpoint.Parse.qualifierP
-  Language.Fixpoint.Parse.refBindP
-  Language.Fixpoint.Parse.refDefP
-  Language.Fixpoint.Parse.refP
-  Language.Fixpoint.Parse.refaP
-  Language.Fixpoint.Parse.remainderP
-  Language.Fixpoint.Parse.reserved
-  Language.Fixpoint.Parse.reservedOp
-  Language.Fixpoint.Parse.semi
-  Language.Fixpoint.Parse.sortP
-  Language.Fixpoint.Parse.symbolP
-  Language.Fixpoint.Parse.upperIdP
-  Language.Fixpoint.Parse.whiteSpace
-  Language.Fixpoint.Types.Constraints.mkQual
-  Language.Fixpoint.Parse.Fixity{Language.Fixpoint.Parse.FInfix Language.Fixpoint.Parse.FPostfix Language.Fixpoint.Parse.FPrefix fassoc fname fop1 fop2 fpred}
-  Language.Fixpoint.Parse.Inputable{Language.Fixpoint.Parse.rr Language.Fixpoint.Parse.rr'}
-  Language.Fixpoint.Parse.PState
-  Language.Fixpoint.Parse.Parser
-  Text.Parsec.Expr.Assoc{Text.Parsec.Expr.AssocLeft Text.Parsec.Expr.AssocNone Text.Parsec.Expr.AssocRight}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Bitvector Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Bitvector
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Char 01433d23661edb6e5ef1536ef1e6774c
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:GHC.Unicode a175ecf20bf1272d9ae31337e7da43ab
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  base-4.9.1.0:Text.Read 75c59863e882ebaec4532e9465e2ee9b
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  thd3 2d331628f3195f78f50fd7eb00dfbb6e
-  tshow c3e388152c637865435def68336e9158
-import  -/  Language.Fixpoint.Smt.Bitvector 3927029f6a24eaaa8227f68e4e4c25d3
-  exports: 0868d8bfb8153c2fe9269c7dde630de5
-  S32 241fe06a72a4d43ff3b52009900aba2d
-  S64 acfdfae730622c9de4f8e4051873113d
-  mkSort d70d1f3b9374944efd7ebcc18610c4d1
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  exports: c7b078aa1030bf306e2bdc4ea4060c3a
-  Assert 5ff5319bed1e970965e6815bbb5638d3
-  CheckSat e7bdaff0dc145a7796fafe6b1986504b
-  Command d954fc9c60b7cf5bf86d56c4438f43e0
-  Declare ff6650ed1338b6061d17d251def29d6a
-  Distinct 990e387022ab845990b97b443e6f755b
-  Pop 00298a45a8561f3e28fb9ba24d1afab0
-  Push f3140690ded9e35c309627152e4edd2c
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FI fecb67027c21bc9e81363103b09193b1
-  FIO ee3011cbfbf80f79537822f329acfc58
-  FInfo beb16efa76d83917c7875fd2371988e0
-  FInfoWithOpts 528e5765b1592890448e36f31279cea6
-  FixSolution 5b4735b3e3cc0ca65b03d3255d2f3f6c
-  KS 34a2e7fa08a7a88ae7f87de39d5be762
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  SubC ed16f1ec59060d74f74ea827928489f9
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-  WfC 50354839b899806bfddb7dd9a816596d
-  mkQual 1360e3ed9ce1dca20223228e4fbc568c
-  sid 9ba83f62143508c4ad59807c752d0be9
-  subC 66ae7d7e37980520d7e0dcfa324ee5e9
-  wfC 26932f3ec7b322e94102943b130adb27
-  wrft a33060451417dea7c01c64c3c2b14b8f
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  bindEnvFromList 89c34f20db94686b94cfff511336c8e5
-  emptyIBindEnv dae79859b3442c211473f5cded0c14f7
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  insertsIBindEnv 6cb2cd53df76aa50af651383f2197c38
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Crash 2d074087cde42a052498bc5853f5467d
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-  die a892c3bd643380084ab25f8b09c20b83
-  err a90e823f0e6047342911d3113f83b3d9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  LocSymbol 4a6c826b689fe9b6e8ce8f2d4ad897b2
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  headSym f93dcaf4fe3979d6e57ada71e23db9e1
-  symChars c771e2dddb18af0127beb2e9fa50af8c
-  symbol bad58e97c0b3a81e2dad9c913729970a
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  simplify ecd951a78e9ace8e149af33611de07c1
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Constant 4e3fb5c7982e36089ca1974dd9221f2e
-  Div c081e565493f3b4c4b21cbda7efd8210
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  EBot 1c465fa5309f4aa6428ce9121937fd05
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ESym b05e53b59eecfe2f6d7c4b864a39af90
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  Ge 090ffef01e6b7027605d9c5c3ba11e2b
-  Gt 46f38d575ced081820cbc83114259da1
-  I 2b5bcd0c22b34f3c17d4079b06873e92
-  KV 2bd79f32f511435671588cf9f790c91e
-  KVar 9a92033bfe21324e80629facb0f6357f
-  L b2f69dae8b637676011e67a80cf25f48
-  Le a16796536258ef4a204b5f1c568ba802
-  Lt 2ffd2f88be907134b968502d3bceced3
-  Minus e5aa725375e9c124ec51c311dda6a736
-  Mod ba2fa943923b8dfa2f9877e04051a80c
-  Ne d9e179105ea1c2a757f64a892666f7a4
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  PTrue 5df77d7a117ac1937594998bc4175838
-  Plus bbd2e3bc0197bce5d377fe80a31b6af3
-  R d3ae796e8a0662c198a87ccf6622d11a
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SL 5b44fb7a00d7cbf38cc95b22098f192e
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  SymConst 2d8cc80e963ce7fc658d82e1df676d25
-  Times 91e0345547959925f74a1cb777a9b1dc
-  Ueq 6474df993ebe4d0afd93678b01fc0b4a
-  Une 06e922abb8f842f615f811f63750444d
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  mkEApp 4dd116593cb64a347e878f48b4428706
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  pGAnd ec5f698c28de5cd841bc07051c5204e5
-  pGAnds db77a0a8995aacd32ac175ac6128e375
-  pIte 4d018ca77718e70365f90a2913fd322b
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FObj 1861a52598ccbeb2eef48dfcc16b53b2
-  FTycon 402c177fc699f05dd97dbf4130d9008b
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  boolFTyCon 92013a835882e58fc8cef59c65c8ea2c
-  fApp 5c63b19014800e99d08dfb68a2254686
-  fAppTC 22827646c1f645ee866f65ee56f30fcc
-  intFTyCon d9966971dce7264f0aff1a7d0a9a289a
-  listFTyCon bb6bdf8d1cf9f6c4480304436c015a14
-  mkFFunc 30116a200ae299e51d495025e136b48f
-  numFTyCon 1073a950279f070dd409d54acc46a6da
-  realFTyCon 1c1981a95bcafb42e8fdd18f4da80892
-  strFTyCon 32e95024d73de5e6bbeff8517e4ecbb3
-  symbolFTycon 2016d9cf7aad07819194e6b6c1769258
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  Loc e32f649122fc8963b556302038c6ca92
-  Located 3326b791adf9e0911edd64707c0fed2a
-  SS 0b969b36fbbffcb664c45ed3cb72e84a
-  SrcSpan 78175b19733acaa6a468bb3dc2117709
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State 749dca8ca0e6625b32091d445bd92b01
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Class 6d31234b0a911b56412061943d18b89e
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec b63ffbcfd32da83683c00215f9c65dae
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Char d53119cfb6cc359f4e0f9ede64e0f78f
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Combinator 66f1086aa7a42f6659ea2da2b481ca67
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Error ce2217365701a41a4565dbdaf79d63d9
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Expr b6cba784a2474a5c34c526091ea7a3da
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Pos 722d2dd11f7d41778d1cb0c7e9424b8c
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Prim 09b8e7124f6cf9e8a58a20d480bbf894
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Token 5cde724d669ad19bd7a72e94fb706454
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.State.Lazy 371607e50dde46b5f4103b3ab334a497
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-b49d08c6ac9ad9e321688e319030b652
-  $dmrr ::
-    Language.Fixpoint.Parse.Inputable a => GHC.Base.String -> a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LC(S)),1*U(A,1*C1(U))>,
-     Unfolding: InlineRule (0, True, False)
-                (\ @ a ($dInputable :: Language.Fixpoint.Parse.Inputable a) ->
-                 Language.Fixpoint.Parse.rr'
-                   @ a
-                   $dInputable
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-9698d29cf4585aaf10c8f2a84565ee6c
-  $dmrr' ::
-    Language.Fixpoint.Parse.Inputable a =>
-    GHC.Base.String -> GHC.Base.String -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(SL),1*U(1*U,A)><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a
-                   ($dInputable :: Language.Fixpoint.Parse.Inputable a)
-                   (ds :: GHC.Base.String) ->
-                 Language.Fixpoint.Parse.rr @ a $dInputable) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fGenericDef ::
-    GHC.Generics.Generic (Language.Fixpoint.Parse.Def a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Parse.Def a)
-                  (Language.Fixpoint.Parse.$fGenericDef_$cfrom @ a)
-                  (Language.Fixpoint.Parse.$fGenericDef_$cto @ a) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fGenericDef1 ::
-    Language.Fixpoint.Parse.Def a
-    -> (GHC.Generics.:+:)
-         ((GHC.Generics.M1
-             GHC.Generics.C
-             ('GHC.Generics.MetaCons
-                "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-             (GHC.Generics.M1
-                GHC.Generics.S
-                ('GHC.Generics.MetaSel
-                   'GHC.Base.Nothing
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedStrict)
-                (GHC.Generics.K1
-                   GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-           GHC.Generics.:+: GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)))
-          GHC.Generics.:+: (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      (Language.Fixpoint.Types.Constraints.WfC a)))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Con"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Names.Symbol)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)))))
-         ((GHC.Generics.M1
-             GHC.Generics.C
-             ('GHC.Generics.MetaCons
-                "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-             (GHC.Generics.M1
-                GHC.Generics.S
-                ('GHC.Generics.MetaSel
-                   'GHC.Base.Nothing
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedStrict)
-                (GHC.Generics.K1
-                   GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-              GHC.Generics.:*: GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-           GHC.Generics.:+: (GHC.Generics.M1
-                               GHC.Generics.C
-                               ('GHC.Generics.MetaCons
-                                  "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R Language.Fixpoint.Types.Constraints.Qualifier))
-                             GHC.Generics.:+: GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Refinements.KVar))))
-          GHC.Generics.:+: (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Refinements.SortedReft)))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Opt"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Base.String)))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a @ x8 (x9 :: Language.Fixpoint.Parse.Def a) ->
-                 case x9 of wild {
-                   Language.Fixpoint.Parse.Srt g1
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Con"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x8
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)))
-                              @ x8
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Language.Fixpoint.Types.Sorts.Sort>_R
-                                             <x8>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.Sort)>_R)) <x8>_N))))
-                   Language.Fixpoint.Parse.Axm g1
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Con"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)))
-                              @ x8
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                                             <x8>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Refinements.Expr)>_R)) <x8>_N))))
-                   Language.Fixpoint.Parse.Cst g1
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Con"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x8
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.SubC a))))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.WfC a)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Con" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x8
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Language.Fixpoint.Types.Constraints.SubC a>_R
-                                             <x8>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC
-                                                        a)>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.SubC
-                                                           a))>_R)) <x8>_N))))
-                   Language.Fixpoint.Parse.Wfc g1
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Con"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.SubC a))))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.WfC a)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Con" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x8
-                              (GHC.Generics.L1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Language.Fixpoint.Types.Constraints.WfC a))))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Con" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Sorts.Sort)))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Constraints.WfC a>_R
-                                                <x8>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "Wfc"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           (Language.Fixpoint.Types.Constraints.WfC
-                                                              a))>_R)) <x8>_N)))))
-                   Language.Fixpoint.Parse.Con g1 g2
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R (Language.Fixpoint.Types.Constraints.SubC a)))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Constraints.WfC
-                                                           a)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Con"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.SubC a))))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (Language.Fixpoint.Types.Constraints.WfC a)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Con" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x8
-                              (GHC.Generics.R1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Language.Fixpoint.Types.Constraints.WfC a))))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Con" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Sorts.Sort)))
-                                 @ x8
-                                 (GHC.Generics.:*:
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                    @ x8
-                                    g1
-                                      `cast`
-                                    (Trans
-                                         (Sym (GHC.Generics.N:K1[0]
-                                                   <GHC.Generics.R>_P
-                                                   <Language.Fixpoint.Types.Names.Symbol>_R
-                                                   <x8>_P))
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.S>_P
-                                                   <'GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict>_P
-                                                   <GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Names.Symbol>_R) <x8>_N))
-                                    g2
-                                      `cast`
-                                    (Trans
-                                         (Sym (GHC.Generics.N:K1[0]
-                                                   <GHC.Generics.R>_P
-                                                   <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                   <x8>_P))
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.S>_P
-                                                   <'GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict>_P
-                                                   <GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Sorts.Sort>_R) <x8>_N)))
-                                   `cast`
-                                 (Sym (GHC.Generics.N:M1[0]
-                                           <GHC.Generics.C>_P
-                                           <'GHC.Generics.MetaCons
-                                              "Con" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                           <GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Language.Fixpoint.Types.Names.Symbol)
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.Sort)>_R) <x8>_N))))
-                   Language.Fixpoint.Parse.Dis g1 g2
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Constraints.Qualifier))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Refinements.KVar)))
-                              @ x8
-                              (GHC.Generics.:*:
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Names.Symbol>_R
-                                                <x8>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Names.Symbol>_R) <x8>_N))
-                                 g2
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                <x8>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.Sort>_R) <x8>_N)))
-                                `cast`
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Sorts.Sort)>_R) <x8>_N)))
-                   Language.Fixpoint.Parse.Qul g1
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Constraints.Qualifier))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Refinements.KVar)))
-                              @ x8
-                              (GHC.Generics.L1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.Qualifier)))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Refinements.KVar)))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                                                <x8>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "Qul"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Constraints.Qualifier)>_R)) <x8>_N)))))
-                   Language.Fixpoint.Parse.Kut g1
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Constraints.Qualifier))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Refinements.KVar)))
-                              @ x8
-                              (GHC.Generics.R1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.Qualifier)))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Kut" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Refinements.KVar)))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Refinements.KVar>_R
-                                                <x8>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Refinements.KVar>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "Kut"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Refinements.KVar)>_R)) <x8>_N)))))
-                   Language.Fixpoint.Parse.Pack g1 dt
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedUnpack)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Types.Int)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Names.Symbol)
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            Language.Fixpoint.Types.Refinements.SortedReft)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Opt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Base.String)))
-                              @ x8
-                              (GHC.Generics.:*:
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Refinements.KVar>_R
-                                                <x8>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Refinements.KVar>_R) <x8>_N))
-                                 (GHC.Types.I# dt)
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P <GHC.Types.Int>_R <x8>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R GHC.Types.Int>_R) <x8>_N)))
-                                `cast`
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Refinements.KVar)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               GHC.Types.Int)>_R) <x8>_N)))
-                   Language.Fixpoint.Parse.IBind dt g2 g3
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedUnpack)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Types.Int)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Names.Symbol)
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            Language.Fixpoint.Types.Refinements.SortedReft)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Opt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Base.String)))
-                              @ x8
-                              (GHC.Generics.L1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack)
-                                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                       GHC.Generics.:*: (GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Language.Fixpoint.Types.Names.Symbol)
-                                                         GHC.Generics.:*: GHC.Generics.M1
-                                                                            GHC.Generics.S
-                                                                            ('GHC.Generics.MetaSel
-                                                                               'GHC.Base.Nothing
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.K1
-                                                                               GHC.Generics.R
-                                                                               Language.Fixpoint.Types.Refinements.SortedReft))))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Opt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                                 @ x8
-                                 (GHC.Generics.:*:
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack)
-                                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Refinements.SortedReft))
-                                    @ x8
-                                    (GHC.Types.I# dt)
-                                      `cast`
-                                    (Trans
-                                         (Sym (GHC.Generics.N:K1[0]
-                                                   <GHC.Generics.R>_P <GHC.Types.Int>_R <x8>_P))
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.S>_P
-                                                   <'GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack>_P
-                                                   <GHC.Generics.K1
-                                                      GHC.Generics.R GHC.Types.Int>_R) <x8>_N))
-                                    (GHC.Generics.:*:
-                                       @ (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                                       @ (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Refinements.SortedReft))
-                                       @ x8
-                                       g2
-                                         `cast`
-                                       (Trans
-                                            (Sym (GHC.Generics.N:K1[0]
-                                                      <GHC.Generics.R>_P
-                                                      <Language.Fixpoint.Types.Names.Symbol>_R
-                                                      <x8>_P))
-                                            (Sym (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Names.Symbol>_R) <x8>_N))
-                                       g3
-                                         `cast`
-                                       (Trans
-                                            (Sym (GHC.Generics.N:K1[0]
-                                                      <GHC.Generics.R>_P
-                                                      <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                                      <x8>_P))
-                                            (Sym (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Refinements.SortedReft>_R) <x8>_N))))
-                                   `cast`
-                                 (Sym (GHC.Generics.N:M1[0]
-                                           <GHC.Generics.C>_P
-                                           <'GHC.Generics.MetaCons
-                                              "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                           <GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedUnpack)
-                                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.SourceStrict
-                                                                   'GHC.Generics.DecidedStrict)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R
-                                                                   Language.Fixpoint.Types.Names.Symbol)
-                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                 GHC.Generics.S
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    'GHC.Base.Nothing
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.SourceStrict
-                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                 (GHC.Generics.K1
-                                                                                    GHC.Generics.R
-                                                                                    Language.Fixpoint.Types.Refinements.SortedReft))>_R) <x8>_N))))
-                   Language.Fixpoint.Parse.Opt g1
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Constraints.SubC a)))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Wfc"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                                          a)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Con"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Constraints.Qualifier))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Kut"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedUnpack)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Int))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "IBind"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R GHC.Types.Int)
-                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                      GHC.Generics.S
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                      (GHC.Generics.K1
-                                                                                         GHC.Generics.R
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                       GHC.Generics.S
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.SourceStrict
-                                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                                       (GHC.Generics.K1
-                                                                                                          GHC.Generics.R
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "Opt"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Base.String)))))
-                        @ x8
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Constraints.Qualifier))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Kut"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.KVar))))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                                       GHC.Generics.S
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.K1
-                                                                          GHC.Generics.R
-                                                                          Language.Fixpoint.Types.Names.Symbol)
-                                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                                        GHC.Generics.S
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.K1
-                                                                                           GHC.Generics.R
-                                                                                           Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Opt"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         GHC.Base.String))))
-                           @ x8
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedUnpack)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Types.Int)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Names.Symbol)
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            Language.Fixpoint.Types.Refinements.SortedReft)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "Opt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Base.String)))
-                              @ x8
-                              (GHC.Generics.R1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack)
-                                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                       GHC.Generics.:*: (GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Language.Fixpoint.Types.Names.Symbol)
-                                                         GHC.Generics.:*: GHC.Generics.M1
-                                                                            GHC.Generics.S
-                                                                            ('GHC.Generics.MetaSel
-                                                                               'GHC.Base.Nothing
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.K1
-                                                                               GHC.Generics.R
-                                                                               Language.Fixpoint.Types.Refinements.SortedReft))))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "Opt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                                 @ x8
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P <GHC.Base.String>_R <x8>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R GHC.Base.String>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "Opt"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           GHC.Base.String)>_R)) <x8>_N))))) }) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fGenericDef_$cfrom ::
-    Language.Fixpoint.Parse.Def a
-    -> GHC.Generics.Rep (Language.Fixpoint.Parse.Def a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fGenericDef1
-                  `cast`
-                (forall (a :: <*>_N) (x8 :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Parse.Def a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Def"
-                                       "Language.Fixpoint.Parse"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <((GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                       GHC.Generics.:+: GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Axm"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Refinements.Expr)))
-                                      GHC.Generics.:+: (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Cst"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                (Language.Fixpoint.Types.Constraints.SubC
-                                                                   a)))
-                                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                                            GHC.Generics.C
-                                                                            ('GHC.Generics.MetaCons
-                                                                               "Wfc"
-                                                                               'GHC.Generics.PrefixI
-                                                                               'GHC.Types.False)
-                                                                            (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  'GHC.Base.Nothing
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  (Language.Fixpoint.Types.Constraints.WfC
-                                                                                     a)))
-                                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                                             GHC.Generics.C
-                                                                                             ('GHC.Generics.MetaCons
-                                                                                                "Con"
-                                                                                                'GHC.Generics.PrefixI
-                                                                                                'GHC.Types.False)
-                                                                                             (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   'GHC.Base.Nothing
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   Language.Fixpoint.Types.Names.Symbol)
-                                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                 GHC.Generics.S
-                                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                                    'GHC.Base.Nothing
-                                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                                 (GHC.Generics.K1
-                                                                                                                    GHC.Generics.R
-                                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                                     GHC.Generics.:+: ((GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Dis"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Names.Symbol)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                                            GHC.Generics.C
-                                                                            ('GHC.Generics.MetaCons
-                                                                               "Qul"
-                                                                               'GHC.Generics.PrefixI
-                                                                               'GHC.Types.False)
-                                                                            (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  'GHC.Base.Nothing
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  Language.Fixpoint.Types.Constraints.Qualifier))
-                                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                                             GHC.Generics.C
-                                                                                             ('GHC.Generics.MetaCons
-                                                                                                "Kut"
-                                                                                                'GHC.Generics.PrefixI
-                                                                                                'GHC.Types.False)
-                                                                                             (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   'GHC.Base.Nothing
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   Language.Fixpoint.Types.Refinements.KVar))))
-                                                       GHC.Generics.:+: (GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "Pack"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Refinements.KVar)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  'GHC.Base.Nothing
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  GHC.Types.Int))
-                                                                         GHC.Generics.:+: (GHC.Generics.M1
-                                                                                             GHC.Generics.C
-                                                                                             ('GHC.Generics.MetaCons
-                                                                                                "IBind"
-                                                                                                'GHC.Generics.PrefixI
-                                                                                                'GHC.Types.False)
-                                                                                             (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   'GHC.Base.Nothing
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedUnpack)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   GHC.Types.Int)
-                                                                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     'GHC.Base.Nothing
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.SourceStrict
-                                                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     Language.Fixpoint.Types.Names.Symbol)
-                                                                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                                   GHC.Generics.S
-                                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                                      'GHC.Base.Nothing
-                                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                      'GHC.Generics.SourceStrict
-                                                                                                                                      'GHC.Generics.DecidedStrict)
-                                                                                                                                   (GHC.Generics.K1
-                                                                                                                                      GHC.Generics.R
-                                                                                                                                      Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                                                           GHC.Generics.:+: GHC.Generics.M1
-                                                                                                              GHC.Generics.C
-                                                                                                              ('GHC.Generics.MetaCons
-                                                                                                                 "Opt"
-                                                                                                                 'GHC.Generics.PrefixI
-                                                                                                                 'GHC.Types.False)
-                                                                                                              (GHC.Generics.M1
-                                                                                                                 GHC.Generics.S
-                                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                                    'GHC.Base.Nothing
-                                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                                 (GHC.Generics.K1
-                                                                                                                    GHC.Generics.R
-                                                                                                                    GHC.Base.String)))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Parse.Rep_Def[0] <a>_N))) <x8>_N) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fGenericDef_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Parse.Def a) x
-    -> Language.Fixpoint.Parse.Def a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x8
-                   (ds :: GHC.Generics.Rep (Language.Fixpoint.Parse.Def a) x8) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Parse.Rep_Def[0] <a>_N))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Def"
-                                   "Language.Fixpoint.Parse"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <((GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                   GHC.Generics.:+: GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "Axm"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      (GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Refinements.Expr)))
-                                  GHC.Generics.:+: (GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "Cst"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      (GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            (Language.Fixpoint.Types.Constraints.SubC
-                                                               a)))
-                                                    GHC.Generics.:+: (GHC.Generics.M1
-                                                                        GHC.Generics.C
-                                                                        ('GHC.Generics.MetaCons
-                                                                           "Wfc"
-                                                                           'GHC.Generics.PrefixI
-                                                                           'GHC.Types.False)
-                                                                        (GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              'GHC.Base.Nothing
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              (Language.Fixpoint.Types.Constraints.WfC
-                                                                                 a)))
-                                                                      GHC.Generics.:+: GHC.Generics.M1
-                                                                                         GHC.Generics.C
-                                                                                         ('GHC.Generics.MetaCons
-                                                                                            "Con"
-                                                                                            'GHC.Generics.PrefixI
-                                                                                            'GHC.Types.False)
-                                                                                         (GHC.Generics.M1
-                                                                                            GHC.Generics.S
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               'GHC.Base.Nothing
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.SourceStrict
-                                                                                               'GHC.Generics.DecidedStrict)
-                                                                                            (GHC.Generics.K1
-                                                                                               GHC.Generics.R
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-                                                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                                                             GHC.Generics.S
-                                                                                                             ('GHC.Generics.MetaSel
-                                                                                                                'GHC.Base.Nothing
-                                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                                'GHC.Generics.SourceStrict
-                                                                                                                'GHC.Generics.DecidedStrict)
-                                                                                                             (GHC.Generics.K1
-                                                                                                                GHC.Generics.R
-                                                                                                                Language.Fixpoint.Types.Sorts.Sort)))))
-                                 GHC.Generics.:+: ((GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "Dis"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      (GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Names.Symbol)
-                                                       GHC.Generics.:*: GHC.Generics.M1
-                                                                          GHC.Generics.S
-                                                                          ('GHC.Generics.MetaSel
-                                                                             'GHC.Base.Nothing
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedStrict)
-                                                                          (GHC.Generics.K1
-                                                                             GHC.Generics.R
-                                                                             Language.Fixpoint.Types.Sorts.Sort))
-                                                    GHC.Generics.:+: (GHC.Generics.M1
-                                                                        GHC.Generics.C
-                                                                        ('GHC.Generics.MetaCons
-                                                                           "Qul"
-                                                                           'GHC.Generics.PrefixI
-                                                                           'GHC.Types.False)
-                                                                        (GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              'GHC.Base.Nothing
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Language.Fixpoint.Types.Constraints.Qualifier))
-                                                                      GHC.Generics.:+: GHC.Generics.M1
-                                                                                         GHC.Generics.C
-                                                                                         ('GHC.Generics.MetaCons
-                                                                                            "Kut"
-                                                                                            'GHC.Generics.PrefixI
-                                                                                            'GHC.Types.False)
-                                                                                         (GHC.Generics.M1
-                                                                                            GHC.Generics.S
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               'GHC.Base.Nothing
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.SourceStrict
-                                                                                               'GHC.Generics.DecidedStrict)
-                                                                                            (GHC.Generics.K1
-                                                                                               GHC.Generics.R
-                                                                                               Language.Fixpoint.Types.Refinements.KVar))))
-                                                   GHC.Generics.:+: (GHC.Generics.M1
-                                                                       GHC.Generics.C
-                                                                       ('GHC.Generics.MetaCons
-                                                                          "Pack"
-                                                                          'GHC.Generics.PrefixI
-                                                                          'GHC.Types.False)
-                                                                       (GHC.Generics.M1
-                                                                          GHC.Generics.S
-                                                                          ('GHC.Generics.MetaSel
-                                                                             'GHC.Base.Nothing
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedStrict)
-                                                                          (GHC.Generics.K1
-                                                                             GHC.Generics.R
-                                                                             Language.Fixpoint.Types.Refinements.KVar)
-                                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                                           GHC.Generics.S
-                                                                                           ('GHC.Generics.MetaSel
-                                                                                              'GHC.Base.Nothing
-                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                              'GHC.Generics.SourceStrict
-                                                                                              'GHC.Generics.DecidedUnpack)
-                                                                                           (GHC.Generics.K1
-                                                                                              GHC.Generics.R
-                                                                                              GHC.Types.Int))
-                                                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                                                         GHC.Generics.C
-                                                                                         ('GHC.Generics.MetaCons
-                                                                                            "IBind"
-                                                                                            'GHC.Generics.PrefixI
-                                                                                            'GHC.Types.False)
-                                                                                         (GHC.Generics.M1
-                                                                                            GHC.Generics.S
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               'GHC.Base.Nothing
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.SourceStrict
-                                                                                               'GHC.Generics.DecidedUnpack)
-                                                                                            (GHC.Generics.K1
-                                                                                               GHC.Generics.R
-                                                                                               GHC.Types.Int)
-                                                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                              GHC.Generics.S
-                                                                                                              ('GHC.Generics.MetaSel
-                                                                                                                 'GHC.Base.Nothing
-                                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                                              (GHC.Generics.K1
-                                                                                                                 GHC.Generics.R
-                                                                                                                 Language.Fixpoint.Types.Names.Symbol)
-                                                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                               GHC.Generics.S
-                                                                                                                               ('GHC.Generics.MetaSel
-                                                                                                                                  'GHC.Base.Nothing
-                                                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                                                  'GHC.Generics.DecidedStrict)
-                                                                                                                               (GHC.Generics.K1
-                                                                                                                                  GHC.Generics.R
-                                                                                                                                  Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                                                          GHC.Generics.C
-                                                                                                          ('GHC.Generics.MetaCons
-                                                                                                             "Opt"
-                                                                                                             'GHC.Generics.PrefixI
-                                                                                                             'GHC.Types.False)
-                                                                                                          (GHC.Generics.M1
-                                                                                                             GHC.Generics.S
-                                                                                                             ('GHC.Generics.MetaSel
-                                                                                                                'GHC.Base.Nothing
-                                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                                'GHC.Generics.SourceStrict
-                                                                                                                'GHC.Generics.DecidedStrict)
-                                                                                                             (GHC.Generics.K1
-                                                                                                                GHC.Generics.R
-                                                                                                                GHC.Base.String)))))>_R) <x8>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> Language.Fixpoint.Parse.$WSrt
-                                  @ a
-                                  ds3
-                                    `cast`
-                                  (Trans
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.C>_P
-                                                 <'GHC.Generics.MetaCons
-                                                    "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                 <GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)>_R)
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort>_R) <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x8>_P))
-                             GHC.Generics.R1 ds3
-                             -> Language.Fixpoint.Parse.$WAxm
-                                  @ a
-                                  ds3
-                                    `cast`
-                                  (Trans
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.C>_P
-                                                 <'GHC.Generics.MetaCons
-                                                    "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                 <GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr)>_R)
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Refinements.Expr>_R) <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Refinements.Expr>_R
-                                            <x8>_P)) }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> Language.Fixpoint.Parse.$WCst
-                                  @ a
-                                  ds3
-                                    `cast`
-                                  (Trans
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.C>_P
-                                                 <'GHC.Generics.MetaCons
-                                                    "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                 <GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       (Language.Fixpoint.Types.Constraints.SubC
-                                                          a))>_R)
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Language.Fixpoint.Types.Constraints.SubC
-                                                       a)>_R) <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Constraints.SubC a>_R
-                                            <x8>_P))
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of wild3 {
-                                  GHC.Generics.L1 ds4
-                                  -> Language.Fixpoint.Parse.$WWfc
-                                       @ a
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "Wfc"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            (Language.Fixpoint.Types.Constraints.WfC
-                                                               a))>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Language.Fixpoint.Types.Constraints.WfC
-                                                            a)>_R) <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Constraints.WfC a>_R
-                                                 <x8>_P))
-                                  GHC.Generics.R1 ds4
-                                  -> case ds4
-                                            `cast`
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Con" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Names.Symbol)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)>_R <x8>_N) of wild4 { GHC.Generics.:*: ds5 ds6 ->
-                                     Language.Fixpoint.Parse.$WCon
-                                       @ a
-                                       ds5
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Names.Symbol>_R <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Names.Symbol>_R
-                                                 <x8>_P))
-                                       ds6
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort>_R <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                 <x8>_P)) } } } }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> case ds3
-                                       `cast`
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)>_R <x8>_N) of wild3 { GHC.Generics.:*: ds4 ds5 ->
-                                Language.Fixpoint.Parse.$WDis
-                                  @ a
-                                  ds4
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol>_R <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Names.Symbol>_R
-                                            <x8>_P))
-                                  ds5
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Sorts.Sort>_R <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x8>_P)) }
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of wild3 {
-                                  GHC.Generics.L1 ds4
-                                  -> Language.Fixpoint.Parse.$WQul
-                                       @ a
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "Qul"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Constraints.Qualifier)>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Constraints.Qualifier>_R) <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                                                 <x8>_P))
-                                  GHC.Generics.R1 ds4
-                                  -> Language.Fixpoint.Parse.$WKut
-                                       @ a
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "Kut"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Refinements.KVar)>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Refinements.KVar>_R) <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Refinements.KVar>_R
-                                                 <x8>_P)) } }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> case ds3
-                                       `cast`
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Refinements.KVar)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedUnpack)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 GHC.Types.Int)>_R <x8>_N) of wild3 { GHC.Generics.:*: ds4 ds5 ->
-                                Language.Fixpoint.Parse.$WPack
-                                  @ a
-                                  ds4
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Refinements.KVar>_R <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Refinements.KVar>_R
-                                            <x8>_P))
-                                  ds5
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedUnpack>_P
-                                            <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x8>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P <GHC.Types.Int>_R <x8>_P)) }
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of wild3 {
-                                  GHC.Generics.L1 ds4
-                                  -> case ds4
-                                            `cast`
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "IBind" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Names.Symbol)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Refinements.SortedReft))>_R <x8>_N) of wild4 { GHC.Generics.:*: ds5 ds6 ->
-                                     case ds6 of wild5 { GHC.Generics.:*: ds7 ds8 ->
-                                     Language.Fixpoint.Parse.$WIBind
-                                       @ a
-                                       ds5
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedUnpack>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Types.Int>_R <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P <GHC.Types.Int>_R <x8>_P))
-                                       ds7
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Names.Symbol>_R <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Names.Symbol>_R
-                                                 <x8>_P))
-                                       ds8
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Refinements.SortedReft>_R <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                                 <x8>_P)) } }
-                                  GHC.Generics.R1 ds4
-                                  -> Language.Fixpoint.Parse.$WOpt
-                                       @ a
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "Opt"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R GHC.Base.String)>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R GHC.Base.String>_R) <x8>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <GHC.Base.String>_R
-                                                 <x8>_P)) } } } }) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputable(,) ::
-    Language.Fixpoint.Parse.Inputable
-      (Language.Fixpoint.Types.Errors.FixResult GHC.Integer.Type.Integer,
-       Language.Fixpoint.Types.Constraints.FixSolution)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Errors.FixResult
-                       GHC.Integer.Type.Integer,
-                     Language.Fixpoint.Types.Constraints.FixSolution)
-                  Language.Fixpoint.Parse.$fInputable(,)_$crr
-                  Language.Fixpoint.Parse.$fInputable(,)_$crr' -}
-4a8b984b3687992b60f349cd2ece8dc6
-  $fInputable(,)1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((Language.Fixpoint.Types.Errors.FixResult
-           GHC.Integer.Type.Integer,
-         Data.HashMap.Base.HashMap
-           Language.Fixpoint.Types.Refinements.KVar
-           Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((Language.Fixpoint.Types.Errors.FixResult
-           GHC.Integer.Type.Integer,
-         Data.HashMap.Base.HashMap
-           Language.Fixpoint.Types.Refinements.KVar
-           Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Unfolding: (Text.Parsec.Prim.$fAlternativeParsecT2
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   @ (Language.Fixpoint.Types.Errors.FixResult
-                        GHC.Integer.Type.Integer,
-                      Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.$fInputable(,)7
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar
-                                Language.Fixpoint.Types.Refinements.Expr
-                              -> (Language.Fixpoint.Types.Errors.FixResult
-                                    GHC.Integer.Type.Integer,
-                                  Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Refinements.KVar
-                                    Language.Fixpoint.Types.Refinements.Expr)>_R))
-                   Language.Fixpoint.Parse.$fInputable(,)2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar
-                                Language.Fixpoint.Types.Refinements.Expr>_R))) -}
-eedaad60119a781955bf1e658ac8e083
-  $fInputable(,)10 :: GHC.Integer.Type.Integer
-  {- Strictness: x -}
-a9a9450fae965719c71f72947522d283
-  $fInputable(,)11 :: GHC.Integer.Type.Integer
-  {- Strictness: x -}
-4eb3b45638d3fa2ac778d1aa08e1654f
-  $fInputable(,)12 ::
-    Text.ParserCombinators.ReadP.P GHC.Integer.Type.Integer
-  {- Unfolding: (GHC.Read.$fReadInteger3
-                   GHC.Read.$fReadInteger_$sconvertInt
-                   Text.ParserCombinators.ReadPrec.minPrec
-                   @ GHC.Integer.Type.Integer
-                   (Text.Read.readEither5 @ GHC.Integer.Type.Integer)) -}
-0e2e5d823d9aaa3363ecbc036cc11101
-  $fInputable(,)13 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (()
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (()
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Unfolding: (Text.Parsec.Char.spaces1
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)) -}
-febc670b9a57b8543a23a333173393db
-  $fInputable(,)14 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((() -> [GHC.Types.Char])
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((() -> [GHC.Types.Char])
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Unfolding: (\ @ b1
-                   (s5 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                   (cok :: (() -> [GHC.Types.Char])
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot]
-                   (eok :: (() -> [GHC.Types.Char])
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot] ->
-                 Text.Parsec.Combinator.$wmany1
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   @ GHC.Integer.Type.Integer
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.$fInputable(,)15
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   @ b1
-                   s5
-                   (\ (x8 :: [GHC.Types.Char]) -> cok (\ (ds :: ()) -> x8))
-                   cerr
-                   (\ (x8 :: [GHC.Types.Char]) -> eok (\ (ds :: ()) -> x8))
-                   eerr) -}
-812ae481d32420ef04e827e58499a069
-  $fInputable(,)15 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: (\ @ b
-                   (eta2 :: Text.Parsec.Prim.State
-                              GHC.Base.String GHC.Integer.Type.Integer)
-                   (eta3 :: GHC.Types.Char
-                            -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eta5 :: GHC.Types.Char
-                            -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Prim.<?>2
-                   @ GHC.Base.String
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.$fInputable(,)17
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   Language.Fixpoint.Parse.$fInputable(,)16
-                   @ b
-                   eta2
-                   eta3
-                   eta4
-                   eta5
-                   eta6) -}
-4a950819181b94026df1254d2027ba1b
-  $fInputable(,)16 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Text.Parsec.Char.digit2
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-cbdbe8fe9334ea19cea6dafb119e57a9
-  $fInputable(,)17 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Unfolding: (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)[OneShot]
-                   (w4 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)[OneShot]
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)[OneShot]
-                   (w6 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)[OneShot]
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)[OneShot] ->
-                 case w3 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   GHC.Unicode.isDigit
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w4
-                   w7 } }) -}
-394a85868c5302ac39329f6177cdd5d2
-  $fInputable(,)2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Data.HashMap.Base.HashMap
-          Language.Fixpoint.Types.Refinements.KVar
-          Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Data.HashMap.Base.HashMap
-          Language.Fixpoint.Types.Refinements.KVar
-          Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Language.Fixpoint.Parse.$w$crr' @ b1 w w3 w4 w5) -}
-869b3984080699494bef7f5cba1743e3
-  $fInputable(,)3 ::
-    [(Language.Fixpoint.Types.Refinements.KVar, v)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-bd7f9c148b9fc1b8397f131a527e6439
-  $fInputable(,)4 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: (Language.Fixpoint.Types.Refinements.KVar,
-                             Language.Fixpoint.Types.Refinements.Expr)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: (Language.Fixpoint.Types.Refinements.KVar,
-                             Language.Fixpoint.Types.Refinements.Expr)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Language.Fixpoint.Parse.$fInputable(,)_m1
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <[GHC.Types.Char]>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                      <()>_R)
-                   @ b1
-                   eta2
-                   (\ (x8 :: ())
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)
-                      (err :: Text.Parsec.Error.ParseError) ->
-                    Language.Fixpoint.Parse.$fInputable(,)5
-                      @ b1
-                      s5
-                      eta3
-                      eta4
-                      (\ (x9 :: (Language.Fixpoint.Types.Refinements.KVar,
-                                 Language.Fixpoint.Types.Refinements.Expr))
-                         (s6 :: Text.Parsec.Prim.State
-                                  [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                         (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                       eta3 x9 s6 (Text.Parsec.Error.mergeError err err'))
-                      (\ (err' :: Text.Parsec.Error.ParseError) ->
-                       eta4 (Text.Parsec.Error.mergeError err err')))
-                   eta4
-                   (\ (x8 :: ())
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)
-                      (err :: Text.Parsec.Error.ParseError) ->
-                    Language.Fixpoint.Parse.$fInputable(,)5
-                      @ b1
-                      s5
-                      eta3
-                      eta4
-                      (\ (x9 :: (Language.Fixpoint.Types.Refinements.KVar,
-                                 Language.Fixpoint.Types.Refinements.Expr))
-                         (s6 :: Text.Parsec.Prim.State
-                                  [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                         (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                       eta5 x9 s6 (Text.Parsec.Error.mergeError err err'))
-                      (\ (err' :: Text.Parsec.Error.ParseError) ->
-                       eta6 (Text.Parsec.Error.mergeError err err')))
-                   eta6) -}
-5f260cb3dbf3ee100e5f3a77dc0c99bd
-  $fInputable(,)5 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Refinements.Expr)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-7a7b8a772b5606b5f7cda28336c70b5c
-  $fInputable(,)6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "solution:"#) -}
-3109f8ab33f6127a314094388e131227
-  $fInputable(,)7 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((Data.HashMap.Base.HashMap
-           Language.Fixpoint.Types.Refinements.KVar
-           Language.Fixpoint.Types.Refinements.Expr
-         -> (Language.Fixpoint.Types.Errors.FixResult
-               GHC.Integer.Type.Integer,
-             Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               Language.Fixpoint.Types.Refinements.Expr))
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((Data.HashMap.Base.HashMap
-           Language.Fixpoint.Types.Refinements.KVar
-           Language.Fixpoint.Types.Refinements.Expr
-         -> (Language.Fixpoint.Types.Errors.FixResult
-               GHC.Integer.Type.Integer,
-             Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               Language.Fixpoint.Types.Refinements.Expr))
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5, Strictness: <L,U><L,C(U)><L,U><L,C(U)><L,U>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: (Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Refinements.KVar
-                               Language.Fixpoint.Types.Refinements.Expr
-                             -> (Language.Fixpoint.Types.Errors.FixResult
-                                   GHC.Integer.Type.Integer,
-                                 Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar
-                                   Language.Fixpoint.Types.Refinements.Expr))
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: (Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Refinements.KVar
-                               Language.Fixpoint.Types.Refinements.Expr
-                             -> (Language.Fixpoint.Types.Errors.FixResult
-                                   GHC.Integer.Type.Integer,
-                                 Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar
-                                   Language.Fixpoint.Types.Refinements.Expr))
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Language.Fixpoint.Parse.$fInputable(,)8
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <[GHC.Types.Char]>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                      <Language.Fixpoint.Types.Errors.FixResult
-                         GHC.Integer.Type.Integer>_R)
-                   @ b1
-                   eta2
-                   (\ (x8 :: Language.Fixpoint.Types.Errors.FixResult
-                               GHC.Integer.Type.Integer) ->
-                    eta3
-                      (GHC.Tuple.(,)
-                         @ (Language.Fixpoint.Types.Errors.FixResult
-                              GHC.Integer.Type.Integer)
-                         @ (Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Refinements.KVar
-                              Language.Fixpoint.Types.Refinements.Expr)
-                         x8))
-                   eta4
-                   (\ (x8 :: Language.Fixpoint.Types.Errors.FixResult
-                               GHC.Integer.Type.Integer) ->
-                    eta5
-                      (GHC.Tuple.(,)
-                         @ (Language.Fixpoint.Types.Errors.FixResult
-                              GHC.Integer.Type.Integer)
-                         @ (Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Refinements.KVar
-                              Language.Fixpoint.Types.Refinements.Expr)
-                         x8))
-                   eta6) -}
-f4adacd7b371c9c911bd3f6d6026f7bc
-  $fInputable(,)8 ::
-    Language.Fixpoint.Parse.Parser
-      (Language.Fixpoint.Types.Errors.FixResult GHC.Integer.Type.Integer)
-  {- Unfolding: (Language.Fixpoint.Parse.fixResultP
-                   @ GHC.Integer.Type.Integer
-                   Language.Fixpoint.Parse.$fInputable(,)9
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <GHC.Integer.Type.Integer>_R))) -}
-c8f250682b1e449a4d7cc67cf54145cc
-  $fInputable(,)9 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (GHC.Integer.Type.Integer
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (GHC.Integer.Type.Integer
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: GHC.Integer.Type.Integer
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: GHC.Integer.Type.Integer
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Text.Parsec.Prim.$fAlternativeParsecT2
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ ()
-                   @ [GHC.Types.Char]
-                   Language.Fixpoint.Parse.$fInputable(,)14
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <() -> [GHC.Types.Char]>_R))
-                   Language.Fixpoint.Parse.$fInputable(,)13
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <()>_R))
-                   @ b1
-                   eta2
-                   (\ (x8 :: GHC.Base.String) ->
-                    eta3 (Language.Fixpoint.Parse.$fInputable(,)_f x8))
-                   eta4
-                   (\ (x8 :: GHC.Base.String) ->
-                    eta5 (Language.Fixpoint.Parse.$fInputable(,)_f x8))
-                   eta6) -}
-7566dc48f2cd4743d8b1c1f855e85f07
-  $fInputable(,)_$crr ::
-    GHC.Base.String
-    -> (Language.Fixpoint.Types.Errors.FixResult
-          GHC.Integer.Type.Integer,
-        Language.Fixpoint.Types.Constraints.FixSolution)
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Errors.FixResult
-                        GHC.Integer.Type.Integer,
-                      Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.$fInputable(,)1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <(Language.Fixpoint.Types.Errors.FixResult
-                                 GHC.Integer.Type.Integer,
-                               Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Refinements.KVar
-                                 Language.Fixpoint.Types.Refinements.Expr)>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-b48c7f570216b7f4d1fd81c70d918a6d
-  $fInputable(,)_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String
-    -> (Language.Fixpoint.Types.Errors.FixResult
-          GHC.Integer.Type.Integer,
-        Language.Fixpoint.Types.Constraints.FixSolution)
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Errors.FixResult
-                        GHC.Integer.Type.Integer,
-                      Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar
-                        Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.$fInputable(,)1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <(Language.Fixpoint.Types.Errors.FixResult
-                                 GHC.Integer.Type.Integer,
-                               Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Refinements.KVar
-                                 Language.Fixpoint.Types.Refinements.Expr)>_R))) -}
-a30de5cff445d3996b785b12400cccd3
-  $fInputable(,)_$sfromList ::
-    [(Language.Fixpoint.Types.Refinements.KVar, v)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ @ v
-                   (eta2 :: [(Language.Fixpoint.Types.Refinements.KVar, v)]) ->
-                 Language.Fixpoint.Parse.$fInputable(,)3
-                   @ v
-                   eta2
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ v)) -}
-7b8a87d410f0d703feb9fc612fd12aed
-  $fInputable(,)_f :: GHC.Base.String -> GHC.Integer.Type.Integer
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: (\ (s5 :: GHC.Base.String) ->
-                 case Text.Read.readEither6
-                        @ GHC.Integer.Type.Integer
-                        (Text.ParserCombinators.ReadP.run
-                           @ GHC.Integer.Type.Integer
-                           Language.Fixpoint.Parse.$fInputable(,)12
-                           s5) of wild {
-                   [] -> Language.Fixpoint.Parse.$fInputable(,)11
-                   : x8 ds
-                   -> case ds of wild1 {
-                        [] -> x8
-                        : ipv ipv1 -> Language.Fixpoint.Parse.$fInputable(,)10 } }) -}
-a19af5b9e99693c857bc84f522dd6fc6
-  $fInputable(,)_m1 ::
-    Text.Parsec.Prim.ParsecT
-      [GHC.Types.Char]
-      GHC.Integer.Type.Integer
-      (Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-      ()
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds2 Language.Fixpoint.Parse.$fInputable(,)6 }) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableCommand ::
-    Language.Fixpoint.Parse.Inputable
-      Language.Fixpoint.Smt.Types.Command
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Command
-                  Language.Fixpoint.Parse.$fInputableCommand_$crr
-                  Language.Fixpoint.Parse.$fInputableCommand_$crr' -}
-eba1943428173a6040374f031756bb63
-  $fInputableCommand1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Smt.Types.Command
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Smt.Types.Command
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5,
-     Strictness: <L,U><L,C(U)><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-799708b46ffbff386de62c18c7700bde
-  $fInputableCommand_$crr ::
-    GHC.Base.String -> Language.Fixpoint.Smt.Types.Command
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Smt.Types.Command
-                   Language.Fixpoint.Parse.$fInputableCommand1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Smt.Types.Command>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-1f94d3c8778ed6e2ed0c1f4281c0c5ba
-  $fInputableCommand_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> Language.Fixpoint.Smt.Types.Command
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Smt.Types.Command
-                   Language.Fixpoint.Parse.$fInputableCommand1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Smt.Types.Command>_R))) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableConstant ::
-    Language.Fixpoint.Parse.Inputable
-      Language.Fixpoint.Types.Refinements.Constant
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Constant
-                  Language.Fixpoint.Parse.$fInputableConstant_$crr
-                  Language.Fixpoint.Parse.$fInputableConstant_$crr' -}
-c7ef45ecc1f8ca5667e6b69d6f334786
-  $fInputableConstant1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Constant
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Refinements.Constant
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5, Strictness: <L,U><L,C(U)><L,U><L,C(U)><L,C(U)>,
-     Unfolding: (\ @ b
-                   (s5 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (cok :: Language.Fixpoint.Types.Refinements.Constant
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eok :: Language.Fixpoint.Types.Refinements.Constant
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b) ->
-                 case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 let {
-                   lvl171 :: GHC.Base.String
-                             -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                             -> Text.Parsec.Error.ParseError
-                             -> Control.Monad.Trans.State.Lazy.State
-                                  Language.Fixpoint.Parse.PState b
-                     {- Arity: 1 -}
-                   = \ (x8 :: GHC.Base.String) ->
-                     cok
-                       (case Language.Fixpoint.Parse.$fInputable(,)_f
-                               x8 of dt { DEFAULT ->
-                        Language.Fixpoint.Types.Refinements.I dt })
-                 } in
-                 let {
-                   eerr1 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b
-                     {- Arity: 1, Strictness: <L,U(U(U,U,U),U)> -}
-                   = \ (err :: Text.Parsec.Error.ParseError) ->
-                     Text.Parsec.Prim.$fAlternativeParsecT2
-                       @ [GHC.Types.Char]
-                       @ GHC.Integer.Type.Integer
-                       @ (Control.Monad.Trans.State.Lazy.StateT
-                            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                       @ ()
-                       @ [GHC.Types.Char]
-                       Language.Fixpoint.Parse.$fInputable(,)14
-                         `cast`
-                       (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                 <[GHC.Types.Char]>_R
-                                 <GHC.Integer.Type.Integer>_R
-                                 <Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                                 <() -> [GHC.Types.Char]>_R))
-                       Language.Fixpoint.Parse.$fInputable(,)13
-                         `cast`
-                       (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                 <GHC.Base.String>_R
-                                 <GHC.Integer.Type.Integer>_R
-                                 <Control.Monad.Trans.State.Lazy.State
-                                    Language.Fixpoint.Parse.PState>_R
-                                 <()>_R))
-                       @ b
-                       s5
-                       lvl171
-                       cerr
-                       (\ (x8 :: GHC.Base.String)
-                          (s' :: Text.Parsec.Prim.State
-                                   GHC.Base.String GHC.Integer.Type.Integer)[OneShot]
-                          (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                        eok
-                          (case Language.Fixpoint.Parse.$fInputable(,)_f
-                                  x8 of dt { DEFAULT ->
-                           Language.Fixpoint.Types.Refinements.I dt })
-                          s'
-                          (Text.Parsec.Error.mergeError err err'))
-                       (\ (err' :: Text.Parsec.Error.ParseError) ->
-                        eerr (Text.Parsec.Error.mergeError err err'))
-                 } in
-                 ds9
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <[GHC.Types.Char]>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                      <GHC.Types.Double>_R)
-                   @ b
-                   s5
-                   (\ (x8 :: GHC.Types.Double) ->
-                    cok (Language.Fixpoint.Types.Refinements.$WR x8))
-                   eerr1
-                   (\ (x8 :: GHC.Types.Double) ->
-                    eok (Language.Fixpoint.Types.Refinements.$WR x8))
-                   eerr1 }) -}
-eb6e3427216cbfd2c982102c2fe25cc4
-  $fInputableConstant_$crr ::
-    GHC.Base.String -> Language.Fixpoint.Types.Refinements.Constant
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Refinements.Constant
-                   Language.Fixpoint.Parse.$fInputableConstant1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Types.Refinements.Constant>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-32e6afdae52c564c207feede81348214
-  $fInputableConstant_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> Language.Fixpoint.Types.Refinements.Constant
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Refinements.Constant
-                   Language.Fixpoint.Parse.$fInputableConstant1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Types.Refinements.Constant>_R))) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableExpr ::
-    Language.Fixpoint.Parse.Inputable
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Expr
-                  Language.Fixpoint.Parse.$fInputableExpr_$crr
-                  Language.Fixpoint.Parse.$fInputableExpr_$crr' -}
-c19a48b9289968c8bdc219ed2d5c044b
-  $fInputableExpr1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Language.Fixpoint.Parse.PState
-    -> Data.Functor.Identity.Identity
-         (b1, Language.Fixpoint.Parse.PState)
-  {- Arity: 6,
-     Strictness: <L,U(U,U,U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)><S(S),1*U(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w7 :: Language.Fixpoint.Parse.PState) ->
-                 case w7 of ww { Language.Fixpoint.Parse.PState ww1 ->
-                 Language.Fixpoint.Parse.$wexprP @ b1 w w3 w4 w5 w6 ww1 }) -}
-bb4875cf6b030eea0d4252846d59752e
-  $fInputableExpr2 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: (\ @ b
-                   (s5 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (cok :: Language.Fixpoint.Types.Refinements.Expr
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eok :: Language.Fixpoint.Types.Refinements.Expr
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b) ->
-                 let {
-                   eerr1 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b
-                     {- Arity: 1, Strictness: <L,U(U(U,U,U),U)> -}
-                   = \ (err :: Text.Parsec.Error.ParseError) ->
-                     Language.Fixpoint.Parse.$fInputableExpr4
-                       @ b
-                       s5
-                       cok
-                       cerr
-                       (\ (y :: Language.Fixpoint.Types.Refinements.Expr)
-                          (s' :: Text.Parsec.Prim.State
-                                   GHC.Base.String GHC.Integer.Type.Integer)[OneShot]
-                          (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                        eok y s' (Text.Parsec.Error.mergeError err err'))
-                       (\ (err' :: Text.Parsec.Error.ParseError) ->
-                        eerr (Text.Parsec.Error.mergeError err err'))
-                 } in
-                 Language.Fixpoint.Parse.$fInputableExpr3
-                   @ b
-                   s5
-                   cok
-                   eerr1
-                   eok
-                   eerr1) -}
-4015b7a125ce7b8f6d99f600f193bcfe
-  $fInputableExpr3 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-6dd4e28f638c1f204138f00b13f62a2b
-  $fInputableExpr4 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-7e14fc4edbdee77e87c6e5656c26e60b
-  $fInputableExpr_$crr ::
-    GHC.Base.String -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Parse.$fInputableExpr1
-                     `cast`
-                   (Trans
-                        (forall (b1 :: <*>_N).
-                         <Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer>_R
-                         ->_R <Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                               -> Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                               -> Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                       <Language.Fixpoint.Parse.PState>_N
-                                       <Data.Functor.Identity.Identity>_R
-                                       <b1>_N))
-                        (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                  <[GHC.Types.Char]>_R
-                                  <GHC.Integer.Type.Integer>_R
-                                  <Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState
-                                     Data.Functor.Identity.Identity>_R
-                                  <Language.Fixpoint.Types.Refinements.Expr>_R)))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-5d7810463b4c045c82915625dd6b044b
-  $fInputableExpr_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Parse.$fInputableExpr1
-                     `cast`
-                   (Trans
-                        (forall (b1 :: <*>_N).
-                         <Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer>_R
-                         ->_R <Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                               -> Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                               -> Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R <Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b1>_R
-                         ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                       <Language.Fixpoint.Parse.PState>_N
-                                       <Data.Functor.Identity.Identity>_R
-                                       <b1>_N))
-                        (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                  <[GHC.Types.Char]>_R
-                                  <GHC.Integer.Type.Integer>_R
-                                  <Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState
-                                     Data.Functor.Identity.Identity>_R
-                                  <Language.Fixpoint.Types.Refinements.Expr>_R)))) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableFInfoWithOpts ::
-    Language.Fixpoint.Parse.Inputable
-      (Language.Fixpoint.Types.Constraints.FInfoWithOpts ())
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Constraints.FInfoWithOpts ())
-                  Language.Fixpoint.Parse.$fInputableFInfoWithOpts_$crr
-                  Language.Fixpoint.Parse.$fInputableFInfoWithOpts_$crr' -}
-6e747c42906e99dc41c988a1ebb7d125
-  $fInputableFInfoWithOpts1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Language.Fixpoint.Parse.$w$crr'1 @ b1 w w3 w4 w5) -}
-3b9baccae33299503ebdf6333418ac8e
-  $fInputableFInfoWithOpts10 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Parse.Def ()
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Parse.Def ()
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5,
-     Strictness: <L,U><L,C(U)><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-8c8e92952e407ee7b1134f231c397a69
-  $fInputableFInfoWithOpts2 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-6c90774545279cb10097dbcffd0d3c3c
-  $fInputableFInfoWithOpts3 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-77a4bbeef9bb7498f9c5379bbf79e902
-  $fInputableFInfoWithOpts4 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-8984cad3d3d5990f90cd56fc31744f08
-  $fInputableFInfoWithOpts5 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-5ffa3c45f3c60e20fac69d77f38fb462
-  $fInputableFInfoWithOpts6 ::
-    Language.Fixpoint.Types.Environments.SizedEnv
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  {- HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   0#
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Environments.BindId
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft))) -}
-db1a99f6093de23ef4cca9729b25071c
-  $fInputableFInfoWithOpts7 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-7238fd86c340c3f93c307a937f39bdf0
-  $fInputableFInfoWithOpts8 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-6b73b2e357e2869a188018a91811769f
-  $fInputableFInfoWithOpts9 ::
-    [Language.Fixpoint.Parse.Def a]
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-444e017a473513ff266e501ff9688525
-  $fInputableFInfoWithOpts_$crr ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Constraints.FInfoWithOpts ())
-                   Language.Fixpoint.Parse.$fInputableFInfoWithOpts1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Constraints.FInfoWithOpts ()>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-2305aaebd6083fef9ce1e4c2261ccef9
-  $fInputableFInfoWithOpts_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String
-    -> Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Constraints.FInfoWithOpts ())
-                   Language.Fixpoint.Parse.$fInputableFInfoWithOpts1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Constraints.FInfoWithOpts ()>_R))) -}
-a5e22162c2811b101df3c3930c629843
-  $fInputableFInfoWithOpts_go ::
-    [Language.Fixpoint.Parse.Def ()] -> [GHC.Base.String]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-5effcc61f009abfe0a16ad83d528f291
-  $fInputableFInfoWithOpts_go1 ::
-    [Language.Fixpoint.Parse.Def ()] -> [GHC.Base.String]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableFixResult ::
-    Language.Fixpoint.Parse.Inputable
-      (Language.Fixpoint.Types.Errors.FixResult GHC.Integer.Type.Integer)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Errors.FixResult
-                       GHC.Integer.Type.Integer)
-                  Language.Fixpoint.Parse.$fInputableFixResult_$crr
-                  Language.Fixpoint.Parse.$fInputableFixResult_$crr' -}
-50163feea671cd7fe68869fe262452c8
-  $fInputableFixResult_$crr ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Errors.FixResult
-         GHC.Integer.Type.Integer
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Errors.FixResult
-                        GHC.Integer.Type.Integer)
-                   Language.Fixpoint.Parse.$fInputable(,)8
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-bfaf601069e85e12db77fa8fcbb33fb6
-  $fInputableFixResult_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String
-    -> Language.Fixpoint.Types.Errors.FixResult
-         GHC.Integer.Type.Integer
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Errors.FixResult
-                        GHC.Integer.Type.Integer)
-                   Language.Fixpoint.Parse.$fInputable(,)8) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableGInfo ::
-    Language.Fixpoint.Parse.Inputable
-      (Language.Fixpoint.Types.Constraints.FInfo ())
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Constraints.FInfo ())
-                  Language.Fixpoint.Parse.$fInputableGInfo_$crr
-                  Language.Fixpoint.Parse.$fInputableGInfo_$crr' -}
-7ac28c6a472c386c29320f4ec5c357cc
-  $fInputableGInfo1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Constraints.FInfo ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Constraints.FInfo ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Constraints.FInfo ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Constraints.FInfo ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Language.Fixpoint.Parse.$w$crr'2 @ b1 w w3 w4 w5) -}
-711bea3893a4a88794d47b1cbdf0bad5
-  $fInputableGInfo_$crr ::
-    GHC.Base.String -> Language.Fixpoint.Types.Constraints.FInfo ()
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Constraints.FInfo ())
-                   Language.Fixpoint.Parse.$fInputableGInfo1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Constraints.FInfo ()>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-35d6997c915e998de4297efa96d2ef05
-  $fInputableGInfo_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> Language.Fixpoint.Types.Constraints.FInfo ()
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ (Language.Fixpoint.Types.Constraints.FInfo ())
-                   Language.Fixpoint.Parse.$fInputableGInfo1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Constraints.FInfo ()>_R))) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputableSymbol ::
-    Language.Fixpoint.Parse.Inputable
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Parse.$fInputableSymbol_$crr
-                  Language.Fixpoint.Parse.$fInputableSymbol_$crr' -}
-f80c3bbe846e4ce4f883410875ffef1b
-  $fInputableSymbol1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(U)><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wsymbolP
-                   @ b1
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w4
-                   w5
-                   w6 } }) -}
-19a0cca6e13a01dfc67a859d291aca2d
-  $fInputableSymbol2 :: GHC.Base.String -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: GHC.Base.String) ->
-                 case GHC.List.elem
-                        @ GHC.Base.String
-                        GHC.Classes.$fEq[]_$s$fEq[]1
-                        ds
-                        Language.Fixpoint.Parse.$fInputableSymbol3 of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-964179ad7b12d3497870eaf2efe9893b
-  $fInputableSymbol3 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace171
-                   Language.Fixpoint.Parse.$fInputableSymbol4) -}
-5ab559650c710ab497be998665336afe
-  $fInputableSymbol4 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace170
-                   Language.Fixpoint.Parse.$fInputableSymbol5) -}
-b3ba71599af80db29c378db981f3ff59
-  $fInputableSymbol5 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace169
-                   Language.Fixpoint.Parse.$fInputableSymbol6) -}
-de1c6d7f0b6fd63e8222670ae23cbe5b
-  $fInputableSymbol6 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace64
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-50ea82d552efe002629f935a1458051a
-  $fInputableSymbol_$crr ::
-    GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Parse.$fInputableSymbol1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-a8b816222b0f55dcd35e2c76a1c1a151
-  $fInputableSymbol_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Parse.$fInputableSymbol1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))) -}
-fa3d78e90232aa4f087787a4bf3361ab
-  $fInputable[] ::
-    Language.Fixpoint.Parse.Inputable
-      [Language.Fixpoint.Smt.Types.Command]
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [Language.Fixpoint.Smt.Types.Command]
-                  Language.Fixpoint.Parse.$fInputable[]_$crr
-                  Language.Fixpoint.Parse.$fInputable[]_$crr' -}
-c970de86ceeb55b3735a9fe2dd919ad4
-  $fInputable[]1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> ([Language.Fixpoint.Smt.Types.Command]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> ([Language.Fixpoint.Smt.Types.Command]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: [Language.Fixpoint.Smt.Types.Command]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: [Language.Fixpoint.Smt.Types.Command]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Combinator.$wsepBy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   @ GHC.Integer.Type.Integer
-                   @ Language.Fixpoint.Smt.Types.Command
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.$fInputableCommand1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Smt.Types.Command>_R))
-                   Language.Fixpoint.Parse.semi
-                   @ b
-                   w3
-                   w4
-                   w5
-                   w6) -}
-cf393ce121414fcf9f47f56e3996c51b
-  $fInputable[]_$crr ::
-    GHC.Base.String -> [Language.Fixpoint.Smt.Types.Command]
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ [Language.Fixpoint.Smt.Types.Command]
-                   Language.Fixpoint.Parse.$fInputable[]1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <[Language.Fixpoint.Smt.Types.Command]>_R))
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-f5e43ab4738496d6fccf3b2be0404d09
-  $fInputable[]_$crr' ::
-    GHC.Base.String
-    -> GHC.Base.String -> [Language.Fixpoint.Smt.Types.Command]
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Parse.doParse'
-                   @ [Language.Fixpoint.Smt.Types.Command]
-                   Language.Fixpoint.Parse.$fInputable[]1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <[Language.Fixpoint.Smt.Types.Command]>_R))) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fShowDef ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Show.Show (Language.Fixpoint.Parse.Def a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Parse.Def a)
-                  (Language.Fixpoint.Parse.$fShowDef_$cshowsPrec @ a $dFixpoint)
-                  (Language.Fixpoint.Parse.$fShowDef_$cshow @ a $dFixpoint)
-                  (Language.Fixpoint.Parse.$fShowDef_$cshowList @ a $dFixpoint) -}
-3c3f272f95b2481e4bce761a5d4b4855
-  $fShowDef1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fShowDef_$cshow ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Parse.Def a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,U(C(U),A)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (x8 :: Language.Fixpoint.Parse.Def a) ->
-                 Language.Fixpoint.Parse.$fShowDef_$cshowsPrec
-                   @ a
-                   $dFixpoint
-                   GHC.Show.shows22
-                   x8
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fShowDef_$cshowList ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [Language.Fixpoint.Parse.Def a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta2 :: [Language.Fixpoint.Parse.Def a])
-                   (eta3 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Parse.Def a)
-                   (Language.Fixpoint.Parse.$fShowDef_$cshowsPrec
-                      @ a
-                      $dFixpoint
-                      Language.Fixpoint.Parse.$fShowDef1)
-                   eta2
-                   eta3) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $fShowDef_$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int -> Language.Fixpoint.Parse.Def a -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S(S),1*U(U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w3 :: GHC.Types.Int)
-                   (w4 :: Language.Fixpoint.Parse.Def a) ->
-                 case w3 of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Parse.$w$cshowsPrec @ a w ww1 w4 }) -}
-004199dce991241a3d0e2b2da104c4a5
-  $s$fMonadStatesParsecT_$s$fMonadStatesStateT0 ::
-    Control.Monad.State.Class.MonadState
-      s
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s5.
-                  @ s5
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s5 Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT @ s5)
-                  (GHC.Base.$
-                     @ 'GHC.Types.PtrRepLifted
-                     @ (s5 -> (s5, s5))
-                     @ (Control.Monad.Trans.State.Lazy.StateT
-                          s5 Data.Functor.Identity.Identity s5)
-                     (Control.Monad.Trans.State.Lazy.state
-                        @ Data.Functor.Identity.Identity
-                        @ s5
-                        @ s5
-                        Data.Functor.Identity.$fMonadIdentity)
-                     (\ (s6 :: s5) -> (s6, s6)))
-                  (Language.Fixpoint.Parse.$s$fMonadStatesParsecT_$sput @ s5)
-                  (Control.Monad.State.Class.$fMonadStatesStateT0_$cstate
-                     @ Data.Functor.Identity.Identity
-                     @ s5
-                     Data.Functor.Identity.$fMonadIdentity) -}
-297c969be47f50c477e8acbe985d8897
-  $s$fMonadStatesParsecT_$sput ::
-    s
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,A>m,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s5 (s6 :: s5) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> ((), s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity ())
-                   (Control.Monad.Trans.State.Lazy.state
-                      @ Data.Functor.Identity.Identity
-                      @ s5
-                      @ ()
-                      Data.Functor.Identity.$fMonadIdentity)
-                   (\ (ds :: s5) -> (GHC.Tuple.(), s6))) -}
-8a55d16e6ecfd390f84f00e749023e12
-  $tc'Axm :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17182962366823498721##
-                   15035762496056150309##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Axm1) -}
-875a9060d64627276929a63947cf219f
-  $tc'Axm1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Axm"#) -}
-58e5e1920654a378cc3afe1ad47067ff
-  $tc'C:Inputable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1100512625710700657##
-                   16602776937175399283##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'C:Inputable1) -}
-7a00dcf625c4a5c4455a17bc47647046
-  $tc'C:Inputable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Inputable"#) -}
-5e921f2ca84a98d3de361e01f3f3cba8
-  $tc'Con :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9998745151048706008##
-                   9714735254521822086##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Con1) -}
-111b132a6e5124f3645dbbe187fb5b94
-  $tc'Con1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Con"#) -}
-c6d80ed384ded94704206a4282f9ce40
-  $tc'Cst :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10767584960379691208##
-                   16138752084225308394##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Cst1) -}
-d35475f9f7fc48f97d325636dad21eed
-  $tc'Cst1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cst"#) -}
-1807ad8ac59a558acec35e38c3a1f28b
-  $tc'Dis :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4757749799432092231##
-                   9489560255892292654##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Dis1) -}
-6f4473d253e0ce75ecbf9230e7d8646c
-  $tc'Dis1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Dis"#) -}
-32474ecb83419a5dba509e6bad48950b
-  $tc'FInfix :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15838630902410580279##
-                   4489821478221214722##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'FInfix1) -}
-db81b8fa31b29aa877eace52a98a31db
-  $tc'FInfix1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FInfix"#) -}
-2a2697aef48a9c97746e2f688044d9c7
-  $tc'FPostfix :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15750223690147092231##
-                   507528200076569427##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'FPostfix1) -}
-7fd410023eb78212873310b80be191ef
-  $tc'FPostfix1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FPostfix"#) -}
-16824345b675d4e34f7d060aa154ef77
-  $tc'FPrefix :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14607048097199406327##
-                   2650376682075163095##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'FPrefix1) -}
-9d26ac37a78e30eb47870f5ff6d1ecdb
-  $tc'FPrefix1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FPrefix"#) -}
-7b55b027e6c4120230964b4d43a082ec
-  $tc'IBind :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15627774014881514197##
-                   8136756076644516776##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'IBind1) -}
-4b681fdd1bc2a3336bef63b3dc0b33b9
-  $tc'IBind1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'IBind"#) -}
-8cfae081c60e91c7f77da3619b153001
-  $tc'Kut :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5405199018462399121##
-                   8788589171231644803##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Kut1) -}
-c3d74215c8de263c7dc05eded3196c97
-  $tc'Kut1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Kut"#) -}
-1f6d79dc154048afaca6c12495b8925a
-  $tc'Opt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1343889966731681078##
-                   8745124577468991206##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Opt1) -}
-1527aca953360a6e688bacf2ddc93bdf
-  $tc'Opt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Opt"#) -}
-e124ed4db5234f879d0e0784f826c4d7
-  $tc'PState :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4504129959660957728##
-                   14344437015623234706##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'PState1) -}
-40c04c2d819e726f2f8dde1add274d87
-  $tc'PState1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'PState"#) -}
-a6d476fa1463e868c3e4c7332ac237e8
-  $tc'Pack :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3270645894415605323##
-                   2559062728366989584##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Pack1) -}
-a12fa9bc130fb0ec5214c05e54fb1d75
-  $tc'Pack1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Pack"#) -}
-41061e4ee8979ac8350911c9f922658f
-  $tc'Qul :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4976916787056419313##
-                   1020557604463790641##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Qul1) -}
-444ff2089b9ab8d14410fe71884fc3ef
-  $tc'Qul1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Qul"#) -}
-9e55ef0e308d617ed345e7067cd492b9
-  $tc'Srt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4516518546055416120##
-                   15042048166524862998##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Srt1) -}
-628f8e552fc65a0aa2d669e17e84b501
-  $tc'Srt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Srt"#) -}
-faf05c61a924046925bf25527d10b070
-  $tc'Wfc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16690352933729295870##
-                   6332066519031639626##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tc'Wfc1) -}
-90c3b62e699e779c61016d0c5f1c8d60
-  $tc'Wfc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Wfc"#) -}
-9346ecbf45aaef08e25feca0f1862175
-  $tcDef :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14584915851812327430##
-                   9554270562590755431##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tcDef1) -}
-92f6757bed5eb8563bd559963d4265b4
-  $tcDef1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Def"#) -}
-c416fa9a46c49ed713d7f61ecc8f0a01
-  $tcFixity :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14999943098443193053##
-                   15665578059628552212##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tcFixity1) -}
-18878bff8cce068e5e4c6a4a447e615c
-  $tcFixity1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Fixity"#) -}
-7f4e4b1a7fbebd0c971dc2690cedeefa
-  $tcInputable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8328257550791196994##
-                   10842465400704275042##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tcInputable1) -}
-51490dc4670721215ac587b399fde12e
-  $tcInputable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Inputable"#) -}
-f0a988fd0d4173572603acb35bdafba5
-  $tcPState :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8390758275266160160##
-                   8741260570086123789##
-                   Language.Fixpoint.Parse.$trModule
-                   Language.Fixpoint.Parse.$tcPState1) -}
-4c6d2880406ef697d99ccd94ea21f730
-  $tcPState1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "PState"#) -}
-20b3beed2dae05526316951e51b44e58
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Parse.$trModule2
-                   Language.Fixpoint.Parse.$trModule1) -}
-812af00f5e523c023334e081ce92b6d0
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Parse"#) -}
-f4f9a25821b720052efa736935e640e7
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-d5cdc28a9f1faa4e8dd9c90952c00680
-  $w$crr' ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Data.HashMap.Base.HashMap
-          Language.Fixpoint.Types.Refinements.KVar
-          Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Data.HashMap.Base.HashMap
-          Language.Fixpoint.Types.Refinements.KVar
-          Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 4,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Text.Parsec.Combinator.$wsepBy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   @ GHC.Integer.Type.Integer
-                   @ (Language.Fixpoint.Types.Refinements.KVar,
-                      Language.Fixpoint.Types.Refinements.Expr)
-                   @ ()
-                   Language.Fixpoint.Parse.$fInputable(,)4
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <(Language.Fixpoint.Types.Refinements.KVar,
-                               Language.Fixpoint.Types.Refinements.Expr)>_R))
-                   Language.Fixpoint.Parse.whiteSpace
-                   @ b1
-                   w
-                   (\ (x8 :: [(Language.Fixpoint.Types.Refinements.KVar,
-                               Language.Fixpoint.Types.Refinements.Expr)]) ->
-                    w3
-                      (Language.Fixpoint.Parse.$fInputable(,)_$sfromList
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         x8))
-                   w4
-                   (\ (x8 :: [(Language.Fixpoint.Types.Refinements.KVar,
-                               Language.Fixpoint.Types.Refinements.Expr)]) ->
-                    w5
-                      (Language.Fixpoint.Parse.$fInputable(,)_$sfromList
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         x8))) -}
-b1014fb93ae3a1890c7961186e42da7c
-  $w$crr'1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 4,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Text.Parsec.Prim.$wmany
-                   @ GHC.Base.String
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ (Language.Fixpoint.Parse.Def ())
-                   Language.Fixpoint.Parse.$fInputableFInfoWithOpts10
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Parse.Def ()>_R))
-                   @ b1
-                   w
-                   (\ (x8 :: [Language.Fixpoint.Parse.Def ()])
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                      (err :: Text.Parsec.Error.ParseError)[OneShot] ->
-                    w3
-                      (Language.Fixpoint.Types.Constraints.FIO
-                         @ ()
-                         (Language.Fixpoint.Parse.defsFInfo @ () x8)
-                         (Language.Fixpoint.Parse.$fInputableFInfoWithOpts_go1 x8))
-                      s5
-                      (case err of ww { Text.Parsec.Error.ParseError ww1 ww2 ->
-                       case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                       case s5 of wild { Text.Parsec.Prim.State ds3 ds4 ds5 ->
-                       case ds4 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                       case Text.Parsec.Error.$wmergeError
-                              ww4
-                              ww5
-                              ww6
-                              ww2
-                              ww11
-                              ww12
-                              ww13
-                              (GHC.Types.[]
-                                 @ Text.Parsec.Error.Message) of ww14 { (#,#) ww15 ww16 ->
-                       Text.Parsec.Error.ParseError ww15 ww16 } } } } }))
-                   w4
-                   (\ (x8 :: [Language.Fixpoint.Parse.Def ()])
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                      (err :: Text.Parsec.Error.ParseError)[OneShot] ->
-                    w5
-                      (Language.Fixpoint.Types.Constraints.FIO
-                         @ ()
-                         (Language.Fixpoint.Parse.defsFInfo @ () x8)
-                         (Language.Fixpoint.Parse.$fInputableFInfoWithOpts_go x8))
-                      s5
-                      (case err of ww { Text.Parsec.Error.ParseError ww1 ww2 ->
-                       case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                       case s5 of wild { Text.Parsec.Prim.State ds3 ds4 ds5 ->
-                       case ds4 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                       case Text.Parsec.Error.$wmergeError
-                              ww4
-                              ww5
-                              ww6
-                              ww2
-                              ww11
-                              ww12
-                              ww13
-                              (GHC.Types.[]
-                                 @ Text.Parsec.Error.Message) of ww14 { (#,#) ww15 ww16 ->
-                       Text.Parsec.Error.ParseError ww15 ww16 } } } } }))) -}
-ebc377225ac6318becaa219e20fc2d0e
-  $w$crr'2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Constraints.FInfo ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Constraints.FInfo ()
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 4,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Constraints.FInfo ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Constraints.FInfo ()
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Text.Parsec.Prim.$wmany
-                   @ GHC.Base.String
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ (Language.Fixpoint.Parse.Def ())
-                   Language.Fixpoint.Parse.$fInputableFInfoWithOpts10
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Parse.Def ()>_R))
-                   @ b1
-                   w
-                   (\ (x8 :: [Language.Fixpoint.Parse.Def ()]) ->
-                    w3 (Language.Fixpoint.Parse.defsFInfo @ () x8))
-                   w4
-                   (\ (x8 :: [Language.Fixpoint.Parse.Def ()]) ->
-                    w5 (Language.Fixpoint.Parse.defsFInfo @ () x8))) -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  $w$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Prim.Int# -> Language.Fixpoint.Parse.Def a -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,U><S,1*U>, Inline: [0] -}
-568f4c57d9b6bea08df19f807de19f1e
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w3 :: v)
-                   (w4 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo1 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w5 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo1 ww3 ww4 ww5 w5 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w5
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s5 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w5)
-                                 s5 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo1
-                   ww
-                   ww1
-                   ww2
-                   w3
-                   w4
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w4)) -}
-56594856b6a1a2ab826d3ab3a161333c
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w3 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Parse.$wpoly_go4
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w3
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-98bfd24b7df3a89cba06a824e16d006b
-  $wcondIdP ::
-    Data.HashSet.HashSet GHC.Types.Char
-    -> (GHC.Base.String -> GHC.Types.Bool)
-    -> forall b.
-       [GHC.Types.Char]
-       -> Text.Parsec.Pos.SourceName
-       -> GHC.Prim.Int#
-       -> GHC.Prim.Int#
-       -> GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Names.Symbol
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Language.Fixpoint.Types.Names.Symbol
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.State
-            Language.Fixpoint.Parse.PState b
-  {- Arity: 11,
-     Strictness: <L,U><L,C(U)><L,U><L,U><S,U><S,U><S,U><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: [0] -}
-7e4ced7588dd33ea316801ba97703496
-  $wexprP ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Refinements.Expr
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Language.Fixpoint.Parse.OpTable
-    -> Data.Functor.Identity.Identity
-         (b1, Language.Fixpoint.Parse.PState)
-  {- Arity: 6,
-     Strictness: <L,U(U,U,U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Refinements.Expr
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (ww :: Language.Fixpoint.Parse.OpTable) ->
-                 let {
-                   eta2 :: Text.Parsec.Error.ParseError
-                   = case w of wild { Text.Parsec.Prim.State ds ds1 ds2 ->
-                     Text.Parsec.Error.ParseError
-                       ds1
-                       (GHC.Types.[] @ Text.Parsec.Error.Message) }
-                 } in
-                 ((Text.Parsec.Expr.buildExpressionParser1
-                     @ GHC.Base.String
-                     @ GHC.Integer.Type.Integer
-                     @ (Control.Monad.Trans.State.Lazy.State
-                          Language.Fixpoint.Parse.PState)
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     ww
-                     Language.Fixpoint.Parse.$fInputableExpr2
-                       `cast`
-                     (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <GHC.Base.String>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.State
-                                  Language.Fixpoint.Parse.PState>_R
-                               <Language.Fixpoint.Types.Refinements.Expr>_R)))
-                    `cast`
-                  (Text.Parsec.Prim.N:ParsecT[0]
-                       <[GHC.Types.Char]>_R
-                       <GHC.Integer.Type.Integer>_R
-                       <Control.Monad.Trans.State.Lazy.StateT
-                          Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                       <Language.Fixpoint.Types.Refinements.Expr>_R)
-                    @ b1
-                    w
-                    w3
-                    w4
-                    (\ (x8 :: Language.Fixpoint.Types.Refinements.Expr)
-                       (s5 :: Text.Parsec.Prim.State
-                                [GHC.Types.Char] GHC.Integer.Type.Integer)
-                       (err' :: Text.Parsec.Error.ParseError) ->
-                     w5 x8 s5 (Text.Parsec.Error.mergeError eta2 err'))
-                    (\ (err' :: Text.Parsec.Error.ParseError) ->
-                     w6 (Text.Parsec.Error.mergeError eta2 err')))
-                   `cast`
-                 (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                      <Language.Fixpoint.Parse.PState>_N
-                      <Data.Functor.Identity.Identity>_R
-                      <b1>_N)
-                   (Language.Fixpoint.Parse.PState ww)) -}
-b50faddb0769619cd07fc91d08cd43b1
-  $wfreshIntP ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (GHC.Integer.Type.Integer
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 2,
-     Strictness: <L,U(U,U(U,U,U),U)><C(C(C(S))),1*C1(C1(C1(U)))>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: GHC.Integer.Type.Integer
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 let {
-                   s' :: Text.Parsec.Prim.State
-                           GHC.Base.String GHC.Integer.Type.Integer
-                   = case w of wild { Text.Parsec.Prim.State ds ds1 ds2 ->
-                     case GHC.Integer.Type.plusInteger
-                            ds2
-                            Language.Fixpoint.Parse.freshIntP2 of dt { DEFAULT ->
-                     Text.Parsec.Prim.State
-                       @ GHC.Base.String
-                       @ GHC.Integer.Type.Integer
-                       ds
-                       ds1
-                       dt } }
-                 } in
-                 w3
-                   (case w of wild { Text.Parsec.Prim.State ds ds1 ds2 -> ds2 })
-                   s'
-                   (case w of wild { Text.Parsec.Prim.State ds ds1 ds2 ->
-                    case ds1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                    let {
-                      $w$j :: Text.Parsec.Pos.SourceName
-                              -> GHC.Prim.Int#
-                              -> GHC.Prim.Int#
-                              -> [Text.Parsec.Error.Message]
-                              -> (# Text.Parsec.Pos.SourcePos, [Text.Parsec.Error.Message] #)
-                        {- Arity: 4, Strictness: <L,U><S,U><S,U><S,U>, Inline: [0] -}
-                      = \ (ww :: Text.Parsec.Pos.SourceName)[OneShot]
-                          (ww1 :: GHC.Prim.Int#)[OneShot]
-                          (ww2 :: GHC.Prim.Int#)[OneShot]
-                          (w4 :: [Text.Parsec.Error.Message])[OneShot] ->
-                        case s' of wild1 { Text.Parsec.Prim.State ds3 ds4 ds5 ->
-                        case ds4 of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                        case GHC.Classes.$fOrd[]_$s$ccompare1 ww10 ww10 of wild2 {
-                          DEFAULT
-                          -> Text.Parsec.Error.$wmergeError
-                               ww
-                               ww1
-                               ww2
-                               w4
-                               ww10
-                               ww11
-                               ww12
-                               (GHC.Types.[] @ Text.Parsec.Error.Message)
-                          GHC.Types.EQ
-                          -> case Text.Parsec.Error.$wmergeError
-                                    ww10
-                                    ww11
-                                    ww12
-                                    Text.Parsec.Error.mergeError1
-                                    ww10
-                                    ww11
-                                    ww12
-                                    (GHC.Types.[]
-                                       @ Text.Parsec.Error.Message) of ww14 { (#,#) ww15 ww16 ->
-                             case ww15 of ww13 { Text.Parsec.Pos.SourcePos ww17 ww18 ww19 ->
-                             Text.Parsec.Error.$wmergeError
-                               ww
-                               ww1
-                               ww2
-                               w4
-                               ww17
-                               ww18
-                               ww19
-                               ww16 } } } } }
-                    } in
-                    case GHC.Classes.$fOrd[]_$s$ccompare1 ww4 ww4 of wild2 {
-                      DEFAULT
-                      -> case $w$j
-                                ww4
-                                ww5
-                                ww6
-                                (GHC.Types.[] @ Text.Parsec.Error.Message) of ww { (#,#) ww1 ww2 ->
-                         Text.Parsec.Error.ParseError ww1 ww2 }
-                      GHC.Types.EQ
-                      -> case $w$j
-                                ww4
-                                ww5
-                                ww6
-                                Text.Parsec.Error.mergeError1 of ww { (#,#) ww1 ww2 ->
-                         Text.Parsec.Error.ParseError ww1 ww2 } } } })) -}
-8f0abeb7e7df6f333f21a0dbc0cad79e
-  $wlowerIdP ::
-    [GHC.Types.Char]
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><L,C(C1(C1(U)))><L,U><L,C(U)>,
-     Inline: [0] -}
-2a21d1d28c9a11075049f738c82584c0
-  $wlvl ::
-    GHC.Base.String
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> a
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 7,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   (ww :: GHC.Base.String)
-                   (ww1 :: Text.Parsec.Pos.SourceName)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: a)
-                   (w :: GHC.Types.Char
-                         -> Text.Parsec.Prim.State GHC.Base.String a
-                         -> Text.Parsec.Error.ParseError
-                         -> Control.Monad.Trans.State.Lazy.State
-                              Language.Fixpoint.Parse.PState b)
-                   (w3 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ a
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   GHC.Unicode.isAlphaNum
-                   @ b
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w
-                   (\ (err :: Text.Parsec.Error.ParseError) ->
-                    let {
-                      err1 :: Text.Parsec.Error.ParseError
-                      = case err of ww5 { Text.Parsec.Error.ParseError ww6 ww7 ->
-                        case Text.Parsec.Prim.$wsetExpectErrors
-                               ww6
-                               ww7
-                               Language.Fixpoint.Parse.whiteSpace_msgs of ww8 { (#,#) ww9 ww10 ->
-                        Text.Parsec.Error.ParseError ww9 ww10 } }
-                    } in
-                    Text.Parsec.Char.$wsatisfy
-                      @ GHC.Base.String
-                      @ (Control.Monad.Trans.State.Lazy.State
-                           Language.Fixpoint.Parse.PState)
-                      @ a
-                      (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                         @ GHC.Types.Char)
-                      Language.Fixpoint.Parse.whiteSpace184
-                      @ b
-                      ww
-                      ww1
-                      ww2
-                      ww3
-                      ww4
-                      w
-                      (\ (err' :: Text.Parsec.Error.ParseError) ->
-                       w3 (Text.Parsec.Error.mergeError err1 err')))) -}
-e931d8e58db18790f858b101c6a0ee77
-  $wlvl1 ::
-    GHC.Base.String
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> a
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 9,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   (ww :: GHC.Base.String)
-                   (ww1 :: Text.Parsec.Pos.SourceName)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: a)
-                   (w :: GHC.Types.Char
-                         -> Text.Parsec.Prim.State GHC.Base.String a
-                         -> Text.Parsec.Error.ParseError
-                         -> Control.Monad.Trans.State.Lazy.State
-                              Language.Fixpoint.Parse.PState b)
-                   (w3 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w4 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 let {
-                   ww5 :: Text.Parsec.Pos.SourcePos
-                   = Text.Parsec.Pos.SourcePos ww1 ww2 ww3
-                 } in
-                 let {
-                   ww6 :: Text.Parsec.Prim.State GHC.Base.String a
-                   = Text.Parsec.Prim.State @ GHC.Base.String @ a ww ww5 ww4
-                 } in
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ a
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   GHC.Unicode.isAlpha
-                   @ b
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w
-                   (\ (err :: Text.Parsec.Error.ParseError) ->
-                    let {
-                      err1 :: Text.Parsec.Error.ParseError
-                      = case err of ww7 { Text.Parsec.Error.ParseError ww8 ww9 ->
-                        case Text.Parsec.Prim.$wsetExpectErrors
-                               ww8
-                               ww9
-                               Language.Fixpoint.Parse.whiteSpace_msgs1 of ww10 { (#,#) ww11 ww12 ->
-                        Text.Parsec.Error.ParseError ww11 ww12 } }
-                    } in
-                    (Language.Fixpoint.Parse.whiteSpace187 @ a)
-                      `cast`
-                    (Text.Parsec.Prim.N:ParsecT[0]
-                         <GHC.Base.String>_R
-                         <a>_R
-                         <Control.Monad.Trans.State.Lazy.State
-                            Language.Fixpoint.Parse.PState>_R
-                         <GHC.Types.Char>_R)
-                      @ b
-                      ww6
-                      w
-                      w3
-                      (\ (y :: GHC.Types.Char)
-                         (s' :: Text.Parsec.Prim.State GHC.Base.String a)
-                         (err' :: Text.Parsec.Error.ParseError) ->
-                       w4 y s' (Text.Parsec.Error.mergeError err1 err'))
-                      (\ (err' :: Text.Parsec.Error.ParseError) ->
-                       w5 (Text.Parsec.Error.mergeError err1 err')))) -}
-f37362f01831a6f637b8f90a402f82c9
-  $wlvl2 ::
-    a
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> ((a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 3,
-     Strictness: <L,U><L,U(U,U(U,U,U),U)><C(C(C(S))),1*C1(C1(C1(U)))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: a)
-                   @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w4 :: (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 w4
-                   (w, case w3 of wild { Text.Parsec.Prim.State ds ds1 ds2 -> ds },
-                    case w3 of wild { Text.Parsec.Prim.State ds ds1 ds2 -> ds1 })
-                   w3
-                   (case w3 of wild { Text.Parsec.Prim.State ds ds1 ds2 ->
-                    case ds1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                    let {
-                      $w$j :: Text.Parsec.Pos.SourceName
-                              -> GHC.Prim.Int#
-                              -> GHC.Prim.Int#
-                              -> [Text.Parsec.Error.Message]
-                              -> (# Text.Parsec.Pos.SourcePos, [Text.Parsec.Error.Message] #)
-                        {- Arity: 4, Strictness: <L,U><S,U><S,U><S,U>, Inline: [0] -}
-                      = \ (ww :: Text.Parsec.Pos.SourceName)[OneShot]
-                          (ww1 :: GHC.Prim.Int#)[OneShot]
-                          (ww2 :: GHC.Prim.Int#)[OneShot]
-                          (w5 :: [Text.Parsec.Error.Message])[OneShot] ->
-                        case GHC.Classes.$fOrd[]_$s$ccompare1 ww4 ww4 of wild2 {
-                          DEFAULT
-                          -> Text.Parsec.Error.$wmergeError
-                               ww
-                               ww1
-                               ww2
-                               w5
-                               ww4
-                               ww5
-                               ww6
-                               (GHC.Types.[] @ Text.Parsec.Error.Message)
-                          GHC.Types.EQ
-                          -> case Text.Parsec.Error.$wmergeError
-                                    ww4
-                                    ww5
-                                    ww6
-                                    Text.Parsec.Error.mergeError1
-                                    ww4
-                                    ww5
-                                    ww6
-                                    (GHC.Types.[]
-                                       @ Text.Parsec.Error.Message) of ww14 { (#,#) ww15 ww16 ->
-                             case ww15 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                             Text.Parsec.Error.$wmergeError
-                               ww
-                               ww1
-                               ww2
-                               w5
-                               ww11
-                               ww12
-                               ww13
-                               ww16 } } }
-                    } in
-                    case GHC.Classes.$fOrd[]_$s$ccompare1 ww4 ww4 of wild2 {
-                      DEFAULT
-                      -> case $w$j
-                                ww4
-                                ww5
-                                ww6
-                                (GHC.Types.[] @ Text.Parsec.Error.Message) of ww { (#,#) ww1 ww2 ->
-                         Text.Parsec.Error.ParseError ww1 ww2 }
-                      GHC.Types.EQ
-                      -> case $w$j
-                                ww4
-                                ww5
-                                ww6
-                                Text.Parsec.Error.mergeError1 of ww { (#,#) ww1 ww2 ->
-                         Text.Parsec.Error.ParseError ww1 ww2 } } } })) -}
-b07ee7949ec31bc4b3ef32d45e2d5bfd
-  $wpoly_go1 ::
-    GHC.Prim.Char#
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-ed793770bcb7720808ea7bf637db3291
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Char#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Char v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-498ad38f2507ecb02fcc73def3846368
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-7d6a85bd2926505e892b6b97f0054c98
-  $wpoly_go4 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-475e0023451b1f13c05b426e64605d14
-  $wqualifierP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Sorts.Sort
-    -> forall b.
-       [GHC.Types.Char]
-       -> Text.Parsec.Pos.SourceName
-       -> GHC.Prim.Int#
-       -> GHC.Prim.Int#
-       -> GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Constraints.Qualifier
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.State
-            Language.Fixpoint.Parse.PState b
-  {- Arity: 9,
-     Strictness: <L,C(C1(C1(C1(C1(U)))))><L,U><L,U><S,U><S,U><S,U><L,C(C1(C1(U)))><L,U><L,C(U)>,
-     Inline: [0] -}
-2fdac443b8ef17849456b8b9d24bc3e5
-  $wsymbolP ::
-    [GHC.Types.Char]
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 9,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><L,C(U)><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: [0],
-     Unfolding: (\ @ b1
-                   (ww :: [GHC.Types.Char])
-                   (ww1 :: Text.Parsec.Pos.SourceName)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Integer.Type.Integer)
-                   (w :: Language.Fixpoint.Types.Names.Symbol
-                         -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                         -> Text.Parsec.Error.ParseError
-                         -> Control.Monad.Trans.State.Lazy.StateT
-                              Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w3 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Language.Fixpoint.Parse.$wcondIdP
-                   Language.Fixpoint.Types.Names.symChars1
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Char>_N))
-                   Language.Fixpoint.Parse.$fInputableSymbol2
-                   @ b1
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   (\ (x8 :: Language.Fixpoint.Types.Names.Symbol) -> w x8)
-                   w3
-                   (\ (x8 :: Language.Fixpoint.Types.Names.Symbol) -> w4 x8)
-                   w5) -}
-43dd356df8e438399595eea6b0a34b59
-  $wupperIdP ::
-    [GHC.Types.Char]
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><L,C(C1(C1(U)))><L,U><L,C(U)>,
-     Inline: [0] -}
-c3195f93a275f01e36875c67f64aa8be
-  $wxs ::
-    GHC.Prim.Int#
-    -> [[Text.Parsec.Expr.Operator
-           GHC.Base.String
-           GHC.Integer.Type.Integer
-           (Control.Monad.Trans.State.Lazy.State
-              Language.Fixpoint.Parse.PState)
-           Language.Fixpoint.Types.Refinements.Expr]]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-5a5eb22c0be234f9fd0b63c398b706c2
-  data Def a
-    = Srt !Language.Fixpoint.Types.Sorts.Sort
-    | Axm !Language.Fixpoint.Types.Refinements.Expr
-    | Cst !(Language.Fixpoint.Types.Constraints.SubC a)
-    | Wfc !(Language.Fixpoint.Types.Constraints.WfC a)
-    | Con !Language.Fixpoint.Types.Names.Symbol
-          !Language.Fixpoint.Types.Sorts.Sort
-    | Dis !Language.Fixpoint.Types.Names.Symbol
-          !Language.Fixpoint.Types.Sorts.Sort
-    | Qul !Language.Fixpoint.Types.Constraints.Qualifier
-    | Kut !Language.Fixpoint.Types.Refinements.KVar
-    | Pack !Language.Fixpoint.Types.Refinements.KVar
-           {-# UNPACK #-}GHC.Types.Int
-    | IBind {-# UNPACK #-}GHC.Types.Int
-            !Language.Fixpoint.Types.Names.Symbol
-            !Language.Fixpoint.Types.Refinements.SortedReft
-    | Opt !GHC.Base.String
-9865ecb332294f16ac6e6c53545080c6
-  data Fixity
-    = FInfix {fpred :: GHC.Base.Maybe GHC.Types.Int,
-              fname :: GHC.Base.String,
-              fop2 :: GHC.Base.Maybe
-                        (Language.Fixpoint.Types.Refinements.Expr
-                         -> Language.Fixpoint.Types.Refinements.Expr
-                         -> Language.Fixpoint.Types.Refinements.Expr),
-              fassoc :: Text.Parsec.Expr.Assoc}
-    | FPrefix {fpred :: GHC.Base.Maybe GHC.Types.Int,
-               fname :: GHC.Base.String,
-               fop1 :: GHC.Base.Maybe
-                         (Language.Fixpoint.Types.Refinements.Expr
-                          -> Language.Fixpoint.Types.Refinements.Expr)}
-    | FPostfix {fpred :: GHC.Base.Maybe GHC.Types.Int,
-                fname :: GHC.Base.String,
-                fop1 :: GHC.Base.Maybe
-                          (Language.Fixpoint.Types.Refinements.Expr
-                           -> Language.Fixpoint.Types.Refinements.Expr)}
-fa3d78e90232aa4f087787a4bf3361ab
-  class Inputable a where
-    rr :: GHC.Base.String -> a
-    rr' :: GHC.Base.String -> GHC.Base.String -> a
-da382a86fa8986891f94ec6e6b3c978a
-  type OpTable =
-    Text.Parsec.Expr.OperatorTable
-      GHC.Base.String
-      GHC.Integer.Type.Integer
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-      Language.Fixpoint.Types.Refinements.Expr
-da382a86fa8986891f94ec6e6b3c978a
-  data PState
-    = PState {fixityTable :: Language.Fixpoint.Parse.OpTable}
-    RecFlag: Recursive
-7e82bacdabb37fe3c45f975daee14978
-  type Parser =
-    Text.Parsec.Prim.ParsecT
-      GHC.Base.String
-      GHC.Integer.Type.Integer
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-    :: * -> *
-b705fbbb46a4f7981d50ea67fcb6fe26
-  type ParserT u a =
-    Text.Parsec.Prim.ParsecT
-      GHC.Base.String
-      u
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-      a
-5a5eb22c0be234f9fd0b63c398b706c2
-  axiom Rep_Def::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Parse.Def a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Def"
-               "Language.Fixpoint.Parse"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (((GHC.Generics.C1
-                 ('GHC.Generics.MetaCons
-                    "Srt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                 (GHC.Generics.S1
-                    ('GHC.Generics.MetaSel
-                       'GHC.Base.Nothing
-                       'GHC.Generics.NoSourceUnpackedness
-                       'GHC.Generics.SourceStrict
-                       'GHC.Generics.DecidedStrict)
-                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort))
-               GHC.Generics.:+: GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Axm" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)))
-              GHC.Generics.:+: (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Cst" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0
-                                        (Language.Fixpoint.Types.Constraints.SubC a)))
-                                GHC.Generics.:+: (GHC.Generics.C1
-                                                    ('GHC.Generics.MetaCons
-                                                       "Wfc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          (Language.Fixpoint.Types.Constraints.WfC
-                                                             a)))
-                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "Con"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           Language.Fixpoint.Types.Names.Symbol)
-                                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                                         ('GHC.Generics.MetaSel
-                                                                                            'GHC.Base.Nothing
-                                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                                            'GHC.Generics.SourceStrict
-                                                                                            'GHC.Generics.DecidedStrict)
-                                                                                         (GHC.Generics.Rec0
-                                                                                            Language.Fixpoint.Types.Sorts.Sort)))))
-             GHC.Generics.:+: ((GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Dis" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Sorts.Sort))
-                                GHC.Generics.:+: (GHC.Generics.C1
-                                                    ('GHC.Generics.MetaCons
-                                                       "Qul" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          Language.Fixpoint.Types.Constraints.Qualifier))
-                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "Kut"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           Language.Fixpoint.Types.Refinements.KVar))))
-                               GHC.Generics.:+: (GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "Pack" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                   (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Refinements.KVar)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Int))
-                                                 GHC.Generics.:+: (GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "IBind"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedUnpack)
-                                                                        (GHC.Generics.Rec0
-                                                                           GHC.Types.Int)
-                                                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             'GHC.Base.Nothing
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.SourceStrict
-                                                                                             'GHC.Generics.DecidedStrict)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             Language.Fixpoint.Types.Names.Symbol)
-                                                                                        GHC.Generics.:*: GHC.Generics.S1
-                                                                                                           ('GHC.Generics.MetaSel
-                                                                                                              'GHC.Base.Nothing
-                                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                                              'GHC.Generics.SourceStrict
-                                                                                                              'GHC.Generics.DecidedStrict)
-                                                                                                           (GHC.Generics.Rec0
-                                                                                                              Language.Fixpoint.Types.Refinements.SortedReft)))
-                                                                   GHC.Generics.:+: GHC.Generics.C1
-                                                                                      ('GHC.Generics.MetaCons
-                                                                                         "Opt"
-                                                                                         'GHC.Generics.PrefixI
-                                                                                         'GHC.Types.False)
-                                                                                      (GHC.Generics.S1
-                                                                                         ('GHC.Generics.MetaSel
-                                                                                            'GHC.Base.Nothing
-                                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                                            'GHC.Generics.SourceStrict
-                                                                                            'GHC.Generics.DecidedStrict)
-                                                                                         (GHC.Generics.Rec0
-                                                                                            GHC.Base.String))))))
-e255b90f5b77fb6631bc12ebd190f806
-  addOperator ::
-    Language.Fixpoint.Parse.Fixity
-    -> Language.Fixpoint.Parse.OpTable
-    -> Language.Fixpoint.Parse.OpTable
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-3b3b273cbfd24c12ca56be95d57b65f9
-  addOperatorP ::
-    Language.Fixpoint.Parse.Fixity -> Language.Fixpoint.Parse.Parser ()
-  {- Arity: 6,
-     Strictness: <L,U><L,U(U,U,U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.addOperatorP1
-                  `cast`
-                (<Language.Fixpoint.Parse.Fixity>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <()>_R)) -}
-505242c3c61e4cd06666169e83bc66fa
-  addOperatorP1 ::
-    Language.Fixpoint.Parse.Fixity
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> (()
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (()
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 6,
-     Strictness: <L,U><L,U(U,U,U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: (\ (op :: Language.Fixpoint.Parse.Fixity)
-                   @ b
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: ()
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta5 :: ()
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 Text.Parsec.Prim.$fMonadStatesParsecT1
-                   @ Language.Fixpoint.Parse.PState
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.$s$fMonadStatesParsecT_$s$fMonadStatesStateT0
-                      @ Language.Fixpoint.Parse.PState)
-                   @ ()
-                   (\ (s5 :: Language.Fixpoint.Parse.PState) ->
-                    (GHC.Tuple.(),
-                     case s5 of wild { Language.Fixpoint.Parse.PState ds ->
-                     Language.Fixpoint.Parse.PState
-                       (Language.Fixpoint.Parse.addOperator op ds) }))
-                   @ b
-                   eta2
-                   eta3
-                   eta4
-                   eta5
-                   eta6) -}
-6a5ad92745cc5bb8c19db619bbf7825b
-  angles ::
-    Language.Fixpoint.Parse.ParserT u a
-    -> Language.Fixpoint.Parse.ParserT u a
-  {- Unfolding: (\ @ u @ a ->
-                 case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ u of wild { Text.Parsec.Token.TokenParser ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ->
-                 ds18 @ a }) -}
-958b53fab18e280eb9d592a5775c0988
-  bindP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.bindP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-c0e82e0b1c9614efa940aa4a0d77b732
-  bindP1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: Language.Fixpoint.Types.Names.Symbol
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: Language.Fixpoint.Types.Names.Symbol
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Text.Parsec.Prim.$fAlternativeParsecT2
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ GHC.Base.String
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Parse.bindP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol>_R))
-                   Language.Fixpoint.Parse.colon
-                   @ b1
-                   eta2
-                   eta3
-                   eta4
-                   eta5
-                   eta6) -}
-afff1e5aa092f15f7c05ce36f432d6ba
-  bindP2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Unfolding: (\ @ b1
-                   (s5 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                   (cok :: (GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol)
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot]
-                   (eok :: (GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol)
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot] ->
-                 case s5 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wcondIdP
-                   Language.Fixpoint.Types.Names.symChars1
-                     `cast`
-                   (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Char>_N))
-                   Language.Fixpoint.Parse.$fInputableSymbol2
-                   @ b1
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   (\ (x8 :: Language.Fixpoint.Types.Names.Symbol) ->
-                    cok (\ (ds :: GHC.Base.String) -> x8))
-                   cerr
-                   (\ (x8 :: Language.Fixpoint.Types.Names.Symbol) ->
-                    eok (\ (ds :: GHC.Base.String) -> x8))
-                   eerr } }) -}
-bc10019ac9556980edfa6a9896931149
-  blanks :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.blanks1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <[GHC.Types.Char]>_R)) -}
-603554875aadf19fb8d1fb4b1572bf1a
-  blanks1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> ([GHC.Types.Char]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> ([GHC.Types.Char]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: [GHC.Types.Char]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: [GHC.Types.Char]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Prim.$wmany
-                   @ GHC.Base.String
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.blanks2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   @ b
-                   w3
-                   w4
-                   w5
-                   w6) -}
-1045e39acf206b35c9aa404259909eda
-  blanks2 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,A><L,A><L,C(U)>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 case w3 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   Language.Fixpoint.Parse.blanks3
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w4
-                   w7 } }) -}
-5c2412cf404c087e8788a930cc59789e
-  blanks3 :: GHC.Types.Char -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: GHC.Types.Char) ->
-                 GHC.List.elem
-                   @ GHC.Types.Char
-                   GHC.Classes.$fEqChar
-                   ds
-                   Language.Fixpoint.Parse.blanks4) -}
-273ea6193adc5c57198ec8e6c298d8aa
-  blanks4 :: [GHC.Types.Char]
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.blanks7
-                   Language.Fixpoint.Parse.blanks5) -}
-4e222a4548b32790f68632b790782753
-  blanks5 :: [GHC.Types.Char]
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.blanks6
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-b9680e6fa711de283783aedd3e0836f3
-  blanks6 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# '\t'#) -}
-761d1e70c12db5a51335166d503f9b8a
-  blanks7 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# ' '#) -}
-292a189be544c5c90266b6c27dc77ba9
-  bops :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState27
-                   Language.Fixpoint.Parse.initPState1) -}
-c27a626552c64fec0b305f825c7cda68
-  braces ::
-    Language.Fixpoint.Parse.ParserT u a
-    -> Language.Fixpoint.Parse.ParserT u a
-  {- Unfolding: (\ @ u @ a ->
-                 case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ u of wild { Text.Parsec.Token.TokenParser ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ->
-                 ds17 @ a }) -}
-079a3db9944443f196722318542f8613
-  brackets ::
-    Language.Fixpoint.Parse.ParserT u a
-    -> Language.Fixpoint.Parse.ParserT u a
-  {- Unfolding: (\ @ u @ a ->
-                 case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ u of wild { Text.Parsec.Token.TokenParser ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ->
-                 ds19 @ a }) -}
-63d0eed17cca2e43a24a023551d1a44b
-  bvSortP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 5, Strictness: <L,U><L,C(U)><L,U><L,C(U)><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.bvSortP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Sorts.Sort>_R)) -}
-a485cd21a09e1eda0d9c436d08457f70
-  bvSortP1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5, Strictness: <L,U><L,C(U)><L,U><L,C(U)><L,C(U)>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: Language.Fixpoint.Types.Sorts.Sort
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: Language.Fixpoint.Types.Sorts.Sort
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 let {
-                   cok :: Language.Fixpoint.Smt.Bitvector.BvSize
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b1
-                     {- Arity: 1, Strictness: <L,1*U>,
-                        Unfolding: InlineRule (1, True, False)
-                                   (\ (x8 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                                    eta3 (Language.Fixpoint.Smt.Bitvector.mkSort x8)) -}
-                   = \ (x8 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                     eta3 (Language.Fixpoint.Smt.Bitvector.mkSort x8)
-                 } in
-                 Language.Fixpoint.Parse.bvSortP_m1
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <GHC.Base.String>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.State
-                         Language.Fixpoint.Parse.PState>_R
-                      <Language.Fixpoint.Smt.Bitvector.BvSize>_R)
-                   @ b1
-                   eta2
-                   cok
-                   eta4
-                   (\ (x8 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                    eta5 (Language.Fixpoint.Smt.Bitvector.mkSort x8))
-                   (\ (err :: Text.Parsec.Error.ParseError) ->
-                    Language.Fixpoint.Parse.bvSortP_n
-                      `cast`
-                    (Text.Parsec.Prim.N:ParsecT[0]
-                         <GHC.Base.String>_R
-                         <GHC.Integer.Type.Integer>_R
-                         <Control.Monad.Trans.State.Lazy.State
-                            Language.Fixpoint.Parse.PState>_R
-                         <Language.Fixpoint.Smt.Bitvector.BvSize>_R)
-                      @ b1
-                      eta2
-                      cok
-                      eta4
-                      (\ (y :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                         (s' :: Text.Parsec.Prim.State
-                                  GHC.Base.String GHC.Integer.Type.Integer)
-                         (err' :: Text.Parsec.Error.ParseError) ->
-                       eta5
-                         (Language.Fixpoint.Smt.Bitvector.mkSort y)
-                         s'
-                         (Text.Parsec.Error.mergeError err err'))
-                      (\ (err' :: Text.Parsec.Error.ParseError) ->
-                       eta6 (Text.Parsec.Error.mergeError err err')))) -}
-a45bb67d7c6a1df377225bacf88005cc
-  bvSortP2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Size64"#) -}
-4e56e524bccfa212d4a3f0901deee76b
-  bvSortP3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Size32"#) -}
-67467db7dde1e4c4c34d0286f34191f0
-  bvSortP_bvSizeP ::
-    GHC.Base.String
-    -> b
-    -> Text.Parsec.Prim.ParsecT
-         GHC.Base.String
-         GHC.Integer.Type.Integer
-         (Control.Monad.Trans.State.Lazy.State
-            Language.Fixpoint.Parse.PState)
-         b
-  {- Arity: 2, Strictness: <L,U><L,U> -}
-ecd720fab6dc5998899f538d25521614
-  bvSortP_m1 ::
-    Text.Parsec.Prim.ParsecT
-      GHC.Base.String
-      GHC.Integer.Type.Integer
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-      Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Unfolding: (Language.Fixpoint.Parse.bvSortP_bvSizeP
-                   @ Language.Fixpoint.Smt.Bitvector.BvSize
-                   Language.Fixpoint.Parse.bvSortP3
-                   Language.Fixpoint.Smt.Bitvector.S32) -}
-75888a04a33c35238c92b4ea0796fb92
-  bvSortP_n ::
-    Text.Parsec.Prim.ParsecT
-      GHC.Base.String
-      GHC.Integer.Type.Integer
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-      Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Unfolding: (Language.Fixpoint.Parse.bvSortP_bvSizeP
-                   @ Language.Fixpoint.Smt.Bitvector.BvSize
-                   Language.Fixpoint.Parse.bvSortP2
-                   Language.Fixpoint.Smt.Bitvector.S64) -}
-31e89c0f38d26403db84ed44f05ed4c9
-  colon :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds24 }) -}
-e1806ee18fb72a8c34baa2fd4babe294
-  comma :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds23 }) -}
-445219731e5967522973e0f3384dbc8d
-  condIdP ::
-    Data.HashSet.HashSet GHC.Types.Char
-    -> (GHC.Base.String -> GHC.Types.Bool)
-    -> Language.Fixpoint.Parse.Parser
-         Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 7,
-     Strictness: <L,U><L,C(U)><S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.condIdP1
-                  `cast`
-                (<Data.HashSet.HashSet GHC.Types.Char>_R
-                 ->_R <GHC.Base.String -> GHC.Types.Bool>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-cb67c49829598e27b67ab59648455bd5
-  condIdP1 ::
-    Data.HashSet.HashSet GHC.Types.Char
-    -> (GHC.Base.String -> GHC.Types.Bool)
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Names.Symbol
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Language.Fixpoint.Types.Names.Symbol
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.State
-            Language.Fixpoint.Parse.PState b
-  {- Arity: 7,
-     Strictness: <L,U><L,C(U)><S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (7, True, False)
-                (\ (w :: Data.HashSet.HashSet GHC.Types.Char)
-                   (w3 :: GHC.Base.String -> GHC.Types.Bool)
-                   @ b
-                   (w4 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w5 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w7 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w8 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 case w4 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wcondIdP
-                   w
-                   w3
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w5
-                   w6
-                   w7
-                   w8 } }) -}
-efafaebc607db34f793abc8a9856ed6d
-  constantP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Constant
-  {- Arity: 5, Strictness: <L,U><L,C(U)><L,U><L,C(U)><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputableConstant1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Refinements.Constant>_R)) -}
-d8d0cfc4642ea07ac00d147195781363
-  dcolon :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.dcolon1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <GHC.Base.String>_R)) -}
-37979d0e64a57ddba5b13066584c25ef
-  dcolon1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (GHC.Base.String
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (GHC.Base.String
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: GHC.Base.String
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: GHC.Base.String
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Text.Parsec.Prim.$fAlternativeParsecT2
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ ()
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.dcolon2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <() -> GHC.Base.String>_R))
-                   Language.Fixpoint.Parse.$fInputable(,)13
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <()>_R))
-                   @ b1
-                   eta2
-                   eta3
-                   eta4
-                   eta5
-                   eta6) -}
-cf0b2f744ce24aa38110ac89b2ef8f61
-  dcolon2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ((() -> GHC.Base.String)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> ((() -> GHC.Base.String)
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Unfolding: (\ @ b1
-                   (s5 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                   (cok :: (() -> GHC.Base.String)
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot]
-                   (eok :: (() -> GHC.Base.String)
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState
-                                Data.Functor.Identity.Identity
-                                b1)[OneShot]
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1)[OneShot] ->
-                 Text.Parsec.Char.string1
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   Language.Fixpoint.Parse.whiteSpace41
-                   @ b1
-                   s5
-                   (\ (x8 :: GHC.Base.String) -> cok (\ (ds :: ()) -> x8))
-                   cerr
-                   (\ (x8 :: GHC.Base.String)[OneShot] -> eok (\ (ds :: ()) -> x8))
-                   eerr) -}
-bcc5e673f23649a45b8a24e36ba4b845
-  defsFInfo ::
-    [Language.Fixpoint.Parse.Def a]
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ @ a (defs :: [Language.Fixpoint.Parse.Def a]) ->
-                 case Language.Fixpoint.Parse.$fInputableFInfoWithOpts9
-                        @ a
-                        defs
-                        (Data.HashMap.Base.Empty
-                           @ GHC.Integer.Type.Integer
-                           @ (Language.Fixpoint.Types.Constraints.SubC a)) of dt { DEFAULT ->
-                 case Language.Fixpoint.Parse.$fInputableFInfoWithOpts8
-                        @ a
-                        defs
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Refinements.KVar
-                           @ (Language.Fixpoint.Types.Constraints.WfC a)) of dt1 { DEFAULT ->
-                 case case Language.Fixpoint.Parse.$fInputableFInfoWithOpts7
-                             @ a
-                             defs of wild {
-                        [] -> Language.Fixpoint.Parse.$fInputableFInfoWithOpts6
-                        : ipv ipv1
-                        -> case GHC.Base.map
-                                  @ (Language.Fixpoint.Types.Environments.BindId,
-                                     Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                                  @ GHC.Types.Int
-                                  (Language.Fixpoint.Misc.fst3
-                                     @ Language.Fixpoint.Types.Environments.BindId
-                                     @ Language.Fixpoint.Types.Names.Symbol
-                                     @ Language.Fixpoint.Types.Refinements.SortedReft)
-                                  wild of wild1 {
-                             []
-                             -> case GHC.List.maximum2
-                                ret_ty Language.Fixpoint.Types.Environments.BindEnv
-                                of {}
-                             : ipv2 ipv3
-                             -> case ipv2 of ww { GHC.Types.I# ww1 ->
-                                case GHC.List.$wgo ipv3 ww1 of ww2 { DEFAULT ->
-                                case Language.Fixpoint.Types.Environments.bindEnvFromList_go
-                                       wild
-                                       (Data.HashMap.Base.Empty
-                                          @ Language.Fixpoint.Types.Environments.BindId
-                                          @ (Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Refinements.SortedReft)) of dt2 { DEFAULT ->
-                                Language.Fixpoint.Types.Environments.BE
-                                  @ (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                                  (GHC.Prim.+# 1# ww2)
-                                  dt2 } } } } } of dt2 { Language.Fixpoint.Types.Environments.BE ipv ipv1 ->
-                 case Language.Fixpoint.Types.Refinements.$dmsubst2
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        (Language.Fixpoint.Parse.$fInputableFInfoWithOpts5 @ a defs)
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           @ Language.Fixpoint.Types.Sorts.Sort) of nt { DEFAULT ->
-                 case Language.Fixpoint.Types.Refinements.$dmsubst2
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        (Language.Fixpoint.Parse.$fInputableFInfoWithOpts4 @ a defs)
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           @ Language.Fixpoint.Types.Sorts.Sort) of nt1 { DEFAULT ->
-                 case Language.Fixpoint.Parse.$fInputableFInfoWithOpts3
-                        @ a
-                        defs
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Refinements.KVar
-                           @ ()) of nt2 { DEFAULT ->
-                 case Language.Fixpoint.Parse.$fInputableFInfoWithOpts2
-                        @ a
-                        defs of dt3 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.FI
-                   @ Language.Fixpoint.Types.Constraints.SubC
-                   @ a
-                   dt
-                   dt1
-                   dt2
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt1
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt2
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))
-                   dt3
-                   (Data.HashMap.Base.Empty @ GHC.Types.Int @ a)
-                   Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmempty1
-                   (GHC.Types.[]
-                      @ (Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr))
-                   Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmempty } } } } } } }) -}
-b1650ae33bbc1e487fe443ff7e748dfb
-  doParse' ::
-    Language.Fixpoint.Parse.Parser a
-    -> Text.Parsec.Pos.SourceName -> GHC.Base.String -> a
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>,
-     Unfolding: (\ @ a
-                   (parser :: Language.Fixpoint.Parse.Parser a)
-                   (f1 :: Text.Parsec.Pos.SourceName)
-                   (s5 :: GHC.Base.String) ->
-                 case ((Text.Parsec.Prim.runPT
-                          @ GHC.Base.String
-                          @ (Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState)
-                          @ GHC.Types.Char
-                          @ GHC.Integer.Type.Integer
-                          @ (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-                          (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                             @ GHC.Types.Char)
-                          (Language.Fixpoint.Parse.doParse'4
-                             @ a
-                             (Text.Parsec.Prim.$fMonadParsecT_$c>>
-                                @ [GHC.Types.Char]
-                                @ GHC.Integer.Type.Integer
-                                @ (Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                                @ ()
-                                @ a
-                                Language.Fixpoint.Parse.whiteSpace
-                                parser))
-                            `cast`
-                          (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                    <[GHC.Types.Char]>_R
-                                    <GHC.Integer.Type.Integer>_R
-                                    <Control.Monad.Trans.State.Lazy.StateT
-                                       Language.Fixpoint.Parse.PState
-                                       Data.Functor.Identity.Identity>_R
-                                    <(a, GHC.Base.String, Text.Parsec.Pos.SourcePos)>_R))
-                          Language.Fixpoint.Parse.doParse'3
-                          f1
-                          s5)
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <Language.Fixpoint.Parse.PState>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Data.Either.Either
-                               Text.Parsec.Error.ParseError
-                               (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)>_N)
-                         Language.Fixpoint.Parse.initPState)
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Data.Either.Either
-                               Text.Parsec.Error.ParseError
-                               (a, GHC.Base.String, Text.Parsec.Pos.SourcePos),
-                             Language.Fixpoint.Parse.PState)>_R) of wild { (,) x8 ds1 ->
-                 case x8 of wild1 {
-                   Data.Either.Left e -> Language.Fixpoint.Parse.doParse'2 @ a f1 e
-                   Data.Either.Right ds
-                   -> case ds of wild2 { (,,) r ds2 ds3 ->
-                      case ds2 of wild3 {
-                        [] -> r
-                        : ipv ipv1
-                        -> Language.Fixpoint.Parse.doParse'1 @ a f1 wild3 ds3 } } } }) -}
-059adf054394edbeb5ef563b83f5b9f2
-  doParse'1 ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Base.String -> Text.Parsec.Pos.SourcePos -> a
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>x -}
-74b62dbebb44a033e38fd40617856b47
-  doParse'2 ::
-    Text.Parsec.Pos.SourceName -> Text.Parsec.Error.ParseError -> a
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-751c9f8e2e81723bcaf2758d1779e3b8
-  doParse'3 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (0) -}
-84f6c626d2d3a1459aec199e1aeeafe4
-  doParse'4 ::
-    Language.Fixpoint.Parse.Parser a
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> ((a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> ((a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 6,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ a
-                   (p3 :: Language.Fixpoint.Parse.Parser a)
-                   @ b
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta5 :: (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 p3
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <[GHC.Types.Char]>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                      <a>_R)
-                   @ b
-                   eta2
-                   (\ (x8 :: a)
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)
-                      (err :: Text.Parsec.Error.ParseError) ->
-                    Language.Fixpoint.Parse.$wlvl2
-                      @ a
-                      x8
-                      @ b
-                      s5
-                      (\ (x9 :: (a, GHC.Base.String, Text.Parsec.Pos.SourcePos))[OneShot]
-                         (s6 :: Text.Parsec.Prim.State
-                                  [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                         (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                       eta3 x9 s6 (Text.Parsec.Error.mergeError err err')))
-                   eta4
-                   (\ (x8 :: a)
-                      (s5 :: Text.Parsec.Prim.State
-                               [GHC.Types.Char] GHC.Integer.Type.Integer)
-                      (err :: Text.Parsec.Error.ParseError) ->
-                    Language.Fixpoint.Parse.$wlvl2
-                      @ a
-                      x8
-                      @ b
-                      s5
-                      (\ (x9 :: (a, GHC.Base.String, Text.Parsec.Pos.SourcePos))[OneShot]
-                         (s6 :: Text.Parsec.Prim.State
-                                  [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                         (err' :: Text.Parsec.Error.ParseError)[OneShot] ->
-                       eta5 x9 s6 (Text.Parsec.Error.mergeError err err')))
-                   eta6) -}
-3f459658bfda2c928bd3148d152751c6
-  emptyDef ::
-    GHC.Base.Monad m =>
-    Text.Parsec.Token.GenLanguageDef GHC.Base.String a m
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)> -}
-1204a6cf7d941105a514f42dbdb9f195
-  expr0P ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputableExpr4
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Refinements.Expr>_R)) -}
-ffa8df336421a422f0b210c9ffc23c6b
-  exprP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 6,
-     Strictness: <L,U(U,U,U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)><S(S),1*U(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputableExpr1
-                  `cast`
-                (Trans
-                     (forall (b1 :: <*>_N).
-                      <Text.Parsec.Prim.State
-                         [GHC.Types.Char] GHC.Integer.Type.Integer>_R
-                      ->_R <Language.Fixpoint.Types.Refinements.Expr
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1>_R
-                      ->_R <Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1>_R
-                      ->_R <Language.Fixpoint.Types.Refinements.Expr
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1>_R
-                      ->_R <Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1>_R
-                      ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                    <Language.Fixpoint.Parse.PState>_N
-                                    <Data.Functor.Identity.Identity>_R
-                                    <b1>_N))
-                     (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.Expr>_R))) -}
-8b13140eb0ccce451989813a8cd44f96
-  fassoc :: Language.Fixpoint.Parse.Fixity -> Text.Parsec.Expr.Assoc
-  RecSel Left Language.Fixpoint.Parse.Fixity
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.Fixity) ->
-                 case ds of wild {
-                   DEFAULT -> Language.Fixpoint.Parse.fassoc1
-                   Language.Fixpoint.Parse.FInfix ds1 ds2 ds3 ds4 -> ds4 }) -}
-d4d4697236a0b258ee81f630de8868cc
-  fassoc1 :: Text.Parsec.Expr.Assoc
-  {- Strictness: x -}
-a68a7464bd6ff019f73a87774ad5cd0c
-  fixResultP ::
-    Language.Fixpoint.Parse.Parser a
-    -> Language.Fixpoint.Parse.Parser
-         (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 1, Strictness: <L,C(C1(C1(C1(C1(U)))))> -}
-cb46d206ebdd2d360d7e88f2a5aa7873
-  fixityTable ::
-    Language.Fixpoint.Parse.PState -> Language.Fixpoint.Parse.OpTable
-  RecSel Left Language.Fixpoint.Parse.PState
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.PState) ->
-                 case ds of wild { Language.Fixpoint.Parse.PState ds1 -> ds1 }) -}
-fbbd12871b7cd4ef4ec1711fc782b754
-  fname :: Language.Fixpoint.Parse.Fixity -> GHC.Base.String
-  RecSel Left Language.Fixpoint.Parse.Fixity
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.Fixity) ->
-                 case ds of wild {
-                   Language.Fixpoint.Parse.FInfix ds1 ds2 ds3 ds4 -> ds2
-                   Language.Fixpoint.Parse.FPrefix ds1 ds2 ds3 -> ds2
-                   Language.Fixpoint.Parse.FPostfix ds1 ds2 ds3 -> ds2 }) -}
-2a8c876ad663ed25d77386e1496a693a
-  fop1 ::
-    Language.Fixpoint.Parse.Fixity
-    -> GHC.Base.Maybe
-         (Language.Fixpoint.Types.Refinements.Expr
-          -> Language.Fixpoint.Types.Refinements.Expr)
-  RecSel Left Language.Fixpoint.Parse.Fixity
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.Fixity) ->
-                 case ds of wild {
-                   Language.Fixpoint.Parse.FInfix ipv ipv1 ipv2 ipv3
-                   -> Language.Fixpoint.Parse.fop4
-                   Language.Fixpoint.Parse.FPrefix ds1 ds2 ds3 -> ds3
-                   Language.Fixpoint.Parse.FPostfix ds1 ds2 ds3 -> ds3 }) -}
-4752bc9c8dc2162149a8d92c0311d745
-  fop2 ::
-    Language.Fixpoint.Parse.Fixity
-    -> GHC.Base.Maybe
-         (Language.Fixpoint.Types.Refinements.Expr
-          -> Language.Fixpoint.Types.Refinements.Expr
-          -> Language.Fixpoint.Types.Refinements.Expr)
-  RecSel Left Language.Fixpoint.Parse.Fixity
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.Fixity) ->
-                 case ds of wild {
-                   DEFAULT -> Language.Fixpoint.Parse.fop5
-                   Language.Fixpoint.Parse.FInfix ds1 ds2 ds3 ds4 -> ds3 }) -}
-4a2fd92b627195f1a67f15a8c0883208
-  fop4 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- Strictness: x -}
-4a5cf6db09c27dcfb2dd86f467a29918
-  fop5 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- Strictness: x -}
-32cff2f761cddfd013ad777399e9a3f0
-  fpred ::
-    Language.Fixpoint.Parse.Fixity -> GHC.Base.Maybe GHC.Types.Int
-  RecSel Left Language.Fixpoint.Parse.Fixity
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Parse.Fixity) ->
-                 case ds of wild {
-                   Language.Fixpoint.Parse.FInfix ds1 ds2 ds3 ds4 -> ds1
-                   Language.Fixpoint.Parse.FPrefix ds1 ds2 ds3 -> ds1
-                   Language.Fixpoint.Parse.FPostfix ds1 ds2 ds3 -> ds1 }) -}
-78a091a2bed8a9746f3f0e81a03ca305
-  freshIntP ::
-    Language.Fixpoint.Parse.Parser GHC.Integer.Type.Integer
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,A><L,A><C(C(C(S))),1*C1(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.freshIntP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <GHC.Integer.Type.Integer>_R)) -}
-917070b8ced261d1d7f3f61163583178
-  freshIntP1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (GHC.Integer.Type.Integer
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (GHC.Integer.Type.Integer
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,A><L,A><C(C(C(S))),1*C1(C1(C1(U)))><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: GHC.Integer.Type.Integer
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: GHC.Integer.Type.Integer
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 Language.Fixpoint.Parse.$wfreshIntP @ b1 w w5) -}
-8ee08a3c475d8671924528d635d81be4
-  freshIntP2 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-8a1923fffce3eba1893dac255324b0ea
-  funAppP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputableExpr3
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Refinements.Expr>_R)) -}
-f23f931525ed6c473a0b717fff1fd920
-  infixIdP :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.infixIdP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <[GHC.Types.Char]>_R)) -}
-97c4c35f1870074216ef75df94dcc84f
-  infixIdP1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> ([GHC.Types.Char]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> ([GHC.Types.Char]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: [GHC.Types.Char]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: [GHC.Types.Char]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Prim.$wmany
-                   @ GHC.Base.String
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.infixIdP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   @ b
-                   w3
-                   w4
-                   w5
-                   w6) -}
-4b4b48bcf0834e31df7be213de10677f
-  infixIdP2 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,A><L,A><L,C(U)>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 case w3 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Integer.Type.Integer
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   Language.Fixpoint.Parse.infixIdP3
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w4
-                   w7 } }) -}
-c5f89b9d1706ffab0ba4818fac2c4ff6
-  infixIdP3 :: GHC.Types.Char -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: GHC.Types.Char) ->
-                 case GHC.List.elem
-                        @ GHC.Types.Char
-                        GHC.Classes.$fEqChar
-                        ds
-                        Language.Fixpoint.Parse.infixIdP4 of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-b2191a3d5fb6f728a62dd1c59114aeb3
-  infixIdP4 :: [GHC.Types.Char]
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.blanks7
-                   Language.Fixpoint.Parse.infixIdP5) -}
-415dca27e4796faf0bea5501e4585fb6
-  infixIdP5 :: [GHC.Types.Char]
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Parse.infixIdP6
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-bc1dc0696500bbeb63cf65dcc81866fd
-  infixIdP6 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# '.'#) -}
-f7f8710e403c928c7eebcac28fd43812
-  initPState :: Language.Fixpoint.Parse.PState
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Parse.PState
-                   Language.Fixpoint.Parse.bops) -}
-2baebf508b653c82be2c85035c4000a9
-  initPState1 :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState24
-                   Language.Fixpoint.Parse.initPState2) -}
-998dd32fb5cc834cadcead6f655881bf
-  initPState10 :: GHC.Types.Int
-  {- HasNoCafRefs, Unfolding: (GHC.Types.I# 9#) -}
-961cdc9c6de6501e786781eb2e4ee4dd
-  initPState11 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FInfix
-                   Language.Fixpoint.Parse.initPState14
-                   Language.Fixpoint.Parse.whiteSpace75
-                   Language.Fixpoint.Parse.initPState12
-                   Text.Parsec.Expr.AssocLeft) -}
-e7d2d0d571bdb79ce7cec4a26fe19e5a
-  initPState12 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.initPState13) -}
-d2e85953822cf2202c237727802102be
-  initPState13 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Refinements.$WEBin
-                   Language.Fixpoint.Types.Refinements.Times) -}
-7d8a16820c35860d9b021c6a7cafac25
-  initPState14 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Parse.initPState15) -}
-3f92e9d5da60823aab96d9943d77d5c7
-  initPState15 :: GHC.Types.Int
-  {- HasNoCafRefs, Unfolding: (GHC.Types.I# 7#) -}
-86229633988af1d72cc463222c60b110
-  initPState16 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FInfix
-                   Language.Fixpoint.Parse.initPState14
-                   Language.Fixpoint.Parse.whiteSpace74
-                   Language.Fixpoint.Parse.initPState17
-                   Text.Parsec.Expr.AssocLeft) -}
-82d119657e6272ad1b50b3801550d416
-  initPState17 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.initPState18) -}
-8076f4976d14d5a65c521aa869157784
-  initPState18 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Refinements.$WEBin
-                   Language.Fixpoint.Types.Refinements.Div) -}
-d21b1fe03756fd33a65da6a82b2cc17c
-  initPState19 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FInfix
-                   Language.Fixpoint.Parse.initPState22
-                   Language.Fixpoint.Parse.whiteSpace76
-                   Language.Fixpoint.Parse.initPState20
-                   Text.Parsec.Expr.AssocLeft) -}
-246a60c4f7e539264f7015a9804c2b42
-  initPState2 :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState19
-                   Language.Fixpoint.Parse.initPState3) -}
-ce0545018167eb75c4ff1baf0b27c764
-  initPState20 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.initPState21) -}
-67431c388d5364d7a61dd1b5fb2ed01d
-  initPState21 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Refinements.$WEBin
-                   Language.Fixpoint.Types.Refinements.Minus) -}
-db89094bb84351ec52a0a1dd9ae37444
-  initPState22 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Parse.initPState23) -}
-01dfbbd51b6ecf855ca77e88550d6775
-  initPState23 :: GHC.Types.Int
-  {- HasNoCafRefs, Unfolding: (GHC.Types.I# 6#) -}
-7bcbf61f9ed63638ad3e695b00a1ca3c
-  initPState24 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FInfix
-                   Language.Fixpoint.Parse.initPState22
-                   Language.Fixpoint.Parse.whiteSpace77
-                   Language.Fixpoint.Parse.initPState25
-                   Text.Parsec.Expr.AssocLeft) -}
-f048e609e2cbf8645e67b27bd967d3d0
-  initPState25 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.initPState26) -}
-01ccd68b2ca9bb6cb55da14cef08fc61
-  initPState26 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Refinements.$WEBin
-                   Language.Fixpoint.Types.Refinements.Plus) -}
-2d34b17ea37233fdad49f88618aaa5e4
-  initPState27 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FInfix
-                   Language.Fixpoint.Parse.initPState30
-                   Language.Fixpoint.Parse.whiteSpace64
-                   Language.Fixpoint.Parse.initPState28
-                   Text.Parsec.Expr.AssocLeft) -}
-186dbd11b7e81216c9fdb4e80dbc3ecd
-  initPState28 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Parse.initPState29) -}
-b2d55155f7a239b49131aee629aa6560
-  initPState29 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Refinements.$WEBin
-                   Language.Fixpoint.Types.Refinements.Mod) -}
-a46aa666c63d08980a849c072f7e53f0
-  initPState3 :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState16
-                   Language.Fixpoint.Parse.initPState4) -}
-c8cb0fc2131f66ac8dda4b03ff991fcc
-  initPState30 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Parse.initPState31) -}
-1bc84ac02a3fccf8b7ed8f962696bbf4
-  initPState31 :: GHC.Types.Int
-  {- HasNoCafRefs, Unfolding: (GHC.Types.I# 5#) -}
-209d3f2e46bcc2120e718d9f7f6a6d1b
-  initPState4 :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState11
-                   Language.Fixpoint.Parse.initPState5) -}
-3b07ab785c772a8ff5cb50bb5a565bac
-  initPState5 :: Language.Fixpoint.Parse.OpTable
-  {- Unfolding: (Language.Fixpoint.Parse.addOperator
-                   Language.Fixpoint.Parse.initPState7
-                   Language.Fixpoint.Parse.initPState6) -}
-2eb6990f76b7871f2c0c0db672b3a31b
-  initPState6 ::
-    [[Text.Parsec.Expr.Operator
-        GHC.Base.String
-        GHC.Integer.Type.Integer
-        (Control.Monad.Trans.State.Lazy.State
-           Language.Fixpoint.Parse.PState)
-        Language.Fixpoint.Types.Refinements.Expr]]
-  {- Unfolding: (Language.Fixpoint.Parse.$wxs 10#) -}
-71ecbd15bd2263b7e078d41d4f22b508
-  initPState7 :: Language.Fixpoint.Parse.Fixity
-  {- Unfolding: (Language.Fixpoint.Parse.FPrefix
-                   Language.Fixpoint.Parse.initPState9
-                   Language.Fixpoint.Parse.whiteSpace76
-                   Language.Fixpoint.Parse.initPState8) -}
-a6b23fe3315a09ad3298bd0fff249553
-  initPState8 ::
-    GHC.Base.Maybe
-      (Language.Fixpoint.Types.Refinements.Expr
-       -> Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ (Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Types.Refinements.$WENeg) -}
-8f757681e48882e513e0cf09f8a89e3f
-  initPState9 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Parse.initPState10) -}
-0e8b15a73c7c3bcd44f72e94b38fe6ee
-  integer :: Language.Fixpoint.Parse.Parser GHC.Integer.Type.Integer
-  {- Arity: 5,
-     Strictness: <L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputable(,)9
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <GHC.Integer.Type.Integer>_R)) -}
-f389e3fa20c2719b94965b9f99fd2f47
-  isSmall :: GHC.Types.Char -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (c :: GHC.Types.Char) ->
-                 case c of wild { GHC.Types.C# c# ->
-                 case {__pkg_ccall base-4.9.1.0 u_iswlower GHC.Prim.Int#
-                                                           -> GHC.Prim.State# GHC.Prim.RealWorld
-                                                           -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                                                                 GHC.Prim.Int# #)}
-                        (GHC.Prim.ord# c#)
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds ds1 ->
-                 case ds1 of wild2 {
-                   DEFAULT -> GHC.Types.True
-                   0#
-                   -> case c# of wild4 {
-                        DEFAULT -> GHC.Types.False '_'# -> GHC.Types.True } } } }) -}
-b2d874b9ac99e536b15b1b02f5c332ae
-  lexer ::
-    GHC.Base.Monad m =>
-    Text.Parsec.Token.GenTokenParser GHC.Base.String u m
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *) @ u ($dMonad :: GHC.Base.Monad m) ->
-                 Text.Parsec.Token.makeTokenParser
-                   @ GHC.Base.String
-                   @ m
-                   @ u
-                   (Text.Parsec.Prim.$fStream[]mtok @ m @ GHC.Types.Char $dMonad)
-                   (case Language.Fixpoint.Parse.emptyDef
-                           @ m
-                           @ u
-                           $dMonad of wild { Text.Parsec.Token.LanguageDef ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                    Text.Parsec.Token.LanguageDef
-                      @ GHC.Base.String
-                      @ u
-                      @ m
-                      Language.Fixpoint.Parse.whiteSpace191
-                      Language.Fixpoint.Parse.whiteSpace190
-                      Language.Fixpoint.Parse.whiteSpace189
-                      ds3
-                      ds4
-                      ds5
-                      ds6
-                      ds7
-                      Language.Fixpoint.Parse.whiteSpace78
-                      Language.Fixpoint.Parse.whiteSpace2
-                      ds10 })) -}
-c6a832d12a1767d568b5d73875e6a81d
-  locLowerIdP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Names.LocSymbol
-  {- Arity: 5,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.locLowerIdP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Spans.Located
-                             Language.Fixpoint.Types.Names.Symbol>_R)) -}
-17e8b62796368fdf162c8a9cd6c71e4a
-  locLowerIdP1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Spans.Located
-          Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Language.Fixpoint.Types.Spans.Located
-          Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5,
-     Unfolding: (Language.Fixpoint.Parse.locLowerIdP3
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Parse.locLowerIdP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))) -}
-db8a0b2c9feb89eaf90301e259622276
-  locLowerIdP2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wlowerIdP
-                   @ b1
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w4
-                   w6 } }) -}
-e9fe056bf12e87250917f0e8dd0d3f18
-  locLowerIdP3 ::
-    Language.Fixpoint.Parse.Parser a
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Spans.Located a
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Language.Fixpoint.Types.Spans.Located a
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 6,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)> -}
-df97a22b988ade4cff6e420970263951
-  locParserP ::
-    Language.Fixpoint.Parse.Parser a
-    -> Language.Fixpoint.Parse.Parser
-         (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 6,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.locLowerIdP3
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Parse.Parser a>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Spans.Located a>_R)) -}
-cea467b684533a2eb275ce0278a30f2d
-  locUpperIdP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Names.LocSymbol
-  {- Arity: 5,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.locUpperIdP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Spans.Located
-                             Language.Fixpoint.Types.Names.Symbol>_R)) -}
-83658b133943f8f5e81af2c1e902b6e8
-  locUpperIdP1 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Spans.Located
-          Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Language.Fixpoint.Types.Spans.Located
-          Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5,
-     Unfolding: (Language.Fixpoint.Parse.locLowerIdP3
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Parse.locUpperIdP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))) -}
-43b40cf1eef901ce02e464421aade3cb
-  locUpperIdP2 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Language.Fixpoint.Types.Names.Symbol
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b1
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b1
-                   (w :: Text.Parsec.Prim.State
-                           [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w5 :: Language.Fixpoint.Types.Names.Symbol
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState
-                               Data.Functor.Identity.Identity
-                               b1) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wupperIdP
-                   @ b1
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w4
-                   w6 } }) -}
-d39eb00d9312f7975dbaaf39dd90e92d
-  lowerIdP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.locLowerIdP2
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-03fc5f0ded77dbc9811fce80fa81c766
-  pairP ::
-    Language.Fixpoint.Parse.Parser a
-    -> Language.Fixpoint.Parse.Parser z
-    -> Language.Fixpoint.Parse.Parser b
-    -> Language.Fixpoint.Parse.Parser (a, b)
-  {- Arity: 8,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))><L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.pairP1
-                  `cast`
-                (forall (a :: <*>_N) (z :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.Parse.Parser a>_R
-                 ->_R <Language.Fixpoint.Parse.Parser z>_R
-                 ->_R <Language.Fixpoint.Parse.Parser b>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <(a, b)>_R)) -}
-9b06a77380cde1823cde5f89702be1e7
-  pairP1 ::
-    Language.Fixpoint.Parse.Parser a
-    -> Language.Fixpoint.Parse.Parser z
-    -> Language.Fixpoint.Parse.Parser b
-    -> forall b1.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> ((a, b)
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-       -> ((a, b)
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1
-  {- Arity: 8,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))><L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: (\ @ a
-                   @ z
-                   @ b
-                   (xP :: Language.Fixpoint.Parse.Parser a)
-                   (sepP :: Language.Fixpoint.Parse.Parser z)
-                   (yP :: Language.Fixpoint.Parse.Parser b)
-                   @ b1
-                   (eta2 :: Text.Parsec.Prim.State
-                              [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (eta3 :: (a, b)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta4 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta5 :: (a, b)
-                            -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                            -> Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b1)
-                   (eta6 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.StateT
-                                 Language.Fixpoint.Parse.PState
-                                 Data.Functor.Identity.Identity
-                                 b1) ->
-                 Text.Parsec.Prim.$fAlternativeParsecT2
-                   @ [GHC.Types.Char]
-                   @ GHC.Integer.Type.Integer
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                   @ b
-                   @ (a, b)
-                   (\ @ b2
-                      (eta7 :: Text.Parsec.Prim.State
-                                 [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                      (eta8 :: (b -> (a, b))
-                               -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                               -> Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b2)[OneShot]
-                      (eta9 :: Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.StateT
-                                    Language.Fixpoint.Parse.PState
-                                    Data.Functor.Identity.Identity
-                                    b2)[OneShot]
-                      (eta10 :: (b -> (a, b))
-                                -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                                -> Text.Parsec.Error.ParseError
-                                -> Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState
-                                     Data.Functor.Identity.Identity
-                                     b2)[OneShot]
-                      (eta11 :: Text.Parsec.Error.ParseError
-                                -> Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState
-                                     Data.Functor.Identity.Identity
-                                     b2)[OneShot] ->
-                    Text.Parsec.Prim.$fAlternativeParsecT2
-                      @ [GHC.Types.Char]
-                      @ GHC.Integer.Type.Integer
-                      @ (Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                      @ z
-                      @ (b -> (a, b))
-                      (\ @ b3
-                         (s5 :: Text.Parsec.Prim.State
-                                  [GHC.Types.Char] GHC.Integer.Type.Integer)[OneShot]
-                         (cok :: (z -> b -> (a, b))
-                                 -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                                 -> Text.Parsec.Error.ParseError
-                                 -> Control.Monad.Trans.State.Lazy.StateT
-                                      Language.Fixpoint.Parse.PState
-                                      Data.Functor.Identity.Identity
-                                      b3)[OneShot]
-                         (cerr :: Text.Parsec.Error.ParseError
-                                  -> Control.Monad.Trans.State.Lazy.StateT
-                                       Language.Fixpoint.Parse.PState
-                                       Data.Functor.Identity.Identity
-                                       b3)[OneShot]
-                         (eok :: (z -> b -> (a, b))
-                                 -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                                 -> Text.Parsec.Error.ParseError
-                                 -> Control.Monad.Trans.State.Lazy.StateT
-                                      Language.Fixpoint.Parse.PState
-                                      Data.Functor.Identity.Identity
-                                      b3)[OneShot]
-                         (eerr :: Text.Parsec.Error.ParseError
-                                  -> Control.Monad.Trans.State.Lazy.StateT
-                                       Language.Fixpoint.Parse.PState
-                                       Data.Functor.Identity.Identity
-                                       b3)[OneShot] ->
-                       xP
-                         `cast`
-                       (Text.Parsec.Prim.N:ParsecT[0]
-                            <[GHC.Types.Char]>_R
-                            <GHC.Integer.Type.Integer>_R
-                            <Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                            <a>_R)
-                         @ b3
-                         s5
-                         (\ (x8 :: a) -> cok (\ (ds :: z) (eta12 :: b) -> (x8, eta12)))
-                         cerr
-                         (\ (x8 :: a) -> eok (\ (ds :: z) (eta12 :: b) -> (x8, eta12)))
-                         eerr)
-                        `cast`
-                      (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                <[GHC.Types.Char]>_R
-                                <GHC.Integer.Type.Integer>_R
-                                <Control.Monad.Trans.State.Lazy.StateT
-                                   Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                                <z -> b -> (a, b)>_R))
-                      sepP
-                      @ b2
-                      eta7
-                      eta8
-                      eta9
-                      eta10
-                      eta11)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <b -> (a, b)>_R))
-                   yP
-                   @ b1
-                   eta2
-                   eta3
-                   eta4
-                   eta5
-                   eta6) -}
-71795e8bb7f4badf1ca224693648a25f
-  parens ::
-    Language.Fixpoint.Parse.ParserT u a
-    -> Language.Fixpoint.Parse.ParserT u a
-  {- Unfolding: (\ @ u @ a ->
-                 case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ u of wild { Text.Parsec.Token.TokenParser ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ->
-                 ds16 @ a }) -}
-e29708dafd72eeb7b33ebab28ef3cf0e
-  parseFromFile ::
-    Language.Fixpoint.Parse.Parser b
-    -> Text.Parsec.Pos.SourceName -> GHC.Types.IO b
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.parseFromFile1
-                  `cast`
-                (forall (b :: <*>_N).
-                 <Language.Fixpoint.Parse.Parser b>_R
-                 ->_R <Text.Parsec.Pos.SourceName>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <b>_R)) -}
-cfdd193aef067686ab91f6c205c96d71
-  parseFromFile1 ::
-    Language.Fixpoint.Parse.Parser b
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, b #)
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: (\ @ b
-                   (p3 :: Language.Fixpoint.Parse.Parser b)
-                   (f1 :: Text.Parsec.Pos.SourceName)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.IO.Handle.FD.openFile1
-                        f1
-                        GHC.IO.IOMode.ReadMode
-                        eta2 of ds1 { (#,#) ipv ipv1 ->
-                 case GHC.IO.Handle.Text.hGetContents1
-                        ipv1
-                        ipv of ds { (#,#) ipv2 ipv3 ->
-                 (# ipv2, Language.Fixpoint.Parse.doParse' @ b p3 f1 ipv3 #) } }) -}
-897d0efedd2e6def078679fb21c510a2
-  predP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Expr
-655dfdcc4ae2defdee1615faa5d0dc19
-  predsP ::
-    Language.Fixpoint.Parse.Parser
-      [Language.Fixpoint.Types.Refinements.Expr]
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ->
-                 ds19
-                   @ [Language.Fixpoint.Types.Refinements.Expr]
-                   Language.Fixpoint.Parse.refP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <[Language.Fixpoint.Types.Refinements.Expr]>_R)) }) -}
-82bc590979bb9505703f102051119a8e
-  qualifierP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Parse.Parser
-         Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 6,
-     Strictness: <L,C(C1(C1(C1(C1(U)))))><S(LS(LSS)S),U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.qualifierP1
-                  `cast`
-                (<Language.Fixpoint.Parse.Parser
-                    Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Constraints.Qualifier>_R)) -}
-546b2f1f01210e5f5754cc192baa4a18
-  qualifierP1 ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Sorts.Sort
-    -> forall b.
-       Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Constraints.Qualifier
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Language.Fixpoint.Types.Constraints.Qualifier
-           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.StateT
-                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-       -> Control.Monad.Trans.State.Lazy.StateT
-            Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 6,
-     Strictness: <L,C(C1(C1(C1(C1(U)))))><S(LS(LSS)S),U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ (w :: Language.Fixpoint.Parse.Parser
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (w4 :: Language.Fixpoint.Types.Constraints.Qualifier
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w6 :: Language.Fixpoint.Types.Constraints.Qualifier
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 case w3 of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wqualifierP
-                   w
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w4
-                   w5
-                   w7 } }) -}
-b8ba6fcb308468cf4228c6cef620df46
-  refBindP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Parse.Parser
-         Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Parse.Parser
-         (Language.Fixpoint.Types.Refinements.Reft -> a)
-    -> Language.Fixpoint.Parse.Parser a
-  {- Arity: 3,
-     Strictness: <L,C(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))> -}
-42281e6dd2c400f97f4a3851537a36a7
-  refDefP ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Parse.Parser
-         Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Parse.Parser
-         (Language.Fixpoint.Types.Refinements.Reft -> a)
-    -> Language.Fixpoint.Parse.Parser a
-  {- Arity: 3,
-     Strictness: <L,U><L,C(C1(C1(C1(C1(U)))))><L,C(C1(C1(C1(C1(U)))))>,
-     Unfolding: (\ @ a
-                   (x8 :: Language.Fixpoint.Types.Names.Symbol)
-                   (eta2 :: Language.Fixpoint.Parse.Parser
-                              Language.Fixpoint.Types.Refinements.Expr)
-                   (eta3 :: Language.Fixpoint.Parse.Parser
-                              (Language.Fixpoint.Types.Refinements.Reft -> a)) ->
-                 Language.Fixpoint.Parse.refBindP
-                   @ a
-                   (\ @ b
-                      (s5 :: Text.Parsec.Prim.State
-                               GHC.Base.String GHC.Integer.Type.Integer)
-                      (cok :: Language.Fixpoint.Types.Names.Symbol
-                              -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                              -> Text.Parsec.Error.ParseError
-                              -> Control.Monad.Trans.State.Lazy.State
-                                   Language.Fixpoint.Parse.PState b)[OneShot]
-                      (cerr :: Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.State
-                                    Language.Fixpoint.Parse.PState b)[OneShot]
-                      (eok :: Language.Fixpoint.Types.Names.Symbol
-                              -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                              -> Text.Parsec.Error.ParseError
-                              -> Control.Monad.Trans.State.Lazy.State
-                                   Language.Fixpoint.Parse.PState b)[OneShot]
-                      (eerr :: Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.State
-                                    Language.Fixpoint.Parse.PState b)[OneShot] ->
-                    let {
-                      eerr1 :: Text.Parsec.Error.ParseError
-                               -> Control.Monad.Trans.State.Lazy.State
-                                    Language.Fixpoint.Parse.PState b
-                        {- Arity: 1, Strictness: <L,1*U(U(U,U,U),U)> -}
-                      = \ (err :: Text.Parsec.Error.ParseError) ->
-                        eok
-                          x8
-                          s5
-                          (case s5 of wild { Text.Parsec.Prim.State ds3 ds4 ds5 ->
-                           case ds4 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                           case err of ww { Text.Parsec.Error.ParseError ww1 ww2 ->
-                           case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                           case Text.Parsec.Error.$wmergeError
-                                  ww4
-                                  ww5
-                                  ww6
-                                  ww2
-                                  ww11
-                                  ww12
-                                  ww13
-                                  (GHC.Types.[]
-                                     @ Text.Parsec.Error.Message) of ww14 { (#,#) ww15 ww16 ->
-                           Text.Parsec.Error.ParseError ww15 ww16 } } } } })
-                    } in
-                    Text.Parsec.Prim.$fAlternativeParsecT2
-                      @ [GHC.Types.Char]
-                      @ GHC.Integer.Type.Integer
-                      @ (Control.Monad.Trans.State.Lazy.StateT
-                           Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                      @ GHC.Base.String
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      Language.Fixpoint.Parse.bindP2
-                        `cast`
-                      (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                                <[GHC.Types.Char]>_R
-                                <GHC.Integer.Type.Integer>_R
-                                <Control.Monad.Trans.State.Lazy.StateT
-                                   Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                                <GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol>_R))
-                      Language.Fixpoint.Parse.colon
-                      @ b
-                      s5
-                      cok
-                      eerr1
-                      eok
-                      eerr1)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))
-                   eta2
-                   eta3) -}
-4f7ff747e36f0b36c0787eb44300822b
-  refP ::
-    Language.Fixpoint.Parse.Parser
-      (Language.Fixpoint.Types.Refinements.Reft -> a)
-    -> Language.Fixpoint.Parse.Parser a
-  {- Arity: 1,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Parse.refBindP
-                   @ a
-                   Language.Fixpoint.Parse.bindP1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Names.Symbol>_R))
-                   Language.Fixpoint.Parse.refP1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Types.Refinements.Pred>_R))) -}
-5121f8a8c4f479744597fd18e2f0f469
-  refP1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Refinements.Pred
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Refinements.Pred
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,C(U)><L,C(U)>,
-     Unfolding: (\ @ b
-                   (s5 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (cok :: Language.Fixpoint.Types.Refinements.Pred
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (cerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b)
-                   (eok :: Language.Fixpoint.Types.Refinements.Pred
-                           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState b)
-                   (eerr :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b) ->
-                 let {
-                   eerr1 :: Text.Parsec.Error.ParseError
-                            -> Control.Monad.Trans.State.Lazy.State
-                                 Language.Fixpoint.Parse.PState b
-                     {- Arity: 1, Strictness: <L,U(U(U,U,U),U)> -}
-                   = \ (err :: Text.Parsec.Error.ParseError) ->
-                     Language.Fixpoint.Parse.predP
-                       `cast`
-                     (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Refinements.Pred>_R)
-                       @ b
-                       s5
-                       cok
-                       cerr
-                       (\ (y :: Language.Fixpoint.Types.Refinements.Pred)
-                          (s' :: Text.Parsec.Prim.State
-                                   GHC.Base.String GHC.Integer.Type.Integer)
-                          (err' :: Text.Parsec.Error.ParseError) ->
-                        eok y s' (Text.Parsec.Error.mergeError err err'))
-                       (\ (err' :: Text.Parsec.Error.ParseError) ->
-                        eerr (Text.Parsec.Error.mergeError err err'))
-                 } in
-                 Language.Fixpoint.Parse.predsP
-                   `cast`
-                 (Text.Parsec.Prim.N:ParsecT[0]
-                      <[GHC.Types.Char]>_R
-                      <GHC.Integer.Type.Integer>_R
-                      <Control.Monad.Trans.State.Lazy.StateT
-                         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                      <Language.Fixpoint.Misc.ListNE
-                         Language.Fixpoint.Types.Refinements.Pred>_R)
-                   @ b
-                   s5
-                   (\ (x8 :: Language.Fixpoint.Misc.ListNE
-                               Language.Fixpoint.Types.Refinements.Pred) ->
-                    cok (Language.Fixpoint.Types.Refinements.pAnd x8))
-                   eerr1
-                   (\ (x8 :: Language.Fixpoint.Misc.ListNE
-                               Language.Fixpoint.Types.Refinements.Pred) ->
-                    eok (Language.Fixpoint.Types.Refinements.pAnd x8))
-                   eerr1) -}
-26c2c1409a8a766d58ae944315dbc030
-  refP2 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> ([Language.Fixpoint.Types.Refinements.Expr]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> ([Language.Fixpoint.Types.Refinements.Expr]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Unfolding: (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: [Language.Fixpoint.Types.Refinements.Expr]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: [Language.Fixpoint.Types.Refinements.Expr]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Combinator.$wsepBy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   @ GHC.Integer.Type.Integer
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.predP
-                   Language.Fixpoint.Parse.semi
-                   @ b
-                   w3
-                   w4
-                   w5
-                   w6) -}
-bd39969c0a3ebf9102baf9d5cf363413
-  refaP ::
-    Language.Fixpoint.Parse.Parser
-      Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,C(U)><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.refP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Refinements.Pred>_R)) -}
-90fbc364d57c309ed4ceca7634aa4c26
-  remainderP ::
-    Language.Fixpoint.Parse.Parser a
-    -> Language.Fixpoint.Parse.Parser
-         (a, GHC.Base.String, Text.Parsec.Pos.SourcePos)
-  {- Arity: 6,
-     Strictness: <C(C(C(C(C(S))))),1*C1(C1(C1(C1(C1(U)))))><L,U><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.doParse'4
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Parse.Parser a>_R
-                 ->_R Sym (Text.Parsec.Prim.N:ParsecT[0]
-                               <[GHC.Types.Char]>_R
-                               <GHC.Integer.Type.Integer>_R
-                               <Control.Monad.Trans.State.Lazy.StateT
-                                  Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                               <(a, GHC.Base.String, Text.Parsec.Pos.SourcePos)>_R)) -}
-25504a5d6d72e4ec6e93b30684bca7eb
-  reserved :: GHC.Base.String -> Language.Fixpoint.Parse.Parser ()
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds2 }) -}
-8c5f5054df59ed1ec1780f1f17f2149a
-  reservedOp :: GHC.Base.String -> Language.Fixpoint.Parse.Parser ()
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds4 }) -}
-bc9b2ffaece5379c39c2cd7b689e67a9
-  semi :: Language.Fixpoint.Parse.Parser GHC.Base.String
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds22 }) -}
-71bc4327ee15cd0c31a9af79e2c35caa
-  sortP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 5,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.sortP1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <GHC.Base.String>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.State
-                             Language.Fixpoint.Parse.PState>_R
-                          <Language.Fixpoint.Types.Sorts.Sort>_R)) -}
-067884f0f5bc9927ecf42eb7bb59aa84
-  sortP1 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Unfolding: (Language.Fixpoint.Parse.sortP5
-                   Language.Fixpoint.Parse.sortP2
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <[Language.Fixpoint.Types.Sorts.Sort]>_R))) -}
-e95634ece13ccb62a90b5fd60b4466d1
-  sortP2 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> ([Language.Fixpoint.Types.Sorts.Sort]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> ([Language.Fixpoint.Types.Sorts.Sort]
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <L,U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,C(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b
-                   (w3 :: Text.Parsec.Prim.State
-                            GHC.Base.String GHC.Integer.Type.Integer)
-                   (w4 :: [Language.Fixpoint.Types.Sorts.Sort]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: [Language.Fixpoint.Types.Sorts.Sort]
-                          -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w7 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 Text.Parsec.Combinator.$wsepBy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ GHC.Types.Char
-                   @ GHC.Integer.Type.Integer
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.sortP3
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <Language.Fixpoint.Types.Sorts.Sort>_R))
-                   Language.Fixpoint.Parse.blanks1
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <[GHC.Types.Char]>_R))
-                   @ b
-                   w3
-                   w4
-                   w5
-                   w6) -}
-812a2eb23d8c813932e034a01dc3eb2f
-  sortP3 ::
-    Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Language.Fixpoint.Types.Sorts.Sort
-        -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Unfolding: (Language.Fixpoint.Parse.sortP5
-                   Language.Fixpoint.Parse.sortP4
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <[GHC.Types.Char]>_R
-                             <GHC.Integer.Type.Integer>_R
-                             <Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                             <[Language.Fixpoint.Types.Sorts.Sort]>_R))) -}
-c19819deec0283a4017305a27d51aedc
-  sortP4 ::
-    Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-    -> ([Language.Fixpoint.Types.Sorts.Sort]
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> ([Language.Fixpoint.Types.Sorts.Sort]
-        -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.StateT
-             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,U(U,U,U)><L,A><L,A><C(C(C(S))),1*C1(C1(C1(U)))><L,A>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ b
-                   (s5 :: Text.Parsec.Prim.State
-                            [GHC.Types.Char] GHC.Integer.Type.Integer)
-                   (ds :: [Language.Fixpoint.Types.Sorts.Sort]
-                          -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.StateT
-                               Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (ds1 :: Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (eok :: [Language.Fixpoint.Types.Sorts.Sort]
-                           -> Text.Parsec.Prim.State [GHC.Types.Char] GHC.Integer.Type.Integer
-                           -> Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b)
-                   (ds2 :: Text.Parsec.Error.ParseError
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity b) ->
-                 eok
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Sorts.Sort)
-                   s5
-                   (case s5 of wild { Text.Parsec.Prim.State ds3 ds4 ds5 ->
-                    Text.Parsec.Error.ParseError
-                      ds4
-                      (GHC.Types.[] @ Text.Parsec.Error.Message) })) -}
-cb8e7b568d2ccd034364b995b6ff883c
-  sortP5 ::
-    Language.Fixpoint.Parse.Parser [Language.Fixpoint.Types.Sorts.Sort]
-    -> forall b.
-       Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-       -> (Language.Fixpoint.Types.Sorts.Sort
-           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.State
-                Language.Fixpoint.Parse.PState b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.State
-                Language.Fixpoint.Parse.PState b)
-       -> (Language.Fixpoint.Types.Sorts.Sort
-           -> Text.Parsec.Prim.State GHC.Base.String GHC.Integer.Type.Integer
-           -> Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.State
-                Language.Fixpoint.Parse.PState b)
-       -> (Text.Parsec.Error.ParseError
-           -> Control.Monad.Trans.State.Lazy.State
-                Language.Fixpoint.Parse.PState b)
-       -> Control.Monad.Trans.State.Lazy.State
-            Language.Fixpoint.Parse.PState b
-  {- Arity: 6,
-     Strictness: <L,C(C1(C1(C1(C1(U)))))><L,U><L,U><L,U><L,U><L,C(U)> -}
-4d28aa8526769e64467deccd0657b5e8
-  symbolP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(U)><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.$fInputableSymbol1
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-1391e7d8684a35b7ad1fb258d1cdef73
-  upperIdP ::
-    Language.Fixpoint.Parse.Parser Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,U><L,A><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.locUpperIdP2
-                  `cast`
-                (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                          <[GHC.Types.Char]>_R
-                          <GHC.Integer.Type.Integer>_R
-                          <Control.Monad.Trans.State.Lazy.StateT
-                             Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity>_R
-                          <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-b53a891550f93c6b6b706ad16032adc9
-  whiteSpace :: Language.Fixpoint.Parse.Parser ()
-  {- Unfolding: (case Language.Fixpoint.Parse.whiteSpace_$slexer
-                        @ GHC.Integer.Type.Integer of wild { Text.Parsec.Token.TokenParser ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ->
-                 ds16 }) -}
-b53c6f562f9e707e32afadfa02e1c877
-  whiteSpace1 ::
-    Text.Parsec.Token.GenLanguageDef
-      GHC.Base.String
-      u
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-  {- Unfolding: (\ @ u ->
-                 Text.Parsec.Token.LanguageDef
-                   @ GHC.Base.String
-                   @ u
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   Language.Fixpoint.Parse.whiteSpace191
-                   Language.Fixpoint.Parse.whiteSpace190
-                   Language.Fixpoint.Parse.whiteSpace189
-                   GHC.Types.True
-                   (Language.Fixpoint.Parse.whiteSpace186 @ u)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <u>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   (Language.Fixpoint.Parse.whiteSpace183 @ u)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <u>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   (Language.Fixpoint.Parse.whiteSpace178 @ u)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <u>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   (Language.Fixpoint.Parse.whiteSpace178 @ u)
-                     `cast`
-                   (Sym (Text.Parsec.Prim.N:ParsecT[0]
-                             <GHC.Base.String>_R
-                             <u>_R
-                             <Control.Monad.Trans.State.Lazy.State
-                                Language.Fixpoint.Parse.PState>_R
-                             <GHC.Types.Char>_R))
-                   Language.Fixpoint.Parse.whiteSpace78
-                   Language.Fixpoint.Parse.whiteSpace2
-                   GHC.Types.True) -}
-629c40400b6a33f4ba3a4bcf06150ac0
-  whiteSpace10 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace69
-                   Language.Fixpoint.Parse.whiteSpace11) -}
-3154eb6e4e35b24e85403db358cfad25
-  whiteSpace100 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace159
-                   Language.Fixpoint.Parse.whiteSpace101) -}
-77c5ed5020ebc90de8411a7e2ab0bd21
-  whiteSpace101 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace158
-                   Language.Fixpoint.Parse.whiteSpace102) -}
-5844b859ddd482dea257d5a4de5ae4a1
-  whiteSpace102 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace157
-                   Language.Fixpoint.Parse.whiteSpace103) -}
-5fb25d40f9c757987888cdd3eb326bb5
-  whiteSpace103 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace156
-                   Language.Fixpoint.Parse.whiteSpace104) -}
-8078efe7ba6a7fc804314957c54ddb6c
-  whiteSpace104 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace155
-                   Language.Fixpoint.Parse.whiteSpace105) -}
-eb7bc30f2d3013cd5c00a6bfec35741e
-  whiteSpace105 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace154
-                   Language.Fixpoint.Parse.whiteSpace106) -}
-26aa6eb11280dd6d229befe5e6f0d271
-  whiteSpace106 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace153
-                   Language.Fixpoint.Parse.whiteSpace107) -}
-7a6b7cc8f0dc1e85a88c6d3142bb9b25
-  whiteSpace107 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace152
-                   Language.Fixpoint.Parse.whiteSpace108) -}
-1377905a058fc690de91e2e3993f7321
-  whiteSpace108 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace151
-                   Language.Fixpoint.Parse.whiteSpace109) -}
-6319a225d7f4e1cca35a62a9f228b24f
-  whiteSpace109 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace150
-                   Language.Fixpoint.Parse.whiteSpace110) -}
-fe02f251b3e7ac8852776f53e13f4e1a
-  whiteSpace11 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace68
-                   Language.Fixpoint.Parse.whiteSpace12) -}
-311dacef551f9010e2876d272cd4c25c
-  whiteSpace110 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace149
-                   Language.Fixpoint.Parse.whiteSpace111) -}
-132ea0bfa778494f8436815fafb9f6db
-  whiteSpace111 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace148
-                   Language.Fixpoint.Parse.whiteSpace112) -}
-60f737d1f6f481226898b1dfcee35d80
-  whiteSpace112 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace147
-                   Language.Fixpoint.Parse.whiteSpace113) -}
-24a0ae4fac6bb61397b017c257a01202
-  whiteSpace113 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace146
-                   Language.Fixpoint.Parse.whiteSpace114) -}
-c93f6fb5043df9418219d0c986b9d0b0
-  whiteSpace114 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace145
-                   Language.Fixpoint.Parse.whiteSpace115) -}
-07ea2bc6ef559aa11dcd8a026a9d6372
-  whiteSpace115 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace144
-                   Language.Fixpoint.Parse.whiteSpace116) -}
-51bc0ebd06ab8c09f93985fc5559ad93
-  whiteSpace116 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace143
-                   Language.Fixpoint.Parse.whiteSpace117) -}
-7d2d38ffe7653f782c936aaa7b570c82
-  whiteSpace117 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace142
-                   Language.Fixpoint.Parse.whiteSpace118) -}
-5537eb90cd919fd0b230be01e79f22ae
-  whiteSpace118 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace141
-                   Language.Fixpoint.Parse.whiteSpace119) -}
-5bd142ce76a72dd1af0bc3c676ffd60b
-  whiteSpace119 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace140
-                   Language.Fixpoint.Parse.whiteSpace120) -}
-5b197e28a52c30006d46cd62c9c7dff4
-  whiteSpace12 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace67
-                   Language.Fixpoint.Parse.whiteSpace13) -}
-0fdc2050659620b826a524ad5e1761ee
-  whiteSpace120 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace139
-                   Language.Fixpoint.Parse.whiteSpace121) -}
-2db691ac98e21e0fe7fb3eb1883899eb
-  whiteSpace121 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace138
-                   Language.Fixpoint.Parse.whiteSpace122) -}
-90eeee3052344a36ae5cb3b667d0bed9
-  whiteSpace122 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace137
-                   Language.Fixpoint.Parse.whiteSpace123) -}
-e3f228821f39ecd7dd64e8394f722d8c
-  whiteSpace123 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace136
-                   Language.Fixpoint.Parse.whiteSpace124) -}
-60d2252b5180a4774dd7e6326f693b58
-  whiteSpace124 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace135
-                   Language.Fixpoint.Parse.whiteSpace125) -}
-893eccefb3b9a8db8a85ca4f918cd481
-  whiteSpace125 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace134
-                   Language.Fixpoint.Parse.whiteSpace126) -}
-b3a99a90bd7d75243e2c254515aeb6ae
-  whiteSpace126 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace133
-                   Language.Fixpoint.Parse.whiteSpace127) -}
-8ac3bad9eeffa472ce113dc5e5242371
-  whiteSpace127 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace132
-                   Language.Fixpoint.Parse.whiteSpace128) -}
-b55880b69ebe6f87950a5852001be59d
-  whiteSpace128 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace131
-                   Language.Fixpoint.Parse.whiteSpace129) -}
-388b554d98a5f22540733a7603729ea6
-  whiteSpace129 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace130
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-86f0fe63f6648fa246356144db24e809
-  whiteSpace13 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace66
-                   Language.Fixpoint.Parse.whiteSpace14) -}
-4294e06e65d6e3c6089c30edb5ce944a
-  whiteSpace130 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "with"#) -}
-fbcc29efc7cf5e011413822f787991be
-  whiteSpace131 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "using"#) -}
-7cbac9c74b040275f7d504d521115137
-  whiteSpace132 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "type"#) -}
-9b0220d417448e2c1ded7c90744480b7
-  whiteSpace133 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "reflect"#) -}
-7892df74ad8a1f3ea188c792f5cefb37
-  whiteSpace134 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "qualif"#) -}
-b06707b5ec133f3eaa57e50402b4734f
-  whiteSpace135 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "predicate"#) -}
-6437ba07586c87dfb4d5ea4646ba2bc8
-  whiteSpace136 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "newtype"#) -}
-870ff98ee53239721b52788403a79342
-  whiteSpace137 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "measure"#) -}
-5520ee04a053dc7ea57961577fa37408
-  whiteSpace138 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "invariant"#) -}
-b37415f488a05c4af8c5f9af5b482662
-  whiteSpace139 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "instance"#) -}
-e6615666f16e2e0145f56ffcda704b75
-  whiteSpace14 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace65
-                   Language.Fixpoint.Parse.whiteSpace15) -}
-0ade26ac7892644696ec8683b4119487
-  whiteSpace140 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "inline"#) -}
-f991bc6cf45cc4c1a14ebf5e2faf691d
-  whiteSpace141 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "infixr"#) -}
-00f23275fe59f95c72318c3fbff1fa79
-  whiteSpace142 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "infixl"#) -}
-b9d8c5fe45f973a8266e34bb59403667
-  whiteSpace143 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "infix"#) -}
-bc917067805771ffdcd6965842bcad64
-  whiteSpace144 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "include"#) -}
-7f94d0d063450b330c8486fc34d4da87
-  whiteSpace145 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "import"#) -}
-48e56f5bc984069e0b4067444f596630
-  whiteSpace146 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "expression"#) -}
-ffc27e16b0ddda29fb30eb2e5179db79
-  whiteSpace147 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "embed"#) -}
-04498fab3f7e1e4518b32bd40e2ce5c5
-  whiteSpace148 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "defined"#) -}
-9d720225347cef1f51636fb050e94107
-  whiteSpace149 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "define"#) -}
-1e0c038dba59a0677bc05b11be017589
-  whiteSpace15 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace64
-                   Language.Fixpoint.Parse.whiteSpace16) -}
-e5ab5907cc03284af8d9b3bbcde9d353
-  whiteSpace150 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "data"#) -}
-4df1f83d0d4eb758c508a87cb1beedc7
-  whiteSpace151 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "class"#) -}
-97137156671aad5fa62d0396d9f7c839
-  whiteSpace152 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "bound"#) -}
-e9fc8a0a4f7d23aeab38bcb2da6f55bb
-  whiteSpace153 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "axiomatize"#) -}
-9aabb7ed150fc454aa00e50664641f0f
-  whiteSpace154 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "autosize"#) -}
-1f6e313ab5c1e59873225a961fc7524a
-  whiteSpace155 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "automatic-instances"#) -}
-7ff2560107e66062fd63d6b45c5c95a8
-  whiteSpace156 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "assume"#) -}
-2d01894d6f635f00de18ba2819d421be
-  whiteSpace157 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "assert"#) -}
-7f736721ab2a70592887e08fa53779ba
-  whiteSpace158 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "local"#) -}
-594961411297fee14c0789cfe8f68fa0
-  whiteSpace159 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "lazy"#) -}
-de20242d74da4a9982f22967c6178cfc
-  whiteSpace16 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace63
-                   Language.Fixpoint.Parse.whiteSpace17) -}
-cc113c13c8ecc5d0f6334a3264d2d431
-  whiteSpace160 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "LIQUID"#) -}
-bfed22f2f3d6fe7b177e30821d3da5b7
-  whiteSpace161 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "lazyvar"#) -}
-47b4b8f2f14240ebfc3d248ef9890971
-  whiteSpace162 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "decrease"#) -}
-056cc91fbba67cb2c5c2388d050d6d1f
-  whiteSpace163 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "where"#) -}
-b5aea5e70e906ffaa88e4b9bde8b9a7d
-  whiteSpace164 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "spec"#) -}
-5ca6d38152360b752b9117933e6690c7
-  whiteSpace165 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "module"#) -}
-3f998b1fcb5a7bb37162a30e3572aa21
-  whiteSpace166 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "exists"#) -}
-a11aa33db51b0fa2da288e72a18354da
-  whiteSpace167 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "forall"#) -}
-149b29bd6f22d3e1335ac52eb3ffb9d5
-  whiteSpace168 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "func"#) -}
-f0b99d7712b76d69026d8cc39b6ddcd7
-  whiteSpace169 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "else"#) -}
-6eb5c79e38761ccd2371722e6f102444
-  whiteSpace17 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace62
-                   Language.Fixpoint.Parse.whiteSpace18) -}
-691f2ed3237bc3467bd36e9c507d81da
-  whiteSpace170 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "then"#) -}
-8b2610f9621be277fe7807010720bb91
-  whiteSpace171 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "if"#) -}
-a0fec1c884f62cec70af3a228f8fa829
-  whiteSpace172 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Int"#) -}
-2605af825557ebd320673c6d6942f60b
-  whiteSpace173 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "True"#) -}
-06b5da0033f973bdc9e5e5c8e84a9ab9
-  whiteSpace174 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "false"#) -}
-a011f65d4372a01cd99780293f657ecb
-  whiteSpace175 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "true"#) -}
-3bce3306419ac280b065b416f94c9dc2
-  whiteSpace176 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "UNSAT"#) -}
-63ac93cb5ae80c047570dccd784532d2
-  whiteSpace177 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SAT"#) -}
-a174951518bc4fac32081baa95a6bf74
-  whiteSpace178 ::
-    Text.Parsec.Prim.State GHC.Base.String a
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,A><L,A><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Text.Parsec.Prim.State GHC.Base.String a)
-                   (w3 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Text.Parsec.Char.$wsatisfy
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ a
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   Language.Fixpoint.Parse.whiteSpace179
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w6 } }) -}
-1aae589ac99ea3d1ac206e49371fae1f
-  whiteSpace179 :: GHC.Types.Char -> GHC.Types.Bool
-  {- Arity: 1,
-     Unfolding: (\ (c :: GHC.Types.Char) ->
-                 GHC.List.elem
-                   @ GHC.Types.Char
-                   GHC.Classes.$fEqChar
-                   c
-                   Language.Fixpoint.Parse.whiteSpace180) -}
-f494d91135072a3221a30e038421dfd2
-  whiteSpace18 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace61
-                   Language.Fixpoint.Parse.whiteSpace19) -}
-5a682e7ec645d4aaafc8b4f94180adc2
-  whiteSpace180 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   ":!#$%&*+./<=>?@\\^|-~'"#) -}
-70336deb31663c17c39810b5f038728e
-  whiteSpace181 ::
-    GHC.Base.Monad
-      (Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT
-                   @ Language.Fixpoint.Parse.PState) -}
-42c668f0c49a969277c849c6a2bbbbd6
-  whiteSpace182 ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Unfolding: (\ @ s5 ->
-                 Control.Monad.Trans.State.Lazy.$fFunctorStateT
-                   @ Data.Functor.Identity.Identity
-                   @ s5
-                   Data.Functor.Identity.$fFunctorIdentity) -}
-ba3170dd71eb3d87aae2630350998d49
-  whiteSpace183 ::
-    Text.Parsec.Prim.State GHC.Base.String a
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,C(C1(C1(U)))><L,A><L,A><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Text.Parsec.Prim.State GHC.Base.String a)
-                   (w3 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wlvl
-                   @ a
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w6 } }) -}
-c5f44a7bdd43a6e94156140ef30a6034
-  whiteSpace184 :: GHC.Types.Char -> GHC.Types.Bool
-  {- Arity: 1,
-     Unfolding: (\ (c :: GHC.Types.Char) ->
-                 GHC.List.elem
-                   @ GHC.Types.Char
-                   GHC.Classes.$fEqChar
-                   c
-                   Language.Fixpoint.Parse.whiteSpace185) -}
-95083623a851bd2b6462645b5e21a41a
-  whiteSpace185 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_"#) -}
-a102439710f015878f2f189af98ecc2c
-  whiteSpace186 ::
-    Text.Parsec.Prim.State GHC.Base.String a
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (GHC.Types.Char
-        -> Text.Parsec.Prim.State GHC.Base.String a
-        -> Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> (Text.Parsec.Error.ParseError
-        -> Control.Monad.Trans.State.Lazy.State
-             Language.Fixpoint.Parse.PState b)
-    -> Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState b
-  {- Arity: 5,
-     Strictness: <S(LS(LSS)S),1*U(U,U(U,U,U),U)><L,U><L,U><L,C(C1(C1(U)))><L,C(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Text.Parsec.Prim.State GHC.Base.String a)
-                   (w3 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w4 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w5 :: GHC.Types.Char
-                          -> Text.Parsec.Prim.State GHC.Base.String a
-                          -> Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b)
-                   (w6 :: Text.Parsec.Error.ParseError
-                          -> Control.Monad.Trans.State.Lazy.State
-                               Language.Fixpoint.Parse.PState b) ->
-                 case w of ww { Text.Parsec.Prim.State ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 Language.Fixpoint.Parse.$wlvl1
-                   @ a
-                   @ b
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w3
-                   w4
-                   w5
-                   w6 } }) -}
-8415360f5dc542af1d031a9361bed7e5
-  whiteSpace187 ::
-    Text.Parsec.Prim.ParsecT
-      GHC.Base.String
-      a
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-      GHC.Types.Char
-  {- Unfolding: (\ @ a ->
-                 Text.Parsec.Char.char
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ a
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   Language.Fixpoint.Parse.whiteSpace188) -}
-a17f45723e9058cba7dadd47619f3db1
-  whiteSpace188 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# '_'#) -}
-8b67747fedac31b104ff51b4af3d7a4c
-  whiteSpace189 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "//"#) -}
-b8e8641e00d82267bff99947e0dc0ddb
-  whiteSpace19 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace60
-                   Language.Fixpoint.Parse.whiteSpace20) -}
-348a73f69ec326eeb33c76c9ebcd4e97
-  whiteSpace190 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# " */"#) -}
-120740329e2f566afe6e7d833ecb878e
-  whiteSpace191 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "/* "#) -}
-708f99ab3f981588b2defffac12613da
-  whiteSpace2 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace77
-                   Language.Fixpoint.Parse.whiteSpace3) -}
-13ed6b0bf6c97c093a04b6e1c42719d3
-  whiteSpace20 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace59
-                   Language.Fixpoint.Parse.whiteSpace21) -}
-40ef12449b55ee448a1ea1ad1153c35d
-  whiteSpace21 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace58
-                   Language.Fixpoint.Parse.whiteSpace22) -}
-f012d32a01aeb8831743d5e47dc0281e
-  whiteSpace22 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace57
-                   Language.Fixpoint.Parse.whiteSpace23) -}
-80946a47059f52cf784b7bf798b30573
-  whiteSpace23 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace56
-                   Language.Fixpoint.Parse.whiteSpace24) -}
-1c7611605837c550ab54661c09d721cf
-  whiteSpace24 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace55
-                   Language.Fixpoint.Parse.whiteSpace25) -}
-82d841df52e7121fee99666832dea81c
-  whiteSpace25 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace54
-                   Language.Fixpoint.Parse.whiteSpace26) -}
-6c7ca902645fab049407c324234daea9
-  whiteSpace26 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace53
-                   Language.Fixpoint.Parse.whiteSpace27) -}
-e2b33909e6b29ec6806b23bfb7de3226
-  whiteSpace27 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace52
-                   Language.Fixpoint.Parse.whiteSpace28) -}
-97865a53c069b0adc3d0f49ef00e71e1
-  whiteSpace28 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace51
-                   Language.Fixpoint.Parse.whiteSpace29) -}
-e7e36f06565207e89736ba32f4b661f2
-  whiteSpace29 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace50
-                   Language.Fixpoint.Parse.whiteSpace30) -}
-2467b70f6f48dedf6af25fdd82a8b1fa
-  whiteSpace3 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace76
-                   Language.Fixpoint.Parse.whiteSpace4) -}
-5e61dfc2972ae6deaef14fb875a3bad9
-  whiteSpace30 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace49
-                   Language.Fixpoint.Parse.whiteSpace31) -}
-73d1893f838fa021e66b9656eafad1ba
-  whiteSpace31 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace48
-                   Language.Fixpoint.Parse.whiteSpace32) -}
-b17264a076d5c39bd04daea04018287a
-  whiteSpace32 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace47
-                   Language.Fixpoint.Parse.whiteSpace33) -}
-e51afe5fd4388fead1d3e347d384ceef
-  whiteSpace33 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace46
-                   Language.Fixpoint.Parse.whiteSpace34) -}
-9df358519b89b3bb0cb9fa3f3da90a5c
-  whiteSpace34 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace45
-                   Language.Fixpoint.Parse.whiteSpace35) -}
-03c489a1cd2e7427f97c5aaf05619605
-  whiteSpace35 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace44
-                   Language.Fixpoint.Parse.whiteSpace36) -}
-d9438731afa71418d4342f7c0855dbb5
-  whiteSpace36 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace43
-                   Language.Fixpoint.Parse.whiteSpace37) -}
-b6151286fa890adf4b623b6f3b949bcf
-  whiteSpace37 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace42
-                   Language.Fixpoint.Parse.whiteSpace38) -}
-8d4963391bf43a8411119f188c665458
-  whiteSpace38 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace41
-                   Language.Fixpoint.Parse.whiteSpace39) -}
-bed3c9d172db0250bc919dff18d329a3
-  whiteSpace39 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace40
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-d6a46dd8f1572fefca6f376a5b59836c
-  whiteSpace4 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace75
-                   Language.Fixpoint.Parse.whiteSpace5) -}
-418b9bba952a5aa01d368abd17be0b91
-  whiteSpace40 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "."#) -}
-33c852f78b4108b57e83192a83d982f5
-  whiteSpace41 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "::"#) -}
-36aa29c39425e99da75f0e329d39bb03
-  whiteSpace42 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "|-"#) -}
-a63576bef0c5a4a4018dde5ddc51454b
-  whiteSpace43 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "<:"#) -}
-29a634b6a74a50fb24518674960d2f48
-  whiteSpace44 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "|"#) -}
-ce5349cbf663c3acc3cc6267bb97f784
-  whiteSpace45 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_|_"#) -}
-f028f41b51c917e4fe4b6a0ee632e405
-  whiteSpace46 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "'"#) -}
-bcbfbb23dc430e50ec78b01d8b7081b3
-  whiteSpace47 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Bexp"#) -}
-f4b165c2932af838b0ed07addb2038b9
-  whiteSpace48 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "?"#) -}
-23031ffb514666a3148012a5cb4fb1fd
-  whiteSpace49 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "--"#) -}
-a6e3a68c5f1131a1acd6356c221fd039
-  whiteSpace5 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace74
-                   Language.Fixpoint.Parse.whiteSpace6) -}
-d352141305f955039e4b038760dc3809
-  whiteSpace50 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ">>"#) -}
-1efce2e577eaab718b3cf13e331e3d72
-  whiteSpace51 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "<<"#) -}
-894e6aedde391e1626ac7c8cd9cf77aa
-  whiteSpace52 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "^"#) -}
-6e080495cf19eb62d57f23f3aa2e0a5b
-  whiteSpace53 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "&"#) -}
-ae1c40ea31f8dfb65786811ec3a03699
-  whiteSpace54 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ":="#) -}
-34bf1e2acd9437c5837b82f212e61726
-  whiteSpace55 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "->"#) -}
-d681d479d123b6447374a085faafdcf3
-  whiteSpace56 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "<=>"#) -}
-04d3f34578903a0147708578ed89f768
-  whiteSpace57 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "==>"#) -}
-b2e8be059cf6de3f93d9826d050d0e0f
-  whiteSpace58 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "=>"#) -}
-55b527679858b3c23cfb964ca97e5d7c
-  whiteSpace59 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "~"#) -}
-4427d55f87df5c04cef8d9979373d454
-  whiteSpace6 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace73
-                   Language.Fixpoint.Parse.whiteSpace7) -}
-9af25dcc430725786ae13da5aeeb1ec5
-  whiteSpace60 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "||"#) -}
-0f7c0e8d6d42b31cb7c43adb19c5ce2e
-  whiteSpace61 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "&&"#) -}
-5af7a77fcd5dc6f1464b526eaf0e1887
-  whiteSpace62 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "or"#) -}
-d79fa1fb4b37f29a2d129a31453f822f
-  whiteSpace63 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "and"#) -}
-4b1adc73c42401d2e95473502735e147
-  whiteSpace64 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mod"#) -}
-4d7a9fed9e5277c27354241643bb9de0
-  whiteSpace65 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "/="#) -}
-8f42ac40d4ce45d09cbc8f7fed9588ed
-  whiteSpace66 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "!="#) -}
-25bd23938fd27deadd48d1cdb6a5a3f9
-  whiteSpace67 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "="#) -}
-c48af6634065da9688bc4b1208bc171b
-  whiteSpace68 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ">="#) -}
-54232b6b1ce747f2448f1c94214fdb23
-  whiteSpace69 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "<="#) -}
-54f28e56d7916084c045f9ae3626c9e0
-  whiteSpace7 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace72
-                   Language.Fixpoint.Parse.whiteSpace8) -}
-b49d7b330b799ec73f81e59b400c6e8f
-  whiteSpace70 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ">"#) -}
-5ebefc54469740f09391abf3c59516a2
-  whiteSpace71 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "<"#) -}
-5956ab002e6093e3cfc9639c8c5320ab
-  whiteSpace72 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ":"#) -}
-c571ad6cacdf470026bb69c87263fbc4
-  whiteSpace73 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "\\"#) -}
-d884f88196b3a9c886570f9c1391f7ca
-  whiteSpace74 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "/"#) -}
-849f69eb2b3c0927f34e96a9746692da
-  whiteSpace75 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "*"#) -}
-be61ad547a3f63e5001f1246b3486f95
-  whiteSpace76 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "-"#) -}
-ccee152d1c3cae3fb1cc928dd47203b2
-  whiteSpace77 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "+"#) -}
-8fe3b5f28717fcf745877e26ce2f5d69
-  whiteSpace78 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace177
-                   Language.Fixpoint.Parse.whiteSpace79) -}
-e9c8ec9f002f466093d06d5ab30433ee
-  whiteSpace79 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace176
-                   Language.Fixpoint.Parse.whiteSpace80) -}
-a520371e26891ae3efb462b5e95b9405
-  whiteSpace8 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace71
-                   Language.Fixpoint.Parse.whiteSpace9) -}
-8069f6b8cddd0696e6f912e59af6de3c
-  whiteSpace80 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace175
-                   Language.Fixpoint.Parse.whiteSpace81) -}
-244831e25172cb1bf964b1af2961df9d
-  whiteSpace81 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace174
-                   Language.Fixpoint.Parse.whiteSpace82) -}
-8cd5aeafddace8aa1e88e3e58ac997fc
-  whiteSpace82 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace64
-                   Language.Fixpoint.Parse.whiteSpace83) -}
-b96be54b33fa811b4e6ebd6124f7d344
-  whiteSpace83 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace150
-                   Language.Fixpoint.Parse.whiteSpace84) -}
-48399a7a9e60504ae8698421afb1f1fb
-  whiteSpace84 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace47
-                   Language.Fixpoint.Parse.whiteSpace85) -}
-301615a9a56aa1f83767e31b3958ed92
-  whiteSpace85 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace173
-                   Language.Fixpoint.Parse.whiteSpace86) -}
-aa05897ea782a9717587829f6c9977d7
-  whiteSpace86 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace172
-                   Language.Fixpoint.Parse.whiteSpace87) -}
-165252585900f90e2d49c5c6a6e14ac1
-  whiteSpace87 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace145
-                   Language.Fixpoint.Parse.whiteSpace88) -}
-281d9941f28c51e2da85d7938b3abc97
-  whiteSpace88 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace171
-                   Language.Fixpoint.Parse.whiteSpace89) -}
-9b0ee738cb5e6867cd4fe28723b2c1b2
-  whiteSpace89 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace170
-                   Language.Fixpoint.Parse.whiteSpace90) -}
-ee8252793e4318408bacaf4b730e8881
-  whiteSpace9 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace70
-                   Language.Fixpoint.Parse.whiteSpace10) -}
-ad74bff0884b58a3bb21a1e0e57f6755
-  whiteSpace90 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace169
-                   Language.Fixpoint.Parse.whiteSpace91) -}
-32d38635a9fd24e960a9a1eb89619478
-  whiteSpace91 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace168
-                   Language.Fixpoint.Parse.whiteSpace92) -}
-f16baaeac2bbffc2948136cc1a1ed766
-  whiteSpace92 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace167
-                   Language.Fixpoint.Parse.whiteSpace93) -}
-592d410a1392158a3ac8f21a37a1e7a0
-  whiteSpace93 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace166
-                   Language.Fixpoint.Parse.whiteSpace94) -}
-21ddfd0e42841da93e07fc5e1586fa3b
-  whiteSpace94 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace165
-                   Language.Fixpoint.Parse.whiteSpace95) -}
-b87e1744551448f061cba09f808d7d83
-  whiteSpace95 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace164
-                   Language.Fixpoint.Parse.whiteSpace96) -}
-22e03b954670312e9b5e22d76c8343f5
-  whiteSpace96 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace163
-                   Language.Fixpoint.Parse.whiteSpace97) -}
-edca5d00eff2dbb993b9066d611603a6
-  whiteSpace97 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace162
-                   Language.Fixpoint.Parse.whiteSpace98) -}
-c90190030257bea2377dcb93ce3cb57e
-  whiteSpace98 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace161
-                   Language.Fixpoint.Parse.whiteSpace99) -}
-013a95861e57054fb3113e6e073d1bd4
-  whiteSpace99 :: [GHC.Base.String]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Parse.whiteSpace160
-                   Language.Fixpoint.Parse.whiteSpace100) -}
-8ed2f3de0efed0382199ba1ddb7e78e9
-  whiteSpace_$dFunctor ::
-    GHC.Base.Functor Data.Functor.Identity.Identity
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Data.Functor.Identity.$fFunctorIdentity -}
-0034574f876e24ee3a5418dbdef6d074
-  whiteSpace_$s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s5.
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s5 Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Parse.whiteSpace182 @ s5)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT_$cpure
-                     @ s5)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT_$c<*>
-                     @ s5)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c*>
-                     @ Data.Functor.Identity.Identity
-                     @ s5
-                     Language.Fixpoint.Parse.whiteSpace_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*
-                     @ Data.Functor.Identity.Identity
-                     @ s5
-                     Language.Fixpoint.Parse.whiteSpace_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity) -}
-f92bebb5b5229d279835b0b58ca7df4b
-  whiteSpace_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity (a -> b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,U))><L,1*C1(U(U,U))><L,U>m,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s5
-                   @ a
-                   @ b
-                   (ds :: Control.Monad.Trans.State.Lazy.StateT
-                            s5 Data.Functor.Identity.Identity (a -> b))
-                   (ds1 :: Control.Monad.Trans.State.Lazy.StateT
-                             s5 Data.Functor.Identity.Identity a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> Data.Functor.Identity.Identity (b, s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s5 -> Data.Functor.Identity.Identity (b, s5)) -> tpl)
-                     `cast`
-                   (<s5 -> Data.Functor.Identity.Identity (b, s5)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s5>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s6 :: s5) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a -> b, s5)
-                      @ (b, s5)
-                      (ds
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <s5>_N <Data.Functor.Identity.Identity>_R <a -> b>_N)
-                         s6)
-                      (\ (ds2 :: (a -> b, s5))[OneShot] ->
-                       Data.Functor.Identity.$fMonadIdentity_$c>>=
-                         @ (a, s5)
-                         @ (b, s5)
-                         (ds1
-                            `cast`
-                          (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <s5>_N <Data.Functor.Identity.Identity>_R <a>_N)
-                            (case ds2 of wild { (,) f1 s' -> s' }))
-                         (\ (ds3 :: (a, s5))[OneShot] ->
-                          Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                            @ (b, s5)
-                            (case ds2 of wild { (,) f1 s' ->
-                             f1 (case ds3 of wild1 { (,) x8 s'' -> x8 }) },
-                             case ds3 of wild { (,) x8 s'' -> s'' }))))) -}
-c263ee425b2d6badddcb9438989ebdf6
-  whiteSpace_$s$fApplicativeStateT_$cpure ::
-    a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s5 @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> Data.Functor.Identity.Identity (a, s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity a)
-                   (\ (tpl :: s5 -> Data.Functor.Identity.Identity (a, s5)) -> tpl)
-                     `cast`
-                   (<s5 -> Data.Functor.Identity.Identity (a, s5)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s5>_N <Data.Functor.Identity.Identity>_R <a>_N))
-                   (\ (s6 :: s5) ->
-                    Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                      @ (a, s5)
-                      (a1, s6))) -}
-4226bc66b969e56b4efbd977056f8536
-  whiteSpace_$s$fMonadStateT ::
-    GHC.Base.Monad
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s5.
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       s5 Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$cp1Monad @ s5)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$c>>= @ s5)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$c>> @ s5)
-                  (Control.Monad.Trans.State.Lazy.$fMonadStateT_$creturn
-                     @ Data.Functor.Identity.Identity
-                     @ s5
-                     Data.Functor.Identity.$fMonadIdentity)
-                  (Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$cfail @ s5) -}
-3b81659ba90fd87efec8ecf7f1092fc2
-  whiteSpace_$s$fMonadStateT_$c>> ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(A,1*U))><C(S),1*C1(U(U,U))><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s5
-                   @ a
-                   @ b
-                   (m51 :: Control.Monad.Trans.State.Lazy.StateT
-                             s5 Data.Functor.Identity.Identity a)
-                   (k12 :: Control.Monad.Trans.State.Lazy.StateT
-                             s5 Data.Functor.Identity.Identity b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> Data.Functor.Identity.Identity (b, s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s5 -> Data.Functor.Identity.Identity (b, s5)) -> tpl)
-                     `cast`
-                   (<s5 -> Data.Functor.Identity.Identity (b, s5)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s5>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s6 :: s5) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a, s5)
-                      @ (b, s5)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s5
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m51
-                         s6)
-                      (\ (ds :: (a, s5))[OneShot] ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s5
-                         @ Data.Functor.Identity.Identity
-                         @ b
-                         k12
-                         (case ds of wild { (,) a1 s' -> s' })))) -}
-f34863fface440c5b47bde126facafcc
-  whiteSpace_$s$fMonadStateT_$c>>= ::
-    Control.Monad.Trans.State.Lazy.StateT
-      s Data.Functor.Identity.Identity a
-    -> (a
-        -> Control.Monad.Trans.State.Lazy.StateT
-             s Data.Functor.Identity.Identity b)
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,U))><C(C(S)),1*C1(C1(U(U,U)))><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s5
-                   @ a
-                   @ b
-                   (m51 :: Control.Monad.Trans.State.Lazy.StateT
-                             s5 Data.Functor.Identity.Identity a)
-                   (k12 :: a
-                           -> Control.Monad.Trans.State.Lazy.StateT
-                                s5 Data.Functor.Identity.Identity b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> Data.Functor.Identity.Identity (b, s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s5 -> Data.Functor.Identity.Identity (b, s5)) -> tpl)
-                     `cast`
-                   (<s5 -> Data.Functor.Identity.Identity (b, s5)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s5>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s6 :: s5) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a, s5)
-                      @ (b, s5)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s5
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m51
-                         s6)
-                      (\ (ds :: (a, s5))[OneShot] ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s5
-                         @ Data.Functor.Identity.Identity
-                         @ b
-                         (k12 (case ds of wild { (,) a1 s' -> a1 }))
-                         (case ds of wild { (,) a1 s' -> s' })))) -}
-d76b2c1d447d3b7bd95a4f93cefff289
-  whiteSpace_$s$fMonadStateT_$cfail ::
-    GHC.Base.String
-    -> Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity a
-  {- Arity: 2, Strictness: <B,U><B,A>x, Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s5 @ a (str :: GHC.Base.String) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s5 -> Data.Functor.Identity.Identity (a, s5))
-                   @ (Control.Monad.Trans.State.Lazy.StateT
-                        s5 Data.Functor.Identity.Identity a)
-                   (\ (tpl :: s5 -> Data.Functor.Identity.Identity (a, s5)) -> tpl)
-                     `cast`
-                   (<s5 -> Data.Functor.Identity.Identity (a, s5)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s5>_N <Data.Functor.Identity.Identity>_R <a>_N))
-                   (\ (ds :: s5) ->
-                    Data.Functor.Identity.$fMonadIdentity_$s$dmfail @ (a, s5) str)) -}
-d7e76acd530278f654eb1bab84e2564a
-  whiteSpace_$s$fMonadStateT_$cp1Monad ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT -}
-4fc5418499df14621e5945289e01aa87
-  whiteSpace_$s$fStream[]mtok ::
-    Text.Parsec.Prim.Stream
-      [tok]
-      (Control.Monad.Trans.State.Lazy.StateT
-         Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-      tok
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ tok.
-                  @ [tok]
-                  @ (Control.Monad.Trans.State.Lazy.StateT
-                       Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                  @ tok
-                  (Text.Parsec.Prim.$fStream[]mtok_$cp1Stream
-                     @ (Control.Monad.Trans.State.Lazy.StateT
-                          Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                     @ tok
-                     Language.Fixpoint.Parse.whiteSpace181)
-                  (Text.Parsec.Prim.$fStream[]mtok_$cuncons
-                     @ (Control.Monad.Trans.State.Lazy.StateT
-                          Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                     @ tok
-                     Language.Fixpoint.Parse.whiteSpace181) -}
-bb5af0f2cd982a4d158f9595e6b72f42
-  whiteSpace_$slexer ::
-    Text.Parsec.Token.GenTokenParser
-      GHC.Base.String
-      u
-      (Control.Monad.Trans.State.Lazy.State
-         Language.Fixpoint.Parse.PState)
-  {- Unfolding: (\ @ u ->
-                 Text.Parsec.Token.makeTokenParser
-                   @ GHC.Base.String
-                   @ (Control.Monad.Trans.State.Lazy.State
-                        Language.Fixpoint.Parse.PState)
-                   @ u
-                   (Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok
-                      @ GHC.Types.Char)
-                   (Language.Fixpoint.Parse.whiteSpace1 @ u)) -}
-b3cea2c87ebc74dd97ba975cec6773ae
-  whiteSpace_msgs :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Text.Parsec.Char.alphaNum2
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-58f60db6ffee4801d46070f53b055816
-  whiteSpace_msgs1 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Text.Parsec.Char.letter2
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-instance GHC.Generics.Generic [Language.Fixpoint.Parse.Def]
-  = Language.Fixpoint.Parse.$fGenericDef
-instance Language.Fixpoint.Parse.Inputable [(,)]
-  = Language.Fixpoint.Parse.$fInputable(,)
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Smt.Types.Command]
-  = Language.Fixpoint.Parse.$fInputableCommand
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Refinements.Constant]
-  = Language.Fixpoint.Parse.$fInputableConstant
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Parse.$fInputableExpr
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Constraints.FInfoWithOpts]
-  = Language.Fixpoint.Parse.$fInputableFInfoWithOpts
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Parse.$fInputableFixResult
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Parse.$fInputableGInfo
-instance Language.Fixpoint.Parse.Inputable [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Parse.$fInputableSymbol
-instance Language.Fixpoint.Parse.Inputable [[]]
-  = Language.Fixpoint.Parse.$fInputable[]
-instance GHC.Show.Show [Language.Fixpoint.Parse.Def]
-  = Language.Fixpoint.Parse.$fShowDef
-family instance GHC.Generics.Rep [Language.Fixpoint.Parse.Def]
-  = Language.Fixpoint.Parse.Rep_Def
-"SPEC lexer @ (State PState) _" [ALWAYS] forall @ u
-                                                ($dMonad :: GHC.Base.Monad
-                                                              (Control.Monad.Trans.State.Lazy.State
-                                                                 Language.Fixpoint.Parse.PState))
-  Language.Fixpoint.Parse.lexer @ (Control.Monad.Trans.State.Lazy.StateT
-                                     Language.Fixpoint.Parse.PState Data.Functor.Identity.Identity)
-                                @ u
-                                $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$slexer @ u
-"SPEC/Language.Fixpoint.Parse $fApplicativeStateT @ Identity _" [ALWAYS] forall @ s5
-                                                                                ($dMonad :: GHC.Base.Monad
-                                                                                              Data.Functor.Identity.Identity)
-                                                                                ($dFunctor :: GHC.Base.Functor
-                                                                                                Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT @ Data.Functor.Identity.Identity
-                                                     @ s5
-                                                     $dFunctor
-                                                     $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT @ s5
-"SPEC/Language.Fixpoint.Parse $fApplicativeStateT_$c<*> @ Identity _" [ALWAYS] forall @ s5
-                                                                                      ($dMonad :: GHC.Base.Monad
-                                                                                                    Data.Functor.Identity.Identity)
-                                                                                      ($dFunctor :: GHC.Base.Functor
-                                                                                                      Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*> @ Data.Functor.Identity.Identity
-                                                           @ s5
-                                                           $dFunctor
-                                                           $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT_$c<*>
-      @ s5
-"SPEC/Language.Fixpoint.Parse $fApplicativeStateT_$cpure @ Identity _" [ALWAYS] forall @ s5
-                                                                                       ($dMonad :: GHC.Base.Monad
-                                                                                                     Data.Functor.Identity.Identity)
-                                                                                       ($dFunctor :: GHC.Base.Functor
-                                                                                                       Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$cpure @ Data.Functor.Identity.Identity
-                                                            @ s5
-                                                            $dFunctor
-                                                            $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fApplicativeStateT_$cpure
-      @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStateT @ Identity _" [ALWAYS] forall @ s5
-                                                                          ($dMonad :: GHC.Base.Monad
-                                                                                        Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT @ Data.Functor.Identity.Identity
-                                               @ s5
-                                               $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStateT_$c>> @ Identity _" [ALWAYS] forall @ s5
-                                                                               ($dMonad :: GHC.Base.Monad
-                                                                                             Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>> @ Data.Functor.Identity.Identity
-                                                    @ s5
-                                                    $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$c>> @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStateT_$c>>= @ Identity _" [ALWAYS] forall @ s5
-                                                                                ($dMonad :: GHC.Base.Monad
-                                                                                              Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>>= @ Data.Functor.Identity.Identity
-                                                     @ s5
-                                                     $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$c>>= @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStateT_$cfail @ Identity _" [ALWAYS] forall @ s5
-                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                               Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cfail @ Data.Functor.Identity.Identity
-                                                      @ s5
-                                                      $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$cfail @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStateT_$cp1Monad @ Identity _" [ALWAYS] forall @ s5
-                                                                                    ($dMonad :: GHC.Base.Monad
-                                                                                                  Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cp1Monad @ Data.Functor.Identity.Identity
-                                                         @ s5
-                                                         $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fMonadStateT_$cp1Monad @ s5
-"SPEC/Language.Fixpoint.Parse $fMonadStatesStateT0 @ Identity _" [ALWAYS] forall @ s5
-                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                               Data.Functor.Identity.Identity)
-  Control.Monad.State.Class.$fMonadStatesStateT0 @ Data.Functor.Identity.Identity
-                                                 @ s5
-                                                 $dMonad
-  = Language.Fixpoint.Parse.$s$fMonadStatesParsecT_$s$fMonadStatesStateT0
-      @ s5
-"SPEC/Language.Fixpoint.Parse $fStream[]mtok @ (StateT
-                                                 PState Identity) _" [ALWAYS] forall @ tok
-                                                                                                                                            ($dMonad :: GHC.Base.Monad
-                                                                                                                                                          (Control.Monad.Trans.State.Lazy.StateT
-                                                                                                                                                             Language.Fixpoint.Parse.PState
-                                                                                                                                                             Data.Functor.Identity.Identity))
-  Text.Parsec.Prim.$fStream[]mtok @ (Control.Monad.Trans.State.Lazy.StateT
-                                       Language.Fixpoint.Parse.PState
-                                       Data.Functor.Identity.Identity)
-                                  @ tok
-                                  $dMonad
-  = Language.Fixpoint.Parse.whiteSpace_$s$fStream[]mtok @ tok
-"SPEC/Language.Fixpoint.Parse fromList @ KVar _" [ALWAYS] forall @ v
-                                                                 ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                  Language.Fixpoint.Types.Refinements.KVar)
-                                                                 ($dEq :: GHC.Classes.Eq
-                                                                            Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Strict.fromList @ Language.Fixpoint.Types.Refinements.KVar
-                               @ v
-                               $dEq
-                               $dHashable
-  = Language.Fixpoint.Parse.$fInputable(,)_$sfromList @ v
-"SPEC/Language.Fixpoint.Parse put @ Identity _" [ALWAYS] forall @ s5
-                                                                ($dMonad :: GHC.Base.Monad
-                                                                              Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Lazy.put @ Data.Functor.Identity.Identity
-                                     @ s5
-                                     $dMonad
-  = Language.Fixpoint.Parse.$s$fMonadStatesParsecT_$sput @ s5
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Bitvector.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Bitvector.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Bitvector.dump-hi
+++ /dev/null
@@ -1,2287 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:39.843921 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Bitvector [family instance module] 8002
-  interface hash: dff9e72dd5217657a4951e6e96045e35
-  ABI hash: 3927029f6a24eaaa8227f68e4e4c25d3
-  export-list hash: 0868d8bfb8153c2fe9269c7dde630de5
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 6653797678a829902fdba5a7f47b9ac7
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Smt.Bitvector.bvTyCon
-  Language.Fixpoint.Smt.Bitvector.eOp
-  Language.Fixpoint.Smt.Bitvector.mkSort
-  Language.Fixpoint.Smt.Bitvector.Bv{Language.Fixpoint.Smt.Bitvector.Bv}
-  Language.Fixpoint.Smt.Bitvector.BvOp{Language.Fixpoint.Smt.Bitvector.BvAnd Language.Fixpoint.Smt.Bitvector.BvOr}
-  Language.Fixpoint.Smt.Bitvector.BvSize{Language.Fixpoint.Smt.Bitvector.S32 Language.Fixpoint.Smt.Bitvector.S64}
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  bitVecName e733c9a4c9e40b0853f73957e759dbeb
-  bvAndName cc27784d934e70c697e2e7240aaffb45
-  bvOrName 505f19c374fb8992291f59af417f3415
-  size32Name 9dde6f1d287cc6bef86214a3aec859d3
-  size64Name c54b5b34d899e6fa20ee4e270c10e2a5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EApp 242f67cc5b7496adee37b0324be59497
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  Expression 107da2c362396043cbbbba9b8f36f5f5
-  L b2f69dae8b637676011e67a80cf25f48
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FTycon 402c177fc699f05dd97dbf4130d9008b
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  fApp 5c63b19014800e99d08dfb68a2254686
-  fTyconSort 54e118334660a6b9b8ab68de35e9d722
-  symbolFTycon 2016d9cf7aad07819194e6b6c1769258
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  dummyLoc 6a5341e3e7c769f139b8c25d5592734b
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-e83ee6614633832fbc7f7049a4b71ec7
-  $c1OTe3orbbgKCLUOiupN3nk :: Data.Data.Constr
-53c19b610bd32140968ff9a8c63e38a0
-  $c2MC9lKlNTdX4oUilxb5Ylh :: Data.Data.Constr
-6b97da9fe5474d327e4b08cdf2d80166
-  $c8ny9EVKPu808vg25J5N10y :: Data.Data.Constr
-64616c0df628b7fe838873f1e117e97e
-  $cL9Fd8sMCgRaIum89758Ahn :: Data.Data.Constr
-651591409126ba70852da458a80b3812
-  $fDataBvOp :: Data.Data.Data Language.Fixpoint.Smt.Bitvector.BvOp
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvOp
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cp1Data
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgfoldl
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgunfold
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$ctoConstr
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cdataTypeOf
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$s$dmdataCast1
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$s$dmdataCast2
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapT
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapQl
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapQr
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapQ
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapQi
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapM
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapMp
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$cgmapMo -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp1 ::
-    (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Smt.Bitvector.BvOr,
-                  GHC.Types.False)) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp2 ::
-    (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Smt.Bitvector.BvAnd,
-                  GHC.Types.False)) -}
-6eae51b6b691acdaff4a6671513b6339
-  $fDataBvOp3 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvOp4) -}
-8693b1cc7eb2452ec6307fec2e1171fe
-  $fDataBvOp4 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Smt.Bitvector.$c8ny9EVKPu808vg25J5N10y
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvOp5) -}
-82d61c2ca1e8b94d876edb530430edda
-  $fDataBvOp5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Smt.Bitvector.$cL9Fd8sMCgRaIum89758Ahn
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-073083755e622b8a78b9615d78234ef3
-  $fDataBvOp6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BvOp"#) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp7 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 Language.Fixpoint.Smt.Bitvector.$fDataBvOp8) -}
-0bf61c6892ebc5af2dc533493fb260cb
-  $fDataBvOp8 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvOp9
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Smt.Bitvector.$tcBvOp
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-51241a4fa77c8f03df6b458de07b1d50
-  $fDataBvOp9 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   10754799169539883977##
-                   13267495969070626133##) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cdataTypeOf ::
-    Language.Fixpoint.Smt.Bitvector.BvOp -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 Language.Fixpoint.Smt.Bitvector.$tVm821N5D97J4SjtSNOWM8) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> c Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><C(S),1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> z @ Language.Fixpoint.Smt.Bitvector.BvOp
-                        Language.Fixpoint.Smt.Bitvector.BvAnd
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> z @ Language.Fixpoint.Smt.Bitvector.BvOp
-                        Language.Fixpoint.Smt.Bitvector.BvOr }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> m Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,A><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case eta of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> GHC.Base.return
-                        @ m
-                        $dMonad
-                        @ Language.Fixpoint.Smt.Bitvector.BvOp
-                        Language.Fixpoint.Smt.Bitvector.BvAnd
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> GHC.Base.return
-                        @ m
-                        $dMonad
-                        @ Language.Fixpoint.Smt.Bitvector.BvOp
-                        Language.Fixpoint.Smt.Bitvector.BvOr }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> m Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgmapMo @ m w w2) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> m Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgmapMp @ m w w2) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> [u]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x0 of wild { DEFAULT -> GHC.Types.[] @ u }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> u
-  {- Arity: 3, Strictness: <B,A><B,A><B,1*U>x,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x of wild { DEFAULT -> Data.Maybe.fromJust1 @ u }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case eta of wild { DEFAULT -> ds1 }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x0 of wild { DEFAULT -> ds1 }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 x0) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3,
-     Strictness: <L,A><C(S),1*C1(U)><S(SLLLL),1*U(1*U,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 case w2 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgunfold @ c w1 ww1 ww5 }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Bitvector.$fDataBvOp7
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Smt.Bitvector.BvOp>_N)) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$ctoConstr ::
-    Language.Fixpoint.Smt.Bitvector.BvOp -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> Language.Fixpoint.Smt.Bitvector.$c8ny9EVKPu808vg25J5N10y
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> Language.Fixpoint.Smt.Bitvector.$cL9Fd8sMCgRaIum89758Ahn }) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Smt.Bitvector.BvOp)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Smt.Bitvector.BvOp)) -}
-651591409126ba70852da458a80b3812
-  $fDataBvOp_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Smt.Bitvector.BvOp)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Smt.Bitvector.BvOp)) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize ::
-    Data.Data.Data Language.Fixpoint.Smt.Bitvector.BvSize
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvSize
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cp1Data
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgfoldl
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgunfold
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$ctoConstr
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cdataTypeOf
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$s$dmdataCast1
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$s$dmdataCast2
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapT
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapQl
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapQr
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapQ
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapQi
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapM
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapMp
-                  Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$cgmapMo -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize1 ::
-    (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Smt.Bitvector.S64,
-                  GHC.Types.False)) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize2 ::
-    (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Smt.Bitvector.S32,
-                  GHC.Types.False)) -}
-d522752cff58203efc8c11d6cf39999d
-  $fDataBvSize3 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvSize4) -}
-c895bc3e176bc0bd0bfc04af02b6c861
-  $fDataBvSize4 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Smt.Bitvector.$c2MC9lKlNTdX4oUilxb5Ylh
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvSize5) -}
-770462910321cdef99a398979030b154
-  $fDataBvSize5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Smt.Bitvector.$c1OTe3orbbgKCLUOiupN3nk
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-8669d88589b7376721c604bfdab8aa1d
-  $fDataBvSize6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BvSize"#) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize7 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 Language.Fixpoint.Smt.Bitvector.$fDataBvSize8) -}
-661e0a9df757b3b2884d47775b6f35f3
-  $fDataBvSize8 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvSize9
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Smt.Bitvector.$tcBvSize
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-d7e752c914df48eb6ba01ab4a54e29c9
-  $fDataBvSize9 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   1962993127537895453##
-                   11181703138578676587##) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cdataTypeOf ::
-    Language.Fixpoint.Smt.Bitvector.BvSize -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 Language.Fixpoint.Smt.Bitvector.$t9rCAXZVfX6wDTQBavbYa5V) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> c Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><C(S),1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> z @ Language.Fixpoint.Smt.Bitvector.BvSize
-                        Language.Fixpoint.Smt.Bitvector.S32
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> z @ Language.Fixpoint.Smt.Bitvector.BvSize
-                        Language.Fixpoint.Smt.Bitvector.S64 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> m Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,A><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case eta of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> GHC.Base.return
-                        @ m
-                        $dMonad
-                        @ Language.Fixpoint.Smt.Bitvector.BvSize
-                        Language.Fixpoint.Smt.Bitvector.S32
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> GHC.Base.return
-                        @ m
-                        $dMonad
-                        @ Language.Fixpoint.Smt.Bitvector.BvSize
-                        Language.Fixpoint.Smt.Bitvector.S64 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> m Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgmapMo1 @ m w w2) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> m Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgmapMp1 @ m w w2) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> [u]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x0 of wild { DEFAULT -> GHC.Types.[] @ u }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> u
-  {- Arity: 3, Strictness: <B,A><B,A><B,1*U>x,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x of wild { DEFAULT -> Data.Maybe.fromJust1 @ u }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case eta of wild { DEFAULT -> ds1 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x0 of wild { DEFAULT -> ds1 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 x0) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3,
-     Strictness: <L,A><C(S),1*C1(U)><S(SLLLL),1*U(1*U,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 case w2 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cgunfold1 @ c w1 ww1 ww5 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Bitvector.$fDataBvSize7
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Smt.Bitvector.BvSize>_N)) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$ctoConstr ::
-    Language.Fixpoint.Smt.Bitvector.BvSize -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> Language.Fixpoint.Smt.Bitvector.$c2MC9lKlNTdX4oUilxb5Ylh
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> Language.Fixpoint.Smt.Bitvector.$c1OTe3orbbgKCLUOiupN3nk }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Smt.Bitvector.BvSize)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Smt.Bitvector.BvSize)) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fDataBvSize_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Smt.Bitvector.BvSize)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Smt.Bitvector.BvSize)) -}
-651591409126ba70852da458a80b3812
-  $fEqBvOp :: GHC.Classes.Eq Language.Fixpoint.Smt.Bitvector.BvOp
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvOp
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvOp_$c==
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvOp_$c/= -}
-651591409126ba70852da458a80b3812
-  $fEqBvOp_$c/= ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.False } }) -}
-651591409126ba70852da458a80b3812
-  $fEqBvOp_$c== ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (ds1 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.True } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fEqBvSize :: GHC.Classes.Eq Language.Fixpoint.Smt.Bitvector.BvSize
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvSize
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvSize_$c==
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvSize_$c/= -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fEqBvSize_$c/= ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.False } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fEqBvSize_$c== ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (ds1 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.True } }) -}
-5415bec2da6f9382edc97ebe3e621234
-  $fExpressionBv ::
-    Language.Fixpoint.Types.Refinements.Expression
-      Language.Fixpoint.Smt.Bitvector.Bv
-  DFunId
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Bitvector.$fExpressionBv_$cexpr
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Refinements.N:Expression[0]
-                          <Language.Fixpoint.Smt.Bitvector.Bv>_N)) -}
-5415bec2da6f9382edc97ebe3e621234
-  $fExpressionBv_$cexpr ::
-    Language.Fixpoint.Smt.Bitvector.Bv
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Bitvector.Bv) ->
-                 case w of ww { Language.Fixpoint.Smt.Bitvector.Bv ww1 ww2 ->
-                 Language.Fixpoint.Smt.Bitvector.$w$cexpr ww1 ww2 }) -}
-651591409126ba70852da458a80b3812
-  $fGenericBvOp ::
-    GHC.Generics.Generic Language.Fixpoint.Smt.Bitvector.BvOp
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvOp
-                  Language.Fixpoint.Smt.Bitvector.$fGenericBvOp_$cfrom
-                  Language.Fixpoint.Smt.Bitvector.$fGenericBvOp_$cto -}
-651591409126ba70852da458a80b3812
-  $fGenericBvOp1 ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> Language.Fixpoint.Smt.Bitvector.$fGenericBvOp3 @ x
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> Language.Fixpoint.Smt.Bitvector.$fGenericBvOp2 @ x }) -}
-76f078e35d8f0f059c74556dea1f6d76
-  $fGenericBvOp2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-e97fda4ea2098d61cb40ffa4e4e841ad
-  $fGenericBvOp3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-651591409126ba70852da458a80b3812
-  $fGenericBvOp_$cfrom ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvOp x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Bitvector.$fGenericBvOp1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Smt.Bitvector.BvOp>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "BvOp"
-                                       "Language.Fixpoint.Smt.Bitvector"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: GHC.Generics.M1
-                                                        GHC.Generics.C
-                                                        ('GHC.Generics.MetaCons
-                                                           "BvOr"
-                                                           'GHC.Generics.PrefixI
-                                                           'GHC.Types.False)
-                                                        GHC.Generics.U1>_R))
-                          (Sub (Sym (Language.Fixpoint.Smt.Bitvector.Rep_BvOp[0]))) <x>_N) -}
-651591409126ba70852da458a80b3812
-  $fGenericBvOp_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvOp x
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvOp x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Smt.Bitvector.Rep_BvOp[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "BvOp"
-                                   "Language.Fixpoint.Smt.Bitvector"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "BvOr"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    GHC.Generics.U1>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.BvAnd }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.BvOr } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fGenericBvSize ::
-    GHC.Generics.Generic Language.Fixpoint.Smt.Bitvector.BvSize
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvSize
-                  Language.Fixpoint.Smt.Bitvector.$fGenericBvSize_$cfrom
-                  Language.Fixpoint.Smt.Bitvector.$fGenericBvSize_$cto -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fGenericBvSize1 ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> Language.Fixpoint.Smt.Bitvector.$fGenericBvSize3 @ x
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> Language.Fixpoint.Smt.Bitvector.$fGenericBvSize2 @ x }) -}
-32834fae4d4e0a7a962e13d2226d3463
-  $fGenericBvSize2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "S64" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-46f709e88c3063215aa5a29250098e98
-  $fGenericBvSize3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "S32" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fGenericBvSize_$cfrom ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvSize x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Bitvector.$fGenericBvSize1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Smt.Bitvector.BvSize>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "BvSize"
-                                       "Language.Fixpoint.Smt.Bitvector"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: GHC.Generics.M1
-                                                        GHC.Generics.C
-                                                        ('GHC.Generics.MetaCons
-                                                           "S64"
-                                                           'GHC.Generics.PrefixI
-                                                           'GHC.Types.False)
-                                                        GHC.Generics.U1>_R))
-                          (Sub (Sym (Language.Fixpoint.Smt.Bitvector.Rep_BvSize[0]))) <x>_N) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fGenericBvSize_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvSize x
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Smt.Bitvector.BvSize x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Smt.Bitvector.Rep_BvSize[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "BvSize"
-                                   "Language.Fixpoint.Smt.Bitvector"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    GHC.Generics.U1>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.S32 }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.S64 } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp :: GHC.Classes.Ord Language.Fixpoint.Smt.Bitvector.BvOp
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvOp
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvOp
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$ccompare
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$c<
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$c<=
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$c>
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$c>=
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$cmax
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvOp_$cmin -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$c< ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$c<= ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.True } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$c> ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.False } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$c>= ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$ccompare ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.EQ
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.LT }
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd -> GHC.Types.GT
-                        Language.Fixpoint.Smt.Bitvector.BvOr -> GHC.Types.EQ } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$cmax ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (y :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd -> y
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.BvOr } }) -}
-651591409126ba70852da458a80b3812
-  $fOrdBvOp_$cmin ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-    -> Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (y :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.BvAnd }
-                   Language.Fixpoint.Smt.Bitvector.BvOr -> y }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize ::
-    GHC.Classes.Ord Language.Fixpoint.Smt.Bitvector.BvSize
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvSize
-                  Language.Fixpoint.Smt.Bitvector.$fEqBvSize
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$ccompare
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$c<
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$c<=
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$c>
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$c>=
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$cmax
-                  Language.Fixpoint.Smt.Bitvector.$fOrdBvSize_$cmin -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$c< ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$c<= ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.False
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.True } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$c> ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.False } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$c>= ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.True
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.False }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$ccompare ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (b :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case a of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.EQ
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.LT }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case b of wild1 {
-                        Language.Fixpoint.Smt.Bitvector.S32 -> GHC.Types.GT
-                        Language.Fixpoint.Smt.Bitvector.S64 -> GHC.Types.EQ } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$cmax ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (y :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32 -> y
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.S64 } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fOrdBvSize_$cmin ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (y :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Smt.Bitvector.S32 }
-                   Language.Fixpoint.Smt.Bitvector.S64 -> y }) -}
-651591409126ba70852da458a80b3812
-  $fShowBvOp :: GHC.Show.Show Language.Fixpoint.Smt.Bitvector.BvOp
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvOp
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvOp_$cshowsPrec
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvOp_$cshow
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvOp_$cshowList -}
-651591409126ba70852da458a80b3812
-  $fShowBvOp1 ::
-    Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (eta :: GHC.Base.String) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvOp3)
-                        eta
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvOp2)
-                        eta }) -}
-cf299dd13c937e66d834b73505ebe72d
-  $fShowBvOp2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BvOr"#) -}
-7478ee236c36f57694f45f9864de1992
-  $fShowBvOp3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BvAnd"#) -}
-651591409126ba70852da458a80b3812
-  $fShowBvOp_$cshow ::
-    Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> Language.Fixpoint.Smt.Bitvector.$fShowBvOp3
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> Language.Fixpoint.Smt.Bitvector.$fShowBvOp2 }) -}
-651591409126ba70852da458a80b3812
-  $fShowBvOp_$cshowList ::
-    [Language.Fixpoint.Smt.Bitvector.BvOp] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Smt.Bitvector.BvOp
-                   Language.Fixpoint.Smt.Bitvector.$fShowBvOp1) -}
-651591409126ba70852da458a80b3812
-  $fShowBvOp_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Smt.Bitvector.BvOp -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Smt.Bitvector.BvAnd
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvOp3)
-                        eta
-                   Language.Fixpoint.Smt.Bitvector.BvOr
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvOp2)
-                        eta }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fShowBvSize ::
-    GHC.Show.Show Language.Fixpoint.Smt.Bitvector.BvSize
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Bitvector.BvSize
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvSize_$cshowsPrec
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvSize_$cshow
-                  Language.Fixpoint.Smt.Bitvector.$fShowBvSize_$cshowList -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fShowBvSize1 ::
-    Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (eta :: GHC.Base.String) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvSize3)
-                        eta
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvSize2)
-                        eta }) -}
-b2401d726392135b46e1f79fbd2deb95
-  $fShowBvSize2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "S64"#) -}
-4349fe6784e1765180f6743f10a474a5
-  $fShowBvSize3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "S32"#) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fShowBvSize_$cshow ::
-    Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> Language.Fixpoint.Smt.Bitvector.$fShowBvSize3
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> Language.Fixpoint.Smt.Bitvector.$fShowBvSize2 }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fShowBvSize_$cshowList ::
-    [Language.Fixpoint.Smt.Bitvector.BvSize] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Smt.Bitvector.BvSize
-                   Language.Fixpoint.Smt.Bitvector.$fShowBvSize1) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $fShowBvSize_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Smt.Bitvector.BvSize -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Smt.Bitvector.BvSize)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvSize3)
-                        eta
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Smt.Bitvector.$fShowBvSize2)
-                        eta }) -}
-7ae244a4cdc16d98819c11f5be4a6cd6
-  $t9rCAXZVfX6wDTQBavbYa5V :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvSize6
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvSize3) -}
-2e1ef330ec14806046cdf5d1ee4d1ced
-  $tVm821N5D97J4SjtSNOWM8 :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvOp6
-                   Language.Fixpoint.Smt.Bitvector.$fDataBvOp3) -}
-ba095ed1b57c14f8a18bd2a731056b43
-  $tc'Bv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   141736664225023658##
-                   429580117335606805##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tc'Bv1) -}
-146227b68cc5c050f9c6390d7dd25017
-  $tc'Bv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Bv"#) -}
-be30d55a374c663924fc87d965ec214b
-  $tc'BvAnd :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7458287235432290051##
-                   9502875943606536488##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tc'BvAnd1) -}
-14369b26adeaddcf65343b315d68ac7b
-  $tc'BvAnd1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BvAnd"#) -}
-e8190c44a692fe168994d78e5c45142e
-  $tc'BvOr :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11540949382735005742##
-                   10982720071748824382##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tc'BvOr1) -}
-f42ba7ca792b4e6e65008c426d266832
-  $tc'BvOr1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BvOr"#) -}
-ff38e3e253de200a3a2fa232138372a3
-  $tc'S1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'S32"#) -}
-9baa2e246fd955e30a0b056edb3b95d8
-  $tc'S2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'S64"#) -}
-1a82f6852a7ccbc62040e03fdc742e0d
-  $tc'S32 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   225941708856458338##
-                   11490301533838637533##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tc'S1) -}
-fd938c28e82316e19cce3f2338d50231
-  $tc'S64 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10893706559120239207##
-                   4757224561556893026##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tc'S2) -}
-c9378d8b334900718059663d9ea66ba8
-  $tcBv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7483701939852421234##
-                   5121304576751404465##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tcBv1) -}
-63f10f82fe6e742174943e41198b9b75
-  $tcBv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Bv"#) -}
-268d79077442b1f55f7589175e45b71c
-  $tcBvOp :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10754799169539883977##
-                   13267495969070626133##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tcBvOp1) -}
-6360efe74d6de2a155d89eab5c7f1c4d
-  $tcBvOp1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "BvOp"#) -}
-809fec10dae8a2d9d4a4496794437956
-  $tcBvSize :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1962993127537895453##
-                   11181703138578676587##
-                   Language.Fixpoint.Smt.Bitvector.$trModule
-                   Language.Fixpoint.Smt.Bitvector.$tcBvSize1) -}
-1eab25ab69f08bd964ce9ea846885535
-  $tcBvSize1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "BvSize"#) -}
-eecc62d9a66ac1f8c66beb87559132b0
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Smt.Bitvector.$trModule2
-                   Language.Fixpoint.Smt.Bitvector.$trModule1) -}
-93aabee3f46387b9103850fd4458a1c3
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Smt.Bitvector"#) -}
-e65df6941eb40179a2b7008abd223d8c
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-3f0357bc79a6951b98d9869f915c0eee
-  $w$cexpr ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> GHC.Base.String -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <S,U><S,U>, Inline: [0] -}
-651591409126ba70852da458a80b3812
-  $w$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> m Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl1 :: m Language.Fixpoint.Smt.Bitvector.BvOp
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Smt.Bitvector.BvOp
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                   @ Language.Fixpoint.Smt.Bitvector.BvOp
-                   (case w1 of wild {
-                      Language.Fixpoint.Smt.Bitvector.BvAnd
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvOp2
-                      Language.Fixpoint.Smt.Bitvector.BvOr
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvOp1 })
-                   (\ (ds :: (Language.Fixpoint.Smt.Bitvector.BvOp,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl1
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Smt.Bitvector.BvOp
-                           x' } })) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $w$cgmapMo1 ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> m Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl1 :: m Language.Fixpoint.Smt.Bitvector.BvSize
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Smt.Bitvector.BvSize
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                   @ Language.Fixpoint.Smt.Bitvector.BvSize
-                   (case w1 of wild {
-                      Language.Fixpoint.Smt.Bitvector.S32
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvSize2
-                      Language.Fixpoint.Smt.Bitvector.S64
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvSize1 })
-                   (\ (ds :: (Language.Fixpoint.Smt.Bitvector.BvSize,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl1
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Smt.Bitvector.BvSize
-                           x' } })) -}
-651591409126ba70852da458a80b3812
-  $w$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> m Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Smt.Bitvector.BvOp) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl1 :: m Language.Fixpoint.Smt.Bitvector.BvOp
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Smt.Bitvector.BvOp
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                   @ Language.Fixpoint.Smt.Bitvector.BvOp
-                   (case w1 of wild {
-                      Language.Fixpoint.Smt.Bitvector.BvAnd
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvOp2
-                      Language.Fixpoint.Smt.Bitvector.BvOr
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvOp, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvOp1 })
-                   (\ (ds :: (Language.Fixpoint.Smt.Bitvector.BvOp,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl1
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Smt.Bitvector.BvOp
-                           x' } })) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $w$cgmapMp1 ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> m Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl1 :: m Language.Fixpoint.Smt.Bitvector.BvSize
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Smt.Bitvector.BvSize
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                   @ Language.Fixpoint.Smt.Bitvector.BvSize
-                   (case w1 of wild {
-                      Language.Fixpoint.Smt.Bitvector.S32
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvSize2
-                      Language.Fixpoint.Smt.Bitvector.S64
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Smt.Bitvector.BvSize, GHC.Types.Bool)
-                           Language.Fixpoint.Smt.Bitvector.$fDataBvSize1 })
-                   (\ (ds :: (Language.Fixpoint.Smt.Bitvector.BvSize,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl1
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Smt.Bitvector.BvSize
-                           x' } })) -}
-651591409126ba70852da458a80b3812
-  $w$cgunfold ::
-    (forall r. r -> c r)
-    -> Data.Data.ConstrRep
-    -> Data.Data.DataType
-    -> c Language.Fixpoint.Smt.Bitvector.BvOp
-  {- Arity: 3, Strictness: <C(S),1*C1(U)><S,1*U><L,U>, Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall r. r -> c r)
-                   (ww :: Data.Data.ConstrRep)
-                   (ww1 :: Data.Data.DataType) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case Data.Data.constrIndex1 ww1
-                      ret_ty (c Language.Fixpoint.Smt.Bitvector.BvOp)
-                      of {}
-                   Data.Data.AlgConstr idx
-                   -> case idx of wild1 { GHC.Types.I# ds ->
-                      case ds of ds1 {
-                        DEFAULT
-                        -> w @ Language.Fixpoint.Smt.Bitvector.BvOp
-                             Language.Fixpoint.Smt.Bitvector.BvOr
-                        1#
-                        -> w @ Language.Fixpoint.Smt.Bitvector.BvOp
-                             Language.Fixpoint.Smt.Bitvector.BvAnd } } }) -}
-8915c955b207aa3b6c40052ae4e8ab04
-  $w$cgunfold1 ::
-    (forall r. r -> c r)
-    -> Data.Data.ConstrRep
-    -> Data.Data.DataType
-    -> c Language.Fixpoint.Smt.Bitvector.BvSize
-  {- Arity: 3, Strictness: <C(S),1*C1(U)><S,1*U><L,U>, Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall r. r -> c r)
-                   (ww :: Data.Data.ConstrRep)
-                   (ww1 :: Data.Data.DataType) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case Data.Data.constrIndex1 ww1
-                      ret_ty (c Language.Fixpoint.Smt.Bitvector.BvSize)
-                      of {}
-                   Data.Data.AlgConstr idx
-                   -> case idx of wild1 { GHC.Types.I# ds ->
-                      case ds of ds1 {
-                        DEFAULT
-                        -> w @ Language.Fixpoint.Smt.Bitvector.BvSize
-                             Language.Fixpoint.Smt.Bitvector.S64
-                        1#
-                        -> w @ Language.Fixpoint.Smt.Bitvector.BvSize
-                             Language.Fixpoint.Smt.Bitvector.S32 } } }) -}
-8a290ff19c6605e0bee08cfc0189b81e
-  $w$j ::
-    Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 6, Strictness: <S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourcePos)[OneShot]
-                   (ww1 :: Text.Parsec.Pos.SourcePos)[OneShot]
-                   (ww2 :: GHC.Prim.Int#)[OneShot]
-                   (ww3 :: Data.Text.Internal.Text)[OneShot]
-                   (ww4 :: Data.Text.Internal.Text)[OneShot]
-                   (w :: Language.Fixpoint.Types.Sorts.TCInfo)[OneShot] ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 dt1) of wild2 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild3 { Language.Fixpoint.Types.Spans.Loc ds7 ds8 ds9 ->
-                           case ds9 of wild4 { Language.Fixpoint.Types.Names.S dt2 ds10 ds11 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 dt2) of wild5 {
-                             GHC.Types.False
-                             -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild6 { Language.Fixpoint.Types.Spans.Loc ds12 ds13 ds14 ->
-                                case ds14 of wild7 { Language.Fixpoint.Types.Names.S dt3 ds15 ds16 ->
-                                case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww2 dt3) of wild8 {
-                                  GHC.Types.False
-                                  -> Language.Fixpoint.Types.Sorts.FTC
-                                       (Language.Fixpoint.Types.Sorts.TC
-                                          (Language.Fixpoint.Types.Spans.Loc
-                                             @ Language.Fixpoint.Types.Names.Symbol
-                                             ww
-                                             ww1
-                                             (Language.Fixpoint.Types.Names.S ww2 ww3 ww4))
-                                          w)
-                                  GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.FInt } of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Sorts.FApp
-                   Language.Fixpoint.Smt.Bitvector.mkSort2
-                   dt } } }) -}
-5415bec2da6f9382edc97ebe3e621234
-  data Bv
-    = Bv !Language.Fixpoint.Smt.Bitvector.BvSize !GHC.Base.String
-651591409126ba70852da458a80b3812
-  data BvOp = BvAnd | BvOr
-8915c955b207aa3b6c40052ae4e8ab04
-  data BvSize = S32 | S64
-651591409126ba70852da458a80b3812
-  axiom Rep_BvOp::
-      GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvOp
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "BvOp"
-               "Language.Fixpoint.Smt.Bitvector"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "BvAnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "BvOr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1)
-8915c955b207aa3b6c40052ae4e8ab04
-  axiom Rep_BvSize::
-      GHC.Generics.Rep Language.Fixpoint.Smt.Bitvector.BvSize
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "BvSize"
-               "Language.Fixpoint.Smt.Bitvector"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "S32" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "S64" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1)
-06e6a855b115ae1d9f21786e0e8b15be
-  bvTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Unfolding: (case Language.Fixpoint.Types.Names.bitVecName of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case Language.Fixpoint.Types.Names.listConName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ipv dt1) of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv dt2) of wild3 {
-                        GHC.Types.False
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             (Language.Fixpoint.Types.Spans.Loc
-                                @ Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                                Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                                dt)
-                             Language.Fixpoint.Smt.Bitvector.bvTyCon2
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             Language.Fixpoint.Smt.Bitvector.bvTyCon1
-                             Language.Fixpoint.Smt.Bitvector.bvTyCon2 } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Sorts.TC
-                        Language.Fixpoint.Smt.Bitvector.bvTyCon1
-                        Language.Fixpoint.Smt.Bitvector.bvTyCon2 } } }) -}
-e68a688aa513273a69e373918a3a18cf
-  bvTyCon1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Names.listConName) -}
-8a3476868d04197b65e92e68290c630a
-  bvTyCon2 :: Language.Fixpoint.Types.Sorts.TCInfo
-  {- HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TCInfo
-                   GHC.Types.False
-                   GHC.Types.False
-                   GHC.Types.False) -}
-e6d824f92cb222db762e08acd79eb628
-  eOp ::
-    Language.Fixpoint.Smt.Bitvector.BvOp
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (b :: Language.Fixpoint.Smt.Bitvector.BvOp)
-                   (es :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 case case b of wild {
-                        Language.Fixpoint.Smt.Bitvector.BvAnd
-                        -> Language.Fixpoint.Types.Names.bvAndName
-                        Language.Fixpoint.Smt.Bitvector.BvOr
-                        -> Language.Fixpoint.Types.Names.bvOrName } of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Smt.Bitvector.eOp_go
-                   es
-                   (Language.Fixpoint.Types.Refinements.EVar dt) }) -}
-9b5ca1b5bf885ed93e79e8ea7d79ceac
-  eOp_go ::
-    [Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,U> -}
-d70d1f3b9374944efd7ebcc18610c4d1
-  mkSort ::
-    Language.Fixpoint.Smt.Bitvector.BvSize
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (s :: Language.Fixpoint.Smt.Bitvector.BvSize) ->
-                 case Language.Fixpoint.Smt.Bitvector.mkSort2 of z { DEFAULT ->
-                 case s of wild {
-                   Language.Fixpoint.Smt.Bitvector.S32
-                   -> case Language.Fixpoint.Types.Names.size32Name of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                      Language.Fixpoint.Smt.Bitvector.mkSort1 ipv ipv1 ipv2 }
-                   Language.Fixpoint.Smt.Bitvector.S64
-                   -> case Language.Fixpoint.Types.Names.size64Name of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                      Language.Fixpoint.Smt.Bitvector.mkSort1 ipv ipv1 ipv2 } } }) -}
-45028f18457b573feead11159e81ebd7
-  mkSort1 ::
-    GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3, Strictness: <S,U><L,U><L,U>,
-     Unfolding: (\ (ipv :: GHC.Prim.Int#)[OneShot]
-                   (ipv1 :: Data.Text.Internal.Text)[OneShot]
-                   (ipv2 :: Data.Text.Internal.Text)[OneShot] ->
-                 case Language.Fixpoint.Types.Names.listConName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ipv dt1) of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv dt2) of wild3 {
-                        GHC.Types.False
-                        -> Language.Fixpoint.Smt.Bitvector.$w$j
-                             Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                             Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                             ipv
-                             ipv1
-                             ipv2
-                             Language.Fixpoint.Smt.Bitvector.bvTyCon2
-                        GHC.Types.True
-                        -> Language.Fixpoint.Smt.Bitvector.$w$j
-                             Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                             Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                             dt1
-                             ds4
-                             ds5
-                             Language.Fixpoint.Smt.Bitvector.bvTyCon2 } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Smt.Bitvector.$w$j
-                        Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                        Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                        dt1
-                        ds4
-                        ds5
-                        Language.Fixpoint.Smt.Bitvector.bvTyCon2 } }) -}
-1877cbae31c80bf9a0baa8f1507cb125
-  mkSort2 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Smt.Bitvector.bvTyCon of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww8 dt1) of wild2 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild3 { Language.Fixpoint.Types.Spans.Loc ds7 ds8 ds9 ->
-                      case ds9 of wild4 { Language.Fixpoint.Types.Names.S dt2 ds10 ds11 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww8 dt2) of wild5 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild6 { Language.Fixpoint.Types.Spans.Loc ds12 ds13 ds14 ->
-                           case ds14 of wild7 { Language.Fixpoint.Types.Names.S dt3 ds15 ds16 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww8 dt3) of wild8 {
-                             GHC.Types.False -> Language.Fixpoint.Types.Sorts.FTC ww
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Sorts.FInt } } } } } }) -}
-instance Data.Data.Data [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvOp
-instance Data.Data.Data [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvSize
-instance GHC.Classes.Eq [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.$fEqBvOp
-instance GHC.Classes.Eq [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.$fEqBvSize
-instance Language.Fixpoint.Types.Refinements.Expression [Language.Fixpoint.Smt.Bitvector.Bv]
-  = Language.Fixpoint.Smt.Bitvector.$fExpressionBv
-instance GHC.Generics.Generic [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.$fGenericBvOp
-instance GHC.Generics.Generic [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.$fGenericBvSize
-instance GHC.Classes.Ord [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.$fOrdBvOp
-instance GHC.Classes.Ord [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.$fOrdBvSize
-instance GHC.Show.Show [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.$fShowBvOp
-instance GHC.Show.Show [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.$fShowBvSize
-family instance GHC.Generics.Rep [Language.Fixpoint.Smt.Bitvector.BvOp]
-  = Language.Fixpoint.Smt.Bitvector.Rep_BvOp
-family instance GHC.Generics.Rep [Language.Fixpoint.Smt.Bitvector.BvSize]
-  = Language.Fixpoint.Smt.Bitvector.Rep_BvSize
-"SPEC/Language.Fixpoint.Smt.Bitvector $dmdataCast1 @ BvOp" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                        Language.Fixpoint.Smt.Bitvector.BvOp)
-  Data.Data.$dmdataCast1 @ Language.Fixpoint.Smt.Bitvector.BvOp
-                         $dData
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Smt.Bitvector $dmdataCast1 @ BvSize" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                          Language.Fixpoint.Smt.Bitvector.BvSize)
-  Data.Data.$dmdataCast1 @ Language.Fixpoint.Smt.Bitvector.BvSize
-                         $dData
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Smt.Bitvector $dmdataCast2 @ BvOp" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                        Language.Fixpoint.Smt.Bitvector.BvOp)
-  Data.Data.$dmdataCast2 @ Language.Fixpoint.Smt.Bitvector.BvOp
-                         $dData
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvOp_$s$dmdataCast2
-"SPEC/Language.Fixpoint.Smt.Bitvector $dmdataCast2 @ BvSize" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                          Language.Fixpoint.Smt.Bitvector.BvSize)
-  Data.Data.$dmdataCast2 @ Language.Fixpoint.Smt.Bitvector.BvSize
-                         $dData
-  = Language.Fixpoint.Smt.Bitvector.$fDataBvSize_$s$dmdataCast2
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Interface.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Interface.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Interface.dump-hi
+++ /dev/null
@@ -1,1680 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:54.228714 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Interface 8002
-  interface hash: cdc74ec69b66b2a76a4e941f0a981436
-  ABI hash: f538f0ac51ee819dc838b6422164f768
-  export-list hash: 7bacdb37e2c46633ad6ef325fbbcf3f3
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: b01b75c4ad85b4e227ace0573f3c921e
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Smt.Interface.checkValid
-  Language.Fixpoint.Smt.Interface.checkValid'
-  Language.Fixpoint.Smt.Interface.checkValidWithContext
-  Language.Fixpoint.Smt.Interface.checkValids
-  Language.Fixpoint.Smt.Interface.cleanupContext
-  Language.Fixpoint.Smt.Interface.command
-  Language.Fixpoint.Smt.Interface.makeContext
-  Language.Fixpoint.Smt.Interface.makeContextNoLog
-  Language.Fixpoint.Smt.Interface.makeContextWithSEnv
-  Language.Fixpoint.Smt.Interface.makeSmtContext
-  Language.Fixpoint.Smt.Interface.smtAssert
-  Language.Fixpoint.Smt.Interface.smtAssertAxiom
-  Language.Fixpoint.Smt.Interface.smtBracket
-  Language.Fixpoint.Smt.Interface.smtCheckSat
-  Language.Fixpoint.Smt.Interface.smtCheckUnsat
-  Language.Fixpoint.Smt.Interface.smtDecl
-  Language.Fixpoint.Smt.Interface.smtDecls
-  Language.Fixpoint.Smt.Interface.smtDistinct
-  Language.Fixpoint.Smt.Interface.smtPop
-  Language.Fixpoint.Smt.Interface.smtPush
-  Language.Fixpoint.Smt.Interface.smtWrite
-  Language.Fixpoint.Smt.Types.Command{Language.Fixpoint.Smt.Types.Assert Language.Fixpoint.Smt.Types.AssertAxiom Language.Fixpoint.Smt.Types.CMany Language.Fixpoint.Smt.Types.CheckSat Language.Fixpoint.Smt.Types.Declare Language.Fixpoint.Smt.Types.Define Language.Fixpoint.Smt.Types.Distinct Language.Fixpoint.Smt.Types.GetValue Language.Fixpoint.Smt.Types.Pop Language.Fixpoint.Smt.Types.Push}
-  Language.Fixpoint.Smt.Types.Context{Language.Fixpoint.Smt.Types.Ctx ctxAeq ctxBeq ctxCin ctxCout ctxExt ctxLog ctxNorm ctxPid ctxSmtEnv ctxVerbose}
-  Language.Fixpoint.Smt.Types.Response{Language.Fixpoint.Smt.Types.Error Language.Fixpoint.Smt.Types.Ok Language.Fixpoint.Smt.Types.Sat Language.Fixpoint.Smt.Types.Unknown Language.Fixpoint.Smt.Types.Unsat Language.Fixpoint.Smt.Types.Values}
-  Language.Fixpoint.Smt.Types.SMTLIB2{Language.Fixpoint.Smt.Types.smt2}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Serialize Language.Fixpoint.Smt.Theories
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Combinator 1764cd47daec5ed4c8be1c99c697f14b
-import  -/  attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types 368d7f49be51b9833423e14d1c6dcb38
-import  -/  attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text e144cce9b5f5d7c555243f1a32e7a3e7
-import  -/  attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal 6027bfcf6269b291191870ec2aa4041d
-import  -/  base-4.9.1.0:Control.Applicative 32430a90492e727f4bd80db71c28600c
-import  -/  base-4.9.1.0:Control.Exception a76dd9666251322fe34dbcca3a0817bf
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Char 01433d23661edb6e5ef1536ef1e6774c
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.IO.Exception 5064be4c355632a1d1c4f2322f56ac52
-import  -/  base-4.9.1.0:GHC.IO.Handle ba98a5b34d78cbf48b41fe58a3735c69
-import  -/  base-4.9.1.0:GHC.IO.Handle.FD bf0291e0f2b6c0eca5446f986999f1cc
-import  -/  base-4.9.1.0:GHC.IO.Handle.Types 17aa0e2ab137800e3a31992d780c071f
-import  -/  base-4.9.1.0:GHC.IO.IOMode 2f5782f93b12a0d860d6d661b9fb405c
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:GHC.Unicode a175ecf20bf1272d9ae31337e7da43ab
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.Exit 068ba078eb20417d7af66db8b8ab4db1
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  directory-1.3.0.0@directory-1.3.0.0:System.Directory 23e4e3d52f91c33b21f0667cd90aa164
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath a3d1d13ac7dd86705b5dfaf58a5c0b9e
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath.Posix 6a5e3ee74184fdcc5da09a368e7c40f5
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-import  -/  Language.Fixpoint.Smt.Serialize 753468bc986eaaa10f11b5a05ccb4467
-  exports: 68b0cd2d88b0c28a403c19637edecd1c
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  preamble 4aa7381e4b490d3fa563d993d6b01e60
-  theorySEnv 4f5f43c60510bc359a6de8317e6d6440
-  theorySymbols 75887ec43b78ed06cb3bd297eb02dc2d
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  exports: c7b078aa1030bf306e2bdc4ea4060c3a
-  Assert 5ff5319bed1e970965e6815bbb5638d3
-  AssertAxiom 5ccd84605f9b8fc89223b0ed45d09492
-  CMany e2b81d19d89419c171c8a50357f782bf
-  CheckSat e7bdaff0dc145a7796fafe6b1986504b
-  Command d954fc9c60b7cf5bf86d56c4438f43e0
-  Context a36b02023fe13e7352f35df5b8aec574
-  Ctx 14f2a9a426b1e6d21e82c95a6b9e542a
-  Declare ff6650ed1338b6061d17d251def29d6a
-  Define f25b901222e1f2d3e64b5152bd22c0f7
-  Distinct 990e387022ab845990b97b443e6f755b
-  Error 9dfb376f1162c71819faa77d7dae160e
-  GetValue cf9acb0cd3b55eaad92515f541acb8e2
-  Ok 53153417284930680cfded42cea2a194
-  Pop 00298a45a8561f3e28fb9ba24d1afab0
-  Push f3140690ded9e35c309627152e4edd2c
-  Raw 4dbb3c18cb680bd6d90733e0ee1bfc0d
-  Response 69caaef2199611670928811187028369
-  SMTEnv c9661b8f1a8ff4bab1fc6adec4f11d6d
-  SMTLIB2 18d805a1adc40f78e756a6fe5af3ce05
-  Sat 9bffb30edede3a631ba32f8ee8cb1111
-  Unknown 5054532f70c6fa00021ea0cad5658d73
-  Unsat 6ac6413b4a8ee8da5b16200f4da140da
-  Values 85ec52cf15c1d915af66adf9a64ade25
-  ctxAeq cc99bad7ce2e4be67d00913a582c15be
-  ctxBeq b5f271c2702e61d383382a64cd92e3f3
-  ctxCin 2f5f2c93743fea0442c26b266392baf4
-  ctxCout c5ba788373464ca70406373e626a5341
-  ctxExt e9278b3fbe47a565d5b765b8966fb6b0
-  ctxLog fd00c0782849ba8580be04cf11c79c7a
-  ctxNorm 4c59189e377760a8296bac6fae65ae47
-  ctxPid dd3cb33e296e59b5de6391e17bb7cf55
-  ctxSmtEnv e42736739b87fabca322a2144921f5ec
-  ctxVerbose b63b197944a17dc615100922efd41660
-  runSmt2 1f64e1e86597d78d7dd04cdecc1d781f
-  smt2 00a3c2cb4c5bbd81c58916566c403d7f
-  tsInterp 24ddef8198d173b9c354715d113d90d3
-  tsSort e17bd4dd079da6f0eec82165ce44ff0c
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  Cvc4 3d87f0ba7e80596691948760ddd2c6ce
-  Mathsat 5500c2ba8ccf5fa188ac7bdeb9817286
-  SMTSolver 33b67c63a8c6c21d896e5eaee4e0bea5
-  Z3 8be9ca34cb31e999e4c02f330a4fc720
-  alphaEquivalence 057db3d16fd9c58ffe26e9183c7f81c9
-  betaEquivalence 019a658d1ccc1df8daf79647ec6e823f
-  extensionality 3499a69969d02bc198e5cdfc511af186
-  normalForm 9f97e94251b5c645df085fb5e7a7cde3
-  solver ad1f42cd69401df7fb80f31829c4b15f
-  stringTheory f42571dd5abc6b20f59b5eda31bd9459
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  die a892c3bd643380084ab25f8b09c20b83
-  err a90e823f0e6047342911d3113f83b3d9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  symbol bad58e97c0b3a81e2dad9c913729970a
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  PNot c4eeca122c5c0a43c77041a865069326
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  functionSort 11d97370b121a8ef0a4def7d986212ac
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Smt2 36fef96be32180e7cff931b2ab484820
-  extFileName 06c632f2fccc040aa84e2dc062afc041
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  process-1.4.3.0@process-1.4.3.0:System.Process 1ee59b956b7cad68338d3f6ab3e772ed
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.IO 2bfd8ce3cdf32aefc3878353659c404f
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal a2f6f66c5bb1247458d9fa25257ab188
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Builder cac246c99e360c04405d7258721e6f9e
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Lazy 1efb735dc8fcde46f3a3e88605ea2067
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy 547b2cb8d74b3b03ee583c506a59422a
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy.Builder 12f4026fc6128435b48f92178aec364b
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy.IO 79324ab05ecca05433976cd7d9d58eac
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format 9a6b638cf2a34046724796f57984b5cc
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format.Types.Internal 6ede970f6a055ff8875db8e2eeee1bd4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-727a7530a46e698b98cbd76540f5acaa
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Smt.Interface.$trModule2
-                   Language.Fixpoint.Smt.Interface.$trModule1) -}
-e539540f47ba531880fb391693db8d64
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Smt.Interface"#) -}
-87cbc920c5318737287a294d9f37492c
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-b6ecc9cccf8f40ca09d31459d9faa871
-  $wsmtBracket ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Types.IO a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 3,
-     Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><L,1*C1(U(U,U))><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Smt.Types.Context)
-                   (w1 :: GHC.Types.IO a)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        w
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext4
-                        w2 of ds1 { (#,#) ipv ipv1 ->
-                 case w1 `cast` (GHC.Types.N:IO[0] <a>_R)
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        w
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4, ipv3 #) } } }) -}
-b2aaacc5e9ef21d36a674a8f39c6767f
-  $wsmtDecl ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 6,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><L,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Smt.Types.Context)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   cmd :: Language.Fixpoint.Smt.Types.Command
-                   = case Language.Fixpoint.Types.Sorts.$wgo3
-                            (GHC.Types.[] @ GHC.Types.Int)
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Sorts.Sort)
-                            w1 of ww3 { (#,,#) ww4 ww5 ww6 ->
-                     case ww4 of wild {
-                       []
-                       -> case ww5 of wild1 {
-                            []
-                            -> case w1 of dt { DEFAULT ->
-                               Language.Fixpoint.Smt.Types.Declare
-                                 (Language.Fixpoint.Types.Names.S ww ww1 ww2)
-                                 (GHC.Types.[] @ Language.Fixpoint.Types.Sorts.Sort)
-                                 dt }
-                            : ds1 ds2
-                            -> case ww6 of dt { DEFAULT ->
-                               Language.Fixpoint.Smt.Types.Declare
-                                 (Language.Fixpoint.Types.Names.S ww ww1 ww2)
-                                 wild1
-                                 dt } }
-                       : ds1 ds2
-                       -> case ww6 of dt { DEFAULT ->
-                          Language.Fixpoint.Smt.Types.Declare
-                            (Language.Fixpoint.Types.Names.S ww ww1 ww2)
-                            ww5
-                            dt } } }
-                 } in
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        w
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2 cmd))
-                        w2 of ds1 { (#,#) ipv ipv1 ->
-                 case cmd of wild {
-                   DEFAULT -> (# ipv, GHC.Tuple.() #)
-                   Language.Fixpoint.Smt.Types.CheckSat
-                   -> case w of ww3 { Language.Fixpoint.Smt.Types.Ctx ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww5
-                             ww7
-                             ipv of ds { (#,#) ipv2 ipv3 ->
-                      (# ipv2, GHC.Tuple.() #) } }
-                   Language.Fixpoint.Smt.Types.GetValue ds
-                   -> case w of ww3 { Language.Fixpoint.Smt.Types.Ctx ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww5
-                             ww7
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      (# ipv2, GHC.Tuple.() #) } } } }) -}
-d826c723c9c2ed9496f8b768cf761398
-  $wsmtRead ::
-    GHC.IO.Handle.Types.Handle
-    -> GHC.Base.Maybe GHC.IO.Handle.Types.Handle
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Response #)
-  {- Arity: 3, Strictness: <S,U><L,U><S,U>, Inline: [0] -}
-114b7294744d1651e10005b1204ab36e
-  type SmtParser a =
-    Data.Attoparsec.Internal.Types.Parser Data.Text.Internal.Text a
-796fd6351aef1eb9e1207dbc5a81a519
-  checkValid ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.IO GHC.Types.Bool
-  {- Arity: 6,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValid1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)) -}
-cbfa59806a702c033240c6a818e09187
-  checkValid' ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.IO GHC.Types.Bool
-  {- Arity: 5,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValid2
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)) -}
-a3468e27c15723ba9af4f6ceafb6dbe4
-  checkValid1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 6,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><L,U><L,U><S,U>,
-     Unfolding: InlineRule (6, True, False)
-                (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (f :: GHC.IO.FilePath)
-                   (xts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (q :: Language.Fixpoint.Types.Refinements.Expr)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid8
-                        cfg
-                        f
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 Language.Fixpoint.Smt.Interface.checkValid2 ipv1 xts p q ipv }) -}
-10fc3bafb6830c5cab80d4243a2f0516
-  checkValid10 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Context #)
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,1*U,1*U,1*U,A,A,A,A,A)><S,U>,
-     Unfolding: (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case System.Process.runInteractiveCommand1
-                        (case cfg of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                         case ds5 of wild1 {
-                           Language.Fixpoint.Types.Config.Z3
-                           -> Language.Fixpoint.Smt.Interface.checkValid13
-                           Language.Fixpoint.Types.Config.Cvc4
-                           -> Language.Fixpoint.Smt.Interface.checkValid12
-                           Language.Fixpoint.Types.Config.Mathsat
-                           -> Language.Fixpoint.Smt.Interface.checkValid11 } })
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of wild { (,,,) hOut hIn ds pid ->
-                 case System.Console.CmdArgs.Verbosity.ref
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild1 { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ System.Console.CmdArgs.Verbosity.Verbosity
-                        var#
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 (# ipv2,
-                    case pid of dt { System.Process.Common.ProcessHandle ipv4 ipv5 ->
-                    case hIn of dt1 { DEFAULT ->
-                    case hOut of dt2 { DEFAULT ->
-                    case case ipv3 of wild2 {
-                           DEFAULT -> GHC.Types.False
-                           System.Console.CmdArgs.Verbosity.Loud
-                           -> GHC.Types.True } of dt3 { DEFAULT ->
-                    case cfg of wild2 { Language.Fixpoint.Types.Config.Config ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ds33 ds34 ->
-                    case ds26 of dt4 { DEFAULT ->
-                    case ds27 of dt5 { DEFAULT ->
-                    case ds28 of dt6 { DEFAULT ->
-                    case ds29 of dt7 { DEFAULT ->
-                    case Language.Fixpoint.Smt.Theories.theorySEnv1 of nt { DEFAULT ->
-                    Language.Fixpoint.Smt.Types.Ctx
-                      dt
-                      dt1
-                      dt2
-                      (GHC.Base.Nothing @ GHC.IO.Handle.Types.Handle)
-                      dt3
-                      dt4
-                      dt5
-                      dt6
-                      dt7
-                      nt
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } } } } } } } } } } #) } } } }) -}
-fdfd0d55a479cce7587eec155d93e44f
-  checkValid11 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "mathsat -input=smt2"#) -}
-f16dba224c9bacfa7f67da2125d569df
-  checkValid12 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "cvc4 --incremental -L smtlib2"#) -}
-f7a5d2d1295d066f1edafc1ed8cb9b67
-  checkValid13 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "z3 -smt2 -in"#) -}
-9c145707f54845f54072e8c98a65c5af
-  checkValid2 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 5,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><L,U><L,U><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (xts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (q :: Language.Fixpoint.Types.Refinements.Expr)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid7
-                        me
-                        xts
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 let {
-                   cmd :: Language.Fixpoint.Smt.Types.Command
-                   = case Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                            (Language.Fixpoint.Types.Refinements.PAnd
-                               (GHC.Types.:
-                                  @ Language.Fixpoint.Types.Refinements.Pred
-                                  p
-                                  (GHC.Types.:
-                                     @ Language.Fixpoint.Types.Refinements.Pred
-                                     (Language.Fixpoint.Types.Refinements.$WPNot q)
-                                     (GHC.Types.[]
-                                        @ Language.Fixpoint.Types.Refinements.Pred)))) of dt { DEFAULT ->
-                     Language.Fixpoint.Smt.Types.Assert
-                       (GHC.Base.Nothing @ GHC.Types.Int)
-                       dt }
-                 } in
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2 cmd))
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 let {
-                   $j :: GHC.Prim.State# GHC.Prim.RealWorld
-                         -> Language.Fixpoint.Smt.Types.Response
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-                     {- Arity: 2 -}
-                   = \ (ipv4 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot]
-                       (ipv5 :: Language.Fixpoint.Smt.Types.Response)[OneShot] ->
-                     case Language.Fixpoint.Smt.Interface.checkValid6
-                            me
-                            Language.Fixpoint.Smt.Interface.checkValid4
-                            ipv4 of ds3 { (#,#) ipv6 ipv7 ->
-                     case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                     case Language.Fixpoint.Smt.Interface.$wsmtRead
-                            ww2
-                            ww4
-                            ipv6 of ds { (#,#) ipv8 ipv9 ->
-                     (# ipv8, Language.Fixpoint.Smt.Interface.respSat ipv9 #) } } }
-                 } in
-                 case cmd of wild {
-                   DEFAULT -> $j ipv2 Language.Fixpoint.Smt.Types.Ok
-                   Language.Fixpoint.Smt.Types.CheckSat
-                   -> case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww2
-                             ww4
-                             ipv2 of ds { (#,#) ipv4 ipv5 ->
-                      $j ipv4 ipv5 } }
-                   Language.Fixpoint.Smt.Types.GetValue ds
-                   -> case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww2
-                             ww4
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      $j ipv4 ipv5 } } } } }) -}
-09fd781b85f22a65b1892ebc0c3d3982
-  checkValid3 ::
-    Language.Fixpoint.Smt.Types.Response -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <L,U>x -}
-9effbe38a4d8b97d9280c952a319b668
-  checkValid4 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   Language.Fixpoint.Smt.Interface.checkValid5) -}
-2710e0c6d482d121d78410fdaeb9bd40
-  checkValid5 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                   Language.Fixpoint.Smt.Types.CheckSat) -}
-3721f3db9717972590528f300f5e7c39
-  checkValid6 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Smt.Types.Raw
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (s1 :: Language.Fixpoint.Smt.Types.Raw)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   h :: GHC.IO.Handle.Types.Handle
-                   = case me of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                     ds3 }
-                 } in
-                 case Data.Text.Lazy.IO.appendFile2
-                        h
-                        s1
-                        eta of ds1 { (#,#) ipv ipv1 ->
-                 case GHC.IO.Handle.Text.$whPutChar
-                        h
-                        '\n'#
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case GHC.IO.Handle.Internals.wantWritableHandle1
-                        @ ()
-                        GHC.IO.Handle.hFlush2
-                        h
-                        GHC.IO.Handle.Internals.flushWriteBuffer1
-                          `cast`
-                        (<GHC.IO.Handle.Types.Handle__>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case me of wild { Language.Fixpoint.Smt.Types.Ctx ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ->
-                 case ds7 of wild1 {
-                   GHC.Base.Nothing -> (# ipv4, GHC.Tuple.() #)
-                   GHC.Base.Just x
-                   -> case Data.Text.Lazy.IO.appendFile2
-                             x
-                             s1
-                             ipv4 of ds14 { (#,#) ipv6 ipv7 ->
-                      case GHC.IO.Handle.Text.$whPutChar
-                             x
-                             '\n'#
-                             ipv6 of ds15 { (#,#) ipv8 ipv9 ->
-                      GHC.IO.Handle.Internals.wantWritableHandle1
-                        @ ()
-                        GHC.IO.Handle.hFlush2
-                        x
-                        GHC.IO.Handle.Internals.flushWriteBuffer1
-                          `cast`
-                        (<GHC.IO.Handle.Types.Handle__>_R
-                         ->_R Sym (GHC.Types.N:IO[0] <()>_R))
-                        ipv8 } } } } } } }) -}
-e66d8ba255ec015eaf3e77b6ad980bf6
-  checkValid7 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Smt.Types.Context)
-                   (eta :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 letrec {
-                   go :: [(Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort)]
-                         -> GHC.Prim.State# GHC.Prim.RealWorld
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)])
-                       (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta2, GHC.Tuple.() #)
-                       : y ys
-                       -> case y of wild1 { (,) x1 ds1 ->
-                          case x1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                          case Language.Fixpoint.Smt.Interface.$wsmtDecl
-                                 x
-                                 ww1
-                                 ww2
-                                 ww3
-                                 ds1
-                                 eta2 of ds2 { (#,#) ipv ipv1 ->
-                          go ys ipv } } } }
-                 } in
-                 go eta eta1) -}
-5ca5c478a2edbb4cda61c1be92ffd0a3
-  checkValid8 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Context #)
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><S,U>,
-     Unfolding: (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (f :: GHC.IO.FilePath)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid10
-                        cfg
-                        eta of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid9
-                        cfg
-                        (Language.Fixpoint.Types.Config.solver cfg)
-                        ipv1
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 let {
-                   smtFile :: GHC.IO.FilePath
-                   = Language.Fixpoint.Utils.Files.extFileName
-                       Language.Fixpoint.Utils.Files.Smt2
-                       f
-                 } in
-                 case System.Directory.createDirectoryIfMissing1
-                        GHC.Types.True
-                        (System.FilePath.Posix.takeDirectory smtFile)
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case GHC.IO.Handle.FD.openFile1
-                        smtFile
-                        GHC.IO.IOMode.WriteMode
-                        ipv4 of ds4 { (#,#) ipv6 ipv7 ->
-                 let {
-                   me' :: Language.Fixpoint.Smt.Types.Context
-                   = case ipv1 of wild { Language.Fixpoint.Smt.Types.Ctx ds ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ->
-                     Language.Fixpoint.Smt.Types.Ctx
-                       ds
-                       ds5
-                       ds6
-                       (GHC.Base.Just @ GHC.IO.Handle.Types.Handle ipv7)
-                       ds8
-                       ds9
-                       ds10
-                       ds11
-                       ds12
-                       ds13 }
-                 } in
-                 letrec {
-                   go :: [Language.Fixpoint.Smt.Types.Raw]
-                         -> GHC.Prim.State# GHC.Prim.RealWorld
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [Language.Fixpoint.Smt.Types.Raw])
-                       (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta1, GHC.Tuple.() #)
-                       : y ys
-                       -> case Language.Fixpoint.Smt.Interface.checkValid6
-                                 me'
-                                 y
-                                 eta1 of ds5 { (#,#) ipv8 ipv9 ->
-                          go ys ipv8 } }
-                 } in
-                 case go ipv3 ipv6 of ds5 { (#,#) ipv8 ipv9 ->
-                 (# ipv8, me' #) } } } } }) -}
-91861946c6478f0f2e3434edc386520c
-  checkValid9 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          [Data.Text.Internal.Lazy.Text] #)
-  {- Arity: 4,
-     Strictness: <L,1*U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A)><S,1*U><L,U(A,U,U,U,A,A,A,A,A,A)><S,U> -}
-bbaaf952971e75a57b935dbc6f08df3f
-  checkValidWithContext ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.IO GHC.Types.Bool
-  {- Arity: 5,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><L,1*U><L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValidWithContext1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)) -}
-acde8bbded7db152ec2627d070f4852e
-  checkValidWithContext1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 5,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><L,1*U><L,U><L,U><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (xts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (q :: Language.Fixpoint.Types.Refinements.Expr)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext4
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid2
-                        me
-                        xts
-                        p
-                        q
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4, ipv3 #) } } }) -}
-115edccaebba7f40b89299b881c732a6
-  checkValidWithContext2 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   Language.Fixpoint.Smt.Interface.checkValidWithContext3) -}
-8c88ddea685d63f03467d122a32cbd02
-  checkValidWithContext3 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                   Language.Fixpoint.Smt.Types.Pop) -}
-3f369a32edc6ecf4562b6c22ed6c28b2
-  checkValidWithContext4 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   Language.Fixpoint.Smt.Interface.checkValidWithContext5) -}
-83a3297a0bb1af6dac7152e828dae338
-  checkValidWithContext5 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                   Language.Fixpoint.Smt.Types.Push) -}
-1159b1b63c864537ee0529addf754892
-  checkValids ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Types.IO [GHC.Types.Bool]
-  {- Arity: 5,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValids1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <[GHC.Types.Bool]>_R)) -}
-743b9c64f390e4bd10ef52803f263676
-  checkValids1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, [GHC.Types.Bool] #)
-  {- Arity: 5,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><L,1*U><S,U>,
-     Unfolding: (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (f :: GHC.IO.FilePath)
-                   (xts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ps :: [Language.Fixpoint.Types.Refinements.Expr])
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid8
-                        cfg
-                        f
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid7
-                        ipv1
-                        xts
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 letrec {
-                   go :: [Language.Fixpoint.Types.Refinements.Expr]
-                         -> GHC.Prim.State# GHC.Prim.RealWorld
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, [GHC.Types.Bool] #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [Language.Fixpoint.Types.Refinements.Expr])
-                       (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta, GHC.Types.[] @ GHC.Types.Bool #)
-                       : y ys
-                       -> case Language.Fixpoint.Smt.Interface.checkValid6
-                                 ipv1
-                                 Language.Fixpoint.Smt.Interface.checkValidWithContext4
-                                 eta of ds3 { (#,#) ipv4 ipv5 ->
-                          let {
-                            cmd :: Language.Fixpoint.Smt.Types.Command
-                            = case y of dt { DEFAULT ->
-                              Language.Fixpoint.Smt.Types.Assert
-                                (GHC.Base.Nothing @ GHC.Types.Int)
-                                (Language.Fixpoint.Types.Refinements.PNot dt) }
-                          } in
-                          case Language.Fixpoint.Smt.Interface.checkValid6
-                                 ipv1
-                                 (Data.Text.Internal.Builder.$wtoLazyTextWith
-                                    112#
-                                    (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2 cmd))
-                                 ipv4 of ds4 { (#,#) ipv6 ipv7 ->
-                          let {
-                            $j :: GHC.Prim.State# GHC.Prim.RealWorld
-                                  -> Language.Fixpoint.Smt.Types.Response
-                                  -> (# GHC.Prim.State# GHC.Prim.RealWorld, [GHC.Types.Bool] #)
-                              {- Arity: 2 -}
-                            = \ (ipv8 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot]
-                                (ipv9 :: Language.Fixpoint.Smt.Types.Response)[OneShot] ->
-                              case Language.Fixpoint.Smt.Interface.checkValid6
-                                     ipv1
-                                     Language.Fixpoint.Smt.Interface.checkValid4
-                                     ipv8 of ds5 { (#,#) ipv10 ipv11 ->
-                              case ipv1 of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                              case Language.Fixpoint.Smt.Interface.$wsmtRead
-                                     ww2
-                                     ww4
-                                     ipv10 of ds6 { (#,#) ipv12 ipv13 ->
-                              case Language.Fixpoint.Smt.Interface.checkValid6
-                                     ww
-                                     Language.Fixpoint.Smt.Interface.checkValidWithContext2
-                                     ipv12 of ds7 { (#,#) ipv14 ipv15 ->
-                              case go ys ipv14 of ds8 { (#,#) ipv16 ipv17 ->
-                              (# ipv16,
-                                 GHC.Types.:
-                                   @ GHC.Types.Bool
-                                   (Language.Fixpoint.Smt.Interface.respSat ipv13)
-                                   ipv17 #) } } } } }
-                          } in
-                          case cmd of wild1 {
-                            DEFAULT -> $j ipv6 Language.Fixpoint.Smt.Types.Ok
-                            Language.Fixpoint.Smt.Types.CheckSat
-                            -> case ipv1 of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                               case Language.Fixpoint.Smt.Interface.$wsmtRead
-                                      ww2
-                                      ww4
-                                      ipv6 of ds5 { (#,#) ipv8 ipv9 ->
-                               $j ipv8 ipv9 } }
-                            Language.Fixpoint.Smt.Types.GetValue ds5
-                            -> case ipv1 of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                               case Language.Fixpoint.Smt.Interface.$wsmtRead
-                                      ww2
-                                      ww4
-                                      ipv6 of ds6 { (#,#) ipv8 ipv9 ->
-                               $j ipv8 ipv9 } } } } } }
-                 } in
-                 go ps ipv2 } }) -}
-dfecdba7a4bc5ce1a7d160bff8fab1a5
-  cleanupContext ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Types.IO GHC.IO.Exception.ExitCode
-  {- Arity: 2,
-     Strictness: <S(SSSSLLLLLL),1*U(U(U,U),U,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.cleanupContext1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.IO.Exception.ExitCode>_R)) -}
-630e66079245bcb4dd292b0a683264c6
-  cleanupContext1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.IO.Exception.ExitCode #)
-  {- Arity: 2,
-     Strictness: <S(SSSSLLLLLL),1*U(U(U,U),U,U,U,A,A,A,A,A,A)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.Context)
-                   (w1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                 case ww1 of ww11 { System.Process.Common.ProcessHandle ww12 ww13 ->
-                 case Language.Fixpoint.Smt.Interface.cleanupContext5
-                        Language.Fixpoint.Smt.Interface.cleanupContext4
-                        ww2
-                        w1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.cleanupContext5
-                        Language.Fixpoint.Smt.Interface.cleanupContext3
-                        ww3
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case ww4 of wild {
-                   GHC.Base.Nothing -> System.Process.$wwaitForProcess ww12 ww13 ipv2
-                   GHC.Base.Just x
-                   -> case Language.Fixpoint.Smt.Interface.cleanupContext5
-                             Language.Fixpoint.Smt.Interface.cleanupContext2
-                             x
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      System.Process.$wwaitForProcess ww12 ww13 ipv4 } } } } } }) -}
-0619229a85ea4bff1330f700c8b29f57
-  cleanupContext2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "ctxLog"#) -}
-fa7d71ee1b0a2542242a0c23d9b331f1
-  cleanupContext3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "ctxCout"#) -}
-291ef823139b8569c997f091ab5b3d82
-  cleanupContext4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "ctxCin"#) -}
-46bb78fc4719f30c6fbc4fb2f6c6204e
-  cleanupContext5 ::
-    GHC.Base.String
-    -> GHC.IO.Handle.Types.Handle
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,1*U><L,U><S,U>,
-     Unfolding: (\ (msg :: GHC.Base.String)
-                   (h :: GHC.IO.Handle.Types.Handle)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 GHC.Prim.catch#
-                   @ ()
-                   @ GHC.Exception.SomeException
-                   (GHC.Magic.lazy
-                      @ (GHC.Types.IO ())
-                      (GHC.IO.Handle.hClose1 h) `cast` (Sym (GHC.Types.N:IO[0] <()>_R)))
-                     `cast`
-                   (GHC.Types.N:IO[0] <()>_R)
-                   (\ (e1 :: GHC.Exception.SomeException)[OneShot]
-                      (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    case e1 of wild { GHC.Exception.SomeException e100 $dException1 e2 ->
-                    case (GHC.Exception.$p1Exception @ e100 $dException1)
-                           `cast`
-                         (Data.Typeable.Internal.N:Typeable[0] <*>_N <e100>_N)
-                           (GHC.Prim.proxy#
-                              @ *
-                              @ e100) of wild1 { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                    case GHC.IO.Exception.$fExceptionIOException3 of wild2 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                    case GHC.Prim.tagToEnum#
-                           @ GHC.Types.Bool
-                           (GHC.Prim.eqWord# dt dt2) of wild3 {
-                      GHC.Types.False
-                      -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ () wild eta1
-                      GHC.Types.True
-                      -> case GHC.Prim.tagToEnum#
-                                @ GHC.Types.Bool
-                                (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                           GHC.Types.False
-                           -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ () wild eta1
-                           GHC.Types.True
-                           -> GHC.IO.Handle.Text.hPutStr2
-                                GHC.IO.Handle.FD.stdout
-                                (GHC.CString.unpackAppendCString#
-                                   "OOPS, hClose breaks: "#
-                                   (GHC.Base.++
-                                      @ GHC.Types.Char
-                                      msg
-                                      (case e2
-                                              `cast`
-                                            (UnsafeCo representational e100 GHC.IO.Exception.IOException) of ww { GHC.IO.Exception.IOError ww1 ww2 ww3 ww4 ww5 ww6 ->
-                                       GHC.IO.Exception.$w$cshowsPrec2
-                                         ww1
-                                         ww2
-                                         ww3
-                                         ww4
-                                         ww6
-                                         (GHC.Types.[] @ GHC.Types.Char) })))
-                                GHC.Types.True
-                                eta1 } } } } })
-                   eta) -}
-744c73d821f28a7ce39d972bd29a1b23
-  command ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Smt.Types.Command
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Response
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.command1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Smt.Types.Command>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Smt.Types.Response>_R)) -}
-fc16d62a9e825acaaa928fc0811974e7
-  command1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Smt.Types.Command
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Response #)
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (cmd :: Language.Fixpoint.Smt.Types.Command)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2 cmd))
-                        eta of ds1 { (#,#) ipv ipv1 ->
-                 case cmd of wild {
-                   DEFAULT -> (# ipv, Language.Fixpoint.Smt.Types.Ok #)
-                   Language.Fixpoint.Smt.Types.CheckSat
-                   -> Language.Fixpoint.Smt.Interface.command2 me ipv
-                   Language.Fixpoint.Smt.Types.GetValue ds
-                   -> Language.Fixpoint.Smt.Interface.command2 me ipv } }) -}
-9555e5ca8cabf0512937245922011059
-  command2 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Response #)
-  {- Arity: 2,
-     Strictness: <S(LSLLLLLLLL),U(A,U,A,U,A,A,A,A,A,A)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.Context)
-                   (w1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                 Language.Fixpoint.Smt.Interface.$wsmtRead ww2 ww4 w1 }) -}
-5feef609ea5799c1a310b7a085bca12f
-  makeContext ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Context
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValid8
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Smt.Types.Context>_R)) -}
-2d283619b23f3bd80235d4921fb806e3
-  makeContextNoLog ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Context
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.makeContextNoLog1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Smt.Types.Context>_R)) -}
-7f49bc4a76741b2b2095e0859e017e06
-  makeContextNoLog1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Context #)
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><S,U>,
-     Unfolding: (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid10
-                        cfg
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid9
-                        cfg
-                        (Language.Fixpoint.Types.Config.solver cfg)
-                        ipv1
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 letrec {
-                   go :: [Language.Fixpoint.Smt.Types.Raw]
-                         -> GHC.Prim.State# GHC.Prim.RealWorld
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [Language.Fixpoint.Smt.Types.Raw])
-                       (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta, GHC.Tuple.() #)
-                       : y ys
-                       -> case Language.Fixpoint.Smt.Interface.checkValid6
-                                 ipv1
-                                 y
-                                 eta of ds3 { (#,#) ipv4 ipv5 ->
-                          go ys ipv4 } }
-                 } in
-                 case go ipv3 ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4, ipv1 #) } } }) -}
-aa3bfd7b0950ac8c47069b3436c2f4fc
-  makeContextWithSEnv ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> Language.Fixpoint.Smt.Types.SMTEnv
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Context
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.makeContextWithSEnv1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R <Language.Fixpoint.Smt.Types.SMTEnv>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Smt.Types.Context>_R)) -}
-1a309a7ed9b881bb4694aaf7a1a24962
-  makeContextWithSEnv1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> Language.Fixpoint.Smt.Types.SMTEnv
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Context #)
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,1*U><S,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (f :: GHC.IO.FilePath)
-                   (env :: Language.Fixpoint.Smt.Types.SMTEnv)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid8
-                        cfg
-                        f
-                        eta of ds { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    case ipv1 of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                    case env
-                           `cast`
-                         (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                    Language.Fixpoint.Smt.Types.Ctx
-                      ds1
-                      ds2
-                      ds3
-                      ds4
-                      ds5
-                      ds6
-                      ds7
-                      ds8
-                      ds9
-                      nt
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } } #) }) -}
-801f9ba67d87354d12bb8c8e34b7cd31
-  makeSmtContext ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Context
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.makeSmtContext1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Smt.Types.Context>_R)) -}
-b977868596bc2ce0ca325e933962a2f7
-  makeSmtContext1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.IO.FilePath
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Smt.Types.Context #)
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,U,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,U><L,U><S,U>,
-     Unfolding: (\ (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (f :: GHC.IO.FilePath)
-                   (xts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid8
-                        cfg
-                        f
-                        s1 of ds { (#,#) ipv ipv1 ->
-                 let {
-                   me :: Language.Fixpoint.Smt.Types.Context
-                   = case ipv1 of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                     case Language.Fixpoint.Types.Refinements.$dmsubst2
-                            @ Language.Fixpoint.Types.Sorts.Sort
-                            xts
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Types.Names.Symbol
-                               @ Language.Fixpoint.Types.Sorts.Sort) of nt { DEFAULT ->
-                     Language.Fixpoint.Smt.Types.Ctx
-                       ds1
-                       ds2
-                       ds3
-                       ds4
-                       ds5
-                       ds6
-                       ds7
-                       ds8
-                       ds9
-                       nt
-                         `cast`
-                       (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } }
-                 } in
-                 case Language.Fixpoint.Smt.Interface.checkValid7
-                        me
-                        Language.Fixpoint.Smt.Interface.theoryDecls
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid7
-                        me
-                        xts
-                        ipv2 of ds2 { (#,#) ipv4 ipv5 ->
-                 (# ipv4, me #) } } }) -}
-b16a74603be0184cbb741380f06024e1
-  makeSmtContext_go1 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Smt.Types.TheorySymbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-79d4ea345ed2c9c4d439a1a264657fe3
-  respSat :: Language.Fixpoint.Smt.Types.Response -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Smt.Types.Response) ->
-                 case ds of wild {
-                   DEFAULT -> Language.Fixpoint.Smt.Interface.checkValid3 wild
-                   Language.Fixpoint.Smt.Types.Sat -> GHC.Types.False
-                   Language.Fixpoint.Smt.Types.Unsat -> GHC.Types.True
-                   Language.Fixpoint.Smt.Types.Unknown -> GHC.Types.False }) -}
-6415f68b06a893292ec35cfdeafa416e
-  smtAssert ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Refinements.Expr -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtAssert1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-633d087e858ad3f375d206ec7b6e6465
-  smtAssert1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case p of dt { DEFAULT ->
-                 case Language.Fixpoint.Smt.Interface.command1
-                        me
-                        (Language.Fixpoint.Smt.Types.Assert
-                           (GHC.Base.Nothing @ GHC.Types.Int)
-                           dt)
-                        eta2 of ds { (#,#) ipv ipv1 ->
-                 (# ipv, GHC.Tuple.() #) } }) -}
-9826320294302a2b42e0027a3a9a0f41
-  smtAssertAxiom ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.IO ()
-  {- Arity: 3,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U(U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtAssertAxiom1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Triggers.Triggered
-                         Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-d70ca70ded44e4760f7ce777166ea498
-  smtAssertAxiom1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U(U,U)><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (p :: Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case p of dt { Language.Fixpoint.Types.Triggers.TR ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.command1
-                        me
-                        (Language.Fixpoint.Smt.Types.AssertAxiom dt)
-                        eta2 of ds { (#,#) ipv2 ipv3 ->
-                 (# ipv2, GHC.Tuple.() #) } }) -}
-34a4108d598c0350dee16480cf6e485f
-  smtBracket ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Base.String -> GHC.Types.IO a -> GHC.Types.IO a
-  {- Arity: 4,
-     Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><L,A><L,1*C1(U(U,U))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtBracket1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <GHC.Base.String>_R
-                 ->_R <GHC.Types.IO a>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <a>_R)) -}
-cc12540c53765166063b4983f868a30a
-  smtBracket1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Base.String
-    -> GHC.Types.IO a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 4,
-     Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><L,A><L,1*C1(U(U,U))><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   (w :: Language.Fixpoint.Smt.Types.Context)
-                   (w1 :: GHC.Base.String)
-                   (w2 :: GHC.Types.IO a)
-                   (w3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Smt.Interface.$wsmtBracket @ a w w2 w3) -}
-bca8fc8c2463e4040546e6f9ebbdc1c3
-  smtCheckSat ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.IO GHC.Types.Bool
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtCheckSat1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)) -}
-90092e5979b7cb11b69b608a8bd55d61
-  smtCheckSat1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   cmd :: Language.Fixpoint.Smt.Types.Command
-                   = case p of dt { DEFAULT ->
-                     Language.Fixpoint.Smt.Types.Assert
-                       (GHC.Base.Nothing @ GHC.Types.Int)
-                       dt }
-                 } in
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2 cmd))
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 let {
-                   $j :: GHC.Prim.State# GHC.Prim.RealWorld
-                         -> Language.Fixpoint.Smt.Types.Response
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-                     {- Arity: 2 -}
-                   = \ (ipv2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot]
-                       (ipv3 :: Language.Fixpoint.Smt.Types.Response)[OneShot] ->
-                     case Language.Fixpoint.Smt.Interface.checkValid6
-                            me
-                            Language.Fixpoint.Smt.Interface.checkValid4
-                            ipv2 of ds2 { (#,#) ipv4 ipv5 ->
-                     case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                     case Language.Fixpoint.Smt.Interface.$wsmtRead
-                            ww2
-                            ww4
-                            ipv4 of ds { (#,#) ipv6 ipv7 ->
-                     (# ipv6,
-                        case ipv7 of wild {
-                          DEFAULT -> GHC.Types.False
-                          Language.Fixpoint.Smt.Types.Sat -> GHC.Types.True } #) } } }
-                 } in
-                 case cmd of wild {
-                   DEFAULT -> $j ipv Language.Fixpoint.Smt.Types.Ok
-                   Language.Fixpoint.Smt.Types.CheckSat
-                   -> case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww2
-                             ww4
-                             ipv of ds { (#,#) ipv2 ipv3 ->
-                      $j ipv2 ipv3 } }
-                   Language.Fixpoint.Smt.Types.GetValue ds
-                   -> case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                      case Language.Fixpoint.Smt.Interface.$wsmtRead
-                             ww2
-                             ww4
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      $j ipv2 ipv3 } } } }) -}
-7d0e7aefc62ddaecca2eeca3d957327a
-  smtCheckUnsat ::
-    Language.Fixpoint.Smt.Types.Context -> GHC.Types.IO GHC.Types.Bool
-  {- Arity: 2, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtCheckUnsat1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)) -}
-6e4c6486538616bec6200bfa2af07e1a
-  smtCheckUnsat1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Types.Bool #)
-  {- Arity: 2, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        Language.Fixpoint.Smt.Interface.checkValid4
-                        eta of ds1 { (#,#) ipv ipv1 ->
-                 case me of ww { Language.Fixpoint.Smt.Types.Ctx ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                 case Language.Fixpoint.Smt.Interface.$wsmtRead
-                        ww2
-                        ww4
-                        ipv of ds { (#,#) ipv2 ipv3 ->
-                 (# ipv2, Language.Fixpoint.Smt.Interface.respSat ipv3 #) } } }) -}
-ae52875bf446f015cafd9d6d7deb039f
-  smtDecl ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Types.IO ()
-  {- Arity: 4,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S(LSS),1*U(U,U,U)><S,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtDecl1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R <Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-bc6fab37b3d206acc966e39d5773ac2f
-  smtDecl1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 4,
-     Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S(LSS),1*U(U,U,U)><S,U><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.Context)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (w2 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (w3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 Language.Fixpoint.Smt.Interface.$wsmtDecl w ww1 ww2 ww3 w2 w3 }) -}
-3037127fceed48a40cdbc14488a968f8
-  smtDecls ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U(A,U,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValid7
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-e1883764abfd0d8cc4117ab11da711d0
-  smtDistinct ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [Language.Fixpoint.Types.Refinements.Expr] -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtDistinct1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-8fa062132fbd6ed485a310d899e70520
-  smtDistinct1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><L,U><S,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (az :: [Language.Fixpoint.Types.Refinements.Expr])
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                              (Language.Fixpoint.Smt.Types.Distinct az)))
-                        eta2 of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv, GHC.Tuple.() #) }) -}
-ceb826b862d6c1556e3673f3917eec48
-  smtPop :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.IO ()
-  {- Arity: 2, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtPop1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-b1c1575004d0a0940efe07944c7e0778
-  smtPop1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                              Language.Fixpoint.Smt.Types.Pop))
-                        eta2 of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv, GHC.Tuple.() #) }) -}
-b5d45126fbc5298397a30f76fb8178f1
-  smtPush :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.IO ()
-  {- Arity: 2, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.smtPush1
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-f7f9d81db97152a5a83592e2d95dff40
-  smtPush1 ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (me :: Language.Fixpoint.Smt.Types.Context)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        (Data.Text.Internal.Builder.$wtoLazyTextWith
-                           112#
-                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                              Language.Fixpoint.Smt.Types.Push))
-                        eta2 of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv, GHC.Tuple.() #) }) -}
-3fdb47f305e08b1bdde2cd7f5995f42c
-  smtWrite ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Smt.Types.Raw -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <L,U(A,A,U,U,A,A,A,A,A,A)><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Interface.checkValid6
-                  `cast`
-                (<Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Smt.Types.Raw>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-3d66a1e52be3d62bcb491271fc467096
-  theoryDecls ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-  {- Unfolding: (Language.Fixpoint.Smt.Interface.makeSmtContext_go1
-                   (GHC.Types.[]
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort))
-                   Language.Fixpoint.Smt.Theories.theorySymbols) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Serialize.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Serialize.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Serialize.dump-hi
+++ /dev/null
@@ -1,2268 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:52.027695 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize [orphan module] 8002
-  interface hash: 714ce5e3b3bf63fba3d3b257ab1f0e20
-  ABI hash: 753468bc986eaaa10f11b5a05ccb4467
-  export-list hash: 68b0cd2d88b0c28a403c19637edecd1c
-  orphan hash: 5ae640606c95e780feeefd662eeddc00
-  flag hash: 1e079598b57ac2a3e22da64ad933c018
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  smt2App be5257857e9b54fce6e0fe7117987ee6
-  smt2Sort a97793759a91f3c485366121fecd1d0b
-  smt2Symbol 093e608663d5b7c8468748417c8bf28d
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  exports: c7b078aa1030bf306e2bdc4ea4060c3a
-  Assert 5ff5319bed1e970965e6815bbb5638d3
-  AssertAxiom 5ccd84605f9b8fc89223b0ed45d09492
-  CMany e2b81d19d89419c171c8a50357f782bf
-  CheckSat e7bdaff0dc145a7796fafe6b1986504b
-  Command d954fc9c60b7cf5bf86d56c4438f43e0
-  Declare ff6650ed1338b6061d17d251def29d6a
-  Define f25b901222e1f2d3e64b5152bd22c0f7
-  Distinct 990e387022ab845990b97b443e6f755b
-  GetValue cf9acb0cd3b55eaad92515f541acb8e2
-  Pop 00298a45a8561f3e28fb9ba24d1afab0
-  Push f3140690ded9e35c309627152e4edd2c
-  SMTLIB2 18d805a1adc40f78e756a6fe5af3ce05
-  smt2 00a3c2cb4c5bbd81c58916566c403d7f
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  LocSymbol 4a6c826b689fe9b6e8ce8f2d4ad897b2
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  divFuncName 21067dc33a1b9d59afe793b7ef69039c
-  lambdaName d844da24cbcbb857f0cf79953babe2df
-  mulFuncName 43af320c45dc2b3a6646f173f8434c27
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolSafeText 526a21b244d2aaefeee84da8dfb69719
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Bop 7fb70fb47d0302cfb4b9c12c86306141
-  Brel bf7a9d682338d6f6168543d3110f6da6
-  Constant 4e3fb5c7982e36089ca1974dd9221f2e
-  Div c081e565493f3b4c4b21cbda7efd8210
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ESym b05e53b59eecfe2f6d7c4b864a39af90
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  Ge 090ffef01e6b7027605d9c5c3ba11e2b
-  Gt 46f38d575ced081820cbc83114259da1
-  I 2b5bcd0c22b34f3c17d4079b06873e92
-  L b2f69dae8b637676011e67a80cf25f48
-  Le a16796536258ef4a204b5f1c568ba802
-  Lt 2ffd2f88be907134b968502d3bceced3
-  Minus e5aa725375e9c124ec51c311dda6a736
-  Mod ba2fa943923b8dfa2f9877e04051a80c
-  Ne d9e179105ea1c2a757f64a892666f7a4
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  PTrue 5df77d7a117ac1937594998bc4175838
-  Plus bbd2e3bc0197bce5d377fe80a31b6af3
-  R d3ae796e8a0662c198a87ccf6622d11a
-  RDiv f06ef9b8e9228c19688a27fe5f4263d6
-  RTimes 3faff980f0db7fa930b12f07b279007d
-  SymConst 2d8cc80e963ce7fc658d82e1df676d25
-  Times 91e0345547959925f74a1cb777a9b1dc
-  Ueq 6474df993ebe4d0afd93678b01fc0b4a
-  Une 06e922abb8f842f615f811f63750444d
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FInt 0b4cc36338ca92e72f33fb97dc6e5034
-  FReal d85e2ea54f1f84f03191ad6b76f1795a
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  boolSort 22d923a69c59fbf1c3c3d3b80b0969e5
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  val a3c4cf7922f79de46237eef8822a75ce
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  NoTrigger f113c0f3c8118f36bc1d7662c5c6ef63
-  TR 45d4ab87811abab693d02e1f903b6833
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-  makeTriggers b108caff5f18ac240520ad38417b7df1
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Builder cac246c99e360c04405d7258721e6f9e
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy.Builder 12f4026fc6128435b48f92178aec364b
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format 9a6b638cf2a34046724796f57984b5cc
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format.Types.Internal 6ede970f6a055ff8875db8e2eeee1bd4
-cacb627be8d16d36866c3dd62f9c19c8
-  $fSMTLIB2(,) ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Sorts.Sort)
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U(U(U,U(U,U,U),U(U,U,U)),1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)>_N)) -}
-2ddfd4299d4d5f49f5b62cb536cf246f
-  $fSMTLIB2(,)1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-e06d6ce425be4d664b6588e7bcb4fb02
-  $fSMTLIB2(,)2 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Strictness: <L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w1 :: Data.Text.Internal.Builder.Buffer s)
-                   (w2 :: GHC.Prim.State# s)[OneShot] ->
-                 case w1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Smt.Serialize.$wlvl
-                   @ s
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-f8ac7fea6e94557a94edbbd1c95f7b3c
-  $fSMTLIB2(,)3 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Strictness: <L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w1 :: Data.Text.Internal.Builder.Buffer s)
-                   (w2 :: GHC.Prim.State# s)[OneShot] ->
-                 case w1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Smt.Serialize.$wlvl1
-                   @ s
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-d96337bf321703b1bf625d2b9beee8e1
-  $fSMTLIB2(,)4 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Strictness: <L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w1 :: Data.Text.Internal.Builder.Buffer s)
-                   (w2 :: GHC.Prim.State# s)[OneShot] ->
-                 case w1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Smt.Serialize.$wlvl2
-                   @ s
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-751785cce0f7f50ddc51f645038be497
-  $fSMTLIB2(,)5 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Strictness: <L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w1 :: Data.Text.Internal.Builder.Buffer s)
-                   (w2 :: GHC.Prim.State# s)[OneShot] ->
-                 case w1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Smt.Serialize.$wlvl3
-                   @ s
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-bac31ee376de253233c2efc1f0a8d9bc
-  $fSMTLIB2(,)6 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)7 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-8a1ac89b1de3be8e9578b8ae0d99e303
-  $fSMTLIB2(,)7 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "({} {})"#) -}
-2a5fac6930153b8f0f5b92418cb5237f
-  $fSMTLIB2(,)_$csmt1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S(SS(SSS)S),1*U(U,U(U,U,U),U(U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case ww3 of ww8 { Data.Text.Internal.Text ww9 ww10 ww11 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt1
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww9
-                   ww10
-                   ww11 } } }) -}
-46adecb3edf411f64b45f6c5313a660e
-  $fSMTLIB2(,)_$csmt2 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Sorts.Sort)
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,1*U(U(U,U(U,U,U),U(U,U,U)),1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Sorts.Sort)) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt2 ww1 ww2 }) -}
-5bf64c84675aa78d6862401b9abf0d67
-  $fSMTLIB2(,)_str :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Real"#) -}
-9ee2d06f9795e0e91ba3fd7bc0c63dba
-  $fSMTLIB2(,)_str1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Int"#) -}
-e6ad3606413071a305c3d2bb745c69c9
-  $fSMTLIB2(,)_str2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Bool"#) -}
-a7575743b8c34ffe9c185bbc7bacfd17
-  $fSMTLIB2Bop ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Refinements.Bop
-  DFunId
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><L,U(U,U,U,U)><S,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Bop_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Refinements.Bop>_N)) -}
-abbc9e956bf32c89c76d935b00702251
-  $fSMTLIB2Bop1 ::
-    Language.Fixpoint.Types.Refinements.Bop
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.Prim.State# s
-       -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><L,U(U,U,U,U)><S,U> -}
-d62a7fc3cff5feafa0465b88e3e92fa1
-  $fSMTLIB2Bop_$csmt2 ::
-    Language.Fixpoint.Types.Refinements.Bop
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><L,U(U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Bop1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Bop>_R
-                 ->_R Trans
-                          (forall (s :: <*>_N).
-                           <Data.Text.Internal.Builder.Buffer s
-                            -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                           ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                           ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                          (Sym (Data.Text.Internal.Builder.N:Builder[0]))) -}
-354a5728613693cb4a7b3f24218f9e42
-  $fSMTLIB2Brel ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Refinements.Brel
-  DFunId
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Refinements.Brel>_N)) -}
-55e8c7df966b470b0b4fc3ffecde4640
-  $fSMTLIB2Brel1 ::
-    Language.Fixpoint.Types.Refinements.Brel
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.Prim.State# s
-       -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Brel)
-                   @ s
-                   (w1 :: Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w2 :: Data.Text.Internal.Builder.Buffer s)
-                   (w3 :: GHC.Prim.State# s)[OneShot] ->
-                 case w2 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt3
-                   w
-                   @ s
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w3 }) -}
-d1b756fadd831a0fd940fa137f78ecf1
-  $fSMTLIB2Brel2 :: Data.Text.Internal.Builder.Builder
-  {- Strictness: x -}
-8b1aee861a9e0e2d2bf6760917c8c9b5
-  $fSMTLIB2Brel_$csmt2 ::
-    Language.Fixpoint.Types.Refinements.Brel
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 4,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S(SSSS),1*U(U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Brel>_R
-                 ->_R Trans
-                          (forall (s :: <*>_N).
-                           <Data.Text.Internal.Builder.Buffer s
-                            -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                           ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                           ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                          (Sym (Data.Text.Internal.Builder.N:Builder[0]))) -}
-3ebbe996353df99d89dad7b98b745959
-  $fSMTLIB2Brel_str :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "="#) -}
-aa3322089694ebd6219880ee46485d95
-  $fSMTLIB2Brel_str1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "<="#) -}
-701b6dfe5d0f77c02cba381e19b0c557
-  $fSMTLIB2Brel_str2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "<"#) -}
-1df45c117d104011bdf569780bf042df
-  $fSMTLIB2Brel_str3 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ">="#) -}
-cc182458d09c5dad61ac27d57153e545
-  $fSMTLIB2Brel_str4 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ">"#) -}
-6c6452eb3978c2b0a358005bb1fa76b7
-  $fSMTLIB2Command ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Smt.Types.Command
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Smt.Types.Command>_N)) -}
-64e182dac8ff404f4722b17f60e9f978
-  $fSMTLIB2Command_$csmt2 ::
-    Language.Fixpoint.Smt.Types.Command
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,1*U> -}
-f1c21c83ea8ffa299abbb80e54308462
-  $fSMTLIB2Constant ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Refinements.Constant
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Constant_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Refinements.Constant>_N)) -}
-8e3f951865bd61c0afbf391aa287d423
-  $fSMTLIB2Constant_$csmt2 ::
-    Language.Fixpoint.Types.Refinements.Constant
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,1*U> -}
-c377f7695cde811774edc126ac4a68e3
-  $fSMTLIB2Expr ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-52cb0222eff4d94e2bcc17563e4d3633
-  $fSMTLIB2Expr_$csmt2 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,1*U> -}
-6c6bd131564d0b826cdb3bd794491977
-  $fSMTLIB2Located ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Names.LocSymbol
-  DFunId
-  {- Arity: 1,
-     Strictness: <S(LLS(SS(SSS)S)),1*U(A,A,U(U,U(U,U,U),U(U,U,U)))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Located_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Names.LocSymbol>_N)) -}
-71298af002decc98878a49ffee229d49
-  $fSMTLIB2Located_$csmt2 ::
-    Language.Fixpoint.Types.Names.LocSymbol
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1,
-     Strictness: <S(LLS(SS(SSS)S)),1*U(A,A,U(U,U(U,U,U),U(U,U,U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.LocSymbol) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case ww6 of ww8 { Data.Text.Internal.Text ww9 ww10 ww11 ->
-                 case ww7 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt4
-                   ww5
-                   ww9
-                   ww10
-                   ww11
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-fcad098be08a4eecb76a27a165b95266
-  $fSMTLIB2SymConst ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Refinements.SymConst
-  DFunId
-  {- Arity: 1, Strictness: <S(S),1*U(U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2SymConst_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Refinements.SymConst>_N)) -}
-a6e76fe69fed66d6d0964b9fec589d82
-  $fSMTLIB2SymConst_$csmt2 ::
-    Language.Fixpoint.Types.Refinements.SymConst
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S(S),1*U(U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.SymConst) ->
-                 case w of ww { Language.Fixpoint.Types.Refinements.SL ww1 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt5 ww1 }) -}
-737b565bcb9beefac333ffb71d7f591f
-  $fSMTLIB2Symbol ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Arity: 1, Strictness: <S(SS(SSS)S),1*U(U,U(U,U,U),U(U,U,U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_$csmt1
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Names.Symbol>_N)) -}
-f219e8ebca57e4d5b4bd48b19c9d427c
-  $fSMTLIB2Triggered ::
-    Language.Fixpoint.Smt.Types.SMTLIB2
-      (Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr)
-  DFunId
-  {- Arity: 1, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered_$csmt2
-                  `cast`
-                (Sym (Language.Fixpoint.Smt.Types.N:SMTLIB2[0]
-                          <Language.Fixpoint.Types.Triggers.Triggered
-                             Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-54ab5a9ba52354ecaf1d67176d8ed5b9
-  $fSMTLIB2Triggered1 ::
-    [Data.Text.Internal.Builder.Builder]
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.ST.ST s [Data.Text.Internal.Text]
-  {- Arity: 2, Strictness: <S,1*U> -}
-abf89cb2d5b35bd6836f77c88930d910
-  $fSMTLIB2Triggered2 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered3 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-906f9bf252a7df892f11890b0dca6497
-  $fSMTLIB2Triggered3 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString#
-                   "(exists ({}) (! {} :pattern({})))"#) -}
-8092c538c2c14b32e0725b080963f7b3
-  $fSMTLIB2Triggered4 ::
-    [Data.Text.Internal.Builder.Builder]
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.ST.ST s [Data.Text.Internal.Text]
-  {- Arity: 2, Strictness: <S,1*U> -}
-bac40d3bcf6e6e5a301182b5978d5285
-  $fSMTLIB2Triggered5 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.ST.ST s [Data.Text.Internal.Text]
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ @ s
-                   (k :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (buf :: Data.Text.Internal.Builder.Buffer s) ->
-                 k buf) -}
-db3e75c4ae7dd362c231360330579070
-  $fSMTLIB2Triggered6 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered7 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-53035cbe1be7cc015348f8dab8568ed5
-  $fSMTLIB2Triggered7 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString#
-                   "(forall ({}) (! {} :pattern({})))"#) -}
-f42451c3244fe3a0267312d597d5d20c
-  $fSMTLIB2Triggered_$csmt2 ::
-    Language.Fixpoint.Types.Triggers.Triggered
-      Language.Fixpoint.Types.Refinements.Expr
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S(SS),1*U(1*U,1*U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr) ->
-                 case w of ww { Language.Fixpoint.Types.Triggers.TR ww1 ww2 ->
-                 Language.Fixpoint.Smt.Serialize.$w$csmt6 ww1 ww2 }) -}
-c4b63b5c4832f8f617f063dc1a24146f
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Smt.Serialize.$trModule2
-                   Language.Fixpoint.Smt.Serialize.$trModule1) -}
-b8cc1a13521dd6eb18f4c0169f3f1169
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Smt.Serialize"#) -}
-c25827ebea6ceac2c892d98694ff160e
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-b8caa392171571a393c014c26bd05f66
-  $w$csmt1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 7, Strictness: <S,U><S,U><S,U><S,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-61f029a79f8b398c9ddf310a868ee27d
-  $w$csmt2 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 2, Strictness: <L,U(U,U(U,U,U),U(U,U,U))><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Data.Text.Format.zipParams
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)6
-                   (GHC.Types.:
-                      @ Data.Text.Internal.Builder.Builder
-                      (Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_$csmt1 ww)
-                      (GHC.Types.:
-                         @ Data.Text.Internal.Builder.Builder
-                         (case ww1 of wild {
-                            DEFAULT
-                            -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                      wild
-                                      Language.Fixpoint.Types.Sorts.boolSort of wild1 {
-                                 GHC.Types.False
-                                 -> case Language.Fixpoint.Smt.Theories.smt2Sort wild of wild2 {
-                                      GHC.Base.Nothing
-                                      -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)5
-                                           `cast`
-                                         (Trans
-                                              (forall (s :: <*>_N).
-                                               <Data.Text.Internal.Builder.Buffer s
-                                                -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                                               ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                                               ->_R Sym (GHC.ST.N:ST[0]
-                                                             <s>_N <[Data.Text.Internal.Text]>_R))
-                                              (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                                      GHC.Base.Just d -> d }
-                                 GHC.Types.True
-                                 -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)4
-                                      `cast`
-                                    (Trans
-                                         (forall (s :: <*>_N).
-                                          <Data.Text.Internal.Builder.Buffer s
-                                           -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                                          ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                                          ->_R Sym (GHC.ST.N:ST[0]
-                                                        <s>_N <[Data.Text.Internal.Text]>_R))
-                                         (Sym (Data.Text.Internal.Builder.N:Builder[0]))) }
-                            Language.Fixpoint.Types.Sorts.FInt
-                            -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)3
-                                 `cast`
-                               (Trans
-                                    (forall (s :: <*>_N).
-                                     <Data.Text.Internal.Builder.Buffer s
-                                      -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                                     ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                                     ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                                    (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                            Language.Fixpoint.Types.Sorts.FReal
-                            -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)2
-                                 `cast`
-                               (Trans
-                                    (forall (s :: <*>_N).
-                                     <Data.Text.Internal.Builder.Buffer s
-                                      -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                                     ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                                     ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                                    (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                            Language.Fixpoint.Types.Sorts.FFunc ds ds1
-                            -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)1 ww wild })
-                         (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)))) -}
-40f144d9eddca47669aa94365d8e59e0
-  $w$csmt3 ::
-    Language.Fixpoint.Types.Refinements.Brel
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> GHC.Prim.MutableByteArray# s
-       -> GHC.Prim.Int#
-       -> GHC.Prim.Int#
-       -> GHC.Prim.Int#
-       -> GHC.Prim.State# s
-       -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 7,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Refinements.Brel)
-                   @ s
-                   (w1 :: Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w2 :: GHC.Prim.State# s)[OneShot] ->
-                 case w of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel2
-                      ret_ty (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                      of {}
-                   Language.Fixpoint.Types.Refinements.Eq
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl9 @ s w1 ww ww1 ww2 ww3 w2
-                   Language.Fixpoint.Types.Refinements.Gt
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl8 @ s w1 ww ww1 ww2 ww3 w2
-                   Language.Fixpoint.Types.Refinements.Ge
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl7 @ s w1 ww ww1 ww2 ww3 w2
-                   Language.Fixpoint.Types.Refinements.Lt
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl6 @ s w1 ww ww1 ww2 ww3 w2
-                   Language.Fixpoint.Types.Refinements.Le
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl5 @ s w1 ww ww1 ww2 ww3 w2
-                   Language.Fixpoint.Types.Refinements.Ueq
-                   -> Language.Fixpoint.Smt.Serialize.$wlvl4
-                        @ s
-                        w1
-                        ww
-                        ww1
-                        ww2
-                        ww3
-                        w2 }) -}
-84391dea20bd86cefeb098b9ca6d5313
-  $w$csmt4 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 7, Strictness: <S,U><S,U><S,U><S,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-de7afe7546c73dd15d0cce23f07e904d
-  $w$csmt5 ::
-    Data.Text.Internal.Text -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-d85ce26a8a4cec2469165b2ebc52d234
-  $w$csmt6 ::
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ww of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 ww1
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> case ww1 of wild1 {
-                        DEFAULT
-                        -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 wild1
-                        Language.Fixpoint.Types.Refinements.PAll ds p
-                        -> case ds of wild2 {
-                             [] -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 p
-                             : ipv ipv1
-                             -> Data.Text.Format.zipParams
-                                  Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered6
-                                  (GHC.Types.:
-                                     @ Data.Text.Internal.Builder.Builder
-                                     (case GHC.Base.map
-                                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                                Language.Fixpoint.Types.Sorts.Sort)
-                                             @ Data.Text.Internal.Builder.Builder
-                                             Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_$csmt2
-                                             wild2 of wild3 {
-                                        []
-                                        -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered5
-                                             `cast`
-                                           (Sym (Data.Text.Internal.Builder.N:Builder[0]))
-                                        : b ds1
-                                        -> case ds1 of wild4 {
-                                             [] -> b
-                                             : ipv2 ipv3
-                                             -> (\ @ s
-                                                   (eta :: Data.Text.Internal.Builder.Buffer s
-                                                           -> GHC.ST.ST
-                                                                s [Data.Text.Internal.Text]) ->
-                                                 b `cast` (Data.Text.Internal.Builder.N:Builder[0])
-                                                   @ s
-                                                   (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered4
-                                                      wild4
-                                                      @ s
-                                                      eta))
-                                                  `cast`
-                                                (Sym (Data.Text.Internal.Builder.N:Builder[0])) } })
-                                     (GHC.Types.:
-                                        @ Data.Text.Internal.Builder.Builder
-                                        (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 p)
-                                        (GHC.Types.:
-                                           @ Data.Text.Internal.Builder.Builder
-                                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2
-                                              (Language.Fixpoint.Types.Triggers.getLeftHandSide
-                                                 wild1))
-                                           (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)))) }
-                        Language.Fixpoint.Types.Refinements.PExist ds p
-                        -> case ds of wild2 {
-                             [] -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 p
-                             : ipv ipv1
-                             -> Data.Text.Format.zipParams
-                                  Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered2
-                                  (GHC.Types.:
-                                     @ Data.Text.Internal.Builder.Builder
-                                     (case GHC.Base.map
-                                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                                Language.Fixpoint.Types.Sorts.Sort)
-                                             @ Data.Text.Internal.Builder.Builder
-                                             Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_$csmt2
-                                             wild2 of wild3 {
-                                        []
-                                        -> Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered5
-                                             `cast`
-                                           (Sym (Data.Text.Internal.Builder.N:Builder[0]))
-                                        : b ds1
-                                        -> case ds1 of wild4 {
-                                             [] -> b
-                                             : ipv2 ipv3
-                                             -> (\ @ s
-                                                   (eta :: Data.Text.Internal.Builder.Buffer s
-                                                           -> GHC.ST.ST
-                                                                s [Data.Text.Internal.Text]) ->
-                                                 b `cast` (Data.Text.Internal.Builder.N:Builder[0])
-                                                   @ s
-                                                   (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered1
-                                                      wild4
-                                                      @ s
-                                                      eta))
-                                                  `cast`
-                                                (Sym (Data.Text.Internal.Builder.N:Builder[0])) } })
-                                     (GHC.Types.:
-                                        @ Data.Text.Internal.Builder.Builder
-                                        (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2 p)
-                                        (GHC.Types.:
-                                           @ Data.Text.Internal.Builder.Builder
-                                           (Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr_$csmt2
-                                              (Language.Fixpoint.Types.Triggers.getLeftHandSide
-                                                 wild1))
-                                           (GHC.Types.[]
-                                              @ Data.Text.Internal.Builder.Builder)))) } } }) -}
-c7285e3dde3559c08ce95b4336719b6d
-  $wlvl ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_str
-                   w1) -}
-8d6cbc9c5238033da644b71ec810f67d
-  $wlvl1 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_str1
-                   w1) -}
-26b00d898f3d772ce928e8dd44deb586
-  $wlvl2 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_str2
-                   w1) -}
-95512a16f30ac08f5b60b29809282bac
-  $wlvl3 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)_str1
-                   w1) -}
-59da178ab2d8328d99e897807485be38
-  $wlvl4 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str
-                   w1) -}
-55a1c7bf8765aebf352a84d60f9b2d3a
-  $wlvl5 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str1
-                   w1) -}
-689a28aa70f037847f553e8d53a493a2
-  $wlvl6 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str2
-                   w1) -}
-639c3a769555ab1544b348cd127766f4
-  $wlvl7 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str3
-                   w1) -}
-21eecd7091e750f1c09bc14d6a5ce5c5
-  $wlvl8 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str4
-                   w1) -}
-a612b74898c6920dc240e27565a92fce
-  $wlvl9 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> GHC.Prim.MutableByteArray# s
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,C(C1(U(U,U)))><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ s
-                   (w :: Data.Text.Internal.Builder.Buffer s
-                         -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (ww :: GHC.Prim.MutableByteArray# s)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.State# s)[OneShot] ->
-                 letrec {
-                   $wloop :: GHC.Prim.MutableByteArray# s
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> [GHC.Types.Char]
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-                     {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww4 :: GHC.Prim.MutableByteArray# s)
-                       (ww5 :: GHC.Prim.Int#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: GHC.Prim.Int#)
-                       (w2 :: [GHC.Types.Char])
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case w2 of wild1 {
-                       []
-                       -> (w (Data.Text.Internal.Builder.Buffer @ s ww4 ww5 ww6 ww7))
-                            `cast`
-                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                            w3
-                       : ipv4 ipv5
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<=# ww7 1#) of wild2 {
-                            GHC.Types.False
-                            -> case ipv4 of wild3 { GHC.Types.C# c# ->
-                               let {
-                                 x :: GHC.Prim.Int# = GHC.Prim.ord# c#
-                               } in
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# x 65536#) of wild4 {
-                                 GHC.Types.False
-                                 -> let {
-                                      i# :: GHC.Prim.Int# = GHC.Prim.+# ww5 ww6
-                                    } in
-                                    let {
-                                      x# :: GHC.Prim.Int# = GHC.Prim.-# x 65536#
-                                    } in
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           i#
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+#
-                                                    (GHC.Prim.uncheckedIShiftRA# x# 10#)
-                                                    55296#)))
-                                           w3 of s2# { DEFAULT ->
-                                    case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# i# 1#)
-                                           (GHC.Prim.narrow16Word#
-                                              (GHC.Prim.int2Word#
-                                                 (GHC.Prim.+# (GHC.Prim.andI# x# 1023#) 56320#)))
-                                           s2# of s2#1 { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 2#)
-                                      (GHC.Prim.-# ww7 2#)
-                                      ipv5
-                                      s2#1 } }
-                                 GHC.Types.True
-                                 -> case GHC.Prim.writeWord16Array#
-                                           @ s
-                                           ww4
-                                           (GHC.Prim.+# ww5 ww6)
-                                           (GHC.Prim.narrow16Word# (GHC.Prim.int2Word# x))
-                                           w3 of s2# { DEFAULT ->
-                                    $wloop
-                                      ww4
-                                      ww5
-                                      (GHC.Prim.+# ww6 1#)
-                                      (GHC.Prim.-# ww7 1#)
-                                      ipv5
-                                      s2# } } }
-                            GHC.Types.True
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww4
-                                      w3 of ds2 { (#,#) ipv6 ipv7 ->
-                               case GHC.Prim.newByteArray#
-                                      @ s
-                                      224#
-                                      ipv6 of ds3 { (#,#) ipv8 ipv9 ->
-                               (# ipv8,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv7 ww5 ww6)
-                                    (case $wloop
-                                            ipv9
-                                            0#
-                                            0#
-                                            112#
-                                            wild1
-                                            ipv8 of ds4 { (#,#) ipv10 ipv11 ->
-                                     ipv11 }) #) } } } }
-                 } in
-                 $wloop
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel_str
-                   w1) -}
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [(,)]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2(,)
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Refinements.Bop]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Bop
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Refinements.Brel]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Brel
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Smt.Types.Command]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Command
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Refinements.Constant]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Constant
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Expr
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Located
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Refinements.SymConst]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2SymConst
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Symbol
-instance Language.Fixpoint.Smt.Types.SMTLIB2 [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Smt.Serialize.$fSMTLIB2Triggered
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Theories.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Theories.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Theories.dump-hi
+++ /dev/null
@@ -1,4502 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:49.327588 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Theories 8002
-  interface hash: 1ae4b4ddaa251b29e4a88ffa679ae4eb
-  ABI hash: 7338304cade2229c481eb3a53a263a4e
-  export-list hash: 97d4c588471a0a34e2bb2d91dfd92151
-  orphan hash: d6bcd653047c5d8c12e17e9bffd99ebf
-  flag hash: 0333c3793a7e05b748bbd6f2d71fa1b8
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Smt.Theories.axiomLiterals
-  Language.Fixpoint.Smt.Theories.isConName
-  Language.Fixpoint.Smt.Theories.isSmt2App
-  Language.Fixpoint.Smt.Theories.mapSel
-  Language.Fixpoint.Smt.Theories.mapSto
-  Language.Fixpoint.Smt.Theories.preamble
-  Language.Fixpoint.Smt.Theories.setAdd
-  Language.Fixpoint.Smt.Theories.setCap
-  Language.Fixpoint.Smt.Theories.setCom
-  Language.Fixpoint.Smt.Theories.setCup
-  Language.Fixpoint.Smt.Theories.setDif
-  Language.Fixpoint.Smt.Theories.setEmp
-  Language.Fixpoint.Smt.Theories.setEmpty
-  Language.Fixpoint.Smt.Theories.setMem
-  Language.Fixpoint.Smt.Theories.setSng
-  Language.Fixpoint.Smt.Theories.setSub
-  Language.Fixpoint.Smt.Theories.sizeBv
-  Language.Fixpoint.Smt.Theories.smt2App
-  Language.Fixpoint.Smt.Theories.smt2Sort
-  Language.Fixpoint.Smt.Theories.smt2Symbol
-  Language.Fixpoint.Smt.Theories.theorySEnv
-  Language.Fixpoint.Smt.Theories.theorySymbols
-  Language.Fixpoint.Smt.Theories.toInt
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.String b34df69c7b6358cd40a379c8a0a78dcf
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  exports: c7b078aa1030bf306e2bdc4ea4060c3a
-  Raw 4dbb3c18cb680bd6d90733e0ee1bfc0d
-  TheorySymbol bf378816d4d2e3ad953968a4bd4cfd90
-  Thy 68d3cc8014f7c177a11f23454b9f6898
-  tsRaw 81314cbf37f35f2c183c633c2bb70302
-  tsSort e17bd4dd079da6f0eec82165ce44ff0c
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  Cvc4 3d87f0ba7e80596691948760ddd2c6ce
-  SMTSolver 33b67c63a8c6c21d896e5eaee4e0bea5
-  Z3 8be9ca34cb31e999e4c02f330a4fc720
-  linear f236863d66e5a3576f22d8fe02cf9dd6
-  solver ad1f42cd69401df7fb80f31829c4b15f
-  stringTheory f42571dd5abc6b20f59b5eda31bd9459
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  SEnv ae9741409aa049333ef008f3802cfecf
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  bitVecApplyName c1d8a192c1714ead9703691284dcf814
-  bitVecName e733c9a4c9e40b0853f73957e759dbeb
-  bitVecToIntName 833190a7a8cfebe72de4caf10a5cd319
-  boolApplyName a7cb25f4ae6200ec0fb30523f7ea2268
-  boolToIntName 9d33f51c7225f602107a67923bf43210
-  bvAndName cc27784d934e70c697e2e7240aaffb45
-  bvOrName 505f19c374fb8992291f59af417f3415
-  divFuncName 21067dc33a1b9d59afe793b7ef69039c
-  intApplyName 4ab0157cfdbb81e9834f5fc91b8839f3
-  intArgName 6428e688e6c8bd56e1f50b5eb6ad378e
-  lambdaName d844da24cbcbb857f0cf79953babe2df
-  mapApplyName ddb317d661ab32350988590f7250f5a7
-  mapConName 27aaea04a10e9d7d92d914234f1660b7
-  mapToIntName 850ac887e9f7e9682c6cec9b99cb2e14
-  mulFuncName 43af320c45dc2b3a6646f173f8434c27
-  realApplyName babaf3aa9ec579d8932f0f002e849304
-  realToIntName bf741618648c7a866047d91e92aca515
-  setApplyName 1c534130f995a9b6cd7d384d6eebf8b0
-  setConName 1d0f81ce4f6d2857d0d0f587eedcb6c3
-  setToIntName 0e6624be05e2b19e3bb7d51886ba5fc1
-  size32Name 9dde6f1d287cc6bef86214a3aec859d3
-  size64Name c54b5b34d899e6fa20ee4e270c10e2a5
-  strConName 8f2d7586bedd92b3d2ca070cd9d9606e
-  symbolSafeText 526a21b244d2aaefeee84da8dfb69719
-  symbolText 13814968e12e393cf26b05198caca520
-  unLitSymbol 81afb8c736c7ae134a4127b3c32d4a46
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EApp 242f67cc5b7496adee37b0324be59497
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EEq 9242ee92a55fe451987339b69aae1cbb
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  eAppC 33d5abbf492746e77869883082291883
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  exports: c2522a8cb8fa0e99702ea4cacf9bcf96
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FTC 1c0b8dae81080fb2a43e62cfa71d5192
-  FTycon 402c177fc699f05dd97dbf4130d9008b
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  bitVecSort 9fc3e3b3261380d669b65cbdc171b88b
-  boolFTyCon 92013a835882e58fc8cef59c65c8ea2c
-  boolSort 22d923a69c59fbf1c3c3d3b80b0969e5
-  fTyconSymbol 2743e949ae7708233d72b5c54ab28250
-  intSort ebe09619b507dbe92e5361e5c5dd5b3d
-  isString 38c8c0ba321aaab302577dbd1742344c
-  mapSort a4e35a945d04168734676a5d44e30e3c
-  mkFFunc 30116a200ae299e51d495025e136b48f
-  realFTyCon 1c1981a95bcafb42e8fdd18f4da80892
-  realSort bc948854af7ac157c8f16f9a7de09084
-  setSort bb3b735b09c5e2f516234bf59aa18caf
-  strSort c3f197f2dc52b2b1cf128955742223a1
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  val a3c4cf7922f79de46237eef8822a75ce
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal a2f6f66c5bb1247458d9fa25257ab188
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Builder cac246c99e360c04405d7258721e6f9e
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Lazy 1efb735dc8fcde46f3a3e88605ea2067
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy 547b2cb8d74b3b03ee583c506a59422a
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy.Builder 12f4026fc6128435b48f92178aec364b
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format 9a6b638cf2a34046724796f57984b5cc
-import  -/  text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG:Data.Text.Format.Types.Internal 6ede970f6a055ff8875db8e2eeee1bd4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-1e98646f6ae1ef7defbcb81d6e70d408
-  $sboolToIntName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Types.Names.boolToIntName1) -}
-3f6d52e7dbb48f0a2e542b5b5ea62894
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Smt.Theories.$trModule2
-                   Language.Fixpoint.Smt.Theories.$trModule1) -}
-c876ffc63567faece507ca3bdf722d00
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Smt.Theories"#) -}
-540c83b0cdc2109bf4ccecda7358dd77
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-59b5d1fd042cc925f2fcdb2c9619ebcb
-  $wgo1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Smt.Types.TheorySymbol)
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Names.Symbol
-            Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Names.Symbol
-               Language.Fixpoint.Types.Sorts.Sort) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-29219693989d09d071a37d32417578fa
-  $wgo2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Smt.Types.TheorySymbol)
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Names.Symbol
-            Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.Leaf
-               Language.Fixpoint.Types.Names.Symbol
-               Language.Fixpoint.Types.Sorts.Sort) #)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(U)><L,U(U)><S,U><S,U><S,U>, Inline: [0] -}
-da0b0cdb8813a8876ee3f45e51d1bfb5
-  $wgo3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Smt.Types.TheorySymbol)
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Names.Symbol
-            Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Names.Symbol
-               Language.Fixpoint.Types.Sorts.Sort) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-0006f09858288981932b1d7682cea5bc
-  $wgo4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-63fcf14ed5847f3488b75f228742bc60
-  $wgo5 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-19c20b40ddec5e1f92e6114fe6dee5a4
-  $wgo6 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-6f61c7dbdb4ee0d6c959702b66656bc6
-  $wsizeBv :: GHC.Prim.Int# -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 1, Strictness: <S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#) ->
-                 case Language.Fixpoint.Types.Names.size32Name of wild1 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww dt2) of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.size64Name of wild2 { Language.Fixpoint.Types.Names.S dt3 ds1 ds2 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww dt3) of wild3 {
-                        GHC.Types.False -> GHC.Base.Nothing @ GHC.Types.Int
-                        GHC.Types.True -> Language.Fixpoint.Smt.Theories.sizeBv3 } }
-                   GHC.Types.True -> Language.Fixpoint.Smt.Theories.sizeBv1 } }) -}
-28eec128b161a9500101ce770a79082c
-  $wsmt2Symbol ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Arity: 4, Strictness: <L,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go12
-                        @ Language.Fixpoint.Smt.Types.TheorySymbol
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        0#
-                        Language.Fixpoint.Smt.Theories.theorySymbols of wild {
-                   GHC.Base.Nothing
-                   -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                   GHC.Base.Just x3
-                   -> GHC.Base.Just
-                        @ Data.Text.Internal.Builder.Builder
-                        (let {
-                           f :: [Data.Text.Internal.Text]
-                           = Data.Text.Lazy.dropEnd_go (Language.Fixpoint.Smt.Types.tsRaw x3)
-                         } in
-                         (\ @ s
-                            (eta :: Data.Text.Internal.Builder.Buffer s
-                                    -> GHC.ST.ST s [Data.Text.Internal.Text])
-                            (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                            (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                          case eta1 of ww4 { Data.Text.Internal.Builder.Buffer ww5 ww6 ww7 ww8 ->
-                          case ww7 of wild2 {
-                            DEFAULT
-                            -> case GHC.Prim.unsafeFreezeByteArray#
-                                      @ s
-                                      ww5
-                                      eta2 of ds4 { (#,#) ipv ipv1 ->
-                               (# ipv,
-                                  GHC.Types.:
-                                    @ Data.Text.Internal.Text
-                                    (Data.Text.Internal.Text ipv1 ww6 wild2)
-                                    (case (eta
-                                             (Data.Text.Internal.Builder.Buffer
-                                                @ s
-                                                ww5
-                                                (GHC.Prim.+# ww6 wild2)
-                                                0#
-                                                ww8))
-                                            `cast`
-                                          (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                            ipv of ds5 { (#,#) ipv2 ipv3 ->
-                                     GHC.Base.++ @ Data.Text.Internal.Text f ipv3 }) #) }
-                            0#
-                            -> case (eta
-                                       (Data.Text.Internal.Builder.Buffer @ s ww5 ww6 0# ww8))
-                                      `cast`
-                                    (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                      eta2 of ds4 { (#,#) ipv ipv1 ->
-                               (# ipv, GHC.Base.++ @ Data.Text.Internal.Text f ipv1 #) } } })
-                           `cast`
-                         (Trans
-                              (forall (s :: <*>_N).
-                               <Data.Text.Internal.Builder.Buffer s
-                                -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                               ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                               ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                              (Sym (Data.Text.Internal.Builder.N:Builder[0])))) } }) -}
-a46dcfc974c68b3c8bfe439d2e19ef38
-  $wuifDef ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Lazy.Text
-    -> Data.Text.Internal.Lazy.Text
-  {- Arity: 4, Strictness: <L,1*U><S,1*U><L,U(U,U,U)><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww1 :: GHC.Types.Bool)
-                   (w :: Data.Text.Internal.Text)
-                   (w1 :: Data.Text.Internal.Lazy.Text) ->
-                 let {
-                   $j :: GHC.Prim.Void# -> Data.Text.Internal.Lazy.Text
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w2 :: GHC.Prim.Void#)[OneShot] ->
-                     Data.Text.Internal.Builder.$wtoLazyTextWith
-                       112#
-                       (Data.Text.Format.zipParams
-                          Language.Fixpoint.Smt.Theories.preamble147
-                          (GHC.Types.:
-                             @ Data.Text.Internal.Builder.Builder
-                             (Data.Text.Internal.Builder.fromText w)
-                             (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)))
-                 } in
-                 case ww1 of wild {
-                   GHC.Types.False
-                   -> case ww of wild1 {
-                        DEFAULT -> $j GHC.Prim.void#
-                        Language.Fixpoint.Types.Config.Z3
-                        -> Data.Text.Internal.Builder.$wtoLazyTextWith
-                             112#
-                             (Data.Text.Format.zipParams
-                                Language.Fixpoint.Smt.Theories.preamble145
-                                (GHC.Types.:
-                                   @ Data.Text.Internal.Builder.Builder
-                                   (Data.Text.Internal.Builder.fromText w)
-                                   (GHC.Types.:
-                                      @ Data.Text.Internal.Builder.Builder
-                                      (Data.Text.Internal.Builder.fromLazyText w1)
-                                      (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)))) }
-                   GHC.Types.True -> $j GHC.Prim.void# }) -}
-906e96b54b3cf4b629e2ee154d196fae
-  add :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_add"#) -}
-66fdfe80672f9ea1cfda87d31cd5edd2
-  axiomLiterals ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (lts :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)]) ->
-                 Data.Maybe.catMaybes1
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   (Language.Fixpoint.Smt.Theories.axiomLiterals_go lts)) -}
-cf0c3ae94708a7c31b8611b908450cbd
-  axiomLiterals_go ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> [GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, Strictness: <S,1*U> -}
-a49058f401ed9351c215015978774027
-  cap :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_cap"#) -}
-14a996e8c922b1365b27a95ce592a840
-  com :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_com"#) -}
-2b3a10888e917147984e1eded197b525
-  cup :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_cup"#) -}
-f858b664cc58543cc65c20b97114fa17
-  dif :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_dif"#) -}
-6774801826bf14f26b5f2bc3eaf70d27
-  elt :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "Elt"#) -}
-c87f63a252eb8da00938a16fc4b3e8fc
-  emp :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_emp"#) -}
-ae0ba56f196baf94f74e49f311287460
-  isConName ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (s :: Language.Fixpoint.Types.Names.Symbol)
-                   (eta :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case s of wild { Language.Fixpoint.Types.Names.S dt2 ds2 ds3 ->
-                 case eta of wild1 { Language.Fixpoint.Types.Sorts.TC s3 ds1 ->
-                 case s3 of wild2 { Language.Fixpoint.Types.Spans.Loc ds4 ds5 ds6 ->
-                 case ds6 of wild3 { Language.Fixpoint.Types.Names.S dt3 ds7 ds8 ->
-                 GHC.Prim.tagToEnum#
-                   @ GHC.Types.Bool
-                   (GHC.Prim.==# dt2 dt3) } } } }) -}
-8f241bb6f341d4ce5cbd5096d30cb390
-  isSmt2App ::
-    Language.Fixpoint.Types.Refinements.Expr -> [a] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: (\ @ a
-                   (ds :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ds1 :: [a]) ->
-                 case ds of wild {
-                   DEFAULT -> GHC.Types.False
-                   Language.Fixpoint.Types.Refinements.EVar f
-                   -> case f of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                      case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                      case ds1 of wild1 {
-                        []
-                        -> case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  ww5
-                                  (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                                  (GHC.Prim.uncheckedIShiftL# ww7 1#)
-                                  -2578643520546668380#
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds2 ds3 ->
-                           case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                  @ Language.Fixpoint.Smt.Types.TheorySymbol
-                                  (GHC.Prim.int2Word# ds3)
-                                  ww1
-                                  0#
-                                  Language.Fixpoint.Smt.Theories.theorySymbols of wild3 {
-                             GHC.Base.Nothing -> GHC.Types.False
-                             GHC.Base.Just ipv -> GHC.Types.True } }
-                        : ds2 ds3
-                        -> case ds3 of wild2 {
-                             []
-                             -> case Language.Fixpoint.Smt.Theories.setEmpty of wild3 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                                case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 dt2) of wild4 {
-                                  GHC.Types.False
-                                  -> case Language.Fixpoint.Smt.Theories.setEmp of wild5 { Language.Fixpoint.Types.Names.S dt3 ds7 ds8 ->
-                                     case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww1 dt3) of wild6 {
-                                       GHC.Types.False
-                                       -> case Language.Fixpoint.Smt.Theories.setSng of wild7 { Language.Fixpoint.Types.Names.S dt4 ds9 ds10 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww1 dt4) of wild8 {
-                                            GHC.Types.False
-                                            -> case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                                   -> GHC.Prim.State#
-                                                                                                                                                        GHC.Prim.RealWorld
-                                                                                                                                                   -> (# GHC.Prim.State#
-                                                                                                                                                           GHC.Prim.RealWorld,
-                                                                                                                                                         GHC.Prim.Int# #)}
-                                                      ww5
-                                                      (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                                                      (GHC.Prim.uncheckedIShiftL# ww7 1#)
-                                                      -2578643520546668380#
-                                                      GHC.Prim.realWorld# of wild9 { (#,#) ds11 ds12 ->
-                                               case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                                      @ Language.Fixpoint.Smt.Types.TheorySymbol
-                                                      (GHC.Prim.int2Word# ds12)
-                                                      ww1
-                                                      0#
-                                                      Language.Fixpoint.Smt.Theories.theorySymbols of wild10 {
-                                                 GHC.Base.Nothing -> GHC.Types.False
-                                                 GHC.Base.Just ipv -> GHC.Types.True } }
-                                            GHC.Types.True -> GHC.Types.True } }
-                                       GHC.Types.True -> GHC.Types.True } }
-                                  GHC.Types.True -> GHC.Types.True } }
-                             : ipv ipv1
-                             -> case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                                    -> GHC.Prim.Int#
-                                                                                                                                    -> GHC.Prim.Int#
-                                                                                                                                    -> GHC.Prim.Int#
-                                                                                                                                    -> GHC.Prim.State#
-                                                                                                                                         GHC.Prim.RealWorld
-                                                                                                                                    -> (# GHC.Prim.State#
-                                                                                                                                            GHC.Prim.RealWorld,
-                                                                                                                                          GHC.Prim.Int# #)}
-                                       ww5
-                                       (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                                       (GHC.Prim.uncheckedIShiftL# ww7 1#)
-                                       -2578643520546668380#
-                                       GHC.Prim.realWorld# of wild3 { (#,#) ds4 ds5 ->
-                                case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                       @ Language.Fixpoint.Smt.Types.TheorySymbol
-                                       (GHC.Prim.int2Word# ds5)
-                                       ww1
-                                       0#
-                                       Language.Fixpoint.Smt.Theories.theorySymbols of wild4 {
-                                  GHC.Base.Nothing -> GHC.Types.False
-                                  GHC.Base.Just ipv2 -> GHC.Types.True } } } } } } }) -}
-c3b5f6cea1dfd56bf25adcae1b15b5c4
-  map :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "Map"#) -}
-a7bb65a2edd6b1e38b277dbbdb969076
-  mapSel :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.mapSel1) -}
-480b36021ea1073d9d4ceda114825870
-  mapSel1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Map_select"#) -}
-02dcb42bdf008ff0924332de9176243b
-  mapSto :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.mapSto1) -}
-e38112645f1587e6a1a7245cbd632283
-  mapSto1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Map_store"#) -}
-21221084763e8b627722605ff75d07e0
-  mem :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_mem"#) -}
-4aa7381e4b490d3fa563d993d6b01e60
-  preamble ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> [Data.Text.Internal.Lazy.Text]
-  {- Arity: 2,
-     Strictness: <L,1*U(A,A,A,A,U,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,1*U>,
-     Unfolding: (\ (u :: Language.Fixpoint.Types.Config.Config)
-                   (ds :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> case u of wild1 { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                      case ds7 of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ Data.Text.Internal.Lazy.Text
-                             Language.Fixpoint.Smt.Theories.preamble178
-                             (GHC.Types.:
-                                @ Data.Text.Internal.Lazy.Text
-                                Language.Fixpoint.Smt.Theories.preamble75
-                                (GHC.Types.:
-                                   @ Data.Text.Internal.Lazy.Text
-                                   Language.Fixpoint.Smt.Theories.preamble176
-                                   (GHC.Types.:
-                                      @ Data.Text.Internal.Lazy.Text
-                                      Language.Fixpoint.Smt.Theories.preamble174
-                                      (GHC.Types.:
-                                         @ Data.Text.Internal.Lazy.Text
-                                         Language.Fixpoint.Smt.Theories.preamble173
-                                         (GHC.Types.:
-                                            @ Data.Text.Internal.Lazy.Text
-                                            Language.Fixpoint.Smt.Theories.preamble172
-                                            (GHC.Types.:
-                                               @ Data.Text.Internal.Lazy.Text
-                                               Language.Fixpoint.Smt.Theories.preamble171
-                                               (GHC.Types.:
-                                                  @ Data.Text.Internal.Lazy.Text
-                                                  Language.Fixpoint.Smt.Theories.preamble170
-                                                  (GHC.Types.:
-                                                     @ Data.Text.Internal.Lazy.Text
-                                                     Language.Fixpoint.Smt.Theories.preamble168
-                                                     (GHC.Types.:
-                                                        @ Data.Text.Internal.Lazy.Text
-                                                        Language.Fixpoint.Smt.Theories.preamble159
-                                                        (GHC.Types.:
-                                                           @ Data.Text.Internal.Lazy.Text
-                                                           Language.Fixpoint.Smt.Theories.preamble153
-                                                           (GHC.Types.:
-                                                              @ Data.Text.Internal.Lazy.Text
-                                                              Language.Fixpoint.Smt.Theories.preamble97
-                                                              (GHC.Types.:
-                                                                 @ Data.Text.Internal.Lazy.Text
-                                                                 Language.Fixpoint.Smt.Theories.preamble96
-                                                                 (GHC.Types.:
-                                                                    @ Data.Text.Internal.Lazy.Text
-                                                                    Language.Fixpoint.Smt.Theories.preamble95
-                                                                    (GHC.Types.:
-                                                                       @ Data.Text.Internal.Lazy.Text
-                                                                       Language.Fixpoint.Smt.Theories.preamble149
-                                                                       (GHC.Types.:
-                                                                          @ Data.Text.Internal.Lazy.Text
-                                                                          (Language.Fixpoint.Smt.Theories.$wuifDef
-                                                                             ds5
-                                                                             ds6
-                                                                             Language.Fixpoint.Smt.Theories.preamble144
-                                                                             Language.Fixpoint.Smt.Theories.preamble143)
-                                                                          (GHC.Types.:
-                                                                             @ Data.Text.Internal.Lazy.Text
-                                                                             (Language.Fixpoint.Smt.Theories.$wuifDef
-                                                                                ds5
-                                                                                ds6
-                                                                                Language.Fixpoint.Smt.Theories.preamble142
-                                                                                Language.Fixpoint.Smt.Theories.preamble141)
-                                                                             (GHC.Types.[]
-                                                                                @ Data.Text.Internal.Lazy.Text)))))))))))))))))
-                        GHC.Types.True
-                        -> GHC.Base.++
-                             @ Data.Text.Internal.Lazy.Text
-                             Language.Fixpoint.Smt.Theories.preamble103
-                             (GHC.Types.:
-                                @ Data.Text.Internal.Lazy.Text
-                                Language.Fixpoint.Smt.Theories.preamble75
-                                (GHC.Types.:
-                                   @ Data.Text.Internal.Lazy.Text
-                                   Language.Fixpoint.Smt.Theories.preamble176
-                                   (GHC.Types.:
-                                      @ Data.Text.Internal.Lazy.Text
-                                      Language.Fixpoint.Smt.Theories.preamble174
-                                      (GHC.Types.:
-                                         @ Data.Text.Internal.Lazy.Text
-                                         Language.Fixpoint.Smt.Theories.preamble173
-                                         (GHC.Types.:
-                                            @ Data.Text.Internal.Lazy.Text
-                                            Language.Fixpoint.Smt.Theories.preamble172
-                                            (GHC.Types.:
-                                               @ Data.Text.Internal.Lazy.Text
-                                               Language.Fixpoint.Smt.Theories.preamble171
-                                               (GHC.Types.:
-                                                  @ Data.Text.Internal.Lazy.Text
-                                                  Language.Fixpoint.Smt.Theories.preamble170
-                                                  (GHC.Types.:
-                                                     @ Data.Text.Internal.Lazy.Text
-                                                     Language.Fixpoint.Smt.Theories.preamble168
-                                                     (GHC.Types.:
-                                                        @ Data.Text.Internal.Lazy.Text
-                                                        Language.Fixpoint.Smt.Theories.preamble159
-                                                        (GHC.Types.:
-                                                           @ Data.Text.Internal.Lazy.Text
-                                                           Language.Fixpoint.Smt.Theories.preamble153
-                                                           (GHC.Types.:
-                                                              @ Data.Text.Internal.Lazy.Text
-                                                              Language.Fixpoint.Smt.Theories.preamble97
-                                                              (GHC.Types.:
-                                                                 @ Data.Text.Internal.Lazy.Text
-                                                                 Language.Fixpoint.Smt.Theories.preamble96
-                                                                 (GHC.Types.:
-                                                                    @ Data.Text.Internal.Lazy.Text
-                                                                    Language.Fixpoint.Smt.Theories.preamble95
-                                                                    (GHC.Types.:
-                                                                       @ Data.Text.Internal.Lazy.Text
-                                                                       Language.Fixpoint.Smt.Theories.preamble149
-                                                                       (GHC.Types.:
-                                                                          @ Data.Text.Internal.Lazy.Text
-                                                                          (Language.Fixpoint.Smt.Theories.$wuifDef
-                                                                             ds5
-                                                                             ds6
-                                                                             Language.Fixpoint.Smt.Theories.preamble144
-                                                                             Language.Fixpoint.Smt.Theories.preamble143)
-                                                                          (GHC.Types.:
-                                                                             @ Data.Text.Internal.Lazy.Text
-                                                                             (Language.Fixpoint.Smt.Theories.$wuifDef
-                                                                                ds5
-                                                                                ds6
-                                                                                Language.Fixpoint.Smt.Theories.preamble142
-                                                                                Language.Fixpoint.Smt.Theories.preamble141)
-                                                                             (GHC.Types.[]
-                                                                                @ Data.Text.Internal.Lazy.Text))))))))))))))))) } }
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> Language.Fixpoint.Smt.Theories.preamble76
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> Language.Fixpoint.Smt.Theories.preamble1 }) -}
-eb92d5f77dae7ae46a40427f711cddca
-  preamble1 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble75
-                   Language.Fixpoint.Smt.Theories.preamble2) -}
-c47d8646a9f941426aeb86030709fe1e
-  preamble10 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble38
-                   Language.Fixpoint.Smt.Theories.preamble11) -}
-26f5a7d9fcea104cb723efddf1bd0d4b
-  preamble100 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble101
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble101
-                           ipv1 #) } } }) -}
-54ddcc1cc7aa4cef5295bd4d02e33358
-  preamble101 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.string) -}
-57d8370c46b24cfadb7a68c980f13144
-  preamble102 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString#
-                   "(set-logic ALL_SUPPORTED)"#) -}
-d3ddab5b2e0ddece4145a680f8b7c7f8
-  preamble103 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble140
-                   Language.Fixpoint.Smt.Theories.preamble104) -}
-101160862f5870d885e0e9cb6f77a299
-  preamble104 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble130
-                   Language.Fixpoint.Smt.Theories.preamble105) -}
-0cbe74e5c91fccda2a012dd7e24d47c1
-  preamble105 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble119
-                   Language.Fixpoint.Smt.Theories.preamble106) -}
-3723612bf749a714a7a107bc737ca46e
-  preamble106 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble107
-                   (GHC.Types.[] @ Data.Text.Internal.Lazy.Text)) -}
-b5d11c4c911d4835415694e82df24c86
-  preamble107 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((x {}) (y {})) {} ({} x y))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble108) }) -}
-54371cb3fc8240f41bdf054f7be6b0d9
-  preamble108 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble116
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble109) -}
-84cc358927dddb8c6a6b0b0f45058507
-  preamble109 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble110) -}
-4ab70bea895ca459e1a57681d33d40c7
-  preamble11 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble31
-                   Language.Fixpoint.Smt.Theories.preamble12) -}
-1d3e59e0f7bcc931b53f4a68d346c21d
-  preamble110 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble111) -}
-f6316f021fb38b0c18431f6bab2b64ad
-  preamble111 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble112) -}
-0f27f3f4a11ef767b38170fdad822b3b
-  preamble112 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble113
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-34cc32957a06a90b1f3e42217314d317
-  preamble113 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble114
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble114
-                           ipv1 #) } } }) -}
-7c255d6abcf90296be7148079e6dd79d
-  preamble114 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.preamble115) -}
-b56096441719c7b259ee4a28a06ae148
-  preamble115 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "str.++"#) -}
-0ec2415aa1ad8603da7076b405e3221d
-  preamble116 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble117
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble117
-                           ipv1 #) } } }) -}
-5cf238e7524adaf0dee71f4c963d2b72
-  preamble117 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble118 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer3 dt2) }) -}
-ce059475c5451365e70064d4d8bf5533
-  preamble118 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "concatString"#) -}
-151cb492b8b431a5ffcfd30c1eea6e9f
-  preamble119 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s {}) (i Int) (j Int)) {} ({} s i j))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble120) }) -}
-bda7dc383b2aab97b7aa3aa6fd95a1d4
-  preamble12 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble19
-                   Language.Fixpoint.Smt.Theories.preamble13) -}
-3c3960c6ae47671d8dfa093102037a40
-  preamble120 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble127
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble121) -}
-ccbb8df3606996becb9b5f4c6cd2eddb
-  preamble121 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble122) -}
-5cde87ef16a2d74b69073d3d6c3b5266
-  preamble122 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble123) -}
-7d23d2b4c02357b2da451deb145b7ecc
-  preamble123 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble124
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-7d0b21fbff61a285ff979e2a112a16a7
-  preamble124 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble125
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble125
-                           ipv1 #) } } }) -}
-f29847f178705976662227e07de113d1
-  preamble125 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.preamble126) -}
-69dcf948827a04583d778ced9462b6d5
-  preamble126 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "str.substr"#) -}
-48f98a88753b17a5d8ff7419c1d47baa
-  preamble127 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble128
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble128
-                           ipv1 #) } } }) -}
-48f8527babda775821549be2d99b4275
-  preamble128 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble129 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer4 dt2) }) -}
-4c5dca4e03b96b5a5bcc0b62ba1dfd9e
-  preamble129 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "subString"#) -}
-b82f4ea2ef162b2e9cac0a06ef5313ea
-  preamble13 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble19
-                   Language.Fixpoint.Smt.Theories.preamble14) -}
-6c91b5e77cfc16d8a82291ffd192e792
-  preamble130 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s {})) Int ({} s))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble131) }) -}
-956792d682d67fd379cbe3b1456ea3da
-  preamble131 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble137
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble132) -}
-d5ae3c455074e1fa0187295672754059
-  preamble132 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble133) -}
-7c39fbf31ea552550f175a488054898f
-  preamble133 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble134
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-456af6958fa589233eea410c019256c4
-  preamble134 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble135
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble135
-                           ipv1 #) } } }) -}
-6c7f5fe0ee120017b16d7659120e2d4b
-  preamble135 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.preamble136) -}
-4bf67900532d902411cef4849776f4c2
-  preamble136 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "str.len"#) -}
-79800090dc5eafb03916fa96a25e2939
-  preamble137 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble138
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble138
-                           ipv1 #) } } }) -}
-cb0578b1e5ebaaa640abb16aa697a048
-  preamble138 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble139 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer5 dt2) }) -}
-9d3d08106cb2ac8ed90b0ccd36891608
-  preamble139 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "strLen"#) -}
-009d57e5902af44553ce5290ce14647a
-  preamble14 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble15
-                   (GHC.Types.[] @ Data.Text.Internal.Lazy.Text)) -}
-13f6d173a239fa927621b899c967cfcf
-  preamble140 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () String)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble99) }) -}
-4b691463f3586c429ffef60b476fa3ce
-  preamble141 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "div"#) -}
-441754d7ab0347b010d1c5f25b270245
-  preamble142 :: Data.Text.Internal.Text
-  {- Unfolding: (case Language.Fixpoint.Types.Names.divFuncName of wild { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                 ds1 }) -}
-95f6e66bc2d53a486ba2fd2203557d05
-  preamble143 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "*"#) -}
-733aa60e983b0752e678961b361f4ea5
-  preamble144 :: Data.Text.Internal.Text
-  {- Unfolding: (case Language.Fixpoint.Types.Names.mulFuncName of wild { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                 ds1 }) -}
-552f0005ffbe5ba4815bc896b67c8788
-  preamble145 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Theories.preamble146 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-06c26411b81534a17f941ae180c9108a
-  preamble146 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString#
-                   "(define-fun {} ((x Int) (y Int)) Int ({} x y))"#) -}
-30c5446226995d5058279b44049da150
-  preamble147 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Theories.preamble148 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-b01b07c9c4d6ba10951a2580f4db6ac0
-  preamble148 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString#
-                   "(declare-fun {} (Int Int) Int)"#) -}
-99d9809f540b3cbb93aa67d3d3749a59
-  preamble149 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((b Bool)) Int (ite b 1 0))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble150) }) -}
-0a376262cd8d3c3f93e454ad1db94705
-  preamble15 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((b Bool)) Int (ite b 1 0))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble16) }) -}
-4b6bb9f4c21987708899f585aef14e75
-  preamble150 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble151
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-d2278613d18c13647a88e0e25916f2de
-  preamble151 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble152
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble152
-                           ipv1 #) } } }) -}
-03985798f78f927fe25a76b94b85a86f
-  preamble152 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Types.Names.boolToIntName1 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer6 dt2) }) -}
-cf613aadacdc9bace0bc4e09a69788b8
-  preamble153 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s1 {}) (s2 {})) Bool (= {} ({} s1 s2)))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble154) }) -}
-2dd23cdad79dbd11252f3f481e132ba8
-  preamble154 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble50
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble155) -}
-4c08b4549d2036acf3d00ca7f6dcca5e
-  preamble155 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble156) -}
-bdc702635a9085d606b42e51d93bd42a
-  preamble156 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble157) -}
-ab6201be6d430f137e44accadd6f24ef
-  preamble157 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble72
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble158) -}
-b7115d879b7ebdacb5fbc8b539f4af26
-  preamble158 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble55
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-ab697ca561de818d883dfaf0f1f9603a
-  preamble159 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s1 {}) (s2 {})) {} ({} s1 ({} s2)))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble160) }) -}
-26e3b2b7b03b181c9159d644dd46c159
-  preamble16 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble17
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-dc9552baf4ab377363f8984c03060e45
-  preamble160 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble55
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble161) -}
-81b9bd2027ff279eb22d255fce4b4c19
-  preamble161 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble162) -}
-fc3fd22761954c946c1782280a7ac07e
-  preamble162 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble163) -}
-3ef5d70cf85bb297a30e0016f31034a3
-  preamble163 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble164) -}
-319223eb7ec53c9d74a07a36024950bb
-  preamble164 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble59
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble165) -}
-7944444e38fd9da6a9f238366b885633
-  preamble165 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble166
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-e34eed14105e874299a2ed34806e85e5
-  preamble166 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble167
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble167
-                           ipv1 #) } } }) -}
-4b0428d644123f68034053f34bd154f2
-  preamble167 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.com) -}
-0cc6f58221a38520b9a6f636e9372347
-  preamble168 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s {})) {} ((_ map not) s))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble169) }) -}
-01c92c33124dbd8d8c6eb82f600aac8d
-  preamble169 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble166
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble49) -}
-3dc38b9235ece017ea76fa4fa7e29cf5
-  preamble17 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble18
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble18
-                           ipv1 #) } } }) -}
-313d3ce88ed89939f6d3f012ff721062
-  preamble170 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s1 {}) (s2 {})) {} ((_ map and) s1 s2))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble58) }) -}
-d69f5d0ae060e1511df71d140b30195e
-  preamble171 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s1 {}) (s2 {})) {} ((_ map or) s1 s2))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble62) }) -}
-3cea31d69712d5692c64d0bd5da757bd
-  preamble172 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((s {}) (x {})) {} (store s x true))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble66) }) -}
-a959e2c6b2029d151c6a298db5527a54
-  preamble173 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((x {}) (s {})) Bool (select s x))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble40) }) -}
-2e3cf5e1d742a9aa85e77b88765e0742
-  preamble174 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} () {} ((as const {}) false))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble175) }) -}
-abf8d5bd59d1ee8dd0a1c97cd520a792
-  preamble175 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble72
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble49) -}
-9734cce7e27a4fef552098c4654bc268
-  preamble176 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () (Array {} Bool))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble177) }) -}
-641a91c52d19fd91ec8f6b347fb2db87
-  preamble177 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble35) -}
-c599b25f3ab83c3cd9bc39e4dfd0d3f2
-  preamble178 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble98
-                   Language.Fixpoint.Smt.Theories.preamble179) -}
-94e976365e8b6cc7d08403b484e9b526
-  preamble179 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble192
-                   Language.Fixpoint.Smt.Theories.preamble180) -}
-fa6dc4940fdeb8d3d99008c198007059
-  preamble18 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Types.Names.boolToIntName1 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer dt2) }) -}
-fb2de5e6f451586cc75fde75a125275f
-  preamble180 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble188
-                   Language.Fixpoint.Smt.Theories.preamble181) -}
-cb699fae18f9017af72ea81a17b3e99e
-  preamble181 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble182
-                   (GHC.Types.[] @ Data.Text.Internal.Lazy.Text)) -}
-4344ea02e3a3e7c59163c0af53412a9c
-  preamble182 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble183) }) -}
-38b57211ef71c004c341595a2baf5e23
-  preamble183 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble186
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble184) -}
-6713389bcc2551b56b906779f9845363
-  preamble184 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble185) -}
-52bc93403b594880eb9563bfa95daa16
-  preamble185 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble99) -}
-c2bb2d350b19dbf480927542da096791
-  preamble186 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble187
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble187
-                           ipv1 #) } } }) -}
-38635304d82dbb5fcbce555a41e68581
-  preamble187 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble118 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer7 dt2) }) -}
-fc9d89c966aed2fae63a7e4d9c96f3a8
-  preamble188 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} Int Int) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble189) }) -}
-b4b13690ba526b4412a624f16edc067f
-  preamble189 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble190
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble185) -}
-b0b018c0e2e67fd9786d105a2b438c70
-  preamble19 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble20) }) -}
-7f4f2d344cb0a7a070f42aacdee16b54
-  preamble190 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble191
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble191
-                           ipv1 #) } } }) -}
-e3137c138ca858bf86ba97219f4883a6
-  preamble191 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble129 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer8 dt2) }) -}
-01fbd46aa1e17deceb52e89ee55d1325
-  preamble192 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({}) Int)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble193) }) -}
-9bcd7ebede714b76e5101ae5794290de
-  preamble193 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble194
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble99) -}
-fda3bb43515da61d7c3896aeae03af33
-  preamble194 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble195
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble195
-                           ipv1 #) } } }) -}
-e862c53a781bfd8917cac08cfbbc9798
-  preamble195 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Smt.Theories.preamble139 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer9 dt2) }) -}
-6f2926e67530e0c488cbcf524843ca26
-  preamble2 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble74
-                   Language.Fixpoint.Smt.Theories.preamble3) -}
-f634a288045350e7729bcfba47f57ee8
-  preamble20 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble29
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble21) -}
-b7c3cb04a1a95bb673cf2d0772376a79
-  preamble21 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble25
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble22) -}
-679870f73c34f74ee958a4a31ae9124d
-  preamble22 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble27
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble23) -}
-06f73da0dd1d24c6aaed378fd8a51b43
-  preamble23 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble27
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble24) -}
-1406a09b779401d4ddb7ca38c92b4f0b
-  preamble24 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble25
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-1404961c12837fac3d8308f86b2d12bf
-  preamble25 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble26
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble26
-                           ipv1 #) } } }) -}
-2056d82574abd551debf1d73ca46a721
-  preamble26 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.map) -}
-3b59b9127f8ffb27983ab72df916b097
-  preamble27 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble28
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble28
-                           ipv1 #) } } }) -}
-f31abfce339edb14a33411d2c0ce41f8
-  preamble28 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.elt) -}
-c671aad98ff194f36496a49692436eee
-  preamble29 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble30
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble30
-                           ipv1 #) } } }) -}
-f616945df22f560200fd8a32de3f65ef
-  preamble3 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble70
-                   Language.Fixpoint.Smt.Theories.preamble4) -}
-781cf82936e1e09ed31ff4fec47190b8
-  preamble30 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.sto) -}
-3151bc13874ee3a8e9d322deaa3c5a6d
-  preamble31 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble32) }) -}
-b314ab9560cbe5b640662f7833362ab3
-  preamble32 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble36
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble33) -}
-6127e9d02f1389c57fa6871f65034687
-  preamble33 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble25
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble34) -}
-0d8614a01f2e307964d6faa5dba0d9f0
-  preamble34 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble27
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble35) -}
-33d9f29d6da3bf59706a75ee44ad3fd0
-  preamble35 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble27
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-ef1412e7e2e1d6ef4996b5e359d38b78
-  preamble36 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble37
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble37
-                           ipv1 #) } } }) -}
-78dd53bcb5e95d184db11532ae145289
-  preamble37 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.sel) -}
-126540dc5a26f6b48caccc25a9253629
-  preamble38 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () Int)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble24) }) -}
-a01616c30d3f09076d4465126a9ef0e1
-  preamble39 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) Bool)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble40) }) -}
-1c7218ce399396fe8ef362e9fa795123
-  preamble4 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble65
-                   Language.Fixpoint.Smt.Theories.preamble5) -}
-14c2f73f24963f18524c6548e068fc0c
-  preamble40 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble45
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble41) -}
-bd32d070c43cd53bc7d64f04f29e8894
-  preamble41 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble27
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble42) -}
-493f35618e3069696f9ef9e6a75ae6c4
-  preamble42 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-a7eaf2183167a092ebd28d755f0f7d75
-  preamble43 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble44
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble44
-                           ipv1 #) } } }) -}
-8337e5b0e990051fb91e2288c3b4698d
-  preamble44 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.set) -}
-ad0ed798ecff9d8092a327eee33f2eb1
-  preamble45 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble46
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble46
-                           ipv1 #) } } }) -}
-8f16818d0638e4b3be4705403dcbb0e2
-  preamble46 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.mem) -}
-d02f315a910915ecc4d1a2e981820d08
-  preamble47 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) Bool)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble48) }) -}
-c7f4765c75c5793d3604b2407c6d2805
-  preamble48 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble50
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble49) -}
-810d0ce21077e8c95b1b59bc36353175
-  preamble49 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble42) -}
-8c2f50fb055deffa321288198dc20c71
-  preamble5 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble61
-                   Language.Fixpoint.Smt.Theories.preamble6) -}
-a743c0d0d0117dd320ba22699cfee3fe
-  preamble50 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble51
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble51
-                           ipv1 #) } } }) -}
-4ab035f194c6b1ae13c1b516a3831cef
-  preamble51 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.sub) -}
-80ed8ef82d95d876003b210021e82732
-  preamble52 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble53) }) -}
-b43d74d4149853670c049570691b6196
-  preamble53 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble55
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble54) -}
-ddc9b61836a1df359cddc4fb0edc5d95
-  preamble54 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble49) -}
-a68b77fa2585881a3c2b296cfac1759d
-  preamble55 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble56
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble56
-                           ipv1 #) } } }) -}
-82057c7d6ec1b01972f5067132e898af
-  preamble56 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.dif) -}
-077be59ddbce6d1d7b15ec15b856d91e
-  preamble57 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble58) }) -}
-e63f8379b4112411e0cf9ed4b3e7855c
-  preamble58 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble59
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble54) -}
-5bc48760d9cc4d6b53d056ca9d48dc4f
-  preamble59 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble60
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble60
-                           ipv1 #) } } }) -}
-c88c7047e44635a86a043d8997134f53
-  preamble6 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble57
-                   Language.Fixpoint.Smt.Theories.preamble7) -}
-3cf5719ec90e3282f2dbc09505b91b77
-  preamble60 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.cap) -}
-424d64759b239a8f77adbdd69a80d3d3
-  preamble61 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble62) }) -}
-fcd7722f7e3ba7b78de6ddea834c5c36
-  preamble62 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble63
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble54) -}
-5d25780666a2368b46738ab0a1cbc4f1
-  preamble63 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble64
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble64
-                           ipv1 #) } } }) -}
-59a6f3edea3e8287cf8e69a70497cdcf
-  preamble64 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.cup) -}
-c53738477bffbd52442f507d0183d949
-  preamble65 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} ({} {}) {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble66) }) -}
-d7922f275cb66242c0d371483dd7e080
-  preamble66 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble68
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble67) -}
-795eedebafa3b9433d29986a2e2aee59
-  preamble67 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble43
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble41) -}
-953b1db223a941e6cfb60c1808450e90
-  preamble68 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble69
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble69
-                           ipv1 #) } } }) -}
-ef421367b7b1079bf9e069e41fce15ab
-  preamble69 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.add) -}
-8b2aa3c37fd8ae5b935ac296b8cdddb0
-  preamble7 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble52
-                   Language.Fixpoint.Smt.Theories.preamble8) -}
-9432dde3d905d9a77753e22a7ac496e0
-  preamble70 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(declare-fun {} () {})"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble71) }) -}
-83e023f702e6b44ad237861af16b1f11
-  preamble71 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble72
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   Language.Fixpoint.Smt.Theories.preamble42) -}
-3affcf80be7f648ecf28b81a7a3bceb2
-  preamble72 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble73
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble73
-                           ipv1 #) } } }) -}
-e0ca39ecea9976cb845baa376498955f
-  preamble73 :: [Data.Text.Internal.Text]
-  {- Unfolding: (Data.Text.Lazy.dropEnd_go
-                   Language.Fixpoint.Smt.Theories.emp) -}
-f8d659d1a7d8011ae840f23abc669d82
-  preamble74 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () Int)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble42) }) -}
-994e92afed41443eb42ea9d631eddd9d
-  preamble75 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () Int)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble35) }) -}
-704bc1874ef1e3aa50969275c64c0628
-  preamble76 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble102
-                   Language.Fixpoint.Smt.Theories.preamble77) -}
-d6231cc2a9f8cdfb38e9879e32090de1
-  preamble77 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble75
-                   Language.Fixpoint.Smt.Theories.preamble78) -}
-6fc9a8a0302ff5d091c052d56f8e02e7
-  preamble78 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble74
-                   Language.Fixpoint.Smt.Theories.preamble79) -}
-13c877350cd5f04cc553ca3d11a5420e
-  preamble79 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble98
-                   Language.Fixpoint.Smt.Theories.preamble80) -}
-dfb3babf8580176b2014b20f1e338252
-  preamble8 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble47
-                   Language.Fixpoint.Smt.Theories.preamble9) -}
-c1533206efdeead9f778abed8bfeb100
-  preamble80 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble70
-                   Language.Fixpoint.Smt.Theories.preamble81) -}
-4a051932dbc8ce5ec2aae9a9f7f7eb04
-  preamble81 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble65
-                   Language.Fixpoint.Smt.Theories.preamble82) -}
-eccf0c2a461020ebce322e8af0482856
-  preamble82 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble61
-                   Language.Fixpoint.Smt.Theories.preamble83) -}
-679c6bdfc38a5c7be8dba55ddbfaaf06
-  preamble83 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble57
-                   Language.Fixpoint.Smt.Theories.preamble84) -}
-bfeb70dabdd31178afa6b2abd7b07ef6
-  preamble84 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble52
-                   Language.Fixpoint.Smt.Theories.preamble85) -}
-e89bcd54e0886ae1c96450e3a5eb7500
-  preamble85 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble47
-                   Language.Fixpoint.Smt.Theories.preamble86) -}
-a33c17181587eb2cf1dfc210289ffd67
-  preamble86 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble39
-                   Language.Fixpoint.Smt.Theories.preamble87) -}
-470affbc03dc842af6fd927605a8a735
-  preamble87 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble97
-                   Language.Fixpoint.Smt.Theories.preamble88) -}
-c7654d79a1e7f04787f19d4a60357013
-  preamble88 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble96
-                   Language.Fixpoint.Smt.Theories.preamble89) -}
-6c95d003c2ee1b961f9a7eb117c2860a
-  preamble89 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble95
-                   Language.Fixpoint.Smt.Theories.preamble90) -}
-60cbc56b001c433680d3cdbab5ea7445
-  preamble9 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble39
-                   Language.Fixpoint.Smt.Theories.preamble10) -}
-5ae40beb2e809ca3a56763d425c2a894
-  preamble90 :: [Data.Text.Internal.Lazy.Text]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Lazy.Text
-                   Language.Fixpoint.Smt.Theories.preamble91
-                   (GHC.Types.[] @ Data.Text.Internal.Lazy.Text)) -}
-332a50dad886e1e0e6b15fc34a7105c6
-  preamble91 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((b Bool)) Int (ite b 1 0))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble92) }) -}
-5d66b826712f3bd2721317e6fb5a34d8
-  preamble92 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble93
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-cf7982d42a2da101c67518e23ce85e37
-  preamble93 ::
-    (Data.Text.Internal.Builder.Buffer s
-     -> GHC.ST.ST s [Data.Text.Internal.Text])
-    -> Data.Text.Internal.Builder.Buffer s
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 3,
-     Unfolding: (\ @ s
-                   (eta :: Data.Text.Internal.Builder.Buffer s
-                           -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (eta1 :: Data.Text.Internal.Builder.Buffer s)
-                   (eta2 :: GHC.Prim.State# s)[OneShot] ->
-                 case eta1 of ww { Data.Text.Internal.Builder.Buffer ww1 ww2 ww3 ww4 ->
-                 case ww3 of wild {
-                   DEFAULT
-                   -> case GHC.Prim.unsafeFreezeByteArray#
-                             @ s
-                             ww1
-                             eta2 of ds2 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Types.:
-                           @ Data.Text.Internal.Text
-                           (Data.Text.Internal.Text ipv1 ww2 wild)
-                           (case (eta
-                                    (Data.Text.Internal.Builder.Buffer
-                                       @ s
-                                       ww1
-                                       (GHC.Prim.+# ww2 wild)
-                                       0#
-                                       ww4))
-                                   `cast`
-                                 (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                                   ipv of ds1 { (#,#) ipv2 ipv3 ->
-                            GHC.Base.++
-                              @ Data.Text.Internal.Text
-                              Language.Fixpoint.Smt.Theories.preamble94
-                              ipv3 }) #) }
-                   0#
-                   -> case (eta
-                              (Data.Text.Internal.Builder.Buffer @ s ww1 ww2 0# ww4))
-                             `cast`
-                           (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R)
-                             eta2 of ds1 { (#,#) ipv ipv1 ->
-                      (# ipv,
-                         GHC.Base.++
-                           @ Data.Text.Internal.Text
-                           Language.Fixpoint.Smt.Theories.preamble94
-                           ipv1 #) } } }) -}
-b3f3583b31c1efce68a4c9060986be88
-  preamble94 :: [Data.Text.Internal.Text]
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Types.Names.boolToIntName1 of dt2 { DEFAULT ->
-                 Data.Text.Lazy.dropEnd_go
-                   (Language.Fixpoint.Smt.Theories.preamble_outer1 dt2) }) -}
-a7fc2a9bb6a934da2d98b727c87171d0
-  preamble95 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((m {}) (k {}) (v {})) {} (store m k v))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble20) }) -}
-b9ef2ce28cb0d21352e6e90dbfac11b3
-  preamble96 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-fun {} ((m {}) (k {})) {} (select m k))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble32) }) -}
-07f06dc81e9d388b2cf0a464b6b2dadc
-  preamble97 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () (Array {} {}))"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble33) }) -}
-a8a0ddf0aad4023e58c7fd9a985a33ff
-  preamble98 :: Data.Text.Internal.Lazy.Text
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "(define-sort {} () Int)"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Internal.Builder.$wtoLazyTextWith
-                   112#
-                   (Data.Text.Format.zipParams
-                      (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                      Language.Fixpoint.Smt.Theories.preamble99) }) -}
-1eae693c2537456e756313391587370d
-  preamble99 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.preamble100
-                     `cast`
-                   (Trans
-                        (forall (s :: <*>_N).
-                         <Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                         ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                         ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                        (Sym (Data.Text.Internal.Builder.N:Builder[0])))
-                   (GHC.Types.[] @ Data.Text.Internal.Builder.Builder)) -}
-e7b4dc175187d3ff562218603c7ed7d5
-  preamble_outer :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-fcd48d2ed4d1c711ad4d2b1fa51ed488
-  preamble_outer1 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-5859e3aec660739761bfcfa72a07b794
-  preamble_outer2 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-43f9be9ec5df6f8bdefc9408b38e52b5
-  preamble_outer3 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-5b78d83977ab8ea81a057556d24f4c75
-  preamble_outer4 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-4ca7aefea6bb36396adc6a15295ade41
-  preamble_outer5 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-646bfa3339becbec06b85e64fb7337f1
-  preamble_outer6 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-66ea4f213598b419a588b5843022295d
-  preamble_outer7 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-679d45c97b10c9a19982a2883ef9f792
-  preamble_outer8 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-da589b9eebcb0e691a6ce42c88acba46
-  preamble_outer9 :: [GHC.Types.Char] -> Data.Text.Internal.Lazy.Text
-  {- Arity: 1, Strictness: <S,1*U> -}
-b912708cda63c819f1e25b2771a2062b
-  sel :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_map_sel"#) -}
-09e3467293a4485b6bef1458364d92df
-  set :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "Set"#) -}
-77f0fd1eeba90216d2d80cd72cbd95ee
-  setAdd :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setAdd1) -}
-10413897c1ef4c2a08ba4aa678f17500
-  setAdd1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_add"#) -}
-1cf02d638b1d900ec69c3999574236df
-  setCap :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setCap1) -}
-8e6a94efab09584678c37baafe142792
-  setCap1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_cap"#) -}
-e08e0f76d7e275b42d2f1c4f72ea4a16
-  setCom :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setCom1) -}
-74afdcb7107b15e249bf8a16015792b5
-  setCom1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_com"#) -}
-a294a328ad9241d63041ef68cef3a2e4
-  setCup :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setCup1) -}
-22374b63b6b59152e85007bdc7ef51d5
-  setCup1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_cup"#) -}
-ad35ce850b47abe9995e962791e7bd3e
-  setDif :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setDif1) -}
-b5c487de04678bbe7daac5cc50487f38
-  setDif1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_dif"#) -}
-18b8e2f394ba223c38127602042baf3a
-  setEmp :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setEmp1) -}
-34375d2cdebbaa9cddbb341a3be28f24
-  setEmp1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_emp"#) -}
-202ac2c70322e7356b7153ff6f0834be
-  setEmpty :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setEmpty1) -}
-4a499d0724838bf3b9756aac8ac6d72a
-  setEmpty1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_empty"#) -}
-9abf813165465cd5b6ccb8b1a79f2365
-  setMem :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setMem1) -}
-3f8283e79400781f9382ca21dbe48e8d
-  setMem1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_mem"#) -}
-780812e65a602ef62a165bd0cfc1c48e
-  setSng :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setSng1) -}
-9efedd94f0d992d72cd26d29db033664
-  setSng1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_sng"#) -}
-d575e2593e6e71362906aaac256c3bbe
-  setSub :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Smt.Theories.setSub1) -}
-2656f8b4a7eb532eb26bfcc225d7be1b
-  setSub1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Set_sub"#) -}
-d2273f8f13b633aa6f138342cce43afa
-  sizeBv ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 1,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 Language.Fixpoint.Smt.Theories.$wsizeBv ww8 } } }) -}
-40bf8dbd6b6cacce9d83c1f3f1a3cfc4
-  sizeBv1 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Smt.Theories.sizeBv2) -}
-3b0d4f2248afcb51263f35e9dbe65a8c
-  sizeBv2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 32#) -}
-49dc354862f6cfafb7f3d1730c25379a
-  sizeBv3 :: GHC.Base.Maybe GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Smt.Theories.sizeBv4) -}
-fd849733eb09f17e5ee988a4718e79eb
-  sizeBv4 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 64#) -}
-be5257857e9b54fce6e0fe7117987ee6
-  smt2App ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Data.Text.Internal.Builder.Builder]
-    -> GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Arity: 2, Strictness: <S,1*U><L,1*U> -}
-a97793759a91f3c485366121fecd1d0b
-  smt2Sort ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Sorts.isString wild of wild1 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                        GHC.Types.True -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                   Language.Fixpoint.Types.Sorts.FApp ds1 ds2
-                   -> case ds1 of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Sorts.isString wild of wild2 {
-                             GHC.Types.False
-                             -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                             GHC.Types.True -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                        Language.Fixpoint.Types.Sorts.FTC c
-                        -> case c of wild2 { Language.Fixpoint.Types.Sorts.TC s3 ds3 ->
-                           case Language.Fixpoint.Types.Names.setConName of wild3 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                           case s3 of wild4 { Language.Fixpoint.Types.Spans.Loc ds6 ds7 ds8 ->
-                           case ds8 of wild5 { Language.Fixpoint.Types.Names.S dt3 ds9 ds10 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt2 dt3) of wild6 {
-                             GHC.Types.False
-                             -> case ds2 of wild7 {
-                                  DEFAULT
-                                  -> case Language.Fixpoint.Types.Sorts.isString wild of wild8 {
-                                       GHC.Types.False
-                                       -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                                       GHC.Types.True -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                                  Language.Fixpoint.Types.Sorts.FTC s
-                                  -> case s of wild8 { Language.Fixpoint.Types.Sorts.TC s1 ds11 ->
-                                     case Language.Fixpoint.Types.Names.bitVecName of wild9 { Language.Fixpoint.Types.Names.S dt4 ds12 ds13 ->
-                                     case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# dt4 dt3) of wild10 {
-                                       GHC.Types.False
-                                       -> case Language.Fixpoint.Types.Sorts.isString
-                                                 wild of wild11 {
-                                            GHC.Types.False
-                                            -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                                            GHC.Types.True
-                                            -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                                       GHC.Types.True
-                                       -> case s1 of wild11 { Language.Fixpoint.Types.Spans.Loc ds14 ds15 ds16 ->
-                                          case ds16 of wild12 { Language.Fixpoint.Types.Names.S dt5 ds17 ds18 ->
-                                          case Language.Fixpoint.Types.Names.size32Name of wild13 { Language.Fixpoint.Types.Names.S dt6 ds19 ds20 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# dt5 dt6) of wild14 {
-                                            GHC.Types.False
-                                            -> case Language.Fixpoint.Types.Names.size64Name of wild15 { Language.Fixpoint.Types.Names.S dt7 ds21 ds22 ->
-                                               case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.==# dt5 dt7) of wild16 {
-                                                 GHC.Types.False
-                                                 -> case Language.Fixpoint.Types.Sorts.isString
-                                                           wild of wild17 {
-                                                      GHC.Types.False
-                                                      -> GHC.Base.Nothing
-                                                           @ Data.Text.Internal.Builder.Builder
-                                                      GHC.Types.True
-                                                      -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Smt.Theories.smt2Sort9 } }
-                                            GHC.Types.True
-                                            -> Language.Fixpoint.Smt.Theories.smt2Sort5 } } } } } } } }
-                             GHC.Types.True
-                             -> Language.Fixpoint.Smt.Theories.smt2Sort3 } } } } }
-                        Language.Fixpoint.Types.Sorts.FApp ds3 ds4
-                        -> case ds3 of wild2 {
-                             DEFAULT
-                             -> case Language.Fixpoint.Types.Sorts.isString wild of wild3 {
-                                  GHC.Types.False
-                                  -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                                  GHC.Types.True -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                             Language.Fixpoint.Types.Sorts.FTC c
-                             -> case c of wild3 { Language.Fixpoint.Types.Sorts.TC s3 ds5 ->
-                                case Language.Fixpoint.Types.Names.mapConName of wild4 { Language.Fixpoint.Types.Names.S dt2 ds6 ds7 ->
-                                case s3 of wild5 { Language.Fixpoint.Types.Spans.Loc ds8 ds9 ds10 ->
-                                case ds10 of wild6 { Language.Fixpoint.Types.Names.S dt3 ds11 ds12 ->
-                                case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt2 dt3) of wild7 {
-                                  GHC.Types.False
-                                  -> case Language.Fixpoint.Types.Sorts.isString wild of wild8 {
-                                       GHC.Types.False
-                                       -> GHC.Base.Nothing @ Data.Text.Internal.Builder.Builder
-                                       GHC.Types.True -> Language.Fixpoint.Smt.Theories.smt2Sort11 }
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Smt.Theories.smt2Sort1 } } } } } } } }) -}
-5dda66bafd0a0007c7c3c959ba3e0e21
-  smt2Sort1 :: GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.smt2Sort2) -}
-9ce3ddb64745d17f9f88723e00abd0c9
-  smt2Sort10 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (Data.Text.Format.zipParams
-                   Language.Fixpoint.Smt.Theories.smt2Sort7
-                   (GHC.Types.:
-                      @ Data.Text.Internal.Builder.Builder
-                      (Data.Text.Format.Int.$w$sdecimal4 64#)
-                      (GHC.Types.[] @ Data.Text.Internal.Builder.Builder))) -}
-19b3a8993b206cc42351551c81db8d1f
-  smt2Sort11 :: GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.smt2Sort12) -}
-bbd6d57020279b121f1b4708e4d19239
-  smt2Sort12 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "{}"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.zipParams
-                   (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                   Language.Fixpoint.Smt.Theories.preamble99 }) -}
-02aebba64e48af390962b56f8f07b1e8
-  smt2Sort2 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "{}"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.zipParams
-                   (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                   Language.Fixpoint.Smt.Theories.preamble24 }) -}
-bb79fc0ec9af6acdb75edc856f4a52b0
-  smt2Sort3 :: GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.smt2Sort4) -}
-b8d20de0c2790db326a5a931bc98d0e5
-  smt2Sort4 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (case Data.Text.Show.unpackCString#
-                        "{}"# of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.zipParams
-                   (Data.Text.Format.$wcrack ww1 ww2 ww3)
-                   Language.Fixpoint.Smt.Theories.preamble42 }) -}
-7bc2ac6ec47c9db400d8ca6cc7d17877
-  smt2Sort5 :: GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Unfolding: (GHC.Base.Just
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.smt2Sort6) -}
-a009f4e1a6860499cd96205ac7810bba
-  smt2Sort6 :: Data.Text.Internal.Builder.Builder
-  {- Unfolding: (Data.Text.Format.zipParams
-                   Language.Fixpoint.Smt.Theories.smt2Sort7
-                   (GHC.Types.:
-                      @ Data.Text.Internal.Builder.Builder
-                      (Data.Text.Format.Int.$w$sdecimal4 32#)
-                      (GHC.Types.[] @ Data.Text.Internal.Builder.Builder))) -}
-b42e079af310217b1687ca384e88b44b
-  smt2Sort7 :: [Data.Text.Internal.Builder.Builder]
-  {- Unfolding: (case Language.Fixpoint.Smt.Theories.smt2Sort8 of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 Data.Text.Format.$wcrack ww1 ww2 ww3 }) -}
-2dbc8390127c8b88b78a5e77feaa232d
-  smt2Sort8 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "(_ BitVec {})"#) -}
-aeb76f0668e4b75b7ef35747f05d5b9a
-  smt2Sort9 :: GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Unfolding: (GHC.Base.Just
-                   @ Data.Text.Internal.Builder.Builder
-                   Language.Fixpoint.Smt.Theories.smt2Sort10) -}
-093e608663d5b7c8468748417c8bf28d
-  smt2Symbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Base.Maybe Data.Text.Internal.Builder.Builder
-  {- Arity: 1, Strictness: <S(LS(SSS)L),1*U(U,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Smt.Theories.$wsmt2Symbol ww1 ww5 ww6 ww7 } }) -}
-88ed924840754ad8578ea9afe013d83a
-  sto :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_map_sto"#) -}
-2eeee603906e54ea2793dc7427b8d002
-  string :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (case GHC.Base.map
-                        @ GHC.Types.Char
-                        @ GHC.Types.Char
-                        Data.Text.Internal.safe
-                        Language.Fixpoint.Types.Names.strConName1 of dt2 { DEFAULT ->
-                 Language.Fixpoint.Smt.Theories.preamble_outer2 dt2 }) -}
-b7be39dce515204eaf8ce137927d232e
-  sub :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString# "smt_set_sub"#) -}
-4f5f43c60510bc359a6de8317e6d6440
-  theorySEnv ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Theories.theorySEnv1
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) -}
-1cde21e22a1a8f13e1f5d7d0bee47fea
-  theorySEnv1 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Refinements.$dmsubst2
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Language.Fixpoint.Smt.Theories.theorySEnv2
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Sorts.Sort)) -}
-1a60e4099513dff99ecd8a1212f37dc4
-  theorySEnv2 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-  {- Unfolding: (Language.Fixpoint.Smt.Theories.theorySEnv_go2
-                   (GHC.Types.[]
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort))
-                   Language.Fixpoint.Smt.Theories.theorySEnv3) -}
-3fb4fd69eeea152575fd00e0308fb009
-  theorySEnv3 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Smt.Theories.theorySEnv_go1
-                   Language.Fixpoint.Smt.Theories.theorySymbols) -}
-2fef5a6fae577d078c2fce409a0483c4
-  theorySEnv_go1 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol
-                            Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty
-                   -> Data.HashMap.Base.Empty
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                   Data.HashMap.Base.BitmapIndexed dt2 dt3
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Names.Symbol
-                                 Language.Fixpoint.Smt.Types.TheorySymbol)
-                            dt3
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort))
-                             GHC.Prim.realWorld# of ds1 { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Smt.Theories.$wgo3
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Smt.Types.TheorySymbol)
-                                dt3)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort)
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds3 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             ds3
-                             ipv2 of ds4 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.BitmapIndexed
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        dt2
-                        ipv5 } } } }
-                   Data.HashMap.Base.Leaf dt2 dt3 dt4
-                   -> Data.HashMap.Base.Leaf
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        dt2
-                        dt3
-                        (Language.Fixpoint.Smt.Types.tsSort dt4)
-                   Data.HashMap.Base.Full dt2
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Names.Symbol
-                                 Language.Fixpoint.Smt.Types.TheorySymbol)
-                            dt2
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort))
-                             GHC.Prim.realWorld# of ds1 { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Smt.Theories.$wgo1
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Smt.Types.TheorySymbol)
-                                dt2)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort)
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds3 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             ds3
-                             ipv2 of ds4 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.Full
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        ipv5 } } } }
-                   Data.HashMap.Base.Collision dt2 dt3
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.Leaf
-                                 Language.Fixpoint.Types.Names.Symbol
-                                 Language.Fixpoint.Smt.Types.TheorySymbol)
-                            dt3
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort))
-                             GHC.Prim.realWorld# of ds1 { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Smt.Theories.$wgo2
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Smt.Types.TheorySymbol)
-                                dt3)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort)
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds3 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Sorts.Sort)
-                             ds3
-                             ipv2 of ds4 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.Collision
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        dt2
-                        ipv5 } } } } }) -}
-a35622b1eb2c8d1df47c6d3d6c22f7df
-  theorySEnv_go2 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (z1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)])
-                   (ds :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol
-                            Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty -> z1
-                   Data.HashMap.Base.BitmapIndexed dt2 dt3
-                   -> Language.Fixpoint.Smt.Theories.$wgo6
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt3)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt3)
-                        0#
-                        z1
-                   Data.HashMap.Base.Leaf dt2 dt3 dt4
-                   -> GHC.Types.:
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort)
-                        (dt3, dt4)
-                        z1
-                   Data.HashMap.Base.Full dt2
-                   -> Language.Fixpoint.Smt.Theories.$wgo5
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt2)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt2)
-                        0#
-                        z1
-                   Data.HashMap.Base.Collision dt2 dt3
-                   -> Language.Fixpoint.Smt.Theories.$wgo4
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt3)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Names.Symbol
-                                Language.Fixpoint.Types.Sorts.Sort)
-                           dt3)
-                        0#
-                        z1 }) -}
-75887ec43b78ed06cb3bd297eb02dc2d
-  theorySymbols ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (Language.Fixpoint.Types.Refinements.$dmsubst2
-                   @ Language.Fixpoint.Smt.Types.TheorySymbol
-                   Language.Fixpoint.Smt.Theories.theorySymbols1
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Smt.Types.TheorySymbol)) -}
-da9eb717cad6ddcd3d717fa98666cb44
-  theorySymbols1 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Smt.Types.TheorySymbol)
-                   Language.Fixpoint.Smt.Theories.theorySymbols22
-                   Language.Fixpoint.Smt.Theories.theorySymbols2) -}
-cedc40bc0febd39caf31074fa783f272
-  theorySymbols10 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Types.Sorts.intSort
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-09a4bf5a724233badceee1ff212df4cc
-  theorySymbols11 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Smt.Types.TheorySymbol)
-  {- Unfolding: ((Language.Fixpoint.Types.Names.realToIntName,
-                  Language.Fixpoint.Smt.Theories.theorySymbols12)) -}
-a8ed76e1ff219dadfaf5cbe218685572
-  theorySymbols12 :: Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.realToIntName of dt2 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ipv2 of wild { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 case case dt5 of wild1 {
-                        DEFAULT
-                        -> Data.Text.Internal.Lazy.Chunk
-                             dt3
-                             dt4
-                             wild1
-                             Data.Text.Internal.Lazy.Empty
-                        0# -> Data.Text.Internal.Lazy.Empty } of dt6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.realSort of dt7 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.intSort of dt8 { DEFAULT ->
-                 Language.Fixpoint.Smt.Types.Thy
-                   dt2
-                   dt6
-                   Language.Fixpoint.Smt.Theories.theorySymbols13
-                   GHC.Types.False } } } } }) -}
-dc000b18fb14b7ea698ff25f36306e80
-  theorySymbols13 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Types.Sorts.realSort
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-73ac42a43a2ba4ded9d3f8ce2076759e
-  theorySymbols14 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Smt.Types.TheorySymbol)
-  {- Unfolding: ((Language.Fixpoint.Types.Names.mapToIntName,
-                  Language.Fixpoint.Smt.Theories.theorySymbols15)) -}
-c7fc45ed5d9c1a36ae40e876f73a8158
-  theorySymbols15 :: Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.mapToIntName of dt2 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ipv2 of wild { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 case case dt5 of wild1 {
-                        DEFAULT
-                        -> Data.Text.Internal.Lazy.Chunk
-                             dt3
-                             dt4
-                             wild1
-                             Data.Text.Internal.Lazy.Empty
-                        0# -> Data.Text.Internal.Lazy.Empty } of dt6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.mapSort1 of dt7 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.intSort of dt8 { DEFAULT ->
-                 Language.Fixpoint.Smt.Types.Thy
-                   dt2
-                   dt6
-                   Language.Fixpoint.Smt.Theories.theorySymbols16
-                   GHC.Types.False } } } } }) -}
-a2ba12c26a549d639717a17fb5860ed4
-  theorySymbols16 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Smt.Theories.theorySymbols17
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-2c130e1d2187c83c73fb1e37046fa2ef
-  theorySymbols17 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FApp
-                   Language.Fixpoint.Smt.Theories.theorySymbols18
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-d1a293da7c6525013235e91630871054
-  theorySymbols18 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FApp
-                   Language.Fixpoint.Types.Sorts.mapSort1
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-b4a076f3f428f6f8de85c03bec7e7e89
-  theorySymbols19 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Smt.Types.TheorySymbol)
-  {- Unfolding: ((Language.Fixpoint.Types.Names.bitVecToIntName,
-                  Language.Fixpoint.Smt.Theories.theorySymbols20)) -}
-c987cff6623b1d31a3bcab56fb2e1616
-  theorySymbols2 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Smt.Types.TheorySymbol)
-                   Language.Fixpoint.Smt.Theories.theorySymbols19
-                   Language.Fixpoint.Smt.Theories.theorySymbols3) -}
-b7bc18e54d3a31a1a040f4981d099572
-  theorySymbols20 :: Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.bitVecToIntName of dt2 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ipv2 of wild { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 case case dt5 of wild1 {
-                        DEFAULT
-                        -> Data.Text.Internal.Lazy.Chunk
-                             dt3
-                             dt4
-                             wild1
-                             Data.Text.Internal.Lazy.Empty
-                        0# -> Data.Text.Internal.Lazy.Empty } of dt6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.bitVecSort of dt7 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.intSort of dt8 { DEFAULT ->
-                 Language.Fixpoint.Smt.Types.Thy
-                   dt2
-                   dt6
-                   Language.Fixpoint.Smt.Theories.theorySymbols21
-                   GHC.Types.False } } } } }) -}
-20d01d5a146aa0c554183abd12060e94
-  theorySymbols21 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Types.Sorts.bitVecSort
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-06b0047608602e2fdc178f58d287b6df
-  theorySymbols22 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Smt.Types.TheorySymbol)
-  {- Unfolding: ((Language.Fixpoint.Types.Names.setToIntName,
-                  Language.Fixpoint.Smt.Theories.theorySymbols23)) -}
-6972ea4202b350dfc6c5aefcb958ed25
-  theorySymbols23 :: Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.setToIntName of dt2 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ipv2 of wild { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 case case dt5 of wild1 {
-                        DEFAULT
-                        -> Data.Text.Internal.Lazy.Chunk
-                             dt3
-                             dt4
-                             wild1
-                             Data.Text.Internal.Lazy.Empty
-                        0# -> Data.Text.Internal.Lazy.Empty } of dt6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.intSort of dt7 { DEFAULT ->
-                 Language.Fixpoint.Smt.Types.Thy
-                   dt2
-                   dt6
-                   Language.Fixpoint.Smt.Theories.theorySymbols24
-                   GHC.Types.False } } } }) -}
-b3435a5eac0286219938d886af9f4255
-  theorySymbols24 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Smt.Theories.theorySymbols25
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-241e6f4c54daad227c95f72b043affbc
-  theorySymbols25 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FApp
-                   Language.Fixpoint.Types.Sorts.setSort1
-                   Language.Fixpoint.Types.Sorts.intSort) -}
-7ad2ad6c6f86b15c1a0df5e881e54c55
-  theorySymbols3 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Smt.Types.TheorySymbol)
-                   Language.Fixpoint.Smt.Theories.theorySymbols14
-                   Language.Fixpoint.Smt.Theories.theorySymbols4) -}
-1a2e6798bc5373fc2986e9818391905e
-  theorySymbols4 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Smt.Types.TheorySymbol)
-                   Language.Fixpoint.Smt.Theories.theorySymbols11
-                   Language.Fixpoint.Smt.Theories.theorySymbols5) -}
-2dc68d41d5a531d0488de331ac309ba9
-  theorySymbols5 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Smt.Types.TheorySymbol)
-                   Language.Fixpoint.Smt.Theories.theorySymbols7
-                   Language.Fixpoint.Smt.Theories.theorySymbols6) -}
-96810ac69ea31af98061e79538db474c
-  theorySymbols6 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Unfolding: (Language.Fixpoint.Smt.Theories.theorySymbols_go
-                   1#) -}
-ec0b8cc9dfafcf43ec0c9d2ae3c42811
-  theorySymbols7 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Smt.Types.TheorySymbol)
-  {- Unfolding: ((Language.Fixpoint.Types.Names.lambdaName,
-                  Language.Fixpoint.Smt.Theories.theorySymbols8)) -}
-9ff3e1b1e5489603da6d40d067b51652
-  theorySymbols8 :: Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.lambdaName of dt2 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ipv2 of wild { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 case case dt5 of wild1 {
-                        DEFAULT
-                        -> Data.Text.Internal.Lazy.Chunk
-                             dt3
-                             dt4
-                             wild1
-                             Data.Text.Internal.Lazy.Empty
-                        0# -> Data.Text.Internal.Lazy.Empty } of dt6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Sorts.intSort of dt7 { DEFAULT ->
-                 Language.Fixpoint.Smt.Types.Thy
-                   dt2
-                   dt6
-                   Language.Fixpoint.Smt.Theories.theorySymbols9
-                   GHC.Types.False } } } }) -}
-66dc981ae53e08ec4d594efba4b8fbfa
-  theorySymbols9 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (Language.Fixpoint.Types.Sorts.FFunc
-                   Language.Fixpoint.Types.Sorts.intSort
-                   Language.Fixpoint.Smt.Theories.theorySymbols10) -}
-0f1eacda63f998ba807c4c54958fccb8
-  theorySymbols_go ::
-    GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Smt.Types.TheorySymbol)]
-  {- Arity: 1, Strictness: <L,U> -}
-401d5dfabf5419bc774ce2c83dfda7bb
-  toInt ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <S,1*U><S,U> -}
-"SPEC/Language.Fixpoint.Smt.Theories boolToIntName @ Symbol" [ALWAYS] forall ($dIsString :: Data.String.IsString
-                                                                                              Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Names.boolToIntName @ Language.Fixpoint.Types.Names.Symbol
-                                              $dIsString
-  = Language.Fixpoint.Smt.Theories.$sboolToIntName1
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Types.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Types.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Smt/Types.dump-hi
+++ /dev/null
@@ -1,1850 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:40.390895 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Types 8002
-  interface hash: bb05bdd78871ce8df8467c39a0ed8c34
-  ABI hash: c32f4046d289f1736e5eb4fe5760ced2
-  export-list hash: c7b078aa1030bf306e2bdc4ea4060c3a
-  orphan hash: 3428a9223320f328a9c018238d55dc32
-  flag hash: 698aab66169d3d947595688450a5849e
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Smt.Types.runSmt2
-  Language.Fixpoint.Smt.Types.symbolBuilder
-  Language.Fixpoint.Smt.Types.Command{Language.Fixpoint.Smt.Types.Assert Language.Fixpoint.Smt.Types.AssertAxiom Language.Fixpoint.Smt.Types.CMany Language.Fixpoint.Smt.Types.CheckSat Language.Fixpoint.Smt.Types.Declare Language.Fixpoint.Smt.Types.Define Language.Fixpoint.Smt.Types.Distinct Language.Fixpoint.Smt.Types.GetValue Language.Fixpoint.Smt.Types.Pop Language.Fixpoint.Smt.Types.Push}
-  Language.Fixpoint.Smt.Types.Context{Language.Fixpoint.Smt.Types.Ctx ctxAeq ctxBeq ctxCin ctxCout ctxExt ctxLog ctxNorm ctxPid ctxSmtEnv ctxVerbose}
-  Language.Fixpoint.Smt.Types.Raw
-  Language.Fixpoint.Smt.Types.Response{Language.Fixpoint.Smt.Types.Error Language.Fixpoint.Smt.Types.Ok Language.Fixpoint.Smt.Types.Sat Language.Fixpoint.Smt.Types.Unknown Language.Fixpoint.Smt.Types.Unsat Language.Fixpoint.Smt.Types.Values}
-  Language.Fixpoint.Smt.Types.SMTEnv
-  Language.Fixpoint.Smt.Types.SMTLIB2{Language.Fixpoint.Smt.Types.smt2}
-  Language.Fixpoint.Smt.Types.TheorySymbol{Language.Fixpoint.Smt.Types.Thy tsInterp tsRaw tsSort tsSym}
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.IO.Handle.Types 17aa0e2ab137800e3a31992d780c071f
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  SEnv ae9741409aa049333ef008f3802cfecf
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  symbolSafeText 526a21b244d2aaefeee84da8dfb69719
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  process-1.4.3.0@process-1.4.3.0:System.Process 1ee59b956b7cad68338d3f6ab3e772ed
-import  -/  process-1.4.3.0@process-1.4.3.0:System.Process.Common 91d400dd956c927d3667a213daaee8f0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal a2f6f66c5bb1247458d9fa25257ab188
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Builder cac246c99e360c04405d7258721e6f9e
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal.Lazy 1efb735dc8fcde46f3a3e88605ea2067
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy 547b2cb8d74b3b03ee583c506a59422a
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy.Builder 12f4026fc6128435b48f92178aec364b
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fEqCommand :: GHC.Classes.Eq Language.Fixpoint.Smt.Types.Command
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Command
-                  Language.Fixpoint.Smt.Types.$fEqCommand_$c==
-                  Language.Fixpoint.Smt.Types.$fEqCommand_$c/= -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fEqCommand_$c/= ::
-    Language.Fixpoint.Smt.Types.Command
-    -> Language.Fixpoint.Smt.Types.Command -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Smt.Types.Command)
-                   (b :: Language.Fixpoint.Smt.Types.Command) ->
-                 case Language.Fixpoint.Smt.Types.$fEqCommand_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fEqCommand_$c== ::
-    Language.Fixpoint.Smt.Types.Command
-    -> Language.Fixpoint.Smt.Types.Command -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U> -}
-69caaef2199611670928811187028369
-  $fEqResponse :: GHC.Classes.Eq Language.Fixpoint.Smt.Types.Response
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Response
-                  Language.Fixpoint.Smt.Types.$fEqResponse_$c==
-                  Language.Fixpoint.Smt.Types.$fEqResponse_$c/= -}
-69caaef2199611670928811187028369
-  $fEqResponse_$c/= ::
-    Language.Fixpoint.Smt.Types.Response
-    -> Language.Fixpoint.Smt.Types.Response -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Types.Response)
-                   (b :: Language.Fixpoint.Smt.Types.Response) ->
-                 case Language.Fixpoint.Smt.Types.$fEqResponse_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-69caaef2199611670928811187028369
-  $fEqResponse_$c== ::
-    Language.Fixpoint.Smt.Types.Response
-    -> Language.Fixpoint.Smt.Types.Response -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Smt.Types.Response)
-                   (ds1 :: Language.Fixpoint.Smt.Types.Response) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Types.Ok
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Ok -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Types.Sat
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Sat -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Types.Unsat
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Unsat -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Types.Unknown
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Unknown -> GHC.Types.True }
-                   Language.Fixpoint.Smt.Types.Values a1
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Values b1
-                        -> GHC.Classes.$fEq[]_$c==
-                             @ (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-                             Language.Fixpoint.Smt.Types.$fEqResponse_$s$fEq(,)
-                             a1
-                             b1 }
-                   Language.Fixpoint.Smt.Types.Error a1
-                   -> case a1 of wild1 { Data.Text.Internal.Text dt dt1 dt2 ->
-                      case ds1 of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Smt.Types.Error b1
-                        -> case b1 of wild3 { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt2 dt5) of wild4 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case {__pkg_ccall text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR _hs_text_memcmp GHC.Prim.ByteArray#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.ByteArray#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.State#
-                                                                                                                        GHC.Prim.RealWorld
-                                                                                                                   -> (# GHC.Prim.State#
-                                                                                                                           GHC.Prim.RealWorld,
-                                                                                                                         GHC.Prim.Int# #)}
-                                       dt
-                                       (GHC.Prim.int2Word# dt1)
-                                       dt3
-                                       (GHC.Prim.int2Word# dt4)
-                                       (GHC.Prim.int2Word# dt2)
-                                       GHC.Prim.realWorld# of wild5 { (#,#) ds11 ds12 ->
-                                case GHC.Prim.narrow32Int# ds12 of wild6 {
-                                  DEFAULT -> GHC.Types.False 0# -> GHC.Types.True } } } } } } }) -}
-d609f644f514681efbf29a124b3863f0
-  $fEqResponse_$s$fEq(,) ::
-    GHC.Classes.Eq
-      (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-                  (GHC.Classes.$fEq(,)_$c==
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Data.Text.Internal.Text
-                     Language.Fixpoint.Types.Names.$fEqSymbol
-                     Data.Text.$fEqText)
-                  (GHC.Classes.$fEq(,)_$c/=
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Data.Text.Internal.Text
-                     Language.Fixpoint.Types.Names.$fEqSymbol
-                     Data.Text.$fEqText) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fEqTheorySymbol ::
-    GHC.Classes.Eq Language.Fixpoint.Smt.Types.TheorySymbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.TheorySymbol
-                  Language.Fixpoint.Smt.Types.$fEqTheorySymbol_$c==
-                  Language.Fixpoint.Smt.Types.$fEqTheorySymbol_$c/= -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fEqTheorySymbol_$c/= ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (b :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case Language.Fixpoint.Smt.Types.$fEqTheorySymbol_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fEqTheorySymbol_$c== ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww6 ww15) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case Data.Text.Lazy.equal ww2 ww11 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                  ww3
-                                  ww12 of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case ww4 of wild3 {
-                                  GHC.Types.False
-                                  -> case ww13 of wild4 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True -> GHC.Types.False }
-                                  GHC.Types.True -> ww13 } } } } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol ::
-    GHC.Classes.Ord Language.Fixpoint.Smt.Types.TheorySymbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.TheorySymbol
-                  Language.Fixpoint.Smt.Types.$fEqTheorySymbol
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$ccompare
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c<
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c<=
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c>
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c>=
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$cmax
-                  Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$cmin -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$c< ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww6 ww15) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww6 ww15) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case Data.Text.Lazy.compareText ww2 ww11 of wild2 {
-                             GHC.Types.LT -> GHC.Types.True
-                             GHC.Types.EQ
-                             -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                       ww3
-                                       ww12 of wild3 {
-                                  GHC.Types.LT -> GHC.Types.True
-                                  GHC.Types.EQ
-                                  -> case ww4 of wild4 {
-                                       GHC.Types.False -> ww13 GHC.Types.True -> GHC.Types.False }
-                                  GHC.Types.GT -> GHC.Types.False }
-                             GHC.Types.GT -> GHC.Types.False } }
-                   GHC.Types.True -> GHC.Types.True } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$c<= ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww6 ww15) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww6 ww15) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case Data.Text.Lazy.compareText ww2 ww11 of wild2 {
-                             GHC.Types.LT -> GHC.Types.True
-                             GHC.Types.EQ
-                             -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                       ww3
-                                       ww12 of wild3 {
-                                  GHC.Types.LT -> GHC.Types.True
-                                  GHC.Types.EQ
-                                  -> case ww4 of wild4 {
-                                       GHC.Types.False -> GHC.Types.True GHC.Types.True -> ww13 }
-                                  GHC.Types.GT -> GHC.Types.False }
-                             GHC.Types.GT -> GHC.Types.False } }
-                   GHC.Types.True -> GHC.Types.True } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$c> ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww6 ww15) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww6 ww15) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case Data.Text.Lazy.compareText ww2 ww11 of wild2 {
-                             GHC.Types.LT -> GHC.Types.False
-                             GHC.Types.EQ
-                             -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                       ww3
-                                       ww12 of wild3 {
-                                  GHC.Types.LT -> GHC.Types.False
-                                  GHC.Types.EQ
-                                  -> case ww4 of wild4 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case ww13 of wild5 {
-                                            GHC.Types.False -> GHC.Types.True
-                                            GHC.Types.True -> GHC.Types.False } }
-                                  GHC.Types.GT -> GHC.Types.True }
-                             GHC.Types.GT -> GHC.Types.True } }
-                   GHC.Types.True -> GHC.Types.False } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$c>= ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww6 ww15) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww6 ww15) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case Data.Text.Lazy.compareText ww2 ww11 of wild2 {
-                             GHC.Types.LT -> GHC.Types.False
-                             GHC.Types.EQ
-                             -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                       ww3
-                                       ww12 of wild3 {
-                                  GHC.Types.LT -> GHC.Types.False
-                                  GHC.Types.EQ
-                                  -> case ww4 of wild4 {
-                                       GHC.Types.False
-                                       -> case ww13 of wild5 {
-                                            GHC.Types.False -> GHC.Types.True
-                                            GHC.Types.True -> GHC.Types.False }
-                                       GHC.Types.True -> GHC.Types.True }
-                                  GHC.Types.GT -> GHC.Types.True }
-                             GHC.Types.GT -> GHC.Types.True } }
-                   GHC.Types.True -> GHC.Types.False } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$ccompare ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)><S(S(SLL)SSS),1*U(U(U,A,A),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Smt.Types.Thy ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww6 ww15) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww6 ww15) of wild1 {
-                        GHC.Types.False -> GHC.Types.GT
-                        GHC.Types.True
-                        -> case Data.Text.Lazy.compareText ww2 ww11 of wild2 {
-                             GHC.Types.LT -> GHC.Types.LT
-                             GHC.Types.EQ
-                             -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                       ww3
-                                       ww12 of wild3 {
-                                  GHC.Types.LT -> GHC.Types.LT
-                                  GHC.Types.EQ
-                                  -> case ww4 of wild4 {
-                                       GHC.Types.False
-                                       -> case ww13 of wild5 {
-                                            GHC.Types.False -> GHC.Types.EQ
-                                            GHC.Types.True -> GHC.Types.LT }
-                                       GHC.Types.True
-                                       -> case ww13 of wild5 {
-                                            GHC.Types.False -> GHC.Types.GT
-                                            GHC.Types.True -> GHC.Types.EQ } }
-                                  GHC.Types.GT -> GHC.Types.GT }
-                             GHC.Types.GT -> GHC.Types.GT } }
-                   GHC.Types.True -> GHC.Types.LT } } } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$cmax ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),U(U(U,U,U),U,U,U)><S(S(SLL)SSS),U(U(U,U,U),U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (y :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fOrdTheorySymbol_$cmin ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)SSS),U(U(U,U,U),U,U,U)><S(S(SLL)SSS),U(U(U,U,U),U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (y :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case Language.Fixpoint.Smt.Types.$fOrdTheorySymbol_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fPPrintCommand ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Smt.Types.Command
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Command
-                  Language.Fixpoint.Smt.Types.$fPPrintCommand_$cpprintTidy
-                  Language.Fixpoint.Smt.Types.$fPPrintCommand_$cpprintPrec -}
-39157684e8c02c056850756047532c3e
-  $fPPrintCommand1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-f7ef2ea4494c166b0c5b41813edb97e2
-  $fPPrintCommand10 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s4) -}
-5510805068742da7d236d21fb2ef6254
-  $fPPrintCommand11 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s5
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand12
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-1141526be2ed7a3ccd5daedb4be2ac48
-  $fPPrintCommand12 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s5) -}
-4d459a2db20f4361cf7890bf505038fa
-  $fPPrintCommand13 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s6
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand14
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-9958856646a55f0c62d0e7d0aea78db5
-  $fPPrintCommand14 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s6) -}
-53fffcf6152befac7e654e006612e632
-  $fPPrintCommand15 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s7
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand16
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-efe17dfe033f42d95cf4c93a59dbbf48
-  $fPPrintCommand16 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s7) -}
-f1e649bfa195837422abf8a426ffe2ed
-  $fPPrintCommand17 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s8
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand18
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-df7e192a5f2c10ed4f608242bea45427
-  $fPPrintCommand18 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s8) -}
-0520fc763e6ea2eae1071a1591e1a845
-  $fPPrintCommand19 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s9
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand20
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ab81382f83b744fd773146e60026c23c
-  $fPPrintCommand2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s) -}
-c32b381e55fd83ee6ab6483433345580
-  $fPPrintCommand20 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s9) -}
-f1175c806db9b3edb58510a87104108b
-  $fPPrintCommand3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-cd81a6a948e1d207dabeee31eb301dc1
-  $fPPrintCommand4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s1) -}
-7267580cfc1c2f7e9d04cba3cdc30ba8
-  $fPPrintCommand5 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand6
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-7456282c05d058cf52db0761dbca11fc
-  $fPPrintCommand6 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s2) -}
-e024c9754e6aee65babd5458f22e7755
-  $fPPrintCommand7 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s3
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand8
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-7eb60643664f030a8a563a6ed1fb0088
-  $fPPrintCommand8 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Smt.Types.$fPPrintCommand_s3) -}
-63c0fa894565cec3d31979c2e5299a22
-  $fPPrintCommand9 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fPPrintCommand_s4
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Smt.Types.$fPPrintCommand10
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fPPrintCommand_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Smt.Types.Command
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Smt.Types.$fPPrintCommand_$cpprintTidy eta) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fPPrintCommand_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Smt.Types.Command
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Smt.Types.Command) ->
-                 Language.Fixpoint.Smt.Types.ppCmd eta) -}
-8e0945c4527a864a780310f270df5366
-  $fPPrintCommand_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "CMany ..."#) -}
-84728b8f2385c92b94086e22dd077c34
-  $fPPrintCommand_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "GetValue ..."#) -}
-b0afd7a931e3cb10920f7eca0ba82f79
-  $fPPrintCommand_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Distinct ..."#) -}
-7194676ac69aad55d7838626ce6c66e4
-  $fPPrintCommand_s3 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "AssertAxiom ..."#) -}
-32c3b1b97fc54049c64a65552dc75fe6
-  $fPPrintCommand_s4 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Assert"#) -}
-f5620e5b8b85f78227877b91b5e383bc
-  $fPPrintCommand_s5 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Define ..."#) -}
-37f408a73094eb3bacc8d1a67e13f861
-  $fPPrintCommand_s6 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Declare ..."#) -}
-365f2ddfc56515c96c02dc3f2cb2e5bd
-  $fPPrintCommand_s7 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "CheckSat"#) -}
-fa7aad66ccbd145adc6ec4e6423c8b8f
-  $fPPrintCommand_s8 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Pop"#) -}
-f36ccad7d303efb9edb79b74c23390ab
-  $fPPrintCommand_s9 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Push"#) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fShowCommand :: GHC.Show.Show Language.Fixpoint.Smt.Types.Command
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Command
-                  Language.Fixpoint.Smt.Types.$fShowCommand_$cshowsPrec
-                  Language.Fixpoint.Smt.Types.$fShowCommand_$cshow
-                  Language.Fixpoint.Smt.Types.$fShowCommand_$cshowList -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fShowCommand1 ::
-    Language.Fixpoint.Smt.Types.Command -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Smt.Types.$fShowCommand_$cshowsPrec
-                   Language.Fixpoint.Smt.Types.$fShowCommand2) -}
-0162d3bb14fb908c4cd3ed7cc4f7293c
-  $fShowCommand2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fShowCommand_$cshow ::
-    Language.Fixpoint.Smt.Types.Command -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Types.Command) ->
-                 Language.Fixpoint.Smt.Types.$fShowCommand_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fShowCommand_$cshowList ::
-    [Language.Fixpoint.Smt.Types.Command] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Smt.Types.Command
-                   Language.Fixpoint.Smt.Types.$fShowCommand1) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  $fShowCommand_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Smt.Types.Command -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <L,1*U(U)><S,1*U> -}
-69caaef2199611670928811187028369
-  $fShowResponse ::
-    GHC.Show.Show Language.Fixpoint.Smt.Types.Response
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.Response
-                  Language.Fixpoint.Smt.Types.$fShowResponse_$cshowsPrec
-                  Language.Fixpoint.Smt.Types.$fShowResponse_$cshow
-                  Language.Fixpoint.Smt.Types.$fShowResponse_$cshowList -}
-69caaef2199611670928811187028369
-  $fShowResponse1 ::
-    Language.Fixpoint.Smt.Types.Response -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Smt.Types.$fShowResponse_$cshowsPrec
-                   Language.Fixpoint.Smt.Types.$fShowCommand2) -}
-0664f047a66ecc5859f38b60e56a3c19
-  $fShowResponse2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Error "#) -}
-3e1a6a6fdee4c611ef3e97d401f97ae3
-  $fShowResponse3 ::
-    (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (w3 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Data.Text.Internal.Text))
-                   (w4 :: GHC.Base.String)[OneShot] ->
-                 case w3 of ww { (,) ww1 ww2 ->
-                 GHC.Types.:
-                   @ GHC.Types.Char
-                   GHC.Show.shows7
-                   (let {
-                      z :: GHC.Base.String
-                      = GHC.Show.$fShow(,)_$sgo
-                          (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w4)
-                          (\ (w2 :: GHC.Base.String) ->
-                           case Data.Text.Show.$w$cshowsPrec ww2 w2 of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 })
-                          (GHC.Types.[] @ GHC.Show.ShowS)
-                    } in
-                    let {
-                      z1 :: [GHC.Types.Char]
-                      = GHC.Types.: @ GHC.Types.Char GHC.Show.shows5 z
-                    } in
-                    letrec {
-                      go :: [GHC.Types.Char] -> [GHC.Types.Char]
-                        {- Arity: 1, Strictness: <S,1*U> -}
-                      = \ (ds :: [GHC.Types.Char]) ->
-                        case ds of wild {
-                          [] -> z1 : y ys -> GHC.Types.: @ GHC.Types.Char y (go ys) }
-                    } in
-                    go (Language.Fixpoint.Types.Names.$fShowSymbol_$cshow ww1)) }) -}
-72cc46581d7b3e0bde429290c22a8ac5
-  $fShowResponse4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Values "#) -}
-05264dbc20590031dd796d607d0ca43e
-  $fShowResponse5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Unknown"#) -}
-459d612590c144361ef3624fa30a6cc7
-  $fShowResponse6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Unsat"#) -}
-e0d860537d84980c2d66bc4214ebba62
-  $fShowResponse7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Sat"#) -}
-dbaadba898eef0c4ba17ed0211fa900b
-  $fShowResponse8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Ok"#) -}
-69caaef2199611670928811187028369
-  $fShowResponse_$cshow ::
-    Language.Fixpoint.Smt.Types.Response -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Smt.Types.Response) ->
-                 case x of wild {
-                   Language.Fixpoint.Smt.Types.Ok
-                   -> Language.Fixpoint.Smt.Types.$fShowResponse8
-                   Language.Fixpoint.Smt.Types.Sat
-                   -> Language.Fixpoint.Smt.Types.$fShowResponse7
-                   Language.Fixpoint.Smt.Types.Unsat
-                   -> Language.Fixpoint.Smt.Types.$fShowResponse6
-                   Language.Fixpoint.Smt.Types.Unknown
-                   -> Language.Fixpoint.Smt.Types.$fShowResponse5
-                   Language.Fixpoint.Smt.Types.Values b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse4
-                        (GHC.Show.showList__
-                           @ (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-                           Language.Fixpoint.Smt.Types.$fShowResponse3
-                           b1
-                           (GHC.Types.[] @ GHC.Types.Char))
-                   Language.Fixpoint.Smt.Types.Error b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse2
-                        (case Data.Text.Show.$w$cshowsPrec
-                                b1
-                                (GHC.Types.[] @ GHC.Types.Char) of ww { (#,#) ww1 ww2 ->
-                         GHC.Types.: @ GHC.Types.Char ww1 ww2 }) }) -}
-69caaef2199611670928811187028369
-  $fShowResponse_$cshowList ::
-    [Language.Fixpoint.Smt.Types.Response] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Smt.Types.Response
-                   Language.Fixpoint.Smt.Types.$fShowResponse1) -}
-69caaef2199611670928811187028369
-  $fShowResponse_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Smt.Types.Response -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(U)><S,1*U><L,U>,
-     Unfolding: (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Smt.Types.Response)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Smt.Types.Ok
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse8
-                        eta
-                   Language.Fixpoint.Smt.Types.Sat
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse7
-                        eta
-                   Language.Fixpoint.Smt.Types.Unsat
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse6
-                        eta
-                   Language.Fixpoint.Smt.Types.Unknown
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Smt.Types.$fShowResponse5
-                        eta
-                   Language.Fixpoint.Smt.Types.Values b1
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Smt.Types.$fShowResponse4
-                             (GHC.Show.showList__
-                                @ (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-                                Language.Fixpoint.Smt.Types.$fShowResponse3
-                                b1
-                                eta)
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Smt.Types.$fShowResponse4
-                                (GHC.Show.showList__
-                                   @ (Language.Fixpoint.Types.Names.Symbol, Data.Text.Internal.Text)
-                                   Language.Fixpoint.Smt.Types.$fShowResponse3
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 eta))) } }
-                   Language.Fixpoint.Smt.Types.Error b1
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Smt.Types.$fShowResponse2
-                             (case Data.Text.Show.$w$cshowsPrec b1 eta of ww { (#,#) ww1 ww2 ->
-                              GHC.Types.: @ GHC.Types.Char ww1 ww2 })
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Smt.Types.$fShowResponse2
-                                (case Data.Text.Show.$w$cshowsPrec
-                                        b1
-                                        (GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.shows4
-                                           eta) of ww { (#,#) ww1 ww2 ->
-                                 GHC.Types.: @ GHC.Types.Char ww1 ww2 })) } } }) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fShowTheorySymbol ::
-    GHC.Show.Show Language.Fixpoint.Smt.Types.TheorySymbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Smt.Types.TheorySymbol
-                  Language.Fixpoint.Smt.Types.$fShowTheorySymbol_$cshowsPrec
-                  Language.Fixpoint.Smt.Types.$fShowTheorySymbol_$cshow
-                  Language.Fixpoint.Smt.Types.$fShowTheorySymbol_$cshowList -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fShowTheorySymbol1 ::
-    Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Smt.Types.Thy ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 Language.Fixpoint.Smt.Types.$w$cshowsPrec
-                   0#
-                   ww7
-                   ww2
-                   ww3
-                   ww4
-                   w1 } }) -}
-8ef3527ab1ea0e43eab64b783732c3f0
-  $fShowTheorySymbol2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-510159eac2cf408284d28bb84b2f308c
-  $fShowTheorySymbol3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tsInterp = "#) -}
-9bbdac1c2103c67a11d912715dc26aeb
-  $fShowTheorySymbol4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tsSort = "#) -}
-9e230e7ac1b2570065b4695e7dfcc167
-  $fShowTheorySymbol5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tsRaw = "#) -}
-b939eb320415d99d354267f32e2964f2
-  $fShowTheorySymbol6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-be2955e2eefbe37f05f98eda30475816
-  $fShowTheorySymbol7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tsSym = "#) -}
-f5848be69182cd13af5a294de62cfdd4
-  $fShowTheorySymbol8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Thy {"#) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fShowTheorySymbol_$cshow ::
-    Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SSSS),1*U(U(A,U(U,U,U),A),U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 Language.Fixpoint.Smt.Types.$fShowTheorySymbol_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fShowTheorySymbol_$cshowList ::
-    [Language.Fixpoint.Smt.Types.TheorySymbol] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Smt.Types.TheorySymbol
-                   Language.Fixpoint.Smt.Types.$fShowTheorySymbol1) -}
-bf378816d4d2e3ad953968a4bd4cfd90
-  $fShowTheorySymbol_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S(SSSS),1*U(U(A,U(U,U,U),A),U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Smt.Types.TheorySymbol)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Smt.Types.Thy ww3 ww4 ww5 ww6 ->
-                 case ww3 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 Language.Fixpoint.Smt.Types.$w$cshowsPrec
-                   ww1
-                   ww9
-                   ww4
-                   ww5
-                   ww6
-                   w2 } } }) -}
-a19cc7377d9da9855aac1a721505bed8
-  $tc'Assert :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7646517497587169456##
-                   2638235116910156809##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Assert1) -}
-e913578c1167a95f8a910812167ae28b
-  $tc'Assert1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Assert"#) -}
-04e05af521ebe1d01032ee05eda9a65c
-  $tc'AssertAxiom :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5338834101009361582##
-                   6244937629631209109##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'AssertAxiom1) -}
-bb5d91737f321f85d56a9f3d2ae2a53c
-  $tc'AssertAxiom1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'AssertAxiom"#) -}
-71c177e9dd0e5f1c422b95549cf75a79
-  $tc'C:SMTLIB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:SMTLIB2"#) -}
-12f5ae6fcfcc053c42583121636691f9
-  $tc'C:SMTLIB2 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17471530098194504995##
-                   7971943939769523258##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'C:SMTLIB1) -}
-64e658b23ea7423598c9af07460843ff
-  $tc'CMany :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4339582317893657944##
-                   1443890200307207126##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'CMany1) -}
-ed2dc6d5745a54179ef05a588e951a2a
-  $tc'CMany1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CMany"#) -}
-49409942f68658e2a2ff8e8929dd887c
-  $tc'CheckSat :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11790667888281887550##
-                   14928580404455865462##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'CheckSat1) -}
-024c04b3be750750b256d79d9424f35d
-  $tc'CheckSat1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CheckSat"#) -}
-81494bb96b01cb73ac0482a7a6ead46f
-  $tc'Ctx :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10873830437667306282##
-                   9404336236517911901##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Ctx1) -}
-ebd033c826bbe05c8411560fc3bb74af
-  $tc'Ctx1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Ctx"#) -}
-f8f42ba88a566bc9fc9f45f74275ae1a
-  $tc'Declare :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16063869697118573165##
-                   9214784370366865045##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Declare1) -}
-e0de604c54f752eb79ff2e873db2c3c3
-  $tc'Declare1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Declare"#) -}
-a5a3bda364e315a7674aed2c421483dd
-  $tc'Define :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14314574244802703669##
-                   12207976536559940537##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Define1) -}
-e68be3cdb07f45c122e8f13a35692536
-  $tc'Define1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Define"#) -}
-43848f6a6067e9a18f6d4e633d6e8be8
-  $tc'Distinct :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18396244657940971175##
-                   958992108072631630##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Distinct1) -}
-e000bc996077aeb83dea48982fe6062e
-  $tc'Distinct1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Distinct"#) -}
-b25283c8a3cf16f76a3937f59b339eda
-  $tc'Error :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3414761003746388482##
-                   2588314340739727280##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Error1) -}
-2f301cdce81934bc478e60fbfc23b097
-  $tc'Error1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Error"#) -}
-f2866300dbe26283c836e6ef1ce548af
-  $tc'GetValue :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6229548257865727376##
-                   18027866699471927600##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'GetValue1) -}
-d223d75d16a559e1567826d23c7abf6e
-  $tc'GetValue1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GetValue"#) -}
-17a51d7a30915e216a8820656165c676
-  $tc'Ok :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16413301699151179343##
-                   4398720388226577207##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Ok1) -}
-63185aa39e2e4d8aa852a8a702b69db1
-  $tc'Ok1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Ok"#) -}
-e542dc5d630c8b5a78cdf7b23de27845
-  $tc'Pop :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8916774325844331735##
-                   14220069208286704297##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Pop1) -}
-b2ccdeda582d714bc66ac64993e2deb8
-  $tc'Pop1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Pop"#) -}
-a36be0daabff3b069dd69b5a8ef85c74
-  $tc'Push :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17547658335738568626##
-                   1351403010364425035##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Push1) -}
-c7182062359f2cc9ff6ac2490bb88057
-  $tc'Push1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Push"#) -}
-418b97e7d241940e286ce0de7f2fd534
-  $tc'Sat :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3105161677367117065##
-                   17762724630777649870##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Sat1) -}
-1e4597fbfaf07ffb30962ff98b09a917
-  $tc'Sat1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Sat"#) -}
-11601c728df360a5cb6f57a5fb29881e
-  $tc'Thy :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9969315774531482790##
-                   13384447903627473002##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Thy1) -}
-29b0f1e0738940b974aac7431c91f30f
-  $tc'Thy1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Thy"#) -}
-fa54b9b115376bc58c6185494a07d4f8
-  $tc'Unknown :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3594604687937193825##
-                   2087818510028425710##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Unknown1) -}
-09ea6baf8f625a3293110fa8c837df01
-  $tc'Unknown1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Unknown"#) -}
-b2735231c4fad40f68969aaab7b89e2f
-  $tc'Unsat :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17338262646092320043##
-                   8093791327687451641##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Unsat1) -}
-038c9b167719054760144f19bc80711f
-  $tc'Unsat1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Unsat"#) -}
-9ab78f3d6afe29660adfdfa58bb6b42d
-  $tc'Values :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16780225759448407611##
-                   6528140870345548741##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tc'Values1) -}
-6496d8141cd8f10a22e66f29fbc55b3f
-  $tc'Values1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Values"#) -}
-905ce37c92382d0baa67be5c084d1a42
-  $tcCommand :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   955291617643549650##
-                   2752411459095772936##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tcCommand1) -}
-1cd145a5ae15a17035cdd8ebfec41ec2
-  $tcCommand1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Command"#) -}
-33651ff15ff4b5f3e0f215fd0e2f538b
-  $tcContext :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12608033866672046178##
-                   12436906124840217668##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tcContext1) -}
-5064a4cd184c3eae8f8f3005e9f3b5d0
-  $tcContext1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Context"#) -}
-d82190fcecb978f4c5506d2b3bb8d219
-  $tcResponse :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16732961935054205881##
-                   6602974813027630114##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tcResponse1) -}
-60fb5051c72fa0c60488a869cd3fcf76
-  $tcResponse1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Response"#) -}
-cc6b92e311849f8a41ccddac0a702175
-  $tcSMTLIB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SMTLIB2"#) -}
-4f66495e52e157554007c44231e278df
-  $tcSMTLIB2 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17924265399739501223##
-                   14892441775412307268##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tcSMTLIB1) -}
-9d97be7dbec77208f5f1765caf461ce0
-  $tcTheorySymbol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18019092214266041074##
-                   1037972075000159215##
-                   Language.Fixpoint.Smt.Types.$trModule
-                   Language.Fixpoint.Smt.Types.$tcTheorySymbol1) -}
-a2825ced32e06b1fdaa6496f5ef88ddd
-  $tcTheorySymbol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "TheorySymbol"#) -}
-3590a7741cba47480f8df89aadec7ee8
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Smt.Types.$trModule2
-                   Language.Fixpoint.Smt.Types.$trModule1) -}
-ba71b681340bd1ce6de214fbedd06947
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Smt.Types"#) -}
-13e3b08f81b3cd048ac0f682b5f47d65
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-cb44337baff6c702bcd25aad3a0fa32a
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Smt.Types.Raw
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Types.Bool
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 6, Strictness: <S,U><L,U(U,U,U)><S,U><S,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Language.Fixpoint.Smt.Types.Raw)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww4 :: GHC.Types.Bool)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Smt.Types.$fShowTheorySymbol8
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Smt.Types.$fShowTheorySymbol7
-                          (case Data.Text.Show.$w$cshow ww1 of ww5 { (#,#) ww6 ww7 ->
-                           GHC.Base.++
-                             @ GHC.Types.Char
-                             (GHC.Types.: @ GHC.Types.Char ww6 ww7)
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Smt.Types.$fShowTheorySymbol6
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Smt.Types.$fShowTheorySymbol5
-                                   (GHC.Types.:
-                                      @ GHC.Types.Char
-                                      GHC.Show.shows6
-                                      (GHC.Show.showLitString
-                                         (Language.Fixpoint.Smt.Types.$wunfold ww2 0#)
-                                         (GHC.Types.:
-                                            @ GHC.Types.Char
-                                            GHC.Show.shows6
-                                            (GHC.Base.++
-                                               @ GHC.Types.Char
-                                               Language.Fixpoint.Smt.Types.$fShowTheorySymbol6
-                                               (GHC.Base.++
-                                                  @ GHC.Types.Char
-                                                  Language.Fixpoint.Smt.Types.$fShowTheorySymbol4
-                                                  (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                                                     Language.Fixpoint.Smt.Types.$fShowCommand2
-                                                     ww3
-                                                     (GHC.Base.++
-                                                        @ GHC.Types.Char
-                                                        Language.Fixpoint.Smt.Types.$fShowTheorySymbol6
-                                                        (GHC.Base.++
-                                                           @ GHC.Types.Char
-                                                           Language.Fixpoint.Smt.Types.$fShowTheorySymbol3
-                                                           (case ww4 of wild {
-                                                              GHC.Types.False
-                                                              -> GHC.Base.++
-                                                                   @ GHC.Types.Char
-                                                                   GHC.Show.shows18
-                                                                   (GHC.Base.++
-                                                                      @ GHC.Types.Char
-                                                                      Language.Fixpoint.Smt.Types.$fShowTheorySymbol2
-                                                                      x)
-                                                              GHC.Types.True
-                                                              -> GHC.Base.++
-                                                                   @ GHC.Types.Char
-                                                                   GHC.Show.shows17
-                                                                   (GHC.Base.++
-                                                                      @ GHC.Types.Char
-                                                                      Language.Fixpoint.Smt.Types.$fShowTheorySymbol2
-                                                                      x) }))))))))))) }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-91f98895306248dfbddabc7bbac8567a
-  $wsymbolBuilder ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.Prim.State# s
-       -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 6,
-     Strictness: <L,U><L,U><S,U><L,1*C1(C1(U(U,U)))><L,U(U,U,U,U)><S,U>,
-     Inline: [0] -}
-32b45b2ccb91a2f48e573390b3007d7c
-  $wunfold ::
-    Data.Text.Internal.Lazy.Text -> GHC.Prim.Int# -> [GHC.Types.Char]
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><L,U>, Inline: [0] -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  data Command
-    = Push
-    | Pop
-    | CheckSat
-    | Declare !Language.Fixpoint.Types.Names.Symbol
-              [Language.Fixpoint.Types.Sorts.Sort]
-              !Language.Fixpoint.Types.Sorts.Sort
-    | Define !Language.Fixpoint.Types.Sorts.Sort
-    | Assert !(GHC.Base.Maybe GHC.Types.Int)
-             !Language.Fixpoint.Types.Refinements.Expr
-    | AssertAxiom !(Language.Fixpoint.Types.Triggers.Triggered
-                      Language.Fixpoint.Types.Refinements.Expr)
-    | Distinct [Language.Fixpoint.Types.Refinements.Expr]
-    | GetValue [Language.Fixpoint.Types.Names.Symbol]
-    | CMany [Language.Fixpoint.Smt.Types.Command]
-a36b02023fe13e7352f35df5b8aec574
-  data Context
-    = Ctx {ctxPid :: !System.Process.Common.ProcessHandle,
-           ctxCin :: !GHC.IO.Handle.Types.Handle,
-           ctxCout :: !GHC.IO.Handle.Types.Handle,
-           ctxLog :: !GHC.Base.Maybe GHC.IO.Handle.Types.Handle,
-           ctxVerbose :: !GHC.Types.Bool,
-           ctxExt :: !GHC.Types.Bool,
-           ctxAeq :: !GHC.Types.Bool,
-           ctxBeq :: !GHC.Types.Bool,
-           ctxNorm :: !GHC.Types.Bool,
-           ctxSmtEnv :: !Language.Fixpoint.Smt.Types.SMTEnv}
-4dbb3c18cb680bd6d90733e0ee1bfc0d
-  type Raw = Data.Text.Internal.Lazy.Text
-69caaef2199611670928811187028369
-  data Response
-    = Ok
-    | Sat
-    | Unsat
-    | Unknown
-    | Values [(Language.Fixpoint.Types.Names.Symbol,
-               Data.Text.Internal.Text)]
-    | Error !Data.Text.Internal.Text
-c9661b8f1a8ff4bab1fc6adec4f11d6d
-  type SMTEnv =
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-18d805a1adc40f78e756a6fe5af3ce05
-  class SMTLIB2 a where
-    smt2 :: a -> Data.Text.Internal.Builder.Builder
-    {-# MINIMAL smt2 #-}
-bf378816d4d2e3ad953968a4bd4cfd90
-  data TheorySymbol
-    = Thy {tsSym :: !Language.Fixpoint.Types.Names.Symbol,
-           tsRaw :: !Language.Fixpoint.Smt.Types.Raw,
-           tsSort :: !Language.Fixpoint.Types.Sorts.Sort,
-           tsInterp :: !GHC.Types.Bool}
-cc99bad7ce2e4be67d00913a582c15be
-  ctxAeq :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLSLLL),1*U(A,A,A,A,A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds7 }) -}
-b5f271c2702e61d383382a64cd92e3f3
-  ctxBeq :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLSLL),1*U(A,A,A,A,A,A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds8 }) -}
-2f5f2c93743fea0442c26b266392baf4
-  ctxCin ::
-    Language.Fixpoint.Smt.Types.Context -> GHC.IO.Handle.Types.Handle
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLLL),1*U(A,U,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds2 }) -}
-c5ba788373464ca70406373e626a5341
-  ctxCout ::
-    Language.Fixpoint.Smt.Types.Context -> GHC.IO.Handle.Types.Handle
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLLLLL),1*U(A,A,U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds3 }) -}
-e9278b3fbe47a565d5b765b8966fb6b0
-  ctxExt :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSLLLL),1*U(A,A,A,A,A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds6 }) -}
-fd00c0782849ba8580be04cf11c79c7a
-  ctxLog ::
-    Language.Fixpoint.Smt.Types.Context
-    -> GHC.Base.Maybe GHC.IO.Handle.Types.Handle
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLLLLL),1*U(A,A,A,U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds4 }) -}
-4c59189e377760a8296bac6fae65ae47
-  ctxNorm :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLSL),1*U(A,A,A,A,A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds9 }) -}
-dd3cb33e296e59b5de6391e17bb7cf55
-  ctxPid ::
-    Language.Fixpoint.Smt.Types.Context
-    -> System.Process.Common.ProcessHandle
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLL),1*U(U(U,U),A,A,A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds1 }) -}
-e42736739b87fabca322a2144921f5ec
-  ctxSmtEnv ::
-    Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Smt.Types.SMTEnv
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLS),1*U(A,A,A,A,A,A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds10 }) -}
-b63b197944a17dc615100922efd41660
-  ctxVerbose :: Language.Fixpoint.Smt.Types.Context -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.Context
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLLLLL),1*U(A,A,A,A,U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.Context) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Ctx ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                 ds5 }) -}
-d954fc9c60b7cf5bf86d56c4438f43e0
-  ppCmd ::
-    Language.Fixpoint.Smt.Types.Command
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Smt.Types.Command) ->
-                 case ds of wild {
-                   Language.Fixpoint.Smt.Types.Push
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand19
-                   Language.Fixpoint.Smt.Types.Pop
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand17
-                   Language.Fixpoint.Smt.Types.CheckSat
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand15
-                   Language.Fixpoint.Smt.Types.Declare ds1 ds2 ds3
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand13
-                   Language.Fixpoint.Smt.Types.Define ds1
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand11
-                   Language.Fixpoint.Smt.Types.Assert ds1 e
-                   -> case (Language.Fixpoint.Types.Refinements.$w$cpprintPrec
-                              Language.Fixpoint.Types.PrettyPrint.pprint1
-                              e)
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Smt.Types.$fPPrintCommand9
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Smt.Types.$fPPrintCommand9 }
-                   Language.Fixpoint.Smt.Types.AssertAxiom ds1
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand7
-                   Language.Fixpoint.Smt.Types.Distinct ds1
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand5
-                   Language.Fixpoint.Smt.Types.GetValue ds1
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand3
-                   Language.Fixpoint.Smt.Types.CMany ds1
-                   -> Language.Fixpoint.Smt.Types.$fPPrintCommand1 }) -}
-1f64e1e86597d78d7dd04cdecc1d781f
-  runSmt2 ::
-    Language.Fixpoint.Smt.Types.SMTLIB2 a =>
-    a -> Data.Text.Internal.Builder.Builder
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Types.smt2 -}
-2dbc3980e0677471132464ef9a9bebd6
-  symbolBuilder ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Data.Text.Internal.Builder.Builder
-  {- Arity: 4,
-     Strictness: <S(LLS(LLS)),1*U(A,A,U(U,U,U))><L,1*C1(C1(U(U,U)))><L,U(U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Smt.Types.symbolBuilder1
-                  `cast`
-                (<Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R Trans
-                          (forall (s :: <*>_N).
-                           <Data.Text.Internal.Builder.Buffer s
-                            -> GHC.ST.ST s [Data.Text.Internal.Text]>_R
-                           ->_R <Data.Text.Internal.Builder.Buffer s>_R
-                           ->_R Sym (GHC.ST.N:ST[0] <s>_N <[Data.Text.Internal.Text]>_R))
-                          (Sym (Data.Text.Internal.Builder.N:Builder[0]))) -}
-77cb69c72233f44bba5e25bef9ce071d
-  symbolBuilder1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> forall s.
-       (Data.Text.Internal.Builder.Buffer s
-        -> GHC.ST.ST s [Data.Text.Internal.Text])
-       -> Data.Text.Internal.Builder.Buffer s
-       -> GHC.Prim.State# s
-       -> (# GHC.Prim.State# s, [Data.Text.Internal.Text] #)
-  {- Arity: 4,
-     Strictness: <S(LLS(LLS)),1*U(A,A,U(U,U,U))><L,1*C1(C1(U(U,U)))><L,U(U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   @ s
-                   (w1 :: Data.Text.Internal.Builder.Buffer s
-                          -> GHC.ST.ST s [Data.Text.Internal.Text])
-                   (w2 :: Data.Text.Internal.Builder.Buffer s)
-                   (w3 :: GHC.Prim.State# s)[OneShot] ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Smt.Types.$wsymbolBuilder
-                   ww5
-                   ww6
-                   ww7
-                   @ s
-                   w1
-                   w2
-                   w3 } }) -}
-24ddef8198d173b9c354715d113d90d3
-  tsInterp ::
-    Language.Fixpoint.Smt.Types.TheorySymbol -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Thy ds1 ds2 ds3 ds4 ->
-                 ds4 }) -}
-81314cbf37f35f2c183c633c2bb70302
-  tsRaw ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Smt.Types.Raw
-  RecSel Left Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLL),1*U(A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Thy ds1 ds2 ds3 ds4 ->
-                 ds2 }) -}
-e17bd4dd079da6f0eec82165ce44ff0c
-  tsSort ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Thy ds1 ds2 ds3 ds4 ->
-                 ds3 }) -}
-3c107ac01606a83ed2c8d201e4e29164
-  tsSym ::
-    Language.Fixpoint.Smt.Types.TheorySymbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Smt.Types.TheorySymbol
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLL),1*U(U(U,U,U),A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Smt.Types.TheorySymbol) ->
-                 case ds of wild { Language.Fixpoint.Smt.Types.Thy ds1 ds2 ds3 ds4 ->
-                 ds1 }) -}
-instance GHC.Classes.Eq [Language.Fixpoint.Smt.Types.Command]
-  = Language.Fixpoint.Smt.Types.$fEqCommand
-instance GHC.Classes.Eq [Language.Fixpoint.Smt.Types.Response]
-  = Language.Fixpoint.Smt.Types.$fEqResponse
-instance GHC.Classes.Eq [Language.Fixpoint.Smt.Types.TheorySymbol]
-  = Language.Fixpoint.Smt.Types.$fEqTheorySymbol
-instance GHC.Classes.Ord [Language.Fixpoint.Smt.Types.TheorySymbol]
-  = Language.Fixpoint.Smt.Types.$fOrdTheorySymbol
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Smt.Types.Command]
-  = Language.Fixpoint.Smt.Types.$fPPrintCommand
-instance GHC.Show.Show [Language.Fixpoint.Smt.Types.Command]
-  = Language.Fixpoint.Smt.Types.$fShowCommand
-instance GHC.Show.Show [Language.Fixpoint.Smt.Types.Response]
-  = Language.Fixpoint.Smt.Types.$fShowResponse
-instance GHC.Show.Show [Language.Fixpoint.Smt.Types.TheorySymbol]
-  = Language.Fixpoint.Smt.Types.$fShowTheorySymbol
-"SPEC/Language.Fixpoint.Smt.Types $fEq(,) @ Symbol @ Text" [ALWAYS] forall ($dEq1 :: GHC.Classes.Eq
-                                                                                       Data.Text.Internal.Text)
-                                                                           ($dEq :: GHC.Classes.Eq
-                                                                                      Language.Fixpoint.Types.Names.Symbol)
-  GHC.Classes.$fEq(,) @ Language.Fixpoint.Types.Names.Symbol
-                      @ Data.Text.Internal.Text
-                      $dEq
-                      $dEq1
-  = Language.Fixpoint.Smt.Types.$fEqResponse_$s$fEq(,)
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver.dump-hi
+++ /dev/null
@@ -1,779 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:29.738898 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver 8002
-  interface hash: 458916169727508bf303949dcbd019b6
-  ABI hash: d69d6f3a7a82a74dfc0b63b28dcb8654
-  export-list hash: e588c4f9c9e96fbb2ecc72ca8ddad3c8
-  orphan hash: a686e30c9a70cb7e6813a9be78caafa7
-  flag hash: c030b5693803951d1fa99027ec5f3487
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.parseFInfo
-  Language.Fixpoint.Solver.resultExit
-  Language.Fixpoint.Solver.solve
-  Language.Fixpoint.Solver.solveFQ
-  Language.Fixpoint.Types.Constraints.Solver
-module dependencies: Language.Fixpoint.Defunctionalize
-                     Language.Fixpoint.Graph Language.Fixpoint.Graph.Deps
-                     Language.Fixpoint.Graph.Indexed Language.Fixpoint.Graph.Partition
-                     Language.Fixpoint.Graph.Reducible Language.Fixpoint.Graph.Types
-                     Language.Fixpoint.Minimize Language.Fixpoint.Misc
-                     Language.Fixpoint.Parse Language.Fixpoint.Smt.Bitvector
-                     Language.Fixpoint.Smt.Interface Language.Fixpoint.Smt.Serialize
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Eliminate
-                     Language.Fixpoint.Solver.Instantiate Language.Fixpoint.Solver.Monad
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.Solver.Solution
-                     Language.Fixpoint.Solver.Solve
-                     Language.Fixpoint.Solver.UniqifyBinds
-                     Language.Fixpoint.Solver.UniqifyKVars
-                     Language.Fixpoint.Solver.Worklist Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-                     Language.Fixpoint.Utils.Progress Language.Fixpoint.Utils.Statistics
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Instantiate
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Parse
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Bitvector
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Monad
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.UniqifyBinds
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Utils.Statistics
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:Control.Concurrent 2ee6a0a58489520b9a96d8fef10380fa
-import  -/  base-4.9.1.0:Control.Exception a76dd9666251322fe34dbcca3a0817bf
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Conc.Sync 8d0a228e5fc4d8c110495066f4d52ea1
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.IO.Exception 5064be4c355632a1d1c4f2322f56ac52
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.Exit 068ba078eb20417d7af66db8b8ab4db1
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Defunctionalize f06278cdfe70ee3d1749f82b2bff2c99
-  exports: a7e913dbe95bb42a0522da6a73270cff
-  defunctionalize da153812c45f9b5ffe786233e1612388
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  graphStatistics ba6d87d5443281b758cf4be72c2f3799
-  slice 193a333b665d84fc9d67b77efe5ba4de
-import  -/  Language.Fixpoint.Graph.Partition a564ef7164aba59432a750fd2fa72ad6
-  mcInfo 69679cecb02df47aa946c9cbab697449
-  partition c4307a2fa21cc63f59feb03253a7acd3
-  partition' 968dd790e46c5ddf1a99a826058b1b68
-import  -/  Language.Fixpoint.Minimize b47889086f2a9a7e3e89bb6a6a49bfe8
-  exports: 3566eeb8bc4f41d8dde4e219f2cbee80
-  minKvars 49261509aa1143eb7ac3b34392f700ce
-  minQuals 02e0d05cb1fd4f15caf9ecba22906bdd
-  minQuery 4df8c5a62051b3657386fc3acfc969a6
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  Loud df42ce750f735e9386f34485e7fff5ef
-  asyncMapM ae893d2cd008b5aa61745192d2e27805
-  colorStrLn 314c551f03113bafdefee09d97f7834e
-  donePhase 1cf4579b993fe9690101309d8b0cc613
-  ensurePath 3402ad06caedf6824ca64542c1d58b7e
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  writeLoud 6a7f20b21df12531f08981646ff1bf20
-import  -/  Language.Fixpoint.Parse 2a450e80a843d90f9712d4625da0e469
-  exports: 098b7748d35df0bf70ee3f03113105cd
-  rr' b65e77bf5bacc4a2b159a4e76957fd6b
-import  -/  Language.Fixpoint.Smt.Interface f538f0ac51ee819dc838b6422164f768
-  exports: 7bacdb37e2c46633ad6ef325fbbcf3f3
-  makeSmtContext 801f9ba67d87354d12bb8c8e34b7cd31
-  smtPush b5d45126fbc5298397a30f76fb8178f1
-import  -/  Language.Fixpoint.Solver.Instantiate 07f64ddcbc67d75125464ed52a72979a
-  exports: 691eed97acc25746f430f8a4939cb656
-  instantiateFInfo 89f936ce04985363f5766dd24adf3c64
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  sanitize 49baef0f9c671b6e191d859b2acf2062
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.Solver.Solve 1544ea4466c9c4054a783a844725521e
-  exports: 85747bd5f760bd91f3b71db6f5e06fc1
-  solve 92760c1418be31319f6222a62714a4d2
-import  -/  Language.Fixpoint.Solver.UniqifyBinds 1fab0c8e863f3e97b24c3669460699fc
-  exports: d8d0e9ab451254d060b9688893f262a2
-  renameAll 2ce8ea81672ca0710a00cdf135420c47
-import  -/  Language.Fixpoint.Solver.UniqifyKVars ade363b61e9812a23ffa86becda04098
-  exports: 335a86d610b0597279e3e95176cb0b29
-  wfcUniqify 20da036b669f75a0907c2d792f715755
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  elaborate 5d158ea131d7e277795d290df18aadb1
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  All c42ccf88094d9d1a23f7bcca437bc626
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  cores 764aadd348c4970fb472a70cb648673b
-  eliminate 00845ce462b99594cdb09b8337f2f880
-  gradual ff91e3fd60534020e1339e23aea84fb4
-  maxPartSize 950722929eeeeafc9d0df91721e9a7a5
-  minPartSize a641bd1db66814db5dbafd87e7083796
-  minimize e7324b88bb1b932e70bd6530742f160d
-  minimizeKs 0606dbce8acec9e6f50239f8fb136eed
-  minimizeQs 9def52e479bfeaf19a50f3c0570e33c3
-  multicore f61c360f9d352412e0db34b629c1482a
-  parts b3b5026e99261d585e3b1cc95b8e669a
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-  save 164144792947fb31455e03024550b75e
-  srcFile 139239bd1df5627505d07a6c910c85e3
-  stats 238bc79899631ee39849ba43109d2a36
-  withPragmas 0300a5f35a79cd7876b54c77dc7ba8f4
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FInfo beb16efa76d83917c7875fd2371988e0
-  FInfoWithOpts 528e5765b1592890448e36f31279cea6
-  Result bd94cb06f2a56d7ff5b46922e02fce58
-  Result 1de0e7882069f13222c6effa6f71fad5
-  SInfo 1052549cc559e08aaa78c218edda206c
-  Solver f1f0ec730b81f80dd9bee7952949bcd8
-  convertFormat 0d632bd0cb2078bdad46978f95df8983
-  dLits 520fb0647a01216c687192a56bf631fa
-  fioFI b354be32cea41076c357d82fb6b4eab0
-  fioOpts db7b8f5c0682d077570142ebfc130efb
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  gresSolution e0bda26e2a2d1d2bf92cc539dfce23d8
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  remakeQual 381b95ec430338b66cbedaa4bfda1858
-  resSolution f55f0c46369593e7e85befdfb6dfdad8
-  resStatus 3f55294ccfc28a0973c88dd648f672f4
-  saveQuery 05e9dce8e4549bc3d5847cf5a15cc2b4
-  toFixpoint 5711bd73781766989598d60d9f1939d0
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Crash 2d074087cde42a052498bc5853f5467d
-  Error d0173fd74c0fa26b5149cb3e367aede0
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-  colorResult fd7ce028805fe41d6945d0d87e4f5635
-  die a892c3bd643380084ab25f8b09c20b83
-  resultDoc 2c5d213b3ed009477ac7767316f04226
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Out 50d71c21477b1ba852ad2053502dfe2d
-  Part fb8c809f35f669e3a10828c82cd5b6ce
-  isBinary d3015995629add210c6cf592f0434cf7
-import  -/  Language.Fixpoint.Utils.Statistics a13613b1b407b566c4dfeffa954d6400
-  exports: cb753336970f9e94042ff46d1d6e87c5
-  statistics c0f44f55507843032bac925b5998623d
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-1a3a15487e30ce4927113a30946ddd5f
-  $s$!!3 :: Language.Fixpoint.Types.Constraints.SimpC () -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSS),1*U(U,U,U,U,U())>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.SimpC ()) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SimpC ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Solver.$w$dNFData
-                        ww1
-                        ww2
-                        ww3
-                        ww4 of ww6 { (##) ->
-                 GHC.Tuple.() } }) -}
-73efa99ebd463debc4fe9a240770b946
-  $s$!!7 :: (GHC.Integer.Type.Integer, ()) -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U())>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (GHC.Integer.Type.Integer, ())) ->
-                 case ds of wild { (,) x y -> case x of ds1 { DEFAULT -> y } }) -}
-e14607cf82fdbf7d678a2b9646582b57
-  $s$fBinaryGInfo ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SubC ())
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Constraints.GInfo
-                       Language.Fixpoint.Types.Constraints.SubC ())
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cput
-                     @ Language.Fixpoint.Types.Constraints.SubC
-                     @ ()
-                     Language.Fixpoint.Solver.$s$fBinaryGInfo1
-                     Data.Binary.Class.$fBinary())
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cget
-                     @ Language.Fixpoint.Types.Constraints.SubC
-                     @ ()
-                     Language.Fixpoint.Solver.$s$fBinaryGInfo1
-                     Data.Binary.Class.$fBinary())
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cputList
-                     @ Language.Fixpoint.Types.Constraints.SubC
-                     @ ()
-                     Language.Fixpoint.Solver.$s$fBinaryGInfo1
-                     Data.Binary.Class.$fBinary()) -}
-3331a6193e666f63ff1e23f46f704f59
-  $s$fBinaryGInfo1 ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.SubC ())
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$fBinarySubC -}
-9833f5c7e31e0770b1354405cb593505
-  $s$fFixpointSimpC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Constraints.SimpC ())
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Constraints.SimpC ())
-                  (Language.Fixpoint.Types.Constraints.$fFixpointSimpC_$ctoFix
-                     @ ()
-                     Language.Fixpoint.Types.PrettyPrint.$fFixpoint())
-                  Language.Fixpoint.Solver.$s$fFixpointSimpC_$s$fFixpointSimpC_$csimplify -}
-3266b8b9f710726d81f6ccd0c40e7803
-  $s$fFixpointSimpC_$s$fFixpointSimpC_$csimplify ::
-    Language.Fixpoint.Types.Constraints.SimpC ()
-    -> Language.Fixpoint.Types.Constraints.SimpC ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.SimpC ()) -> eta) -}
-6f4274005c32fdebdfd01a9383a620d0
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.$trModule2
-                   Language.Fixpoint.Solver.$trModule1) -}
-fb67713ac693e2616323f891aa2645f2
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Solver"#) -}
-4a8e49df77b8427bb564f58eca6a777a
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-4a0667eb0bed4f694ed0fca23ef2b0d6
-  $w$dNFData ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> (# #)
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: GHC.Base.Maybe GHC.Integer.Type.Integer)
-                   (ww3 :: Language.Fixpoint.Types.Constraints.Tag) ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Types.Int
-                        @ ()
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        Control.DeepSeq.$fNFData()_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                        ww
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild1 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww1) of wild2 { () ->
-                 case case ww2 of wild {
-                        GHC.Base.Nothing -> GHC.Tuple.()
-                        GHC.Base.Just x
-                        -> Control.DeepSeq.$fNFDataInteger_$crnf x } of wild3 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Int
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        ww3 of wild4 { () ->
-                 GHC.Prim.(##) } } } }) -}
-f0c54d328a08ebd8b91f8390b8923d0c
-  $w$ssolve ::
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC ())
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC ())
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId ()
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, ()) #)
-  {- Arity: 50,
-     Strictness: <L,U><L,U><L,U(U)><L,U(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><S,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-adfa2ab2332e71cd8c9baa68fe6160d0
-  $wsolve ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 52,
-     Strictness: <L,C(U())><L,U(C(U),A)><L,U><L,U><L,U(U)><L,U(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><S,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-fa37223d3a9f144d730e0c2d4c96ada2
-  parseFInfo ::
-    [GHC.IO.FilePath]
-    -> GHC.Types.IO (Language.Fixpoint.Types.Constraints.FInfo a)
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.parseFInfo1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <[GHC.IO.FilePath]>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.FInfo a>_R)) -}
-fdb83fee60c545893f0918d524a92d70
-  parseFInfo1 ::
-    [GHC.IO.FilePath]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.FInfo a #)
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: (\ @ a
-                   (fs :: [GHC.IO.FilePath])
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Solver.parseFInfo2
-                        @ a
-                        fs
-                        eta of ds { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    Language.Fixpoint.Types.Constraints.$fMonoidGInfo1
-                      @ Language.Fixpoint.Types.Constraints.SubC
-                      @ a
-                      ipv1 #) }) -}
-47f9e72c77cd827f06443fe96d8f11b9
-  parseFInfo2 ::
-    [GHC.IO.FilePath]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          [Language.Fixpoint.Types.Constraints.FInfo a] #)
-  {- Arity: 2, Strictness: <S,1*U><S,U> -}
-9942be64a64de71d67f82f27a0d36b73
-  resultExit ::
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> GHC.IO.Exception.ExitCode
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash ipv ipv1
-                   -> Language.Fixpoint.Solver.resultExit3
-                   Language.Fixpoint.Types.Errors.Safe -> GHC.IO.Exception.ExitSuccess
-                   Language.Fixpoint.Types.Errors.Unsafe ds1
-                   -> Language.Fixpoint.Solver.resultExit1 }) -}
-00b866e2d81e509db3d93081dfc30336
-  resultExit1 :: GHC.IO.Exception.ExitCode
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.IO.Exception.ExitFailure
-                   Language.Fixpoint.Solver.resultExit2) -}
-d83a72f56158dc2f39c8a56b420a32f8
-  resultExit2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 1#) -}
-c8d9ab47aeb1f9aabcda019fafcc76da
-  resultExit3 :: GHC.IO.Exception.ExitCode
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.IO.Exception.ExitFailure
-                   Language.Fixpoint.Solver.resultExit4) -}
-42747654ee113cf6b7a6423a2f0d5b67
-  resultExit4 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 2#) -}
-05abc0e5c6436aeed7dca45a06a6a43b
-  solve ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Constraints.Solver a
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,U(C(U),A)><S(LLLLLLLLLLLLLLLLSLLLLLLLLLLLLLLL),1*U(U,U,U(U),U(U),U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(SSS(LS)SSSSSS(SS)SS(SSSSS)),1*U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U(U,U,U,U,U))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.solve2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-2c8ad7204715d032b32fff98a83f49a6
-  solve2 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,U(C(U),A)><S(LLLLLLLLLLLLLLLLSLLLLLLLLLLLLLLL),1*U(U,U,U(U),U(U),U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(SSS(LS)SSSSSS(SS)SS(SSSSS)),1*U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U(U,U,U,U,U))><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w4 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w2 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 case w3 of ww33 { Language.Fixpoint.Types.Constraints.FI ww34 ww35 ww36 ww37 ww38 ww39 ww40 ww41 ww42 ww43 ww44 ->
-                 case ww36 of ww45 { Language.Fixpoint.Types.Environments.BE ww46 ww47 ->
-                 case ww42 of ww48 { Language.Fixpoint.Types.Constraints.HOI ww49 ww50 ->
-                 case ww44 of ww51 { Language.Fixpoint.Types.Constraints.AEnv ww52 ww53 ww54 ww55 ww56 ->
-                 Language.Fixpoint.Solver.$wsolve
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32
-                   ww34
-                   ww35
-                   ww46
-                   ww47
-                   ww37
-                   ww38
-                   ww39
-                   ww40
-                   ww41
-                   ww49
-                   ww50
-                   ww43
-                   ww52
-                   ww53
-                   ww54
-                   ww55
-                   ww56
-                   w4 } } } } }) -}
-09f8b4469890a208a619d8f1634569cc
-  solveFQ ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Types.IO GHC.IO.Exception.ExitCode
-  {- Arity: 2,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.solveFQ1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <GHC.IO.Exception.ExitCode>_R)) -}
-7d5c983879321f13574547ede7417177
-  solveFQ1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.IO.Exception.ExitCode #)
-  {- Arity: 2,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S,U> -}
-"SPEC/Language.Fixpoint.Solver $fBinaryGInfo @ SubC @ ()" [ALWAYS] forall ($dBinary1 :: Data.Binary.Class.Binary
-                                                                                          ())
-                                                                          ($dBinary :: Data.Binary.Class.Binary
-                                                                                         (Language.Fixpoint.Types.Constraints.SubC
-                                                                                            ()))
-  Language.Fixpoint.Types.Constraints.$fBinaryGInfo @ Language.Fixpoint.Types.Constraints.SubC
-                                                    @ ()
-                                                    $dBinary
-                                                    $dBinary1
-  = Language.Fixpoint.Solver.$s$fBinaryGInfo
-"SPEC/Language.Fixpoint.Solver $fFixpointSimpC @ ()" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                      ())
-  Language.Fixpoint.Types.Constraints.$fFixpointSimpC @ () $dFixpoint
-  = Language.Fixpoint.Solver.$s$fFixpointSimpC
-"SPEC/Language.Fixpoint.Solver $fFixpointSimpC_$csimplify @ ()" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                                 ())
-  Language.Fixpoint.Types.Constraints.$fFixpointSimpC_$csimplify @ ()
-                                                                 $dFixpoint
-  = Language.Fixpoint.Solver.$s$fFixpointSimpC_$s$fFixpointSimpC_$csimplify
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Eliminate.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Eliminate.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Eliminate.dump-hi
+++ /dev/null
@@ -1,293 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:16.691441 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Eliminate 8002
-  interface hash: 2ce98027281e29cec4bdc955929cdd1f
-  ABI hash: 909e925e30388e38ce02e815a1b05d9a
-  export-list hash: 50693d2e8a5f3b7c0dd938f1f7655579
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: ad85b57796efe586ff2437a3a5240a8c
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Eliminate.solverInfo
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  depCuts 83d1edc1722d736fb5b5a3aa5d820ae7
-  depNonCuts 06fa0366722b2884b2aaf64ea62a68e8
-  elimDeps 5665258949b04edd49306c81248cfba0
-  elimVars 79f5aa78d78e83cef63fd4dd235ff9b6
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  CEdge f2f17be8bf25ad841321175f992cca78
-  Cstr 208edca12160ed50062c4f24b3d2f6a3
-  KVar 8c108f3d54252c748cec2f60aab62495
-  SI 3793dbf1e3a52671229c757903084a70
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  group e2e2979efce4bc962b883458e2dab7fa
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  stag 76024cf6f78bddd6a28cd3717846fe6a
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  intersectionIBindEnv 9983d7e9d97433d2566c93bdd912d47b
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cube a1aa6fe17cd55ffd8dad506538284174
-  Cube a3c72678689a09bc3a389091220691c4
-  Hyp 9ada9a2e9283c0d71dc285dc2d850f46
-  fromList 5ee336afe6bc1f0c40109c6e7f4f6826
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  isConcC 168eb47fa1697b4be4039258d2f9ed16
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-5182df1fe445a029a8a6199cc6e64e1a
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Eliminate.$trModule2
-                   Language.Fixpoint.Solver.Eliminate.$trModule1) -}
-6bf0753eb2e285205ee09202c687c16b
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.Eliminate"#) -}
-b77487b6a8ba9fabecc2c20386a7d80f
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-5cdc2b26e183fa7fb9861a4f22fb9255
-  $wpoly_go1 ::
-    GHC.Integer.Type.Integer
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-a78d33d30ee82972a9dc9b92883ce03b
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-a61869b7f40686d852e3503d2962c7d1
-  $wsolverInfo ::
-    Language.Fixpoint.Types.Config.Config
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> (# Language.Fixpoint.Types.Solutions.Sol
-            b Language.Fixpoint.Types.Solutions.QBind,
-          Language.Fixpoint.Types.Constraints.SInfo a,
-          Language.Fixpoint.Graph.Types.CDeps,
-          Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar #)
-  {- Arity: 13,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,A,A,A)><S,U><S,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-100ae42b63274bc422a995a2f5785f80
-  type KIndex =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar [GHC.Integer.Type.Integer]
-72198470e484afa1d063a7f4769cdb64
-  solverInfo ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Graph.Types.SolverInfo a b
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,A,A,A)><S(SSS(LS)SSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 case Language.Fixpoint.Solver.Eliminate.$wsolverInfo
-                        @ a
-                        @ b
-                        w
-                        ww1
-                        ww2
-                        ww13
-                        ww14
-                        ww4
-                        ww5
-                        ww6
-                        ww7
-                        ww8
-                        ww9
-                        ww10
-                        ww11 of ww15 { (#,,,#) ww16 ww17 ww18 ww19 ->
-                 Language.Fixpoint.Graph.Types.SI
-                   @ a
-                   @ b
-                   ww16
-                   ww17
-                   ww18
-                   ww19 } } }) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolution.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolution.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolution.dump-hi
+++ /dev/null
@@ -1,1377 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:17.834533 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.GradualSolution 8002
-  interface hash: 3c510a7f021affab6859ea632a7d419c
-  ABI hash: fb6b5d431d6cb89a1f9e31552fbc844b
-  export-list hash: 40f49b9592acececbf285447f2975b09
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 78cd328a171b472710772d4788468481
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.GradualSolution.init
-  Language.Fixpoint.Solver.GradualSolution.lhsPred
-  Language.Fixpoint.Types.Solutions.update
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  allCombinations c0a9eb79a7b13ad47907d1a4dc3f37f3
-  fst3 d403c254371349110bdd0be2f09b4237
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-  snd3 5eb2c283a7808b8ac7d306bc810e3392
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  toInt 401d5dfabf5419bc774ce2c83dfda7bb
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  Env d150d28cd1549b097a537e6234c62038
-  TVSubst cd0571f7217eba41b5cb926e34b36534
-  apply cd5cd4a92fb0f8664cfdec9f89938101
-  checkSortExpr 4c8095767e6c0674ee9d2d18e1e3e042
-  checkSorted 2c861c35f0bbb6991b683598c98f9cde
-  elaborate 5d158ea131d7e277795d290df18aadb1
-  isMono 03c687a9894c51ee92560ef2a34f9b13
-  unifyFast 2a7bf9de66bc674cde448bc706c6f4a2
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  exports: 8ff2109a000830685650941885f8f564
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-  WfC 50354839b899806bfddb7dd9a816596d
-  allowHOquals 204044004a0c8fab67b4c88b81d03cf5
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  isGWfc e3a7ff0495f71a580cf9216dd7498e66
-  qParams 54bc9290720ec8197ce69a552d4656be
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  sid 9ba83f62143508c4ad59807c752d0be9
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wexpr 83515c1aa6205bfb453ccbfabb4f0b10
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-  SolEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  diffIBindEnv 051c7f6e46479a9552747ed2030e9852
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  lookupSEnvWithDistance 8487b4b7e6463dbcd7c933ce64e1d285
-  soeBinds fbbef264516f9bec0ae6fc47631bb833
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-  unionIBindEnv f6babeef179e76988b659bd281a317e4
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  isLitSymbol fce949627de0b7387ed9b777cad06478
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  notracepp 23093b339d9413532997992b94a8c483
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  &.& f31bc3e9270072a5054679edecd13ba8
-  EEq 9242ee92a55fe451987339b69aae1cbb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVSub c90a46333bc7a488713b09e58c2c7d81
-  KVar 9a92033bfe21324e80629facb0f6357f
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  ksuKVar 0cf6b38384715583b9cf045cff53cf0d
-  ksuSort 18995dc51533181db351deeda374fc32
-  ksuSubst 4abec11a7a7382dc84806b6b269f7991
-  ksuVV 795b37baa1089e454e2b9c0143ece29c
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  pExist cafb3e1e576330cfb5f3d2218f756c4a
-  pOr cddd52acc94c0f05e5a37f140c8ad8c0
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cube a3c72678689a09bc3a389091220691c4
-  EQual d48cd6c8fd87428c462add5de1e5d785
-  GBind d48cd6c8fd87428c462add5de1e5d785
-  GSolution 46cbbd29db6fed96ab8b25a466a3c498
-  Hyp 9ada9a2e9283c0d71dc285dc2d850f46
-  QBind d48cd6c8fd87428c462add5de1e5d785
-  Sol 5c80baaee2ad2e2f29824ed6e0d2d1eb
-  cuBinds 8bc973b08bb7740942a1cf2fdfd24dfc
-  cuSubst 56fb7dba58bfdc3e40221a038611ad8f
-  cuTag df8c539c6864ee075246c5c36aa42f2c
-  eQual 273cec9ec35fd4cb7087dc5e8a27224d
-  eqPred f4224b5f1cdddeabb689ccc6f25e105a
-  fromList 5ee336afe6bc1f0c40109c6e7f4f6826
-  gbToQbs 4e8aa7c592b46e3af55fec68c7aa3261
-  glookup a9f72c61ea808aa3d6c9cff88a372e9b
-  qb 897bfa04139ac9486b855ccba6f1cc7c
-  qbFilter c86c4e749145841bd4676d837bbc75f1
-  qbPreds ee53cb8d2b8872c615fcdd1168450ebc
-  qbToGb 34418e359e9e7942b4cc6e47055f11f0
-  sEnv d23bc0542d4f553904c83bd3771d1f80
-  sScp 1351dc93ff0aff4b607b457fc5e7a087
-  update 4ee25b98e93e86f189e02ab7e64de90e
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FFrac ecc8fb3da631f4b043ad3670e4fca393
-  FNum c88d73ad9fe8566f5ec651da0f3eebd7
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  functionSort 11d97370b121a8ef0a4def7d986212ac
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  sortedReftConcKVars cac548010e601c57894a79c824007fb5
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-import  -/  parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx:Control.Parallel.Strategies ffa4d4b96dba666866c04e5ec97b9754
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-4a560db2ce376fcc8690ec96edfad50e
-  $fEqKInfo ::
-    GHC.Classes.Eq Language.Fixpoint.Solver.GradualSolution.KInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                  Language.Fixpoint.Solver.GradualSolution.$fEqKInfo_$c==
-                  Language.Fixpoint.Solver.GradualSolution.$fEqKInfo_$c/= -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fEqKInfo_$c/= ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (b :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case Language.Fixpoint.Solver.GradualSolution.$fEqKInfo_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fEqKInfo_$c== ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 case GHC.Classes.$fEq[]_$c==
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fEq[]_$s$fEq[]
-                        ww1
-                        ww8 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww12) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Integer.Type.eqInteger# ww3 ww13 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } } } }) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fFunctorGSelect ::
-    GHC.Base.Functor Language.Fixpoint.Solver.GradualSolution.GSelect
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.GradualSolution.GSelect
-                  Language.Fixpoint.Solver.GradualSolution.$fFunctorGSelect_$cfmap
-                  Language.Fixpoint.Solver.GradualSolution.$fFunctorGSelect_$c<$ -}
-19326d5f2280e54c8e33162e25810a4c
-  $fFunctorGSelect_$c<$ ::
-    a
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect b
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Solver.GradualSolution.GSelect b) ->
-                 case eta1 of wild {
-                   Language.Fixpoint.Solver.GradualSolution.GNone a1
-                   -> Language.Fixpoint.Solver.GradualSolution.GNone @ a eta
-                   Language.Fixpoint.Solver.GradualSolution.GOpt xs
-                   -> Language.Fixpoint.Solver.GradualSolution.GOpt
-                        @ a
-                        (letrec {
-                           go13 :: [([(Language.Fixpoint.Types.Refinements.KVar,
-                                       Language.Fixpoint.Types.Solutions.QBind)],
-                                     b)]
-                                   -> [([(Language.Fixpoint.Types.Refinements.KVar,
-                                          Language.Fixpoint.Types.Solutions.QBind)],
-                                        a)]
-                             {- Arity: 1, Strictness: <S,1*U> -}
-                           = \ (ds :: [([(Language.Fixpoint.Types.Refinements.KVar,
-                                          Language.Fixpoint.Types.Solutions.QBind)],
-                                        b)]) ->
-                             case ds of wild1 {
-                               []
-                               -> GHC.Types.[]
-                                    @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                         Language.Fixpoint.Types.Solutions.QBind)],
-                                       a)
-                               : y ys
-                               -> case y of wild2 { (,) p a1 ->
-                                  GHC.Types.:
-                                    @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                         Language.Fixpoint.Types.Solutions.QBind)],
-                                       a)
-                                    (p, eta)
-                                    (go13 ys) } }
-                         } in
-                         go13 xs) }) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fFunctorGSelect_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect a
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect b
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f :: a -> b)
-                   (ds :: Language.Fixpoint.Solver.GradualSolution.GSelect a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Solver.GradualSolution.GNone a1
-                   -> Language.Fixpoint.Solver.GradualSolution.GNone @ b (f a1)
-                   Language.Fixpoint.Solver.GradualSolution.GOpt xs
-                   -> Language.Fixpoint.Solver.GradualSolution.GOpt
-                        @ b
-                        (letrec {
-                           go13 :: [([(Language.Fixpoint.Types.Refinements.KVar,
-                                       Language.Fixpoint.Types.Solutions.QBind)],
-                                     a)]
-                                   -> [([(Language.Fixpoint.Types.Refinements.KVar,
-                                          Language.Fixpoint.Types.Solutions.QBind)],
-                                        b)]
-                             {- Arity: 1, Strictness: <S,1*U> -}
-                           = \ (ds1 :: [([(Language.Fixpoint.Types.Refinements.KVar,
-                                           Language.Fixpoint.Types.Solutions.QBind)],
-                                         a)]) ->
-                             case ds1 of wild1 {
-                               []
-                               -> GHC.Types.[]
-                                    @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                         Language.Fixpoint.Types.Solutions.QBind)],
-                                       b)
-                               : y ys
-                               -> case y of wild2 { (,) p a1 ->
-                                  GHC.Types.:
-                                    @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                         Language.Fixpoint.Types.Solutions.QBind)],
-                                       b)
-                                    (p, f a1)
-                                    (go13 ys) } }
-                         } in
-                         go13 xs) }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fMonoidKInfo ::
-    GHC.Base.Monoid Language.Fixpoint.Solver.GradualSolution.KInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                  Language.Fixpoint.Solver.GradualSolution.$fMonoidKInfo_$cmempty
-                  Language.Fixpoint.Solver.GradualSolution.$fMonoidKInfo_$cmappend
-                  Language.Fixpoint.Solver.GradualSolution.$fMonoidKInfo_$cmconcat -}
-11962de7ad364f86d914c61bf8dbfc83
-  $fMonoidKInfo1 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fMonoidKInfo_$cmappend ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 2,
-     Strictness: <S(LSS),1*U(1*U,U,U)><S(LSS),1*U(1*U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<=# ww2 ww12) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Integer.Type.timesInteger ww3 ww13 of dt { DEFAULT ->
-                      Language.Fixpoint.Solver.GradualSolution.KI
-                        (Language.Fixpoint.Misc.sortNub
-                           @ Language.Fixpoint.Types.Constraints.Tag
-                           GHC.Classes.$fOrd[]_$s$fOrd[]
-                           (GHC.Base.++ @ [GHC.Types.Int] ww1 ww8))
-                        ww2
-                        dt }
-                   GHC.Types.True
-                   -> case GHC.Integer.Type.timesInteger ww3 ww13 of dt { DEFAULT ->
-                      Language.Fixpoint.Solver.GradualSolution.KI
-                        (Language.Fixpoint.Misc.sortNub
-                           @ Language.Fixpoint.Types.Constraints.Tag
-                           GHC.Classes.$fOrd[]_$s$fOrd[]
-                           (GHC.Base.++ @ [GHC.Types.Int] ww1 ww8))
-                        ww12
-                        dt } } } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fMonoidKInfo_$cmconcat ::
-    [Language.Fixpoint.Solver.GradualSolution.KInfo]
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Solver.GradualSolution.KInfo]) ->
-                 case Language.Fixpoint.Solver.GradualSolution.$wgo
-                        w of ww { (#,,#) ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fMonoidKInfo_$cmempty ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Solver.GradualSolution.KI
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Tag)
-                   0#
-                   Language.Fixpoint.Solver.GradualSolution.$fMonoidKInfo1) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo ::
-    GHC.Classes.Ord Language.Fixpoint.Solver.GradualSolution.KInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                  Language.Fixpoint.Solver.GradualSolution.$fEqKInfo
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$ccompare
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c<
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c<=
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c>
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c>=
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$cmax
-                  Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$cmin -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$c< ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$c<
-                   ww1
-                   ww2
-                   ww3
-                   ww8
-                   ww12
-                   ww13 } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$c<= ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$c<=
-                   ww1
-                   ww2
-                   ww3
-                   ww8
-                   ww12
-                   ww13 } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$c> ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$c>
-                   ww1
-                   ww2
-                   ww3
-                   ww8
-                   ww12
-                   ww13 } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$c>= ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$c>=
-                   ww1
-                   ww2
-                   ww3
-                   ww8
-                   ww12
-                   ww13 } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$ccompare ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.GradualSolution.KI ww8 ww12 ww13 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$ccompare
-                   ww1
-                   ww2
-                   ww3
-                   ww8
-                   ww12
-                   ww13 } }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$cmax ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U)><S(SLS),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (y :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fOrdKInfo_$cmin ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U)><S(SLS),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (y :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fShowGSelect ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Solver.GradualSolution.GSelect a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(C1(U)),A,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Solver.GradualSolution.GSelect a)
-                  (Language.Fixpoint.Solver.GradualSolution.$fShowGSelect_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Solver.GradualSolution.$fShowGSelect_$cshow
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Solver.GradualSolution.$fShowGSelect_$cshowList
-                     @ a
-                     $dShow) -}
-1c9e347602e369c3e2e97029ef0da7f4
-  $fShowGSelect1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-a07725c759f675475724a0021c7210ba
-  $fShowGSelect2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "GOpt "#) -}
-883c9faf4afb59d8c089f6aecbbac850
-  $fShowGSelect3 ::
-    (Language.Fixpoint.Types.Refinements.KVar,
-     Language.Fixpoint.Types.Solutions.QBind)
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (w3 :: (Language.Fixpoint.Types.Refinements.KVar,
-                           Language.Fixpoint.Types.Solutions.QBind))
-                   (w4 :: GHC.Base.String)[OneShot] ->
-                 case w3 of ww { (,) ww1 ww2 ->
-                 GHC.Types.:
-                   @ GHC.Types.Char
-                   GHC.Show.shows7
-                   (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                      ww1
-                      (GHC.Types.:
-                         @ GHC.Types.Char
-                         GHC.Show.shows5
-                         (GHC.Show.$fShow(,)_$sgo
-                            (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w4)
-                            (\ (w2 :: GHC.Base.String) ->
-                             Language.Fixpoint.Types.Solutions.$w$cshowsPrec4 0# ww2 w2)
-                            (GHC.Types.[] @ GHC.Show.ShowS)))) }) -}
-febcd8a9d9003d40e188d2a009c3f6ba
-  $fShowGSelect4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "GNone "#) -}
-fe3a71a935ff1db1bd03311ad8dd91c8
-  $fShowGSelect5 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 11#) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fShowGSelect_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Solver.GradualSolution.GSelect a
-    -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A,A)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Solver.GradualSolution.GSelect a) ->
-                 Language.Fixpoint.Solver.GradualSolution.$fShowGSelect_$cshowsPrec
-                   @ a
-                   $dShow
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fShowGSelect_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Solver.GradualSolution.GSelect a]
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A,A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Solver.GradualSolution.GSelect a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Solver.GradualSolution.GSelect a)
-                   (Language.Fixpoint.Solver.GradualSolution.$fShowGSelect_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Solver.GradualSolution.$fShowGSelect1)
-                   eta
-                   eta1) -}
-19326d5f2280e54c8e33162e25810a4c
-  $fShowGSelect_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect a
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A,A)><S(S),1*U(U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Solver.GradualSolution.GSelect a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$cshowsPrec
-                   @ a
-                   w
-                   ww1
-                   w2 }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fShowKInfo ::
-    GHC.Show.Show Language.Fixpoint.Solver.GradualSolution.KInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                  Language.Fixpoint.Solver.GradualSolution.$fShowKInfo_$cshowsPrec
-                  Language.Fixpoint.Solver.GradualSolution.$fShowKInfo_$cshow
-                  Language.Fixpoint.Solver.GradualSolution.$fShowKInfo_$cshowList -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fShowKInfo1 ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.GradualSolution.KI ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$cshowsPrec1
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fShowKInfo_$cshow ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(LLS),1*U(1*U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 Language.Fixpoint.Solver.GradualSolution.$fShowKInfo_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fShowKInfo_$cshowList ::
-    [Language.Fixpoint.Solver.GradualSolution.KInfo] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                   Language.Fixpoint.Solver.GradualSolution.$fShowKInfo1) -}
-4a560db2ce376fcc8690ec96edfad50e
-  $fShowKInfo_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S(LLS),1*U(1*U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.KInfo)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.GradualSolution.KI ww3 ww4 ww8 ->
-                 Language.Fixpoint.Solver.GradualSolution.$w$cshowsPrec1
-                   ww1
-                   ww3
-                   ww4
-                   ww8
-                   w2 } }) -}
-25d3a6da76263c26000200efe8af8d94
-  $tc'GNone :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4363029926203305128##
-                   14548419617911167548##
-                   Language.Fixpoint.Solver.GradualSolution.$trModule
-                   Language.Fixpoint.Solver.GradualSolution.$tc'GNone1) -}
-efea698d20ce77a29a1563ad059813bf
-  $tc'GNone1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GNone"#) -}
-f24550f595ec7e3adf2ccf3ea47c111c
-  $tc'GOpt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8127830123177623042##
-                   12846988810024476662##
-                   Language.Fixpoint.Solver.GradualSolution.$trModule
-                   Language.Fixpoint.Solver.GradualSolution.$tc'GOpt1) -}
-af44940c79dbf09e65520d55f479c1cc
-  $tc'GOpt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GOpt"#) -}
-6adb1b552652f3769ff864b6fe066fdd
-  $tc'KI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18090090380658681878##
-                   13721767987240342583##
-                   Language.Fixpoint.Solver.GradualSolution.$trModule
-                   Language.Fixpoint.Solver.GradualSolution.$tc'KI1) -}
-dcf8723ea073b07e89d9cccb9501fff2
-  $tc'KI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KI"#) -}
-254b2f8967a821e4ac5321c572bfab08
-  $tcGSelect :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6085488630917056897##
-                   7401632572818011912##
-                   Language.Fixpoint.Solver.GradualSolution.$trModule
-                   Language.Fixpoint.Solver.GradualSolution.$tcGSelect1) -}
-a02d7b2c557c97a034187d641c4f5aac
-  $tcGSelect1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "GSelect"#) -}
-58009c7ada7f1167d0cff803fbb30d9b
-  $tcKInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5630572449044665931##
-                   6997813763420936750##
-                   Language.Fixpoint.Solver.GradualSolution.$trModule
-                   Language.Fixpoint.Solver.GradualSolution.$tcKInfo1) -}
-f1f393e5829177a0ebf7b3043edcf418
-  $tcKInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "KInfo"#) -}
-2fc2619ae1bab9d79e720d199fffc1c6
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.GradualSolution.$trModule2
-                   Language.Fixpoint.Solver.GradualSolution.$trModule1) -}
-9759930a878fc2a4671764307a3ac9a2
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.GradualSolution"#) -}
-3199ad6ab0d9fddc048f1f6ec2b470c5
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-4a6a47f8ea8da495eaca04298d01fdd7
-  $w$c< ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.ltInteger# ww2 ww8 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-07571805bcb0a78ac34d3ccccdfc5315
-  $w$c<= ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.leInteger# ww2 ww8 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-8ffaef5b104a3c95c9f40faa3cb6fc17
-  $w$c> ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.gtInteger# ww2 ww8 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-6b1a0a4b473a35d7618e57bde9263516
-  $w$c>= ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.geInteger# ww2 ww8 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-19bcc1f6e576d92e738d53e513270659
-  $w$ccompare ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Ordering
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.LT
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.GT
-                             GHC.Types.True -> GHC.Integer.Type.compareInteger ww2 ww8 }
-                        GHC.Types.True -> GHC.Types.LT }
-                   GHC.Types.GT -> GHC.Types.GT }) -}
-19326d5f2280e54c8e33162e25810a4c
-  $w$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect a
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A,A)><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: Language.Fixpoint.Solver.GradualSolution.GSelect a) ->
-                 case w1 of wild {
-                   Language.Fixpoint.Solver.GradualSolution.GNone b1
-                   -> let {
-                        g :: GHC.Base.String -> GHC.Base.String
-                        = GHC.Show.showsPrec
-                            @ a
-                            w
-                            Language.Fixpoint.Solver.GradualSolution.$fShowGSelect5
-                            b1
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww 11#) of wild1 {
-                        GHC.Types.False
-                        -> \ (x :: GHC.Base.String) ->
-                           GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Solver.GradualSolution.$fShowGSelect4
-                             (g x)
-                        GHC.Types.True
-                        -> \ (x :: GHC.Base.String) ->
-                           GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Solver.GradualSolution.$fShowGSelect4
-                                (g (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x))) }
-                   Language.Fixpoint.Solver.GradualSolution.GOpt b1
-                   -> let {
-                        lvl40 :: ([(Language.Fixpoint.Types.Refinements.KVar,
-                                    Language.Fixpoint.Types.Solutions.QBind)],
-                                  a)
-                                 -> GHC.Base.String -> [GHC.Types.Char]
-                          {- Arity: 2 -}
-                        = \ (w3 :: ([(Language.Fixpoint.Types.Refinements.KVar,
-                                      Language.Fixpoint.Types.Solutions.QBind)],
-                                    a))
-                            (w4 :: GHC.Base.String)[OneShot] ->
-                          case w3 of ww1 { (,) ww2 ww3 ->
-                          GHC.Types.:
-                            @ GHC.Types.Char
-                            GHC.Show.shows7
-                            (GHC.Show.showList__
-                               @ (Language.Fixpoint.Types.Refinements.KVar,
-                                  Language.Fixpoint.Types.Solutions.QBind)
-                               Language.Fixpoint.Solver.GradualSolution.$fShowGSelect3
-                               ww2
-                               (GHC.Types.:
-                                  @ GHC.Types.Char
-                                  GHC.Show.shows5
-                                  (GHC.Show.$fShow(,)_$sgo
-                                     (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w4)
-                                     (GHC.Show.showsPrec @ a w GHC.Show.shows22 ww3)
-                                     (GHC.Types.[] @ GHC.Show.ShowS)))) }
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww 11#) of wild1 {
-                        GHC.Types.False
-                        -> \ (x :: GHC.Base.String) ->
-                           GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Solver.GradualSolution.$fShowGSelect2
-                             (GHC.Show.showList__
-                                @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                     Language.Fixpoint.Types.Solutions.QBind)],
-                                   a)
-                                lvl40
-                                b1
-                                x)
-                        GHC.Types.True
-                        -> \ (x :: GHC.Base.String) ->
-                           GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Solver.GradualSolution.$fShowGSelect2
-                                (GHC.Show.showList__
-                                   @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                        Language.Fixpoint.Types.Solutions.QBind)],
-                                      a)
-                                   lvl40
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x))) } }) -}
-58ef7964feb1bf4add6d4f50d81d4bf1
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,1*U><L,U><S,U><L,U>,
-     Inline: [0] -}
-4a560db2ce376fcc8690ec96edfad50e
-  $wgo ::
-    [Language.Fixpoint.Solver.GradualSolution.KInfo]
-    -> (# [Language.Fixpoint.Types.Constraints.Tag], GHC.Prim.Int#,
-          GHC.Integer.Type.Integer #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-271943b4697a7a71490354f10d1bfe75
-  $winit ::
-    Language.Fixpoint.Types.Config.Config
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> GHC.Types.Bool
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> (# Language.Fixpoint.Types.Environments.SEnv
-            Language.Fixpoint.Types.Sorts.Sort,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.QBind,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind),
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.Hyp,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Environments.IBindEnv #)
-  {- Arity: 7,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,U><S,U><S,U><S,U><L,U><L,U>,
-     Inline: [0] -}
-134e8477d0e6c740ff820c83e2c5eacf
-  $wlhsPred ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> [([(Language.Fixpoint.Types.Refinements.KVar,
-           Language.Fixpoint.Types.Solutions.QBind)],
-         Language.Fixpoint.Types.Refinements.Expr)]
-  {- Arity: 4, Strictness: <L,U(U(U,U))><L,U(U,U,U,U,U)><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.SolEnv)
-                   (w1 :: Language.Fixpoint.Types.Solutions.GSolution)
-                   (ww :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww1 :: GHC.Base.Maybe GHC.Integer.Type.Integer) ->
-                 case Language.Fixpoint.Solver.GradualSolution.applyGradual
-                        (ww1, w, ww)
-                        w1
-                        ww of wild {
-                   Language.Fixpoint.Solver.GradualSolution.GNone a1
-                   -> GHC.Types.:
-                        @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                             Language.Fixpoint.Types.Solutions.QBind)],
-                           Language.Fixpoint.Types.Refinements.Expr)
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Refinements.KVar,
-                              Language.Fixpoint.Types.Solutions.QBind),
-                         Data.Tuple.fst
-                           @ Language.Fixpoint.Types.Refinements.Expr
-                           @ Language.Fixpoint.Solver.GradualSolution.KInfo
-                           a1)
-                        (GHC.Types.[]
-                           @ ([(Language.Fixpoint.Types.Refinements.KVar,
-                                Language.Fixpoint.Types.Solutions.QBind)],
-                              Language.Fixpoint.Types.Refinements.Expr))
-                   Language.Fixpoint.Solver.GradualSolution.GOpt xs
-                   -> Language.Fixpoint.Solver.GradualSolution.lhsPred_go xs }) -}
-0ca38f2585ad15bae96eb7b594e10710
-  type Binders =
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-ab3c5ed9463cf40428bda63480d2405f
-  type Cid = GHC.Base.Maybe GHC.Integer.Type.Integer
-a59977daecfc6f71034de6c1d4d9a834
-  type CombinedEnv =
-    (Language.Fixpoint.Solver.GradualSolution.Cid,
-     Language.Fixpoint.Types.Environments.SolEnv,
-     Language.Fixpoint.Types.Environments.IBindEnv)
-27307705cb3e55cf66399d12e1d592ee
-  type ExprInfo =
-    (Language.Fixpoint.Types.Refinements.Expr,
-     Language.Fixpoint.Solver.GradualSolution.KInfo)
-19326d5f2280e54c8e33162e25810a4c
-  data GSelect a
-    = GNone a
-    | GOpt [([(Language.Fixpoint.Types.Refinements.KVar,
-               Language.Fixpoint.Types.Solutions.QBind)],
-             a)]
-4a560db2ce376fcc8690ec96edfad50e
-  data KInfo
-    = KI {kiTags :: [Language.Fixpoint.Types.Constraints.Tag],
-          kiDepth :: {-# UNPACK #-}GHC.Types.Int,
-          kiCubes :: !GHC.Integer.Type.Integer}
-ead390452afe004d57c4d44893eb8ba7
-  applyGradual ::
-    Language.Fixpoint.Solver.GradualSolution.CombinedEnv
-    -> Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Solver.GradualSolution.GSelect
-         Language.Fixpoint.Solver.GradualSolution.ExprInfo
-  {- Arity: 3,
-     Strictness: <L,U(U,U(U(U,U)),U)><L,U(U,U,U,U,U)><S,1*U> -}
-a40e2989c6f7243f3f90b97a1357b31a
-  init ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Types.Solutions.GSolution
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S(LSS(LS)SLLSLSLL),1*U(A,U,U(A,U),U,A,A,U,A,U(A,U),A,A)><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w2 :: Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Refinements.KVar) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww8 ww12 ww13 ww14 ww15 ww16 ww17 ->
-                 case ww3 of ww18 { Language.Fixpoint.Types.Environments.BE ww19 ww20 ->
-                 case ww15 of ww21 { Language.Fixpoint.Types.Constraints.HOI ww22 ww23 ->
-                 case Language.Fixpoint.Solver.GradualSolution.$winit
-                        @ a
-                        w
-                        ww2
-                        ww20
-                        ww4
-                        ww13
-                        ww23
-                        w2 of ww24 { (#,,,,#) ww25 ww26 ww27 ww28 ww29 ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ (((Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Sorts.Sort),
-                       Language.Fixpoint.Types.Refinements.Expr),
-                      Language.Fixpoint.Types.Solutions.GBind)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29 } } } }) -}
-d40b6f6eb2122795dfaf8e9330f9f70f
-  kiCubes ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> GHC.Integer.Type.Integer
-  RecSel Left Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.GradualSolution.KI ds1 dt ds2 ->
-                 ds2 }) -}
-debaac7eaf9de7350d62dcd985a5cc7e
-  kiDepth ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.GradualSolution.KI ds1 dt ds2 ->
-                 GHC.Types.I# dt }) -}
-279dcc1ad70f1bc9ed181f65f361c5d9
-  kiTags ::
-    Language.Fixpoint.Solver.GradualSolution.KInfo
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-  RecSel Left Language.Fixpoint.Solver.GradualSolution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.GradualSolution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.GradualSolution.KI ds1 dt ds2 ->
-                 ds1 }) -}
-0d3f67b49c8e65cc9993a2e76bd7fc58
-  lhsPred ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> [([(Language.Fixpoint.Types.Refinements.KVar,
-           Language.Fixpoint.Types.Solutions.QBind)],
-         Language.Fixpoint.Types.Refinements.Expr)]
-  {- Arity: 3,
-     Strictness: <L,U(U(U,U))><L,U(U,U,U,U,U)><S(SLLLL),U(U,A,U,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.SolEnv)
-                   (w1 :: Language.Fixpoint.Types.Solutions.GSolution)
-                   (w2 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.SimpC ww1 ww2 ww3 ww4 ww8 ->
-                 Language.Fixpoint.Solver.GradualSolution.$wlhsPred
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww3 }) -}
-d5bdb726c438fd22f7e00873ea873f0a
-  lhsPred_go ::
-    [([(Language.Fixpoint.Types.Refinements.KVar,
-        Language.Fixpoint.Types.Solutions.QBind)],
-      (Language.Fixpoint.Types.Refinements.Expr,
-       Language.Fixpoint.Solver.GradualSolution.KInfo))]
-    -> [([(Language.Fixpoint.Types.Refinements.KVar,
-           Language.Fixpoint.Types.Solutions.QBind)],
-         Language.Fixpoint.Types.Refinements.Expr)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.GradualSolution.KInfo]
-  = Language.Fixpoint.Solver.GradualSolution.$fEqKInfo
-instance GHC.Base.Functor [Language.Fixpoint.Solver.GradualSolution.GSelect]
-  = Language.Fixpoint.Solver.GradualSolution.$fFunctorGSelect
-instance GHC.Base.Monoid [Language.Fixpoint.Solver.GradualSolution.KInfo]
-  = Language.Fixpoint.Solver.GradualSolution.$fMonoidKInfo
-instance GHC.Classes.Ord [Language.Fixpoint.Solver.GradualSolution.KInfo]
-  = Language.Fixpoint.Solver.GradualSolution.$fOrdKInfo
-instance GHC.Show.Show [Language.Fixpoint.Solver.GradualSolution.GSelect]
-  = Language.Fixpoint.Solver.GradualSolution.$fShowGSelect
-instance GHC.Show.Show [Language.Fixpoint.Solver.GradualSolution.KInfo]
-  = Language.Fixpoint.Solver.GradualSolution.$fShowKInfo
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolve.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolve.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/GradualSolve.dump-hi
+++ /dev/null
@@ -1,852 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:23.96277 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.GradualSolve 8002
-  interface hash: 7f1b31bc4c4fece8425ab8815b5f80da
-  ABI hash: 219f1efb7f1f5ae39f9e6829198d15f5
-  export-list hash: f2389fdb55a85511f0d3eb973f935697
-  orphan hash: 0ea5bcf82aef75ff996abc5e5e232b11
-  flag hash: bc67f8c40eccf5667b60c126b89e57cc
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.GradualSolve.solveGradual
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Interface Language.Fixpoint.Smt.Serialize
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Eliminate
-                     Language.Fixpoint.Solver.GradualSolution
-                     Language.Fixpoint.Solver.Monad Language.Fixpoint.Solver.Sanitize
-                     Language.Fixpoint.Solver.Worklist Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-                     Language.Fixpoint.Utils.Progress
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Monad
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  elimDeps 5665258949b04edd49306c81248cfba0
-  isTarget 6782583cf6b58e5237626b8fd737ad77
-  kvEdges f940abc15579978762776e660e827d95
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  SI 3793dbf1e3a52671229c757903084a70
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-  cNumScc 87afa682c8dd1e9f69a5fe4b0723474f
-  siDeps dc379f0c79c4322eafe1ce9d7d223789
-  siSol dff0082a2d59e24319611bdab2e6e0f2
-  siVars 35f5142e8f813175a34215ca8bd6fe2d
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  writeLoud 6a7f20b21df12531f08981646ff1bf20
-import  -/  Language.Fixpoint.Solver.Eliminate 909e925e30388e38ce02e815a1b05d9a
-  exports: 50693d2e8a5f3b7c0dd938f1f7655579
-  solverInfo 72198470e484afa1d063a7f4769cdb64
-import  -/  Language.Fixpoint.Solver.GradualSolution fb6b5d431d6cb89a1f9e31552fbc844b
-  exports: 40f49b9592acececbf285447f2975b09
-  init a40e2989c6f7243f3f90b97a1357b31a
-  lhsPred 0d3f67b49c8e65cc9993a2e76bd7fc58
-import  -/  Language.Fixpoint.Solver.Monad ec5eb2d6f95c72ebd961128f417a28ca
-  exports: beab3c559e9618f79ddb38a602dc9a12
-  SolveM c821e4e5b462ea5f6676f864f11ba731
-  Stats 188c0c0ba81cb0b74dcc1f2d482be1c0
-  filterValid 3d3fd7c4f83f97cdbd37ca0640b84015
-  filterValidGradual 982f6ecea7e04a7bdc033c8efc1f9ca3
-  getBinds 53471153021f442c95b13fc958e48657
-  runSolverM 53b136185f49419f992b74e36c14ce39
-  stats 6fbf1bd32be1859b606118565c549ef8
-  tickIter a78156823476e418ed09cf3d977a7cd7
-import  -/  Language.Fixpoint.Solver.Worklist fa4ee31c93076eb78a986cda9ba0370e
-  exports: 07a3962dd623c0c2339d473646cf6a99
-  Worklist c84f1184e26905f15f284ebb1e3a54c9
-  init d0cb8294243b4aaa2d2e3c1afaaa8258
-  pop b18054b832ac05bc3a2d9a2e8a214923
-  push c5b19c73e458d9f199e7cc7670ca74ae
-  unsatCandidates c15586d22037298ff224939786c1fd0d
-  wRanks a3d6cbd11c22b5d265c8e478454ac38f
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  elaborate 5d158ea131d7e277795d290df18aadb1
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  minimalSol d87577f191ff3394f31793a1502a1694
-  solverStats bda7106cec62d0859e70f146036f8a69
-  useElim 35d43e2b1e6c87f45cf41979d665c2af
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FixSolution 5b4735b3e3cc0ca65b03d3255d2f3f6c
-  GFixSolution 1de0e7882069f13222c6effa6f71fad5
-  Result bd94cb06f2a56d7ff5b46922e02fce58
-  Result 1de0e7882069f13222c6effa6f71fad5
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  crhs 1e68f26339689c1f8619807c178004c5
-  gresSolution e0bda26e2a2d1d2bf92cc539dfce23d8
-  resSolution f55f0c46369593e7e85befdfb6dfdad8
-  sid 9ba83f62143508c4ad59807c752d0be9
-  sinfo 9105e38389ada36faf8b042779878ac6
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  toGFixSol 0bf621e3d7f5bd2f9486a81f128f985d
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  tidySymbol b70497f43e52e4ceb47dfd12bfc678f1
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  ptable e5a0c2af407911261639841c294a3c86
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  pOr cddd52acc94c0f05e5a37f140c8ad8c0
-  substf b2da8a5b5529532d5f1f59e58c725354
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cand 1258f02e99cbe417bcd003d5a26f39d7
-  EQual d48cd6c8fd87428c462add5de1e5d785
-  GBind d48cd6c8fd87428c462add5de1e5d785
-  GSolution 46cbbd29db6fed96ab8b25a466a3c498
-  emptyGMap 92c0cefa906b0bd8c716086f4cf41bb4
-  eqPred f4224b5f1cdddeabb689ccc6f25e105a
-  equalsGb a1eea7d66b334a8ef0e99eeb595abc8f
-  gMap 82947ed07d3651a7fb9e2bc24a14d8d8
-  gbEquals 7841b0490393d681b0289070301ff4e6
-  lookupQBind 02bfd5983256e2f7d7024c264dfcc4f9
-  qbPreds ee53cb8d2b8872c615fcdd1168450ebc
-  result c7035a98aefbbb2d3ba288ebc07d1dd0
-  resultGradual f4523f3b125a3fbd98f78e2fc3ff707d
-  sEnv d23bc0542d4f553904c83bd3771d1f80
-  trueEqual c1f46126190794b254239bca5fe702af
-  update 4ee25b98e93e86f189e02ab7e64de90e
-  updateGMap 9799048a8ec1338ed2d1c6863fdb35eb
-  updateGMapWithKey 60b188fabce9b3ef75fb71f6f0832931
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Utils.Progress c33622b0de2ac75cce2fddefd881586d
-  exports: 470eada57a968d087705a49045e28146
-  withProgress 711691385c363d35855a35d90e2def22
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Strict eff0af50b9ed40c32939885d02cca72b
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Class 45530f1305724ee3931a9be21b40ca7e
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-7267d41b23a58f2a75f5634a6a339d24
-  $s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s2.
-                  @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO)
-                  (Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-                     @ s2)
-                  (Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-                     @ s2)
-                  (Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-                     @ s2)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c*>
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO
-                     GHC.Base.$fMonadIO)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO
-                     GHC.Base.$fMonadIO) -}
-ac717086d062e72a35dc7b36a797342a
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SS))),1*C1(C1(U(U,1*U(1*C1(U),U))))><L,1*C1(C1(U(U,1*U(U,U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s2
-                   @ a
-                   @ b
-                   (ds :: Control.Monad.Trans.State.Strict.StateT
-                            s2 GHC.Types.IO (a -> b))
-                   (ds1 :: Control.Monad.Trans.State.Strict.StateT
-                             s2 GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (b, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO b)
-                   (\ (tpl :: s2 -> GHC.Types.IO (b, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (b, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s3 :: s2) ->
-                    GHC.Base.bindIO
-                      @ (a -> b, s2)
-                      @ (b, s2)
-                      (ds
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <s2>_N <GHC.Types.IO>_R <a -> b>_N)
-                         s3)
-                      (\ (ds2 :: (a -> b, s2)) ->
-                       case ds2 of wild { (,) f s' ->
-                       GHC.Base.bindIO
-                         @ (a, s2)
-                         @ (b, s2)
-                         (ds1
-                            `cast`
-                          (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <s2>_N <GHC.Types.IO>_R <a>_N)
-                            s')
-                         (\ (ds3 :: (a, s2))
-                            (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                          case ds3 of wild1 { (,) x s'' ->
-                          (GHC.Base.returnIO @ (b, s2) (f x, s''))
-                            `cast`
-                          (GHC.Types.N:IO[0] <(b, s2)>_R)
-                            eta })
-                           `cast`
-                         (<(a, s2)>_R ->_R Sym (GHC.Types.N:IO[0] <(b, s2)>_R)) }))) -}
-8a3cd2eea0c042ce620003db1584af9b
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fFunctorStateT -}
-6779f18bdf0334deba5b69c603f47475
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cpure ::
-    a -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><L,U><S,U>,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s2 @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (a, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO a)
-                   (\ (tpl :: s2 -> GHC.Types.IO (a, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (a, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <a>_N))
-                   (\ (s3 :: s2)
-                      (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    (GHC.Base.returnIO @ (a, s2) (a1, s3))
-                      `cast`
-                    (GHC.Types.N:IO[0] <(a, s2)>_R)
-                      eta)
-                     `cast`
-                   (<s2>_R ->_R Sym (GHC.Types.N:IO[0] <(a, s2)>_R))) -}
-5c98f409212dfe38a1f4a3deb58f41d9
-  $s$fApplicativeStateT_$s$fFunctorStateT ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s2.
-                  @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO)
-                  (Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-                     @ s2)
-                  (Control.Monad.Trans.State.Strict.$fFunctorStateT_$c<$
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO) -}
-c311d15659eaf6c3610cddc061bd2d31
-  $s$fApplicativeStateT_$s$fFunctorStateT_$cfmap ::
-    (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(C(S(SL))),1*C1(C1(U(U,1*U(U,U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s2
-                   @ a
-                   @ b
-                   (f :: a -> b)
-                   (m1 :: Control.Monad.Trans.State.Strict.StateT
-                            s2 GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (b, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO b)
-                   (\ (tpl :: s2 -> GHC.Types.IO (b, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (b, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s3 :: s2) ->
-                    GHC.Base.$
-                      @ 'GHC.Types.PtrRepLifted
-                      @ (GHC.Types.IO (a, s2))
-                      @ (GHC.Types.IO (b, s2))
-                      (GHC.Base.$fFunctorIO_$cfmap
-                         @ (a, s2)
-                         @ (b, s2)
-                         (\ (ds :: (a, s2)) -> case ds of wild { (,) a1 s' -> (f a1, s') }))
-                      (Control.Monad.Trans.State.Strict.runStateT
-                         @ s2
-                         @ GHC.Types.IO
-                         @ a
-                         m1
-                         s3))) -}
-9a4a127fb6456c5c850ee1407846a90a
-  $s$fEq(,) :: GHC.Classes.Eq (GHC.Types.Int, GHC.Types.Int)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (GHC.Types.Int, GHC.Types.Int)
-                  (GHC.Classes.$fEq(,)_$c==
-                     @ GHC.Types.Int
-                     @ GHC.Types.Int
-                     GHC.Classes.$fEqInt
-                     GHC.Classes.$fEqInt)
-                  (GHC.Classes.$fEq(,)_$c/=
-                     @ GHC.Types.Int
-                     @ GHC.Types.Int
-                     GHC.Classes.$fEqInt
-                     GHC.Classes.$fEqInt) -}
-947859b3f6b30e6e8f7a895f19302dc0
-  $sprintf2 ::
-    GHC.Base.String -> [Text.Printf.UPrintf] -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: (\ (fmts :: GHC.Base.String)
-                   (args :: [Text.Printf.UPrintf]) ->
-                 GHC.Base.map
-                   @ GHC.Types.Char
-                   @ GHC.Types.Char
-                   Text.Printf.$fIsCharChar_$cfromChar
-                   (Text.Printf.uprintfs
-                      fmts
-                      (GHC.List.reverse1
-                         @ Text.Printf.UPrintf
-                         args
-                         (GHC.Types.[] @ Text.Printf.UPrintf))
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-b1a9f6c252c264782aebd4693373fda5
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.GradualSolve.$trModule2
-                   Language.Fixpoint.Solver.GradualSolve.$trModule1) -}
-297ad0b550e42d6e76bccd6d442c2ab2
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.GradualSolve"#) -}
-8cde5616bdfdcd872dc37b5c2c3c0e62
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-e4878d50b91a39be2b145906a238a7a1
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo7 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo7 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo7
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-fca984af4a446ff9c4bf2e9438dc0d8e
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Solver.GradualSolve.$wpoly_go1
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w1
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-7d84a2e0638f9cf145149b6fcd8181ad
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-742b6b60ba47b934318bfd15e17e27c4
-  $wsolveGradual ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 4,
-     Strictness: <L,C(U())><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Inline: [0] -}
-a7d84efa8de4835ed0ab2b3c542af8b7
-  solveGradual ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,A><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.GradualSolve.solveGradual1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-8cef62dce1a50a192a197ef8035becca
-  solveGradual1 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,A><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w4 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Solver.GradualSolve.$wsolveGradual
-                   @ a
-                   w
-                   w2
-                   w3
-                   w4) -}
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fApplicativeStateT @ IO _" [ALWAYS] forall @ s2
-                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                      GHC.Types.IO)
-                                                                                        ($dFunctor :: GHC.Base.Functor
-                                                                                                        GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT @ GHC.Types.IO
-                                                       @ s2
-                                                       $dFunctor
-                                                       $dMonad
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT @ s2
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fApplicativeStateT_$c<*> @ IO _" [ALWAYS] forall @ s2
-                                                                                              ($dMonad :: GHC.Base.Monad
-                                                                                                            GHC.Types.IO)
-                                                                                              ($dFunctor :: GHC.Base.Functor
-                                                                                                              GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*> @ GHC.Types.IO
-                                                             @ s2
-                                                             $dFunctor
-                                                             $dMonad
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-      @ s2
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fApplicativeStateT_$cp1Applicative @ IO _" [ALWAYS] forall @ s2
-                                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                                      GHC.Types.IO)
-                                                                                                        ($dFunctor :: GHC.Base.Functor
-                                                                                                                        GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cp1Applicative @ GHC.Types.IO
-                                                                       @ s2
-                                                                       $dFunctor
-                                                                       $dMonad
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-      @ s2
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fApplicativeStateT_$cpure @ IO _" [ALWAYS] forall @ s2
-                                                                                               ($dMonad :: GHC.Base.Monad
-                                                                                                             GHC.Types.IO)
-                                                                                               ($dFunctor :: GHC.Base.Functor
-                                                                                                               GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cpure @ GHC.Types.IO
-                                                              @ s2
-                                                              $dFunctor
-                                                              $dMonad
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-      @ s2
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fEq(,) @ Int @ Int" [ALWAYS] forall ($dEq1 :: GHC.Classes.Eq
-                                                                                             GHC.Types.Int)
-                                                                                 ($dEq :: GHC.Classes.Eq
-                                                                                            GHC.Types.Int)
-  GHC.Classes.$fEq(,) @ GHC.Types.Int @ GHC.Types.Int $dEq $dEq1
-  = Language.Fixpoint.Solver.GradualSolve.$s$fEq(,)
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fFunctorStateT @ IO _" [ALWAYS] forall @ s2
-                                                                                    ($dFunctor :: GHC.Base.Functor
-                                                                                                    GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT @ GHC.Types.IO
-                                                   @ s2
-                                                   $dFunctor
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fFunctorStateT
-      @ s2
-"SPEC/Language.Fixpoint.Solver.GradualSolve $fFunctorStateT_$cfmap @ IO _" [ALWAYS] forall @ s2
-                                                                                           ($dFunctor :: GHC.Base.Functor
-                                                                                                           GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap @ GHC.Types.IO
-                                                          @ s2
-                                                          $dFunctor
-  = Language.Fixpoint.Solver.GradualSolve.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-      @ s2
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Instantiate.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Instantiate.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Instantiate.dump-hi
+++ /dev/null
@@ -1,1259 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:28.225294 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Instantiate [orphan module] 8002
-  interface hash: 610e19c09f7d23e3fedb7e5c9d67d095
-  ABI hash: 07f64ddcbc67d75125464ed52a72979a
-  export-list hash: 691eed97acc25746f430f8a4939cb656
-  orphan hash: 14cd061872ca31537e37b42e51042a9d
-  flag hash: e66c07131cd94bf200a36383b066c6fc
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Instantiate.instantiateAxioms
-  Language.Fixpoint.Solver.Instantiate.instantiateFInfo
-module dependencies: Language.Fixpoint.Defunctionalize
-                     Language.Fixpoint.Graph Language.Fixpoint.Graph.Deps
-                     Language.Fixpoint.Graph.Indexed Language.Fixpoint.Graph.Partition
-                     Language.Fixpoint.Graph.Reducible Language.Fixpoint.Graph.Types
-                     Language.Fixpoint.Misc Language.Fixpoint.Smt.Interface
-                     Language.Fixpoint.Smt.Serialize Language.Fixpoint.Smt.Theories
-                     Language.Fixpoint.Smt.Types Language.Fixpoint.Solver.Sanitize
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Control.Monad.IO.Class 1a4384f66ee999caf5366398edb6ca7b
-import  -/  base-4.9.1.0:Data.Char 01433d23661edb6e5ef1536ef1e6774c
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:GHC.Unicode a175ecf20bf1272d9ae31337e7da43ab
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Defunctionalize f06278cdfe70ee3d1749f82b2bff2c99
-  exports: a7e913dbe95bb42a0522da6a73270cff
-  defuncAny 8ecaba9eb6dde2ea17241b3fcc535d85
-  makeLamArg 0420f57ff165ea4cd2a9fe38becc952f
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  mapFst 54294e0357ea881c18115f64503fab09
-import  -/  Language.Fixpoint.Smt.Interface f538f0ac51ee819dc838b6422164f768
-  exports: 7bacdb37e2c46633ad6ef325fbbcf3f3
-  checkValid' cbfa59806a702c033240c6a818e09187
-  smtAssert 6415f68b06a893292ec35cfdeafa416e
-  smtDecls 3037127fceed48a40cdbc14488a968f8
-  smtPop ceb826b862d6c1556e3673f3917eec48
-  smtPush b5d45126fbc5298397a30f76fb8178f1
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  theorySymbols 75887ec43b78ed06cb3bd297eb02dc2d
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  Context a36b02023fe13e7352f35df5b8aec574
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  elaborate 5d158ea131d7e277795d290df18aadb1
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  arithmeticAxioms 9a41fb6ba095a8c61502d6bc692c5b14
-  rewriteAxioms d8b7898208f945610309f9121bb2c2e5
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  AxiomEnv 1052549cc559e08aaa78c218edda206c
-  Equ 4371743452bf5d526ebc1b176ad109f0
-  Equation 6fa1753970c5ab8b1ce3d107cde4096f
-  FInfo beb16efa76d83917c7875fd2371988e0
-  Rewrite a70f5553877272321cc8f3b254d9abac
-  SMeasure 4a2e056752f8012c795104a8a3ecb2a6
-  SubC ed16f1ec59060d74f74ea827928489f9
-  ae 50f1657d4c382caff75b8f74600f41f8
-  aenvEqs 9a91de805584745024b97f74d5f10562
-  aenvExpand d65af654b2bb6c209de41a806ef4dcfb
-  aenvFuel 59265deee7cf350635d917f4bb7c4946
-  aenvSimpl 7f242410292911109a7a896bcd5b58f3
-  aenvSyms 20a12db9277248d4c1280e21963c6fb5
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  eqArgs abb2d2563f83c6a8ffd319e966c2c2f2
-  eqBody a2f72860c6b794077dec2e68bf70b219
-  eqName 345f29767b3eccd84ea2870aa7700640
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  getEqBody 0fac72af6a3f4cb91e3940c5b31fdf58
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  slhs ff31f7ff76d5011e3329777d046753a8
-  smArgs 0fbb8f7857cd0130028e57ca0f730e83
-  smBody 1e8641959c86e835e2e0392577bec2b8
-  smDC bac7e6c297fccd4ba8271f23c2e802d4
-  smName 0a40fa8e4950e91ddb70b49f1d4cdc11
-  srhs 6299a4aca5a3764628a25206cc77779a
-  strengthenLhs 58909d3f6b10dd4b2e3a9497147f5e74
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  SEnv ae9741409aa049333ef008f3802cfecf
-  deleteSEnv a855d705d7b57927d92a2ae7459af3f3
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolString 819d69bd3146ce4a14769a9d11f1deac
-  symbolText 13814968e12e393cf26b05198caca520
-  tupConName f66fb15765dc599a241c368644fe2f5b
-  vv 4b45795aef057f81c9dd51fae36c4b72
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ETAbs cf486f62ca1036d64dac0b7fc30b355d
-  ETApp 6f9fa64dc1ea94265346dee4dfbd1dd9
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  Expression 107da2c362396043cbbbba9b8f36f5f5
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PNot c4eeca122c5c0a43c77041a865069326
-  PTrue 5df77d7a117ac1937594998bc4175838
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  eApps f11c2cb73fb3e2793415839dd912820d
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  isContraPred 471f605699b4faeb25af4529c6984906
-  isFalse a472d69a470b8b4c237f9a875adf7979
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  splitEApp 39666fa8544dc0628cbd4555f7cf39f9
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  subst1 ff192c02dc885c0c57d77566090d0798
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  eapps d63c8f2c7640ab0edbc423852a9f6287
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-  mapMExpr 6616a904920b9995d8850ccd6842422c
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State 749dca8ca0e6625b32091d445bd92b01
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Class 6d31234b0a911b56412061943d18b89e
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.State.Lazy 371607e50dde46b5f4103b3ab334a497
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-2c4a8afa811431b759a67747cf4370b0
-  $fExpression(,) ::
-    Language.Fixpoint.Types.Refinements.Expression
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  DFunId
-  {- Arity: 1, Strictness: <S(LS(LS(LS))),1*U(U,1*U(A,U(U,1*U)))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.Instantiate.$fExpression(,)_$cexpr
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Refinements.N:Expression[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)>_N)) -}
-3f6ef447989f75b679b58b8851c74495
-  $fExpression(,)_$cexpr ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <S(LS(LS(LS))),1*U(U,1*U(A,U(U,1*U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 case ww2 of ww3 { Language.Fixpoint.Types.Refinements.RR ww4 ww5 ->
-                 case ww5
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww6 { (,) ww7 ww8 ->
-                 Language.Fixpoint.Solver.Instantiate.$w$cexpr ww1 ww7 ww8 } } }) -}
-0fe5bb4feb5bbc559f54415c512520f0
-  $fShowOccurence ::
-    GHC.Show.Show Language.Fixpoint.Solver.Instantiate.Occurence
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Instantiate.Occurence
-                  Language.Fixpoint.Solver.Instantiate.$fShowOccurence_$cshowsPrec
-                  Language.Fixpoint.Solver.Instantiate.$fShowOccurence_$cshow
-                  Language.Fixpoint.Solver.Instantiate.$fShowOccurence_$cshowList -}
-0fe5bb4feb5bbc559f54415c512520f0
-  $fShowOccurence1 ::
-    Language.Fixpoint.Solver.Instantiate.Occurence -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Instantiate.Occurence)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.Instantiate.Occ ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.Instantiate.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-0fe5bb4feb5bbc559f54415c512520f0
-  $fShowOccurence_$cshow ::
-    Language.Fixpoint.Solver.Instantiate.Occurence -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(1*U(A,U(U,U,U),A),1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Instantiate.Occurence) ->
-                 Language.Fixpoint.Solver.Instantiate.$fShowOccurence_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-0fe5bb4feb5bbc559f54415c512520f0
-  $fShowOccurence_$cshowList ::
-    [Language.Fixpoint.Solver.Instantiate.Occurence] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.Instantiate.Occurence
-                   Language.Fixpoint.Solver.Instantiate.$fShowOccurence1) -}
-0fe5bb4feb5bbc559f54415c512520f0
-  $fShowOccurence_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.Instantiate.Occurence -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S,1*U(1*U(A,U(U,U,U),A),1*U,1*U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.Instantiate.Occurence)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.Instantiate.Occ ww3 ww4 ww5 ->
-                 Language.Fixpoint.Solver.Instantiate.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-8568f749d12763ca00115e7f9fb210bf
-  $s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-                     @ s)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-                     @ s)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c*>
-                     @ GHC.Types.IO
-                     @ s
-                     Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$dFunctor
-                     GHC.Base.$fMonadIO)
-                  (Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*
-                     @ GHC.Types.IO
-                     @ s
-                     Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$dFunctor
-                     GHC.Base.$fMonadIO) -}
-cfd3239474f95cb2fecff76c01aa6791
-  $s$fApplicativeStateT_$dFunctor :: GHC.Base.Functor GHC.Types.IO
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True) GHC.Base.$fFunctorIO -}
-a1ecb98fe1b296ed8bc806a220463768
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO (a -> b)
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SL))),1*C1(C1(U(U,U(1*C1(U),1*U))))><L,1*C1(C1(U(U,U(1*U,1*U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (ds2 :: Control.Monad.Trans.State.Lazy.StateT
-                             s GHC.Types.IO (a -> b))
-                   (ds3 :: Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b)
-                   (\ (tpl :: s -> GHC.Types.IO (b, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.bindIO
-                      @ (a -> b, s)
-                      @ (b, s)
-                      (ds2
-                         `cast`
-                       (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                            <s>_N <GHC.Types.IO>_R <a -> b>_N)
-                         s1)
-                      (\ (ds4 :: (a -> b, s)) ->
-                       GHC.Base.bindIO
-                         @ (a, s)
-                         @ (b, s)
-                         (ds3
-                            `cast`
-                          (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                               <s>_N <GHC.Types.IO>_R <a>_N)
-                            (case ds4 of wild { (,) f s' -> s' }))
-                         (\ (ds5 :: (a, s))
-                            (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                          (GHC.Base.returnIO
-                             @ (b, s)
-                             (case ds4 of wild { (,) f s' ->
-                              f (case ds5 of wild1 { (,) x s'' -> x }) },
-                              case ds5 of wild { (,) x s'' -> s'' }))
-                            `cast`
-                          (GHC.Types.N:IO[0] <(b, s)>_R)
-                            eta)
-                           `cast`
-                         (<(a, s)>_R ->_R Sym (GHC.Types.N:IO[0] <(b, s)>_R))))) -}
-e2a2898ff51a0551343970242ec00c86
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fFunctorStateT -}
-a54a1d3f01c7e8733fa8eeb3c19d12c2
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cpure ::
-    a -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><L,U><S,U>,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (a, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a)
-                   (\ (tpl :: s -> GHC.Types.IO (a, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (a, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <a>_N))
-                   (\ (s1 :: s)
-                      (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    (GHC.Base.returnIO @ (a, s) (a1, s1))
-                      `cast`
-                    (GHC.Types.N:IO[0] <(a, s)>_R)
-                      eta)
-                     `cast`
-                   (<s>_R ->_R Sym (GHC.Types.N:IO[0] <(a, s)>_R))) -}
-8fc9f4baae4ade2e8bea0610dbac7fc5
-  $s$fApplicativeStateT_$s$fFunctorStateT ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fFunctorStateT_$c<$
-                     @ GHC.Types.IO
-                     @ s
-                     GHC.Base.$fFunctorIO) -}
-3a83583726f39878b449629edadd7ecc
-  $s$fApplicativeStateT_$s$fFunctorStateT_$cfmap ::
-    (a -> b)
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(C(S(SL))),1*C1(C1(U(U,U(1*U,1*U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (f :: a -> b)
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b)
-                   (\ (tpl :: s -> GHC.Types.IO (b, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.$
-                      @ 'GHC.Types.PtrRepLifted
-                      @ (GHC.Types.IO (a, s))
-                      @ (GHC.Types.IO (b, s))
-                      (GHC.Base.$fFunctorIO_$cfmap
-                         @ (a, s)
-                         @ (b, s)
-                         (\ (ds2 :: (a, s)) ->
-                          (f (case ds2 of wild { (,) a1 s' -> a1 }),
-                           case ds2 of wild { (,) a1 s' -> s' })))
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ GHC.Types.IO
-                         @ a
-                         m1
-                         s1))) -}
-80871f4d03a51c9ea986cd08f0009cc7
-  $s$fMonadStateT ::
-    GHC.Base.Monad
-      (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$cp1Monad
-                     @ s)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$c>>=
-                     @ s)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$c>>
-                     @ s)
-                  (Control.Monad.Trans.State.Lazy.$fMonadStateT_$creturn
-                     @ GHC.Types.IO
-                     @ s
-                     GHC.Base.$fMonadIO)
-                  (Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$cfail
-                     @ s) -}
-8cece1aa7869d89f23573eb48d1a75e7
-  $s$fMonadStateT_$s$fMonadStateT_$c>> ::
-    Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SL))),1*C1(C1(U(U,1*U(A,1*U))))><L,1*C1(C1(U(U,U)))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a)
-                   (k :: Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b)
-                   (\ (tpl :: s -> GHC.Types.IO (b, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.bindIO
-                      @ (a, s)
-                      @ (b, s)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ GHC.Types.IO
-                         @ a
-                         m1
-                         s1)
-                      (\ (ds2 :: (a, s)) ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ GHC.Types.IO
-                         @ b
-                         k
-                         (case ds2 of wild { (,) a1 s' -> s' })))) -}
-5a5b9e63fb698feefcc1875c4e654208
-  $s$fMonadStateT_$s$fMonadStateT_$c>>= ::
-    Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-    -> (a -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b)
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SL))),1*C1(C1(U(U,U(1*U,1*U))))><L,1*C1(C1(C1(U(U,U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (m1 :: Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a)
-                   (k :: a
-                         -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (b, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO b)
-                   (\ (tpl :: s -> GHC.Types.IO (b, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.bindIO
-                      @ (a, s)
-                      @ (b, s)
-                      (Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ GHC.Types.IO
-                         @ a
-                         m1
-                         s1)
-                      (\ (ds2 :: (a, s)) ->
-                       Control.Monad.Trans.State.Lazy.runStateT
-                         @ s
-                         @ GHC.Types.IO
-                         @ b
-                         (k (case ds2 of wild { (,) a1 s' -> a1 }))
-                         (case ds2 of wild { (,) a1 s' -> s' })))) -}
-3bbdbabea8c7fc0eecd2f92536903995
-  $s$fMonadStateT_$s$fMonadStateT_$cfail ::
-    GHC.Base.String
-    -> Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a
-  {- Arity: 3, Strictness: <B,U><B,A><B,U>x,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s @ a (str :: GHC.Base.String) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> GHC.Types.IO (a, s))
-                   @ (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO a)
-                   (\ (tpl :: s -> GHC.Types.IO (a, s)) -> tpl)
-                     `cast`
-                   (<s -> GHC.Types.IO (a, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Lazy.N:StateT[0]
-                                  <s>_N <GHC.Types.IO>_R <a>_N))
-                   (\ (ds2 :: s) -> GHC.Base.$fMonadIO_$cfail @ (a, s) str)) -}
-4c3ab11b777b967e41af55e3f104c612
-  $s$fMonadStateT_$s$fMonadStateT_$cp1Monad ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Lazy.StateT s GHC.Types.IO)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT -}
-90808654df2759a342c3239af1a1d144
-  $slookup1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-cb97f5d028a86beaf99918772c1e6528
-  $tc'EvalEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2267916585918696989##
-                   545891970995556253##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tc'EvalEnv1) -}
-d803f204597f315347d939ae456e2dc7
-  $tc'EvalEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'EvalEnv"#) -}
-3eb25c25ad7c799d584ccc52652a3495
-  $tc'KN :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17961612722299634402##
-                   17280750351979933180##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tc'KN1) -}
-266fc501fa7bbfb178fbaf590b078370
-  $tc'KN1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KN"#) -}
-58f14ec0831c62cc3b5d4df1ffd02ea3
-  $tc'Occ :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3498336445914903249##
-                   7488425854807670941##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tc'Occ1) -}
-7225532a259e810eb88c60b3e4b63db0
-  $tc'Occ1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Occ"#) -}
-e229a0b5a94e1bcea84d069909cd332e
-  $tcEvalEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8543338788731278137##
-                   15979968707495966862##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tcEvalEnv1) -}
-c3c5ef7fc4aa165ecd8da3ad1d7fe4f8
-  $tcEvalEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "EvalEnv"#) -}
-b5a982c9e69765d40a5c2fe00567b6ed
-  $tcKnowledge :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1185714558129511920##
-                   14691811144131868147##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tcKnowledge1) -}
-da0583c72e0b4ef07cd7ad79343ce792
-  $tcKnowledge1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Knowledge"#) -}
-f92533d8558204807d54d9a8211b5e20
-  $tcOccurence :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13040542563773723931##
-                   12733220405034154474##
-                   Language.Fixpoint.Solver.Instantiate.$trModule
-                   Language.Fixpoint.Solver.Instantiate.$tcOccurence1) -}
-4c3c52a4962e0b9d40990b6bbee25cbb
-  $tcOccurence1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Occurence"#) -}
-96be166c528c8f72dfde8026bb8caaa9
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Instantiate.$trModule2
-                   Language.Fixpoint.Solver.Instantiate.$trModule1) -}
-781737532d3048a55df489a5a1fe3270
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.Instantiate"#) -}
-1699202f9cbb193a697615b50c8ac0a2
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-ac64a972396422a1747f3a7cbd554aba
-  $w$cexpr ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, Strictness: <L,U><L,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                   (Language.Fixpoint.Types.Refinements.$dmsubst2
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      (GHC.Types.:
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         (ww1, Language.Fixpoint.Types.Refinements.$WEVar ww)
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)))
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ Language.Fixpoint.Types.Refinements.Expr))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                   ww2) -}
-a00faed3b4b644f1948e1aec19ba0539
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Solver.Instantiate.FuelMap
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5,
-     Strictness: <S,U><L,1*U(A,U(U,U,U),A)><L,1*U><L,1*U><L,U>,
-     Inline: [0] -}
-ed19861d404394519141647a87f6a1d6
-  $winstantiateAxioms ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.SubC c
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.SubC c #)
-  {- Arity: 12,
-     Strictness: <L,1*U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,1*U,1*U)><L,U(U,U,U,U,U,U,U,U,U,U)><L,U(A,U)><L,1*U><S,U><S,U><S,U><L,U><S,U><S,U><L,U(U,U(U,U(U,U)),U(U,U(U,U)),U,U,U)><S,U>,
-     Inline: [0] -}
-dc90cba7cf2c0e5993a8856bb09c109c
-  $winstantiateFInfo ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC c)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC c)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId c
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.FInfo c #)
-  {- Arity: 14,
-     Strictness: <L,U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,U,U)><L,U(U,U,U,U,U,U,U,U,U,U)><S,U><L,U><L,U(U,U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U(U,U,U,U,U)><S,U>,
-     Inline: [0] -}
-9f46ddbadb23a232a117028883221bd3
-  $wpoly_go1 ::
-    GHC.Integer.Type.Integer
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-4515def796f06e7df7430c9b00f70bf4
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-0fd4a5fed5580591acadbc6ade13429b
-  data EvalEnv
-    = EvalEnv {evId :: GHC.Types.Int,
-               evSequence :: [(Language.Fixpoint.Types.Refinements.Expr,
-                               Language.Fixpoint.Types.Refinements.Expr)],
-               _evAEnv :: Language.Fixpoint.Types.Constraints.AxiomEnv}
-33d54bbc61a397c6e08dba0956fa7492
-  type EvalST a =
-    Control.Monad.Trans.State.Lazy.StateT
-      Language.Fixpoint.Solver.Instantiate.EvalEnv GHC.Types.IO a
-16f2acd475f92f3bf2be071634be8582
-  type Fuel = GHC.Types.Int
-aa440ffd39f6aaaa3b5f735d6b081b9e
-  type FuelMap =
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Solver.Instantiate.Fuel)]
-c186853c7d7f62b273d7078c71a91571
-  data Knowledge
-    = KN {knSels :: ![(Language.Fixpoint.Types.Refinements.Expr,
-                       Language.Fixpoint.Types.Refinements.Expr)],
-          knEqs :: ![(Language.Fixpoint.Types.Refinements.Expr,
-                      Language.Fixpoint.Types.Refinements.Expr)],
-          knSims :: ![Language.Fixpoint.Types.Constraints.Rewrite],
-          knAms :: ![Language.Fixpoint.Types.Constraints.Equation],
-          knContext :: GHC.Types.IO Language.Fixpoint.Smt.Types.Context,
-          knPreds :: ![(Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Sorts.Sort)]
-                      -> Language.Fixpoint.Types.Refinements.Expr
-                      -> Language.Fixpoint.Smt.Types.Context
-                      -> GHC.Types.IO GHC.Types.Bool,
-          knLams :: [(Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Sorts.Sort)]}
-0fe5bb4feb5bbc559f54415c512520f0
-  data Occurence
-    = Occ {_ofun :: Language.Fixpoint.Types.Names.Symbol,
-           _oargs :: [Language.Fixpoint.Types.Refinements.Expr],
-           ofuel :: Language.Fixpoint.Solver.Instantiate.FuelMap}
-7a29da7d13c54a3549cd28a286c7b9b3
-  _evAEnv ::
-    Language.Fixpoint.Solver.Instantiate.EvalEnv
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-  RecSel Left Language.Fixpoint.Solver.Instantiate.EvalEnv
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS),1*U(A,A,1*U(U,U,U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.EvalEnv) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.EvalEnv ds3 ds4 ds5 ->
-                 ds5 }) -}
-d57b8ef5b4a4752eb47b0c681753d98b
-  _oargs ::
-    Language.Fixpoint.Solver.Instantiate.Occurence
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Occurence
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Occurence) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.Occ ds3 ds4 ds5 ->
-                 ds4 }) -}
-ccc6849ba26cab35d0be73a84e8da39f
-  _ofun ::
-    Language.Fixpoint.Solver.Instantiate.Occurence
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Occurence
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U(U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Occurence) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.Occ ds3 ds4 ds5 ->
-                 ds3 }) -}
-198d9aa7a6114000cf3a2f35bed3842c
-  evId ::
-    Language.Fixpoint.Solver.Instantiate.EvalEnv -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Instantiate.EvalEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U(U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.EvalEnv) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.EvalEnv ds3 ds4 ds5 ->
-                 ds3 }) -}
-c1d6d9a8605bdd08f078f8c9c357243e
-  evSequence ::
-    Language.Fixpoint.Solver.Instantiate.EvalEnv
-    -> [(Language.Fixpoint.Types.Refinements.Expr,
-         Language.Fixpoint.Types.Refinements.Expr)]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.EvalEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.EvalEnv) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.EvalEnv ds3 ds4 ds5 ->
-                 ds4 }) -}
-1797d4b62f95cee7b70c9aaf07d66492
-  instantiateAxioms ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.SubC c
-    -> GHC.Types.IO (Language.Fixpoint.Types.Constraints.SubC c)
-  {- Arity: 8,
-     Strictness: <L,1*U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,1*U,1*U)><L,U(U,U,U,U,U,U,U,U,U,U)><L,U(A,U)><L,1*U><S(SSSLS),1*U(U,U,U,U,U)><S,U><L,U(U,U(U,U(U,U)),U(U,U(U,U)),U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Instantiate.instantiateAxioms1
-                  `cast`
-                (forall (c :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Environments.BindEnv>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv
-                         Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.AxiomEnv>_R
-                 ->_R <GHC.Integer.Type.Integer>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SubC c>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.SubC c>_R)) -}
-44bae1196d121a54282f1dddb366a18f
-  instantiateAxioms1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.SubC c
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.SubC c #)
-  {- Arity: 8,
-     Strictness: <L,1*U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,1*U,1*U)><L,U(U,U,U,U,U,U,U,U,U,U)><L,U(A,U)><L,1*U><S(SSSLS),1*U(U,U,U,U,U)><S,U><L,U(U,U(U,U(U,U)),U(U,U(U,U)),U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (8, True, False)
-                (\ @ c
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Smt.Types.Context)
-                   (w2 :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (w3 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w4 :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w5 :: GHC.Integer.Type.Integer)
-                   (w6 :: Language.Fixpoint.Types.Constraints.SubC c)
-                   (w7 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w4 of ww { Language.Fixpoint.Types.Constraints.AEnv ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Solver.Instantiate.$winstantiateAxioms
-                   @ c
-                   w
-                   w1
-                   w2
-                   w3
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   w5
-                   w6
-                   w7 }) -}
-89f936ce04985363f5766dd24adf3c64
-  instantiateFInfo ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Constraints.FInfo c
-    -> GHC.Types.IO (Language.Fixpoint.Types.Constraints.FInfo c)
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,U,U)><L,U(U,U,U,U,U,U,U,U,U,U)><S(SLLLLLLLLLL),U(U,U,U(U,U),U,U,U,U,U,U,U,U(U,U,U,U,U))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Instantiate.instantiateFInfo1
-                  `cast`
-                (forall (c :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Smt.Types.Context>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo c>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.FInfo c>_R)) -}
-4158c97ac4c84700e94420d07bb338b2
-  instantiateFInfo1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Smt.Types.Context
-    -> Language.Fixpoint.Types.Constraints.FInfo c
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.FInfo c #)
-  {- Arity: 4,
-     Strictness: <L,U(A,A,A,A,A,A,A,U,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,A,A,A,U,U)><L,U(U,U,U,U,U,U,U,U,U,U)><S(SLLLLLLLLLL),U(U,U,U(U,U),U,U,U,U,U,U,U,U(U,U,U,U,U))><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ c
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Smt.Types.Context)
-                   (w2 :: Language.Fixpoint.Types.Constraints.FInfo c)
-                   (w3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Solver.Instantiate.$winstantiateFInfo
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   w3 }) -}
-631bad741fc73c235da738462e32dd0b
-  knAms ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLL),1*U(A,A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds6 }) -}
-000fb6e173c584b505ce853dd4d7c932
-  knContext ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> GHC.Types.IO Language.Fixpoint.Smt.Types.Context
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLL),1*U(A,A,A,A,1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds7 }) -}
-5af24a8a5773e1d92cc6009715c46a23
-  knEqs ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [(Language.Fixpoint.Types.Refinements.Expr,
-         Language.Fixpoint.Types.Refinements.Expr)]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLL),1*U(A,U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds4 }) -}
-5205122a9453d29d5ec318b46954bcd5
-  knLams ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLS),1*U(A,A,A,A,A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds9 }) -}
-a79adea2474c1bb1647dc539f147014c
-  knPreds ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Smt.Types.Context
-    -> GHC.Types.IO GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSL),1*U(A,A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds8 }) -}
-c039d493dcb7f338ecc876a4c61e41b6
-  knSels ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [(Language.Fixpoint.Types.Refinements.Expr,
-         Language.Fixpoint.Types.Refinements.Expr)]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLL),1*U(U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds3 }) -}
-01fae4cd92db550aa3939dbc4b795232
-  knSims ::
-    Language.Fixpoint.Solver.Instantiate.Knowledge
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Knowledge
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLL),1*U(A,A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Knowledge) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.KN ds3 ds4 ds5 ds6 ds7 ds8 ds9 ->
-                 ds5 }) -}
-58d25209712f574c981d35c7a22f9a08
-  ofuel ::
-    Language.Fixpoint.Solver.Instantiate.Occurence
-    -> Language.Fixpoint.Solver.Instantiate.FuelMap
-  RecSel Left Language.Fixpoint.Solver.Instantiate.Occurence
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds2 :: Language.Fixpoint.Solver.Instantiate.Occurence) ->
-                 case ds2 of wild { Language.Fixpoint.Solver.Instantiate.Occ ds3 ds4 ds5 ->
-                 ds5 }) -}
-instance Language.Fixpoint.Types.Refinements.Expression [(,)]
-  = Language.Fixpoint.Solver.Instantiate.$fExpression(,)
-instance GHC.Show.Show [Language.Fixpoint.Solver.Instantiate.Occurence]
-  = Language.Fixpoint.Solver.Instantiate.$fShowOccurence
-"SPEC/Language.Fixpoint.Solver.Instantiate $fApplicativeStateT @ IO _" [ALWAYS] forall @ s
-                                                                                       ($dMonad :: GHC.Base.Monad
-                                                                                                     GHC.Types.IO)
-                                                                                       ($dFunctor :: GHC.Base.Functor
-                                                                                                       GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT @ GHC.Types.IO
-                                                     @ s
-                                                     $dFunctor
-                                                     $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fApplicativeStateT_$c<*> @ IO _" [ALWAYS] forall @ s
-                                                                                             ($dMonad :: GHC.Base.Monad
-                                                                                                           GHC.Types.IO)
-                                                                                             ($dFunctor :: GHC.Base.Functor
-                                                                                                             GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$c<*> @ GHC.Types.IO
-                                                           @ s
-                                                           $dFunctor
-                                                           $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fApplicativeStateT_$cp1Applicative @ IO _" [ALWAYS] forall @ s
-                                                                                                       ($dMonad :: GHC.Base.Monad
-                                                                                                                     GHC.Types.IO)
-                                                                                                       ($dFunctor :: GHC.Base.Functor
-                                                                                                                       GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$cp1Applicative @ GHC.Types.IO
-                                                                     @ s
-                                                                     $dFunctor
-                                                                     $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fApplicativeStateT_$cpure @ IO _" [ALWAYS] forall @ s
-                                                                                              ($dMonad :: GHC.Base.Monad
-                                                                                                            GHC.Types.IO)
-                                                                                              ($dFunctor :: GHC.Base.Functor
-                                                                                                              GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fApplicativeStateT_$cpure @ GHC.Types.IO
-                                                            @ s
-                                                            $dFunctor
-                                                            $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fFunctorStateT @ IO _" [ALWAYS] forall @ s
-                                                                                   ($dFunctor :: GHC.Base.Functor
-                                                                                                   GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fFunctorStateT @ GHC.Types.IO
-                                                 @ s
-                                                 $dFunctor
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fFunctorStateT
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fFunctorStateT_$cfmap @ IO _" [ALWAYS] forall @ s
-                                                                                          ($dFunctor :: GHC.Base.Functor
-                                                                                                          GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fFunctorStateT_$cfmap @ GHC.Types.IO
-                                                        @ s
-                                                        $dFunctor
-  = Language.Fixpoint.Solver.Instantiate.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fMonadStateT @ IO _" [ALWAYS] forall @ s
-                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                               GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT @ GHC.Types.IO
-                                               @ s
-                                               $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fMonadStateT_$c>> @ IO _" [ALWAYS] forall @ s
-                                                                                      ($dMonad :: GHC.Base.Monad
-                                                                                                    GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>> @ GHC.Types.IO
-                                                    @ s
-                                                    $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$c>>
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fMonadStateT_$c>>= @ IO _" [ALWAYS] forall @ s
-                                                                                       ($dMonad :: GHC.Base.Monad
-                                                                                                     GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$c>>= @ GHC.Types.IO
-                                                     @ s
-                                                     $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$c>>=
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fMonadStateT_$cfail @ IO _" [ALWAYS] forall @ s
-                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                      GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cfail @ GHC.Types.IO
-                                                      @ s
-                                                      $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$cfail
-      @ s
-"SPEC/Language.Fixpoint.Solver.Instantiate $fMonadStateT_$cp1Monad @ IO _" [ALWAYS] forall @ s
-                                                                                           ($dMonad :: GHC.Base.Monad
-                                                                                                         GHC.Types.IO)
-  Control.Monad.Trans.State.Lazy.$fMonadStateT_$cp1Monad @ GHC.Types.IO
-                                                         @ s
-                                                         $dMonad
-  = Language.Fixpoint.Solver.Instantiate.$s$fMonadStateT_$s$fMonadStateT_$cp1Monad
-      @ s
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Monad.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Monad.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Monad.dump-hi
+++ /dev/null
@@ -1,2090 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:19.818343 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Monad [family instance module] 8002
-  interface hash: 3e1af0bdd6ce4a910f204afacdb31813
-  ABI hash: ec5eb2d6f95c72ebd961128f417a28ca
-  export-list hash: beab3c559e9618f79ddb38a602dc9a12
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: bb5aed608f542d9af47cb433bccad4cd
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Monad.checkSat
-  Language.Fixpoint.Solver.Monad.filterRequired
-  Language.Fixpoint.Solver.Monad.filterValid
-  Language.Fixpoint.Solver.Monad.filterValidGradual
-  Language.Fixpoint.Solver.Monad.getBinds
-  Language.Fixpoint.Solver.Monad.runSolverM
-  Language.Fixpoint.Solver.Monad.smtEnablembqi
-  Language.Fixpoint.Solver.Monad.stats
-  Language.Fixpoint.Solver.Monad.tickIter
-  Language.Fixpoint.Solver.Monad.SolveM
-  Language.Fixpoint.Solver.Monad.Stats{numIter}
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Interface Language.Fixpoint.Smt.Serialize
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-                     Language.Fixpoint.Utils.Progress
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-  siQuery 4e84f9d57ae07ea9ec3747b32c2c102f
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  mapSnd 80590cb19a206f88138689a227d85b17
-import  -/  Language.Fixpoint.Smt.Interface f538f0ac51ee819dc838b6422164f768
-  exports: 7bacdb37e2c46633ad6ef325fbbcf3f3
-  cleanupContext dfecdba7a4bc5ce1a7d160bff8fab1a5
-  makeContextWithSEnv aa3bfd7b0950ac8c47069b3436c2f4fc
-  smtAssert 6415f68b06a893292ec35cfdeafa416e
-  smtAssertAxiom 9826320294302a2b42e0027a3a9a0f41
-  smtBracket 34a4108d598c0350dee16480cf6e485f
-  smtCheckSat bca8fc8c2463e4040546e6f9ebbdc1c3
-  smtCheckUnsat 7d0e7aefc62ddaecca2eeca3d957327a
-  smtDecl ae52875bf446f015cafd9d6d7deb039f
-  smtDistinct e1883764abfd0d8cc4117ab11da711d0
-  smtWrite 3fdb47f305e08b1bdde2cd7f5995f42c
-import  -/  Language.Fixpoint.Smt.Serialize 753468bc986eaaa10f11b5a05ccb4467
-  exports: 68b0cd2d88b0c28a403c19637edecd1c
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  axiomLiterals 66fdfe80672f9ea1cfda87d31cd5edd2
-  theorySymbols 75887ec43b78ed06cb3bd297eb02dc2d
-import  -/  Language.Fixpoint.Smt.Types c32f4046d289f1736e5eb4fe5760ced2
-  exports: c7b078aa1030bf306e2bdc4ea4060c3a
-  Context a36b02023fe13e7352f35df5b8aec574
-  tsInterp 24ddef8198d173b9c354715d113d90d3
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  elaborate 5d158ea131d7e277795d290df18aadb1
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  allowHO 581420630f74330e11013d86878bcae3
-  allowHOqs 99ea7562199e43b34afee6d6b09ced7c
-  srcFile 139239bd1df5627505d07a6c910c85e3
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  GInfo 1052549cc559e08aaa78c218edda206c
-  HOI 0fd22b30b1b7ef3bea20b37d6995c231
-  asserts 39bbdb6193c8af948ed932b55699661b
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  dLits 520fb0647a01216c687192a56bf631fa
-  hoInfo 4dfecf7fbd32320e946bf9df4b0e1a98
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  SEnv ae9741409aa049333ef008f3802cfecf
-  SolEnv 1cdf960e8876df6c7f306595290aad96
-  SolEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  DocTable 23959c774350b15e84347a7f8a8a1618
-  PTable f56e84dc8639a434ea5dee7210b75707
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  PNot c4eeca122c5c0a43c77041a865069326
-  RR 770fb6f952861174841244857625a4cc
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  isFunctionSortedReft 44387488d4fedbcfe71a839dcc240880
-  trueReft 97751329ee522413e77af4a7674ff14b
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cand 1258f02e99cbe417bcd003d5a26f39d7
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-import  -/  Language.Fixpoint.Utils.Progress c33622b0de2ac75cce2fddefd881586d
-  exports: 470eada57a968d087705a49045e28146
-  progressTick 4251deeb770e243019a2ae5545dd09a2
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Class 6d31234b0a911b56412061943d18b89e
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Strict eff0af50b9ed40c32939885d02cca72b
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Class 45530f1305724ee3931a9be21b40ca7e
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.State.Strict 978f397cc30fa26d55cf117e3751a6ed
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fGenericStats ::
-    GHC.Generics.Generic Language.Fixpoint.Solver.Monad.Stats
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Monad.Stats
-                  Language.Fixpoint.Solver.Monad.$fGenericStats_$cfrom
-                  Language.Fixpoint.Solver.Monad.$fGenericStats_$cto -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fGenericStats1 ::
-    Language.Fixpoint.Solver.Monad.Stats
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "numCstr")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-           GHC.Generics.:*: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "numIter")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "numBrkt")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "numChck")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "numVald")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedUnpack)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R GHC.Types.Int))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (w :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case w of ww { Language.Fixpoint.Solver.Monad.Stats ww1 ww2 ww3 ww4 ww5 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "numCstr")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "numIter")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "numBrkt")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "numChck")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "numVald")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Int)))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "numCstr")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "numIter")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       @ x
-                       (GHC.Types.I# ww1)
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "numCstr")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                       (GHC.Types.I# ww2)
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "numIter")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N)))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "numBrkt")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "numChck")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "numVald")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       @ x
-                       (GHC.Types.I# ww3)
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "numBrkt")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "numChck")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "numVald")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                          @ x
-                          (GHC.Types.I# ww4)
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "numChck")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack>_P
-                                         <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                          (GHC.Types.I# ww5)
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "numVald")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R GHC.Types.Int>_R) <x>_N)))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "numCstr")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "numIter")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "numBrkt")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "numChck")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedUnpack)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R GHC.Types.Int)
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "numVald")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.SourceStrict
-                                                                                      'GHC.Generics.DecidedUnpack)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      GHC.Types.Int)))>_R) <x>_N) }) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fGenericStats_$cfrom ::
-    Language.Fixpoint.Solver.Monad.Stats
-    -> GHC.Generics.Rep Language.Fixpoint.Solver.Monad.Stats x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.$fGenericStats1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Solver.Monad.Stats>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Stats"
-                                       "Language.Fixpoint.Solver.Monad"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "numCstr")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "numIter")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Int))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "numBrkt")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Int)
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "numChck")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedUnpack)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Types.Int)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "numVald")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  GHC.Types.Int))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Solver.Monad.Rep_Stats[0]))) <x>_N) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fGenericStats_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Solver.Monad.Stats x
-    -> Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SS))),1*U(1*U(U,U),1*U(U,1*U(U,U)))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (w :: GHC.Generics.Rep Language.Fixpoint.Solver.Monad.Stats x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Solver.Monad.Rep_Stats[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Stats"
-                                        "Language.Fixpoint.Solver.Monad"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "numCstr")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedUnpack)
-                                            (GHC.Generics.Rec0 GHC.Types.Int)
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "numIter")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.Rec0 GHC.Types.Int))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "numBrkt")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.Rec0 GHC.Types.Int)
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "numChck")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                               (GHC.Generics.Rec0
-                                                                                  GHC.Types.Int)
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "numVald")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedUnpack)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   GHC.Types.Int))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "numCstr")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack)
-                                         (GHC.Generics.Rec0 GHC.Types.Int)
-                                       GHC.Generics.:*: GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "numIter")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedUnpack)
-                                                          (GHC.Generics.Rec0 GHC.Types.Int))
-                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "numBrkt")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedUnpack)
-                                                          (GHC.Generics.Rec0 GHC.Types.Int)
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "numChck")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedUnpack)
-                                                                            (GHC.Generics.Rec0
-                                                                               GHC.Types.Int)
-                                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                                             ('GHC.Generics.MetaSel
-                                                                                                ('GHC.Base.Just
-                                                                                                   "numVald")
-                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                'GHC.Generics.SourceStrict
-                                                                                                'GHC.Generics.DecidedUnpack)
-                                                                                             (GHC.Generics.Rec0
-                                                                                                GHC.Types.Int)))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww4
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "numCstr")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Int>_R
-                                <x>_P)) of dt { GHC.Types.I# dt1 ->
-                 case ww5
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "numIter")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Int>_R
-                                <x>_P)) of dt2 { GHC.Types.I# dt3 ->
-                 case ww7
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "numBrkt")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Int>_R
-                                <x>_P)) of dt4 { GHC.Types.I# dt5 ->
-                 case ww10
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "numChck")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Int>_R
-                                <x>_P)) of dt6 { GHC.Types.I# dt7 ->
-                 case ww11
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "numVald")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Int>_R
-                                <x>_P)) of dt8 { GHC.Types.I# dt9 ->
-                 Language.Fixpoint.Solver.Monad.Stats
-                   dt1
-                   dt3
-                   dt5
-                   dt7
-                   dt9 } } } } } } } } }) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fNFDataStats ::
-    Control.DeepSeq.NFData Language.Fixpoint.Solver.Monad.Stats
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.Monad.$fNFDataStats_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Solver.Monad.Stats>_N)) -}
-99bd08b0d991f37d62c967f637cee937
-  $fNFDataStats1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Stats"
-            "Language.Fixpoint.Solver.Monad"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.S1
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "numCstr")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedUnpack)
-                (GHC.Generics.Rec0 GHC.Types.Int)
-              GHC.Generics.:*: GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "numIter")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.Rec0 GHC.Types.Int))
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "numBrkt")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.Rec0 GHC.Types.Int)
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "numChck")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Int)
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "numVald")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.Rec0
-                                                                       GHC.Types.Int))))))
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SS))),1*U(1*U(1*U,1*U),1*U(1*U,1*U(1*U,1*U)))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.$fNFDataStats2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Stats"
-                                "Language.Fixpoint.Solver.Monad"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                ((GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "numCstr")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "numIter")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "numBrkt")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "numChck")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Int)
-                                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           ('GHC.Base.Just
-                                                                                              "numVald")
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedUnpack)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           GHC.Types.Int)))))>_N)) -}
-0a75964663f3f33aec0d412210cff382
-  $fNFDataStats2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Stats"
-         "Language.Fixpoint.Solver.Monad"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.S1
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "numCstr")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.Rec0 GHC.Types.Int)
-           GHC.Generics.:*: GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "numIter")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.Rec0 GHC.Types.Int))
-          GHC.Generics.:*: (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "numBrkt")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.Rec0 GHC.Types.Int)
-                            GHC.Generics.:*: (GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "numChck")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.Rec0 GHC.Types.Int)
-                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "numVald")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedUnpack)
-                                                                 (GHC.Generics.Rec0
-                                                                    GHC.Types.Int)))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SS))),1*U(1*U(1*U,1*U),1*U(1*U,1*U(1*U,1*U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Stats"
-                              "Language.Fixpoint.Solver.Monad"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              ((GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "numCstr")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedUnpack)
-                                  (GHC.Generics.Rec0 GHC.Types.Int)
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "numIter")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Int))
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "numBrkt")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Int)
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "numChck")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedUnpack)
-                                                                     (GHC.Generics.Rec0
-                                                                        GHC.Types.Int)
-                                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         ('GHC.Base.Just
-                                                                                            "numVald")
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedUnpack)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         GHC.Types.Int)))))
-                           a1) ->
-                 case w `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Stats"
-                                   "Language.Fixpoint.Solver.Monad"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   ((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "numCstr")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedUnpack)
-                                       (GHC.Generics.Rec0 GHC.Types.Int)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "numIter")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedUnpack)
-                                                        (GHC.Generics.Rec0 GHC.Types.Int))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "numBrkt")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedUnpack)
-                                                        (GHC.Generics.Rec0 GHC.Types.Int)
-                                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                                          ('GHC.Generics.MetaSel
-                                                                             ('GHC.Base.Just
-                                                                                "numChck")
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedUnpack)
-                                                                          (GHC.Generics.Rec0
-                                                                             GHC.Types.Int)
-                                                                        GHC.Generics.:*: GHC.Generics.S1
-                                                                                           ('GHC.Generics.MetaSel
-                                                                                              ('GHC.Base.Just
-                                                                                                 "numVald")
-                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                              'GHC.Generics.SourceStrict
-                                                                                              'GHC.Generics.DecidedUnpack)
-                                                                                           (GHC.Generics.Rec0
-                                                                                              GHC.Types.Int))))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <(GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "numCstr")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "numIter")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "numBrkt")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int)
-                                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "numChck")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Int)
-                                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           ('GHC.Base.Just
-                                                                                              "numVald")
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedUnpack)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           GHC.Types.Int)))>_R) <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww4 of tpl { DEFAULT ->
-                 case ww5 of tpl1 { DEFAULT ->
-                 case ww7 of tpl2 { DEFAULT ->
-                 case ww10 of tpl3 { DEFAULT ->
-                 case ww11 of tpl4 { DEFAULT -> GHC.Tuple.() } } } } } } } } }) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fNFDataStats_$s$dmrnf ::
-    Language.Fixpoint.Solver.Monad.Stats -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 Language.Fixpoint.Solver.Monad.$fNFDataStats1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Solver.Monad.Rep_Stats[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Solver.Monad.$fGenericStats_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fPTableStats ::
-    Language.Fixpoint.Types.PrettyPrint.PTable
-      Language.Fixpoint.Solver.Monad.Stats
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>m2,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.Monad.$fPTableStats_$cptable
-                  `cast`
-                (Sym (Language.Fixpoint.Types.PrettyPrint.N:PTable[0]
-                          <Language.Fixpoint.Solver.Monad.Stats>_N)) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fPTableStats1 ::
-    Language.Fixpoint.Solver.Monad.Stats
-    -> [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)]
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>m2, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case Language.Fixpoint.Solver.Monad.$w$cptable
-                        w of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.:
-                   @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                   ww1
-                   ww2 }) -}
-642820f450f6c78ca54ca8ed81cc1351
-  $fPTableStats10 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Monad.$fPTableStats_s4
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Monad.$fPTableStats11
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-cafcbd96c5acc3d2828426af7768e934
-  $fPTableStats11 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Monad.$fPTableStats_s4) -}
-d4fc077e7fce7839660cdbc465b66b89
-  $fPTableStats2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Monad.$fPTableStats_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Monad.$fPTableStats3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-35f6a3d1ca7418d8b6261ad2bffc43a9
-  $fPTableStats3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Monad.$fPTableStats_s) -}
-ae3dce28540a4292440a4404f5003146
-  $fPTableStats4 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Monad.$fPTableStats_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Monad.$fPTableStats5
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-3f5ae912ed08e7c85af4d810503076a8
-  $fPTableStats5 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Monad.$fPTableStats_s1) -}
-b65ed9c878d9358cc04a389402c56c4f
-  $fPTableStats6 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Monad.$fPTableStats_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Monad.$fPTableStats7
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-b6d19b5a6405dbe506a55f26f82aae19
-  $fPTableStats7 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Monad.$fPTableStats_s2) -}
-dcdac907c7ad161c0aa0d7bd609eebca
-  $fPTableStats8 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Monad.$fPTableStats_s3
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Monad.$fPTableStats9
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-9ccc67342e6d6b50f9c5171defceee93
-  $fPTableStats9 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Monad.$fPTableStats_s3) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fPTableStats_$cptable ::
-    Language.Fixpoint.Solver.Monad.Stats
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.$fPTableStats1
-                  `cast`
-                (<Language.Fixpoint.Solver.Monad.Stats>_R
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) -}
-23d12d440df44fda66c232a73a4756f9
-  $fPTableStats_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "# SMT Queries (Total)"#) -}
-5534054eeafefb4ddce28df7ad2b2355
-  $fPTableStats_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "# SMT Queries (Valid)"#) -}
-aeb8d5c0a5ee199a309c73513e93398c
-  $fPTableStats_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# SMT Brackets"#) -}
-90de365766f5c7ee3a3caee27ef0baf0
-  $fPTableStats_s3 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "# Refine Iterations"#) -}
-486e29c77ce35f3c0cca62ae1d493cf7
-  $fPTableStats_s4 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# Constraints"#) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fShowStats :: GHC.Show.Show Language.Fixpoint.Solver.Monad.Stats
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Monad.Stats
-                  Language.Fixpoint.Solver.Monad.$fShowStats_$cshowsPrec
-                  Language.Fixpoint.Solver.Monad.$fShowStats_$cshow
-                  Language.Fixpoint.Solver.Monad.$fShowStats_$cshowList -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fShowStats1 ::
-    Language.Fixpoint.Solver.Monad.Stats -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Monad.Stats)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.Monad.Stats ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Solver.Monad.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   w1 }) -}
-4b8883b42ccc9bef3690998ef2f07e44
-  $fShowStats2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-364585493a16dd7dd67428da99bf0da8
-  $fShowStats3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numVald = "#) -}
-c988caa86bf0bfcdb77d185ef27b40b7
-  $fShowStats4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numChck = "#) -}
-b80a816f156d16b16446f4a5de0371c8
-  $fShowStats5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numBrkt = "#) -}
-37f7504d684e86d7ca57eea7922adc61
-  $fShowStats6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numIter = "#) -}
-98dd68b1f99e50704113d852be0c70b8
-  $fShowStats7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-b9cfca23da4039fd12f1840e29f1fc3f
-  $fShowStats8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numCstr = "#) -}
-77e265a8c26cae176fb83f4b9cb1c71a
-  $fShowStats9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Stats {"#) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fShowStats_$cshow ::
-    Language.Fixpoint.Solver.Monad.Stats -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(U,U,U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 Language.Fixpoint.Solver.Monad.$fShowStats_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fShowStats_$cshowList ::
-    [Language.Fixpoint.Solver.Monad.Stats] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.Monad.Stats
-                   Language.Fixpoint.Solver.Monad.$fShowStats1) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $fShowStats_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.Monad.Stats -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(U,U,U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.Monad.Stats)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.Monad.Stats ww3 ww4 ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Monad.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   w2 } }) -}
-0116f71ce3c8e1f6bc23d8ded72898c9
-  $tc'SS :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9932746166652698162##
-                   7963164310683513829##
-                   Language.Fixpoint.Solver.Monad.$trModule
-                   Language.Fixpoint.Solver.Monad.$tc'SS1) -}
-ab2b4828ad87a2e55beab05e90f03134
-  $tc'SS1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SS"#) -}
-09a11c4027decd74302fb94912c95096
-  $tc'Stats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6845719254495228110##
-                   6547769851838919737##
-                   Language.Fixpoint.Solver.Monad.$trModule
-                   Language.Fixpoint.Solver.Monad.$tc'Stats1) -}
-1d3813a84984b0f7caa11fc4e102fa85
-  $tc'Stats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Stats"#) -}
-2f1fc9802db6693dcc00b4c10bcfabf3
-  $tcSolverState :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8703098422280550964##
-                   16134095588561886764##
-                   Language.Fixpoint.Solver.Monad.$trModule
-                   Language.Fixpoint.Solver.Monad.$tcSolverState1) -}
-3b773ba65410da27ef6f7cc111874f4b
-  $tcSolverState1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SolverState"#) -}
-523431910211ccf8a798837cd1566c4b
-  $tcStats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17142644221330280987##
-                   16821818564447507799##
-                   Language.Fixpoint.Solver.Monad.$trModule
-                   Language.Fixpoint.Solver.Monad.$tcStats1) -}
-241a65400c4d928698288dac2d6cc570
-  $tcStats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Stats"#) -}
-00b6211caac1e3690e4208a39f09db9c
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Monad.$trModule2
-                   Language.Fixpoint.Solver.Monad.$trModule1) -}
-8c76405eb6bf0ffdda76ea7e79603523
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Solver.Monad"#) -}
-ef633e6677b8a0b939e1c18859ac68e6
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  $w$cptable ::
-    Language.Fixpoint.Solver.Monad.Stats
-    -> (# (Text.PrettyPrint.HughesPJ.Doc,
-           Text.PrettyPrint.HughesPJ.Doc),
-          [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)] #)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U)>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 (# (Language.Fixpoint.Solver.Monad.$fPTableStats10,
-                     case w of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                     case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                            dt of ww2 { (#,#) ww3 ww4 ->
-                     (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                       `cast`
-                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }),
-                    GHC.Types.:
-                      @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                      (Language.Fixpoint.Solver.Monad.$fPTableStats8,
-                       case w of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                       case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                              dt1 of ww2 { (#,#) ww3 ww4 ->
-                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                         `cast`
-                       (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } })
-                      (GHC.Types.:
-                         @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                         (Language.Fixpoint.Solver.Monad.$fPTableStats6,
-                          case w of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                          case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                                 dt2 of ww2 { (#,#) ww3 ww4 ->
-                          (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                            `cast`
-                          (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } })
-                         (GHC.Types.:
-                            @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                            (Language.Fixpoint.Solver.Monad.$fPTableStats4,
-                             case w of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                             case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                                    dt4 of ww2 { (#,#) ww3 ww4 ->
-                             (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                               `cast`
-                             (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } })
-                            (GHC.Types.:
-                               @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                               (Language.Fixpoint.Solver.Monad.$fPTableStats2,
-                                case w of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                                case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                                       dt3 of ww2 { (#,#) ww3 ww4 ->
-                                (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } })
-                               (GHC.Types.[]
-                                  @ (Text.PrettyPrint.HughesPJ.Doc,
-                                     Text.PrettyPrint.HughesPJ.Doc))))) #)) -}
-7311ed7ea2a818393c038c1e4eeb2309
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 7, Strictness: <S,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Solver.Monad.$fShowStats9
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Solver.Monad.$fShowStats8
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Solver.Monad.$fShowStats7
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Solver.Monad.$fShowStats6
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Solver.Monad.$fShowStats7
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Solver.Monad.$fShowStats5
-                                                      (case GHC.Show.$wshowSignedInt
-                                                              0#
-                                                              ww3
-                                                              (GHC.Base.++
-                                                                 @ GHC.Types.Char
-                                                                 Language.Fixpoint.Solver.Monad.$fShowStats7
-                                                                 (GHC.Base.++
-                                                                    @ GHC.Types.Char
-                                                                    Language.Fixpoint.Solver.Monad.$fShowStats4
-                                                                    (case GHC.Show.$wshowSignedInt
-                                                                            0#
-                                                                            ww4
-                                                                            (GHC.Base.++
-                                                                               @ GHC.Types.Char
-                                                                               Language.Fixpoint.Solver.Monad.$fShowStats7
-                                                                               (GHC.Base.++
-                                                                                  @ GHC.Types.Char
-                                                                                  Language.Fixpoint.Solver.Monad.$fShowStats3
-                                                                                  (case GHC.Show.$wshowSignedInt
-                                                                                          0#
-                                                                                          ww5
-                                                                                          (GHC.Base.++
-                                                                                             @ GHC.Types.Char
-                                                                                             Language.Fixpoint.Solver.Monad.$fShowStats2
-                                                                                             x) of ww6 { (#,#) ww7 ww8 ->
-                                                                                   GHC.Types.:
-                                                                                     @ GHC.Types.Char
-                                                                                     ww7
-                                                                                     ww8 }))) of ww6 { (#,#) ww7 ww8 ->
-                                                                     GHC.Types.:
-                                                                       @ GHC.Types.Char
-                                                                       ww7
-                                                                       ww8 }))) of ww6 { (#,#) ww7 ww8 ->
-                                                       GHC.Types.:
-                                                         @ GHC.Types.Char
-                                                         ww7
-                                                         ww8 }))) of ww6 { (#,#) ww7 ww8 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww7
-                                           ww8 }))) of ww6 { (#,#) ww7 ww8 ->
-                           GHC.Types.: @ GHC.Types.Char ww7 ww8 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-97989b81fc0214486d836e76c1b8efa3
-  $wrunSolverM ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Graph.Types.SolverInfo b c
-    -> Language.Fixpoint.Solver.Monad.SolveM a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 4,
-     Strictness: <L,U(1*U,A,A,A,U,U,U,A,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,1*U(A,U(U,U,U,U,U,U,U,U,A,U,U),A,A)><L,C(C1(U(U,1*U(1*U,A))))><S,U>,
-     Inline: [0] -}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  axiom Rep_Stats::
-      GHC.Generics.Rep Language.Fixpoint.Solver.Monad.Stats
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Stats"
-               "Language.Fixpoint.Solver.Monad"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "numCstr")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.SourceStrict
-                      'GHC.Generics.DecidedUnpack)
-                   (GHC.Generics.Rec0 GHC.Types.Int)
-                 GHC.Generics.:*: GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "numIter")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "numBrkt")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int)
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "numChck")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedUnpack)
-                                                      (GHC.Generics.Rec0 GHC.Types.Int)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "numVald")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Int)))))
-c821e4e5b462ea5f6676f864f11ba731
-  type SolveM =
-    Control.Monad.Trans.State.Strict.StateT
-      Language.Fixpoint.Solver.Monad.SolverState GHC.Types.IO
-    :: * -> *
-5cd49851804019cae7d1164f02619599
-  data SolverState
-    = SS {ssCtx :: !Language.Fixpoint.Smt.Types.Context,
-          ssBinds :: {-# UNPACK #-}Language.Fixpoint.Types.Environments.SolEnv,
-          ssStats :: !Language.Fixpoint.Solver.Monad.Stats}
-188c0c0ba81cb0b74dcc1f2d482be1c0
-  data Stats
-    = Stats {numCstr :: {-# UNPACK #-}GHC.Types.Int,
-             numIter :: {-# UNPACK #-}GHC.Types.Int,
-             numBrkt :: {-# UNPACK #-}GHC.Types.Int,
-             numChck :: {-# UNPACK #-}GHC.Types.Int,
-             numVald :: {-# UNPACK #-}GHC.Types.Int}
-c3bf2c2902c6f0ae2c0bd11a091a634f
-  checkSat ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Solver.Monad.SolveM GHC.Types.Bool
-  {- Arity: 3,
-     Strictness: <L,1*U><L,U(U(U,U,U,U,U,U,U,U,U,U),U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.checkSat1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Expr>_R
-                 ->_R Trans
-                          (<Language.Fixpoint.Solver.Monad.SolverState>_R
-                           ->_R Sym (GHC.Types.N:IO[0]
-                                         <(GHC.Types.Bool,
-                                           Language.Fixpoint.Solver.Monad.SolverState)>_R))
-                          (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                    <Language.Fixpoint.Solver.Monad.SolverState>_N
-                                    <GHC.Types.IO>_R
-                                    <GHC.Types.Bool>_N))) -}
-aba2fa8564d520fb33a0e7148ba690a7
-  checkSat1 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Solver.Monad.SolverState
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          (GHC.Types.Bool, Language.Fixpoint.Solver.Monad.SolverState) #)
-  {- Arity: 3,
-     Strictness: <L,1*U><L,U(U(U,U,U,U,U,U,U,U,U,U),U,U)><S,U>,
-     Unfolding: (\ (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (eta :: Language.Fixpoint.Solver.Monad.SolverState)
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 let {
-                   me :: Language.Fixpoint.Smt.Types.Context
-                   = case eta of wild { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                     ds }
-                 } in
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext4
-                        eta1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Smt.Interface.smtCheckSat1
-                        me
-                        p
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        me
-                        Language.Fixpoint.Smt.Interface.checkValidWithContext2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 (# ipv4, (ipv3, eta) #) } } }) -}
-165f394ab056564aa78c94af74a7d8f0
-  filterRequired ::
-    Language.Fixpoint.Types.Solutions.Cand a
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Solver.Monad.SolveM [a]
-  {- Strictness: x -}
-3d3fd7c4f83f97cdbd37ca0640b84015
-  filterValid ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Solutions.Cand a
-    -> Language.Fixpoint.Solver.Monad.SolveM [a]
-  {- Arity: 2, Strictness: <L,U><L,U> -}
-982f6ecea7e04a7bdc033c8efc1f9ca3
-  filterValidGradual ::
-    [Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Solutions.Cand a
-    -> Language.Fixpoint.Solver.Monad.SolveM [a]
-  {- Arity: 2, Strictness: <L,U><L,U> -}
-53471153021f442c95b13fc958e48657
-  getBinds ::
-    Language.Fixpoint.Solver.Monad.SolveM
-      Language.Fixpoint.Types.Environments.SolEnv
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.getBinds1
-                  `cast`
-                (Trans
-                     (<Language.Fixpoint.Solver.Monad.SolverState>_R
-                      ->_R Sym (GHC.Types.N:IO[0]
-                                    <(Language.Fixpoint.Types.Environments.SolEnv,
-                                      Language.Fixpoint.Solver.Monad.SolverState)>_R))
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <Language.Fixpoint.Solver.Monad.SolverState>_N
-                               <GHC.Types.IO>_R
-                               <Language.Fixpoint.Types.Environments.SolEnv>_N))) -}
-6e60471ea5576945ed9c8a1020a65f95
-  getBinds1 ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          (Language.Fixpoint.Types.Environments.SolEnv,
-           Language.Fixpoint.Solver.Monad.SolverState) #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U,U)><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (s1 :: Language.Fixpoint.Solver.Monad.SolverState)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 (# eta,
-                    (case s1 of wild { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                     Language.Fixpoint.Types.Environments.SolEnv dt },
-                     s1) #)) -}
-23759d556314ea8cf4ff80d98c5f1b5c
-  numBrkt :: Language.Fixpoint.Solver.Monad.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                 GHC.Types.I# dt2 }) -}
-2cebec98e7134df146bbd6f13b0ec45b
-  numChck :: Language.Fixpoint.Solver.Monad.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLSL),1*U(A,A,A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                 GHC.Types.I# dt3 }) -}
-a5376e98e431411b83df80bd4fc00b05
-  numCstr :: Language.Fixpoint.Solver.Monad.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLLL),1*U(U,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                 GHC.Types.I# dt }) -}
-7042730553938a6cdf12b5c840f2da64
-  numIter :: Language.Fixpoint.Solver.Monad.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLLL),1*U(A,U,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                 GHC.Types.I# dt1 }) -}
-c927f737aba9c2752a599315f68902e5
-  numVald :: Language.Fixpoint.Solver.Monad.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLLS),1*U(A,A,A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.Stats dt dt1 dt2 dt3 dt4 ->
-                 GHC.Types.I# dt4 }) -}
-53b136185f49419f992b74e36c14ce39
-  runSolverM ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Graph.Types.SolverInfo b c
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Solver.Monad.SolveM a
-    -> GHC.Types.IO a
-  {- Arity: 5,
-     Strictness: <L,U(1*U,A,A,A,U,U,U,A,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,1*U(A,U(U,U,U,U,U,U,U,U,A,U,U),A,A)><L,A><L,C(C1(U(U,1*U(1*U,A))))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.runSolverM1
-                  `cast`
-                (forall (b :: <*>_N) (c :: <*>_N) (a :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Graph.Types.SolverInfo b c>_R
-                 ->_R <GHC.Types.Int>_R
-                 ->_R <Language.Fixpoint.Solver.Monad.SolveM a>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <a>_R)) -}
-2b3ae8852f80d57bbc8af31f564bef0a
-  runSolverM1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Graph.Types.SolverInfo b c
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Solver.Monad.SolveM a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 5,
-     Strictness: <L,U(1*U,A,A,A,U,U,U,A,U,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,U,U,U,U,A,A,A,A,A)><L,1*U(A,U(U,U,U,U,U,U,U,U,A,U,U),A,A)><L,A><L,C(C1(U(U,1*U(1*U,A))))><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ b
-                   @ c
-                   @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Graph.Types.SolverInfo b c)
-                   (w2 :: GHC.Types.Int)
-                   (w3 :: Language.Fixpoint.Solver.Monad.SolveM a)
-                   (w4 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Solver.Monad.$wrunSolverM
-                   @ b
-                   @ c
-                   @ a
-                   w
-                   w1
-                   w3
-                   w4) -}
-991094b2300ec364a564401a9af51158
-  smtEnablembqi :: Language.Fixpoint.Solver.Monad.SolveM ()
-  {- Arity: 2, Strictness: <L,U(U(U,U,U,U,U,U,U,U,U,U),U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.smtEnablembqi1
-                  `cast`
-                (Trans
-                     (<Language.Fixpoint.Solver.Monad.SolverState>_R
-                      ->_R Sym (GHC.Types.N:IO[0]
-                                    <((), Language.Fixpoint.Solver.Monad.SolverState)>_R))
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <Language.Fixpoint.Solver.Monad.SolverState>_N
-                               <GHC.Types.IO>_R
-                               <()>_N))) -}
-b4384d71d8f4421b90d13537c36a6c0a
-  smtEnablembqi1 ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          ((), Language.Fixpoint.Solver.Monad.SolverState) #)
-  {- Arity: 2, Strictness: <L,U(U(U,U,U,U,U,U,U,U,U,U),U,U)><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (s1 :: Language.Fixpoint.Solver.Monad.SolverState)
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Smt.Interface.checkValid6
-                        (case s1 of wild { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                         ds })
-                        Language.Fixpoint.Solver.Monad.smtEnablembqi2
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 (# ipv, (ipv1, s1) #) }) -}
-e3a0f63dc366762512f5316971d49f85
-  smtEnablembqi2 :: Language.Fixpoint.Smt.Types.Raw
-  {- Unfolding: (Data.Text.Lazy.unpackCString#
-                   "(set-option :smt.mbqi true)"#) -}
-7d1a70abd5f7d927fa309557bc0f85dc
-  ssBinds ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> Language.Fixpoint.Types.Environments.SolEnv
-  RecSel Left Language.Fixpoint.Solver.Monad.SolverState
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.SolverState) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.SS ds1 dt ds2 ->
-                 Language.Fixpoint.Types.Environments.SolEnv dt }) -}
-87b02c444be8c1704559516f3eb6e10f
-  ssCtx ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> Language.Fixpoint.Smt.Types.Context
-  RecSel Left Language.Fixpoint.Solver.Monad.SolverState
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U(U,U,U,U,U,U,U,U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.SolverState) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.SS ds1 dt ds2 ->
-                 ds1 }) -}
-142392b555b00a28eaa611d5a5407171
-  ssStats ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> Language.Fixpoint.Solver.Monad.Stats
-  RecSel Left Language.Fixpoint.Solver.Monad.SolverState
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS),1*U(A,A,U(U,U,U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Monad.SolverState) ->
-                 case ds of wild { Language.Fixpoint.Solver.Monad.SS ds1 dt ds2 ->
-                 ds2 }) -}
-6fbf1bd32be1859b606118565c549ef8
-  stats ::
-    Language.Fixpoint.Solver.Monad.SolveM
-      Language.Fixpoint.Solver.Monad.Stats
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.stats1
-                  `cast`
-                (Trans
-                     (<Language.Fixpoint.Solver.Monad.SolverState>_R
-                      ->_R Sym (GHC.Types.N:IO[0]
-                                    <(Language.Fixpoint.Solver.Monad.Stats,
-                                      Language.Fixpoint.Solver.Monad.SolverState)>_R))
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <Language.Fixpoint.Solver.Monad.SolverState>_N
-                               <GHC.Types.IO>_R
-                               <Language.Fixpoint.Solver.Monad.Stats>_N))) -}
-18080d5f78ac5ef9a3e2318aa90cbf3d
-  stats1 ::
-    Language.Fixpoint.Solver.Monad.SolverState
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          (Language.Fixpoint.Solver.Monad.Stats,
-           Language.Fixpoint.Solver.Monad.SolverState) #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U,U)><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (s1 :: Language.Fixpoint.Solver.Monad.SolverState)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 (# eta,
-                    (case s1 of wild { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                     ds1 },
-                     s1) #)) -}
-a78156823476e418ed09cf3d977a7cd7
-  tickIter ::
-    GHC.Types.Bool
-    -> Language.Fixpoint.Solver.Monad.SolveM GHC.Types.Int
-  {- Arity: 3, Strictness: <S,1*U><L,1*U(U,U,U(U,U,U,U,U))><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Monad.tickIter1
-                  `cast`
-                (<GHC.Types.Bool>_R
-                 ->_R Trans
-                          (<Language.Fixpoint.Solver.Monad.SolverState>_R
-                           ->_R Sym (GHC.Types.N:IO[0]
-                                         <(GHC.Types.Int,
-                                           Language.Fixpoint.Solver.Monad.SolverState)>_R))
-                          (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                    <Language.Fixpoint.Solver.Monad.SolverState>_N
-                                    <GHC.Types.IO>_R
-                                    <GHC.Types.Int>_N))) -}
-ead874d9e44583f4074ef7f67b3f475e
-  tickIter1 ::
-    GHC.Types.Bool
-    -> Language.Fixpoint.Solver.Monad.SolverState
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          (GHC.Types.Int, Language.Fixpoint.Solver.Monad.SolverState) #)
-  {- Arity: 3, Strictness: <S,1*U><L,1*U(U,U,U(U,U,U,U,U))><S,U>,
-     Unfolding: (\ (newScc :: GHC.Types.Bool)
-                   (eta :: Language.Fixpoint.Solver.Monad.SolverState)
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case newScc of wild {
-                   GHC.Types.False
-                   -> let {
-                        ipv1 :: Language.Fixpoint.Solver.Monad.SolverState
-                        = case eta of wild1 { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                          case ds1 of wild2 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                          Language.Fixpoint.Solver.Monad.SS
-                            ds
-                            dt
-                            (Language.Fixpoint.Solver.Monad.Stats
-                               dt1
-                               (GHC.Prim.+# 1# dt2)
-                               dt3
-                               dt4
-                               dt5) } }
-                      } in
-                      (# eta1,
-                         (case ipv1 of wild1 { Language.Fixpoint.Solver.Monad.SS ds dt ds1 ->
-                          case ds1 of wild2 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                          GHC.Types.I# dt2 } },
-                          ipv1) #)
-                   GHC.Types.True
-                   -> case Language.Fixpoint.Utils.Progress.pbRef
-                             `cast`
-                           (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                                    System.Console.AsciiProgress.ProgressBar>_N) of wild1 { GHC.STRef.STRef var# ->
-                      case GHC.Prim.readMutVar#
-                             @ GHC.Prim.RealWorld
-                             @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                             var#
-                             eta1 of ds1 { (#,#) ipv ipv1 ->
-                      case ipv1 of wild2 {
-                        GHC.Base.Nothing
-                        -> let {
-                             ipv2 :: Language.Fixpoint.Solver.Monad.SolverState
-                             = case eta of wild3 { Language.Fixpoint.Solver.Monad.SS ds dt ds2 ->
-                               case ds2 of wild4 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                               Language.Fixpoint.Solver.Monad.SS
-                                 ds
-                                 dt
-                                 (Language.Fixpoint.Solver.Monad.Stats
-                                    dt1
-                                    (GHC.Prim.+# 1# dt2)
-                                    dt3
-                                    dt4
-                                    dt5) } }
-                           } in
-                           (# ipv,
-                              (case ipv2 of wild3 { Language.Fixpoint.Solver.Monad.SS ds dt ds2 ->
-                               case ds2 of wild4 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                               GHC.Types.I# dt2 } },
-                               ipv2) #)
-                        GHC.Base.Just pr
-                        -> case pr of ww { System.Console.AsciiProgress.ProgressBar ww1 ww2 ww3 ->
-                           case ww1 of ww4 { System.Console.AsciiProgress.Internal.ProgressBarInfo ww5 ww6 ww7 ww8 ->
-                           case ww6 of ww9 { Control.Concurrent.Chan.Chan ww10 ww11 ->
-                           case Control.Concurrent.Chan.$wwriteChan
-                                  @ GHC.Integer.Type.Integer
-                                  ww10
-                                  ww11
-                                  System.Console.AsciiProgress.tick2
-                                  ipv of ds2 { (#,#) ipv2 ipv3 ->
-                           let {
-                             ipv4 :: Language.Fixpoint.Solver.Monad.SolverState
-                             = case eta of wild3 { Language.Fixpoint.Solver.Monad.SS ds dt ds3 ->
-                               case ds3 of wild4 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                               Language.Fixpoint.Solver.Monad.SS
-                                 ds
-                                 dt
-                                 (Language.Fixpoint.Solver.Monad.Stats
-                                    dt1
-                                    (GHC.Prim.+# 1# dt2)
-                                    dt3
-                                    dt4
-                                    dt5) } }
-                           } in
-                           (# ipv2,
-                              (case ipv4 of wild3 { Language.Fixpoint.Solver.Monad.SS ds dt ds3 ->
-                               case ds3 of wild4 { Language.Fixpoint.Solver.Monad.Stats dt1 dt2 dt3 dt4 dt5 ->
-                               GHC.Types.I# dt2 } },
-                               ipv4) #) } } } } } } } }) -}
-instance GHC.Generics.Generic [Language.Fixpoint.Solver.Monad.Stats]
-  = Language.Fixpoint.Solver.Monad.$fGenericStats
-instance Control.DeepSeq.NFData [Language.Fixpoint.Solver.Monad.Stats]
-  = Language.Fixpoint.Solver.Monad.$fNFDataStats
-instance Language.Fixpoint.Types.PrettyPrint.PTable [Language.Fixpoint.Solver.Monad.Stats]
-  = Language.Fixpoint.Solver.Monad.$fPTableStats
-instance GHC.Show.Show [Language.Fixpoint.Solver.Monad.Stats]
-  = Language.Fixpoint.Solver.Monad.$fShowStats
-family instance GHC.Generics.Rep [Language.Fixpoint.Solver.Monad.Stats]
-  = Language.Fixpoint.Solver.Monad.Rep_Stats
-"SPEC/Language.Fixpoint.Solver.Monad $dmrnf @ Stats" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                     (GHC.Generics.Rep
-                                                                                        Language.Fixpoint.Solver.Monad.Stats))
-                                                                     ($dGeneric :: GHC.Generics.Generic
-                                                                                     Language.Fixpoint.Solver.Monad.Stats)
-                                                                     ($dNFData :: Control.DeepSeq.NFData
-                                                                                    Language.Fixpoint.Solver.Monad.Stats)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Solver.Monad.Stats
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Solver.Monad.$fNFDataStats_$s$dmrnf
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Sanitize.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Sanitize.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Sanitize.dump-hi
+++ /dev/null
@@ -1,498 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:14.736498 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Sanitize 8002
-  interface hash: 6bdee6476310034ac5b550de69e53cdf
-  ABI hash: 20b3803287c171aeeff1a0ea327079be
-  export-list hash: 1494d8206e06896ea5cad35a4e4620c9
-  orphan hash: cadc873686c7012178ac5bb973a59829
-  flag hash: 17993449780147b55e07e261e75f65c7
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Sanitize.dropDeadSubsts
-  Language.Fixpoint.Solver.Sanitize.sanitize
-  Language.Fixpoint.Solver.Sanitize.symbolEnv
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  kvEdges f940abc15579978762776e660e827d95
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  Cstr 208edca12160ed50062c4f24b3d2f6a3
-  KVar 8c108f3d54252c748cec2f60aab62495
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  ListNE 245082d2e65bed4e03d6c17463d8b79a
-  applyNonNull 303cbe5541e25fbd8cd11b7c15ff6310
-  fM 450f2c1c5f56026cb37b3c83834e592d
-  fst3 d403c254371349110bdd0be2f09b4237
-  group e2e2979efce4bc962b883458e2dab7fa
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  mapFst 54294e0357ea881c18115f64503fab09
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  theorySEnv 4f5f43c60510bc359a6de8317e6d6440
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  allowHO 581420630f74330e11013d86878bcae3
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  GInfo 1052549cc559e08aaa78c218edda206c
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  WfC 50354839b899806bfddb7dd9a816596d
-  _cenv 16908eec2a5fa12185cf628430140e85
-  allowHO f7bd529e6f3b10a3a0b6d23b100cc12b
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  dLits 520fb0647a01216c687192a56bf631fa
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  ksMember d08290f25e3ce97efa755092a7bf0f5f
-  kuts d406844fa77de9da82204390a3f0a2da
-  qBody a90af993c8ca625414e8b90f88916f3f
-  qParams 54bc9290720ec8197ce69a552d4656be
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-  bindEnvFromList 89c34f20db94686b94cfff511336c8e5
-  bindEnvToList 15cf21f5dde4a84007d2f5516efc18c5
-  deleteIBindEnv 817a2fbe6105ce7078cd9ca341552f26
-  deleteSEnv a855d705d7b57927d92a2ae7459af3f3
-  diffIBindEnv 051c7f6e46479a9552747ed2030e9852
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  filterIBindEnv d04344dcc26246482caf1a3ec32b6bfa
-  filterSEnv 5026975848e59412b11dc3e4e4238bde
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  intersectionIBindEnv 9983d7e9d97433d2566c93bdd912d47b
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-  memberSEnv 1b98968bd46488e485e82ffd497cf3a6
-  nullIBindEnv b837d9ab18fd08c4d8f433be0aa2e1c8
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-  unionSEnv c0b7430cad1fe3a300af1df67787d65a
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Error d0173fd74c0fa26b5149cb3e367aede0
-  catError 18ee612360aad031ca35f01fa2eca9a2
-  catErrors 7650892e6059ecff2d06a66111a8993f
-  die a892c3bd643380084ab25f8b09c20b83
-  err a90e823f0e6047342911d3113f83b3d9
-  errFreeVarInConstraint 81315397e78a9f2e2283f8640a3210c7
-  errFreeVarInQual fc2bd9e9fa9736df222b49dfe9c98248
-  errIllScopedKVar c70d60d92ea6a41b668761a1249b3b3a
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  prims 70e6f07d1b9819e49e94a46ecbff4e62
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolText 13814968e12e393cf26b05198caca520
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PTrue 5df77d7a117ac1937594998bc4175838
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  reftConjuncts 9b4898b9eb0028ce5dcac03fa40c6500
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  funcSort 3b405e725beb70a70012b60bc3c24849
-  functionSort 11d97370b121a8ef0a4def7d986212ac
-  isFirstOrder 1384aa1f1f0be14cd0f1e2434c096cde
-  strSort c3f197f2dc52b2b1cf128955742223a1
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  filterSubst fe7db8b6c61c46b271d51e28e2300e29
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  kvarDomain 6fbc199f4dcafc17414225a6ff861f4a
-  reftFreeVars d0a11cb872a28228f0f250c57166ce63
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  isConcC 168eb47fa1697b4be4039258d2f9ed16
-  isKvarC 66f0d7fd732551524a0e018bd0ab4846
-  mapKVarSubsts 5c2ee594f944d9ac0904549f86b93398
-  mapKVars 0ed00aae968de150fa223abd5c1357d8
-  symConsts fa3082cc5e364446432907c81378d2a9
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-10a07fd66f0e0bcd7ecdb9353ccc4c84
-  $s$fPPrint(,) ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Sorts.Sort,
-       [Language.Fixpoint.Types.Environments.BindId])
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Sorts.Sort,
-                     [Language.Fixpoint.Types.Environments.BindId])
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                     @ Language.Fixpoint.Types.Sorts.Sort
-                     @ [Language.Fixpoint.Types.Environments.BindId]
-                     Language.Fixpoint.Types.Refinements.$fPPrintSort
-                     Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)1)
-                  Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec -}
-1ae35c7806637dc6f61de4b56fa5f8fb
-  $s$fPPrint(,)1 ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      [Language.Fixpoint.Types.Environments.BindId]
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint[] -}
-dcb92d1a4ae8678262530ea8d35229ba
-  $s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (Language.Fixpoint.Types.Sorts.Sort,
-        [Language.Fixpoint.Types.Environments.BindId])
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A><L,U><S,1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: (Language.Fixpoint.Types.Sorts.Sort,
-                             [Language.Fixpoint.Types.Environments.BindId])) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   @ [Language.Fixpoint.Types.Environments.BindId]
-                   Language.Fixpoint.Types.Refinements.$fPPrintSort
-                   Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)1
-                   eta
-                   eta1) -}
-5216248be9fd28918158d22dbfa112b0
-  $s$fPPrint(,)_$s$fPPrint[] ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Types.Int]
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [GHC.Types.Int]
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                     @ GHC.Types.Int
-                     Language.Fixpoint.Types.PrettyPrint.$fPPrintInt)
-                  Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint[]_$cpprintPrec -}
-eb7bc477e2061b0256dde1a4a99e7e81
-  $s$fPPrint(,)_$s$fPPrint[]_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [GHC.Types.Int]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                   eta) -}
-3840f8a670d16951c4e5d5100c97361f
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Sanitize.$trModule2
-                   Language.Fixpoint.Solver.Sanitize.$trModule1) -}
-a1e04b606086d3c8eb26a05536468cb4
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.Sanitize"#) -}
-366a29dfad58ad0103daba816491f23a
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-d6e29bece012338001f46cb4a68adaa7
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-a5b9e9b0ecc7008ef52a6810045ca1b3
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-ab9b67d789122a5d67ad29195d8fbddd
-  $wsymbolEnv ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,U><S,U>,
-     Inline: [0] -}
-bc5bba167dbb8ba1d50b6471e426e664
-  type KSub =
-    (GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.KVar,
-     Language.Fixpoint.Types.Refinements.Subst)
-e2abf9b3d58e7c3db7fa93cbe5596fbb
-  type KeepBindF =
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-ef2707080f6b964359ddef2958a135e3
-  type KeepSortF =
-    Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-ed4c76813e11d084c6e272a031b5de3f
-  type KvBads =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      [Language.Fixpoint.Types.Names.Symbol]
-b8747a35177c974954c7905e500daba9
-  type KvConstrM =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar [GHC.Integer.Type.Integer]
-ee0aecf794ba0a839773948bfcd5374f
-  type KvDefs =
-    (Language.Fixpoint.Solver.Sanitize.KvConstrM,
-     Language.Fixpoint.Solver.Sanitize.KvConstrM)
-652d57cc995bcf32bd1b52852133f77a
-  type KvDom =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      (Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Environments.BindId)
-99cb4db72da993b4ef43a74a54d444a7
-  type SanitizeM a =
-    Data.Either.Either Language.Fixpoint.Types.Errors.Error a
-5a4417a743d952e740c1bc3e17fc7598
-  type SymBinds =
-    (Language.Fixpoint.Types.Names.Symbol,
-     [(Language.Fixpoint.Types.Sorts.Sort,
-       [Language.Fixpoint.Types.Environments.BindId])])
-1fd0b48f45c3c9f78745c1de4e019d41
-  dropDeadSubsts ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 1, Strictness: <L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)> -}
-49baef0f9c671b6e191d859b2acf2062
-  sanitize ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Solver.Sanitize.SanitizeM
-         (Language.Fixpoint.Types.Constraints.SInfo a)
-  {- Arity: 1,
-     Strictness: <L,1*U(U,U,U(A,U),U,U,U,U,U,U(U,U),U,U)> -}
-101352c4a89218542672e71ee58675d7
-  symbolEnv ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S(LLS(LS)SLLLLLLL),U(A,A,U(A,U),U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Sanitize.symbolEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SInfo a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) -}
-9460228e2374701cd64f04b4ae385e1b
-  symbolEnv1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S(LLS(LS)SLLLLLLL),U(A,A,U(A,U),U,A,A,A,A,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 Language.Fixpoint.Solver.Sanitize.$wsymbolEnv
-                   @ a
-                   w
-                   ww14
-                   ww4 } }) -}
-"SPEC/Language.Fixpoint.Solver.Sanitize $fPPrint(,) @ Sort @ [BindId]" [ALWAYS] forall ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                       [Language.Fixpoint.Types.Environments.BindId])
-                                                                                       ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                      Language.Fixpoint.Types.Sorts.Sort)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,) @ Language.Fixpoint.Types.Sorts.Sort
-                                                  @ [Language.Fixpoint.Types.Environments.BindId]
-                                                  $dPPrint
-                                                  $dPPrint1
-  = Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)
-"SPEC/Language.Fixpoint.Solver.Sanitize $fPPrint(,)_$cpprintPrec @ Sort @ [BindId]" [ALWAYS] forall ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                    [Language.Fixpoint.Types.Environments.BindId])
-                                                                                                    ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintPrec @ Language.Fixpoint.Types.Sorts.Sort
-                                                               @ [Language.Fixpoint.Types.Environments.BindId]
-                                                               $dPPrint
-                                                               $dPPrint1
-  = Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec
-"SPEC/Language.Fixpoint.Solver.Sanitize $fPPrint[] @ Int" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                         GHC.Types.Int)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint[] @ GHC.Types.Int
-                                                 $dPPrint
-  = Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint[]
-"SPEC/Language.Fixpoint.Solver.Sanitize $fPPrint[]_$cpprintPrec @ Int" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                      GHC.Types.Int)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint[]_$cpprintPrec @ GHC.Types.Int
-                                                              $dPPrint
-  = Language.Fixpoint.Solver.Sanitize.$s$fPPrint(,)_$s$fPPrint[]_$cpprintPrec
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solution.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solution.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solution.dump-hi
+++ /dev/null
@@ -1,988 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:20.661955 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Solution 8002
-  interface hash: b856773a92595aac26ab8923b0ff24b2
-  ABI hash: d8cf44b02bb87b4b97e05a6605512850
-  export-list hash: a613f12411c6a2b119ffd7f35594e29d
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 78cd328a171b472710772d4788468481
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Solution.init
-  Language.Fixpoint.Solver.Solution.lhsPred
-  Language.Fixpoint.Types.Solutions.update
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  fst3 d403c254371349110bdd0be2f09b4237
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  safeLookup a0aea15e18c45d6dc603d7e6041ffdd5
-  snd3 5eb2c283a7808b8ac7d306bc810e3392
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  toInt 401d5dfabf5419bc774ce2c83dfda7bb
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  symbolEnv 101352c4a89218542672e71ee58675d7
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  Env d150d28cd1549b097a537e6234c62038
-  TVSubst cd0571f7217eba41b5cb926e34b36534
-  apply cd5cd4a92fb0f8664cfdec9f89938101
-  checkSortExpr 4c8095767e6c0674ee9d2d18e1e3e042
-  checkSorted 2c861c35f0bbb6991b683598c98f9cde
-  elaborate 5d158ea131d7e277795d290df18aadb1
-  isMono 03c687a9894c51ee92560ef2a34f9b13
-  unifyFast 2a7bf9de66bc674cde448bc706c6f4a2
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  exports: 8ff2109a000830685650941885f8f564
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-  WfC 50354839b899806bfddb7dd9a816596d
-  allowHOquals 204044004a0c8fab67b4c88b81d03cf5
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  isGWfc e3a7ff0495f71a580cf9216dd7498e66
-  qParams 54bc9290720ec8197ce69a552d4656be
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  sid 9ba83f62143508c4ad59807c752d0be9
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-  SolEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  diffIBindEnv 051c7f6e46479a9552747ed2030e9852
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  lookupSEnvWithDistance 8487b4b7e6463dbcd7c933ce64e1d285
-  soeBinds fbbef264516f9bec0ae6fc47631bb833
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-  unionIBindEnv f6babeef179e76988b659bd281a317e4
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  isLitSymbol fce949627de0b7387ed9b777cad06478
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  notracepp 23093b339d9413532997992b94a8c483
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  &.& f31bc3e9270072a5054679edecd13ba8
-  EEq 9242ee92a55fe451987339b69aae1cbb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVSub c90a46333bc7a488713b09e58c2c7d81
-  KVar 9a92033bfe21324e80629facb0f6357f
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  ksuKVar 0cf6b38384715583b9cf045cff53cf0d
-  ksuSort 18995dc51533181db351deeda374fc32
-  ksuSubst 4abec11a7a7382dc84806b6b269f7991
-  ksuVV 795b37baa1089e454e2b9c0143ece29c
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  pExist cafb3e1e576330cfb5f3d2218f756c4a
-  pOr cddd52acc94c0f05e5a37f140c8ad8c0
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cube a3c72678689a09bc3a389091220691c4
-  EQual d48cd6c8fd87428c462add5de1e5d785
-  Hyp 9ada9a2e9283c0d71dc285dc2d850f46
-  QBind d48cd6c8fd87428c462add5de1e5d785
-  Sol 5c80baaee2ad2e2f29824ed6e0d2d1eb
-  Solution 45346c1c7bebcad6381bc3e14333f2b2
-  cuBinds 8bc973b08bb7740942a1cf2fdfd24dfc
-  cuSubst 56fb7dba58bfdc3e40221a038611ad8f
-  cuTag df8c539c6864ee075246c5c36aa42f2c
-  eQual 273cec9ec35fd4cb7087dc5e8a27224d
-  eqPred f4224b5f1cdddeabb689ccc6f25e105a
-  fromList 5ee336afe6bc1f0c40109c6e7f4f6826
-  lookup 2848f247fbf1b30f1a97706f940167d1
-  qb 897bfa04139ac9486b855ccba6f1cc7c
-  qbFilter c86c4e749145841bd4676d837bbc75f1
-  qbPreds ee53cb8d2b8872c615fcdd1168450ebc
-  sEnv d23bc0542d4f553904c83bd3771d1f80
-  sScp 1351dc93ff0aff4b607b457fc5e7a087
-  update 4ee25b98e93e86f189e02ab7e64de90e
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FFrac ecc8fb3da631f4b043ad3670e4fca393
-  FNum c88d73ad9fe8566f5ec651da0f3eebd7
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  functionSort 11d97370b121a8ef0a4def7d986212ac
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  sortedReftConcKVars cac548010e601c57894a79c824007fb5
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-import  -/  parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx:Control.Parallel.Strategies ffa4d4b96dba666866c04e5ec97b9754
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-eb8b339ae557a32c592cc47f534c3a5b
-  $fEqKInfo :: GHC.Classes.Eq Language.Fixpoint.Solver.Solution.KInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Solution.KInfo
-                  Language.Fixpoint.Solver.Solution.$fEqKInfo_$c==
-                  Language.Fixpoint.Solver.Solution.$fEqKInfo_$c/= -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fEqKInfo_$c/= ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (b :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case Language.Fixpoint.Solver.Solution.$fEqKInfo_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fEqKInfo_$c== ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 case GHC.Classes.$fEq[]_$c==
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fEq[]_$s$fEq[]
-                        ww1
-                        ww5 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww6) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Integer.Type.eqInteger# ww3 ww7 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } } } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fMonoidKInfo ::
-    GHC.Base.Monoid Language.Fixpoint.Solver.Solution.KInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Solution.KInfo
-                  Language.Fixpoint.Solver.Solution.$fMonoidKInfo_$cmempty
-                  Language.Fixpoint.Solver.Solution.$fMonoidKInfo_$cmappend
-                  Language.Fixpoint.Solver.Solution.$fMonoidKInfo_$cmconcat -}
-559d419f629a0ae207f022336909846a
-  $fMonoidKInfo1 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fMonoidKInfo_$cmappend ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 2,
-     Strictness: <S(LSS),1*U(1*U,U,U)><S(LSS),1*U(1*U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<=# ww2 ww6) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Integer.Type.timesInteger ww3 ww7 of dt { DEFAULT ->
-                      Language.Fixpoint.Solver.Solution.KI
-                        (Language.Fixpoint.Misc.sortNub
-                           @ Language.Fixpoint.Types.Constraints.Tag
-                           GHC.Classes.$fOrd[]_$s$fOrd[]
-                           (GHC.Base.++ @ [GHC.Types.Int] ww1 ww5))
-                        ww2
-                        dt }
-                   GHC.Types.True
-                   -> case GHC.Integer.Type.timesInteger ww3 ww7 of dt { DEFAULT ->
-                      Language.Fixpoint.Solver.Solution.KI
-                        (Language.Fixpoint.Misc.sortNub
-                           @ Language.Fixpoint.Types.Constraints.Tag
-                           GHC.Classes.$fOrd[]_$s$fOrd[]
-                           (GHC.Base.++ @ [GHC.Types.Int] ww1 ww5))
-                        ww6
-                        dt } } } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fMonoidKInfo_$cmconcat ::
-    [Language.Fixpoint.Solver.Solution.KInfo]
-    -> Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Solver.Solution.KInfo]) ->
-                 case Language.Fixpoint.Solver.Solution.$wgo
-                        w of ww { (#,,#) ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fMonoidKInfo_$cmempty :: Language.Fixpoint.Solver.Solution.KInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Solver.Solution.KI
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Tag)
-                   0#
-                   Language.Fixpoint.Solver.Solution.$fMonoidKInfo1) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo ::
-    GHC.Classes.Ord Language.Fixpoint.Solver.Solution.KInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Solution.KInfo
-                  Language.Fixpoint.Solver.Solution.$fEqKInfo
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$ccompare
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c<
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c<=
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c>
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c>=
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$cmax
-                  Language.Fixpoint.Solver.Solution.$fOrdKInfo_$cmin -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$c< ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Solution.$w$c<
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$c<= ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Solution.$w$c<=
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$c> ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Solution.$w$c>
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$c>= ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Solution.$w$c>=
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$ccompare ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(1*U,U,U)><S(SLS),1*U(1*U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Solver.Solution.KI ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Solution.$w$ccompare
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$cmax ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U)><S(SLS),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (y :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fOrdKInfo_$cmin ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-    -> Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U)><S(SLS),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (y :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case Language.Fixpoint.Solver.Solution.$fOrdKInfo_$c<=
-                        x
-                        y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fShowKInfo ::
-    GHC.Show.Show Language.Fixpoint.Solver.Solution.KInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Solution.KInfo
-                  Language.Fixpoint.Solver.Solution.$fShowKInfo_$cshowsPrec
-                  Language.Fixpoint.Solver.Solution.$fShowKInfo_$cshow
-                  Language.Fixpoint.Solver.Solution.$fShowKInfo_$cshowList -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fShowKInfo1 ::
-    Language.Fixpoint.Solver.Solution.KInfo -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.Solution.KI ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.Solution.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fShowKInfo_$cshow ::
-    Language.Fixpoint.Solver.Solution.KInfo -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(LLS),1*U(1*U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 Language.Fixpoint.Solver.Solution.$fShowKInfo_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fShowKInfo_$cshowList ::
-    [Language.Fixpoint.Solver.Solution.KInfo] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.Solution.KInfo
-                   Language.Fixpoint.Solver.Solution.$fShowKInfo1) -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $fShowKInfo_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.Solution.KInfo -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S(LLS),1*U(1*U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.Solution.KInfo)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.Solution.KI ww3 ww4 ww5 ->
-                 Language.Fixpoint.Solver.Solution.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-13fe56f634bb70ad7c3918f5969cfaae
-  $tc'KI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1820382784616510435##
-                   6663559395518718828##
-                   Language.Fixpoint.Solver.Solution.$trModule
-                   Language.Fixpoint.Solver.Solution.$tc'KI1) -}
-0a521ac751691cc0be9fa76f08d32353
-  $tc'KI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KI"#) -}
-723259049c7fbb01c14bd334e7cf349e
-  $tcKInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   54115042350397582##
-                   6942481789491309407##
-                   Language.Fixpoint.Solver.Solution.$trModule
-                   Language.Fixpoint.Solver.Solution.$tcKInfo1) -}
-d20fa57104ad8f23168b19cccd6df3d6
-  $tcKInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "KInfo"#) -}
-6e64ad7e5fcf41eefb4bf80476760770
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Solution.$trModule2
-                   Language.Fixpoint.Solver.Solution.$trModule1) -}
-e3187823c148d884151ac388c918cdb4
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.Solution"#) -}
-fc923297d727bfc5556d14b8d4e60532
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-ed7863c8bc095621c99e4c6f52b73376
-  $w$c< ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.ltInteger# ww2 ww5 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-18ff4e7d65343493c6e25f0e621eb563
-  $w$c<= ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.leInteger# ww2 ww5 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-cfc7cf18afb270e9a6e37cf90916129b
-  $w$c> ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.gtInteger# ww2 ww5 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-d44f3bb73edbd3bb9017400b4190548d
-  $w$c>= ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Integer.Type.geInteger# ww2 ww5 of wild3 { DEFAULT ->
-                                GHC.Prim.tagToEnum# @ GHC.Types.Bool wild3 } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-b8d448cf5b2c541c5cea058cd7f8b40b
-  $w$ccompare ::
-    [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Types.Ordering
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><S,U><S,1*U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: [Language.Fixpoint.Types.Constraints.Tag])
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Integer.Type.Integer) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ [GHC.Types.Int]
-                        GHC.Classes.$fOrd[]_$s$fOrd[]
-                        ww
-                        ww3 of wild {
-                   GHC.Types.LT -> GHC.Types.LT
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww4) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww4) of wild2 {
-                             GHC.Types.False -> GHC.Types.GT
-                             GHC.Types.True -> GHC.Integer.Type.compareInteger ww2 ww5 }
-                        GHC.Types.True -> GHC.Types.LT }
-                   GHC.Types.GT -> GHC.Types.GT }) -}
-fc99f68e7fe464bea4e318c3302955eb
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-    -> GHC.Prim.Int#
-    -> GHC.Integer.Type.Integer
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,1*U><L,U><S,U><L,U>,
-     Inline: [0] -}
-130d8a9a5296e67a4ab65982027cc3a6
-  $wapply ::
-    Language.Fixpoint.Solver.Solution.CombinedEnv
-    -> Language.Fixpoint.Types.Solutions.Sol
-         a Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> (# Language.Fixpoint.Types.Refinements.Expr,
-          Language.Fixpoint.Solver.Solution.KInfo #)
-  {- Arity: 3,
-     Strictness: <L,U(U,U(U(U,U)),U)><L,U(U,U,A,U,U)><L,1*U>,
-     Inline: [0] -}
-eb8b339ae557a32c592cc47f534c3a5b
-  $wgo ::
-    [Language.Fixpoint.Solver.Solution.KInfo]
-    -> (# [Language.Fixpoint.Types.Constraints.Tag], GHC.Prim.Int#,
-          GHC.Integer.Type.Integer #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-f4d09ee28deb5a94cd988e07c89e718a
-  $winit ::
-    Language.Fixpoint.Types.Config.Config
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> GHC.Types.Bool
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> (# Language.Fixpoint.Types.Environments.SEnv
-            Language.Fixpoint.Types.Sorts.Sort,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.QBind,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar (),
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.Hyp,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Environments.IBindEnv #)
-  {- Arity: 7,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S,U><S,U><S,U><S,U><L,1*U><L,U>,
-     Inline: [0] -}
-0a3b1af7ffd0a6640a7083aea6da0ae2
-  type Binders =
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-af8fe35ab4dfaca6a93a15371c7000e4
-  type Cid = GHC.Base.Maybe GHC.Integer.Type.Integer
-9a02f5c20e5241288e346d3c75692928
-  type CombinedEnv =
-    (Language.Fixpoint.Solver.Solution.Cid,
-     Language.Fixpoint.Types.Environments.SolEnv,
-     Language.Fixpoint.Types.Environments.IBindEnv)
-eac6f310a6f8e64f86e6016ad545b35e
-  type ExprInfo =
-    (Language.Fixpoint.Types.Refinements.Expr,
-     Language.Fixpoint.Solver.Solution.KInfo)
-eb8b339ae557a32c592cc47f534c3a5b
-  data KInfo
-    = KI {kiTags :: [Language.Fixpoint.Types.Constraints.Tag],
-          kiDepth :: {-# UNPACK #-}GHC.Types.Int,
-          kiCubes :: !GHC.Integer.Type.Integer}
-462332ed1c86a9fcc988b48a71891ba1
-  apply ::
-    Language.Fixpoint.Solver.Solution.CombinedEnv
-    -> Language.Fixpoint.Types.Solutions.Sol
-         a Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Solver.Solution.ExprInfo
-  {- Arity: 3,
-     Strictness: <L,U(U,U(U(U,U)),U)><L,U(U,U,A,U,U)><L,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Solver.Solution.CombinedEnv)
-                   (w1 :: Language.Fixpoint.Types.Solutions.Sol
-                            a Language.Fixpoint.Types.Solutions.QBind)
-                   (w2 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 case Language.Fixpoint.Solver.Solution.$wapply
-                        @ a
-                        w
-                        w1
-                        w2 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-79618f715969d1eb56c1f521b67e740e
-  init ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Types.Solutions.Solution
-  {- Arity: 3,
-     Strictness: <L,U(A,A,A,A,A,A,A,A,U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)><S(LSS(LS)SLLSLSLL),1*U(A,U,U(A,U),U,A,A,U,A,U(A,1*U),A,A)><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w2 :: Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Refinements.KVar) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 case ww9 of ww15 { Language.Fixpoint.Types.Constraints.HOI ww16 ww17 ->
-                 case Language.Fixpoint.Solver.Solution.$winit
-                        @ a
-                        w
-                        ww2
-                        ww14
-                        ww4
-                        ww7
-                        ww17
-                        w2 of ww18 { (#,,,,#) ww19 ww20 ww21 ww22 ww23 ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ ()
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23 } } } }) -}
-8cc518b4fa0de5ef44d90439f76cbfe7
-  kiCubes ::
-    Language.Fixpoint.Solver.Solution.KInfo -> GHC.Integer.Type.Integer
-  RecSel Left Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.Solution.KI ds1 dt ds2 ->
-                 ds2 }) -}
-95caa6cf0bf37ac5ff3b85fce56fc693
-  kiDepth :: Language.Fixpoint.Solver.Solution.KInfo -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.Solution.KI ds1 dt ds2 ->
-                 GHC.Types.I# dt }) -}
-4d2de29d69186945d6b738108adc925f
-  kiTags ::
-    Language.Fixpoint.Solver.Solution.KInfo
-    -> [Language.Fixpoint.Types.Constraints.Tag]
-  RecSel Left Language.Fixpoint.Solver.Solution.KInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Solution.KInfo) ->
-                 case ds of wild { Language.Fixpoint.Solver.Solution.KI ds1 dt ds2 ->
-                 ds1 }) -}
-8056ff9cf0064f4c502518459ef382ce
-  lhsPred ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Solutions.Solution
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3,
-     Strictness: <L,U(U(U,U))><L,U(U,U,A,U,U)><L,U(U,A,U,A,A)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (be :: Language.Fixpoint.Types.Environments.SolEnv)
-                   (s :: Language.Fixpoint.Types.Solutions.Solution)
-                   (c :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 let {
-                   bs :: Language.Fixpoint.Types.Environments.IBindEnv
-                   = case c of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                     ds2 }
-                 } in
-                 case Language.Fixpoint.Solver.Solution.apply
-                        @ ()
-                        (Language.Fixpoint.Types.Constraints._cid @ a c, be, bs)
-                        s
-                        bs of wild { (,) x ds1 ->
-                 x }) -}
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.Solution.KInfo]
-  = Language.Fixpoint.Solver.Solution.$fEqKInfo
-instance GHC.Base.Monoid [Language.Fixpoint.Solver.Solution.KInfo]
-  = Language.Fixpoint.Solver.Solution.$fMonoidKInfo
-instance GHC.Classes.Ord [Language.Fixpoint.Solver.Solution.KInfo]
-  = Language.Fixpoint.Solver.Solution.$fOrdKInfo
-instance GHC.Show.Show [Language.Fixpoint.Solver.Solution.KInfo]
-  = Language.Fixpoint.Solver.Solution.$fShowKInfo
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solve.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solve.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Solve.dump-hi
+++ /dev/null
@@ -1,580 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:25.121005 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Solve 8002
-  interface hash: 06c33f06f0f0b023877527d4c1d336c8
-  ABI hash: 1544ea4466c9c4054a783a844725521e
-  export-list hash: 85747bd5f760bd91f3b71db6f5e06fc1
-  orphan hash: e93e3885002cdf8c26656691239487cd
-  flag hash: bc67f8c40eccf5667b60c126b89e57cc
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Solve.solve
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Interface Language.Fixpoint.Smt.Serialize
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Eliminate Language.Fixpoint.Solver.Monad
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.Solver.Solution
-                     Language.Fixpoint.Solver.Worklist Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-                     Language.Fixpoint.Utils.Progress
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-                      attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4
-                      base-4.9.1.0 binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      integer-logarithms-1.0.1@integer-logarithms-1.0.1-IEHCuEd5sG4JjSjlx7m5JF
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      parallel-3.2.1.1@parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3
-                      primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH
-                      process-1.4.3.0@process-1.4.3.0
-                      scientific-0.3.4.11@scientific-0.3.4.11-KV39KlwSGDKD4auxhPQ5mB
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-                      vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG
-orphans: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Text.Internal
-         base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Smt.Serialize
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector.Fusion.Bundle
-family instance modules: attoparsec-0.13.1.0@attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4:Data.Attoparsec.Internal.Types
-                         base-4.9.1.0:Control.Applicative base-4.9.1.0:Data.Complex
-                         base-4.9.1.0:Data.Either base-4.9.1.0:Data.Functor.Compose
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Monad
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         primitive-0.6.1.0@primitive-0.6.1.0-6AbSTw9JXz141LE5p6LGH:Control.Monad.Primitive
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-                         vector-0.11.0.0@vector-0.11.0.0-LMwQhhnXj8U3T5Bm1JFxG:Data.Vector
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  elimDeps 5665258949b04edd49306c81248cfba0
-  isTarget 6782583cf6b58e5237626b8fd737ad77
-  kvEdges f940abc15579978762776e660e827d95
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  SI 3793dbf1e3a52671229c757903084a70
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-  cNumScc 87afa682c8dd1e9f69a5fe4b0723474f
-  siDeps dc379f0c79c4322eafe1ce9d7d223789
-  siSol dff0082a2d59e24319611bdab2e6e0f2
-  siVars 35f5142e8f813175a34215ca8bd6fe2d
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  writeLoud 6a7f20b21df12531f08981646ff1bf20
-import  -/  Language.Fixpoint.Solver.Eliminate 909e925e30388e38ce02e815a1b05d9a
-  exports: 50693d2e8a5f3b7c0dd938f1f7655579
-  solverInfo 72198470e484afa1d063a7f4769cdb64
-import  -/  Language.Fixpoint.Solver.Monad ec5eb2d6f95c72ebd961128f417a28ca
-  exports: beab3c559e9618f79ddb38a602dc9a12
-  SolveM c821e4e5b462ea5f6676f864f11ba731
-  Stats 188c0c0ba81cb0b74dcc1f2d482be1c0
-  filterValid 3d3fd7c4f83f97cdbd37ca0640b84015
-  getBinds 53471153021f442c95b13fc958e48657
-  runSolverM 53b136185f49419f992b74e36c14ce39
-  stats 6fbf1bd32be1859b606118565c549ef8
-  tickIter a78156823476e418ed09cf3d977a7cd7
-import  -/  Language.Fixpoint.Solver.Solution d8cf44b02bb87b4b97e05a6605512850
-  exports: a613f12411c6a2b119ffd7f35594e29d
-  init 79618f715969d1eb56c1f521b67e740e
-  lhsPred 8056ff9cf0064f4c502518459ef382ce
-import  -/  Language.Fixpoint.Solver.Worklist fa4ee31c93076eb78a986cda9ba0370e
-  exports: 07a3962dd623c0c2339d473646cf6a99
-  Worklist c84f1184e26905f15f284ebb1e3a54c9
-  init d0cb8294243b4aaa2d2e3c1afaaa8258
-  pop b18054b832ac05bc3a2d9a2e8a214923
-  push c5b19c73e458d9f199e7cc7670ca74ae
-  unsatCandidates c15586d22037298ff224939786c1fd0d
-  wRanks a3d6cbd11c22b5d265c8e478454ac38f
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  minimalSol d87577f191ff3394f31793a1502a1694
-  solverStats bda7106cec62d0859e70f146036f8a69
-  useElim 35d43e2b1e6c87f45cf41979d665c2af
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FixSolution 5b4735b3e3cc0ca65b03d3255d2f3f6c
-  Result bd94cb06f2a56d7ff5b46922e02fce58
-  Result 1de0e7882069f13222c6effa6f71fad5
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  crhs 1e68f26339689c1f8619807c178004c5
-  resSolution f55f0c46369593e7e85befdfb6dfdad8
-  sid 9ba83f62143508c4ad59807c752d0be9
-  sinfo 9105e38389ada36faf8b042779878ac6
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  tidySymbol b70497f43e52e4ceb47dfd12bfc678f1
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  ptable e5a0c2af407911261639841c294a3c86
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  substf b2da8a5b5529532d5f1f59e58c725354
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  exports: 3aba65d43f1b4def37dedf43442dc2cb
-  Cand 1258f02e99cbe417bcd003d5a26f39d7
-  EQual d48cd6c8fd87428c462add5de1e5d785
-  Solution 45346c1c7bebcad6381bc3e14333f2b2
-  lookupQBind 02bfd5983256e2f7d7024c264dfcc4f9
-  qbPreds ee53cb8d2b8872c615fcdd1168450ebc
-  result c7035a98aefbbb2d3ba288ebc07d1dd0
-  update 4ee25b98e93e86f189e02ab7e64de90e
-import  -/  Language.Fixpoint.Utils.Progress c33622b0de2ac75cce2fddefd881586d
-  exports: 470eada57a968d087705a49045e28146
-  withProgress 711691385c363d35855a35d90e2def22
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.State.Strict eff0af50b9ed40c32939885d02cca72b
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Class 45530f1305724ee3931a9be21b40ca7e
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-9ffa2fc6e85766b69ba9e26bd0c1373b
-  $s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s2.
-                  @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO)
-                  (Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-                     @ s2)
-                  (Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-                     @ s2)
-                  (Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-                     @ s2)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c*>
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO
-                     GHC.Base.$fMonadIO)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO
-                     GHC.Base.$fMonadIO) -}
-12ee778b95f100b370b0bf12e1e6c79d
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <C(C(S(SS))),1*C1(C1(U(U,1*U(1*C1(U),U))))><L,1*C1(C1(U(U,1*U(U,U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s2
-                   @ a
-                   @ b
-                   (ds :: Control.Monad.Trans.State.Strict.StateT
-                            s2 GHC.Types.IO (a -> b))
-                   (ds1 :: Control.Monad.Trans.State.Strict.StateT
-                             s2 GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (b, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO b)
-                   (\ (tpl :: s2 -> GHC.Types.IO (b, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (b, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s3 :: s2) ->
-                    GHC.Base.bindIO
-                      @ (a -> b, s2)
-                      @ (b, s2)
-                      (ds
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <s2>_N <GHC.Types.IO>_R <a -> b>_N)
-                         s3)
-                      (\ (ds2 :: (a -> b, s2)) ->
-                       case ds2 of wild { (,) f s' ->
-                       GHC.Base.bindIO
-                         @ (a, s2)
-                         @ (b, s2)
-                         (ds1
-                            `cast`
-                          (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <s2>_N <GHC.Types.IO>_R <a>_N)
-                            s')
-                         (\ (ds3 :: (a, s2))
-                            (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                          case ds3 of wild1 { (,) x s'' ->
-                          (GHC.Base.returnIO @ (b, s2) (f x, s''))
-                            `cast`
-                          (GHC.Types.N:IO[0] <(b, s2)>_R)
-                            eta })
-                           `cast`
-                         (<(a, s2)>_R ->_R Sym (GHC.Types.N:IO[0] <(b, s2)>_R)) }))) -}
-6cd918ebac805baf184dcd1fa1698005
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fFunctorStateT -}
-cda63036ce024c820578bed993bcb151
-  $s$fApplicativeStateT_$s$fApplicativeStateT_$cpure ::
-    a -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><L,U><S,U>,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s2 @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (a, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO a)
-                   (\ (tpl :: s2 -> GHC.Types.IO (a, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (a, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <a>_N))
-                   (\ (s3 :: s2)
-                      (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    (GHC.Base.returnIO @ (a, s2) (a1, s3))
-                      `cast`
-                    (GHC.Types.N:IO[0] <(a, s2)>_R)
-                      eta)
-                     `cast`
-                   (<s2>_R ->_R Sym (GHC.Types.N:IO[0] <(a, s2)>_R))) -}
-fb164dc758a03085d78bc4790afee74a
-  $s$fApplicativeStateT_$s$fFunctorStateT ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s2.
-                  @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO)
-                  (Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-                     @ s2)
-                  (Control.Monad.Trans.State.Strict.$fFunctorStateT_$c<$
-                     @ GHC.Types.IO
-                     @ s2
-                     GHC.Base.$fFunctorIO) -}
-381782c8652617c89966d47574d0b3fc
-  $s$fApplicativeStateT_$s$fFunctorStateT_$cfmap ::
-    (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO a
-    -> Control.Monad.Trans.State.Strict.StateT s GHC.Types.IO b
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(C(S(SL))),1*C1(C1(U(U,1*U(U,U))))><L,U><S,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s2
-                   @ a
-                   @ b
-                   (f :: a -> b)
-                   (m1 :: Control.Monad.Trans.State.Strict.StateT
-                            s2 GHC.Types.IO a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s2 -> GHC.Types.IO (b, s2))
-                   @ (Control.Monad.Trans.State.Strict.StateT s2 GHC.Types.IO b)
-                   (\ (tpl :: s2 -> GHC.Types.IO (b, s2)) -> tpl)
-                     `cast`
-                   (<s2 -> GHC.Types.IO (b, s2)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s2>_N <GHC.Types.IO>_R <b>_N))
-                   (\ (s3 :: s2) ->
-                    GHC.Base.$
-                      @ 'GHC.Types.PtrRepLifted
-                      @ (GHC.Types.IO (a, s2))
-                      @ (GHC.Types.IO (b, s2))
-                      (GHC.Base.$fFunctorIO_$cfmap
-                         @ (a, s2)
-                         @ (b, s2)
-                         (\ (ds :: (a, s2)) -> case ds of wild { (,) a1 s' -> (f a1, s') }))
-                      (Control.Monad.Trans.State.Strict.runStateT
-                         @ s2
-                         @ GHC.Types.IO
-                         @ a
-                         m1
-                         s3))) -}
-0b63fedce274fe1a223a2e47564fb9fc
-  $sprintf2 ::
-    GHC.Base.String -> [Text.Printf.UPrintf] -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: (\ (fmts :: GHC.Base.String)
-                   (args :: [Text.Printf.UPrintf]) ->
-                 GHC.Base.map
-                   @ GHC.Types.Char
-                   @ GHC.Types.Char
-                   Text.Printf.$fIsCharChar_$cfromChar
-                   (Text.Printf.uprintfs
-                      fmts
-                      (GHC.List.reverse1
-                         @ Text.Printf.UPrintf
-                         args
-                         (GHC.Types.[] @ Text.Printf.UPrintf))
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-76221dc17c8afdfccc56f885139a8ea3
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Solve.$trModule2
-                   Language.Fixpoint.Solver.Solve.$trModule1) -}
-ad57f57b283148a38bef77550ef2bd5f
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Solver.Solve"#) -}
-4e0c2867c07be2f226123676df682ba5
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-3918d9bd51886b52342e10f032e8eb55
-  $wsolve ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 4,
-     Strictness: <L,C(U())><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Inline: [0] -}
-92760c1418be31319f6222a62714a4d2
-  solve ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,A><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Solve.solve1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-3ba2514a0eacf60e22fed9812fc377b6
-  solve1 ::
-    (Control.DeepSeq.NFData a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 5,
-     Strictness: <L,C(U())><L,A><L,U(U,A,A,A,U,U,U,A,U,U,1*U,U,A,1*U,A,A,A,A,A,A,A,U,A,U,U,U,U,U,U,A,A,A)><L,U(U,U,U(U,U),U,U,U,U,U,U(U,U),U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, True)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w4 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Solver.Solve.$wsolve @ a w w2 w3 w4) -}
-"SPEC/Language.Fixpoint.Solver.Solve $fApplicativeStateT @ IO _" [ALWAYS] forall @ s2
-                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                               GHC.Types.IO)
-                                                                                 ($dFunctor :: GHC.Base.Functor
-                                                                                                 GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT @ GHC.Types.IO
-                                                       @ s2
-                                                       $dFunctor
-                                                       $dMonad
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT @ s2
-"SPEC/Language.Fixpoint.Solver.Solve $fApplicativeStateT_$c<*> @ IO _" [ALWAYS] forall @ s2
-                                                                                       ($dMonad :: GHC.Base.Monad
-                                                                                                     GHC.Types.IO)
-                                                                                       ($dFunctor :: GHC.Base.Functor
-                                                                                                       GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*> @ GHC.Types.IO
-                                                             @ s2
-                                                             $dFunctor
-                                                             $dMonad
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$c<*>
-      @ s2
-"SPEC/Language.Fixpoint.Solver.Solve $fApplicativeStateT_$cp1Applicative @ IO _" [ALWAYS] forall @ s2
-                                                                                                 ($dMonad :: GHC.Base.Monad
-                                                                                                               GHC.Types.IO)
-                                                                                                 ($dFunctor :: GHC.Base.Functor
-                                                                                                                 GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cp1Applicative @ GHC.Types.IO
-                                                                       @ s2
-                                                                       $dFunctor
-                                                                       $dMonad
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cp1Applicative
-      @ s2
-"SPEC/Language.Fixpoint.Solver.Solve $fApplicativeStateT_$cpure @ IO _" [ALWAYS] forall @ s2
-                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                      GHC.Types.IO)
-                                                                                        ($dFunctor :: GHC.Base.Functor
-                                                                                                        GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cpure @ GHC.Types.IO
-                                                              @ s2
-                                                              $dFunctor
-                                                              $dMonad
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fApplicativeStateT_$cpure
-      @ s2
-"SPEC/Language.Fixpoint.Solver.Solve $fFunctorStateT @ IO _" [ALWAYS] forall @ s2
-                                                                             ($dFunctor :: GHC.Base.Functor
-                                                                                             GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT @ GHC.Types.IO
-                                                   @ s2
-                                                   $dFunctor
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fFunctorStateT
-      @ s2
-"SPEC/Language.Fixpoint.Solver.Solve $fFunctorStateT_$cfmap @ IO _" [ALWAYS] forall @ s2
-                                                                                    ($dFunctor :: GHC.Base.Functor
-                                                                                                    GHC.Types.IO)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap @ GHC.Types.IO
-                                                          @ s2
-                                                          $dFunctor
-  = Language.Fixpoint.Solver.Solve.$s$fApplicativeStateT_$s$fFunctorStateT_$cfmap
-      @ s2
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/TrivialSort.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/TrivialSort.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/TrivialSort.dump-hi
+++ /dev/null
@@ -1,1435 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:56.642494 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.TrivialSort [family instance module] 8002
-  interface hash: c9c06f8552f62c56dfe6054f62c5c34e
-  ABI hash: f7d24c7fdc340c06e172bbd01c250485
-  export-list hash: 1f5b01f7aa2db784a0edc90538e3775b
-  orphan hash: 2100ec3b250af83d9e46958b247f1cea
-  flag hash: 731f0fdcfb33f4e47d3cd9a3a1dd0dd7
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.TrivialSort.nontrivsorts
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Debug.Trace a9edf3aec504f4423d8ba829ab373a25
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Graph 54c0f58a4ccb634fc9eab39368f95434
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  fst3 d403c254371349110bdd0be2f09b4237
-  groupList 62a88dfa37b8b6d8ee4a75635ee44736
-  inserts c4b41f182353024851320e0577f6fd6e
-  snd3 5eb2c283a7808b8ac7d306bc810e3392
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FInfo beb16efa76d83917c7875fd2371988e0
-  Result 1de0e7882069f13222c6effa6f71fad5
-  SubC ed16f1ec59060d74f74ea827928489f9
-  WfC 50354839b899806bfddb7dd9a816596d
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  slhs ff31f7ff76d5011e3329777d046753a8
-  srhs 6299a4aca5a3764628a25206cc77779a
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  writeFInfo ad168b3f748b746c2712abb79f6e7bf5
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  bindEnvToList 15cf21f5dde4a84007d2f5516efc18c5
-  mapBindEnv 5587766109997447ce44fc36cf0d744e
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  isNonTrivial a313063d90be250b663445dbf48dd774
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-  reftPred 654b4f577b3cda7ef6c36c09495b0b64
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  kvars 16b8d297ad4a7c9e979b8fb21df7dcf8
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Out 50d71c21477b1ba852ad2053502dfe2d
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-9db67bf0841f82c5b46051d38da86535
-  $fEqNTV :: GHC.Classes.Eq Language.Fixpoint.Solver.TrivialSort.NTV
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.TrivialSort.NTV
-                  Language.Fixpoint.Solver.TrivialSort.$fEqNTV_$c==
-                  Language.Fixpoint.Solver.TrivialSort.$fEqNTV_$c/= -}
-9db67bf0841f82c5b46051d38da86535
-  $fEqNTV_$c/= ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.False }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt1) of wild4 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                  a1
-                                  b1 of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fEqNTV_$c== ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (ds1 :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case ds of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.True }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case ds1 of wild2 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> Language.Fixpoint.Types.Sorts.$fEqSort_$c== a1 b1 } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fGenericNTV ::
-    GHC.Generics.Generic Language.Fixpoint.Solver.TrivialSort.NTV
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.TrivialSort.NTV
-                  Language.Fixpoint.Solver.TrivialSort.$fGenericNTV_$cfrom
-                  Language.Fixpoint.Solver.TrivialSort.$fGenericNTV_$cto -}
-9db67bf0841f82c5b46051d38da86535
-  $fGenericNTV1 ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> Language.Fixpoint.Solver.TrivialSort.$fGenericNTV2 @ x
-                   Language.Fixpoint.Solver.TrivialSort.K g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort)))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Refinements.KVar>_R
-                                          <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "K" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.KVar)>_R)) <x>_N)))
-                   Language.Fixpoint.Solver.TrivialSort.S g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort)))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Sorts.Sort>_R
-                                          <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "S" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)>_R)) <x>_N))) }) -}
-0bfdcd734545efa02541afbf60d08874
-  $fGenericNTV2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-9db67bf0841f82c5b46051d38da86535
-  $fGenericNTV_$cfrom ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> GHC.Generics.Rep Language.Fixpoint.Solver.TrivialSort.NTV x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.TrivialSort.$fGenericNTV1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Solver.TrivialSort.NTV>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "NTV"
-                                       "Language.Fixpoint.Solver.TrivialSort"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "K"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.KVar))
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "S"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Sorts.Sort)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Solver.TrivialSort.Rep_NTV[0]))) <x>_N) -}
-9db67bf0841f82c5b46051d38da86535
-  $fGenericNTV_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Solver.TrivialSort.NTV x
-    -> Language.Fixpoint.Solver.TrivialSort.NTV
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Solver.TrivialSort.NTV x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Solver.TrivialSort.Rep_NTV[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "NTV"
-                                   "Language.Fixpoint.Solver.TrivialSort"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                     (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Refinements.KVar))
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "S"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            Language.Fixpoint.Types.Sorts.Sort)))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Solver.TrivialSort.NTV }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> Language.Fixpoint.Solver.TrivialSort.$WK
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "K" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Refinements.KVar>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Refinements.KVar>_R
-                                       <x>_P))
-                        GHC.Generics.R1 ds2
-                        -> Language.Fixpoint.Solver.TrivialSort.$WS
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "S" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Sorts.Sort>_R
-                                       <x>_P)) } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fHashableNTV ::
-    Data.Hashable.Class.Hashable
-      Language.Fixpoint.Solver.TrivialSort.NTV
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.TrivialSort.NTV
-                  Language.Fixpoint.Solver.TrivialSort.$fHashableNTV_$chashWithSalt
-                  Language.Fixpoint.Solver.TrivialSort.$fHashableNTV_$chash -}
-9db67bf0841f82c5b46051d38da86535
-  $fHashableNTV_$chash ::
-    Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Solver.TrivialSort.$fHashableNTV_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-9db67bf0841f82c5b46051d38da86535
-  $fHashableNTV_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Solver.TrivialSort.$w$chashWithSalt
-                        ww1
-                        w1 of ww2 { DEFAULT ->
-                 GHC.Types.I# ww2 } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV ::
-    GHC.Classes.Ord Language.Fixpoint.Solver.TrivialSort.NTV
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.TrivialSort.NTV
-                  Language.Fixpoint.Solver.TrivialSort.$fEqNTV
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$ccompare
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$c<
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$c<=
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$c>
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$c>=
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$cmax
-                  Language.Fixpoint.Solver.TrivialSort.$fOrdNTV_$cmin -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$c< ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.False }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<# dt dt1) }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> GHC.Types.True } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$c<= ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1)
-                             GHC.Types.True -> GHC.Types.True } }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> GHC.Types.True } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$c> ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True -> GHC.Types.False }
-                             GHC.Types.True -> GHC.Types.False } }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> GHC.Types.False } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$c>= ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.True }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> GHC.Types.False } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$ccompare ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (b :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.LT
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.EQ }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case b of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Types.GT
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           GHC.Classes.compareInt# dt dt1 }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> GHC.Types.LT } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.GT
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare a1 b1 } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$cmax ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (y :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case x of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV -> y
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case y of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV -> wild
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> wild GHC.Types.True -> wild2 }
-                             GHC.Types.True -> wild2 } }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> wild2 } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case y of wild1 {
-                        DEFAULT -> wild
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> wild1 GHC.Types.GT -> wild } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fOrdNTV_$cmin ::
-    Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV
-    -> Language.Fixpoint.Solver.TrivialSort.NTV
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (y :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case x of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Solver.TrivialSort.NTV }
-                   Language.Fixpoint.Solver.TrivialSort.K a1
-                   -> case a1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case y of wild2 {
-                        Language.Fixpoint.Solver.TrivialSort.NTV
-                        -> Language.Fixpoint.Solver.TrivialSort.NTV
-                        Language.Fixpoint.Solver.TrivialSort.K b1
-                        -> case b1
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# dt dt1) of wild4 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> wild2 GHC.Types.True -> wild }
-                             GHC.Types.True -> wild } }
-                        Language.Fixpoint.Solver.TrivialSort.S ipv -> wild } }
-                   Language.Fixpoint.Solver.TrivialSort.S a1
-                   -> case y of wild1 {
-                        DEFAULT -> wild1
-                        Language.Fixpoint.Solver.TrivialSort.S b1
-                        -> case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                                  a1
-                                  b1 of wild2 {
-                             DEFAULT -> wild GHC.Types.GT -> wild1 } } }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fShowNTV :: GHC.Show.Show Language.Fixpoint.Solver.TrivialSort.NTV
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.TrivialSort.NTV
-                  Language.Fixpoint.Solver.TrivialSort.$fShowNTV_$cshowsPrec
-                  Language.Fixpoint.Solver.TrivialSort.$fShowNTV_$cshow
-                  Language.Fixpoint.Solver.TrivialSort.$fShowNTV_$cshowList -}
-9db67bf0841f82c5b46051d38da86535
-  $fShowNTV1 ::
-    Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Solver.TrivialSort.$fShowNTV_$cshowsPrec
-                   Language.Fixpoint.Solver.TrivialSort.$fShowNTV2) -}
-bbd8f552acb781500a24cc2daaa38cf6
-  $fShowNTV2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-e4f50d8e31bd039be3a1e4d2d5295071
-  $fShowNTV3 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 11#) -}
-09ba33e98ac6c6890902f1389545ce5f
-  $fShowNTV4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "S "#) -}
-37001de59f68966195286929881249be
-  $fShowNTV5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "K "#) -}
-ddf6605aba19814bd8d5c611ae558ee5
-  $fShowNTV6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "NTV"#) -}
-9db67bf0841f82c5b46051d38da86535
-  $fShowNTV_$cshow ::
-    Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case x of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> Language.Fixpoint.Solver.TrivialSort.$fShowNTV6
-                   Language.Fixpoint.Solver.TrivialSort.K b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.TrivialSort.$fShowNTV5
-                        (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                           b1
-                           (GHC.Types.[] @ GHC.Types.Char))
-                   Language.Fixpoint.Solver.TrivialSort.S b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.TrivialSort.$fShowNTV4
-                        (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                           Language.Fixpoint.Solver.TrivialSort.$fShowNTV3
-                           b1
-                           (GHC.Types.[] @ GHC.Types.Char)) }) -}
-9db67bf0841f82c5b46051d38da86535
-  $fShowNTV_$cshowList ::
-    [Language.Fixpoint.Solver.TrivialSort.NTV] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.TrivialSort.NTV
-                   Language.Fixpoint.Solver.TrivialSort.$fShowNTV1) -}
-9db67bf0841f82c5b46051d38da86535
-  $fShowNTV_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(U)><S,1*U><L,U>,
-     Unfolding: (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Solver.TrivialSort.NTV)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.TrivialSort.$fShowNTV6
-                        eta
-                   Language.Fixpoint.Solver.TrivialSort.K b1
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Solver.TrivialSort.$fShowNTV5
-                             (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5 b1 eta)
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Solver.TrivialSort.$fShowNTV5
-                                (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 eta))) } }
-                   Language.Fixpoint.Solver.TrivialSort.S b1
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Solver.TrivialSort.$fShowNTV4
-                             (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                                Language.Fixpoint.Solver.TrivialSort.$fShowNTV3
-                                b1
-                                eta)
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Solver.TrivialSort.$fShowNTV4
-                                (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                                   Language.Fixpoint.Solver.TrivialSort.$fShowNTV3
-                                   b1
-                                   (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 eta))) } } }) -}
-7cc41c200f31e4714be9b09009ba049a
-  $sunsafeInsert ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-  {- Arity: 3, Strictness: <S,U><L,U><S,1*U>,
-     Unfolding: (\ @ v
-                   (k0 :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (v0 :: v)
-                   (m0 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId v) ->
-                 case Data.Hashable.Class.$w$chash5 k0 of ww { DEFAULT ->
-                 case Language.Fixpoint.Solver.TrivialSort.$wpoly_go3
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ww)
-                        k0
-                        v0
-                        0#
-                        m0
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-a1f9b9eed3cdab294d60214d9ae5e2fd
-  $tc'K :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13160738960495673200##
-                   5689851483976482827##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tc'K1) -}
-63a438e8159e569b1e41ec67a18e4961
-  $tc'K1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'K"#) -}
-b3ed0e0514f6549fdcaa2d72e5a546af
-  $tc'Lhs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9783986001697983140##
-                   4902261090923969734##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tc'Lhs1) -}
-82f6a68ceee84788ee46214285101bdc
-  $tc'Lhs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Lhs"#) -}
-c8d362c1d35d00fc5f564602b2fb50eb
-  $tc'NTV :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1548450488549485912##
-                   15559628984287878456##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tc'NTV1) -}
-35454b3add9f99004dea732996305a21
-  $tc'NTV1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'NTV"#) -}
-aceba9fc79f91057542d03ccd67435b8
-  $tc'Rhs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11093897348249671388##
-                   11010726358780313096##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tc'Rhs1) -}
-7dc6cf6e1ffa92c5271f957dbca27243
-  $tc'Rhs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Rhs"#) -}
-43641a5a0901b82d57a3e317a869f96f
-  $tc'S :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9190882358992820309##
-                   537841195905370163##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tc'S1) -}
-122ef35ec94683a115552d7fe12e9e33
-  $tc'S1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'S"#) -}
-da4532e95d367895ada84ff82d2990a0
-  $tcNTV :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1118956913844862671##
-                   2609102785894911448##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tcNTV1) -}
-da0c47cadca69f9af0255656983ae64c
-  $tcNTV1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "NTV"#) -}
-b3d000a9daf838e99f2c960d77d95781
-  $tcPolarity :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6505170299258612805##
-                   18125568139532395902##
-                   Language.Fixpoint.Solver.TrivialSort.$trModule
-                   Language.Fixpoint.Solver.TrivialSort.$tcPolarity1) -}
-a48eef663a92ede9dbb5a58afce259ed
-  $tcPolarity1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Polarity"#) -}
-e0c77119836bfc9369aaa0b0d5c1110c
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.TrivialSort.$trModule2
-                   Language.Fixpoint.Solver.TrivialSort.$trModule1) -}
-749339880e138410092cc1e5c4bec23a
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.TrivialSort"#) -}
-aad566030f480336c87362889125d4bb
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-9db67bf0841f82c5b46051d38da86535
-  $w$chashWithSalt ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Solver.TrivialSort.NTV -> GHC.Prim.Int#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Solver.TrivialSort.NTV) ->
-                 case w of wild {
-                   Language.Fixpoint.Solver.TrivialSort.NTV
-                   -> GHC.Prim.*# (GHC.Prim.*# ww 16777619#) 16777619#
-                   Language.Fixpoint.Solver.TrivialSort.K g1
-                   -> case g1
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                      case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                      case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.State#
-                                                                                                                               GHC.Prim.RealWorld
-                                                                                                                          -> (# GHC.Prim.State#
-                                                                                                                                  GHC.Prim.RealWorld,
-                                                                                                                                GHC.Prim.Int# #)}
-                             ww7
-                             (GHC.Prim.uncheckedIShiftL# ww8 1#)
-                             (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                             (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                             GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                      ds2 } } }
-                   Language.Fixpoint.Solver.TrivialSort.S g1
-                   -> Language.Fixpoint.Types.Sorts.$w$chashWithSalt
-                        (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                        g1 }) -}
-81f6b7d68a7949c30f50517d5f45a010
-  $wpoly_go1 ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Sorts.Sort v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-ef3e96580f1147a48b688a8cdb0ce521
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Sorts.Sort v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-0e9573428b16e6b4f756b0b1a0d89906
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-4bdc4f4af234d1b3b3014b095ce2a9f8
-  type KVarMap =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      [Language.Fixpoint.Types.Sorts.Sort]
-278ea08417b8e0651e5d84b6d50b97d6
-  type NTG =
-    [(Language.Fixpoint.Solver.TrivialSort.NTV,
-      Language.Fixpoint.Solver.TrivialSort.NTV,
-      [Language.Fixpoint.Solver.TrivialSort.NTV])]
-9db67bf0841f82c5b46051d38da86535
-  data NTV
-    = NTV
-    | K !Language.Fixpoint.Types.Refinements.KVar
-    | S !Language.Fixpoint.Types.Sorts.Sort
-fb7ffd12bb9c0927514553303f228851
-  type NonTrivSorts =
-    Data.HashSet.HashSet Language.Fixpoint.Types.Sorts.Sort
-ab7dad74dd55de4bf776cf7fd7ba2b84
-  data Polarity = Lhs | Rhs
-9db67bf0841f82c5b46051d38da86535
-  axiom Rep_NTV::
-      GHC.Generics.Rep Language.Fixpoint.Solver.TrivialSort.NTV
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "NTV"
-               "Language.Fixpoint.Solver.TrivialSort"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "NTV" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons "K" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.KVar))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "S" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Sorts.Sort))))
-5d068174d39c8c9c0644335a7fb4e4d0
-  type TrivInfo =
-    (Language.Fixpoint.Solver.TrivialSort.NonTrivSorts,
-     Language.Fixpoint.Solver.TrivialSort.KVarMap)
-82828bc240cd9420a872077809e74922
-  nontrivsorts ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO (Language.Fixpoint.Types.Constraints.Result a)
-  {- Arity: 1, Strictness: <L,U(C(U),A)> -}
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.$fEqNTV
-instance GHC.Generics.Generic [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.$fGenericNTV
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.$fHashableNTV
-instance GHC.Classes.Ord [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.$fOrdNTV
-instance GHC.Show.Show [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.$fShowNTV
-family instance GHC.Generics.Rep [Language.Fixpoint.Solver.TrivialSort.NTV]
-  = Language.Fixpoint.Solver.TrivialSort.Rep_NTV
-"SPEC/Language.Fixpoint.Solver.TrivialSort unsafeInsert @ SubcId _" [ALWAYS] forall @ v
-                                                                                    ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                     Language.Fixpoint.Types.Constraints.SubcId)
-                                                                                    ($dEq :: GHC.Classes.Eq
-                                                                                               Language.Fixpoint.Types.Constraints.SubcId)
-  Data.HashMap.Base.unsafeInsert @ GHC.Integer.Type.Integer
-                                 @ v
-                                 $dEq
-                                 $dHashable
-  = Language.Fixpoint.Solver.TrivialSort.$sunsafeInsert @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyBinds.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyBinds.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyBinds.dump-hi
+++ /dev/null
@@ -1,1145 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:21.652819 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.UniqifyBinds [family instance module] 8002
-  interface hash: dfe4e4e9e482b17ec6cd27904892d80b
-  ABI hash: 1fab0c8e863f3e97b24c3669460699fc
-  export-list hash: d8d0e9ab451254d060b9688893f262a2
-  orphan hash: 519eceee9c5a42da1fb8f1e1aa74834d
-  flag hash: d3a868bb4602f3e8fa567a5f8374254d
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.UniqifyBinds.renameAll
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Solver.Sanitize Language.Fixpoint.SortCheck
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  fst3 d403c254371349110bdd0be2f09b4237
-  mlookup 971e2002d30cacbe613cae574aa79427
-import  -/  Language.Fixpoint.Solver.Sanitize 20b3803287c171aeeff1a0ea327079be
-  exports: 1494d8206e06896ea5cad35a4e4620c9
-  dropDeadSubsts 1fd0b48f45c3c9f78745c1de4e019d41
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  _crhs 746ca2f97e781cb1955fd7640112b9a8
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  adjustBindEnv c777b46b1c743af956a2afbec10c57f9
-  bindEnvFromList 89c34f20db94686b94cfff511336c8e5
-  bindEnvToList 15cf21f5dde4a84007d2f5516efc18c5
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  emptyIBindEnv dae79859b3442c211473f5cded0c14f7
-  filterBindEnv fb61d7691a2bf001a9d16f464c0c1866
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-  memberIBindEnv 6702fd78c0541d0458bf46243a55c085
-  unionIBindEnv f6babeef179e76988b659bd281a317e4
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  renameSymbol 9e1a1bd4c9b876ef906bfe825c73742d
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  isTauto b3fdb4c9cc1321cb83515fc764be7e58
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  reftFreeVars d0a11cb872a28228f0f250c57166ce63
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fEqRef :: GHC.Classes.Eq Language.Fixpoint.Solver.UniqifyBinds.Ref
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.UniqifyBinds.Ref
-                  Language.Fixpoint.Solver.UniqifyBinds.$fEqRef_$c==
-                  Language.Fixpoint.Solver.UniqifyBinds.$fEqRef_$c/= -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fEqRef_$c/= ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Solver.UniqifyBinds.Ref)
-                   (b :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case a of wild {
-                   Language.Fixpoint.Solver.UniqifyBinds.RB dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Solver.UniqifyBinds.RB dt1
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt1) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False }
-                        Language.Fixpoint.Solver.UniqifyBinds.RI ipv -> GHC.Types.True }
-                   Language.Fixpoint.Solver.UniqifyBinds.RI a1
-                   -> case b of wild1 {
-                        Language.Fixpoint.Solver.UniqifyBinds.RB ipv -> GHC.Types.True
-                        Language.Fixpoint.Solver.UniqifyBinds.RI b1
-                        -> case GHC.Integer.Type.eqInteger# a1 b1 of wild2 { DEFAULT ->
-                           case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } }) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fEqRef_$c== ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Solver.UniqifyBinds.Ref)
-                   (ds1 :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case ds of wild {
-                   Language.Fixpoint.Solver.UniqifyBinds.RB dt
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Solver.UniqifyBinds.RB dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1)
-                        Language.Fixpoint.Solver.UniqifyBinds.RI ipv -> GHC.Types.False }
-                   Language.Fixpoint.Solver.UniqifyBinds.RI a1
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Solver.UniqifyBinds.RB ipv -> GHC.Types.False
-                        Language.Fixpoint.Solver.UniqifyBinds.RI b1
-                        -> case GHC.Integer.Type.eqInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fGenericRef ::
-    GHC.Generics.Generic Language.Fixpoint.Solver.UniqifyBinds.Ref
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.UniqifyBinds.Ref
-                  Language.Fixpoint.Solver.UniqifyBinds.$fGenericRef_$cfrom
-                  Language.Fixpoint.Solver.UniqifyBinds.$fGenericRef_$cto -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fGenericRef1 ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedUnpack)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)))
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "RI" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Solver.UniqifyBinds.RB dt
-                   -> GHC.Generics.L1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "RI" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-                        @ x
-                        (GHC.Types.I# dt)
-                          `cast`
-                        (Trans
-                             (Sym (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Environments.BindId>_R
-                                       <x>_P))
-                             (Trans
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedUnpack>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Environments.BindId>_R))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "RB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Environments.BindId)>_R)) <x>_N))
-                   Language.Fixpoint.Solver.UniqifyBinds.RI g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "RI" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Integer.Type.Integer)))
-                        @ x
-                        g1
-                          `cast`
-                        (Trans
-                             (Sym (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P <GHC.Integer.Type.Integer>_R <x>_P))
-                             (Trans
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R GHC.Integer.Type.Integer>_R))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "RI" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  GHC.Integer.Type.Integer)>_R)) <x>_N)) }) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fGenericRef_$cfrom ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> GHC.Generics.Rep Language.Fixpoint.Solver.UniqifyBinds.Ref x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.UniqifyBinds.$fGenericRef1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Solver.UniqifyBinds.Ref>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Ref"
-                                       "Language.Fixpoint.Solver.UniqifyBinds"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.BindId))
-                                     GHC.Generics.:+: GHC.Generics.M1
-                                                        GHC.Generics.C
-                                                        ('GHC.Generics.MetaCons
-                                                           "RI"
-                                                           'GHC.Generics.PrefixI
-                                                           'GHC.Types.False)
-                                                        (GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              GHC.Integer.Type.Integer))>_R))
-                          (Sub (Sym (Language.Fixpoint.Solver.UniqifyBinds.Rep_Ref[0]))) <x>_N) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fGenericRef_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Solver.UniqifyBinds.Ref x
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Solver.UniqifyBinds.Ref x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Solver.UniqifyBinds.Rep_Ref[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Ref"
-                                   "Language.Fixpoint.Solver.UniqifyBinds"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Environments.BindId))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "RI" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          GHC.Integer.Type.Integer))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> Language.Fixpoint.Solver.UniqifyBinds.$WRB
-                        ds1
-                          `cast`
-                        (Trans
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "RB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.BindId)>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedUnpack>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          Language.Fixpoint.Types.Environments.BindId>_R) <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Language.Fixpoint.Types.Environments.BindId>_R
-                                  <x>_P))
-                   GHC.Generics.R1 ds1
-                   -> Language.Fixpoint.Solver.UniqifyBinds.$WRI
-                        ds1
-                          `cast`
-                        (Trans
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "RI" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R GHC.Integer.Type.Integer)>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedStrict>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R GHC.Integer.Type.Integer>_R) <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P <GHC.Integer.Type.Integer>_R <x>_P)) }) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fHashableRef ::
-    Data.Hashable.Class.Hashable
-      Language.Fixpoint.Solver.UniqifyBinds.Ref
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.UniqifyBinds.Ref
-                  Language.Fixpoint.Solver.UniqifyBinds.$fHashableRef_$chashWithSalt
-                  Language.Fixpoint.Solver.UniqifyBinds.$fHashableRef_$chash -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fHashableRef_$chash ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Solver.UniqifyBinds.$fHashableRef_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fHashableRef_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Solver.UniqifyBinds.$w$chashWithSalt
-                        ww1
-                        w1 of ww2 { DEFAULT ->
-                 GHC.Types.I# ww2 } }) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fNFDataRef ::
-    Control.DeepSeq.NFData Language.Fixpoint.Solver.UniqifyBinds.Ref
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.UniqifyBinds.$fNFDataRef_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Solver.UniqifyBinds.Ref>_N)) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $fNFDataRef_$crnf ::
-    Language.Fixpoint.Solver.UniqifyBinds.Ref -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case eta of wild { DEFAULT -> GHC.Tuple.() }) -}
-c24bdc433a366b28ae645be71da89fcf
-  $s$!!3 ::
-    [(Language.Fixpoint.Types.Sorts.Sort,
-      GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)]
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ (Language.Fixpoint.Types.Sorts.Sort,
-                      GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)
-                   Language.Fixpoint.Solver.UniqifyBinds.$s$!!4
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <(Language.Fixpoint.Types.Sorts.Sort,
-                               GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)>_N))) -}
-f08ca3bf2d99d9f5fe0983450e0ab32c
-  $s$!!4 ::
-    (Language.Fixpoint.Types.Sorts.Sort,
-     GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (Language.Fixpoint.Types.Sorts.Sort,
-                           GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)) ->
-                 case ds of wild { (,) x y ->
-                 case Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                        x of wild1 { () ->
-                 case y of wild2 {
-                   GHC.Base.Nothing -> GHC.Tuple.()
-                   GHC.Base.Just x1
-                   -> Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf x1 } } }) -}
-0be7a5d7e9c74bc4797ac26d323619b7
-  $s$!!7 :: Data.HashSet.HashSet GHC.Types.Int -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ GHC.Types.Int
-                   @ ()
-                   Control.DeepSeq.$fNFDataInt_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                   Control.DeepSeq.$fNFData()_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                   x `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) -}
-d489a79c7a4646b22e1229af24fb2b0a
-  $s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Solver.UniqifyBinds.Ref -> v -> v -> v)
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Solver.UniqifyBinds.Ref v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Solver.UniqifyBinds.Ref v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><S,1*U><L,U><S,U>,
-     Inline: [0] -}
-c937745d1b83417299fd3c81cab6c4b9
-  $s$wupdateWith ::
-    (v -> v)
-    -> GHC.Integer.Type.Integer
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(U)><S,1*U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: v -> v)
-                   (w2 :: GHC.Integer.Type.Integer)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)) ->
-                 letrec {
-                   $wgo :: GHC.Integer.Type.Integer
-                           -> GHC.Prim.Array#
-                                (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                           -> GHC.Prim.Int#
-                           -> GHC.Prim.Int#
-                           -> GHC.Prim.Array#
-                                (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                     {- Arity: 4, Strictness: <S,1*U><S,U><S,U><S,U>, Inline: [0] -}
-                   = \ (w :: GHC.Integer.Type.Integer)
-                       (ww1 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#) ->
-                     case w of k2 { DEFAULT ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 ww1
-                                 ww2 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case GHC.Integer.Type.eqInteger# k2 kx of wild2 { DEFAULT ->
-                          case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                            GHC.Types.False -> $wgo k2 ww1 (GHC.Prim.+# ww2 1#) ww3
-                            GHC.Types.True
-                            -> case w1 y of v' { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      @ GHC.Prim.RealWorld
-                                      ww1
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                         ww1)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv5
-                                      ww2
-                                      (Data.HashMap.Base.L @ GHC.Integer.Type.Integer @ v k2 v')
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } } }
-                       GHC.Types.True -> ww1 } }
-                 } in
-                 $wgo
-                   w2
-                   ww
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                      ww)) -}
-597fbd4911aa46b7bd3da6fd03fa502e
-  $sadjust ::
-    (v -> v)
-    -> GHC.Integer.Type.Integer
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(U)><S,U><S,1*U>,
-     Unfolding: (\ @ v
-                   (f :: v -> v)
-                   (k0 :: GHC.Integer.Type.Integer)
-                   (m0 :: Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v) ->
-                 case Data.Hashable.Class.$w$chash5 k0 of ww { DEFAULT ->
-                 letrec {
-                   $wgo :: GHC.Prim.Word#
-                           -> GHC.Integer.Type.Integer
-                           -> GHC.Prim.Int#
-                           -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-                           -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-                     {- Arity: 4, Strictness: <L,U><S,1*U><L,U><S,1*U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Word#)
-                       (w :: GHC.Integer.Type.Integer)
-                       (ww2 :: GHC.Prim.Int#)
-                       (w1 :: Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v) ->
-                     case w of ds5 { DEFAULT ->
-                     case w1 of wild {
-                       Data.HashMap.Base.Empty
-                       -> Data.HashMap.Base.Empty @ GHC.Integer.Type.Integer @ v
-                       Data.HashMap.Base.BitmapIndexed dt dt1
-                       -> let {
-                            m :: GHC.Prim.Word#
-                            = GHC.Prim.uncheckedShiftL#
-                                1##
-                                (GHC.Prim.word2Int#
-                                   (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww1 ww2) 15##))
-                          } in
-                          case GHC.Prim.and# dt m of wild1 {
-                            DEFAULT
-                            -> let {
-                                 i :: GHC.Prim.Int#
-                                 = GHC.Prim.word2Int#
-                                     (GHC.Prim.popCnt#
-                                        (GHC.Prim.and# dt (GHC.Prim.minusWord# m 1##)))
-                               } in
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                      dt1
-                                      i of ds7 { Unit# ipv2 ->
-                               case $wgo ww1 ds5 (GHC.Prim.+# ww2 4#) ipv2 of vx { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                      @ GHC.Prim.RealWorld
-                                      dt1
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                         dt1)
-                                      GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                      ipv4
-                                      i
-                                      vx
-                                      ipv1 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                      ipv4
-                                      s' of ds1 { (#,#) ipv3 ipv5 ->
-                               Data.HashMap.Base.BitmapIndexed
-                                 @ GHC.Integer.Type.Integer
-                                 @ v
-                                 dt
-                                 ipv5 } } } } }
-                            0## -> wild }
-                       Data.HashMap.Base.Leaf dt dt1 dt2
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# dt ww1) of wild1 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case GHC.Integer.Type.eqInteger# dt1 ds5 of wild2 { DEFAULT ->
-                               case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                                 GHC.Types.False -> wild
-                                 GHC.Types.True
-                                 -> case f dt2 of v1 { DEFAULT ->
-                                    Data.HashMap.Base.Leaf
-                                      @ GHC.Integer.Type.Integer
-                                      @ v
-                                      ww1
-                                      ds5
-                                      v1 } } } }
-                       Data.HashMap.Base.Full dt
-                       -> let {
-                            i :: GHC.Prim.Int#
-                            = GHC.Prim.word2Int#
-                                (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww1 ww2) 15##)
-                          } in
-                          case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                 dt
-                                 i of ds7 { Unit# ipv2 ->
-                          case $wgo ww1 ds5 (GHC.Prim.+# ww2 4#) ipv2 of vx { DEFAULT ->
-                          case GHC.Prim.thawArray#
-                                 @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                 @ GHC.Prim.RealWorld
-                                 dt
-                                 0#
-                                 16#
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                 ipv4
-                                 i
-                                 vx
-                                 ipv1 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv3 ->
-                          Data.HashMap.Base.Full
-                            @ GHC.Integer.Type.Integer
-                            @ v
-                            ipv3 } } } } }
-                       Data.HashMap.Base.Collision dt dt1
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# ww1 dt) of wild1 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case Language.Fixpoint.Solver.UniqifyBinds.$s$wupdateWith
-                                      @ v
-                                      f
-                                      ds5
-                                      dt1 of ww3 { DEFAULT ->
-                               Data.HashMap.Base.Collision
-                                 @ GHC.Integer.Type.Integer
-                                 @ v
-                                 ww1
-                                 ww3 } } } }
-                 } in
-                 $wgo (GHC.Prim.int2Word# ww) k0 0# m0 }) -}
-f670155a6719f03385df1f65899ab15c
-  $sinsertWith ::
-    (v -> v -> v)
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Solver.UniqifyBinds.Ref v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Solver.UniqifyBinds.Ref v
-  {- Arity: 4, Strictness: <L,C(C1(U))><S,U><L,U><S,1*U> -}
-79e65ed05dad4042e0e30d55f0fea5bc
-  $sunion ::
-    Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-  {- Arity: 2, Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (s1 :: Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Environments.BindId)
-                   (s2 :: Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Environments.BindId) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Environments.BindId ())
-                   @ (Data.HashSet.HashSet
-                        Language.Fixpoint.Types.Environments.BindId)
-                   (\ (tpl :: Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId ()) ->
-                    tpl)
-                     `cast`
-                   (<Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Environments.BindId ()>_R
-                    ->_R Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Environments.BindId>_N))
-                   (Data.HashMap.Base.union
-                      @ Language.Fixpoint.Types.Environments.BindId
-                      @ ()
-                      GHC.Classes.$fEqInt
-                      Data.Hashable.Class.$fHashableInt
-                      (Data.HashSet.asMap
-                         @ Language.Fixpoint.Types.Environments.BindId
-                         s1)
-                      (Data.HashSet.asMap
-                         @ Language.Fixpoint.Types.Environments.BindId
-                         s2))) -}
-e3e7f5a643e6454bdb28ab9499b4d71a
-  $tc'RB :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14729169248321608501##
-                   15332652572715794664##
-                   Language.Fixpoint.Solver.UniqifyBinds.$trModule
-                   Language.Fixpoint.Solver.UniqifyBinds.$tc'RB1) -}
-381b434e4f9c3021a0e8a09e257e9b75
-  $tc'RB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'RB"#) -}
-0e7694f8d845463a2643f7db56fa798d
-  $tc'RI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2923194611179571075##
-                   11510778114068678790##
-                   Language.Fixpoint.Solver.UniqifyBinds.$trModule
-                   Language.Fixpoint.Solver.UniqifyBinds.$tc'RI1) -}
-d63f156f79382204da83dd561cc6163b
-  $tc'RI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'RI"#) -}
-013bdfbc23c8e014118723615238142d
-  $tcRef :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9525395957101477217##
-                   9517007431825862693##
-                   Language.Fixpoint.Solver.UniqifyBinds.$trModule
-                   Language.Fixpoint.Solver.UniqifyBinds.$tcRef1) -}
-84aad865c70783be8bfd4a5aed9ad18a
-  $tcRef1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Ref"#) -}
-301b85d30abdaab6818f5169894c03b4
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.UniqifyBinds.$trModule2
-                   Language.Fixpoint.Solver.UniqifyBinds.$trModule1) -}
-ebb062d31fe30ce0070427b7261935e7
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.UniqifyBinds"#) -}
-c85791fe73a1c2f259a3eed550747522
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-d3ee39efa6d2c33831428ea8dd27bd9b
-  $w$chashWithSalt ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Solver.UniqifyBinds.Ref -> GHC.Prim.Int#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Solver.UniqifyBinds.Ref) ->
-                 case w of wild {
-                   Language.Fixpoint.Solver.UniqifyBinds.RB dt
-                   -> GHC.Prim.xorI#
-                        (GHC.Prim.*# (GHC.Prim.*# ww 16777619#) 16777619#)
-                        dt
-                   Language.Fixpoint.Solver.UniqifyBinds.RI g1
-                   -> case g1 of wild1 {
-                        GHC.Integer.Type.S# n
-                        -> GHC.Prim.xorI#
-                             (GHC.Prim.*#
-                                (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                                16777619#)
-                             n
-                        GHC.Integer.Type.Jp# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.xorI#
-                             (GHC.Prim.*# ds1 16777619#)
-                             (GHC.Prim.quotInt# numBytes 8#) }
-                        GHC.Integer.Type.Jn# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.negateInt#
-                             (GHC.Prim.xorI#
-                                (GHC.Prim.*# ds1 16777619#)
-                                (GHC.Prim.quotInt# numBytes 8#)) } } }) -}
-af7541c6072d6701c2b67577ea583b87
-  type IdMap =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Solver.UniqifyBinds.Ref
-      (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId)
-d3ee39efa6d2c33831428ea8dd27bd9b
-  data Ref
-    = RB {-# UNPACK #-}Language.Fixpoint.Types.Environments.BindId
-    | RI !GHC.Integer.Type.Integer
-bc23026c50380bc67a7d582f913e4941
-  type RenameMap =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      [(Language.Fixpoint.Types.Sorts.Sort,
-        GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol)]
-d3ee39efa6d2c33831428ea8dd27bd9b
-  axiom Rep_Ref::
-      GHC.Generics.Rep Language.Fixpoint.Solver.UniqifyBinds.Ref
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Ref"
-               "Language.Fixpoint.Solver.UniqifyBinds"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "RB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.BindId))
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "RI" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 GHC.Integer.Type.Integer)))
-2ce8ea81672ca0710a00cdf135420c47
-  renameAll ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 1, Strictness: <L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)> -}
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.UniqifyBinds.Ref]
-  = Language.Fixpoint.Solver.UniqifyBinds.$fEqRef
-instance GHC.Generics.Generic [Language.Fixpoint.Solver.UniqifyBinds.Ref]
-  = Language.Fixpoint.Solver.UniqifyBinds.$fGenericRef
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Solver.UniqifyBinds.Ref]
-  = Language.Fixpoint.Solver.UniqifyBinds.$fHashableRef
-instance Control.DeepSeq.NFData [Language.Fixpoint.Solver.UniqifyBinds.Ref]
-  = Language.Fixpoint.Solver.UniqifyBinds.$fNFDataRef
-family instance GHC.Generics.Rep [Language.Fixpoint.Solver.UniqifyBinds.Ref]
-  = Language.Fixpoint.Solver.UniqifyBinds.Rep_Ref
-"SPEC/Language.Fixpoint.Solver.UniqifyBinds $wupdateOrSnocWithKey @ Ref _" [0] forall @ v
-                                                                                      (w :: GHC.Classes.Eq
-                                                                                              Language.Fixpoint.Solver.UniqifyBinds.Ref)
-  Data.HashMap.Strict.$wupdateOrSnocWithKey @ Language.Fixpoint.Solver.UniqifyBinds.Ref
-                                            @ v
-                                            w
-  = Language.Fixpoint.Solver.UniqifyBinds.$s$wupdateOrSnocWithKey @ v
-"SPEC/Language.Fixpoint.Solver.UniqifyBinds $wupdateWith @ Integer _" [0] forall @ v
-                                                                                 (w :: GHC.Classes.Eq
-                                                                                         GHC.Integer.Type.Integer)
-  Data.HashMap.Strict.$wupdateWith @ GHC.Integer.Type.Integer @ v w
-  = Language.Fixpoint.Solver.UniqifyBinds.$s$wupdateWith @ v
-"SPEC/Language.Fixpoint.Solver.UniqifyBinds adjust @ Integer _" [ALWAYS] forall @ v
-                                                                                ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                 GHC.Integer.Type.Integer)
-                                                                                ($dEq :: GHC.Classes.Eq
-                                                                                           GHC.Integer.Type.Integer)
-  Data.HashMap.Strict.adjust @ GHC.Integer.Type.Integer
-                             @ v
-                             $dEq
-                             $dHashable
-  = Language.Fixpoint.Solver.UniqifyBinds.$sadjust @ v
-"SPEC/Language.Fixpoint.Solver.UniqifyBinds insertWith @ Ref _" [ALWAYS] forall @ v
-                                                                                ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                 Language.Fixpoint.Solver.UniqifyBinds.Ref)
-                                                                                ($dEq :: GHC.Classes.Eq
-                                                                                           Language.Fixpoint.Solver.UniqifyBinds.Ref)
-  Data.HashMap.Strict.insertWith @ Language.Fixpoint.Solver.UniqifyBinds.Ref
-                                 @ v
-                                 $dEq
-                                 $dHashable
-  = Language.Fixpoint.Solver.UniqifyBinds.$sinsertWith @ v
-"SPEC/Language.Fixpoint.Solver.UniqifyBinds union @ BindId" [ALWAYS] forall ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                             Language.Fixpoint.Types.Environments.BindId)
-                                                                            ($dEq :: GHC.Classes.Eq
-                                                                                       Language.Fixpoint.Types.Environments.BindId)
-  Data.HashSet.union @ GHC.Types.Int $dEq $dHashable
-  = Language.Fixpoint.Solver.UniqifyBinds.$sunion
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyKVars.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyKVars.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/UniqifyKVars.dump-hi
+++ /dev/null
@@ -1,396 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:57.270464 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.UniqifyKVars 8002
-  interface hash: afb66c74a66ed3850908b34f8ca01b8b
-  ABI hash: ade363b61e9812a23ffa86becda04098
-  export-list hash: 335a86d610b0597279e3e95176cb0b29
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 290904bdd039286216ab63d3cb89116c
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.UniqifyKVars.wfcUniqify
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  WfC 50354839b899806bfddb7dd9a816596d
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  updateWfCExpr 23675dc8dc2857a14ac20d6834386cde
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  insertBindEnv 2d2a0c911406c085979b39d2332f4072
-  insertsIBindEnv 6cb2cd53df76aa50af651383f2197c38
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  kArgSymbol 262c6e8ecea1e0a5e6a338e1da93e761
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  KVar 9a92033bfe21324e80629facb0f6357f
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  kv c1246352d333802f9d4763702c5c7185
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  top 6360fddfbdf9fae4610e67bd3b0498c3
-  trueSortedReft 2cf3bb57353acef1f9392aa671b60b42
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFrac ecc8fb3da631f4b043ad3670e4fca393
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FInt 0b4cc36338ca92e72f33fb97dc6e5034
-  FNum c88d73ad9fe8566f5ec651da0f3eebd7
-  FObj 1861a52598ccbeb2eef48dfcc16b53b2
-  FReal d85e2ea54f1f84f03191ad6b76f1795a
-  FTC 1c0b8dae81080fb2a43e62cfa71d5192
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  kvarDomain 6fbc199f4dcafc17414225a6ff861f4a
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  mapKVarSubsts 5c2ee594f944d9ac0904549f86b93398
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-aeb4813dbc2bcbb0e4ed87da5dfeaae7
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.UniqifyKVars.$trModule2
-                   Language.Fixpoint.Solver.UniqifyKVars.$trModule1) -}
-c80cb15f2bef2746cdb36fab2a700cc9
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.UniqifyKVars"#) -}
-15d8742daf76c32f9254fda782412654
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-df517fb57b64b4eefd03411d11c81751
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo1 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo1 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo1
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-bd1d21f7b3e0a2edb415dfe51c491fe0
-  $w$sinsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Solver.UniqifyKVars.$wpoly_go1
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   (Data.Text.Internal.Text ww1 ww2 ww3)
-                   ww4
-                   w
-                   0#
-                   w1 }) -}
-3d2f9b77446fbb45b2eb1b1042c5d9cd
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <S,U><L,U><S,U><S,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-20da036b669f75a0907c2d792f715755
-  wfcUniqify ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 1, Strictness: <L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)> -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Worklist.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Worklist.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Solver/Worklist.dump-hi
+++ /dev/null
@@ -1,2048 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:22.529358 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Solver.Worklist 8002
-  interface hash: 9ffec2fb51370364f31cc541fbd1bf22
-  ABI hash: fa4ee31c93076eb78a986cda9ba0370e
-  export-list hash: 07a3962dd623c0c2339d473646cf6a99
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 49c8711d7d81afe29b5e31a9aeeb72c2
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Solver.Worklist.init
-  Language.Fixpoint.Solver.Worklist.pop
-  Language.Fixpoint.Solver.Worklist.push
-  Language.Fixpoint.Solver.Worklist.unsatCandidates
-  Language.Fixpoint.Solver.Worklist.Stats
-  Language.Fixpoint.Solver.Worklist.Worklist{wRanks}
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Set 3ed2324fd1e757464a8ac2b636a64e5a
-import  -/  containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base 1a2f735add6da1c0a9571441c327c084
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Deps e0c16eb9751bfcf4ebf1a8fff4e87d4c
-  isTarget 6782583cf6b58e5237626b8fd737ad77
-import  -/  Language.Fixpoint.Graph.Types 23e94ee5d5e98322336fb70c8000a321
-  exports: b52987cff51a351c36be19c844de97bf
-  Rank cf314d50132935d83698ee9a30f06daa
-  SolverInfo b09606704f7bdb5375f8da175b8cd7d6
-  cNumScc 87afa682c8dd1e9f69a5fe4b0723474f
-  cRank 91056843e7d1f21a2e9caef0fc08c864
-  cSucc 684fe736a36e83079101e58c12b55d5f
-  lookupCMap 0870815b0e5edc51d8f96c01a17ac04c
-  rIcc 38bf3bd76439a8f20c1e4e127885f6df
-  rScc af46031dd918d7df1ae12f39ce98f7c5
-  rTag 0453fee5f00783343cf64781fece1ecc
-  siDeps dc379f0c79c4322eafe1ce9d7d223789
-  siQuery 4e84f9d57ae07ea9ec3747b32c2c102f
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  DocTable 23959c774350b15e84347a7f8a8a1618
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  PTable f56e84dc8639a434ea5dee7210b75707
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  ptable e5a0c2af407911261639841c294a3c86
-import  -/  Language.Fixpoint.Types.Solutions 44253093d8f715e38f38f5864906aa91
-  CMap 60b1399c548e67aa6e3ae48b1aff972a
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-5fe4dec1910f6b77e008202a23a64f2a
-  $fEqStats :: GHC.Classes.Eq Language.Fixpoint.Solver.Worklist.Stats
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.Stats
-                  Language.Fixpoint.Solver.Worklist.$fEqStats_$c==
-                  Language.Fixpoint.Solver.Worklist.$fEqStats_$c/= -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fEqStats_$c/= ::
-    Language.Fixpoint.Solver.Worklist.Stats
-    -> Language.Fixpoint.Solver.Worklist.Stats -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,U,U)><S(SLL),1*U(U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Solver.Worklist.Stats)
-                   (b :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case a of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                 case b of wild1 { Language.Fixpoint.Solver.Worklist.Stats dt3 dt4 dt5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt3) of wild2 {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt1 dt4) of wild3 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt2 dt5) of wild4 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } } }) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fEqStats_$c== ::
-    Language.Fixpoint.Solver.Worklist.Stats
-    -> Language.Fixpoint.Solver.Worklist.Stats -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,U,U)><S(SLL),1*U(U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.Stats)
-                   (ds1 :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                 case ds1 of wild1 { Language.Fixpoint.Solver.Worklist.Stats dt3 dt4 dt5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt3) of wild2 {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt1 dt4) of wild3 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt2 dt5) } } } }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fEqWorkItem ::
-    GHC.Classes.Eq Language.Fixpoint.Solver.Worklist.WorkItem
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.WorkItem
-                  Language.Fixpoint.Solver.Worklist.$fEqWorkItem_$c==
-                  Language.Fixpoint.Solver.Worklist.$fEqWorkItem_$c/= -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fEqWorkItem_$c/= ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (b :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fEqWorkItem_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fEqWorkItem_$c== ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (w1 :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WorkItem ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Solver.Worklist.WorkItem ww9 ww10 ww11 ->
-                 case ww11 of ww12 { Language.Fixpoint.Graph.Types.Rank ww13 ww14 ww15 ->
-                 case GHC.Integer.Type.eqInteger# ww1 ww9 of wild { DEFAULT ->
-                 case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild of wild1 {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww10) of wild2 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww5 ww13) of wild3 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww6 ww14) of wild4 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> GHC.Classes.$fEq[]_$s$c== ww7 ww15 } } } } } } } } }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem ::
-    GHC.Classes.Ord Language.Fixpoint.Solver.Worklist.WorkItem
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.WorkItem
-                  Language.Fixpoint.Solver.Worklist.$fEqWorkItem
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$c<
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$c<=
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$c>
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$c>=
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$cmax
-                  Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$cmin -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$c< ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$c<= ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$c> ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$c>= ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$ccompare ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (w1 :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WorkItem ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Solver.Worklist.WorkItem ww9 ww10 ww11 ->
-                 case ww11 of ww12 { Language.Fixpoint.Graph.Types.Rank ww13 ww14 ww15 ->
-                 Language.Fixpoint.Solver.Worklist.$w$ccompare
-                   ww1
-                   ww2
-                   ww5
-                   ww6
-                   ww7
-                   ww9
-                   ww10
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$cmax ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U(U,U,U))><S(SLS),U(U,U,U(U,U,U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> y GHC.Types.GT -> x }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fOrdWorkItem_$cmin ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),U(U,U,U(U,U,U))><S(SLS),U(U,U,U(U,U,U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (y :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case Language.Fixpoint.Solver.Worklist.$fOrdWorkItem_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> x GHC.Types.GT -> y }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fPPrintWorkItem ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Solver.Worklist.WorkItem
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.WorkItem
-                  Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem_$cpprintTidy
-                  Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem_$cpprintPrec -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fPPrintWorkItem1 ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(SLS),1*U(U,U,U(U,U,U))>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WorkItem ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Language.Fixpoint.Solver.Worklist.$w$cshowsPrec
-                       0#
-                       ww1
-                       ww2
-                       ww5
-                       ww6
-                       ww7
-                       (GHC.Types.[] @ GHC.Types.Char)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww8 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww8)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-819a321452e227b6306c59d27d63241b
-  $fPPrintWorkItem2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-310024f7f73c3f1c095e1e015c336561
-  $fPPrintWorkItem3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "wiRank = "#) -}
-87fd967e72febac44a74e1ab9d75b7e8
-  $fPPrintWorkItem4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "wiTime = "#) -}
-75f026eeab595860afcee2fec95ed78e
-  $fPPrintWorkItem5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-b03e97ed193d7a3187e1f40b847f9903
-  $fPPrintWorkItem6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "wiCId = "#) -}
-e3067042f2595eb01f0ce6d3e0ad3a7f
-  $fPPrintWorkItem7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "WorkItem {"#) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fPPrintWorkItem_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem_$cpprintTidy
-                   eta) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fPPrintWorkItem_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem1 eta) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPPrintWorklist ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Solver.Worklist.Worklist a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Solver.Worklist.Worklist a)
-                  (Language.Fixpoint.Solver.Worklist.$fPPrintWorklist_$cpprintTidy
-                     @ a)
-                  (Language.Fixpoint.Solver.Worklist.$fPPrintWorklist_$cpprintPrec
-                     @ a) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPPrintWorklist_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Solver.Worklist.$fPPrintWorklist_$cpprintTidy
-                   @ a
-                   eta) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPPrintWorklist_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: (\ @ a
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   f :: [Language.Fixpoint.Solver.Worklist.WorkItem]
-                        -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                       @ Language.Fixpoint.Solver.Worklist.WorkItem
-                       Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem
-                       k
-                 } in
-                 \ (x :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 f (case x of wild { Language.Fixpoint.Solver.Worklist.WL ds ds1 ds2 ds3 ds4 ds5 dt dt1 ds6 ->
-                    Data.Set.Base.$fDataSet1
-                      @ Language.Fixpoint.Solver.Worklist.WorkItem
-                      (GHC.Types.[] @ Language.Fixpoint.Solver.Worklist.WorkItem)
-                      ds })) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fPTableStats ::
-    Language.Fixpoint.Types.PrettyPrint.PTable
-      Language.Fixpoint.Solver.Worklist.Stats
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,A)>m2,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.Worklist.$fPTableStats_$cptable
-                  `cast`
-                (Sym (Language.Fixpoint.Types.PrettyPrint.N:PTable[0]
-                          <Language.Fixpoint.Solver.Worklist.Stats>_N)) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fPTableStats1 ::
-    Language.Fixpoint.Solver.Worklist.Stats
-    -> [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)]
-  {- Arity: 1, Strictness: <L,U(U,U,A)>m2, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case Language.Fixpoint.Solver.Worklist.$w$cptable
-                        w of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.:
-                   @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                   ww1
-                   ww2 }) -}
-ef8102cf6d67e8b636bc29cdce68f673
-  $fPTableStats2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Worklist.$fPTableStats_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Worklist.$fPTableStats3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-edf8dbdde26972b3379b23e53d1a2a75
-  $fPTableStats3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Worklist.$fPTableStats_s) -}
-c4f01ebf9e592555450ea8b5c1fecb77
-  $fPTableStats4 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Solver.Worklist.$fPTableStats_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Solver.Worklist.$fPTableStats5
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-48bb92273ec1d74bf8e3be229722811e
-  $fPTableStats5 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Solver.Worklist.$fPTableStats_s1) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fPTableStats_$cptable ::
-    Language.Fixpoint.Solver.Worklist.Stats
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, Strictness: <L,U(U,U,A)>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Worklist.$fPTableStats1
-                  `cast`
-                (<Language.Fixpoint.Solver.Worklist.Stats>_R
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) -}
-68c4be1d0a5d09d16efbe6a1e5516a99
-  $fPTableStats_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "# Target Constraints"#) -}
-42a662edb860a752b67e367752cec36d
-  $fPTableStats_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "# Sliced Constraints"#) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPTableWorklist ::
-    Language.Fixpoint.Types.PrettyPrint.PTable
-      (Language.Fixpoint.Solver.Worklist.Worklist a)
-  DFunId
-  {- Arity: 1, Strictness: <L,1*U(A,A,A,U,A,A,1*U,A,U)>m2,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Solver.Worklist.$fPTableWorklist_$cptable
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.PrettyPrint.N:PTable[0]
-                          <Language.Fixpoint.Solver.Worklist.Worklist a>_N)) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPTableWorklist1 ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)]
-  {- Arity: 1, Strictness: <L,1*U(A,A,A,U,A,A,1*U,A,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case Language.Fixpoint.Solver.Worklist.$w$cptable1
-                        @ a
-                        w of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.:
-                   @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                   ww1
-                   ww2 }) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $fPTableWorklist_$cptable ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, Strictness: <L,1*U(A,A,A,U,A,A,1*U,A,U)>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Solver.Worklist.$fPTableWorklist1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Solver.Worklist.Worklist a>_R
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fShowStats ::
-    GHC.Show.Show Language.Fixpoint.Solver.Worklist.Stats
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.Stats
-                  Language.Fixpoint.Solver.Worklist.$fShowStats_$cshowsPrec
-                  Language.Fixpoint.Solver.Worklist.$fShowStats_$cshow
-                  Language.Fixpoint.Solver.Worklist.$fShowStats_$cshowList -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fShowStats1 ::
-    Language.Fixpoint.Solver.Worklist.Stats -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Worklist.Stats)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.Stats ww1 ww2 ww3 ->
-                 Language.Fixpoint.Solver.Worklist.$w$cshowsPrec1
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-d6f8c2d4b49099f194ca3fa8fd909c0c
-  $fShowStats2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_numSccs = "#) -}
-4030604724e60188bd7487767e32d2d5
-  $fShowStats3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numConcCs = "#) -}
-c998e4d52649ae73bc476acf2ea263e6
-  $fShowStats4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "numKvarCs = "#) -}
-b726b5dcfb6ef05e97182905c8752801
-  $fShowStats5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Stats {"#) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fShowStats_$cshow ::
-    Language.Fixpoint.Solver.Worklist.Stats -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 Language.Fixpoint.Solver.Worklist.$fShowStats_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fShowStats_$cshowList ::
-    [Language.Fixpoint.Solver.Worklist.Stats] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.Worklist.Stats
-                   Language.Fixpoint.Solver.Worklist.$fShowStats1) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $fShowStats_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.Worklist.Stats -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(U,U,U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.Worklist.Stats)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.Worklist.Stats ww3 ww4 ww5 ->
-                 Language.Fixpoint.Solver.Worklist.$w$cshowsPrec1
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fShowWorkItem ::
-    GHC.Show.Show Language.Fixpoint.Solver.Worklist.WorkItem
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Solver.Worklist.WorkItem
-                  Language.Fixpoint.Solver.Worklist.$fShowWorkItem_$cshowsPrec
-                  Language.Fixpoint.Solver.Worklist.$fShowWorkItem_$cshow
-                  Language.Fixpoint.Solver.Worklist.$fShowWorkItem_$cshowList -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fShowWorkItem1 ::
-    Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WorkItem ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                 Language.Fixpoint.Solver.Worklist.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fShowWorkItem_$cshow ::
-    Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SLS),1*U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 Language.Fixpoint.Solver.Worklist.$fShowWorkItem_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fShowWorkItem_$cshowList ::
-    [Language.Fixpoint.Solver.Worklist.WorkItem] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Solver.Worklist.WorkItem
-                   Language.Fixpoint.Solver.Worklist.$fShowWorkItem1) -}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  $fShowWorkItem_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S(SLS),1*U(U,U,U(U,U,U))><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Solver.Worklist.WorkItem)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Solver.Worklist.WorkItem ww3 ww4 ww5 ->
-                 case ww5 of ww6 { Language.Fixpoint.Graph.Types.Rank ww7 ww8 ww9 ->
-                 Language.Fixpoint.Solver.Worklist.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww7
-                   ww8
-                   ww9
-                   w2 } } }) -}
-407474f3df6b5a3ecc7331b484fee7d6
-  $sfromList ::
-    [Language.Fixpoint.Solver.Worklist.WorkItem]
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: [Language.Fixpoint.Solver.Worklist.WorkItem]) ->
-                 case ds of wild {
-                   []
-                   -> Data.Set.Base.Tip @ Language.Fixpoint.Solver.Worklist.WorkItem
-                   : x ds1
-                   -> case ds1 of wild1 {
-                        []
-                        -> case x of dt { Language.Fixpoint.Solver.Worklist.WorkItem ipv ipv1 ipv2 ->
-                           Data.Set.Base.Bin
-                             @ Language.Fixpoint.Solver.Worklist.WorkItem
-                             1#
-                             dt
-                             (Data.Set.Base.Tip @ Language.Fixpoint.Solver.Worklist.WorkItem)
-                             (Data.Set.Base.Tip @ Language.Fixpoint.Solver.Worklist.WorkItem) }
-                        : ipv ipv1
-                        -> case x of ww { Language.Fixpoint.Solver.Worklist.WorkItem ww1 ww2 ww3 ->
-                           case ww3 of ww4 { Language.Fixpoint.Graph.Types.Rank ww5 ww6 ww7 ->
-                           case ipv of ww8 { Language.Fixpoint.Solver.Worklist.WorkItem ww9 ww10 ww11 ->
-                           case ww11 of ww12 { Language.Fixpoint.Graph.Types.Rank ww13 ww14 ww15 ->
-                           case Language.Fixpoint.Solver.Worklist.$w$ccompare
-                                  ww1
-                                  ww2
-                                  ww5
-                                  ww6
-                                  ww7
-                                  ww9
-                                  ww10
-                                  ww13
-                                  ww14
-                                  ww15 of wild2 {
-                             DEFAULT
-                             -> Language.Fixpoint.Solver.Worklist.$sfromList_go5
-                                  (Data.Set.Base.Bin
-                                     @ Language.Fixpoint.Solver.Worklist.WorkItem
-                                     1#
-                                     ww
-                                     (Data.Set.Base.Tip
-                                        @ Language.Fixpoint.Solver.Worklist.WorkItem)
-                                     (Data.Set.Base.Tip
-                                        @ Language.Fixpoint.Solver.Worklist.WorkItem))
-                                  wild1
-                             GHC.Types.LT
-                             -> Language.Fixpoint.Solver.Worklist.$wgo5
-                                  1#
-                                  (Data.Set.Base.Bin
-                                     @ Language.Fixpoint.Solver.Worklist.WorkItem
-                                     1#
-                                     ww
-                                     (Data.Set.Base.Tip
-                                        @ Language.Fixpoint.Solver.Worklist.WorkItem)
-                                     (Data.Set.Base.Tip
-                                        @ Language.Fixpoint.Solver.Worklist.WorkItem))
-                                  wild1 } } } } } } }) -}
-55109c78950cde43e06d2c01bb79c10a
-  $sfromList_go5 ::
-    Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-    -> [Language.Fixpoint.Solver.Worklist.WorkItem]
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-a7dbfae78189d6c94aec2f14cf92506d
-  $tc'Stats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9021279393538314989##
-                   9020655727603453956##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tc'Stats1) -}
-2250de73229a9508d46aa829fe221f8a
-  $tc'Stats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Stats"#) -}
-fc013548c71e2649453eca0f879d3528
-  $tc'WL :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11207194495057568791##
-                   11527270621672303633##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tc'WL1) -}
-f0f783474825efab0604b3bc292cb9d1
-  $tc'WL1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'WL"#) -}
-91c0441897569bb6bcbc1910ee981c9b
-  $tc'WorkItem :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6456863993726647477##
-                   6654150751896637682##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tc'WorkItem1) -}
-1be9e2a689167c36f2078af1d416ecb6
-  $tc'WorkItem1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'WorkItem"#) -}
-1eef8ba0f7b81cda27c98cd03b67b2c7
-  $tcStats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   596167686156311253##
-                   15735739916260539172##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tcStats1) -}
-853f9c3f603d3df4063812ccf2c7a2a6
-  $tcStats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Stats"#) -}
-1faa8ae688e2c7f765298ff9f1613a05
-  $tcWorkItem :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6303197115704764025##
-                   3640674112484235352##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tcWorkItem1) -}
-2d1ec66ab2a96ffc0ab60c0a383aea3a
-  $tcWorkItem1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "WorkItem"#) -}
-9ffa8dd7cf32ac46a5eb8d6fa22fad86
-  $tcWorklist :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17353124177155171500##
-                   7912042548653030337##
-                   Language.Fixpoint.Solver.Worklist.$trModule
-                   Language.Fixpoint.Solver.Worklist.$tcWorklist1) -}
-0ea0d4ec59e6b71e5bbf47de9aecda8f
-  $tcWorklist1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Worklist"#) -}
-8f3ff52f3536b83e645ad205a45de6c4
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Solver.Worklist.$trModule2
-                   Language.Fixpoint.Solver.Worklist.$trModule1) -}
-43a714f843b7262ff739a2ae1e844356
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Solver.Worklist"#) -}
-19561c9dfa2564d1df7d075edb7a763d
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-14683a4131cc62afef836d8bac9ea165
-  $w$ccompare ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> GHC.Types.Ordering
-  {- Arity: 10, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (ww5 :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww6 :: GHC.Prim.Int#)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Language.Fixpoint.Types.Constraints.Tag) ->
-                 GHC.Base.$fMonoidOrdering_go
-                   (GHC.Types.:
-                      @ GHC.Types.Ordering
-                      (GHC.Classes.compareInt# ww2 ww7)
-                      (GHC.Types.:
-                         @ GHC.Types.Ordering
-                         (GHC.Classes.compareInt# ww1 ww6)
-                         (GHC.Types.:
-                            @ GHC.Types.Ordering
-                            (GHC.Classes.compareInt# ww3 ww8)
-                            (GHC.Types.:
-                               @ GHC.Types.Ordering
-                               (GHC.Classes.$fOrd[]_$s$ccompare ww4 ww9)
-                               (GHC.Types.:
-                                  @ GHC.Types.Ordering
-                                  (GHC.Integer.Type.compareInteger ww ww5)
-                                  (GHC.Types.[] @ GHC.Types.Ordering))))))) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  $w$cptable ::
-    Language.Fixpoint.Solver.Worklist.Stats
-    -> (# (Text.PrettyPrint.HughesPJ.Doc,
-           Text.PrettyPrint.HughesPJ.Doc),
-          [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)] #)
-  {- Arity: 1, Strictness: <L,U(U,U,A)>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 (# (Language.Fixpoint.Solver.Worklist.$fPTableStats4,
-                     case w of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                     case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                            dt of ww2 { (#,#) ww3 ww4 ->
-                     (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                       `cast`
-                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }),
-                    GHC.Types.:
-                      @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                      (Language.Fixpoint.Solver.Worklist.$fPTableStats2,
-                       case w of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                       case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                              dt1 of ww2 { (#,#) ww3 ww4 ->
-                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                         `cast`
-                       (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } })
-                      (GHC.Types.[]
-                         @ (Text.PrettyPrint.HughesPJ.Doc,
-                            Text.PrettyPrint.HughesPJ.Doc)) #)) -}
-c84f1184e26905f15f284ebb1e3a54c9
-  $w$cptable1 ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> (# (Text.PrettyPrint.HughesPJ.Doc,
-           Text.PrettyPrint.HughesPJ.Doc),
-          [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)] #)
-  {- Arity: 1, Strictness: <L,1*U(A,A,A,U,A,A,1*U,A,U)>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 Language.Fixpoint.Solver.Worklist.$w$cptable
-                   (case w of wild { Language.Fixpoint.Solver.Worklist.WL ds ds1 ds2 ds3 ds4 ds5 dt dt1 ds6 ->
-                    case Data.HashMap.Base.$wsize
-                           @ Language.Fixpoint.Types.Constraints.SubcId
-                           @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                           ds3 of ww { DEFAULT ->
-                    case GHC.List.$wlenAcc
-                           @ GHC.Integer.Type.Integer
-                           ds6
-                           0# of ww2 { DEFAULT ->
-                    Language.Fixpoint.Solver.Worklist.Stats ww ww2 dt } } })) -}
-e290e589f112bff2e292dae13a406e59
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 7, Strictness: <S,U><S,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem7
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem6
-                          (case GHC.Show.$w$cshowsPrec1
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem5
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem4
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem5
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem3
-                                                      (Language.Fixpoint.Graph.Types.$w$cshowsPrec
-                                                         0#
-                                                         ww3
-                                                         ww4
-                                                         ww5
-                                                         (GHC.Base.++
-                                                            @ GHC.Types.Char
-                                                            Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem2
-                                                            x)))) of ww6 { (#,#) ww7 ww8 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww7
-                                           ww8 }))) of ww6 { (#,#) ww7 ww8 ->
-                           GHC.Types.: @ GHC.Types.Char ww7 ww8 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-c82146108d6ac2b70b1357f0f8d7dc85
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Solver.Worklist.$fShowStats5
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Solver.Worklist.$fShowStats4
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem5
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Solver.Worklist.$fShowStats3
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem5
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Solver.Worklist.$fShowStats2
-                                                      (case GHC.Show.$wshowSignedInt
-                                                              0#
-                                                              ww3
-                                                              (GHC.Base.++
-                                                                 @ GHC.Types.Char
-                                                                 Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem2
-                                                                 x) of ww4 { (#,#) ww5 ww6 ->
-                                                       GHC.Types.:
-                                                         @ GHC.Types.Char
-                                                         ww5
-                                                         ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww5
-                                           ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-422ae32ac5f0300a56f16af3f096b90d
-  $w$sgo5 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 6, Strictness: <S,U><L,U><L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-3d21874fdb3aa2f7cf156fcf638c33a9
-  $wgo5 ::
-    GHC.Prim.Int#
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-    -> [Language.Fixpoint.Solver.Worklist.WorkItem]
-    -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,1*U>, Inline: [0] -}
-b9db6d88fcdedb770402a5a22c82f4fd
-  $wpoly_go1 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Constraints.SubcId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-df039a1d4e062f80387ba21064b0819b
-  $wpoly_go2 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Constraints.SubcId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-e8cdc7b5843948b1fe87fe2db7c08643
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-  {- Arity: 4, Strictness: <L,U><S,1*U><L,U><S,1*U>, Inline: [0] -}
-0d09b05b81937416e8a865b8469114dd
-  $wpoly_go4 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-  {- Arity: 5, Strictness: <S,U><S,1*U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-e36e953186377f6225d00d672c6d856a
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,1*U><L,U><S,1*U>,
-     Inline: [0] -}
-d48439ad4c3535722d88c870d11dd465
-  $wpop ::
-    Language.Fixpoint.Solver.Worklist.WorkSet
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-    -> Language.Fixpoint.Types.Solutions.CMap
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> Language.Fixpoint.Types.Solutions.CMap
-         Language.Fixpoint.Graph.Types.Rank
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> GHC.Base.Maybe
-         (Language.Fixpoint.Types.Constraints.SimpC a,
-          Language.Fixpoint.Solver.Worklist.Worklist a, GHC.Types.Bool,
-          GHC.Types.Int)
-  {- Arity: 9,
-     Strictness: <S,U><S,U><S,U><S,U><S,U><S,U><L,U><L,U><S,U>,
-     Inline: [0] -}
-3d4c2bfe08253048d4eb0a17f46183e3
-  $wpush ::
-    GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Solver.Worklist.WorkSet
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-    -> Language.Fixpoint.Types.Solutions.CMap
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> Language.Fixpoint.Types.Solutions.CMap
-         Language.Fixpoint.Graph.Types.Rank
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> (# Language.Fixpoint.Solver.Worklist.WorkSet,
-          Language.Fixpoint.Types.Solutions.CMap (),
-          Language.Fixpoint.Types.Solutions.CMap
-            [Language.Fixpoint.Types.Constraints.SubcId],
-          Language.Fixpoint.Types.Solutions.CMap
-            (Language.Fixpoint.Types.Constraints.SimpC a),
-          Language.Fixpoint.Types.Solutions.CMap
-            Language.Fixpoint.Graph.Types.Rank,
-          GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId,
-          GHC.Prim.Int#, GHC.Prim.Int#,
-          [Language.Fixpoint.Types.Constraints.SubcId] #)
-  {- Arity: 10,
-     Strictness: <S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: GHC.Base.Maybe GHC.Integer.Type.Integer)
-                   (ww1 :: Language.Fixpoint.Solver.Worklist.WorkSet)
-                   (ww2 :: Language.Fixpoint.Types.Solutions.CMap ())
-                   (ww3 :: Language.Fixpoint.Types.Solutions.CMap
-                             [Language.Fixpoint.Types.Constraints.SubcId])
-                   (ww4 :: Language.Fixpoint.Types.Solutions.CMap
-                             (Language.Fixpoint.Types.Constraints.SimpC a))
-                   (ww5 :: Language.Fixpoint.Types.Solutions.CMap
-                             Language.Fixpoint.Graph.Types.Rank)
-                   (ww6 :: GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: [Language.Fixpoint.Types.Constraints.SubcId]) ->
-                 case ww of wild {
-                   GHC.Base.Nothing
-                   -> case Language.Fixpoint.Solver.Worklist.push1
-                      ret_ty (# Language.Fixpoint.Solver.Worklist.WorkSet,
-                                Language.Fixpoint.Types.Solutions.CMap (),
-                                Language.Fixpoint.Types.Solutions.CMap
-                                  [Language.Fixpoint.Types.Constraints.SubcId],
-                                Language.Fixpoint.Types.Solutions.CMap
-                                  (Language.Fixpoint.Types.Constraints.SimpC a),
-                                Language.Fixpoint.Types.Solutions.CMap
-                                  Language.Fixpoint.Graph.Types.Rank,
-                                GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId,
-                                GHC.Prim.Int#, GHC.Prim.Int#,
-                                [Language.Fixpoint.Types.Constraints.SubcId] #)
-                      of {}
-                   GHC.Base.Just x1
-                   -> case Data.Hashable.Class.$w$chash5 x1 of ww10 { DEFAULT ->
-                      let {
-                        is' :: [Language.Fixpoint.Types.Constraints.SubcId]
-                        = case Language.Fixpoint.Solver.Worklist.$wpoly_go5
-                                 @ [Language.Fixpoint.Types.Constraints.SubcId]
-                                 (GHC.Prim.int2Word# ww10)
-                                 x1
-                                 0#
-                                 ww3 of wild1 {
-                            GHC.Base.Nothing -> GHC.Types.[] @ GHC.Integer.Type.Integer
-                            GHC.Base.Just v1
-                            -> GHC.List.filter
-                                 @ GHC.Integer.Type.Integer
-                                 (\ (x :: Language.Fixpoint.Types.Constraints.SubcId) ->
-                                  case Data.Hashable.Class.$w$chash5 x of ww11 { DEFAULT ->
-                                  case Language.Fixpoint.Solver.Worklist.$wpoly_go5
-                                         @ ()
-                                         (GHC.Prim.int2Word# ww11)
-                                         x
-                                         0#
-                                         ww2 of wild2 {
-                                    GHC.Base.Nothing -> GHC.Types.True
-                                    GHC.Base.Just ds -> GHC.Types.False } })
-                                 v1 }
-                      } in
-                      letrec {
-                        go :: [GHC.Integer.Type.Integer]
-                              -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-                              -> Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-                          {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-                        = \ (ds :: [GHC.Integer.Type.Integer])
-                            (eta :: Data.Set.Base.Set
-                                      Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                          case ds of wild1 {
-                            [] -> eta
-                            : y ys
-                            -> case Language.Fixpoint.Solver.Worklist.$wworkItemsAt
-                                      ww5
-                                      ww8
-                                      y of ww11 { (#,,#) ww12 ww13 ww14 ->
-                               case ww14 of ww15 { Language.Fixpoint.Graph.Types.Rank ww16 ww17 ww18 ->
-                               go
-                                 ys
-                                 (Language.Fixpoint.Solver.Worklist.$w$sgo5
-                                    ww12
-                                    ww13
-                                    ww16
-                                    ww17
-                                    ww18
-                                    eta) } } }
-                      } in
-                      case go is' ww1 of dt { DEFAULT ->
-                      case Language.Fixpoint.Solver.Worklist.push_go
-                             is'
-                             ww2 of dt1 { DEFAULT ->
-                      (# dt, dt1, ww3, ww4, ww5, ww6, ww7, GHC.Prim.+# 1# ww8,
-                         ww9 #) } } } }) -}
-e4c602250700f05a3072fb83eccf4244
-  $wunsatCandidates ::
-    Language.Fixpoint.Types.Solutions.CMap
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-    -> [Language.Fixpoint.Types.Constraints.SimpC a]
-  {- Arity: 2, Strictness: <S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Language.Fixpoint.Types.Solutions.CMap
-                            (Language.Fixpoint.Types.Constraints.SimpC a))
-                   (ww1 :: [Language.Fixpoint.Types.Constraints.SubcId]) ->
-                 letrec {
-                   go :: [Language.Fixpoint.Types.Constraints.SubcId]
-                         -> [Language.Fixpoint.Types.Constraints.SimpC a]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [Language.Fixpoint.Types.Constraints.SubcId]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                            (case Data.Hashable.Class.$w$chash5 y of ww2 { DEFAULT ->
-                             case Language.Fixpoint.Solver.Worklist.$wpoly_go5
-                                    @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                                    (GHC.Prim.int2Word# ww2)
-                                    y
-                                    0#
-                                    ww of wild1 {
-                               GHC.Base.Nothing
-                               -> Language.Fixpoint.Solver.Worklist.unsatCandidates1 @ a y
-                               GHC.Base.Just v1 -> v1 } })
-                            (go ys) }
-                 } in
-                 go ww1) -}
-925f0660a90b295bfa8d59059029601c
-  $wworkItemsAt ::
-    Language.Fixpoint.Types.Solutions.CMap
-      Language.Fixpoint.Graph.Types.Rank
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.SubcId
-    -> (# Language.Fixpoint.Types.Constraints.SubcId, GHC.Prim.Int#,
-          Language.Fixpoint.Graph.Types.Rank #)
-  {- Arity: 3, Strictness: <S,1*U><S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.CMap
-                           Language.Fixpoint.Graph.Types.Rank)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubcId) ->
-                 let {
-                   $j :: GHC.Prim.Word#
-                         -> (# Language.Fixpoint.Types.Constraints.SubcId, GHC.Prim.Int#,
-                               Language.Fixpoint.Graph.Types.Rank #)
-                     {- Arity: 1 -}
-                   = \ (ww1 :: GHC.Prim.Word#)[OneShot] ->
-                     case Language.Fixpoint.Solver.Worklist.$wpoly_go5
-                            @ Language.Fixpoint.Graph.Types.Rank
-                            ww1
-                            w1
-                            0#
-                            w of wild {
-                       GHC.Base.Nothing
-                       -> case Language.Fixpoint.Solver.Worklist.init5 w1
-                          ret_ty (# Language.Fixpoint.Types.Constraints.SubcId,
-                                    GHC.Prim.Int#, Language.Fixpoint.Graph.Types.Rank #)
-                          of {}
-                       GHC.Base.Just v1
-                       -> case v1 of dt { Language.Fixpoint.Graph.Types.Rank ipv ipv1 ipv2 ->
-                          (# w1, ww, dt #) } }
-                 } in
-                 case w1 of wild {
-                   GHC.Integer.Type.S# n -> $j (GHC.Prim.int2Word# n)
-                   GHC.Integer.Type.Jp# dt
-                   -> let {
-                        numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                      } in
-                      case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.State#
-                                                                                                                               GHC.Prim.RealWorld
-                                                                                                                          -> (# GHC.Prim.State#
-                                                                                                                                  GHC.Prim.RealWorld,
-                                                                                                                                GHC.Prim.Int# #)}
-                             dt
-                             0#
-                             numBytes
-                             -2578643520546668380#
-                             GHC.Prim.realWorld# of wild1 { (#,#) ds ds1 ->
-                      $j
-                        (GHC.Prim.int2Word#
-                           (GHC.Prim.xorI#
-                              (GHC.Prim.*# ds1 16777619#)
-                              (GHC.Prim.quotInt# numBytes 8#))) }
-                   GHC.Integer.Type.Jn# dt
-                   -> let {
-                        numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                      } in
-                      case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.Int#
-                                                                                                                          -> GHC.Prim.State#
-                                                                                                                               GHC.Prim.RealWorld
-                                                                                                                          -> (# GHC.Prim.State#
-                                                                                                                                  GHC.Prim.RealWorld,
-                                                                                                                                GHC.Prim.Int# #)}
-                             dt
-                             0#
-                             numBytes
-                             -2578643520546668380#
-                             GHC.Prim.realWorld# of wild1 { (#,#) ds ds1 ->
-                      $j
-                        (GHC.Prim.int2Word#
-                           (GHC.Prim.negateInt#
-                              (GHC.Prim.xorI#
-                                 (GHC.Prim.*# ds1 16777619#)
-                                 (GHC.Prim.quotInt# numBytes 8#)))) } }) -}
-5fe4dec1910f6b77e008202a23a64f2a
-  data Stats
-    = Stats {numKvarCs :: {-# UNPACK #-}GHC.Types.Int,
-             numConcCs :: {-# UNPACK #-}GHC.Types.Int,
-             _numSccs :: {-# UNPACK #-}GHC.Types.Int}
-5c37c1183fd2b8a5f68bb429df9d1d80
-  data WorkItem
-    = WorkItem {wiCId :: !Language.Fixpoint.Types.Constraints.SubcId,
-                wiTime :: {-# UNPACK #-}GHC.Types.Int,
-                wiRank :: !Language.Fixpoint.Graph.Types.Rank}
-ed6e8f4a1d7757a452d4a9fdbf95aaca
-  type WorkSet =
-    Data.Set.Base.Set Language.Fixpoint.Solver.Worklist.WorkItem
-c84f1184e26905f15f284ebb1e3a54c9
-  data Worklist a
-    = WL {wCs :: !Language.Fixpoint.Solver.Worklist.WorkSet,
-          wPend :: !Language.Fixpoint.Types.Solutions.CMap (),
-          wDeps :: !Language.Fixpoint.Types.Solutions.CMap
-                      [Language.Fixpoint.Types.Constraints.SubcId],
-          wCm :: !Language.Fixpoint.Types.Solutions.CMap
-                    (Language.Fixpoint.Types.Constraints.SimpC a),
-          wRankm :: !Language.Fixpoint.Types.Solutions.CMap
-                       Language.Fixpoint.Graph.Types.Rank,
-          wLast :: !GHC.Base.Maybe
-                      Language.Fixpoint.Types.Constraints.SubcId,
-          wRanks :: {-# UNPACK #-}GHC.Types.Int,
-          wTime :: {-# UNPACK #-}GHC.Types.Int,
-          wConcCs :: ![Language.Fixpoint.Types.Constraints.SubcId]}
-278c70ab22310c7c8b1ee7520b8aacf4
-  _numSccs ::
-    Language.Fixpoint.Solver.Worklist.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                 GHC.Types.I# dt2 }) -}
-d0cb8294243b4aaa2d2e3c1afaaa8258
-  init ::
-    Language.Fixpoint.Graph.Types.SolverInfo a b
-    -> Language.Fixpoint.Solver.Worklist.Worklist a
-  {- Arity: 1,
-     Strictness: <S(LS(SLLLLLLLLLL)SL),U(A,U(U,A,A,A,A,A,A,A,A,A,A),U(U,U,U,U),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (w :: Language.Fixpoint.Graph.Types.SolverInfo a b) ->
-                 case w of ww { Language.Fixpoint.Graph.Types.SI ww1 ww2 ww3 ww4 ->
-                 case ww2 of ww5 { Language.Fixpoint.Types.Constraints.FI ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ->
-                 case ww3 of ww17 { Language.Fixpoint.Graph.Types.CDs ww18 ww19 ww20 ww21 ->
-                 let {
-                   $j :: [(Language.Fixpoint.Types.Constraints.SubcId,
-                           Language.Fixpoint.Types.Constraints.SimpC a)]
-                         -> [(Language.Fixpoint.Types.Constraints.SubcId,
-                              Language.Fixpoint.Types.Constraints.SimpC a)]
-                         -> Language.Fixpoint.Solver.Worklist.Worklist a
-                     {- Arity: 2 -}
-                   = \ (ww22 :: [(Language.Fixpoint.Types.Constraints.SubcId,
-                                  Language.Fixpoint.Types.Constraints.SimpC a)])[OneShot]
-                       (ww23 :: [(Language.Fixpoint.Types.Constraints.SubcId,
-                                  Language.Fixpoint.Types.Constraints.SimpC a)])[OneShot] ->
-                     let {
-                       kvarCs :: [Language.Fixpoint.Types.Constraints.SubcId]
-                       = GHC.Base.map
-                           @ (Language.Fixpoint.Types.Constraints.SubcId,
-                              Language.Fixpoint.Types.Constraints.SimpC a)
-                           @ GHC.Integer.Type.Integer
-                           (Data.Tuple.fst
-                              @ Language.Fixpoint.Types.Constraints.SubcId
-                              @ (Language.Fixpoint.Types.Constraints.SimpC a))
-                           ww23
-                     } in
-                     case Language.Fixpoint.Solver.Worklist.$sfromList
-                            (GHC.Base.map
-                               @ GHC.Integer.Type.Integer
-                               @ Language.Fixpoint.Solver.Worklist.WorkItem
-                               (\ (w1 :: Language.Fixpoint.Types.Constraints.SubcId) ->
-                                case Language.Fixpoint.Solver.Worklist.$wworkItemsAt
-                                       ww20
-                                       0#
-                                       w1 of ww24 { (#,,#) ww25 ww26 ww27 ->
-                                Language.Fixpoint.Solver.Worklist.WorkItem ww25 ww26 ww27 })
-                               kvarCs) of dt { DEFAULT ->
-                     case Language.Fixpoint.Solver.Worklist.init_go
-                            kvarCs
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Types.Constraints.SubcId
-                               @ ()) of dt1 { DEFAULT ->
-                     case GHC.Base.map
-                            @ (Language.Fixpoint.Types.Constraints.SubcId,
-                               Language.Fixpoint.Types.Constraints.SimpC a)
-                            @ GHC.Integer.Type.Integer
-                            (Data.Tuple.fst
-                               @ Language.Fixpoint.Types.Constraints.SubcId
-                               @ (Language.Fixpoint.Types.Constraints.SimpC a))
-                            ww22 of dt2 { DEFAULT ->
-                     Language.Fixpoint.Solver.Worklist.WL
-                       @ a
-                       dt
-                       dt1
-                       ww18
-                       ww6
-                       ww20
-                       (GHC.Base.Nothing @ Language.Fixpoint.Types.Constraints.SubcId)
-                       ww21
-                       0#
-                       dt2 } } }
-                 } in
-                 case ww6 of wild {
-                   Data.HashMap.Base.Empty
-                   -> $j
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Constraints.SubcId,
-                              Language.Fixpoint.Types.Constraints.SimpC a))
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Constraints.SubcId,
-                              Language.Fixpoint.Types.Constraints.SimpC a))
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> case Language.Fixpoint.Solver.Worklist.init4
-                             @ a
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt1)
-                             (GHC.Prim.sizeofArray#
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt1)
-                             0#
-                             (Language.Fixpoint.Solver.Worklist.init3
-                                @ a) of ww22 { (,) ww23 ww24 ->
-                      $j ww23 ww24 }
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> case Language.Fixpoint.Types.Visitor.isConcC
-                             @ Language.Fixpoint.Types.Constraints.SimpC
-                             @ a
-                             (Language.Fixpoint.Types.Constraints.$fTaggedCSimpCa @ a)
-                             dt2 of wild1 {
-                        GHC.Types.False
-                        -> $j
-                             (GHC.Types.[]
-                                @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                   Language.Fixpoint.Types.Constraints.SimpC a))
-                             (GHC.Types.:
-                                @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                   Language.Fixpoint.Types.Constraints.SimpC a)
-                                (dt1, dt2)
-                                (GHC.Types.[]
-                                   @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                      Language.Fixpoint.Types.Constraints.SimpC a)))
-                        GHC.Types.True
-                        -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                                  (Language.Fixpoint.Types.Constraints._crhs @ a dt2) of wild2 {
-                             GHC.Types.False
-                             -> $j
-                                  (GHC.Types.:
-                                     @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                        Language.Fixpoint.Types.Constraints.SimpC a)
-                                     (dt1, dt2)
-                                     (GHC.Types.[]
-                                        @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                           Language.Fixpoint.Types.Constraints.SimpC a)))
-                                  (GHC.Types.[]
-                                     @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                        Language.Fixpoint.Types.Constraints.SimpC a))
-                             GHC.Types.True
-                             -> $j
-                                  (GHC.Types.[]
-                                     @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                        Language.Fixpoint.Types.Constraints.SimpC a))
-                                  (GHC.Types.:
-                                     @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                        Language.Fixpoint.Types.Constraints.SimpC a)
-                                     (dt1, dt2)
-                                     (GHC.Types.[]
-                                        @ (Language.Fixpoint.Types.Constraints.SubcId,
-                                           Language.Fixpoint.Types.Constraints.SimpC a))) } }
-                   Data.HashMap.Base.Full dt
-                   -> case Language.Fixpoint.Solver.Worklist.init2
-                             @ a
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt)
-                             (GHC.Prim.sizeofArray#
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt)
-                             0#
-                             (Language.Fixpoint.Solver.Worklist.init3
-                                @ a) of ww22 { (,) ww23 ww24 ->
-                      $j ww23 ww24 }
-                   Data.HashMap.Base.Collision dt dt1
-                   -> case Language.Fixpoint.Solver.Worklist.init1
-                             @ a
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt1)
-                             (GHC.Prim.sizeofArray#
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Constraints.SubcId
-                                     (Language.Fixpoint.Types.Constraints.SimpC a))
-                                dt1)
-                             0#
-                             (Language.Fixpoint.Solver.Worklist.init3
-                                @ a) of ww22 { (,) ww23 ww24 ->
-                      $j ww23 ww24 } } } } }) -}
-51282ba4a2eec3152409654832573ed2
-  init1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-  {- Arity: 4, Strictness: <L,1*U(U)><S,U><S,U><L,1*U(U,U)>,
-     Inline: [0] -}
-476b2560f978230f7d30d6298f6002a1
-  init2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-  {- Arity: 4, Strictness: <L,U(U)><S,U><S,U><L,1*U(U,U)>,
-     Inline: [0] -}
-79c58b94ecab859f4c2819df28fd08cb
-  init3 ::
-    ([(Language.Fixpoint.Types.Constraints.SubcId,
-       Language.Fixpoint.Types.Constraints.SimpC a)],
-     [(Language.Fixpoint.Types.Constraints.SubcId,
-       Language.Fixpoint.Types.Constraints.SimpC a)])
-  {- HasNoCafRefs,
-     Unfolding: (\ @ a ->
-                 (GHC.Types.[]
-                    @ (Language.Fixpoint.Types.Constraints.SubcId,
-                       Language.Fixpoint.Types.Constraints.SimpC a),
-                  GHC.Types.[]
-                    @ (Language.Fixpoint.Types.Constraints.SubcId,
-                       Language.Fixpoint.Types.Constraints.SimpC a))) -}
-39e9ce65a7038ed6e491e16fb540583f
-  init4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-    -> ([(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)],
-        [(Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SimpC a)])
-  {- Arity: 4, Strictness: <L,U(U)><S,U><S,U><L,1*U(U,U)>,
-     Inline: [0] -}
-b0645c75e029213ba5d90ed058d2f9ff
-  init5 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Graph.Types.Rank
-  {- Arity: 1, Strictness: <L,U>x -}
-1a197c8ab6b8be00f35c8e7a53ffe018
-  init_go ::
-    [Language.Fixpoint.Types.Constraints.SubcId]
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-8f5acdd7faaed051bcd9d016931ac5a9
-  numConcCs ::
-    Language.Fixpoint.Solver.Worklist.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                 GHC.Types.I# dt1 }) -}
-4f995b777b7381fb68827eab86278a38
-  numKvarCs ::
-    Language.Fixpoint.Solver.Worklist.Stats -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.Stats
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.Stats) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.Stats dt dt1 dt2 ->
-                 GHC.Types.I# dt }) -}
-b18054b832ac05bc3a2d9a2e8a214923
-  pop ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> GHC.Base.Maybe
-         (Language.Fixpoint.Types.Constraints.SimpC a,
-          Language.Fixpoint.Solver.Worklist.Worklist a, GHC.Types.Bool,
-          GHC.Types.Int)
-  {- Arity: 1, Strictness: <S(SSSSSSLLS),1*U(U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WL ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ->
-                 Language.Fixpoint.Solver.Worklist.$wpop
-                   @ a
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9 }) -}
-c5b19c73e458d9f199e7cc7670ca74ae
-  push ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Solver.Worklist.Worklist a
-  {- Arity: 2,
-     Strictness: <S(LLSLL),1*U(A,A,U,A,A)><S(SSSSSSSSS),1*U(U,U,U,U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SimpC a)
-                   (w1 :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SimpC ww1 ww2 ww3 ww4 ww5 ->
-                 case w1 of ww6 { Language.Fixpoint.Solver.Worklist.WL ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ->
-                 case Language.Fixpoint.Solver.Worklist.$wpush
-                        @ a
-                        ww3
-                        ww7
-                        ww8
-                        ww9
-                        ww10
-                        ww11
-                        ww12
-                        ww13
-                        ww14
-                        ww15 of ww16 { (#,,,,,,,,#) ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ->
-                 Language.Fixpoint.Solver.Worklist.WL
-                   @ a
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25 } } }) -}
-6a925cbd330b3f1e655c389ba24fc988
-  push1 :: GHC.Integer.Type.Integer
-  {- Strictness: x -}
-bb65fa9c7529d334a3817e57812b05e0
-  push_go ::
-    [Language.Fixpoint.Types.Constraints.SubcId]
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-c15586d22037298ff224939786c1fd0d
-  unsatCandidates ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> [Language.Fixpoint.Types.Constraints.SimpC a]
-  {- Arity: 1, Strictness: <S(LLLSLLLLS),1*U(A,A,A,U,A,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case w of ww { Language.Fixpoint.Solver.Worklist.WL ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ->
-                 Language.Fixpoint.Solver.Worklist.$wunsatCandidates
-                   @ a
-                   ww4
-                   ww9 }) -}
-1de3bccf9da7d77be882906c05a2f0e5
-  unsatCandidates1 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 1, Strictness: <L,U>x -}
-8c06ebbc4582dbded1eef62094ecc82a
-  wCm ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Types.Solutions.CMap
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLLLL),1*U(A,A,A,U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds4 }) -}
-1ffd991f7fbe35c8488ac67874955a37
-  wConcCs ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLS),1*U(A,A,A,A,A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds7 }) -}
-870a7b775dce3e951ead173cf8ecde5d
-  wCs ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Solver.Worklist.WorkSet
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLL),1*U(U,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds1 }) -}
-6f01826023e3ecde79c20673894f1476
-  wDeps ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLLLL),1*U(A,A,U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds3 }) -}
-5e803948d32541cbd695e3f67a27d014
-  wLast ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSLLL),1*U(A,A,A,A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds6 }) -}
-f1ffd02b16d47625b3576e80fbc68f30
-  wPend ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Types.Solutions.CMap ()
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLL),1*U(A,U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds2 }) -}
-8f4738342c7df593f713b5d612ac13ac
-  wRankm ::
-    Language.Fixpoint.Solver.Worklist.Worklist a
-    -> Language.Fixpoint.Types.Solutions.CMap
-         Language.Fixpoint.Graph.Types.Rank
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLLLL),1*U(A,A,A,A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 ds5 }) -}
-a3d6cbd11c22b5d265c8e478454ac38f
-  wRanks ::
-    Language.Fixpoint.Solver.Worklist.Worklist a -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLSLL),1*U(A,A,A,A,A,A,U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 GHC.Types.I# dt }) -}
-9e99f5aeab7265ba665d6def36082560
-  wTime ::
-    Language.Fixpoint.Solver.Worklist.Worklist a -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.Worklist
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLSL),1*U(A,A,A,A,A,A,A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Solver.Worklist.Worklist a) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WL ds1 ds2 ds3 ds4 ds5 ds6 dt dt1 ds7 ->
-                 GHC.Types.I# dt1 }) -}
-5c96f2ea54cf766b56166d5feae06b96
-  wiCId ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Types.Constraints.SubcId
-  RecSel Left Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WorkItem ds1 dt ds2 ->
-                 ds1 }) -}
-b32af69e3ac7fa936dc3be114c6531af
-  wiRank ::
-    Language.Fixpoint.Solver.Worklist.WorkItem
-    -> Language.Fixpoint.Graph.Types.Rank
-  RecSel Left Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WorkItem ds1 dt ds2 ->
-                 ds2 }) -}
-4178c8a684a8afe524e5dc4a96f345ea
-  wiTime ::
-    Language.Fixpoint.Solver.Worklist.WorkItem -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Solver.Worklist.WorkItem
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Solver.Worklist.WorkItem) ->
-                 case ds of wild { Language.Fixpoint.Solver.Worklist.WorkItem ds1 dt ds2 ->
-                 GHC.Types.I# dt }) -}
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.Worklist.Stats]
-  = Language.Fixpoint.Solver.Worklist.$fEqStats
-instance GHC.Classes.Eq [Language.Fixpoint.Solver.Worklist.WorkItem]
-  = Language.Fixpoint.Solver.Worklist.$fEqWorkItem
-instance GHC.Classes.Ord [Language.Fixpoint.Solver.Worklist.WorkItem]
-  = Language.Fixpoint.Solver.Worklist.$fOrdWorkItem
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Solver.Worklist.WorkItem]
-  = Language.Fixpoint.Solver.Worklist.$fPPrintWorkItem
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Solver.Worklist.Worklist]
-  = Language.Fixpoint.Solver.Worklist.$fPPrintWorklist
-instance Language.Fixpoint.Types.PrettyPrint.PTable [Language.Fixpoint.Solver.Worklist.Stats]
-  = Language.Fixpoint.Solver.Worklist.$fPTableStats
-instance Language.Fixpoint.Types.PrettyPrint.PTable [Language.Fixpoint.Solver.Worklist.Worklist]
-  = Language.Fixpoint.Solver.Worklist.$fPTableWorklist
-instance GHC.Show.Show [Language.Fixpoint.Solver.Worklist.Stats]
-  = Language.Fixpoint.Solver.Worklist.$fShowStats
-instance GHC.Show.Show [Language.Fixpoint.Solver.Worklist.WorkItem]
-  = Language.Fixpoint.Solver.Worklist.$fShowWorkItem
-"SPEC/Language.Fixpoint.Solver.Worklist fromList @ WorkItem" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                         Language.Fixpoint.Solver.Worklist.WorkItem)
-  Data.Set.Base.fromList @ Language.Fixpoint.Solver.Worklist.WorkItem
-                         $dOrd
-  = Language.Fixpoint.Solver.Worklist.$sfromList
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/SortCheck.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/SortCheck.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/SortCheck.dump-hi
+++ /dev/null
@@ -1,3020 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:58.955305 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.SortCheck 8002
-  interface hash: 9c5ad7e9c837b4893984977c57a2c242
-  ABI hash: c9a1a2a1ffe81fd310d7086dfdf22f97
-  export-list hash: a9abe77527737e86ba7b120d738eae9d
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 1ab6fe60d864f28d555861b61d9ed909
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.SortCheck.apply
-  Language.Fixpoint.SortCheck.checkSortExpr
-  Language.Fixpoint.SortCheck.checkSortFull
-  Language.Fixpoint.SortCheck.checkSorted
-  Language.Fixpoint.SortCheck.checkSortedReft
-  Language.Fixpoint.SortCheck.checkSortedReftFull
-  Language.Fixpoint.SortCheck.exprSort
-  Language.Fixpoint.SortCheck.isMono
-  Language.Fixpoint.SortCheck.pruneUnsortedReft
-  Language.Fixpoint.SortCheck.sortExpr
-  Language.Fixpoint.SortCheck.unifyFast
-  Language.Fixpoint.SortCheck.unifySorts
-  Language.Fixpoint.Types.Sorts.boolSort
-  Language.Fixpoint.Types.Sorts.isFirstOrder
-  Language.Fixpoint.Types.Sorts.strSort
-  Language.Fixpoint.SortCheck.Elaborate{Language.Fixpoint.SortCheck.elaborate}
-  Language.Fixpoint.SortCheck.Env
-  Language.Fixpoint.SortCheck.TVSubst
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.Types Language.Fixpoint.Types.Config
-                     Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  applyNonNull 303cbe5541e25fbd8cd11b7c15ff6310
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  mapFst 54294e0357ea881c18115f64503fab09
-import  -/  Language.Fixpoint.Smt.Theories 7338304cade2229c481eb3a53a263a4e
-  exports: 97d4c588471a0a34e2bb2d91dfd92151
-  isConName ae0ba56f196baf94f74e49f311287460
-  isSmt2App 8f241bb6f341d4ce5cbd5096d30cb390
-  sizeBv d2273f8f13b633aa6f138342cce43afa
-  theorySEnv 4f5f43c60510bc359a6de8317e6d6440
-  toInt 401d5dfabf5419bc774ce2c83dfda7bb
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  _crhs 746ca2f97e781cb1955fd7640112b9a8
-  asserts 39bbdb6193c8af948ed932b55699661b
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  Alts 2b51030cf97ed319b8e7c78f854ae277
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  Found 5997709796fde7bf511d8229fe99efb0
-  SESearch 49d4d07afcffcb491480eb79ab43124c
-  SEnv ae9741409aa049333ef008f3802cfecf
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  intersectWithSEnv e7a2c0bc6fed19ab508d75ff90ae8aa7
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  lookupSEnvWithDistance 8487b4b7e6463dbcd7c933ce64e1d285
-  mapBindEnv 5587766109997447ce44fc36cf0d744e
-  memberSEnv 1b98968bd46488e485e82ffd497cf3a6
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  die a892c3bd643380084ab25f8b09c20b83
-  err a90e823f0e6047342911d3113f83b3d9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  bitVecApplyName c1d8a192c1714ead9703691284dcf814
-  bitVecName e733c9a4c9e40b0853f73957e759dbeb
-  boolApplyName a7cb25f4ae6200ec0fb30523f7ea2268
-  intApplyName 4ab0157cfdbb81e9834f5fc91b8839f3
-  mapApplyName ddb317d661ab32350988590f7250f5a7
-  mapConName 27aaea04a10e9d7d92d914234f1660b7
-  realApplyName babaf3aa9ec579d8932f0f002e849304
-  setApplyName 1c534130f995a9b6cd7d384d6eebf8b0
-  setConName 1d0f81ce4f6d2857d0d0f587eedcb6c3
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  showpp 0da0198db560727e041326beddb9a8d5
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  Bop 7fb70fb47d0302cfb4b9c12c86306141
-  Brel bf7a9d682338d6f6168543d3110f6da6
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EDiv f73d515806d80c3adb2413088035a9ac
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ERDiv 4b38c7d7ed8bb0f1389dc29ab60aeaa7
-  ERTimes 8d7a42a78155fb75e1f668db40619504
-  ESym b05e53b59eecfe2f6d7c4b864a39af90
-  ETAbs cf486f62ca1036d64dac0b7fc30b355d
-  ETApp 6f9fa64dc1ea94265346dee4dfbd1dd9
-  ETimes b2a9dc780e854b20949701b073b39051
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  I 2b5bcd0c22b34f3c17d4079b06873e92
-  L b2f69dae8b637676011e67a80cf25f48
-  Ne d9e179105ea1c2a757f64a892666f7a4
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  PTrue 5df77d7a117ac1937594998bc4175838
-  R d3ae796e8a0662c198a87ccf6622d11a
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Subable 888f0a174e8b2968bd36b05b87cb7e9b
-  Ueq 6474df993ebe4d0afd93678b01fc0b4a
-  Une 06e922abb8f842f615f811f63750444d
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  eAppC 33d5abbf492746e77869883082291883
-  eApps f11c2cb73fb3e2793415839dd912820d
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFrac ecc8fb3da631f4b043ad3670e4fca393
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FInt 0b4cc36338ca92e72f33fb97dc6e5034
-  FNum c88d73ad9fe8566f5ec651da0f3eebd7
-  FObj 1861a52598ccbeb2eef48dfcc16b53b2
-  FReal d85e2ea54f1f84f03191ad6b76f1795a
-  FTC 1c0b8dae81080fb2a43e62cfa71d5192
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  boolFTyCon 92013a835882e58fc8cef59c65c8ea2c
-  boolSort 22d923a69c59fbf1c3c3d3b80b0969e5
-  funcSort 3b405e725beb70a70012b60bc3c24849
-  isFirstOrder 1384aa1f1f0be14cd0f1e2434c096cde
-  isListTC 50dc4149e3221ba9f64a6a1b3fc30d59
-  isNumeric 6546be8f39343882e55ad3e06f1fa162
-  isReal e79863c5bcfc82a63ce88790561955aa
-  isString 38c8c0ba321aaab302577dbd1742344c
-  strSort c3f197f2dc52b2b1cf128955742223a1
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  SrcSpan 78175b19733acaa6a468bb3dc2117709
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-import  -/  Language.Fixpoint.Types.Visitor 8cae387e2f4319552a95752f5dcd18fb
-  exports: 26f0cdfe40ac2491bdd244bfea3f01e6
-  foldSort 8ccf870b83ea22eef6497c06e35f13f4
-  mapExpr d9f5673910f4e8be82a41738edf792b5
-  stripCasts b393e58e10c00b233928107eccbc8744
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.Error.Class 635294424a2da8269902789f5c8bbe99
-import  -/  mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6:Control.Monad.Except 3bb0e2598193c1ba00c9723945e93004
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-12bc1f9b98bd81bc96ca48077390ec93
-  $dmcheckSort ::
-    Language.Fixpoint.SortCheck.Checkable a =>
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> a
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><L,U><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a
-                   ($dCheckable :: Language.Fixpoint.SortCheck.Checkable a)
-                   (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.SortCheck.check @ a $dCheckable γ) -}
-79ae1395f1ebcd2b2cb6ca2dbbd7a9e9
-  $dmrefresh ::
-    Language.Fixpoint.SortCheck.Freshable a =>
-    a -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(SL),1*U(1*U,A)><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a
-                   ($dFreshable :: Language.Fixpoint.SortCheck.Freshable a)
-                   (ds :: a) ->
-                 Language.Fixpoint.SortCheck.fresh @ a $dFreshable) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM ::
-    GHC.Base.Applicative Language.Fixpoint.SortCheck.CheckM
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.SortCheck.CheckM
-                  Language.Fixpoint.SortCheck.$fFunctorCheckM
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM_$cpure
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM_$c<*>
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM_$c*>
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM_$c<* -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM1 ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.SortCheck.CheckM a)
-                   (w1 :: Language.Fixpoint.SortCheck.CheckM b)
-                   (w2 :: Language.Fixpoint.SortCheck.StateM) ->
-                 case w1 `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)
-                        w2 of wild { (,) j ds ->
-                 case ds of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ a s7)
-                   Data.Either.Right x
-                   -> case w `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                             w2 of wild2 { (,) j1 ds1 ->
-                      case ds1 of wild3 {
-                        Data.Either.Left s7
-                        -> (j1, Data.Either.Left @ GHC.Base.String @ a s7)
-                        Data.Either.Right x1
-                        -> (j1, Data.Either.Right @ GHC.Base.String @ a x1) } } } }) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM2 ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.SortCheck.CheckM a)
-                   (w1 :: Language.Fixpoint.SortCheck.CheckM b)
-                   (w2 :: Language.Fixpoint.SortCheck.StateM) ->
-                 case w1 `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)
-                        w2 of wild { (,) j ds ->
-                 case ds of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ b s7)
-                   Data.Either.Right x
-                   -> case w `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                             w2 of wild2 { (,) j1 ds1 ->
-                      case ds1 of wild3 {
-                        Data.Either.Left s7
-                        -> (j1, Data.Either.Left @ GHC.Base.String @ b s7)
-                        Data.Either.Right x1
-                        -> (j1, Data.Either.Right @ GHC.Base.String @ b x) } } } }) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM3 ::
-    Language.Fixpoint.SortCheck.CheckM (a -> b)
-    -> Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.SortCheck.CheckM (a -> b))
-                   (w1 :: Language.Fixpoint.SortCheck.CheckM a)
-                   (w2 :: Language.Fixpoint.SortCheck.StateM) ->
-                 case w1 `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                        w2 of wild { (,) j ds ->
-                 case ds of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ b s7)
-                   Data.Either.Right x
-                   -> case w `cast`
-                           (Language.Fixpoint.SortCheck.N:CheckM[0] <a -> b>_R)
-                             w2 of wild2 { (,) k ds1 ->
-                      case ds1 of wild3 {
-                        Data.Either.Left s7
-                        -> (k, Data.Either.Left @ GHC.Base.String @ b s7)
-                        Data.Either.Right g
-                        -> (k, Data.Either.Right @ GHC.Base.String @ b (g x)) } } } }) -}
-e90a3cc242244dbfad4927392e076d01
-  $fApplicativeCheckM4 ::
-    a
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a (x :: a) (eta :: Language.Fixpoint.SortCheck.StateM) ->
-                 (eta, Data.Either.Right @ GHC.Base.String @ a x)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM_$c*> ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.CheckM b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fApplicativeCheckM2
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM b>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM_$c<* ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fApplicativeCheckM1
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM b>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM_$c<*> ::
-    Language.Fixpoint.SortCheck.CheckM (a -> b)
-    -> Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U(U,1*U))><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fApplicativeCheckM3
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM (a -> b)>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fApplicativeCheckM_$cpure ::
-    a -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fApplicativeCheckM4
-                  `cast`
-                (forall (a :: <*>_N).
-                 <a>_R ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)) -}
-01391e6bd070e01fd0debedbf8c20d1c
-  $fCheckableExpr ::
-    Language.Fixpoint.SortCheck.Checkable
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Expr
-                  Language.Fixpoint.SortCheck.$fCheckableExpr_$ccheck
-                  Language.Fixpoint.SortCheck.$fCheckableExpr_$ccheckSort -}
-1fdf5786d0da16d0b2ea7fe751d8f9a6
-  $fCheckableExpr1 :: Data.Either.Either GHC.Base.String ()
-  {- HasNoCafRefs,
-     Unfolding: (Data.Either.Right
-                   @ GHC.Base.String
-                   @ ()
-                   GHC.Tuple.()) -}
-5a9b5ed3703482f4db584372af4a034e
-  $fCheckableExpr_$ccheck ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 2, Strictness: <L,U><L,1*U>,
-     Unfolding: (\ (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   ds :: Language.Fixpoint.SortCheck.CheckM
-                           Language.Fixpoint.Types.Sorts.Sort
-                   = Language.Fixpoint.SortCheck.checkExpr
-                       (\ (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                        Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                          @ Language.Fixpoint.Types.Sorts.Sort
-                          ds1
-                          γ)
-                       e
-                 } in
-                 (\ (i :: Language.Fixpoint.SortCheck.StateM) ->
-                  case ds
-                         `cast`
-                       (Language.Fixpoint.SortCheck.N:CheckM[0]
-                            <Language.Fixpoint.Types.Sorts.Sort>_R)
-                         i of wild { (,) j ds1 ->
-                  case ds1 of wild1 {
-                    Data.Either.Left s7
-                    -> (j, Data.Either.Left @ GHC.Base.String @ () s7)
-                    Data.Either.Right x
-                    -> (j, Language.Fixpoint.SortCheck.$fCheckableExpr1) } })
-                   `cast`
-                 (Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R))) -}
-80626dbc9acaa3a0d02d43f0d77e253d
-  $fCheckableExpr_$ccheckSort ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>,
-     Unfolding: (\ (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (s7 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   ds :: Language.Fixpoint.SortCheck.CheckM
-                           Language.Fixpoint.Types.Sorts.Sort
-                   = Language.Fixpoint.SortCheck.checkExpr
-                       (\ (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                        Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                          @ Language.Fixpoint.Types.Sorts.Sort
-                          ds1
-                          γ)
-                       (Language.Fixpoint.Types.Refinements.$WECst e s7)
-                 } in
-                 (\ (i :: Language.Fixpoint.SortCheck.StateM) ->
-                  case ds
-                         `cast`
-                       (Language.Fixpoint.SortCheck.N:CheckM[0]
-                            <Language.Fixpoint.Types.Sorts.Sort>_R)
-                         i of wild { (,) j ds1 ->
-                  case ds1 of wild1 {
-                    Data.Either.Left s8
-                    -> (j, Data.Either.Left @ GHC.Base.String @ () s8)
-                    Data.Either.Right x
-                    -> (j, Language.Fixpoint.SortCheck.$fCheckableExpr1) } })
-                   `cast`
-                 (Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R))) -}
-01391e6bd070e01fd0debedbf8c20d1c
-  $fCheckableSortedReft ::
-    Language.Fixpoint.SortCheck.Checkable
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.SortCheck.$fCheckableSortedReft_$ccheck
-                  Language.Fixpoint.SortCheck.$fCheckableSortedReft_$ccheckSort -}
-74fbb78cf3025ebaf6b7872902ad4b90
-  $fCheckableSortedReft_$ccheck ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 2,
-     Strictness: <L,1*U><S(SS),1*U(U,U(1*U(U,U(U,U,U),U),1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.SortCheck.$w$ccheck w ww1 ww4 ww5 } }) -}
-55f2602cc21263a9e1be0e1fa555fe16
-  $fCheckableSortedReft_$ccheckSort ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 3, Strictness: <L,U><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (ds :: Language.Fixpoint.Types.Sorts.Sort)
-                   (eta :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 Language.Fixpoint.SortCheck.$fCheckableSortedReft_$ccheck γ eta) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborate(,) ::
-    Language.Fixpoint.SortCheck.Elaborate
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Sorts.Sort)
-  DFunId
-  {- Arity: 3, Strictness: <L,A><L,A><S,1*U(U,U)>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborate(,)_$celaborate
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)>_N)) -}
-c812113fe3113df720db43d5c0a1483d
-  $fElaborate(,)_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Sorts.Sort)
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Sorts.Sort)
-  {- Arity: 3, Strictness: <L,A><L,A><S,1*U(U,U)>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ (msg :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort)) ->
-                 case ds of wild { (,) x s7 ->
-                 (x, Language.Fixpoint.SortCheck.$fElaborate(,)_go s7) }) -}
-215354dd2c42f6c9912a1e6a34543b29
-  $fElaborate(,)_go ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S,U> -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateExpr ::
-    Language.Fixpoint.SortCheck.Elaborate
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-4b3d151ed5466af0bc6a0f3b05bab7ac
-  $fElaborateExpr1 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.String
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.String
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><L,U>x -}
-edcae3b096b01f6e4dce3851f950bd40
-  $fElaborateExpr2 ::
-    Language.Fixpoint.Types.Visitor.Visitor [GHC.Prim.Any] ()
-  {- Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ [GHC.Prim.Any]
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.SortCheck.$fElaborateExpr3
-                   Language.Fixpoint.Types.Visitor.mapExpr1) -}
-e294d01e6b701a633d5b18e12b3c91ae
-  $fElaborateExpr3 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2,
-     Unfolding: (\ (ds :: ())
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr)[OneShot] ->
-                 let {
-                   fail :: GHC.Prim.Void# -> Language.Fixpoint.Types.Refinements.Expr
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (ds1 :: GHC.Prim.Void#)[OneShot] ->
-                     case eta of wild {
-                       DEFAULT -> wild
-                       Language.Fixpoint.Types.Refinements.EBin ds2 e1 e2
-                       -> case ds2 of wild1 {
-                            DEFAULT -> wild
-                            Language.Fixpoint.Types.Refinements.Div
-                            -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                      (Language.Fixpoint.SortCheck.exprSort
-                                         (GHC.CString.unpackAppendCString#
-                                            "txn3: "#
-                                            (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                                               @ ()
-                                               @ GHC.Base.String
-                                               Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                                               Text.PrettyPrint.Annotated.HughesPJ.render3
-                                               Text.PrettyPrint.Annotated.HughesPJ.render2
-                                               Language.Fixpoint.Types.PrettyPrint.docBox1
-                                               (GHC.Types.[] @ GHC.Types.Char)
-                                               (Language.Fixpoint.Types.Refinements.$w$cpprintPrec
-                                                  Language.Fixpoint.Types.PrettyPrint.pprint1
-                                                  e1)
-                                                 `cast`
-                                               (Text.PrettyPrint.HughesPJ.N:Doc[0])))
-                                         e1)
-                                      Language.Fixpoint.Types.Sorts.FReal of wild2 {
-                                 GHC.Types.False -> wild
-                                 GHC.Types.True
-                                 -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                           (Language.Fixpoint.SortCheck.exprSort
-                                              Language.Fixpoint.SortCheck.$fElaborateExpr6
-                                              e2)
-                                           Language.Fixpoint.Types.Sorts.FReal of wild3 {
-                                      GHC.Types.False -> wild
-                                      GHC.Types.True
-                                      -> Language.Fixpoint.Types.Refinements.EBin
-                                           Language.Fixpoint.Types.Refinements.RDiv
-                                           e1
-                                           e2 } } } }
-                 } in
-                 case eta of wild {
-                   DEFAULT -> fail GHC.Prim.void#
-                   Language.Fixpoint.Types.Refinements.EBin ds1 e1 e2
-                   -> case ds1 of wild1 {
-                        DEFAULT -> fail GHC.Prim.void#
-                        Language.Fixpoint.Types.Refinements.Times
-                        -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                  (Language.Fixpoint.SortCheck.exprSort
-                                     Language.Fixpoint.SortCheck.$fElaborateExpr5
-                                     e1)
-                                  Language.Fixpoint.Types.Sorts.FReal of wild2 {
-                             GHC.Types.False -> fail GHC.Prim.void#
-                             GHC.Types.True
-                             -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                       (Language.Fixpoint.SortCheck.exprSort
-                                          Language.Fixpoint.SortCheck.$fElaborateExpr4
-                                          e2)
-                                       Language.Fixpoint.Types.Sorts.FReal of wild3 {
-                                  GHC.Types.False -> fail GHC.Prim.void#
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Types.Refinements.EBin
-                                       Language.Fixpoint.Types.Refinements.RTimes
-                                       e1
-                                       e2 } } } }) -}
-4e65405f2ce678186687ac3526c2ccde
-  $fElaborateExpr4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "txn2"#) -}
-666ee9ce4656eacd6c13cdaf14643536
-  $fElaborateExpr5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "txn1"#) -}
-ac2cc917eee1fa4ca50e4bf6c0d0df96
-  $fElaborateExpr6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "txn4"#) -}
-d3860b0f7d0eec615e795067e81676f8
-  $fElaborateExpr_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>,
-     Unfolding: (\ (msg :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [GHC.Prim.Any]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                          Language.Fixpoint.SortCheck.$fElaborateExpr2
-                          GHC.Tuple.()
-                          (let {
-                             γ' :: Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Names.Symbol
-                                     Language.Fixpoint.Types.Sorts.Sort
-                             = Language.Fixpoint.Types.Environments.$wpoly_go3
-                                 @ Language.Fixpoint.Types.Sorts.Sort
-                                 0#
-                                 env
-                                   `cast`
-                                 (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N)
-                                 Language.Fixpoint.Smt.Theories.theorySEnv1
-                           } in
-                           case Language.Fixpoint.SortCheck.$welab
-                                  (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                                   Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                                     @ Language.Fixpoint.Types.Sorts.Sort
-                                     ds
-                                     γ'
-                                       `cast`
-                                     (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N))
-                                  eta
-                                  Language.Fixpoint.SortCheck.initCM of ww { (#,#) ww1 ww2 ->
-                           case ww2 of wild {
-                             Data.Either.Left msg1
-                             -> Language.Fixpoint.SortCheck.$fElaborateExpr1 γ' msg1 eta msg
-                             Data.Either.Right s7
-                             -> Language.Fixpoint.SortCheck.$fElaborateExpr_go
-                                  (Data.Tuple.fst
-                                     @ Language.Fixpoint.Types.Refinements.Expr
-                                     @ Language.Fixpoint.Types.Sorts.Sort
-                                     s7) } }))
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[GHC.Prim.Any]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ GHC.Prim.Any))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [GHC.Prim.Any])>_R) of wild { (,) x ds1 ->
-                 x }) -}
-75fc2e6afb44dc97ce291058fdecefed
-  $fElaborateExpr_go ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <S,1*U> -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateGInfo ::
-    Language.Fixpoint.SortCheck.Elaborate
-      (Language.Fixpoint.Types.Constraints.SInfo a)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U><L,U><S(SSS(SS)SSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateGInfo_$celaborate
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Constraints.SInfo a>_N)) -}
-bc364e15229d46b8c7d3b8eff3fe8787
-  $fElaborateGInfo_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 3,
-     Strictness: <L,U><L,U><S(SSS(SS)SSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Base.String)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w2 :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 Language.Fixpoint.SortCheck.$w$celaborate
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww13
-                   ww14
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 } }) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateSimpC ::
-    Language.Fixpoint.SortCheck.Elaborate
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 3, Strictness: <L,U><L,U><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateSimpC_$celaborate
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Constraints.SimpC a>_N)) -}
-2c49f9bfdca6bede49f3ff9f4cba73f0
-  $fElaborateSimpC_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 3, Strictness: <L,U><L,U><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (x :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (c :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case c of wild { Language.Fixpoint.Types.Constraints.SimpC ds ds1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                        x
-                        env
-                        ds1 of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.SimpC
-                   @ a
-                   ds
-                   dt
-                   ds2
-                   ds3
-                   ds4 } }) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateSizedEnv ::
-    Language.Fixpoint.SortCheck.Elaborate
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Arity: 3, Strictness: <L,U><L,U><S(SS),1*U(U,U)>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateSizedEnv_$celaborate
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-ac0f8b60669ff38c86ccea1e47b9c640
-  $fElaborateSizedEnv1 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# ' '#) -}
-522f9dbea02a94febd591f3a809bace0
-  $fElaborateSizedEnv2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# " elabBE"#) -}
-dc2289dc3727b8308b953f92b60294bb
-  $fElaborateSizedEnv_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 3, Strictness: <L,U><L,U><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Base.String)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w2 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.SortCheck.$w$celaborate1
-                        w
-                        w1
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   ww4
-                   ww5 } }) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateSort ::
-    Language.Fixpoint.SortCheck.Elaborate
-      Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Arity: 3, Strictness: <L,A><L,A><S,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateSort_$celaborate
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Sorts.Sort>_N)) -}
-23f5f9fcf6a3cf52c6f5cb797a14c44e
-  $fElaborateSort_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3, Strictness: <L,A><L,A><S,U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ (ds :: GHC.Base.String)
-                   (ds1 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (eta :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.SortCheck.$fElaborate(,)_go eta) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateSortedReft ::
-    Language.Fixpoint.SortCheck.Elaborate
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U><L,1*U><S(SS),1*U(U,U(U(U,U(U,U,U),U),U))>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateSortedReft_$celaborate
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                          <Language.Fixpoint.Types.Refinements.SortedReft>_N)) -}
-90b2d65330634df038155ed7b1d5be91
-  $fElaborateSortedReft_$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 3,
-     Strictness: <L,U><L,1*U><S(SS),1*U(U,U(U(U,U(U,U,U),U),U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Base.String)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w2 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w2 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   ww1
-                   (ww4,
-                    Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                      w
-                      (case ww4 of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                       case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                       (Language.Fixpoint.Types.Environments.$w$sinsert
-                          @ Language.Fixpoint.Types.Sorts.Sort
-                          ww7
-                          ww11
-                          ww12
-                          ww13
-                          ww9
-                          ww1
-                          w1
-                            `cast`
-                          (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N))
-                         `cast`
-                       (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } })
-                      ww5)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateTriggered ::
-    Language.Fixpoint.SortCheck.Elaborate e =>
-    Language.Fixpoint.SortCheck.Elaborate
-      (Language.Fixpoint.Types.Triggers.Triggered e)
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(C1(C1(U)))><L,U><L,U><S,1*U(U,U)>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.SortCheck.$fElaborateTriggered_$celaborate
-                  `cast`
-                (forall (e :: <*>_N).
-                 <Language.Fixpoint.SortCheck.Elaborate e>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:Elaborate[0]
-                               <Language.Fixpoint.Types.Triggers.Triggered e>_N)) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborateTriggered_$celaborate ::
-    Language.Fixpoint.SortCheck.Elaborate e =>
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Triggers.Triggered e
-    -> Language.Fixpoint.Types.Triggers.Triggered e
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(C1(C1(U)))><L,U><L,U><S,1*U(U,U)>m,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ e
-                   ($dElaborate :: Language.Fixpoint.SortCheck.Elaborate e)
-                   (x :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (t :: Language.Fixpoint.Types.Triggers.Triggered e) ->
-                 case t of wild { Language.Fixpoint.Types.Triggers.TR a1 a2 ->
-                 Language.Fixpoint.Types.Triggers.TR
-                   @ e
-                   a1
-                   ($dElaborate
-                      `cast`
-                    (Language.Fixpoint.SortCheck.N:Elaborate[0] <e>_N)
-                      x
-                      env
-                      a2) }) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborate[] ::
-    Language.Fixpoint.SortCheck.Elaborate a =>
-    Language.Fixpoint.SortCheck.Elaborate [a]
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(C1(C(U)))><L,U><L,U><S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.SortCheck.$fElaborate[]_$celaborate
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.SortCheck.Elaborate a>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:Elaborate[0] <[a]>_N)) -}
-0dab6df67f88eb62ddc29abc778a5db9
-  $fElaborate[]_$celaborate ::
-    Language.Fixpoint.SortCheck.Elaborate a =>
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> [a]
-    -> [a]
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*C1(C1(C(U)))><L,U><L,U><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dElaborate :: Language.Fixpoint.SortCheck.Elaborate a)
-                   (msg :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (xs :: [a]) ->
-                 GHC.Base.build
-                   @ a
-                   (\ @ b1 (c :: a -> b1 -> b1)[OneShot] (n :: b1)[OneShot] ->
-                    GHC.Base.foldr
-                      @ a
-                      @ b1
-                      (GHC.Base.mapFB
-                         @ a
-                         @ b1
-                         @ a
-                         c
-                         ($dElaborate
-                            `cast`
-                          (Language.Fixpoint.SortCheck.N:Elaborate[0] <a>_N)
-                            msg
-                            env))
-                      n
-                      xs)) -}
-81630f685b413e339ceb41a6eb9f86e7
-  $fFreshableInt ::
-    Language.Fixpoint.SortCheck.Freshable GHC.Types.Int
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Int
-                  Language.Fixpoint.SortCheck.$fFreshableInt_$cfresh
-                  Language.Fixpoint.SortCheck.$fFreshableInt_$crefresh -}
-e632624280894d80ca089710ce2cbe2d
-  $fFreshableInt1 ::
-    GHC.Types.Int
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either
-          GHC.Base.String Language.Fixpoint.SortCheck.StateM)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.SortCheck.StateM) ->
-                 Language.Fixpoint.SortCheck.$fFreshableInt2 eta) -}
-64c4df2cc6d08c14aee5c05fd68d5630
-  $fFreshableInt2 ::
-    Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either
-          GHC.Base.String Language.Fixpoint.SortCheck.StateM)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (n :: Language.Fixpoint.SortCheck.StateM) ->
-                 (case n of wild { GHC.Types.I# x ->
-                  GHC.Types.I# (GHC.Prim.+# x 1#) },
-                  Data.Either.Right
-                    @ GHC.Base.String
-                    @ Language.Fixpoint.SortCheck.StateM
-                    n)) -}
-1770072255d83e5e4bf2d235d72bd434
-  $fFreshableInt_$cfresh ::
-    Language.Fixpoint.SortCheck.CheckM GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fFreshableInt2
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:CheckM[0]
-                          <Language.Fixpoint.SortCheck.StateM>_R)) -}
-a738214ef762a2f2462db9e388d3e939
-  $fFreshableInt_$crefresh ::
-    GHC.Types.Int -> Language.Fixpoint.SortCheck.CheckM GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fFreshableInt1
-                  `cast`
-                (<GHC.Types.Int>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0]
-                               <Language.Fixpoint.SortCheck.StateM>_R)) -}
-81630f685b413e339ceb41a6eb9f86e7
-  $fFreshable[] ::
-    Language.Fixpoint.SortCheck.Freshable [GHC.Types.Int]
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [GHC.Types.Int]
-                  Language.Fixpoint.SortCheck.$fFreshable[]_$cfresh
-                  Language.Fixpoint.SortCheck.$fFreshable[]_$crefresh -}
-c385a62b0f231cbd8c87e00cb3a17a10
-  $fFreshable[]1 ::
-    Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String [GHC.Types.Int])
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.SortCheck.$fFreshable[]5
-                   Language.Fixpoint.SortCheck.$fFreshable[]2) -}
-66a298d151bdb43aa3210e1c19b05c6f
-  $fFreshable[]2 :: [GHC.Integer.Type.Integer]
-  {- Unfolding: (case GHC.Enum.$wenumDeltaInteger
-                        Language.Fixpoint.SortCheck.$fFreshable[]4
-                        Language.Fixpoint.SortCheck.$fFreshable[]3 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ GHC.Integer.Type.Integer ww1 ww2 }) -}
-b72f7360d09c7bdd8102529c5683d33d
-  $fFreshable[]3 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-db0ae872339325bdc7f4996f6bdf6c89
-  $fFreshable[]4 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (0) -}
-883ac837fbe89186aae2434b0bfa3a54
-  $fFreshable[]5 ::
-    [GHC.Integer.Type.Integer]
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String [GHC.Types.Int])
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,U(U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: [GHC.Integer.Type.Integer])
-                   (w1 :: Language.Fixpoint.SortCheck.StateM) ->
-                 case Language.Fixpoint.SortCheck.$wgo w w1 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-928c5469962fb4c272e6f1a95e60a16d
-  $fFreshable[]_$cfresh ::
-    Language.Fixpoint.SortCheck.CheckM [GHC.Types.Int]
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fFreshable[]1
-                  `cast`
-                (Sym (Language.Fixpoint.SortCheck.N:CheckM[0]
-                          <[GHC.Types.Int]>_R)) -}
-55d5d4cc52e8d3e2195996146550f195
-  $fFreshable[]_$crefresh ::
-    [GHC.Types.Int]
-    -> Language.Fixpoint.SortCheck.CheckM [GHC.Types.Int]
-  {- Unfolding: (Data.Traversable.$fTraversable[]_$cmapM
-                   @ Language.Fixpoint.SortCheck.CheckM
-                   @ GHC.Types.Int
-                   @ GHC.Types.Int
-                   Language.Fixpoint.SortCheck.$fMonadCheckM
-                   Language.Fixpoint.SortCheck.$fFreshableInt1
-                     `cast`
-                   (<GHC.Types.Int>_R
-                    ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0]
-                                  <Language.Fixpoint.SortCheck.StateM>_R))) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fFunctorCheckM ::
-    GHC.Base.Functor Language.Fixpoint.SortCheck.CheckM
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.SortCheck.CheckM
-                  Language.Fixpoint.SortCheck.$fFunctorCheckM_$cfmap
-                  Language.Fixpoint.SortCheck.$fFunctorCheckM_$c<$ -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fFunctorCheckM1 ::
-    a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (ds :: Language.Fixpoint.SortCheck.CheckM b)
-                   (i :: Language.Fixpoint.SortCheck.StateM) ->
-                 case ds `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)
-                        i of wild { (,) j ds1 ->
-                 case ds1 of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ a s7)
-                   Data.Either.Right x
-                   -> (j, Data.Either.Right @ GHC.Base.String @ a eta) } }) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fFunctorCheckM2 ::
-    (a -> b)
-    -> Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: a -> b)
-                   (w1 :: Language.Fixpoint.SortCheck.CheckM a)
-                   (w2 :: Language.Fixpoint.SortCheck.StateM) ->
-                 case w1 `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                        w2 of wild { (,) j ds ->
-                 case ds of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ b s7)
-                   Data.Either.Right x
-                   -> (j, Data.Either.Right @ GHC.Base.String @ b (w x)) } }) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fFunctorCheckM_$c<$ ::
-    a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fFunctorCheckM1
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM b>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fFunctorCheckM_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(S(LS)),1*C1(U(U,1*U))><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fFunctorCheckM2
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> b>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadCheckM :: GHC.Base.Monad Language.Fixpoint.SortCheck.CheckM
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.SortCheck.CheckM
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM
-                  Language.Fixpoint.SortCheck.$fMonadCheckM_$c>>=
-                  Language.Fixpoint.SortCheck.$fMonadCheckM_$c>>
-                  Language.Fixpoint.SortCheck.$fApplicativeCheckM_$cpure
-                  Language.Fixpoint.SortCheck.$fMonadCheckM_$cfail -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadCheckM1 ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> (a -> Language.Fixpoint.SortCheck.CheckM b)
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(S(LS)),1*C1(U(U,1*U))><L,1*C1(C1(U(U,U)))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (ds :: Language.Fixpoint.SortCheck.CheckM a)
-                   (f :: a -> Language.Fixpoint.SortCheck.CheckM b)
-                   (i :: Language.Fixpoint.SortCheck.StateM) ->
-                 case ds `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                        i of wild { (,) j ds1 ->
-                 case ds1 of wild1 {
-                   Data.Either.Left s7
-                   -> (j, Data.Either.Left @ GHC.Base.String @ b s7)
-                   Data.Either.Right x
-                   -> (f x) `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)
-                        j } }) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadCheckM_$c>> ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM b
-    -> Language.Fixpoint.SortCheck.CheckM b
-  {- Arity: 2, Strictness: <L,U><L,U>, Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ a
-                   @ b
-                   (m1 :: Language.Fixpoint.SortCheck.CheckM a)
-                   (k :: Language.Fixpoint.SortCheck.CheckM b)
-                   (eta :: Language.Fixpoint.SortCheck.StateM) ->
-                 (Language.Fixpoint.SortCheck.$fMonadCheckM_$c>>=
-                    @ a
-                    @ b
-                    m1
-                    (\ (ds :: a) -> k))
-                   `cast`
-                 (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)
-                   eta)
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R <Language.Fixpoint.SortCheck.CheckM b>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadCheckM_$c>>= ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> (a -> Language.Fixpoint.SortCheck.CheckM b)
-    -> Language.Fixpoint.SortCheck.CheckM b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(S(LS)),1*C1(U(U,1*U))><L,1*C1(C1(U(U,U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fMonadCheckM1
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R <a -> Language.Fixpoint.SortCheck.CheckM b>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <b>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadCheckM_$cfail ::
-    GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 1, Strictness: <B,U>x,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a ->
-                 GHC.Err.errorWithoutStackTrace
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (Language.Fixpoint.SortCheck.CheckM a)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadError[]CheckM ::
-    Control.Monad.Error.Class.MonadError
-      GHC.Base.String Language.Fixpoint.SortCheck.CheckM
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Base.String
-                  @ Language.Fixpoint.SortCheck.CheckM
-                  Language.Fixpoint.SortCheck.$fMonadCheckM
-                  Language.Fixpoint.SortCheck.$fMonadError[]CheckM_$cthrowError
-                  Language.Fixpoint.SortCheck.$fMonadError[]CheckM_$ccatchError -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadError[]CheckM1 ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> (GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a)
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(S(LS)),1*C1(U(U,1*U))><L,1*C1(C1(U(U,U)))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (ds :: Language.Fixpoint.SortCheck.CheckM a)
-                   (f :: GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a)
-                   (i :: Language.Fixpoint.SortCheck.StateM) ->
-                 case ds `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)
-                        i of wild { (,) j ds1 ->
-                 case ds1 of wild1 {
-                   Data.Either.Left s7
-                   -> (f s7) `cast` (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R) j
-                   Data.Either.Right x
-                   -> (j, Data.Either.Right @ GHC.Base.String @ a x) } }) -}
-eecbcc14474e37316b201c64da226d16
-  $fMonadError[]CheckM2 ::
-    GHC.Base.String
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (s7 :: GHC.Base.String)
-                   (eta :: Language.Fixpoint.SortCheck.StateM) ->
-                 (eta, Data.Either.Left @ GHC.Base.String @ a s7)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadError[]CheckM_$ccatchError ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> (GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a)
-    -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(S(LS)),1*C1(U(U,1*U))><L,1*C1(C1(U(U,U)))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fMonadError[]CheckM1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R <GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)) -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  $fMonadError[]CheckM_$cthrowError ::
-    GHC.Base.String -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.$fMonadError[]CheckM2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Base.String>_R
-                 ->_R Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R)) -}
-cd0571f7217eba41b5cb926e34b36534
-  $fShowTVSubst :: GHC.Show.Show Language.Fixpoint.SortCheck.TVSubst
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.SortCheck.TVSubst
-                  Language.Fixpoint.SortCheck.$fShowTVSubst_$cshowsPrec
-                  Language.Fixpoint.SortCheck.$fShowTVSubst_$cshow
-                  Language.Fixpoint.SortCheck.$fShowTVSubst_$cshowList -}
-cd0571f7217eba41b5cb926e34b36534
-  $fShowTVSubst1 ::
-    Language.Fixpoint.SortCheck.TVSubst -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.SortCheck.TVSubst) ->
-                 Language.Fixpoint.SortCheck.$w$cshowsPrec 0# w) -}
-f1b741919ab2bd38eb0fb800e95b64a9
-  $fShowTVSubst2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Th "#) -}
-cd0571f7217eba41b5cb926e34b36534
-  $fShowTVSubst_$cshow ::
-    Language.Fixpoint.SortCheck.TVSubst -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.SortCheck.TVSubst) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.SortCheck.$fShowTVSubst2
-                   (Data.HashMap.Base.$w$cshowsPrec
-                      @ GHC.Types.Int
-                      @ Language.Fixpoint.Types.Sorts.Sort
-                      GHC.Show.$fShowInt
-                      Language.Fixpoint.Types.Sorts.$fShowSort
-                      11#
-                      x `cast` (Language.Fixpoint.SortCheck.N:TVSubst[0])
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-cd0571f7217eba41b5cb926e34b36534
-  $fShowTVSubst_$cshowList ::
-    [Language.Fixpoint.SortCheck.TVSubst] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.SortCheck.TVSubst
-                   Language.Fixpoint.SortCheck.$fShowTVSubst1) -}
-cd0571f7217eba41b5cb926e34b36534
-  $fShowTVSubst_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.SortCheck.TVSubst -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.SortCheck.TVSubst) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.SortCheck.$w$cshowsPrec ww1 w1 }) -}
-df9129138ba20e124ad48c012d65e845
-  $selaborate8 ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, Strictness: <L,U><L,U><S,1*U(U,U)>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ (x :: GHC.Base.String)
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (t :: Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr) ->
-                 case t of wild { Language.Fixpoint.Types.Triggers.TR a1 a2 ->
-                 Language.Fixpoint.Types.Triggers.TR
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   a1
-                   (Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                      x
-                      env
-                      a2) }) -}
-3a6a7e95975d7c5fe8dec84a43d1326e
-  $sprintf3 ::
-    GHC.Base.String -> [Text.Printf.UPrintf] -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: (\ (fmts :: GHC.Base.String)
-                   (args :: [Text.Printf.UPrintf]) ->
-                 GHC.Base.map
-                   @ GHC.Types.Char
-                   @ GHC.Types.Char
-                   Text.Printf.$fIsCharChar_$cfromChar
-                   (Text.Printf.uprintfs
-                      fmts
-                      (GHC.List.reverse1
-                         @ Text.Printf.UPrintf
-                         args
-                         (GHC.Types.[] @ Text.Printf.UPrintf))
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-09b7f55ed9ee66f354abf715d1b38db5
-  $sunless1 ::
-    Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String ())
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.SortCheck.StateM) ->
-                 (eta, Data.Either.Right @ GHC.Base.String @ () GHC.Tuple.())) -}
-11a032a9fe1e611420e9ec90c54314a4
-  $tc'C:Checkable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2600641354689013426##
-                   18198926412199834001##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tc'C:Checkable1) -}
-14577333d77cb13b0ba34b36f737f394
-  $tc'C:Checkable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Checkable"#) -}
-1a20efe6c9f7c99d2f4961370800d34b
-  $tc'C:Elaborate :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4975043004457239730##
-                   11934375250871685483##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tc'C:Elaborate1) -}
-8f1e62a1ca7ecb49e41e95857326da70
-  $tc'C:Elaborate1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Elaborate"#) -}
-4b685cb5b6e56ce68e7b3ccfca4c936a
-  $tc'C:Freshable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12265751164090802254##
-                   8871068818980699377##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tc'C:Freshable1) -}
-9f39c62f02b6e470d55d25dfa69e9da3
-  $tc'C:Freshable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Freshable"#) -}
-0cafedf011814713b021ed0f26d6bfe9
-  $tc'CM :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13813070550884912909##
-                   15415949274671991538##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tc'CM1) -}
-3453cb54583b2a5b2162a97b20b738ee
-  $tc'CM1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'CM"#) -}
-39e0d70fb41ca3d5fd31efdfbea0035f
-  $tc'Th :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10733816306478073975##
-                   9035747196880836279##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tc'Th1) -}
-ceb2a22cfd7f69ed0f57f77e3add5587
-  $tc'Th1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Th"#) -}
-1c307e0ea91477133d960ab46f7ed8c9
-  $tcCheckM :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1113128910831127546##
-                   1828512190049433231##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tcCheckM1) -}
-0db457b01d652cda1981551bc68ec078
-  $tcCheckM1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "CheckM"#) -}
-5d97510590fb28c9f71021b808322e9c
-  $tcCheckable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5457312226269668597##
-                   8610170744122537114##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tcCheckable1) -}
-cd5cb225bb7462fab8d3479eec859b67
-  $tcCheckable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Checkable"#) -}
-32b4920d386955a272e82dbe0052298c
-  $tcElaborate :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16039853953175704574##
-                   6061761994353586937##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tcElaborate1) -}
-5a42bf842b759c1b00496b4b71a39b32
-  $tcElaborate1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Elaborate"#) -}
-2da825f9aa6a1817a0bbbd1026c71d7a
-  $tcFreshable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13476478334153122573##
-                   11822090883886491790##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tcFreshable1) -}
-31c069973465ed115173efc59d7d3ae1
-  $tcFreshable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Freshable"#) -}
-2b2054674b5d22478573d64e6d958f1b
-  $tcTVSubst :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4642745770907589699##
-                   16826526991514837649##
-                   Language.Fixpoint.SortCheck.$trModule
-                   Language.Fixpoint.SortCheck.$tcTVSubst1) -}
-b80a9ffe9cf0be46c111eb16a8c07b58
-  $tcTVSubst1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "TVSubst"#) -}
-e9b721e31574b86cf8a28dc8f3b7dfae
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.SortCheck.$trModule2
-                   Language.Fixpoint.SortCheck.$trModule1) -}
-1fbd7371e167804c7c274b1ff5f68778
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.SortCheck"#) -}
-e82a247dd93f0bc586c5f0d8acd8204a
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-b6db68f66614066f5bd5a186dc878c84
-  $w$ccheck ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 4, Strictness: <L,1*U><S,U><L,1*U(U,U(U,U,U),U)><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   ds :: Language.Fixpoint.SortCheck.CheckM
-                           Language.Fixpoint.Types.Sorts.Sort
-                   = let {
-                       γ :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Names.Symbol
-                              Language.Fixpoint.Types.Sorts.Sort
-                       = case ww1 of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                         case ww5 of ww7 { Data.Text.Internal.Text ww8 ww9 ww10 ->
-                         Language.Fixpoint.Types.Environments.$w$sinsert
-                           @ Language.Fixpoint.Types.Sorts.Sort
-                           ww4
-                           ww8
-                           ww9
-                           ww10
-                           ww6
-                           ww
-                           w `cast`
-                           (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) } }
-                     } in
-                     Language.Fixpoint.SortCheck.checkExpr
-                       (\ (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                        Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                          @ Language.Fixpoint.Types.Sorts.Sort
-                          ds1
-                          γ `cast`
-                          (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N))
-                       ww2
-                 } in
-                 (\ (i :: Language.Fixpoint.SortCheck.StateM) ->
-                  case ds
-                         `cast`
-                       (Language.Fixpoint.SortCheck.N:CheckM[0]
-                            <Language.Fixpoint.Types.Sorts.Sort>_R)
-                         i of wild { (,) j ds1 ->
-                  case ds1 of wild1 {
-                    Data.Either.Left s7
-                    -> (j, Data.Either.Left @ GHC.Base.String @ () s7)
-                    Data.Either.Right x
-                    -> (j, Language.Fixpoint.SortCheck.$fCheckableExpr1) } })
-                   `cast`
-                 (Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R))) -}
-a7ddf5778ff53a9477d1f4c1c3e73892
-  $w$celaborate ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SimpC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 14,
-     Strictness: <L,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-3eb0dc1cf3ca5ac38bd2f7467d01aea5
-  $w$celaborate1 ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> (# GHC.Prim.Int#,
-          Language.Fixpoint.Types.Environments.BindMap
-            (Language.Fixpoint.Types.Names.Symbol,
-             Language.Fixpoint.Types.Refinements.SortedReft) #)
-  {- Arity: 4, Strictness: <L,U><L,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (w :: GHC.Base.String)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 Language.Fixpoint.Types.Environments.$wmapBindEnv
-                   (\ (i :: Language.Fixpoint.Types.Environments.BindId)
-                      (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))[OneShot] ->
-                    case ds of wild { (,) x sr ->
-                    (x,
-                     case sr of ww2 { Language.Fixpoint.Types.Refinements.RR ww3 ww4 ->
-                     case ww4
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww5 { (,) ww6 ww7 ->
-                     Language.Fixpoint.Types.Refinements.RR
-                       ww3
-                       (ww6,
-                        Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                          (GHC.Base.++
-                             @ GHC.Types.Char
-                             w
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.SortCheck.$fElaborateSizedEnv2
-                                (GHC.Types.:
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.SortCheck.$fElaborateSizedEnv1
-                                   (case i of ww8 { GHC.Types.I# ww9 ->
-                                    case GHC.Show.$wshowSignedInt
-                                           0#
-                                           ww9
-                                           (GHC.Types.[]
-                                              @ GHC.Types.Char) of ww10 { (#,#) ww11 ww12 ->
-                                    GHC.Base.++
-                                      @ GHC.Types.Char
-                                      (GHC.Types.: @ GHC.Types.Char ww11 ww12)
-                                      (GHC.Types.:
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.SortCheck.$fElaborateSizedEnv1
-                                         (case Data.Text.Show.$w$cshow
-                                                 (case x of wild1 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                                                  ds1 }) of ww13 { (#,#) ww14 ww15 ->
-                                          GHC.Base.++
-                                            @ GHC.Types.Char
-                                            (GHC.Types.: @ GHC.Types.Char ww14 ww15)
-                                            (GHC.Types.:
-                                               @ GHC.Types.Char
-                                               Language.Fixpoint.SortCheck.$fElaborateSizedEnv1
-                                               (GHC.Base.++
-                                                  @ GHC.Types.Char
-                                                  (Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshow
-                                                     ww2)
-                                                  (GHC.Types.[] @ GHC.Types.Char))) })) } }))))
-                          (case ww6 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                           case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                           (Language.Fixpoint.Types.Environments.$w$sinsert
-                              @ Language.Fixpoint.Types.Sorts.Sort
-                              ww9
-                              ww13
-                              ww14
-                              ww15
-                              ww11
-                              ww3
-                              w1
-                                `cast`
-                              (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N))
-                             `cast`
-                           (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N) } })
-                          ww7)
-                         `cast`
-                       (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) })
-                   ww
-                   ww1) -}
-cd0571f7217eba41b5cb926e34b36534
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.SortCheck.TVSubst -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.SortCheck.TVSubst) ->
-                 let {
-                   g :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ GHC.Types.Int
-                       @ Language.Fixpoint.Types.Sorts.Sort
-                       GHC.Show.$fShowInt
-                       Language.Fixpoint.Types.Sorts.$fShowSort
-                       11#
-                       w `cast` (Language.Fixpoint.SortCheck.N:TVSubst[0])
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.SortCheck.$fShowTVSubst2
-                        (g x)
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.SortCheck.$fShowTVSubst2
-                           (g (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x))) }) -}
-b66fc86237b24f1cb9dc9c0055614bb1
-  $w$s$wupdateOrSnocWithKey ::
-    (GHC.Types.Int -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> v
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: GHC.Types.Int -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)) ->
-                 letrec {
-                   $wgo8 :: GHC.Prim.Int#
-                            -> v
-                            -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                     {- Arity: 5, Strictness: <L,U><L,U><S,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Int#)
-                       (w3 :: v)
-                       (ww2 :: GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v))
-                       (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#) ->
-                     let {
-                       k2 :: GHC.Types.Int = GHC.Types.I# ww1
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 ww4) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                 ww2
-                                 ww3 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { GHC.Types.I# y1 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww1 y1) of wild3 {
-                            GHC.Types.False -> $wgo8 ww1 w3 ww2 (GHC.Prim.+# ww3 1#) ww4
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                      @ GHC.Prim.RealWorld
-                                      ww2
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                         ww2)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                      ipv5
-                                      ww3
-                                      (Data.HashMap.Base.L @ GHC.Types.Int @ v k2 (w k2 w3 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww4 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf GHC.Types.Int v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                 @ GHC.Prim.RealWorld
-                                 ww2
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww4
-                                 ipv3 of s7 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                 ipv4
-                                 ww4
-                                 (Data.HashMap.Base.L @ GHC.Types.Int @ v k2 w3)
-                                 s7 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo8
-                   ww
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf GHC.Types.Int v)
-                      w2)) -}
-fd5039555cd678c621a602174071c247
-  $wcheckSortedReft ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Refinements.SortedReft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w1 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   lvl111 :: [Language.Fixpoint.Types.Names.Symbol]
-                   = GHC.Types.: @ Language.Fixpoint.Types.Names.Symbol ww w1
-                 } in
-                 letrec {
-                   go5 :: [Language.Fixpoint.Types.Names.Symbol]
-                          -> [Language.Fixpoint.Types.Names.Symbol]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [Language.Fixpoint.Types.Names.Symbol]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol
-                       : y ys
-                       -> case GHC.List.elem
-                                 @ Language.Fixpoint.Types.Names.Symbol
-                                 Language.Fixpoint.Types.Names.$fEqSymbol
-                                 y
-                                 lvl111 of wild1 {
-                            GHC.Types.False
-                            -> case y of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                               case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                               case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                   -> GHC.Prim.Int#
-                                                                                                                                   -> GHC.Prim.State#
-                                                                                                                                        GHC.Prim.RealWorld
-                                                                                                                                   -> (# GHC.Prim.State#
-                                                                                                                                           GHC.Prim.RealWorld,
-                                                                                                                                         GHC.Prim.Int# #)}
-                                      ww7
-                                      (GHC.Prim.uncheckedIShiftL# ww8 1#)
-                                      (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                                      -2578643520546668380#
-                                      GHC.Prim.realWorld# of wild2 { (#,#) ds1 ds2 ->
-                               case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                      @ Language.Fixpoint.Types.Refinements.SortedReft
-                                      (GHC.Prim.int2Word# ds2)
-                                      ww3
-                                      0#
-                                      w `cast`
-                                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Refinements.SortedReft>_N) of wild3 {
-                                 GHC.Base.Nothing
-                                 -> GHC.Types.: @ Language.Fixpoint.Types.Names.Symbol ww2 (go5 ys)
-                                 GHC.Base.Just ds4 -> go5 ys } } } }
-                            GHC.Types.True -> go5 ys } }
-                 } in
-                 case go5
-                        (GHC.Types.:
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           ww
-                           (Language.Fixpoint.Types.Substitutions.$fSubableReft_go
-                              ww1)) of wild {
-                   [] -> GHC.Base.Nothing @ Text.PrettyPrint.HughesPJ.Doc
-                   : ipv ipv1
-                   -> GHC.Base.Just
-                        @ Text.PrettyPrint.HughesPJ.Doc
-                        (case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                                @ ()
-                                Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet5
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                (Language.Fixpoint.SortCheck.checkSortedReft_go1 wild) of wild1 {
-                           []
-                           -> case Language.Fixpoint.SortCheck.checkSortedReft2
-                                     `cast`
-                                   (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                DEFAULT
-                                -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      Language.Fixpoint.SortCheck.checkSortedReft1)
-                                     `cast`
-                                   (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                -> Language.Fixpoint.SortCheck.checkSortedReft1
-                                     `cast`
-                                   (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                           : p ps
-                           -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                                     @ ()
-                                     GHC.Types.True
-                                     (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                                     0#
-                                     ps of wild2 {
-                                DEFAULT
-                                -> case Language.Fixpoint.SortCheck.checkSortedReft2
-                                          `cast`
-                                        (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                     DEFAULT
-                                     -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           wild3
-                                           GHC.Types.True
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                 @ ()
-                                                 Text.PrettyPrint.HughesPJ.brackets4
-                                                 GHC.Types.False
-                                                 wild2)
-                                              GHC.Types.False
-                                              Text.PrettyPrint.HughesPJ.brackets1))
-                                          `cast`
-                                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                     Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                     -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              Text.PrettyPrint.HughesPJ.brackets4
-                                              GHC.Types.False
-                                              wild2)
-                                           GHC.Types.False
-                                           Text.PrettyPrint.HughesPJ.brackets1)
-                                          `cast`
-                                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                                Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                -> case Language.Fixpoint.SortCheck.checkSortedReft2
-                                          `cast`
-                                        (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                     DEFAULT
-                                     -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           wild3
-                                           GHC.Types.True
-                                           Language.Fixpoint.SortCheck.checkSortedReft1)
-                                          `cast`
-                                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                     Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                     -> Language.Fixpoint.SortCheck.checkSortedReft1
-                                          `cast`
-                                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) }) -}
-a5b05385e00033a4ff6d99a6a384dfb7
-  $welab ::
-    Language.Fixpoint.SortCheck.Env
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (# Language.Fixpoint.SortCheck.StateM,
-          Data.Either.Either
-            GHC.Base.String
-            (Language.Fixpoint.Types.Refinements.Expr,
-             Language.Fixpoint.Types.Sorts.Sort) #)
-  {- Arity: 3, Strictness: <L,C(U)><S,1*U><L,U>, Inline: [0] -}
-a15f508b03760ef92acee3db470c9d91
-  $wgo ::
-    [GHC.Integer.Type.Integer]
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (# Language.Fixpoint.SortCheck.StateM,
-          Data.Either.Either GHC.Base.String [GHC.Types.Int] #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,U(U)>,
-     Inline: [0] -}
-dafa4f2a25e78b29ce237e0fc0bc3104
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-d5f3fe4e2d53619fb1aa533fbce06136
-  $wpoly_go2 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Int v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-2a5989db453ecc1e17bdea350418123e
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-b5f47a2090b8e25f530f9e72bdba29b1
-  $wpruneUnsortedReft ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Language.Fixpoint.Types.Sorts.Sort,
-          Language.Fixpoint.Types.Refinements.Reft #)
-  {- Arity: 4, Strictness: <L,1*U><S,U><L,U(U,U(U,U,U),U)><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 (# ww,
-                    (ww1,
-                     let {
-                       ds :: Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Names.Symbol
-                               Language.Fixpoint.Types.Sorts.Sort
-                       = case ww1 of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                         case ww5 of ww7 { Data.Text.Internal.Text ww8 ww9 ww10 ->
-                         Language.Fixpoint.Types.Environments.$w$sinsert
-                           @ Language.Fixpoint.Types.Sorts.Sort
-                           ww4
-                           ww8
-                           ww9
-                           ww10
-                           ww6
-                           ww
-                           w `cast`
-                           (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) } }
-                     } in
-                     let {
-                       f :: Language.Fixpoint.SortCheck.Env
-                         {- Arity: 1, Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)>,
-                            Unfolding: InlineRule (1, True, False)
-                                       (\ (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                                        Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                                          @ Language.Fixpoint.Types.Sorts.Sort
-                                          ds1
-                                          ds
-                                            `cast`
-                                          (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)) -}
-                       = \ (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                         Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                           @ Language.Fixpoint.Types.Sorts.Sort
-                           ds1
-                           ds
-                             `cast`
-                           (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                     } in
-                     case case ww2 of wild {
-                            DEFAULT
-                            -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                                      wild of wild1 {
-                                 GHC.Types.False
-                                 -> case (Language.Fixpoint.SortCheck.checkPred f wild)
-                                           `cast`
-                                         (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R)
-                                           Language.Fixpoint.SortCheck.initCM of wild2 { (,) ds1 y ->
-                                    case y of wild3 {
-                                      Data.Either.Left _err
-                                      -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr
-                                      Data.Either.Right ds2
-                                      -> GHC.Types.:
-                                           @ Language.Fixpoint.Types.Refinements.Expr
-                                           wild
-                                           (GHC.Types.[]
-                                              @ Language.Fixpoint.Types.Refinements.Expr) } }
-                                 GHC.Types.True
-                                 -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr }
-                            Language.Fixpoint.Types.Refinements.PAnd ps
-                            -> Data.Maybe.mapMaybe
-                                 @ Language.Fixpoint.Types.Refinements.Expr
-                                 @ Language.Fixpoint.Types.Refinements.Expr
-                                 (\ (p :: Language.Fixpoint.Types.Refinements.Expr) ->
-                                  case (Language.Fixpoint.SortCheck.checkPred f p)
-                                         `cast`
-                                       (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R)
-                                         Language.Fixpoint.SortCheck.initCM of wild1 { (,) ds1 y ->
-                                  case y of wild2 {
-                                    Data.Either.Left _err
-                                    -> GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr
-                                    Data.Either.Right ds2
-                                    -> GHC.Base.Just
-                                         @ Language.Fixpoint.Types.Refinements.Expr
-                                         p } })
-                                 (Language.Fixpoint.Types.Refinements.conjuncts_go
-                                    ps) } of dt { DEFAULT ->
-                     Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                       (Language.Fixpoint.Types.Refinements.PAnd dt) })
-                      `cast`
-                    (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) #)) -}
-ce9ec5460577bb8733c131126af46a47
-  $wunify1 ::
-    Language.Fixpoint.SortCheck.Env
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.TVSubst
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (# Language.Fixpoint.SortCheck.StateM,
-          Data.Either.Either
-            GHC.Base.String Language.Fixpoint.SortCheck.TVSubst #)
-  {- Arity: 6, Strictness: <L,C(U)><L,U><L,U><S,1*U><S,1*U><L,U(U)>,
-     Inline: [0] -}
-2997c627e3a6fa47db1dda51cd1f2f19
-  newtype CheckM a
-    = CM {runCM :: Language.Fixpoint.SortCheck.StateM
-                   -> (Language.Fixpoint.SortCheck.StateM,
-                       Data.Either.Either GHC.Base.String a)}
-01391e6bd070e01fd0debedbf8c20d1c
-  class Checkable a where
-    check :: Language.Fixpoint.Types.Environments.SEnv
-               Language.Fixpoint.Types.Sorts.Sort
-             -> a -> Language.Fixpoint.SortCheck.CheckM ()
-    checkSort :: Language.Fixpoint.Types.Environments.SEnv
-                   Language.Fixpoint.Types.Sorts.Sort
-                 -> Language.Fixpoint.Types.Sorts.Sort
-                 -> a
-                 -> Language.Fixpoint.SortCheck.CheckM ()
-    {-# MINIMAL check #-}
-0dab6df67f88eb62ddc29abc778a5db9
-  class Elaborate a where
-    elaborate :: GHC.Base.String
-                 -> Language.Fixpoint.Types.Environments.SEnv
-                      Language.Fixpoint.Types.Sorts.Sort
-                 -> a
-                 -> a
-    {-# MINIMAL elaborate #-}
-d150d28cd1549b097a537e6234c62038
-  type Env =
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SESearch
-         Language.Fixpoint.Types.Sorts.Sort
-81630f685b413e339ceb41a6eb9f86e7
-  class Freshable a where
-    fresh :: Language.Fixpoint.SortCheck.CheckM a
-    refresh :: a -> Language.Fixpoint.SortCheck.CheckM a
-    {-# MINIMAL fresh #-}
-05e1fd9d21877f575d68a57a9b825bf6
-  type StateM = GHC.Types.Int
-cd0571f7217eba41b5cb926e34b36534
-  newtype TVSubst
-    = Th (Data.HashMap.Base.HashMap
-            GHC.Types.Int Language.Fixpoint.Types.Sorts.Sort)
-cd5cd4a92fb0f8664cfdec9f89938101
-  apply ::
-    Language.Fixpoint.SortCheck.TVSubst
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (θ :: Language.Fixpoint.SortCheck.TVSubst)
-                   (eta :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.SortCheck.sortMap
-                   (\ (t :: Language.Fixpoint.Types.Sorts.Sort) ->
-                    case t of wild {
-                      DEFAULT -> wild
-                      Language.Fixpoint.Types.Sorts.FVar dt
-                      -> case Language.Fixpoint.SortCheck.$wpoly_go1
-                                @ Language.Fixpoint.Types.Sorts.Sort
-                                (GHC.Prim.int2Word# dt)
-                                dt
-                                0#
-                                θ `cast` (Language.Fixpoint.SortCheck.N:TVSubst[0]) of wild1 {
-                           GHC.Base.Nothing -> wild GHC.Base.Just v -> v } })
-                   eta) -}
-81c585c00dcdb05458f32c5ed5bde037
-  checkExpr ::
-    Language.Fixpoint.SortCheck.Env
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.CheckM
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-63da9ae64089ad21f4104fe717899e60
-  checkPred ::
-    Language.Fixpoint.SortCheck.Env
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.SortCheck.CheckM ()
-  {- Arity: 2, Strictness: <L,C(U)><L,U>,
-     Unfolding: (\ (f :: Language.Fixpoint.SortCheck.Env)
-                   (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   lvl111 :: GHC.Base.String
-                   = Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                       @ ()
-                       @ GHC.Base.String
-                       Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                       Text.PrettyPrint.Annotated.HughesPJ.render3
-                       Text.PrettyPrint.Annotated.HughesPJ.render2
-                       Language.Fixpoint.Types.PrettyPrint.docBox1
-                       (GHC.Types.[] @ GHC.Types.Char)
-                       (Language.Fixpoint.Types.Refinements.$w$cpprintPrec
-                          Language.Fixpoint.Types.PrettyPrint.pprint1
-                          e)
-                         `cast`
-                       (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                 } in
-                 let {
-                   lvl112 :: Text.Printf.ModifierParser {- Arity: 1 -}
-                   = Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$s$fPrintfArg[]_$cparseFormat
-                       lvl111
-                 } in
-                 let {
-                   lvl113 :: Text.Printf.FieldFormat -> GHC.Show.ShowS {- Arity: 1 -}
-                   = \ (w2 :: Text.Printf.FieldFormat) ->
-                     case w2 of ww { Text.Printf.FieldFormat ww1 ww2 ww3 ww4 ww5 ww6 ww7 ->
-                     case ww7 of ww8 { GHC.Types.C# ww9 ->
-                     Text.Printf.$wformatString
-                       @ GHC.Types.Char
-                       Text.Printf.$fIsCharChar
-                       lvl111
-                       ww1
-                       ww2
-                       ww3
-                       ww9 } }
-                 } in
-                 let {
-                   lvl114 :: (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                   = (lvl112, lvl113)
-                 } in
-                 let {
-                   lvl115 :: [(Text.Printf.ModifierParser,
-                               Text.Printf.FieldFormatter)]
-                   = GHC.Types.:
-                       @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                       lvl114
-                       (GHC.Types.[] @ Text.Printf.UPrintf)
-                 } in
-                 let {
-                   ds :: Language.Fixpoint.SortCheck.CheckM
-                           Language.Fixpoint.Types.Sorts.Sort
-                   = Language.Fixpoint.SortCheck.checkExpr f e
-                 } in
-                 (\ (i :: Language.Fixpoint.SortCheck.StateM) ->
-                  case ds
-                         `cast`
-                       (Language.Fixpoint.SortCheck.N:CheckM[0]
-                            <Language.Fixpoint.Types.Sorts.Sort>_R)
-                         i of wild { (,) j ds1 ->
-                  case ds1 of wild1 {
-                    Data.Either.Left s7
-                    -> (j, Data.Either.Left @ GHC.Base.String @ () s7)
-                    Data.Either.Right x
-                    -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                              x
-                              Language.Fixpoint.Types.Sorts.boolSort of wild2 {
-                         GHC.Types.False
-                         -> (j,
-                             Data.Either.Left
-                               @ GHC.Base.String
-                               @ ()
-                               (let {
-                                  a1 :: [GHC.Types.Char]
-                                  = Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                                      @ ()
-                                      @ GHC.Base.String
-                                      Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                                      Text.PrettyPrint.Annotated.HughesPJ.render3
-                                      Text.PrettyPrint.Annotated.HughesPJ.render2
-                                      Language.Fixpoint.Types.PrettyPrint.docBox1
-                                      (GHC.Types.[] @ GHC.Types.Char)
-                                      (Language.Fixpoint.Types.Sorts.toFixSort x)
-                                        `cast`
-                                      (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                } in
-                                Language.Fixpoint.SortCheck.$sprintf3
-                                  Language.Fixpoint.SortCheck.pruneUnsortedReft1
-                                  (GHC.Types.:
-                                     @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                                     (Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$s$fPrintfArg[]_$cparseFormat
-                                        a1,
-                                      \ (w2 :: Text.Printf.FieldFormat) ->
-                                      case w2 of ww { Text.Printf.FieldFormat ww1 ww2 ww3 ww4 ww5 ww6 ww7 ->
-                                      case ww7 of ww8 { GHC.Types.C# ww9 ->
-                                      Text.Printf.$wformatString
-                                        @ GHC.Types.Char
-                                        Text.Printf.$fIsCharChar
-                                        a1
-                                        ww1
-                                        ww2
-                                        ww3
-                                        ww9 } })
-                                     lvl115)))
-                         GHC.Types.True
-                         -> (j, Language.Fixpoint.SortCheck.$fCheckableExpr1) } } })
-                   `cast`
-                 (Sym (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R))) -}
-4c8095767e6c0674ee9d2d18e1e3e042
-  checkSortExpr ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case (Language.Fixpoint.SortCheck.checkExpr
-                         (\ (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                          case x of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                          case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                          case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                              -> GHC.Prim.Int#
-                                                                                                                              -> GHC.Prim.Int#
-                                                                                                                              -> GHC.Prim.Int#
-                                                                                                                              -> GHC.Prim.State#
-                                                                                                                                   GHC.Prim.RealWorld
-                                                                                                                              -> (# GHC.Prim.State#
-                                                                                                                                      GHC.Prim.RealWorld,
-                                                                                                                                    GHC.Prim.Int# #)}
-                                 ww5
-                                 (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                                 (GHC.Prim.uncheckedIShiftL# ww7 1#)
-                                 -2578643520546668380#
-                                 GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                          case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                 @ Language.Fixpoint.Types.Sorts.Sort
-                                 (GHC.Prim.int2Word# ds2)
-                                 ww1
-                                 0#
-                                 γ `cast`
-                                 (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of wild {
-                            GHC.Base.Nothing -> Language.Fixpoint.SortCheck.checkSortExpr1
-                            GHC.Base.Just z
-                            -> Language.Fixpoint.Types.Environments.Found
-                                 @ Language.Fixpoint.Types.Sorts.Sort
-                                 z } } } })
-                         e)
-                        `cast`
-                      (Language.Fixpoint.SortCheck.N:CheckM[0]
-                           <Language.Fixpoint.Types.Sorts.Sort>_R)
-                        Language.Fixpoint.SortCheck.initCM of wild { (,) ds1 y ->
-                 case y of wild1 {
-                   Data.Either.Left ds
-                   -> GHC.Base.Nothing @ Language.Fixpoint.Types.Sorts.Sort
-                   Data.Either.Right s7
-                   -> GHC.Base.Just @ Language.Fixpoint.Types.Sorts.Sort s7 } }) -}
-8a40998100376e8e26a945897a280d6f
-  checkSortExpr1 ::
-    Language.Fixpoint.Types.Environments.SESearch
-      Language.Fixpoint.Types.Sorts.Sort
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (Language.Fixpoint.Types.Environments.Alts
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)) -}
-60fd72fe46a24e04724e57360deb7c57
-  checkSortFull ::
-    Language.Fixpoint.SortCheck.Checkable a =>
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> a
-    -> GHC.Base.Maybe Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <S(LC(C(C(C(S(LS)))))),1*U(A,1*C1(C1(C1(C1(U(A,1*U))))))><L,1*U><L,U><L,U>,
-     Unfolding: (\ @ a
-                   ($dCheckable :: Language.Fixpoint.SortCheck.Checkable a)
-                   (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                   (s7 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (t :: a) ->
-                 case (Language.Fixpoint.SortCheck.checkSort
-                         @ a
-                         $dCheckable
-                         (Language.Fixpoint.Types.Environments.$fFunctorSEnv2
-                            @ Language.Fixpoint.Types.Refinements.SortedReft
-                            @ Language.Fixpoint.Types.Sorts.Sort
-                            Language.Fixpoint.Types.Refinements.sr_sort
-                            γ)
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                         s7
-                         t)
-                        `cast`
-                      (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R)
-                        Language.Fixpoint.SortCheck.initCM of wild { (,) ds1 y ->
-                 case y of wild1 {
-                   Data.Either.Left e
-                   -> GHC.Base.Just
-                        @ Text.PrettyPrint.HughesPJ.Doc
-                        (Text.PrettyPrint.Annotated.HughesPJ.text @ () e)
-                          `cast`
-                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   Data.Either.Right ds
-                   -> GHC.Base.Nothing @ Text.PrettyPrint.HughesPJ.Doc } }) -}
-2c861c35f0bbb6991b683598c98f9cde
-  checkSorted ::
-    Language.Fixpoint.SortCheck.Checkable a =>
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> a -> GHC.Base.Maybe Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(C(C(S(LS))))L),1*U(1*C1(C1(C1(U(A,1*U)))),A)><L,U><L,U>,
-     Unfolding: (\ @ a
-                   ($dCheckable :: Language.Fixpoint.SortCheck.Checkable a)
-                   (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (t :: a) ->
-                 case (Language.Fixpoint.SortCheck.check @ a $dCheckable γ t)
-                        `cast`
-                      (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R)
-                        Language.Fixpoint.SortCheck.initCM of wild { (,) ds1 y ->
-                 case y of wild1 {
-                   Data.Either.Left e
-                   -> GHC.Base.Just
-                        @ Text.PrettyPrint.HughesPJ.Doc
-                        (Text.PrettyPrint.Annotated.HughesPJ.text @ () e)
-                          `cast`
-                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   Data.Either.Right ds
-                   -> GHC.Base.Nothing @ Text.PrettyPrint.HughesPJ.Doc } }) -}
-cf3c76547fc25d48149fcb19b60c0487
-  checkSortedReft ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Refinements.SortedReft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> GHC.Base.Maybe Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U><L,U><S(LS),1*U(A,U(U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w1 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (w2 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w2 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.SortCheck.$wcheckSortedReft w w1 ww4 ww5 } }) -}
-8c8ea209516b5c7ca24b73559367f407
-  checkSortedReft1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- HasNoCafRefs,
-     Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                   @ ()
-                   Text.PrettyPrint.HughesPJ.brackets4
-                   GHC.Types.False
-                   Text.PrettyPrint.HughesPJ.brackets1) -}
-1e03f6a606d5362ba5c37363f65f2a79
-  checkSortedReft2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.SortCheck.checkSortedReft_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.SortCheck.checkSortedReft3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-2e0b2991d7f276cb5e98ea61110da1ec
-  checkSortedReft3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.SortCheck.checkSortedReft_s) -}
-8662aa81a26680f0077373202daf624e
-  checkSortedReftFull ::
-    Language.Fixpoint.SortCheck.Checkable a =>
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Refinements.SortedReft
-    -> a -> GHC.Base.Maybe Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3,
-     Strictness: <S(C(C(C(S(LS))))L),1*U(1*C1(C1(C1(U(A,1*U)))),A)><L,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dCheckable :: Language.Fixpoint.SortCheck.Checkable a)
-                   (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                   (t :: a) ->
-                 case (Language.Fixpoint.SortCheck.check
-                         @ a
-                         $dCheckable
-                         (Language.Fixpoint.Types.Environments.$fFunctorSEnv2
-                            @ Language.Fixpoint.Types.Refinements.SortedReft
-                            @ Language.Fixpoint.Types.Sorts.Sort
-                            Language.Fixpoint.Types.Refinements.sr_sort
-                            γ)
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                         t)
-                        `cast`
-                      (Language.Fixpoint.SortCheck.N:CheckM[0] <()>_R)
-                        Language.Fixpoint.SortCheck.initCM of wild { (,) ds1 y ->
-                 case y of wild1 {
-                   Data.Either.Left e
-                   -> GHC.Base.Just
-                        @ Text.PrettyPrint.HughesPJ.Doc
-                        (Text.PrettyPrint.Annotated.HughesPJ.text @ () e)
-                          `cast`
-                        (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   Data.Either.Right ds
-                   -> GHC.Base.Nothing @ Text.PrettyPrint.HughesPJ.Doc } }) -}
-e5fc023447db616ba88c57a01ff8e8b1
-  checkSortedReft_go1 ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-395914985d565784d362c2922754a452
-  checkSortedReft_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Unknown symbols:"#) -}
-6fab7fc915739de57a5063a30b1f6ddd
-  exprSort ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (msg :: GHC.Base.String)
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 letrec {
-                   go5 :: Language.Fixpoint.Types.Refinements.Expr
-                          -> Language.Fixpoint.Types.Sorts.Sort
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: Language.Fixpoint.Types.Refinements.Expr) ->
-                     case ds of wild {
-                       DEFAULT -> Language.Fixpoint.SortCheck.exprSort2 wild msg
-                       Language.Fixpoint.Types.Refinements.EApp e ex
-                       -> case Language.Fixpoint.SortCheck.genSort (go5 e) of wild1 {
-                            DEFAULT -> Language.Fixpoint.SortCheck.exprSort2 wild msg
-                            Language.Fixpoint.Types.Sorts.FFunc sx s7
-                            -> case Language.Fixpoint.SortCheck.$wunify1
-                                      Language.Fixpoint.SortCheck.exprSort1
-                                      (GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr)
-                                      (Data.HashMap.Base.Empty
-                                         @ GHC.Types.Int
-                                         @ Language.Fixpoint.Types.Sorts.Sort)
-                                        `cast`
-                                      (Sym (Language.Fixpoint.SortCheck.N:TVSubst[0]))
-                                      (go5 ex)
-                                      sx
-                                      Language.Fixpoint.SortCheck.initCM of ww { (#,#) ww1 ww2 ->
-                               case ww2 of wild2 {
-                                 Data.Either.Left ds1 -> s7
-                                 Data.Either.Right su
-                                 -> Language.Fixpoint.SortCheck.apply su s7 } } }
-                       Language.Fixpoint.Types.Refinements.ECst ds1 s7 -> s7
-                       Language.Fixpoint.Types.Refinements.ELam ds1 e
-                       -> case ds1 of wild1 { (,) ds2 sx ->
-                          case sx of dt { DEFAULT ->
-                          case go5 e of dt1 { DEFAULT ->
-                          Language.Fixpoint.Types.Sorts.FFunc dt dt1 } } } }
-                 } in
-                 go5 eta) -}
-93dc0543977ef30c755ebe538e4abc58
-  exprSort1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SESearch
-         Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <B,A>x,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.SortCheck.exprSort_x) -}
-12cd42fb54d3be424f91a97ffa8c0d7b
-  exprSort2 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.String -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-c0d1c28b4fed7d59c9a21d9f4eb59137
-  exprSort_x ::
-    Language.Fixpoint.Types.Environments.SESearch
-      Language.Fixpoint.Types.Sorts.Sort
-  {- Strictness: x -}
-c361b6e1924d87af15f9551751faff1e
-  genSort ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-48ae78bc06c81764efbd47663e00bf74
-  initCM :: Language.Fixpoint.SortCheck.StateM
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 42#) -}
-03c687a9894c51ee92560ef2a34f9b13
-  isMono :: Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Visitor.foldSort
-                        @ [GHC.Types.Int]
-                        Language.Fixpoint.SortCheck.isMono_fv
-                        (GHC.Types.[] @ GHC.Types.Int)
-                        x of wild {
-                   [] -> GHC.Types.True : ds1 ds2 -> GHC.Types.False }) -}
-9bb85920480101023c1b64383206a671
-  isMono_fv ::
-    [GHC.Types.Int]
-    -> Language.Fixpoint.Types.Sorts.Sort -> [GHC.Types.Int]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (vs :: [GHC.Types.Int])
-                   (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   DEFAULT -> vs
-                   Language.Fixpoint.Types.Sorts.FVar dt
-                   -> GHC.Types.: @ GHC.Types.Int (GHC.Types.I# dt) vs }) -}
-482a17e94102fd8c092f2f67bf637ee6
-  pruneUnsortedReft ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2,
-     Strictness: <L,1*U><S(SS),1*U(U,U(U(U,U(U,U,U),U),1*U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 case Language.Fixpoint.SortCheck.$wpruneUnsortedReft
-                        w
-                        ww1
-                        ww4
-                        ww5 of ww6 { (#,#) ww7 ww8 ->
-                 Language.Fixpoint.Types.Refinements.RR ww7 ww8 } } }) -}
-804cbc0025f960516161e636216a2d27
-  pruneUnsortedReft1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Expressions %s should have bool sort, but has %s"#) -}
-6c54b74f8196802cd5fc2038f8c0e5fa
-  runCM ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.StateM
-    -> (Language.Fixpoint.SortCheck.StateM,
-        Data.Either.Either GHC.Base.String a)
-  RecSel Left Language.Fixpoint.SortCheck.CheckM
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.SortCheck.runCM1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.SortCheck.CheckM a>_R
-                 ->_R Language.Fixpoint.SortCheck.N:CheckM[0] <a>_R) -}
-7b7670ec573fa1278d4372f3f1b919c5
-  runCM1 ::
-    Language.Fixpoint.SortCheck.CheckM a
-    -> Language.Fixpoint.SortCheck.CheckM a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a (ds :: Language.Fixpoint.SortCheck.CheckM a) -> ds) -}
-2f69b84f7b235651018c22296a15754f
-  sortExpr ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: (\ (l :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (γ :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case (Language.Fixpoint.SortCheck.checkExpr
-                         (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                          Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-                            @ Language.Fixpoint.Types.Sorts.Sort
-                            ds
-                            γ)
-                         e)
-                        `cast`
-                      (Language.Fixpoint.SortCheck.N:CheckM[0]
-                           <Language.Fixpoint.Types.Sorts.Sort>_R)
-                        Language.Fixpoint.SortCheck.initCM of wild { (,) ds1 y ->
-                 case y of wild1 {
-                   Data.Either.Left msg
-                   -> Language.Fixpoint.SortCheck.sortExpr1 γ msg e l
-                   Data.Either.Right s7 -> s7 } }) -}
-851ef253823fc173aa759de35cdfaf1b
-  sortExpr1 ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.String
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><L,U>x -}
-d39aa6e9a580e3382084651a6ab030a7
-  sortMap ::
-    (Language.Fixpoint.Types.Sorts.Sort
-     -> Language.Fixpoint.Types.Sorts.Sort)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <C(S),C(U)><S,1*U> -}
-2a7bf9de66bc674cde448bc706c6f4a2
-  unifyFast ::
-    GHC.Types.Bool
-    -> Language.Fixpoint.SortCheck.Env
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe Language.Fixpoint.SortCheck.TVSubst
-  {- Arity: 4, Strictness: <S,1*U><L,C(U)><S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: GHC.Types.Bool)
-                   (f :: Language.Fixpoint.SortCheck.Env)
-                   (eta :: Language.Fixpoint.Types.Sorts.Sort)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.SortCheck.$wunify1
-                             f
-                             (GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr)
-                             (Data.HashMap.Base.Empty
-                                @ GHC.Types.Int
-                                @ Language.Fixpoint.Types.Sorts.Sort)
-                               `cast`
-                             (Sym (Language.Fixpoint.SortCheck.N:TVSubst[0]))
-                             eta
-                             eta1
-                             Language.Fixpoint.SortCheck.initCM of ww { (#,#) ww1 ww2 ->
-                      case ww2 of wild1 {
-                        Data.Either.Left ds1
-                        -> GHC.Base.Nothing @ Language.Fixpoint.SortCheck.TVSubst
-                        Data.Either.Right su
-                        -> GHC.Base.Just @ Language.Fixpoint.SortCheck.TVSubst su } }
-                   GHC.Types.True
-                   -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                             eta
-                             eta1 of wild1 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing @ Language.Fixpoint.SortCheck.TVSubst
-                        GHC.Types.True -> Language.Fixpoint.SortCheck.unifyFast1 } }) -}
-74d026d417f1869bdd81fa78a74fda6a
-  unifyFast1 :: GHC.Base.Maybe Language.Fixpoint.SortCheck.TVSubst
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Language.Fixpoint.SortCheck.TVSubst
-                   (Data.HashMap.Base.Empty
-                      @ GHC.Types.Int
-                      @ Language.Fixpoint.Types.Sorts.Sort)
-                     `cast`
-                   (Sym (Language.Fixpoint.SortCheck.N:TVSubst[0]))) -}
-d215507506898f04053ed43a9d782896
-  unifySorts ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe Language.Fixpoint.SortCheck.TVSubst
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (eta :: Language.Fixpoint.Types.Sorts.Sort)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.SortCheck.$wunify1
-                        Language.Fixpoint.SortCheck.exprSort1
-                        (GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr)
-                        (Data.HashMap.Base.Empty
-                           @ GHC.Types.Int
-                           @ Language.Fixpoint.Types.Sorts.Sort)
-                          `cast`
-                        (Sym (Language.Fixpoint.SortCheck.N:TVSubst[0]))
-                        eta
-                        eta1
-                        Language.Fixpoint.SortCheck.initCM of ww { (#,#) ww1 ww2 ->
-                 case ww2 of wild {
-                   Data.Either.Left ds
-                   -> GHC.Base.Nothing @ Language.Fixpoint.SortCheck.TVSubst
-                   Data.Either.Right su
-                   -> GHC.Base.Just @ Language.Fixpoint.SortCheck.TVSubst su } }) -}
-instance GHC.Base.Applicative [Language.Fixpoint.SortCheck.CheckM]
-  = Language.Fixpoint.SortCheck.$fApplicativeCheckM
-instance Language.Fixpoint.SortCheck.Checkable [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.SortCheck.$fCheckableExpr
-instance Language.Fixpoint.SortCheck.Checkable [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.SortCheck.$fCheckableSortedReft
-instance Language.Fixpoint.SortCheck.Elaborate [(,)]
-  = Language.Fixpoint.SortCheck.$fElaborate(,)
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.SortCheck.$fElaborateExpr
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.SortCheck.$fElaborateGInfo
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.SortCheck.$fElaborateSimpC
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.SortCheck.$fElaborateSizedEnv
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.SortCheck.$fElaborateSort
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.SortCheck.$fElaborateSortedReft
-instance Language.Fixpoint.SortCheck.Elaborate [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.SortCheck.$fElaborateTriggered
-instance Language.Fixpoint.SortCheck.Elaborate [[]]
-  = Language.Fixpoint.SortCheck.$fElaborate[]
-instance Language.Fixpoint.SortCheck.Freshable [GHC.Types.Int]
-  = Language.Fixpoint.SortCheck.$fFreshableInt
-instance Language.Fixpoint.SortCheck.Freshable [[]]
-  = Language.Fixpoint.SortCheck.$fFreshable[]
-instance GHC.Base.Functor [Language.Fixpoint.SortCheck.CheckM]
-  = Language.Fixpoint.SortCheck.$fFunctorCheckM
-instance GHC.Base.Monad [Language.Fixpoint.SortCheck.CheckM]
-  = Language.Fixpoint.SortCheck.$fMonadCheckM
-instance Control.Monad.Error.Class.MonadError [[],
-                                               Language.Fixpoint.SortCheck.CheckM]
-  = Language.Fixpoint.SortCheck.$fMonadError[]CheckM
-instance GHC.Show.Show [Language.Fixpoint.SortCheck.TVSubst]
-  = Language.Fixpoint.SortCheck.$fShowTVSubst
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types.dump-hi
+++ /dev/null
@@ -1,965 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:39.549485 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types 8002
-  interface hash: 6f7c82d8c40a0cb837de98cd5523f7d8
-  ABI hash: 09d1039f1e0058408506d58eee0982ca
-  export-list hash: 91181ff2c29316a0420a9031c7b2d4bd
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 942dd8a3565e2ef1a81fdce81e5ee716
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Constraints.addIds
-  Language.Fixpoint.Types.Constraints.allowHO
-  Language.Fixpoint.Types.Constraints.allowHOquals
-  Language.Fixpoint.Types.Constraints.convertFormat
-  Language.Fixpoint.Types.Constraints.fi
-  Language.Fixpoint.Types.Constraints.getEqBody
-  Language.Fixpoint.Types.Constraints.isGWfc
-  Language.Fixpoint.Types.Constraints.isUnsafe
-  Language.Fixpoint.Types.Constraints.ksMember
-  Language.Fixpoint.Types.Constraints.mkQual
-  Language.Fixpoint.Types.Constraints.mkSubC
-  Language.Fixpoint.Types.Constraints.qualifier
-  Language.Fixpoint.Types.Constraints.remakeQual
-  Language.Fixpoint.Types.Constraints.saveQuery
-  Language.Fixpoint.Types.Constraints.shiftVV
-  Language.Fixpoint.Types.Constraints.strengthenLhs
-  Language.Fixpoint.Types.Constraints.subC
-  Language.Fixpoint.Types.Constraints.subcId
-  Language.Fixpoint.Types.Constraints.toFixpoint
-  Language.Fixpoint.Types.Constraints.toGFixSol
-  Language.Fixpoint.Types.Constraints.trueQual
-  Language.Fixpoint.Types.Constraints.unsafe
-  Language.Fixpoint.Types.Constraints.updateWfCExpr
-  Language.Fixpoint.Types.Constraints.wfC
-  Language.Fixpoint.Types.Constraints.writeFInfo
-  Language.Fixpoint.Types.Environments.adjustBindEnv
-  Language.Fixpoint.Types.Environments.bindEnvFromList
-  Language.Fixpoint.Types.Environments.bindEnvToList
-  Language.Fixpoint.Types.Environments.deleteIBindEnv
-  Language.Fixpoint.Types.Environments.deleteSEnv
-  Language.Fixpoint.Types.Environments.diffIBindEnv
-  Language.Fixpoint.Types.Environments.differenceSEnv
-  Language.Fixpoint.Types.Environments.elemsBindEnv
-  Language.Fixpoint.Types.Environments.elemsIBindEnv
-  Language.Fixpoint.Types.Environments.emptyBindEnv
-  Language.Fixpoint.Types.Environments.emptyIBindEnv
-  Language.Fixpoint.Types.Environments.emptySEnv
-  Language.Fixpoint.Types.Environments.envCs
-  Language.Fixpoint.Types.Environments.filterBindEnv
-  Language.Fixpoint.Types.Environments.filterIBindEnv
-  Language.Fixpoint.Types.Environments.filterSEnv
-  Language.Fixpoint.Types.Environments.fromListSEnv
-  Language.Fixpoint.Types.Environments.fromMapSEnv
-  Language.Fixpoint.Types.Environments.getPack
-  Language.Fixpoint.Types.Environments.insertBindEnv
-  Language.Fixpoint.Types.Environments.insertSEnv
-  Language.Fixpoint.Types.Environments.insertsIBindEnv
-  Language.Fixpoint.Types.Environments.intersectWithSEnv
-  Language.Fixpoint.Types.Environments.intersectionIBindEnv
-  Language.Fixpoint.Types.Environments.lookupBindEnv
-  Language.Fixpoint.Types.Environments.lookupSEnv
-  Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-  Language.Fixpoint.Types.Environments.makePack
-  Language.Fixpoint.Types.Environments.mapBindEnv
-  Language.Fixpoint.Types.Environments.mapMSEnv
-  Language.Fixpoint.Types.Environments.mapSEnv
-  Language.Fixpoint.Types.Environments.mapSEnvWithKey
-  Language.Fixpoint.Types.Environments.mapWithKeyMBindEnv
-  Language.Fixpoint.Types.Environments.memberIBindEnv
-  Language.Fixpoint.Types.Environments.memberSEnv
-  Language.Fixpoint.Types.Environments.nullIBindEnv
-  Language.Fixpoint.Types.Environments.toListSEnv
-  Language.Fixpoint.Types.Environments.unionIBindEnv
-  Language.Fixpoint.Types.Environments.unionSEnv
-  Language.Fixpoint.Types.Environments.unionSEnv'
-  Language.Fixpoint.Types.Errors.catError
-  Language.Fixpoint.Types.Errors.catErrors
-  Language.Fixpoint.Types.Errors.colorResult
-  Language.Fixpoint.Types.Errors.die
-  Language.Fixpoint.Types.Errors.err
-  Language.Fixpoint.Types.Errors.errFreeVarInConstraint
-  Language.Fixpoint.Types.Errors.errFreeVarInQual
-  Language.Fixpoint.Types.Errors.errIllScopedKVar
-  Language.Fixpoint.Types.Errors.exit
-  Language.Fixpoint.Types.Errors.resultDoc
-  Language.Fixpoint.Types.Names.anfPrefix
-  Language.Fixpoint.Types.Names.bitVecApplyName
-  Language.Fixpoint.Types.Names.bitVecName
-  Language.Fixpoint.Types.Names.bitVecToIntName
-  Language.Fixpoint.Types.Names.boolApplyName
-  Language.Fixpoint.Types.Names.boolConName
-  Language.Fixpoint.Types.Names.boolToIntName
-  Language.Fixpoint.Types.Names.bvAndName
-  Language.Fixpoint.Types.Names.bvOrName
-  Language.Fixpoint.Types.Names.consName
-  Language.Fixpoint.Types.Names.consSym
-  Language.Fixpoint.Types.Names.divFuncName
-  Language.Fixpoint.Types.Names.dropSym
-  Language.Fixpoint.Types.Names.dummyName
-  Language.Fixpoint.Types.Names.dummySymbol
-  Language.Fixpoint.Types.Names.existSymbol
-  Language.Fixpoint.Types.Names.funConName
-  Language.Fixpoint.Types.Names.headSym
-  Language.Fixpoint.Types.Names.intApplyName
-  Language.Fixpoint.Types.Names.intArgName
-  Language.Fixpoint.Types.Names.intSymbol
-  Language.Fixpoint.Types.Names.isDummy
-  Language.Fixpoint.Types.Names.isLitSymbol
-  Language.Fixpoint.Types.Names.isNonSymbol
-  Language.Fixpoint.Types.Names.isNontrivialVV
-  Language.Fixpoint.Types.Names.isPrefixOfSym
-  Language.Fixpoint.Types.Names.isSuffixOfSym
-  Language.Fixpoint.Types.Names.kArgSymbol
-  Language.Fixpoint.Types.Names.lambdaName
-  Language.Fixpoint.Types.Names.lengthSym
-  Language.Fixpoint.Types.Names.listConName
-  Language.Fixpoint.Types.Names.listLConName
-  Language.Fixpoint.Types.Names.litSymbol
-  Language.Fixpoint.Types.Names.mapApplyName
-  Language.Fixpoint.Types.Names.mapConName
-  Language.Fixpoint.Types.Names.mapToIntName
-  Language.Fixpoint.Types.Names.mulFuncName
-  Language.Fixpoint.Types.Names.nilName
-  Language.Fixpoint.Types.Names.nonSymbol
-  Language.Fixpoint.Types.Names.preludeName
-  Language.Fixpoint.Types.Names.prims
-  Language.Fixpoint.Types.Names.realApplyName
-  Language.Fixpoint.Types.Names.realToIntName
-  Language.Fixpoint.Types.Names.renameSymbol
-  Language.Fixpoint.Types.Names.setApplyName
-  Language.Fixpoint.Types.Names.setConName
-  Language.Fixpoint.Types.Names.setToIntName
-  Language.Fixpoint.Types.Names.size32Name
-  Language.Fixpoint.Types.Names.size64Name
-  Language.Fixpoint.Types.Names.strConName
-  Language.Fixpoint.Types.Names.stripPrefix
-  Language.Fixpoint.Types.Names.suffixSymbol
-  Language.Fixpoint.Types.Names.symChars
-  Language.Fixpoint.Types.Names.symbolSafeString
-  Language.Fixpoint.Types.Names.symbolSafeText
-  Language.Fixpoint.Types.Names.symbolString
-  Language.Fixpoint.Types.Names.symbolText
-  Language.Fixpoint.Types.Names.symbolicString
-  Language.Fixpoint.Types.Names.tempPrefix
-  Language.Fixpoint.Types.Names.tempSymbol
-  Language.Fixpoint.Types.Names.tidySymbol
-  Language.Fixpoint.Types.Names.tupConName
-  Language.Fixpoint.Types.Names.unLitSymbol
-  Language.Fixpoint.Types.Names.unconsSym
-  Language.Fixpoint.Types.Names.vv
-  Language.Fixpoint.Types.Names.vvCon
-  Language.Fixpoint.Types.Names.vvName
-  Language.Fixpoint.Types.PrettyPrint.boxDoc
-  Language.Fixpoint.Types.PrettyPrint.boxHSep
-  Language.Fixpoint.Types.PrettyPrint.docBox
-  Language.Fixpoint.Types.PrettyPrint.notracepp
-  Language.Fixpoint.Types.PrettyPrint.pprint
-  Language.Fixpoint.Types.PrettyPrint.pprintKVs
-  Language.Fixpoint.Types.PrettyPrint.showFix
-  Language.Fixpoint.Types.PrettyPrint.showTable
-  Language.Fixpoint.Types.PrettyPrint.showpp
-  Language.Fixpoint.Types.PrettyPrint.traceFix
-  Language.Fixpoint.Types.PrettyPrint.tracepp
-  Language.Fixpoint.Types.Refinements.&.&
-  Language.Fixpoint.Types.Refinements.EBot
-  Language.Fixpoint.Types.Refinements.EDiv
-  Language.Fixpoint.Types.Refinements.EEq
-  Language.Fixpoint.Types.Refinements.ERDiv
-  Language.Fixpoint.Types.Refinements.ERTimes
-  Language.Fixpoint.Types.Refinements.ETimes
-  Language.Fixpoint.Types.Refinements.PFalse
-  Language.Fixpoint.Types.Refinements.PTop
-  Language.Fixpoint.Types.Refinements.PTrue
-  Language.Fixpoint.Types.Refinements.conjuncts
-  Language.Fixpoint.Types.Refinements.debruijnIndex
-  Language.Fixpoint.Types.Refinements.eAppC
-  Language.Fixpoint.Types.Refinements.eApps
-  Language.Fixpoint.Types.Refinements.eProp
-  Language.Fixpoint.Types.Refinements.eVar
-  Language.Fixpoint.Types.Refinements.elit
-  Language.Fixpoint.Types.Refinements.exprReft
-  Language.Fixpoint.Types.Refinements.falseReft
-  Language.Fixpoint.Types.Refinements.flattenRefas
-  Language.Fixpoint.Types.Refinements.intKvar
-  Language.Fixpoint.Types.Refinements.isContraPred
-  Language.Fixpoint.Types.Refinements.isFunctionSortedReft
-  Language.Fixpoint.Types.Refinements.isGradual
-  Language.Fixpoint.Types.Refinements.isNonTrivial
-  Language.Fixpoint.Types.Refinements.isSingletonReft
-  Language.Fixpoint.Types.Refinements.isTautoPred
-  Language.Fixpoint.Types.Refinements.mapPredReft
-  Language.Fixpoint.Types.Refinements.mkEApp
-  Language.Fixpoint.Types.Refinements.mkProp
-  Language.Fixpoint.Types.Refinements.notExprReft
-  Language.Fixpoint.Types.Refinements.pAnd
-  Language.Fixpoint.Types.Refinements.pExist
-  Language.Fixpoint.Types.Refinements.pGAnd
-  Language.Fixpoint.Types.Refinements.pGAnds
-  Language.Fixpoint.Types.Refinements.pIte
-  Language.Fixpoint.Types.Refinements.pOr
-  Language.Fixpoint.Types.Refinements.pprintReft
-  Language.Fixpoint.Types.Refinements.predReft
-  Language.Fixpoint.Types.Refinements.propReft
-  Language.Fixpoint.Types.Refinements.reft
-  Language.Fixpoint.Types.Refinements.reftBind
-  Language.Fixpoint.Types.Refinements.reftConjuncts
-  Language.Fixpoint.Types.Refinements.reftPred
-  Language.Fixpoint.Types.Refinements.splitEApp
-  Language.Fixpoint.Types.Refinements.symbolReft
-  Language.Fixpoint.Types.Refinements.trueReft
-  Language.Fixpoint.Types.Refinements.trueSortedReft
-  Language.Fixpoint.Types.Refinements.uexprReft
-  Language.Fixpoint.Types.Refinements.usymbolReft
-  Language.Fixpoint.Types.Refinements.vv_
-  Language.Fixpoint.Types.Refinements.|.|
-  Language.Fixpoint.Types.Sorts.bitVecSort
-  Language.Fixpoint.Types.Sorts.bkFFunc
-  Language.Fixpoint.Types.Sorts.boolFTyCon
-  Language.Fixpoint.Types.Sorts.boolSort
-  Language.Fixpoint.Types.Sorts.fApp
-  Language.Fixpoint.Types.Sorts.fApp'
-  Language.Fixpoint.Types.Sorts.fAppTC
-  Language.Fixpoint.Types.Sorts.fObj
-  Language.Fixpoint.Types.Sorts.fTyconSort
-  Language.Fixpoint.Types.Sorts.fTyconSymbol
-  Language.Fixpoint.Types.Sorts.funcSort
-  Language.Fixpoint.Types.Sorts.functionSort
-  Language.Fixpoint.Types.Sorts.intFTyCon
-  Language.Fixpoint.Types.Sorts.intSort
-  Language.Fixpoint.Types.Sorts.isFirstOrder
-  Language.Fixpoint.Types.Sorts.isListTC
-  Language.Fixpoint.Types.Sorts.isNumeric
-  Language.Fixpoint.Types.Sorts.isReal
-  Language.Fixpoint.Types.Sorts.isString
-  Language.Fixpoint.Types.Sorts.listFTyCon
-  Language.Fixpoint.Types.Sorts.mapSort
-  Language.Fixpoint.Types.Sorts.mappendFTC
-  Language.Fixpoint.Types.Sorts.mkFFunc
-  Language.Fixpoint.Types.Sorts.numFTyCon
-  Language.Fixpoint.Types.Sorts.realFTyCon
-  Language.Fixpoint.Types.Sorts.realSort
-  Language.Fixpoint.Types.Sorts.setFTyCon
-  Language.Fixpoint.Types.Sorts.setSort
-  Language.Fixpoint.Types.Sorts.sortFTycon
-  Language.Fixpoint.Types.Sorts.sortSubst
-  Language.Fixpoint.Types.Sorts.strFTyCon
-  Language.Fixpoint.Types.Sorts.strSort
-  Language.Fixpoint.Types.Sorts.symbolFTycon
-  Language.Fixpoint.Types.Sorts.symbolNumInfoFTyCon
-  Language.Fixpoint.Types.Spans.atLoc
-  Language.Fixpoint.Types.Spans.dummyLoc
-  Language.Fixpoint.Types.Spans.dummyPos
-  Language.Fixpoint.Types.Spans.dummySpan
-  Language.Fixpoint.Types.Spans.locAt
-  Language.Fixpoint.Types.Spans.sourcePosElts
-  Language.Fixpoint.Types.Substitutions.filterSubst
-  Language.Fixpoint.Types.Substitutions.isEmptySubst
-  Language.Fixpoint.Types.Substitutions.mkSubst
-  Language.Fixpoint.Types.Substitutions.subst1Except
-  Language.Fixpoint.Types.Substitutions.substExcept
-  Language.Fixpoint.Types.Substitutions.substfExcept
-  Language.Fixpoint.Types.Substitutions.targetSubstSyms
-  Language.Fixpoint.Types.Triggers.defaultTrigger
-  Language.Fixpoint.Types.Triggers.makeTriggers
-  Language.Fixpoint.Types.Triggers.noTrigger
-  Language.Fixpoint.Types.Utils.kvarDomain
-  Language.Fixpoint.Types.Utils.reftFreeVars
-  Language.Fixpoint.Types.Utils.sortedReftConcKVars
-  Language.Fixpoint.Types.Constraints.AxiomEnv{Language.Fixpoint.Types.Constraints.AEnv aenvEqs aenvExpand aenvFuel aenvSimpl aenvSyms}
-  Language.Fixpoint.Types.Constraints.Equation{Language.Fixpoint.Types.Constraints.Equ eqArgs eqBody eqName}
-  Language.Fixpoint.Types.Constraints.FInfo
-  Language.Fixpoint.Types.Constraints.FInfoWithOpts{Language.Fixpoint.Types.Constraints.FIO fioFI fioOpts}
-  Language.Fixpoint.Types.Constraints.FixSolution
-  Language.Fixpoint.Types.Constraints.GFixSolution
-  Language.Fixpoint.Types.Constraints.GInfo{Language.Fixpoint.Types.Constraints.FI ae asserts bindInfo bs cm dLits gLits hoInfo kuts quals ws}
-  Language.Fixpoint.Types.Constraints.HOInfo{Language.Fixpoint.Types.Constraints.HOI hoBinds hoQuals}
-  Language.Fixpoint.Types.Constraints.Kuts{Language.Fixpoint.Types.Constraints.KS ksVars}
-  Language.Fixpoint.Types.Constraints.Qualifier{Language.Fixpoint.Types.Constraints.Q qBody qName qParams qPos}
-  Language.Fixpoint.Types.Constraints.Result{Language.Fixpoint.Types.Constraints.Result gresSolution resSolution resStatus}
-  Language.Fixpoint.Types.Constraints.Rewrite{Language.Fixpoint.Types.Constraints.SMeasure smArgs smBody smDC smName}
-  Language.Fixpoint.Types.Constraints.SInfo
-  Language.Fixpoint.Types.Constraints.SimpC{Language.Fixpoint.Types.Constraints.SimpC _cenv _cid _cinfo _crhs _ctag}
-  Language.Fixpoint.Types.Constraints.Solver
-  Language.Fixpoint.Types.Constraints.SubC{slhs srhs}
-  Language.Fixpoint.Types.Constraints.SubcId
-  Language.Fixpoint.Types.Constraints.Tag
-  Language.Fixpoint.Types.Constraints.TaggedC{Language.Fixpoint.Types.Constraints.clhs Language.Fixpoint.Types.Constraints.crhs Language.Fixpoint.Types.Constraints.senv Language.Fixpoint.Types.Constraints.sid Language.Fixpoint.Types.Constraints.sinfo Language.Fixpoint.Types.Constraints.stag}
-  Language.Fixpoint.Types.Constraints.WfC{Language.Fixpoint.Types.Constraints.GWfC Language.Fixpoint.Types.Constraints.WfC wenv wexpr winfo wrft}
-  Language.Fixpoint.Types.Environments.BindEnv
-  Language.Fixpoint.Types.Environments.BindId
-  Language.Fixpoint.Types.Environments.BindMap
-  Language.Fixpoint.Types.Environments.IBindEnv
-  Language.Fixpoint.Types.Environments.Packs{Language.Fixpoint.Types.Environments.Packs packm}
-  Language.Fixpoint.Types.Environments.SESearch{Language.Fixpoint.Types.Environments.Alts Language.Fixpoint.Types.Environments.Found}
-  Language.Fixpoint.Types.Environments.SEnv
-  Language.Fixpoint.Types.Environments.SizedEnv|{beBinds}
-  Language.Fixpoint.Types.Environments.SolEnv{Language.Fixpoint.Types.Environments.SolEnv soeBinds}
-  Language.Fixpoint.Types.Errors.Error
-  Language.Fixpoint.Types.Errors.Error1|{errLoc errMsg}
-  Language.Fixpoint.Types.Errors.FixResult{Language.Fixpoint.Types.Errors.Crash Language.Fixpoint.Types.Errors.Safe Language.Fixpoint.Types.Errors.Unsafe}
-  Language.Fixpoint.Types.Names.LocSymbol
-  Language.Fixpoint.Types.Names.LocText
-  Language.Fixpoint.Types.Names.Symbol
-  Language.Fixpoint.Types.Names.Symbolic{Language.Fixpoint.Types.Names.symbol}
-  Language.Fixpoint.Types.PrettyPrint.DocTable{Language.Fixpoint.Types.PrettyPrint.DocTable}
-  Language.Fixpoint.Types.PrettyPrint.Fixpoint{Language.Fixpoint.Types.PrettyPrint.simplify Language.Fixpoint.Types.PrettyPrint.toFix}
-  Language.Fixpoint.Types.PrettyPrint.PPrint{Language.Fixpoint.Types.PrettyPrint.pprintPrec Language.Fixpoint.Types.PrettyPrint.pprintTidy}
-  Language.Fixpoint.Types.PrettyPrint.PTable{Language.Fixpoint.Types.PrettyPrint.ptable}
-  Language.Fixpoint.Types.PrettyPrint.Tidy{Language.Fixpoint.Types.PrettyPrint.Full Language.Fixpoint.Types.PrettyPrint.Lossy}
-  Language.Fixpoint.Types.Refinements.Bop{Language.Fixpoint.Types.Refinements.Div Language.Fixpoint.Types.Refinements.Minus Language.Fixpoint.Types.Refinements.Mod Language.Fixpoint.Types.Refinements.Plus Language.Fixpoint.Types.Refinements.RDiv Language.Fixpoint.Types.Refinements.RTimes Language.Fixpoint.Types.Refinements.Times}
-  Language.Fixpoint.Types.Refinements.Brel{Language.Fixpoint.Types.Refinements.Eq Language.Fixpoint.Types.Refinements.Ge Language.Fixpoint.Types.Refinements.Gt Language.Fixpoint.Types.Refinements.Le Language.Fixpoint.Types.Refinements.Lt Language.Fixpoint.Types.Refinements.Ne Language.Fixpoint.Types.Refinements.Ueq Language.Fixpoint.Types.Refinements.Une}
-  Language.Fixpoint.Types.Refinements.Constant{Language.Fixpoint.Types.Refinements.I Language.Fixpoint.Types.Refinements.L Language.Fixpoint.Types.Refinements.R}
-  Language.Fixpoint.Types.Refinements.Expr{Language.Fixpoint.Types.Refinements.EApp Language.Fixpoint.Types.Refinements.EBin Language.Fixpoint.Types.Refinements.ECon Language.Fixpoint.Types.Refinements.ECst Language.Fixpoint.Types.Refinements.EIte Language.Fixpoint.Types.Refinements.ELam Language.Fixpoint.Types.Refinements.ENeg Language.Fixpoint.Types.Refinements.ESym Language.Fixpoint.Types.Refinements.ETAbs Language.Fixpoint.Types.Refinements.ETApp Language.Fixpoint.Types.Refinements.EVar Language.Fixpoint.Types.Refinements.PAll Language.Fixpoint.Types.Refinements.PAnd Language.Fixpoint.Types.Refinements.PAtom Language.Fixpoint.Types.Refinements.PExist Language.Fixpoint.Types.Refinements.PGrad Language.Fixpoint.Types.Refinements.PIff Language.Fixpoint.Types.Refinements.PImp Language.Fixpoint.Types.Refinements.PKVar Language.Fixpoint.Types.Refinements.PNot Language.Fixpoint.Types.Refinements.POr}
-  Language.Fixpoint.Types.Refinements.Expression{Language.Fixpoint.Types.Refinements.expr}
-  Language.Fixpoint.Types.Refinements.Falseable|{Language.Fixpoint.Types.Refinements.isFalse}
-  Language.Fixpoint.Types.Refinements.KVSub{Language.Fixpoint.Types.Refinements.KVS ksuKVar ksuSort ksuSubst ksuVV}
-  Language.Fixpoint.Types.Refinements.KVar{Language.Fixpoint.Types.Refinements.KV kv}
-  Language.Fixpoint.Types.Refinements.Pred
-  Language.Fixpoint.Types.Refinements.Predicate{Language.Fixpoint.Types.Refinements.prop}
-  Language.Fixpoint.Types.Refinements.Reft{Language.Fixpoint.Types.Refinements.Reft}
-  Language.Fixpoint.Types.Refinements.Reftable{Language.Fixpoint.Types.Refinements.bot Language.Fixpoint.Types.Refinements.isTauto Language.Fixpoint.Types.Refinements.meet Language.Fixpoint.Types.Refinements.ofReft Language.Fixpoint.Types.Refinements.params Language.Fixpoint.Types.Refinements.ppTy Language.Fixpoint.Types.Refinements.toReft Language.Fixpoint.Types.Refinements.top}
-  Language.Fixpoint.Types.Refinements.SortedReft{Language.Fixpoint.Types.Refinements.RR sr_reft sr_sort}
-  Language.Fixpoint.Types.Refinements.Subable{Language.Fixpoint.Types.Refinements.subst Language.Fixpoint.Types.Refinements.subst1 Language.Fixpoint.Types.Refinements.substa Language.Fixpoint.Types.Refinements.substf Language.Fixpoint.Types.Refinements.syms}
-  Language.Fixpoint.Types.Refinements.Subst{Language.Fixpoint.Types.Refinements.Su}
-  Language.Fixpoint.Types.Refinements.SymConst{Language.Fixpoint.Types.Refinements.SL}
-  Language.Fixpoint.Types.Sorts.FTycon
-  Language.Fixpoint.Types.Sorts.Sort{Language.Fixpoint.Types.Sorts.FAbs Language.Fixpoint.Types.Sorts.FApp Language.Fixpoint.Types.Sorts.FFrac Language.Fixpoint.Types.Sorts.FFunc Language.Fixpoint.Types.Sorts.FInt Language.Fixpoint.Types.Sorts.FNum Language.Fixpoint.Types.Sorts.FObj Language.Fixpoint.Types.Sorts.FReal Language.Fixpoint.Types.Sorts.FTC Language.Fixpoint.Types.Sorts.FVar}
-  Language.Fixpoint.Types.Sorts.Sub{Language.Fixpoint.Types.Sorts.Sub}
-  Language.Fixpoint.Types.Sorts.TCEmb
-  Language.Fixpoint.Types.Spans.Loc{Language.Fixpoint.Types.Spans.srcSpan}
-  Language.Fixpoint.Types.Spans.Located{Language.Fixpoint.Types.Spans.Loc loc locE val}
-  Language.Fixpoint.Types.Spans.SrcSpan{Language.Fixpoint.Types.Spans.SS sp_start sp_stop}
-  Language.Fixpoint.Types.Triggers.Trigger{Language.Fixpoint.Types.Triggers.LeftHandSide Language.Fixpoint.Types.Triggers.NoTrigger}
-  Language.Fixpoint.Types.Triggers.Triggered{Language.Fixpoint.Types.Triggers.TR}
-  Text.Parsec.Pos.SourcePos
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  exports: 8ff2109a000830685650941885f8f564
-  AEnv 4a3f743969d6c689b4ef13e482c65207
-  AxiomEnv 1052549cc559e08aaa78c218edda206c
-  Equ 4371743452bf5d526ebc1b176ad109f0
-  Equation 6fa1753970c5ab8b1ce3d107cde4096f
-  FI fecb67027c21bc9e81363103b09193b1
-  FIO ee3011cbfbf80f79537822f329acfc58
-  FInfo beb16efa76d83917c7875fd2371988e0
-  FInfoWithOpts 528e5765b1592890448e36f31279cea6
-  FixSolution 5b4735b3e3cc0ca65b03d3255d2f3f6c
-  GFixSolution 1de0e7882069f13222c6effa6f71fad5
-  GInfo 1052549cc559e08aaa78c218edda206c
-  GWfC 87bcb851e06480707d62eba2b3c2c0c6
-  HOI 0fd22b30b1b7ef3bea20b37d6995c231
-  HOInfo 7a24b8d792e855ca223f976758f59930
-  KS 34a2e7fa08a7a88ae7f87de39d5be762
-  Kuts 10aef948b5229216dcc343e2e00963d2
-  Q e1878ebe3b69f7221293cc0e5f7fc6d6
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  Result bd94cb06f2a56d7ff5b46922e02fce58
-  Result 1de0e7882069f13222c6effa6f71fad5
-  Rewrite a70f5553877272321cc8f3b254d9abac
-  SInfo 1052549cc559e08aaa78c218edda206c
-  SMeasure 4a2e056752f8012c795104a8a3ecb2a6
-  SimpC 92a0f3978775d4efbcd8a33a5e827b5c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  Solver f1f0ec730b81f80dd9bee7952949bcd8
-  SubC ed16f1ec59060d74f74ea827928489f9
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-  TaggedC 710144f9da9a9e879219a27a9c6dc76f
-  WfC 4501f427ab7a0541203dd170d4f9b80e
-  WfC 50354839b899806bfddb7dd9a816596d
-  _cenv 16908eec2a5fa12185cf628430140e85
-  _cid 6f1612cbabde521428795682b135e436
-  _cinfo 4b490e1ab2bd8043090f4d15729445ed
-  _crhs 746ca2f97e781cb1955fd7640112b9a8
-  _ctag 89246fb028c6ad39022fd44f2a538952
-  addIds 8e356726e0af03711c6346c43ce0c648
-  ae 50f1657d4c382caff75b8f74600f41f8
-  aenvEqs 9a91de805584745024b97f74d5f10562
-  aenvExpand d65af654b2bb6c209de41a806ef4dcfb
-  aenvFuel 59265deee7cf350635d917f4bb7c4946
-  aenvSimpl 7f242410292911109a7a896bcd5b58f3
-  aenvSyms 20a12db9277248d4c1280e21963c6fb5
-  allowHO f7bd529e6f3b10a3a0b6d23b100cc12b
-  allowHOquals 204044004a0c8fab67b4c88b81d03cf5
-  asserts 39bbdb6193c8af948ed932b55699661b
-  bindInfo 56820faf0d991198f94743edf7c6674d
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  clhs 4cf40034a3d73fd78899b3581cd09a97
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  convertFormat 0d632bd0cb2078bdad46978f95df8983
-  crhs 1e68f26339689c1f8619807c178004c5
-  dLits 520fb0647a01216c687192a56bf631fa
-  eqArgs abb2d2563f83c6a8ffd319e966c2c2f2
-  eqBody a2f72860c6b794077dec2e68bf70b219
-  eqName 345f29767b3eccd84ea2870aa7700640
-  fi c443f40298e5ee40e012396587c3a0f7
-  fioFI b354be32cea41076c357d82fb6b4eab0
-  fioOpts db7b8f5c0682d077570142ebfc130efb
-  gLits 9bf9d2f5b493ad988755fb3a9a51e985
-  getEqBody 0fac72af6a3f4cb91e3940c5b31fdf58
-  gresSolution e0bda26e2a2d1d2bf92cc539dfce23d8
-  hoBinds 6382842cd7968a5671d9c08fa5598d74
-  hoInfo 4dfecf7fbd32320e946bf9df4b0e1a98
-  hoQuals f810b59e96b05105a9c480177d99cce4
-  isGWfc e3a7ff0495f71a580cf9216dd7498e66
-  isUnsafe 65b6076217f4f66a4a61b29e6190c526
-  ksMember d08290f25e3ce97efa755092a7bf0f5f
-  ksVars ee675ede781ff97494cb42494377b76e
-  kuts d406844fa77de9da82204390a3f0a2da
-  mkQual 1360e3ed9ce1dca20223228e4fbc568c
-  mkSubC 7425c83b6dfb04e4a1faf483a4d849a4
-  qBody a90af993c8ca625414e8b90f88916f3f
-  qName 0f5bdcb53e5d79b2170728588403357c
-  qParams 54bc9290720ec8197ce69a552d4656be
-  qPos 86dde02d707c66a8777c045e13cabb60
-  qualifier 98947821f7c1109f5b636213d9b33c79
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  remakeQual 381b95ec430338b66cbedaa4bfda1858
-  resSolution f55f0c46369593e7e85befdfb6dfdad8
-  resStatus 3f55294ccfc28a0973c88dd648f672f4
-  saveQuery 05e9dce8e4549bc3d5847cf5a15cc2b4
-  senv 217248b78f66ac0ddb6bfd67b700cbe5
-  shiftVV e3d99df207a3eef7a3b55cff2bcdad01
-  sid 9ba83f62143508c4ad59807c752d0be9
-  sinfo 9105e38389ada36faf8b042779878ac6
-  slhs ff31f7ff76d5011e3329777d046753a8
-  smArgs 0fbb8f7857cd0130028e57ca0f730e83
-  smBody 1e8641959c86e835e2e0392577bec2b8
-  smDC bac7e6c297fccd4ba8271f23c2e802d4
-  smName 0a40fa8e4950e91ddb70b49f1d4cdc11
-  srhs 6299a4aca5a3764628a25206cc77779a
-  stag 76024cf6f78bddd6a28cd3717846fe6a
-  strengthenLhs 58909d3f6b10dd4b2e3a9497147f5e74
-  subC 66ae7d7e37980520d7e0dcfa324ee5e9
-  subcId 170adfc4aedcef6c28d5eb404df361b9
-  toFixpoint 5711bd73781766989598d60d9f1939d0
-  toGFixSol 0bf621e3d7f5bd2f9486a81f128f985d
-  trueQual eeaca4f0234943aafb2bfee7e7c4a632
-  unsafe 437acb765e79eb2b8a3653725f4f45be
-  updateWfCExpr 23675dc8dc2857a14ac20d6834386cde
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wexpr 83515c1aa6205bfb453ccbfabb4f0b10
-  wfC 26932f3ec7b322e94102943b130adb27
-  winfo ecc84b8bb7433f05335887d1820ca39f
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  writeFInfo ad168b3f748b746c2712abb79f6e7bf5
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  exports: 0b4b7a69569980039fc5b65d426e2d6f
-  Alts 2b51030cf97ed319b8e7c78f854ae277
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  BindMap f75ec848aa783574a6a9c634b75251d6
-  Found 5997709796fde7bf511d8229fe99efb0
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  Packs 372c4230f34c77cb4107845f523a7f12
-  Packs 999de3bcf4ed26dd71bfcb519acbd47a
-  SESearch 49d4d07afcffcb491480eb79ab43124c
-  SEnv ae9741409aa049333ef008f3802cfecf
-  SolEnv 1cdf960e8876df6c7f306595290aad96
-  SolEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  adjustBindEnv c777b46b1c743af956a2afbec10c57f9
-  beBinds 0907867d711aa08166613144dbfef14c
-  bindEnvFromList 89c34f20db94686b94cfff511336c8e5
-  bindEnvToList 15cf21f5dde4a84007d2f5516efc18c5
-  deleteIBindEnv 817a2fbe6105ce7078cd9ca341552f26
-  deleteSEnv a855d705d7b57927d92a2ae7459af3f3
-  diffIBindEnv 051c7f6e46479a9552747ed2030e9852
-  differenceSEnv 56f953ca58f53f011c9054f056ccbd7c
-  elemsBindEnv 0c5cf007530758c13fe699ca35718ece
-  elemsIBindEnv 7035d11f3a4503479010583526d4931c
-  emptyBindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  emptyIBindEnv dae79859b3442c211473f5cded0c14f7
-  emptySEnv 0092f6c4a7c68c22a64ca5be786a076b
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  filterBindEnv fb61d7691a2bf001a9d16f464c0c1866
-  filterIBindEnv d04344dcc26246482caf1a3ec32b6bfa
-  filterSEnv 5026975848e59412b11dc3e4e4238bde
-  fromListSEnv 789a0bbdc42dd0135ea2d09892ac21d3
-  fromMapSEnv c7fa1108c0d994710bf679129a2b0aec
-  getPack 689b4b8ecce32d5146287da3da7766a5
-  insertBindEnv 2d2a0c911406c085979b39d2332f4072
-  insertSEnv 3be79544f40500c440f0dace6e690579
-  insertsIBindEnv 6cb2cd53df76aa50af651383f2197c38
-  intersectWithSEnv e7a2c0bc6fed19ab508d75ff90ae8aa7
-  intersectionIBindEnv 9983d7e9d97433d2566c93bdd912d47b
-  lookupBindEnv c4a692f1e144e9e359566ca003dc8e31
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  lookupSEnvWithDistance 8487b4b7e6463dbcd7c933ce64e1d285
-  makePack c77564d4cea5fac956b5de40f6ba62f8
-  mapBindEnv 5587766109997447ce44fc36cf0d744e
-  mapMSEnv 65a479f02008539ef5db9da17758dad9
-  mapSEnv ae9741409aa049333ef008f3802cfecf
-  mapSEnvWithKey 665a644baddbe0872d9b4f31ded901ff
-  mapWithKeyMBindEnv 9e2275fcf8423711cbdbf21dd8f18caa
-  memberIBindEnv 6702fd78c0541d0458bf46243a55c085
-  memberSEnv 1b98968bd46488e485e82ffd497cf3a6
-  nullIBindEnv b837d9ab18fd08c4d8f433be0aa2e1c8
-  packm ab42439971f160029014f6063bd5308f
-  soeBinds fbbef264516f9bec0ae6fc47631bb833
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-  unionIBindEnv f6babeef179e76988b659bd281a317e4
-  unionSEnv c0b7430cad1fe3a300af1df67787d65a
-  unionSEnv' d8011c88c4bb3b5c827c5bd9e6aa8a05
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Crash 2d074087cde42a052498bc5853f5467d
-  Error d0173fd74c0fa26b5149cb3e367aede0
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-  catError 18ee612360aad031ca35f01fa2eca9a2
-  catErrors 7650892e6059ecff2d06a66111a8993f
-  colorResult fd7ce028805fe41d6945d0d87e4f5635
-  die a892c3bd643380084ab25f8b09c20b83
-  err a90e823f0e6047342911d3113f83b3d9
-  errFreeVarInConstraint 81315397e78a9f2e2283f8640a3210c7
-  errFreeVarInQual fc2bd9e9fa9736df222b49dfe9c98248
-  errIllScopedKVar c70d60d92ea6a41b668761a1249b3b3a
-  errLoc f5bcaffe7d92b6cc27c2aedf4745c1ec
-  errMsg 7b4853c89069275128e262536a6f9df5
-  exit baef9c1fa43dbe1a498d99d2cb072930
-  resultDoc 2c5d213b3ed009477ac7767316f04226
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  LocSymbol 4a6c826b689fe9b6e8ce8f2d4ad897b2
-  LocText 6076edc10b7eed5a7f2e20ce1fdcc4e4
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  Symbolic 0626e8bb4c60b162c8065dcfe58d4ead
-  anfPrefix 0ac2a33f808a6c46876db382ded0c258
-  bitVecApplyName c1d8a192c1714ead9703691284dcf814
-  bitVecName e733c9a4c9e40b0853f73957e759dbeb
-  bitVecToIntName 833190a7a8cfebe72de4caf10a5cd319
-  boolApplyName a7cb25f4ae6200ec0fb30523f7ea2268
-  boolConName 9d7c74893e77ca7ed925570c70a80376
-  boolToIntName 9d33f51c7225f602107a67923bf43210
-  bvAndName cc27784d934e70c697e2e7240aaffb45
-  bvOrName 505f19c374fb8992291f59af417f3415
-  consName ed36636f996a42e3d326a45fa723e77c
-  consSym 8465bcabc71a22e8d3d2c2956170b033
-  divFuncName 21067dc33a1b9d59afe793b7ef69039c
-  dropSym 05bf2b8874ca8502b1e7ac38b9a80e33
-  dummyName 8464bea10cca21e98816b59f50ab6a7e
-  dummySymbol a9b923c7c6cdb8f9e9593dd6fd31ad20
-  existSymbol b649109f37b6f92f423961de502201cc
-  funConName 0b26e765b8a1752da2787e9fc6812946
-  headSym f93dcaf4fe3979d6e57ada71e23db9e1
-  intApplyName 4ab0157cfdbb81e9834f5fc91b8839f3
-  intArgName 6428e688e6c8bd56e1f50b5eb6ad378e
-  intSymbol e3ca25b3b5ce8f9f7ec4158e72746e1c
-  isDummy a42a7ee4e6e6bf413760f114cd1c5ec3
-  isLitSymbol fce949627de0b7387ed9b777cad06478
-  isNonSymbol 8d13c5d0098ab6b146558cf15cc940cb
-  isNontrivialVV 41702d52373f9b03403e4eb6b414eaab
-  isPrefixOfSym 9607183a94529023225b6f290d52f6a5
-  isSuffixOfSym 3623e2e6314128d5b44a2e3c98c27987
-  kArgSymbol 262c6e8ecea1e0a5e6a338e1da93e761
-  lambdaName d844da24cbcbb857f0cf79953babe2df
-  lengthSym 82ca3ece250e1a7bb8819a80286e9117
-  listConName 4113185c856aab9be37cba78888b077d
-  listLConName 54dd753466623be0c46238bdbf5a223f
-  litSymbol c75a305fa091f5ad50247c8e57607fe0
-  mapApplyName ddb317d661ab32350988590f7250f5a7
-  mapConName 27aaea04a10e9d7d92d914234f1660b7
-  mapToIntName 850ac887e9f7e9682c6cec9b99cb2e14
-  mulFuncName 43af320c45dc2b3a6646f173f8434c27
-  nilName 34c4b5ad364c3b4dc20f882752b534af
-  nonSymbol c533f408e275a93031358a3e73ca199d
-  preludeName 3ab6683e69c9b422c09838a37f1eebe5
-  prims 70e6f07d1b9819e49e94a46ecbff4e62
-  realApplyName babaf3aa9ec579d8932f0f002e849304
-  realToIntName bf741618648c7a866047d91e92aca515
-  renameSymbol 9e1a1bd4c9b876ef906bfe825c73742d
-  setApplyName 1c534130f995a9b6cd7d384d6eebf8b0
-  setConName 1d0f81ce4f6d2857d0d0f587eedcb6c3
-  setToIntName 0e6624be05e2b19e3bb7d51886ba5fc1
-  size32Name 9dde6f1d287cc6bef86214a3aec859d3
-  size64Name c54b5b34d899e6fa20ee4e270c10e2a5
-  strConName 8f2d7586bedd92b3d2ca070cd9d9606e
-  stripPrefix 68070d94b1ebdb812637801dba5f520c
-  suffixSymbol f64bb5413c73d049867763d988ae75e5
-  symChars c771e2dddb18af0127beb2e9fa50af8c
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolSafeString 81865ef12754b3a346967a9345fac225
-  symbolSafeText 526a21b244d2aaefeee84da8dfb69719
-  symbolString 819d69bd3146ce4a14769a9d11f1deac
-  symbolText 13814968e12e393cf26b05198caca520
-  symbolicString 0a512abdee4d24495fc35a1fbc40416a
-  tempPrefix 0c008559a7f5308a5d259cc16e58983f
-  tempSymbol b4c8572afb1b31fcc34ec3529b1475d0
-  tidySymbol b70497f43e52e4ceb47dfd12bfc678f1
-  tupConName f66fb15765dc599a241c368644fe2f5b
-  unLitSymbol 81afb8c736c7ae134a4127b3c32d4a46
-  unconsSym 25ffcff080e9bf7bcd926b625c0f7381
-  vv 4b45795aef057f81c9dd51fae36c4b72
-  vvCon a4b3f1f3ff639683c70d24afe93cd83a
-  vvName ccc19ee1d0e7075ff77f0067f757ed2d
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  DocTable 23959c774350b15e84347a7f8a8a1618
-  DocTable 1983262d60a6608966f615360ce51628
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  Full 231aceb4e5486ec1b12ae3e2917318e3
-  Lossy b9f583d2fcf0375665e7f3ed6bcfcd68
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  PTable f56e84dc8639a434ea5dee7210b75707
-  Tidy 6fdc633788cc0508dea7c363965cb87c
-  boxDoc 8d4d7741ce77338fbce0d5df13fb179b
-  boxHSep 8a92cb9508820b080061dc0c237e0c4f
-  docBox ff2593195f41a1cde2feeee3eac42483
-  notracepp 23093b339d9413532997992b94a8c483
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintKVs f926efd2d44310d1ff99c4868d82bc97
-  pprintPrec b46f43aa095baef96082356b594a98ad
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  ptable e5a0c2af407911261639841c294a3c86
-  showFix 096da0098f8a576a024913fb9c478e62
-  showTable d49681911c1e0ff007381860bbf21a4a
-  showpp 0da0198db560727e041326beddb9a8d5
-  simplify ecd951a78e9ace8e149af33611de07c1
-  toFix adc72af29f82382843f845a7caada087
-  traceFix ebd506346d0bbbd9a53ce9b07728df00
-  tracepp 7724a9ed27c3c4f8119ffb64ffeb17d8
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  &.& f31bc3e9270072a5054679edecd13ba8
-  Bop 7fb70fb47d0302cfb4b9c12c86306141
-  Brel bf7a9d682338d6f6168543d3110f6da6
-  Constant 4e3fb5c7982e36089ca1974dd9221f2e
-  Div c081e565493f3b4c4b21cbda7efd8210
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  EBot 1c465fa5309f4aa6428ce9121937fd05
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EDiv f73d515806d80c3adb2413088035a9ac
-  EEq 9242ee92a55fe451987339b69aae1cbb
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ERDiv 4b38c7d7ed8bb0f1389dc29ab60aeaa7
-  ERTimes 8d7a42a78155fb75e1f668db40619504
-  ESym b05e53b59eecfe2f6d7c4b864a39af90
-  ETAbs cf486f62ca1036d64dac0b7fc30b355d
-  ETApp 6f9fa64dc1ea94265346dee4dfbd1dd9
-  ETimes b2a9dc780e854b20949701b073b39051
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  Expression 107da2c362396043cbbbba9b8f36f5f5
-  Ge 090ffef01e6b7027605d9c5c3ba11e2b
-  Gt 46f38d575ced081820cbc83114259da1
-  I 2b5bcd0c22b34f3c17d4079b06873e92
-  KV 2bd79f32f511435671588cf9f790c91e
-  KVS dfa4952f3f3c0180400d8195e19d9ed9
-  KVSub c90a46333bc7a488713b09e58c2c7d81
-  KVar 9a92033bfe21324e80629facb0f6357f
-  L b2f69dae8b637676011e67a80cf25f48
-  Le a16796536258ef4a204b5f1c568ba802
-  Lt 2ffd2f88be907134b968502d3bceced3
-  Minus e5aa725375e9c124ec51c311dda6a736
-  Mod ba2fa943923b8dfa2f9877e04051a80c
-  Ne d9e179105ea1c2a757f64a892666f7a4
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  PTop 6af94fc8f67ec0bff5f0441bde4b7883
-  PTrue 5df77d7a117ac1937594998bc4175838
-  Plus bbd2e3bc0197bce5d377fe80a31b6af3
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  Predicate 1e627861cc24722f35a0a403a39c6903
-  R d3ae796e8a0662c198a87ccf6622d11a
-  RDiv f06ef9b8e9228c19688a27fe5f4263d6
-  RR 770fb6f952861174841244857625a4cc
-  RTimes 3faff980f0db7fa930b12f07b279007d
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  Reftable f1cc4ee61221b68049853c08a25a8bd1
-  SL 5b44fb7a00d7cbf38cc95b22098f192e
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subable 888f0a174e8b2968bd36b05b87cb7e9b
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  SymConst 2d8cc80e963ce7fc658d82e1df676d25
-  Times 91e0345547959925f74a1cb777a9b1dc
-  Ueq 6474df993ebe4d0afd93678b01fc0b4a
-  Une 06e922abb8f842f615f811f63750444d
-  bot d7c75c9eb747d44ae946ddfe7c42f734
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  debruijnIndex c082343b9fda769c30c50c8e40adc0f7
-  eAppC 33d5abbf492746e77869883082291883
-  eApps f11c2cb73fb3e2793415839dd912820d
-  eProp 6aa28463067ccad294ae63e36a173cbd
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  elit 60a6dbe54695b2ab1d3427ac964173d8
-  expr 5ff3bbe812cd6663cfdceeb02f8eb0e1
-  exprReft 153a02dc3b275639b8c6996b97850ed8
-  falseReft e1d18913543aec13ccfb54732c05fcf5
-  flattenRefas d95ecf2f3c639c542da387a8aa9ab869
-  intKvar ee4210692f028bad60eb687ec84ac5c0
-  isContraPred 471f605699b4faeb25af4529c6984906
-  isFalse a472d69a470b8b4c237f9a875adf7979
-  isFunctionSortedReft 44387488d4fedbcfe71a839dcc240880
-  isGradual 61d03e01bdbeb558212da90190293d97
-  isNonTrivial a313063d90be250b663445dbf48dd774
-  isSingletonReft 5a1a4530eb6eb3eca6f8dbda5c042bba
-  isTauto b3fdb4c9cc1321cb83515fc764be7e58
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-  ksuKVar 0cf6b38384715583b9cf045cff53cf0d
-  ksuSort 18995dc51533181db351deeda374fc32
-  ksuSubst 4abec11a7a7382dc84806b6b269f7991
-  ksuVV 795b37baa1089e454e2b9c0143ece29c
-  kv c1246352d333802f9d4763702c5c7185
-  mapPredReft 906a8669cdd15505b875d7a4ff7f7393
-  meet a2dd684ec29de3aa9e712445284d730e
-  mkEApp 4dd116593cb64a347e878f48b4428706
-  mkProp 337f5729f72c9eb9ee46928c84723eca
-  notExprReft f3621e1e5f0da822ae87b0c0c3ac76cb
-  ofReft 06033950fc3f0ab6ccb7f1c2ffbdb070
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  pExist cafb3e1e576330cfb5f3d2218f756c4a
-  pGAnd ec5f698c28de5cd841bc07051c5204e5
-  pGAnds db77a0a8995aacd32ac175ac6128e375
-  pIte 4d018ca77718e70365f90a2913fd322b
-  pOr cddd52acc94c0f05e5a37f140c8ad8c0
-  params 2247d0f4c000501ce3214e16ab55fbbb
-  ppTy d52912ebfbb4ad818c6b23ac9a38ad57
-  pprintReft 5f861df11709f284c74009634c85bb74
-  predReft 95b7e4f937d76664996df7b4426869ee
-  prop 4d01c0690d998b902f0b2dc95e571c2f
-  propReft 914f8ffb5067327db5ab53c6550192a6
-  reft 2afb4d4da668fea68fbdf76b6227a374
-  reftBind 60403d1dfa2da7fcf3439406c7cc5d90
-  reftConjuncts 9b4898b9eb0028ce5dcac03fa40c6500
-  reftPred 654b4f577b3cda7ef6c36c09495b0b64
-  splitEApp 39666fa8544dc0628cbd4555f7cf39f9
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  subst1 ff192c02dc885c0c57d77566090d0798
-  substa 50e50af1b4df2a3f3cc13eaac9a575ea
-  substf b2da8a5b5529532d5f1f59e58c725354
-  symbolReft 07fce8f266aaf7a8b183494b52ca8998
-  syms 337dea3d27d630b73de6b6c383ffc586
-  toReft 63b3fc3bd4520c4ac709faf83e069d7d
-  top 6360fddfbdf9fae4610e67bd3b0498c3
-  trueReft 97751329ee522413e77af4a7674ff14b
-  trueSortedReft 2cf3bb57353acef1f9392aa671b60b42
-  uexprReft 26a8a5d505f70fa458e2867cd5590e73
-  usymbolReft adda05aa8df9013d18ab8de401cf5b30
-  vv_ 855b810a8b12f46034e7ef3af685f166
-  |.| 58e0a3336cd9a935bc30250d1f3b44ee
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  exports: c2522a8cb8fa0e99702ea4cacf9bcf96
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFrac ecc8fb3da631f4b043ad3670e4fca393
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FInt 0b4cc36338ca92e72f33fb97dc6e5034
-  FNum c88d73ad9fe8566f5ec651da0f3eebd7
-  FObj 1861a52598ccbeb2eef48dfcc16b53b2
-  FReal d85e2ea54f1f84f03191ad6b76f1795a
-  FTC 1c0b8dae81080fb2a43e62cfa71d5192
-  FTycon 402c177fc699f05dd97dbf4130d9008b
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  Sub f63c56a4155130df9ea50c9e3e0675d8
-  Sub 402c177fc699f05dd97dbf4130d9008b
-  TCEmb 08f7885e1c7db5d1e9fd26f03b2c2c63
-  bitVecSort 9fc3e3b3261380d669b65cbdc171b88b
-  bkFFunc 3efbde406923e7d79b41a428eddeb56b
-  boolFTyCon 92013a835882e58fc8cef59c65c8ea2c
-  boolSort 22d923a69c59fbf1c3c3d3b80b0969e5
-  fApp 5c63b19014800e99d08dfb68a2254686
-  fApp' 398d659108ca4ff3190b6fab2ce4ab10
-  fAppTC 22827646c1f645ee866f65ee56f30fcc
-  fObj 5dd7a3d6c17c995e87cf1f88dde34207
-  fTyconSort 54e118334660a6b9b8ab68de35e9d722
-  fTyconSymbol 2743e949ae7708233d72b5c54ab28250
-  funcSort 3b405e725beb70a70012b60bc3c24849
-  functionSort 11d97370b121a8ef0a4def7d986212ac
-  intFTyCon d9966971dce7264f0aff1a7d0a9a289a
-  intSort ebe09619b507dbe92e5361e5c5dd5b3d
-  isFirstOrder 1384aa1f1f0be14cd0f1e2434c096cde
-  isListTC 50dc4149e3221ba9f64a6a1b3fc30d59
-  isNumeric 6546be8f39343882e55ad3e06f1fa162
-  isReal e79863c5bcfc82a63ce88790561955aa
-  isString 38c8c0ba321aaab302577dbd1742344c
-  listFTyCon bb6bdf8d1cf9f6c4480304436c015a14
-  mapSort a4e35a945d04168734676a5d44e30e3c
-  mappendFTC e262c0278a252326ad96c9bebda94b3b
-  mkFFunc 30116a200ae299e51d495025e136b48f
-  numFTyCon 1073a950279f070dd409d54acc46a6da
-  realFTyCon 1c1981a95bcafb42e8fdd18f4da80892
-  realSort bc948854af7ac157c8f16f9a7de09084
-  setFTyCon 8c73af5e478a3d6e1947b99ea5780c13
-  setSort bb3b735b09c5e2f516234bf59aa18caf
-  sortFTycon aa92ff049a7f8aec49425207579a69c0
-  sortSubst 43691848b1ac553a62bd349ff6195e42
-  strFTyCon 32e95024d73de5e6bbeff8517e4ecbb3
-  strSort c3f197f2dc52b2b1cf128955742223a1
-  symbolFTycon 2016d9cf7aad07819194e6b6c1769258
-  symbolNumInfoFTyCon 87604c8e050166877454c1e816548baf
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  exports: 7fe5850227a6e738b3508defc057da0b
-  Loc e32f649122fc8963b556302038c6ca92
-  Loc 5c898e316073c02ed4de00d3c857e47e
-  Located 3326b791adf9e0911edd64707c0fed2a
-  SS 0b969b36fbbffcb664c45ed3cb72e84a
-  SrcSpan 78175b19733acaa6a468bb3dc2117709
-  atLoc 1a8353ae38c3784917c1312ef9069e6e
-  dummyLoc 6a5341e3e7c769f139b8c25d5592734b
-  dummyPos e32aab89d7fc10cc795bd688f402a6ee
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-  loc c6f10c8419386acc7423cddd0148af63
-  locAt 6922a27f4af2481145388cc9f35b2ad5
-  locE 1bb6165f5c9ac9b994b30b60db58afcd
-  sourcePosElts 206f4217a89e76ad2874ab86ab0ff653
-  sp_start 66a78cde7fda67c47ad8854704384b7a
-  sp_stop 2a61f2810d77eadb616ccfe78300b944
-  srcSpan e14e72943b218bf137bbcd00f821afa2
-  val a3c4cf7922f79de46237eef8822a75ce
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  exports: a573d56a0ab0c7b358ce707e661d4756
-  filterSubst fe7db8b6c61c46b271d51e28e2300e29
-  isEmptySubst ba20c49ceb860f94495c9a12fcf719e2
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-  subst1Except a94df2c9f4df7f39cc946ebf63bd4011
-  substExcept 9e2f8e63412bc58752f11b98fe855696
-  substfExcept 819086f6db7b45efab1c0fbdccd4840d
-  targetSubstSyms 6ff234737c1669f4465693a192980e2c
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  exports: c7736da3935e25870190610c933aae55
-  LeftHandSide ad55413524681bdc90fb0affbee83695
-  NoTrigger f113c0f3c8118f36bc1d7662c5c6ef63
-  TR 45d4ab87811abab693d02e1f903b6833
-  Trigger 0ede6587ce135bd08622314fe97bbc85
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-  defaultTrigger 237a3da477605ef3c522535a5ce5c4f8
-  makeTriggers b108caff5f18ac240520ad38417b7df1
-  noTrigger 2a3844e2122655f969f8cc5c99ed8bb2
-import  -/  Language.Fixpoint.Types.Utils 2a6ace2b5f761ef0b8de35b42fc81edd
-  exports: 4280c2f28b8856531536351e033c46bc
-  kvarDomain 6fbc199f4dcafc17414225a6ff861f4a
-  reftFreeVars d0a11cb872a28228f0f250c57166ce63
-  sortedReftConcKVars cac548010e601c57894a79c824007fb5
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Pos 722d2dd11f7d41778d1cb0c7e9424b8c
-4e34c4491fbb1182c29f958e18195969
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.$trModule2
-                   Language.Fixpoint.Types.$trModule1) -}
-0a4cfaebeb939828ad2ac40ac11b8842
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types"#) -}
-8de05d728eef4dbd12f555f9d67be261
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Config.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Config.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Config.dump-hi
+++ /dev/null
@@ -1,10213 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:26.269187 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config [family instance module] 8002
-  interface hash: 9b20d8b7bef6645bd6c6d9e698bff185
-  ABI hash: 163393aa566fa4479116d419651371d6
-  export-list hash: 87e69df825248b6123b5720d7ef71a71
-  orphan hash: 05026ec7410ce74de3ac80551ef3cc39
-  flag hash: 426768fd97e7e7ebf0accb1ba703fd5c
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Config.defConfig
-  Language.Fixpoint.Types.Config.defaultMaxPartSize
-  Language.Fixpoint.Types.Config.defaultMinPartSize
-  Language.Fixpoint.Types.Config.getOpts
-  Language.Fixpoint.Types.Config.multicore
-  Language.Fixpoint.Types.Config.queryFile
-  Language.Fixpoint.Types.Config.useElim
-  Language.Fixpoint.Types.Config.withPragmas
-  Language.Fixpoint.Types.Config.Config{Language.Fixpoint.Types.Config.Config allowHO allowHOqs alphaEquivalence arithmeticAxioms autoKuts betaEquivalence cores defunction elimBound elimStats eliminate extensionality gradual linear maxPartSize metadata minPartSize minimalSol minimize minimizeKs minimizeQs nonLinCuts normalForm noslice parts rewriteAxioms save solver solverStats srcFile stats stringTheory}
-  Language.Fixpoint.Types.Config.Eliminate{Language.Fixpoint.Types.Config.All Language.Fixpoint.Types.Config.None Language.Fixpoint.Types.Config.Some}
-  Language.Fixpoint.Types.Config.SMTSolver{Language.Fixpoint.Types.Config.Cvc4 Language.Fixpoint.Types.Config.Mathsat Language.Fixpoint.Types.Config.Z3}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.Environment 08cb808e8e6a7821e6f8cfa76a977431
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e:Data.Serialize bfa0e727b662cbdba896c0b5c0142f5d
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs b8538e92b364d6a158477118fc57630c
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Default db3048799659f86c89d7022f4042930e
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit 3e21d6e6abe487e954058d85de5c8d83
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Type 71257f1378c9da3489feb3286843132c
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Implicit f1cdf6eb9ae22b9f15f4b2f546f66acb
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Implicit.Type 5416f3497e5ee27792dc655ee7fdf118
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Implicit.UI 84f7abc6a12daefb1e40006291cb96fa
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  Ext 07623a7462b8ee05bab2b75f947ad892
-  extFileName 06c632f2fccc040aa84e2dc062afc041
-b15b2ab6969238831f96a50e43cc9192
-  $c3lC86dZbk7tIOwFdzijc2a :: Data.Data.Constr
-8e29caba87819fcc2b02f6c49f99b4f9
-  $cAmYFp3Bi81lCpypGEcEIXK :: Data.Data.Constr
-cbb4c90fcbde0d7edf7f5f3c8933b723
-  $cBS7ZMqFs5rUKmv5ptptU13 :: Data.Data.Constr
-2b5f0b5727a0eba4080f8eff135df1e6
-  $cD769Spf6F0eGdYHaO4ZTZY :: Data.Data.Constr
-258e372b2019be379c155e7c1f981559
-  $cFDVosYuweAY4nonXYHSDfj :: Data.Data.Constr
-36d13fb678c060e1fafa1f9b61018594
-  $cKponaZJB7Jg27KP8SVuN47 :: Data.Data.Constr
-b45b9ffb7517afc454ec0c5c6b84b514
-  $cz80Zt4mShhHiqNS2CV0HR :: Data.Data.Constr
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig ::
-    Data.Data.Data Language.Fixpoint.Types.Config.Config
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Config
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cp1Data
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgfoldl
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgunfold
-                  Language.Fixpoint.Types.Config.$fDataConfig_$ctoConstr
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cdataTypeOf
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cdataCast1
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cdataCast2
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapT
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapQl
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapQr
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapQ
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapQi
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapM
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapMp
-                  Language.Fixpoint.Types.Config.$fDataConfig_$cgmapMo -}
-938f795a62844f9f231b091d6aff60c1
-  $fDataConfig1 :: g -> Data.Data.Qi u g
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ u @ g (ds :: g)[OneShot] ->
-                 Data.Data.Qi
-                   @ *
-                   @ u
-                   @ g
-                   Language.Fixpoint.Types.Config.$fDataConfig2
-                   (GHC.Base.Nothing @ u)) -}
-325425db86cd0e38341bf990d27cdd94
-  $fDataConfig10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Config"#) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig11 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Config.Config
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Config.Config) ->
-                 Language.Fixpoint.Types.Config.$fDataConfig12) -}
-b1c541d1b3f97f67a4fe687d6d325500
-  $fDataConfig12 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Config.$fDataConfig13
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Config.$tcConfig
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-fd4a5e8a685616330ccca93b9ca4933f
-  $fDataConfig13 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   191331723840851984##
-                   6717403587417481043##) -}
-96b1337b9e935918dd7b687c305f820a
-  $fDataConfig2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-af9eafd037b9f811e0f5fe1467704edb
-  $fDataConfig3 :: g -> [u] -> [u]
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ @ u @ g (ds :: g)[OneShot] (eta :: [u]) -> eta) -}
-0ed1f30c6a1106f787b4d80bae022639
-  $fDataConfig4 :: g -> r -> r
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ @ r @ g (ds :: g)[OneShot] (eta :: r) -> eta) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig5 ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.Config
-    -> Data.Data.CONST r Language.Fixpoint.Types.Config.Config
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,1*U><L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w3 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapQl
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig6 ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Config.Config
-    -> Data.Data.ID Language.Fixpoint.Types.Config.Config
-  {- Arity: 2,
-     Strictness: <L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w1 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapT
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-3f318f04408b85836067a9b0cdbd036d
-  $fDataConfig7 :: g -> g
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True) (\ @ g (tpl :: g) -> tpl) -}
-5c19fae3a2854fb396b9ce676d12c2b0
-  $fDataConfig8 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Config.$fDataConfig9) -}
-776c28bbc9174b638f87b0d966c57d0c
-  $fDataConfig9 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cKponaZJB7Jg27KP8SVuN47
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.Config)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.Config)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.Config)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.Config)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cdataTypeOf ::
-    Language.Fixpoint.Types.Config.Config -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 Language.Fixpoint.Types.Config.$tKponaZJB7Jg27KP8SVuN47) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Config.Config
-    -> c Language.Fixpoint.Types.Config.Config
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w2 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgfoldl
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Config
-    -> m Language.Fixpoint.Types.Config.Config
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w2 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapM
-                   @ m
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Config
-    -> m Language.Fixpoint.Types.Config.Config
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)> -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Config
-    -> m Language.Fixpoint.Types.Config.Config
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)> -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.Config -> [u]
-  {- Arity: 2,
-     Strictness: <L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (w1 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w1 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapQ
-                   @ u
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.Config
-    -> u
-  {- Arity: 3,
-     Strictness: <L,U(U)><L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w2 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapQi
-                   @ u
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.Config
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,1*U><L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fDataConfig5
-                  `cast`
-                (forall (r :: <*>_N) (r' :: <*>_N).
-                 <r -> r' -> r>_R
-                 ->_R <r>_R
-                 ->_R <forall d. Data.Data.Data d => d -> r'>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Data.Data.N:CONST[0]
-                          <*>_N <r>_R <Language.Fixpoint.Types.Config.Config>_P) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.Config
-    -> r
-  {- Arity: 4,
-     Strictness: <L,C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w3 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cgmapQr
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.Config
-  {- Arity: 2,
-     Strictness: <L,C(C1(U))><S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fDataConfig6
-                  `cast`
-                (<forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Data.Data.N:ID[0]
-                          <Language.Fixpoint.Types.Config.Config>_R) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Config.Config
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 Language.Fixpoint.Types.Config.$w$cgunfold @ c w w1) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fDataConfig11
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Config.Config>_N)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDataConfig_$ctoConstr ::
-    Language.Fixpoint.Types.Config.Config -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 Language.Fixpoint.Types.Config.$cKponaZJB7Jg27KP8SVuN47 }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate ::
-    Data.Data.Data Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cp1Data
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgfoldl
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgunfold
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$ctoConstr
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cdataTypeOf
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cdataCast1
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cdataCast2
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapT
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapQl
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapQr
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapQ
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapQi
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapM
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapMp
-                  Language.Fixpoint.Types.Config.$fDataEliminate_$cgmapMo -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate1 ::
-    (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.All,
-                  GHC.Types.False)) -}
-246ba54f459bb55b8fbfbfbb61e14fb5
-  $fDataEliminate10 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Config.$fDataEliminate11
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Config.$tcEliminate
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-90ddf1a2ddf87982d9ea2de65f8124f2
-  $fDataEliminate11 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   1797715512669850705##
-                   13724002805295546016##) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate2 ::
-    (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.Some,
-                  GHC.Types.False)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate3 ::
-    (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.None,
-                  GHC.Types.False)) -}
-36ad907f35bbe991ca4e7c16fa8b923b
-  $fDataEliminate4 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Config.$fDataEliminate5) -}
-5c10f0f23614373852bc4b9fd2208aaa
-  $fDataEliminate5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cFDVosYuweAY4nonXYHSDfj
-                   Language.Fixpoint.Types.Config.$fDataEliminate6) -}
-d0d42c4ee2cfa45b4dd2a73a65095a22
-  $fDataEliminate6 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cz80Zt4mShhHiqNS2CV0HR
-                   Language.Fixpoint.Types.Config.$fDataEliminate7) -}
-2ed5049b2e659e6875531069d90f9ab7
-  $fDataEliminate7 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$c3lC86dZbk7tIOwFdzijc2a
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-d9f35d65a8c52b348499c39e8fa3191b
-  $fDataEliminate8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Eliminate"#) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate9 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Config.Eliminate
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$fDataEliminate10) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.Eliminate)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.Eliminate)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.Eliminate)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.Eliminate)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cdataTypeOf ::
-    Language.Fixpoint.Types.Config.Eliminate -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$tBQDvW7dhSPK5WapXbpwcDf) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> c Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><C(S),1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> z @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.None
-                   Language.Fixpoint.Types.Config.Some
-                   -> z @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.Some
-                   Language.Fixpoint.Types.Config.All
-                   -> z @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.All }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,A><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapM1 @ m w w2) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapMo @ m w w2) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapMp @ m w w2) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.Eliminate -> [u]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case x0 of wild { DEFAULT -> GHC.Types.[] @ u }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> u
-  {- Arity: 3, Strictness: <B,A><B,A><B,1*U>x,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case x of wild { DEFAULT -> Data.Maybe.fromJust1 @ u }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case eta of wild { DEFAULT -> ds1 }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case x0 of wild { DEFAULT -> ds1 }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 x0) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3,
-     Strictness: <L,A><C(S),1*C1(U)><S(SLLLL),1*U(1*U,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 case w2 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Config.$w$cgunfold1 @ c w1 ww1 ww5 }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fDataEliminate9
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Config.Eliminate>_N)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDataEliminate_$ctoConstr ::
-    Language.Fixpoint.Types.Config.Eliminate -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> Language.Fixpoint.Types.Config.$cFDVosYuweAY4nonXYHSDfj
-                   Language.Fixpoint.Types.Config.Some
-                   -> Language.Fixpoint.Types.Config.$cz80Zt4mShhHiqNS2CV0HR
-                   Language.Fixpoint.Types.Config.All
-                   -> Language.Fixpoint.Types.Config.$c3lC86dZbk7tIOwFdzijc2a }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver ::
-    Data.Data.Data Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.SMTSolver
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cp1Data
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgfoldl
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgunfold
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$ctoConstr
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cdataTypeOf
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cdataCast1
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cdataCast2
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapT
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapQl
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapQr
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapQ
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapQi
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapM
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapMp
-                  Language.Fixpoint.Types.Config.$fDataSMTSolver_$cgmapMo -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver1 ::
-    (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.Mathsat,
-                  GHC.Types.False)) -}
-119b6e29333babde6b5eb142c619be73
-  $fDataSMTSolver10 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver11
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Config.$tcSMTSolver
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-09b7191f64fedc7efe1e541ba3b397b3
-  $fDataSMTSolver11 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   18304409559313529279##
-                   13895196118690608780##) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver2 ::
-    (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.Cvc4,
-                  GHC.Types.False)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver3 ::
-    (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Config.Z3,
-                  GHC.Types.False)) -}
-33dfc41610f8add4dbe380d1cb6109fc
-  $fDataSMTSolver4 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver5) -}
-44b6b1c2635291dd35eceeb85e0ce92f
-  $fDataSMTSolver5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cBS7ZMqFs5rUKmv5ptptU13
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver6) -}
-8efd948c68a7b563d66b68e9274acc14
-  $fDataSMTSolver6 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cAmYFp3Bi81lCpypGEcEIXK
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver7) -}
-0dfa57b2996188cf9a3cfe15185e0b29
-  $fDataSMTSolver7 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Config.$cD769Spf6F0eGdYHaO4ZTZY
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-c99c10387180363c872ac6a84f2eefaa
-  $fDataSMTSolver8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SMTSolver"#) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver9 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Config.SMTSolver
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Config.$fDataSMTSolver10) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.SMTSolver)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.SMTSolver)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Config.SMTSolver)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Config.SMTSolver)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cdataTypeOf ::
-    Language.Fixpoint.Types.Config.SMTSolver -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Config.$t6qrinUnBPzGFdsgxRuPp1a) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> c Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><C(S),1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> z @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Z3
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> z @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Cvc4
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> z @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Mathsat }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><L,A><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapM2 @ m w w2) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapMo1 @ m w w2) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,A><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Config.$w$cgmapMp1 @ m w w2) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.SMTSolver -> [u]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case x0 of wild { DEFAULT -> GHC.Types.[] @ u }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> u
-  {- Arity: 3, Strictness: <B,A><B,A><B,1*U>x,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case x of wild { DEFAULT -> Data.Maybe.fromJust1 @ u }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case eta of wild { DEFAULT -> ds1 }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> r
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,A><S,1*U><L,A><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case x0 of wild { DEFAULT -> ds1 }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 x0) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3,
-     Strictness: <L,A><C(S),1*C1(U)><S(SLLLL),1*U(1*U,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 case w2 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Config.$w$cgunfold2 @ c w1 ww1 ww5 }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fDataSMTSolver9
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Config.SMTSolver>_N)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDataSMTSolver_$ctoConstr ::
-    Language.Fixpoint.Types.Config.SMTSolver -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> Language.Fixpoint.Types.Config.$cBS7ZMqFs5rUKmv5ptptU13
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> Language.Fixpoint.Types.Config.$cAmYFp3Bi81lCpypGEcEIXK
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> Language.Fixpoint.Types.Config.$cD769Spf6F0eGdYHaO4ZTZY }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fDefaultConfig ::
-    System.Console.CmdArgs.Default.Default
-      Language.Fixpoint.Types.Config.Config
-  DFunId
-  {- Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Config.defConfig
-                  `cast`
-                (Sym (System.Console.CmdArgs.Default.N:Default[0]
-                          <Language.Fixpoint.Types.Config.Config>_N)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fDefaultEliminate ::
-    System.Console.CmdArgs.Default.Default
-      Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- HasNoCafRefs, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Config.None
-                  `cast`
-                (Sym (System.Console.CmdArgs.Default.N:Default[0]
-                          <Language.Fixpoint.Types.Config.Eliminate>_N)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fDefaultSMTSolver ::
-    System.Console.CmdArgs.Default.Default
-      Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- HasNoCafRefs, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Config.Z3
-                  `cast`
-                (Sym (System.Console.CmdArgs.Default.N:Default[0]
-                          <Language.Fixpoint.Types.Config.SMTSolver>_N)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fEqConfig :: GHC.Classes.Eq Language.Fixpoint.Types.Config.Config
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Config
-                  Language.Fixpoint.Types.Config.$fEqConfig_$c==
-                  Language.Fixpoint.Types.Config.$fEqConfig_$c/= -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fEqConfig_$c/= ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(1*U,1*U,1*U(U),1*U(U),1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U)><S(SLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(1*U,1*U,1*U(U),1*U(U),1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Config.Config)
-                   (b :: Language.Fixpoint.Types.Config.Config) ->
-                 case Language.Fixpoint.Types.Config.$fEqConfig_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fEqConfig_$c== ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(1*U,1*U,1*U(U),1*U(U),1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U)><S(SLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(1*U,1*U,1*U(U),1*U(U),1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 case w1 of ww33 { Language.Fixpoint.Types.Config.Config ww34 ww35 ww36 ww37 ww38 ww39 ww40 ww41 ww42 ww43 ww44 ww45 ww46 ww47 ww48 ww49 ww50 ww51 ww52 ww53 ww54 ww55 ww56 ww57 ww58 ww59 ww60 ww61 ww62 ww63 ww64 ww65 ->
-                 Language.Fixpoint.Types.Config.$w$c==
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32
-                   ww34
-                   ww35
-                   ww36
-                   ww37
-                   ww38
-                   ww39
-                   ww40
-                   ww41
-                   ww42
-                   ww43
-                   ww44
-                   ww45
-                   ww46
-                   ww47
-                   ww48
-                   ww49
-                   ww50
-                   ww51
-                   ww52
-                   ww53
-                   ww54
-                   ww55
-                   ww56
-                   ww57
-                   ww58
-                   ww59
-                   ww60
-                   ww61
-                   ww62
-                   ww63
-                   ww64
-                   ww65 } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fEqEliminate ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Config.$fEqEliminate_$c==
-                  Language.Fixpoint.Types.Config.$fEqEliminate_$c/= -}
-f93da53b7c1f267512bca3027d4e0285
-  $fEqEliminate_$c/= ::
-    Language.Fixpoint.Types.Config.Eliminate
-    -> Language.Fixpoint.Types.Config.Eliminate -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Config.Eliminate)
-                   (b :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.None -> GHC.Types.False }
-                   Language.Fixpoint.Types.Config.Some
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.Some -> GHC.Types.False }
-                   Language.Fixpoint.Types.Config.All
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.All -> GHC.Types.False } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fEqEliminate_$c== ::
-    Language.Fixpoint.Types.Config.Eliminate
-    -> Language.Fixpoint.Types.Config.Eliminate -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ds1 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.None -> GHC.Types.True }
-                   Language.Fixpoint.Types.Config.Some
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.Some -> GHC.Types.True }
-                   Language.Fixpoint.Types.Config.All
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.All -> GHC.Types.True } }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fEqSMTSolver ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.SMTSolver
-                  Language.Fixpoint.Types.Config.$fEqSMTSolver_$c==
-                  Language.Fixpoint.Types.Config.$fEqSMTSolver_$c/= -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fEqSMTSolver_$c/= ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> Language.Fixpoint.Types.Config.SMTSolver -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (b :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.Z3 -> GHC.Types.False }
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.Cvc4 -> GHC.Types.False }
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Config.Mathsat -> GHC.Types.False } }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fEqSMTSolver_$c== ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> Language.Fixpoint.Types.Config.SMTSolver -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ds1 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.Z3 -> GHC.Types.True }
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.Cvc4 -> GHC.Types.True }
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Config.Mathsat -> GHC.Types.True } }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fGenericConfig ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Config.Config
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Config
-                  Language.Fixpoint.Types.Config.$fGenericConfig_$cfrom
-                  Language.Fixpoint.Types.Config.$fGenericConfig_$cto -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fGenericConfig1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Config" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (((((GHC.Generics.M1
-                GHC.Generics.S
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "srcFile")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.NoSourceStrictness
-                   'GHC.Generics.DecidedLazy)
-                (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-              GHC.Generics.:*: GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "cores")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1 GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-             GHC.Generics.:*: (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "minPartSize")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "maxPartSize")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)))
-            GHC.Generics.:*: ((GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "solver")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Config.SMTSolver)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "linear")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "stringTheory")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "defunction")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      GHC.Types.Bool))))
-           GHC.Generics.:*: (((GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "allowHO")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "allowHOqs")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "eliminate")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Config.Eliminate)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "elimBound")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      (GHC.Base.Maybe
-                                                                         GHC.Types.Int))))
-                             GHC.Generics.:*: ((GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "elimStats")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "solverStats")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      GHC.Types.Bool))
-                                               GHC.Generics.:*: (GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "metadata")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Bool)
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "stats")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       GHC.Types.Bool)))))
-          GHC.Generics.:*: ((((GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "parts")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "save")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "minimize")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "minimizeQs")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      GHC.Types.Bool)))
-                             GHC.Generics.:*: ((GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "minimizeKs")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "minimalSol")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      GHC.Types.Bool))
-                                               GHC.Generics.:*: (GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "gradual")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Bool)
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "extensionality")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       GHC.Types.Bool))))
-                            GHC.Generics.:*: (((GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "alphaEquivalence")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just
-                                                                         "betaEquivalence")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      GHC.Types.Bool))
-                                               GHC.Generics.:*: (GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "normalForm")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Bool)
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "autoKuts")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       GHC.Types.Bool)))
-                                              GHC.Generics.:*: ((GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "nonLinCuts")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R GHC.Types.Bool)
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "noslice")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       GHC.Types.Bool))
-                                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "rewriteAxioms")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       GHC.Types.Bool)
-                                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                                     GHC.Generics.S
-                                                                                                     ('GHC.Generics.MetaSel
-                                                                                                        ('GHC.Base.Just
-                                                                                                           "arithmeticAxioms")
-                                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                                     (GHC.Generics.K1
-                                                                                                        GHC.Generics.R
-                                                                                                        GHC.Types.Bool))))))
-         x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (w :: Language.Fixpoint.Types.Config.Config) ->
-                 case w of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 (GHC.Generics.:*:
-                    @ ((((GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "srcFile")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "cores")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-                         GHC.Generics.:*: (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "minPartSize")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "maxPartSize")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Int)))
-                        GHC.Generics.:*: ((GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "solver")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Config.SMTSolver)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "linear")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool))
-                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "stringTheory")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "defunction")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool))))
-                       GHC.Generics.:*: (((GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "allowHO")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "allowHOqs")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool))
-                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "eliminate")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Config.Eliminate)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "elimBound")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  (GHC.Base.Maybe
-                                                                                     GHC.Types.Int))))
-                                         GHC.Generics.:*: ((GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "elimStats")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "solverStats")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool))
-                                                           GHC.Generics.:*: (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "metadata")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool)
-                                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "stats")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   GHC.Types.Bool)))))
-                    @ ((((GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "parts")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "save")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                         GHC.Generics.:*: (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "minimize")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "minimizeQs")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)))
-                        GHC.Generics.:*: ((GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "minimizeKs")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "minimalSol")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool))
-                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "gradual")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "extensionality")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool))))
-                       GHC.Generics.:*: (((GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "alphaEquivalence")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "betaEquivalence")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool))
-                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "normalForm")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "autoKuts")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool)))
-                                         GHC.Generics.:*: ((GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "nonLinCuts")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R GHC.Types.Bool)
-                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "noslice")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool))
-                                                           GHC.Generics.:*: (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "rewriteAxioms")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Types.Bool)
-                                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "arithmeticAxioms")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   GHC.Types.Bool)))))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (((GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "srcFile")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "cores")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-                           GHC.Generics.:*: (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minPartSize")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "maxPartSize")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Int)))
-                          GHC.Generics.:*: ((GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "solver")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Config.SMTSolver)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "linear")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool))
-                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "stringTheory")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                 GHC.Generics.S
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "defunction")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.K1
-                                                                                    GHC.Generics.R
-                                                                                    GHC.Types.Bool))))
-                       @ (((GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "allowHO")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "allowHOqs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                           GHC.Generics.:*: (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "eliminate")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Config.Eliminate)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "elimBound")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R
-                                                                   (GHC.Base.Maybe GHC.Types.Int))))
-                          GHC.Generics.:*: ((GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "elimStats")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "solverStats")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool))
-                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "metadata")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                 GHC.Generics.S
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "stats")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.K1
-                                                                                    GHC.Generics.R
-                                                                                    GHC.Types.Bool))))
-                       @ x
-                       (GHC.Generics.:*:
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "srcFile")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "cores")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "minPartSize")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "maxPartSize")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R GHC.Types.Int)))
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "solver")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Config.SMTSolver)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "linear")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "stringTheory")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "defunction")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ x
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "srcFile")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "cores")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      (GHC.Base.Maybe GHC.Types.Int)))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "minPartSize")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "maxPartSize")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "srcFile")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "cores")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1
-                                        GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-                                @ x
-                                ww1
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.IO.FilePath>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "srcFile")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.IO.FilePath>_R) <x>_N))
-                                ww2
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <GHC.Base.Maybe GHC.Types.Int>_R
-                                               <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "cores")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (GHC.Base.Maybe GHC.Types.Int)>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "minPartSize")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "maxPartSize")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                                @ x
-                                ww3
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minPartSize")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                                ww4
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "maxPartSize")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Int>_R) <x>_N))))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "solver")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R Language.Fixpoint.Types.Config.SMTSolver)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "linear")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "stringTheory")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "defunction")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "solver")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1
-                                        GHC.Generics.R Language.Fixpoint.Types.Config.SMTSolver))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "linear")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww5
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Config.SMTSolver>_R
-                                               <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "solver")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Config.SMTSolver>_R) <x>_N))
-                                ww6
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "linear")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "stringTheory")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "defunction")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww7
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "stringTheory")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww8
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "defunction")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))))
-                       (GHC.Generics.:*:
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "allowHO")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "allowHOqs")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "eliminate")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Config.Eliminate)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "elimBound")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     (GHC.Base.Maybe
-                                                                        GHC.Types.Int))))
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "elimStats")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "solverStats")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "metadata")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "stats")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ x
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "allowHO")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "allowHOqs")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "eliminate")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R Language.Fixpoint.Types.Config.Eliminate)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "elimBound")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      (GHC.Base.Maybe GHC.Types.Int)))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "allowHO")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "allowHOqs")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww9
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "allowHO")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww10
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "allowHOqs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "eliminate")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1
-                                        GHC.Generics.R Language.Fixpoint.Types.Config.Eliminate))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "elimBound")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1
-                                        GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)))
-                                @ x
-                                ww11
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Config.Eliminate>_R
-                                               <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "eliminate")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Config.Eliminate>_R) <x>_N))
-                                ww12
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <GHC.Base.Maybe GHC.Types.Int>_R
-                                               <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "elimBound")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (GHC.Base.Maybe GHC.Types.Int)>_R) <x>_N))))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "elimStats")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "solverStats")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "metadata")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "stats")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "elimStats")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "solverStats")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww13
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "elimStats")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww14
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "solverStats")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "metadata")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "stats")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww15
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "metadata")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww16
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "stats")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))))))
-                    (GHC.Generics.:*:
-                       @ (((GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "parts")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "save")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                           GHC.Generics.:*: (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimize")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "minimizeQs")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)))
-                          GHC.Generics.:*: ((GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimizeKs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "minimalSol")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool))
-                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "gradual")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                 GHC.Generics.S
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "extensionality")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.K1
-                                                                                    GHC.Generics.R
-                                                                                    GHC.Types.Bool))))
-                       @ (((GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "alphaEquivalence")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "betaEquivalence")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                           GHC.Generics.:*: (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "normalForm")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "autoKuts")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)))
-                          GHC.Generics.:*: ((GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "nonLinCuts")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "noslice")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool))
-                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "rewriteAxioms")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                 GHC.Generics.S
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "arithmeticAxioms")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.K1
-                                                                                    GHC.Generics.R
-                                                                                    GHC.Types.Bool))))
-                       @ x
-                       (GHC.Generics.:*:
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "parts")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "save")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "minimize")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "minimizeQs")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "minimizeKs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "minimalSol")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "gradual")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just
-                                                                        "extensionality")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ x
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "parts")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "save")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "minimize")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "minimizeQs")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "parts")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "save")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww17
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "parts")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww18
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "save")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "minimize")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "minimizeQs")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww19
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimize")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww20
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimizeQs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "minimizeKs")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "minimalSol")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "gradual")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "extensionality")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "minimizeKs")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "minimalSol")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww21
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimizeKs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww22
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "minimalSol")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "gradual")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "extensionality")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww23
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "gradual")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww24
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "extensionality")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))))
-                       (GHC.Generics.:*:
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "alphaEquivalence")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "betaEquivalence")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "normalForm")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "autoKuts")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ ((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "nonLinCuts")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "noslice")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "rewriteAxioms")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just
-                                                                        "arithmeticAxioms")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Bool)))
-                          @ x
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "alphaEquivalence")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "betaEquivalence")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "normalForm")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "autoKuts")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "alphaEquivalence")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "betaEquivalence")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww25
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "alphaEquivalence")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww26
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "betaEquivalence")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "normalForm")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "autoKuts")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww27
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "normalForm")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww28
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "autoKuts")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "nonLinCuts")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "noslice")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "rewriteAxioms")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "arithmeticAxioms")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                             @ x
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "nonLinCuts")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "noslice")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww29
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "nonLinCuts")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww30
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "noslice")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                             (GHC.Generics.:*:
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "rewriteAxioms")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "arithmeticAxioms")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                                @ x
-                                ww31
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "rewriteAxioms")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                                ww32
-                                  `cast`
-                                (Trans
-                                     (Sym (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "arithmeticAxioms")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Config" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <((((GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "srcFile")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                                GHC.Generics.:*: GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "cores")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      (GHC.Base.Maybe GHC.Types.Int)))
-                               GHC.Generics.:*: (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "minPartSize")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just
-                                                                          "maxPartSize")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Int)))
-                              GHC.Generics.:*: ((GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "solver")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Config.SMTSolver)
-                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "linear")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool))
-                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just
-                                                                          "stringTheory")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "defunction")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool))))
-                             GHC.Generics.:*: (((GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "allowHO")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "allowHOqs")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool))
-                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "eliminate")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Config.Eliminate)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "elimBound")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        (GHC.Base.Maybe
-                                                                                           GHC.Types.Int))))
-                                               GHC.Generics.:*: ((GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "elimStats")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "solverStats")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool))
-                                                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "metadata")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         ('GHC.Base.Just
-                                                                                                            "stats")
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         GHC.Types.Bool)))))
-                            GHC.Generics.:*: ((((GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "parts")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "save")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool))
-                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "minimize")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "minimizeQs")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool)))
-                                               GHC.Generics.:*: ((GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "minimizeKs")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "minimalSol")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool))
-                                                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "gradual")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         ('GHC.Base.Just
-                                                                                                            "extensionality")
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         GHC.Types.Bool))))
-                                              GHC.Generics.:*: (((GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just
-                                                                          "alphaEquivalence")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       GHC.Types.Bool)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "betaEquivalence")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool))
-                                                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "normalForm")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         ('GHC.Base.Just
-                                                                                                            "autoKuts")
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         GHC.Types.Bool)))
-                                                                GHC.Generics.:*: ((GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        ('GHC.Base.Just
-                                                                                           "nonLinCuts")
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        GHC.Types.Bool)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         ('GHC.Base.Just
-                                                                                                            "noslice")
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         GHC.Types.Bool))
-                                                                                  GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         ('GHC.Base.Just
-                                                                                                            "rewriteAxioms")
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         GHC.Types.Bool)
-                                                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                       GHC.Generics.S
-                                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                                          ('GHC.Base.Just
-                                                                                                                             "arithmeticAxioms")
-                                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                                          'GHC.Generics.NoSourceStrictness
-                                                                                                                          'GHC.Generics.DecidedLazy)
-                                                                                                                       (GHC.Generics.K1
-                                                                                                                          GHC.Generics.R
-                                                                                                                          GHC.Types.Bool)))))>_R) <x>_N) }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fGenericConfig_$cfrom ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Config.Config x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S,1*U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fGenericConfig1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Config"
-                                       "Language.Fixpoint.Types.Config"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Config" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (((((GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "srcFile")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy)
-                                              (GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath)
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "cores")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  (GHC.Base.Maybe GHC.Types.Int)))
-                                           GHC.Generics.:*: (GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "minPartSize")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R GHC.Types.Int)
-                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "maxPartSize")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Int)))
-                                          GHC.Generics.:*: ((GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "solver")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Config.SMTSolver)
-                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "linear")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool))
-                                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "stringTheory")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "defunction")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool))))
-                                         GHC.Generics.:*: (((GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "allowHO")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R GHC.Types.Bool)
-                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "allowHOqs")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool))
-                                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "eliminate")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Config.Eliminate)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "elimBound")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    (GHC.Base.Maybe
-                                                                                                       GHC.Types.Int))))
-                                                           GHC.Generics.:*: ((GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "elimStats")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "solverStats")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool))
-                                                                             GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "metadata")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool)
-                                                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "stats")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     GHC.Types.Bool)))))
-                                        GHC.Generics.:*: ((((GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "parts")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R GHC.Types.Bool)
-                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "save")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool))
-                                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "minimize")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "minimizeQs")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool)))
-                                                           GHC.Generics.:*: ((GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "minimizeKs")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "minimalSol")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool))
-                                                                             GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "gradual")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool)
-                                                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "extensionality")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     GHC.Types.Bool))))
-                                                          GHC.Generics.:*: (((GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "alphaEquivalence")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   GHC.Types.Bool)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "betaEquivalence")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool))
-                                                                             GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "normalForm")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool)
-                                                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "autoKuts")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     GHC.Types.Bool)))
-                                                                            GHC.Generics.:*: ((GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "nonLinCuts")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    GHC.Types.Bool)
-                                                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "noslice")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     GHC.Types.Bool))
-                                                                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                                  GHC.Generics.S
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "rewriteAxioms")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.K1
-                                                                                                                     GHC.Generics.R
-                                                                                                                     GHC.Types.Bool)
-                                                                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                                   GHC.Generics.S
-                                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                                      ('GHC.Base.Just
-                                                                                                                                         "arithmeticAxioms")
-                                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                                   (GHC.Generics.K1
-                                                                                                                                      GHC.Generics.R
-                                                                                                                                      GHC.Types.Bool))))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Config.Rep_Config[0]))) <x>_N) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fGenericConfig_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Config.Config x
-    -> Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(S(S(SS)S(SS))S(S(SS)S(SS)))S(S(S(SS)S(SS))S(S(SS)S(SS)))),1*U(1*U(1*U(1*U(1*U(U,U),1*U(U,U)),1*U(1*U(U,U),1*U(U,U))),1*U(1*U(1*U(U,U),1*U(U,U)),1*U(1*U(U,U),1*U(U,U)))),1*U(1*U(1*U(1*U(U,U),1*U(U,U)),1*U(1*U(U,U),1*U(U,U))),1*U(1*U(1*U(U,U),1*U(U,U)),1*U(1*U(U,U),1*U(U,U)))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (w :: GHC.Generics.Rep Language.Fixpoint.Types.Config.Config x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Config.Rep_Config[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Config"
-                                        "Language.Fixpoint.Types.Config"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "Config" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (((((GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "srcFile")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0 GHC.IO.FilePath)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "cores")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   (GHC.Base.Maybe GHC.Types.Int)))
-                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "minPartSize")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0 GHC.Types.Int)
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "maxPartSize")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Int)))
-                                           GHC.Generics.:*: ((GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "solver")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   Language.Fixpoint.Types.Config.SMTSolver)
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "linear")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool))
-                                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "stringTheory")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "defunction")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool))))
-                                          GHC.Generics.:*: (((GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "allowHO")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "allowHOqs")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool))
-                                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "eliminate")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    Language.Fixpoint.Types.Config.Eliminate)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "elimBound")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     (GHC.Base.Maybe
-                                                                                                        GHC.Types.Int))))
-                                                            GHC.Generics.:*: ((GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "elimStats")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "solverStats")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool))
-                                                                              GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "metadata")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool)
-                                                                                                GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                      ('GHC.Base.Just
-                                                                                                                         "stats")
-                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                   (GHC.Generics.Rec0
-                                                                                                                      GHC.Types.Bool)))))
-                                         GHC.Generics.:*: ((((GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "parts")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "save")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool))
-                                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "minimize")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "minimizeQs")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool)))
-                                                            GHC.Generics.:*: ((GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "minimizeKs")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "minimalSol")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool))
-                                                                              GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "gradual")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool)
-                                                                                                GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                      ('GHC.Base.Just
-                                                                                                                         "extensionality")
-                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                   (GHC.Generics.Rec0
-                                                                                                                      GHC.Types.Bool))))
-                                                           GHC.Generics.:*: (((GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "alphaEquivalence")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Types.Bool)
-                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "betaEquivalence")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool))
-                                                                              GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "normalForm")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool)
-                                                                                                GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                      ('GHC.Base.Just
-                                                                                                                         "autoKuts")
-                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                   (GHC.Generics.Rec0
-                                                                                                                      GHC.Types.Bool)))
-                                                                             GHC.Generics.:*: ((GHC.Generics.S1
-                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                     ('GHC.Base.Just
-                                                                                                        "nonLinCuts")
-                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                  (GHC.Generics.Rec0
-                                                                                                     GHC.Types.Bool)
-                                                                                                GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                      ('GHC.Base.Just
-                                                                                                                         "noslice")
-                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                   (GHC.Generics.Rec0
-                                                                                                                      GHC.Types.Bool))
-                                                                                               GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                                   ('GHC.Generics.MetaSel
-                                                                                                                      ('GHC.Base.Just
-                                                                                                                         "rewriteAxioms")
-                                                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                                                   (GHC.Generics.Rec0
-                                                                                                                      GHC.Types.Bool)
-                                                                                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                                    ('GHC.Generics.MetaSel
-                                                                                                                                       ('GHC.Base.Just
-                                                                                                                                          "arithmeticAxioms")
-                                                                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                                                                    (GHC.Generics.Rec0
-                                                                                                                                       GHC.Types.Bool))))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Config" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <((((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "srcFile")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.Rec0 GHC.IO.FilePath)
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "cores")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0
-                                                                (GHC.Base.Maybe GHC.Types.Int)))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "minPartSize")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0 GHC.Types.Int)
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "maxPartSize")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Int)))
-                                        GHC.Generics.:*: ((GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "solver")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0
-                                                                Language.Fixpoint.Types.Config.SMTSolver)
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "linear")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool))
-                                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "stringTheory")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "defunction")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool))))
-                                       GHC.Generics.:*: (((GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "allowHO")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "allowHOqs")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool))
-                                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "eliminate")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 Language.Fixpoint.Types.Config.Eliminate)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "elimBound")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  (GHC.Base.Maybe
-                                                                                                     GHC.Types.Int))))
-                                                         GHC.Generics.:*: ((GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "elimStats")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "solverStats")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool))
-                                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "metadata")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool)
-                                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                ('GHC.Generics.MetaSel
-                                                                                                                   ('GHC.Base.Just
-                                                                                                                      "stats")
-                                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                                (GHC.Generics.Rec0
-                                                                                                                   GHC.Types.Bool)))))
-                                      GHC.Generics.:*: ((((GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "parts")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "save")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool))
-                                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "minimize")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "minimizeQs")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool)))
-                                                         GHC.Generics.:*: ((GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "minimizeKs")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "minimalSol")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool))
-                                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "gradual")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool)
-                                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                ('GHC.Generics.MetaSel
-                                                                                                                   ('GHC.Base.Just
-                                                                                                                      "extensionality")
-                                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                                (GHC.Generics.Rec0
-                                                                                                                   GHC.Types.Bool))))
-                                                        GHC.Generics.:*: (((GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "alphaEquivalence")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool)
-                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "betaEquivalence")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool))
-                                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "normalForm")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool)
-                                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                ('GHC.Generics.MetaSel
-                                                                                                                   ('GHC.Base.Just
-                                                                                                                      "autoKuts")
-                                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                                (GHC.Generics.Rec0
-                                                                                                                   GHC.Types.Bool)))
-                                                                          GHC.Generics.:*: ((GHC.Generics.S1
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "nonLinCuts")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.Rec0
-                                                                                                  GHC.Types.Bool)
-                                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                ('GHC.Generics.MetaSel
-                                                                                                                   ('GHC.Base.Just
-                                                                                                                      "noslice")
-                                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                                (GHC.Generics.Rec0
-                                                                                                                   GHC.Types.Bool))
-                                                                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                                ('GHC.Generics.MetaSel
-                                                                                                                   ('GHC.Base.Just
-                                                                                                                      "rewriteAxioms")
-                                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                                (GHC.Generics.Rec0
-                                                                                                                   GHC.Types.Bool)
-                                                                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                                                    ('GHC.Base.Just
-                                                                                                                                       "arithmeticAxioms")
-                                                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                                                 (GHC.Generics.Rec0
-                                                                                                                                    GHC.Types.Bool)))))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww4 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww7 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww10 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 case ww11 of ww15 { GHC.Generics.:*: ww16 ww17 ->
-                 case ww8 of ww18 { GHC.Generics.:*: ww19 ww20 ->
-                 case ww19 of ww21 { GHC.Generics.:*: ww22 ww23 ->
-                 case ww20 of ww24 { GHC.Generics.:*: ww25 ww26 ->
-                 case ww5 of ww27 { GHC.Generics.:*: ww28 ww29 ->
-                 case ww28 of ww30 { GHC.Generics.:*: ww31 ww32 ->
-                 case ww31 of ww33 { GHC.Generics.:*: ww34 ww35 ->
-                 case ww32 of ww36 { GHC.Generics.:*: ww37 ww38 ->
-                 case ww29 of ww39 { GHC.Generics.:*: ww40 ww41 ->
-                 case ww40 of ww42 { GHC.Generics.:*: ww43 ww44 ->
-                 case ww41 of ww45 { GHC.Generics.:*: ww46 ww47 ->
-                 case ww2 of ww48 { GHC.Generics.:*: ww49 ww50 ->
-                 case ww49 of ww51 { GHC.Generics.:*: ww52 ww53 ->
-                 case ww52 of ww54 { GHC.Generics.:*: ww55 ww56 ->
-                 case ww55 of ww57 { GHC.Generics.:*: ww58 ww59 ->
-                 case ww56 of ww60 { GHC.Generics.:*: ww61 ww62 ->
-                 case ww53 of ww63 { GHC.Generics.:*: ww64 ww65 ->
-                 case ww64 of ww66 { GHC.Generics.:*: ww67 ww68 ->
-                 case ww65 of ww69 { GHC.Generics.:*: ww70 ww71 ->
-                 case ww50 of ww72 { GHC.Generics.:*: ww73 ww74 ->
-                 case ww73 of ww75 { GHC.Generics.:*: ww76 ww77 ->
-                 case ww76 of ww78 { GHC.Generics.:*: ww79 ww80 ->
-                 case ww77 of ww81 { GHC.Generics.:*: ww82 ww83 ->
-                 case ww74 of ww84 { GHC.Generics.:*: ww85 ww86 ->
-                 case ww85 of ww87 { GHC.Generics.:*: ww88 ww89 ->
-                 case ww86 of ww90 { GHC.Generics.:*: ww91 ww92 ->
-                 Language.Fixpoint.Types.Config.Config
-                   ww13
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "srcFile")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.IO.FilePath>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <GHC.IO.FilePath>_R <x>_P))
-                   ww14
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cores")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <GHC.Base.Maybe GHC.Types.Int>_R <x>_P))
-                   ww16
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "minPartSize")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                   ww17
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "maxPartSize")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                   ww22
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "solver")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Config.SMTSolver>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Config.SMTSolver>_R
-                             <x>_P))
-                   ww23
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "linear")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww25
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "stringTheory")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww26
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "defunction")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww34
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "allowHO")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww35
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "allowHOqs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww37
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eliminate")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Config.Eliminate>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Config.Eliminate>_R
-                             <x>_P))
-                   ww38
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "elimBound")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R (GHC.Base.Maybe GHC.Types.Int)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <GHC.Base.Maybe GHC.Types.Int>_R <x>_P))
-                   ww43
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "elimStats")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww44
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "solverStats")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww46
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "metadata")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww47
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "stats")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww58
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "parts")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww59
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "save")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww61
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "minimize")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww62
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "minimizeQs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww67
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "minimizeKs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww68
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "minimalSol")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww70
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "gradual")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww71
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "extensionality")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww79
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "alphaEquivalence")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww80
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "betaEquivalence")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww82
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "normalForm")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww83
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "autoKuts")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww88
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "nonLinCuts")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww89
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "noslice")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww91
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "rewriteAxioms")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ww92
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "arithmeticAxioms")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <GHC.Types.Bool>_R
-                             <x>_P)) } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fGenericEliminate ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Config.$fGenericEliminate_$cfrom
-                  Language.Fixpoint.Types.Config.$fGenericEliminate_$cto -}
-f93da53b7c1f267512bca3027d4e0285
-  $fGenericEliminate1 ::
-    Language.Fixpoint.Types.Config.Eliminate
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> Language.Fixpoint.Types.Config.$fGenericEliminate6 @ x
-                   Language.Fixpoint.Types.Config.Some
-                   -> Language.Fixpoint.Types.Config.$fGenericEliminate4 @ x
-                   Language.Fixpoint.Types.Config.All
-                   -> Language.Fixpoint.Types.Config.$fGenericEliminate2 @ x }) -}
-95992fe210008bdb9d9baff4e0cd92d8
-  $fGenericEliminate2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (Language.Fixpoint.Types.Config.$fGenericEliminate3 @ x)) -}
-ec58687adf850887efd4f9ed35bb3508
-  $fGenericEliminate3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "All" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-a1658d6fbb4405c060345dcb67be2a35
-  $fGenericEliminate4 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (Language.Fixpoint.Types.Config.$fGenericEliminate5 @ x)) -}
-12dc22a7ad3bfafea286812391970619
-  $fGenericEliminate5 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Some" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-5428a5ae9952cb3327ea59a76724d397
-  $fGenericEliminate6 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "None" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fGenericEliminate_$cfrom ::
-    Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Config.Eliminate x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fGenericEliminate1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Config.Eliminate>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Eliminate"
-                                       "Language.Fixpoint.Types.Config"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "Some"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         GHC.Generics.U1
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "All"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          GHC.Generics.U1)>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Config.Rep_Eliminate[0]))) <x>_N) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fGenericEliminate_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Config.Eliminate x
-    -> Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Config.Eliminate x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Config.Rep_Eliminate[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Eliminate"
-                                   "Language.Fixpoint.Types.Config"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "Some"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     GHC.Generics.U1
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "All"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      GHC.Generics.U1)>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Types.Config.None }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of tpl { DEFAULT ->
-                           Language.Fixpoint.Types.Config.Some }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of tpl { DEFAULT ->
-                           Language.Fixpoint.Types.Config.All } } }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fGenericSMTSolver ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.SMTSolver
-                  Language.Fixpoint.Types.Config.$fGenericSMTSolver_$cfrom
-                  Language.Fixpoint.Types.Config.$fGenericSMTSolver_$cto -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fGenericSMTSolver1 ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> Language.Fixpoint.Types.Config.$fGenericSMTSolver6 @ x
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> Language.Fixpoint.Types.Config.$fGenericSMTSolver4 @ x
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> Language.Fixpoint.Types.Config.$fGenericSMTSolver2 @ x }) -}
-23609d01f658f34fb25feff21e2340ba
-  $fGenericSMTSolver2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (Language.Fixpoint.Types.Config.$fGenericSMTSolver3 @ x)) -}
-17b5c87b6e64afc576b4a324cdd6dd45
-  $fGenericSMTSolver3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-5b72fd29f47f231686cd25b1ac3b179a
-  $fGenericSMTSolver4 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (Language.Fixpoint.Types.Config.$fGenericSMTSolver5 @ x)) -}
-d95987163d2d81c9ce85e04738e447c7
-  $fGenericSMTSolver5 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-5c352c01eaf8a0fa001a0cbf6cc6513e
-  $fGenericSMTSolver6 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fGenericSMTSolver_$cfrom ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Config.SMTSolver x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fGenericSMTSolver1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Config.SMTSolver>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SMTSolver"
-                                       "Language.Fixpoint.Types.Config"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "Cvc4"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         GHC.Generics.U1
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "Mathsat"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          GHC.Generics.U1)>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Config.Rep_SMTSolver[0]))) <x>_N) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fGenericSMTSolver_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Config.SMTSolver x
-    -> Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Config.SMTSolver x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Config.Rep_SMTSolver[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "SMTSolver"
-                                   "Language.Fixpoint.Types.Config"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "Cvc4"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     GHC.Generics.U1
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "Mathsat"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      GHC.Generics.U1)>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT -> Language.Fixpoint.Types.Config.Z3 }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of tpl { DEFAULT ->
-                           Language.Fixpoint.Types.Config.Cvc4 }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of tpl { DEFAULT ->
-                           Language.Fixpoint.Types.Config.Mathsat } } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fSerializeEliminate ::
-    Data.Serialize.Serialize Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Config.$fSerializeEliminate_$s$dmput
-                  Language.Fixpoint.Types.Config.$fSerializeEliminate_$cget -}
-f93da53b7c1f267512bca3027d4e0285
-  $fSerializeEliminate1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Config.Eliminate r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ r
-                   (w :: Data.Serialize.Get.Input)
-                   (w1 :: Data.Serialize.Get.Buffer)
-                   (w2 :: Data.Serialize.Get.More)
-                   (w3 :: Data.Serialize.Get.Failure r)
-                   (w4 :: Data.Serialize.Get.Success
-                            Language.Fixpoint.Types.Config.Eliminate r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Config.$w$cget
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1
-                   w2
-                   w3
-                   w4 }) -}
-78c8d5d6eba7b26c937ca1657f912972
-  $fSerializeEliminate2 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Eliminate"
-            "Language.Fixpoint.Types.Config"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fSerializeEliminate3
-                  `cast`
-                (Trans
-                     (forall (a1 :: <*>_N).
-                      Sym (GHC.Generics.N:M1[0]
-                               <GHC.Generics.D>_P
-                               <'GHC.Generics.MetaData
-                                  "Eliminate"
-                                  "Language.Fixpoint.Types.Config"
-                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                  'GHC.Types.False>_P
-                               <GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1
-                                GHC.Generics.:+: (GHC.Generics.C1
-                                                    ('GHC.Generics.MetaCons
-                                                       "Some"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    GHC.Generics.U1
-                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "All"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     GHC.Generics.U1)>_R) <a1>_N
-                      ->_R <Data.Serialize.Put.Put>_R)
-                     (Sym (Data.Serialize.N:GSerializePut[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "Eliminate"
-                                     "Language.Fixpoint.Types.Config"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.False)
-                                  (GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1
-                                   GHC.Generics.:+: (GHC.Generics.C1
-                                                       ('GHC.Generics.MetaCons
-                                                          "Some"
-                                                          'GHC.Generics.PrefixI
-                                                          'GHC.Types.False)
-                                                       GHC.Generics.U1
-                                                     GHC.Generics.:+: GHC.Generics.C1
-                                                                        ('GHC.Generics.MetaCons
-                                                                           "All"
-                                                                           'GHC.Generics.PrefixI
-                                                                           'GHC.Types.False)
-                                                                        GHC.Generics.U1))>_N))) -}
-2ebfab7c1fb2d94ae173e7177200adc1
-  $fSerializeEliminate3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: (GHC.Generics.:+:)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1)
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           a1) ->
-                 case w of wild2 {
-                   GHC.Generics.L1 x
-                   -> (Data.Serialize.Put.PairS
-                         @ ()
-                         GHC.Tuple.()
-                         Language.Fixpoint.Types.Config.$fSerializeEliminate6
-                           `cast`
-                         (Trans
-                              (forall (r :: <*>_N).
-                               <Data.ByteString.Builder.Internal.BuildStep r>_R
-                               ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                               ->_R Sym (GHC.Types.N:IO[0]
-                                             <Data.ByteString.Builder.Internal.BuildSignal r>_R))
-                              (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                        `cast`
-                      (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N)
-                   GHC.Generics.R1 x
-                   -> case x of wild {
-                        GHC.Generics.L1 x1
-                        -> (Data.Serialize.Put.PairS
-                              @ ()
-                              GHC.Tuple.()
-                              Language.Fixpoint.Types.Config.$fSerializeEliminate5
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                             `cast`
-                           (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N)
-                        GHC.Generics.R1 x1
-                        -> (Data.Serialize.Put.PairS
-                              @ ()
-                              GHC.Tuple.()
-                              Language.Fixpoint.Types.Config.$fSerializeEliminate4
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                             `cast`
-                           (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) } }) -}
-66c7a1bb4883f394ca04e79aeee1e724
-  $fSerializeEliminate4 ::
-    Data.ByteString.Builder.Internal.BuildStep r
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ r
-                   (eta :: Data.ByteString.Builder.Internal.BuildStep r)
-                   (eta1 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case eta1 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.writeWord8OffAddr#
-                             @ GHC.Prim.RealWorld
-                             dt
-                             0#
-                             2##
-                             eta2 of s2 { DEFAULT ->
-                      (eta
-                         (Data.ByteString.Builder.Internal.BufferRange
-                            (GHC.Prim.plusAddr# dt 1#)
-                            dt1))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                        s2 }
-                   GHC.Types.True
-                   -> (# eta2,
-                         Data.ByteString.Builder.Internal.BufferFull
-                           @ r
-                           1#
-                           dt
-                           (\ (ds :: Data.ByteString.Builder.Internal.BufferRange)
-                              (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                            case ds of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                            case GHC.Prim.writeWord8OffAddr#
-                                   @ GHC.Prim.RealWorld
-                                   dt3
-                                   0#
-                                   2##
-                                   eta3 of s2 { DEFAULT ->
-                            (eta
-                               (Data.ByteString.Builder.Internal.BufferRange
-                                  (GHC.Prim.plusAddr# dt3 1#)
-                                  dt4))
-                              `cast`
-                            (GHC.Types.N:IO[0]
-                                 <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                              s2 } })
-                             `cast`
-                           (<Data.ByteString.Builder.Internal.BufferRange>_R
-                            ->_R Sym (GHC.Types.N:IO[0]
-                                          <Data.ByteString.Builder.Internal.BuildSignal
-                                             r>_R)) #) } }) -}
-5ac3c8ab3e23772dfa039c4f348442cd
-  $fSerializeEliminate5 ::
-    Data.ByteString.Builder.Internal.BuildStep r
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ r
-                   (eta :: Data.ByteString.Builder.Internal.BuildStep r)
-                   (eta1 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case eta1 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.writeWord8OffAddr#
-                             @ GHC.Prim.RealWorld
-                             dt
-                             0#
-                             1##
-                             eta2 of s2 { DEFAULT ->
-                      (eta
-                         (Data.ByteString.Builder.Internal.BufferRange
-                            (GHC.Prim.plusAddr# dt 1#)
-                            dt1))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                        s2 }
-                   GHC.Types.True
-                   -> (# eta2,
-                         Data.ByteString.Builder.Internal.BufferFull
-                           @ r
-                           1#
-                           dt
-                           (\ (ds :: Data.ByteString.Builder.Internal.BufferRange)
-                              (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                            case ds of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                            case GHC.Prim.writeWord8OffAddr#
-                                   @ GHC.Prim.RealWorld
-                                   dt3
-                                   0#
-                                   1##
-                                   eta3 of s2 { DEFAULT ->
-                            (eta
-                               (Data.ByteString.Builder.Internal.BufferRange
-                                  (GHC.Prim.plusAddr# dt3 1#)
-                                  dt4))
-                              `cast`
-                            (GHC.Types.N:IO[0]
-                                 <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                              s2 } })
-                             `cast`
-                           (<Data.ByteString.Builder.Internal.BufferRange>_R
-                            ->_R Sym (GHC.Types.N:IO[0]
-                                          <Data.ByteString.Builder.Internal.BuildSignal
-                                             r>_R)) #) } }) -}
-72623053cd8fe54360374d303608eb7a
-  $fSerializeEliminate6 ::
-    Data.ByteString.Builder.Internal.BuildStep r
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ r
-                   (eta :: Data.ByteString.Builder.Internal.BuildStep r)
-                   (eta1 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case eta1 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.writeWord8OffAddr#
-                             @ GHC.Prim.RealWorld
-                             dt
-                             0#
-                             0##
-                             eta2 of s2 { DEFAULT ->
-                      (eta
-                         (Data.ByteString.Builder.Internal.BufferRange
-                            (GHC.Prim.plusAddr# dt 1#)
-                            dt1))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                        s2 }
-                   GHC.Types.True
-                   -> (# eta2,
-                         Data.ByteString.Builder.Internal.BufferFull
-                           @ r
-                           1#
-                           dt
-                           (\ (ds :: Data.ByteString.Builder.Internal.BufferRange)
-                              (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                            case ds of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                            case GHC.Prim.writeWord8OffAddr#
-                                   @ GHC.Prim.RealWorld
-                                   dt3
-                                   0#
-                                   0##
-                                   eta3 of s2 { DEFAULT ->
-                            (eta
-                               (Data.ByteString.Builder.Internal.BufferRange
-                                  (GHC.Prim.plusAddr# dt3 1#)
-                                  dt4))
-                              `cast`
-                            (GHC.Types.N:IO[0]
-                                 <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                              s2 } })
-                             `cast`
-                           (<Data.ByteString.Builder.Internal.BufferRange>_R
-                            ->_R Sym (GHC.Types.N:IO[0]
-                                          <Data.ByteString.Builder.Internal.BuildSignal
-                                             r>_R)) #) } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fSerializeEliminate_$cget ::
-    Data.Serialize.Get.Get Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.$fSerializeEliminate1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Language.Fixpoint.Types.Config.Eliminate>_R)) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fSerializeEliminate_$s$dmput ::
-    Data.Serialize.Put.Putter Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Config.$fSerializeEliminate2
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Language.Fixpoint.Types.Config.Rep_Eliminate[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Config.$fGenericEliminate_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fShowConfig :: GHC.Show.Show Language.Fixpoint.Types.Config.Config
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Config
-                  Language.Fixpoint.Types.Config.$fShowConfig_$cshowsPrec
-                  Language.Fixpoint.Types.Config.$fShowConfig_$cshow
-                  Language.Fixpoint.Types.Config.$fShowConfig_$cshowList -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fShowConfig1 ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Config.Config) ->
-                 case w of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 Language.Fixpoint.Types.Config.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fShowConfig_$cshow ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S,1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Config.Config) ->
-                 Language.Fixpoint.Types.Config.$fShowConfig_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fShowConfig_$cshowList ::
-    [Language.Fixpoint.Types.Config.Config] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Config.Config
-                   Language.Fixpoint.Types.Config.$fShowConfig1) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $fShowConfig_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.Config -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S,1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Config.Config) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Config.Config ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ww33 ww34 ->
-                 Language.Fixpoint.Types.Config.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32
-                   ww33
-                   ww34 } }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fShowEliminate ::
-    GHC.Show.Show Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Config.$fShowEliminate_$cshowsPrec
-                  Language.Fixpoint.Types.Config.$fShowEliminate_$cshow
-                  Language.Fixpoint.Types.Config.$fShowEliminate_$cshowList -}
-ce453431b5e39eb71916401abf2cffdd
-  $fShowEliminate1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "all"#) -}
-d57c9742063a3e15b8b604f8ae245d94
-  $fShowEliminate2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "some"#) -}
-c7c11c7f8f8bcc630fca7389c6dbca65
-  $fShowEliminate3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "none"#) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fShowEliminate_$cshow ::
-    Language.Fixpoint.Types.Config.Eliminate -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> Language.Fixpoint.Types.Config.$fShowEliminate3
-                   Language.Fixpoint.Types.Config.Some
-                   -> Language.Fixpoint.Types.Config.$fShowEliminate2
-                   Language.Fixpoint.Types.Config.All
-                   -> Language.Fixpoint.Types.Config.$fShowEliminate1 }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fShowEliminate_$cshowList ::
-    [Language.Fixpoint.Types.Config.Eliminate] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ls :: [Language.Fixpoint.Types.Config.Eliminate])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Config.Eliminate
-                   (Language.Fixpoint.Types.Config.$fShowEliminate_$cshowsPrec
-                      GHC.Show.shows22)
-                   ls
-                   s) -}
-f93da53b7c1f267512bca3027d4e0285
-  $fShowEliminate_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.Eliminate -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (w2 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Config.$w$cshowsPrec1 w1 w2) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fShowSMTSolver ::
-    GHC.Show.Show Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.SMTSolver
-                  Language.Fixpoint.Types.Config.$fShowSMTSolver_$cshowsPrec
-                  Language.Fixpoint.Types.Config.$fShowSMTSolver_$cshow
-                  Language.Fixpoint.Types.Config.$fShowSMTSolver_$cshowList -}
-3389cf363d57d5f83dd2c149c06ba1a6
-  $fShowSMTSolver1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mathsat"#) -}
-aae42d4d9d535c2945e9330ccaaf1d3b
-  $fShowSMTSolver2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "cvc4"#) -}
-0d4ff9c40d190bb95ef4ef684e8e5cba
-  $fShowSMTSolver3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "z3"#) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fShowSMTSolver_$cshow ::
-    Language.Fixpoint.Types.Config.SMTSolver -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> Language.Fixpoint.Types.Config.$fShowSMTSolver3
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> Language.Fixpoint.Types.Config.$fShowSMTSolver2
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> Language.Fixpoint.Types.Config.$fShowSMTSolver1 }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fShowSMTSolver_$cshowList ::
-    [Language.Fixpoint.Types.Config.SMTSolver] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ls :: [Language.Fixpoint.Types.Config.SMTSolver])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Config.SMTSolver
-                   (Language.Fixpoint.Types.Config.$fShowSMTSolver_$cshowsPrec
-                      GHC.Show.shows22)
-                   ls
-                   s) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $fShowSMTSolver_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (w2 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Config.$w$cshowsPrec2 w1 w2) -}
-20040922c7138347beefe05d5c3392dd
-  $t6qrinUnBPzGFdsgxRuPp1a :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver8
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver4) -}
-5a74b9c3bd091e8f3a6a2bb12631ba40
-  $tBQDvW7dhSPK5WapXbpwcDf :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Config.$fDataEliminate8
-                   Language.Fixpoint.Types.Config.$fDataEliminate4) -}
-a1bed089ecf93e866df59c66f4323ff6
-  $tKponaZJB7Jg27KP8SVuN47 :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Config.$fDataConfig10
-                   Language.Fixpoint.Types.Config.$fDataConfig8) -}
-de3ea43bc69fbf9b9a310585be6ac1ab
-  $tc'All :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6446196131055093990##
-                   5065755336946941906##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'All1) -}
-f0213dde58a822d00be24a0a335b8560
-  $tc'All1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'All"#) -}
-6c94064d153dd4bfc2034030d7f8428e
-  $tc'Config :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15350723581606416613##
-                   2346424545778246813##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'Config1) -}
-4823485219f5f2609c548a1e5b46052c
-  $tc'Config1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Config"#) -}
-265242f1319f7d03bf7d61ee7155af57
-  $tc'Cvc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cvc4"#) -}
-ea94a8e5baaf73bf90abfa4db98b6621
-  $tc'Cvc4 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7300935840653183966##
-                   8727875883004983483##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'Cvc1) -}
-74aa39690b3b7393ca0a78e347698090
-  $tc'Mathsat :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8862108469839806778##
-                   5951401016721517431##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'Mathsat1) -}
-e5587c69cd0deb8b66db56451a36b1e9
-  $tc'Mathsat1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Mathsat"#) -}
-94fe2157ef9b3a3ba213aa2049a25822
-  $tc'None :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11672807066056184929##
-                   57908206892971253##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'None1) -}
-98bbb040166fcce7ade44566a7668b99
-  $tc'None1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'None"#) -}
-8173fa2b33ba99a5a0e03b5718291481
-  $tc'Some :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15585150385521164450##
-                   3986686901426651638##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'Some1) -}
-7c842801c7919f4e8ed0fbb09a1d60ae
-  $tc'Some1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Some"#) -}
-88abb9c1608011710c050fd7bdef570c
-  $tc'Z1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Z3"#) -}
-99f72fd3051291fa96c3037045b8d669
-  $tc'Z3 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10570650382979111863##
-                   8985027996434867638##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tc'Z1) -}
-5bed92521dcbd985f03d2bb54e0a5f9a
-  $tcConfig :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   191331723840851984##
-                   6717403587417481043##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tcConfig1) -}
-304b2b622b55411ac80d2e6be8668d1c
-  $tcConfig1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Config"#) -}
-c596087bac06baeaffe570b1fd7e0957
-  $tcEliminate :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1797715512669850705##
-                   13724002805295546016##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tcEliminate1) -}
-98bc5b35231c8cea698ef5ad0ae2765a
-  $tcEliminate1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Eliminate"#) -}
-0f35aad8d12bd2c8183dc99e1659d30a
-  $tcSMTSolver :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18304409559313529279##
-                   13895196118690608780##
-                   Language.Fixpoint.Types.Config.$trModule
-                   Language.Fixpoint.Types.Config.$tcSMTSolver1) -}
-e1d410cdfe32f01ad743996cf06da8ee
-  $tcSMTSolver1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SMTSolver"#) -}
-d9039e10902883fc56ba917d5332a5e6
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Config.$trModule2
-                   Language.Fixpoint.Types.Config.$trModule1) -}
-64b8c1606b65055186cd8b6afed521fb
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Config"#) -}
-02c1cf016ff18d38eeba62de9ef0be4e
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-2826c5bfe2c4faf33cf6596eb19c7a36
-  $w$c== ::
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 64, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U(U)><L,1*U(U)><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U(U)><L,1*U(U)><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U><L,1*U>,
-     Inline: [0] -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Config.Eliminate r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0] -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> c Language.Fixpoint.Types.Config.Config
-  {- Arity: 34,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> m Language.Fixpoint.Types.Config.Config
-  {- Arity: 34,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 Language.Fixpoint.Types.Config.$w$cgfoldl
-                   @ m
-                   (\ @ d
-                      @ b
-                      ($dData1 :: Data.Data.Data d)
-                      (c :: m (d -> b))[OneShot]
-                      (x :: d)[OneShot] ->
-                    let {
-                      lvl118 :: m d = w1 @ d $dData1 x
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      w
-                      @ (d -> b)
-                      @ b
-                      c
-                      (\ (c' :: d -> b) ->
-                       GHC.Base.>>=
-                         @ m
-                         w
-                         @ d
-                         @ b
-                         lvl118
-                         (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x'))))
-                   (\ @ g -> GHC.Base.return @ m w @ g)
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31) -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cgmapM1 ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><S,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 case w1 of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.None
-                   Language.Fixpoint.Types.Config.Some
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.Some
-                   Language.Fixpoint.Types.Config.All
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.Eliminate
-                        Language.Fixpoint.Types.Config.All }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $w$cgmapM2 ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLLC(S)L),1*U(A,A,A,1*C1(U),A)><S,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 case w1 of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Z3
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Cvc4
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> GHC.Base.return
-                        @ m
-                        w
-                        @ Language.Fixpoint.Types.Config.SMTSolver
-                        Language.Fixpoint.Types.Config.Mathsat }) -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl118 :: m Language.Fixpoint.Types.Config.Eliminate
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Types.Config.Eliminate
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Config.Eliminate
-                   (case w1 of wild {
-                      Language.Fixpoint.Types.Config.None
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate3
-                      Language.Fixpoint.Types.Config.Some
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate2
-                      Language.Fixpoint.Types.Config.All
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate1 })
-                   (\ (ds :: (Language.Fixpoint.Types.Config.Eliminate,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl118
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Config.Eliminate
-                           x' } })) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $w$cgmapMo1 ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl118 :: m Language.Fixpoint.Types.Config.SMTSolver
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Types.Config.SMTSolver
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Config.SMTSolver
-                   (case w1 of wild {
-                      Language.Fixpoint.Types.Config.Z3
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver3
-                      Language.Fixpoint.Types.Config.Cvc4
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver2
-                      Language.Fixpoint.Types.Config.Mathsat
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver1 })
-                   (\ (ds :: (Language.Fixpoint.Types.Config.SMTSolver,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl118
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Config.SMTSolver
-                           x' } })) -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Types.Config.Eliminate
-    -> m Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl118 :: m Language.Fixpoint.Types.Config.Eliminate
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Types.Config.Eliminate
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Config.Eliminate
-                   (case w1 of wild {
-                      Language.Fixpoint.Types.Config.None
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate3
-                      Language.Fixpoint.Types.Config.Some
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate2
-                      Language.Fixpoint.Types.Config.All
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.Eliminate, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataEliminate1 })
-                   (\ (ds :: (Language.Fixpoint.Types.Config.Eliminate,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl118
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Config.Eliminate
-                           x' } })) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $w$cgmapMp1 ::
-    GHC.Base.MonadPlus m =>
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> m Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLL),U(A,1*U,U,A)><L,1*U>, Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.MonadPlus m)
-                   (w1 :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m w
-                 } in
-                 let {
-                   lvl118 :: m Language.Fixpoint.Types.Config.SMTSolver
-                   = GHC.Base.mzero @ m w @ Language.Fixpoint.Types.Config.SMTSolver
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Config.SMTSolver
-                   (case w1 of wild {
-                      Language.Fixpoint.Types.Config.Z3
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver3
-                      Language.Fixpoint.Types.Config.Cvc4
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver2
-                      Language.Fixpoint.Types.Config.Mathsat
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Config.SMTSolver, GHC.Types.Bool)
-                           Language.Fixpoint.Types.Config.$fDataSMTSolver1 })
-                   (\ (ds :: (Language.Fixpoint.Types.Config.SMTSolver,
-                              GHC.Types.Bool)) ->
-                    case ds of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl118
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Config.SMTSolver
-                           x' } })) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [u]
-  {- Arity: 33,
-     Strictness: <L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 (Language.Fixpoint.Types.Config.$w$cgfoldl
-                    @ (Data.Data.Qr [u])
-                    (\ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (ds :: Data.Data.Qr [u] (d -> b))[OneShot]
-                       (x :: d)[OneShot]
-                       (r1 :: [u]) ->
-                     ds `cast` (Data.Data.N:Qr[0] <*>_N <[u]>_R <d -> b>_P)
-                       (GHC.Types.: @ u (w @ d $dData1 x) r1))
-                      `cast`
-                    (forall (d :: <*>_N) (b :: <*>_N).
-                     <Data.Data.Data d>_R
-                     ->_R <Data.Data.Qr [u] (d -> b)>_R
-                     ->_R <d>_R
-                     ->_R Sym (Data.Data.N:Qr[0] <*>_N <[u]>_R <b>_P))
-                    (Language.Fixpoint.Types.Config.$fDataConfig3 @ u)
-                      `cast`
-                    (forall (g :: <*>_N).
-                     <g>_R ->_R Sym (Data.Data.N:Qr[0] <*>_N <[u]>_R <g>_P))
-                    ww
-                    ww1
-                    ww2
-                    ww3
-                    ww4
-                    ww5
-                    ww6
-                    ww7
-                    ww8
-                    ww9
-                    ww10
-                    ww11
-                    ww12
-                    ww13
-                    ww14
-                    ww15
-                    ww16
-                    ww17
-                    ww18
-                    ww19
-                    ww20
-                    ww21
-                    ww22
-                    ww23
-                    ww24
-                    ww25
-                    ww26
-                    ww27
-                    ww28
-                    ww29
-                    ww30
-                    ww31)
-                   `cast`
-                 (Data.Data.N:Qr[0]
-                      <*>_N <[u]>_R <Language.Fixpoint.Types.Config.Config>_P)
-                   (GHC.Types.[] @ u)) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> u
-  {- Arity: 34,
-     Strictness: <L,U(U)><L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 case Language.Fixpoint.Types.Config.$w$cgfoldl
-                        @ (Data.Data.Qi u)
-                        (\ @ d
-                           @ b
-                           ($dData1 :: Data.Data.Data d)
-                           (ds :: Data.Data.Qi u (d -> b))[OneShot]
-                           (a1 :: d)[OneShot] ->
-                         case ds of wild { Data.Data.Qi i' q ->
-                         Data.Data.Qi
-                           @ *
-                           @ u
-                           @ b
-                           (case i' of wild1 { GHC.Types.I# x ->
-                            GHC.Types.I# (GHC.Prim.+# x 1#) })
-                           (case w of wild1 { GHC.Types.I# x ->
-                            case i' of wild2 { GHC.Types.I# y ->
-                            case GHC.Prim.tagToEnum#
-                                   @ GHC.Types.Bool
-                                   (GHC.Prim.==# x y) of wild3 {
-                              GHC.Types.False -> q
-                              GHC.Types.True -> GHC.Base.Just @ u (w1 @ d $dData1 a1) } } }) })
-                        (Language.Fixpoint.Types.Config.$fDataConfig1 @ u)
-                        ww
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5
-                        ww6
-                        ww7
-                        ww8
-                        ww9
-                        ww10
-                        ww11
-                        ww12
-                        ww13
-                        ww14
-                        ww15
-                        ww16
-                        ww17
-                        ww18
-                        ww19
-                        ww20
-                        ww21
-                        ww22
-                        ww23
-                        ww24
-                        ww25
-                        ww26
-                        ww27
-                        ww28
-                        ww29
-                        ww30
-                        ww31 of wild { Data.Data.Qi ds q ->
-                 Data.Maybe.fromJust @ u q }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.Data.CONST r Language.Fixpoint.Types.Config.Config
-  {- Arity: 35,
-     Strictness: <C(C(S)),C(C1(U))><L,1*U><L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 Language.Fixpoint.Types.Config.$w$cgfoldl
-                   @ (Data.Data.CONST r)
-                   (\ @ d
-                      @ b
-                      ($dData1 :: Data.Data.Data d)
-                      (c :: Data.Data.CONST r (d -> b))[OneShot]
-                      (x :: d)[OneShot] ->
-                    w c `cast` (Data.Data.N:CONST[0] <*>_N <r>_R <d -> b>_P)
-                      (w2 @ d $dData1 x))
-                     `cast`
-                   (forall (d :: <*>_N) (b :: <*>_N).
-                    <Data.Data.Data d>_R
-                    ->_R <Data.Data.CONST r (d -> b)>_R
-                    ->_R <d>_R
-                    ->_R Sym (Data.Data.N:CONST[0] <*>_N <r>_R <b>_P))
-                   (\ @ g1 (ds :: g1)[OneShot] -> w1)
-                     `cast`
-                   (forall (g1 :: <*>_N).
-                    <g1>_R ->_R Sym (Data.Data.N:CONST[0] <*>_N <r>_R <g1>_P))
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> r
-  {- Arity: 35,
-     Strictness: <L,C(C1(U))><L,U><L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 (Language.Fixpoint.Types.Config.$w$cgfoldl
-                    @ (Data.Data.Qr r)
-                    (\ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (ds :: Data.Data.Qr r (d -> b))[OneShot]
-                       (x :: d)[OneShot]
-                       (r1 :: r) ->
-                     ds `cast` (Data.Data.N:Qr[0] <*>_N <r>_R <d -> b>_P)
-                       (w (w2 @ d $dData1 x) r1))
-                      `cast`
-                    (forall (d :: <*>_N) (b :: <*>_N).
-                     <Data.Data.Data d>_R
-                     ->_R <Data.Data.Qr r (d -> b)>_R
-                     ->_R <d>_R
-                     ->_R Sym (Data.Data.N:Qr[0] <*>_N <r>_R <b>_P))
-                    (Language.Fixpoint.Types.Config.$fDataConfig4 @ r)
-                      `cast`
-                    (forall (g :: <*>_N).
-                     <g>_R ->_R Sym (Data.Data.N:Qr[0] <*>_N <r>_R <g>_P))
-                    ww
-                    ww1
-                    ww2
-                    ww3
-                    ww4
-                    ww5
-                    ww6
-                    ww7
-                    ww8
-                    ww9
-                    ww10
-                    ww11
-                    ww12
-                    ww13
-                    ww14
-                    ww15
-                    ww16
-                    ww17
-                    ww18
-                    ww19
-                    ww20
-                    ww21
-                    ww22
-                    ww23
-                    ww24
-                    ww25
-                    ww26
-                    ww27
-                    ww28
-                    ww29
-                    ww30
-                    ww31)
-                   `cast`
-                 (Data.Data.N:Qr[0]
-                      <*>_N <r>_R <Language.Fixpoint.Types.Config.Config>_P)
-                   w1) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.Data.ID Language.Fixpoint.Types.Config.Config
-  {- Arity: 33,
-     Strictness: <L,C(C1(U))><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (ww :: GHC.IO.FilePath)
-                   (ww1 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww2 :: GHC.Types.Int)
-                   (ww3 :: GHC.Types.Int)
-                   (ww4 :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (ww5 :: GHC.Types.Bool)
-                   (ww6 :: GHC.Types.Bool)
-                   (ww7 :: GHC.Types.Bool)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: Language.Fixpoint.Types.Config.Eliminate)
-                   (ww11 :: GHC.Base.Maybe GHC.Types.Int)
-                   (ww12 :: GHC.Types.Bool)
-                   (ww13 :: GHC.Types.Bool)
-                   (ww14 :: GHC.Types.Bool)
-                   (ww15 :: GHC.Types.Bool)
-                   (ww16 :: GHC.Types.Bool)
-                   (ww17 :: GHC.Types.Bool)
-                   (ww18 :: GHC.Types.Bool)
-                   (ww19 :: GHC.Types.Bool)
-                   (ww20 :: GHC.Types.Bool)
-                   (ww21 :: GHC.Types.Bool)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: GHC.Types.Bool)
-                   (ww25 :: GHC.Types.Bool)
-                   (ww26 :: GHC.Types.Bool)
-                   (ww27 :: GHC.Types.Bool)
-                   (ww28 :: GHC.Types.Bool)
-                   (ww29 :: GHC.Types.Bool)
-                   (ww30 :: GHC.Types.Bool)
-                   (ww31 :: GHC.Types.Bool) ->
-                 Language.Fixpoint.Types.Config.$w$cgfoldl
-                   @ Data.Data.ID
-                   (\ @ d
-                      @ b
-                      ($dData1 :: Data.Data.Data d)
-                      (ds :: Data.Data.ID (d -> b))[OneShot]
-                      (x :: d)[OneShot] ->
-                    ds `cast` (Data.Data.N:ID[0] <d -> b>_R) (w @ d $dData1 x))
-                     `cast`
-                   (forall (d :: <*>_N) (b :: <*>_N).
-                    <Data.Data.Data d>_R
-                    ->_R <Data.Data.ID (d -> b)>_R
-                    ->_R <d>_R
-                    ->_R Sym (Data.Data.N:ID[0] <b>_R))
-                   Language.Fixpoint.Types.Config.$fDataConfig7
-                     `cast`
-                   (forall (g :: <*>_N). <g>_R ->_R Sym (Data.Data.N:ID[0] <g>_R))
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  $w$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r) -> c Language.Fixpoint.Types.Config.Config
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)>,
-     Inline: [0] -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cgunfold1 ::
-    (forall r. r -> c r)
-    -> Data.Data.ConstrRep
-    -> Data.Data.DataType
-    -> c Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 3, Strictness: <C(S),1*C1(U)><S,1*U><L,U>, Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall r. r -> c r)
-                   (ww :: Data.Data.ConstrRep)
-                   (ww1 :: Data.Data.DataType) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case Data.Data.constrIndex1 ww1
-                      ret_ty (c Language.Fixpoint.Types.Config.Eliminate)
-                      of {}
-                   Data.Data.AlgConstr idx
-                   -> case idx of wild1 { GHC.Types.I# ds ->
-                      case ds of ds1 {
-                        DEFAULT
-                        -> w @ Language.Fixpoint.Types.Config.Eliminate
-                             Language.Fixpoint.Types.Config.All
-                        1#
-                        -> w @ Language.Fixpoint.Types.Config.Eliminate
-                             Language.Fixpoint.Types.Config.None
-                        2#
-                        -> w @ Language.Fixpoint.Types.Config.Eliminate
-                             Language.Fixpoint.Types.Config.Some } } }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $w$cgunfold2 ::
-    (forall r. r -> c r)
-    -> Data.Data.ConstrRep
-    -> Data.Data.DataType
-    -> c Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 3, Strictness: <C(S),1*C1(U)><S,1*U><L,U>, Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall r. r -> c r)
-                   (ww :: Data.Data.ConstrRep)
-                   (ww1 :: Data.Data.DataType) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case Data.Data.constrIndex1 ww1
-                      ret_ty (c Language.Fixpoint.Types.Config.SMTSolver)
-                      of {}
-                   Data.Data.AlgConstr idx
-                   -> case idx of wild1 { GHC.Types.I# ds ->
-                      case ds of ds1 {
-                        DEFAULT
-                        -> w @ Language.Fixpoint.Types.Config.SMTSolver
-                             Language.Fixpoint.Types.Config.Mathsat
-                        1#
-                        -> w @ Language.Fixpoint.Types.Config.SMTSolver
-                             Language.Fixpoint.Types.Config.Z3
-                        2#
-                        -> w @ Language.Fixpoint.Types.Config.SMTSolver
-                             Language.Fixpoint.Types.Config.Cvc4 } } }) -}
-079b6fc7d70e9e8b724e8aee9d1844cb
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Show.ShowS
-  {- Arity: 33,
-     Strictness: <S,U><L,U><L,1*U><L,U(U)><L,U(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,1*U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-f93da53b7c1f267512bca3027d4e0285
-  $w$cshowsPrec1 ::
-    Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Config.Eliminate)
-                   (w1 :: GHC.Base.String) ->
-                 case w of wild {
-                   Language.Fixpoint.Types.Config.None
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowEliminate3
-                        w1
-                   Language.Fixpoint.Types.Config.Some
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowEliminate2
-                        w1
-                   Language.Fixpoint.Types.Config.All
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowEliminate1
-                        w1 }) -}
-33b67c63a8c6c21d896e5eaee4e0bea5
-  $w$cshowsPrec2 ::
-    Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Config.SMTSolver)
-                   (w1 :: GHC.Base.String) ->
-                 case w of wild {
-                   Language.Fixpoint.Types.Config.Z3
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowSMTSolver3
-                        w1
-                   Language.Fixpoint.Types.Config.Cvc4
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowSMTSolver2
-                        w1
-                   Language.Fixpoint.Types.Config.Mathsat
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Config.$fShowSMTSolver1
-                        w1 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  data Config
-    = Config {srcFile :: GHC.IO.FilePath,
-              cores :: GHC.Base.Maybe GHC.Types.Int,
-              minPartSize :: GHC.Types.Int,
-              maxPartSize :: GHC.Types.Int,
-              solver :: Language.Fixpoint.Types.Config.SMTSolver,
-              linear :: GHC.Types.Bool,
-              stringTheory :: GHC.Types.Bool,
-              defunction :: GHC.Types.Bool,
-              allowHO :: GHC.Types.Bool,
-              allowHOqs :: GHC.Types.Bool,
-              eliminate :: Language.Fixpoint.Types.Config.Eliminate,
-              elimBound :: GHC.Base.Maybe GHC.Types.Int,
-              elimStats :: GHC.Types.Bool,
-              solverStats :: GHC.Types.Bool,
-              metadata :: GHC.Types.Bool,
-              stats :: GHC.Types.Bool,
-              parts :: GHC.Types.Bool,
-              save :: GHC.Types.Bool,
-              minimize :: GHC.Types.Bool,
-              minimizeQs :: GHC.Types.Bool,
-              minimizeKs :: GHC.Types.Bool,
-              minimalSol :: GHC.Types.Bool,
-              gradual :: GHC.Types.Bool,
-              extensionality :: GHC.Types.Bool,
-              alphaEquivalence :: GHC.Types.Bool,
-              betaEquivalence :: GHC.Types.Bool,
-              normalForm :: GHC.Types.Bool,
-              autoKuts :: GHC.Types.Bool,
-              nonLinCuts :: GHC.Types.Bool,
-              noslice :: GHC.Types.Bool,
-              rewriteAxioms :: GHC.Types.Bool,
-              arithmeticAxioms :: GHC.Types.Bool}
-f93da53b7c1f267512bca3027d4e0285
-  data Eliminate = None | Some | All
-0a1d3ab6981cc6a61194de16bb9f26fb
-  axiom Rep_Config::
-      GHC.Generics.Rep Language.Fixpoint.Types.Config.Config
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Config"
-               "Language.Fixpoint.Types.Config"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Config" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (((((GHC.Generics.S1
-                      ('GHC.Generics.MetaSel
-                         ('GHC.Base.Just "srcFile")
-                         'GHC.Generics.NoSourceUnpackedness
-                         'GHC.Generics.NoSourceStrictness
-                         'GHC.Generics.DecidedLazy)
-                      (GHC.Generics.Rec0 GHC.IO.FilePath)
-                    GHC.Generics.:*: GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "cores")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 (GHC.Base.Maybe GHC.Types.Int)))
-                   GHC.Generics.:*: (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "minPartSize")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 GHC.Types.Int)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "maxPartSize")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Int)))
-                  GHC.Generics.:*: ((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "solver")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Config.SMTSolver)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "linear")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "stringTheory")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "defunction")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool))))
-                 GHC.Generics.:*: (((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "allowHO")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 GHC.Types.Bool)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "allowHOqs")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "eliminate")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           Language.Fixpoint.Types.Config.Eliminate)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "elimBound")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            (GHC.Base.Maybe
-                                                                               GHC.Types.Int))))
-                                   GHC.Generics.:*: ((GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "elimStats")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "solverStats")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool))
-                                                     GHC.Generics.:*: (GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "metadata")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)
-                                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "stats")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.NoSourceStrictness
-                                                                                             'GHC.Generics.DecidedLazy)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             GHC.Types.Bool)))))
-                GHC.Generics.:*: ((((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "parts")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 GHC.Types.Bool)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "save")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "minimize")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "minimizeQs")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)))
-                                   GHC.Generics.:*: ((GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "minimizeKs")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "minimalSol")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool))
-                                                     GHC.Generics.:*: (GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "gradual")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)
-                                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "extensionality")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.NoSourceStrictness
-                                                                                             'GHC.Generics.DecidedLazy)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             GHC.Types.Bool))))
-                                  GHC.Generics.:*: (((GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "alphaEquivalence")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "betaEquivalence")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool))
-                                                     GHC.Generics.:*: (GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "normalForm")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)
-                                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "autoKuts")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.NoSourceStrictness
-                                                                                             'GHC.Generics.DecidedLazy)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             GHC.Types.Bool)))
-                                                    GHC.Generics.:*: ((GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "nonLinCuts")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)
-                                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "noslice")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.NoSourceStrictness
-                                                                                             'GHC.Generics.DecidedLazy)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             GHC.Types.Bool))
-                                                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "rewriteAxioms")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.NoSourceStrictness
-                                                                                             'GHC.Generics.DecidedLazy)
-                                                                                          (GHC.Generics.Rec0
-                                                                                             GHC.Types.Bool)
-                                                                                        GHC.Generics.:*: GHC.Generics.S1
-                                                                                                           ('GHC.Generics.MetaSel
-                                                                                                              ('GHC.Base.Just
-                                                                                                                 "arithmeticAxioms")
-                                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                                              'GHC.Generics.NoSourceStrictness
-                                                                                                              'GHC.Generics.DecidedLazy)
-                                                                                                           (GHC.Generics.Rec0
-                                                                                                              GHC.Types.Bool)))))))
-f93da53b7c1f267512bca3027d4e0285
-  axiom Rep_Eliminate::
-      GHC.Generics.Rep Language.Fixpoint.Types.Config.Eliminate
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Eliminate"
-               "Language.Fixpoint.Types.Config"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1))
-33b67c63a8c6c21d896e5eaee4e0bea5
-  axiom Rep_SMTSolver::
-      GHC.Generics.Rep Language.Fixpoint.Types.Config.SMTSolver
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SMTSolver"
-               "Language.Fixpoint.Types.Config"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Mathsat"
-                                                     'GHC.Generics.PrefixI
-                                                     'GHC.Types.False)
-                                                  GHC.Generics.U1))
-33b67c63a8c6c21d896e5eaee4e0bea5
-  data SMTSolver = Z3 | Cvc4 | Mathsat
-581420630f74330e11013d86878bcae3
-  allowHO :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLSLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds9 }) -}
-99ea7562199e43b34afee6d6b09ced7c
-  allowHOqs ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLSLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds10 }) -}
-057db3d16fd9c58ffe26e9183c7f81c9
-  alphaEquivalence ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLSLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds25 }) -}
-9a41fb6ba095a8c61502d6bc692c5b14
-  arithmeticAxioms ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLS),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds32 }) -}
-5c6fb450711185e0d031adec34198f54
-  autoKuts :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLLSLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds28 }) -}
-019a658d1ccc1df8daf79647ec6e823f
-  betaEquivalence ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLSLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds26 }) -}
-7b4f9dcfa42178952e5054f67d471e7c
-  config ::
-    System.Console.CmdArgs.Explicit.Type.Mode
-      (System.Console.CmdArgs.Implicit.Type.CmdArgs
-         Language.Fixpoint.Types.Config.Config)
-  {- Unfolding: (case System.Console.CmdArgs.Implicit.$wcmdArgsCapture
-                        @ Language.Fixpoint.Types.Config.Config
-                        Language.Fixpoint.Types.Config.$fDataConfig
-                        Language.Fixpoint.Types.Config.getOpts5 of ww { (#,,,,,,,,,#) ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ->
-                 System.Console.CmdArgs.Explicit.Type.Mode
-                   @ (System.Console.CmdArgs.Implicit.Type.CmdArgs
-                        Language.Fixpoint.Types.Config.Config)
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10 }) -}
-764aadd348c4970fb472a70cb648673b
-  cores ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Base.Maybe GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds2 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig9
-                   Language.Fixpoint.Types.Config.defConfig1) -}
-29f4d5ed9c1973a9d612a038555e3de5
-  defConfig1 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.ModeHelpSuffix
-                   Language.Fixpoint.Types.Config.defConfig2 }) -}
-6a9ca2fe6d4b5a54e3ff1178299d0331
-  defConfig10 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.ProgSummary
-                   Language.Fixpoint.Types.Config.defConfig11 }) -}
-644347846d92e2b8563bf04a24143eac
-  defConfig100 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Name of SMT Solver"#) -}
-d1663c14a2d5c6366b81f6e8e4c09df8
-  defConfig101 :: Language.Fixpoint.Types.Config.SMTSolver
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 Language.Fixpoint.Types.Config.Z3 }) -}
-50b66cf00986227e51ba4ef6e7a9d682
-  defConfig102 :: GHC.Types.Int
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Int
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataInt
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig105
-                   Language.Fixpoint.Types.Config.defConfig103) -}
-64e20387e842607bb3ddc5d71bd8de4b
-  defConfig103 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig104 }) -}
-de5283093219ecdb218c0fb2c25e0fb4
-  defConfig104 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "(numeric) Maximum partiton size when solving in parallel."#) -}
-cba38ff632cedc97edd4a0f815037bf1
-  defConfig105 :: GHC.Types.Int
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 Language.Fixpoint.Types.Config.defaultMaxPartSize }) -}
-1d6ce2375bcee6bd33f7468adbdfa7d3
-  defConfig106 :: GHC.Types.Int
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Int
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataInt
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig109
-                   Language.Fixpoint.Types.Config.defConfig107) -}
-bcc9f0aecc78ac45f0c6da4240c6a29b
-  defConfig107 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig108 }) -}
-93967bcde248a8daa2809f7f3896f776
-  defConfig108 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "(numeric) Minimum partition size when solving in parallel"#) -}
-331e6964d256a4127594f389b9fab2e0
-  defConfig109 :: GHC.Types.Int
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 Language.Fixpoint.Types.Config.defaultMinPartSize }) -}
-4ecb3bc49a2e2eb9fd407d20751c50d9
-  defConfig11 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "fixpoint Copyright 2009-15 Regents of the University of California."#) -}
-bdf0c68e81377bd74264ca4c54fd05d0
-  defConfig110 :: GHC.Base.Maybe GHC.Types.Int
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ (GHC.Base.Maybe GHC.Types.Int)
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig81
-                   Language.Fixpoint.Types.Config.defConfig111) -}
-c7a0343c488136ea7c4b8649cfee9f25
-  defConfig111 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig112 }) -}
-435e2f8505a11c96626eab44428cc2b2
-  defConfig112 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "(numeric) Number of threads to use"#) -}
-1d318e9cc99c616e2ff3aabe500bef52
-  defConfig113 :: [GHC.Types.Char]
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ [GHC.Types.Char]
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fData[]_$s$fData[]
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig115
-                   Language.Fixpoint.Types.Config.defConfig114) -}
-8943baf72dad94c7b0e4aa11ddf162ce
-  defConfig114 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.UI.typFile }) -}
-f02daabbcaaaab08da4bc38ed75c0ea4
-  defConfig115 :: [GHC.Types.Char]
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ [GHC.Types.Char]
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fData[]_$s$fData[]
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig117
-                   Language.Fixpoint.Types.Config.defConfig116 }) -}
-a76fdb865140230709a92d02c2444b40
-  defConfig116 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.FlagArgs }) -}
-371486ea6a87bf82434407cf4a308b57
-  defConfig117 :: [GHC.Types.Char]
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 GHC.CString.unpackCString# "out"# }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig12 :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig14
-                   Language.Fixpoint.Types.Config.defConfig13 }) -}
-d957f47b8f1c3bc1b0131f975058f023
-  defConfig13 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig8 }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig14 :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig17
-                   Language.Fixpoint.Types.Config.defConfig15 }) -}
-0878d87101b24bdc90aa874648c2439a
-  defConfig15 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.ProgProgram
-                   Language.Fixpoint.Types.Config.defConfig16 }) -}
-4d6d32fb4f8222da46e2eb0431ed8a23
-  defConfig16 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "fixpoint"#) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig17 :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig19
-                   Language.Fixpoint.Types.Config.defConfig18 }) -}
-558b8cdd81a89bbae015a9cd6d5bc441
-  defConfig18 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.ProgVerbosity }) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig19 :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 Language.Fixpoint.Types.Config.Config
-                   Language.Fixpoint.Types.Config.defConfig113
-                   Language.Fixpoint.Types.Config.defConfig110
-                   Language.Fixpoint.Types.Config.defConfig106
-                   Language.Fixpoint.Types.Config.defConfig102
-                   Language.Fixpoint.Types.Config.defConfig98
-                   Language.Fixpoint.Types.Config.defConfig95
-                   Language.Fixpoint.Types.Config.defConfig92
-                   Language.Fixpoint.Types.Config.defConfig89
-                   Language.Fixpoint.Types.Config.defConfig89
-                   Language.Fixpoint.Types.Config.defConfig86
-                   Language.Fixpoint.Types.Config.defConfig82
-                   Language.Fixpoint.Types.Config.defConfig75
-                   Language.Fixpoint.Types.Config.defConfig72
-                   Language.Fixpoint.Types.Config.defConfig69
-                   Language.Fixpoint.Types.Config.defConfig66
-                   Language.Fixpoint.Types.Config.defConfig63
-                   Language.Fixpoint.Types.Config.defConfig60
-                   Language.Fixpoint.Types.Config.defConfig57
-                   Language.Fixpoint.Types.Config.defConfig54
-                   Language.Fixpoint.Types.Config.defConfig51
-                   Language.Fixpoint.Types.Config.defConfig48
-                   Language.Fixpoint.Types.Config.defConfig45
-                   Language.Fixpoint.Types.Config.defConfig42
-                   Language.Fixpoint.Types.Config.defConfig39
-                   Language.Fixpoint.Types.Config.defConfig36
-                   Language.Fixpoint.Types.Config.defConfig36
-                   Language.Fixpoint.Types.Config.defConfig33
-                   Language.Fixpoint.Types.Config.defConfig30
-                   Language.Fixpoint.Types.Config.defConfig27
-                   Language.Fixpoint.Types.Config.defConfig24
-                   Language.Fixpoint.Types.Config.defConfig20
-                   Language.Fixpoint.Types.Config.defConfig24 }) -}
-5583c77ad79a3413d1f48d349346596a
-  defConfig2 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Types.Config.defConfig8
-                   Language.Fixpoint.Types.Config.defConfig3) -}
-db56f755d24c34c18ff41afad6d0b0c8
-  defConfig20 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig21) -}
-1f1d2c27af40e18b355f594f0a0328fe
-  defConfig21 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig22 }) -}
-167e68894366e56dc8007426e2df49ce
-  defConfig22 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "allow axiom instantiation via rewriting"#) -}
-56732e1f02ae2969d4d73d1af915cf0a
-  defConfig23 :: GHC.Types.Bool
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 GHC.Types.False }) -}
-3c281021670f9c9bf7090e56e736bb0d
-  defConfig24 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig25) -}
-3558d55bfbb162ea11a9a22077b8fd23
-  defConfig25 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig26 }) -}
-4d144d77b1d32dfb92defd8ae44979de
-  defConfig26 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Disable non-concrete KVar slicing"#) -}
-97ac5ea2ddb7ec02ae0a516898f4f1d0
-  defConfig27 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig28) -}
-12fa511b0922571580ac31a0df48728d
-  defConfig28 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig29 }) -}
-6fca7ee1e7f22dca49d659593d9bf457
-  defConfig29 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Treat non-linear kvars as cuts"#) -}
-971041f3e3c2152b7b9b31b37ccb3f32
-  defConfig3 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   Language.Fixpoint.Types.Config.defConfig4) -}
-aa9ef9f05c9ad455e39865363463549f
-  defConfig30 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig31) -}
-ac9a49aab61302f074c370238dace2a6
-  defConfig31 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig32 }) -}
-3ea02d38dceebba43739e5b0a6e4effc
-  defConfig32 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Ignore given Kut vars, compute from scratch"#) -}
-55a3784936ccaf573e175dd92878f825
-  defConfig33 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig34) -}
-9e8d746bfd97014fb036a34ae5aba525
-  defConfig34 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig35 }) -}
-72d81a9cb7c0980b22e7e44636b3e2d7
-  defConfig35 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Allow lambda normal-form equivalence axioms"#) -}
-acbd1e7bc48b86b0b464e5c9b6703a7c
-  defConfig36 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig37) -}
-0cbd1daa71360bff332eb219147f162a
-  defConfig37 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig38 }) -}
-a46a92c412a9341781c0e56363939502
-  defConfig38 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Allow lambda alpha equivalence axioms"#) -}
-00dcf5ea4b5d39d51a632f29f218b17c
-  defConfig39 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig40) -}
-1b3ff5f30c64b2b43310fb16c2f4e06f
-  defConfig4 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Types.Config.defConfig7
-                   Language.Fixpoint.Types.Config.defConfig5) -}
-afa1f62af6ca9083124baa862b4b7527
-  defConfig40 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig41 }) -}
-71b460709aba02bfd3e059b0b9a69bab
-  defConfig41 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Allow function extensionality axioms"#) -}
-75e61f6a98b17bc82beab0cf76e72513
-  defConfig42 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig43) -}
-8d48447e71015ee3dc874bc43b7e7f80
-  defConfig43 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig44 }) -}
-e62e4e7eeb41feb48d7d4df7e180b233
-  defConfig44 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Solve gradual-refinement typing constraints"#) -}
-cefa26543ad880738235af1d266c158c
-  defConfig45 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig46) -}
-55acfb873cb8620ca68336fa43a354ac
-  defConfig46 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig47 }) -}
-b343a66d4fc0501a91db898181eb6399
-  defConfig47 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Shrink fixpoint by removing implied qualifiers"#) -}
-e43d2a0153318bc9bdde8d68ab2557c6
-  defConfig48 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig49) -}
-5d6f1e92081ea4314da60ff7eebe09bd
-  defConfig49 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig50 }) -}
-8167253b10cbcdc557ab2e4c6bd3c685
-  defConfig5 :: [GHC.Base.String]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.Base.String
-                   Language.Fixpoint.Types.Config.defConfig6
-                   (GHC.Types.[] @ GHC.Base.String)) -}
-3e4eb4f9e2cf33d2d47e6a01c68558da
-  defConfig50 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Delta debug to minimize fq file (sat with max kvars replaced by True)"#) -}
-f5ee11b2a4d6e4619d9ea1c7235de283
-  defConfig51 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig52) -}
-292731a1ea892f194a8fba84ff6a8700
-  defConfig52 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig53 }) -}
-32ce74fce0a67e8895171fe3df1adc8c
-  defConfig53 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Delta debug to minimize fq file (sat with min qualifiers)"#) -}
-811267fb3d1995ff4641e37eca7bd12f
-  defConfig54 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig55) -}
-0afaf03335ceb1daa0344ad852063fc0
-  defConfig55 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig56 }) -}
-b427691a5e43025191bbb893ad556944
-  defConfig56 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Delta debug to minimize fq file (unsat with min constraints)"#) -}
-ea6dfe16078205f235c9f75f355aa4e1
-  defConfig57 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig58) -}
-d91026346bb49c17a56a2fd5b76660b4
-  defConfig58 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig59 }) -}
-34996facd5c4c6fcb9e42cfd43885e24
-  defConfig59 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Save Query as .fq and .bfq files"#) -}
-74a712076b1da113502cb33690f020dd
-  defConfig6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "  fixpoint foo.fq"#) -}
-2cdbb3d0b20f6a83c214603ee9067eb8
-  defConfig60 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig61) -}
-4616aeb080032b33653254bab3053e2d
-  defConfig61 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig62 }) -}
-d0404c6ffc1781ea58b2ead218078af7
-  defConfig62 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Partition constraints into indepdendent .fq files"#) -}
-a4d4ea007ec0e2e947a288e9a9223699
-  defConfig63 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig64) -}
-0d19bbab8b0a02e094f2d8b6d74f2a45
-  defConfig64 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig65 }) -}
-45e377eee8b332032af5144d96de1399
-  defConfig65 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Compute constraint statistics"#) -}
-b6b83c1d5b39815a53a26e2d2fa652d7
-  defConfig66 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig67) -}
-09a156fcb39b0225989e6fa1b4c9841a
-  defConfig67 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig68 }) -}
-a7c175dfc29d0cf31970fa55280eeac4
-  defConfig68 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Print meta-data associated with constraints"#) -}
-40beaaec5cc0c7944b52f60ad7d8419c
-  defConfig69 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig70) -}
-af481364c19629f9875f140af713796e
-  defConfig7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "To check a file foo.fq type:"#) -}
-7e3724e0cffc4474b6fa52a70f735fb5
-  defConfig70 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig71 }) -}
-e948c841342e38b659177ef05749acd4
-  defConfig71 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Print solver stats"#) -}
-3a3e1d1f3e0a9acf032d816ed254bf0c
-  defConfig72 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig73) -}
-65b560981fa0159f07ecbeea2aa70e72
-  defConfig73 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig74 }) -}
-998fb8af3068cc26f027202e30678ee2
-  defConfig74 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "(alpha) Print eliminate stats"#) -}
-5b7b360f3f5650816e87bbffbd71c728
-  defConfig75 :: GHC.Base.Maybe GHC.Types.Int
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ (GHC.Base.Maybe GHC.Types.Int)
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig78
-                   Language.Fixpoint.Types.Config.defConfig76) -}
-18275853a379d271440fbcbfcf87f805
-  defConfig76 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig77 }) -}
-8e4557f82b5a5466c446d7c56623bc29
-  defConfig77 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "(alpha) Maximum eliminate-chain depth"#) -}
-f92ae83b6f3be65d9f56b15e263b262f
-  defConfig78 :: GHC.Base.Maybe GHC.Types.Int
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ (GHC.Base.Maybe GHC.Types.Int)
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig81
-                   Language.Fixpoint.Types.Config.defConfig79 }) -}
-2c6d49cd44d8ce45a34e19e91c85e686
-  defConfig79 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Name
-                   Language.Fixpoint.Types.Config.defConfig80 }) -}
-c1495b4429dbd297ea4f2f8acde7a2af
-  defConfig8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Predicate Abstraction Based Horn-Clause Solver"#) -}
-251cf630ebc53b2f3f95052985a2ad26
-  defConfig80 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "elimBound"#) -}
-0ba42fa895823966a585fc6c8fd47053
-  defConfig81 :: GHC.Base.Maybe GHC.Types.Int
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 GHC.Base.Nothing @ GHC.Types.Int }) -}
-5e4f1e9fda617915c4266db6fbefd4e3
-  defConfig82 :: Language.Fixpoint.Types.Config.Eliminate
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Eliminate
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataEliminate
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig85
-                   Language.Fixpoint.Types.Config.defConfig83) -}
-27e23ec731d52a9b2f96490b9298881b
-  defConfig83 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig84 }) -}
-c1970cf236a1398098bb57277faa4966
-  defConfig84 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Eliminate KVars [none = quals for all-kvars, cuts = quals for cut-kvars, all = eliminate all-kvars (TRUE for cuts)]"#) -}
-84eccf2eb45ddc2e13574d4c46e611fa
-  defConfig85 :: Language.Fixpoint.Types.Config.Eliminate
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 Language.Fixpoint.Types.Config.None }) -}
-a2401eed9a68c12e2a180e9e064a10aa
-  defConfig86 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig87) -}
-003ee090d09d57b6009841408d072753
-  defConfig87 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig88 }) -}
-fa4a85fe4b1b18e4e033308405c89428
-  defConfig88 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Allow higher order qualifiers"#) -}
-eb3afd8b38aa08ba98f5865d49df4e86
-  defConfig89 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig90) -}
-0a1d3ab6981cc6a61194de16bb9f26fb
-  defConfig9 :: Language.Fixpoint.Types.Config.Config
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig12
-                   Language.Fixpoint.Types.Config.defConfig10 }) -}
-d9b2cf2f403edf502a54927d1b9d3cba
-  defConfig90 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig91 }) -}
-6548b61ba9b59f6108e03c1de2284512
-  defConfig91 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Allow higher order binders into fixpoint environment"#) -}
-877bfdea7bedf40e757632f10899ef54
-  defConfig92 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig93) -}
-bbd079b4ac838dae0adf0921554f3e9d
-  defConfig93 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig94 }) -}
-4ba1b6f3b4c5939528fb59aa08a03029
-  defConfig94 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Interpretation of String Theory by SMT"#) -}
-22f646bb5815e2f5861d59c133db028c
-  defConfig95 :: GHC.Types.Bool
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ GHC.Types.Bool
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Data.Data.$fDataBool
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig23
-                   Language.Fixpoint.Types.Config.defConfig96) -}
-b233da235afb88e3e10388cc608d5c30
-  defConfig96 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig97 }) -}
-1f44332db120fc603bae6e80ef948e13
-  defConfig97 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Use uninterpreted integer multiplication and division"#) -}
-760619167dd43f9b48f9ea966fb2f50b
-  defConfig98 :: Language.Fixpoint.Types.Config.SMTSolver
-  {- Unfolding: (System.Console.CmdArgs.Annotate.addAnn
-                   @ Language.Fixpoint.Types.Config.SMTSolver
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataSMTSolver
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig101
-                   Language.Fixpoint.Types.Config.defConfig99) -}
-560094b0df30fba1a8d0764861a1024a
-  defConfig99 :: System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (case GHC.List.reverse1
-                        @ GHC.Types.Char
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        (GHC.Types.[] @ GHC.Types.Char) of wild { DEFAULT ->
-                 System.Console.CmdArgs.Implicit.Ann.Help
-                   Language.Fixpoint.Types.Config.defConfig100 }) -}
-ca5c16c104fcfd009fad8fb0bef3fc15
-  defConfig_$s$fDataMaybe ::
-    Data.Data.Data (GHC.Base.Maybe GHC.Types.Int)
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (GHC.Base.Maybe GHC.Types.Int)
-                  (Data.Data.$fDataMaybe_$cp1Data
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt)
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgfoldl
-                  (Data.Data.$fDataMaybe_$cgunfold
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt)
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$ctoConstr
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cdataTypeOf
-                  (Data.Data.$fDataMaybe_$cdataCast1
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt)
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cdataCast2
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapT
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQl
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQr
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQ
-                  Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQi
-                  (Data.Data.$fDataMaybe_$cgmapM @ GHC.Types.Int Data.Data.$fDataInt)
-                  (Data.Data.$fDataMaybe_$cgmapMp
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt)
-                  (Data.Data.$fDataMaybe_$cgmapMo
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt) -}
-63296a729b13a73d97c7350b4db1f038
-  defConfig_$s$fDataMaybe_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c (GHC.Base.Maybe GHC.Types.Int))
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c (GHC.Base.Maybe GHC.Types.Int))) -}
-a3151baa1c981411f588b92c0888d106
-  defConfig_$s$fDataMaybe_$cdataTypeOf ::
-    GHC.Base.Maybe GHC.Types.Int -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Base.Maybe GHC.Types.Int) ->
-                 Data.Data.maybeDataType) -}
-25763da1628483f54be802b7a09f4d45
-  defConfig_$s$fDataMaybe_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> c (GHC.Base.Maybe GHC.Types.Int)
-  {- Arity: 3, Strictness: <L,1*C1(C1(C1(U)))><L,1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (ds :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds1 :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case ds1 of wild {
-                   GHC.Base.Nothing
-                   -> z @ (GHC.Base.Maybe GHC.Types.Int)
-                        (GHC.Base.Nothing @ GHC.Types.Int)
-                   GHC.Base.Just x
-                   -> ds
-                        @ GHC.Types.Int
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        Data.Data.$fDataInt
-                        (z @ (GHC.Types.Int -> GHC.Base.Maybe GHC.Types.Int)
-                           (GHC.Base.Just @ GHC.Types.Int))
-                        x }) -}
-a975e8918df27c82051d9d1f15b3638a
-  defConfig_$s$fDataMaybe_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> GHC.Base.Maybe GHC.Types.Int -> [u]
-  {- Arity: 2, Strictness: <L,1*C1(C1(U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case x0 of wild {
-                   GHC.Base.Nothing -> GHC.Types.[] @ u
-                   GHC.Base.Just x
-                   -> GHC.Types.:
-                        @ u
-                        (ds @ GHC.Types.Int Data.Data.$fDataInt x)
-                        (GHC.Types.[] @ u) }) -}
-c2c95843b30f23e86da36c4e064d0118
-  defConfig_$s$fDataMaybe_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case x of wild {
-                   GHC.Base.Nothing -> Data.Maybe.fromJust1 @ u
-                   GHC.Base.Just x1
-                   -> case ds of wild1 { GHC.Types.I# x2 ->
-                      case x2 of wild2 {
-                        DEFAULT -> Data.Maybe.fromJust1 @ u
-                        0# -> ds1 @ GHC.Types.Int Data.Data.$fDataInt x1 } } }) -}
-f8c8cf8c4f057335f2cfc2edc31146a6
-  defConfig_$s$fDataMaybe_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> r
-  {- Arity: 4,
-     Strictness: <L,1*C1(C1(U))><L,U><L,1*C1(C1(U))><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case eta of wild {
-                   GHC.Base.Nothing -> ds1
-                   GHC.Base.Just x
-                   -> ds ds1 (ds2 @ GHC.Types.Int Data.Data.$fDataInt x) }) -}
-19758c0b3189cf8089e854f04d4f005b
-  defConfig_$s$fDataMaybe_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> r
-  {- Arity: 4,
-     Strictness: <L,1*C1(C1(U))><L,U><L,1*C1(C1(U))><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case x0 of wild {
-                   GHC.Base.Nothing -> ds1
-                   GHC.Base.Just x
-                   -> ds (ds2 @ GHC.Types.Int Data.Data.$fDataInt x) ds1 }) -}
-5e8d02a6817b9bf8aa6f81c2c1c66817
-  defConfig_$s$fDataMaybe_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> GHC.Base.Maybe GHC.Types.Int -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 2, Strictness: <L,1*C1(C1(U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case x0 of wild {
-                   GHC.Base.Nothing -> GHC.Base.Nothing @ GHC.Types.Int
-                   GHC.Base.Just x
-                   -> GHC.Base.Just
-                        @ GHC.Types.Int
-                        (ds @ GHC.Types.Int Data.Data.$fDataInt x) }) -}
-a186ac75318f5cf640aa165a0f2e5f59
-  defConfig_$s$fDataMaybe_$ctoConstr ::
-    GHC.Base.Maybe GHC.Types.Int -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: GHC.Base.Maybe GHC.Types.Int) ->
-                 case ds of wild {
-                   GHC.Base.Nothing -> Data.Data.nothingConstr
-                   GHC.Base.Just ds1 -> Data.Data.justConstr }) -}
-0aa0c36d22a2f35fdefc9d2394baa7fa
-  defaultMaxPartSize :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 700#) -}
-f3305e89dd8ea28b6a87cec0a6822b3d
-  defaultMinPartSize :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 500#) -}
-79d66872e25fc5d71896c943a621ea61
-  defunction ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLSLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds8 }) -}
-f90823aa10c60e40be905972f3b2f6af
-  elimBound ::
-    Language.Fixpoint.Types.Config.Config
-    -> GHC.Base.Maybe GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLSLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds12 }) -}
-3875801598d5d133509c9fe402c14cd1
-  elimStats ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLSLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds13 }) -}
-00845ce462b99594cdb09b8337f2f880
-  eliminate ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.Eliminate
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLSLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds11 }) -}
-3499a69969d02bc198e5cdfc511af186
-  extensionality ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLSLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds24 }) -}
-9b8b44713fbea0a5f62c44195bc8cd12
-  getOpts :: GHC.Types.IO Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.getOpts1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0]
-                          <Language.Fixpoint.Types.Config.Config>_R)) -}
-70494605f91c1b17c3fa89e3f577a93e
-  getOpts1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Config.Config #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case System.Console.CmdArgs.Explicit.processArgs1
-                        @ (System.Console.CmdArgs.Implicit.Type.CmdArgs
-                             Language.Fixpoint.Types.Config.Config)
-                        Language.Fixpoint.Types.Config.config
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of ww { System.Console.CmdArgs.Implicit.Type.CmdArgs ww1 ww2 ww3 ww4 ww5 ->
-                 case ww2 of wild {
-                   GHC.Base.Nothing
-                   -> case ww3 of wild1 {
-                        GHC.Base.Nothing
-                        -> case ww4 of wild2 {
-                             GHC.Base.Nothing -> Language.Fixpoint.Types.Config.getOpts4 ipv ww1
-                             GHC.Base.Just x
-                             -> case System.Console.CmdArgs.Verbosity.ref
-                                       `cast`
-                                     (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild3 { GHC.STRef.STRef var# ->
-                                case GHC.Prim.writeMutVar#
-                                       @ GHC.Prim.RealWorld
-                                       @ System.Console.CmdArgs.Verbosity.Verbosity
-                                       var#
-                                       x
-                                       ipv of s2# { DEFAULT ->
-                                case GHC.IO.Handle.Text.hPutStr2
-                                       GHC.IO.Handle.FD.stdout
-                                       Language.Fixpoint.Types.Config.getOpts3
-                                       GHC.Types.True
-                                       s2# of ds2 { (#,#) ipv2 ipv3 ->
-                                (# ipv2, ww1 #) } } } }
-                        GHC.Base.Just x
-                        -> case GHC.IO.Handle.Text.hPutStr2
-                                  GHC.IO.Handle.FD.stdout
-                                  x
-                                  GHC.Types.False
-                                  ipv of ds2 { (#,#) ipv2 ipv3 ->
-                           GHC.Prim.raiseIO#
-                             @ GHC.Exception.SomeException
-                             @ Language.Fixpoint.Types.Config.Config
-                             Language.Fixpoint.Types.Config.getOpts2
-                             ipv2 } }
-                   GHC.Base.Just x
-                   -> case GHC.IO.Handle.Text.hPutStr2
-                             GHC.IO.Handle.FD.stdout
-                             x
-                             GHC.Types.False
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      GHC.Prim.raiseIO#
-                        @ GHC.Exception.SomeException
-                        @ Language.Fixpoint.Types.Config.Config
-                        Language.Fixpoint.Types.Config.getOpts2
-                        ipv2 } } } }) -}
-94bd3b06f39268ee911567f0fa3f58e1
-  getOpts2 :: GHC.Exception.SomeException
-  {- Unfolding: (GHC.IO.Exception.$fExceptionExitCode_$ctoException
-                   GHC.IO.Exception.ExitSuccess) -}
-b2cdd6dc5b1eb1c54d1dbe8f955bf656
-  getOpts3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "\n\
-                   \\n\
-                   \Liquid-Fixpoint Copyright 2013-15 Regents of the University of California.\n\
-                   \All Rights Reserved.\n"#) -}
-7ba27c371754f92afed41bae65ce3405
-  getOpts4 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> Language.Fixpoint.Types.Config.Config
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Config.Config #)
-  {- Arity: 2, Strictness: <S,U><L,U>,
-     Unfolding: (\ (ipv :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot]
-                   (ipv1 :: Language.Fixpoint.Types.Config.Config)[OneShot] ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        Language.Fixpoint.Types.Config.getOpts3
-                        GHC.Types.True
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 (# ipv2, ipv1 #) }) -}
-6074435bda0578393e3b0c3f57d07f58
-  getOpts5 ::
-    System.Console.CmdArgs.Annotate.Capture
-      System.Console.CmdArgs.Implicit.Ann.Ann
-  {- Unfolding: (System.Console.CmdArgs.Annotate.capture
-                   @ Language.Fixpoint.Types.Config.Config
-                   @ System.Console.CmdArgs.Implicit.Ann.Ann
-                   Language.Fixpoint.Types.Config.$fDataConfig
-                   System.Console.CmdArgs.Implicit.Ann.$fDataAnn
-                   Language.Fixpoint.Types.Config.defConfig) -}
-ff91e3fd60534020e1339e23aea84fb4
-  gradual :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLSLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds23 }) -}
-f236863d66e5a3576f22d8fe02cf9dd6
-  linear :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds6 }) -}
-950722929eeeeafc9d0df91721e9a7a5
-  maxPartSize ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,1*U(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds4 }) -}
-e7c5bb42ba9d6b155abd9a955ffc907d
-  metadata :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLSLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds15 }) -}
-a641bd1db66814db5dbafd87e7083796
-  minPartSize ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,1*U(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds3 }) -}
-d87577f191ff3394f31793a1502a1694
-  minimalSol ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLSLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds22 }) -}
-e7324b88bb1b932e70bd6530742f160d
-  minimize :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLSLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds19 }) -}
-0606dbce8acec9e6f50239f8fb136eed
-  minimizeKs ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLSLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds21 }) -}
-9def52e479bfeaf19a50f3c0570e33c3
-  minimizeQs ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLSLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds20 }) -}
-f61c360f9d352412e0db34b629c1482a
-  multicore ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (cfg :: Language.Fixpoint.Types.Config.Config) ->
-                 case cfg of wild { Language.Fixpoint.Types.Config.Config ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ->
-                 case ds1 of wild1 {
-                   GHC.Base.Nothing -> GHC.Types.True
-                   GHC.Base.Just a2
-                   -> case a2 of wild2 { GHC.Types.I# x ->
-                      case x of wild3 {
-                        DEFAULT -> GHC.Types.True 1# -> GHC.Types.False } } } }) -}
-4c78dd2b827c280fd8ccb0edf9b73f30
-  nonLinCuts ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLLLSLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds29 }) -}
-9f97e94251b5c645df085fb5e7a7cde3
-  normalForm ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLSLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds27 }) -}
-afa8022b0194c12eccd477b0128adaed
-  noslice :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLLLLSLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds30 }) -}
-b3b5026e99261d585e3b1cc95b8e669a
-  parts :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLSLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds17 }) -}
-b00beb3f0fba1d22e6a8471e27a1a604
-  queryFile ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Types.Config.Config -> GHC.IO.FilePath
-  {- Arity: 2,
-     Strictness: <S,1*U><L,1*U(1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (e :: Language.Fixpoint.Utils.Files.Ext)
-                   (eta :: Language.Fixpoint.Types.Config.Config) ->
-                 Language.Fixpoint.Utils.Files.extFileName
-                   e
-                   (case eta of wild { Language.Fixpoint.Types.Config.Config ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ->
-                    ds })) -}
-d8b7898208f945610309f9121bb2c2e5
-  rewriteAxioms ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLSL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds31 }) -}
-164144792947fb31455e03024550b75e
-  save :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLLLSLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds18 }) -}
-ad1f42cd69401df7fb80f31829c4b15f
-  solver ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Config.SMTSolver
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds5 }) -}
-bda7106cec62d0859e70f146036f8a69
-  solverStats ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLSLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds14 }) -}
-139239bd1df5627505d07a6c910c85e3
-  srcFile :: Language.Fixpoint.Types.Config.Config -> GHC.IO.FilePath
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds1 }) -}
-238bc79899631ee39849ba43109d2a36
-  stats :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLLLLLLSLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds16 }) -}
-f42571dd5abc6b20f59b5eda31bd9459
-  stringTheory ::
-    Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Config.Config
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLSLLLLLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Config.Config) ->
-                 case ds of wild { Language.Fixpoint.Types.Config.Config ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ds32 ->
-                 ds7 }) -}
-35d43e2b1e6c87f45cf41979d665c2af
-  useElim :: Language.Fixpoint.Types.Config.Config -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLSLLLLLLLLLLLLLLLLLLLLL),1*U(A,A,A,A,A,A,A,A,A,A,1*U,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (cfg :: Language.Fixpoint.Types.Config.Config) ->
-                 case cfg of wild { Language.Fixpoint.Types.Config.Config ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ds15 ds16 ds17 ds18 ds19 ds20 ds21 ds22 ds23 ds24 ds25 ds26 ds27 ds28 ds29 ds30 ds31 ->
-                 case ds10 of wild1 {
-                   Language.Fixpoint.Types.Config.None -> GHC.Types.False
-                   Language.Fixpoint.Types.Config.Some -> GHC.Types.True
-                   Language.Fixpoint.Types.Config.All -> GHC.Types.True } }) -}
-0300a5f35a79cd7876b54c77dc7ba8f4
-  withPragmas ::
-    Language.Fixpoint.Types.Config.Config
-    -> [GHC.Base.String]
-    -> GHC.Types.IO Language.Fixpoint.Types.Config.Config
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Config.withPragmas1
-                  `cast`
-                (<Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <[[GHC.Types.Char]]>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Config.Config>_R)) -}
-1441d26e5d1ab1b26d9f68b70f57ef5a
-  withPragmas1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> [[GHC.Types.Char]]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Config.Config #)
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: (\ (z0 :: Language.Fixpoint.Types.Config.Config)
-                   (xs :: [[GHC.Types.Char]])
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Types.Config.withPragmas_go xs z0 eta) -}
-8ea9f9acb1e8835eedec85127683a266
-  withPragmas_go ::
-    [[GHC.Types.Char]]
-    -> Language.Fixpoint.Types.Config.Config
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Config.Config #)
-  {- Arity: 3, Strictness: <S,1*U><L,U><S,U> -}
-instance Data.Data.Data [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.$fDataConfig
-instance Data.Data.Data [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fDataEliminate
-instance Data.Data.Data [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.$fDataSMTSolver
-instance System.Console.CmdArgs.Default.Default [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.$fDefaultConfig
-instance System.Console.CmdArgs.Default.Default [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fDefaultEliminate
-instance System.Console.CmdArgs.Default.Default [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.$fDefaultSMTSolver
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.$fEqConfig
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fEqEliminate
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.$fEqSMTSolver
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.$fGenericConfig
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fGenericEliminate
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.$fGenericSMTSolver
-instance Data.Serialize.Serialize [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fSerializeEliminate
-instance GHC.Show.Show [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.$fShowConfig
-instance GHC.Show.Show [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.$fShowEliminate
-instance GHC.Show.Show [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.$fShowSMTSolver
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Config.Config]
-  = Language.Fixpoint.Types.Config.Rep_Config
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Config.Rep_Eliminate
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Config.Rep_SMTSolver
-"SPEC/Language.Fixpoint.Types.Config $dmput @ Eliminate" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                               (GHC.Generics.Rep
-                                                                                                  Language.Fixpoint.Types.Config.Eliminate))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Types.Config.Eliminate)
-                                                                         ($dSerialize :: Data.Serialize.Serialize
-                                                                                           Language.Fixpoint.Types.Config.Eliminate)
-  Data.Serialize.$dmput @ Language.Fixpoint.Types.Config.Eliminate
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Config.$fSerializeEliminate_$s$dmput
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                     GHC.Types.Int)
-  Data.Data.$fDataMaybe @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cdataCast2 @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                 GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cdataCast2 @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cdataCast2
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cdataTypeOf @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                  GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cdataTypeOf @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cdataTypeOf
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgfoldl @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgfoldl @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgfoldl
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgmapQ @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                             GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgmapQ @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQ
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgmapQi @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgmapQi @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQi
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgmapQl @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgmapQl @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQl
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgmapQr @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgmapQr @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapQr
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$cgmapT @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                             GHC.Types.Int)
-  Data.Data.$fDataMaybe_$cgmapT @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$cgmapT
-"SPEC/Language.Fixpoint.Types.Config $fDataMaybe_$ctoConstr @ Int" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                GHC.Types.Int)
-  Data.Data.$fDataMaybe_$ctoConstr @ GHC.Types.Int $dData
-  = Language.Fixpoint.Types.Config.defConfig_$s$fDataMaybe_$ctoConstr
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Constraints.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Constraints.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Constraints.dump-hi
+++ /dev/null
@@ -1,25353 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:34.499779 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints [orphan module] [family instance module] 8002
-  interface hash: 1d5f53948ead1aa715da193118347014
-  ABI hash: dc475bd125456ae511f39eb7bfb576f7
-  export-list hash: 8ff2109a000830685650941885f8f564
-  orphan hash: 0b95329227c15705c19d5ec6ded91ffe
-  flag hash: 8a4e3942641b38bac41e789c3f85c794
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Constraints.addIds
-  Language.Fixpoint.Types.Constraints.allowHO
-  Language.Fixpoint.Types.Constraints.allowHOquals
-  Language.Fixpoint.Types.Constraints.convertFormat
-  Language.Fixpoint.Types.Constraints.fi
-  Language.Fixpoint.Types.Constraints.getEqBody
-  Language.Fixpoint.Types.Constraints.isGWfc
-  Language.Fixpoint.Types.Constraints.isUnsafe
-  Language.Fixpoint.Types.Constraints.ksMember
-  Language.Fixpoint.Types.Constraints.mkQual
-  Language.Fixpoint.Types.Constraints.mkSubC
-  Language.Fixpoint.Types.Constraints.qualifier
-  Language.Fixpoint.Types.Constraints.remakeQual
-  Language.Fixpoint.Types.Constraints.saveQuery
-  Language.Fixpoint.Types.Constraints.shiftVV
-  Language.Fixpoint.Types.Constraints.strengthenLhs
-  Language.Fixpoint.Types.Constraints.subC
-  Language.Fixpoint.Types.Constraints.subcId
-  Language.Fixpoint.Types.Constraints.toFixpoint
-  Language.Fixpoint.Types.Constraints.toGFixSol
-  Language.Fixpoint.Types.Constraints.trueQual
-  Language.Fixpoint.Types.Constraints.unsafe
-  Language.Fixpoint.Types.Constraints.updateWfCExpr
-  Language.Fixpoint.Types.Constraints.wfC
-  Language.Fixpoint.Types.Constraints.writeFInfo
-  Language.Fixpoint.Types.Constraints.AxiomEnv{Language.Fixpoint.Types.Constraints.AEnv aenvEqs aenvExpand aenvFuel aenvSimpl aenvSyms}
-  Language.Fixpoint.Types.Constraints.Equation{Language.Fixpoint.Types.Constraints.Equ eqArgs eqBody eqName}
-  Language.Fixpoint.Types.Constraints.FInfo
-  Language.Fixpoint.Types.Constraints.FInfoWithOpts{Language.Fixpoint.Types.Constraints.FIO fioFI fioOpts}
-  Language.Fixpoint.Types.Constraints.FixSolution
-  Language.Fixpoint.Types.Constraints.GFixSolution
-  Language.Fixpoint.Types.Constraints.GInfo{Language.Fixpoint.Types.Constraints.FI ae asserts bindInfo bs cm dLits gLits hoInfo kuts quals ws}
-  Language.Fixpoint.Types.Constraints.HOInfo{Language.Fixpoint.Types.Constraints.HOI hoBinds hoQuals}
-  Language.Fixpoint.Types.Constraints.Kuts{Language.Fixpoint.Types.Constraints.KS ksVars}
-  Language.Fixpoint.Types.Constraints.Qualifier{Language.Fixpoint.Types.Constraints.Q qBody qName qParams qPos}
-  Language.Fixpoint.Types.Constraints.Result{Language.Fixpoint.Types.Constraints.Result gresSolution resSolution resStatus}
-  Language.Fixpoint.Types.Constraints.Rewrite{Language.Fixpoint.Types.Constraints.SMeasure smArgs smBody smDC smName}
-  Language.Fixpoint.Types.Constraints.SInfo
-  Language.Fixpoint.Types.Constraints.SimpC{Language.Fixpoint.Types.Constraints.SimpC _cenv _cid _cinfo _crhs _ctag}
-  Language.Fixpoint.Types.Constraints.Solver
-  Language.Fixpoint.Types.Constraints.SubC{slhs srhs}
-  Language.Fixpoint.Types.Constraints.SubcId
-  Language.Fixpoint.Types.Constraints.Tag
-  Language.Fixpoint.Types.Constraints.TaggedC{Language.Fixpoint.Types.Constraints.clhs Language.Fixpoint.Types.Constraints.crhs Language.Fixpoint.Types.Constraints.senv Language.Fixpoint.Types.Constraints.sid Language.Fixpoint.Types.Constraints.sinfo Language.Fixpoint.Types.Constraints.stag}
-  Language.Fixpoint.Types.Constraints.WfC{Language.Fixpoint.Types.Constraints.GWfC Language.Fixpoint.Types.Constraints.WfC wenv wexpr winfo wrft}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Environments
-                     Language.Fixpoint.Types.Errors Language.Fixpoint.Types.Names
-                     Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  ensurePath 3402ad06caedf6824ca64542c1d58b7e
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  intersperse a8af56faf80774d73c5863a2e27859d2
-  mfromJust 9e6b0d26b701450ac09af8799f10f8e4
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-  tshow c3e388152c637865435def68336e9158
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-  Eliminate f93da53b7c1f267512bca3027d4e0285
-  SMTSolver 33b67c63a8c6c21d896e5eaee4e0bea5
-  metadata e7c5bb42ba9d6b155abd9a955ffc907d
-  queryFile b00beb3f0fba1d22e6a8471e27a1a604
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  exports: 0b4b7a69569980039fc5b65d426e2d6f
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-  envCs e66be8902a29b4ff6ba9a891b4078535
-  insertBindEnv 2d2a0c911406c085979b39d2332f4072
-  insertsIBindEnv 6cb2cd53df76aa50af651383f2197c38
-  lookupSEnv ebcaf832f9842b5825a8c74e9875fd33
-  toListSEnv 28b630fc2daa44cc77436b1b4a7207e8
-import  -/  Language.Fixpoint.Types.Errors d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  exports: c4470aa04bce431d939b34bcb1af3229
-  Crash 2d074087cde42a052498bc5853f5467d
-  FixResult bbcb7910102e76dd87f9706483b3612e
-  Safe 02b6ec2edcfc463fc6b110fa8662c427
-  Unsafe bbe3d3bc1296765e5746674a88488bd9
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  intSymbol e3ca25b3b5ce8f9f7ec4158e72746e1c
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolString 819d69bd3146ce4a14769a9d11f1deac
-  tempSymbol b4c8572afb1b31fcc34ec3529b1475d0
-  vv 4b45795aef057f81c9dd51fae36c4b72
-  vvCon a4b3f1f3ff639683c70d24afe93cd83a
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  DocTable 23959c774350b15e84347a7f8a8a1618
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  PTable f56e84dc8639a434ea5dee7210b75707
-  Tidy 6fdc633788cc0508dea7c363965cb87c
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  showFix 096da0098f8a576a024913fb9c478e62
-  showpp 0da0198db560727e041326beddb9a8d5
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-  kv c1246352d333802f9d4763702c5c7185
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  reftBind 60403d1dfa2da7fcf3439406c7cc5d90
-  reftConjuncts 9b4898b9eb0028ce5dcac03fa40c6500
-  reftPred 654b4f577b3cda7ef6c36c09495b0b64
-  splitEApp 39666fa8544dc0628cbd4555f7cf39f9
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  subst1 ff192c02dc885c0c57d77566090d0798
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  exports: c2522a8cb8fa0e99702ea4cacf9bcf96
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  FObj 1861a52598ccbeb2eef48dfcc16b53b2
-  FVar 1738e099f01df45ba4a7bdd19852401f
-  Sort 402c177fc699f05dd97dbf4130d9008b
-  fObj 5dd7a3d6c17c995e87cf1f88dde34207
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  exports: 7fe5850227a6e738b3508defc057da0b
-  Loc e32f649122fc8963b556302038c6ca92
-  Loc 5c898e316073c02ed4de00d3c857e47e
-  SS 0b969b36fbbffcb664c45ed3cb72e84a
-  dummyPos e32aab89d7fc10cc795bd688f402a6ee
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  exports: a573d56a0ab0c7b358ce707e661d4756
-  isEmptySubst ba20c49ceb860f94495c9a12fcf719e2
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  Language.Fixpoint.Types.Triggers 78e706fc94d14f2234498b868981d807
-  exports: c7736da3935e25870190610c933aae55
-  Triggered 0ede6587ce135bd08622314fe97bbc85
-import  -/  Language.Fixpoint.Utils.Files 00ca7654ce931c19e6d232e8db43f586
-  exports: fa819c1ab65a8419ad74769e75b8866f
-  BinFq f5bb48a507c527d6b1335aa41843ee9b
-  Fq b3a13e6bd009d29a2251a03e9320057c
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Pos 722d2dd11f7d41778d1cb0c7e9424b8c
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-4ce5a43561517e81322fa12a8fedbcab
-  $c8RZQDmnqRyL3KUMgDe5faV :: Data.Data.Constr
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                  Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_$cput
-                  Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_$cputList -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.AxiomEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.AxiomEnv r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.AxiomEnv>_R)) -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv_$cput ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S(SSSLL),1*U(U,U,U,1*U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.AEnv ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput2
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5 of ww6 { (#,#) ww7 ww8 ->
-                 (Data.Binary.Put.PairS @ () ww7 ww8)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv_$cputList ::
-    [Language.Fixpoint.Types.Constraints.AxiomEnv]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryAxiomEnv_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.AxiomEnv x
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS)),1*U(1*U(U,U),1*U(U,1*U(U,U)))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (w :: GHC.Generics.Rep
-                           Language.Fixpoint.Types.Constraints.AxiomEnv x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_AxiomEnv[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "AxiomEnv"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvSyms")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               [Language.Fixpoint.Types.Names.Symbol])
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "aenvEqs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                [Language.Fixpoint.Types.Constraints.Equation]))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "aenvSimpl")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                [Language.Fixpoint.Types.Constraints.Rewrite])
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "aenvFuel")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.Rec0
-                                                                                  (Data.HashMap.Base.HashMap
-                                                                                     Language.Fixpoint.Types.Constraints.SubcId
-                                                                                     GHC.Types.Int))
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "aenvExpand")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   (Data.HashMap.Base.HashMap
-                                                                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                                                                      GHC.Types.Bool)))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "aenvSyms")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                       GHC.Generics.:*: GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "aenvEqs")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.Rec0
-                                                             [Language.Fixpoint.Types.Constraints.Equation]))
-                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "aenvSimpl")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.Rec0
-                                                             [Language.Fixpoint.Types.Constraints.Rewrite])
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "aenvFuel")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.NoSourceStrictness
-                                                                               'GHC.Generics.DecidedLazy)
-                                                                            (GHC.Generics.Rec0
-                                                                               (Data.HashMap.Base.HashMap
-                                                                                  Language.Fixpoint.Types.Constraints.SubcId
-                                                                                  GHC.Types.Int))
-                                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                                             ('GHC.Generics.MetaSel
-                                                                                                ('GHC.Base.Just
-                                                                                                   "aenvExpand")
-                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                                'GHC.Generics.DecidedLazy)
-                                                                                             (GHC.Generics.Rec0
-                                                                                                (Data.HashMap.Base.HashMap
-                                                                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                                                                   GHC.Types.Bool))))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww4
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "aenvSyms")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                <x>_P)) of dt { DEFAULT ->
-                 case ww5
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "aenvEqs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   [Language.Fixpoint.Types.Constraints.Equation]>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                <x>_P)) of dt1 { DEFAULT ->
-                 case ww7
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "aenvSimpl")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   [Language.Fixpoint.Types.Constraints.Rewrite]>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                <x>_P)) of dt2 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.AEnv
-                   dt
-                   dt1
-                   dt2
-                   ww10
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvFuel")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId
-                                   GHC.Types.Int)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int>_R
-                             <x>_P))
-                   ww11
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvExpand")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId
-                                   GHC.Types.Bool)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool>_R
-                             <x>_P)) } } } } } } }) -}
-28380100e538e3f5ba444fc050f65065
-  $fBinaryAxiomEnv_f ::
-    [(GHC.Integer.Type.Integer, GHC.Types.Int)] -> Data.Binary.Put.Put
-  {- Unfolding: (Data.Binary.Class.$fBinary(,)_$cputList
-                   @ GHC.Integer.Type.Integer
-                   @ GHC.Types.Int
-                   Data.Binary.Class.$fBinaryInteger
-                   Data.Binary.Class.$fBinaryInt) -}
-d63eb7abf6eb66d46b7a8237a8c98b22
-  $fBinaryAxiomEnv_f1 ::
-    [(GHC.Integer.Type.Integer, GHC.Types.Bool)] -> Data.Binary.Put.Put
-  {- Unfolding: (Data.Binary.Class.$fBinary(,)_$cputList
-                   @ GHC.Integer.Type.Integer
-                   @ GHC.Types.Bool
-                   Data.Binary.Class.$fBinaryInteger
-                   Data.Binary.Class.$fBinaryBool) -}
-7bd992f5ecde24269027df8e3949192e
-  $fBinaryEliminate ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.Eliminate
-                  Language.Fixpoint.Types.Constraints.$fBinaryEliminate_$s$dmput
-                  Language.Fixpoint.Types.Constraints.$fBinaryEliminate_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryEliminate_$cputList -}
-362f07f835d24b0491d203f322c35c18
-  $fBinaryEliminate1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Config.Eliminate r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Config.Eliminate r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget3
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-86cdd7f257efeb71a874db4ff86fcc54
-  $fBinaryEliminate10 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-1fa90c702d405fe4ea456f61fd2caeb0
-  $fBinaryEliminate11 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-b20c18a872510fe2305534f955858f17
-  $fBinaryEliminate2 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            a1)
-  {- Arity: 5, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate4
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate3
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))) -}
-790a5e19d14c468738dc47aa9abd4a14
-  $fBinaryEliminate3 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "All" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-578a8196e0a262ddefdd989a56dd669c
-  $fBinaryEliminate4 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Some" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-f67f0581dde5d9f25fafb63b02976a76
-  $fBinaryEliminate5 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "None" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-a2ff91b80825aa9ed0c6a8fde0b23015
-  $fBinaryEliminate6 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Eliminate"
-            "Language.Fixpoint.Types.Config"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)))
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryEliminate7
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Eliminate"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "All"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))>_N)) -}
-a7c380a9f23587bd615dc4a22aab2305
-  $fBinaryEliminate7 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Eliminate"
-         "Language.Fixpoint.Types.Config"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            GHC.Generics.U1))
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Eliminate"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "All"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))
-                             t) ->
-                 Data.Binary.Generic.$w$cgput
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate11
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate8
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   1##
-                   2##
-                   @ t
-                   eta
-                     `cast`
-                   (GHC.Generics.N:M1[0]
-                        <GHC.Generics.D>_P
-                        <'GHC.Generics.MetaData
-                           "Eliminate"
-                           "Language.Fixpoint.Types.Config"
-                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                           'GHC.Types.False>_P
-                        <GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.C1
-                                             ('GHC.Generics.MetaCons
-                                                "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.C1
-                                                              ('GHC.Generics.MetaCons
-                                                                 "All"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              GHC.Generics.U1)>_R <t>_N)) -}
-c932be2c348c4c4526763c0a2a00904b
-  $fBinaryEliminate8 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate10
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate9
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))) -}
-52d12f4386a33f46caba4d63962f4302
-  $fBinaryEliminate9 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-afac6c49642340baf833b94caca38887
-  $fBinaryEliminate_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Config.Eliminate
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryEliminate1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Config.Eliminate>_R)) -}
-1b960d979a34794c6a2c229d94547c22
-  $fBinaryEliminate_$cputList ::
-    [Language.Fixpoint.Types.Config.Eliminate] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-e107c3e3a63171f26f503efa6add516a
-  $fBinaryEliminate_$s$dmput ::
-    Language.Fixpoint.Types.Config.Eliminate -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Constraints.$fBinaryEliminate6
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Config.Rep_Eliminate[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Config.$fGenericEliminate_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Constraints.Equation
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Equation
-                  Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cput
-                  Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cputList -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Equation r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.Equation r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget2
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.Equation
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryEquation1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.Equation>_R)) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation_$cput ::
-    Language.Fixpoint.Types.Constraints.Equation -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U(1*U(A,U(U,U,1*U),A),U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Equ ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput1
-                        ww1
-                        ww2
-                        ww3 of ww4 { (#,#) ww5 ww6 ->
-                 (Data.Binary.Put.PairS @ () ww5 ww6)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation_$cputList ::
-    [Language.Fixpoint.Types.Constraints.Equation]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fBinaryEquation_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Equation x
-    -> Language.Fixpoint.Types.Constraints.Equation
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds1 :: GHC.Generics.Rep
-                             Language.Fixpoint.Types.Constraints.Equation x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_Equation[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Equation"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "eqName")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "eqArgs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                [Language.Fixpoint.Types.Names.Symbol])
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "eqBody")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Refinements.Expr)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "eqName")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "eqArgs")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             [Language.Fixpoint.Types.Names.Symbol])
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "eqBody")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.NoSourceStrictness
-                                                                              'GHC.Generics.DecidedLazy)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Language.Fixpoint.Types.Refinements.Expr))>_R)) <x>_N) of wild { GHC.Generics.:*: ds2 ds3 ->
-                 case ds3 of wild1 { GHC.Generics.:*: ds4 ds5 ->
-                 Language.Fixpoint.Types.Constraints.Equ
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eqName")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Language.Fixpoint.Types.Names.Symbol>_R <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eqArgs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Names.Symbol]>_R
-                             <x>_P))
-                   ds5
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eqBody")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                             <x>_P)) } }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Constraints.GFixSolution
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.GFixSolution
-                  Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$dmput
-                  Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$dmget
-                  Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$cputList -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol1 ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.GFixSol e) x
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Constraints.GFixSol e) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ e
-                   @ x
-                   (ds1 :: GHC.Generics.Rep
-                             (Language.Fixpoint.Types.Constraints.GFixSol e) x) ->
-                 ds1) -}
-9bf772421b73d98d9e83931a826bed91
-  $fBinaryGFixSol2 ::
-    Data.Binary.Class.GBinaryGet
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "GFixSol"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashMap.Base.HashMap
-                     Language.Fixpoint.Types.Refinements.KVar
-                     (Language.Fixpoint.Types.Refinements.Expr,
-                      [Language.Fixpoint.Types.Refinements.Expr]))))))
-  {- Arity: 2, Strictness: <L,U><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryGFixSol3
-                  `cast`
-                (Trans
-                     (forall (t :: <*>_N).
-                      Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "GFixSol"
-                                     "Language.Fixpoint.Types.Constraints"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.True)
-                                  (GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Refinements.KVar
-                                              (Language.Fixpoint.Types.Refinements.Expr,
-                                               [Language.Fixpoint.Types.Refinements.Expr])))))
-                                  t>_R))
-                     (Sym (Data.Binary.Class.N:GBinaryGet[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "GFixSol"
-                                     "Language.Fixpoint.Types.Constraints"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.True)
-                                  (GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Refinements.KVar
-                                              (Language.Fixpoint.Types.Refinements.Expr,
-                                               [Language.Fixpoint.Types.Refinements.Expr])))))>_N))) -}
-7a2b0dea7b8659b8eb05af908e6f0b77
-  $fBinaryGFixSol3 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (GHC.Generics.M1
-            GHC.Generics.D
-            ('GHC.Generics.MetaData
-               "GFixSol"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar
-                        (Language.Fixpoint.Types.Refinements.Expr,
-                         [Language.Fixpoint.Types.Refinements.Expr])))))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <L,U><L,C(C1(U))>,
-     Unfolding: (\ @ t
-                   @ r
-                   (i1 :: Data.ByteString.Internal.ByteString)
-                   (ks :: Data.Binary.Get.Internal.Success
-                            (GHC.Generics.M1
-                               GHC.Generics.D
-                               ('GHC.Generics.MetaData
-                                  "GFixSol"
-                                  "Language.Fixpoint.Types.Constraints"
-                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                  'GHC.Types.True)
-                               (GHC.Generics.M1
-                                  GHC.Generics.C
-                                  ('GHC.Generics.MetaCons
-                                     "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0
-                                        (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar
-                                           (Language.Fixpoint.Types.Refinements.Expr,
-                                            [Language.Fixpoint.Types.Refinements.Expr])))))
-                               t)
-                            r) ->
-                 (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                    @ Language.Fixpoint.Types.Refinements.KVar
-                    @ (Language.Fixpoint.Types.Refinements.Expr,
-                       [Language.Fixpoint.Types.Refinements.Expr])
-                    Language.Fixpoint.Types.Refinements.$fHashableKVar
-                    Language.Fixpoint.Types.Refinements.$fEqKVar
-                    Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                    Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$fBinary(,))
-                   `cast`
-                 (Data.Binary.Get.Internal.N:Get[0]
-                      <Data.HashMap.Base.HashMap
-                         Language.Fixpoint.Types.Refinements.KVar
-                         (Language.Fixpoint.Types.Refinements.Expr,
-                          [Language.Fixpoint.Types.Refinements.Expr])>_R)
-                   @ r
-                   i1
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Refinements.KVar
-                               (Language.Fixpoint.Types.Refinements.Expr,
-                                [Language.Fixpoint.Types.Refinements.Expr])) ->
-                    ks
-                      i'
-                      a1
-                        `cast`
-                      (Trans
-                           (Sym (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Refinements.KVar
-                                        (Language.Fixpoint.Types.Refinements.Expr,
-                                         [Language.Fixpoint.Types.Refinements.Expr])>_R
-                                     <t>_P))
-                           (Trans
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             (Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Refinements.KVar
-                                                (Language.Fixpoint.Types.Refinements.Expr,
-                                                 [Language.Fixpoint.Types.Refinements.Expr]))>_R))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0
-                                                     (Data.HashMap.Base.HashMap
-                                                        Language.Fixpoint.Types.Refinements.KVar
-                                                        (Language.Fixpoint.Types.Refinements.Expr,
-                                                         [Language.Fixpoint.Types.Refinements.Expr])))>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.D>_P
-                                               <'GHC.Generics.MetaData
-                                                  "GFixSol"
-                                                  "Language.Fixpoint.Types.Constraints"
-                                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                  'GHC.Types.True>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        (Data.HashMap.Base.HashMap
-                                                           Language.Fixpoint.Types.Refinements.KVar
-                                                           (Language.Fixpoint.Types.Refinements.Expr,
-                                                            [Language.Fixpoint.Types.Refinements.Expr]))))>_R))) <t>_N)))) -}
-910940cf4592f2d7bbf9d246abf621de
-  $fBinaryGFixSol4 ::
-    Data.Binary.Class.Binary [Language.Fixpoint.Types.Refinements.Expr]
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$fBinary[] -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol5 ::
-    Language.Fixpoint.Types.Constraints.GFixSol e
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ e @ x (x1 :: Language.Fixpoint.Types.Constraints.GFixSol e) ->
-                 x1) -}
-9537ec260272b318ec6165e47b64eec7
-  $fBinaryGFixSol6 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "GFixSol"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashMap.Base.HashMap
-                     Language.Fixpoint.Types.Refinements.KVar
-                     (Language.Fixpoint.Types.Refinements.Expr,
-                      [Language.Fixpoint.Types.Refinements.Expr]))))))
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryGFixSol7
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "GFixSol"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashMap.Base.HashMap
-                                         Language.Fixpoint.Types.Refinements.KVar
-                                         (Language.Fixpoint.Types.Refinements.Expr,
-                                          [Language.Fixpoint.Types.Refinements.Expr])))))>_N)) -}
-bd1a5f8d4f53b7bf30e72c4bf4bd2612
-  $fBinaryGFixSol7 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "GFixSol"
-         "Language.Fixpoint.Types.Constraints"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashMap.Base.HashMap
-                  Language.Fixpoint.Types.Refinements.KVar
-                  (Language.Fixpoint.Types.Refinements.Expr,
-                   [Language.Fixpoint.Types.Refinements.Expr])))))
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "GFixSol"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashMap.Base.HashMap
-                                         Language.Fixpoint.Types.Refinements.KVar
-                                         (Language.Fixpoint.Types.Refinements.Expr,
-                                          [Language.Fixpoint.Types.Refinements.Expr])))))
-                             t) ->
-                 Data.Binary.Class.$fBinary(,)_$cputList
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ (Language.Fixpoint.Types.Refinements.Expr,
-                      [Language.Fixpoint.Types.Refinements.Expr])
-                   Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                   Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$fBinary(,)
-                   (Data.HashMap.Base.toList
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ (Language.Fixpoint.Types.Refinements.Expr,
-                         [Language.Fixpoint.Types.Refinements.Expr])
-                      eta
-                        `cast`
-                      (Trans
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "GFixSol"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                        (GHC.Generics.S1
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.Rec0
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Refinements.KVar
-                                                 (Language.Fixpoint.Types.Refinements.Expr,
-                                                  [Language.Fixpoint.Types.Refinements.Expr]))))>_R)
-                                (Trans
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Refinements.KVar
-                                                   (Language.Fixpoint.Types.Refinements.Expr,
-                                                    [Language.Fixpoint.Types.Refinements.Expr])))>_R)
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             (Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Refinements.KVar
-                                                (Language.Fixpoint.Types.Refinements.Expr,
-                                                 [Language.Fixpoint.Types.Refinements.Expr]))>_R)) <t>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar
-                                   (Language.Fixpoint.Types.Refinements.Expr,
-                                    [Language.Fixpoint.Types.Refinements.Expr])>_R
-                                <t>_P)))) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol_$cfrom ::
-    Language.Fixpoint.Types.Constraints.GFixSol e
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Constraints.GFixSol e) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryGFixSol5
-                  `cast`
-                (forall (e :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.GFixSol e>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Refinements.KVar (e, [e])>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                    (e, [e]))>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "GSol"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Data.HashMap.Base.HashMap
-                                                            Language.Fixpoint.Types.Refinements.KVar
-                                                            (e, [e])))>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "GFixSol"
-                                                           "Language.Fixpoint.Types.Constraints"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "GSol"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                                    (e, [e]))))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_GFixSol[0]
-                                                             <e>_N))))) <x>_N))) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol_$cputList ::
-    [Language.Fixpoint.Types.Constraints.GFixSolution]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.GFixSol e) x
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryGFixSol1
-                  `cast`
-                (forall (e :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep
-                    (Language.Fixpoint.Types.Constraints.GFixSol e) x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Constraints.Rep_GFixSol[0] <e>_N))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "GFixSol"
-                                            "Language.Fixpoint.Types.Constraints"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashMap.Base.HashMap
-                                                     Language.Fixpoint.Types.Refinements.KVar
-                                                     (e, [e]))))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashMap.Base.HashMap
-                                                       Language.Fixpoint.Types.Refinements.KVar
-                                                       (e, [e])))>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                    (e, [e]))>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar (e, [e])>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)))) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol_$s$dmget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.GFixSolution
-  {- Arity: 2, Strictness: <L,U><L,C(C1(U))>,
-     Unfolding: InlineRule (-3, True, False)
-                (GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (forall r.
-                      Data.ByteString.Internal.ByteString
-                      -> Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.GFixSolution r
-                      -> Data.Binary.Get.Internal.Decoder r)
-                   @ (Data.Binary.Get.Internal.Get
-                        Language.Fixpoint.Types.Constraints.GFixSolution)
-                   (\ (tpl :: forall r.
-                              Data.ByteString.Internal.ByteString
-                              -> Data.Binary.Get.Internal.Success
-                                   Language.Fixpoint.Types.Constraints.GFixSolution r
-                              -> Data.Binary.Get.Internal.Decoder r) ->
-                    tpl)
-                     `cast`
-                   (<forall r.
-                     Data.ByteString.Internal.ByteString
-                     -> Data.Binary.Get.Internal.Success
-                          Language.Fixpoint.Types.Constraints.GFixSolution r
-                     -> Data.Binary.Get.Internal.Decoder r>_R
-                    ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                  <Language.Fixpoint.Types.Constraints.GFixSolution>_R))
-                   (\ @ r
-                      (i :: Data.ByteString.Internal.ByteString)
-                      (ks :: Data.Binary.Get.Internal.Success
-                               Language.Fixpoint.Types.Constraints.GFixSolution r) ->
-                    Data.Binary.Get.Internal.runCont
-                      @ (GHC.Generics.Rep
-                           Language.Fixpoint.Types.Constraints.GFixSolution GHC.Prim.Any)
-                      (Language.Fixpoint.Types.Constraints.$fBinaryGFixSol2
-                         `cast`
-                       (Data.Binary.Class.N:GBinaryGet[0]
-                            (Sym (Language.Fixpoint.Types.Constraints.Rep_GFixSol[0]
-                                      <Language.Fixpoint.Types.Refinements.Expr>_N)))
-                         @ GHC.Prim.Any)
-                      @ r
-                      i
-                      (\ (i' :: Data.ByteString.Internal.ByteString)
-                         (a1 :: GHC.Generics.Rep
-                                  Language.Fixpoint.Types.Constraints.GFixSolution GHC.Prim.Any) ->
-                       ks
-                         i'
-                         (Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$cto
-                            @ Language.Fixpoint.Types.Refinements.Expr
-                            @ GHC.Prim.Any
-                            a1)))) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fBinaryGFixSol_$s$dmput ::
-    Language.Fixpoint.Types.Constraints.GFixSolution
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 Language.Fixpoint.Types.Constraints.$fBinaryGFixSol6
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Constraints.Rep_GFixSol[0]
-                                <Language.Fixpoint.Types.Refinements.Expr>_N)))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$cfrom
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      @ GHC.Prim.Any
-                      eta)) -}
-b3e73f715652c9e7122adc05a3bbbaaf
-  $fBinaryGFixSol_$s$fBinary(,) ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Refinements.Expr,
-       [Language.Fixpoint.Types.Refinements.Expr])
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Refinements.Expr,
-                     [Language.Fixpoint.Types.Refinements.Expr])
-                  (Data.Binary.Class.$fBinary(,)_$cput
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     @ [Language.Fixpoint.Types.Refinements.Expr]
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr
-                     Language.Fixpoint.Types.Constraints.$fBinaryGFixSol4)
-                  (Data.Binary.Class.$fBinary(,)_$cget
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     @ [Language.Fixpoint.Types.Refinements.Expr]
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr
-                     Language.Fixpoint.Types.Constraints.$fBinaryGFixSol4)
-                  (Data.Binary.Class.$fBinary(,)_$cputList
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     @ [Language.Fixpoint.Types.Refinements.Expr]
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr
-                     Language.Fixpoint.Types.Constraints.$fBinaryGFixSol4) -}
-de90b1a6cb533a83e7dac79fe224ae1f
-  $fBinaryGFixSol_$s$fBinary[] ::
-    Data.Binary.Class.Binary [Language.Fixpoint.Types.Refinements.Expr]
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [Language.Fixpoint.Types.Refinements.Expr]
-                  Language.Fixpoint.Types.Refinements.$fBinaryExpr_$cputList
-                  (Data.Binary.Class.$fBinaryInteger_$cget1
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr)
-                  (Data.Binary.Class.$fBinary[]_$cputList
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr) -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryGInfo ::
-    (Data.Binary.Class.Binary (c a), Data.Binary.Class.Binary a) =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 2, Strictness: <L,U(C(U(A,U)),U,A)><L,U(C(U(A,U)),U,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *)
-                      @ a
-                      ($dBinary :: Data.Binary.Class.Binary (c a))
-                      ($dBinary1 :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cput
-                     @ c
-                     @ a
-                     $dBinary
-                     $dBinary1)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cget
-                     @ c
-                     @ a
-                     $dBinary
-                     $dBinary1)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGInfo_$cputList
-                     @ c
-                     @ a
-                     $dBinary
-                     $dBinary1) -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryGInfo_$cget ::
-    (Data.Binary.Class.Binary (c a), Data.Binary.Class.Binary a) =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  {- Arity: 2,
-     Strictness: <L,U(C(U(A,U)),U,A)><L,U(C(U(A,U)),U,A)> -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryGInfo_$cput ::
-    (Data.Binary.Class.Binary (c a), Data.Binary.Class.Binary a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Data.Binary.Put.Put
-  {- Arity: 2,
-     Strictness: <L,U(C(U(A,U)),U,A)><L,U(C(U(A,U)),U,A)> -}
-1052549cc559e08aaa78c218edda206c
-  $fBinaryGInfo_$cputList ::
-    (Data.Binary.Class.Binary (c a), Data.Binary.Class.Binary a) =>
-    [Language.Fixpoint.Types.Constraints.GInfo c a]
-    -> Data.Binary.Put.Put
-  {- Arity: 2,
-     Strictness: <L,U(C(U(A,U)),U,A)><L,U(C(U(A,U)),U,A)> -}
-7a24b8d792e855ca223f976758f59930
-  $fBinaryHOInfo ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.HOInfo
-                  Language.Fixpoint.Types.Constraints.$fBinaryHOInfo_$cput
-                  Language.Fixpoint.Types.Constraints.$fBinaryHOInfo_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryHOInfo_$cputList -}
-7a24b8d792e855ca223f976758f59930
-  $fBinaryHOInfo1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.HOInfo r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.HOInfo r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget4
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-7a24b8d792e855ca223f976758f59930
-  $fBinaryHOInfo_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryHOInfo1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.HOInfo>_R)) -}
-7a24b8d792e855ca223f976758f59930
-  $fBinaryHOInfo_$cput ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> Data.Binary.Put.Put
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.HOI ww1 ww2 ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case Data.Binary.Class.$w$cput5 ww1 of ww3 { (#,#) ww4 ww5 ->
-                         ww5 }
-                     } in
-                     let {
-                       ds2 :: Data.ByteString.Builder.Internal.Builder
-                       = case Data.Binary.Class.$w$cput5 ww2 of ww3 { (#,#) ww4 ww5 ->
-                         ww5 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                           @ r
-                           eta))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-7a24b8d792e855ca223f976758f59930
-  $fBinaryHOInfo_$cputList ::
-    [Language.Fixpoint.Types.Constraints.HOInfo] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  Language.Fixpoint.Types.Constraints.$fBinaryKuts_$s$dmput
-                  Language.Fixpoint.Types.Constraints.$fBinaryKuts_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryKuts_$cputList -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Kuts r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.Kuts r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget5
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts2 ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.Kuts) -> x1) -}
-473d2dba970dc7aedec9fe04152ee8d8
-  $fBinaryKuts3 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Kuts"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "ksVars")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar)))))
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryKuts4
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Kuts"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "ksVars")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashSet.HashSet
-                                         Language.Fixpoint.Types.Refinements.KVar))))>_N)) -}
-4ec19ed8507e5f42dd8d4ba9d4d5b9fc
-  $fBinaryKuts4 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Kuts"
-         "Language.Fixpoint.Types.Constraints"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "ksVars")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar))))
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Kuts"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "ksVars")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashSet.HashSet
-                                         Language.Fixpoint.Types.Refinements.KVar))))
-                             t) ->
-                 Language.Fixpoint.Types.Refinements.$fBinaryKVar_$cputList
-                   (Language.Fixpoint.Types.Environments.$fBinaryHashSet7
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                      eta
-                        `cast`
-                      (Trans
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Kuts"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.S1
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "ksVars")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.Rec0
-                                              (Data.HashSet.HashSet
-                                                 Language.Fixpoint.Types.Refinements.KVar)))>_R)
-                                (Trans
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "KS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "ksVars")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                (Data.HashSet.HashSet
-                                                   Language.Fixpoint.Types.Refinements.KVar))>_R)
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "ksVars")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             (Data.HashSet.HashSet
-                                                Language.Fixpoint.Types.Refinements.KVar)>_R)) <t>_N)
-                           (Trans
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Data.HashSet.HashSet
-                                        Language.Fixpoint.Types.Refinements.KVar>_R
-                                     <t>_P)
-                                (Data.HashSet.N:HashSet[0]
-                                     <Language.Fixpoint.Types.Refinements.KVar>_N))))) -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts_$cfrom ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryKuts2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.Kuts>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashSet.HashSet
-                                            Language.Fixpoint.Types.Refinements.KVar>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "ksVars")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashSet.HashSet
-                                                    Language.Fixpoint.Types.Refinements.KVar)>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "KS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "ksVars")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Data.HashSet.HashSet
-                                                            Language.Fixpoint.Types.Refinements.KVar))>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "Kuts"
-                                                           "Language.Fixpoint.Types.Constraints"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "KS"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.True)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "ksVars")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashSet.HashSet
-                                                                    Language.Fixpoint.Types.Refinements.KVar)))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Kuts[0]))))) <x>_N))) -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryKuts1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.Kuts>_R)) -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts_$cputList ::
-    [Language.Fixpoint.Types.Constraints.Kuts] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-10aef948b5229216dcc343e2e00963d2
-  $fBinaryKuts_$s$dmput ::
-    Language.Fixpoint.Types.Constraints.Kuts -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 Language.Fixpoint.Types.Constraints.$fBinaryKuts3
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Constraints.Rep_Kuts[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Constraints.$fBinaryKuts_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fBinaryQualifier_$cput
-                  Language.Fixpoint.Types.Constraints.$fBinaryQualifier_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryQualifier_$cputList -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Qualifier r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.Qualifier r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget6
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-a9d40dd72f6100d9822016007866130c
-  $fBinaryQualifier2 :: Data.Text.Internal.Text
-  {- Strictness: x -}
-018568683e86d73fcd564ad0399855f9
-  $fBinaryQualifier3 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> Data.Binary.Put.Put
-  {- Unfolding: (Data.Binary.Class.$fBinary(,)_$cputList
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Language.Fixpoint.Types.Names.$fBinarySymbol
-                   Language.Fixpoint.Types.Sorts.$fBinarySort) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryQualifier1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.Qualifier>_R)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier_$cput ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Data.Binary.Put.Put
-  {- Arity: 1,
-     Strictness: <S(SLSS),1*U(U(A,U(U,U,1*U),A),U,U,U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case ww4 of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput3
-                        ww7
-                        ww2
-                        ww3
-                        ww10
-                        ww11
-                        ww12 of ww13 { (#,#) ww14 ww15 ->
-                 (Data.Binary.Put.PairS @ () ww14 ww15)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier_$cputList ::
-    [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fBinaryQualifier_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Qualifier x
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SL)S(SS)),1*U(1*U(U,U),1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds1 :: GHC.Generics.Rep
-                             Language.Fixpoint.Types.Constraints.Qualifier x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_Qualifier[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Qualifier"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "qName")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                          GHC.Generics.:*: GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "qParams")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                [(Language.Fixpoint.Types.Names.Symbol,
-                                                                  Language.Fixpoint.Types.Sorts.Sort)]))
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "qBody")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Refinements.Expr)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "qPos")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Text.Parsec.Pos.SourcePos)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Q" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "qName")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "qParams")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             [(Language.Fixpoint.Types.Names.Symbol,
-                                                               Language.Fixpoint.Types.Sorts.Sort)]))
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "qBody")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Refinements.Expr)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "qPos")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Text.Parsec.Pos.SourcePos))>_R)) <x>_N) of wild { GHC.Generics.:*: ds2 ds3 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds4 ds5 ->
-                 case ds3 of wild2 { GHC.Generics.:*: ds6 ds7 ->
-                 Language.Fixpoint.Types.Constraints.$WQ
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qName")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Language.Fixpoint.Types.Names.Symbol>_R <x>_P))
-                   ds5
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qParams")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                [(Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort)]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)]>_R
-                             <x>_P))
-                   ds6
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qBody")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                             <x>_P))
-                   ds7
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qPos")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P)) } } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Constraints.Rewrite
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Rewrite
-                  Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cput
-                  Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cputList -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Rewrite r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Constraints.Rewrite r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget1
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryRewrite1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.Rewrite>_R)) -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite_$cput ::
-    Language.Fixpoint.Types.Constraints.Rewrite -> Data.Binary.Put.Put
-  {- Arity: 1,
-     Strictness: <S,1*U(1*U(A,U(U,U,1*U),A),1*U(A,U(U,U,1*U),A),U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SMeasure ww1 ww2 ww3 ww4 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput
-                        ww1
-                        ww2
-                        ww3
-                        ww4 of ww5 { (#,#) ww6 ww7 ->
-                 (Data.Binary.Put.PairS @ () ww6 ww7)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite_$cputList ::
-    [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-a70f5553877272321cc8f3b254d9abac
-  $fBinaryRewrite_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Rewrite x
-    -> Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS),1*U(1*U(U,U),1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds1 :: GHC.Generics.Rep
-                             Language.Fixpoint.Types.Constraints.Rewrite x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_Rewrite[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Rewrite"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "smName")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                          GHC.Generics.:*: GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "smDC")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Names.Symbol))
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "smArgs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                [Language.Fixpoint.Types.Names.Symbol])
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "smBody")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Refinements.Expr)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "smName")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "smDC")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Names.Symbol))
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "smArgs")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             [Language.Fixpoint.Types.Names.Symbol])
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "smBody")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.NoSourceStrictness
-                                                                              'GHC.Generics.DecidedLazy)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Language.Fixpoint.Types.Refinements.Expr))>_R)) <x>_N) of wild { GHC.Generics.:*: ds2 ds3 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds4 ds5 ->
-                 case ds3 of wild2 { GHC.Generics.:*: ds6 ds7 ->
-                 Language.Fixpoint.Types.Constraints.SMeasure
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "smName")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Language.Fixpoint.Types.Names.Symbol>_R <x>_P))
-                   ds5
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "smDC")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Language.Fixpoint.Types.Names.Symbol>_R <x>_P))
-                   ds6
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "smArgs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Names.Symbol]>_R
-                             <x>_P))
-                   ds7
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "smBody")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                             <x>_P)) } } }) -}
-4378f1d3cf628a838613592da3e54392
-  $fBinarySMTSolver ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Config.SMTSolver
-                  Language.Fixpoint.Types.Constraints.$fBinarySMTSolver_$s$dmput
-                  Language.Fixpoint.Types.Constraints.$fBinarySMTSolver_$cget
-                  Language.Fixpoint.Types.Constraints.$fBinarySMTSolver_$cputList -}
-82f16651bb0c5dc68183aff3d635ff87
-  $fBinarySMTSolver1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Config.SMTSolver r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Config.SMTSolver r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget7
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-f9591d78e7c589d7487d3d4848d362a9
-  $fBinarySMTSolver10 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-64b5cac4067085fbd3648c8eceda8cb6
-  $fBinarySMTSolver11 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-76e1c0c2440125a19ecf20d55d5d990f
-  $fBinarySMTSolver2 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            a1)
-  {- Arity: 5, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver4
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver3
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))) -}
-b965e8f0d9bba2955f568f0c8683bcd3
-  $fBinarySMTSolver3 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-82f43e5e771efa410b26afb2c2fbf60b
-  $fBinarySMTSolver4 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-0ce38afc8630684dee8442fb11e36033
-  $fBinarySMTSolver5 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-01a948c41562a71371f475b7414be490
-  $fBinarySMTSolver6 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "SMTSolver"
-            "Language.Fixpoint.Types.Config"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)))
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySMTSolver7
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "SMTSolver"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Mathsat"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))>_N)) -}
-3efeb5871b182efb6a4ae2f162b31efb
-  $fBinarySMTSolver7 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "SMTSolver"
-         "Language.Fixpoint.Types.Config"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            GHC.Generics.U1))
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "SMTSolver"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Mathsat"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))
-                             t) ->
-                 Data.Binary.Generic.$w$cgput
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver11
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver8
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Mathsat"
-                                                    'GHC.Generics.PrefixI
-                                                    'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   1##
-                   2##
-                   @ t
-                   eta
-                     `cast`
-                   (GHC.Generics.N:M1[0]
-                        <GHC.Generics.D>_P
-                        <'GHC.Generics.MetaData
-                           "SMTSolver"
-                           "Language.Fixpoint.Types.Config"
-                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                           'GHC.Types.False>_P
-                        <GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.C1
-                                             ('GHC.Generics.MetaCons
-                                                "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.C1
-                                                              ('GHC.Generics.MetaCons
-                                                                 "Mathsat"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              GHC.Generics.U1)>_R <t>_N)) -}
-a0be90ece2c61113d9cacc5db22cbd22
-  $fBinarySMTSolver8 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver10
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver9
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))) -}
-c7a68e10b1f014f6c97b96e21dcf19d0
-  $fBinarySMTSolver9 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-565e6ed26f37fba309d89ecbb6877a87
-  $fBinarySMTSolver_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Config.SMTSolver
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySMTSolver1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Config.SMTSolver>_R)) -}
-065ce65a8d82329b697c441658d48f95
-  $fBinarySMTSolver_$cputList ::
-    [Language.Fixpoint.Types.Config.SMTSolver] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-8b9d50e068019cd08fc00ca9355a9a4a
-  $fBinarySMTSolver_$s$dmput ::
-    Language.Fixpoint.Types.Config.SMTSolver -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Constraints.$fBinarySMTSolver6
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Config.Rep_SMTSolver[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Config.$fGenericSMTSolver_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fBinarySimpC ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySimpC_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySimpC_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySimpC_$cputList
-                     @ a
-                     $dBinary) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fBinarySimpC1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SimpC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.SimpC a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget8
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fBinarySimpC_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySimpC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Constraints.SimpC a>_R)) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fBinarySimpC_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Constraints.SimpC a -> Data.Binary.Put.Put
-  {- Arity: 2,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SimpC ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput4
-                        @ a
-                        w
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5 of ww6 { (#,#) ww7 ww8 ->
-                 (Data.Binary.Put.PairS @ () ww7 ww8)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fBinarySimpC_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Constraints.SimpC a]
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)> -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySubC_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySubC_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinarySubC_$cputList
-                     @ a
-                     $dBinary) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SubC ()) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.SubC ()) r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$s$cget
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC2 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SubC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.SubC a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget9
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySubC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Constraints.SubC a>_R)) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Constraints.SubC a -> Data.Binary.Put.Put
-  {- Arity: 2,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S(SSSSSS),1*U(U,U(U,U(1*U(A,U(U,U,1*U),A),1*U)),U(U,U(1*U(A,U(U,U,1*U),A),1*U)),U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww3 of ww10 { Language.Fixpoint.Types.Refinements.RR ww11 ww12 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cput5
-                        @ a
-                        w
-                        ww1
-                        ww8
-                        ww9
-                        ww11
-                        ww12
-                        ww4
-                        ww5
-                        ww6 of ww13 { (#,#) ww14 ww15 ->
-                 (Data.Binary.Put.PairS @ () ww14 ww15)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } } } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Constraints.SubC a] -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)> -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$s$cget ::
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Constraints.SubC ())
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinarySubC1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Constraints.SubC ()>_R)) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$s$cput ::
-    Language.Fixpoint.Types.Constraints.SubC () -> Data.Binary.Put.Put
-  {- Arity: 1,
-     Strictness: <S(SSSSSL),1*U(U,U(U,U(1*U(A,U(U,U,1*U),A),1*U)),U(U,U(1*U(A,U(U,U,1*U),A),1*U)),U,U,A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.SubC ()) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww3 of ww10 { Language.Fixpoint.Types.Refinements.RR ww11 ww12 ->
-                 case Language.Fixpoint.Types.Constraints.$w$s$cput
-                        ww1
-                        ww8
-                        ww9
-                        ww11
-                        ww12
-                        ww4
-                        ww5 of ww13 { (#,#) ww14 ww15 ->
-                 (Data.Binary.Put.PairS @ () ww14 ww15)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } } } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$s$cputList ::
-    [Language.Fixpoint.Types.Constraints.SubC ()]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-ed16f1ec59060d74f74ea827928489f9
-  $fBinarySubC_$s$fBinarySubC ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.SubC ())
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Constraints.SubC ())
-                  Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cput
-                  Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cget
-                  Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cputList -}
-50354839b899806bfddb7dd9a816596d
-  $fBinaryWfC ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryWfC_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryWfC_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryWfC_$cputList
-                     @ a
-                     $dBinary) -}
-50354839b899806bfddb7dd9a816596d
-  $fBinaryWfC1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.WfC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.WfC a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cget10
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-50354839b899806bfddb7dd9a816596d
-  $fBinaryWfC_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Constraints.WfC a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fBinaryWfC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Constraints.WfC a>_R)) -}
-50354839b899806bfddb7dd9a816596d
-  $fBinaryWfC_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Constraints.WfC a -> Data.Binary.Put.Put
-  {- Arity: 2, Strictness: <L,U(C(U(A,U)),A,A)><S,1*U> -}
-50354839b899806bfddb7dd9a816596d
-  $fBinaryWfC_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Constraints.WfC a] -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)> -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier ::
-    Data.Data.Data Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cp1Data
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgfoldl
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgunfold
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$ctoConstr
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cdataTypeOf
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$s$dmdataCast1
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$s$dmdataCast2
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapT
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapQl
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapQr
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapQ
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapQi
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapM
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapMp
-                  Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapMo -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier1 ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> [(Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Sorts.Sort)]
-     -> Language.Fixpoint.Types.Refinements.Expr
-     -> Text.Parsec.Pos.SourcePos
-     -> Language.Fixpoint.Types.Constraints.Qualifier,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Constraints.$WQ,
-                  GHC.Types.False)) -}
-00e505afa1fdc9b95c290315c5e63445
-  $fDataQualifier2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Constraints.$fDataQualifier3) -}
-f6655ab652b320c9c0912ca1a71c2c14
-  $fDataQualifier3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Constraints.$c8RZQDmnqRyL3KUMgDe5faV
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-30b9af9ebd143f758840eff70819f3e8
-  $fDataQualifier4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Qualifier"#) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Constraints.Qualifier
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$fDataQualifier6) -}
-f7849e9be51ad20217dc213a9a1e2c6e
-  $fDataQualifier6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Constraints.$fDataQualifier7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Constraints.$tcQualifier
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-fb6f8bd566bc33f4f15555b021d2fdad
-  $fDataQualifier7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   17063145911750877268##
-                   17939819172273116513##) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cdataTypeOf ::
-    Language.Fixpoint.Types.Constraints.Qualifier -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$t7GvBXVYsSEb3K5v5sm4vWs) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> c Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S(SLSS),1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cgfoldl
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> m Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S(SLSS),1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cgmapM
-                   @ m
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> m Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U)> -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> m Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds1 :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl230 :: m Language.Fixpoint.Types.Constraints.Qualifier
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Constraints.Qualifier
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Constraints.Qualifier, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                   (case eta1 of wild { Language.Fixpoint.Types.Constraints.Q a1 a2 a3 a4 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds2 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl231 :: m d = ds1 @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds2 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds3 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds3 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl231
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ Text.Parsec.Pos.SourcePos
-                      @ Language.Fixpoint.Types.Constraints.Qualifier
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Language.Fixpoint.Types.Refinements.Expr
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Constraints.Qualifier)
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         (k @ [(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)]
-                            @ (Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Constraints.Qualifier)
-                            Language.Fixpoint.Types.Refinements.$s$fData[]
-                            (k @ Language.Fixpoint.Types.Names.Symbol
-                               @ ([(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort)]
-                                  -> Language.Fixpoint.Types.Refinements.Expr
-                                  -> Text.Parsec.Pos.SourcePos
-                                  -> Language.Fixpoint.Types.Constraints.Qualifier)
-                               Language.Fixpoint.Types.Names.$fDataSymbol
-                               (GHC.Base.return
-                                  @ m
-                                  $dMonad
-                                  @ (Language.Fixpoint.Types.Names.Symbol
-                                     -> [(Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort)]
-                                     -> Language.Fixpoint.Types.Refinements.Expr
-                                     -> Text.Parsec.Pos.SourcePos
-                                     -> Language.Fixpoint.Types.Constraints.Qualifier,
-                                     GHC.Types.Bool)
-                                  Language.Fixpoint.Types.Constraints.$fDataQualifier1)
-                                 `cast`
-                               (Sym (Data.Data.N:Mp[0]
-                                         <m>_R
-                                         <Language.Fixpoint.Types.Names.Symbol
-                                          -> [(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort)]
-                                          -> Language.Fixpoint.Types.Refinements.Expr
-                                          -> Text.Parsec.Pos.SourcePos
-                                          -> Language.Fixpoint.Types.Constraints.Qualifier>_N))
-                               a1)
-                              `cast`
-                            (Sym (Data.Data.N:Mp[0]
-                                      <m>_R
-                                      <[(Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort)]
-                                       -> Language.Fixpoint.Types.Refinements.Expr
-                                       -> Text.Parsec.Pos.SourcePos
-                                       -> Language.Fixpoint.Types.Constraints.Qualifier>_N))
-                            a2)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Language.Fixpoint.Types.Refinements.Expr
-                                    -> Text.Parsec.Pos.SourcePos
-                                    -> Language.Fixpoint.Types.Constraints.Qualifier>_N))
-                         a3)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Text.Parsec.Pos.SourcePos
-                                 -> Language.Fixpoint.Types.Constraints.Qualifier>_N))
-                      a4 })
-                   (\ (ds2 :: (Language.Fixpoint.Types.Constraints.Qualifier,
-                               GHC.Types.Bool)) ->
-                    case ds2 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl230
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Constraints.Qualifier
-                           x' } })) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Constraints.Qualifier -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ u
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$fDataQualifier_$cgmapQr
-                   @ [u]
-                   @ u
-                   (GHC.Types.: @ u)
-                   (GHC.Types.[] @ u)
-                   ds1
-                   eta) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S(SLSS),1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Constraints.Q ww3 ww4 ww5 ww6 ->
-                 Language.Fixpoint.Types.Constraints.$w$cgmapQi
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4
-                   ww5
-                   ww6 } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SLSS),1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w3 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cgmapQl
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SLSS),1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w3 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cgmapQr
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><S(SLSS),1*U(U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case w @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fDataSymbol
-                        ww1 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case w @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fDataExpr
-                        ww3 of dt1 { DEFAULT ->
-                 case w @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww4 of dt2 { Text.Parsec.Pos.SourcePos ipv3 ipv4 ipv5 ->
-                 Language.Fixpoint.Types.Constraints.Q
-                   dt
-                   (w @ [(Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Sorts.Sort)]
-                      Language.Fixpoint.Types.Refinements.$s$fData[]
-                      ww2)
-                   dt1
-                   dt2 } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 Language.Fixpoint.Types.Constraints.$w$cgunfold @ c w w1) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fDataQualifier5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Constraints.Qualifier>_N)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$ctoConstr ::
-    Language.Fixpoint.Types.Constraints.Qualifier -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Q ds2 ds3 ds4 ds5 ->
-                 Language.Fixpoint.Types.Constraints.$c8RZQDmnqRyL3KUMgDe5faV }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Constraints.Qualifier)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds1 :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing
-                   @ (c Language.Fixpoint.Types.Constraints.Qualifier)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fDataQualifier_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Constraints.Qualifier)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds1 :: forall d e.
-                           (Data.Data.Data d, Data.Data.Data e) =>
-                           c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c Language.Fixpoint.Types.Constraints.Qualifier)) -}
-1052549cc559e08aaa78c218edda206c
-  $fEqAxiomEnv ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                  Language.Fixpoint.Types.Constraints.$fEqAxiomEnv_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqAxiomEnv_$c/= -}
-1052549cc559e08aaa78c218edda206c
-  $fEqAxiomEnv_$c/= ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SSSLL),1*U(U,U,U,1*U,1*U)><S(SSSLL),1*U(U,U,U,1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (b :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqAxiomEnv_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-1052549cc559e08aaa78c218edda206c
-  $fEqAxiomEnv_$c== ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SSSLL),1*U(U,U,U,1*U,1*U)><S(SSSLL),1*U(U,U,U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.AEnv ww1 ww2 ww3 ww4 ww5 ->
-                 case w1 of ww6 { Language.Fixpoint.Types.Constraints.AEnv ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 } }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fEqEquation ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Constraints.Equation
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Equation
-                  Language.Fixpoint.Types.Constraints.$fEqEquation_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqEquation_$c/= -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fEqEquation_$c/= ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> Language.Fixpoint.Types.Constraints.Equation -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LL),1*U(1*U(U,A,A),1*U,1*U)><S(S(SLL)LL),1*U(1*U(U,A,A),1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Constraints.Equation)
-                   (b :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqEquation_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fEqEquation_$c== ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> Language.Fixpoint.Types.Constraints.Equation -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LL),1*U(1*U(U,A,A),1*U,1*U)><S(S(SLL)LL),1*U(1*U(U,A,A),1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Equation)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Equ ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Constraints.Equ ww9 ww10 ww11 ->
-                 case ww9 of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==2
-                   ww5
-                   ww2
-                   ww3
-                   ww13
-                   ww10
-                   ww11 } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fEqGInfo ::
-    (GHC.Classes.Eq (c a), GHC.Classes.Eq a) =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *)
-                      @ a
-                      ($dEq :: GHC.Classes.Eq (c a))
-                      ($dEq1 :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                  (Language.Fixpoint.Types.Constraints.$fEqGInfo_$c==
-                     @ c
-                     @ a
-                     $dEq
-                     $dEq1)
-                  (Language.Fixpoint.Types.Constraints.$fEqGInfo_$c/=
-                     @ c
-                     @ a
-                     $dEq
-                     $dEq1) -}
-1052549cc559e08aaa78c218edda206c
-  $fEqGInfo_$c/= ::
-    (GHC.Classes.Eq (c a), GHC.Classes.Eq a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><L,U(C(C1(U)),A)><S(SSSSSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))><S(SSSSSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   ($dEq :: GHC.Classes.Eq (c a))
-                   ($dEq1 :: GHC.Classes.Eq a)
-                   (a1 :: Language.Fixpoint.Types.Constraints.GInfo c a)
-                   (b :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqGInfo_$c==
-                        @ c
-                        @ a
-                        $dEq
-                        $dEq1
-                        a1
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-1052549cc559e08aaa78c218edda206c
-  $fEqGInfo_$c== ::
-    (GHC.Classes.Eq (c a), GHC.Classes.Eq a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><L,U(C(C1(U)),A)><S(SSSSSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))><S(SSSSSSSSSSL),1*U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: GHC.Classes.Eq (c a))
-                   (w1 :: GHC.Classes.Eq a)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a)
-                   (w3 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 case ww9 of ww15 { Language.Fixpoint.Types.Constraints.HOI ww16 ww17 ->
-                 case w3 of ww18 { Language.Fixpoint.Types.Constraints.FI ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ->
-                 case ww21 of ww30 { Language.Fixpoint.Types.Environments.BE ww31 ww32 ->
-                 case ww27 of ww33 { Language.Fixpoint.Types.Constraints.HOI ww34 ww35 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==3
-                   @ c
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww13
-                   ww14
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww16
-                   ww17
-                   ww10
-                   ww11
-                   ww19
-                   ww20
-                   ww31
-                   ww32
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww34
-                   ww35
-                   ww28
-                   ww29 } } } } } }) -}
-7a24b8d792e855ca223f976758f59930
-  $fEqHOInfo ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.HOInfo
-                  Language.Fixpoint.Types.Constraints.$fEqHOInfo_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqHOInfo_$c/= -}
-7a24b8d792e855ca223f976758f59930
-  $fEqHOInfo_$c/= ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-    -> Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SL),1*U(1*U,1*U)><S(SL),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (b :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqHOInfo_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-7a24b8d792e855ca223f976758f59930
-  $fEqHOInfo_$c== ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-    -> Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SL),1*U(1*U,1*U)><S(SL),1*U(1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (w1 :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.HOI ww1 ww2 ->
-                 case w1 of ww3 { Language.Fixpoint.Types.Constraints.HOI ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==4 ww1 ww2 ww4 ww5 } }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fEqKuts :: GHC.Classes.Eq Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  Language.Fixpoint.Types.Constraints.$fEqKuts_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqKuts_$c/= -}
-10aef948b5229216dcc343e2e00963d2
-  $fEqKuts_$c/= ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fEqKuts_$s$fEqHashSet_$c/=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-10aef948b5229216dcc343e2e00963d2
-  $fEqKuts_$c== ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fEqKuts_$s$fEqHashSet_$c==
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-616aa2c3681167b1f5b40e6d50e527d6
-  $fEqKuts_$s$fEqHashSet_$c/= ::
-    Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Refinements.KVar)
-                   (y :: Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Refinements.KVar) ->
-                 GHC.Classes.not
-                   (Data.HashMap.Base.equalKeys
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ ()
-                      @ ()
-                      Language.Fixpoint.Types.Refinements.$fEqKVar_$c==
-                      x `cast`
-                      (Data.HashSet.N:HashSet[0]
-                           <Language.Fixpoint.Types.Refinements.KVar>_N)
-                      y `cast`
-                      (Data.HashSet.N:HashSet[0]
-                           <Language.Fixpoint.Types.Refinements.KVar>_N))) -}
-081742746f248f2f51f598947d8ed1d6
-  $fEqKuts_$s$fEqHashSet_$c== ::
-    Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (ds1 :: Data.HashSet.HashSet
-                             Language.Fixpoint.Types.Refinements.KVar)
-                   (ds2 :: Data.HashSet.HashSet
-                             Language.Fixpoint.Types.Refinements.KVar) ->
-                 Data.HashMap.Base.equalKeys
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ ()
-                   @ ()
-                   Language.Fixpoint.Types.Refinements.$fEqKVar_$c==
-                   ds1
-                     `cast`
-                   (Data.HashSet.N:HashSet[0]
-                        <Language.Fixpoint.Types.Refinements.KVar>_N)
-                   ds2
-                     `cast`
-                   (Data.HashSet.N:HashSet[0]
-                        <Language.Fixpoint.Types.Refinements.KVar>_N)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fEqQualifier ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fEqQualifier_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqQualifier_$c/= -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fEqQualifier_$c/= ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Constraints.Qualifier -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LSS),1*U(U(U,A,A),1*U,U,U(1*U,U,U))><S(S(SLL)LSS),1*U(U(U,A,A),1*U,U,U(1*U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (b :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqQualifier_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fEqQualifier_$c== ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Constraints.Qualifier -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LSS),1*U(U(U,A,A),1*U,U,U(1*U,U,U))><S(S(SLL)LSS),1*U(U(U,A,A),1*U,U,U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case ww4 of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                 case w1 of ww13 { Language.Fixpoint.Types.Constraints.Q ww14 ww15 ww16 ww17 ->
-                 case ww14 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 case ww17 of ww22 { Text.Parsec.Pos.SourcePos ww23 ww24 ww25 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==5
-                   ww6
-                   ww2
-                   ww3
-                   ww10
-                   ww11
-                   ww12
-                   ww19
-                   ww15
-                   ww16
-                   ww23
-                   ww24
-                   ww25 } } } } } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fEqRewrite ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Constraints.Rewrite
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Rewrite
-                  Language.Fixpoint.Types.Constraints.$fEqRewrite_$c==
-                  Language.Fixpoint.Types.Constraints.$fEqRewrite_$c/= -}
-a70f5553877272321cc8f3b254d9abac
-  $fEqRewrite_$c/= ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> Language.Fixpoint.Types.Constraints.Rewrite -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LLL),1*U(1*U(U,A,A),1*U(U,A,A),1*U,1*U)><S(S(SLL)LLL),1*U(1*U(U,A,A),1*U(U,A,A),1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Constraints.Rewrite)
-                   (b :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqRewrite_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fEqRewrite_$c== ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> Language.Fixpoint.Types.Constraints.Rewrite -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)LLL),1*U(1*U(U,A,A),1*U(U,A,A),1*U,1*U)><S(S(SLL)LLL),1*U(1*U(U,A,A),1*U(U,A,A),1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Rewrite)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SMeasure ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case w1 of ww9 { Language.Fixpoint.Types.Constraints.SMeasure ww10 ww11 ww12 ww13 ->
-                 case ww10 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==1
-                   ww6
-                   ww2
-                   ww3
-                   ww4
-                   ww15
-                   ww11
-                   ww12
-                   ww13 } } } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fEqSubC ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fEqSubC_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Constraints.$fEqSubC_$c/= @ a $dEq) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fEqSubC_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.SubC a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S(SSSSSS),1*U(U,U(U,U(1*U(U,A,A),1*U)),U(U,U(1*U(U,A,A),1*U)),U,U,U)><S(SSSSSS),1*U(U,U(U,U(1*U(U,A,A),1*U)),U(U,U(1*U(U,A,A),1*U)),U,U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (a1 :: Language.Fixpoint.Types.Constraints.SubC a)
-                   (b :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqSubC_$c==
-                        @ a
-                        $dEq
-                        a1
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fEqSubC_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.SubC a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S(SSSSSS),1*U(U,U(U,U(1*U(U,A,A),1*U)),U(U,U(1*U(U,A,A),1*U)),U,U,U)><S(SSSSSS),1*U(U,U(U,U(1*U(U,A,A),1*U)),U(U,U(1*U(U,A,A),1*U)),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a)
-                   (w2 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww3 of ww10 { Language.Fixpoint.Types.Refinements.RR ww11 ww12 ->
-                 case w2 of ww13 { Language.Fixpoint.Types.Constraints.SubC ww14 ww15 ww16 ww17 ww18 ww19 ->
-                 case ww15 of ww20 { Language.Fixpoint.Types.Refinements.RR ww21 ww22 ->
-                 case ww16 of ww23 { Language.Fixpoint.Types.Refinements.RR ww24 ww25 ->
-                 Language.Fixpoint.Types.Constraints.$w$c==6
-                   @ a
-                   w
-                   ww1
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww4
-                   ww5
-                   ww6
-                   ww14
-                   ww21
-                   ww22
-                   ww24
-                   ww25
-                   ww17
-                   ww18
-                   ww19 } } } } } }) -}
-50354839b899806bfddb7dd9a816596d
-  $fEqWfC ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fEqWfC_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Constraints.$fEqWfC_$c/= @ a $dEq) -}
-50354839b899806bfddb7dd9a816596d
-  $fEqWfC_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Constraints.WfC a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S,1*U><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (a1 :: Language.Fixpoint.Types.Constraints.WfC a)
-                   (b :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case Language.Fixpoint.Types.Constraints.$fEqWfC_$c==
-                        @ a
-                        $dEq
-                        a1
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-50354839b899806bfddb7dd9a816596d
-  $fEqWfC_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Constraints.WfC a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S,1*U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (ds1 :: Language.Fixpoint.Types.Constraints.WfC a)
-                   (ds2 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC a1 a2 a3
-                   -> case ds2 of wild1 {
-                        Language.Fixpoint.Types.Constraints.WfC b1 b2 b3
-                        -> case Data.HashMap.Base.equalKeys
-                                  @ GHC.Types.Int
-                                  @ GHC.Types.Int
-                                  @ ()
-                                  @ ()
-                                  GHC.Classes.eqInt
-                                  a1
-                                    `cast`
-                                  (Trans
-                                       (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                       (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                                  b1
-                                    `cast`
-                                  (Trans
-                                       (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                       (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case a2 of ww { (,,) ww1 ww2 ww3 ->
-                                case b2 of ww4 { (,,) ww5 ww6 ww7 ->
-                                case ww1 of wild3 { Language.Fixpoint.Types.Names.S dt ds3 ds4 ->
-                                case ww5 of wild4 { Language.Fixpoint.Types.Names.S dt1 ds5 ds6 ->
-                                case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                            ww2
-                                            ww6 of wild6 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case ww3
-                                                 `cast`
-                                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild7 { Language.Fixpoint.Types.Names.S dt2 ds7 ds8 ->
-                                          case ww7
-                                                 `cast`
-                                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild8 { Language.Fixpoint.Types.Names.S dt3 ds9 ds10 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# dt2 dt3) of wild9 {
-                                            GHC.Types.False -> GHC.Types.False
-                                            GHC.Types.True
-                                            -> GHC.Classes.== @ a $dEq a3 b3 } } } } } } } } } }
-                        Language.Fixpoint.Types.Constraints.GWfC ipv ipv1 ipv2 ipv3
-                        -> GHC.Types.False }
-                   Language.Fixpoint.Types.Constraints.GWfC a1 a2 a3 a4
-                   -> case a2 of ww { (,,) ww1 ww2 ww3 ->
-                      case ds2 of wild1 {
-                        Language.Fixpoint.Types.Constraints.WfC ipv ipv1 ipv2
-                        -> GHC.Types.False
-                        Language.Fixpoint.Types.Constraints.GWfC b1 b2 b3 b4
-                        -> case b2 of ww4 { (,,) ww5 ww6 ww7 ->
-                           case Data.HashMap.Base.equalKeys
-                                  @ GHC.Types.Int
-                                  @ GHC.Types.Int
-                                  @ ()
-                                  @ ()
-                                  GHC.Classes.eqInt
-                                  a1
-                                    `cast`
-                                  (Trans
-                                       (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                       (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                                  b1
-                                    `cast`
-                                  (Trans
-                                       (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                       (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case ww1 of wild3 { Language.Fixpoint.Types.Names.S dt ds3 ds4 ->
-                                case ww5 of wild4 { Language.Fixpoint.Types.Names.S dt1 ds5 ds6 ->
-                                case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# dt dt1) of wild5 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                            ww2
-                                            ww6 of wild6 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case ww3
-                                                 `cast`
-                                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild7 { Language.Fixpoint.Types.Names.S dt2 ds7 ds8 ->
-                                          case ww7
-                                                 `cast`
-                                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild8 { Language.Fixpoint.Types.Names.S dt3 ds9 ds10 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# dt2 dt3) of wild9 {
-                                            GHC.Types.False -> GHC.Types.False
-                                            GHC.Types.True
-                                            -> case GHC.Classes.== @ a $dEq a3 b3 of wild10 {
-                                                 GHC.Types.False -> GHC.Types.False
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                                      a4
-                                                      b4 } } } } } } } } } } } } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointFixResult ::
-    (GHC.Classes.Ord a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Errors.FixResult
-         (Language.Fixpoint.Types.Constraints.SubC a))
-  DFunId
-  {- Arity: 2, Strictness: <L,U(A,C(C1(U)),A,A,A,A,A,A)><L,U(U,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dOrd :: GHC.Classes.Ord a)
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Errors.FixResult
-                       (Language.Fixpoint.Types.Constraints.SubC a))
-                  (Language.Fixpoint.Types.Constraints.$fFixpointFixResult_$ctoFix
-                     @ a
-                     $dOrd
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointFixResult_$csimplify
-                     @ a
-                     $dOrd
-                     $dFixpoint) -}
-0433b7777d8ee7d08e88d7d4e800ea57
-  $fFixpointFixResult1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "WARNING: "#) -}
-a9ac0a2653ebee45e047a3afef41140b
-  $fFixpointFixResult2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fFixpointFixResult3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-e74ccb1f3e459c19611448a6977a83ce
-  $fFixpointFixResult3 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s) -}
-8d1a79922ddc65fb1393fbd0eda94aa5
-  $fFixpointFixResult4 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fFixpointFixResult5
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-0d409a41c020717d1b89d9999d61ee10
-  $fFixpointFixResult5 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s1) -}
-c73902b3a41120916973d26dc79802c5
-  $fFixpointFixResult6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "CRASH: "#) -}
-f3a71047e9c0627073edbb1f2ab79db2
-  $fFixpointFixResult7 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fFixpointFixResult8
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-8af1774b0dae825c69ef7f429f3abacb
-  $fFixpointFixResult8 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fFixpointFixResult_s2) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointFixResult_$csimplify ::
-    (GHC.Classes.Ord a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Errors.FixResult
-      (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Language.Fixpoint.Types.Errors.FixResult
-         (Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><L,A><S,1*U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult
-                             (Language.Fixpoint.Types.Constraints.SubC a)) ->
-                 eta) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointFixResult_$ctoFix ::
-    (GHC.Classes.Ord a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Errors.FixResult
-      (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3,
-     Strictness: <L,1*U(A,1*C(C1(U)),A,A,A,A,A,A)><L,1*U(1*U,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: Language.Fixpoint.Types.Errors.FixResult
-                             (Language.Fixpoint.Types.Constraints.SubC a)) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Errors.Crash xs msg
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                             @ ()
-                             (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                @ ()
-                                (GHC.Types.:
-                                   @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                   Language.Fixpoint.Types.Constraints.$fFixpointFixResult7
-                                     `cast`
-                                   (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                   (let {
-                                      z1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                                      = case GHC.List.$wlenAcc
-                                               @ GHC.Types.Char
-                                               msg
-                                               0# of ww2 { DEFAULT ->
-                                        Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                          @ ()
-                                          (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                             @ ()
-                                             Text.PrettyPrint.HughesPJ.lparen1
-                                             GHC.Types.False
-                                             (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                @ ()
-                                                (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                                   @ ()
-                                                   (Text.PrettyPrint.Annotated.HughesPJ.Str msg)
-                                                   ww2)
-                                                (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())))
-                                          GHC.Types.False
-                                          Text.PrettyPrint.HughesPJ.parens1 }
-                                    } in
-                                    let {
-                                      z2 :: [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                                      = GHC.Types.:
-                                          @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          z1
-                                          (GHC.Types.[]
-                                             @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                    } in
-                                    letrec {
-                                      go49 :: [Text.PrettyPrint.HughesPJ.Doc]
-                                              -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                                        {- Arity: 1, Strictness: <S,1*U> -}
-                                      = \ (ds2 :: [Text.PrettyPrint.HughesPJ.Doc]) ->
-                                        case ds2 of wild1 {
-                                          [] -> z2
-                                          : y ys
-                                          -> GHC.Types.:
-                                               @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                               y `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                               (go49 ys) }
-                                    } in
-                                    go49
-                                      (Language.Fixpoint.Types.Constraints.pprSinfos
-                                         @ a
-                                         $dOrd
-                                         $dFixpoint
-                                         Language.Fixpoint.Types.Constraints.$fFixpointFixResult6
-                                         xs)))) of ww { (#,#) ww1 ww2 ->
-                      ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Constraints.$fFixpointFixResult4
-                   Language.Fixpoint.Types.Errors.Unsafe xs
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                             @ ()
-                             (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                @ ()
-                                (Language.Fixpoint.Types.Constraints.$fFixpointFixResult_go
-                                   (GHC.Types.:
-                                      @ Text.PrettyPrint.HughesPJ.Doc
-                                      Language.Fixpoint.Types.Constraints.$fFixpointFixResult2
-                                      (Language.Fixpoint.Types.Constraints.pprSinfos
-                                         @ a
-                                         $dOrd
-                                         $dFixpoint
-                                         Language.Fixpoint.Types.Constraints.$fFixpointFixResult1
-                                         xs)))) of ww { (#,#) ww1 ww2 ->
-                      ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-3e786a4ebad25d198f71dcf938e05981
-  $fFixpointFixResult_go ::
-    [Text.PrettyPrint.HughesPJ.Doc]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-5a8e46208eb29b3da5d95a54cae4351f
-  $fFixpointFixResult_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Unsafe:"#) -}
-9f7846b6e9a0a21809481ee4bcfb8012
-  $fFixpointFixResult_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Safe"#) -}
-cf4286877e26edc36eed2971e8a7b592
-  $fFixpointFixResult_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Crash!"#) -}
-10aef948b5229216dcc343e2e00963d2
-  $fFixpointKuts ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  Language.Fixpoint.Types.Constraints.$fFixpointKuts_$ctoFix
-                  Language.Fixpoint.Types.Constraints.$fFixpointKuts_$s$dmsimplify -}
-10aef948b5229216dcc343e2e00963d2
-  $fFixpointKuts_$ctoFix ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds1 :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Language.Fixpoint.Types.Constraints.$fFixpointKuts_go1
-                              (GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                              ds1
-                                `cast`
-                              (Trans
-                                   (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                                   (Data.HashSet.N:HashSet[0]
-                                        <Language.Fixpoint.Types.Refinements.KVar>_N)))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fFixpointKuts_$s$dmsimplify ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Constraints.Kuts) -}
-b95469a9e1b1eae53a8da0ae96192a98
-  $fFixpointKuts_go1 ::
-    [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 2, Strictness: <L,U><S,1*U> -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fFixpointQualifier ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fFixpointQualifier_$ctoFix
-                  Language.Fixpoint.Types.Constraints.$fFixpointQualifier_$s$dmsimplify -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fFixpointQualifier_$ctoFix ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1,
-     Strictness: <S(S(LS(SSS)L)SSS(SSS)),1*U(U(A,U(U,U,U),A),1*U,U,U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case ww7 of ww9 { Data.Text.Internal.Text ww10 ww11 ww12 ->
-                 case ww4 of ww13 { Text.Parsec.Pos.SourcePos ww14 ww15 ww16 ->
-                 Language.Fixpoint.Types.Constraints.$w$ctoFix
-                   ww10
-                   ww11
-                   ww12
-                   ww2
-                   ww3
-                   ww14
-                   ww15
-                   ww16 } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fFixpointQualifier_$s$dmsimplify ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Constraints.Qualifier) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFixpointSimpC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointSimpC_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointSimpC_$csimplify
-                     @ a
-                     $dFixpoint) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFixpointSimpC1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U(U,U,U,U,U)> -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFixpointSimpC_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 eta) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFixpointSimpC_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U(U,U,U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fFixpointSimpC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SimpC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointSubC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointSubC_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointSubC_$csimplify
-                     @ a
-                     $dFixpoint) -}
-3f58ba2fb75ba78f8ccb59e368a18e03
-  $fFixpointSubC1 ::
-    Language.Fixpoint.Types.Constraints.SubC ()
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 1,
-     Strictness: <L,U(U,U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U,U,A)> -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointSubC2 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 2,
-     Strictness: <L,1*U(1*C1(U),A)><L,U(U,U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U,U,U)> -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointSubC_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U(U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 eta) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFixpointSubC_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <L,1*U(1*C1(U),A)><L,U(U,U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U)),U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fFixpointSubC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SubC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-50354839b899806bfddb7dd9a816596d
-  $fFixpointWfC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointWfC_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fFixpointWfC_$csimplify
-                     @ a
-                     $dFixpoint) -}
-b4ab521530ff2ce982b9cfb1d343f01f
-  $fFixpointWfC1 ::
-    Language.Fixpoint.Types.Constraints.WfC ()
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 1, Strictness: <L,U> -}
-50354839b899806bfddb7dd9a816596d
-  $fFixpointWfC2 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U> -}
-50354839b899806bfddb7dd9a816596d
-  $fFixpointWfC_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Constraints.WfC a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 eta) -}
-50354839b899806bfddb7dd9a816596d
-  $fFixpointWfC_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fFixpointWfC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.WfC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fFunctorGFixSol ::
-    GHC.Base.Functor Language.Fixpoint.Types.Constraints.GFixSol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.GFixSol
-                  Language.Fixpoint.Types.Constraints.$fFunctorGFixSol_$cfmap
-                  Language.Fixpoint.Types.Constraints.$fFunctorGFixSol_$c<$ -}
-1de0e7882069f13222c6effa6f71fad5
-  $fFunctorGFixSol1 ::
-    a
-    -> Language.Fixpoint.Types.Constraints.GFixSol b
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar (a, [a])
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ b
-                   @ a
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.GFixSol b) ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorGFixSol2
-                   @ b
-                   @ a
-                   (\ (ds1 :: b) -> eta)
-                   eta1) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fFunctorGFixSol2 ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.GFixSol a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar (b, [b])
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-1de0e7882069f13222c6effa6f71fad5
-  $fFunctorGFixSol_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Constraints.GFixSol b
-    -> Language.Fixpoint.Types.Constraints.GFixSol a
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a @ b ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorGFixSol1 @ b @ a)
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.GFixSol b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                               <a>_R)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fFunctorGFixSol_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.GFixSol a
-    -> Language.Fixpoint.Types.Constraints.GFixSol b
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fFunctorGFixSol2
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> b>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.GFixSol a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                               <b>_R)) -}
-1052549cc559e08aaa78c218edda206c
-  $fFunctorGInfo ::
-    GHC.Base.Functor c =>
-    GHC.Base.Functor (Language.Fixpoint.Types.Constraints.GInfo c)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *) ($dFunctor :: GHC.Base.Functor c).
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c)
-                  (Language.Fixpoint.Types.Constraints.$fFunctorGInfo_$cfmap
-                     @ c
-                     $dFunctor)
-                  (Language.Fixpoint.Types.Constraints.$fFunctorGInfo_$c<$
-                     @ c
-                     $dFunctor) -}
-1052549cc559e08aaa78c218edda206c
-  $fFunctorGInfo_$c<$ ::
-    GHC.Base.Functor c =>
-    forall a b.
-    a
-    -> Language.Fixpoint.Types.Constraints.GInfo c b
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 3,
-     Strictness: <L,1*U(1*C1(U),A)><L,U><S(SSSSSSSSSSL),1*U(U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   ($dFunctor :: GHC.Base.Functor c)
-                   @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.GInfo c b) ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorGInfo_$cfmap
-                   @ c
-                   $dFunctor
-                   @ b
-                   @ a
-                   (\ (ds1 :: b) -> eta)
-                   eta1) -}
-1052549cc559e08aaa78c218edda206c
-  $fFunctorGInfo_$cfmap ::
-    GHC.Base.Functor c =>
-    forall a b.
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c b
-  {- Arity: 3,
-     Strictness: <L,1*U(1*C1(U),A)><L,U><S(SSSSSSSSSSL),1*U(U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: GHC.Base.Functor c)
-                   @ a
-                   @ b
-                   (w1 :: a -> b)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Constraints.$w$cfmap
-                   @ c
-                   w
-                   @ a
-                   @ b
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 }) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFunctorSimpC ::
-    GHC.Base.Functor Language.Fixpoint.Types.Constraints.SimpC
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.SimpC
-                  Language.Fixpoint.Types.Constraints.$fFunctorSimpC_$cfmap
-                  Language.Fixpoint.Types.Constraints.$fFunctorSimpC_$s$dm<$ -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFunctorSimpC_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Constraints.SimpC b
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U)><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (f1 :: a -> b)
-                   (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC a1 a2 a3 a4 a5 ->
-                 case f1 a5 of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.SimpC
-                   @ b
-                   a1
-                   a2
-                   a3
-                   a4
-                   dt } }) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fFunctorSimpC_$s$dm<$ ::
-    a
-    -> Language.Fixpoint.Types.Constraints.SimpC b
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,1*U><S(SSSSL),1*U(U,U,U,U,A)>m,
-     Unfolding: InlineRule (-1, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.SimpC b) ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorSimpC_$cfmap
-                   @ b
-                   @ a
-                   (GHC.Base.const @ a @ b eta)
-                   eta1) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFunctorSubC ::
-    GHC.Base.Functor Language.Fixpoint.Types.Constraints.SubC
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.SubC
-                  Language.Fixpoint.Types.Constraints.$fFunctorSubC_$cfmap
-                  Language.Fixpoint.Types.Constraints.$fFunctorSubC_$s$dm<$ -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFunctorSubC_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.SubC b
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U)><S(SSSSSS),1*U(U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (f1 :: a -> b)
-                   (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC a1 a2 a3 a4 a5 a6 ->
-                 case f1 a6 of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.SubC
-                   @ b
-                   a1
-                   a2
-                   a3
-                   a4
-                   a5
-                   dt } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fFunctorSubC_$s$dm<$ ::
-    a
-    -> Language.Fixpoint.Types.Constraints.SubC b
-    -> Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,1*U><S(SSSSSL),1*U(U,U,U,U,U,A)>m,
-     Unfolding: InlineRule (-1, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.SubC b) ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorSubC_$cfmap
-                   @ b
-                   @ a
-                   (GHC.Base.const @ a @ b eta)
-                   eta1) -}
-50354839b899806bfddb7dd9a816596d
-  $fFunctorWfC ::
-    GHC.Base.Functor Language.Fixpoint.Types.Constraints.WfC
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.WfC
-                  Language.Fixpoint.Types.Constraints.$fFunctorWfC_$cfmap
-                  Language.Fixpoint.Types.Constraints.$fFunctorWfC_$s$dm<$ -}
-50354839b899806bfddb7dd9a816596d
-  $fFunctorWfC_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Constraints.WfC b
-  {- Arity: 2, HasNoCafRefs, Strictness: <C(S),1*C1(U)><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f1 :: a -> b)
-                   (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC a1 a2 a3
-                   -> case f1 a3 of dt { DEFAULT ->
-                      Language.Fixpoint.Types.Constraints.WfC @ b a1 a2 dt }
-                   Language.Fixpoint.Types.Constraints.GWfC a1 a2 a3 a4
-                   -> case f1 a3 of dt { DEFAULT ->
-                      Language.Fixpoint.Types.Constraints.GWfC @ b a1 a2 dt a4 } }) -}
-50354839b899806bfddb7dd9a816596d
-  $fFunctorWfC_$s$dm<$ ::
-    a
-    -> Language.Fixpoint.Types.Constraints.WfC b
-    -> Language.Fixpoint.Types.Constraints.WfC a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.WfC b) ->
-                 Language.Fixpoint.Types.Constraints.$fFunctorWfC_$cfmap
-                   @ b
-                   @ a
-                   (GHC.Base.const @ a @ b eta)
-                   eta1) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericAxiomEnv ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                  Language.Fixpoint.Types.Constraints.$fGenericAxiomEnv_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_$cto -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericAxiomEnv1 ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "aenvSyms")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedStrict)
-             (GHC.Generics.K1
-                GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-           GHC.Generics.:*: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvEqs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Constraints.Equation]))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvSimpl")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Constraints.Rewrite])
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvFuel")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   (Data.HashMap.Base.HashMap
-                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                      GHC.Types.Int))
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "aenvExpand")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    (Data.HashMap.Base.HashMap
-                                                                       Language.Fixpoint.Types.Constraints.SubcId
-                                                                       GHC.Types.Bool)))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSSLL),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.AEnv g1 g2 g3 g4 g5 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "aenvSyms")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "aenvEqs")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             [Language.Fixpoint.Types.Constraints.Equation]))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "aenvSimpl")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R [Language.Fixpoint.Types.Constraints.Rewrite])
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "aenvFuel")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Constraints.SubcId
-                                                 GHC.Types.Int))
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "aenvExpand")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               (Data.HashMap.Base.HashMap
-                                                                  Language.Fixpoint.Types.Constraints.SubcId
-                                                                  GHC.Types.Bool))))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvSyms")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvEqs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Constraints.Equation]))
-                       @ x
-                       g1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "aenvSyms")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Names.Symbol]>_R) <x>_N))
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "aenvEqs")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Constraints.Equation]>_R) <x>_N)))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvSimpl")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Constraints.Rewrite]))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvFuel")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R
-                               (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvExpand")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   GHC.Types.Bool)))
-                       @ x
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "aenvSimpl")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Constraints.Rewrite]>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "aenvFuel")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "aenvExpand")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool)))
-                          @ x
-                          g4
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Constraints.SubcId
-                                            GHC.Types.Int>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "aenvFuel")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Data.HashMap.Base.HashMap
-                                               Language.Fixpoint.Types.Constraints.SubcId
-                                               GHC.Types.Int)>_R) <x>_N))
-                          g5
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Constraints.SubcId
-                                            GHC.Types.Bool>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "aenvExpand")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Data.HashMap.Base.HashMap
-                                               Language.Fixpoint.Types.Constraints.SubcId
-                                               GHC.Types.Bool)>_R) <x>_N)))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "aenvSyms")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvEqs")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   [Language.Fixpoint.Types.Constraints.Equation]))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvSimpl")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   [Language.Fixpoint.Types.Constraints.Rewrite])
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "aenvFuel")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.NoSourceStrictness
-                                                                     'GHC.Generics.DecidedLazy)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     (Data.HashMap.Base.HashMap
-                                                                        Language.Fixpoint.Types.Constraints.SubcId
-                                                                        GHC.Types.Int))
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "aenvExpand")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      (Data.HashMap.Base.HashMap
-                                                                                         Language.Fixpoint.Types.Constraints.SubcId
-                                                                                         GHC.Types.Bool))))>_R) <x>_N) }) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericAxiomEnv_$cfrom ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.AxiomEnv x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSSLL),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericAxiomEnv1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.AxiomEnv>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "AxiomEnv"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "aenvSyms")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "aenvEqs")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               [Language.Fixpoint.Types.Constraints.Equation]))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "aenvSimpl")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               [Language.Fixpoint.Types.Constraints.Rewrite])
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "aenvFuel")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 (Data.HashMap.Base.HashMap
-                                                                                    Language.Fixpoint.Types.Constraints.SubcId
-                                                                                    GHC.Types.Int))
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "aenvExpand")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  (Data.HashMap.Base.HashMap
-                                                                                                     Language.Fixpoint.Types.Constraints.SubcId
-                                                                                                     GHC.Types.Bool)))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_AxiomEnv[0]))) <x>_N) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fGenericEquation ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.Equation
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Equation
-                  Language.Fixpoint.Types.Constraints.$fGenericEquation_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cto -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fGenericEquation1 ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "eqName")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "eqArgs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "eqBody")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.Expr)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.Equ g1 g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "eqName")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "eqArgs")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "eqBody")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.Expr))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Names.Symbol>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "eqName")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Names.Symbol>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "eqArgs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "eqBody")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "eqArgs")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Names.Symbol]>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "eqBody")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "eqName")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "eqArgs")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   [Language.Fixpoint.Types.Names.Symbol])
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "eqBody")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Refinements.Expr))>_R) <x>_N) }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fGenericEquation_$cfrom ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Equation x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericEquation1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.Equation>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Equation"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "eqName")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "eqArgs")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               [Language.Fixpoint.Types.Names.Symbol])
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "eqBody")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                'GHC.Generics.DecidedLazy)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Refinements.Expr)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Equation[0]))) <x>_N) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fGenericGFixSol ::
-    GHC.Generics.Generic
-      (Language.Fixpoint.Types.Constraints.GFixSol e)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ e.
-                  @ (Language.Fixpoint.Types.Constraints.GFixSol e)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$cfrom @ e)
-                  (Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$cto @ e) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericGInfo ::
-    GHC.Generics.Generic
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *) @ a.
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericGInfo_$cfrom @ c @ a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericGInfo_$cto
-                     @ c
-                     @ a) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericGInfo1 ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "FI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (((GHC.Generics.M1
-              GHC.Generics.S
-              ('GHC.Generics.MetaSel
-                 ('GHC.Base.Just "cm")
-                 'GHC.Generics.NoSourceUnpackedness
-                 'GHC.Generics.SourceStrict
-                 'GHC.Generics.DecidedStrict)
-              (GHC.Generics.K1
-                 GHC.Generics.R
-                 (Data.HashMap.Base.HashMap
-                    Language.Fixpoint.Types.Constraints.SubcId (c a)))
-            GHC.Generics.:*: GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "ws")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Constraints.WfC a))))
-           GHC.Generics.:*: (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "bs")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Environments.BindEnv)
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "gLits")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Language.Fixpoint.Types.Environments.SEnv
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "dLits")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     (Language.Fixpoint.Types.Environments.SEnv
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))))
-          GHC.Generics.:*: ((GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "kuts")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Constraints.Kuts)
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "quals")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [Language.Fixpoint.Types.Constraints.Qualifier])
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "bindInfo")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     (Data.HashMap.Base.HashMap
-                                                                        Language.Fixpoint.Types.Environments.BindId
-                                                                        a))))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "hoInfo")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Constraints.HOInfo)
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "asserts")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     [Language.Fixpoint.Types.Triggers.Triggered
-                                                                        Language.Fixpoint.Types.Refinements.Expr])
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "ae")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.NoSourceStrictness
-                                                                                      'GHC.Generics.DecidedLazy)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      Language.Fixpoint.Types.Constraints.AxiomEnv)))))
-         x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSSSSSSSL),1*U(U,U,U,U,U,U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   @ x
-                   (w :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 (GHC.Generics.:*:
-                    @ ((GHC.Generics.M1
-                          GHC.Generics.S
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "cm")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.SourceStrict
-                             'GHC.Generics.DecidedStrict)
-                          (GHC.Generics.K1
-                             GHC.Generics.R
-                             (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                        GHC.Generics.:*: GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "ws")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Refinements.KVar
-                                                 (Language.Fixpoint.Types.Constraints.WfC a))))
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "bs")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Environments.BindEnv)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "gLits")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                (Language.Fixpoint.Types.Environments.SEnv
-                                                                   Language.Fixpoint.Types.Sorts.Sort))
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "dLits")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 (Language.Fixpoint.Types.Environments.SEnv
-                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                    @ ((GHC.Generics.M1
-                          GHC.Generics.S
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "kuts")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.SourceStrict
-                             'GHC.Generics.DecidedStrict)
-                          (GHC.Generics.K1
-                             GHC.Generics.R Language.Fixpoint.Types.Constraints.Kuts)
-                        GHC.Generics.:*: (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "quals")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Constraints.Qualifier])
-                                          GHC.Generics.:*: GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "bindInfo")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                (Data.HashMap.Base.HashMap
-                                                                   Language.Fixpoint.Types.Environments.BindId
-                                                                   a))))
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "hoInfo")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Constraints.HOInfo)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "asserts")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                [Language.Fixpoint.Types.Triggers.Triggered
-                                                                   Language.Fixpoint.Types.Refinements.Expr])
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "ae")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Constraints.AxiomEnv))))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cm")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R
-                               (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "ws")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Refinements.KVar
-                                                   (Language.Fixpoint.Types.Constraints.WfC a))))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "bs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Environments.BindEnv)
-                          GHC.Generics.:*: (GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "gLits")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Language.Fixpoint.Types.Environments.SEnv
-                                                    Language.Fixpoint.Types.Sorts.Sort))
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "dLits")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  (Language.Fixpoint.Types.Environments.SEnv
-                                                                     Language.Fixpoint.Types.Sorts.Sort))))
-                       @ x
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cm")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId (c a))))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "ws")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Constraints.WfC a))))
-                          @ x
-                          ww1
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Constraints.SubcId (c a)>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cm")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Data.HashMap.Base.HashMap
-                                               Language.Fixpoint.Types.Constraints.SubcId
-                                               (c a))>_R) <x>_N))
-                          ww2
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Refinements.KVar
-                                            (Language.Fixpoint.Types.Constraints.WfC a)>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "ws")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            (Data.HashMap.Base.HashMap
-                                               Language.Fixpoint.Types.Refinements.KVar
-                                               (Language.Fixpoint.Types.Constraints.WfC
-                                                  a))>_R) <x>_N)))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "bs")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Environments.BindEnv))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "gLits")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  (Language.Fixpoint.Types.Environments.SEnv
-                                     Language.Fixpoint.Types.Sorts.Sort))
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "dLits")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   (Language.Fixpoint.Types.Environments.SEnv
-                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                          @ x
-                          ww3
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Environments.BindEnv>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "bs")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Environments.BindEnv>_R) <x>_N))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "gLits")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Language.Fixpoint.Types.Environments.SEnv
-                                        Language.Fixpoint.Types.Sorts.Sort)))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "dLits")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Language.Fixpoint.Types.Environments.SEnv
-                                        Language.Fixpoint.Types.Sorts.Sort)))
-                             @ x
-                             ww4
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Environments.SEnv
-                                               Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "gLits")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               (Language.Fixpoint.Types.Environments.SEnv
-                                                  Language.Fixpoint.Types.Sorts.Sort)>_R) <x>_N))
-                             ww5
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Environments.SEnv
-                                               Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "dLits")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               (Language.Fixpoint.Types.Environments.SEnv
-                                                  Language.Fixpoint.Types.Sorts.Sort)>_R) <x>_N)))))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "kuts")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.Kuts)
-                          GHC.Generics.:*: (GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "quals")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Constraints.Qualifier])
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "bindInfo")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  (Data.HashMap.Base.HashMap
-                                                                     Language.Fixpoint.Types.Environments.BindId
-                                                                     a))))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "hoInfo")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.HOInfo)
-                          GHC.Generics.:*: (GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "asserts")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Triggers.Triggered
-                                                    Language.Fixpoint.Types.Refinements.Expr])
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  ('GHC.Base.Just "ae")
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Constraints.AxiomEnv)))
-                       @ x
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "kuts")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Constraints.Kuts))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "quals")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R [Language.Fixpoint.Types.Constraints.Qualifier])
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "bindInfo")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   (Data.HashMap.Base.HashMap
-                                                      Language.Fixpoint.Types.Environments.BindId
-                                                      a)))
-                          @ x
-                          ww6
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Constraints.Kuts>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "kuts")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.Kuts>_R) <x>_N))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "quals")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Constraints.Qualifier]))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "bindInfo")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Environments.BindId a)))
-                             @ x
-                             ww7
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <[Language.Fixpoint.Types.Constraints.Qualifier]>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "quals")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Constraints.Qualifier]>_R) <x>_N))
-                             ww8
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Data.HashMap.Base.HashMap
-                                               Language.Fixpoint.Types.Environments.BindId a>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "bindInfo")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               (Data.HashMap.Base.HashMap
-                                                  Language.Fixpoint.Types.Environments.BindId
-                                                  a)>_R) <x>_N))))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "hoInfo")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Constraints.HOInfo))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "asserts")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R
-                                  [Language.Fixpoint.Types.Triggers.Triggered
-                                     Language.Fixpoint.Types.Refinements.Expr])
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "ae")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Constraints.AxiomEnv))
-                          @ x
-                          ww9
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Constraints.HOInfo>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "hoInfo")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.HOInfo>_R) <x>_N))
-                          (GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "asserts")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Triggers.Triggered
-                                        Language.Fixpoint.Types.Refinements.Expr]))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "ae")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.K1
-                                     GHC.Generics.R Language.Fixpoint.Types.Constraints.AxiomEnv))
-                             @ x
-                             ww10
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <[Language.Fixpoint.Types.Triggers.Triggered
-                                                Language.Fixpoint.Types.Refinements.Expr]>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "asserts")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Triggers.Triggered
-                                                  Language.Fixpoint.Types.Refinements.Expr]>_R) <x>_N))
-                             ww11
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Constraints.AxiomEnv>_R
-                                            <x>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "ae")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Constraints.AxiomEnv>_R) <x>_N))))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "FI" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <((GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "cm")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R
-                                   (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "ws")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashMap.Base.HashMap
-                                                       Language.Fixpoint.Types.Refinements.KVar
-                                                       (Language.Fixpoint.Types.Constraints.WfC
-                                                          a))))
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "bs")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Environments.BindEnv)
-                                               GHC.Generics.:*: (GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "gLits")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      (Language.Fixpoint.Types.Environments.SEnv
-                                                                         Language.Fixpoint.Types.Sorts.Sort))
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "dLits")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.SourceStrict
-                                                                                       'GHC.Generics.DecidedStrict)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       (Language.Fixpoint.Types.Environments.SEnv
-                                                                                          Language.Fixpoint.Types.Sorts.Sort)))))
-                            GHC.Generics.:*: ((GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "kuts")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Constraints.Kuts)
-                                               GHC.Generics.:*: (GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "quals")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      [Language.Fixpoint.Types.Constraints.Qualifier])
-                                                                 GHC.Generics.:*: GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "bindInfo")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.SourceStrict
-                                                                                       'GHC.Generics.DecidedStrict)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       (Data.HashMap.Base.HashMap
-                                                                                          Language.Fixpoint.Types.Environments.BindId
-                                                                                          a))))
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "hoInfo")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     Language.Fixpoint.Types.Constraints.HOInfo)
-                                                                GHC.Generics.:*: (GHC.Generics.M1
-                                                                                    GHC.Generics.S
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "asserts")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.SourceStrict
-                                                                                       'GHC.Generics.DecidedStrict)
-                                                                                    (GHC.Generics.K1
-                                                                                       GHC.Generics.R
-                                                                                       [Language.Fixpoint.Types.Triggers.Triggered
-                                                                                          Language.Fixpoint.Types.Refinements.Expr])
-                                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                                     GHC.Generics.S
-                                                                                                     ('GHC.Generics.MetaSel
-                                                                                                        ('GHC.Base.Just
-                                                                                                           "ae")
-                                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                                     (GHC.Generics.K1
-                                                                                                        GHC.Generics.R
-                                                                                                        Language.Fixpoint.Types.Constraints.AxiomEnv))))>_R) <x>_N) }) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericGInfo_$cfrom ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Constraints.GInfo c a) x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSSSSSSSL),1*U(U,U,U,U,U,U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericGInfo1
-                  `cast`
-                (forall (c :: <* -> *>_N) (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.GInfo c a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "GInfo"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "FI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (((GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "cm")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               (Data.HashMap.Base.HashMap
-                                                  Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                                          GHC.Generics.:*: GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "ws")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                (Data.HashMap.Base.HashMap
-                                                                   Language.Fixpoint.Types.Refinements.KVar
-                                                                   (Language.Fixpoint.Types.Constraints.WfC
-                                                                      a))))
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "bs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Environments.BindEnv)
-                                                           GHC.Generics.:*: (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "gLits")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  (Language.Fixpoint.Types.Environments.SEnv
-                                                                                     Language.Fixpoint.Types.Sorts.Sort))
-                                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "dLits")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   (Language.Fixpoint.Types.Environments.SEnv
-                                                                                                      Language.Fixpoint.Types.Sorts.Sort)))))
-                                        GHC.Generics.:*: ((GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "kuts")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Constraints.Kuts)
-                                                           GHC.Generics.:*: (GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "quals")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  [Language.Fixpoint.Types.Constraints.Qualifier])
-                                                                             GHC.Generics.:*: GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "bindInfo")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   (Data.HashMap.Base.HashMap
-                                                                                                      Language.Fixpoint.Types.Environments.BindId
-                                                                                                      a))))
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "hoInfo")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Constraints.HOInfo)
-                                                                            GHC.Generics.:*: (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "asserts")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   [Language.Fixpoint.Types.Triggers.Triggered
-                                                                                                      Language.Fixpoint.Types.Refinements.Expr])
-                                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                 GHC.Generics.S
-                                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                                    ('GHC.Base.Just
-                                                                                                                       "ae")
-                                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                                                 (GHC.Generics.K1
-                                                                                                                    GHC.Generics.R
-                                                                                                                    Language.Fixpoint.Types.Constraints.AxiomEnv)))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_GInfo[0]
-                                         <c>_N <a>_N))) <x>_N) -}
-1052549cc559e08aaa78c218edda206c
-  $fGenericGInfo_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.GInfo c a) x
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(S(SS)S(SS(SS)))S(S(SS(SS))S(SS(SL)))),1*U(1*U(1*U(U,U),1*U(U,1*U(U,U))),1*U(1*U(U,1*U(U,U)),1*U(U,1*U(U,U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   @ x
-                   (w :: GHC.Generics.Rep
-                           (Language.Fixpoint.Types.Constraints.GInfo c a) x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_GInfo[0]
-                                     <c>_N <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "GInfo"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "FI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (((GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "cm")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   (c a)))
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "ws")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                                    (Language.Fixpoint.Types.Constraints.WfC
-                                                                       a))))
-                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "bs")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Environments.BindEnv)
-                                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "gLits")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.Rec0
-                                                                                   (Language.Fixpoint.Types.Environments.SEnv
-                                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "dLits")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.Rec0
-                                                                                                    (Language.Fixpoint.Types.Environments.SEnv
-                                                                                                       Language.Fixpoint.Types.Sorts.Sort)))))
-                                         GHC.Generics.:*: ((GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "kuts")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Constraints.Kuts)
-                                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   ('GHC.Base.Just
-                                                                                      "quals")
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.Rec0
-                                                                                   [Language.Fixpoint.Types.Constraints.Qualifier])
-                                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "bindInfo")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.Rec0
-                                                                                                    (Data.HashMap.Base.HashMap
-                                                                                                       Language.Fixpoint.Types.Environments.BindId
-                                                                                                       a))))
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "hoInfo")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Language.Fixpoint.Types.Constraints.HOInfo)
-                                                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    ('GHC.Base.Just
-                                                                                                       "asserts")
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.Rec0
-                                                                                                    [Language.Fixpoint.Types.Triggers.Triggered
-                                                                                                       Language.Fixpoint.Types.Refinements.Expr])
-                                                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                     ('GHC.Base.Just
-                                                                                                                        "ae")
-                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                                                  (GHC.Generics.Rec0
-                                                                                                                     Language.Fixpoint.Types.Constraints.AxiomEnv)))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "FI" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <((GHC.Generics.S1
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "cm")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0
-                                             (Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                                        GHC.Generics.:*: GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "ws")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.Rec0
-                                                              (Data.HashMap.Base.HashMap
-                                                                 Language.Fixpoint.Types.Refinements.KVar
-                                                                 (Language.Fixpoint.Types.Constraints.WfC
-                                                                    a))))
-                                       GHC.Generics.:*: (GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "bs")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.Rec0
-                                                              Language.Fixpoint.Types.Environments.BindEnv)
-                                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "gLits")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.Rec0
-                                                                                (Language.Fixpoint.Types.Environments.SEnv
-                                                                                   Language.Fixpoint.Types.Sorts.Sort))
-                                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                                              ('GHC.Generics.MetaSel
-                                                                                                 ('GHC.Base.Just
-                                                                                                    "dLits")
-                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                              (GHC.Generics.Rec0
-                                                                                                 (Language.Fixpoint.Types.Environments.SEnv
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                                      GHC.Generics.:*: ((GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "kuts")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.Rec0
-                                                              Language.Fixpoint.Types.Constraints.Kuts)
-                                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "quals")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.Rec0
-                                                                                [Language.Fixpoint.Types.Constraints.Qualifier])
-                                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                                              ('GHC.Generics.MetaSel
-                                                                                                 ('GHC.Base.Just
-                                                                                                    "bindInfo")
-                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                              (GHC.Generics.Rec0
-                                                                                                 (Data.HashMap.Base.HashMap
-                                                                                                    Language.Fixpoint.Types.Environments.BindId
-                                                                                                    a))))
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "hoInfo")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.Rec0
-                                                                               Language.Fixpoint.Types.Constraints.HOInfo)
-                                                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                                                              ('GHC.Generics.MetaSel
-                                                                                                 ('GHC.Base.Just
-                                                                                                    "asserts")
-                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                              (GHC.Generics.Rec0
-                                                                                                 [Language.Fixpoint.Types.Triggers.Triggered
-                                                                                                    Language.Fixpoint.Types.Refinements.Expr])
-                                                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                                                               ('GHC.Generics.MetaSel
-                                                                                                                  ('GHC.Base.Just
-                                                                                                                     "ae")
-                                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                                                  'GHC.Generics.DecidedLazy)
-                                                                                                               (GHC.Generics.Rec0
-                                                                                                                  Language.Fixpoint.Types.Constraints.AxiomEnv))))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww4 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww5 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww11 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 case ww2 of ww15 { GHC.Generics.:*: ww16 ww17 ->
-                 case ww16 of ww18 { GHC.Generics.:*: ww19 ww20 ->
-                 case ww20 of ww21 { GHC.Generics.:*: ww22 ww23 ->
-                 case ww17 of ww24 { GHC.Generics.:*: ww25 ww26 ->
-                 case ww26 of ww27 { GHC.Generics.:*: ww28 ww29 ->
-                 Language.Fixpoint.Types.Constraints.$WFI
-                   @ c
-                   @ a
-                   ww7
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cm")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId (c a))>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId (c a)>_R
-                             <x>_P))
-                   ww8
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "ws")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar
-                                   (Language.Fixpoint.Types.Constraints.WfC a))>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar
-                                (Language.Fixpoint.Types.Constraints.WfC a)>_R
-                             <x>_P))
-                   ww10
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "bs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Environments.BindEnv>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.BindEnv>_R
-                             <x>_P))
-                   ww13
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "gLits")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Language.Fixpoint.Types.Environments.SEnv
-                                   Language.Fixpoint.Types.Sorts.Sort)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.SEnv
-                                Language.Fixpoint.Types.Sorts.Sort>_R
-                             <x>_P))
-                   ww14
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "dLits")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Language.Fixpoint.Types.Environments.SEnv
-                                   Language.Fixpoint.Types.Sorts.Sort)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.SEnv
-                                Language.Fixpoint.Types.Sorts.Sort>_R
-                             <x>_P))
-                   ww19
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "kuts")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Constraints.Kuts>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.Kuts>_R
-                             <x>_P))
-                   ww22
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "quals")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                [Language.Fixpoint.Types.Constraints.Qualifier]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Constraints.Qualifier]>_R
-                             <x>_P))
-                   ww23
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "bindInfo")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Environments.BindId a)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId a>_R
-                             <x>_P))
-                   ww25
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "hoInfo")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Constraints.HOInfo>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.HOInfo>_R
-                             <x>_P))
-                   ww28
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "asserts")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                [Language.Fixpoint.Types.Triggers.Triggered
-                                   Language.Fixpoint.Types.Refinements.Expr]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Triggers.Triggered
-                                 Language.Fixpoint.Types.Refinements.Expr]>_R
-                             <x>_P))
-                   ww29
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "ae")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Constraints.AxiomEnv>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.AxiomEnv>_R
-                             <x>_P)) } } } } } } } } } }) -}
-7a24b8d792e855ca223f976758f59930
-  $fGenericHOInfo ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.HOInfo
-                  Language.Fixpoint.Types.Constraints.$fGenericHOInfo_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fGenericHOInfo_$cto -}
-7a24b8d792e855ca223f976758f59930
-  $fGenericHOInfo1 ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "hoBinds")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "hoQuals")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.HOI g1 g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "hoBinds")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "hoQuals")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "hoBinds")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "hoQuals")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "hoBinds")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "hoQuals")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Types.Bool)>_R) <x>_N) }) -}
-7a24b8d792e855ca223f976758f59930
-  $fGenericHOInfo_$cfrom ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.HOInfo x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericHOInfo1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.HOInfo>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "HOInfo"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "hoBinds")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "hoQuals")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R GHC.Types.Bool))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_HOInfo[0]))) <x>_N) -}
-7a24b8d792e855ca223f976758f59930
-  $fGenericHOInfo_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.HOInfo x
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds1 :: GHC.Generics.Rep
-                             Language.Fixpoint.Types.Constraints.HOInfo x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_HOInfo[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "HOInfo"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "hoBinds")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "hoQuals")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Bool))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "hoBinds")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "hoQuals")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            GHC.Types.Bool)>_R)) <x>_N) of wild { GHC.Generics.:*: ds2 ds3 ->
-                 Language.Fixpoint.Types.Constraints.HOI
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "hoBinds")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "hoQuals")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P)) }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fGenericKuts ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  Language.Fixpoint.Types.Constraints.$fBinaryKuts_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fGenericKuts_$cto -}
-10aef948b5229216dcc343e2e00963d2
-  $fGenericKuts1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds1 :: GHC.Generics.Rep
-                             Language.Fixpoint.Types.Constraints.Kuts x) ->
-                 ds1) -}
-10aef948b5229216dcc343e2e00963d2
-  $fGenericKuts_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts x
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericKuts1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Constraints.Rep_Kuts[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "Kuts"
-                                            "Language.Fixpoint.Types.Constraints"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "ksVars")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashSet.HashSet
-                                                     Language.Fixpoint.Types.Refinements.KVar)))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "KS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "ksVars")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashSet.HashSet
-                                                       Language.Fixpoint.Types.Refinements.KVar))>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "ksVars")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashSet.HashSet
-                                                    Language.Fixpoint.Types.Refinements.KVar)>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <Data.HashSet.HashSet
-                                       Language.Fixpoint.Types.Refinements.KVar>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fGenericQualifier ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fGenericQualifier_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fBinaryQualifier_$cto -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fGenericQualifier1 ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "qName")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedStrict)
-             (GHC.Generics.K1
-                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-           GHC.Generics.:*: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "qParams")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R
-                                 [(Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Sorts.Sort)]))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "qBody")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "qPos")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R Text.Parsec.Pos.SourcePos)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLSS),1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.Q g1 g2 g3 g4 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "qName")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "qParams")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             [(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort)]))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "qBody")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "qPos")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qName")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qParams")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R
-                               [(Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort)]))
-                       @ x
-                       g1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Names.Symbol>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "qName")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Names.Symbol>_R) <x>_N))
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[(Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "qParams")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [(Language.Fixpoint.Types.Names.Symbol,
-                                           Language.Fixpoint.Types.Sorts.Sort)]>_R) <x>_N)))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qBody")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qPos")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                       @ x
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "qBody")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N))
-                       g4
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "qPos")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R Text.Parsec.Pos.SourcePos>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Q" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "qName")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "qParams")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   [(Language.Fixpoint.Types.Names.Symbol,
-                                                     Language.Fixpoint.Types.Sorts.Sort)]))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "qBody")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Refinements.Expr)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "qPos")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Text.Parsec.Pos.SourcePos))>_R) <x>_N) }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fGenericQualifier_$cfrom ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Qualifier x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLSS),1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericQualifier1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Qualifier"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "qName")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "qParams")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               [(Language.Fixpoint.Types.Names.Symbol,
-                                                                 Language.Fixpoint.Types.Sorts.Sort)]))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "qBody")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.Expr)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "qPos")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Text.Parsec.Pos.SourcePos)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Qualifier[0]))) <x>_N) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fGenericResult ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Constraints.Result a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Constraints.Result a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericResult_$cfrom @ a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericResult_$cto @ a) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fGenericResult1 ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Result" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "resStatus")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R (Language.Fixpoint.Types.Errors.FixResult a))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "resSolution")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Constraints.FixSolution)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "gresSolution")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Constraints.GFixSolution)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.Result g1 g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "resStatus")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R (Language.Fixpoint.Types.Errors.FixResult a)))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "resSolution")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Constraints.FixSolution)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "gresSolution")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Constraints.GFixSolution))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Errors.FixResult a>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "resStatus")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      (Language.Fixpoint.Types.Errors.FixResult a)>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "resSolution")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.FixSolution))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "gresSolution")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.GFixSolution))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Constraints.FixSolution>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "resSolution")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Constraints.FixSolution>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Constraints.GFixSolution>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "gresSolution")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Constraints.GFixSolution>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Result" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "resStatus")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R (Language.Fixpoint.Types.Errors.FixResult a))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "resSolution")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Constraints.FixSolution)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "gresSolution")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Constraints.GFixSolution))>_R) <x>_N) }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fGenericResult_$cfrom ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Constraints.Result a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericResult1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.Result a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Result"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Result" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "resStatus")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             (Language.Fixpoint.Types.Errors.FixResult a))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "resSolution")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Constraints.FixSolution)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "gresSolution")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Constraints.GFixSolution)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Result[0]
-                                         <a>_N))) <x>_N) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fGenericResult_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.Result a) x
-    -> Language.Fixpoint.Types.Constraints.Result a
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (ds1 :: GHC.Generics.Rep
-                             (Language.Fixpoint.Types.Constraints.Result a) x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_Result[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Result"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Result" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "resStatus")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              (Language.Fixpoint.Types.Errors.FixResult a))
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "resSolution")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Constraints.FixSolution)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "gresSolution")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Constraints.GFixSolution)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Result" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "resStatus")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           (Language.Fixpoint.Types.Errors.FixResult a))
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "resSolution")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Constraints.FixSolution)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "gresSolution")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Language.Fixpoint.Types.Constraints.GFixSolution))>_R)) <x>_N) of wild { GHC.Generics.:*: ds2 ds3 ->
-                 case ds3 of wild1 { GHC.Generics.:*: ds4 ds5 ->
-                 Language.Fixpoint.Types.Constraints.$WResult
-                   @ a
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "resStatus")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Language.Fixpoint.Types.Errors.FixResult a)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Errors.FixResult a>_R
-                             <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "resSolution")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Constraints.FixSolution>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.FixSolution>_R
-                             <x>_P))
-                   ds5
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "gresSolution")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Constraints.GFixSolution>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.GFixSolution>_R
-                             <x>_P)) } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fGenericRewrite ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Constraints.Rewrite
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Rewrite
-                  Language.Fixpoint.Types.Constraints.$fGenericRewrite_$cfrom
-                  Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cto -}
-a70f5553877272321cc8f3b254d9abac
-  $fGenericRewrite1 ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "smName")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.NoSourceStrictness
-                'GHC.Generics.DecidedLazy)
-             (GHC.Generics.K1
-                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-           GHC.Generics.:*: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "smDC")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "smArgs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "smBody")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.Expr)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.SMeasure g1 g2 g3 g4 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "smName")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "smDC")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "smArgs")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "smBody")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.Expr))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "smName")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "smDC")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol))
-                       @ x
-                       g1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Names.Symbol>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "smName")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Names.Symbol>_R) <x>_N))
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Names.Symbol>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "smDC")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Names.Symbol>_R) <x>_N)))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "smArgs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "smBody")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                       @ x
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "smArgs")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Names.Symbol]>_R) <x>_N))
-                       g4
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "smBody")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "smName")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "smDC")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Names.Symbol))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "smArgs")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   [Language.Fixpoint.Types.Names.Symbol])
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "smBody")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Refinements.Expr))>_R) <x>_N) }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fGenericRewrite_$cfrom ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Rewrite x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericRewrite1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.Rewrite>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Rewrite"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "smName")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "smDC")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Names.Symbol))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "smArgs")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               [Language.Fixpoint.Types.Names.Symbol])
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "smBody")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                'GHC.Generics.DecidedLazy)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Refinements.Expr)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Rewrite[0]))) <x>_N) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fGenericSimpC ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericSimpC_$cfrom @ a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericSimpC_$cto @ a) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fGenericSimpC1 ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "_cenv")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedStrict)
-             (GHC.Generics.K1
-                GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-           GHC.Generics.:*: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_crhs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_cid")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R (GHC.Base.Maybe GHC.Integer.Type.Integer))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "_ctag")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Constraints.Tag)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "_cinfo")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R a))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSSSS),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.SimpC g1 g2 g3 g4 g5 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_cenv")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "_crhs")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.Expr))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_cid")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R (GHC.Base.Maybe GHC.Integer.Type.Integer))
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_ctag")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Constraints.Tag)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "_cinfo")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1 GHC.Generics.R a)))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_cenv")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_crhs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                       @ x
-                       g1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_cenv")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Environments.IBindEnv>_R) <x>_N))
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_crhs")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N)))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_cid")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R (GHC.Base.Maybe GHC.Integer.Type.Integer)))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_ctag")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "_cinfo")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1 GHC.Generics.R a))
-                       @ x
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <GHC.Base.Maybe GHC.Integer.Type.Integer>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_cid")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (GHC.Base.Maybe GHC.Integer.Type.Integer)>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_ctag")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_cinfo")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1 GHC.Generics.R a))
-                          @ x
-                          g4
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Constraints.Tag>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_ctag")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.Tag>_R) <x>_N))
-                          g5
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_cinfo")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N)))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_cenv")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "_crhs")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Refinements.Expr))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "_cid")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   (GHC.Base.Maybe GHC.Integer.Type.Integer))
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "_ctag")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     Language.Fixpoint.Types.Constraints.Tag)
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "_cinfo")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.SourceStrict
-                                                                                      'GHC.Generics.DecidedStrict)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      a)))>_R) <x>_N) }) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fGenericSimpC_$cfrom ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SimpC a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSSSS),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericSimpC1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.SimpC a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SimpC"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_cenv")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Environments.IBindEnv)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "_crhs")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.Expr))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "_cid")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               (GHC.Base.Maybe
-                                                                  GHC.Integer.Type.Integer))
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "_ctag")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Constraints.Tag)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "_cinfo")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedStrict)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  a))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_SimpC[0]
-                                         <a>_N))) <x>_N) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fGenericSimpC_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SimpC a) x
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SS))),1*U(1*U(U,U),1*U(U,1*U(U,U)))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (w :: GHC.Generics.Rep
-                           (Language.Fixpoint.Types.Constraints.SimpC a) x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_SimpC[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "SimpC"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "_cenv")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               Language.Fixpoint.Types.Environments.IBindEnv)
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "_crhs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                Language.Fixpoint.Types.Refinements.Expr))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "_cid")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                (GHC.Base.Maybe
-                                                                   GHC.Integer.Type.Integer))
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "_ctag")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Language.Fixpoint.Types.Constraints.Tag)
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "_cinfo")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   a))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_cenv")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.Rec0
-                                            Language.Fixpoint.Types.Environments.IBindEnv)
-                                       GHC.Generics.:*: GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "_crhs")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.Rec0
-                                                             Language.Fixpoint.Types.Refinements.Expr))
-                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "_cid")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.Rec0
-                                                             (GHC.Base.Maybe
-                                                                GHC.Integer.Type.Integer))
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "_ctag")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.Rec0
-                                                                               Language.Fixpoint.Types.Constraints.Tag)
-                                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                                             ('GHC.Generics.MetaSel
-                                                                                                ('GHC.Base.Just
-                                                                                                   "_cinfo")
-                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                'GHC.Generics.SourceStrict
-                                                                                                'GHC.Generics.DecidedStrict)
-                                                                                             (GHC.Generics.Rec0
-                                                                                                a)))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww4
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_cenv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   Language.Fixpoint.Types.Environments.IBindEnv>_R <x>_N)
-                           (Trans
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                     <x>_P)
-                                (Trans
-                                     (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                     (Data.HashSet.N:HashSet[0]
-                                          <Language.Fixpoint.Types.Environments.BindId>_N)))) of nt { DEFAULT ->
-                 case ww5
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_crhs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Refinements.Expr>_R
-                                <x>_P)) of dt { DEFAULT ->
-                 case ww7
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_cid")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   (GHC.Base.Maybe GHC.Integer.Type.Integer)>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Base.Maybe GHC.Integer.Type.Integer>_R
-                                <x>_P)) of dt1 { DEFAULT ->
-                 case ww10
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_ctag")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Constraints.Tag>_R
-                                <x>_P)) of dt2 { DEFAULT ->
-                 case ww11
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_cinfo")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P <a>_R <x>_P)) of dt3 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.SimpC
-                   @ a
-                   nt
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Environments.BindId>_N))
-                        (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                   dt
-                   dt1
-                   dt2
-                   dt3 } } } } } } } } }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fGenericSubC ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericSubC_$cfrom @ a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericSubC_$cto @ a) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fGenericSubC1 ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "_senv")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedStrict)
-             (GHC.Generics.K1
-                GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-           GHC.Generics.:*: (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "slhs")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Refinements.SortedReft)
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "srhs")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Refinements.SortedReft)))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_sid")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R
-                                 (GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "_stag")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Constraints.Tag)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "_sinfo")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R a))))
-         x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSSS),1*U(U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Constraints.SubC g1 g2 g3 g4 g5 g6 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_senv")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "slhs")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Refinements.SortedReft)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "srhs")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.SortedReft)))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_sid")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R
-                            (GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId))
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_stag")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Constraints.Tag)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "_sinfo")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1 GHC.Generics.R a)))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_senv")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "slhs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.SortedReft)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "srhs")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Refinements.SortedReft))
-                       @ x
-                       g1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_senv")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Environments.IBindEnv>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "slhs")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Refinements.SortedReft))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "srhs")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Refinements.SortedReft))
-                          @ x
-                          g2
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "slhs")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Refinements.SortedReft>_R) <x>_N))
-                          g3
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "srhs")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Refinements.SortedReft>_R) <x>_N))))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_sid")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R
-                               (GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId)))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_stag")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "_sinfo")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1 GHC.Generics.R a))
-                       @ x
-                       g4
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_sid")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         (GHC.Base.Maybe
-                                            Language.Fixpoint.Types.Constraints.SubcId)>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_stag")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_sinfo")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1 GHC.Generics.R a))
-                          @ x
-                          g5
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Language.Fixpoint.Types.Constraints.Tag>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_stag")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Language.Fixpoint.Types.Constraints.Tag>_R) <x>_N))
-                          g6
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_sinfo")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N)))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "_senv")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "slhs")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Refinements.SortedReft)
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "srhs")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     Language.Fixpoint.Types.Refinements.SortedReft)))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "_sid")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   (GHC.Base.Maybe
-                                                      Language.Fixpoint.Types.Constraints.SubcId))
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "_stag")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedStrict)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     Language.Fixpoint.Types.Constraints.Tag)
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "_sinfo")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.SourceStrict
-                                                                                      'GHC.Generics.DecidedStrict)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      a)))>_R) <x>_N) }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fGenericSubC_$cfrom ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SubC a) x
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSSS),1*U(U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericSubC1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.SubC a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SubC"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_senv")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Environments.IBindEnv)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "slhs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Refinements.SortedReft)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "srhs")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Refinements.SortedReft)))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "_sid")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               (GHC.Base.Maybe
-                                                                  Language.Fixpoint.Types.Constraints.SubcId))
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "_stag")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Constraints.Tag)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "_sinfo")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedStrict)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  a))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_SubC[0]
-                                         <a>_N))) <x>_N) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fGenericSubC_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SubC a) x
-    -> Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS(SS))S(SS(SS))),1*U(1*U(U,1*U(U,U)),1*U(U,1*U(U,U)))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (w :: GHC.Generics.Rep
-                           (Language.Fixpoint.Types.Constraints.SubC a) x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_SubC[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "SubC"
-                                        "Language.Fixpoint.Types.Constraints"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "_senv")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               Language.Fixpoint.Types.Environments.IBindEnv)
-                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "slhs")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Refinements.SortedReft)
-                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "srhs")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Language.Fixpoint.Types.Refinements.SortedReft)))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "_sid")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                (GHC.Base.Maybe
-                                                                   Language.Fixpoint.Types.Constraints.SubcId))
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "_stag")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Language.Fixpoint.Types.Constraints.Tag)
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "_sinfo")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   a))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "_senv")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.Rec0
-                                            Language.Fixpoint.Types.Environments.IBindEnv)
-                                       GHC.Generics.:*: (GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "slhs")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.Rec0
-                                                              Language.Fixpoint.Types.Refinements.SortedReft)
-                                                         GHC.Generics.:*: GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "srhs")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.Rec0
-                                                                               Language.Fixpoint.Types.Refinements.SortedReft)))
-                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "_sid")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.Rec0
-                                                             (GHC.Base.Maybe
-                                                                Language.Fixpoint.Types.Constraints.SubcId))
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "_stag")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedStrict)
-                                                                            (GHC.Generics.Rec0
-                                                                               Language.Fixpoint.Types.Constraints.Tag)
-                                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                                             ('GHC.Generics.MetaSel
-                                                                                                ('GHC.Base.Just
-                                                                                                   "_sinfo")
-                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                'GHC.Generics.SourceStrict
-                                                                                                'GHC.Generics.DecidedStrict)
-                                                                                             (GHC.Generics.Rec0
-                                                                                                a)))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww5 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww2 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww11 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 case ww4
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_senv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   Language.Fixpoint.Types.Environments.IBindEnv>_R <x>_N)
-                           (Trans
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                     <x>_P)
-                                (Trans
-                                     (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                     (Data.HashSet.N:HashSet[0]
-                                          <Language.Fixpoint.Types.Environments.BindId>_N)))) of nt { DEFAULT ->
-                 case ww7
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "slhs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   Language.Fixpoint.Types.Refinements.SortedReft>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                <x>_P)) of dt { Language.Fixpoint.Types.Refinements.RR ipv ipv1 ->
-                 case ww8
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "srhs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   Language.Fixpoint.Types.Refinements.SortedReft>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Refinements.SortedReft>_R
-                                <x>_P)) of dt1 { Language.Fixpoint.Types.Refinements.RR ipv2 ipv3 ->
-                 case ww10
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_sid")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R
-                                   (GHC.Base.Maybe
-                                      Language.Fixpoint.Types.Constraints.SubcId)>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId>_R
-                                <x>_P)) of dt2 { DEFAULT ->
-                 case ww13
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_stag")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Constraints.Tag>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Constraints.Tag>_R
-                                <x>_P)) of dt3 { DEFAULT ->
-                 case ww14
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_sinfo")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P <a>_R <x>_P)) of dt4 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.SubC
-                   @ a
-                   nt
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Environments.BindId>_N))
-                        (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                   dt
-                   dt1
-                   dt2
-                   dt3
-                   dt4 } } } } } } } } } } }) -}
-50354839b899806bfddb7dd9a816596d
-  $fGenericWfC ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericWfC_$cfrom @ a)
-                  (Language.Fixpoint.Types.Constraints.$fGenericWfC_$cto @ a) -}
-50354839b899806bfddb7dd9a816596d
-  $fGenericWfC1 ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "wenv")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-             GHC.Generics.:*: (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "wrft")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Sorts.Sort,
-                                     Language.Fixpoint.Types.Refinements.KVar))
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "winfo")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1 GHC.Generics.R a))))
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.M1
-                GHC.Generics.S
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "wenv")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedStrict)
-                (GHC.Generics.K1
-                   GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-              GHC.Generics.:*: GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "wrft")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Sorts.Sort,
-                                     Language.Fixpoint.Types.Refinements.KVar)))
-             GHC.Generics.:*: (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "winfo")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1 GHC.Generics.R a)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "wexpr")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Refinements.Expr))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x
-                   (x1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC g1 g2 g3
-                   -> GHC.Generics.L1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "wenv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "wrft")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Names.Symbol,
-                                                      Language.Fixpoint.Types.Sorts.Sort,
-                                                      Language.Fixpoint.Types.Refinements.KVar))
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "winfo")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R a))))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                             ((GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "wenv")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "wrft")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Names.Symbol,
-                                                      Language.Fixpoint.Types.Sorts.Sort,
-                                                      Language.Fixpoint.Types.Refinements.KVar)))
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "winfo")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1 GHC.Generics.R a)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "wexpr")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Refinements.Expr))))
-                        @ x
-                        (GHC.Generics.:*:
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "wenv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "wrft")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R
-                                   (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort,
-                                    Language.Fixpoint.Types.Refinements.KVar))
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "winfo")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1 GHC.Generics.R a))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                          <x>_P))
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "wenv")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.IBindEnv>_R) <x>_N))
-                           (GHC.Generics.:*:
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "wrft")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R
-                                      (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort,
-                                       Language.Fixpoint.Types.Refinements.KVar)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "winfo")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1 GHC.Generics.R a))
-                              @ x
-                              g2
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort,
-                                               Language.Fixpoint.Types.Refinements.KVar)>_R
-                                             <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "wrft")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Language.Fixpoint.Types.Names.Symbol,
-                                                 Language.Fixpoint.Types.Sorts.Sort,
-                                                 Language.Fixpoint.Types.Refinements.KVar)>_R) <x>_N))
-                              g3
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "winfo")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N))))
-                          `cast`
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.C>_P
-                                  <'GHC.Generics.MetaCons
-                                     "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "wenv")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Language.Fixpoint.Types.Environments.IBindEnv)
-                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "wrft")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.NoSourceStrictness
-                                                          'GHC.Generics.DecidedLazy)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          (Language.Fixpoint.Types.Names.Symbol,
-                                                           Language.Fixpoint.Types.Sorts.Sort,
-                                                           Language.Fixpoint.Types.Refinements.KVar))
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           ('GHC.Base.Just "winfo")
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           a))>_R) <x>_N)
-                   Language.Fixpoint.Types.Constraints.GWfC g1 g2 g3 g4
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "wenv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "wrft")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Names.Symbol,
-                                                      Language.Fixpoint.Types.Sorts.Sort,
-                                                      Language.Fixpoint.Types.Refinements.KVar))
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "winfo")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R a))))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                             ((GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "wenv")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "wrft")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     (Language.Fixpoint.Types.Names.Symbol,
-                                                      Language.Fixpoint.Types.Sorts.Sort,
-                                                      Language.Fixpoint.Types.Refinements.KVar)))
-                              GHC.Generics.:*: (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "winfo")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1 GHC.Generics.R a)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "wexpr")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Refinements.Expr))))
-                        @ x
-                        (GHC.Generics.:*:
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "wenv")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "wrft")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Language.Fixpoint.Types.Names.Symbol,
-                                                     Language.Fixpoint.Types.Sorts.Sort,
-                                                     Language.Fixpoint.Types.Refinements.KVar)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "winfo")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1 GHC.Generics.R a)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "wexpr")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Refinements.Expr))
-                           @ x
-                           (GHC.Generics.:*:
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "wenv")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "wrft")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R
-                                      (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort,
-                                       Language.Fixpoint.Types.Refinements.KVar)))
-                              @ x
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                             <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "wenv")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Environments.IBindEnv>_R) <x>_N))
-                              g2
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort,
-                                               Language.Fixpoint.Types.Refinements.KVar)>_R
-                                             <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "wrft")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Language.Fixpoint.Types.Names.Symbol,
-                                                 Language.Fixpoint.Types.Sorts.Sort,
-                                                 Language.Fixpoint.Types.Refinements.KVar)>_R) <x>_N)))
-                           (GHC.Generics.:*:
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "winfo")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1 GHC.Generics.R a))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "wexpr")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                              @ x
-                              g3
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "winfo")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N))
-                              g4
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                                             <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "wexpr")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N))))
-                          `cast`
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.C>_P
-                                  <'GHC.Generics.MetaCons
-                                     "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                  <(GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "wenv")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Environments.IBindEnv)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "wrft")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          (Language.Fixpoint.Types.Names.Symbol,
-                                                           Language.Fixpoint.Types.Sorts.Sort,
-                                                           Language.Fixpoint.Types.Refinements.KVar)))
-                                   GHC.Generics.:*: (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "winfo")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1 GHC.Generics.R a)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           ('GHC.Base.Just "wexpr")
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Refinements.Expr))>_R) <x>_N) }) -}
-50354839b899806bfddb7dd9a816596d
-  $fGenericWfC_$cfrom ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.WfC a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fGenericWfC1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Constraints.WfC a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "WfC"
-                                       "Language.Fixpoint.Types.Constraints"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "wenv")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.IBindEnv)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "wrft")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               (Language.Fixpoint.Types.Names.Symbol,
-                                                                Language.Fixpoint.Types.Sorts.Sort,
-                                                                Language.Fixpoint.Types.Refinements.KVar))
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "winfo")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R a)))
-                                     GHC.Generics.:+: GHC.Generics.M1
-                                                        GHC.Generics.C
-                                                        ('GHC.Generics.MetaCons
-                                                           "GWfC"
-                                                           'GHC.Generics.PrefixI
-                                                           'GHC.Types.True)
-                                                        ((GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "wenv")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Environments.IBindEnv)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "wrft")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                (Language.Fixpoint.Types.Names.Symbol,
-                                                                                 Language.Fixpoint.Types.Sorts.Sort,
-                                                                                 Language.Fixpoint.Types.Refinements.KVar)))
-                                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "winfo")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R a)
-                                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                                              GHC.Generics.S
-                                                                                              ('GHC.Generics.MetaSel
-                                                                                                 ('GHC.Base.Just
-                                                                                                    "wexpr")
-                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                              (GHC.Generics.K1
-                                                                                                 GHC.Generics.R
-                                                                                                 Language.Fixpoint.Types.Refinements.Expr)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_WfC[0]
-                                         <a>_N))) <x>_N) -}
-50354839b899806bfddb7dd9a816596d
-  $fGenericWfC_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.WfC a) x
-    -> Language.Fixpoint.Types.Constraints.WfC a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x
-                   (ds1 :: GHC.Generics.Rep
-                             (Language.Fixpoint.Types.Constraints.WfC a) x) ->
-                 case ds1
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Constraints.Rep_WfC[0] <a>_N))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "WfC"
-                                   "Language.Fixpoint.Types.Constraints"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "wenv")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Environments.IBindEnv)
-                                    GHC.Generics.:*: (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "wrft")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           (Language.Fixpoint.Types.Names.Symbol,
-                                                            Language.Fixpoint.Types.Sorts.Sort,
-                                                            Language.Fixpoint.Types.Refinements.KVar))
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just "winfo")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R a)))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                                    ((GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "wenv")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Environments.IBindEnv)
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just "wrft")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            (Language.Fixpoint.Types.Names.Symbol,
-                                                                             Language.Fixpoint.Types.Sorts.Sort,
-                                                                             Language.Fixpoint.Types.Refinements.KVar)))
-                                                     GHC.Generics.:*: (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just "winfo")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R a)
-                                                                       GHC.Generics.:*: GHC.Generics.M1
-                                                                                          GHC.Generics.S
-                                                                                          ('GHC.Generics.MetaSel
-                                                                                             ('GHC.Base.Just
-                                                                                                "wexpr")
-                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                             'GHC.Generics.SourceStrict
-                                                                                             'GHC.Generics.DecidedStrict)
-                                                                                          (GHC.Generics.K1
-                                                                                             GHC.Generics.R
-                                                                                             Language.Fixpoint.Types.Refinements.Expr)))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds2
-                   -> case ds2
-                             `cast`
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "wenv")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "wrft")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Names.Symbol,
-                                                         Language.Fixpoint.Types.Sorts.Sort,
-                                                         Language.Fixpoint.Types.Refinements.KVar))
-                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just "winfo")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         a))>_R <x>_N) of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                      case ds4 of wild2 { GHC.Generics.:*: ds5 ds6 ->
-                      Language.Fixpoint.Types.Constraints.$WWfC
-                        @ a
-                        ds3
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "wenv")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     Language.Fixpoint.Types.Environments.IBindEnv>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                  <x>_P))
-                        ds5
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "wrft")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Sorts.Sort,
-                                      Language.Fixpoint.Types.Refinements.KVar)>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort,
-                                    Language.Fixpoint.Types.Refinements.KVar)>_R
-                                  <x>_P))
-                        ds6
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "winfo")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                             (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P)) } }
-                   GHC.Generics.R1 ds2
-                   -> case ds2
-                             `cast`
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <(GHC.Generics.M1
-                                    GHC.Generics.S
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "wenv")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.K1
-                                       GHC.Generics.R Language.Fixpoint.Types.Environments.IBindEnv)
-                                  GHC.Generics.:*: GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "wrft")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        (Language.Fixpoint.Types.Names.Symbol,
-                                                         Language.Fixpoint.Types.Sorts.Sort,
-                                                         Language.Fixpoint.Types.Refinements.KVar)))
-                                 GHC.Generics.:*: (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "winfo")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1 GHC.Generics.R a)
-                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just "wexpr")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Refinements.Expr))>_R <x>_N) of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                      case ds3 of wild2 { GHC.Generics.:*: ds5 ds6 ->
-                      case ds4 of wild3 { GHC.Generics.:*: ds7 ds8 ->
-                      Language.Fixpoint.Types.Constraints.$WGWfC
-                        @ a
-                        ds5
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "wenv")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     Language.Fixpoint.Types.Environments.IBindEnv>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                                  <x>_P))
-                        ds6
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "wrft")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Sorts.Sort,
-                                      Language.Fixpoint.Types.Refinements.KVar)>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort,
-                                    Language.Fixpoint.Types.Refinements.KVar)>_R
-                                  <x>_P))
-                        ds7
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "winfo")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                             (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                        ds8
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "wexpr")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Language.Fixpoint.Types.Refinements.Expr>_R
-                                  <x>_P)) } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fLocQualifier ::
-    Language.Fixpoint.Types.Spans.Loc
-      Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLS),1*U(A,A,A,U(U,U,U))>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fLocQualifier_$csrcSpan
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Spans.N:Loc[0]
-                          <Language.Fixpoint.Types.Constraints.Qualifier>_N)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fLocQualifier_$csrcSpan ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLS),1*U(A,A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (q :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 let {
-                   l :: Text.Parsec.Pos.SourcePos
-                   = case q of wild { Language.Fixpoint.Types.Constraints.Q ds1 ds2 ds3 ds4 ->
-                     ds4 }
-                 } in
-                 Language.Fixpoint.Types.Spans.$WSS l l) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidAxiomEnv ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                  Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmempty
-                  Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmappend
-                  Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmconcat -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidAxiomEnv_$cmappend ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 2,
-     Strictness: <S(SSSLL),1*U(U,U,U,U,U)><L,U(U,U,U,1*U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (w1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.AEnv ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Constraints.$w$cmappend
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5
-                        w1 of ww6 { (#,,,,#) ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Constraints.AEnv
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidAxiomEnv_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.AxiomEnv]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Types.Constraints.AxiomEnv]) ->
-                 case Language.Fixpoint.Types.Constraints.$wgo
-                        w of ww { (#,,,,#) ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.AEnv ww1 ww2 ww3 ww4 ww5 }) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidAxiomEnv_$cmempty ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Constraints.AEnv
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Equation)
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Rewrite)
-                   (Data.HashMap.Base.Empty
-                      @ GHC.Integer.Type.Integer
-                      @ GHC.Types.Int)
-                   (Data.HashMap.Base.Empty
-                      @ GHC.Integer.Type.Integer
-                      @ GHC.Types.Bool)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidGFixSol ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Constraints.GFixSol e)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ e.
-                  @ (Language.Fixpoint.Types.Constraints.GFixSol e)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGFixSol_$cmempty @ e)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGFixSol_$cmappend @ e)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGFixSol_$cmconcat
-                     @ e) -}
-f1968cc05c02b19e51ec31a406df5008
-  $fMonoidGFixSol1 ::
-    [Data.HashMap.Base.HashMap
-       Language.Fixpoint.Types.Refinements.KVar (e, [e])]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar (e, [e])
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ e
-                   (w2 :: [Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar (e, [e])]) ->
-                 Data.HashMap.Base.$w$cmconcat
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ (e, [e])
-                   Language.Fixpoint.Types.Refinements.$fEqKVar
-                   w2) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidGFixSol_$cmappend ::
-    Language.Fixpoint.Types.Constraints.GFixSol e
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ e ->
-                 Language.Fixpoint.Types.Environments.$fMonoidPacks_$s$wunion
-                   @ (e, [e]))
-                  `cast`
-                (forall (e :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                               <e>_R)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidGFixSol_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.GFixSol e]
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fMonoidGFixSol1
-                  `cast`
-                (forall (e :: <*>_N).
-                 ([Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)])_R
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                               <e>_R)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidGFixSol_$cmempty ::
-    Language.Fixpoint.Types.Constraints.GFixSol e
-  {- HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ e ->
-                 Data.HashMap.Base.Empty
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ (e, [e]))
-                  `cast`
-                (forall (e :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0] <e>_R)) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidGInfo ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *) @ a.
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmempty
-                     @ c
-                     @ a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmappend
-                     @ c
-                     @ a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmconcat
-                     @ c
-                     @ a) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidGInfo1 ::
-    [Language.Fixpoint.Types.Constraints.GInfo c a]
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 1, Strictness: <S,1*U> -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidGInfo_$cmappend ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 2,
-     Strictness: <S(SSS(SS)SSSSSSSL),U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,U,U))><S(SSSSSSSSSSL),U(U,U,U(U,U),U,U,U,U,U,U(1*U,1*U),U,U(U,U,U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Types.Constraints.GInfo c a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 case ww9 of ww15 { Language.Fixpoint.Types.Constraints.HOI ww16 ww17 ->
-                 case w1 of ww18 { Language.Fixpoint.Types.Constraints.FI ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ->
-                 case ww21 of ww30 { Language.Fixpoint.Types.Environments.BE ww31 ww32 ->
-                 case ww27 of ww33 { Language.Fixpoint.Types.Constraints.HOI ww34 ww35 ->
-                 Language.Fixpoint.Types.Constraints.$w$cmappend1
-                   @ c
-                   @ a
-                   ww1
-                   ww2
-                   ww13
-                   ww14
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww16
-                   ww17
-                   ww10
-                   ww11
-                   ww19
-                   ww20
-                   ww31
-                   ww32
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww34
-                   ww35
-                   ww28
-                   ww29 } } } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidGInfo_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.GInfo c a]
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   (eta :: [Language.Fixpoint.Types.Constraints.GInfo c a]) ->
-                 Language.Fixpoint.Types.Constraints.$fMonoidGInfo1 @ c @ a eta) -}
-1052549cc559e08aaa78c218edda206c
-  $fMonoidGInfo_$cmempty ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-  {- HasNoCafRefs,
-     Unfolding: (\ @ (c :: * -> *) @ a ->
-                 Language.Fixpoint.Types.Constraints.FI
-                   @ c
-                   @ a
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Constraints.SubcId
-                      @ (c a))
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ (Language.Fixpoint.Types.Constraints.WfC a))
-                   Language.Fixpoint.Types.Environments.emptyBindEnv
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Sorts.Sort)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Sorts.Sort)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ ())
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Constraints.Qualifier)
-                   (Data.HashMap.Base.Empty @ GHC.Types.Int @ a)
-                   Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmempty1
-                   (GHC.Types.[]
-                      @ (Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr))
-                   Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmempty) -}
-7a24b8d792e855ca223f976758f59930
-  $fMonoidGInfo_$cmempty1 ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Constraints.HOI
-                   GHC.Types.False
-                   GHC.Types.False) -}
-7a24b8d792e855ca223f976758f59930
-  $fMonoidHOInfo ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.HOInfo
-                  Language.Fixpoint.Types.Constraints.$fMonoidGInfo_$cmempty1
-                  Language.Fixpoint.Types.Constraints.$fMonoidHOInfo_$cmappend
-                  Language.Fixpoint.Types.Constraints.$fMonoidHOInfo_$cmconcat -}
-7a24b8d792e855ca223f976758f59930
-  $fMonoidHOInfo_$cmappend ::
-    Language.Fixpoint.Types.Constraints.HOInfo
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,1*U)><L,U(1*U,1*U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (i1 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (i2 :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 Language.Fixpoint.Types.Constraints.HOI
-                   (case i1 of wild { Language.Fixpoint.Types.Constraints.HOI ds1 ds2 ->
-                    case ds1 of wild1 {
-                      GHC.Types.False
-                      -> case i2 of wild2 { Language.Fixpoint.Types.Constraints.HOI ds3 ds4 ->
-                         ds3 }
-                      GHC.Types.True -> GHC.Types.True } })
-                   (case i1 of wild { Language.Fixpoint.Types.Constraints.HOI ds1 ds2 ->
-                    case ds2 of wild1 {
-                      GHC.Types.False
-                      -> case i2 of wild2 { Language.Fixpoint.Types.Constraints.HOI ds3 ds4 ->
-                         ds4 }
-                      GHC.Types.True -> GHC.Types.True } })) -}
-7a24b8d792e855ca223f976758f59930
-  $fMonoidHOInfo_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.HOInfo]
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Types.Constraints.HOInfo]) ->
-                 case Language.Fixpoint.Types.Constraints.$wgo1
-                        w of ww { (#,#) ww1 ww2 ->
-                 Language.Fixpoint.Types.Constraints.HOI ww1 ww2 }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fMonoidKuts ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  (Data.HashSet.empty @ Language.Fixpoint.Types.Refinements.KVar)
-                    `cast`
-                  (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0]))
-                  Language.Fixpoint.Types.Constraints.$fMonoidKuts_$cmappend
-                  Language.Fixpoint.Types.Constraints.$fMonoidKuts_$cmconcat -}
-10aef948b5229216dcc343e2e00963d2
-  $fMonoidKuts_$cmappend ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Types.Environments.$fMonoidPacks_$s$wunion @ ())
-                  `cast`
-                (Trans
-                     (Sym (Data.HashSet.N:HashSet[0]
-                               <Language.Fixpoint.Types.Refinements.KVar>_N))
-                     (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Refinements.KVar>_N))
-                          (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Refinements.KVar>_N))
-                          (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0]))) -}
-10aef948b5229216dcc343e2e00963d2
-  $fMonoidKuts_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.Kuts]
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Constraints.Kuts]) ->
-                 Language.Fixpoint.Types.Constraints.$fMonoidKuts_go eta) -}
-10aef948b5229216dcc343e2e00963d2
-  $fMonoidKuts_go ::
-    [Language.Fixpoint.Types.Constraints.Kuts]
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, Strictness: <S,1*U> -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidResult ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Constraints.Result a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Constraints.Result a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmempty @ a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmappend @ a)
-                  (Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmconcat
-                     @ a) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidResult1 ::
-    [Language.Fixpoint.Types.Constraints.Result a]
-    -> (# Language.Fixpoint.Types.Errors.FixResult a,
-          Language.Fixpoint.Types.Constraints.FixSolution,
-          Language.Fixpoint.Types.Constraints.GFixSolution #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidResult_$cmappend ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> Language.Fixpoint.Types.Constraints.Result a
-    -> Language.Fixpoint.Types.Constraints.Result a
-  {- Arity: 2, Strictness: <S(SSS),1*U(U,U,U)><S(SSS),U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.Result a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Result ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Constraints.Result ww5 ww6 ww7 ->
-                 case case ww1 of wild {
-                        DEFAULT
-                        -> case ww5 of wild1 {
-                             Language.Fixpoint.Types.Errors.Crash ds1 ds2 -> wild1
-                             Language.Fixpoint.Types.Errors.Safe -> wild
-                             Language.Fixpoint.Types.Errors.Unsafe ipv
-                             -> case wild of wild2 {
-                                  Language.Fixpoint.Types.Errors.Crash ds1 ds2 -> wild2
-                                  Language.Fixpoint.Types.Errors.Unsafe xs
-                                  -> case GHC.Base.++ @ a xs ipv of dt { DEFAULT ->
-                                     Language.Fixpoint.Types.Errors.Unsafe @ a dt } } }
-                        Language.Fixpoint.Types.Errors.Safe -> ww5 } of dt { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        0#
-                        ww2
-                        ww6 of dt1 { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                        0#
-                        ww3
-                          `cast`
-                        (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_R)
-                        ww7
-                          `cast`
-                        (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_R) of nt { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.Result
-                   @ a
-                   dt
-                   dt1
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_R)) } } } } }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidResult_$cmconcat ::
-    [Language.Fixpoint.Types.Constraints.Result a]
-    -> Language.Fixpoint.Types.Constraints.Result a
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: [Language.Fixpoint.Types.Constraints.Result a]) ->
-                 case Language.Fixpoint.Types.Constraints.$fMonoidResult1
-                        @ a
-                        w of ww { (#,,#) ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Constraints.Result @ a ww1 ww2 ww3 }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fMonoidResult_$cmempty ::
-    Language.Fixpoint.Types.Constraints.Result a
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Types.Constraints.Result
-                   @ a
-                   (Language.Fixpoint.Types.Errors.Safe @ a)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ (Language.Fixpoint.Types.Refinements.Expr,
-                         [Language.Fixpoint.Types.Refinements.Expr]))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_R))) -}
-1052549cc559e08aaa78c218edda206c
-  $fNFDataAxiomEnv ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSS),1*U(U,U,U,1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.AxiomEnv>_N)) -}
-b6e337dc41cbf947ce3db72ad7ebc7a9
-  $fNFDataAxiomEnv1 ::
-    (GHC.Generics.:*:)
-      (GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvSyms")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-       GHC.Generics.:*: GHC.Generics.S1
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "aenvEqs")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.SourceStrict
-                             'GHC.Generics.DecidedStrict)
-                          (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Equation]))
-      (GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvSimpl")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-       GHC.Generics.:*: (GHC.Generics.S1
-                           ('GHC.Generics.MetaSel
-                              ('GHC.Base.Just "aenvFuel")
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.NoSourceStrictness
-                              'GHC.Generics.DecidedLazy)
-                           (GHC.Generics.Rec0
-                              (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                         GHC.Generics.:*: GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvExpand")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.Rec0
-                                               (Data.HashMap.Base.HashMap
-                                                  Language.Fixpoint.Types.Constraints.SubcId
-                                                  GHC.Types.Bool))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SS))),1*U(1*U(1*U,1*U),1*U(1*U,1*U(1*U,1*U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: (GHC.Generics.:*:)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvSyms")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "aenvEqs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  [Language.Fixpoint.Types.Constraints.Equation]))
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvSimpl")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-                            GHC.Generics.:*: (GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvFuel")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.Rec0
-                                                   (Data.HashMap.Base.HashMap
-                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                      GHC.Types.Int))
-                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "aenvExpand")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.Rec0
-                                                                    (Data.HashMap.Base.HashMap
-                                                                       Language.Fixpoint.Types.Constraints.SubcId
-                                                                       GHC.Types.Bool))))
-                           a1) ->
-                 case w of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 Language.Fixpoint.Types.Constraints.$w$dGNFData
-                   @ a1
-                   ww4
-                   ww5
-                   ww7
-                   ww10
-                   ww11 } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fNFDataAxiomEnv_$crnf ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSSS),1*U(U,U,U,1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case eta of wild { Language.Fixpoint.Types.Constraints.AEnv g1 g2 g3 g4 g5 ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv1
-                   @ GHC.Prim.Any
-                   (GHC.Generics.:*:
-                      @ (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              ('GHC.Base.Just "aenvSyms")
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol])
-                         GHC.Generics.:*: GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvEqs")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Constraints.Equation]))
-                      @ (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              ('GHC.Base.Just "aenvSimpl")
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R [Language.Fixpoint.Types.Constraints.Rewrite])
-                         GHC.Generics.:*: (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvFuel")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   GHC.Types.Int))
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "aenvExpand")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Constraints.SubcId
-                                                                    GHC.Types.Bool))))
-                      @ GHC.Prim.Any
-                      (GHC.Generics.:*:
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvSyms")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Names.Symbol]))
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvEqs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Constraints.Equation]))
-                         @ GHC.Prim.Any
-                         g1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:K1[0]
-                                        <GHC.Generics.R>_P
-                                        <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                        <GHC.Prim.Any>_P))
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.S>_P
-                                        <'GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "aenvSyms")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict>_P
-                                        <GHC.Generics.K1
-                                           GHC.Generics.R
-                                           [Language.Fixpoint.Types.Names.Symbol]>_R) <GHC.Prim.Any>_N))
-                         g2
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:K1[0]
-                                        <GHC.Generics.R>_P
-                                        <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                        <GHC.Prim.Any>_P))
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.S>_P
-                                        <'GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "aenvEqs")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict>_P
-                                        <GHC.Generics.K1
-                                           GHC.Generics.R
-                                           [Language.Fixpoint.Types.Constraints.Equation]>_R) <GHC.Prim.Any>_N)))
-                      (GHC.Generics.:*:
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvSimpl")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Constraints.Rewrite]))
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "aenvFuel")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R
-                                 (Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "aenvExpand")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashMap.Base.HashMap
-                                                     Language.Fixpoint.Types.Constraints.SubcId
-                                                     GHC.Types.Bool)))
-                         @ GHC.Prim.Any
-                         g3
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:K1[0]
-                                        <GHC.Generics.R>_P
-                                        <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                        <GHC.Prim.Any>_P))
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.S>_P
-                                        <'GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "aenvSimpl")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict>_P
-                                        <GHC.Generics.K1
-                                           GHC.Generics.R
-                                           [Language.Fixpoint.Types.Constraints.Rewrite]>_R) <GHC.Prim.Any>_N))
-                         (GHC.Generics.:*:
-                            @ (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "aenvFuel")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R
-                                    (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)))
-                            @ (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "aenvExpand")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.K1
-                                    GHC.Generics.R
-                                    (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool)))
-                            @ GHC.Prim.Any
-                            g4
-                              `cast`
-                            (Trans
-                                 (Sym (GHC.Generics.N:K1[0]
-                                           <GHC.Generics.R>_P
-                                           <Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Constraints.SubcId
-                                              GHC.Types.Int>_R
-                                           <GHC.Prim.Any>_P))
-                                 (Sym (GHC.Generics.N:M1[0]
-                                           <GHC.Generics.S>_P
-                                           <'GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "aenvFuel")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy>_P
-                                           <GHC.Generics.K1
-                                              GHC.Generics.R
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Constraints.SubcId
-                                                 GHC.Types.Int)>_R) <GHC.Prim.Any>_N))
-                            g5
-                              `cast`
-                            (Trans
-                                 (Sym (GHC.Generics.N:K1[0]
-                                           <GHC.Generics.R>_P
-                                           <Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Constraints.SubcId
-                                              GHC.Types.Bool>_R
-                                           <GHC.Prim.Any>_P))
-                                 (Sym (GHC.Generics.N:M1[0]
-                                           <GHC.Generics.S>_P
-                                           <'GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "aenvExpand")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy>_P
-                                           <GHC.Generics.K1
-                                              GHC.Generics.R
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Constraints.SubcId
-                                                 GHC.Types.Bool)>_R) <GHC.Prim.Any>_N))))) }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fNFDataAxiomEnv_$crnf1 ::
-    Language.Fixpoint.Types.Constraints.Rewrite -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSS),1*U(1*H,1*H,1*U,1*U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SMeasure ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ww2 of ww6 { Language.Fixpoint.Types.Names.S ipv3 ipv4 ipv5 ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Names.Symbol>_N))
-                        ww3 of wild1 { () ->
-                 Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                      @ GHC.Prim.Any
-                      ww4) } } } }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fNFDataAxiomEnv_$crnf2 ::
-    Language.Fixpoint.Types.Constraints.Equation -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(1*H,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Equ ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Names.Symbol>_N))
-                        ww2 of wild1 { () ->
-                 Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                      @ GHC.Prim.Any
-                      ww3) } } }) -}
-a169ada413b4ac6b8a6e83105fbe535a
-  $fNFDataEliminate ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Config.Eliminate
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataEliminate_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Config.Eliminate>_N)) -}
-df41e54648833a958de92fb04a660891
-  $fNFDataEliminate1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Eliminate"
-            "Language.Fixpoint.Types.Config"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataEliminate2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Eliminate"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "All"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))>_N)) -}
-17a96f97007f4eba99f4a6d84c11f282
-  $fNFDataEliminate2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Eliminate"
-         "Language.Fixpoint.Types.Config"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            GHC.Generics.U1))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Eliminate"
-                              "Language.Fixpoint.Types.Config"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "All"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1))
-                           a1) ->
-                 case x `cast`
-                      (GHC.Generics.N:M1[0]
-                           <GHC.Generics.D>_P
-                           <'GHC.Generics.MetaData
-                              "Eliminate"
-                              "Language.Fixpoint.Types.Config"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False>_P
-                           <GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "All"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1)>_R <a1>_N) of wild {
-                   GHC.Generics.L1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() }
-                   GHC.Generics.R1 x1
-                   -> case x1 of wild1 {
-                        GHC.Generics.L1 x2 -> case x2 of tpl { DEFAULT -> GHC.Tuple.() }
-                        GHC.Generics.R1 x2
-                        -> case x2 of tpl { DEFAULT -> GHC.Tuple.() } } }) -}
-e7e81a41672432493840c6f9daf57f0e
-  $fNFDataEliminate_$s$dmrnf ::
-    Language.Fixpoint.Types.Config.Eliminate -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Config.Eliminate) ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataEliminate1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Config.Rep_Eliminate[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Config.$fGenericEliminate_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fNFDataEquation ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Constraints.Equation
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(1*H,1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv_$crnf2
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.Equation>_N)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fNFDataGFixSol ::
-    Control.DeepSeq.NFData
-      Language.Fixpoint.Types.Constraints.GFixSolution
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataGFixSol_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.GFixSolution>_N)) -}
-82431637481af52f99b872e039ecbf70
-  $fNFDataGFixSol1 ::
-    (Language.Fixpoint.Types.Refinements.Expr,
-     [Language.Fixpoint.Types.Refinements.Expr])
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: (Language.Fixpoint.Types.Refinements.Expr,
-                          [Language.Fixpoint.Types.Refinements.Expr])) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Constraints.$w$dNFData ww1 ww2 }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fNFDataGFixSol_$crnf ::
-    Language.Fixpoint.Types.Constraints.GFixSolution -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ (Language.Fixpoint.Types.Refinements.Expr,
-                      [Language.Fixpoint.Types.Refinements.Expr])
-                   Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.KVar>_N))
-                   Language.Fixpoint.Types.Constraints.$fNFDataGFixSol1
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               [Language.Fixpoint.Types.Refinements.Expr])>_N))
-                   eta
-                     `cast`
-                   (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                        <Language.Fixpoint.Types.Refinements.Expr>_R)) -}
-1052549cc559e08aaa78c218edda206c
-  $fNFDataGInfo ::
-    (Control.DeepSeq.NFData (c a), Control.DeepSeq.NFData a) =>
-    Control.DeepSeq.NFData
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(U())><L,C(U())><S(SSS(LS)SSSSSS(SS)SS(SSSSS)),1*U(U,U,U(A,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (2, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataGInfo_$crnf
-                  `cast`
-                (forall (c :: <* -> *>_N) (a :: <*>_N).
-                 <Control.DeepSeq.NFData (c a)>_R
-                 ->_R <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Constraints.GInfo c a>_N)) -}
-a6aac4ee0e50eb5481b7a1d8e951c56c
-  $fNFDataGInfo1 ::
-    Language.Fixpoint.Types.Triggers.Triggered
-      Language.Fixpoint.Types.Refinements.Expr
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Triggers.Triggered
-                             Language.Fixpoint.Types.Refinements.Expr) ->
-                 case eta of wild { Language.Fixpoint.Types.Triggers.TR g1 g2 ->
-                 case g1 of wild1 { DEFAULT ->
-                 Language.Fixpoint.Types.Refinements.$fNFDataExpr_$crnf g2 } }) -}
-04195b3ba838728ee37bc158cac0ed07
-  $fNFDataGInfo2 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Sorts.Sort)
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*H,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)) ->
-                 case ds1 of wild { (,) x y ->
-                 case x of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                 Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf y } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fNFDataGInfo_$crnf ::
-    (Control.DeepSeq.NFData (c a), Control.DeepSeq.NFData a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a -> ()
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(U())><L,C(U())><S(SSS(LS)SSSSSS(SS)SS(SSSSS)),1*U(U,U,U(A,U),U,U,U,U,U,U(1*U,1*U),U,1*U(U,U,U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Control.DeepSeq.NFData (c a))
-                   (w1 :: Control.DeepSeq.NFData a)
-                   (w2 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 case ww9 of ww15 { Language.Fixpoint.Types.Constraints.HOI ww16 ww17 ->
-                 case ww11 of ww18 { Language.Fixpoint.Types.Constraints.AEnv ww19 ww20 ww21 ww22 ww23 ->
-                 Language.Fixpoint.Types.Constraints.$w$crnf
-                   @ c
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww14
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww16
-                   ww17
-                   ww10
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23 } } } }) -}
-50354839b899806bfddb7dd9a816596d
-  $fNFDataGInfo_$crnf1 ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Constraints.WfC a -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <C(S),1*C1(U())><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dNFData :: Control.DeepSeq.NFData a)
-                   (eta :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case eta of wild {
-                   Language.Fixpoint.Types.Constraints.WfC g1 g2 g3
-                   -> case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                             @ GHC.Types.Int
-                             @ ()
-                             Control.DeepSeq.$fNFDataInt_$crnf
-                               `cast`
-                             (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                             Control.DeepSeq.$fNFData()_$crnf
-                               `cast`
-                             (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                             g1
-                               `cast`
-                             (Trans
-                                  (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                  (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild1 { () ->
-                      case g2 of wild2 { (,,) x y z1 ->
-                      case x of wild3 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                      case Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                             y of wild4 { () ->
-                      case z1 of tpl { DEFAULT ->
-                      $dNFData `cast` (Control.DeepSeq.N:NFData[0] <a>_N) g3 } } } } }
-                   Language.Fixpoint.Types.Constraints.GWfC g1 g2 g3 g4
-                   -> case g2 of wild1 { (,,) x y z1 ->
-                      case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                             @ GHC.Types.Int
-                             @ ()
-                             Control.DeepSeq.$fNFDataInt_$crnf
-                               `cast`
-                             (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                             Control.DeepSeq.$fNFData()_$crnf
-                               `cast`
-                             (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                             g1
-                               `cast`
-                             (Trans
-                                  (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                  (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild2 { () ->
-                      case x of wild3 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                      case Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                             y of wild4 { () ->
-                      case z1 of tpl { DEFAULT ->
-                      case $dNFData `cast` (Control.DeepSeq.N:NFData[0] <a>_N)
-                             g3 of wild5 { () ->
-                      Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           g4) } } } } } } }) -}
-7a24b8d792e855ca223f976758f59930
-  $fNFDataHOInfo ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataHOInfo_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.HOInfo>_N)) -}
-8607124359fe7386098e48333aa9405b
-  $fNFDataHOInfo1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "HOInfo"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "hoBinds")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 GHC.Types.Bool)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "hoQuals")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.Rec0 GHC.Types.Bool))))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataHOInfo2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "HOInfo"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "hoBinds")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "hoQuals")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0 GHC.Types.Bool)))>_N)) -}
-4523f7b345124b823d682de9ad03bb0b
-  $fNFDataHOInfo2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "HOInfo"
-         "Language.Fixpoint.Types.Constraints"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "hoBinds")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 GHC.Types.Bool)
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "hoQuals")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 GHC.Types.Bool)))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "HOInfo"
-                              "Language.Fixpoint.Types.Constraints"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "hoBinds")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "hoQuals")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 GHC.Types.Bool)))
-                           a1) ->
-                 case x `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "HOInfo"
-                                   "Language.Fixpoint.Types.Constraints"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   (GHC.Generics.S1
-                                      ('GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "hoBinds")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.Rec0 GHC.Types.Bool)
-                                    GHC.Generics.:*: GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "hoQuals")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.NoSourceStrictness
-                                                          'GHC.Generics.DecidedLazy)
-                                                       (GHC.Generics.Rec0 GHC.Types.Bool))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "hoBinds")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "hoQuals")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       GHC.Types.Bool)>_R) <a1>_N) of wild { GHC.Generics.:*: x1 y ->
-                 case x1 of tpl { DEFAULT ->
-                 case y of tpl1 { DEFAULT -> GHC.Tuple.() } } }) -}
-7a24b8d792e855ca223f976758f59930
-  $fNFDataHOInfo_$s$dmrnf ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataHOInfo1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Constraints.Rep_HOInfo[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Constraints.$fGenericHOInfo_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-10aef948b5229216dcc343e2e00963d2
-  $fNFDataKuts ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataKuts_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.Kuts>_N)) -}
-affb0eb610086d6f40ce2683977c10c1
-  $fNFDataKuts1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Kuts"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "ksVars")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar)))))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataKuts2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Kuts"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "ksVars")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashSet.HashSet
-                                         Language.Fixpoint.Types.Refinements.KVar))))>_N)) -}
-3ad84f61aed9d7a3ae7c14cf11425f93
-  $fNFDataKuts2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Kuts"
-         "Language.Fixpoint.Types.Constraints"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "ksVars")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Kuts"
-                              "Language.Fixpoint.Types.Constraints"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.True)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "ksVars")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    (Data.HashSet.HashSet
-                                       Language.Fixpoint.Types.Refinements.KVar))))
-                           a1) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ ()
-                   Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.KVar>_N))
-                   Control.DeepSeq.$fNFData()_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                   x `cast`
-                   (Trans
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.D>_P
-                                  <'GHC.Generics.MetaData
-                                     "Kuts"
-                                     "Language.Fixpoint.Types.Constraints"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.True>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "ksVars")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Data.HashSet.HashSet
-                                              Language.Fixpoint.Types.Refinements.KVar)))>_R)
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "KS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "ksVars")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             (Data.HashSet.HashSet
-                                                Language.Fixpoint.Types.Refinements.KVar))>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "ksVars")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          (Data.HashSet.HashSet
-                                             Language.Fixpoint.Types.Refinements.KVar)>_R)) <a1>_N)
-                        (Trans
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar>_R
-                                  <a1>_P)
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N)))) -}
-10aef948b5229216dcc343e2e00963d2
-  $fNFDataKuts_$s$dmrnf ::
-    Language.Fixpoint.Types.Constraints.Kuts -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataKuts1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Constraints.Rep_Kuts[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Constraints.$fBinaryKuts_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fNFDataQualifier ::
-    Control.DeepSeq.NFData
-      Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSSS(SLL)),1*U(A,1*U,U,U(U,U,U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataQualifier_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.Qualifier>_N)) -}
-721e4ab23f115161083354d42e4ff014
-  $fNFDataQualifier1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Qualifier"
-            "Language.Fixpoint.Types.Constraints"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.S1
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "qName")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedStrict)
-                (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-              GHC.Generics.:*: GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "qParams")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    [(Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Sorts.Sort)]))
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "qBody")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "qPos")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)))))
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SLL))),1*U(1*U(1*U,1*U),1*U(1*U,U(U,U,U)))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataQualifier2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Qualifier"
-                                "Language.Fixpoint.Types.Constraints"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                ((GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qName")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "qParams")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        [(Language.Fixpoint.Types.Names.Symbol,
-                                                          Language.Fixpoint.Types.Sorts.Sort)]))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "qBody")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.Expr)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just "qPos")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Text.Parsec.Pos.SourcePos))))>_N)) -}
-1e19adea2dca0b077aca22c1a9763b2f
-  $fNFDataQualifier2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Qualifier"
-         "Language.Fixpoint.Types.Constraints"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.S1
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "qName")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedStrict)
-             (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-           GHC.Generics.:*: GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "qParams")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0
-                                 [(Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Sorts.Sort)]))
-          GHC.Generics.:*: (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "qBody")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "qPos")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS)S(SS(SLL))),1*U(1*U(1*U,1*U),1*U(1*U,U(U,U,U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Qualifier"
-                              "Language.Fixpoint.Types.Constraints"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              ((GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "qName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "qParams")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      [(Language.Fixpoint.Types.Names.Symbol,
-                                                        Language.Fixpoint.Types.Sorts.Sort)]))
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "qBody")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.Rec0
-                                                      Language.Fixpoint.Types.Refinements.Expr)
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "qPos")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.Rec0
-                                                                       Text.Parsec.Pos.SourcePos))))
-                           a1) ->
-                 case w `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Qualifier"
-                                   "Language.Fixpoint.Types.Constraints"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   ((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "qName")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedStrict)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "qParams")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           [(Language.Fixpoint.Types.Names.Symbol,
-                                                             Language.Fixpoint.Types.Sorts.Sort)]))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "qBody")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.Rec0
-                                                           Language.Fixpoint.Types.Refinements.Expr)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just "qPos")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.Rec0
-                                                                            Text.Parsec.Pos.SourcePos)))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "Q" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <(GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qName")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "qParams")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        [(Language.Fixpoint.Types.Names.Symbol,
-                                                          Language.Fixpoint.Types.Sorts.Sort)]))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "qBody")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.Expr)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just "qPos")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Text.Parsec.Pos.SourcePos))>_R) <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww2 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww8
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "qPos")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos>_R <a1>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Text.Parsec.Pos.SourcePos>_R
-                                <a1>_P)) of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                 Language.Fixpoint.Types.Constraints.$w$dGNFData1
-                   @ a1
-                   ww4
-                   ww5
-                   ww7
-                   ww10
-                   ww11
-                   ww12 } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fNFDataQualifier_$s$dmrnf ::
-    Language.Fixpoint.Types.Constraints.Qualifier -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSSS(SLL)),1*U(A,1*U,U,U(U,U,U))>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataQualifier1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Constraints.Rep_Qualifier[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Constraints.$fGenericQualifier_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fNFDataResult ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData
-      (Language.Fixpoint.Types.Constraints.Result a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(H)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataResult_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Constraints.Result a>_N)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fNFDataResult_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Constraints.Result a -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(H)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.Result ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Constraints.$w$crnf1
-                   @ a
-                   w
-                   ww1
-                   ww2
-                   ww3 }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fNFDataRewrite ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Constraints.Rewrite
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSSS),1*U(1*H,1*H,1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv_$crnf1
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Constraints.Rewrite>_N)) -}
-6b3efacd0323b2e4394f280d16224286
-  $fNFDataSMTSolver ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Config.SMTSolver
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataSMTSolver_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Config.SMTSolver>_N)) -}
-969d8f66277980f3461b08f1faeb57c8
-  $fNFDataSMTSolver1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "SMTSolver"
-            "Language.Fixpoint.Types.Config"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataSMTSolver2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "SMTSolver"
-                                "Language.Fixpoint.Types.Config"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "Mathsat"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   GHC.Generics.U1))>_N)) -}
-c4feffb3d40e29c779bd1dfec671cd07
-  $fNFDataSMTSolver2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "SMTSolver"
-         "Language.Fixpoint.Types.Config"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            GHC.Generics.U1))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "SMTSolver"
-                              "Language.Fixpoint.Types.Config"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Mathsat"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1))
-                           a1) ->
-                 case x `cast`
-                      (GHC.Generics.N:M1[0]
-                           <GHC.Generics.D>_P
-                           <'GHC.Generics.MetaData
-                              "SMTSolver"
-                              "Language.Fixpoint.Types.Config"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False>_P
-                           <GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Mathsat"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1)>_R <a1>_N) of wild {
-                   GHC.Generics.L1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() }
-                   GHC.Generics.R1 x1
-                   -> case x1 of wild1 {
-                        GHC.Generics.L1 x2 -> case x2 of tpl { DEFAULT -> GHC.Tuple.() }
-                        GHC.Generics.R1 x2
-                        -> case x2 of tpl { DEFAULT -> GHC.Tuple.() } } }) -}
-606b8c1509462ea1f0919555b2e707b4
-  $fNFDataSMTSolver_$s$dmrnf ::
-    Language.Fixpoint.Types.Config.SMTSolver -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Config.SMTSolver) ->
-                 Language.Fixpoint.Types.Constraints.$fNFDataSMTSolver1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Config.Rep_SMTSolver[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Config.$fGenericSMTSolver_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fNFDataSimpC ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SSSSS),1*U(U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataSimpC_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Constraints.SimpC a>_N)) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fNFDataSimpC_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Constraints.SimpC a -> ()
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SSSSS),1*U(U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SimpC ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$w$crnf2
-                   @ a
-                   w
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5 }) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fNFDataSubC ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SS(SS(SS))S(SS(SS))SSS),1*U(U,U(U,U(1*H,1*U)),U(U,U(1*H,1*U)),U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataSubC_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Constraints.SubC a>_N)) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fNFDataSubC_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Constraints.SubC a -> ()
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SS(SS(SS))S(SS(SS))SSS),1*U(U,U(U,U(1*H,1*U)),U(U,U(1*H,1*U)),U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww9
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww10 { (,) ww11 ww12 ->
-                 case ww11 of ww13 { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case ww3 of ww14 { Language.Fixpoint.Types.Refinements.RR ww15 ww16 ->
-                 case ww16
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww17 { (,) ww18 ww19 ->
-                 case ww18 of ww20 { Language.Fixpoint.Types.Names.S ipv3 ipv4 ipv5 ->
-                 Language.Fixpoint.Types.Constraints.$w$crnf3
-                   @ a
-                   w
-                   ww1
-                   ww8
-                   ww13
-                   ww12
-                   ww15
-                   ww20
-                   ww19
-                   ww4
-                   ww5
-                   ww6 } } } } } } }) -}
-50354839b899806bfddb7dd9a816596d
-  $fNFDataWfC ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <C(S),1*C1(U())><S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Constraints.$fNFDataGInfo_$crnf1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Constraints.WfC a>_N)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fPPrintGFixSol ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Constraints.GFixSolution
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.GFixSolution
-                  Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_$cpprintTidy
-                  Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_$cpprintPrec -}
-e90ee9e1d8108fa2e97c46597965b03f
-  $fPPrintGFixSol1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fPPrintGFixSol2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-64f89fbb95da735cd505d474d86aa5a1
-  $fPPrintGFixSol2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_s) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fPPrintGFixSol_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds1 :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_$cpprintTidy
-                   eta
-                   eta1) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fPPrintGFixSol_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, True)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 Language.Fixpoint.Types.Constraints.$w$cpprintTidy w1) -}
-0f7a05b73def39949392b20f3de05295
-  $fPPrintGFixSol_go1 ::
-    [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Refinements.Expr,
-          [Language.Fixpoint.Types.Refinements.Expr])
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 2, Strictness: <L,U><S,1*U> -}
-4f02a6c62b15efa72794e35685a2b38c
-  $fPPrintGFixSol_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "\n\
-                   \\n"#) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fPPrintQualifier ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fPPrintQualifier_$cpprintTidy
-                  Language.Fixpoint.Types.Constraints.$fPPrintQualifier_$cpprintPrec -}
-72fddea3165e81b832a8f200cfbe962c
-  $fPPrintQualifier1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fPPrintQualifier_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fPPrintQualifier2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-951036cc779881beb1fa25bdf77765a5
-  $fPPrintQualifier2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fPPrintQualifier_s) -}
-74950d965a81fc25200e9ff19835ac56
-  $fPPrintQualifier3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fPPrintQualifier_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fPPrintQualifier4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ad948465b8ef672d392caa7491b681e3
-  $fPPrintQualifier4 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fPPrintQualifier_s1) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fPPrintQualifier_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds1 :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$fPPrintQualifier_$cpprintTidy
-                   eta
-                   eta1) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fPPrintQualifier_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <L,A><S(S(LS(SSS)L)LLS(SSS)),1*U(U(A,U(U,U,U),A),A,A,U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case ww1 of ww5 { Language.Fixpoint.Types.Names.S ww6 ww7 ww8 ->
-                 case ww7 of ww9 { Data.Text.Internal.Text ww10 ww11 ww12 ->
-                 case ww4 of ww13 { Text.Parsec.Pos.SourcePos ww14 ww15 ww16 ->
-                 Language.Fixpoint.Types.Constraints.$w$cpprintTidy1
-                   ww10
-                   ww11
-                   ww12
-                   ww14
-                   ww15
-                   ww16 } } } }) -}
-156876f87b71b387c06a732cabd29a44
-  $fPPrintQualifier_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "qualif"#) -}
-66ad34f787da2ff278f0c2add31eb6e6
-  $fPPrintQualifier_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "defined at"#) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fPPrintSimpC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintSimpC_$cpprintTidy
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintSimpC_$cpprintPrec
-                     @ a
-                     $dFixpoint) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fPPrintSimpC1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U(U,U,U,U,U)>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: GHC.Types.Int)
-                   (ds2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointSimpC1
-                   @ a
-                   $dFixpoint
-                   eta) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fPPrintSimpC2 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 3, Strictness: <L,U(C(U),A)><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointSimpC1
-                   @ a
-                   $dFixpoint
-                   eta) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fPPrintSimpC_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U(U,U,U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintSimpC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <GHC.Types.Int>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SimpC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fPPrintSimpC_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U(C(U),A)><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintSimpC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SimpC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fPPrintSubC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintSubC_$cpprintTidy
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintSubC_$cpprintPrec
-                     @ a
-                     $dFixpoint) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fPPrintSubC1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U(U,U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U,U,U)>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: GHC.Types.Int)
-                   (ds2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointSubC2
-                   @ a
-                   $dFixpoint
-                   eta) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fPPrintSubC2 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 3, Strictness: <L,U(C(U),A)><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointSubC2
-                   @ a
-                   $dFixpoint
-                   eta) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fPPrintSubC_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U(U,U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintSubC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <GHC.Types.Int>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SubC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fPPrintSubC_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U(C(U),A)><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintSubC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.SubC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-50354839b899806bfddb7dd9a816596d
-  $fPPrintWfC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintWfC_$cpprintTidy
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fPPrintWfC_$cpprintPrec
-                     @ a
-                     $dFixpoint) -}
-50354839b899806bfddb7dd9a816596d
-  $fPPrintWfC1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 4, Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: GHC.Types.Int)
-                   (ds2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointWfC2
-                   @ a
-                   $dFixpoint
-                   eta) -}
-50354839b899806bfddb7dd9a816596d
-  $fPPrintWfC2 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds1 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 Language.Fixpoint.Types.Constraints.$fFixpointWfC2
-                   @ a
-                   $dFixpoint
-                   eta) -}
-50354839b899806bfddb7dd9a816596d
-  $fPPrintWfC_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4, Strictness: <L,1*U(1*C1(U),A)><L,A><L,A><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintWfC1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <GHC.Types.Int>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.WfC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-50354839b899806bfddb7dd9a816596d
-  $fPPrintWfC_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPPrintWfC2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Tidy>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.WfC a>_R
-                 ->_R Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-1052549cc559e08aaa78c218edda206c
-  $fPTableGInfo ::
-    Language.Fixpoint.Types.PrettyPrint.PTable
-      (Language.Fixpoint.Types.Constraints.SInfo a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,A,A,A,A,A,A,A,A,A)>m2,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Constraints.$fPTableGInfo_$cptable
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.PrettyPrint.N:PTable[0]
-                          <Language.Fixpoint.Types.Constraints.SInfo a>_N)) -}
-1052549cc559e08aaa78c218edda206c
-  $fPTableGInfo1 ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)]
-  {- Arity: 1, Strictness: <L,U(U,U,A,A,A,A,A,A,A,A,A)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 case Language.Fixpoint.Types.Constraints.$w$cptable
-                        @ a
-                        w of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.:
-                   @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                   ww1
-                   ww2 }) -}
-a41389f1c7c9018f6571e0b1ee333ff3
-  $fPTableGInfo2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fPTableGInfo_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fPTableGInfo3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-cdf3a617111c7a0804c0bb56b8d9332c
-  $fPTableGInfo3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fPTableGInfo_s) -}
-78889044938dd1b8cde96c29c4d880aa
-  $fPTableGInfo4 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Constraints.$fPTableGInfo_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Constraints.$fPTableGInfo5
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-e7db17904ac10e5458cf29d1b4ba6fab
-  $fPTableGInfo5 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Constraints.$fPTableGInfo_s1) -}
-1052549cc559e08aaa78c218edda206c
-  $fPTableGInfo_$cptable ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, Strictness: <L,U(U,U,A,A,A,A,A,A,A,A,A)>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fPTableGInfo1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Constraints.SInfo a>_R
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) -}
-0feed2d784efc48f8d0bd2d5e95cc300
-  $fPTableGInfo_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# WF  Constraints"#) -}
-c2233fa46458c9a8fa79009c12674970
-  $fPTableGInfo_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "# Sub Constraints"#) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowAxiomEnv ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.AxiomEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                  Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$cshowList -}
-1052549cc559e08aaa78c218edda206c
-  $fShowAxiomEnv_$cshow ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SSSLL),1*U(U,U,U,1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowAxiomEnv_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.AxiomEnv] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                   Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$sshows) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowAxiomEnv_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S(SSSLL),1*U(U,U,U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Constraints.AEnv ww3 ww4 ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7 } }) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowAxiomEnv_$sshows ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$cshowsPrec
-                   GHC.Show.shows22) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fShowEquation ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.Equation
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Equation
-                  Language.Fixpoint.Types.Constraints.$fShowEquation_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowEquation_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowEquation_$cshowList -}
-f992e039791e119b27dbabbcdef5c498
-  $fShowEquation1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-d69a42c74a3f7179658ae4470dcd2376
-  $fShowEquation2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "eqBody = "#) -}
-64e3114296c275e1471afc0a6dfcd8e8
-  $fShowEquation3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "eqArgs = "#) -}
-61dfe97f2e742cefaed87ce7a9c53490
-  $fShowEquation4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-3fef6fc947b55b37fde939234850d7fd
-  $fShowEquation5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "eqName = "#) -}
-5710864406ac4ce2c0a56b8f6151e42d
-  $fShowEquation6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Equ {"#) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fShowEquation_$cshow ::
-    Language.Fixpoint.Types.Constraints.Equation -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(U(A,U(U,U,U),A),U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 Language.Fixpoint.Types.Constraints.$fShowEquation_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fShowEquation_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.Equation] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.Equation
-                   Language.Fixpoint.Types.Constraints.$fShowEquation_$sshows) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fShowEquation_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.Equation -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S,1*U(U(A,U(U,U,U),A),U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Constraints.Equ ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec1
-                   ww1
-                   ww3
-                   ww4
-                   ww5 } }) -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $fShowEquation_$sshows ::
-    Language.Fixpoint.Types.Constraints.Equation -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowEquation_$cshowsPrec
-                   GHC.Show.shows22) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowGFixSol ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.GFixSolution
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.GFixSolution
-                  Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshowList -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowGFixSol1 ::
-    Language.Fixpoint.Types.Constraints.GFixSolution
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Constraints.GFixSolution)
-                   (s22 :: GHC.Base.String)[OneShot] ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshow x)
-                   s22) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowGFixSol_$cshow ::
-    Language.Fixpoint.Types.Constraints.GFixSolution -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Constraints.$w$cpprintTidy x)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowGFixSol_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.GFixSolution]
-    -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (ls :: [Language.Fixpoint.Types.Constraints.GFixSolution])
-                   (s22 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.GFixSolution
-                   Language.Fixpoint.Types.Constraints.$fShowGFixSol1
-                   ls
-                   s22) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowGFixSol_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><L,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds1 :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Constraints.GFixSolution)
-                   (s22 :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshow x))
-                   s22) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowGInfo ::
-    (GHC.Show.Show (c a), GHC.Show.Show a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    GHC.Show.Show (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U(C(C1(U)),A,A)><L,U(C(C1(U)),A,A)><L,U(C(U),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ (c :: * -> *)
-                      @ a
-                      ($dShow :: GHC.Show.Show (c a))
-                      ($dShow1 :: GHC.Show.Show a)
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                  (Language.Fixpoint.Types.Constraints.$fShowGInfo_$cshowsPrec
-                     @ c
-                     @ a
-                     $dShow
-                     $dShow1
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowGInfo_$cshow
-                     @ c
-                     @ a
-                     $dShow
-                     $dShow1
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowGInfo_$cshowList
-                     @ c
-                     @ a
-                     $dShow
-                     $dShow1
-                     $dFixpoint) -}
-8a6cd6f46bd355391b73214c994f1470
-  $fShowGInfo1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowGInfo_$cshow ::
-    (GHC.Show.Show (c a), GHC.Show.Show a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Base.String
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A,A)><L,U(C(C1(U)),A,A)><L,U(C(U),A)><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   ($dShow :: GHC.Show.Show (c a))
-                   ($dShow1 :: GHC.Show.Show a)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (x :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 Language.Fixpoint.Types.Constraints.$fShowGInfo_$cshowsPrec
-                   @ c
-                   @ a
-                   $dShow
-                   $dShow1
-                   $dFixpoint
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowGInfo_$cshowList ::
-    (GHC.Show.Show (c a), GHC.Show.Show a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    [Language.Fixpoint.Types.Constraints.GInfo c a] -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,U(C(C1(U)),A,A)><L,U(C(C1(U)),A,A)><L,U(C(U),A)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   ($dShow :: GHC.Show.Show (c a))
-                   ($dShow1 :: GHC.Show.Show a)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Constraints.GInfo c a)
-                   (Language.Fixpoint.Types.Constraints.$fShowGInfo_$cshowsPrec
-                      @ c
-                      @ a
-                      $dShow
-                      $dShow1
-                      $dFixpoint
-                      Language.Fixpoint.Types.Constraints.$fShowGInfo1)) -}
-1052549cc559e08aaa78c218edda206c
-  $fShowGInfo_$cshowsPrec ::
-    (GHC.Show.Show (c a), GHC.Show.Show a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,U(C(C1(U)),A,A)><L,U(C(C1(U)),A,A)><L,U(C(U),A)> -}
-7a24b8d792e855ca223f976758f59930
-  $fShowHOInfo ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.HOInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.HOInfo
-                  Language.Fixpoint.Types.Constraints.$fShowHOInfo_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowHOInfo_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowHOInfo_$cshowList -}
-d4486c86c2d5753fbe703182a1b99754
-  $fShowHOInfo1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "hoQuals = "#) -}
-128480ff8af0873e3abfb556d1683e7b
-  $fShowHOInfo2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "hoBinds = "#) -}
-f26bbd31659ec24b09ecc39684bdf698
-  $fShowHOInfo3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "HOI {"#) -}
-7a24b8d792e855ca223f976758f59930
-  $fShowHOInfo_$cshow ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 Language.Fixpoint.Types.Constraints.$fShowHOInfo_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-7a24b8d792e855ca223f976758f59930
-  $fShowHOInfo_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.HOInfo] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.HOInfo
-                   Language.Fixpoint.Types.Constraints.$fShowHOInfo_$sshows) -}
-7a24b8d792e855ca223f976758f59930
-  $fShowHOInfo_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(1*U,1*U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Constraints.HOI ww3 ww4 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec2
-                   ww1
-                   ww3
-                   ww4
-                   w2 } }) -}
-7a24b8d792e855ca223f976758f59930
-  $fShowHOInfo_$sshows ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowHOInfo_$cshowsPrec
-                   GHC.Show.shows22) -}
-10aef948b5229216dcc343e2e00963d2
-  $fShowKuts ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.Kuts
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Kuts
-                  Language.Fixpoint.Types.Constraints.$fShowKuts_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowKuts_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowKuts_$cshowList -}
-16cfd8f2360e5b9cabea472156a25372
-  $fShowKuts1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "ksVars = "#) -}
-18a40aa58a26211f50dc6ac02062418b
-  $fShowKuts2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "KS {"#) -}
-d063380ee202d229fd084c1257757d8c
-  $fShowKuts3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackAppendCString#
-                   "[]"#
-                   Language.Fixpoint.Types.Constraints.$fShowKuts_s) -}
-10aef948b5229216dcc343e2e00963d2
-  $fShowKuts_$cshow ::
-    Language.Fixpoint.Types.Constraints.Kuts -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Constraints.$fShowKuts2
-                   (GHC.Base.++
-                      @ GHC.Types.Char
-                      Language.Fixpoint.Types.Constraints.$fShowKuts1
-                      (GHC.Base.++
-                         @ GHC.Types.Char
-                         Data.HashSet.$fShowHashSet1
-                         (case Data.HashSet.$fShowHashSet2
-                                 @ Language.Fixpoint.Types.Refinements.KVar
-                                 (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                                 x `cast`
-                                 (Trans
-                                      (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                                      (Data.HashSet.N:HashSet[0]
-                                           <Language.Fixpoint.Types.Refinements.KVar>_N)) of wild {
-                            [] -> Language.Fixpoint.Types.Constraints.$fShowKuts3
-                            : x1 xs
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 GHC.Show.showList__2
-                                 (Language.Fixpoint.Types.Refinements.$w$cshowsPrec5
-                                    x1
-                                    (Language.Fixpoint.Types.Constraints.$fShowKuts_showl
-                                       xs)) })))) -}
-10aef948b5229216dcc343e2e00963d2
-  $fShowKuts_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.Kuts] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.Kuts
-                   Language.Fixpoint.Types.Constraints.$fShowKuts_$sshows) -}
-10aef948b5229216dcc343e2e00963d2
-  $fShowKuts_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.Kuts -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec3 ww1 w1 }) -}
-10aef948b5229216dcc343e2e00963d2
-  $fShowKuts_$sshows ::
-    Language.Fixpoint.Types.Constraints.Kuts -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowKuts_$cshowsPrec
-                   GHC.Show.shows22) -}
-bef15e1f27006817fc83a4402e513c47
-  $fShowKuts_s :: GHC.Base.String
-  {- Unfolding: (GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Constraints.$fShowEquation1
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-02b3a883e8cbc31569bce0a548eb3df8
-  $fShowKuts_showl ::
-    [Language.Fixpoint.Types.Refinements.KVar] -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U> -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fShowQualifier ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.Qualifier
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Qualifier
-                  Language.Fixpoint.Types.Constraints.$fShowQualifier_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowQualifier_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowQualifier_$cshowList -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fShowQualifier_$cshow ::
-    Language.Fixpoint.Types.Constraints.Qualifier -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S(SLSS),1*U(U(A,U(U,U,U),A),U,U,U(U,U,U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.$fShowQualifier_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fShowQualifier_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.Qualifier] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                   Language.Fixpoint.Types.Constraints.$fShowQualifier_$sshows) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fShowQualifier_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.Qualifier -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S(SLSS),1*U(U(A,U(U,U,U),A),U,U,U(U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Constraints.Q ww3 ww4 ww5 ww6 ->
-                 case ww3 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case ww6 of ww11 { Text.Parsec.Pos.SourcePos ww12 ww13 ww14 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec4
-                   ww1
-                   ww9
-                   ww4
-                   ww5
-                   ww12
-                   ww13
-                   ww14 } } } }) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $fShowQualifier_$sshows ::
-    Language.Fixpoint.Types.Constraints.Qualifier -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowQualifier_$cshowsPrec
-                   GHC.Show.shows22) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowResult ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Constraints.Result a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(A,A,C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Types.Constraints.Result a)
-                  (Language.Fixpoint.Types.Constraints.$fShowResult_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Constraints.$fShowResult_$cshow
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Constraints.$fShowResult_$cshowList
-                     @ a
-                     $dShow) -}
-a40acf7260ce9dacfb815e1b79ec3a82
-  $fShowResult1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "gresSolution = "#) -}
-0a8567f7ed254fcb3cce966b65a28a81
-  $fShowResult2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "resSolution = "#) -}
-97cc9a2e3bee59fe90d6f4d059973669
-  $fShowResult3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "resStatus = "#) -}
-0704a58a36957ace94f99a8f219cf2ee
-  $fShowResult4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Result {"#) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowResult_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Constraints.Result a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(A,A,1*C1(U))><S(SSS),1*U(U,U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 Language.Fixpoint.Types.Constraints.$fShowResult_$cshowsPrec
-                   @ a
-                   $dShow
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowResult_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Types.Constraints.Result a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(A,A,C(U))><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Types.Constraints.Result a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Constraints.Result a)
-                   (Language.Fixpoint.Types.Constraints.$fShowResult_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Types.Constraints.$fShowGInfo1)
-                   eta
-                   eta1) -}
-1de0e7882069f13222c6effa6f71fad5
-  $fShowResult_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.Result a -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,1*U(A,A,1*C1(U))><S(S),1*U(U)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Constraints.Result ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec5
-                   @ a
-                   w
-                   ww1
-                   ww3
-                   ww4
-                   ww5 } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fShowRewrite ::
-    GHC.Show.Show Language.Fixpoint.Types.Constraints.Rewrite
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Constraints.Rewrite
-                  Language.Fixpoint.Types.Constraints.$fShowRewrite_$cshowsPrec
-                  Language.Fixpoint.Types.Constraints.$fShowRewrite_$cshow
-                  Language.Fixpoint.Types.Constraints.$fShowRewrite_$cshowList -}
-a70f5553877272321cc8f3b254d9abac
-  $fShowRewrite_$cshow ::
-    Language.Fixpoint.Types.Constraints.Rewrite -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S,1*U(U(A,U(U,U,U),A),U(A,U(U,U,U),A),U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 Language.Fixpoint.Types.Constraints.$fShowRewrite_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-a70f5553877272321cc8f3b254d9abac
-  $fShowRewrite_$cshowList ::
-    [Language.Fixpoint.Types.Constraints.Rewrite] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Constraints.Rewrite
-                   Language.Fixpoint.Types.Constraints.$fShowRewrite_$sshows) -}
-a70f5553877272321cc8f3b254d9abac
-  $fShowRewrite_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.Rewrite -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S,1*U(U(A,U(U,U,U),A),U(A,U(U,U,U),A),U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Constraints.SMeasure ww3 ww4 ww5 ww6 ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec6
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   ww6 } }) -}
-a70f5553877272321cc8f3b254d9abac
-  $fShowRewrite_$sshows ::
-    Language.Fixpoint.Types.Constraints.Rewrite -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Constraints.$fShowRewrite_$cshowsPrec
-                   GHC.Show.shows22) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fShowSimpC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                  (Language.Fixpoint.Types.Constraints.$fShowSimpC_$cshowsPrec
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowSimpC_$cshow
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowSimpC_$cshowList
-                     @ a
-                     $dFixpoint) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fShowSimpC_$cshow ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SimpC a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U(U,U,U,U,U)>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Constraints.$fFixpointSimpC1
-                      @ a
-                      $dFixpoint
-                      eta)) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fShowSimpC_$cshowList ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [Language.Fixpoint.Types.Constraints.SimpC a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ls :: [Language.Fixpoint.Types.Constraints.SimpC a])
-                   (s22 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                   (Language.Fixpoint.Types.Constraints.$fShowSimpC_$cshowsPrec
-                      @ a
-                      $dFixpoint
-                      GHC.Show.shows22)
-                   ls
-                   s22) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $fShowSimpC_$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.SimpC a -> GHC.Show.ShowS
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,U(U,U,U,U,U)><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Constraints.SimpC a)
-                   (w3 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec7 @ a w w2 w3) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fShowSubC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.SubC a)
-                  (Language.Fixpoint.Types.Constraints.$fShowSubC_$cshowsPrec
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowSubC_$cshow
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowSubC_$cshowList
-                     @ a
-                     $dFixpoint) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fShowSubC_$cshow ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SubC a -> GHC.Base.String
-  {- Arity: 2,
-     Strictness: <L,1*U(1*C1(U),A)><L,U(U,U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U,U,U)>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Constraints.$fFixpointSubC2
-                      @ a
-                      $dFixpoint
-                      eta)) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fShowSubC_$cshowList ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [Language.Fixpoint.Types.Constraints.SubC a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ls :: [Language.Fixpoint.Types.Constraints.SubC a])
-                   (s22 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Constraints.SubC a)
-                   (Language.Fixpoint.Types.Constraints.$fShowSubC_$cshowsPrec
-                      @ a
-                      $dFixpoint
-                      GHC.Show.shows22)
-                   ls
-                   s22) -}
-ed16f1ec59060d74f74ea827928489f9
-  $fShowSubC_$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.SubC a -> GHC.Show.ShowS
-  {- Arity: 4,
-     Strictness: <L,1*U(1*C1(U),A)><L,A><L,U(U,U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U,U,U)><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Constraints.SubC a)
-                   (w3 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec8 @ a w w2 w3) -}
-50354839b899806bfddb7dd9a816596d
-  $fShowWfC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Constraints.WfC a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Constraints.WfC a)
-                  (Language.Fixpoint.Types.Constraints.$fShowWfC_$cshowsPrec
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowWfC_$cshow
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Constraints.$fShowWfC_$cshowList
-                     @ a
-                     $dFixpoint) -}
-50354839b899806bfddb7dd9a816596d
-  $fShowWfC_$cshow ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.WfC a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Constraints.$fFixpointWfC2
-                      @ a
-                      $dFixpoint
-                      eta)) -}
-50354839b899806bfddb7dd9a816596d
-  $fShowWfC_$cshowList ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [Language.Fixpoint.Types.Constraints.WfC a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ls :: [Language.Fixpoint.Types.Constraints.WfC a])
-                   (s22 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Constraints.WfC a)
-                   (Language.Fixpoint.Types.Constraints.$fShowWfC_$cshowsPrec
-                      @ a
-                      $dFixpoint
-                      GHC.Show.shows22)
-                   ls
-                   s22) -}
-50354839b899806bfddb7dd9a816596d
-  $fShowWfC_$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Constraints.WfC a -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Constraints.WfC a)
-                   (w3 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Constraints.$w$cshowsPrec9 @ a w w2 w3) -}
-710144f9da9a9e879219a27a9c6dc76f
-  $fTaggedCSimpCa ::
-    Language.Fixpoint.Types.Constraints.TaggedC
-      Language.Fixpoint.Types.Constraints.SimpC a
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ Language.Fixpoint.Types.Constraints.SimpC
-                  @ a
-                  (Language.Fixpoint.Types.Constraints._cenv @ a)
-                  (Language.Fixpoint.Types.Constraints._cid @ a)
-                  (Language.Fixpoint.Types.Constraints._ctag @ a)
-                  (Language.Fixpoint.Types.Constraints._cinfo @ a)
-                  (Language.Fixpoint.Types.Constraints.$fTaggedCSimpCa_$cclhs @ a)
-                  (Language.Fixpoint.Types.Constraints._crhs @ a) -}
-c40ef0b9abbec3da01595e6ca43c1ae1
-  $fTaggedCSimpCa_$cclhs ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 2, Strictness: <L,U(A,U)><S(SLLLL),1*U(U,A,A,A,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (be :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (c :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case c of wild { Language.Fixpoint.Types.Constraints.SimpC ds1 ds2 ds3 ds4 ds5 ->
-                 Language.Fixpoint.Types.Environments.envCs be ds1 }) -}
-710144f9da9a9e879219a27a9c6dc76f
-  $fTaggedCSubCa ::
-    Language.Fixpoint.Types.Constraints.TaggedC
-      Language.Fixpoint.Types.Constraints.SubC a
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ Language.Fixpoint.Types.Constraints.SubC
-                  @ a
-                  (Language.Fixpoint.Types.Constraints._senv @ a)
-                  (Language.Fixpoint.Types.Constraints._sid @ a)
-                  (Language.Fixpoint.Types.Constraints._stag @ a)
-                  (Language.Fixpoint.Types.Constraints._sinfo @ a)
-                  (Language.Fixpoint.Types.Constraints.$fTaggedCSubCa_$cclhs @ a)
-                  (Language.Fixpoint.Types.Constraints.$fTaggedCSubCa_$ccrhs @ a) -}
-e918c7f6191858b27b1b70f1321a7b6f
-  $fTaggedCSubCa_$cclhs ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 2, Strictness: <L,U(A,U)><L,U(U,U(U,U),A,A,A,A)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 GHC.Types.:
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   (let {
-                      sr :: Language.Fixpoint.Types.Refinements.SortedReft
-                      = case w1 of wild { Language.Fixpoint.Types.Constraints.SubC ds1 ds2 ds3 ds4 ds5 ds6 ->
-                        ds2 }
-                    } in
-                    (case sr of wild { Language.Fixpoint.Types.Refinements.RR ds1 ds2 ->
-                     case ds2
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) x ds4 ->
-                     x } },
-                     sr))
-                   (case w1 of wild { Language.Fixpoint.Types.Constraints.SubC ds1 ds2 ds3 ds4 ds5 ds6 ->
-                    Language.Fixpoint.Types.Environments.envCs w ds1 })) -}
-723fc97c14df4583d8a3cd03c574dcce
-  $fTaggedCSubCa_$ccrhs ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS(LS(LS))LLL),1*U(A,A,U(A,U(A,1*U)),A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (x :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case x of wild { Language.Fixpoint.Types.Constraints.SubC ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Refinements.RR ds7 ds8 ->
-                 case ds8
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild2 { (,) ds9 p ->
-                 p } } }) -}
-9a795c6e43d73359e69423f821b79e3c
-  $s$fBinaryTriggered ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Triggers.Triggered
-                       Language.Fixpoint.Types.Refinements.Expr)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cput
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cget
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cputList
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fBinaryExpr) -}
-9c97244b56047c3e83aaf85ab9429f01
-  $s$fEqTriggered ::
-    GHC.Classes.Eq
-      (Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Triggers.Triggered
-                       Language.Fixpoint.Types.Refinements.Expr)
-                  (Language.Fixpoint.Types.Triggers.$fEqTriggered_$c==
-                     @ Language.Fixpoint.Types.Refinements.Expr
-                     Language.Fixpoint.Types.Refinements.$fEqExpr)
-                  Language.Fixpoint.Types.Constraints.$s$fEqTriggered_$s$fEqTriggered_$c/= -}
-ca511eb8829118e67ed9959800647c99
-  $s$fEqTriggered_$s$fEqTriggered_$c/= ::
-    Language.Fixpoint.Types.Triggers.Triggered
-      Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Triggers.Triggered
-         Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SL),1*U(1*U,1*U)><S(SL),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a1 :: Language.Fixpoint.Types.Triggers.Triggered
-                            Language.Fixpoint.Types.Refinements.Expr)
-                   (b :: Language.Fixpoint.Types.Triggers.Triggered
-                           Language.Fixpoint.Types.Refinements.Expr) ->
-                 case Language.Fixpoint.Types.Triggers.$fEqTriggered_$c==
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fEqExpr
-                        a1
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-1340e5b26c7bb5850ec1176295b829a0
-  $s$wupdateOrConcatWithKey ::
-    (GHC.Integer.Type.Integer -> v -> v -> v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: GHC.Integer.Type.Integer -> v -> v -> v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds1 { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo34 :: forall s22.
-                             Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                             -> Data.HashMap.Array.MArray s22 (GHC.Base.Maybe GHC.Types.Int)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# s22
-                             -> (# GHC.Prim.State# s22,
-                                   Data.HashMap.Array.MArray s22 (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s22
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                       (w2 :: Data.HashMap.Array.MArray
-                                s22 (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s22)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds2 ->
-                          case GHC.Prim.writeArray#
-                                 @ s22
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds2
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds3 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                         ds3
-                                         ww2 of ds4 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds5 ->
-                                  Language.Fixpoint.Types.Constraints.$wpoly_go2
-                                    @ v
-                                    k1
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                       ww) } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo34 @ s22 w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo34
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds3 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds3
-                        ipv2 of ds4 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Types.Constraints.$wgo3
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                        GHC.Prim.realWorld# of ds5 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s22 { DEFAULT ->
-                 letrec {
-                   $wgo35 :: GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# GHC.Prim.RealWorld
-                             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds6 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ww1
-                                      ww4 of ds7 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo35 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ww
-                                      i# of ds7 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ww1
-                                      ww4 of ds8 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds9 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L
-                                         @ GHC.Integer.Type.Integer
-                                         @ v
-                                         k1
-                                         (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo35 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo35 n1 0# s22 of ds6 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                        ipv8
-                        ipv9 of ds7 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-2f21866ee4c770c7485335fe4f24bb43
-  $s$wupdateOrSnocWithKey ::
-    (GHC.Integer.Type.Integer -> v -> v -> v)
-    -> GHC.Integer.Type.Integer
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><S,1*U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: GHC.Integer.Type.Integer -> v -> v -> v)
-                   (w2 :: GHC.Integer.Type.Integer)
-                   (w3 :: v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)) ->
-                 letrec {
-                   $wgo34 :: GHC.Integer.Type.Integer
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                     {- Arity: 5, Strictness: <S,1*U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (w :: GHC.Integer.Type.Integer)
-                       (w4 :: v)
-                       (ww1 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#) ->
-                     case w of k2 { DEFAULT ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 ww1
-                                 ww2 of ds1 { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case GHC.Integer.Type.eqInteger# k2 kx of wild2 { DEFAULT ->
-                          case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                            GHC.Types.False -> $wgo34 k2 w4 ww1 (GHC.Prim.+# ww2 1#) ww3
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      @ GHC.Prim.RealWorld
-                                      ww1
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                         ww1)
-                                      GHC.Prim.realWorld# of ds2 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv5
-                                      ww2
-                                      (Data.HashMap.Base.L
-                                         @ GHC.Integer.Type.Integer
-                                         @ v
-                                         k2
-                                         (w1 k2 w4 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                      ipv5
-                                      s' of ds3 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww3 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v))
-                                 GHC.Prim.realWorld# of ds1 { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 @ GHC.Prim.RealWorld
-                                 ww1
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww3
-                                 ipv3 of s22 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 ipv4
-                                 ww3
-                                 (Data.HashMap.Base.L @ GHC.Integer.Type.Integer @ v k2 w4)
-                                 s22 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                                 ipv4
-                                 s' of ds2 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } } }
-                 } in
-                 $wgo34
-                   w2
-                   w3
-                   ww
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-                      ww)) -}
-a5186c7e458ca2138450a63c42731d83
-  $t7GvBXVYsSEb3K5v5sm4vWs :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Constraints.$fDataQualifier4
-                   Language.Fixpoint.Types.Constraints.$fDataQualifier2) -}
-913a9853d3770bacff66a2f1db2ebede
-  $tc'AEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2365623776208486692##
-                   1989905212154692164##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'AEnv1) -}
-eb48deb6ca65b0f0a936b6c531642697
-  $tc'AEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'AEnv"#) -}
-a06943824aa811c145a43fb9822d5e00
-  $tc'C:TaggedC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13041766853257570811##
-                   8976429880911937257##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'C:TaggedC1) -}
-cf3e4bf5676d5eec3089094e1cbda68c
-  $tc'C:TaggedC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:TaggedC"#) -}
-017d8cf1084044f596601c293bbc6142
-  $tc'Equ :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9272551202173082356##
-                   13346199032353287798##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'Equ1) -}
-2e7d2abe186e61d4b4849a8707713f0a
-  $tc'Equ1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Equ"#) -}
-813d6d5bf1d8c12cf7b4a833571d77cc
-  $tc'FI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1956103546282356121##
-                   9944761591653010855##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'FI1) -}
-97cead0829feda3e72ccb8d270950707
-  $tc'FI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FI"#) -}
-f6453e4d579e11510e9852d25f104d17
-  $tc'FIO :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9011795112031869038##
-                   11921894815620513260##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'FIO1) -}
-f69a9372d06c2ac6076b3ea351b05030
-  $tc'FIO1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FIO"#) -}
-64ec32fcc0b346262a605456c0e70c8a
-  $tc'GSol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17975905801670307651##
-                   5531553443504810266##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'GSol1) -}
-624be8e6d415fa810431d9b7f3fce85b
-  $tc'GSol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GSol"#) -}
-bc58078afcc3f79371837cc23307aac3
-  $tc'GWfC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5421285607817109170##
-                   16932667096475688091##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'GWfC1) -}
-ee4641462c938696629078ec9dadf7d5
-  $tc'GWfC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GWfC"#) -}
-64acf6e362c791e80e482e7eaf32f05d
-  $tc'HOI :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4923259810478715594##
-                   55315077916721382##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'HOI1) -}
-0b99bb41a750e467fb2e9616feaa851f
-  $tc'HOI1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'HOI"#) -}
-324713d25669dfb1ade8fa1c296598ec
-  $tc'KS :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3457064961471234560##
-                   410731570858773416##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'KS1) -}
-85dcedaf09fb677324421d02d6f637f5
-  $tc'KS1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KS"#) -}
-3509bd346028fd75ee9fbfcc6566c335
-  $tc'Q :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6239334099395077592##
-                   9012495149096681716##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'Q1) -}
-cf26d558380bc29772dd19b7e4926af9
-  $tc'Q1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Q"#) -}
-e5b107483c32187e98aeacea1eb8ab81
-  $tc'Result :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11887043448119656800##
-                   18339182682586011411##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'Result1) -}
-0ad4e858279144d0a730990a654583e4
-  $tc'Result1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Result"#) -}
-224c0337ffd71651349ad16355e837e8
-  $tc'SMeasure :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15649169879279186531##
-                   15551114165813483669##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'SMeasure1) -}
-01adba5cb3b96ce2313f6ebbecffda4b
-  $tc'SMeasure1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SMeasure"#) -}
-9838ef67706b52556b6c434641744567
-  $tc'SimpC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13713812220799356112##
-                   8560041506753917568##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'SimpC1) -}
-dcc3a1f4d7ad71aeb022fea4533d673c
-  $tc'SimpC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SimpC"#) -}
-1a189c1f89450804d0a7045627d37955
-  $tc'SubC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6194476251364886761##
-                   77992205076310388##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'SubC1) -}
-ae3af1a97ae5dd84b5b8a3abd18d4b74
-  $tc'SubC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SubC"#) -}
-a26c46d5096bcfbfb87a419b50eafc2d
-  $tc'WfC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15882630705752059913##
-                   6462928432654798443##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tc'WfC1) -}
-2f09ed8ad5728b79fbfa0a401359e396
-  $tc'WfC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'WfC"#) -}
-457772f02a704685adfea1bc2d6d3e8d
-  $tcAxiomEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17720961157416130842##
-                   12802318962350373550##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcAxiomEnv1) -}
-d1f82d5563e8bce0731bb2b02334eea3
-  $tcAxiomEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "AxiomEnv"#) -}
-19135ae67308f0da2661a0aa6ee8f02d
-  $tcEquation :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11420903115833086928##
-                   15653101637648231738##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcEquation1) -}
-27a889189dce49104b3caabd6e198a25
-  $tcEquation1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Equation"#) -}
-c501539c36d3d56871b359428a951a62
-  $tcFInfoWithOpts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10535078697263383134##
-                   2625712534768599435##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcFInfoWithOpts1) -}
-f36aa9b5123ecc3d018ea2db683089af
-  $tcFInfoWithOpts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "FInfoWithOpts"#) -}
-b51e86b0325e831e11c3802dc4514aa8
-  $tcGFixSol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   114817285506373182##
-                   1113708190386740374##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcGFixSol1) -}
-e433dce4ab63dca17a91eefba2c3a907
-  $tcGFixSol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "GFixSol"#) -}
-5ed7af64f248b1c74cdad022350b3d27
-  $tcGInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10484379943355725476##
-                   12357362685637323209##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcGInfo1) -}
-757adaef6a8b437a4f3e72795d3e5baa
-  $tcGInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "GInfo"#) -}
-04066e99f2c3082e3475304d76e24630
-  $tcHOInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6167453542194911292##
-                   11688888551779029967##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcHOInfo1) -}
-99d1f95824e4c37045a407648c6d69f0
-  $tcHOInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "HOInfo"#) -}
-30272fd6b225972653a152a05734015a
-  $tcKuts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15857171651606738689##
-                   6047786370010932440##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcKuts1) -}
-32839e07a0e2744d9faa49028b9cfbf2
-  $tcKuts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Kuts"#) -}
-2c79c0b97332dbf74a20761743b13f83
-  $tcQualifier :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17063145911750877268##
-                   17939819172273116513##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcQualifier1) -}
-c3c17e5a2822257db650f6b9daddc437
-  $tcQualifier1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Qualifier"#) -}
-0e1934b4bcdc4f91109a2d4f362ac286
-  $tcResult :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18388954873458808650##
-                   13720311808329337961##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcResult1) -}
-db8e1ccc90f2db23b2f44f1e7f5d0db1
-  $tcResult1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Result"#) -}
-f6afa691a2a28dedd6bf3c80d285e634
-  $tcRewrite :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18146996594862052244##
-                   1580899011731777131##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcRewrite1) -}
-fd25b24d35de6c1d5e451f99785e9ebc
-  $tcRewrite1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Rewrite"#) -}
-67f867733054a5a4dc613968b663e519
-  $tcSimpC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11658567131015268103##
-                   7691229597306544627##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcSimpC1) -}
-533e673344c32fcd25274a84cf21d654
-  $tcSimpC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SimpC"#) -}
-a119d598ccffc3e245c1e8ebabb70517
-  $tcSubC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9793986347338806382##
-                   5600920161684526036##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcSubC1) -}
-b8b66cb1b5efddd596432ae82de9dd89
-  $tcSubC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SubC"#) -}
-89e79d43add17970a831e5fca4e5a4a9
-  $tcTaggedC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9207176669038725837##
-                   4996152347552148094##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcTaggedC1) -}
-e532652cf25782f30bdd103ff41d732b
-  $tcTaggedC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "TaggedC"#) -}
-2525fc073cfb33e400ad7564249dbdd0
-  $tcWfC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14249393308455038791##
-                   8961272451985466647##
-                   Language.Fixpoint.Types.Constraints.$trModule
-                   Language.Fixpoint.Types.Constraints.$tcWfC1) -}
-411ebe7a30e1d747e6a0c2e00a5cccfd
-  $tcWfC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "WfC"#) -}
-fe6cbaf8922e61955fcc133d0bd6a5d0
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Constraints.$trModule2
-                   Language.Fixpoint.Types.Constraints.$trModule1) -}
-36dfe144632838f30727526ca8e8af55
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Constraints"#) -}
-092d58c3a3c445700b800f0dddb4f8b5
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-abfb29570d56405e6516ffae2da0f4e7
-  $w$c== ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 10, HasNoCafRefs,
-     Strictness: <S,U><S,U><S,U><L,1*U><L,1*U><S,U><S,U><S,U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww1 :: [Language.Fixpoint.Types.Constraints.Equation])
-                   (ww2 :: [Language.Fixpoint.Types.Constraints.Rewrite])
-                   (ww3 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)
-                   (ww4 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool)
-                   (ww5 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww6 :: [Language.Fixpoint.Types.Constraints.Equation])
-                   (ww7 :: [Language.Fixpoint.Types.Constraints.Rewrite])
-                   (ww8 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)
-                   (ww9 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool) ->
-                 case GHC.Classes.$fEq[]_$c==
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fEqSymbol
-                        ww
-                        ww5 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Classes.$fEq[]_$c==
-                             @ Language.Fixpoint.Types.Constraints.Equation
-                             Language.Fixpoint.Types.Constraints.$fEqEquation
-                             ww1
-                             ww6 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Classes.$fEq[]_$c==
-                                  @ Language.Fixpoint.Types.Constraints.Rewrite
-                                  Language.Fixpoint.Types.Constraints.$fEqRewrite
-                                  ww2
-                                  ww7 of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case Data.HashMap.Base.equal
-                                       @ GHC.Integer.Type.Integer
-                                       @ GHC.Integer.Type.Integer
-                                       @ GHC.Types.Int
-                                       @ GHC.Types.Int
-                                       GHC.Integer.Type.eqInteger
-                                       GHC.Classes.eqInt
-                                       ww3
-                                       ww8 of wild3 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> Data.HashMap.Base.equal
-                                       @ GHC.Integer.Type.Integer
-                                       @ GHC.Integer.Type.Integer
-                                       @ GHC.Types.Bool
-                                       @ GHC.Types.Bool
-                                       GHC.Integer.Type.eqInteger
-                                       GHC.Classes.$fEqBool_$c==
-                                       ww4
-                                       ww9 } } } }) -}
-e9dfdfb9c417449b7be3a7ac2fd17829
-  $w$c==1 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.Bool
-  {- Arity: 8, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(U,A,A)><L,1*U><L,1*U><S,U><L,1*U(U,A,A)><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww6 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww7 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww ww4) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case ww1 of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case ww5 of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt1) of wild3 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Classes.$fEq[]_$c==
-                                  @ Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Names.$fEqSymbol
-                                  ww2
-                                  ww6 of wild4 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                  ww3
-                                  ww7 } } } } }) -}
-3244b63000a5852cec9fa6e637f78b04
-  $w$c==2 ::
-    GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,1*U><L,1*U><S,U><L,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww5 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww ww3) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Classes.$fEq[]_$c==
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fEqSymbol
-                             ww1
-                             ww4 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                             ww2
-                             ww5 } }) -}
-1052549cc559e08aaa78c218edda206c
-  $w$c==3 ::
-    (GHC.Classes.Eq (c a), GHC.Classes.Eq a) =>
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> GHC.Types.Bool
-  {- Arity: 28, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><L,U(C(C1(U)),A)><S,U><S,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><L,1*U><L,1*U><S,U><L,1*U(U,U,U,1*U,1*U)><S,U><S,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><L,1*U><L,1*U><S,U><L,1*U(U,U,U,1*U,1*U)>,
-     Inline: [0] -}
-07b07ed630e293335826d00ea278a90f
-  $w$c==4 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><S,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool) ->
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww2 of wild1 {
-                        GHC.Types.False -> GHC.Classes.$fEqBool_$c== ww1 ww3
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.True
-                   -> case ww2 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True -> GHC.Classes.$fEqBool_$c== ww1 ww3 } }) -}
-17ba774640821328d02b41ed8caa2e3e
-  $w$c==5 ::
-    GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,U><L,1*U><S,U><L,1*U><L,U><L,U><S,U><L,1*U><S,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: GHC.Prim.Int#)
-                   (ww7 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww8 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww ww6) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Classes.$fEq[]_$c==
-                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)
-                             Language.Fixpoint.Types.Refinements.$s$fEq(,)
-                             ww1
-                             ww7 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                  ww2
-                                  ww8 of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> Text.Parsec.Pos.$w$c== ww3 ww4 ww5 ww9 ww10 ww11 } } }) -}
-1cfc9a31f6c8174b2f56873b8be0d955
-  $w$c==6 ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> GHC.Types.Bool
-  {- Arity: 17, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S,U><L,U><L,U(1*U(U,A,A),1*U)><L,U><L,U(1*U(U,A,A),1*U)><S,U><S,U><S,U><S,U><L,U><L,U(1*U(U,A,A),1*U)><L,U><L,U(1*U(U,A,A),1*U)><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (ww :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Reft)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww4 :: Language.Fixpoint.Types.Refinements.Reft)
-                   (ww5 :: GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww6 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (ww7 :: a)
-                   (ww8 :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww9 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww10 :: Language.Fixpoint.Types.Refinements.Reft)
-                   (ww11 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww12 :: Language.Fixpoint.Types.Refinements.Reft)
-                   (ww13 :: GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww14 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (ww15 :: a) ->
-                 case Data.HashMap.Base.equalKeys
-                        @ GHC.Types.Int
-                        @ GHC.Types.Int
-                        @ ()
-                        @ ()
-                        GHC.Classes.eqInt
-                        ww
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                        ww8
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case ww2
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww16 { (,) ww17 ww18 ->
-                      case ww10
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww19 { (,) ww20 ww21 ->
-                      case Language.Fixpoint.Types.Sorts.$fEqSort_$c== ww1 ww9 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case ww17 of wild2 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                           case ww20 of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt1) of wild4 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                       ww18
-                                       ww21 of wild5 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case ww4
-                                            `cast`
-                                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww22 { (,) ww23 ww24 ->
-                                     case ww12
-                                            `cast`
-                                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww25 { (,) ww26 ww27 ->
-                                     case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                            ww3
-                                            ww11 of wild6 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case ww23 of wild7 { Language.Fixpoint.Types.Names.S dt2 ds1 ds8 ->
-                                          case ww26 of wild8 { Language.Fixpoint.Types.Names.S dt3 ds9 ds10 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# dt2 dt3) of wild9 {
-                                            GHC.Types.False -> GHC.Types.False
-                                            GHC.Types.True
-                                            -> case Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                                      ww24
-                                                      ww27 of wild10 {
-                                                 GHC.Types.False -> GHC.Types.False
-                                                 GHC.Types.True
-                                                 -> let {
-                                                      $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                                                        {- Arity: 1, Strictness: <L,A> -}
-                                                      = \ (w1 :: GHC.Prim.Void#)[OneShot] ->
-                                                        case GHC.Classes.$fEq[]_$s$c==
-                                                               ww6
-                                                               ww14 of wild11 {
-                                                          GHC.Types.False -> GHC.Types.False
-                                                          GHC.Types.True
-                                                          -> GHC.Classes.== @ a w ww7 ww15 }
-                                                    } in
-                                                    case ww5 of wild11 {
-                                                      GHC.Base.Nothing
-                                                      -> case ww13 of wild12 {
-                                                           GHC.Base.Nothing -> $j1 GHC.Prim.void#
-                                                           GHC.Base.Just ipv -> GHC.Types.False }
-                                                      GHC.Base.Just a1
-                                                      -> case ww13 of wild12 {
-                                                           GHC.Base.Nothing -> GHC.Types.False
-                                                           GHC.Base.Just b1
-                                                           -> case GHC.Integer.Type.eqInteger#
-                                                                     a1
-                                                                     b1 of wild13 { DEFAULT ->
-                                                              case GHC.Prim.tagToEnum#
-                                                                     @ GHC.Types.Bool
-                                                                     wild13 of wild14 {
-                                                                GHC.Types.False -> GHC.Types.False
-                                                                GHC.Types.True
-                                                                -> $j1
-                                                                     GHC.Prim.void# } } } } } } } } } } } } } } } } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $w$cfmap ::
-    GHC.Base.Functor c =>
-    forall a b.
-    (a -> b)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo c b
-  {- Arity: 13,
-     Strictness: <L,1*U(1*C1(U),A)><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-1052549cc559e08aaa78c218edda206c
-  $w$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.AxiomEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.AxiomEnv r) ->
-                 Language.Fixpoint.Types.Constraints.$w$dGBinaryGet
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:*:)
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSyms")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "aenvEqs")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.Rec0
-                                                      [Language.Fixpoint.Types.Constraints.Equation]))
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSimpl")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-                                GHC.Generics.:*: (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "aenvFuel")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       (Data.HashMap.Base.HashMap
-                                                          Language.Fixpoint.Types.Constraints.SubcId
-                                                          GHC.Types.Int))
-                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just
-                                                                           "aenvExpand")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.NoSourceStrictness
-                                                                        'GHC.Generics.DecidedLazy)
-                                                                     (GHC.Generics.Rec0
-                                                                        (Data.HashMap.Base.HashMap
-                                                                           Language.Fixpoint.Types.Constraints.SubcId
-                                                                           GHC.Types.Bool))))
-                               GHC.Prim.Any)[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                        <(GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvSyms")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               [Language.Fixpoint.Types.Names.Symbol])
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "aenvEqs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                [Language.Fixpoint.Types.Constraints.Equation]))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "aenvSimpl")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.Rec0
-                                                                [Language.Fixpoint.Types.Constraints.Rewrite])
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "aenvFuel")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.Rec0
-                                                                                  (Data.HashMap.Base.HashMap
-                                                                                     Language.Fixpoint.Types.Constraints.SubcId
-                                                                                     GHC.Types.Int))
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "aenvExpand")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.NoSourceStrictness
-                                                                                                   'GHC.Generics.DecidedLazy)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   (Data.HashMap.Base.HashMap
-                                                                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                                                                      GHC.Types.Bool))))>_R))
-                              (Trans
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.D>_P
-                                             <'GHC.Generics.MetaData
-                                                "AxiomEnv"
-                                                "Language.Fixpoint.Types.Constraints"
-                                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                'GHC.Types.False>_P
-                                             <GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                                ((GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "aenvSyms")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       [Language.Fixpoint.Types.Names.Symbol])
-                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "aenvEqs")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.Rec0
-                                                                        [Language.Fixpoint.Types.Constraints.Equation]))
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "aenvSimpl")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.Rec0
-                                                                        [Language.Fixpoint.Types.Constraints.Rewrite])
-                                                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          ('GHC.Base.Just
-                                                                                             "aenvFuel")
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.NoSourceStrictness
-                                                                                          'GHC.Generics.DecidedLazy)
-                                                                                       (GHC.Generics.Rec0
-                                                                                          (Data.HashMap.Base.HashMap
-                                                                                             Language.Fixpoint.Types.Constraints.SubcId
-                                                                                             GHC.Types.Int))
-                                                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                                                        ('GHC.Generics.MetaSel
-                                                                                                           ('GHC.Base.Just
-                                                                                                              "aenvExpand")
-                                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                                           'GHC.Generics.NoSourceStrictness
-                                                                                                           'GHC.Generics.DecidedLazy)
-                                                                                                        (GHC.Generics.Rec0
-                                                                                                           (Data.HashMap.Base.HashMap
-                                                                                                              Language.Fixpoint.Types.Constraints.SubcId
-                                                                                                              GHC.Types.Bool)))))>_R))
-                                   (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_AxiomEnv[0])))) <GHC.Prim.Any>_N)))) -}
-a70f5553877272321cc8f3b254d9abac
-  $w$cget1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Rewrite r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.Rewrite r) ->
-                 Language.Fixpoint.Types.Constraints.$w$dGBinaryGet1
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: GHC.Generics.M1
-                               GHC.Generics.C
-                               ('GHC.Generics.MetaCons
-                                  "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                               ((GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "smName")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "smDC")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       Language.Fixpoint.Types.Names.Symbol))
-                                GHC.Generics.:*: (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "smArgs")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       [Language.Fixpoint.Types.Names.Symbol])
-                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "smBody")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.NoSourceStrictness
-                                                                        'GHC.Generics.DecidedLazy)
-                                                                     (GHC.Generics.Rec0
-                                                                        Language.Fixpoint.Types.Refinements.Expr)))
-                               GHC.Prim.Any)[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "Rewrite"
-                                           "Language.Fixpoint.Types.Constraints"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.C
-                                           ('GHC.Generics.MetaCons
-                                              "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                           ((GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "smName")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  Language.Fixpoint.Types.Names.Symbol)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "smDC")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   Language.Fixpoint.Types.Names.Symbol))
-                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "smArgs")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   [Language.Fixpoint.Types.Names.Symbol])
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "smBody")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    Language.Fixpoint.Types.Refinements.Expr)))>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Rewrite[0]))) <GHC.Prim.Any>_N)))) -}
-50354839b899806bfddb7dd9a816596d
-  $w$cget10 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.WfC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0] -}
-6fa1753970c5ab8b1ce3d107cde4096f
-  $w$cget2 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Equation r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.Equation r) ->
-                 Language.Fixpoint.Types.Constraints.$w$dGBinaryGet2
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:*:)
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "eqName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "eqArgs")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "eqBody")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      Language.Fixpoint.Types.Refinements.Expr))
-                               GHC.Prim.Any)[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                        <GHC.Generics.S1
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "eqName")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "eqArgs")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0
-                                                                [Language.Fixpoint.Types.Names.Symbol])
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "eqBody")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 Language.Fixpoint.Types.Refinements.Expr))>_R))
-                              (Trans
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.D>_P
-                                             <'GHC.Generics.MetaData
-                                                "Equation"
-                                                "Language.Fixpoint.Types.Constraints"
-                                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                'GHC.Types.False>_P
-                                             <GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                                (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "eqName")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      Language.Fixpoint.Types.Names.Symbol)
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "eqArgs")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.NoSourceStrictness
-                                                                        'GHC.Generics.DecidedLazy)
-                                                                     (GHC.Generics.Rec0
-                                                                        [Language.Fixpoint.Types.Names.Symbol])
-                                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         ('GHC.Base.Just
-                                                                                            "eqBody")
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         Language.Fixpoint.Types.Refinements.Expr)))>_R))
-                                   (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Equation[0])))) <GHC.Prim.Any>_N)))) -}
-877024891b8bd339ae37c69be775cf5b
-  $w$cget3 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Config.Eliminate r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Config.Eliminate r) ->
-                 Data.Binary.Generic.$w$cgget
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate5
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Constraints.$fBinaryEliminate2
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   1##
-                   2##
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Some" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1
-                                GHC.Generics.:+: GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "All" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                   GHC.Generics.U1)
-                               GHC.Prim.Any) ->
-                    w i'
-                      (Language.Fixpoint.Types.Config.$fGenericEliminate_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "Eliminate"
-                                           "Language.Fixpoint.Types.Config"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.C1
-                                           ('GHC.Generics.MetaCons
-                                              "None" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                           GHC.Generics.U1
-                                         GHC.Generics.:+: (GHC.Generics.C1
-                                                             ('GHC.Generics.MetaCons
-                                                                "Some"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             GHC.Generics.U1
-                                                           GHC.Generics.:+: GHC.Generics.C1
-                                                                              ('GHC.Generics.MetaCons
-                                                                                 "All"
-                                                                                 'GHC.Generics.PrefixI
-                                                                                 'GHC.Types.False)
-                                                                              GHC.Generics.U1)>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Config.Rep_Eliminate[0]))) <GHC.Prim.Any>_N)))) -}
-7a24b8d792e855ca223f976758f59930
-  $w$cget4 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.HOInfo r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.HOInfo r) ->
-                 Data.Binary.Class.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: GHC.Types.Bool)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Data.Binary.Class.$w$cget
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: GHC.Types.Bool)[OneShot] ->
-                       w i'1 (Language.Fixpoint.Types.Constraints.HOI a1 a2)) })) -}
-10aef948b5229216dcc343e2e00963d2
-  $w$cget5 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Kuts r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.Kuts r) ->
-                 Language.Fixpoint.Types.Environments.$w$cget
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   Language.Fixpoint.Types.Refinements.$fHashableKVar
-                   Language.Fixpoint.Types.Refinements.$fEqKVar
-                   Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.HashSet.HashSet
-                               Language.Fixpoint.Types.Refinements.KVar)[OneShot] ->
-                    w i'
-                      a1
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $w$cget6 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Constraints.Qualifier r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Constraints.Qualifier r) ->
-                 Language.Fixpoint.Types.Constraints.$w$dGBinaryGet3
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: GHC.Generics.M1
-                               GHC.Generics.C
-                               ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                               ((GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "qName")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "qParams")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       [(Language.Fixpoint.Types.Names.Symbol,
-                                                         Language.Fixpoint.Types.Sorts.Sort)]))
-                                GHC.Generics.:*: (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "qBody")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       Language.Fixpoint.Types.Refinements.Expr)
-                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "qPos")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.Rec0
-                                                                        Text.Parsec.Pos.SourcePos)))
-                               GHC.Prim.Any)[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Constraints.$fBinaryQualifier_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "Qualifier"
-                                           "Language.Fixpoint.Types.Constraints"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.C
-                                           ('GHC.Generics.MetaCons
-                                              "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                           ((GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "qName")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  Language.Fixpoint.Types.Names.Symbol)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "qParams")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   [(Language.Fixpoint.Types.Names.Symbol,
-                                                                     Language.Fixpoint.Types.Sorts.Sort)]))
-                                            GHC.Generics.:*: (GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   ('GHC.Base.Just "qBody")
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.SourceStrict
-                                                                   'GHC.Generics.DecidedStrict)
-                                                                (GHC.Generics.Rec0
-                                                                   Language.Fixpoint.Types.Refinements.Expr)
-                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    ('GHC.Base.Just
-                                                                                       "qPos")
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.SourceStrict
-                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    Text.Parsec.Pos.SourcePos)))>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Constraints.Rep_Qualifier[0]))) <GHC.Prim.Any>_N)))) -}
-2f74d0bd9760c2055d76ccc3cb493d01
-  $w$cget7 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Config.SMTSolver r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Config.SMTSolver r) ->
-                 Data.Binary.Generic.$w$cgget
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "Mathsat" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver5
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Constraints.$fBinarySMTSolver2
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Mathsat"
-                                                    'GHC.Generics.PrefixI
-                                                    'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   1##
-                   2##
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Cvc4" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1
-                                GHC.Generics.:+: GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "Mathsat"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False)
-                                                   GHC.Generics.U1)
-                               GHC.Prim.Any) ->
-                    w i'
-                      (Language.Fixpoint.Types.Config.$fGenericSMTSolver_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "SMTSolver"
-                                           "Language.Fixpoint.Types.Config"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.C1
-                                           ('GHC.Generics.MetaCons
-                                              "Z3" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                           GHC.Generics.U1
-                                         GHC.Generics.:+: (GHC.Generics.C1
-                                                             ('GHC.Generics.MetaCons
-                                                                "Cvc4"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             GHC.Generics.U1
-                                                           GHC.Generics.:+: GHC.Generics.C1
-                                                                              ('GHC.Generics.MetaCons
-                                                                                 "Mathsat"
-                                                                                 'GHC.Generics.PrefixI
-                                                                                 'GHC.Types.False)
-                                                                              GHC.Generics.U1)>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Config.Rep_SMTSolver[0]))) <GHC.Prim.Any>_N)))) -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $w$cget8 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SimpC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.SimpC a) r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ GHC.Types.Int
-                   Data.Binary.Class.$fBinaryInt
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [GHC.Types.Int])[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Data.HashMap.Base.HashMap GHC.Types.Int ()
-                      = Language.Fixpoint.Types.Environments.$fBinaryHashSet_go
-                          a1
-                          (Data.HashMap.Base.Empty @ GHC.Types.Int @ ())
-                    } in
-                    Language.Fixpoint.Types.Refinements.$w$cget3
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: Language.Fixpoint.Types.Refinements.Expr)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Data.Binary.Class.$w$cget12
-                         @ GHC.Integer.Type.Integer
-                         Data.Binary.Class.$fBinaryInteger
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a4 :: GHC.Base.Maybe GHC.Integer.Type.Integer)[OneShot] ->
-                          case i'2 of ww14 { Data.ByteString.Internal.PS ww15 ww16 ww17 ww18 ->
-                          Data.Binary.Class.$w$cget10
-                            @ GHC.Types.Int
-                            Data.Binary.Class.$fBinaryInt
-                            @ r
-                            ww15
-                            ww16
-                            ww17
-                            ww18
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a5 :: [GHC.Types.Int])[OneShot] ->
-                             (Data.Binary.Class.get @ a w)
-                               `cast`
-                             (Data.Binary.Get.Internal.N:Get[0] <a>_R)
-                               @ r
-                               i'3
-                               (\ (i'4 :: Data.ByteString.Internal.ByteString) (a6 :: a) ->
-                                w1
-                                  i'4
-                                  (Language.Fixpoint.Types.Constraints.$WSimpC
-                                     @ a
-                                     a2
-                                       `cast`
-                                     (Trans
-                                          (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                                     a3
-                                     a4
-                                     a5
-                                     a6))) }) }) })) -}
-ed16f1ec59060d74f74ea827928489f9
-  $w$cget9 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SubC a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Constraints.SubC a) r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ GHC.Types.Int
-                   Data.Binary.Class.$fBinaryInt
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [GHC.Types.Int])[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Data.HashMap.Base.HashMap GHC.Types.Int ()
-                      = Language.Fixpoint.Types.Environments.$fBinaryHashSet_go
-                          a1
-                          (Data.HashMap.Base.Empty @ GHC.Types.Int @ ())
-                    } in
-                    Language.Fixpoint.Types.Refinements.$w$cget6
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: Language.Fixpoint.Types.Refinements.SortedReft)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Language.Fixpoint.Types.Refinements.$w$cget6
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a4 :: Language.Fixpoint.Types.Refinements.SortedReft)[OneShot] ->
-                          case i'2 of ww14 { Data.ByteString.Internal.PS ww15 ww16 ww17 ww18 ->
-                          Data.Binary.Class.$w$cget12
-                            @ GHC.Integer.Type.Integer
-                            Data.Binary.Class.$fBinaryInteger
-                            @ r
-                            ww15
-                            ww16
-                            ww17
-                            ww18
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a5 :: GHC.Base.Maybe
-                                        Language.Fixpoint.Types.Constraints.SubcId)[OneShot] ->
-                             case i'3 of ww19 { Data.ByteString.Internal.PS ww20 ww21 ww22 ww23 ->
-                             Data.Binary.Class.$w$cget10
-                               @ GHC.Types.Int
-                               Data.Binary.Class.$fBinaryInt
-                               @ r
-                               ww20
-                               ww21
-                               ww22
-                               ww23
-                               (\ (i'4 :: Data.ByteString.Internal.ByteString)
-                                  (a6 :: [GHC.Types.Int])[OneShot] ->
-                                (Data.Binary.Class.get @ a w)
-                                  `cast`
-                                (Data.Binary.Get.Internal.N:Get[0] <a>_R)
-                                  @ r
-                                  i'4
-                                  (\ (i'5 :: Data.ByteString.Internal.ByteString) (a7 :: a) ->
-                                   w1
-                                     i'5
-                                     (case a2 of nt { DEFAULT ->
-                                      case a3 of dt { Language.Fixpoint.Types.Refinements.RR ipv ipv1 ->
-                                      case a4 of dt1 { Language.Fixpoint.Types.Refinements.RR ipv2 ipv3 ->
-                                      case a5 of dt2 { DEFAULT ->
-                                      case a6 of dt3 { DEFAULT ->
-                                      case a7 of dt4 { DEFAULT ->
-                                      Language.Fixpoint.Types.Constraints.SubC
-                                        @ a
-                                        nt
-                                          `cast`
-                                        (Trans
-                                             (Sym (Data.HashSet.N:HashSet[0]
-                                                       <Language.Fixpoint.Types.Environments.BindId>_N))
-                                             (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                                        dt
-                                        dt1
-                                        dt2
-                                        dt3
-                                        dt4 } } } } } }))) }) }) }) })) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $w$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> c Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 6,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourcePos) ->
-                 w @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (w @ Language.Fixpoint.Types.Refinements.Expr
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Constraints.Qualifier)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (w @ [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)]
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Constraints.Qualifier)
-                         Language.Fixpoint.Types.Refinements.$s$fData[]
-                         (w @ Language.Fixpoint.Types.Names.Symbol
-                            @ ([(Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort)]
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Constraints.Qualifier)
-                            Language.Fixpoint.Types.Names.$fDataSymbol
-                            (w1
-                               @ (Language.Fixpoint.Types.Names.Symbol
-                                  -> [(Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)]
-                                  -> Language.Fixpoint.Types.Refinements.Expr
-                                  -> Text.Parsec.Pos.SourcePos
-                                  -> Language.Fixpoint.Types.Constraints.Qualifier)
-                               Language.Fixpoint.Types.Constraints.$WQ)
-                            ww)
-                         ww1)
-                      ww2)
-                   ww3) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $w$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> m Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 6,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourcePos) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl230 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl230
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (k @ Language.Fixpoint.Types.Refinements.Expr
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Constraints.Qualifier)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (k @ [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)]
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Constraints.Qualifier)
-                         Language.Fixpoint.Types.Refinements.$s$fData[]
-                         (k @ Language.Fixpoint.Types.Names.Symbol
-                            @ ([(Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort)]
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Constraints.Qualifier)
-                            Language.Fixpoint.Types.Names.$fDataSymbol
-                            (GHC.Base.return
-                               @ m
-                               w
-                               @ (Language.Fixpoint.Types.Names.Symbol
-                                  -> [(Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)]
-                                  -> Language.Fixpoint.Types.Refinements.Expr
-                                  -> Text.Parsec.Pos.SourcePos
-                                  -> Language.Fixpoint.Types.Constraints.Qualifier)
-                               Language.Fixpoint.Types.Constraints.$WQ)
-                            ww)
-                         ww1)
-                      ww2)
-                   ww3) -}
-3e908bc2420ca4a06aff8c9e746f6b4a
-  $w$cgmapQi ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> u
-  {- Arity: 6,
-     Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><S,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww4 :: Text.Parsec.Pos.SourcePos) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fDataSymbol
-                        ww1
-                   1#
-                   -> w @ [(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)]
-                        Language.Fixpoint.Types.Refinements.$s$fData[]
-                        ww2
-                   2#
-                   -> w @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fDataExpr
-                        ww3
-                   3#
-                   -> w @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww4 }) -}
-aa953a9e507b36f98791289bec564fda
-  $w$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> r
-  {- Arity: 7,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourcePos) ->
-                 w (w (w (w w1
-                            (w2
-                               @ Language.Fixpoint.Types.Names.Symbol
-                               Language.Fixpoint.Types.Names.$fDataSymbol
-                               ww))
-                         (w2
-                            @ [(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)]
-                            Language.Fixpoint.Types.Refinements.$s$fData[]
-                            ww1))
-                      (w2
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         ww2))
-                   (w2
-                      @ Text.Parsec.Pos.SourcePos
-                      Text.Parsec.Pos.$fDataSourcePos
-                      ww3)) -}
-2ddd1e4c3b9edd14c7ca3a22eb397b85
-  $w$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> r
-  {- Arity: 7,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourcePos) ->
-                 w (w2
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      Language.Fixpoint.Types.Names.$fDataSymbol
-                      ww)
-                   (w (w2
-                         @ [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)]
-                         Language.Fixpoint.Types.Refinements.$s$fData[]
-                         ww1)
-                      (w (w2
-                            @ Language.Fixpoint.Types.Refinements.Expr
-                            Language.Fixpoint.Types.Refinements.$fDataExpr
-                            ww2)
-                         (w (w2
-                               @ Text.Parsec.Pos.SourcePos
-                               Text.Parsec.Pos.$fDataSourcePos
-                               ww3)
-                            w1)))) -}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  $w$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> c Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r) ->
-                 w @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Constraints.Qualifier
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (w @ Language.Fixpoint.Types.Refinements.Expr
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Constraints.Qualifier)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (w @ [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)]
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Constraints.Qualifier)
-                         Language.Fixpoint.Types.Refinements.$s$fData[]
-                         (w @ Language.Fixpoint.Types.Names.Symbol
-                            @ ([(Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Sorts.Sort)]
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Constraints.Qualifier)
-                            Language.Fixpoint.Types.Names.$fDataSymbol
-                            (w1
-                               @ (Language.Fixpoint.Types.Names.Symbol
-                                  -> [(Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)]
-                                  -> Language.Fixpoint.Types.Refinements.Expr
-                                  -> Text.Parsec.Pos.SourcePos
-                                  -> Language.Fixpoint.Types.Constraints.Qualifier)
-                               Language.Fixpoint.Types.Constraints.$WQ))))) -}
-1052549cc559e08aaa78c218edda206c
-  $w$cmappend ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> (# [Language.Fixpoint.Types.Names.Symbol],
-          [Language.Fixpoint.Types.Constraints.Equation],
-          [Language.Fixpoint.Types.Constraints.Rewrite],
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool #)
-  {- Arity: 6,
-     Strictness: <S,U><S,U><S,U><L,U><L,U><L,U(U,U,U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww1 :: [Language.Fixpoint.Types.Constraints.Equation])
-                   (ww2 :: [Language.Fixpoint.Types.Constraints.Rewrite])
-                   (ww3 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)
-                   (ww4 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool)
-                   (w :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case GHC.Base.++
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        ww
-                        (case w of wild { Language.Fixpoint.Types.Constraints.AEnv ds1 ds2 ds3 ds4 ds5 ->
-                         ds1 }) of dt { DEFAULT ->
-                 case GHC.Base.++
-                        @ Language.Fixpoint.Types.Constraints.Equation
-                        ww1
-                        (case w of wild { Language.Fixpoint.Types.Constraints.AEnv ds1 ds2 ds3 ds4 ds5 ->
-                         ds2 }) of dt1 { DEFAULT ->
-                 case GHC.Base.++
-                        @ Language.Fixpoint.Types.Constraints.Rewrite
-                        ww2
-                        (case w of wild { Language.Fixpoint.Types.Constraints.AEnv ds1 ds2 ds3 ds4 ds5 ->
-                         ds3 }) of dt2 { DEFAULT ->
-                 (# dt, dt1, dt2,
-                    case w of wild { Language.Fixpoint.Types.Constraints.AEnv ds1 ds2 ds3 ds4 ds5 ->
-                    Language.Fixpoint.Types.Constraints.$wpoly_go1
-                      @ GHC.Types.Int
-                      0#
-                      ww3
-                      ds4 },
-                    case w of wild { Language.Fixpoint.Types.Constraints.AEnv ds1 ds2 ds3 ds4 ds5 ->
-                    Language.Fixpoint.Types.Constraints.$wpoly_go1
-                      @ GHC.Types.Bool
-                      0#
-                      ww4
-                      ds5 } #) } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $w$cmappend1 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-  {- Arity: 26,
-     Strictness: <S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,1*U><L,1*U><S,U><L,1*U(U,U,U,U,U)><S,U><S,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><L,1*U><L,1*U><S,U><L,U(U,U,U,U,U)>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId (c a))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   (ww4 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww6 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww7 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww8 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Environments.BindId a)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: GHC.Types.Bool)
-                   (ww11 :: [Language.Fixpoint.Types.Triggers.Triggered
-                               Language.Fixpoint.Types.Refinements.Expr])
-                   (ww12 :: Language.Fixpoint.Types.Constraints.AxiomEnv)
-                   (ww13 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Constraints.SubcId (c a))
-                   (ww14 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Refinements.KVar
-                              (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww15 :: GHC.Prim.Int#)
-                   (ww16 :: Language.Fixpoint.Types.Environments.BindMap
-                              (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft))
-                   (ww17 :: Language.Fixpoint.Types.Environments.SEnv
-                              Language.Fixpoint.Types.Sorts.Sort)
-                   (ww18 :: Language.Fixpoint.Types.Environments.SEnv
-                              Language.Fixpoint.Types.Sorts.Sort)
-                   (ww19 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww20 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww21 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Environments.BindId a)
-                   (ww22 :: GHC.Types.Bool)
-                   (ww23 :: GHC.Types.Bool)
-                   (ww24 :: [Language.Fixpoint.Types.Triggers.Triggered
-                               Language.Fixpoint.Types.Refinements.Expr])
-                   (ww25 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case Language.Fixpoint.Types.Constraints.$wpoly_go1
-                        @ (c a)
-                        0#
-                        ww
-                        ww13 of dt { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ (Language.Fixpoint.Types.Constraints.WfC a)
-                        0#
-                        ww1
-                        ww14 of dt1 { DEFAULT ->
-                 case case ww2 of ds2 {
-                        DEFAULT
-                        -> case ww15 of ds4 {
-                             DEFAULT -> Language.Fixpoint.Types.Environments.$fMonoidSizedEnv1
-                             0#
-                             -> Language.Fixpoint.Types.Environments.BE
-                                  @ (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                                  ds2
-                                  ww3 }
-                        0#
-                        -> Language.Fixpoint.Types.Environments.BE
-                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.SortedReft)
-                             ww15
-                             ww16 } of dt2 { Language.Fixpoint.Types.Environments.BE ipv ipv1 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go3
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        0#
-                        ww4
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N)
-                        ww17
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go3
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        0#
-                        ww5
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N)
-                        ww18
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt1 { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ ()
-                        0#
-                        ww6
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        ww19
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N)) of nt2 { DEFAULT ->
-                 case GHC.Base.++
-                        @ Language.Fixpoint.Types.Constraints.Qualifier
-                        ww7
-                        ww20 of dt3 { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go1
-                        @ a
-                        0#
-                        ww8
-                        ww21 of dt4 { DEFAULT ->
-                 case GHC.Base.++
-                        @ (Language.Fixpoint.Types.Triggers.Triggered
-                             Language.Fixpoint.Types.Refinements.Expr)
-                        ww11
-                        ww24 of dt5 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.FI
-                   @ c
-                   @ a
-                   dt
-                   dt1
-                   dt2
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt1
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt2
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))
-                   dt3
-                   dt4
-                   (Language.Fixpoint.Types.Constraints.HOI
-                      (case ww9 of wild {
-                         GHC.Types.False -> ww22 GHC.Types.True -> GHC.Types.True })
-                      (case ww10 of wild {
-                         GHC.Types.False -> ww23 GHC.Types.True -> GHC.Types.True }))
-                   dt5
-                   (Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv_$cmappend
-                      ww12
-                      ww25) } } } } } } } } }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $w$cpprintTidy ::
-    Language.Fixpoint.Types.Constraints.GFixSolution
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                              @ ()
-                              Language.Fixpoint.Types.Constraints.$fPPrintGFixSol1
-                                `cast`
-                              (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                              (Language.Fixpoint.Types.Constraints.$fPPrintGFixSol_go1
-                                 (GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                 w `cast`
-                                 (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R)))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-b9ea68364e6802ea08d1c67a2010105e
-  $w$cpprintTidy1 ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 6, Strictness: <S,U><S,U><S,U><S,1*U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 let {
-                   s22 :: GHC.Base.String = Text.Parsec.Pos.$w$cshow ww3 ww4 ww5
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s22 0# of ww6 { DEFAULT ->
-                 case Language.Fixpoint.Types.Names.$wlvl
-                        ww
-                        ww1
-                        ww2 of ww8 { (#,#) ww9 ww10 ->
-                 case Language.Fixpoint.Types.Constraints.$fPPrintQualifier3
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Constraints.$fPPrintQualifier1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                    @ ()
-                                    wild1
-                                    GHC.Types.True
-                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10))
-                                 GHC.Types.True
-                                 wild)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.Str s22)
-                                    ww6)
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                                 GHC.Types.True
-                                 wild)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.Str s22)
-                                    ww6)
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.Constraints.$fPPrintQualifier1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 wild1
-                                 GHC.Types.True
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10))
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.Str s22)
-                                    ww6)
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.Str s22)
-                                    ww6)
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $w$cptable ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> (# (Text.PrettyPrint.HughesPJ.Doc,
-           Text.PrettyPrint.HughesPJ.Doc),
-          [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)] #)
-  {- Arity: 1, Strictness: <L,U(U,U,A,A,A,A,A,A,A,A,A)>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SInfo a) ->
-                 (# (Language.Fixpoint.Types.Constraints.$fPTableGInfo4,
-                     case w of wild { Language.Fixpoint.Types.Constraints.FI ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                     case Data.HashMap.Base.$fFoldableHashMap_$clength
-                            @ GHC.Integer.Type.Integer
-                            @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                            ds1 of ww { GHC.Types.I# ww1 ->
-                     case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                            ww1 of ww2 { (#,#) ww3 ww4 ->
-                     (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                       `cast`
-                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }),
-                    GHC.Types.:
-                      @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)
-                      (Language.Fixpoint.Types.Constraints.$fPTableGInfo2,
-                       case w of wild { Language.Fixpoint.Types.Constraints.FI ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                       case Data.HashMap.Base.$fFoldableHashMap_$clength
-                              @ Language.Fixpoint.Types.Refinements.KVar
-                              @ (Language.Fixpoint.Types.Constraints.WfC a)
-                              ds2 of ww { GHC.Types.I# ww1 ->
-                       case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                              ww1 of ww2 { (#,#) ww3 ww4 ->
-                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                         `cast`
-                       (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } })
-                      (GHC.Types.[]
-                         @ (Text.PrettyPrint.HughesPJ.Doc,
-                            Text.PrettyPrint.HughesPJ.Doc)) #)) -}
-d6932397d555c96eda6b4d429c69a0e9
-  $w$cput ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 4,
-     Strictness: <L,1*U(A,U(U,U,1*U),A)><L,1*U(A,U(U,U,1*U),A)><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Refinements.$fBinaryExpr_$cput ww3)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w' ->
-                        w' }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Names.$fBinarySymbol_$cputList ww2)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w3 ->
-                        w3 }
-                    } in
-                    let {
-                      ds3 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Constraints.$w$dGBinaryPut
-                               @ GHC.Prim.Any
-                               ww
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Language.Fixpoint.Types.Names.Symbol>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "smName")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Language.Fixpoint.Types.Names.Symbol>_R) <GHC.Prim.Any>_N))
-                               ww1
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Language.Fixpoint.Types.Names.Symbol>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "smDC")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Language.Fixpoint.Types.Names.Symbol>_R) <GHC.Prim.Any>_N)) of ww4 { (#,#) ww5 ww6 ->
-                        ww6 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds3 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-e1a50d34e8fb10a7bde1f78f3aabb9a2
-  $w$cput1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 3, Strictness: <L,1*U(A,U(U,U,1*U),A)><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Refinements.$fBinaryExpr_$cput ww2)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w' ->
-                        w' }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Names.$fBinarySymbol_$cputList ww1)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w3 ->
-                        w3 }
-                    } in
-                    let {
-                      ds3 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case ww of wild { Language.Fixpoint.Types.Names.S dt ds4 ds5 ->
-                                case ds4 of ww3 { Data.Text.Internal.Text ww4 ww5 ww6 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww4
-                                  ww5
-                                  ww6 } }) of ww3 { (#,#) ww4 ww5 ->
-                        ww5 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds3 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-c9887ac2dacf65b376fc344cb3972ceb
-  $w$cput2 ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 5, Strictness: <S,U><S,U><S,U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww1 :: [Language.Fixpoint.Types.Constraints.Equation])
-                   (ww2 :: [Language.Fixpoint.Types.Constraints.Rewrite])
-                   (ww3 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)
-                   (ww4 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Constraints.$w$dGBinaryPut1
-                               @ GHC.Prim.Any
-                               ww3
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Constraints.SubcId
-                                                 GHC.Types.Int>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "aenvFuel")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Constraints.SubcId
-                                                    GHC.Types.Int)>_R) <GHC.Prim.Any>_N))
-                               ww4
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Constraints.SubcId
-                                                 GHC.Types.Bool>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "aenvExpand")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Constraints.SubcId
-                                                    GHC.Types.Bool)>_R) <GHC.Prim.Any>_N)) of ww5 { (#,#) ww6 ww7 ->
-                        ww7 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Constraints.$fBinaryRewrite_$cputList
-                                ww2)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w3 ->
-                        w3 }
-                    } in
-                    let {
-                      ds3 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Constraints.$fBinaryEquation_$cputList
-                                ww1)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds4 w' ->
-                        w' }
-                    } in
-                    let {
-                      ds4 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Names.$fBinarySymbol_$cputList ww)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds5 w3 ->
-                        w3 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds4 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds3 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                @ r
-                                eta))))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-c01bda728c1dd6f9898322e61a22de6c
-  $w$cput3 ::
-    Data.Text.Internal.Text
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 6, Strictness: <L,U(U,U,1*U)><L,U><S,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Data.Text.Internal.Text)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput1
-                               (Text.Parsec.Pos.SourcePos ww3 ww4 ww5) of ww6 { (#,#) ww7 ww8 ->
-                        ww8 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Refinements.$fBinaryExpr_$cput ww2)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w3 ->
-                        w3 }
-                    } in
-                    let {
-                      ds3 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Constraints.$w$dGBinaryPut2
-                               @ GHC.Prim.Any
-                               (Language.Fixpoint.Types.Names.S
-                                  0#
-                                  ww
-                                  Language.Fixpoint.Types.Constraints.$fBinaryQualifier2)
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Language.Fixpoint.Types.Names.Symbol>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "qName")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Language.Fixpoint.Types.Names.Symbol>_R) <GHC.Prim.Any>_N))
-                               ww1
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <[(Language.Fixpoint.Types.Names.Symbol,
-                                                 Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "qParams")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [(Language.Fixpoint.Types.Names.Symbol,
-                                                   Language.Fixpoint.Types.Sorts.Sort)]>_R) <GHC.Prim.Any>_N)) of ww6 { (#,#) ww7 ww8 ->
-                        ww8 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds3 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-9e91d7cb4e7200cc03feacd2cd51bed3
-  $w$cput4 ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 6,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-da48b67e71c07c604631809a84757b11
-  $w$cput5 ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 9,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S,U><L,U><L,U(1*U(A,U(U,U,1*U),A),1*U)><L,U><L,U(1*U(A,U(U,U,1*U),A),1*U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-b829037425672d5330f148aa6a367afd
-  $w$crnf ::
-    (Control.DeepSeq.NFData (c a), Control.DeepSeq.NFData a) =>
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> ()
-  {- Arity: 18, HasNoCafRefs,
-     Strictness: <L,C(U())><L,C(U())><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,1*U><S,1*U><S,U><S,U><S,U><S,U><S,1*U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Control.DeepSeq.NFData (c a))
-                   (w1 :: Control.DeepSeq.NFData a)
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId (c a))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   (ww3 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww4 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww6 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww7 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Environments.BindId a)
-                   (ww8 :: GHC.Types.Bool)
-                   (ww9 :: GHC.Types.Bool)
-                   (ww10 :: [Language.Fixpoint.Types.Triggers.Triggered
-                               Language.Fixpoint.Types.Refinements.Expr])
-                   (ww11 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww12 :: [Language.Fixpoint.Types.Constraints.Equation])
-                   (ww13 :: [Language.Fixpoint.Types.Constraints.Rewrite])
-                   (ww14 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int)
-                   (ww15 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool) ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Integer.Type.Integer
-                        @ (c a)
-                        Control.DeepSeq.$fNFDataInteger_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Integer.Type.Integer>_N))
-                        w
-                        ww of wild1 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Constraints.WfC a)
-                        Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        (Language.Fixpoint.Types.Constraints.$fNFDataGInfo_$crnf1 @ a w1)
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Constraints.WfC a>_N))
-                        ww1 of wild2 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Types.Int
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        Language.Fixpoint.Types.Environments.$fNFDataSizedEnv3
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.SortedReft)>_N))
-                        ww2 of wild3 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Names.Symbol>_N))
-                        Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Sorts.Sort>_N))
-                        ww3
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of wild4 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Names.Symbol>_N))
-                        Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Sorts.Sort>_N))
-                        ww4
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of wild5 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ ()
-                        Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        Control.DeepSeq.$fNFData()_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                        ww5
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N)) of wild6 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Constraints.Qualifier
-                        (\ (eta :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                         case eta of wild { Language.Fixpoint.Types.Constraints.Q g1 g2 g3 g4 ->
-                         case g4 of ww16 { Text.Parsec.Pos.SourcePos ww17 ww18 ww19 ->
-                         case Control.DeepSeq.$fNFDataArray_$crnf1
-                                @ (Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Sorts.Sort)
-                                Language.Fixpoint.Types.Constraints.$fNFDataGInfo2
-                                  `cast`
-                                (Sym (Control.DeepSeq.N:NFData[0]
-                                          <(Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Sorts.Sort)>_N))
-                                g2 of wild7 { () ->
-                         case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                                @ GHC.Prim.Any
-                                (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                                   @ GHC.Prim.Any
-                                   g3) of wild8 { () ->
-                         Control.DeepSeq.$fNFDataArray_$crnf1
-                           @ GHC.Types.Char
-                           Control.DeepSeq.$fNFDataChar_$crnf
-                             `cast`
-                           (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                           ww17 } } } })
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Constraints.Qualifier>_N))
-                        ww6 of wild7 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Types.Int
-                        @ a
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        w1
-                        ww7 of wild8 { () ->
-                 case ww8 of tpl { DEFAULT ->
-                 case ww9 of tpl1 { DEFAULT ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ (Language.Fixpoint.Types.Triggers.Triggered
-                             Language.Fixpoint.Types.Refinements.Expr)
-                        Language.Fixpoint.Types.Constraints.$fNFDataGInfo1
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Triggers.Triggered
-                                     Language.Fixpoint.Types.Refinements.Expr>_N))
-                        ww10 of wild9 { () ->
-                 Language.Fixpoint.Types.Constraints.$w$dGNFData
-                   @ GHC.Prim.Any
-                   ww11
-                     `cast`
-                   (Trans
-                        (Sym (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                  <GHC.Prim.Any>_P))
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSyms")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Names.Symbol]>_R) <GHC.Prim.Any>_N))
-                   ww12
-                     `cast`
-                   (Trans
-                        (Sym (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                  <GHC.Prim.Any>_P))
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvEqs")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Constraints.Equation]>_R) <GHC.Prim.Any>_N))
-                   ww13
-                     `cast`
-                   (Trans
-                        (Sym (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                  <GHC.Prim.Any>_P))
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSimpl")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Constraints.Rewrite]>_R) <GHC.Prim.Any>_N))
-                   ww14
-                     `cast`
-                   (Trans
-                        (Sym (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int>_R
-                                  <GHC.Prim.Any>_P))
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvFuel")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Constraints.SubcId
-                                        GHC.Types.Int)>_R) <GHC.Prim.Any>_N))
-                   ww15
-                     `cast`
-                   (Trans
-                        (Sym (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool>_R
-                                  <GHC.Prim.Any>_P))
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvExpand")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Constraints.SubcId
-                                        GHC.Types.Bool)>_R) <GHC.Prim.Any>_N)) } } } } } } } } } } }) -}
-1de0e7882069f13222c6effa6f71fad5
-  $w$crnf1 ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Constraints.FixSolution
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-    -> ()
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,C(H)><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (ww :: Language.Fixpoint.Types.Errors.FixResult a)
-                   (ww1 :: Language.Fixpoint.Types.Constraints.FixSolution)
-                   (ww2 :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 case case ww of wild {
-                        Language.Fixpoint.Types.Errors.Crash g1 g2
-                        -> case Control.DeepSeq.$fNFDataArray_$crnf1
-                                  @ a
-                                  w
-                                  g1 of wild1 { () ->
-                           Control.DeepSeq.$fNFDataArray_$crnf1
-                             @ GHC.Types.Char
-                             Control.DeepSeq.$fNFDataChar_$crnf
-                               `cast`
-                             (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                             g2 }
-                        Language.Fixpoint.Types.Errors.Safe -> GHC.Tuple.()
-                        Language.Fixpoint.Types.Errors.Unsafe g1
-                        -> Control.DeepSeq.$fNFDataArray_$crnf1 @ a w g1 } of wild1 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        Language.Fixpoint.Types.Refinements.$fNFDataExpr_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Refinements.Expr>_N))
-                        ww1 of wild2 { () ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ (Language.Fixpoint.Types.Refinements.Expr,
-                      [Language.Fixpoint.Types.Refinements.Expr])
-                   Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.KVar>_N))
-                   Language.Fixpoint.Types.Constraints.$fNFDataGFixSol1
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <(Language.Fixpoint.Types.Refinements.Expr,
-                               [Language.Fixpoint.Types.Refinements.Expr])>_N))
-                   ww2
-                     `cast`
-                   (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                        <Language.Fixpoint.Types.Refinements.Expr>_R) } }) -}
-1b2ac6242d30fcbbca198b36550d84a9
-  $w$crnf2 ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> ()
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S,U><S,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (ww :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: GHC.Base.Maybe GHC.Integer.Type.Integer)
-                   (ww3 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (ww4 :: a) ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Types.Int
-                        @ ()
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        Control.DeepSeq.$fNFData()_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                        ww
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild1 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww1) of wild2 { () ->
-                 case case ww2 of wild {
-                        GHC.Base.Nothing -> GHC.Tuple.()
-                        GHC.Base.Just x
-                        -> Control.DeepSeq.$fNFDataInteger_$crnf x } of wild3 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Int
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        ww3 of wild4 { () ->
-                 w `cast` (Control.DeepSeq.N:NFData[0] <a>_N) ww4 } } } }) -}
-ee57e44a35343ef1f3e46f129f2b54e1
-  $w$crnf3 ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> ()
-  {- Arity: 11, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S,U><S,U><S,1*H><S,1*U><S,U><S,1*H><S,1*U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (ww :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww2 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww4 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww6 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww7 :: GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww8 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (ww9 :: a) ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Types.Int
-                        @ ()
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        Control.DeepSeq.$fNFData()_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                        ww
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) of wild1 { () ->
-                 case Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                        ww1 of wild2 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww3) of wild3 { () ->
-                 case Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                        ww4 of wild4 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww6) of wild5 { () ->
-                 case case ww7 of wild {
-                        GHC.Base.Nothing -> GHC.Tuple.()
-                        GHC.Base.Just x
-                        -> Control.DeepSeq.$fNFDataInteger_$crnf x } of wild6 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Int
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        ww8 of wild7 { () ->
-                 w `cast` (Control.DeepSeq.N:NFData[0] <a>_N) ww9 } } } } } } }) -}
-a663188719f9f52e1bf7bd6062cb819a
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-    -> GHC.Show.ShowS
-  {- Arity: 6, Strictness: <S,U><S,U><S,U><S,U><L,1*U><L,1*U>,
-     Inline: [0] -}
-ac2993a8b7e54ebd0b19e06a66075331
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <S,U><L,U(A,U(U,U,U),A)><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = Language.Fixpoint.Types.Refinements.$w$cshowsPrec3 0# ww3
-                 } in
-                 let {
-                   lvl230 :: Data.Text.Internal.Text
-                   = case ww1 of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                     ds1 }
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Constraints.$fShowEquation6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Constraints.$fShowEquation5
-                          (case Data.Text.Show.$w$cshow lvl230 of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Base.++
-                             @ GHC.Types.Char
-                             (GHC.Types.: @ GHC.Types.Char ww5 ww6)
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Constraints.$fShowEquation4
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Constraints.$fShowEquation3
-                                   (let {
-                                      s22 :: GHC.Base.String
-                                      = GHC.Base.++
-                                          @ GHC.Types.Char
-                                          Language.Fixpoint.Types.Constraints.$fShowEquation4
-                                          (GHC.Base.++
-                                             @ GHC.Types.Char
-                                             Language.Fixpoint.Types.Constraints.$fShowEquation2
-                                             (f1
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Types.Constraints.$fShowEquation1
-                                                   x)))
-                                    } in
-                                    case ww2 of wild {
-                                      [] -> GHC.CString.unpackAppendCString# "[]"# s22
-                                      : x1 xs
-                                      -> GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.showList__2
-                                           (case Data.Text.Show.$w$cshow
-                                                   (case x1 of wild1 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                                                    ds1 }) of ww7 { (#,#) ww8 ww9 ->
-                                            GHC.Base.++
-                                              @ GHC.Types.Char
-                                              (GHC.Types.: @ GHC.Types.Char ww8 ww9)
-                                              (let {
-                                                 lvl231 :: [GHC.Types.Char]
-                                                 = GHC.Types.:
-                                                     @ GHC.Types.Char
-                                                     GHC.Show.showList__1
-                                                     s22
-                                               } in
-                                               letrec {
-                                                 showl1 :: [Language.Fixpoint.Types.Names.Symbol]
-                                                           -> GHC.Base.String
-                                                   {- Arity: 1, Strictness: <S,1*U> -}
-                                                 = \ (ds2 :: [Language.Fixpoint.Types.Names.Symbol]) ->
-                                                   case ds2 of wild1 {
-                                                     [] -> lvl231
-                                                     : y ys
-                                                     -> GHC.Types.:
-                                                          @ GHC.Types.Char
-                                                          GHC.Show.shows5
-                                                          (case Data.Text.Show.$w$cshow
-                                                                  (case y of wild2 { Language.Fixpoint.Types.Names.S dt ds1 ds3 ->
-                                                                   ds1 }) of ww10 { (#,#) ww11 ww12 ->
-                                                           GHC.Base.++
-                                                             @ GHC.Types.Char
-                                                             (GHC.Types.:
-                                                                @ GHC.Types.Char
-                                                                ww11
-                                                                ww12)
-                                                             (showl1 ys) }) }
-                                               } in
-                                               showl1 xs) }) }))) }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-8cf496dba97ef87f63813ecfb076df35
-  $w$cshowsPrec2 ::
-    GHC.Prim.Int#
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 4, Strictness: <S,U><L,1*U><L,1*U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Constraints.$fShowHOInfo3
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Constraints.$fShowHOInfo2
-                          (let {
-                             eta :: GHC.Base.String
-                             = GHC.Base.++
-                                 @ GHC.Types.Char
-                                 Language.Fixpoint.Types.Constraints.$fShowEquation4
-                                 (GHC.Base.++
-                                    @ GHC.Types.Char
-                                    Language.Fixpoint.Types.Constraints.$fShowHOInfo1
-                                    (case ww2 of wild {
-                                       GHC.Types.False
-                                       -> GHC.Base.++
-                                            @ GHC.Types.Char
-                                            GHC.Show.shows18
-                                            (GHC.Base.++
-                                               @ GHC.Types.Char
-                                               Language.Fixpoint.Types.Constraints.$fShowEquation1
-                                               x)
-                                       GHC.Types.True
-                                       -> GHC.Base.++
-                                            @ GHC.Types.Char
-                                            GHC.Show.shows17
-                                            (GHC.Base.++
-                                               @ GHC.Types.Char
-                                               Language.Fixpoint.Types.Constraints.$fShowEquation1
-                                               x) }))
-                           } in
-                           case ww1 of wild {
-                             GHC.Types.False
-                             -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows18 eta
-                             GHC.Types.True
-                             -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows17 eta }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-10aef948b5229216dcc343e2e00963d2
-  $w$cshowsPrec3 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Kuts -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashSet.$w$cshowsPrec
-                       @ Language.Fixpoint.Types.Refinements.KVar
-                       Language.Fixpoint.Types.Refinements.$fShowKVar
-                       0#
-                       w `cast` (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Constraints.$fShowKuts2
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Constraints.$fShowKuts1
-                          (f1
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Constraints.$fShowEquation1
-                                x)))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-8f62ba340f0b9f3f970df2d72cece382
-  $w$cshowsPrec4 ::
-    GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Show.ShowS
-  {- Arity: 7,
-     Strictness: <S,U><L,U(U,U,U)><L,U><S,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-1de0e7882069f13222c6effa6f71fad5
-  $w$cshowsPrec5 ::
-    GHC.Show.Show a =>
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Constraints.FixSolution
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-    -> GHC.Show.ShowS
-  {- Arity: 5, Strictness: <L,1*U(A,A,1*C1(U))><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Errors.FixResult a)
-                   (ww2 :: Language.Fixpoint.Types.Constraints.FixSolution)
-                   (ww3 :: Language.Fixpoint.Types.Constraints.GFixSolution) ->
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = case ww1 of wild {
-                       Language.Fixpoint.Types.Errors.Crash b1 b2
-                       -> let {
-                            f2 :: GHC.Base.String -> GHC.Base.String
-                            = GHC.Show.showList @ a w b1
-                          } in
-                          \ (x1 :: GHC.Base.String) ->
-                          GHC.Base.++
-                            @ GHC.Types.Char
-                            Language.Fixpoint.Types.Errors.$fExceptionFixResult5
-                            (f2
-                               (GHC.Types.:
-                                  @ GHC.Types.Char
-                                  GHC.Show.showSpace1
-                                  (GHC.Types.:
-                                     @ GHC.Types.Char
-                                     GHC.Show.shows6
-                                     (GHC.Show.showLitString
-                                        b2
-                                        (GHC.Types.: @ GHC.Types.Char GHC.Show.shows6 x1)))))
-                       Language.Fixpoint.Types.Errors.Safe
-                       -> Language.Fixpoint.Types.Errors.$fShowFixResult1
-                       Language.Fixpoint.Types.Errors.Unsafe b1
-                       -> let {
-                            g :: GHC.Base.String -> GHC.Base.String
-                            = GHC.Show.showList @ a w b1
-                          } in
-                          \ (x1 :: GHC.Base.String) ->
-                          GHC.Base.++
-                            @ GHC.Types.Char
-                            Language.Fixpoint.Types.Errors.$fExceptionFixResult2
-                            (g x1) }
-                 } in
-                 let {
-                   f2 :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ Language.Fixpoint.Types.Refinements.KVar
-                       @ Language.Fixpoint.Types.Refinements.Expr
-                       Language.Fixpoint.Types.Refinements.$fShowKVar
-                       Language.Fixpoint.Types.Refinements.$fShowExpr
-                       0#
-                       ww2
-                 } in
-                 let {
-                   lvl230 :: GHC.Base.String
-                   = Language.Fixpoint.Types.Constraints.$fShowGFixSol_$cshow ww3
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Constraints.$fShowResult4
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Constraints.$fShowResult3
-                          (f1
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Constraints.$fShowEquation4
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Constraints.$fShowResult2
-                                   (f2
-                                      (GHC.Base.++
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.Types.Constraints.$fShowEquation4
-                                         (GHC.Base.++
-                                            @ GHC.Types.Char
-                                            Language.Fixpoint.Types.Constraints.$fShowResult1
-                                            (GHC.Base.++
-                                               @ GHC.Types.Char
-                                               lvl230
-                                               (GHC.Base.++
-                                                  @ GHC.Types.Char
-                                                  Language.Fixpoint.Types.Constraints.$fShowEquation1
-                                                  x)))))))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-7f8c27fb937ca5084a6cfbbf990efba3
-  $w$cshowsPrec6 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Show.ShowS
-  {- Arity: 5,
-     Strictness: <S,U><L,U(A,U(U,U,U),A)><L,U(A,U(U,U,U),A)><L,U><L,1*U>,
-     Inline: [0] -}
-422c859b64e365b196f8fd06ad8cb7f1
-  $w$cshowsPrec7 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,U(U,U,U,U,U)><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SimpC a)
-                   (w2 :: GHC.Base.String) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                      @ ()
-                      @ GHC.Base.String
-                      Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                      Text.PrettyPrint.Annotated.HughesPJ.render3
-                      Text.PrettyPrint.Annotated.HughesPJ.render2
-                      Language.Fixpoint.Types.PrettyPrint.docBox1
-                      (GHC.Types.[] @ GHC.Types.Char)
-                      (Language.Fixpoint.Types.Constraints.$fFixpointSimpC1 @ a w w1))
-                   w2) -}
-ed16f1ec59060d74f74ea827928489f9
-  $w$cshowsPrec8 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 3,
-     Strictness: <L,1*U(1*C1(U),A)><L,U(U,U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)),U,U,U)><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a)
-                   (w2 :: GHC.Base.String) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                      @ ()
-                      @ GHC.Base.String
-                      Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                      Text.PrettyPrint.Annotated.HughesPJ.render3
-                      Text.PrettyPrint.Annotated.HughesPJ.render2
-                      Language.Fixpoint.Types.PrettyPrint.docBox1
-                      (GHC.Types.[] @ GHC.Types.Char)
-                      (Language.Fixpoint.Types.Constraints.$fFixpointSubC2 @ a w w1))
-                   w2) -}
-50354839b899806bfddb7dd9a816596d
-  $w$cshowsPrec9 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.WfC a)
-                   (w2 :: GHC.Base.String) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                      @ ()
-                      @ GHC.Base.String
-                      Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                      Text.PrettyPrint.Annotated.HughesPJ.render3
-                      Text.PrettyPrint.Annotated.HughesPJ.render2
-                      Language.Fixpoint.Types.PrettyPrint.docBox1
-                      (GHC.Types.[] @ GHC.Types.Char)
-                      (Language.Fixpoint.Types.Constraints.$fFixpointWfC2 @ a w w1))
-                   w2) -}
-7485cf9b50ac55d4ca313fa77200ab4a
-  $w$ctoFix ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 8,
-     Strictness: <S,U><S,U><S,U><S,1*U><S,U><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-dd759cd6966bd65d0f3271491f354e3f
-  $w$dGBinaryGet ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         ((GHC.Generics.:*:)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "aenvSyms")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "aenvEqs")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Equation]))
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "aenvSimpl")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "aenvFuel")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "aenvExpand")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0
-                                                     (Data.HashMap.Base.HashMap
-                                                        Language.Fixpoint.Types.Constraints.SubcId
-                                                        GHC.Types.Bool))))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           ((GHC.Generics.:*:)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "aenvSyms")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "aenvEqs")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     [Language.Fixpoint.Types.Constraints.Equation]))
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "aenvSimpl")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "aenvFuel")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      (Data.HashMap.Base.HashMap
-                                                         Language.Fixpoint.Types.Constraints.SubcId
-                                                         GHC.Types.Int))
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "aenvExpand")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.Rec0
-                                                                       (Data.HashMap.Base.HashMap
-                                                                          Language.Fixpoint.Types.Constraints.SubcId
-                                                                          GHC.Types.Bool))))
-                              t)
-                           r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fBinarySymbol
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [Language.Fixpoint.Types.Names.Symbol])[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Data.Binary.Class.$w$cget10
-                      @ Language.Fixpoint.Types.Constraints.Equation
-                      Language.Fixpoint.Types.Constraints.$fBinaryEquation
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: [Language.Fixpoint.Types.Constraints.Equation])[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       let {
-                         a3 :: (GHC.Generics.:*:)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "aenvSyms")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol]))
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "aenvEqs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       [Language.Fixpoint.Types.Constraints.Equation]))
-                                 t
-                           {- Strictness: m -}
-                         = GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSyms")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol]))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvEqs")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0
-                                     [Language.Fixpoint.Types.Constraints.Equation]))
-                             @ t
-                             a1
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvSyms")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Names.Symbol]>_R) <t>_N))
-                             a2
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "aenvEqs")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Constraints.Equation]>_R) <t>_N))
-                       } in
-                       Data.Binary.Class.$w$cget10
-                         @ Language.Fixpoint.Types.Constraints.Rewrite
-                         Language.Fixpoint.Types.Constraints.$fBinaryRewrite
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a4 :: [Language.Fixpoint.Types.Constraints.Rewrite])[OneShot] ->
-                          (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                             @ GHC.Integer.Type.Integer
-                             @ GHC.Types.Int
-                             Data.Hashable.Class.$fHashableInteger
-                             GHC.Integer.Type.$fEqInteger
-                             Data.Binary.Class.$fBinaryInteger
-                             Data.Binary.Class.$fBinaryInt)
-                            `cast`
-                          (Data.Binary.Get.Internal.N:Get[0]
-                               <Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int>_R)
-                            @ r
-                            i'2
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a5 :: Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int) ->
-                             (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                                @ GHC.Integer.Type.Integer
-                                @ GHC.Types.Bool
-                                Data.Hashable.Class.$fHashableInteger
-                                GHC.Integer.Type.$fEqInteger
-                                Data.Binary.Class.$fBinaryInteger
-                                Data.Binary.Class.$fBinaryBool)
-                               `cast`
-                             (Data.Binary.Get.Internal.N:Get[0]
-                                  <Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool>_R)
-                               @ r
-                               i'3
-                               (\ (i'4 :: Data.ByteString.Internal.ByteString)
-                                  (a6 :: Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Constraints.SubcId
-                                           GHC.Types.Bool) ->
-                                w i'4
-                                  (GHC.Generics.:*:
-                                     @ (GHC.Generics.S1
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "aenvSyms")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                        GHC.Generics.:*: GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "aenvEqs")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.Rec0
-                                                              [Language.Fixpoint.Types.Constraints.Equation]))
-                                     @ (GHC.Generics.S1
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "aenvSimpl")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0
-                                             [Language.Fixpoint.Types.Constraints.Rewrite])
-                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "aenvFuel")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.Rec0
-                                                               (Data.HashMap.Base.HashMap
-                                                                  Language.Fixpoint.Types.Constraints.SubcId
-                                                                  GHC.Types.Int))
-                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "aenvExpand")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                'GHC.Generics.DecidedLazy)
-                                                                             (GHC.Generics.Rec0
-                                                                                (Data.HashMap.Base.HashMap
-                                                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                                                   GHC.Types.Bool))))
-                                     @ t
-                                     a3
-                                     (GHC.Generics.:*:
-                                        @ (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvSimpl")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0
-                                                [Language.Fixpoint.Types.Constraints.Rewrite]))
-                                        @ (GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvFuel")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   GHC.Types.Int))
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "aenvExpand")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Constraints.SubcId
-                                                                    GHC.Types.Bool)))
-                                        @ t
-                                        a4
-                                          `cast`
-                                        (Trans
-                                             (Sym (GHC.Generics.N:K1[0]
-                                                       <GHC.Generics.R>_P
-                                                       <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                                       <t>_P))
-                                             (Sym (GHC.Generics.N:M1[0]
-                                                       <GHC.Generics.S>_P
-                                                       <'GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "aenvSimpl")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict>_P
-                                                       <GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          [Language.Fixpoint.Types.Constraints.Rewrite]>_R) <t>_N))
-                                        (GHC.Generics.:*:
-                                           @ (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvFuel")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.Rec0
-                                                   (Data.HashMap.Base.HashMap
-                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                      GHC.Types.Int)))
-                                           @ (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "aenvExpand")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.Rec0
-                                                   (Data.HashMap.Base.HashMap
-                                                      Language.Fixpoint.Types.Constraints.SubcId
-                                                      GHC.Types.Bool)))
-                                           @ t
-                                           a5
-                                             `cast`
-                                           (Trans
-                                                (Sym (GHC.Generics.N:K1[0]
-                                                          <GHC.Generics.R>_P
-                                                          <Data.HashMap.Base.HashMap
-                                                             Language.Fixpoint.Types.Constraints.SubcId
-                                                             GHC.Types.Int>_R
-                                                          <t>_P))
-                                                (Sym (GHC.Generics.N:M1[0]
-                                                          <GHC.Generics.S>_P
-                                                          <'GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "aenvFuel")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy>_P
-                                                          <GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             (Data.HashMap.Base.HashMap
-                                                                Language.Fixpoint.Types.Constraints.SubcId
-                                                                GHC.Types.Int)>_R) <t>_N))
-                                           a6
-                                             `cast`
-                                           (Trans
-                                                (Sym (GHC.Generics.N:K1[0]
-                                                          <GHC.Generics.R>_P
-                                                          <Data.HashMap.Base.HashMap
-                                                             Language.Fixpoint.Types.Constraints.SubcId
-                                                             GHC.Types.Bool>_R
-                                                          <t>_P))
-                                                (Sym (GHC.Generics.N:M1[0]
-                                                          <GHC.Generics.S>_P
-                                                          <'GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "aenvExpand")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy>_P
-                                                          <GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             (Data.HashMap.Base.HashMap
-                                                                Language.Fixpoint.Types.Constraints.SubcId
-                                                                GHC.Types.Bool)>_R) <t>_N)))))))) }) })) -}
-b3e9dbf284a71c96d1d747e2a84ca837
-  $w$dGBinaryGet1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.S1
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "smName")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.NoSourceStrictness
-                   'GHC.Generics.DecidedLazy)
-                (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-              GHC.Generics.:*: GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "smDC")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "smArgs")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "smBody")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0
-                                                     Language.Fixpoint.Types.Refinements.Expr)))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              ((GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "smName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "smDC")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      Language.Fixpoint.Types.Names.Symbol))
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "smArgs")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      [Language.Fixpoint.Types.Names.Symbol])
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "smBody")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.Rec0
-                                                                       Language.Fixpoint.Types.Refinements.Expr)))
-                              t)
-                           r) ->
-                 Data.Text.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.Text.Internal.Text)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Language.Fixpoint.Types.Names.Symbol
-                      = Data.Interned.Internal.intern
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          Language.Fixpoint.Types.Names.$fInternedSymbol
-                          a1
-                            `cast`
-                          (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))
-                    } in
-                    Data.Text.$w$cget
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: Data.Text.Internal.Text)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       let {
-                         a4 :: Language.Fixpoint.Types.Names.Symbol
-                         = Data.Interned.Internal.intern
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fInternedSymbol
-                             a3
-                               `cast`
-                             (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))
-                       } in
-                       let {
-                         a5 :: (GHC.Generics.:*:)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "smName")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "smDC")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                                 t
-                           {- Strictness: m -}
-                         = GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "smName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "smDC")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                             @ t
-                             a2
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Names.Symbol>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "smName")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol>_R) <t>_N))
-                             a4
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Names.Symbol>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "smDC")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol>_R) <t>_N))
-                       } in
-                       Data.Binary.Class.$w$cget10
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         Language.Fixpoint.Types.Names.$fBinarySymbol
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a6 :: [Language.Fixpoint.Types.Names.Symbol])[OneShot] ->
-                          case i'2 of ww14 { Data.ByteString.Internal.PS ww15 ww16 ww17 ww18 ->
-                          Language.Fixpoint.Types.Refinements.$w$cget3
-                            @ r
-                            ww15
-                            ww16
-                            ww17
-                            ww18
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a7 :: Language.Fixpoint.Types.Refinements.Expr)[OneShot] ->
-                             w i'3
-                               (GHC.Generics.:*:
-                                  @ (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "smName")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "smDC")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           Language.Fixpoint.Types.Names.Symbol))
-                                  @ (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "smArgs")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "smBody")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           Language.Fixpoint.Types.Refinements.Expr))
-                                  @ t
-                                  a5
-                                  (GHC.Generics.:*:
-                                     @ (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "smArgs")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             [Language.Fixpoint.Types.Names.Symbol]))
-                                     @ (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "smBody")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             Language.Fixpoint.Types.Refinements.Expr))
-                                     @ t
-                                     a6
-                                       `cast`
-                                     (Trans
-                                          (Sym (GHC.Generics.N:K1[0]
-                                                    <GHC.Generics.R>_P
-                                                    <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                                    <t>_P))
-                                          (Sym (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "smArgs")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       [Language.Fixpoint.Types.Names.Symbol]>_R) <t>_N))
-                                     a7
-                                       `cast`
-                                     (Trans
-                                          (Sym (GHC.Generics.N:K1[0]
-                                                    <GHC.Generics.R>_P
-                                                    <Language.Fixpoint.Types.Refinements.Expr>_R
-                                                    <t>_P))
-                                          (Sym (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "smBody")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr>_R) <t>_N))))
-                                 `cast`
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.C>_P
-                                         <'GHC.Generics.MetaCons
-                                            "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                         <(GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "smName")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                Language.Fixpoint.Types.Names.Symbol)
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "smDC")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Names.Symbol))
-                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "smArgs")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0
-                                                                 [Language.Fixpoint.Types.Names.Symbol])
-                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "smBody")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Language.Fixpoint.Types.Refinements.Expr))>_R) <t>_N)) }) }) })) -}
-8980e9b833026a35a5883cab93e58543
-  $w$dGBinaryGet2 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         ((GHC.Generics.:*:)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "eqName")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "eqArgs")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "eqBody")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           ((GHC.Generics.:*:)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "eqName")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "eqArgs")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "eqBody")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0
-                                                     Language.Fixpoint.Types.Refinements.Expr))
-                              t)
-                           r) ->
-                 Data.Text.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.Text.Internal.Text)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Language.Fixpoint.Types.Names.Symbol
-                      = Data.Interned.Internal.intern
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          Language.Fixpoint.Types.Names.$fInternedSymbol
-                          a1
-                            `cast`
-                          (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))
-                    } in
-                    Data.Binary.Class.$w$cget10
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      Language.Fixpoint.Types.Names.$fBinarySymbol
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: [Language.Fixpoint.Types.Names.Symbol])[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Language.Fixpoint.Types.Refinements.$w$cget3
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a4 :: Language.Fixpoint.Types.Refinements.Expr)[OneShot] ->
-                          w i'2
-                            (GHC.Generics.:*:
-                               @ (GHC.Generics.M1
-                                    GHC.Generics.S
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "eqName")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                               @ (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "eqArgs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "eqBody")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.Expr))
-                               @ t
-                               a2
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Language.Fixpoint.Types.Names.Symbol>_R
-                                              <t>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "eqName")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Language.Fixpoint.Types.Names.Symbol>_R) <t>_N))
-                               (GHC.Generics.:*:
-                                  @ (GHC.Generics.M1
-                                       GHC.Generics.S
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "eqArgs")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol]))
-                                  @ (GHC.Generics.M1
-                                       GHC.Generics.S
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "eqBody")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr))
-                                  @ t
-                                  a3
-                                    `cast`
-                                  (Trans
-                                       (Sym (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                                 <t>_P))
-                                       (Sym (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "eqArgs")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [Language.Fixpoint.Types.Names.Symbol]>_R) <t>_N))
-                                  a4
-                                    `cast`
-                                  (Trans
-                                       (Sym (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Refinements.Expr>_R
-                                                 <t>_P))
-                                       (Sym (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "eqBody")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Refinements.Expr>_R) <t>_N))))) }) })) -}
-3c386b7ad571b7aea1be8cc5b18bf2e4
-  $w$dGBinaryGet3 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.S1
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "qName")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedStrict)
-                (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-              GHC.Generics.:*: GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "qParams")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    [(Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Sorts.Sort)]))
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "qBody")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "qPos")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              ((GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "qName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "qParams")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      [(Language.Fixpoint.Types.Names.Symbol,
-                                                        Language.Fixpoint.Types.Sorts.Sort)]))
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "qBody")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.Rec0
-                                                      Language.Fixpoint.Types.Refinements.Expr)
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "qPos")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.Rec0
-                                                                       Text.Parsec.Pos.SourcePos)))
-                              t)
-                           r) ->
-                 Data.Text.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.Text.Internal.Text)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Language.Fixpoint.Types.Names.Symbol
-                      = Data.Interned.Internal.intern
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          Language.Fixpoint.Types.Names.$fInternedSymbol
-                          a1
-                            `cast`
-                          (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))
-                    } in
-                    Data.Binary.Class.$w$cget10
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)
-                      Language.Fixpoint.Types.Refinements.$s$dmget_$s$fBinary(,)
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: [(Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort)])[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       let {
-                         a4 :: (GHC.Generics.:*:)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qName")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qParams")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0
-                                       [(Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort)]))
-                                 t
-                           {- Strictness: m -}
-                         = GHC.Generics.:*:
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "qName")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                             @ (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "qParams")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0
-                                     [(Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)]))
-                             @ t
-                             a2
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Names.Symbol>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "qName")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol>_R) <t>_N))
-                             a3
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <[(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                            <t>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "qParams")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [(Language.Fixpoint.Types.Names.Symbol,
-                                                 Language.Fixpoint.Types.Sorts.Sort)]>_R) <t>_N))
-                       } in
-                       Language.Fixpoint.Types.Refinements.$w$cget3
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a5 :: Language.Fixpoint.Types.Refinements.Expr)[OneShot] ->
-                          case i'2 of ww14 { Data.ByteString.Internal.PS ww15 ww16 ww17 ww18 ->
-                          Language.Fixpoint.Types.Spans.$w$cget1
-                            @ r
-                            ww15
-                            ww16
-                            ww17
-                            ww18
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a6 :: Text.Parsec.Pos.SourcePos)[OneShot] ->
-                             w i'3
-                               (GHC.Generics.:*:
-                                  @ (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "qName")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedStrict)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "qParams")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           [(Language.Fixpoint.Types.Names.Symbol,
-                                                             Language.Fixpoint.Types.Sorts.Sort)]))
-                                  @ (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "qBody")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceStrict
-                                          'GHC.Generics.DecidedStrict)
-                                       (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "qPos")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.Rec0
-                                                           Text.Parsec.Pos.SourcePos))
-                                  @ t
-                                  a4
-                                  (GHC.Generics.:*:
-                                     @ (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "qBody")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0
-                                             Language.Fixpoint.Types.Refinements.Expr))
-                                     @ (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "qPos")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos))
-                                     @ t
-                                     a5
-                                       `cast`
-                                     (Trans
-                                          (Sym (GHC.Generics.N:K1[0]
-                                                    <GHC.Generics.R>_P
-                                                    <Language.Fixpoint.Types.Refinements.Expr>_R
-                                                    <t>_P))
-                                          (Sym (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "qBody")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Refinements.Expr>_R) <t>_N))
-                                     a6
-                                       `cast`
-                                     (Trans
-                                          (Sym (GHC.Generics.N:K1[0]
-                                                    <GHC.Generics.R>_P
-                                                    <Text.Parsec.Pos.SourcePos>_R
-                                                    <t>_P))
-                                          (Sym (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "qPos")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Text.Parsec.Pos.SourcePos>_R) <t>_N))))
-                                 `cast`
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.C>_P
-                                         <'GHC.Generics.MetaCons
-                                            "Q" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                         <(GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "qName")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0
-                                                Language.Fixpoint.Types.Names.Symbol)
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "qParams")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0
-                                                                 [(Language.Fixpoint.Types.Names.Symbol,
-                                                                   Language.Fixpoint.Types.Sorts.Sort)]))
-                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "qBody")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Refinements.Expr)
-                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "qPos")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedStrict)
-                                                                               (GHC.Generics.Rec0
-                                                                                  Text.Parsec.Pos.SourcePos))>_R) <t>_N)) }) }) })) -}
-394d8d0e2835a19fadfbb3c7a58d0948
-  $w$dGBinaryPut ::
-    GHC.Generics.M1
-      GHC.Generics.S
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "smName")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.NoSourceStrictness
-         'GHC.Generics.DecidedLazy)
-      (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-      t
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "smDC")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-         t
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2,
-     Strictness: <L,1*U(A,U(U,U,1*U),A)><L,1*U(A,U(U,U,1*U),A)>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   (ww :: GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "smName")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                            t)
-                   (ww1 :: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "smDC")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                             t) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case ww1
-                                       `cast`
-                                     (Trans
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "smDC")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol>_R <t>_N)
-                                          (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Names.Symbol>_R
-                                               <t>_P)) of wild { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                                case ds2 of ww2 { Data.Text.Internal.Text ww3 ww4 ww5 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww3
-                                  ww4
-                                  ww5 } }) of ww2 { (#,#) ww3 ww4 ->
-                        ww4 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case ww
-                                       `cast`
-                                     (Trans
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "smName")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol>_R <t>_N)
-                                          (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Names.Symbol>_R
-                                               <t>_P)) of wild { Language.Fixpoint.Types.Names.S dt ds3 ds4 ->
-                                case ds3 of ww2 { Data.Text.Internal.Text ww3 ww4 ww5 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww3
-                                  ww4
-                                  ww5 } }) of ww2 { (#,#) ww3 ww4 ->
-                        ww4 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-daa8c4ff706c5a66fa7c551604b9460c
-  $w$dGBinaryPut1 ::
-    GHC.Generics.M1
-      GHC.Generics.S
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "aenvFuel")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.NoSourceStrictness
-         'GHC.Generics.DecidedLazy)
-      (GHC.Generics.Rec0
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-      t
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvExpand")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool))
-         t
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ @ t
-                   (ww :: GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvFuel")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.Rec0
-                               (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                            t)
-                   (ww1 :: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvExpand")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool))
-                             t) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_f1
-                                (Data.HashMap.Base.toList
-                                   @ GHC.Integer.Type.Integer
-                                   @ GHC.Types.Bool
-                                   ww1
-                                     `cast`
-                                   (Trans
-                                        (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvExpand")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   GHC.Types.Bool)>_R <t>_N)
-                                        (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Constraints.SubcId
-                                                GHC.Types.Bool>_R
-                                             <t>_P))))
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w' ->
-                        w' }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv_f
-                                (Data.HashMap.Base.toList
-                                   @ GHC.Integer.Type.Integer
-                                   @ GHC.Types.Int
-                                   ww
-                                     `cast`
-                                   (Trans
-                                        (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "aenvFuel")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Constraints.SubcId
-                                                   GHC.Types.Int)>_R <t>_N)
-                                        (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Constraints.SubcId
-                                                GHC.Types.Int>_R
-                                             <t>_P))))
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w3 ->
-                        w3 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-bcbe41718f812ffa02b29720fac8153b
-  $w$dGBinaryPut2 ::
-    GHC.Generics.M1
-      GHC.Generics.S
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "qName")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.SourceStrict
-         'GHC.Generics.DecidedStrict)
-      (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-      t
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "qParams")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0
-            [(Language.Fixpoint.Types.Names.Symbol,
-              Language.Fixpoint.Types.Sorts.Sort)])
-         t
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,1*U(A,U(U,U,1*U),A)><L,U>, Inline: [0],
-     Unfolding: (\ @ t
-                   (ww :: GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qName")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                            t)
-                   (ww1 :: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qParams")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0
-                                [(Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort)])
-                             t) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Constraints.$fBinaryQualifier3
-                                ww1
-                                  `cast`
-                                (Trans
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "qParams")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             [(Language.Fixpoint.Types.Names.Symbol,
-                                               Language.Fixpoint.Types.Sorts.Sort)]>_R <t>_N)
-                                     (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <[(Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                          <t>_P)))
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w' ->
-                        w' }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case ww
-                                       `cast`
-                                     (Trans
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "qName")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol>_R <t>_N)
-                                          (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Names.Symbol>_R
-                                               <t>_P)) of wild { Language.Fixpoint.Types.Names.S dt ds3 ds4 ->
-                                case ds3 of ww2 { Data.Text.Internal.Text ww3 ww4 ww5 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww3
-                                  ww4
-                                  ww5 } }) of ww2 { (#,#) ww3 ww4 ->
-                        ww4 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-d0bba630f3b906e1a6be731d97dae2e5
-  $w$dGNFData ::
-    GHC.Generics.S1
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "aenvSyms")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.SourceStrict
-         'GHC.Generics.DecidedStrict)
-      (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-      a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvEqs")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Equation])
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvSimpl")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvFuel")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "aenvExpand")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool))
-         a1
-    -> ()
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <S,1*U><S,1*U><S,1*U><S,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "aenvSyms")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                            a1)
-                   (ww1 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvEqs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Equation])
-                             a1)
-                   (ww2 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvSimpl")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 [Language.Fixpoint.Types.Constraints.Rewrite])
-                             a1)
-                   (ww3 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvFuel")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int))
-                             a1)
-                   (ww4 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvExpand")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool))
-                             a1) ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Names.Symbol>_N))
-                        ww
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSyms")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Names.Symbol]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Names.Symbol]>_R
-                                  <a1>_P)) of wild1 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Constraints.Equation
-                        Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv_$crnf2
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Constraints.Equation>_N))
-                        ww1
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvEqs")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Constraints.Equation]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Constraints.Equation]>_R
-                                  <a1>_P)) of wild2 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ Language.Fixpoint.Types.Constraints.Rewrite
-                        Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv_$crnf1
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <Language.Fixpoint.Types.Constraints.Rewrite>_N))
-                        ww2
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvSimpl")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [Language.Fixpoint.Types.Constraints.Rewrite]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Constraints.Rewrite]>_R
-                                  <a1>_P)) of wild3 { () ->
-                 case Data.HashMap.Base.$fNFDataHashMap_$crnf
-                        @ GHC.Integer.Type.Integer
-                        @ GHC.Types.Int
-                        Control.DeepSeq.$fNFDataInteger_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Integer.Type.Integer>_N))
-                        Control.DeepSeq.$fNFDataInt_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                        ww3
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "aenvFuel")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     (Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Constraints.SubcId
-                                        GHC.Types.Int)>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int>_R
-                                  <a1>_P)) of wild4 { () ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ GHC.Integer.Type.Integer
-                   @ GHC.Types.Bool
-                   Control.DeepSeq.$fNFDataInteger_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Integer.Type.Integer>_N))
-                   Control.DeepSeq.$fNFDataBool_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Bool>_N))
-                   ww4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "aenvExpand")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Constraints.SubcId
-                                   GHC.Types.Bool)>_R <a1>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool>_R
-                             <a1>_P)) } } } }) -}
-ed26558a2cb57ffef3a9cfb9e4d0a467
-  $w$dGNFData1 ::
-    GHC.Generics.S1
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "qName")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.SourceStrict
-         'GHC.Generics.DecidedStrict)
-      (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-      a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "qParams")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0
-            [(Language.Fixpoint.Types.Names.Symbol,
-              Language.Fixpoint.Types.Sorts.Sort)])
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "qBody")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-         a1
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> ()
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><S,1*U><S,1*U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "qName")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                            a1)
-                   (ww1 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qParams")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0
-                                [(Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort)])
-                             a1)
-                   (ww2 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "qBody")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                             a1)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case ww of tpl { DEFAULT ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort)
-                        Language.Fixpoint.Types.Constraints.$fNFDataGInfo2
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort)>_N))
-                        ww1
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "qParams")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R
-                                     [(Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[(Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                  <a1>_P)) of wild1 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww2
-                             `cast`
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.S>_P
-                                     <'GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "qBody")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict>_P
-                                     <GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Language.Fixpoint.Types.Refinements.Expr>_R <a1>_N)
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Refinements.Expr>_R
-                                     <a1>_P))) of wild2 { () ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ GHC.Types.Char
-                   Control.DeepSeq.$fNFDataChar_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                   ww3 } } }) -}
-d5a1abd997df1e7a66d9fa72cdccec69
-  $w$dNFData ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr] -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww1 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww) of wild1 { () ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Types.Refinements.$fNFDataExpr_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_N))
-                   ww1 }) -}
-cb07561383f71d5250ff828caf5ed4e5
-  $w$s$cfmap ::
-    (a -> b)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SubC b
-  {- Arity: 12,
-     Strictness: <L,C(U)><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-ed16f1ec59060d74f74ea827928489f9
-  $w$s$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Constraints.SubC ()) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           (Language.Fixpoint.Types.Constraints.SubC ()) r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ GHC.Types.Int
-                   Data.Binary.Class.$fBinaryInt
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [GHC.Types.Int])[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    let {
-                      a2 :: Data.HashMap.Base.HashMap GHC.Types.Int ()
-                      = Language.Fixpoint.Types.Environments.$fBinaryHashSet_go
-                          a1
-                          (Data.HashMap.Base.Empty @ GHC.Types.Int @ ())
-                    } in
-                    Language.Fixpoint.Types.Refinements.$w$cget6
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a3 :: Language.Fixpoint.Types.Refinements.SortedReft)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Language.Fixpoint.Types.Refinements.$w$cget6
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a4 :: Language.Fixpoint.Types.Refinements.SortedReft)[OneShot] ->
-                          case i'2 of ww14 { Data.ByteString.Internal.PS ww15 ww16 ww17 ww18 ->
-                          Data.Binary.Class.$w$cget12
-                            @ GHC.Integer.Type.Integer
-                            Data.Binary.Class.$fBinaryInteger
-                            @ r
-                            ww15
-                            ww16
-                            ww17
-                            ww18
-                            (\ (i'3 :: Data.ByteString.Internal.ByteString)
-                               (a5 :: GHC.Base.Maybe
-                                        Language.Fixpoint.Types.Constraints.SubcId)[OneShot] ->
-                             case i'3 of ww19 { Data.ByteString.Internal.PS ww20 ww21 ww22 ww23 ->
-                             Data.Binary.Class.$w$cget10
-                               @ GHC.Types.Int
-                               Data.Binary.Class.$fBinaryInt
-                               @ r
-                               ww20
-                               ww21
-                               ww22
-                               ww23
-                               (\ (i'4 :: Data.ByteString.Internal.ByteString)
-                                  (a6 :: [GHC.Types.Int])[OneShot] ->
-                                w i'4
-                                  (case a2 of nt { DEFAULT ->
-                                   case a3 of dt { Language.Fixpoint.Types.Refinements.RR ipv ipv1 ->
-                                   case a4 of dt1 { Language.Fixpoint.Types.Refinements.RR ipv2 ipv3 ->
-                                   case a5 of dt2 { DEFAULT ->
-                                   case a6 of dt3 { DEFAULT ->
-                                   Language.Fixpoint.Types.Constraints.SubC
-                                     @ ()
-                                     nt
-                                       `cast`
-                                     (Trans
-                                          (Sym (Data.HashSet.N:HashSet[0]
-                                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                                     dt
-                                     dt1
-                                     dt2
-                                     dt3
-                                     GHC.Tuple.() } } } } })) }) }) }) })) -}
-7c7d7a3b210b9a6512a14a1ac716dc9b
-  $w$s$cput ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 7,
-     Strictness: <S,U><L,U><L,U(1*U(A,U(U,U,1*U),A),1*U)><L,U><L,U(1*U(A,U(U,U,1*U),A),1*U)><S,U><S,U>,
-     Inline: [0] -}
-63871234582390f1f78fc823a46f6b04
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo34 :: GHC.Prim.Int#
-                             -> Data.Text.Internal.Text
-                             -> Data.Text.Internal.Text
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds1 { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo34 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case w nt
-                                        `cast`
-                                      (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                      w3
-                                      y of v' { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds2 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         v')
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds3 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds1 { (#,#) ipv3 ipv4 ->
-                          case w3 of v2 { DEFAULT ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s22 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    v2)
-                                 s22 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds2 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } } }
-                 } in
-                 $wgo34
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-768fc1bba33f50bee404584011eacb71
-  $w$sshiftSR ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Language.Fixpoint.Types.Sorts.Sort,
-          Language.Fixpoint.Types.Refinements.Reft #)
-  {- Arity: 8, Strictness: <L,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.ByteArray#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: Data.Text.Internal.Text)
-                   (ww6 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case Language.Fixpoint.Types.Names.$wintSymbol
-                        @ Language.Fixpoint.Types.Constraints.SubcId
-                        GHC.Show.$fShowInteger
-                        ww2
-                        ww3
-                        ww4
-                        w of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 dt1) of wild {
-                        GHC.Types.False
-                        -> (wild1,
-                            Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                              (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                 @ Language.Fixpoint.Types.Refinements.Expr
-                                 (GHC.Types.:
-                                    @ (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Refinements.Expr)
-                                    (Language.Fixpoint.Types.Names.S
-                                       ww1
-                                       (Data.Text.Internal.Text ww2 ww3 ww4)
-                                       ww5,
-                                     Language.Fixpoint.Types.Refinements.EVar wild1)
-                                    (GHC.Types.[]
-                                       @ (Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Refinements.Expr)))
-                                 (Data.HashMap.Base.Empty
-                                    @ Language.Fixpoint.Types.Names.Symbol
-                                    @ Language.Fixpoint.Types.Refinements.Expr))
-                                `cast`
-                              (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                              ww6)
-                        GHC.Types.True
-                        -> (Language.Fixpoint.Types.Names.S
-                              ww1
-                              (Data.Text.Internal.Text ww2 ww3 ww4)
-                              ww5,
-                            ww6) } of nt { (,) ipv ipv1 ->
-                 (# ww,
-                    nt
-                      `cast`
-                    (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) #) } }) -}
-7733fc1af1ae46e97cccc80dbbcd6ba7
-  $w$stoFixpoint ::
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId
-         (Language.Fixpoint.Types.Constraints.SubC ())
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC ())
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId ()
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 40,
-     Strictness: <L,U><L,1*U><L,U(U)><L,U(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,1*U><L,U><L,U><S,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-a8b01da324a25ae3afaae0461edab3c2
-  $w$sunsafeInsertWith ::
-    (v -> v -> v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 8,
-     Strictness: <L,C(C1(U))><L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0] -}
-d44916966670a93efe8d1ab62a0587ee
-  $waddIds ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> (# Language.Fixpoint.Types.Constraints.SubcId,
-          Language.Fixpoint.Types.Constraints.SubC a #)
-  {- Arity: 2,
-     Strictness: <L,U><L,1*U(U,U(U,U(U(U,U(U,U,U),U),U)),U(U,U(U(U,U(U,U,U),U),U)),A,U,U)>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 (# w,
-                    case w1 of wild { Language.Fixpoint.Types.Constraints.SubC ds1 ds2 ds3 ds4 ds5 ds6 ->
-                    case ds2 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                    case ww2
-                           `cast`
-                         (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                    case ds3 of ww6 { Language.Fixpoint.Types.Refinements.RR ww7 ww8 ->
-                    case ww8
-                           `cast`
-                         (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww9 { (,) ww10 ww11 ->
-                    case ww4 of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                    case ww14 of ww16 { Data.Text.Internal.Text ww17 ww18 ww19 ->
-                    case Language.Fixpoint.Types.Constraints.$w$sshiftSR
-                           w
-                           ww1
-                           ww13
-                           ww17
-                           ww18
-                           ww19
-                           ww15
-                           ww5 of ww20 { (#,#) ww21 ww22 ->
-                    case ww10 of ww23 { Language.Fixpoint.Types.Names.S ww24 ww25 ww26 ->
-                    case ww25 of ww27 { Data.Text.Internal.Text ww28 ww29 ww30 ->
-                    case Language.Fixpoint.Types.Constraints.$w$sshiftSR
-                           w
-                           ww7
-                           ww24
-                           ww28
-                           ww29
-                           ww30
-                           ww26
-                           ww11 of ww31 { (#,#) ww32 ww33 ->
-                    Language.Fixpoint.Types.Constraints.SubC
-                      @ a
-                      ds1
-                      (Language.Fixpoint.Types.Refinements.RR ww21 ww22)
-                      (Language.Fixpoint.Types.Refinements.RR ww32 ww33)
-                      (GHC.Base.Just @ Language.Fixpoint.Types.Constraints.SubcId w)
-                      ds5
-                      ds6 } } } } } } } } } } } #)) -}
-728e4789d261ad74d91b47016974e4c8
-  $wconvertFormat ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId
-      (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SimpC a
-  {- Arity: 12,
-     Strictness: <S,U><S,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId
-                            (Language.Fixpoint.Types.Constraints.SubC a))
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (Language.Fixpoint.Types.Constraints.WfC a))
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   (ww4 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww5 :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (ww6 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (ww7 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (ww8 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Environments.BindId a)
-                   (ww9 :: Language.Fixpoint.Types.Constraints.HOInfo)
-                   (ww10 :: [Language.Fixpoint.Types.Triggers.Triggered
-                               Language.Fixpoint.Types.Refinements.Expr])
-                   (ww11 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case Language.Fixpoint.Types.Constraints.convertFormat4
-                        @ a
-                        ww
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5
-                        ww6
-                        ww7
-                        ww8
-                        ww9
-                        ww10
-                        ww11
-                        ww of wild { Language.Fixpoint.Types.Constraints.FI ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                 case case ds1 of wild1 {
-                        Data.HashMap.Base.Empty
-                        -> Data.HashMap.Base.Empty
-                             @ GHC.Integer.Type.Integer
-                             @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                        Data.HashMap.Base.BitmapIndexed dt dt1
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      GHC.Integer.Type.Integer
-                                      (Language.Fixpoint.Types.Constraints.SubC a))
-                                 dt1
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.HashMap
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a)))
-                                  GHC.Prim.realWorld# of ds12 { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Constraints.convertFormat3
-                                  @ a
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SubC a))
-                                     dt1)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds13 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild3 { Data.HashMap.Array.MArray ds14 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.HashMap
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  ds14
-                                  ipv2 of ds15 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.BitmapIndexed
-                             @ GHC.Integer.Type.Integer
-                             @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                             dt
-                             ipv5 } } } }
-                        Data.HashMap.Base.Leaf dt dt1 dt2
-                        -> Data.HashMap.Base.Leaf
-                             @ GHC.Integer.Type.Integer
-                             @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                             dt
-                             dt1
-                             (case dt2 of wild2 { Language.Fixpoint.Types.Constraints.SubC ds12 ds13 ds14 ds15 ds16 ds17 ->
-                              case ds14 of wild3 { Language.Fixpoint.Types.Refinements.RR ds18 ds19 ->
-                              case ds19
-                                     `cast`
-                                   (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild4 { (,) ds20 p ->
-                              case p of dt4 { DEFAULT ->
-                              Language.Fixpoint.Types.Constraints.SimpC
-                                @ a
-                                ds12
-                                dt4
-                                ds15
-                                ds16
-                                ds17 } } } })
-                        Data.HashMap.Base.Full dt
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      GHC.Integer.Type.Integer
-                                      (Language.Fixpoint.Types.Constraints.SubC a))
-                                 dt
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.HashMap
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a)))
-                                  GHC.Prim.realWorld# of ds12 { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Constraints.convertFormat2
-                                  @ a
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SubC a))
-                                     dt)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.HashMap
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds13 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild3 { Data.HashMap.Array.MArray ds14 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.HashMap
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  ds14
-                                  ipv2 of ds15 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.Full
-                             @ GHC.Integer.Type.Integer
-                             @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                             ipv5 } } } }
-                        Data.HashMap.Base.Collision dt dt1
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      GHC.Integer.Type.Integer
-                                      (Language.Fixpoint.Types.Constraints.SubC a))
-                                 dt1
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.Leaf
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.Leaf
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a)))
-                                  GHC.Prim.realWorld# of ds12 { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Constraints.convertFormat1
-                                  @ a
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.Leaf
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SubC a))
-                                     dt1)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.Leaf
-                                          GHC.Integer.Type.Integer
-                                          (Language.Fixpoint.Types.Constraints.SimpC a))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds13 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild3 { Data.HashMap.Array.MArray ds14 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.Leaf
-                                       GHC.Integer.Type.Integer
-                                       (Language.Fixpoint.Types.Constraints.SimpC a))
-                                  ds14
-                                  ipv2 of ds15 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.Collision
-                             @ GHC.Integer.Type.Integer
-                             @ (Language.Fixpoint.Types.Constraints.SimpC a)
-                             dt
-                             ipv5 } } } } } of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.FI
-                   @ Language.Fixpoint.Types.Constraints.SimpC
-                   @ a
-                   dt
-                   ds2
-                   ds3
-                   ds4
-                   ds5
-                   ds6
-                   ds7
-                   ds8
-                   ds9
-                   ds10
-                   ds11 } }) -}
-7d654120d5abd9687556a67d1d10dbd3
-  $wgetEqBody ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(U,A,A)><L,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [Language.Fixpoint.Types.Names.Symbol])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ww2 of wild {
-                   DEFAULT
-                   -> GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Types.Refinements.PAnd ds1
-                   -> case ds1 of wild1 {
-                        [] -> GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr
-                        : ds2 ds3
-                        -> case ds2 of wild2 {
-                             DEFAULT
-                             -> GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr
-                             Language.Fixpoint.Types.Refinements.PAtom ds4 fxs e
-                             -> case ds4 of wild3 {
-                                  DEFAULT
-                                  -> GHC.Base.Nothing @ Language.Fixpoint.Types.Refinements.Expr
-                                  Language.Fixpoint.Types.Refinements.Eq
-                                  -> case Language.Fixpoint.Types.Refinements.$wgo1
-                                            (GHC.Types.[]
-                                               @ Language.Fixpoint.Types.Refinements.Expr)
-                                            fxs of ww3 { (#,#) ww4 ww5 ->
-                                     case ww4 of wild4 {
-                                       DEFAULT
-                                       -> GHC.Base.Nothing
-                                            @ Language.Fixpoint.Types.Refinements.Expr
-                                       Language.Fixpoint.Types.Refinements.EVar f1
-                                       -> case f1 of wild5 { Language.Fixpoint.Types.Names.S dt ds5 ds6 ->
-                                          case ww of wild6 { Language.Fixpoint.Types.Names.S dt1 ds7 ds8 ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# dt dt1) of wild7 {
-                                            GHC.Types.False
-                                            -> GHC.Base.Nothing
-                                                 @ Language.Fixpoint.Types.Refinements.Expr
-                                            GHC.Types.True
-                                            -> case GHC.Classes.$fEq[]_$c==
-                                                      @ Language.Fixpoint.Types.Refinements.Expr
-                                                      Language.Fixpoint.Types.Refinements.$fEqExpr
-                                                      ww5
-                                                      (GHC.Base.map
-                                                         @ Language.Fixpoint.Types.Names.Symbol
-                                                         @ Language.Fixpoint.Types.Refinements.Expr
-                                                         Language.Fixpoint.Types.Refinements.$WEVar
-                                                         ww1) of wild8 {
-                                                 GHC.Types.False
-                                                 -> GHC.Base.Nothing
-                                                      @ Language.Fixpoint.Types.Refinements.Expr
-                                                 GHC.Types.True
-                                                 -> GHC.Base.Just
-                                                      @ Language.Fixpoint.Types.Refinements.Expr
-                                                      e } } } } } } } } } }) -}
-1052549cc559e08aaa78c218edda206c
-  $wgo ::
-    [Language.Fixpoint.Types.Constraints.AxiomEnv]
-    -> (# [Language.Fixpoint.Types.Names.Symbol],
-          [Language.Fixpoint.Types.Constraints.Equation],
-          [Language.Fixpoint.Types.Constraints.Rewrite],
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-7a24b8d792e855ca223f976758f59930
-  $wgo1 ::
-    [Language.Fixpoint.Types.Constraints.HOInfo]
-    -> (# GHC.Types.Bool, GHC.Types.Bool #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-6559e343b046ea868c201622fd14d086
-  $wgo3 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-810c41ecdb001aaf3b156d2a0f56088a
-  $wksMember ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> GHC.Types.Bool
-  {- Arity: 5, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go11
-                        @ ()
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        0#
-                        w `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N)) of wild {
-                   GHC.Base.Nothing -> GHC.Types.False
-                   GHC.Base.Just ds4 -> GHC.Types.True } }) -}
-6f8eb1d9ebf9eee92920b2f8a310d36f
-  $wlvl3 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> a
-    -> [Language.Fixpoint.Types.Constraints.WfC a]
-  {- Arity: 5,
-     Strictness: <L,U><L,U><L,1*U(U,U(U,U,U),U(U,U,U))><S,U><L,U>,
-     Inline: [0] -}
-19c52f34bf6a5078f1060921dbd4055f
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-86349de5839228ac8b2a561783e829de
-  $wpoly_go2 ::
-    GHC.Integer.Type.Integer
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf GHC.Integer.Type.Integer v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U><S,U>,
-     Inline: [0] -}
-d9ef6941715cf9ac8c1ff363a5fd8061
-  $wpoly_go3 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-  {- Arity: 5, Strictness: <S,U><S,1*U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-755cc7205073b61775a0e68491f0a08f
-  $wpoly_go4 ::
-    GHC.Prim.Word#
-    -> GHC.Integer.Type.Integer
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap GHC.Integer.Type.Integer v #)
-  {- Arity: 6, Strictness: <L,U><S,1*U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-6c88e3f7d2f4881431c64ad305e22f34
-  $wqualifier ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          [(Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort)],
-          Language.Fixpoint.Types.Refinements.Expr,
-          Text.Parsec.Pos.SourcePos #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w2 :: Language.Fixpoint.Types.Names.Symbol)
-                   (w3 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (w4 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case Language.Fixpoint.Types.Constraints.qualifier6 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case w4 of dt1 { DEFAULT ->
-                 let {
-                   dt2 :: Text.Parsec.Pos.SourcePos
-                   = Text.Parsec.Pos.SourcePos ww ww1 ww2
-                 } in
-                 (# dt,
-                    GHC.Types.:
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort)
-                      (w2, w3)
-                      (Data.Maybe.catMaybes1
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)
-                         (GHC.List.zipWith
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            @ GHC.Integer.Type.Integer
-                            @ (GHC.Base.Maybe
-                                 (Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort))
-                            (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                               (i :: GHC.Integer.Type.Integer)[OneShot] ->
-                             case x of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                             case ww5 of ww7 { Data.Text.Internal.Text ww8 ww9 ww10 ->
-                             case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                                 -> GHC.Prim.Int#
-                                                                                                                                 -> GHC.Prim.Int#
-                                                                                                                                 -> GHC.Prim.Int#
-                                                                                                                                 -> GHC.Prim.State#
-                                                                                                                                      GHC.Prim.RealWorld
-                                                                                                                                 -> (# GHC.Prim.State#
-                                                                                                                                         GHC.Prim.RealWorld,
-                                                                                                                                       GHC.Prim.Int# #)}
-                                    ww8
-                                    (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                                    (GHC.Prim.uncheckedIShiftL# ww10 1#)
-                                    -2578643520546668380#
-                                    GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                             case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                    @ Language.Fixpoint.Types.Sorts.Sort
-                                    (GHC.Prim.int2Word# ds2)
-                                    ww4
-                                    0#
-                                    w1
-                                      `cast`
-                                    (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of wild {
-                               GHC.Base.Nothing
-                               -> case Language.Fixpoint.Types.Environments.$wpoly_go12
-                                         @ Language.Fixpoint.Types.Sorts.Sort
-                                         (GHC.Prim.int2Word# ds2)
-                                         ww4
-                                         0#
-                                         w `cast`
-                                         (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of wild2 {
-                                    GHC.Base.Nothing
-                                    -> GHC.Base.Just
-                                         @ (Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Sorts.Sort)
-                                         (ww3,
-                                          case Language.Fixpoint.Types.Constraints.qualifier3
-                                                 i of dt3 { Language.Fixpoint.Types.Names.S ipv3 ipv4 ipv5 ->
-                                          Language.Fixpoint.Types.Sorts.$wfTyconSort
-                                            dt2
-                                            dt2
-                                            ipv3
-                                            ipv4
-                                            ipv5
-                                            Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 })
-                                    GHC.Base.Just ds4
-                                    -> GHC.Base.Nothing
-                                         @ (Language.Fixpoint.Types.Names.Symbol,
-                                            Language.Fixpoint.Types.Sorts.Sort) }
-                               GHC.Base.Just t
-                               -> GHC.Base.Just
-                                    @ (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Sorts.Sort)
-                                    (ww3, t) } } } })
-                            (Data.OldList.deleteBy
-                               @ Language.Fixpoint.Types.Names.Symbol
-                               Language.Fixpoint.Types.Names.$fEqSymbol_$c==
-                               w2
-                               (Data.OldList.nubBy
-                                  @ Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Names.$fEqSymbol_$c==
-                                  (Language.Fixpoint.Types.Substitutions.$fSubableReft_go dt1)))
-                            Language.Fixpoint.Types.Constraints.qualifier1)),
-                    dt1, dt2 #) } }) -}
-9b0e7fe67dbe0ef90e223c89d0aea700
-  $wsubC ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> [Language.Fixpoint.Types.Constraints.SubC a]
-  {- Arity: 8,
-     Strictness: <L,U><L,1*U(U,U(U(U,U,U),U))><S,U><L,U><S,1*U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w2 :: GHC.Base.Maybe GHC.Integer.Type.Integer)
-                   (w3 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (w4 :: a) ->
-                 let {
-                   vv' :: Language.Fixpoint.Types.Names.Symbol
-                   = case w2 of wild {
-                       GHC.Base.Nothing -> Language.Fixpoint.Types.Names.vvCon
-                       GHC.Base.Just i -> Language.Fixpoint.Types.Names.vv wild }
-                 } in
-                 let {
-                   sr1' :: Language.Fixpoint.Types.Refinements.SortedReft
-                   = case w1 of wild { Language.Fixpoint.Types.Refinements.RR t1 r1 ->
-                     case r1
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) v ras ->
-                     case v of wild2 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                     case vv' of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                     case case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# dt dt1) of wild4 {
-                            GHC.Types.False
-                            -> (wild3,
-                                Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                  (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                     @ Language.Fixpoint.Types.Refinements.Expr
-                                     (GHC.Types.:
-                                        @ (Language.Fixpoint.Types.Names.Symbol,
-                                           Language.Fixpoint.Types.Refinements.Expr)
-                                        (wild2, Language.Fixpoint.Types.Refinements.EVar wild3)
-                                        (GHC.Types.[]
-                                           @ (Language.Fixpoint.Types.Names.Symbol,
-                                              Language.Fixpoint.Types.Refinements.Expr)))
-                                     (Data.HashMap.Base.Empty
-                                        @ Language.Fixpoint.Types.Names.Symbol
-                                        @ Language.Fixpoint.Types.Refinements.Expr))
-                                    `cast`
-                                  (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                  ras)
-                            GHC.Types.True -> wild1 } of nt { (,) ipv ipv1 ->
-                     Language.Fixpoint.Types.Refinements.RR
-                       t1
-                       nt
-                         `cast`
-                       (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } } } } }
-                 } in
-                 letrec {
-                   go49 :: [Language.Fixpoint.Types.Refinements.Reft]
-                           -> [Language.Fixpoint.Types.Constraints.SubC a]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds1 :: [Language.Fixpoint.Types.Refinements.Reft]) ->
-                     case ds1 of wild {
-                       [] -> GHC.Types.[] @ (Language.Fixpoint.Types.Constraints.SubC a)
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Language.Fixpoint.Types.Constraints.SubC a)
-                            (case w `cast`
-                                  (Trans
-                                       (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                       (Data.HashSet.N:HashSet[0]
-                                            <Language.Fixpoint.Types.Environments.BindId>_N)) of nt { DEFAULT ->
-                             case sr1' of dt { Language.Fixpoint.Types.Refinements.RR ipv ipv1 ->
-                             case y `cast`
-                                  (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                             case ww4 of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                             case vv' of ww10 { Language.Fixpoint.Types.Names.S ww11 ww12 ww13 ->
-                             case case GHC.Prim.tagToEnum#
-                                         @ GHC.Types.Bool
-                                         (GHC.Prim.==# ww7 ww11) of wild1 {
-                                    GHC.Types.False
-                                    -> (ww10,
-                                        Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                          (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                             @ Language.Fixpoint.Types.Refinements.Expr
-                                             (GHC.Types.:
-                                                @ (Language.Fixpoint.Types.Names.Symbol,
-                                                   Language.Fixpoint.Types.Refinements.Expr)
-                                                (ww6, Language.Fixpoint.Types.Refinements.EVar ww10)
-                                                (GHC.Types.[]
-                                                   @ (Language.Fixpoint.Types.Names.Symbol,
-                                                      Language.Fixpoint.Types.Refinements.Expr)))
-                                             (Data.HashMap.Base.Empty
-                                                @ Language.Fixpoint.Types.Names.Symbol
-                                                @ Language.Fixpoint.Types.Refinements.Expr))
-                                            `cast`
-                                          (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                          ww5)
-                                    GHC.Types.True -> ww3 } of nt1 { (,) ipv2 ipv3 ->
-                             case w2 of dt1 { DEFAULT ->
-                             case w3 of dt2 { DEFAULT ->
-                             case w4 of dt3 { DEFAULT ->
-                             Language.Fixpoint.Types.Constraints.SubC
-                               @ a
-                               nt
-                                 `cast`
-                               (Trans
-                                    (Sym (Data.HashSet.N:HashSet[0]
-                                              <Language.Fixpoint.Types.Environments.BindId>_N))
-                                    (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                               dt
-                               (Language.Fixpoint.Types.Refinements.RR
-                                  ww
-                                  nt1 `cast` (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])))
-                               dt1
-                               dt2
-                               dt3 } } } } } } } } })
-                            (go49 ys) }
-                 } in
-                 go49
-                   (Language.Fixpoint.Types.Refinements.$wreftConjuncts ww1 ww2)) -}
-809cfe2fc0443e176111834de7414304
-  $wtoFixpoint ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a)) =>
-    GHC.IO.FilePath
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> Language.Fixpoint.Types.Config.SMTSolver
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Config.Eliminate
-    -> GHC.Base.Maybe GHC.Types.Int
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 42,
-     Strictness: <L,U(C(U),A)><L,1*U(1*U,A)><L,U><L,1*U><L,U(U)><L,U(U)><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,1*U><L,U><L,U><S,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U>,
-     Inline: [0] -}
-1052549cc559e08aaa78c218edda206c
-  data AxiomEnv
-    = AEnv {aenvSyms :: ![Language.Fixpoint.Types.Names.Symbol],
-            aenvEqs :: ![Language.Fixpoint.Types.Constraints.Equation],
-            aenvSimpl :: ![Language.Fixpoint.Types.Constraints.Rewrite],
-            aenvFuel :: Data.HashMap.Base.HashMap
-                          Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int,
-            aenvExpand :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool}
-6fa1753970c5ab8b1ce3d107cde4096f
-  data Equation
-    = Equ {eqName :: Language.Fixpoint.Types.Names.Symbol,
-           eqArgs :: [Language.Fixpoint.Types.Names.Symbol],
-           eqBody :: Language.Fixpoint.Types.Refinements.Expr}
-beb16efa76d83917c7875fd2371988e0
-  type FInfo a =
-    Language.Fixpoint.Types.Constraints.GInfo
-      Language.Fixpoint.Types.Constraints.SubC a
-528e5765b1592890448e36f31279cea6
-  type role FInfoWithOpts nominal
-  data FInfoWithOpts a
-    = FIO {fioFI :: Language.Fixpoint.Types.Constraints.FInfo a,
-           fioOpts :: [GHC.Base.String]}
-5b4735b3e3cc0ca65b03d3255d2f3f6c
-  type FixSolution =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      Language.Fixpoint.Types.Refinements.Expr
-1de0e7882069f13222c6effa6f71fad5
-  newtype GFixSol e
-    = GSol (Data.HashMap.Base.HashMap
-              Language.Fixpoint.Types.Refinements.KVar (e, [e]))
-1de0e7882069f13222c6effa6f71fad5
-  type GFixSolution =
-    Language.Fixpoint.Types.Constraints.GFixSol
-      Language.Fixpoint.Types.Refinements.Expr
-1052549cc559e08aaa78c218edda206c
-  type role GInfo representational nominal
-  data GInfo (c :: * -> *) a
-    = FI {cm :: !Data.HashMap.Base.HashMap
-                   Language.Fixpoint.Types.Constraints.SubcId (c a),
-          ws :: !Data.HashMap.Base.HashMap
-                   Language.Fixpoint.Types.Refinements.KVar
-                   (Language.Fixpoint.Types.Constraints.WfC a),
-          bs :: !Language.Fixpoint.Types.Environments.BindEnv,
-          gLits :: !Language.Fixpoint.Types.Environments.SEnv
-                      Language.Fixpoint.Types.Sorts.Sort,
-          dLits :: !Language.Fixpoint.Types.Environments.SEnv
-                      Language.Fixpoint.Types.Sorts.Sort,
-          kuts :: !Language.Fixpoint.Types.Constraints.Kuts,
-          quals :: ![Language.Fixpoint.Types.Constraints.Qualifier],
-          bindInfo :: !Data.HashMap.Base.HashMap
-                         Language.Fixpoint.Types.Environments.BindId a,
-          hoInfo :: !Language.Fixpoint.Types.Constraints.HOInfo,
-          asserts :: ![Language.Fixpoint.Types.Triggers.Triggered
-                         Language.Fixpoint.Types.Refinements.Expr],
-          ae :: Language.Fixpoint.Types.Constraints.AxiomEnv}
-7a24b8d792e855ca223f976758f59930
-  data HOInfo
-    = HOI {hoBinds :: GHC.Types.Bool, hoQuals :: GHC.Types.Bool}
-10aef948b5229216dcc343e2e00963d2
-  newtype Kuts
-    = KS {ksVars :: Data.HashSet.HashSet
-                      Language.Fixpoint.Types.Refinements.KVar}
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  data Qualifier
-    = Q {qName :: !Language.Fixpoint.Types.Names.Symbol,
-         qParams :: [(Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Sorts.Sort)],
-         qBody :: !Language.Fixpoint.Types.Refinements.Expr,
-         qPos :: !Text.Parsec.Pos.SourcePos}
-1052549cc559e08aaa78c218edda206c
-  axiom Rep_AxiomEnv::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.AxiomEnv
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "AxiomEnv"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "AEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "aenvSyms")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.SourceStrict
-                      'GHC.Generics.DecidedStrict)
-                   (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                 GHC.Generics.:*: GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "aenvEqs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       [Language.Fixpoint.Types.Constraints.Equation]))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "aenvSimpl")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       [Language.Fixpoint.Types.Constraints.Rewrite])
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "aenvFuel")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0
-                                                         (Data.HashMap.Base.HashMap
-                                                            Language.Fixpoint.Types.Constraints.SubcId
-                                                            GHC.Types.Int))
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just
-                                                                             "aenvExpand")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.NoSourceStrictness
-                                                                          'GHC.Generics.DecidedLazy)
-                                                                       (GHC.Generics.Rec0
-                                                                          (Data.HashMap.Base.HashMap
-                                                                             Language.Fixpoint.Types.Constraints.SubcId
-                                                                             GHC.Types.Bool))))))
-6fa1753970c5ab8b1ce3d107cde4096f
-  axiom Rep_Equation::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Equation
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Equation"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Equ" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "eqName")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "eqArgs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "eqBody")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.Expr))))
-1de0e7882069f13222c6effa6f71fad5
-  axiom Rep_GFixSol::
-    [e]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.GFixSol e)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "GFixSol"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "GSol" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar (e, [e])))))
-1052549cc559e08aaa78c218edda206c
-  axiom Rep_GInfo::
-    [(c :: * -> *), a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.GInfo c a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "GInfo"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "FI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (((GHC.Generics.S1
-                    ('GHC.Generics.MetaSel
-                       ('GHC.Base.Just "cm")
-                       'GHC.Generics.NoSourceUnpackedness
-                       'GHC.Generics.SourceStrict
-                       'GHC.Generics.DecidedStrict)
-                    (GHC.Generics.Rec0
-                       (Data.HashMap.Base.HashMap
-                          Language.Fixpoint.Types.Constraints.SubcId (c a)))
-                  GHC.Generics.:*: GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "ws")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0
-                                        (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar
-                                           (Language.Fixpoint.Types.Constraints.WfC a))))
-                 GHC.Generics.:*: (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "bs")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0
-                                        Language.Fixpoint.Types.Environments.BindEnv)
-                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "gLits")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          (Language.Fixpoint.Types.Environments.SEnv
-                                                             Language.Fixpoint.Types.Sorts.Sort))
-                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           ('GHC.Base.Just "dLits")
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           (Language.Fixpoint.Types.Environments.SEnv
-                                                                              Language.Fixpoint.Types.Sorts.Sort)))))
-                GHC.Generics.:*: ((GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "kuts")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0 Language.Fixpoint.Types.Constraints.Kuts)
-                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "quals")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          [Language.Fixpoint.Types.Constraints.Qualifier])
-                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           ('GHC.Base.Just
-                                                                              "bindInfo")
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           (Data.HashMap.Base.HashMap
-                                                                              Language.Fixpoint.Types.Environments.BindId
-                                                                              a))))
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "hoInfo")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Constraints.HOInfo)
-                                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           ('GHC.Base.Just
-                                                                              "asserts")
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           [Language.Fixpoint.Types.Triggers.Triggered
-                                                                              Language.Fixpoint.Types.Refinements.Expr])
-                                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                                         ('GHC.Generics.MetaSel
-                                                                                            ('GHC.Base.Just
-                                                                                               "ae")
-                                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                                            'GHC.Generics.NoSourceStrictness
-                                                                                            'GHC.Generics.DecidedLazy)
-                                                                                         (GHC.Generics.Rec0
-                                                                                            Language.Fixpoint.Types.Constraints.AxiomEnv))))))
-7a24b8d792e855ca223f976758f59930
-  axiom Rep_HOInfo::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.HOInfo
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "HOInfo"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "HOI" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "hoBinds")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 GHC.Types.Bool)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "hoQuals")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Types.Bool)))
-10aef948b5229216dcc343e2e00963d2
-  axiom Rep_Kuts::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Kuts
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Kuts"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "KS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "ksVars")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar))))
-50ebd3aab1ef1df3934f91be3cbdc9a8
-  axiom Rep_Qualifier::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Qualifier
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Qualifier"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "Q" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "qName")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.SourceStrict
-                      'GHC.Generics.DecidedStrict)
-                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                 GHC.Generics.:*: GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qParams")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0
-                                       [(Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort)]))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "qBody")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "qPos")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Text.Parsec.Pos.SourcePos))))
-1de0e7882069f13222c6effa6f71fad5
-  axiom Rep_Result::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.Result a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Result"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Result" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "resStatus")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 (Language.Fixpoint.Types.Errors.FixResult a))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "resSolution")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       Language.Fixpoint.Types.Constraints.FixSolution)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "gresSolution")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Constraints.GFixSolution))))
-a70f5553877272321cc8f3b254d9abac
-  axiom Rep_Rewrite::
-      GHC.Generics.Rep Language.Fixpoint.Types.Constraints.Rewrite
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Rewrite"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "SMeasure" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "smName")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.NoSourceStrictness
-                      'GHC.Generics.DecidedLazy)
-                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)
-                 GHC.Generics.:*: GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "smDC")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "smArgs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [Language.Fixpoint.Types.Names.Symbol])
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "smBody")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.Expr))))
-422c859b64e365b196f8fd06ad8cb7f1
-  axiom Rep_SimpC::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SimpC a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SimpC"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "SimpC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "_cenv")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.SourceStrict
-                      'GHC.Generics.DecidedStrict)
-                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.IBindEnv)
-                 GHC.Generics.:*: GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "_crhs")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "_cid")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 (GHC.Base.Maybe GHC.Integer.Type.Integer))
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "_ctag")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Constraints.Tag)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "_cinfo")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.Rec0 a)))))
-ed16f1ec59060d74f74ea827928489f9
-  axiom Rep_SubC::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.SubC a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SubC"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "SubC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "_senv")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.SourceStrict
-                      'GHC.Generics.DecidedStrict)
-                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.IBindEnv)
-                 GHC.Generics.:*: (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "slhs")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0
-                                        Language.Fixpoint.Types.Refinements.SortedReft)
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "srhs")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Refinements.SortedReft)))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "_sid")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       (GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId))
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "_stag")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Constraints.Tag)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "_sinfo")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.Rec0 a)))))
-50354839b899806bfddb7dd9a816596d
-  axiom Rep_WfC::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Constraints.WfC a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "WfC"
-               "Language.Fixpoint.Types.Constraints"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "WfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "wenv")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.IBindEnv)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "wrft")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0
-                                       (Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Sorts.Sort,
-                                        Language.Fixpoint.Types.Refinements.KVar))
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "winfo")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 a)))
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "GWfC" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                ((GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "wenv")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       Language.Fixpoint.Types.Environments.IBindEnv)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "wrft")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        (Language.Fixpoint.Types.Names.Symbol,
-                                                         Language.Fixpoint.Types.Sorts.Sort,
-                                                         Language.Fixpoint.Types.Refinements.KVar)))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "winfo")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 a)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just "wexpr")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Refinements.Expr))))
-1de0e7882069f13222c6effa6f71fad5
-  data Result a
-    = Result {resStatus :: !Language.Fixpoint.Types.Errors.FixResult a,
-              resSolution :: !Language.Fixpoint.Types.Constraints.FixSolution,
-              gresSolution :: !Language.Fixpoint.Types.Constraints.GFixSolution}
-a70f5553877272321cc8f3b254d9abac
-  data Rewrite
-    = SMeasure {smName :: Language.Fixpoint.Types.Names.Symbol,
-                smDC :: Language.Fixpoint.Types.Names.Symbol,
-                smArgs :: [Language.Fixpoint.Types.Names.Symbol],
-                smBody :: Language.Fixpoint.Types.Refinements.Expr}
-1052549cc559e08aaa78c218edda206c
-  type SInfo a =
-    Language.Fixpoint.Types.Constraints.GInfo
-      Language.Fixpoint.Types.Constraints.SimpC a
-422c859b64e365b196f8fd06ad8cb7f1
-  data SimpC a
-    = SimpC {_cenv :: !Language.Fixpoint.Types.Environments.IBindEnv,
-             _crhs :: !Language.Fixpoint.Types.Refinements.Expr,
-             _cid :: !GHC.Base.Maybe GHC.Integer.Type.Integer,
-             _ctag :: !Language.Fixpoint.Types.Constraints.Tag,
-             _cinfo :: !a}
-f1f0ec730b81f80dd9bee7952949bcd8
-  type Solver a =
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-ed16f1ec59060d74f74ea827928489f9
-  data SubC a
-    = SubC {_senv :: !Language.Fixpoint.Types.Environments.IBindEnv,
-            slhs :: !Language.Fixpoint.Types.Refinements.SortedReft,
-            srhs :: !Language.Fixpoint.Types.Refinements.SortedReft,
-            _sid :: !GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId,
-            _stag :: !Language.Fixpoint.Types.Constraints.Tag,
-            _sinfo :: !a}
-cdcef876bb053a43ceafb5cadfe2311f
-  type SubcId = GHC.Integer.Type.Integer
-a9aceec288db7dfc6dfc1b70bc4a8f49
-  type Tag = [GHC.Types.Int]
-710144f9da9a9e879219a27a9c6dc76f
-  class TaggedC (c :: * -> *) a where
-    senv :: c a -> Language.Fixpoint.Types.Environments.IBindEnv
-    sid :: c a -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    stag :: c a -> Language.Fixpoint.Types.Constraints.Tag
-    sinfo :: c a -> a
-    clhs :: Language.Fixpoint.Types.Environments.BindEnv
-            -> c a
-            -> [(Language.Fixpoint.Types.Names.Symbol,
-                 Language.Fixpoint.Types.Refinements.SortedReft)]
-    crhs :: c a -> Language.Fixpoint.Types.Refinements.Expr
-    {-# MINIMAL senv, sid, stag, sinfo, clhs, crhs #-}
-50354839b899806bfddb7dd9a816596d
-  data WfC a
-    = WfC {wenv :: !Language.Fixpoint.Types.Environments.IBindEnv,
-           wrft :: (Language.Fixpoint.Types.Names.Symbol,
-                    Language.Fixpoint.Types.Sorts.Sort,
-                    Language.Fixpoint.Types.Refinements.KVar),
-           winfo :: !a}
-    | GWfC {wenv :: !Language.Fixpoint.Types.Environments.IBindEnv,
-            wrft :: !(Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Sorts.Sort,
-                      Language.Fixpoint.Types.Refinements.KVar),
-            winfo :: !a,
-            wexpr :: !Language.Fixpoint.Types.Refinements.Expr}
-16908eec2a5fa12185cf628430140e85
-  _cenv ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Constraints.SimpC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLLL),1*U(U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                 ds2 }) -}
-6f1612cbabde521428795682b135e436
-  _cid ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-  RecSel Left Language.Fixpoint.Types.Constraints.SimpC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                 ds4 }) -}
-4b490e1ab2bd8043090f4d15729445ed
-  _cinfo :: Language.Fixpoint.Types.Constraints.SimpC a -> a
-  RecSel Left Language.Fixpoint.Types.Constraints.SimpC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLLS),1*U(A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                 ds6 }) -}
-746ca2f97e781cb1955fd7640112b9a8
-  _crhs ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Constraints.SimpC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLLL),1*U(A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                 ds3 }) -}
-89246fb028c6ad39022fd44f2a538952
-  _ctag ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Constraints.Tag
-  RecSel Left Language.Fixpoint.Types.Constraints.SimpC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLSL),1*U(A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SimpC ds2 ds3 ds4 ds5 ds6 ->
-                 ds5 }) -}
-0d2f28c68394e2b5322a67872d5fbd0c
-  _senv ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLL),1*U(U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds2 }) -}
-bd513f5dff6833141715980cfe142079
-  _sid ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Constraints.SubcId
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLL),1*U(A,A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds5 }) -}
-ed16f1ec59060d74f74ea827928489f9
-  _sinfo :: Language.Fixpoint.Types.Constraints.SubC a -> a
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLS),1*U(A,A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds7 }) -}
-a24ad0292c6215efa25d218f8d2bd40c
-  _stag ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.Tag
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSL),1*U(A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds6 }) -}
-8e356726e0af03711c6346c43ce0c648
-  addIds ::
-    [Language.Fixpoint.Types.Constraints.SubC a]
-    -> [(GHC.Integer.Type.Integer,
-         Language.Fixpoint.Types.Constraints.SubC a)]
-  {- Arity: 1,
-     Unfolding: (\ @ a ->
-                 GHC.List.zipWith
-                   @ Language.Fixpoint.Types.Constraints.SubcId
-                   @ (Language.Fixpoint.Types.Constraints.SubC a)
-                   @ (Language.Fixpoint.Types.Constraints.SubcId,
-                      Language.Fixpoint.Types.Constraints.SubC a)
-                   (Language.Fixpoint.Types.Constraints.addIds3 @ a)
-                   Language.Fixpoint.Types.Constraints.addIds1) -}
-6216c5cef298e8375463896169afb461
-  addIds1 :: [GHC.Integer.Type.Integer]
-  {- Unfolding: (case GHC.Enum.$wenumDeltaInteger
-                        Language.Fixpoint.Types.Constraints.addIds2
-                        Language.Fixpoint.Types.Constraints.addIds2 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ GHC.Integer.Type.Integer ww1 ww2 }) -}
-891894193d7bf9dc84b969e7009ec8db
-  addIds2 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-acd2d8699c7b7174ef67ac166fd57b18
-  addIds3 ::
-    Language.Fixpoint.Types.Constraints.SubcId
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> (Language.Fixpoint.Types.Constraints.SubcId,
-        Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 2,
-     Strictness: <L,U><L,1*U(U,U(U,U(U(U,U(U,U,U),U),U)),U(U,U(U(U,U(U,U,U),U),U)),A,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SubcId)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case Language.Fixpoint.Types.Constraints.$waddIds
-                        @ a
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-50f1657d4c382caff75b8f74600f41f8
-  ae ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLLS),1*U(A,A,A,A,A,A,A,A,A,A,1*U(U,U,U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds12 }) -}
-9a91de805584745024b97f74d5f10562
-  aenvEqs ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> [Language.Fixpoint.Types.Constraints.Equation]
-  RecSel Left Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLLL),1*U(A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.AEnv ds2 ds3 ds4 ds5 ds6 ->
-                 ds3 }) -}
-d65af654b2bb6c209de41a806ef4dcfb
-  aenvExpand ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLLS),1*U(A,A,A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.AEnv ds2 ds3 ds4 ds5 ds6 ->
-                 ds6 }) -}
-59265deee7cf350635d917f4bb7c4946
-  aenvFuel ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLSL),1*U(A,A,A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.AEnv ds2 ds3 ds4 ds5 ds6 ->
-                 ds5 }) -}
-7f242410292911109a7a896bcd5b58f3
-  aenvSimpl ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> [Language.Fixpoint.Types.Constraints.Rewrite]
-  RecSel Left Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.AEnv ds2 ds3 ds4 ds5 ds6 ->
-                 ds4 }) -}
-20a12db9277248d4c1280e21963c6fb5
-  aenvSyms ::
-    Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  RecSel Left Language.Fixpoint.Types.Constraints.AxiomEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLLL),1*U(U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.AEnv ds2 ds3 ds4 ds5 ds6 ->
-                 ds2 }) -}
-f7bd529e6f3b10a3a0b6d23b100cc12b
-  allowHO ::
-    Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLS(SL)LL),1*U(A,A,A,A,A,A,A,A,U(1*U,A),A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (x :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case x of wild { Language.Fixpoint.Types.Constraints.FI ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                 case ds9 of wild1 { Language.Fixpoint.Types.Constraints.HOI ds12 ds13 ->
-                 ds12 } }) -}
-204044004a0c8fab67b4c88b81d03cf5
-  allowHOquals ::
-    Language.Fixpoint.Types.Constraints.GInfo c a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLS(LS)LL),1*U(A,A,A,A,A,A,A,A,U(A,1*U),A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (x :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case x of wild { Language.Fixpoint.Types.Constraints.FI ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ->
-                 case ds9 of wild1 { Language.Fixpoint.Types.Constraints.HOI ds12 ds13 ->
-                 ds13 } }) -}
-39bbdb6193c8af948ed932b55699661b
-  asserts ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLLSL),1*U(A,A,A,A,A,A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds11 }) -}
-56820faf0d991198f94743edf7c6674d
-  bindInfo ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLSLLL),1*U(A,A,A,A,A,A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds9 }) -}
-d267a9df5f80275fb39b5fc05f60d3f9
-  bs ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLLLLLLL),1*U(A,A,U(U,U),A,A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds4 }) -}
-e96439d8256cfec0e43dbb4c8b7f9965
-  cm ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Constraints.SubcId (c a)
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLLLLLLL),1*U(U,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds2 }) -}
-0d632bd0cb2078bdad46978f95df8983
-  convertFormat ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Constraints.FInfo a
-    -> Language.Fixpoint.Types.Constraints.SInfo a
-  {- Arity: 2,
-     Strictness: <L,A><S(SSSSSSSSSSL),U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Constraints.FInfo a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 case ww3 of ww12 { Language.Fixpoint.Types.Environments.BE ww13 ww14 ->
-                 Language.Fixpoint.Types.Constraints.$wconvertFormat
-                   @ a
-                   ww1
-                   ww2
-                   ww13
-                   ww14
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 } }) -}
-b7b56bdafc42bf4f11f5aa018959f5af
-  convertFormat1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.Leaf
-            GHC.Integer.Type.Integer
-            (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.Leaf
-               GHC.Integer.Type.Integer
-               (Language.Fixpoint.Types.Constraints.SimpC a)) #)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(U)><L,U(U)><S,U><S,U><S,U>, Inline: [0] -}
-0f9a6b5da0712197eff4794a931f4ac7
-  convertFormat2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            GHC.Integer.Type.Integer
-            (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               GHC.Integer.Type.Integer
-               (Language.Fixpoint.Types.Constraints.SimpC a)) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-86fffffcf8bd5ae19f67741c345d86bf
-  convertFormat3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            GHC.Integer.Type.Integer
-            (Language.Fixpoint.Types.Constraints.SimpC a))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               GHC.Integer.Type.Integer
-               (Language.Fixpoint.Types.Constraints.SimpC a)) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-1009ca2c63085327b15ff8d61d802e84
-  convertFormat4 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId
-      (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-  {- Arity: 13,
-     Strictness: <S,U><S,U><L,U><L,U><S,U><S,U><S,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0] -}
-520fb0647a01216c687192a56bf631fa
-  dLits ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSLLLLLL),1*U(A,A,A,A,U,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds6 }) -}
-abb2d2563f83c6a8ffd319e966c2c2f2
-  eqArgs ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  RecSel Left Language.Fixpoint.Types.Constraints.Equation
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Equ ds2 ds3 ds4 ->
-                 ds3 }) -}
-a2f72860c6b794077dec2e68bf70b219
-  eqBody ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Constraints.Equation
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Equ ds2 ds3 ds4 ->
-                 ds4 }) -}
-345f29767b3eccd84ea2870aa7700640
-  eqName ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Types.Constraints.Equation
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U(U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Equ ds2 ds3 ds4 ->
-                 ds2 }) -}
-c443f40298e5ee40e012396587c3a0f7
-  fi ::
-    [Language.Fixpoint.Types.Constraints.SubC a]
-    -> [Language.Fixpoint.Types.Constraints.WfC a]
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Constraints.Kuts
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId a
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> [Language.Fixpoint.Types.Triggers.Triggered
-          Language.Fixpoint.Types.Refinements.Expr]
-    -> Language.Fixpoint.Types.Constraints.AxiomEnv
-    -> Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 12,
-     Strictness: <L,1*U><S,1*U><S(LS),1*U(U,U)><S,1*U><S,1*U><S,1*U><S,1*U><S,1*U><L,U><L,U><S,1*U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (12, True, False)
-                (\ @ a
-                   (w :: [Language.Fixpoint.Types.Constraints.SubC a])
-                   (w1 :: [Language.Fixpoint.Types.Constraints.WfC a])
-                   (w2 :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (w3 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w4 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w5 :: Language.Fixpoint.Types.Constraints.Kuts)
-                   (w6 :: [Language.Fixpoint.Types.Constraints.Qualifier])
-                   (w7 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId a)
-                   (w8 :: GHC.Types.Bool)
-                   (w9 :: GHC.Types.Bool)
-                   (w10 :: [Language.Fixpoint.Types.Triggers.Triggered
-                              Language.Fixpoint.Types.Refinements.Expr])
-                   (w11 :: Language.Fixpoint.Types.Constraints.AxiomEnv) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.Types.Constraints.fi2
-                        @ a
-                        Language.Fixpoint.Types.Constraints.addIds1
-                        w
-                        (Data.HashMap.Base.Empty
-                           @ GHC.Integer.Type.Integer
-                           @ (Language.Fixpoint.Types.Constraints.SubC a)) of dt { DEFAULT ->
-                 case Language.Fixpoint.Types.Constraints.fi1
-                        @ a
-                        w1
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Refinements.KVar
-                           @ (Language.Fixpoint.Types.Constraints.WfC a)) of dt1 { DEFAULT ->
-                 case w3
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                 case w4
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt1 { DEFAULT ->
-                 case w5
-                        `cast`
-                      (Trans
-                           (Language.Fixpoint.Types.Constraints.N:Kuts[0])
-                           (Data.HashSet.N:HashSet[0]
-                                <Language.Fixpoint.Types.Refinements.KVar>_N)) of nt2 { DEFAULT ->
-                 case w6 of dt2 { DEFAULT ->
-                 case w7 of dt3 { DEFAULT ->
-                 case w10 of dt4 { DEFAULT ->
-                 Language.Fixpoint.Types.Constraints.FI
-                   @ Language.Fixpoint.Types.Constraints.SubC
-                   @ a
-                   dt
-                   dt1
-                   (Language.Fixpoint.Types.Environments.BE
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft)
-                      ww1
-                      ww2)
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt1
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   nt2
-                     `cast`
-                   (Trans
-                        (Sym (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Refinements.KVar>_N))
-                        (Sym (Language.Fixpoint.Types.Constraints.N:Kuts[0])))
-                   dt2
-                   dt3
-                   (Language.Fixpoint.Types.Constraints.HOI w8 w9)
-                   dt4
-                   w11 } } } } } } } } }) -}
-45f6ca064322ee4f844235b1556badbe
-  fi1 ::
-    [Language.Fixpoint.Types.Constraints.WfC a]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-80b04a68bb7df65fb8af169c312814b3
-  fi2 ::
-    [GHC.Integer.Type.Integer]
-    -> [Language.Fixpoint.Types.Constraints.SubC a]
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-    -> Data.HashMap.Base.HashMap
-         GHC.Integer.Type.Integer
-         (Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 3, Strictness: <S,1*U><L,1*U><S,1*U> -}
-b354be32cea41076c357d82fb6b4eab0
-  fioFI ::
-    Language.Fixpoint.Types.Constraints.FInfoWithOpts a
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-  RecSel Left Language.Fixpoint.Types.Constraints.FInfoWithOpts
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SL),1*U(1*U(U,U,U,U,U,U,U,U,U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FIO ds2 ds3 ->
-                 ds2 }) -}
-db7b8f5c0682d077570142ebfc130efb
-  fioOpts ::
-    Language.Fixpoint.Types.Constraints.FInfoWithOpts a
-    -> [GHC.Base.String]
-  RecSel Left Language.Fixpoint.Types.Constraints.FInfoWithOpts
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.FInfoWithOpts a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FIO ds2 ds3 ->
-                 ds3 }) -}
-9bf9d2f5b493ad988755fb3a9a51e985
-  gLits ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLLLLLLL),1*U(A,A,A,U,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds5 }) -}
-0fac72af6a3f4cb91e3940c5b31fdf58
-  getEqBody ::
-    Language.Fixpoint.Types.Constraints.Equation
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS),1*U(1*U(U,A,A),1*U,1*U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Equation) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Equ ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Constraints.$wgetEqBody ww1 ww2 ww3 }) -}
-e0bda26e2a2d1d2bf92cc539dfce23d8
-  gresSolution ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> Language.Fixpoint.Types.Constraints.GFixSolution
-  RecSel Left Language.Fixpoint.Types.Constraints.Result
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Result ds2 ds3 ds4 ->
-                 ds4 }) -}
-6382842cd7968a5671d9c08fa5598d74
-  hoBinds ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.HOI ds2 ds3 ->
-                 ds2 }) -}
-4dfecf7fbd32320e946bf9df4b0e1a98
-  hoInfo ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.HOInfo
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLLLSLL),1*U(A,A,A,A,A,A,A,A,U(U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds10 }) -}
-f810b59e96b05105a9c480177d99cce4
-  hoQuals ::
-    Language.Fixpoint.Types.Constraints.HOInfo -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Constraints.HOInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.HOInfo) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.HOI ds2 ds3 ->
-                 ds3 }) -}
-e3a7ff0495f71a580cf9216dd7498e66
-  isGWfc ::
-    Language.Fixpoint.Types.Constraints.WfC a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4
-                   -> GHC.Types.False
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> GHC.Types.True }) -}
-65b6076217f4f66a4a61b29e6190c526
-  isUnsafe ::
-    Language.Fixpoint.Types.Constraints.Result a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (r :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case r of wild { Language.Fixpoint.Types.Constraints.Result ds1 ds2 ds3 ->
-                 case ds1 of wild1 {
-                   DEFAULT -> GHC.Types.False
-                   Language.Fixpoint.Types.Errors.Unsafe ds4 -> GHC.Types.True } }) -}
-d08290f25e3ce97efa755092a7bf0f5f
-  ksMember ::
-    Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Types.Constraints.Kuts -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),1*U(U,U(U,U,U),A)><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.KVar)
-                   (w1 :: Language.Fixpoint.Types.Constraints.Kuts) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Constraints.$wksMember
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-ee675ede781ff97494cb42494377b76e
-  ksVars ::
-    Language.Fixpoint.Types.Constraints.Kuts
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar
-  RecSel Left Language.Fixpoint.Types.Constraints.Kuts
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$fFixpointKuts_$s$dmsimplify
-                  `cast`
-                (<Language.Fixpoint.Types.Constraints.Kuts>_R
-                 ->_R Language.Fixpoint.Types.Constraints.N:Kuts[0]) -}
-d406844fa77de9da82204390a3f0a2da
-  kuts ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Constraints.Kuts
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLSLLLLL),1*U(A,A,A,A,A,U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds7 }) -}
-1360e3ed9ce1dca20223228e4fbc568c
-  mkQual ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 3, Strictness: <L,U><L,U><L,1*U> -}
-7425c83b6dfb04e4a1faf483a4d849a4
-  mkSubC ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><S,U><S,U><S,U><S,U><S,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.$WSubC -}
-ed16f1ec59060d74f74ea827928489f9
-  pprSinfos ::
-    (GHC.Classes.Ord a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    GHC.Base.String
-    -> [Language.Fixpoint.Types.Constraints.SubC a]
-    -> [Text.PrettyPrint.HughesPJ.Doc]
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*C(C1(U)),A,A,A,A,A,A)><L,1*U(1*U,A)><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (msg :: GHC.Base.String)
-                   (eta :: [Language.Fixpoint.Types.Constraints.SubC a]) ->
-                 let {
-                   f1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                   = case GHC.List.$wlenAcc
-                            @ GHC.Types.Char
-                            msg
-                            0# of ww2 { DEFAULT ->
-                     Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                          @ ()
-                          (Text.PrettyPrint.Annotated.HughesPJ.Str msg)
-                          ww2)
-                       (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()) }
-                 } in
-                 let {
-                   g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.toFix @ a $dFixpoint
-                 } in
-                 GHC.Base.map
-                   @ a
-                   @ Text.PrettyPrint.HughesPJ.Doc
-                   (\ (x :: a) ->
-                    case (g x) `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                      DEFAULT
-                      -> case f1 of wild1 {
-                           DEFAULT
-                           -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 wild1
-                                 GHC.Types.False
-                                 wild)
-                                `cast`
-                              (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                           Text.PrettyPrint.Annotated.HughesPJ.Empty
-                           -> wild `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                      Text.PrettyPrint.Annotated.HughesPJ.Empty
-                      -> f1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) })
-                   (Data.OldList.sortBy
-                      @ a
-                      (GHC.Classes.compare @ a $dOrd)
-                      (GHC.Base.map
-                         @ (Language.Fixpoint.Types.Constraints.SubC a)
-                         @ a
-                         (Language.Fixpoint.Types.Constraints._sinfo @ a)
-                         eta))) -}
-a90af993c8ca625414e8b90f88916f3f
-  qBody ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Q ds2 ds3 ds4 ds5 ->
-                 ds4 }) -}
-0f5bdcb53e5d79b2170728588403357c
-  qName ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLL),1*U(U(U,U,U),A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Q ds2 ds3 ds4 ds5 ->
-                 ds2 }) -}
-54bc9290720ec8197ce69a552d4656be
-  qParams ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-  RecSel Left Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLL),1*U(A,1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Q ds2 ds3 ds4 ds5 ->
-                 ds3 }) -}
-86dde02d707c66a8777c045e13cabb60
-  qPos ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Text.Parsec.Pos.SourcePos
-  RecSel Left Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLS),1*U(A,A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Q ds2 ds3 ds4 ds5 ->
-                 ds5 }) -}
-98947821f7c1109f5b636213d9b33c79
-  qualifier ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Text.Parsec.Pos.SourcePos
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 6,
-     Strictness: <L,U><S,1*U(U,U,U)><L,U><L,U><L,U><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SEnv
-                           Language.Fixpoint.Types.Sorts.Sort)
-                   (w1 :: Text.Parsec.Pos.SourcePos)
-                   (w2 :: Language.Fixpoint.Types.Environments.SEnv
-                            Language.Fixpoint.Types.Sorts.Sort)
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol)
-                   (w4 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (w5 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case w1 of ww { Text.Parsec.Pos.SourcePos ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.Constraints.$wqualifier
-                        w
-                        ww1
-                        ww2
-                        ww3
-                        w2
-                        w3
-                        w4
-                        w5 of ww4 { (#,,,#) ww5 ww6 ww7 ww8 ->
-                 Language.Fixpoint.Types.Constraints.Q ww5 ww6 ww7 ww8 } }) -}
-997ca7f37fe4e953df95ed614ada85a7
-  qualifier1 :: [GHC.Integer.Type.Integer]
-  {- Unfolding: (case GHC.Enum.$wenumDeltaInteger
-                        Language.Fixpoint.Types.Constraints.qualifier2
-                        Language.Fixpoint.Types.Constraints.addIds2 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ GHC.Integer.Type.Integer ww1 ww2 }) -}
-0d3f5c061bbe2eda97a58f2c5fad5f2c
-  qualifier2 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (0) -}
-bd284461d0d969145be89a89e5ff34f5
-  qualifier3 ::
-    GHC.Integer.Type.Integer -> Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.tempSymbol
-                   Language.Fixpoint.Types.Constraints.qualifier4) -}
-2c13754feb26f550867f163112602465
-  qualifier4 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Types.Constraints.qualifier5) -}
-ef4e504cfbc42f3c9abb886699a532ce
-  qualifier5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "LHTV"#) -}
-f9e1ec9f9347c637e950686ac2056f38
-  qualifier6 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Types.Constraints.qualifier7) -}
-02abe17c7383efafdcdedaad42de51ca
-  qualifier7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Auto"#) -}
-733cbf41a4dbbd9b4564f52a0bd82386
-  quals ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLLSLLLL),1*U(A,A,A,A,A,A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds8 }) -}
-381b95ec430338b66cbedaa4bfda1858
-  remakeQual ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  {- Arity: 1, Strictness: <L,U(U,1*U,U,U)>,
-     Unfolding: (\ (q :: Language.Fixpoint.Types.Constraints.Qualifier) ->
-                 Language.Fixpoint.Types.Constraints.mkQual
-                   (case q of wild { Language.Fixpoint.Types.Constraints.Q ds1 ds2 ds3 ds4 ->
-                    ds1 })
-                   (case q of wild { Language.Fixpoint.Types.Constraints.Q ds1 ds2 ds3 ds4 ->
-                    ds2 })
-                   (case q of wild { Language.Fixpoint.Types.Constraints.Q ds1 ds2 ds3 ds4 ->
-                    ds3 })
-                   (case q of wild { Language.Fixpoint.Types.Constraints.Q ds1 ds2 ds3 ds4 ->
-                    ds4 })) -}
-f55f0c46369593e7e85befdfb6dfdad8
-  resSolution ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> Language.Fixpoint.Types.Constraints.FixSolution
-  RecSel Left Language.Fixpoint.Types.Constraints.Result
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Result ds2 ds3 ds4 ->
-                 ds3 }) -}
-3f55294ccfc28a0973c88dd648f672f4
-  resStatus ::
-    Language.Fixpoint.Types.Constraints.Result a
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  RecSel Left Language.Fixpoint.Types.Constraints.Result
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.Result a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.Result ds2 ds3 ds4 ->
-                 ds2 }) -}
-05e9dce8e4549bc3d5847cf5a15cc2b4
-  saveQuery ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a -> GHC.Types.IO ()
-  {- Arity: 3,
-     Strictness: <L,U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,1*U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.saveQuery1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-1b7970fdfb3d997beee30b66e029ac8e
-  saveQuery1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3,
-     Strictness: <L,U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,1*U(U,U,U,U,U,U,U,U,U,U,U)><S,U> -}
-e3d99df207a3eef7a3b55cff2bcdad01
-  shiftVV ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2,
-     Strictness: <S(S(SSS)L),1*U(U(U,U,U),U)><S(SSS),1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                 case w1 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 let {
-                   wild1 :: Language.Fixpoint.Types.Names.Symbol
-                   = Language.Fixpoint.Types.Names.S ww8 ww9 ww10
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww4 ww8) of wild {
-                   GHC.Types.False
-                   -> (wild1,
-                       Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                         (Language.Fixpoint.Types.Refinements.$dmsubst2
-                            @ Language.Fixpoint.Types.Refinements.Expr
-                            (GHC.Types.:
-                               @ (Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Refinements.Expr)
-                               (Language.Fixpoint.Types.Names.S ww4 ww5 ww6,
-                                Language.Fixpoint.Types.Refinements.EVar wild1)
-                               (GHC.Types.[]
-                                  @ (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.Expr)))
-                            (Data.HashMap.Base.Empty
-                               @ Language.Fixpoint.Types.Names.Symbol
-                               @ Language.Fixpoint.Types.Refinements.Expr))
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                         ww2)
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0]))
-                   GHC.Types.True
-                   -> (Language.Fixpoint.Types.Names.S ww4 ww5 ww6, ww2)
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } } } }) -}
-ff31f7ff76d5011e3329777d046753a8
-  slhs ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLL),1*U(A,U(U,U),A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds3 }) -}
-0fbb8f7857cd0130028e57ca0f730e83
-  smArgs ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  RecSel Left Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SMeasure ds2 ds3 ds4 ds5 ->
-                 ds4 }) -}
-1e8641959c86e835e2e0392577bec2b8
-  smBody ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SMeasure ds2 ds3 ds4 ds5 ->
-                 ds5 }) -}
-bac7e6c297fccd4ba8271f23c2e802d4
-  smDC ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLL),1*U(A,1*U(U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SMeasure ds2 ds3 ds4 ds5 ->
-                 ds3 }) -}
-0a40fa8e4950e91ddb70b49f1d4cdc11
-  smName ::
-    Language.Fixpoint.Types.Constraints.Rewrite
-    -> Language.Fixpoint.Types.Names.Symbol
-  RecSel Left Language.Fixpoint.Types.Constraints.Rewrite
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLL),1*U(1*U(U,U,U),A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds1 :: Language.Fixpoint.Types.Constraints.Rewrite) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SMeasure ds2 ds3 ds4 ds5 ->
-                 ds2 }) -}
-6299a4aca5a3764628a25206cc77779a
-  srhs ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  RecSel Left Language.Fixpoint.Types.Constraints.SubC
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLL),1*U(A,A,U(U,U),A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                 ds4 }) -}
-58909d3f6b10dd4b2e3a9497147f5e74
-  strengthenLhs ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Constraints.SubC a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U><S(SS(SS)SSSS),1*U(U,U(U,U(U,U)),U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w1 :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww9
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww10 { (,) ww11 ww12 ->
-                 Language.Fixpoint.Types.Constraints.SubC
-                   @ a
-                   ww1
-                   (Language.Fixpoint.Types.Refinements.RR
-                      ww8
-                      (ww11,
-                       Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                         (Language.Fixpoint.Types.Refinements.PAnd
-                            (GHC.Types.:
-                               @ Language.Fixpoint.Types.Refinements.Pred
-                               ww12
-                               (GHC.Types.:
-                                  @ Language.Fixpoint.Types.Refinements.Pred
-                                  w
-                                  (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Pred)))))
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])))
-                   ww3
-                   ww4
-                   ww5
-                   ww6 } } }) -}
-66ae7d7e37980520d7e0dcfa324ee5e9
-  subC ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Constraints.Tag
-    -> a
-    -> [Language.Fixpoint.Types.Constraints.SubC a]
-  {- Arity: 6,
-     Strictness: <L,U><L,1*U(U,U(U(U,U,U),U))><S(SS(LS)),1*U(U,U(U,1*U))><L,U><L,U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w2 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w3 :: GHC.Base.Maybe GHC.Integer.Type.Integer)
-                   (w4 :: Language.Fixpoint.Types.Constraints.Tag)
-                   (w5 :: a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$wsubC
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww4
-                   ww5
-                   w3
-                   w4
-                   w5 } }) -}
-170adfc4aedcef6c28d5eb404df361b9
-  subcId ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    c a -> Language.Fixpoint.Types.Constraints.SubcId
-  {- Arity: 2,
-     Strictness: <S(LC(S)LLLL),1*U(A,1*C1(U),A,A,A,A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (eta :: c a) ->
-                 case Language.Fixpoint.Types.Constraints.sid
-                        @ c
-                        @ a
-                        $dTaggedC
-                        eta of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Misc.mfromJust1
-                        @ GHC.Integer.Type.Integer
-                        Language.Fixpoint.Types.Constraints.subcId2
-                          `cast`
-                        (Sym (GHC.Classes.N:IP[0]
-                                  <"callStack">_N <GHC.Stack.Types.CallStack>_N))
-                        Language.Fixpoint.Types.Constraints.subcId1
-                   GHC.Base.Just x1 -> x1 }) -}
-7820c8e902ebb568de0fd44836e724b2
-  subcId1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "subCId"#) -}
-78e16576d72f9b72e2c0f2b6ec673137
-  subcId10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "mfromJust"#) -}
-7313279813c64311491414067d38e88e
-  subcId2 :: GHC.Stack.Types.CallStack
-  {- Strictness: m2,
-     Unfolding: (GHC.Stack.Types.PushCallStack
-                   Language.Fixpoint.Types.Constraints.subcId10
-                   Language.Fixpoint.Types.Constraints.subcId3
-                   GHC.Stack.Types.EmptyCallStack) -}
-c243bd5c65b802b5cf42930b616808a6
-  subcId3 :: GHC.Stack.Types.SrcLoc
-  {- Strictness: m,
-     Unfolding: (GHC.Stack.Types.SrcLoc
-                   Language.Fixpoint.Types.Constraints.subcId9
-                   Language.Fixpoint.Types.Constraints.subcId8
-                   Language.Fixpoint.Types.Constraints.subcId7
-                   Language.Fixpoint.Types.Constraints.subcId6
-                   Language.Fixpoint.Types.Constraints.subcId5
-                   Language.Fixpoint.Types.Constraints.subcId6
-                   Language.Fixpoint.Types.Constraints.subcId4) -}
-6cce6262f04181d21d001882c21e155c
-  subcId4 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 28#) -}
-586e6767010c109736ba95003c89724e
-  subcId5 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 10#) -}
-9ce9a9f824ee0fa678edb7e37f7d856e
-  subcId6 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 181#) -}
-f0764eded198ca372455ecc2dd17188a
-  subcId7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "src/Language/Fixpoint/Types/Constraints.hs"#) -}
-2dbb0b85537a9ee9c87e76529e198b04
-  subcId8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Language.Fixpoint.Types.Constraints"#) -}
-afe3148cca40b8357c463d0fd88c1160
-  subcId9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-5711bd73781766989598d60d9f1939d0
-  toFixpoint ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a)) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,U(C(U),A)><L,1*U(1*U,A)><S(LLLLLLLLLLLLLLSLLLLLLLLLLLLLLLLL),1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(SSS(LS)SSSSLLLL),U(U,U,U(A,U),U,U,U,U,U,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ (c :: * -> *)
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a))
-                   (w2 :: Language.Fixpoint.Types.Config.Config)
-                   (w3 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 case w3 of ww33 { Language.Fixpoint.Types.Constraints.FI ww34 ww35 ww36 ww37 ww38 ww39 ww40 ww41 ww42 ww43 ww44 ->
-                 case ww36 of ww45 { Language.Fixpoint.Types.Environments.BE ww46 ww47 ->
-                 Language.Fixpoint.Types.Constraints.$wtoFixpoint
-                   @ a
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32
-                   ww34
-                   ww35
-                   ww47
-                   ww37
-                   ww38
-                   ww39
-                   ww40
-                   ww41 } } }) -}
-ac6834fb4931dc1547a5e4523cb6b602
-  toFixpoint_$stoFixpoint ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo
-         Language.Fixpoint.Types.Constraints.SubC ()
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <S(LLLLLLLLLLLLLLSLLLLLLLLLLLLLLLLL),1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(SSS(LS)SSSSLLLL),U(U,U,U(A,U),U,U,U,U,U,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.GInfo
-                            Language.Fixpoint.Types.Constraints.SubC ()) ->
-                 case w of ww { Language.Fixpoint.Types.Config.Config ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ww12 ww13 ww14 ww15 ww16 ww17 ww18 ww19 ww20 ww21 ww22 ww23 ww24 ww25 ww26 ww27 ww28 ww29 ww30 ww31 ww32 ->
-                 case w1 of ww33 { Language.Fixpoint.Types.Constraints.FI ww34 ww35 ww36 ww37 ww38 ww39 ww40 ww41 ww42 ww43 ww44 ->
-                 case ww36 of ww45 { Language.Fixpoint.Types.Environments.BE ww46 ww47 ->
-                 Language.Fixpoint.Types.Constraints.$w$stoFixpoint
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11
-                   ww12
-                   ww13
-                   ww14
-                   ww15
-                   ww16
-                   ww17
-                   ww18
-                   ww19
-                   ww20
-                   ww21
-                   ww22
-                   ww23
-                   ww24
-                   ww25
-                   ww26
-                   ww27
-                   ww28
-                   ww29
-                   ww30
-                   ww31
-                   ww32
-                   ww34
-                   ww35
-                   ww47
-                   ww37
-                   ww38
-                   ww39
-                   ww40
-                   ww41 } } }) -}
-0bf621e3d7f5bd2f9486a81f128f985d
-  toGFixSol ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar (e, [e])
-    -> Language.Fixpoint.Types.Constraints.GFixSol e
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.toGFixSol1
-                  `cast`
-                (forall (e :: <*>_N).
-                 <Data.HashMap.Base.HashMap
-                    Language.Fixpoint.Types.Refinements.KVar (e, [e])>_R
-                 ->_R Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                               <e>_R)) -}
-55e6627f8ee83c703d6c71ff8fb7ea07
-  toGFixSol1 ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar (e, [e])
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar (e, [e])
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ e
-                   (tpl :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar (e, [e])) ->
-                 tpl) -}
-eeaca4f0234943aafb2bfee7e7c4a632
-  trueQual :: Language.Fixpoint.Types.Constraints.Qualifier
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fSymbolic[]_$csymbol
-                        Language.Fixpoint.Types.Constraints.trueQual3 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Constraints.Q
-                   dt
-                   (GHC.Types.[]
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Sorts.Sort))
-                   Language.Fixpoint.Types.Refinements.$bPTop
-                   Language.Fixpoint.Types.Constraints.trueQual1 }) -}
-4715f38489f884ac5f33cfc535c71de3
-  trueQual1 :: Text.Parsec.Pos.SourcePos
-  {- Unfolding: (Text.Parsec.Pos.SourcePos
-                   Language.Fixpoint.Types.Constraints.trueQual2
-                   0#
-                   0#) -}
-07539f99963bc0a34d9583559ed0d408
-  trueQual2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "trueQual"#) -}
-c6a468217cbcbfddebf2930f1c33f73c
-  trueQual3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "QTrue"#) -}
-437acb765e79eb2b8a3653725f4f45be
-  unsafe :: Language.Fixpoint.Types.Constraints.Result a
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Types.Constraints.Result
-                   @ a
-                   (Language.Fixpoint.Types.Constraints.unsafe1 @ a)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ (Language.Fixpoint.Types.Refinements.Expr,
-                         [Language.Fixpoint.Types.Refinements.Expr]))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Constraints.N:GFixSol[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_R))) -}
-ce3ea9070cd2593c305aed42822982d1
-  unsafe1 :: Language.Fixpoint.Types.Errors.FixResult a
-  {- HasNoCafRefs, Strictness: m3,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Types.Errors.Unsafe @ a (GHC.Types.[] @ a)) -}
-23675dc8dc2857a14ac20d6834386cde
-  updateWfCExpr ::
-    (Language.Fixpoint.Types.Refinements.Expr
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Constraints.WfC a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (ds1 :: Language.Fixpoint.Types.Refinements.Expr
-                           -> Language.Fixpoint.Types.Refinements.Expr)
-                   (w :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case w of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4 -> wild
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> case ds1 ds5 of dt { DEFAULT ->
-                      Language.Fixpoint.Types.Constraints.GWfC @ a ds2 ds3 ds4 dt } }) -}
-20fa0d1838b6d2ec27b5d3c0b003ae97
-  wenv ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Constraints.WfC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4 -> ds2
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> ds2 }) -}
-83515c1aa6205bfb453ccbfabb4f0b10
-  wexpr ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Constraints.WfC
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ipv ipv1 ipv2
-                   -> Language.Fixpoint.Types.Constraints.wexpr1
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> ds5 }) -}
-8abd53f1de475fb49ed58a7352f890c9
-  wexpr1 :: Language.Fixpoint.Types.Refinements.Expr
-  {- Strictness: x -}
-26932f3ec7b322e94102943b130adb27
-  wfC ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> a
-    -> [Language.Fixpoint.Types.Constraints.WfC a]
-  {- Arity: 4, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (eta1 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (eta2 :: a) ->
-                 Language.Fixpoint.Types.Constraints.wfC1 @ a eta eta1 eta2) -}
-8b42e77780706cd4cadbb8f1bd5f5b58
-  wfC1 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> a
-    -> [Language.Fixpoint.Types.Constraints.WfC a]
-  {- Arity: 3,
-     Strictness: <L,U><S(LS(LS)),U(U,U(1*U(U,U(U,U,U),U(U,U,U)),U))><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w2 :: a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Types.Constraints.$wlvl3
-                   @ a
-                   w
-                   ww1
-                   ww4
-                   ww5
-                   w2 } }) -}
-ecc84b8bb7433f05335887d1820ca39f
-  winfo :: Language.Fixpoint.Types.Constraints.WfC a -> a
-  RecSel Left Language.Fixpoint.Types.Constraints.WfC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4 -> ds4
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> ds4 }) -}
-a33060451417dea7c01c64c3c2b14b8f
-  wrft ::
-    Language.Fixpoint.Types.Constraints.WfC a
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Sorts.Sort,
-        Language.Fixpoint.Types.Refinements.KVar)
-  RecSel Left Language.Fixpoint.Types.Constraints.WfC
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds1 :: Language.Fixpoint.Types.Constraints.WfC a) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4 -> ds3
-                   Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                   -> ds3 }) -}
-ad168b3f748b746c2712abb79f6e7bf5
-  writeFInfo ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a)) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> GHC.IO.FilePath
-    -> GHC.Types.IO ()
-  {- Arity: 6,
-     Strictness: <L,U(C(U),A)><L,1*U(1*U,A)><L,1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U(U,U,U(A,U),U,U,U,U,U,A,A,A)><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Constraints.writeFInfo1
-                  `cast`
-                (forall (a :: <*>_N) (c :: <* -> *>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.Fixpoint a>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a)>_R
-                 ->_R <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.GInfo c a>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-f53279fbfa3aa2ea3903b44f0e177c0b
-  writeFInfo1 ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a)) =>
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> GHC.IO.FilePath
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 6,
-     Strictness: <L,U(C(U),A)><L,1*U(1*U,A)><L,1*U(U,1*U,U(U),U(U),U,U,U,U,U,U,U,1*U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U(U,U,U(A,U),U,U,U,U,U,A,A,A)><L,U><S,U>,
-     Unfolding: (\ @ a
-                   @ (c :: * -> *)
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint (c a))
-                   (cfg :: Language.Fixpoint.Types.Config.Config)
-                   (fq :: Language.Fixpoint.Types.Constraints.GInfo c a)
-                   (f1 :: GHC.IO.FilePath)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 System.IO.writeFile1
-                   f1
-                   (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                      @ ()
-                      @ GHC.Base.String
-                      Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                      Text.PrettyPrint.Annotated.HughesPJ.render3
-                      Text.PrettyPrint.Annotated.HughesPJ.render2
-                      Language.Fixpoint.Types.Constraints.writeFInfo2
-                      (GHC.Types.[] @ GHC.Types.Char)
-                      (Language.Fixpoint.Types.Constraints.toFixpoint
-                         @ a
-                         @ c
-                         $dFixpoint
-                         $dFixpoint1
-                         cfg
-                         fq)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   eta) -}
-b9a8c84bc35aadbd16c5f9ead786c195
-  writeFInfo2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds1 :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                             ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds1 of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s22 dt1
-                   -> case s22 of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s23
-                        -> GHC.Base.++ @ GHC.Types.Char s23 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s23
-                        -> GHC.Base.++ @ GHC.Types.Char s23 eta } }) -}
-5325410ee67d4c56c5404e8dff4dad17
-  ws ::
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Constraints.WfC a)
-  RecSel Left Language.Fixpoint.Types.Constraints.GInfo
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLLLLLLL),1*U(A,U,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (ds1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case ds1 of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                 ds3 }) -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fBinaryAxiomEnv
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Constraints.$fBinaryEliminate
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.$fBinaryEquation
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fBinaryGFixSol
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fBinaryGInfo
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fBinaryHOInfo
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fBinaryKuts
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fBinaryQualifier
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.$fBinaryRewrite
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Constraints.$fBinarySMTSolver
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fBinarySimpC
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fBinarySubC
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fBinaryWfC
-instance Data.Data.Data [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fDataQualifier
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fEqAxiomEnv
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.$fEqEquation
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fEqGInfo
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fEqHOInfo
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fEqKuts
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fEqQualifier
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.$fEqRewrite
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fEqSubC
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fEqWfC
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Constraints.$fFixpointFixResult
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fFixpointKuts
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fFixpointQualifier
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fFixpointSimpC
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fFixpointSubC
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fFixpointWfC
-instance GHC.Base.Functor [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fFunctorGFixSol
-instance GHC.Base.Functor [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fFunctorGInfo
-instance GHC.Base.Functor [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fFunctorSimpC
-instance GHC.Base.Functor [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fFunctorSubC
-instance GHC.Base.Functor [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fFunctorWfC
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fGenericAxiomEnv
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.$fGenericEquation
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fGenericGFixSol
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fGenericGInfo
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fGenericHOInfo
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fGenericKuts
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fGenericQualifier
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.Result]
-  = Language.Fixpoint.Types.Constraints.$fGenericResult
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.$fGenericRewrite
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fGenericSimpC
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fGenericSubC
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fGenericWfC
-instance Language.Fixpoint.Types.Spans.Loc [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fLocQualifier
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fMonoidAxiomEnv
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fMonoidGFixSol
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fMonoidGInfo
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fMonoidHOInfo
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fMonoidKuts
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Constraints.Result]
-  = Language.Fixpoint.Types.Constraints.$fMonoidResult
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fNFDataAxiomEnv
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Config.Eliminate]
-  = Language.Fixpoint.Types.Constraints.$fNFDataEliminate
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.$fNFDataEquation
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fNFDataGFixSol
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fNFDataGInfo
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fNFDataHOInfo
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fNFDataKuts
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fNFDataQualifier
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.Result]
-  = Language.Fixpoint.Types.Constraints.$fNFDataResult
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.$fNFDataRewrite
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Config.SMTSolver]
-  = Language.Fixpoint.Types.Constraints.$fNFDataSMTSolver
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fNFDataSimpC
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fNFDataSubC
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fNFDataWfC
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fPPrintGFixSol
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fPPrintQualifier
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fPPrintSimpC
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fPPrintSubC
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fPPrintWfC
-instance Language.Fixpoint.Types.PrettyPrint.PTable [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fPTableGInfo
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.$fShowAxiomEnv
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.$fShowEquation
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.$fShowGFixSol
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.$fShowGInfo
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.$fShowHOInfo
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.$fShowKuts
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.$fShowQualifier
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.Result]
-  = Language.Fixpoint.Types.Constraints.$fShowResult
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.$fShowRewrite
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.$fShowSimpC
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.$fShowSubC
-instance GHC.Show.Show [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.$fShowWfC
-instance Language.Fixpoint.Types.Constraints.TaggedC [Language.Fixpoint.Types.Constraints.SimpC,
-                                                      .]
-  = Language.Fixpoint.Types.Constraints.$fTaggedCSimpCa
-instance Language.Fixpoint.Types.Constraints.TaggedC [Language.Fixpoint.Types.Constraints.SubC,
-                                                      .]
-  = Language.Fixpoint.Types.Constraints.$fTaggedCSubCa
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Constraints.Rep_GInfo
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.AxiomEnv]
-  = Language.Fixpoint.Types.Constraints.Rep_AxiomEnv
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.Rewrite]
-  = Language.Fixpoint.Types.Constraints.Rep_Rewrite
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.Equation]
-  = Language.Fixpoint.Types.Constraints.Rep_Equation
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.HOInfo]
-  = Language.Fixpoint.Types.Constraints.Rep_HOInfo
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.Kuts]
-  = Language.Fixpoint.Types.Constraints.Rep_Kuts
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.Qualifier]
-  = Language.Fixpoint.Types.Constraints.Rep_Qualifier
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.Result]
-  = Language.Fixpoint.Types.Constraints.Rep_Result
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.GFixSol]
-  = Language.Fixpoint.Types.Constraints.Rep_GFixSol
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Constraints.Rep_SimpC
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Constraints.Rep_SubC
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Constraints.WfC]
-  = Language.Fixpoint.Types.Constraints.Rep_WfC
-"SPEC $cget @ ()" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                 ())
-  Language.Fixpoint.Types.Constraints.$fBinarySubC_$cget @ ()
-                                                         $dBinary
-  = Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cget
-"SPEC $cput @ ()" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                 ())
-  Language.Fixpoint.Types.Constraints.$fBinarySubC_$cput @ ()
-                                                         $dBinary
-  = Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cput
-"SPEC $cputList @ ()" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                     ())
-  Language.Fixpoint.Types.Constraints.$fBinarySubC_$cputList @ ()
-                                                             $dBinary
-  = Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$cputList
-"SPEC $fBinarySubC @ ()" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                        ())
-  Language.Fixpoint.Types.Constraints.$fBinarySubC @ () $dBinary
-  = Language.Fixpoint.Types.Constraints.$fBinarySubC_$s$fBinarySubC
-"SPEC toFixpoint @ () @ SubC" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                               (Language.Fixpoint.Types.Constraints.SubC
-                                                                  ()))
-                                              ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                ())
-  Language.Fixpoint.Types.Constraints.toFixpoint @ ()
-                                                 @ Language.Fixpoint.Types.Constraints.SubC
-                                                 $dFixpoint1
-                                                 $dFixpoint
-  = Language.Fixpoint.Types.Constraints.toFixpoint_$stoFixpoint
-"SPEC/Language.Fixpoint.Types.Constraints $dm<$ @ SimpC" [ALWAYS] forall ($dFunctor :: GHC.Base.Functor
-                                                                                         Language.Fixpoint.Types.Constraints.SimpC)
-  GHC.Base.$dm<$ @ Language.Fixpoint.Types.Constraints.SimpC
-                 $dFunctor
-  = Language.Fixpoint.Types.Constraints.$fFunctorSimpC_$s$dm<$
-"SPEC/Language.Fixpoint.Types.Constraints $dm<$ @ SubC" [ALWAYS] forall ($dFunctor :: GHC.Base.Functor
-                                                                                        Language.Fixpoint.Types.Constraints.SubC)
-  GHC.Base.$dm<$ @ Language.Fixpoint.Types.Constraints.SubC $dFunctor
-  = Language.Fixpoint.Types.Constraints.$fFunctorSubC_$s$dm<$
-"SPEC/Language.Fixpoint.Types.Constraints $dm<$ @ WfC" [ALWAYS] forall ($dFunctor :: GHC.Base.Functor
-                                                                                       Language.Fixpoint.Types.Constraints.WfC)
-  GHC.Base.$dm<$ @ Language.Fixpoint.Types.Constraints.WfC $dFunctor
-  = Language.Fixpoint.Types.Constraints.$fFunctorWfC_$s$dm<$
-"SPEC/Language.Fixpoint.Types.Constraints $dmdataCast1 @ Qualifier" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                 Language.Fixpoint.Types.Constraints.Qualifier)
-  Data.Data.$dmdataCast1 @ Language.Fixpoint.Types.Constraints.Qualifier
-                         $dData
-  = Language.Fixpoint.Types.Constraints.$fDataQualifier_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Types.Constraints $dmdataCast2 @ Qualifier" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                 Language.Fixpoint.Types.Constraints.Qualifier)
-  Data.Data.$dmdataCast2 @ Language.Fixpoint.Types.Constraints.Qualifier
-                         $dData
-  = Language.Fixpoint.Types.Constraints.$fDataQualifier_$s$dmdataCast2
-"SPEC/Language.Fixpoint.Types.Constraints $dmget @ GFixSolution" [ALWAYS] forall ($dGBinaryGet :: Data.Binary.Class.GBinaryGet
-                                                                                                    (GHC.Generics.Rep
-                                                                                                       Language.Fixpoint.Types.Constraints.GFixSolution))
-                                                                                 ($dGeneric :: GHC.Generics.Generic
-                                                                                                 Language.Fixpoint.Types.Constraints.GFixSolution)
-                                                                                 ($dBinary :: Data.Binary.Class.Binary
-                                                                                                Language.Fixpoint.Types.Constraints.GFixSolution)
-  Data.Binary.Class.$dmget @ (Language.Fixpoint.Types.Constraints.GFixSol
-                                Language.Fixpoint.Types.Refinements.Expr)
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryGet
-  = Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$dmget
-"SPEC/Language.Fixpoint.Types.Constraints $dmput @ Eliminate" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                                 (GHC.Generics.Rep
-                                                                                                    Language.Fixpoint.Types.Config.Eliminate))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Config.Eliminate)
-                                                                              ($dBinary :: Data.Binary.Class.Binary
-                                                                                             Language.Fixpoint.Types.Config.Eliminate)
-  Data.Binary.Class.$dmput @ Language.Fixpoint.Types.Config.Eliminate
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Constraints.$fBinaryEliminate_$s$dmput
-"SPEC/Language.Fixpoint.Types.Constraints $dmput @ GFixSolution" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                                    (GHC.Generics.Rep
-                                                                                                       Language.Fixpoint.Types.Constraints.GFixSolution))
-                                                                                 ($dGeneric :: GHC.Generics.Generic
-                                                                                                 Language.Fixpoint.Types.Constraints.GFixSolution)
-                                                                                 ($dBinary :: Data.Binary.Class.Binary
-                                                                                                Language.Fixpoint.Types.Constraints.GFixSolution)
-  Data.Binary.Class.$dmput @ (Language.Fixpoint.Types.Constraints.GFixSol
-                                Language.Fixpoint.Types.Refinements.Expr)
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$dmput
-"SPEC/Language.Fixpoint.Types.Constraints $dmput @ Kuts" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                            (GHC.Generics.Rep
-                                                                                               Language.Fixpoint.Types.Constraints.Kuts))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Types.Constraints.Kuts)
-                                                                         ($dBinary :: Data.Binary.Class.Binary
-                                                                                        Language.Fixpoint.Types.Constraints.Kuts)
-  Data.Binary.Class.$dmput @ Language.Fixpoint.Types.Constraints.Kuts
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Constraints.$fBinaryKuts_$s$dmput
-"SPEC/Language.Fixpoint.Types.Constraints $dmput @ SMTSolver" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                                 (GHC.Generics.Rep
-                                                                                                    Language.Fixpoint.Types.Config.SMTSolver))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Config.SMTSolver)
-                                                                              ($dBinary :: Data.Binary.Class.Binary
-                                                                                             Language.Fixpoint.Types.Config.SMTSolver)
-  Data.Binary.Class.$dmput @ Language.Fixpoint.Types.Config.SMTSolver
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Constraints.$fBinarySMTSolver_$s$dmput
-"SPEC/Language.Fixpoint.Types.Constraints $dmrnf @ Eliminate" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                              (GHC.Generics.Rep
-                                                                                                 Language.Fixpoint.Types.Config.Eliminate))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Config.Eliminate)
-                                                                              ($dNFData :: Control.DeepSeq.NFData
-                                                                                             Language.Fixpoint.Types.Config.Eliminate)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Config.Eliminate
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Constraints.$fNFDataEliminate_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Constraints $dmrnf @ HOInfo" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                           (GHC.Generics.Rep
-                                                                                              Language.Fixpoint.Types.Constraints.HOInfo))
-                                                                           ($dGeneric :: GHC.Generics.Generic
-                                                                                           Language.Fixpoint.Types.Constraints.HOInfo)
-                                                                           ($dNFData :: Control.DeepSeq.NFData
-                                                                                          Language.Fixpoint.Types.Constraints.HOInfo)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Constraints.HOInfo
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Constraints.$fNFDataHOInfo_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Constraints $dmrnf @ Kuts" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                         (GHC.Generics.Rep
-                                                                                            Language.Fixpoint.Types.Constraints.Kuts))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Types.Constraints.Kuts)
-                                                                         ($dNFData :: Control.DeepSeq.NFData
-                                                                                        Language.Fixpoint.Types.Constraints.Kuts)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Constraints.Kuts
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Constraints.$fNFDataKuts_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Constraints $dmrnf @ Qualifier" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                              (GHC.Generics.Rep
-                                                                                                 Language.Fixpoint.Types.Constraints.Qualifier))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Constraints.Qualifier)
-                                                                              ($dNFData :: Control.DeepSeq.NFData
-                                                                                             Language.Fixpoint.Types.Constraints.Qualifier)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Constraints.Qualifier
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Constraints.$fNFDataQualifier_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Constraints $dmrnf @ SMTSolver" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                              (GHC.Generics.Rep
-                                                                                                 Language.Fixpoint.Types.Config.SMTSolver))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Config.SMTSolver)
-                                                                              ($dNFData :: Control.DeepSeq.NFData
-                                                                                             Language.Fixpoint.Types.Config.SMTSolver)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Config.SMTSolver
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Constraints.$fNFDataSMTSolver_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Constraints $dmsimplify @ Kuts" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                               Language.Fixpoint.Types.Constraints.Kuts)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Constraints.Kuts
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Constraints.$fFixpointKuts_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Constraints $dmsimplify @ Qualifier" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                                    Language.Fixpoint.Types.Constraints.Qualifier)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Constraints.Qualifier
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Constraints.$fFixpointQualifier_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Constraints $fBinary(,) @ Expr @ [Expr]" [ALWAYS] forall ($dBinary1 :: Data.Binary.Class.Binary
-                                                                                                       [Language.Fixpoint.Types.Refinements.Expr])
-                                                                                       ($dBinary :: Data.Binary.Class.Binary
-                                                                                                      Language.Fixpoint.Types.Refinements.Expr)
-  Data.Binary.Class.$fBinary(,) @ Language.Fixpoint.Types.Refinements.Expr
-                                @ [Language.Fixpoint.Types.Refinements.Expr]
-                                $dBinary
-                                $dBinary1
-  = Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$fBinary(,)
-"SPEC/Language.Fixpoint.Types.Constraints $fBinaryTriggered @ Expr" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                                                                   Language.Fixpoint.Types.Refinements.Expr)
-  Language.Fixpoint.Types.Triggers.$fBinaryTriggered @ Language.Fixpoint.Types.Refinements.Expr
-                                                     $dBinary
-  = Language.Fixpoint.Types.Constraints.$s$fBinaryTriggered
-"SPEC/Language.Fixpoint.Types.Constraints $fBinary[] @ Expr" [ALWAYS] forall ($dBinary :: Data.Binary.Class.Binary
-                                                                                            Language.Fixpoint.Types.Refinements.Expr)
-  Data.Binary.Class.$fBinary[] @ Language.Fixpoint.Types.Refinements.Expr
-                               $dBinary
-  = Language.Fixpoint.Types.Constraints.$fBinaryGFixSol_$s$fBinary[]
-"SPEC/Language.Fixpoint.Types.Constraints $fEqHashSet_$c/= @ KVar" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                              Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashSet.$fEqHashSet_$c/= @ Language.Fixpoint.Types.Refinements.KVar
-                                $dEq
-  = Language.Fixpoint.Types.Constraints.$fEqKuts_$s$fEqHashSet_$c/=
-"SPEC/Language.Fixpoint.Types.Constraints $fEqHashSet_$c== @ KVar" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                              Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashSet.$fEqHashSet_$c== @ Language.Fixpoint.Types.Refinements.KVar
-                                $dEq
-  = Language.Fixpoint.Types.Constraints.$fEqKuts_$s$fEqHashSet_$c==
-"SPEC/Language.Fixpoint.Types.Constraints $fEqTriggered @ Expr" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                           Language.Fixpoint.Types.Refinements.Expr)
-  Language.Fixpoint.Types.Triggers.$fEqTriggered @ Language.Fixpoint.Types.Refinements.Expr
-                                                 $dEq
-  = Language.Fixpoint.Types.Constraints.$s$fEqTriggered
-"SPEC/Language.Fixpoint.Types.Constraints $fEqTriggered_$c/= @ Expr" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                                Language.Fixpoint.Types.Refinements.Expr)
-  Language.Fixpoint.Types.Triggers.$fEqTriggered_$c/= @ Language.Fixpoint.Types.Refinements.Expr
-                                                      $dEq
-  = Language.Fixpoint.Types.Constraints.$s$fEqTriggered_$s$fEqTriggered_$c/=
-"SPEC/Language.Fixpoint.Types.Constraints $wupdateOrConcatWithKey @ Integer _" [0] forall @ v
-                                                                                          (w :: GHC.Classes.Eq
-                                                                                                  GHC.Integer.Type.Integer)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ GHC.Integer.Type.Integer
-                                            @ v
-                                            w
-  = Language.Fixpoint.Types.Constraints.$s$wupdateOrConcatWithKey @ v
-"SPEC/Language.Fixpoint.Types.Constraints $wupdateOrSnocWithKey @ Integer _" [0] forall @ v
-                                                                                        (w :: GHC.Classes.Eq
-                                                                                                GHC.Integer.Type.Integer)
-  Data.HashMap.Base.$wupdateOrSnocWithKey @ GHC.Integer.Type.Integer
-                                          @ v
-                                          w
-  = Language.Fixpoint.Types.Constraints.$s$wupdateOrSnocWithKey @ v
-"SPEC/Language.Fixpoint.Types.Constraints shows @ AxiomEnv" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                         Language.Fixpoint.Types.Constraints.AxiomEnv)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.AxiomEnv
-                 $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowAxiomEnv_$sshows
-"SPEC/Language.Fixpoint.Types.Constraints shows @ Equation" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                         Language.Fixpoint.Types.Constraints.Equation)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.Equation
-                 $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowEquation_$sshows
-"SPEC/Language.Fixpoint.Types.Constraints shows @ HOInfo" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                       Language.Fixpoint.Types.Constraints.HOInfo)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.HOInfo $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowHOInfo_$sshows
-"SPEC/Language.Fixpoint.Types.Constraints shows @ Kuts" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                     Language.Fixpoint.Types.Constraints.Kuts)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.Kuts $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowKuts_$sshows
-"SPEC/Language.Fixpoint.Types.Constraints shows @ Qualifier" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                          Language.Fixpoint.Types.Constraints.Qualifier)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.Qualifier
-                 $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowQualifier_$sshows
-"SPEC/Language.Fixpoint.Types.Constraints shows @ Rewrite" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                        Language.Fixpoint.Types.Constraints.Rewrite)
-  GHC.Show.shows @ Language.Fixpoint.Types.Constraints.Rewrite $dShow
-  = Language.Fixpoint.Types.Constraints.$fShowRewrite_$sshows
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Environments.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Environments.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Environments.dump-hi
+++ /dev/null
@@ -1,10971 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:21.875402 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments [orphan module] [family instance module] 8002
-  interface hash: 8a80bc80d2950634b7955092a93e9ede
-  ABI hash: 39a7a5317852adad63623f9a402cc5a6
-  export-list hash: 0b4b7a69569980039fc5b65d426e2d6f
-  orphan hash: f7b6b5da9218839e051f2a6395adc47e
-  flag hash: 2096a597d0d6a69efcfed2db3188ea04
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Environments.adjustBindEnv
-  Language.Fixpoint.Types.Environments.bindEnvFromList
-  Language.Fixpoint.Types.Environments.bindEnvToList
-  Language.Fixpoint.Types.Environments.deleteIBindEnv
-  Language.Fixpoint.Types.Environments.deleteSEnv
-  Language.Fixpoint.Types.Environments.diffIBindEnv
-  Language.Fixpoint.Types.Environments.differenceSEnv
-  Language.Fixpoint.Types.Environments.elemsBindEnv
-  Language.Fixpoint.Types.Environments.elemsIBindEnv
-  Language.Fixpoint.Types.Environments.emptyBindEnv
-  Language.Fixpoint.Types.Environments.emptyIBindEnv
-  Language.Fixpoint.Types.Environments.emptySEnv
-  Language.Fixpoint.Types.Environments.envCs
-  Language.Fixpoint.Types.Environments.filterBindEnv
-  Language.Fixpoint.Types.Environments.filterIBindEnv
-  Language.Fixpoint.Types.Environments.filterSEnv
-  Language.Fixpoint.Types.Environments.fromListSEnv
-  Language.Fixpoint.Types.Environments.fromMapSEnv
-  Language.Fixpoint.Types.Environments.getPack
-  Language.Fixpoint.Types.Environments.insertBindEnv
-  Language.Fixpoint.Types.Environments.insertSEnv
-  Language.Fixpoint.Types.Environments.insertsIBindEnv
-  Language.Fixpoint.Types.Environments.intersectWithSEnv
-  Language.Fixpoint.Types.Environments.intersectionIBindEnv
-  Language.Fixpoint.Types.Environments.lookupBindEnv
-  Language.Fixpoint.Types.Environments.lookupSEnv
-  Language.Fixpoint.Types.Environments.lookupSEnvWithDistance
-  Language.Fixpoint.Types.Environments.makePack
-  Language.Fixpoint.Types.Environments.mapBindEnv
-  Language.Fixpoint.Types.Environments.mapMSEnv
-  Language.Fixpoint.Types.Environments.mapSEnv
-  Language.Fixpoint.Types.Environments.mapSEnvWithKey
-  Language.Fixpoint.Types.Environments.mapWithKeyMBindEnv
-  Language.Fixpoint.Types.Environments.memberIBindEnv
-  Language.Fixpoint.Types.Environments.memberSEnv
-  Language.Fixpoint.Types.Environments.nullIBindEnv
-  Language.Fixpoint.Types.Environments.toListSEnv
-  Language.Fixpoint.Types.Environments.unionIBindEnv
-  Language.Fixpoint.Types.Environments.unionSEnv
-  Language.Fixpoint.Types.Environments.unionSEnv'
-  Language.Fixpoint.Types.Environments.BindEnv
-  Language.Fixpoint.Types.Environments.BindId
-  Language.Fixpoint.Types.Environments.BindMap
-  Language.Fixpoint.Types.Environments.IBindEnv
-  Language.Fixpoint.Types.Environments.Packs{Language.Fixpoint.Types.Environments.Packs packm}
-  Language.Fixpoint.Types.Environments.SESearch{Language.Fixpoint.Types.Environments.Alts Language.Fixpoint.Types.Environments.Found}
-  Language.Fixpoint.Types.Environments.SEnv
-  Language.Fixpoint.Types.Environments.SizedEnv|{beBinds}
-  Language.Fixpoint.Types.Environments.SolEnv{Language.Fixpoint.Types.Environments.SolEnv soeBinds}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Function 7aca86bfbd92366def5f260e30cb2628
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  coalesce 17a5aa1e08f8a412b90c8a1683456312
-  editDistance ceeddc2c62bb641348c501fc486aa751
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  fst3 d403c254371349110bdd0be2f09b4237
-  hashMapToAscList da9681d74f9e9e8aaa19c0da349c7ccd
-  secondM 5bd51524e54059148447181e3f40360e
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  symbol bad58e97c0b3a81e2dad9c913729970a
-  symbolString 819d69bd3146ce4a14769a9d11f1deac
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintKVs f926efd2d44310d1ff99c4868d82bc97
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  KVar 9a92033bfe21324e80629facb0f6357f
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  exports: a573d56a0ab0c7b358ce707e661d4756
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-e3017b5240cfe5e0f0a074e5188fb873
-  $c2kZ8jJ02SWUIgEgFgj8MIe :: Data.Data.Constr
-b7973c780b9739ddae3b90c3171d79ea
-  $c4v5CIsTv9Ch4nAFqrNqrmN :: Data.Data.Constr
-c3f5170802430c71db642403f59c99f5
-  $fBinaryHashSet ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    Data.Binary.Class.Binary (Data.HashSet.HashSet a)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U(A,C(U(U)))><L,U(C(C1(U)),A)><L,U(A,C(C1(U)),C(U(U,U)))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dHashable :: Data.Hashable.Class.Hashable a)
-                      ($dEq :: GHC.Classes.Eq a)
-                      ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Data.HashSet.HashSet a)
-                  (Language.Fixpoint.Types.Environments.$fBinaryHashSet_$cput
-                     @ a
-                     $dHashable
-                     $dEq
-                     $dBinary)
-                  (Language.Fixpoint.Types.Environments.$fBinaryHashSet_$cget
-                     @ a
-                     $dHashable
-                     $dEq
-                     $dBinary)
-                  (Language.Fixpoint.Types.Environments.$fBinaryHashSet_$cputList
-                     @ a
-                     $dHashable
-                     $dEq
-                     $dBinary) -}
-1961ca9215245151699a80eee3654e3c
-  $fBinaryHashSet2 ::
-    [GHC.Types.Int] -> Data.HashMap.Base.HashMap GHC.Types.Int ()
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [GHC.Types.Int]) ->
-                 Language.Fixpoint.Types.Environments.$fBinaryHashSet_go
-                   eta
-                   (Data.HashMap.Base.Empty @ GHC.Types.Int @ ())) -}
-fba50731547637dda5ffc56350564303
-  $fBinaryHashSet3 ::
-    Data.HashSet.HashSet GHC.Types.Int -> Data.Binary.Put.PairS ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 case Language.Fixpoint.Types.Environments.$w$s$cput
-                        w of ww { (#,#) ww1 ww2 ->
-                 Data.Binary.Put.PairS @ () ww1 ww2 }) -}
-f6fe7c8de5986a0929f0c76991292242
-  $fBinaryHashSet4 ::
-    [GHC.Int.Int64]
-    -> (Data.ByteString.Builder.Internal.BufferRange
-        -> GHC.Types.IO (Data.ByteString.Builder.Internal.BuildSignal r))
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S(SL),1*U(U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   (w :: [GHC.Int.Int64])
-                   (w1 :: Data.ByteString.Builder.Internal.BufferRange
-                          -> GHC.Types.IO (Data.ByteString.Builder.Internal.BuildSignal r))
-                   (w2 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (w3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case w2 of ww { Data.ByteString.Builder.Internal.BufferRange ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$wstep2
-                   @ r
-                   w
-                   w1
-                   ww1
-                   ww2
-                   w3 }) -}
-563924c5dec95cbf1ab150f0bf12327d
-  $fBinaryHashSet5 :: GHC.Types.Int -> GHC.Int.Int64
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ (x :: GHC.Types.Int) ->
-                 case x of wild { GHC.Types.I# x# -> GHC.Int.I64# x# }) -}
-3ae8c3f6d81fd8b92ed942167c4795d3
-  $fBinaryHashSet6 ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success (Data.HashSet.HashSet a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5,
-     Strictness: <L,U(A,C(U(U)))><L,U(C(C1(U)),A)><L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   (w :: Data.Hashable.Class.Hashable a)
-                   (w1 :: GHC.Classes.Eq a)
-                   (w2 :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w3 :: Data.ByteString.Internal.ByteString)
-                   (w4 :: Data.Binary.Get.Internal.Success
-                            (Data.HashSet.HashSet a) r) ->
-                 case w3 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Environments.$w$cget
-                   @ a
-                   w
-                   w1
-                   w2
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w4 }) -}
-69a77d1d0bd6637bfdebeb1fe4db2082
-  $fBinaryHashSet7 :: [a] -> Data.HashMap.Base.HashMap a () -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-a2fb23e6097127468e1cec8c6c4cf6c2
-  $fBinaryHashSet_$cget ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    Data.Binary.Get.Internal.Get (Data.HashSet.HashSet a)
-  {- Arity: 5,
-     Strictness: <L,U(A,C(U(U)))><L,U(C(C1(U)),A)><L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryHashSet6
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Hashable.Class.Hashable a>_R
-                 ->_R <GHC.Classes.Eq a>_R
-                 ->_R <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Data.HashSet.HashSet a>_R)) -}
-25d6252d647469adf74bbbac734c77d0
-  $fBinaryHashSet_$cput ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    Data.HashSet.HashSet a -> Data.Binary.Put.Put
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,A><L,A><S(LLC(S)),1*U(A,A,1*C1(U(U,U)))><L,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   (w :: Data.Hashable.Class.Hashable a)
-                   (w1 :: GHC.Classes.Eq a)
-                   (w2 :: Data.Binary.Class.Binary a)
-                   (w3 :: Data.HashSet.HashSet a) ->
-                 Language.Fixpoint.Types.Environments.$w$cput @ a w2 w3) -}
-f1241913dda64b596d977edddc5b644c
-  $fBinaryHashSet_$cputList ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    [Data.HashSet.HashSet a] -> Data.Binary.Put.Put
-  {- Arity: 3,
-     Strictness: <L,U(A,C(U(U)))><L,U(C(C1(U)),A)><L,U(A,C(C1(U)),C(U(U,U)))> -}
-0da58f4558659a52e3aef28254d785a5
-  $fBinaryHashSet_go ::
-    [GHC.Types.Int]
-    -> Data.HashMap.Base.HashMap GHC.Types.Int ()
-    -> Data.HashMap.Base.HashMap GHC.Types.Int ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-cc5d34d096f81f6765ffe066533fa19b
-  $fBinaryHashSet_go1 ::
-    [GHC.Types.Int]
-    -> Data.HashMap.Base.HashMap GHC.Types.Int () -> [GHC.Types.Int]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-dae79859b3442c211473f5cded0c14f7
-  $fBinaryIBindEnv ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fBinaryIBindEnv_$cput
-                  Language.Fixpoint.Types.Environments.$fBinaryIBindEnv_$cget
-                  Language.Fixpoint.Types.Environments.$fBinaryIBindEnv_$cputList -}
-dae79859b3442c211473f5cded0c14f7
-  $fBinaryIBindEnv1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Environments.IBindEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Environments.IBindEnv r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Environments.$w$cget1
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-dae79859b3442c211473f5cded0c14f7
-  $fBinaryIBindEnv_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryIBindEnv1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Environments.IBindEnv>_R)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fBinaryIBindEnv_$cput ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.Binary.Put.Put
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryHashSet3
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R Sym (Data.Binary.Put.N:PutM[0]) <()>_N) -}
-dae79859b3442c211473f5cded0c14f7
-  $fBinaryIBindEnv_$cputList ::
-    [Language.Fixpoint.Types.Environments.IBindEnv]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fBinaryPacks_$s$dmput
-                  Language.Fixpoint.Types.Environments.$fBinaryPacks_$cget
-                  Language.Fixpoint.Types.Environments.$fBinaryPacks_$cputList -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Environments.Packs r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <L,U><L,C(C1(U))>,
-     Unfolding: (\ @ r
-                   (i :: Data.ByteString.Internal.ByteString)
-                   (ks :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Environments.Packs r) ->
-                 (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                    @ Language.Fixpoint.Types.Refinements.KVar
-                    @ GHC.Types.Int
-                    Language.Fixpoint.Types.Refinements.$fHashableKVar
-                    Language.Fixpoint.Types.Refinements.$fEqKVar
-                    Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                    Data.Binary.Class.$fBinaryInt)
-                   `cast`
-                 (Data.Binary.Get.Internal.N:Get[0]
-                      <Data.HashMap.Base.HashMap
-                         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int>_R)
-                   @ r
-                   i
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int) ->
-                    ks
-                      i'
-                      a1
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks2 ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Environments.Packs) -> x1) -}
-c6181e40abe600fd05f939f820a0ac94
-  $fBinaryPacks3 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Packs"
-            "Language.Fixpoint.Types.Environments"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "packm")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashMap.Base.HashMap
-                     Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int)))))
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryPacks4
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Packs"
-                                "Language.Fixpoint.Types.Environments"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "packm")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashMap.Base.HashMap
-                                         Language.Fixpoint.Types.Refinements.KVar
-                                         GHC.Types.Int))))>_N)) -}
-2d29bfdf6324b0b0990bc08dea97cf72
-  $fBinaryPacks4 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Packs"
-         "Language.Fixpoint.Types.Environments"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "packm")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashMap.Base.HashMap
-                  Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int))))
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Packs"
-                                "Language.Fixpoint.Types.Environments"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "packm")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashMap.Base.HashMap
-                                         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int))))
-                             t) ->
-                 Data.Binary.Class.$fBinary(,)_$cputList
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                   Data.Binary.Class.$fBinaryInt
-                   (Data.HashMap.Base.toList
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ GHC.Types.Int
-                      eta
-                        `cast`
-                      (Trans
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Packs"
-                                        "Language.Fixpoint.Types.Environments"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.S1
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "packm")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.Rec0
-                                              (Data.HashMap.Base.HashMap
-                                                 Language.Fixpoint.Types.Refinements.KVar
-                                                 GHC.Types.Int)))>_R)
-                                (Trans
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "packm")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                (Data.HashMap.Base.HashMap
-                                                   Language.Fixpoint.Types.Refinements.KVar
-                                                   GHC.Types.Int))>_R)
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "packm")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             (Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Refinements.KVar
-                                                GHC.Types.Int)>_R)) <t>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int>_R
-                                <t>_P)))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks_$cfrom ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryPacks2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Environments.Packs>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Environments.N:Packs[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Refinements.KVar
-                                            GHC.Types.Int>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "packm")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                    GHC.Types.Int)>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "Packs"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.True>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "packm")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Data.HashMap.Base.HashMap
-                                                            Language.Fixpoint.Types.Refinements.KVar
-                                                            GHC.Types.Int))>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "Packs"
-                                                           "Language.Fixpoint.Types.Environments"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "Packs"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.True)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "packm")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                                    GHC.Types.Int)))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Environments.Rep_Packs[0]))))) <x>_N))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 2, Strictness: <L,U><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinaryPacks1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Environments.Packs>_R)) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks_$cputList ::
-    [Language.Fixpoint.Types.Environments.Packs] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fBinaryPacks_$s$dmput ::
-    Language.Fixpoint.Types.Environments.Packs -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Environments.Packs) ->
-                 Language.Fixpoint.Types.Environments.$fBinaryPacks3
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Environments.Rep_Packs[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Environments.$fBinaryPacks_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fBinarySEnv ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),U,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fBinarySEnv_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Environments.$fBinarySEnv_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Environments.$fBinarySEnv_$cputList
-                     @ a
-                     $dBinary) -}
-ae9741409aa049333ef008f3802cfecf
-  $fBinarySEnv1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Environments.SEnv a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3, Strictness: <L,U(C(U(A,U)),U,A)><L,U><L,C(C1(U))>,
-     Unfolding: (\ @ a
-                   ($dBinary :: Data.Binary.Class.Binary a)
-                   @ r
-                   (eta :: Data.ByteString.Internal.ByteString)
-                   (eta1 :: Data.Binary.Get.Internal.Success
-                              (Language.Fixpoint.Types.Environments.SEnv a) r) ->
-                 (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                    @ Language.Fixpoint.Types.Names.Symbol
-                    @ a
-                    Language.Fixpoint.Types.Names.$fHashableSymbol
-                    Language.Fixpoint.Types.Names.$fEqSymbol
-                    Language.Fixpoint.Types.Names.$fBinarySymbol
-                    $dBinary)
-                   `cast`
-                 (Data.Binary.Get.Internal.N:Get[0]
-                      <Data.HashMap.Base.HashMap
-                         Language.Fixpoint.Types.Names.Symbol a>_R)
-                   @ r
-                   eta
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Names.Symbol a) ->
-                    eta1
-                      i'
-                      a1
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fBinarySEnv_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 3, Strictness: <L,U(C(U(A,U)),U,A)><L,U><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinarySEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Environments.SEnv a>_R)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fBinarySEnv_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> Data.Binary.Put.Put
-  {- Arity: 2, Strictness: <L,U(C(U(A,U)),U,A)><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dBinary :: Data.Binary.Class.Binary a)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Data.Binary.Class.$fBinary(,)_$cputList
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ a
-                   Language.Fixpoint.Types.Names.$fBinarySymbol
-                   $dBinary
-                   (Data.HashMap.Base.toList
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ a
-                      eta
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fBinarySEnv_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Environments.SEnv a]
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),U,A)> -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fBinarySizedEnv ::
-    Data.Binary.Class.Binary
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.BindEnv
-                  Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$cput
-                  Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$cget
-                  Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$cputList -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fBinarySizedEnv1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Environments.BindEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Environments.BindEnv r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Environments.$w$cget2
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fBinarySizedEnv_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fBinarySizedEnv1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_R)) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fBinarySizedEnv_$cput ::
-    Language.Fixpoint.Types.Environments.BindEnv -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S(LS),1*U(U,U)>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.Types.Environments.$w$cput1
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (Data.Binary.Put.PairS @ () ww4 ww5)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fBinarySizedEnv_$cputList ::
-    [Language.Fixpoint.Types.Environments.BindEnv]
-    -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-2183bf06aead6cc6acb26f258a183771
-  $fBinarySizedEnv_$s$fBinary(,) ::
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Names.Symbol,
-                     Language.Fixpoint.Types.Refinements.SortedReft)
-                  (Data.Binary.Class.$fBinary(,)_$cput
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.SortedReft
-                     Language.Fixpoint.Types.Names.$fBinarySymbol
-                     Language.Fixpoint.Types.Refinements.$fBinarySortedReft)
-                  (Data.Binary.Class.$fBinary(,)_$cget
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.SortedReft
-                     Language.Fixpoint.Types.Names.$fBinarySymbol
-                     Language.Fixpoint.Types.Refinements.$fBinarySortedReft)
-                  (Data.Binary.Class.$fBinary(,)_$cputList
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.SortedReft
-                     Language.Fixpoint.Types.Names.$fBinarySymbol
-                     Language.Fixpoint.Types.Refinements.$fBinarySortedReft) -}
-c174bdbfcbff4de2c9f83aca41307d6a
-  $fBinarySizedEnv_f ::
-    [(GHC.Types.Int,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))]
-    -> Data.Binary.Put.Put
-  {- Unfolding: (Data.Binary.Class.$fBinary(,)_$cputList
-                   @ GHC.Types.Int
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   Data.Binary.Class.$fBinaryInt
-                   Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$s$fBinary(,)) -}
-0cd3c3fdee30265cc62488729d22f803
-  $fBinarySizedEnv_go1 ::
-    [(GHC.Types.Int,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))]
-    -> Data.HashMap.Base.HashMap
-         GHC.Types.Int
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> [(GHC.Types.Int,
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv ::
-    Data.Data.Data Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cp1Data
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgfoldl
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgunfold
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$ctoConstr
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cdataTypeOf
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$dmdataCast1
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$dmdataCast2
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapT
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapQl
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapQr
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapQ
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapQi
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapM
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapMp
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv_$cgmapMo -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv1 ::
-    (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-     -> Language.Fixpoint.Types.Environments.IBindEnv,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Environments.$fDataIBindEnv2
-                    `cast`
-                  (<Data.HashSet.HashSet
-                      Language.Fixpoint.Types.Environments.BindId>_R
-                   ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])),
-                  GHC.Types.False)) -}
-2fe3f8f8ab68fd864a5f12d78cc2bffa
-  $fDataIBindEnv10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "IBindEnv"#) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv11 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$fDataIBindEnv12) -}
-18fe8f851217e4bcb547e65e5c33fe3d
-  $fDataIBindEnv12 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Environments.$fDataIBindEnv13
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Environments.$tcIBindEnv
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-418e4ddc94d00fd373e5b5c9668b6c52
-  $fDataIBindEnv13 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   16603441310162428276##
-                   853371338253927225##) -}
-31ec9489b639350a6b456371a1ca3593
-  $fDataIBindEnv2 ::
-    Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (tpl :: Data.HashSet.HashSet
-                             Language.Fixpoint.Types.Environments.BindId) ->
-                 tpl) -}
-0aaf263de1ad3275db3265eb04825fb5
-  $fDataIBindEnv3 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c (Data.HashSet.HashSet GHC.Types.Int))
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c (Data.HashSet.HashSet GHC.Types.Int))) -}
-fc74f3f85bf4ca80f6b19ad1ce9a9f55
-  $fDataIBindEnv4 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c (Data.HashSet.HashSet GHC.Types.Int))
-  {- Arity: 2,
-     Strictness: <C(S(SLLLL)),1*C1(U(U,U,A,A,A))><L,1*C1(U)>,
-     Unfolding: (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (f :: forall d. Data.Data.Data d => c (t d)) ->
-                 case $dTypeable
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <* -> *>_N <t>_N)
-                        (GHC.Prim.proxy#
-                           @ (* -> *)
-                           @ t) of wild { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Data.HashSet.$fDataHashSet8 of wild1 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild2 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing @ (c (Data.HashSet.HashSet GHC.Types.Int))
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing @ (c (Data.HashSet.HashSet GHC.Types.Int))
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ (c (Data.HashSet.HashSet GHC.Types.Int))
-                             (f @ GHC.Types.Int Data.Data.$fDataInt)
-                               `cast`
-                             (<c>_R (UnsafeCo nominal t Data.HashSet.HashSet <GHC.Types.Int>_N)) } } } }) -}
-341572c505c9c9737ed2dfa43ffb5f3e
-  $fDataIBindEnv5 ::
-    Data.HashSet.HashSet GHC.Types.Int -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 Data.HashSet.hashSetDataType) -}
-0d3a53b6752ed8c8377bcd10a3d9ca03
-  $fDataIBindEnv6 ::
-    Data.HashSet.HashSet GHC.Types.Int -> Data.Data.Constr
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 Data.HashSet.fromListConstr) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv7 ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 ds
-                   @ (Data.HashSet.HashSet
-                        Language.Fixpoint.Types.Environments.BindId)
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                   x0 `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])) -}
-78a56d7910b1e52343b5f3ece2c8d5fe
-  $fDataIBindEnv8 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv9) -}
-8120c13d171cd57c67557de4e8b5f1fc
-  $fDataIBindEnv9 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Environments.$c4v5CIsTv9Ch4nAFqrNqrmN
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cdataTypeOf ::
-    Language.Fixpoint.Types.Environments.IBindEnv -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$tFzbslrEMRyVKDg48SEkL9E) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> c Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),1*C1(C1(C1(U)))><L,1*C1(U)><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 k @ (Data.HashSet.HashSet
-                        Language.Fixpoint.Types.Environments.BindId)
-                   @ Language.Fixpoint.Types.Environments.IBindEnv
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                   (z @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Environments.IBindEnv)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv2
-                        `cast`
-                      (<Data.HashSet.HashSet
-                          Language.Fixpoint.Types.Environments.BindId>_R
-                       ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                   ds `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> m Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 let {
-                   lvl68 :: m (Data.HashSet.HashSet
-                                 Language.Fixpoint.Types.Environments.BindId)
-                   = ds
-                       @ (Data.HashSet.HashSet
-                            Language.Fixpoint.Types.Environments.BindId)
-                       Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                       eta `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                      -> Language.Fixpoint.Types.Environments.IBindEnv)
-                   @ Language.Fixpoint.Types.Environments.IBindEnv
-                   (GHC.Base.return
-                      @ m
-                      $dMonad
-                      @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Environments.IBindEnv)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv2
-                        `cast`
-                      (<Data.HashSet.HashSet
-                          Language.Fixpoint.Types.Environments.BindId>_R
-                       ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))
-                   (\ (c' :: Data.HashSet.HashSet
-                               Language.Fixpoint.Types.Environments.BindId
-                             -> Language.Fixpoint.Types.Environments.IBindEnv) ->
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId)
-                      @ Language.Fixpoint.Types.Environments.IBindEnv
-                      lvl68
-                      (\ (x' :: Data.HashSet.HashSet
-                                  Language.Fixpoint.Types.Environments.BindId) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ Language.Fixpoint.Types.Environments.IBindEnv
-                         (c' x')))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> m Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl68 :: m Language.Fixpoint.Types.Environments.IBindEnv
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Environments.IBindEnv
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Environments.IBindEnv
-                   (let {
-                      lvl69 :: m (Data.HashSet.HashSet
-                                    Language.Fixpoint.Types.Environments.BindId)
-                      = ds
-                          @ (Data.HashSet.HashSet
-                               Language.Fixpoint.Types.Environments.BindId)
-                          Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                          eta1 `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Environments.IBindEnv,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                            -> Language.Fixpoint.Types.Environments.IBindEnv,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Environments.$fDataIBindEnv1)
-                      (\ (ds1 :: (Data.HashSet.HashSet
-                                    Language.Fixpoint.Types.Environments.BindId
-                                  -> Language.Fixpoint.Types.Environments.IBindEnv,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       case b1 of wild1 {
-                         GHC.Types.False
-                         -> GHC.Base.mplus
-                              @ m
-                              $dMonadPlus
-                              @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                              (GHC.Base.>>=
-                                 @ m
-                                 $dMonad
-                                 @ (Data.HashSet.HashSet
-                                      Language.Fixpoint.Types.Environments.BindId)
-                                 @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                                 lvl69
-                                 (\ (y' :: Data.HashSet.HashSet
-                                             Language.Fixpoint.Types.Environments.BindId) ->
-                                  GHC.Base.return
-                                    @ m
-                                    $dMonad
-                                    @ (Language.Fixpoint.Types.Environments.IBindEnv,
-                                       GHC.Types.Bool)
-                                    (h y', GHC.Types.True)))
-                              (GHC.Base.return
-                                 @ m
-                                 $dMonad
-                                 @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                                 (h eta1
-                                      `cast`
-                                    (Language.Fixpoint.Types.Environments.N:IBindEnv[0]),
-                                  GHC.Types.False))
-                         GHC.Types.True
-                         -> GHC.Base.return
-                              @ m
-                              $dMonad
-                              @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                              (h eta1
-                                   `cast`
-                                 (Language.Fixpoint.Types.Environments.N:IBindEnv[0]),
-                               GHC.Types.True) } }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Environments.IBindEnv,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl68
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Environments.IBindEnv
-                           x' } })) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> m Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl68 :: m Language.Fixpoint.Types.Environments.IBindEnv
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Environments.IBindEnv
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Environments.IBindEnv
-                   (let {
-                      lvl69 :: m (Data.HashSet.HashSet
-                                    Language.Fixpoint.Types.Environments.BindId)
-                      = ds
-                          @ (Data.HashSet.HashSet
-                               Language.Fixpoint.Types.Environments.BindId)
-                          Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                          eta1 `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Environments.IBindEnv,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                            -> Language.Fixpoint.Types.Environments.IBindEnv,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Environments.$fDataIBindEnv1)
-                      (\ (ds1 :: (Data.HashSet.HashSet
-                                    Language.Fixpoint.Types.Environments.BindId
-                                  -> Language.Fixpoint.Types.Environments.IBindEnv,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       GHC.Base.mplus
-                         @ m
-                         $dMonadPlus
-                         @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                         (GHC.Base.>>=
-                            @ m
-                            $dMonad
-                            @ (Data.HashSet.HashSet
-                                 Language.Fixpoint.Types.Environments.BindId)
-                            @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                            lvl69
-                            (\ (y' :: Data.HashSet.HashSet
-                                        Language.Fixpoint.Types.Environments.BindId) ->
-                             GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                               (h y', GHC.Types.True)))
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Environments.IBindEnv, GHC.Types.Bool)
-                            (h eta1
-                                 `cast`
-                               (Language.Fixpoint.Types.Environments.N:IBindEnv[0]),
-                             b1)) }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Environments.IBindEnv,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl68
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Environments.IBindEnv
-                           x' } })) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Environments.IBindEnv -> [u]
-  {- Arity: 2, Strictness: <L,1*C1(C1(U))><L,U>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 GHC.Types.:
-                   @ u
-                   (ds
-                      @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                      x0 `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                   (GHC.Types.[] @ u)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> u
-  {- Arity: 3, Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 case ds of wild { GHC.Types.I# x1 ->
-                 case x1 of wild1 {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> ds1
-                        @ (Data.HashSet.HashSet
-                             Language.Fixpoint.Types.Environments.BindId)
-                        Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                        x `cast`
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0]) } }) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 ds
-                   ds1
-                   (ds2
-                      @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                      eta
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 ds
-                   (ds2
-                      @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                      x0 `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                   ds1) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fDataIBindEnv7
-                  `cast`
-                (<forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 3, Strictness: <C(C(S)),1*C1(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ (Data.HashSet.HashSet
-                        Language.Fixpoint.Types.Environments.BindId)
-                   @ Language.Fixpoint.Types.Environments.IBindEnv
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-                   (z @ (Data.HashSet.HashSet
-                           Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Environments.IBindEnv)
-                      Language.Fixpoint.Types.Environments.$fDataIBindEnv2
-                        `cast`
-                      (<Data.HashSet.HashSet
-                          Language.Fixpoint.Types.Environments.BindId>_R
-                       ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fDataIBindEnv11
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Environments.IBindEnv>_N)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$ctoConstr ::
-    Language.Fixpoint.Types.Environments.IBindEnv -> Data.Data.Constr
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$c4v5CIsTv9Ch4nAFqrNqrmN) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Environments.IBindEnv)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing
-                   @ (c Language.Fixpoint.Types.Environments.IBindEnv)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fDataIBindEnv_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Environments.IBindEnv)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c Language.Fixpoint.Types.Environments.IBindEnv)) -}
-fd4cff6534526ae5dff98415ac84a372
-  $fDataIBindEnv_$s$fDataHashSet ::
-    Data.Data.Data (Data.HashSet.HashSet GHC.Types.Int)
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Data.HashSet.HashSet GHC.Types.Int)
-                  (Data.HashSet.$fDataHashSet_$cp1Data
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgfoldl
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgunfold
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv6
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv5
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv4
-                  Language.Fixpoint.Types.Environments.$fDataIBindEnv3
-                  (Data.HashSet.$fDataHashSet_$cgmapT
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapQl
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapQr
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapQ
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapQi
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapM
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapMp
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt)
-                  (Data.HashSet.$fDataHashSet_$cgmapMo
-                     @ GHC.Types.Int
-                     Data.Data.$fDataInt
-                     GHC.Classes.$fEqInt
-                     Data.Hashable.Class.$fHashableInt) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv ::
-    Data.Data.Data a =>
-    Data.Data.Data (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dData :: Data.Data.Data a).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cp1Data
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgfoldl
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgunfold
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$ctoConstr
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cdataTypeOf
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cdataCast1
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cdataCast2
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapT
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapQl
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapQr
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapQ
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapQi
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapM
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapMp
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Environments.$fDataSEnv_$cgmapMo
-                     @ a
-                     $dData) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv1 ::
-    (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-     -> Language.Fixpoint.Types.Environments.SEnv a,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: (\ @ a ->
-                 ((Language.Fixpoint.Types.Environments.$fDataSEnv2 @ a)
-                    `cast`
-                  (<Data.HashMap.Base.HashMap
-                      Language.Fixpoint.Types.Names.Symbol a>_R
-                   ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N),
-                  GHC.Types.False)) -}
-91c8c409a5f4b23aa521c7a8551bcd48
-  $fDataSEnv2 ::
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol b
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol b
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ b
-                   (b1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol b) ->
-                 b1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv3 ::
-    Data.Data.Data a =>
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: forall b. Data.Data.Data b => b -> b)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 ds
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol a)
-                   (Data.HashMap.Base.$fDataHashMap
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ a
-                      Language.Fixpoint.Types.Names.$fDataSymbol
-                      $dData
-                      Language.Fixpoint.Types.Names.$fEqSymbol
-                      Language.Fixpoint.Types.Names.$fHashableSymbol)
-                   eta
-                     `cast`
-                   (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)) -}
-e6fa09b804a04da8434821756f749489
-  $fDataSEnv4 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Environments.$fDataSEnv5
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Environments.$tcSEnv
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-3e0977b72edaf5d46025b7967c990b3e
-  $fDataSEnv5 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   435480431205523914##
-                   7377899865707558582##) -}
-dd9c8f1433a44557cf4f6cd083469f93
-  $fDataSEnv6 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Environments.$fDataSEnv7) -}
-d49551a05440dbbfa8322778de2495d0
-  $fDataSEnv7 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Environments.$c2kZ8jJ02SWUIgEgFgj8MIe
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-63da7b2846c38e4d102982a5f3317b33
-  $fDataSEnv8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SEnv"#) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cdataCast1 ::
-    Data.Data.Data a =>
-    forall (t :: * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Environments.SEnv a))
-  {- Arity: 3,
-     Strictness: <L,U><C(S(SLLLL)),1*C1(U(U,U,A,A,A))><L,1*C1(U)>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (f :: forall d. Data.Data.Data d => c (t d)) ->
-                 case $dTypeable
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <* -> *>_N <t>_N)
-                        (GHC.Prim.proxy#
-                           @ (* -> *)
-                           @ t) of wild { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.Types.Environments.$fDataSEnv4 of wild1 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild2 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing
-                        @ (c (Language.Fixpoint.Types.Environments.SEnv a))
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing
-                             @ (c (Language.Fixpoint.Types.Environments.SEnv a))
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ (c (Language.Fixpoint.Types.Environments.SEnv a))
-                             (f @ a $dData)
-                               `cast`
-                             (<c>_R (UnsafeCo nominal t Language.Fixpoint.Types.Environments.SEnv <a>_N)) } } } }) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cdataCast2 ::
-    Data.Data.Data a =>
-    forall (t :: * -> * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Environments.SEnv a))
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><L,A><L,A>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c (Language.Fixpoint.Types.Environments.SEnv a))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cdataTypeOf ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> Data.Data.DataType
-  {- Arity: 2, Strictness: <L,A><L,A>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Language.Fixpoint.Types.Environments.$t5yRZoXKf80xBucM0CYlTgS) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgfoldl ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> c (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) @ (c :: * -> *) ->
-                 let {
-                   $dData1 :: Data.Data.Data
-                                (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a)
-                   = Data.HashMap.Base.$fDataHashMap
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       @ a
-                       Language.Fixpoint.Types.Names.$fDataSymbol
-                       $dData
-                       Language.Fixpoint.Types.Names.$fEqSymbol
-                       Language.Fixpoint.Types.Names.$fHashableSymbol
-                 } in
-                 \ (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 k @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol a)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   $dData1
-                   (z @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a
-                         -> Language.Fixpoint.Types.Environments.SEnv a)
-                      (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ a)
-                        `cast`
-                      (<Data.HashMap.Base.HashMap
-                          Language.Fixpoint.Types.Names.Symbol a>_R
-                       ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N))
-                   ds
-                     `cast`
-                   (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapM ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> m (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U(A,C(C1(U)),A,U,A)><L,C(C1(U))>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d) ->
-                 let {
-                   $dData1 :: Data.Data.Data
-                                (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a)
-                   = Data.HashMap.Base.$fDataHashMap
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       @ a
-                       Language.Fixpoint.Types.Names.$fDataSymbol
-                       $dData
-                       Language.Fixpoint.Types.Names.$fEqSymbol
-                       Language.Fixpoint.Types.Names.$fHashableSymbol
-                 } in
-                 let {
-                   lvl68 :: m (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Names.Symbol a
-                               -> Language.Fixpoint.Types.Environments.SEnv a)
-                   = GHC.Base.return
-                       @ m
-                       $dMonad
-                       @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                          -> Language.Fixpoint.Types.Environments.SEnv a)
-                       (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ a)
-                         `cast`
-                       (<Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a>_R
-                        ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N)
-                 } in
-                 \ (ds1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 let {
-                   lvl69 :: m (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Names.Symbol a)
-                   = ds
-                       @ (Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol a)
-                       $dData1
-                       ds1 `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                      -> Language.Fixpoint.Types.Environments.SEnv a)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   lvl68
-                   (\ (c' :: Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Names.Symbol a
-                             -> Language.Fixpoint.Types.Environments.SEnv a) ->
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a)
-                      @ (Language.Fixpoint.Types.Environments.SEnv a)
-                      lvl69
-                      (\ (x' :: Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Names.Symbol a) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (Language.Fixpoint.Types.Environments.SEnv a)
-                         (c' x')))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapMo ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> m (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl68 :: m (Language.Fixpoint.Types.Environments.SEnv a)
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ (Language.Fixpoint.Types.Environments.SEnv a)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   (let {
-                      lvl69 :: m (Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Names.Symbol a)
-                      = ds
-                          @ (Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Names.Symbol a)
-                          (Data.HashMap.Base.$fDataHashMap
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             @ a
-                             Language.Fixpoint.Types.Names.$fDataSymbol
-                             $dData
-                             Language.Fixpoint.Types.Names.$fEqSymbol
-                             Language.Fixpoint.Types.Names.$fHashableSymbol)
-                          eta `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                         -> Language.Fixpoint.Types.Environments.SEnv a,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                            -> Language.Fixpoint.Types.Environments.SEnv a,
-                            GHC.Types.Bool)
-                         (Language.Fixpoint.Types.Environments.$fDataSEnv1 @ a))
-                      (\ (ds1 :: (Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Names.Symbol a
-                                  -> Language.Fixpoint.Types.Environments.SEnv a,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       case b1 of wild1 {
-                         GHC.Types.False
-                         -> GHC.Base.mplus
-                              @ m
-                              $dMonadPlus
-                              @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                              (GHC.Base.>>=
-                                 @ m
-                                 $dMonad
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Names.Symbol a)
-                                 @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                                 lvl69
-                                 (\ (y' :: Data.HashMap.Base.HashMap
-                                             Language.Fixpoint.Types.Names.Symbol a) ->
-                                  GHC.Base.return
-                                    @ m
-                                    $dMonad
-                                    @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                                    (h y', GHC.Types.True)))
-                              (GHC.Base.return
-                                 @ m
-                                 $dMonad
-                                 @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                                 (h eta
-                                      `cast`
-                                    (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N),
-                                  GHC.Types.False))
-                         GHC.Types.True
-                         -> GHC.Base.return
-                              @ m
-                              $dMonad
-                              @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                              (h eta
-                                   `cast`
-                                 (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N),
-                               GHC.Types.True) } }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Environments.SEnv a,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl68
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Environments.SEnv a)
-                           x' } })) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapMp ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> m (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl68 :: m (Language.Fixpoint.Types.Environments.SEnv a)
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ (Language.Fixpoint.Types.Environments.SEnv a)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   (let {
-                      lvl69 :: m (Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Names.Symbol a)
-                      = ds
-                          @ (Data.HashMap.Base.HashMap
-                               Language.Fixpoint.Types.Names.Symbol a)
-                          (Data.HashMap.Base.$fDataHashMap
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             @ a
-                             Language.Fixpoint.Types.Names.$fDataSymbol
-                             $dData
-                             Language.Fixpoint.Types.Names.$fEqSymbol
-                             Language.Fixpoint.Types.Names.$fHashableSymbol)
-                          eta `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                         -> Language.Fixpoint.Types.Environments.SEnv a,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-                            -> Language.Fixpoint.Types.Environments.SEnv a,
-                            GHC.Types.Bool)
-                         (Language.Fixpoint.Types.Environments.$fDataSEnv1 @ a))
-                      (\ (ds1 :: (Data.HashMap.Base.HashMap
-                                    Language.Fixpoint.Types.Names.Symbol a
-                                  -> Language.Fixpoint.Types.Environments.SEnv a,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       GHC.Base.mplus
-                         @ m
-                         $dMonadPlus
-                         @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                         (GHC.Base.>>=
-                            @ m
-                            $dMonad
-                            @ (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Names.Symbol a)
-                            @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                            lvl69
-                            (\ (y' :: Data.HashMap.Base.HashMap
-                                        Language.Fixpoint.Types.Names.Symbol a) ->
-                             GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                               (h y', GHC.Types.True)))
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Environments.SEnv a, GHC.Types.Bool)
-                            (h eta
-                                 `cast`
-                               (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N),
-                             b1)) }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Environments.SEnv a,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl68
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Environments.SEnv a)
-                           x' } })) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapQ ::
-    Data.Data.Data a =>
-    forall u.
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Environments.SEnv a -> [u]
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,1*C1(C1(U))><L,U>m2,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 GHC.Types.:
-                   @ u
-                   (ds
-                      @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a)
-                      (Data.HashMap.Base.$fDataHashMap
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ a
-                         Language.Fixpoint.Types.Names.$fDataSymbol
-                         $dData
-                         Language.Fixpoint.Types.Names.$fEqSymbol
-                         Language.Fixpoint.Types.Names.$fHashableSymbol)
-                      eta `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))
-                   (GHC.Types.[] @ u)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapQi ::
-    Data.Data.Data a =>
-    forall u.
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> u
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case ds of wild { GHC.Types.I# x ->
-                 case x of wild1 {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> ds1
-                        @ (Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Names.Symbol a)
-                        (Data.HashMap.Base.$fDataHashMap
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           @ a
-                           Language.Fixpoint.Types.Names.$fDataSymbol
-                           $dData
-                           Language.Fixpoint.Types.Names.$fEqSymbol
-                           Language.Fixpoint.Types.Names.$fHashableSymbol)
-                        eta
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N) } }) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapQl ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> r
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U><L,C(C1(U))>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r') ->
-                 let {
-                   $dData1 :: Data.Data.Data
-                                (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a)
-                   = Data.HashMap.Base.$fDataHashMap
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       @ a
-                       Language.Fixpoint.Types.Names.$fDataSymbol
-                       $dData
-                       Language.Fixpoint.Types.Names.$fEqSymbol
-                       Language.Fixpoint.Types.Names.$fHashableSymbol
-                 } in
-                 \ (x :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 ds
-                   ds1
-                   (ds2
-                      @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a)
-                      $dData1
-                      x `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapQr ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> r
-  {- Arity: 5,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 ds
-                   (ds2
-                      @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a)
-                      (Data.HashMap.Base.$fDataHashMap
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ a
-                         Language.Fixpoint.Types.Names.$fDataSymbol
-                         $dData
-                         Language.Fixpoint.Types.Names.$fEqSymbol
-                         Language.Fixpoint.Types.Names.$fHashableSymbol)
-                      eta `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))
-                   ds1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgmapT ::
-    Data.Data.Data a =>
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fDataSEnv3
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Data.Data a>_R
-                 ->_R <forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cgunfold ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) @ (c :: * -> *) ->
-                 let {
-                   $dData1 :: Data.Data.Data
-                                (Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a)
-                   = Data.HashMap.Base.$fDataHashMap
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       @ a
-                       Language.Fixpoint.Types.Names.$fDataSymbol
-                       $dData
-                       Language.Fixpoint.Types.Names.$fEqSymbol
-                       Language.Fixpoint.Types.Names.$fHashableSymbol
-                 } in
-                 \ (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol a)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   $dData1
-                   (z @ (Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol a
-                         -> Language.Fixpoint.Types.Environments.SEnv a)
-                      (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ a)
-                        `cast`
-                      (<Data.HashMap.Base.HashMap
-                          Language.Fixpoint.Types.Names.Symbol a>_R
-                       ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$cp1Data ::
-    Data.Data.Data a =>
-    Data.Typeable.Internal.Typeable
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 1,
-     Strictness: <L,1*U(1*C1(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) ->
-                 let {
-                   ds :: Data.Typeable.Internal.TypeRep
-                   = case Language.Fixpoint.Types.Environments.$fDataSEnv4 of wild { Data.Typeable.Internal.TypeRep dt dt1 tc ks trs ->
-                     let {
-                       types :: [Data.Typeable.Internal.TypeRep]
-                       = GHC.Base.++
-                           @ Data.Typeable.Internal.TypeRep
-                           trs
-                           (GHC.Types.:
-                              @ Data.Typeable.Internal.TypeRep
-                              ((Data.Data.$p1Data @ a $dData)
-                                 `cast`
-                               (Data.Typeable.Internal.N:Typeable[0] <*>_N <a>_N)
-                                 (GHC.Prim.proxy# @ * @ a))
-                              (GHC.Types.[] @ Data.Typeable.Internal.TypeRep))
-                     } in
-                     case Data.Typeable.Internal.typeRepFingerprints
-                            ks
-                            types of kt_fps { DEFAULT ->
-                     case GHC.Fingerprint.fingerprintFingerprints
-                            (GHC.Types.:
-                               @ GHC.Fingerprint.Type.Fingerprint
-                               (Data.Typeable.Internal.tyConFingerprint tc)
-                               kt_fps) of dt2 { GHC.Fingerprint.Type.Fingerprint dt3 dt4 ->
-                     Data.Typeable.Internal.TypeRep dt3 dt4 tc ks types } } }
-                 } in
-                 (\ (wild :: GHC.Prim.Proxy#
-                               (Language.Fixpoint.Types.Environments.SEnv a)) ->
-                  ds)
-                   `cast`
-                 (Sym (Data.Typeable.Internal.N:Typeable[0]
-                           <*>_N <Language.Fixpoint.Types.Environments.SEnv a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fDataSEnv_$ctoConstr ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> Data.Data.Constr
-  {- Arity: 2, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Language.Fixpoint.Types.Environments.$c2kZ8jJ02SWUIgEgFgj8MIe) -}
-dae79859b3442c211473f5cded0c14f7
-  $fEqIBindEnv ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fEqIBindEnv_$c==
-                  Language.Fixpoint.Types.Environments.$fEqIBindEnv_$c/= -}
-dae79859b3442c211473f5cded0c14f7
-  $fEqIBindEnv_$c/= ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqIBindEnv_$s$fEqHashSet_$c/=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-dae79859b3442c211473f5cded0c14f7
-  $fEqIBindEnv_$c== ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqIBindEnv_$s$fEqHashSet_$c==
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-57eafd9fdaeacec4e9aea2af7670a3ca
-  $fEqIBindEnv_$s$fEqHashSet_$c/= ::
-    Data.HashSet.HashSet GHC.Types.Int
-    -> Data.HashSet.HashSet GHC.Types.Int -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: Data.HashSet.HashSet GHC.Types.Int)
-                   (y :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 GHC.Classes.not
-                   (Data.HashMap.Base.equalKeys
-                      @ GHC.Types.Int
-                      @ GHC.Types.Int
-                      @ ()
-                      @ ()
-                      GHC.Classes.eqInt
-                      x `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)
-                      y `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))) -}
-b7b700b5f413fcf90412092d2e997a6f
-  $fEqIBindEnv_$s$fEqHashSet_$c== ::
-    Data.HashSet.HashSet GHC.Types.Int
-    -> Data.HashSet.HashSet GHC.Types.Int -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (ds :: Data.HashSet.HashSet GHC.Types.Int)
-                   (ds1 :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 Data.HashMap.Base.equalKeys
-                   @ GHC.Types.Int
-                   @ GHC.Types.Int
-                   @ ()
-                   @ ()
-                   GHC.Classes.eqInt
-                   ds `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)
-                   ds1 `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fEqPacks ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fEqPacks_$c==
-                  Language.Fixpoint.Types.Environments.$fEqPacks_$c/= -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fEqPacks_$c/= ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqPacks_$s$fEqHashMap_$c/=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fEqPacks_$c== ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqPacks_$s$fEqHashMap_$c==
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-b8f4f11e2361b281b0f42d32469b52f8
-  $fEqPacks_$s$fEqHashMap_$c/= ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int)
-                   (y :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int) ->
-                 GHC.Classes.not
-                   (Language.Fixpoint.Types.Environments.$fEqPacks_$s$fEqHashMap_$c==
-                      x
-                      y)) -}
-40e7fe0ae59c6f11c6e8c4d228d844d8
-  $fEqPacks_$s$fEqHashMap_$c== ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (eta :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int)
-                   (eta1 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int) ->
-                 Data.HashMap.Base.equal
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ GHC.Types.Int
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Refinements.$fEqKVar_$c==
-                   GHC.Classes.eqInt
-                   eta
-                   eta1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fEqSEnv ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fEqSEnv_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Environments.$fEqSEnv_$c/= @ a $dEq) -}
-a3f28b668114d3738e77eba4a59984ea
-  $fEqSEnv1 ::
-    GHC.Classes.Eq a =>
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (eta :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Names.Symbol a)
-                   (eta1 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Names.Symbol a) ->
-                 GHC.Classes.not
-                   (Data.HashMap.Base.$fEqHashMap_$c==
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ a
-                      Language.Fixpoint.Types.Names.$fEqSymbol
-                      $dEq
-                      eta
-                      eta1)) -}
-b70cc04f46f5f0c514d174cbce7c6600
-  $fEqSEnv2 ::
-    GHC.Classes.Eq a =>
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><S,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (eta :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Names.Symbol a)
-                   (eta1 :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Names.Symbol a) ->
-                 Data.HashMap.Base.equal
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ a
-                   @ a
-                   Language.Fixpoint.Types.Names.$fEqSymbol_$c==
-                   (GHC.Classes.== @ a $dEq)
-                   eta
-                   eta1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fEqSEnv_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqSEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Classes.Eq a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Types.Bool>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fEqSEnv_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fEqSEnv2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Classes.Eq a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Types.Bool>_R) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSizedEnv ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Environments.SizedEnv a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Environments.SizedEnv a)
-                  (Language.Fixpoint.Types.Environments.$fEqSizedEnv_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Environments.$fEqSizedEnv_$c/=
-                     @ a
-                     $dEq) -}
-05c4c08cc6981f9f36aa4d9ba8d2915c
-  $fEqSizedEnv1 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.SortedReft)
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.SortedReft)
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (w2 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft))
-                   (w3 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft))[OneShot] ->
-                 case w2 of ww { (,) ww1 ww2 ->
-                 case w3 of ww3 { (,) ww4 ww5 ->
-                 case ww1 of wild { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                 case ww4 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild2 {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Refinements.$fEqSortedReft_$c==
-                        ww2
-                        ww5 } } } } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSizedEnv_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><S(SS),1*U(U,U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case w2 of ww3 { Language.Fixpoint.Types.Environments.BE ww4 ww5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww1 ww4) of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case Data.HashMap.Base.equal
-                             @ GHC.Types.Int
-                             @ GHC.Types.Int
-                             @ a
-                             @ a
-                             GHC.Classes.eqInt
-                             (GHC.Classes.== @ a w)
-                             ww2
-                             ww5 of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True -> GHC.Types.False } } } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSizedEnv_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C(C1(U)),A)><S(SS),1*U(U,U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case w2 of ww3 { Language.Fixpoint.Types.Environments.BE ww4 ww5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww1 ww4) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> Data.HashMap.Base.equal
-                        @ GHC.Types.Int
-                        @ GHC.Types.Int
-                        @ a
-                        @ a
-                        GHC.Classes.eqInt
-                        (GHC.Classes.== @ a w)
-                        ww2
-                        ww5 } } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSolEnv ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Environments.SolEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SolEnv
-                  Language.Fixpoint.Types.Environments.$fEqSolEnv_$c==
-                  Language.Fixpoint.Types.Environments.$fEqSolEnv_$c/= -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSolEnv_$c/= ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Environments.SolEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SS)),1*U(U(U,U))><S(S(SS)),1*U(U(U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Environments.SolEnv)
-                   (b :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case Language.Fixpoint.Types.Environments.$fEqSolEnv_$c==
-                        a
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fEqSolEnv_$c== ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Environments.SolEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SS)),1*U(U(U,U))><S(S(SS)),1*U(U(U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SolEnv)
-                   (w1 :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.SolEnv ww1 ->
-                 case ww1 of ww2 { Language.Fixpoint.Types.Environments.BE ww3 ww4 ->
-                 case w1 of ww5 { Language.Fixpoint.Types.Environments.SolEnv ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Environments.BE ww8 ww9 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww3 ww8) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> Data.HashMap.Base.equal
-                        @ GHC.Types.Int
-                        @ GHC.Types.Int
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        GHC.Classes.eqInt
-                        Language.Fixpoint.Types.Environments.$fEqSizedEnv1
-                        ww4
-                        ww9 } } } } }) -}
-dae79859b3442c211473f5cded0c14f7
-  $fFixpointIBindEnv ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fFixpointIBindEnv_$ctoFix
-                  Language.Fixpoint.Types.Environments.$fFixpointIBindEnv_$s$dmsimplify -}
-9d5741b9a53fae598eb20e332f21a2b7
-  $fFixpointIBindEnv1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Environments.$fFixpointIBindEnv_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Environments.$fFixpointIBindEnv2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-dd7b61c1864e877daadda592761fdb07
-  $fFixpointIBindEnv2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Environments.$fFixpointIBindEnv_s) -}
-dae79859b3442c211473f5cded0c14f7
-  $fFixpointIBindEnv_$ctoFix ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>m7, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 letrec {
-                   go6 :: [GHC.Types.Int]
-                          -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [GHC.Types.Int]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (Language.Fixpoint.Types.PrettyPrint.$fFixpointInt_$ctoFix y)
-                              `cast`
-                            (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                            (go6 ys) }
-                 } in
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet5
-                          `cast`
-                        (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                        (go6
-                           (Data.OldList.sortBy
-                              @ GHC.Types.Int
-                              GHC.Classes.compareInt
-                              (Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet1
-                                 @ GHC.Types.Int
-                                 (GHC.Types.[] @ GHC.Types.Int)
-                                 w `cast`
-                                 (Trans
-                                      (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                                      (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))))) of wild {
-                   []
-                   -> case Language.Fixpoint.Types.Environments.$fFixpointIBindEnv1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              wild1
-                              GHC.Types.True
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 Text.PrettyPrint.HughesPJ.brackets4
-                                 GHC.Types.False
-                                 Text.PrettyPrint.HughesPJ.brackets1))
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              Text.PrettyPrint.HughesPJ.brackets4
-                              GHC.Types.False
-                              Text.PrettyPrint.HughesPJ.brackets1)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                   : p ps
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                             @ ()
-                             GHC.Types.True
-                             (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                             0#
-                             ps of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Environments.$fFixpointIBindEnv1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                         @ ()
-                                         Text.PrettyPrint.HughesPJ.brackets4
-                                         GHC.Types.False
-                                         wild1)
-                                      GHC.Types.False
-                                      Text.PrettyPrint.HughesPJ.brackets1))
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      Text.PrettyPrint.HughesPJ.brackets4
-                                      GHC.Types.False
-                                      wild1)
-                                   GHC.Types.False
-                                   Text.PrettyPrint.HughesPJ.brackets1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case Language.Fixpoint.Types.Environments.$fFixpointIBindEnv1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      Text.PrettyPrint.HughesPJ.brackets4
-                                      GHC.Types.False
-                                      Text.PrettyPrint.HughesPJ.brackets1))
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   Text.PrettyPrint.HughesPJ.brackets4
-                                   GHC.Types.False
-                                   Text.PrettyPrint.HughesPJ.brackets1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-dae79859b3442c211473f5cded0c14f7
-  $fFixpointIBindEnv_$s$dmsimplify ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Environments.IBindEnv) -}
-857addb8bed2d63173b639935d345509
-  $fFixpointIBindEnv_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "env"#) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fFixpointPacks ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fFixpointPacks_$ctoFix
-                  Language.Fixpoint.Types.Environments.$fFixpointPacks_$s$dmsimplify -}
-905d99e4ea4cf085b8a1b367f768b43e
-  $fFixpointPacks1 ::
-    (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)
-    -> (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)
-    -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(S)),1*U(A,1*U(U))><S(LS(S)),1*U(A,1*U(U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int))
-                   (y :: (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)) ->
-                 case x of wild { (,) ds1 y1 ->
-                 case y1 of wild1 { GHC.Types.I# x# ->
-                 case y of wild2 { (,) ds2 y2 ->
-                 case y2 of wild3 { GHC.Types.I# y# ->
-                 GHC.Classes.compareInt# x# y# } } } }) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fFixpointPacks_$ctoFix ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Environments.Packs) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Language.Fixpoint.Types.Environments.$fFixpointPacks_go
-                              (Data.OldList.sortBy
-                                 @ (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)
-                                 Language.Fixpoint.Types.Environments.$fFixpointPacks1
-                                 (Language.Fixpoint.Types.Environments.$fFixpointPacks_go1
-                                    (GHC.Types.[]
-                                       @ (Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int))
-                                    ds
-                                      `cast`
-                                    (Language.Fixpoint.Types.Environments.N:Packs[0]))))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fFixpointPacks_$s$dmsimplify ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Environments.Packs) -}
-759f82d874673397c40deb2dd4ed9292
-  $fFixpointPacks_go ::
-    [(Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-f073a2c8c9210c5577d54eaa9a937046
-  $fFixpointPacks_go1 ::
-    [(Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> [(Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  $fFixpointSEnv ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fFixpointSEnv_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Environments.$fFixpointSEnv_$csimplify
-                     @ a
-                     $dFixpoint) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFixpointSEnv_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 eta) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFixpointSEnv_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,U(C(U),A)><S,1*U>m7, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case Language.Fixpoint.Types.Environments.$w$ctoFix
-                        @ a
-                        w
-                        w1 of ww { (#,,#) ww1 ww2 ww3 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.Beside @ () ww1 ww2 ww3)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFixpointSizedEnv ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.BindEnv
-                  Language.Fixpoint.Types.Environments.$fFixpointSizedEnv_$ctoFix
-                  Language.Fixpoint.Types.Environments.$fFixpointSizedEnv_$s$dmsimplify -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFixpointSizedEnv_$ctoFix ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(LS),1*U(A,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$ctoFix1 ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFixpointSizedEnv_$s$dmsimplify ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Environments.BindEnv) -}
-0fab027972de563e959dc3cdea754bd6
-  $fFixpointSizedEnv_go ::
-    [(Language.Fixpoint.Types.Environments.BindId,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv ::
-    Data.Foldable.Foldable Language.Fixpoint.Types.Environments.SEnv
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SEnv
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfold
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldMap
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldr
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldr'
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldl
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldl'
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldr1
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cfoldl1
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$ctoList
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cnull
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$clength
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$celem
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cmaximum
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cminimum
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$csum
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv_$cproduct -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$celem ::
-    GHC.Classes.Eq a =>
-    a -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$celem
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Classes.Eq a>_R
-                 ->_R <a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Types.Bool>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfold ::
-    GHC.Base.Monoid m =>
-    Language.Fixpoint.Types.Environments.SEnv m -> m
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(1*U,1*U,A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfold
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (m :: <*>_N).
-                 <GHC.Base.Monoid m>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <m>_N
-                 ->_R <m>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldMap ::
-    GHC.Base.Monoid m =>
-    (a -> m) -> Language.Fixpoint.Types.Environments.SEnv a -> m
-  {- Arity: 2, Strictness: <L,U(1*U,1*U,A)><L,C(U)>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldMap
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (m :: <*>_N) (a :: <*>_N).
-                 <GHC.Base.Monoid m>_R
-                 ->_R <a -> m>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <m>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldl ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SEnv a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldl
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (b :: <*>_N) (a :: <*>_N).
-                 <b -> a -> b>_R
-                 ->_R <b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <b>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldl' ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SEnv a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldl'
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (b :: <*>_N) (a :: <*>_N).
-                 <b -> a -> b>_R
-                 ->_R <b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <b>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldl1 ::
-    (a -> a -> a) -> Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldl1
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <a -> a -> a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldr ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SEnv a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> b -> b>_R
-                 ->_R <b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <b>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldr' ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SEnv a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldr'
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> b -> b>_R
-                 ->_R <b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <b>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cfoldr1 ::
-    (a -> a -> a) -> Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cfoldr1
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <a -> a -> a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$clength ::
-    Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$clength
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Types.Int>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cmaximum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,A,A,C(C1(U)),A,A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cmaximum
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Classes.Ord a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cminimum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,C(C1(U)),A,A,A,A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cminimum
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Classes.Ord a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cnull ::
-    Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$cnull
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Types.Bool>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$cproduct ::
-    GHC.Num.Num a => Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(A,A,1*U,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap1
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Data.Monoid.N:Product[0] <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$csum ::
-    GHC.Num.Num a => Language.Fixpoint.Types.Environments.SEnv a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,A,A,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap2
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Data.Monoid.N:Sum[0] <a>_R) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFoldableSEnv_$ctoList ::
-    Language.Fixpoint.Types.Environments.SEnv a -> [a]
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.$fFoldableHashMap_$ctoList
-                   @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <[a]>_R) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv ::
-    Data.Foldable.Foldable
-      Language.Fixpoint.Types.Environments.SizedEnv
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SizedEnv
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfold
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldMap
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldr
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldr'
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldl
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldl'
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldr1
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldl1
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$ctoList
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cnull
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$clength
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$celem
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cmaximum
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cminimum
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$csum
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cproduct -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv1 ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Data.Monoid.Product a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(A,A,1*U,A,A,A,1*C1(U))><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: GHC.Num.Num a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cproduct @ a w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv2 ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Data.Monoid.Sum a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,A,A,A,A,A,1*C1(U))><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: GHC.Num.Num a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$csum @ a w ww2 }) -}
-ce61bc1fb286c4acc8ed881fdd227eed
-  $fFoldableSizedEnv3 :: a
-  {- Strictness: x -}
-7cabac16ef5081e483e049f576e06b88
-  $fFoldableSizedEnv4 :: a
-  {- Strictness: x -}
-d32551bdb03b7bb6daff63ee1ecec580
-  $fFoldableSizedEnv5 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-aad417875f2010a5c8532507c74be128
-  $fFoldableSizedEnv6 ::
-    a
-    -> (GHC.Types.Int -> GHC.Types.Int)
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ a
-                   (x :: a)
-                   (k :: GHC.Types.Int -> GHC.Types.Int)[OneShot]
-                   (z :: GHC.Types.Int) ->
-                 case z of wild { GHC.Types.I# x1 ->
-                 k (GHC.Types.I# (GHC.Prim.+# x1 1#)) }) -}
-bb3cbd331e5b5e44bf6c6d10ad6885d2
-  $fFoldableSizedEnv7 :: a
-  {- Strictness: x -}
-b1d3cfbe4805cfce61df46dfef9e67b0
-  $fFoldableSizedEnv8 :: a
-  {- Strictness: x -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$celem ::
-    GHC.Classes.Eq a =>
-    a
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a ($dEq :: GHC.Classes.Eq a) (eta :: a) ->
-                 let {
-                   f :: a -> GHC.Types.Bool = GHC.Classes.== @ a $dEq eta
-                 } in
-                 let {
-                   lvl68 :: a -> GHC.Types.Bool -> GHC.Types.Bool {- Arity: 2 -}
-                   = \ (x :: a) (ds1 :: GHC.Types.Bool)[OneShot] ->
-                     case f x of wild {
-                       GHC.Types.False -> ds1 GHC.Types.True -> GHC.Types.True }
-                 } in
-                 (\ (ds :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                  case ds of wild { Language.Fixpoint.Types.Environments.BE dt a2 ->
-                  Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                    @ GHC.Types.Int
-                    @ a
-                    @ Data.Monoid.Any
-                    lvl68
-                      `cast`
-                    (<a>_R
-                     ->_R Sym (Data.Monoid.N:Any[0])
-                     ->_R Sym (Data.Monoid.N:Any[0]))
-                    GHC.Types.False `cast` (Sym (Data.Monoid.N:Any[0]))
-                    a2 })
-                   `cast`
-                 (<Language.Fixpoint.Types.Environments.SizedEnv a>_R
-                  ->_R Data.Monoid.N:Any[0])) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfold ::
-    GHC.Base.Monoid m =>
-    Language.Fixpoint.Types.Environments.SizedEnv m -> m
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,1*U,A)><S(LS),1*U(A,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ m
-                   (w :: GHC.Base.Monoid m)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv m) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfold @ m w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldMap ::
-    GHC.Base.Monoid m =>
-    (a -> m) -> Language.Fixpoint.Types.Environments.SizedEnv a -> m
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U(1*U,1*U,A)><L,C(U)><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ m
-                   @ a
-                   (w :: GHC.Base.Monoid m)
-                   (w1 :: a -> m)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldMap
-                   @ m
-                   @ a
-                   w
-                   w1
-                   ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldl ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SizedEnv a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(C1(U))><L,U><S(LS),1*U(A,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ b
-                   @ a
-                   (w :: b -> a -> b)
-                   (w1 :: b)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldl
-                   @ b
-                   @ a
-                   w
-                   w1
-                   ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldl' ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SizedEnv a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(C1(U))><L,U><S(LS),1*U(A,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ b
-                   @ a
-                   (w :: b -> a -> b)
-                   (w1 :: b)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldl'
-                   @ b
-                   @ a
-                   w
-                   w1
-                   ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldl1 ::
-    (a -> a -> a)
-    -> Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: a -> a -> a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldl1 @ a w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldr ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SizedEnv a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(C1(U))><L,U><S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (f :: a -> b -> b)
-                   (z :: b)
-                   (ds :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt a2 ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ b
-                   f
-                   z
-                   a2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldr' ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Environments.SizedEnv a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(C1(U))><L,U><S(LS),1*U(A,U)>, Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: a -> b -> b)
-                   (w1 :: b)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldr'
-                   @ a
-                   @ b
-                   w
-                   w1
-                   ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cfoldr1 ::
-    (a -> a -> a)
-    -> Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: a -> a -> a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cfoldr1 @ a w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$clength ::
-    Language.Fixpoint.Types.Environments.SizedEnv a -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ (GHC.Types.Int -> GHC.Types.Int)
-                   (Language.Fixpoint.Types.Environments.$fFoldableSizedEnv6 @ a)
-                   (GHC.Base.id @ GHC.Types.Int)
-                   ww2
-                   Language.Fixpoint.Types.Environments.$fFoldableSizedEnv5 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cmaximum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,A,A,C(C1(U)),A,A)><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cmaximum @ a w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cminimum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2,
-     Strictness: <L,U(A,A,A,C(C1(U)),A,A,A,A)><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$cminimum @ a w ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cnull ::
-    Language.Fixpoint.Types.Environments.SizedEnv a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt a2 ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ GHC.Types.Bool
-                   (Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_f @ a)
-                   GHC.Types.True
-                   a2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$cproduct ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(A,A,1*U,A,A,A,1*C1(U))><S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fFoldableSizedEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SizedEnv a>_R
-                 ->_R Data.Monoid.N:Product[0] <a>_R) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$csum ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,A,A,A,A,A,1*C1(U))><S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fFoldableSizedEnv2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SizedEnv a>_R
-                 ->_R Data.Monoid.N:Sum[0] <a>_R) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFoldableSizedEnv_$ctoList ::
-    Language.Fixpoint.Types.Environments.SizedEnv a -> [a]
-  {- Arity: 1, Strictness: <L,U>, Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ a (t1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 GHC.Base.build
-                   @ a
-                   (\ @ b (c :: a -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                    Language.Fixpoint.Types.Environments.$fFoldableSizedEnv_$cfoldr
-                      @ a
-                      @ b
-                      c
-                      n
-                      t1)) -}
-f9f63cb1406bb11d92f37c59529a53fb
-  $fFoldableSizedEnv_f :: a -> GHC.Types.Bool -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a (ds :: a) (ds1 :: GHC.Types.Bool) -> GHC.Types.False) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFunctorSEnv ::
-    GHC.Base.Functor Language.Fixpoint.Types.Environments.SEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SEnv
-                  Language.Fixpoint.Types.Environments.mapSEnv
-                  Language.Fixpoint.Types.Environments.$fFunctorSEnv_$c<$ -}
-ae9741409aa049333ef008f3802cfecf
-  $fFunctorSEnv1 ::
-    a
-    -> Language.Fixpoint.Types.Environments.SEnv b
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ b
-                   @ a
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SEnv b) ->
-                 Language.Fixpoint.Types.Environments.$fFunctorSEnv2
-                   @ b
-                   @ a
-                   (\ (ds :: b) -> eta)
-                   eta1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fFunctorSEnv2 ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol b
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  $fFunctorSEnv_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Environments.SEnv b
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a @ b ->
-                 Language.Fixpoint.Types.Environments.$fFunctorSEnv1 @ b @ a)
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv b>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFunctorSizedEnv ::
-    GHC.Base.Functor Language.Fixpoint.Types.Environments.SizedEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SizedEnv
-                  Language.Fixpoint.Types.Environments.$fFunctorSizedEnv_$cfmap
-                  Language.Fixpoint.Types.Environments.$fFunctorSizedEnv_$c<$ -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFunctorSizedEnv_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Environments.SizedEnv b
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-  {- Arity: 2, Strictness: <L,U><S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SizedEnv b) ->
-                 Language.Fixpoint.Types.Environments.$fFunctorSizedEnv_$cfmap
-                   @ b
-                   @ a
-                   (\ (ds :: b) -> eta)
-                   eta1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fFunctorSizedEnv_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Language.Fixpoint.Types.Environments.SizedEnv b
-  {- Arity: 2, Strictness: <L,C(U)><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (w :: a -> b)
-                   (w1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.Types.Environments.$w$cfmap
-                        @ a
-                        @ b
-                        w
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 Language.Fixpoint.Types.Environments.BE @ b ww4 ww5 } }) -}
-dae79859b3442c211473f5cded0c14f7
-  $fGenericIBindEnv ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fGenericIBindEnv_$cfrom
-                  Language.Fixpoint.Types.Environments.$fGenericIBindEnv_$cto -}
-dae79859b3442c211473f5cded0c14f7
-  $fGenericIBindEnv1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Environments.IBindEnv x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Environments.IBindEnv x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Environments.IBindEnv x) ->
-                 ds) -}
-dae79859b3442c211473f5cded0c14f7
-  $fGenericIBindEnv2 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 x1) -}
-dae79859b3442c211473f5cded0c14f7
-  $fGenericIBindEnv_$cfrom ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Environments.IBindEnv x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericIBindEnv2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashSet.HashSet
-                                            Language.Fixpoint.Types.Environments.BindId>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashSet.HashSet
-                                                    Language.Fixpoint.Types.Environments.BindId)>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "FB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Data.HashSet.HashSet
-                                                            Language.Fixpoint.Types.Environments.BindId))>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "IBindEnv"
-                                                           "Language.Fixpoint.Types.Environments"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "FB"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashSet.HashSet
-                                                                    Language.Fixpoint.Types.Environments.BindId)))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Environments.Rep_IBindEnv[0]))))) <x>_N))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fGenericIBindEnv_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Environments.IBindEnv x
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericIBindEnv1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep
-                    Language.Fixpoint.Types.Environments.IBindEnv x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Environments.Rep_IBindEnv[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "IBindEnv"
-                                            "Language.Fixpoint.Types.Environments"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashSet.HashSet
-                                                     Language.Fixpoint.Types.Environments.BindId)))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "FB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashSet.HashSet
-                                                       Language.Fixpoint.Types.Environments.BindId))>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashSet.HashSet
-                                                    Language.Fixpoint.Types.Environments.BindId)>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <Data.HashSet.HashSet
-                                       Language.Fixpoint.Types.Environments.BindId>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fGenericPacks ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fBinaryPacks_$cfrom
-                  Language.Fixpoint.Types.Environments.$fGenericPacks_$cto -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fGenericPacks1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Environments.Packs x) ->
-                 ds) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fGenericPacks_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs x
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericPacks1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Environments.Rep_Packs[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "Packs"
-                                            "Language.Fixpoint.Types.Environments"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "packm")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashMap.Base.HashMap
-                                                     Language.Fixpoint.Types.Refinements.KVar
-                                                     GHC.Types.Int)))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "packm")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashMap.Base.HashMap
-                                                       Language.Fixpoint.Types.Refinements.KVar
-                                                       GHC.Types.Int))>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "packm")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Refinements.KVar
-                                                    GHC.Types.Int)>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fGenericSEnv ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fGenericSEnv_$cfrom @ a)
-                  (Language.Fixpoint.Types.Environments.$fGenericSEnv_$cto @ a) -}
-ae9741409aa049333ef008f3802cfecf
-  $fGenericSEnv1 ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SEnv a) x
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SEnv a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Language.Fixpoint.Types.Environments.SEnv a) x) ->
-                 ds) -}
-ae9741409aa049333ef008f3802cfecf
-  $fGenericSEnv2 ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 x1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fGenericSEnv_$cfrom ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SEnv a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericSEnv2
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Data.HashMap.Base.HashMap
-                                            Language.Fixpoint.Types.Names.Symbol a>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "seBinds")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Names.Symbol a)>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "SE" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "seBinds")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         (Data.HashMap.Base.HashMap
-                                                            Language.Fixpoint.Types.Names.Symbol
-                                                            a))>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "SEnv"
-                                                           "Language.Fixpoint.Types.Environments"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "SE"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.True)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "seBinds")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 (Data.HashMap.Base.HashMap
-                                                                    Language.Fixpoint.Types.Names.Symbol
-                                                                    a)))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Environments.Rep_SEnv[0]
-                                                             <a>_N))))) <x>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fGenericSEnv_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SEnv a) x
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericSEnv1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep
-                    (Language.Fixpoint.Types.Environments.SEnv a) x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Environments.Rep_SEnv[0] <a>_N))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "SEnv"
-                                            "Language.Fixpoint.Types.Environments"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "SE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "seBinds")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Data.HashMap.Base.HashMap
-                                                     Language.Fixpoint.Types.Names.Symbol a)))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "SE" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "seBinds")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    (Data.HashMap.Base.HashMap
-                                                       Language.Fixpoint.Types.Names.Symbol a))>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "seBinds")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 (Data.HashMap.Base.HashMap
-                                                    Language.Fixpoint.Types.Names.Symbol
-                                                    a)>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Names.Symbol a>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N))) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSizedEnv ::
-    GHC.Generics.Generic
-      (Language.Fixpoint.Types.Environments.SizedEnv a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Environments.SizedEnv a)
-                  (Language.Fixpoint.Types.Environments.$fGenericSizedEnv_$cfrom @ a)
-                  (Language.Fixpoint.Types.Environments.$fGenericSizedEnv_$cto
-                     @ a) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSizedEnv1 ::
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "_beSize")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "beBinds")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1
-                                GHC.Generics.R (Language.Fixpoint.Types.Environments.BindMap a)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (x1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Environments.BE dt g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_beSize")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "beBinds")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R (Language.Fixpoint.Types.Environments.BindMap a)))
-                    @ x
-                    (GHC.Types.I# dt)
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "_beSize")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack>_P
-                                   <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Environments.BindMap a>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "beBinds")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      (Language.Fixpoint.Types.Environments.BindMap a)>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "BE" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_beSize")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "beBinds")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  (Language.Fixpoint.Types.Environments.BindMap
-                                                     a))>_R) <x>_N) }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSizedEnv_$cfrom ::
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Environments.SizedEnv a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericSizedEnv1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Environments.SizedEnv a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SizedEnv"
-                                       "Language.Fixpoint.Types.Environments"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "_beSize")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "beBinds")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              (Language.Fixpoint.Types.Environments.BindMap
-                                                                 a)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Environments.Rep_SizedEnv[0]
-                                         <a>_N))) <x>_N) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSizedEnv_$cto ::
-    GHC.Generics.Rep
-      (Language.Fixpoint.Types.Environments.SizedEnv a) x
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Language.Fixpoint.Types.Environments.SizedEnv a) x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Environments.Rep_SizedEnv[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "SizedEnv"
-                                        "Language.Fixpoint.Types.Environments"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_beSize")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "beBinds")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               (Language.Fixpoint.Types.Environments.BindMap
-                                                                  a)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "BE" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "_beSize")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedUnpack)
-                                        (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "beBinds")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            (Language.Fixpoint.Types.Environments.BindMap
-                                                               a))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Language.Fixpoint.Types.Environments.$WBE
-                   @ a
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_beSize")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "beBinds")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Language.Fixpoint.Types.Environments.BindMap a)>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.BindMap a>_R
-                             <x>_P)) }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSolEnv ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Environments.SolEnv
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SolEnv
-                  Language.Fixpoint.Types.Environments.$fGenericSolEnv_$cfrom
-                  Language.Fixpoint.Types.Environments.$fGenericSolEnv_$cto -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSolEnv1 ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "soeBinds")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Environments.BindEnv))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case x1 of wild { Language.Fixpoint.Types.Environments.SolEnv g1 ->
-                 g1
-                   `cast`
-                 (Trans
-                      (Sym (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Environments.BindEnv>_R
-                                <x>_P))
-                      (Trans
-                           (Sym (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.S>_P
-                                     <'GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "soeBinds")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict>_P
-                                     <GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Language.Fixpoint.Types.Environments.BindEnv>_R))
-                           (Sym (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "soeBinds")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Language.Fixpoint.Types.Environments.BindEnv)>_R)) <x>_N)) }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSolEnv_$cfrom ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Environments.SolEnv x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U(U,U))>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fGenericSolEnv1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Environments.SolEnv>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SolEnv"
-                                       "Language.Fixpoint.Types.Environments"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "soeBinds")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.BindEnv))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Environments.Rep_SolEnv[0]))) <x>_N) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fGenericSolEnv_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Environments.SolEnv x
-    -> Language.Fixpoint.Types.Environments.SolEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,U>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Environments.SolEnv x) ->
-                 Language.Fixpoint.Types.Environments.$WSolEnv
-                   ds
-                     `cast`
-                   (Trans
-                        (Trans
-                             (Sub (Language.Fixpoint.Types.Environments.Rep_SolEnv[0]))
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.D>_P
-                                       <'GHC.Generics.MetaData
-                                          "SolEnv"
-                                          "Language.Fixpoint.Types.Environments"
-                                          "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                          'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "soeBinds")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Language.Fixpoint.Types.Environments.BindEnv))>_R)
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "soeBinds")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Environments.BindEnv)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "soeBinds")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Environments.BindEnv>_R))) <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.BindEnv>_R
-                             <x>_P))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fMonoidIBindEnv ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.emptyIBindEnv
-                  Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_$cmappend
-                  Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_$cmconcat -}
-dae79859b3442c211473f5cded0c14f7
-  $fMonoidIBindEnv_$cmappend ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_$s$wunion
-                   @ ())
-                  `cast`
-                (Trans
-                     (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                     (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fMonoidIBindEnv_$cmconcat ::
-    [Language.Fixpoint.Types.Environments.IBindEnv]
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Environments.IBindEnv]) ->
-                 Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_go eta) -}
-14b71c19bb6f273e98868aeef3724d76
-  $fMonoidIBindEnv_$s$wunion ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-  {- Arity: 2, Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Environments.BindId v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId v) ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go1 @ v 0# w w1) -}
-dae79859b3442c211473f5cded0c14f7
-  $fMonoidIBindEnv_go ::
-    [Language.Fixpoint.Types.Environments.IBindEnv]
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 1, Strictness: <S,1*U> -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fMonoidPacks ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fMonoidPacks_$cmempty
-                  Language.Fixpoint.Types.Environments.$fMonoidPacks_$cmappend
-                  Language.Fixpoint.Types.Environments.$fMonoidPacks_$cmconcat -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fMonoidPacks_$cmappend ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Types.Environments.$fMonoidPacks_$s$wunion
-                   @ GHC.Types.Int)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fMonoidPacks_$cmconcat ::
-    [Language.Fixpoint.Types.Environments.Packs]
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Environments.Packs]) ->
-                 Language.Fixpoint.Types.Environments.$fMonoidPacks_go eta) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fMonoidPacks_$cmempty ::
-    Language.Fixpoint.Types.Environments.Packs
-  {- HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.Empty
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ GHC.Types.Int)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:Packs[0])) -}
-d409ebb906a0e190c89ff5dec83a0eef
-  $fMonoidPacks_$s$wunion ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 2, Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go2 @ v 0# w w1) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fMonoidPacks_go ::
-    [Language.Fixpoint.Types.Environments.Packs]
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, Strictness: <S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  $fMonoidSEnv ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Data.HashMap.Base.empty
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ a)
-                    `cast`
-                  (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N)
-                  (Language.Fixpoint.Types.Environments.$fMonoidSEnv_$cmappend @ a)
-                  (Language.Fixpoint.Types.Environments.$fMonoidSEnv_$cmconcat
-                     @ a) -}
-ae9741409aa049333ef008f3802cfecf
-  $fMonoidSEnv1 ::
-    [Language.Fixpoint.Types.Environments.SEnv a]
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, Strictness: <S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  $fMonoidSEnv_$cmappend ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fMonoidSEnv_$s$wunion
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-ae9741409aa049333ef008f3802cfecf
-  $fMonoidSEnv_$cmconcat ::
-    [Language.Fixpoint.Types.Environments.SEnv a]
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   (eta :: [Language.Fixpoint.Types.Environments.SEnv a]) ->
-                 Language.Fixpoint.Types.Environments.$fMonoidSEnv1 @ a eta) -}
-5c12660296c8ea6f28f457637a125725
-  $fMonoidSEnv_$s$wunion ::
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 2, Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol v) ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go3 @ v 0# w w1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fMonoidSizedEnv ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.BindEnv
-                  Language.Fixpoint.Types.Environments.$fMonoidSizedEnv_$cmempty
-                  Language.Fixpoint.Types.Environments.$fMonoidSizedEnv_$cmappend
-                  Language.Fixpoint.Types.Environments.$fMonoidSizedEnv_$cmconcat -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fMonoidSizedEnv1 :: Language.Fixpoint.Types.Environments.BindEnv
-  {- Strictness: x -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fMonoidSizedEnv_$cmappend ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 2, Strictness: <S(SS),1*U(U,U)><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Environments.SizedEnv
-                            (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft))
-                   (b :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt ds1 ->
-                 case dt of ds2 {
-                   DEFAULT
-                   -> case b of wild1 { Language.Fixpoint.Types.Environments.BE dt1 ds3 ->
-                      case dt1 of ds4 {
-                        DEFAULT -> Language.Fixpoint.Types.Environments.$fMonoidSizedEnv1
-                        0# -> wild } }
-                   0# -> b } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fMonoidSizedEnv_$cmconcat ::
-    [Language.Fixpoint.Types.Environments.BindEnv]
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Types.Environments.BindEnv]) ->
-                 case Language.Fixpoint.Types.Environments.$wgo
-                        w of ww { (#,#) ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   ww1
-                   ww2 }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fMonoidSizedEnv_$cmempty ::
-    Language.Fixpoint.Types.Environments.BindEnv
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Environments.emptyBindEnv) -}
-dae79859b3442c211473f5cded0c14f7
-  $fNFDataIBindEnv ::
-    Control.DeepSeq.NFData
-      Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Environments.$fNFDataIBindEnv_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Environments.IBindEnv>_N)) -}
-b0eccf13cdd1d6aea5632a9a10f5133f
-  $fNFDataIBindEnv1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "IBindEnv"
-            "Language.Fixpoint.Types.Environments"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashSet.HashSet
-                     Language.Fixpoint.Types.Environments.BindId)))))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fNFDataIBindEnv2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "IBindEnv"
-                                "Language.Fixpoint.Types.Environments"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashSet.HashSet
-                                         Language.Fixpoint.Types.Environments.BindId))))>_N)) -}
-31f76863e31c4835d0b9d50cc5b737e8
-  $fNFDataIBindEnv2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "IBindEnv"
-         "Language.Fixpoint.Types.Environments"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashSet.HashSet
-                  Language.Fixpoint.Types.Environments.BindId))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "IBindEnv"
-                              "Language.Fixpoint.Types.Environments"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.True)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    (Data.HashSet.HashSet
-                                       Language.Fixpoint.Types.Environments.BindId))))
-                           a1) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ GHC.Types.Int
-                   @ ()
-                   Control.DeepSeq.$fNFDataInt_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                   Control.DeepSeq.$fNFData()_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <()>_N))
-                   x `cast`
-                   (Trans
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.D>_P
-                                  <'GHC.Generics.MetaData
-                                     "IBindEnv"
-                                     "Language.Fixpoint.Types.Environments"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.True>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Data.HashSet.HashSet
-                                              Language.Fixpoint.Types.Environments.BindId)))>_R)
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "FB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             (Data.HashSet.HashSet
-                                                Language.Fixpoint.Types.Environments.BindId))>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          (Data.HashSet.HashSet
-                                             Language.Fixpoint.Types.Environments.BindId)>_R)) <a1>_N)
-                        (Trans
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <Data.HashSet.HashSet
-                                     Language.Fixpoint.Types.Environments.BindId>_R
-                                  <a1>_P)
-                             (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)))) -}
-dae79859b3442c211473f5cded0c14f7
-  $fNFDataIBindEnv_$s$dmrnf ::
-    Language.Fixpoint.Types.Environments.IBindEnv -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$fNFDataIBindEnv1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Environments.Rep_IBindEnv[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Environments.$fGenericIBindEnv_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fNFDataPacks ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Environments.$fNFDataPacks_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Environments.Packs>_N)) -}
-7ef38370df6fcbaeb92f65a76fa48cc2
-  $fNFDataPacks1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Packs"
-            "Language.Fixpoint.Types.Environments"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "packm")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0
-                  (Data.HashMap.Base.HashMap
-                     Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int)))))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fNFDataPacks2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Packs"
-                                "Language.Fixpoint.Types.Environments"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "packm")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Data.HashMap.Base.HashMap
-                                         Language.Fixpoint.Types.Refinements.KVar
-                                         GHC.Types.Int))))>_N)) -}
-be1e9f14c7a8f8ff2dafd6b15d10e6c3
-  $fNFDataPacks2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Packs"
-         "Language.Fixpoint.Types.Environments"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "packm")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0
-               (Data.HashMap.Base.HashMap
-                  Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Packs"
-                              "Language.Fixpoint.Types.Environments"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.True)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "packm")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0
-                                    (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int))))
-                           a1) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Refinements.$fNFDataKVar_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.KVar>_N))
-                   Control.DeepSeq.$fNFDataInt_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                   x `cast`
-                   (Trans
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.D>_P
-                                  <'GHC.Generics.MetaData
-                                     "Packs"
-                                     "Language.Fixpoint.Types.Environments"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.True>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "packm")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Refinements.KVar
-                                              GHC.Types.Int)))>_R)
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "packm")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             (Data.HashMap.Base.HashMap
-                                                Language.Fixpoint.Types.Refinements.KVar
-                                                GHC.Types.Int))>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "packm")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          (Data.HashMap.Base.HashMap
-                                             Language.Fixpoint.Types.Refinements.KVar
-                                             GHC.Types.Int)>_R)) <a1>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int>_R
-                             <a1>_P))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fNFDataPacks_$s$dmrnf ::
-    Language.Fixpoint.Types.Environments.Packs -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Environments.Packs) ->
-                 Language.Fixpoint.Types.Environments.$fNFDataPacks1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Environments.Rep_Packs[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Environments.$fBinaryPacks_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fNFDataSEnv ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U())><S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Environments.$fNFDataSEnv_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Environments.SEnv a>_N)) -}
-ae9741409aa049333ef008f3802cfecf
-  $fNFDataSEnv_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Environments.SEnv a -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U())><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dNFData :: Control.DeepSeq.NFData a)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ a
-                   Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Names.Symbol>_N))
-                   $dNFData
-                   eta
-                     `cast`
-                   (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fNFDataSizedEnv ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Environments.$fNFDataSizedEnv_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-3a92364ca6423361e69997fe6c303fae
-  $fNFDataSizedEnv1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "SizedEnv"
-            "Language.Fixpoint.Types.Environments"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "_beSize")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedUnpack)
-               (GHC.Generics.Rec0 GHC.Types.Int)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "beBinds")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0
-                                   (Language.Fixpoint.Types.Environments.BindMap
-                                      (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Refinements.SortedReft))))))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fNFDataSizedEnv2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "SizedEnv"
-                                "Language.Fixpoint.Types.Environments"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "_beSize")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.Rec0 GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "beBinds")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       (Language.Fixpoint.Types.Environments.BindMap
-                                                          (Language.Fixpoint.Types.Names.Symbol,
-                                                           Language.Fixpoint.Types.Refinements.SortedReft)))))>_N)) -}
-cd4a4c08c808c524cf280980cd32e23e
-  $fNFDataSizedEnv2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "SizedEnv"
-         "Language.Fixpoint.Types.Environments"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "_beSize")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.Rec0 GHC.Types.Int)
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "beBinds")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0
-                                (Language.Fixpoint.Types.Environments.BindMap
-                                   (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.SortedReft)))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "SizedEnv"
-                              "Language.Fixpoint.Types.Environments"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "_beSize")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.Rec0 GHC.Types.Int)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "beBinds")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     (Language.Fixpoint.Types.Environments.BindMap
-                                                        (Language.Fixpoint.Types.Names.Symbol,
-                                                         Language.Fixpoint.Types.Refinements.SortedReft)))))
-                           a1) ->
-                 case x `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "SizedEnv"
-                                   "Language.Fixpoint.Types.Environments"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   (GHC.Generics.S1
-                                      ('GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_beSize")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.Rec0 GHC.Types.Int)
-                                    GHC.Generics.:*: GHC.Generics.S1
-                                                       ('GHC.Generics.MetaSel
-                                                          ('GHC.Base.Just "beBinds")
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          (Language.Fixpoint.Types.Environments.BindMap
-                                                             (Language.Fixpoint.Types.Names.Symbol,
-                                                              Language.Fixpoint.Types.Refinements.SortedReft))))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "BE" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "_beSize")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.Rec0 GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "beBinds")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       (Language.Fixpoint.Types.Environments.BindMap
-                                                          (Language.Fixpoint.Types.Names.Symbol,
-                                                           Language.Fixpoint.Types.Refinements.SortedReft)))>_R) <a1>_N) of wild { GHC.Generics.:*: x1 y ->
-                 case x1 of tpl { DEFAULT ->
-                 Data.HashMap.Base.$fNFDataHashMap_$crnf
-                   @ GHC.Types.Int
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   Control.DeepSeq.$fNFDataInt_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Int>_N))
-                   Language.Fixpoint.Types.Environments.$fNFDataSizedEnv3
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <(Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft)>_N))
-                   y `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "beBinds")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                (Language.Fixpoint.Types.Environments.BindMap
-                                   (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.SortedReft))>_R <a1>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft)>_R
-                             <a1>_P)) } }) -}
-509680db21fce297473fe6a679654d5d
-  $fNFDataSizedEnv3 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.SortedReft)
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS(SS))),1*U(1*H,1*U(U,U(1*H,1*U)))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case ds of wild { (,) x y ->
-                 case x of wild1 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 Language.Fixpoint.Types.Refinements.$fNFDataSortedReft_$crnf
-                   y } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fNFDataSizedEnv_$s$dmrnf ::
-    Language.Fixpoint.Types.Environments.BindEnv -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 Language.Fixpoint.Types.Environments.$fNFDataSizedEnv1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Environments.Rep_SizedEnv[0]
-                                <(Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Refinements.SortedReft)>_N)))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Environments.$fGenericSizedEnv_$cfrom
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft)
-                      @ GHC.Prim.Any
-                      eta)) -}
-dae79859b3442c211473f5cded0c14f7
-  $fPPrintIBindEnv ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Environments.IBindEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.IBindEnv
-                  Language.Fixpoint.Types.Environments.$fPPrintIBindEnv_$cpprintTidy
-                  Language.Fixpoint.Types.Environments.$fPPrintIBindEnv_$cpprintPrec -}
-dae79859b3442c211473f5cded0c14f7
-  $fPPrintIBindEnv1 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintIBindEnv_$spprint
-                   (Data.OldList.sortBy
-                      @ Language.Fixpoint.Types.Environments.BindId
-                      GHC.Classes.compareInt
-                      (Data.HashSet.toList
-                         @ Language.Fixpoint.Types.Environments.BindId
-                         x `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])))) -}
-4c1d9893b3489e288d96a2df7cdbc155
-  $fPPrintIBindEnv2 ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [GHC.Types.Int]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                   eta) -}
-dae79859b3442c211473f5cded0c14f7
-  $fPPrintIBindEnv_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintIBindEnv_$cpprintTidy
-                   eta) -}
-dae79859b3442c211473f5cded0c14f7
-  $fPPrintIBindEnv_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintIBindEnv1 eta) -}
-03e3f267a980cab29a767259f6ff26ec
-  $fPPrintIBindEnv_$spprint ::
-    [Language.Fixpoint.Types.Environments.BindId]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Environments.$fPPrintIBindEnv2
-                   Language.Fixpoint.Types.PrettyPrint.pprint1
-                   Language.Fixpoint.Types.PrettyPrint.Full) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fPPrintPacks ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fPPrintPacks_$cpprintTidy
-                  Language.Fixpoint.Types.Environments.$fPPrintPacks_$cpprintPrec -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fPPrintPacks_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.Packs
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintPacks_$cpprintTidy
-                   eta) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fPPrintPacks_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.Packs
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Environments.Packs) ->
-                 Language.Fixpoint.Types.Environments.$fFixpointPacks_$ctoFix
-                   eta) -}
-ae9741409aa049333ef008f3802cfecf
-  $fPPrintSEnv ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fPPrintSEnv_$cpprintTidy
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.Environments.$fPPrintSEnv_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-9d1ab27625772032d4422343b77c5328
-  $fPPrintSEnv1 ::
-    (Language.Fixpoint.Types.Names.Symbol, a)
-    -> (Language.Fixpoint.Types.Names.Symbol, a) -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)L),1*U(1*U(U,A,A),A)><S(S(SLL)L),1*U(1*U(U,A,A),A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (x :: (Language.Fixpoint.Types.Names.Symbol, a))
-                   (y :: (Language.Fixpoint.Types.Names.Symbol, a)) ->
-                 case x of wild { (,) x1 ds1 ->
-                 case x1 of wild1 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                 case y of wild2 { (,) x2 ds4 ->
-                 case x2 of wild3 { Language.Fixpoint.Types.Names.S dt1 ds5 ds6 ->
-                 GHC.Classes.compareInt# dt dt1 } } } }) -}
-ae9741409aa049333ef008f3802cfecf
-  $fPPrintSEnv_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4, Strictness: <L,U(C(C1(U)),A)><L,A><L,U><S,1*U>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintSEnv_$cpprintTidy
-                   @ a
-                   $dPPrint
-                   eta
-                   eta1) -}
-ae9741409aa049333ef008f3802cfecf
-  $fPPrintSEnv_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,U><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ a
-                   Language.Fixpoint.Types.Names.$fPPrintSymbol
-                   $dPPrint
-                   k
-                   (Data.OldList.sortBy
-                      @ (Language.Fixpoint.Types.Names.Symbol, a)
-                      (Language.Fixpoint.Types.Environments.$fPPrintSEnv1 @ a)
-                      (Data.HashMap.Base.toList
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ a
-                         eta
-                           `cast`
-                         (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)))) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fPPrintSizedEnv ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Environments.SizedEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ (Language.Fixpoint.Types.Environments.SizedEnv a)
-                  (Language.Fixpoint.Types.Environments.$fPPrintSizedEnv_$cpprintTidy
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.Environments.$fPPrintSizedEnv_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-3176d21d678c55f463fd77d2ef42e799
-  $fPPrintSizedEnv1 ::
-    Data.HashMap.Array.Array (Data.HashMap.Base.Leaf GHC.Types.Int a)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(GHC.Types.Int, a)]
-    -> [(GHC.Types.Int, a)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-46ad4d4cfab84db4f02a0eabc994ea60
-  $fPPrintSizedEnv2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap GHC.Types.Int a)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(GHC.Types.Int, a)]
-    -> [(GHC.Types.Int, a)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-5bbe17935316a07d57962fc960f80761
-  $fPPrintSizedEnv3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap GHC.Types.Int a)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(GHC.Types.Int, a)]
-    -> [(GHC.Types.Int, a)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fPPrintSizedEnv_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,A><L,U><S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 Language.Fixpoint.Types.Environments.$fPPrintSizedEnv_$cpprintTidy
-                   @ a
-                   $dPPrint
-                   eta
-                   eta1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fPPrintSizedEnv_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A)><L,U><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case ww2 of wild {
-                   Data.HashMap.Base.Empty
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ GHC.Types.Int
-                        @ a
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                        w
-                        w1
-                        (GHC.Types.[] @ (GHC.Types.Int, a))
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ GHC.Types.Int
-                        @ a
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                        w
-                        w1
-                        (Language.Fixpoint.Types.Environments.$fPPrintSizedEnv3
-                           @ a
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.HashMap GHC.Types.Int a)
-                              dt1)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.HashMap GHC.Types.Int a)
-                              dt1)
-                           0#
-                           (GHC.Types.[] @ (GHC.Types.Int, a)))
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ GHC.Types.Int
-                        @ a
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                        w
-                        w1
-                        (GHC.Types.:
-                           @ (GHC.Types.Int, a)
-                           (dt1, dt2)
-                           (GHC.Types.[] @ (GHC.Types.Int, a)))
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ GHC.Types.Int
-                        @ a
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                        w
-                        w1
-                        (Language.Fixpoint.Types.Environments.$fPPrintSizedEnv2
-                           @ a
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.HashMap GHC.Types.Int a)
-                              dt)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.HashMap GHC.Types.Int a)
-                              dt)
-                           0#
-                           (GHC.Types.[] @ (GHC.Types.Int, a)))
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ GHC.Types.Int
-                        @ a
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                        w
-                        w1
-                        (Language.Fixpoint.Types.Environments.$fPPrintSizedEnv1
-                           @ a
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.Leaf GHC.Types.Int a)
-                              dt1)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.Leaf GHC.Types.Int a)
-                              dt1)
-                           0#
-                           (GHC.Types.[] @ (GHC.Types.Int, a))) } }) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fShowPacks ::
-    GHC.Show.Show Language.Fixpoint.Types.Environments.Packs
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.Packs
-                  Language.Fixpoint.Types.Environments.$fShowPacks_$cshowsPrec
-                  Language.Fixpoint.Types.Environments.$fShowPacks_$cshow
-                  Language.Fixpoint.Types.Environments.$fShowPacks_$cshowList -}
-2e1e9f53a896df628e5eab89a24bbe21
-  $fShowPacks1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-54acc9440c414a532d349a96af89af8d
-  $fShowPacks2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "packm = "#) -}
-44d57f00633f1e534356a35781923de4
-  $fShowPacks3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Packs {"#) -}
-f787a37c7d86064cb7939fb31179cf94
-  $fShowPacks4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Environments.$fShowPacks1
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fShowPacks_$cshow ::
-    Language.Fixpoint.Types.Environments.Packs -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Environments.Packs) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Environments.$fShowPacks3
-                   (GHC.Base.++
-                      @ GHC.Types.Char
-                      Language.Fixpoint.Types.Environments.$fShowPacks2
-                      (Data.HashMap.Base.$w$cshowsPrec
-                         @ Language.Fixpoint.Types.Refinements.KVar
-                         @ GHC.Types.Int
-                         Language.Fixpoint.Types.Refinements.$fShowKVar
-                         GHC.Show.$fShowInt
-                         0#
-                         x `cast` (Language.Fixpoint.Types.Environments.N:Packs[0])
-                         Language.Fixpoint.Types.Environments.$fShowPacks4))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fShowPacks_$cshowList ::
-    [Language.Fixpoint.Types.Environments.Packs] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Environments.Packs
-                   Language.Fixpoint.Types.Environments.$fShowPacks_$sshows) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fShowPacks_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Environments.Packs -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><L,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Environments.Packs) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Environments.$w$cshowsPrec ww1 w1 }) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $fShowPacks_$sshows ::
-    Language.Fixpoint.Types.Environments.Packs -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Environments.$fShowPacks_$cshowsPrec
-                   GHC.Show.shows22) -}
-ae9741409aa049333ef008f3802cfecf
-  $fShowSEnv ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Environments.SEnv a) =>
-    GHC.Show.Show (Language.Fixpoint.Types.Environments.SEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                       (Language.Fixpoint.Types.Environments.SEnv a)).
-                  @ (Language.Fixpoint.Types.Environments.SEnv a)
-                  (Language.Fixpoint.Types.Environments.$fShowSEnv_$cshowsPrec
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Environments.$fShowSEnv_$cshow
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Environments.$fShowSEnv_$cshowList
-                     @ a
-                     $dFixpoint) -}
-5edb14f18f2fe2ee64d74847d80e5820
-  $fShowSEnv1 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                            ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s3 dt1
-                   -> case s3 of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s4
-                        -> GHC.Base.++ @ GHC.Types.Char s4 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s4
-                        -> GHC.Base.++ @ GHC.Types.Char s4 eta } }) -}
-ae9741409aa049333ef008f3802cfecf
-  $fShowSEnv_$cshow ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Environments.SEnv a) =>
-    Language.Fixpoint.Types.Environments.SEnv a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                    (Language.Fixpoint.Types.Environments.SEnv a))
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.Environments.$fShowSEnv1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.PrettyPrint.toFix
-                      @ (Language.Fixpoint.Types.Environments.SEnv a)
-                      $dFixpoint
-                      eta)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-ae9741409aa049333ef008f3802cfecf
-  $fShowSEnv_$cshowList ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Environments.SEnv a) =>
-    [Language.Fixpoint.Types.Environments.SEnv a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(U),A)><S,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                    (Language.Fixpoint.Types.Environments.SEnv a))
-                   (ls :: [Language.Fixpoint.Types.Environments.SEnv a])
-                   (s3 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   (\ (x :: Language.Fixpoint.Types.Environments.SEnv a)
-                      (s4 :: GHC.Base.String)[OneShot] ->
-                    GHC.Base.++
-                      @ GHC.Types.Char
-                      (Language.Fixpoint.Types.Environments.$fShowSEnv_$cshow
-                         @ a
-                         $dFixpoint
-                         x)
-                      s4)
-                   ls
-                   s3) -}
-ae9741409aa049333ef008f3802cfecf
-  $fShowSEnv_$cshowsPrec ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Environments.SEnv a) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U><L,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                    (Language.Fixpoint.Types.Environments.SEnv a))
-                   (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Environments.SEnv a)
-                   (s3 :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (Language.Fixpoint.Types.Environments.$fShowSEnv_$cshow
-                         @ a
-                         $dFixpoint
-                         x))
-                   s3) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSizedEnv ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Environments.SizedEnv a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(C1(U)),A,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Types.Environments.SizedEnv a)
-                  (Language.Fixpoint.Types.Environments.$fShowSizedEnv_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Environments.$fShowSizedEnv_$cshow
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Environments.$fShowSizedEnv_$cshowList
-                     @ a
-                     $dShow) -}
-47a2f6ca65d0ba790669eb80c2d42e01
-  $fShowSizedEnv1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "beBinds = "#) -}
-f5e3502e48b24be1dd37d51531f2a16a
-  $fShowSizedEnv2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-ca4c4a4e3cd4841c263a9aa0d9867663
-  $fShowSizedEnv3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_beSize = "#) -}
-b18dbdcb7ebc469ef783baf79bd7e7b6
-  $fShowSizedEnv4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BE {"#) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSizedEnv_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Environments.SizedEnv a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A,A)><S(LS),1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 Language.Fixpoint.Types.Environments.$fShowSizedEnv_$cshowsPrec
-                   @ a
-                   $dShow
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSizedEnv_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Types.Environments.SizedEnv a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A,A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Types.Environments.SizedEnv a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Environments.SizedEnv a)
-                   (Language.Fixpoint.Types.Environments.$fShowSizedEnv_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Types.Environments.$fFoldableSizedEnv5)
-                   eta
-                   eta1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSizedEnv_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,U(C(C1(U)),A,A)><S(S),1*U(U)><S(LS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Environments.BE ww3 ww4 ->
-                 Language.Fixpoint.Types.Environments.$w$cshowsPrec1
-                   @ a
-                   w
-                   ww1
-                   ww3
-                   ww4 } }) -}
-f15807d6eaeb02255e82ec0cfe2b071b
-  $fShowSizedEnv_$s$fShow(,) ::
-    GHC.Show.Show
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Names.Symbol,
-                     Language.Fixpoint.Types.Refinements.SortedReft)
-                  (GHC.Show.$fShow(,)_$cshowsPrec
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.SortedReft
-                     Language.Fixpoint.Types.Names.$fShowSymbol
-                     Language.Fixpoint.Types.Substitutions.$fShowSortedReft)
-                  Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)_$cshow
-                  Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)_$cshowList -}
-9b1810ba06d5298a5cb8b9a08038665b
-  $fShowSizedEnv_$s$fShow(,)_$cshow ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.SortedReft)
-    -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S,1*U(1*U(A,U(U,U,U),A),U(U,U(U(A,U(U,U,U),U(U,U,U)),U)))>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 GHC.Show.$fShow(,)_$cshowsPrec
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ Language.Fixpoint.Types.Refinements.SortedReft
-                   Language.Fixpoint.Types.Names.$fShowSymbol
-                   Language.Fixpoint.Types.Substitutions.$fShowSortedReft
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-86df49138f2ad759ba739667a2dff324
-  $fShowSizedEnv_$s$fShow(,)_$cshowList ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (eta :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   (GHC.Show.$fShow(,)_$cshowsPrec
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Refinements.SortedReft
-                      Language.Fixpoint.Types.Names.$fShowSymbol
-                      Language.Fixpoint.Types.Substitutions.$fShowSortedReft
-                      GHC.Show.shows22)
-                   eta
-                   eta1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSolEnv ::
-    GHC.Show.Show Language.Fixpoint.Types.Environments.SolEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SolEnv
-                  Language.Fixpoint.Types.Environments.$fShowSolEnv_$cshowsPrec
-                  Language.Fixpoint.Types.Environments.$fShowSolEnv_$cshow
-                  Language.Fixpoint.Types.Environments.$fShowSolEnv_$cshowList -}
-fab4faff4daf482f3a85bacbe2d2d4eb
-  $fShowSolEnv1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "soeBinds = "#) -}
-9c267ec9934ff2e7553a50cb0bbe008d
-  $fShowSolEnv2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SolEnv {"#) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSolEnv_$cshow ::
-    Language.Fixpoint.Types.Environments.SolEnv -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(S),1*U(U(U,U))>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.SolEnv ww1 ->
-                 case ww1 of ww2 { Language.Fixpoint.Types.Environments.BE ww3 ww4 ->
-                 Language.Fixpoint.Types.Environments.$w$cshow ww3 ww4 } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSolEnv_$cshowList ::
-    [Language.Fixpoint.Types.Environments.SolEnv] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Environments.SolEnv
-                   Language.Fixpoint.Types.Environments.$fShowSolEnv_$sshows) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSolEnv_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Environments.SolEnv -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S(S),1*U(U(U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Environments.SolEnv ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Types.Environments.BE ww5 ww6 ->
-                 Language.Fixpoint.Types.Environments.$w$cshowsPrec2
-                   ww1
-                   ww5
-                   ww6 } } }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fShowSolEnv_$sshows ::
-    Language.Fixpoint.Types.Environments.SolEnv -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Environments.$fShowSolEnv_$cshowsPrec
-                   GHC.Show.shows22) -}
-ae9741409aa049333ef008f3802cfecf
-  $fTraversableSEnv ::
-    Data.Traversable.Traversable
-      Language.Fixpoint.Types.Environments.SEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SEnv
-                  Language.Fixpoint.Types.Environments.$fFunctorSEnv
-                  Language.Fixpoint.Types.Environments.$fFoldableSEnv
-                  Language.Fixpoint.Types.Environments.$fTraversableSEnv_$ctraverse
-                  Language.Fixpoint.Types.Environments.$fTraversableSEnv_$csequenceA
-                  Language.Fixpoint.Types.Environments.$fTraversableSEnv_$cmapM
-                  Language.Fixpoint.Types.Environments.$fTraversableSEnv_$csequence -}
-ae9741409aa049333ef008f3802cfecf
-  $fTraversableSEnv_$cmapM ::
-    GHC.Base.Monad m =>
-    (a -> m b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> m (Language.Fixpoint.Types.Environments.SEnv b)
-  {- Arity: 3,
-     Strictness: <S(SLLLL),1*U(1*U,A,A,A,A)><L,C(U)><L,1*U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: a -> m b)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 let {
-                   $dApplicative :: GHC.Base.Applicative m
-                   = GHC.Base.$p1Monad @ m $dMonad
-                 } in
-                 GHC.Base.fmap
-                   @ m
-                   (GHC.Base.$p1Applicative @ m $dApplicative)
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol b)
-                   @ (Language.Fixpoint.Types.Environments.SEnv b)
-                   (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ b)
-                     `cast`
-                   (<Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Names.Symbol b>_R
-                    ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <b>_N)
-                   (Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ m
-                      @ a
-                      @ b
-                      $dApplicative
-                      eta
-                      eta1
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fTraversableSEnv_$csequence ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Environments.SEnv (m a)
-    -> m (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 2, Strictness: <S(SLLLL),1*U(1*U,A,A,A,A)><L,1*U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   @ a
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv (m a)) ->
-                 let {
-                   $dApplicative :: GHC.Base.Applicative m
-                   = GHC.Base.$p1Monad @ m $dMonad
-                 } in
-                 GHC.Base.fmap
-                   @ m
-                   (GHC.Base.$p1Applicative @ m $dApplicative)
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol a)
-                   @ (Language.Fixpoint.Types.Environments.SEnv a)
-                   (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ a)
-                     `cast`
-                   (<Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Names.Symbol a>_R
-                    ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N)
-                   (Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ m
-                      @ (m a)
-                      @ a
-                      $dApplicative
-                      (GHC.Base.id @ (m a))
-                      eta
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <m a>_N))) -}
-ae9741409aa049333ef008f3802cfecf
-  $fTraversableSEnv_$csequenceA ::
-    GHC.Base.Applicative f =>
-    Language.Fixpoint.Types.Environments.SEnv (f a)
-    -> f (Language.Fixpoint.Types.Environments.SEnv a)
-  {- Arity: 2, Strictness: <L,U(U(U,U),C(U),C(C1(U)),A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   ($dApplicative :: GHC.Base.Applicative f)
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv (f a)) ->
-                 Language.Fixpoint.Types.Environments.$fTraversableSEnv_$ctraverse
-                   @ f
-                   @ (f a)
-                   @ a
-                   $dApplicative
-                   (GHC.Base.id @ (f a))
-                   eta) -}
-ae9741409aa049333ef008f3802cfecf
-  $fTraversableSEnv_$ctraverse ::
-    GHC.Base.Applicative f =>
-    (a -> f b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> f (Language.Fixpoint.Types.Environments.SEnv b)
-  {- Arity: 3,
-     Strictness: <S(S(C(C(S))L)LLLL),U(U(U,U),C(U),C(C1(U)),A,A)><L,C(U)><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   @ b
-                   ($dApplicative :: GHC.Base.Applicative f)
-                   (eta :: a -> f b)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 GHC.Base.fmap
-                   @ f
-                   (GHC.Base.$p1Applicative @ f $dApplicative)
-                   @ (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol b)
-                   @ (Language.Fixpoint.Types.Environments.SEnv b)
-                   (Language.Fixpoint.Types.Environments.$fDataSEnv2 @ b)
-                     `cast`
-                   (<Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Names.Symbol b>_R
-                    ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <b>_N)
-                   (Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ f
-                      @ a
-                      @ b
-                      $dApplicative
-                      eta
-                      eta1
-                        `cast`
-                      (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fTraversableSizedEnv ::
-    Data.Traversable.Traversable
-      Language.Fixpoint.Types.Environments.SizedEnv
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Environments.SizedEnv
-                  Language.Fixpoint.Types.Environments.$fFunctorSizedEnv
-                  Language.Fixpoint.Types.Environments.$fFoldableSizedEnv
-                  Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$ctraverse
-                  Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$csequenceA
-                  Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$cmapM
-                  Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$csequence -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fTraversableSizedEnv_$cmapM ::
-    GHC.Base.Monad m =>
-    (a -> m b)
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> m (Language.Fixpoint.Types.Environments.SizedEnv b)
-  {- Arity: 3,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),1*U(1*U(U(U,U),C(U),C(C1(U)),A,A),A,A,A,A)><L,C(U)><S(LS),1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: a -> m b)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$ctraverse
-                   @ m
-                   @ a
-                   @ b
-                   (GHC.Base.$p1Monad @ m $dMonad)
-                   eta
-                   eta1) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fTraversableSizedEnv_$csequence ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Environments.SizedEnv (m a)
-    -> m (Language.Fixpoint.Types.Environments.SizedEnv a)
-  {- Arity: 2,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),1*U(1*U(U(U,U),C(U),C(C1(U)),A,A),A,A,A,A)><S(LS),1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: Language.Fixpoint.Types.Environments.SizedEnv (m a)) ->
-                 Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$ctraverse
-                   @ m
-                   @ (m a)
-                   @ a
-                   (GHC.Base.$p1Monad @ m $dMonad)
-                   (GHC.Base.id @ (m a))
-                   eta) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fTraversableSizedEnv_$csequenceA ::
-    GHC.Base.Applicative f =>
-    Language.Fixpoint.Types.Environments.SizedEnv (f a)
-    -> f (Language.Fixpoint.Types.Environments.SizedEnv a)
-  {- Arity: 2, Strictness: <L,U(U(U,U),C(U),C(C1(U)),A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   ($dApplicative :: GHC.Base.Applicative f)
-                   (eta :: Language.Fixpoint.Types.Environments.SizedEnv (f a)) ->
-                 Language.Fixpoint.Types.Environments.$fTraversableSizedEnv_$ctraverse
-                   @ f
-                   @ (f a)
-                   @ a
-                   $dApplicative
-                   (GHC.Base.id @ (f a))
-                   eta) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $fTraversableSizedEnv_$ctraverse ::
-    GHC.Base.Applicative f =>
-    (a -> f b)
-    -> Language.Fixpoint.Types.Environments.SizedEnv a
-    -> f (Language.Fixpoint.Types.Environments.SizedEnv b)
-  {- Arity: 3,
-     Strictness: <S(S(C(C(S))L)LLLL),U(U(U,U),C(U),C(C1(U)),A,A)><L,C(U)><S(LS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   @ b
-                   (w :: GHC.Base.Applicative f)
-                   (w1 :: a -> f b)
-                   (w2 :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$w$ctraverse
-                   @ f
-                   @ a
-                   @ b
-                   w
-                   w1
-                   ww1
-                   ww2 }) -}
-ed5a081fc1c9ca30e4f08d7d26f0334b
-  $s$fBinaryHashMap_f ::
-    [(Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)]
-    -> Data.Binary.Put.Put
-  {- Unfolding: (Data.Binary.Class.$fBinary(,)_$cputList
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Refinements.$fBinaryKVar
-                   Data.Binary.Class.$fBinaryInt) -}
-40bfa6d1ed982bf0638726268ceb7faf
-  $s$wupdateOrConcatWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf
-                            Language.Fixpoint.Types.Refinements.KVar v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo22 :: forall s3.
-                             Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                             -> Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# s3
-                             -> (# GHC.Prim.State# s3,
-                                   Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s3
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Refinements.KVar v))
-                       (w2 :: Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s3)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds1 ->
-                          case GHC.Prim.writeArray#
-                                 @ s3
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds1
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds2 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ds2
-                                         ww2 of ds4 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds3 ->
-                                  case k1
-                                         `cast`
-                                       (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                                  Language.Fixpoint.Types.Environments.$wpoly_go4
-                                    @ v
-                                    ww5
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf
-                                            Language.Fixpoint.Types.Refinements.KVar v)
-                                       ww) } } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo22 @ s3 w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo22
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Refinements.KVar v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds2 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Types.Environments.$wgo1
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf
-                            Language.Fixpoint.Types.Refinements.KVar v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Refinements.KVar v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Refinements.KVar v))
-                        GHC.Prim.realWorld# of ds4 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Refinements.KVar v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s3 { DEFAULT ->
-                 letrec {
-                   $wgo23 :: GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# GHC.Prim.RealWorld
-                             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds5 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ww1
-                                      ww4 of ds6 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo23 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ww
-                                      i# of ds6 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ww1
-                                      ww4 of ds7 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds8 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         k1
-                                         (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo23 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo23 n1 0# s3 of ds5 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Refinements.KVar v)
-                        ipv8
-                        ipv9 of ds6 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-e414658f72a31a9871e9f3cef9d982d6
-  $s$wupdateOrConcatWithKey1 ::
-    (Language.Fixpoint.Types.Environments.BindId -> v -> v -> v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: Language.Fixpoint.Types.Environments.BindId -> v -> v -> v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Environments.BindId v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf
-                            Language.Fixpoint.Types.Environments.BindId v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo22 :: forall s3.
-                             Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Environments.BindId v)
-                             -> Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# s3
-                             -> (# GHC.Prim.State# s3,
-                                   Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s3
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Environments.BindId v))
-                       (w2 :: Data.HashMap.Array.MArray s3 (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s3)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds1 ->
-                          case GHC.Prim.writeArray#
-                                 @ s3
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds1
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds2 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Environments.BindId v)
-                                         ds2
-                                         ww2 of ds4 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds3 ->
-                                  case k1 of ww4 { GHC.Types.I# ww5 ->
-                                  Language.Fixpoint.Types.Environments.$wpoly_go5
-                                    @ v
-                                    ww5
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf
-                                            Language.Fixpoint.Types.Environments.BindId v)
-                                       ww) } } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo22 @ s3 w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo22
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds2 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Types.Environments.$wgo2
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf
-                            Language.Fixpoint.Types.Environments.BindId v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Environments.BindId v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId v))
-                        GHC.Prim.realWorld# of ds4 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Environments.BindId v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s3 { DEFAULT ->
-                 letrec {
-                   $wgo23 :: GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# GHC.Prim.RealWorld
-                             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds5 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ww1
-                                      ww4 of ds6 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo23 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ww
-                                      i# of ds6 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ww1
-                                      ww4 of ds7 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds8 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Environments.BindId
-                                         @ v
-                                         k1
-                                         (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo23 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo23 n1 0# s3 of ds5 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf
-                             Language.Fixpoint.Types.Environments.BindId v)
-                        ipv8
-                        ipv9 of ds6 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-40921ed1426ee19c95566e3c44da0624
-  $sadjust ::
-    (v -> v)
-    -> Language.Fixpoint.Types.Environments.BindId
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(U)><S(S),U(U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ v
-                   (w :: v -> v)
-                   (w1 :: Language.Fixpoint.Types.Environments.BindId)
-                   (w2 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId v) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Environments.$w$sadjust @ v w ww1 w2 }) -}
-82da83982a3755300bd8e19c0315ee32
-  $scoalesce1 ::
-    Language.Fixpoint.Misc.EqHash
-      Language.Fixpoint.Types.Refinements.KVar
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: ((Language.Fixpoint.Types.Refinements.$fEqKVar,
-                  Language.Fixpoint.Types.Refinements.$fOrdKVar,
-                  Language.Fixpoint.Types.Refinements.$fHashableKVar)) -}
-fb347a29a5f675f43efb05036b86661b
-  $sdifference ::
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol w
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 2, Strictness: <S,1*U><L,U> -}
-fd39a19abbcee7d2cf848b9606d5c7e2
-  $sinsert ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 3, Strictness: <S(LS(SSS)S),U(U,U(U,U,U),U)><L,U><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ v
-                   (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: v)
-                   (w2 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol v) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Environments.$w$sinsert
-                   @ v
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3
-                   w1
-                   w2 } }) -}
-d1eaa84f60e531babe772f02e4a4c37e
-  $sintersectionWith ::
-    (v1 -> v2 -> v3)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol v1
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol v2
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol v3
-  {- Arity: 3, Strictness: <L,C(C1(U))><S,1*U><L,U> -}
-41673a7dada098828665b1f4bd11865d
-  $slookup ::
-    Language.Fixpoint.Types.Refinements.KVar
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Base.Maybe v
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Environments.$w$slookup
-                   @ v
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-c5cda4629569f5595c11a1bcd28620e5
-  $slookup1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> GHC.Base.Maybe v
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ v
-                   (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol v) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Environments.$w$slookup1
-                   @ v
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-b889725e063af83357656c204b41c115
-  $slookup3 ::
-    Data.HashMap.Base.Hash
-    -> Language.Fixpoint.Types.Environments.BindId
-    -> Data.HashMap.Base.Shift
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,1*U(U)><S,1*U(U)><S,1*U(U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ v
-                   (w :: Data.HashMap.Base.Hash)
-                   (w1 :: Language.Fixpoint.Types.Environments.BindId)
-                   (w2 :: Data.HashMap.Base.Shift)
-                   (w3 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId v) ->
-                 case w of ww { GHC.Types.W# ww1 ->
-                 case w1 of ww2 { GHC.Types.I# ww3 ->
-                 case w2 of ww4 { GHC.Types.I# ww5 ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go13
-                   @ v
-                   ww1
-                   ww3
-                   ww5
-                   w3 } } }) -}
-b0e9a86b6043cc2489dfc97779579f73
-  $t5yRZoXKf80xBucM0CYlTgS :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Environments.$fDataSEnv8
-                   Language.Fixpoint.Types.Environments.$fDataSEnv6) -}
-ffb76b159b6efe14647ac6b5d8fb5f02
-  $tFzbslrEMRyVKDg48SEkL9E :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv10
-                   Language.Fixpoint.Types.Environments.$fDataIBindEnv8) -}
-af911e980e9a9e38ae935e3e633ba6c5
-  $tc'Alts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18382222483900753889##
-                   8370806742538303380##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'Alts1) -}
-768d3bfa95ecace87a6615328857acf9
-  $tc'Alts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Alts"#) -}
-c72b96bc61010fb4a3991698c83fdfc4
-  $tc'BE :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1732433167573489562##
-                   5839571012246887198##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'BE1) -}
-109888020555ef9fb9da702f3f6d2e05
-  $tc'BE1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BE"#) -}
-53b190449c0c821dc851a1a9518e1442
-  $tc'FB :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7619711763400076099##
-                   8832596686170440606##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'FB1) -}
-2d6dcdef5dc20ee6b043557aa04979f5
-  $tc'FB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FB"#) -}
-f2b467a9df4d991dd131454b381465ee
-  $tc'Found :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6738265842690003738##
-                   12717493402611055204##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'Found1) -}
-f387fd031ae08fde03e57f7a41badfea
-  $tc'Found1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Found"#) -}
-8c219ba4f222c6862cec14ed7199e148
-  $tc'Packs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5544455519979633714##
-                   6218628872042155140##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'Packs1) -}
-1c5234bce5e500bab3047d9a6d9ac8f0
-  $tc'Packs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Packs"#) -}
-66d399dad2a004a9e812051dac7635d4
-  $tc'SE :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6301837620031861074##
-                   12782329430255437217##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'SE1) -}
-ebe2ddbec8d914ad0029a827351bb6d2
-  $tc'SE1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SE"#) -}
-66a4acd1864135dd91e6c485918a31f9
-  $tc'SolEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4639621680110987254##
-                   5648015105047357161##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tc'SolEnv1) -}
-925e552c62df467184579dbd77f1d775
-  $tc'SolEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SolEnv"#) -}
-955e90864314eaec3b100cb42d4efe3c
-  $tcIBindEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16603441310162428276##
-                   853371338253927225##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcIBindEnv1) -}
-cb738d7c6555adc93f98efb60c727570
-  $tcIBindEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "IBindEnv"#) -}
-68dba0196199aa24e070045506aab00e
-  $tcPacks :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8465122340844312201##
-                   1298728764522222738##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcPacks1) -}
-3f04527882ea97ae725778932d0b2bdf
-  $tcPacks1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Packs"#) -}
-6d5a508a4907da3f32192becb15e42ed
-  $tcSESearch :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17552328154483258288##
-                   10262403045258706292##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcSESearch1) -}
-58812dbaf5fbd804fb9d04258f63bd2c
-  $tcSESearch1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SESearch"#) -}
-1bdc9c2b9f4b6b88e21a46b1dcfe3616
-  $tcSEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   435480431205523914##
-                   7377899865707558582##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcSEnv1) -}
-d20ace260743e99e16411837cda46098
-  $tcSEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SEnv"#) -}
-bacde88d0d6ddad42a256efb1cdda488
-  $tcSizedEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3562623355459549620##
-                   12363394527125191430##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcSizedEnv1) -}
-f75fbe896a7b5e763ce7ece650ed5081
-  $tcSizedEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SizedEnv"#) -}
-603513460668f73ce7af1ee8a76729fa
-  $tcSolEnv :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9180170929148640060##
-                   3167295311513007259##
-                   Language.Fixpoint.Types.Environments.$trModule
-                   Language.Fixpoint.Types.Environments.$tcSolEnv1) -}
-5d109671f5b3500cc6bcea3fcf834a2d
-  $tcSolEnv1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SolEnv"#) -}
-41b8aa6e705304f9d839e0276f6552b7
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Environments.$trModule2
-                   Language.Fixpoint.Types.Environments.$trModule1) -}
-350f17eb69267ea524ef63283fa8640b
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Environments"#) -}
-3a24df98df4cd8646cab627753b99960
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-6b44f7f04368108031b9718e39c3c2be
-  $w$cfmap ::
-    (a -> b)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap a
-    -> (# GHC.Prim.Int#,
-          Language.Fixpoint.Types.Environments.BindMap b #)
-  {- Arity: 3, Strictness: <L,C(U)><S,U><S,U>, Inline: [0] -}
-8012fa7f82cee8f8165f937c673d1aa3
-  $w$cfold ::
-    GHC.Base.Monoid m =>
-    Language.Fixpoint.Types.Environments.BindMap m -> m
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(1*U,1*U,A)><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ m
-                   (w :: GHC.Base.Monoid m)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap m) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ m
-                   @ m
-                   (let {
-                      f1 :: m -> m -> m = GHC.Base.mappend @ m w
-                    } in
-                    \ (x :: m) -> f1 x)
-                   (GHC.Base.mempty @ m w)
-                   ww) -}
-632ac3df184c23fe035fa960e1020f04
-  $w$cfoldMap ::
-    GHC.Base.Monoid m =>
-    (a -> m) -> Language.Fixpoint.Types.Environments.BindMap a -> m
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U(1*U,1*U,A)><L,C(U)><S,U>, Inline: [0],
-     Unfolding: (\ @ m
-                   @ a
-                   (w :: GHC.Base.Monoid m)
-                   (w1 :: a -> m)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ m
-                   (let {
-                      f1 :: m -> m -> m = GHC.Base.mappend @ m w
-                    } in
-                    \ (x :: a) -> f1 (w1 x))
-                   (GHC.Base.mempty @ m w)
-                   ww) -}
-661d7f02630039d6953fff278f52a9e6
-  $w$cfoldl ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.BindMap a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ b
-                   @ a
-                   (w :: b -> a -> b)
-                   (w1 :: b)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                    @ GHC.Types.Int
-                    @ a
-                    @ (Data.Monoid.Dual (Data.Monoid.Endo b))
-                    (\ (x :: a)
-                       (eta :: Data.Monoid.Dual (Data.Monoid.Endo b))[OneShot]
-                       (eta1 :: b) ->
-                     eta `cast` (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b>_R))
-                       (w eta1 x))
-                      `cast`
-                    (<a>_R
-                     ->_R <Data.Monoid.Dual (Data.Monoid.Endo b)>_R
-                     ->_R Sym (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b>_R)))
-                    (GHC.Base.id @ b)
-                      `cast`
-                    (Sym (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b>_R)))
-                    ww)
-                   `cast`
-                 (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b>_R))
-                   w1) -}
-ed9ebd16bbf5537c2d43f50b228c1aa7
-  $w$cfoldl' ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Environments.BindMap a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ b
-                   @ a
-                   (w :: b -> a -> b)
-                   (w1 :: b)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ (b -> b)
-                   (\ (x :: a) (k :: b -> b)[OneShot] (z :: b) ->
-                    case w z x of vx { DEFAULT -> k vx })
-                   (GHC.Base.id @ b)
-                   ww
-                   w1) -}
-8cb516dc054d563c69d2031f63407892
-  $w$cfoldl1 ::
-    (a -> a -> a)
-    -> Language.Fixpoint.Types.Environments.BindMap a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: a -> a -> a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 case (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                         @ GHC.Types.Int
-                         @ a
-                         @ (Data.Monoid.Dual (Data.Monoid.Endo (GHC.Base.Maybe a)))
-                         (\ (x :: a)
-                            (eta :: Data.Monoid.Dual
-                                      (Data.Monoid.Endo (GHC.Base.Maybe a)))[OneShot]
-                            (eta1 :: GHC.Base.Maybe a) ->
-                          eta
-                            `cast`
-                          (Data.Monoid.N:Dual[0]
-                               (Data.Monoid.N:Endo[0] <GHC.Base.Maybe a>_R))
-                            (GHC.Base.Just
-                               @ a
-                               (case eta1 of wild {
-                                  GHC.Base.Nothing -> x GHC.Base.Just x1 -> w x1 x })))
-                           `cast`
-                         (<a>_R
-                          ->_R <Data.Monoid.Dual (Data.Monoid.Endo (GHC.Base.Maybe a))>_R
-                          ->_R Sym (Data.Monoid.N:Dual[0]
-                                        (Data.Monoid.N:Endo[0] <GHC.Base.Maybe a>_R)))
-                         (GHC.Base.id @ (GHC.Base.Maybe a))
-                           `cast`
-                         (Sym (Data.Monoid.N:Dual[0]
-                                   (Data.Monoid.N:Endo[0] <GHC.Base.Maybe a>_R)))
-                         ww)
-                        `cast`
-                      (Data.Monoid.N:Dual[0]
-                           (Data.Monoid.N:Endo[0] <GHC.Base.Maybe a>_R))
-                        (GHC.Base.Nothing @ a) of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.$fFoldableSizedEnv7 @ a
-                   GHC.Base.Just v -> v }) -}
-cc5f5d0341a7ccd569eff3ed0c8965a5
-  $w$cfoldr' ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Environments.BindMap a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   (w :: a -> b -> b)
-                   (w1 :: b)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                    @ GHC.Types.Int
-                    @ a
-                    @ (Data.Monoid.Dual (Data.Monoid.Endo (b -> b)))
-                    (\ (x :: a)
-                       (eta :: Data.Monoid.Dual (Data.Monoid.Endo (b -> b)))[OneShot]
-                       (eta1 :: b -> b) ->
-                     eta
-                       `cast`
-                     (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b -> b>_R))
-                       (\ (z :: b) -> case w x z of vx { DEFAULT -> eta1 vx }))
-                      `cast`
-                    (<a>_R
-                     ->_R <Data.Monoid.Dual (Data.Monoid.Endo (b -> b))>_R
-                     ->_R Sym (Data.Monoid.N:Dual[0]
-                                   (Data.Monoid.N:Endo[0] <b -> b>_R)))
-                    (GHC.Base.id @ (b -> b))
-                      `cast`
-                    (Sym (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b -> b>_R)))
-                    ww)
-                   `cast`
-                 (Data.Monoid.N:Dual[0] (Data.Monoid.N:Endo[0] <b -> b>_R))
-                   (GHC.Base.id @ b)
-                   w1) -}
-0c5acecf484131c846a8b46fe5d75fd3
-  $w$cfoldr1 ::
-    (a -> a -> a)
-    -> Language.Fixpoint.Types.Environments.BindMap a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: a -> a -> a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 case Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                        @ GHC.Types.Int
-                        @ a
-                        @ (GHC.Base.Maybe a)
-                        (\ (x :: a) (m :: GHC.Base.Maybe a)[OneShot] ->
-                         GHC.Base.Just
-                           @ a
-                           (case m of wild {
-                              GHC.Base.Nothing -> x GHC.Base.Just y -> w x y }))
-                        (GHC.Base.Nothing @ a)
-                        ww of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.$fFoldableSizedEnv8 @ a
-                   GHC.Base.Just v -> v }) -}
-287acbd8808107ab82c6e60af57b2616
-  $w$cget ::
-    (Data.Hashable.Class.Hashable a, GHC.Classes.Eq a,
-     Data.Binary.Class.Binary a) =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success (Data.HashSet.HashSet a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 8,
-     Strictness: <L,U(A,C(U(U)))><L,U(C(C1(U)),A)><L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Hashable.Class.Hashable a)
-                   (w1 :: GHC.Classes.Eq a)
-                   (w2 :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w3 :: Data.Binary.Get.Internal.Success
-                            (Data.HashSet.HashSet a) r) ->
-                 letrec {
-                   go6 :: [a]
-                          -> Data.HashMap.Base.HashMap a () -> Data.HashMap.Base.HashMap a ()
-                     {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-                   = \ (ds :: [a]) (eta :: Data.HashMap.Base.HashMap a ()) ->
-                     case ds of wild {
-                       [] -> eta
-                       : y ys
-                       -> go6
-                            ys
-                            (Data.HashMap.Base.insert @ a @ () w1 w y GHC.Tuple.() eta) }
-                 } in
-                 Data.Binary.Class.$w$cget10
-                   @ a
-                   w2
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [a])[OneShot] ->
-                    w3
-                      i'
-                      (go6 a1 (Data.HashMap.Base.Empty @ a @ ()))
-                        `cast`
-                      (Sym (Data.HashSet.N:HashSet[0] <a>_N)))) -}
-dae79859b3442c211473f5cded0c14f7
-  $w$cget1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Environments.IBindEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Environments.IBindEnv r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ GHC.Types.Int
-                   Data.Binary.Class.$fBinaryInt
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [GHC.Types.Int])[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Environments.$fBinaryHashSet2 a1)
-                        `cast`
-                      (Trans
-                           (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N))
-                           (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))))) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $w$cget2 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Environments.BindEnv r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Environments.BindEnv r) ->
-                 Data.Binary.Class.$w$cget9
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: GHC.Types.Int)[OneShot] ->
-                    (Language.Fixpoint.Types.Refinements.$fBinaryHashMap_$cget
-                       @ GHC.Types.Int
-                       @ (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)
-                       Data.Hashable.Class.$fHashableInt
-                       GHC.Classes.$fEqInt
-                       Data.Binary.Class.$fBinaryInt
-                       Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$s$fBinary(,))
-                      `cast`
-                    (Data.Binary.Get.Internal.N:Get[0]
-                         <Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId
-                            (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)>_R)
-                      @ r
-                      i'
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Environments.BindId
-                                  (Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                       w i'1
-                         (Language.Fixpoint.Types.Environments.$WBE
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft)
-                            a1
-                            a2)))) -}
-9bbda65106524ea8a4f79942f4e25dac
-  $w$cmaximum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.BindMap a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,A,A,C(C1(U)),A,A)><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 case (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                         @ GHC.Types.Int
-                         @ a
-                         @ (Data.Foldable.Max a)
-                         (\ (x :: a) (eta :: Data.Foldable.Max a)[OneShot] ->
-                          case eta `cast` (Data.Foldable.N:Max[0] <a>_N) of wild {
-                            GHC.Base.Nothing
-                            -> (GHC.Base.Just @ a x)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                            GHC.Base.Just ipv
-                            -> case GHC.Classes.>= @ a w x ipv of wild2 {
-                                 GHC.Types.False -> wild `cast` (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                                 GHC.Types.True
-                                 -> (GHC.Base.Just @ a x)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Max[0]) <a>_N) } })
-                         (GHC.Base.Nothing @ a) `cast` (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                         ww)
-                        `cast`
-                      (Data.Foldable.N:Max[0] <a>_N) of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.$fFoldableSizedEnv4 @ a
-                   GHC.Base.Just v -> v }) -}
-d54010112dadf0257fdbed13e3567af1
-  $w$cminimum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Environments.BindMap a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,C(C1(U)),A,A,A,A)><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 case (Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                         @ GHC.Types.Int
-                         @ a
-                         @ (Data.Foldable.Min a)
-                         (\ (x :: a) (eta :: Data.Foldable.Min a)[OneShot] ->
-                          case eta `cast` (Data.Foldable.N:Min[0] <a>_N) of wild {
-                            GHC.Base.Nothing
-                            -> (GHC.Base.Just @ a x)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                            GHC.Base.Just ipv
-                            -> case GHC.Classes.<= @ a w x ipv of wild2 {
-                                 GHC.Types.False -> wild `cast` (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                                 GHC.Types.True
-                                 -> (GHC.Base.Just @ a x)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Min[0]) <a>_N) } })
-                         (GHC.Base.Nothing @ a) `cast` (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                         ww)
-                        `cast`
-                      (Data.Foldable.N:Min[0] <a>_N) of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.$fFoldableSizedEnv3 @ a
-                   GHC.Base.Just v -> v }) -}
-b4e6a811098fd76844a00b3cd1edcc8e
-  $w$cproduct ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.BindMap a
-    -> Data.Monoid.Product a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(A,A,1*U,A,A,A,1*C1(U))><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Num.Num a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ (Data.Monoid.Product a)
-                   (let {
-                      f1 :: a -> a -> a = GHC.Num.* @ a w
-                    } in
-                    (\ (x :: a) -> f1 x)
-                      `cast`
-                    (<a>_R
-                     ->_R Sym (Data.Monoid.N:Product[0] <a>_R)
-                     ->_R Sym (Data.Monoid.N:Product[0] <a>_R)))
-                   (Data.Monoid.$fMonoidProduct2 @ a w)
-                     `cast`
-                   (Sym (Data.Monoid.N:Product[0] <a>_R))
-                   ww) -}
-804de34bece661df43592c676c20a3e6
-  $w$cput ::
-    Data.Binary.Class.Binary a =>
-    Data.HashSet.HashSet a -> Data.Binary.Put.Put
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLC(S)),1*U(A,A,1*C1(U(U,U)))><L,1*U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (w1 :: Data.HashSet.HashSet a) ->
-                 Data.Binary.Class.putList
-                   @ a
-                   w
-                   (Language.Fixpoint.Types.Environments.$fBinaryHashSet7
-                      @ a
-                      (GHC.Types.[] @ a)
-                      w1 `cast` (Data.HashSet.N:HashSet[0] <a>_N))) -}
-7c6be1a9855a405d36f96fc1aff1afb6
-  $w$cput1 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Language.Fixpoint.Types.Environments.$fBinarySizedEnv_f
-                                (Language.Fixpoint.Types.Environments.$fBinarySizedEnv_go1
-                                   (GHC.Types.[]
-                                      @ (GHC.Types.Int,
-                                         (Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Refinements.SortedReft)))
-                                   ww1))
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds w' ->
-                        w' }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput1
-                               (GHC.Types.I# ww) of ww2 { (#,#) ww3 ww4 ->
-                        ww4 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-6bdcc0576724e3b1e8a692c37fc9ac78
-  $w$cshow ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Environments.$fShowSolEnv2
-                   (GHC.Base.++
-                      @ GHC.Types.Char
-                      Language.Fixpoint.Types.Environments.$fShowSolEnv1
-                      (Language.Fixpoint.Types.Environments.$w$s$cshowsPrec
-                         0#
-                         ww
-                         ww1
-                         Language.Fixpoint.Types.Environments.$fShowPacks4))) -}
-999de3bcf4ed26dd71bfcb519acbd47a
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.Packs -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,U><L,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Environments.Packs) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ Language.Fixpoint.Types.Refinements.KVar
-                       @ GHC.Types.Int
-                       Language.Fixpoint.Types.Refinements.$fShowKVar
-                       GHC.Show.$fShowInt
-                       0#
-                       w `cast` (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Environments.$fShowPacks3
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Environments.$fShowPacks2
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Environments.$fShowPacks1
-                                x)))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-2eee542de3e0da5d9453935c5b4d1b18
-  $w$cshowsPrec1 ::
-    GHC.Show.Show a =>
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap a
-    -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <L,U(C(C1(U)),A,A)><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ GHC.Types.Int
-                       @ a
-                       GHC.Show.$fShowInt
-                       w
-                       0#
-                       ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Environments.$fShowSizedEnv4
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Environments.$fShowSizedEnv3
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Types.Environments.$fShowSizedEnv2
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Types.Environments.$fShowSizedEnv1
-                                        (f (GHC.Base.++
-                                              @ GHC.Types.Char
-                                              Language.Fixpoint.Types.Environments.$fShowPacks1
-                                              x)))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-3e4806967a6c31ff0ffa6153ca4e90fc
-  $w$cshowsPrec2 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Language.Fixpoint.Types.Environments.$w$s$cshowsPrec 0# ww1 ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Environments.$fShowSolEnv2
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Environments.$fShowSolEnv1
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Environments.$fShowPacks1
-                                x)))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-84572a4677ca1f28b24d1404aa867d84
-  $w$csum ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Environments.BindMap a -> Data.Monoid.Sum a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(1*U,A,A,A,A,A,1*C1(U))><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Num.Num a)
-                   (ww :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 Data.HashMap.Base.$fFoldableHashMap_$cfoldr
-                   @ GHC.Types.Int
-                   @ a
-                   @ (Data.Monoid.Sum a)
-                   (let {
-                      f1 :: a -> a -> a = GHC.Num.+ @ a w
-                    } in
-                    (\ (x :: a) -> f1 x)
-                      `cast`
-                    (<a>_R
-                     ->_R Sym (Data.Monoid.N:Sum[0] <a>_R)
-                     ->_R Sym (Data.Monoid.N:Sum[0] <a>_R)))
-                   (Data.Monoid.$fMonoidSum2 @ a w)
-                     `cast`
-                   (Sym (Data.Monoid.N:Sum[0] <a>_R))
-                   ww) -}
-ae9741409aa049333ef008f3802cfecf
-  $w$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.Doc (), GHC.Types.Bool,
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 2, Strictness: <L,U(C(U),A)><S,1*U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 letrec {
-                   go6 :: [(Language.Fixpoint.Types.Names.Symbol, a)]
-                          -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [(Language.Fixpoint.Types.Names.Symbol, a)]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (case y of ww { (,) ww1 ww2 ->
-                             (Language.Fixpoint.Types.PrettyPrint.$w$ctoFix
-                                @ Language.Fixpoint.Types.Names.Symbol
-                                @ a
-                                Language.Fixpoint.Types.Names.$fFixpointSymbol
-                                w
-                                ww1
-                                ww2)
-                               `cast`
-                             (Text.PrettyPrint.HughesPJ.N:Doc[0]) })
-                            (go6 ys) }
-                 } in
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet5
-                          `cast`
-                        (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                        (go6
-                           (Language.Fixpoint.Misc.hashMapToAscList
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              @ a
-                              Language.Fixpoint.Types.Names.$fOrdSymbol
-                              w1
-                                `cast`
-                              (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N))) of wild {
-                   []
-                   -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                         Text.PrettyPrint.HughesPJ.brackets1 #)
-                   : p ps
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                             @ ()
-                             GHC.Types.True
-                             (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                             0#
-                             ps of wild1 {
-                        DEFAULT
-                        -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                @ ()
-                                Text.PrettyPrint.HughesPJ.brackets4
-                                GHC.Types.False
-                                wild1,
-                              GHC.Types.False, Text.PrettyPrint.HughesPJ.brackets1 #)
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                              Text.PrettyPrint.HughesPJ.brackets1 #) } }) -}
-128de9c8f5b1808de81b8b72e49f4a07
-  $w$ctoFix1 ::
-    Language.Fixpoint.Types.Environments.BindMap
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Environments.BindMap
-                            (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Language.Fixpoint.Types.Environments.$fFixpointSizedEnv_go
-                              (Language.Fixpoint.Misc.hashMapToAscList
-                                 @ Language.Fixpoint.Types.Environments.BindId
-                                 @ (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.SortedReft)
-                                 GHC.Classes.$fOrdInt
-                                 ww))) of ww1 { (#,#) ww2 ww3 ->
-                 ww3 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $w$ctraverse ::
-    GHC.Base.Applicative f =>
-    (a -> f b)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap a
-    -> f (Language.Fixpoint.Types.Environments.SizedEnv b)
-  {- Arity: 4,
-     Strictness: <S(S(C(C(S))L)LLLL),U(U(U,U),C(U),C(C1(U)),A,A)><L,C(U)><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (f :: * -> *)
-                   @ a
-                   @ b
-                   (w :: GHC.Base.Applicative f)
-                   (w1 :: a -> f b)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap a) ->
-                 GHC.Base.fmap
-                   @ f
-                   (GHC.Base.$p1Applicative @ f w)
-                   @ (Language.Fixpoint.Types.Environments.BindMap b)
-                   @ (Language.Fixpoint.Types.Environments.SizedEnv b)
-                   (\ (b2 :: Language.Fixpoint.Types.Environments.BindMap b) ->
-                    case b2 of dt { DEFAULT ->
-                    Language.Fixpoint.Types.Environments.BE @ b ww dt })
-                   (Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                      @ GHC.Types.Int
-                      @ f
-                      @ a
-                      @ b
-                      w
-                      w1
-                      ww1)) -}
-a73bf8f0110055fa2f951da0b0e9e749
-  $w$s$cput ::
-    Data.HashSet.HashSet GHC.Types.Int
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Data.HashSet.HashSet GHC.Types.Int) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      xs :: [GHC.Types.Int]
-                      = Language.Fixpoint.Types.Environments.$fBinaryHashSet_go1
-                          (GHC.Types.[] @ GHC.Types.Int)
-                          w `cast` (Data.HashSet.N:HashSet[0] <GHC.Types.Int>_N)
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput1
-                               (case GHC.List.$wlenAcc @ GHC.Types.Int xs 0# of ww2 { DEFAULT ->
-                                GHC.Types.I# ww2 }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    let {
-                      ds1 :: [GHC.Int.Int64]
-                      = GHC.Base.map
-                          @ GHC.Types.Int
-                          @ GHC.Int.Int64
-                          Language.Fixpoint.Types.Environments.$fBinaryHashSet5
-                          xs
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (Language.Fixpoint.Types.Environments.$fBinaryHashSet4 @ r ds1 eta)
-                         `cast`
-                       (<Data.ByteString.Builder.Internal.BufferRange>_R
-                        ->_R Sym (GHC.Types.N:IO[0]
-                                      <Data.ByteString.Builder.Internal.BuildSignal r>_R)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-e4a6aa6d551351c13eaa38e285aac243
-  $w$s$cshowsPrec ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S,U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Data.HashMap.Base.$w$cshowsPrec
-                       @ GHC.Types.Int
-                       @ (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)
-                       GHC.Show.$fShowInt
-                       Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)
-                       0#
-                       ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Environments.$fShowSizedEnv4
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Environments.$fShowSizedEnv3
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Types.Environments.$fShowSizedEnv2
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Types.Environments.$fShowSizedEnv1
-                                        (f (GHC.Base.++
-                                              @ GHC.Types.Char
-                                              Language.Fixpoint.Types.Environments.$fShowPacks1
-                                              x)))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-e382e8794b0eca45e6458027eb35be96
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)) ->
-                 letrec {
-                   $wgo22 :: GHC.Prim.Int#
-                             -> Data.Text.Internal.Text
-                             -> Data.Text.Internal.Text
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       k2 :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo22 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Names.Symbol v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Names.Symbol
-                                         @ v
-                                         k2
-                                         (w k2 w3 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Names.Symbol v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s3 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Names.Symbol
-                                    @ v
-                                    k2
-                                    w3)
-                                 s3 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo22
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                      w2)) -}
-d64dbd7fee155500121fd714dffae854
-  $w$s$wupdateOrSnocWithKey1 ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo22 :: GHC.Prim.Int#
-                             -> Data.Text.Internal.Text
-                             -> Data.Text.Internal.Text
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo22 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s3 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s3 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo22
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-f91e3616cfa586983ba6ac3ba9367277
-  $w$s$wupdateOrSnocWithKey2 ::
-    (Language.Fixpoint.Types.Environments.BindId -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Environments.BindId -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Environments.BindId v)) ->
-                 letrec {
-                   $wgo22 :: GHC.Prim.Int#
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Environments.BindId v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Environments.BindId v)
-                     {- Arity: 5, Strictness: <L,U><L,U><S,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Int#)
-                       (w3 :: v)
-                       (ww2 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Environments.BindId v))
-                       (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#) ->
-                     let {
-                       k2 :: Language.Fixpoint.Types.Environments.BindId
-                       = GHC.Types.I# ww1
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 ww4) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ww2
-                                 ww3 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { GHC.Types.I# y1 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww1 y1) of wild3 {
-                            GHC.Types.False -> $wgo22 ww1 w3 ww2 (GHC.Prim.+# ww3 1#) ww4
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      @ GHC.Prim.RealWorld
-                                      ww2
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Environments.BindId v)
-                                         ww2)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv5
-                                      ww3
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Environments.BindId
-                                         @ v
-                                         k2
-                                         (w k2 w3 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww4 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Environments.BindId v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 @ GHC.Prim.RealWorld
-                                 ww2
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww4
-                                 ipv3 of s3 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ipv4
-                                 ww4
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Environments.BindId
-                                    @ v
-                                    k2
-                                    w3)
-                                 s3 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo22
-                   ww
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Environments.BindId v)
-                      w2)) -}
-b3c38bc429458f34d4b1e70f8215af3b
-  $w$s$wupdateWith ::
-    (v -> v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(U)><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Environments.BindId v)) ->
-                 letrec {
-                   $wgo22 :: GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Environments.BindId v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Environments.BindId v)
-                     {- Arity: 4, Strictness: <L,U><S,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Int#)
-                       (ww2 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Environments.BindId v))
-                       (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 ww4) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ww2
-                                 ww3 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { GHC.Types.I# y1 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww1 y1) of wild3 {
-                            GHC.Types.False -> $wgo22 ww1 ww2 (GHC.Prim.+# ww3 1#) ww4
-                            GHC.Types.True
-                            -> case w y of v' { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      @ GHC.Prim.RealWorld
-                                      ww2
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Environments.BindId v)
-                                         ww2)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv5
-                                      ww3
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Environments.BindId
-                                         @ v
-                                         (GHC.Types.I# ww1)
-                                         v')
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } } }
-                       GHC.Types.True -> ww2 }
-                 } in
-                 $wgo22
-                   ww
-                   w1
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Environments.BindId v)
-                      w1)) -}
-b094d0012549f821cdfbdbaf2ae6b524
-  $w$sadjust ::
-    (v -> v)
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(U)><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Environments.BindId v) ->
-                 letrec {
-                   $wgo22 :: GHC.Prim.Word#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Environments.BindId v
-                             -> Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Environments.BindId v
-                     {- Arity: 4, Strictness: <L,U><L,U><L,U><S,1*U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Word#)
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w2 :: Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId v) ->
-                     case w2 of wild {
-                       Data.HashMap.Base.Empty
-                       -> Data.HashMap.Base.Empty
-                            @ Language.Fixpoint.Types.Environments.BindId
-                            @ v
-                       Data.HashMap.Base.BitmapIndexed dt dt1
-                       -> let {
-                            m :: GHC.Prim.Word#
-                            = GHC.Prim.uncheckedShiftL#
-                                1##
-                                (GHC.Prim.word2Int#
-                                   (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww1 ww3) 15##))
-                          } in
-                          case GHC.Prim.and# dt m of wild1 {
-                            DEFAULT
-                            -> let {
-                                 i :: GHC.Prim.Int#
-                                 = GHC.Prim.word2Int#
-                                     (GHC.Prim.popCnt#
-                                        (GHC.Prim.and# dt (GHC.Prim.minusWord# m 1##)))
-                               } in
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      dt1
-                                      i of ds7 { Unit# ipv2 ->
-                               case $wgo22 ww1 ww2 (GHC.Prim.+# ww3 4#) ipv2 of vx { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      @ GHC.Prim.RealWorld
-                                      dt1
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Environments.BindId v)
-                                         dt1)
-                                      GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv4
-                                      i
-                                      vx
-                                      ipv1 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Environments.BindId v)
-                                      ipv4
-                                      s' of ds1 { (#,#) ipv3 ipv5 ->
-                               Data.HashMap.Base.BitmapIndexed
-                                 @ Language.Fixpoint.Types.Environments.BindId
-                                 @ v
-                                 dt
-                                 ipv5 } } } } }
-                            0## -> wild }
-                       Data.HashMap.Base.Leaf dt dt1 dt2
-                       -> case dt1 of wild1 { GHC.Types.I# x ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# dt ww1) of wild2 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.==# x ww2) of wild3 {
-                                 GHC.Types.False -> wild
-                                 GHC.Types.True
-                                 -> case w dt2 of v1 { DEFAULT ->
-                                    Data.HashMap.Base.Leaf
-                                      @ Language.Fixpoint.Types.Environments.BindId
-                                      @ v
-                                      ww1
-                                      (GHC.Types.I# ww2)
-                                      v1 } } } }
-                       Data.HashMap.Base.Full dt
-                       -> let {
-                            i :: GHC.Prim.Int#
-                            = GHC.Prim.word2Int#
-                                (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww1 ww3) 15##)
-                          } in
-                          case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 dt
-                                 i of ds7 { Unit# ipv2 ->
-                          case $wgo22 ww1 ww2 (GHC.Prim.+# ww3 4#) ipv2 of vx { DEFAULT ->
-                          case GHC.Prim.thawArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 @ GHC.Prim.RealWorld
-                                 dt
-                                 0#
-                                 16#
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ipv4
-                                 i
-                                 vx
-                                 ipv1 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Environments.BindId v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv3 ->
-                          Data.HashMap.Base.Full
-                            @ Language.Fixpoint.Types.Environments.BindId
-                            @ v
-                            ipv3 } } } } }
-                       Data.HashMap.Base.Collision dt dt1
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# ww1 dt) of wild1 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case Language.Fixpoint.Types.Environments.$w$s$wupdateWith
-                                      @ v
-                                      w
-                                      ww2
-                                      dt1 of ww4 { DEFAULT ->
-                               Data.HashMap.Base.Collision
-                                 @ Language.Fixpoint.Types.Environments.BindId
-                                 @ v
-                                 ww1
-                                 ww4 } } }
-                 } in
-                 $wgo22 (GHC.Prim.int2Word# ww) ww 0# w1) -}
-831827026513ab92d150de4ec6b914bd
-  $w$sinsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go9
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   (Data.Text.Internal.Text ww1 ww2 ww3)
-                   ww4
-                   w
-                   0#
-                   w1 }) -}
-724cae1e644dca61ee25591f60ab06e2
-  $w$slookup ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Base.Maybe v
-  {- Arity: 5, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go11
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   0#
-                   w }) -}
-2a834c58174e7de2e97c84228910636b
-  $w$slookup1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> GHC.Base.Maybe v
-  {- Arity: 5, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Environments.$wpoly_go12
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   0#
-                   w }) -}
-784b43745a721eb2b260fc739e498519
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go14
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w1
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-7176aae69fb168d352acb866985038a9
-  $wfilterBindEnv ::
-    (Language.Fixpoint.Types.Environments.BindId
-     -> Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.SortedReft
-     -> GHC.Types.Bool)
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> (# GHC.Prim.Int#,
-          Language.Fixpoint.Types.Environments.BindMap
-            (Language.Fixpoint.Types.Names.Symbol,
-             Language.Fixpoint.Types.Refinements.SortedReft) #)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0] -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  $wgo ::
-    [Language.Fixpoint.Types.Environments.BindEnv]
-    -> (# GHC.Prim.Int#,
-          Language.Fixpoint.Types.Environments.BindMap
-            (Language.Fixpoint.Types.Names.Symbol,
-             Language.Fixpoint.Types.Refinements.SortedReft) #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-aad194ccf54a3c3aa0e44df16a9ba32e
-  $wgo1 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-e11aa570ad28b61cddce6a36e16eeeb6
-  $wgo2 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-9bb2a78c3b092522e16e42bbe1e48400
-  $wgo3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-1b4f875f02f3b53e2a41e2757fd46550
-  $wgo4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-1634e322dfd74f963cebcba76d2f51e1
-  $wgo5 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-4091db26fc0f538f559935d8cb9b29f7
-  $wlookupSEnvWithDistance ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SESearch a
-  {- Arity: 5, Strictness: <L,U><S,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go12
-                        @ a
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        0#
-                        w `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N) of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.Alts
-                        @ a
-                        (let {
-                           ss :: [[GHC.Types.Char]]
-                           = Language.Fixpoint.Types.Environments.lookupSEnvWithDistance1
-                               @ a
-                               (GHC.Types.[] @ [GHC.Types.Char])
-                               w `cast` (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)
-                         } in
-                         let {
-                           f :: GHC.Base.String
-                           = Language.Fixpoint.Types.Names.$wsymbolString ww1 ww2 ww3
-                         } in
-                         letrec {
-                           go6 :: [[GHC.Types.Char]]
-                                  -> [[GHC.Types.Char]] -> [(GHC.Types.Int, [GHC.Types.Char])]
-                             {- Arity: 2, Strictness: <S,1*U><L,1*U> -}
-                           = \ (ds :: [[GHC.Types.Char]]) (eta :: [[GHC.Types.Char]]) ->
-                             case ds of wild2 {
-                               [] -> GHC.Types.[] @ (GHC.Types.Int, [GHC.Types.Char])
-                               : y ys
-                               -> case eta of wild3 {
-                                    [] -> GHC.Types.[] @ (GHC.Types.Int, [GHC.Types.Char])
-                                    : y1 ys1
-                                    -> GHC.Types.:
-                                         @ (GHC.Types.Int, [GHC.Types.Char])
-                                         (Language.Fixpoint.Misc.editDistance
-                                            @ GHC.Types.Char
-                                            GHC.Classes.$fEqChar
-                                            f
-                                            y,
-                                          y1)
-                                         (go6 ys ys1) } }
-                         } in
-                         let {
-                           xs :: [(GHC.Types.Int, [GHC.Types.Char])] = go6 ss ss
-                         } in
-                         let {
-                           lvl68 :: GHC.Types.Int
-                           = case GHC.Base.map
-                                    @ (GHC.Types.Int, [GHC.Types.Char])
-                                    @ GHC.Types.Int
-                                    (Data.Tuple.fst @ GHC.Types.Int @ [GHC.Types.Char])
-                                    xs of wild2 {
-                               [] -> GHC.List.minimum2
-                               : ipv ipv1
-                               -> case ipv of ww4 { GHC.Types.I# ww5 ->
-                                  case GHC.List.$wgo1 ipv1 ww5 of ww6 { DEFAULT ->
-                                  GHC.Types.I# ww6 } } }
-                         } in
-                         letrec {
-                           go7 :: [(GHC.Types.Int, [GHC.Types.Char])]
-                                  -> [Language.Fixpoint.Types.Names.Symbol]
-                             {- Arity: 1, Strictness: <S,1*U> -}
-                           = \ (ds :: [(GHC.Types.Int, [GHC.Types.Char])]) ->
-                             case ds of wild2 {
-                               [] -> GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol
-                               : y ys
-                               -> case y of wild3 { (,) d z ->
-                                  case d of wild4 { GHC.Types.I# x ->
-                                  case lvl68 of wild5 { GHC.Types.I# y1 ->
-                                  case GHC.Prim.tagToEnum#
-                                         @ GHC.Types.Bool
-                                         (GHC.Prim.==# x y1) of wild6 {
-                                    GHC.Types.False -> go7 ys
-                                    GHC.Types.True
-                                    -> GHC.Types.:
-                                         @ Language.Fixpoint.Types.Names.Symbol
-                                         (Language.Fixpoint.Types.Names.$fSymbolic[]_$csymbol z)
-                                         (go7 ys) } } } } }
-                         } in
-                         go7 xs)
-                   GHC.Base.Just z
-                   -> Language.Fixpoint.Types.Environments.Found @ a z } }) -}
-380037f1e27006ada4319bf681a7f521
-  $wmapBindEnv ::
-    (Language.Fixpoint.Types.Environments.BindId
-     -> (Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)
-     -> (Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> (# GHC.Prim.Int#,
-          Language.Fixpoint.Types.Environments.BindMap
-            (Language.Fixpoint.Types.Names.Symbol,
-             Language.Fixpoint.Types.Refinements.SortedReft) #)
-  {- Arity: 3, Strictness: <L,C(C1(U(U,U)))><S,U><S,U>,
-     Inline: [0] -}
-710fa3df00e89af053f80c14dbda30b9
-  $wmapWithKeyMBindEnv ::
-    GHC.Base.Monad m =>
-    ((Language.Fixpoint.Types.Environments.BindId,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))
-     -> m (Language.Fixpoint.Types.Environments.BindId,
-           (Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Refinements.SortedReft)))
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> m Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 4,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),U(U(U(U,U),U,U,U,U),A,A,A,A)><L,C(U)><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: (Language.Fixpoint.Types.Environments.BindId,
-                           (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft))
-                          -> m (Language.Fixpoint.Types.Environments.BindId,
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft)))
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 GHC.Base.fmap
-                   @ m
-                   (GHC.Base.$p1Applicative @ m (GHC.Base.$p1Monad @ m w))
-                   @ [(Language.Fixpoint.Types.Environments.BindId,
-                       (Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Refinements.SortedReft))]
-                   @ (Language.Fixpoint.Types.Environments.SizedEnv
-                        (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft))
-                   (\ (x :: [(Language.Fixpoint.Types.Environments.BindId,
-                              (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft))]) ->
-                    case Language.Fixpoint.Types.Environments.mapWithKeyMBindEnv_go
-                           x
-                           (Data.HashMap.Base.Empty
-                              @ Language.Fixpoint.Types.Environments.BindId
-                              @ (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft)) of dt { DEFAULT ->
-                    Language.Fixpoint.Types.Environments.BE
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft)
-                      ww
-                      dt })
-                   (Data.Traversable.$fTraversable[]_$cmapM
-                      @ m
-                      @ (Language.Fixpoint.Types.Environments.BindId,
-                         (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft))
-                      @ (Language.Fixpoint.Types.Environments.BindId,
-                         (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft))
-                      w
-                      w1
-                      (Language.Fixpoint.Types.Environments.mapWithKeyMBindEnv_go1
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Environments.BindId,
-                               (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.SortedReft)))
-                         ww1))) -}
-432f70d4d5b1ceb913103c3288648761
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-78b7ea2c026df1aaf187154b846c1894
-  $wpoly_go10 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-    -> Data.HashMap.Base.HashMap GHC.Types.Int v
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-76b923d042425c67ee4958f575251a2b
-  $wpoly_go11 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-ad10e3fd2c6bd765db88859c034c741a
-  $wpoly_go12 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-d59b13af645e8754d495f15c3ee07ea3
-  $wpoly_go13 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-c96ab41b76f9422e10972a6b30bba53e
-  $wpoly_go14 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-24044f58ed9d0dafe764e83ea4edd2e4
-  $wpoly_go15 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Environments.BindId v #)
-  {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-b17d85430c4569fabcd3029789a0313b
-  $wpoly_go2 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-9eebf89122939adf16cc0eba2a4540d1
-  $wpoly_go3 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-40d0049e9413f67648acb53b2834c45d
-  $wpoly_go4 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-b06211ab2fe2747e60e5b415e0c7fe44
-  $wpoly_go5 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-0c4963d5c22b747913511910afa4c30b
-  $wpoly_go6 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-587548a96964b171b0d8895c88187b83
-  $wpoly_go7 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-ee22f57753fc4b56e57bc19805878192
-  $wpoly_go8 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Environments.BindId v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-81d03ce4cdc1d033520320e91a9cd674
-  $wpoly_go9 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 7, Strictness: <S,U><L,U><S,U><S,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-2a24f788a0a55df9c438e12f328d5215
-  $wstep2 ::
-    [GHC.Int.Int64]
-    -> (Data.ByteString.Builder.Internal.BufferRange
-        -> GHC.Types.IO (Data.ByteString.Builder.Internal.BuildSignal r))
-    -> GHC.Prim.Addr#
-    -> GHC.Prim.Addr#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <S,1*U><L,C(C1(U(U,U)))><S,U><L,U><S,U>, Inline: [0] -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  type BindEnv =
-    Language.Fixpoint.Types.Environments.SizedEnv
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  type BindId = GHC.Types.Int
-f75ec848aa783574a6a9c634b75251d6
-  type BindMap a =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Environments.BindId a
-dae79859b3442c211473f5cded0c14f7
-  newtype IBindEnv
-    = FB (Data.HashSet.HashSet
-            Language.Fixpoint.Types.Environments.BindId)
-999de3bcf4ed26dd71bfcb519acbd47a
-  newtype Packs
-    = Packs {packm :: Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int}
-dae79859b3442c211473f5cded0c14f7
-  axiom Rep_IBindEnv::
-      GHC.Generics.Rep Language.Fixpoint.Types.Environments.IBindEnv
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "IBindEnv"
-               "Language.Fixpoint.Types.Environments"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashSet.HashSet
-                        Language.Fixpoint.Types.Environments.BindId))))
-999de3bcf4ed26dd71bfcb519acbd47a
-  axiom Rep_Packs::
-      GHC.Generics.Rep Language.Fixpoint.Types.Environments.Packs
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Packs"
-               "Language.Fixpoint.Types.Environments"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Packs" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "packm")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int))))
-ae9741409aa049333ef008f3802cfecf
-  axiom Rep_SEnv::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SEnv a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SEnv"
-               "Language.Fixpoint.Types.Environments"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "SE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "seBinds")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     (Data.HashMap.Base.HashMap
-                        Language.Fixpoint.Types.Names.Symbol a))))
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  axiom Rep_SizedEnv::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Environments.SizedEnv a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SizedEnv"
-               "Language.Fixpoint.Types.Environments"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "BE" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "_beSize")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 GHC.Types.Int)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "beBinds")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0
-                                      (Language.Fixpoint.Types.Environments.BindMap a))))
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  axiom Rep_SolEnv::
-      GHC.Generics.Rep Language.Fixpoint.Types.Environments.SolEnv
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SolEnv"
-               "Language.Fixpoint.Types.Environments"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "SolEnv" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "soeBinds")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.BindEnv)))
-49d4d07afcffcb491480eb79ab43124c
-  data SESearch a
-    = Found a | Alts [Language.Fixpoint.Types.Names.Symbol]
-ae9741409aa049333ef008f3802cfecf
-  newtype SEnv a
-    = SE {seBinds :: Data.HashMap.Base.HashMap
-                       Language.Fixpoint.Types.Names.Symbol a}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  data SizedEnv a
-    = BE {_beSize :: {-# UNPACK #-}GHC.Types.Int,
-          beBinds :: !Language.Fixpoint.Types.Environments.BindMap a}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  data SolEnv
-    = SolEnv {soeBinds :: !Language.Fixpoint.Types.Environments.BindEnv}
-74b548bc20eb30222e95ea8e31263639
-  _beSize ::
-    Language.Fixpoint.Types.Environments.SizedEnv a -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Environments.SizedEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt ds1 ->
-                 GHC.Types.I# dt }) -}
-c777b46b1c743af956a2afbec10c57f9
-  adjustBindEnv ::
-    ((Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)
-     -> (Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft))
-    -> Language.Fixpoint.Types.Environments.BindId
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(U)><S(S),U(U)><S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ (f :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)
-                         -> (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft))
-                   (i :: Language.Fixpoint.Types.Environments.BindId)
-                   (ds :: Language.Fixpoint.Types.Environments.SizedEnv
-                            (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt m ->
-                 case Language.Fixpoint.Types.Environments.$sadjust
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        f
-                        i
-                        m of dt1 { DEFAULT ->
-                 Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   dt
-                   dt1 } }) -}
-0907867d711aa08166613144dbfef14c
-  beBinds ::
-    Language.Fixpoint.Types.Environments.SizedEnv a
-    -> Language.Fixpoint.Types.Environments.BindMap a
-  RecSel Left Language.Fixpoint.Types.Environments.SizedEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Environments.SizedEnv a) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.BE dt ds1 ->
-                 ds1 }) -}
-89c34f20db94686b94cfff511336c8e5
-  bindEnvFromList ::
-    [(Language.Fixpoint.Types.Environments.BindId,
-      Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [(Language.Fixpoint.Types.Environments.BindId,
-                           Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)]) ->
-                 case w of wild {
-                   []
-                   -> Language.Fixpoint.Types.Environments.BE
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        0#
-                        (Data.HashMap.Base.Empty
-                           @ Language.Fixpoint.Types.Environments.BindId
-                           @ (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   : ipv ipv1
-                   -> case GHC.Base.map
-                             @ (Language.Fixpoint.Types.Environments.BindId,
-                                Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.SortedReft)
-                             @ GHC.Types.Int
-                             (Language.Fixpoint.Misc.fst3
-                                @ Language.Fixpoint.Types.Environments.BindId
-                                @ Language.Fixpoint.Types.Names.Symbol
-                                @ Language.Fixpoint.Types.Refinements.SortedReft)
-                             wild of wild1 {
-                        []
-                        -> case GHC.List.maximum2
-                           ret_ty (Language.Fixpoint.Types.Environments.SizedEnv
-                                     (Language.Fixpoint.Types.Names.Symbol,
-                                      Language.Fixpoint.Types.Refinements.SortedReft))
-                           of {}
-                        : ipv2 ipv3
-                        -> case ipv2 of ww { GHC.Types.I# ww1 ->
-                           case GHC.List.$wgo ipv3 ww1 of ww2 { DEFAULT ->
-                           case Language.Fixpoint.Types.Environments.bindEnvFromList_go
-                                  wild
-                                  (Data.HashMap.Base.Empty
-                                     @ Language.Fixpoint.Types.Environments.BindId
-                                     @ (Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Refinements.SortedReft)) of dt { DEFAULT ->
-                           Language.Fixpoint.Types.Environments.BE
-                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.SortedReft)
-                             (GHC.Prim.+# 1# ww2)
-                             dt } } } } }) -}
-624c84fbc7b520d1439812e8236accf7
-  bindEnvFromList_go ::
-    [(Language.Fixpoint.Types.Environments.BindId,
-      Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-15cf21f5dde4a84007d2f5516efc18c5
-  bindEnvToList ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case ww2 of wild {
-                   Data.HashMap.Base.Empty
-                   -> GHC.Types.[]
-                        @ (Language.Fixpoint.Types.Environments.BindId,
-                           Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.Environments.$wgo5
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        0#
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Environments.BindId,
-                              Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> case dt2 of wild1 { (,) x r ->
-                      GHC.Types.:
-                        @ (Language.Fixpoint.Types.Environments.BindId,
-                           Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        (dt1, x, r)
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Environments.BindId,
-                              Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) }
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.Environments.$wgo4
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt)
-                        0#
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Environments.BindId,
-                              Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft))
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.Environments.$wgo3
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        0#
-                        (GHC.Types.[]
-                           @ (Language.Fixpoint.Types.Environments.BindId,
-                              Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) } }) -}
-817a2fbe6105ce7078cd9ca341552f26
-  deleteIBindEnv ::
-    Language.Fixpoint.Types.Environments.BindId
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <S,U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.deleteIBindEnv1
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.BindId>_R
-                 ->_R <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-3d3c414b0b12579ba824236f5f235b14
-  deleteIBindEnv1 ::
-    Language.Fixpoint.Types.Environments.BindId
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId ()
-  {- Arity: 2, Strictness: <S,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (i :: Language.Fixpoint.Types.Environments.BindId)
-                   (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Data.HashMap.Base.delete
-                   @ Language.Fixpoint.Types.Environments.BindId
-                   @ ()
-                   GHC.Classes.$fEqInt
-                   Data.Hashable.Class.$fHashableInt
-                   i
-                   ds
-                     `cast`
-                   (Trans
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Types.Environments.BindId>_N))) -}
-a855d705d7b57927d92a2ae7459af3f3
-  deleteSEnv ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2, Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$sdelete
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-051c7f6e46479a9552747ed2030e9852
-  diffIBindEnv ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.diffIBindEnv1
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-ff4308bcf15d812b6536de88622dd885
-  diffIBindEnv1 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId ()
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ds1 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Data.HashMap.Base.difference
-                   @ Language.Fixpoint.Types.Environments.BindId
-                   @ ()
-                   @ ()
-                   GHC.Classes.$fEqInt
-                   Data.Hashable.Class.$fHashableInt
-                   ds
-                     `cast`
-                   (Trans
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Types.Environments.BindId>_N))
-                   ds1
-                     `cast`
-                   (Trans
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Types.Environments.BindId>_N))) -}
-56f953ca58f53f011c9054f056ccbd7c
-  differenceSEnv ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv w
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$sdifference
-                  `cast`
-                (forall (a :: <*>_N) (w :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <w>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-0c5cf007530758c13fe699ca35718ece
-  elemsBindEnv ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> [Language.Fixpoint.Types.Environments.BindId]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (be :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 GHC.Base.build
-                   @ GHC.Types.Int
-                   (\ @ b1
-                      (c :: GHC.Types.Int -> b1 -> b1)[OneShot]
-                      (n :: b1)[OneShot] ->
-                    GHC.Base.foldr
-                      @ (Language.Fixpoint.Types.Environments.BindId,
-                         Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft)
-                      @ b1
-                      (GHC.Base.mapFB
-                         @ GHC.Types.Int
-                         @ b1
-                         @ (Language.Fixpoint.Types.Environments.BindId,
-                            Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)
-                         c
-                         (Language.Fixpoint.Misc.fst3
-                            @ Language.Fixpoint.Types.Environments.BindId
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            @ Language.Fixpoint.Types.Refinements.SortedReft))
-                      n
-                      (Language.Fixpoint.Types.Environments.bindEnvToList be))) -}
-7035d11f3a4503479010583526d4931c
-  elemsIBindEnv ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> [Language.Fixpoint.Types.Environments.BindId]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashSet.toList @ Language.Fixpoint.Types.Environments.BindId)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R <[Language.Fixpoint.Types.Environments.BindId]>_R) -}
-792d9eaa5d5c1843c39b7b64e5cd1dac
-  emptyBindEnv :: Language.Fixpoint.Types.Environments.BindEnv
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   0#
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Environments.BindId
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.SortedReft))) -}
-dae79859b3442c211473f5cded0c14f7
-  emptyIBindEnv :: Language.Fixpoint.Types.Environments.IBindEnv
-  {- HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.Empty
-                   @ Language.Fixpoint.Types.Environments.BindId
-                   @ ())
-                  `cast`
-                (Trans
-                     (Sym (Data.HashSet.N:HashSet[0]
-                               <Language.Fixpoint.Types.Environments.BindId>_N))
-                     (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-0092f6c4a7c68c22a64ca5be786a076b
-  emptySEnv :: Language.Fixpoint.Types.Environments.SEnv a
-  {- HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.Empty @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-e66be8902a29b4ff6ba9a891b4078535
-  envCs ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)]
-  {- Arity: 2, Strictness: <L,U(A,U)><S,1*U> -}
-fb61d7691a2bf001a9d16f464c0c1866
-  filterBindEnv ::
-    (Language.Fixpoint.Types.Environments.BindId
-     -> Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.SortedReft
-     -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 2, Strictness: <L,C(C1(C1(U)))><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindId
-                         -> Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.SortedReft
-                         -> GHC.Types.Bool)
-                   (w1 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.Types.Environments.$wfilterBindEnv
-                        w
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   ww4
-                   ww5 } }) -}
-d04344dcc26246482caf1a3ec32b6bfa
-  filterIBindEnv ::
-    (Language.Fixpoint.Types.Environments.BindId -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashSet.filter @ Language.Fixpoint.Types.Environments.BindId)
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.BindId -> GHC.Types.Bool>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])) -}
-5026975848e59412b11dc3e4e4238bde
-  filterSEnv ::
-    (a -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.filterSEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <a -> GHC.Types.Bool>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-ce5278b152173d658e13d9d3d9093d51
-  filterSEnv1 ::
-    (a -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-789a0bbdc42dd0135ea2d09892ac21d3
-  fromListSEnv ::
-    [(Language.Fixpoint.Types.Names.Symbol, a)]
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Refinements.$dmsubst1_$sfromList
-                  `cast`
-                (forall (a :: <*>_N).
-                 <[(Language.Fixpoint.Types.Names.Symbol, a)]>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-c7fa1108c0d994710bf679129a2b0aec
-  fromMapSEnv ::
-    Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fDataSEnv2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.HashMap.Base.HashMap
-                    Language.Fixpoint.Types.Names.Symbol a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-689b4b8ecce32d5146287da3da7766a5
-  getPack ::
-    Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Types.Environments.Packs
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Types.Environments.$slookup @ GHC.Types.Int)
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.KVar>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])
-                 ->_R <GHC.Base.Maybe GHC.Types.Int>_R) -}
-2d2a0c911406c085979b39d2332f4072
-  insertBindEnv ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> (Language.Fixpoint.Types.Environments.BindId,
-        Language.Fixpoint.Types.Environments.BindEnv)
-  {- Arity: 3, Strictness: <L,U><L,U><S(LS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w2 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 (GHC.Types.I# ww1,
-                  case Language.Fixpoint.Types.Environments.$wpoly_go10
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)
-                         (GHC.Prim.int2Word# ww1)
-                         ww1
-                         (w, w1)
-                         0#
-                         ww2 of dt { DEFAULT ->
-                  Language.Fixpoint.Types.Environments.BE
-                    @ (Language.Fixpoint.Types.Names.Symbol,
-                       Language.Fixpoint.Types.Refinements.SortedReft)
-                    (GHC.Prim.+# ww1 1#)
-                    dt }) }) -}
-3be79544f40500c440f0dace6e690579
-  insertSEnv ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 3,
-     Strictness: <S(LS(SSS)S),U(U,U(U,U,U),U)><S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.insertSEnv1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R <a>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-dc82ccaaf273b4999b68b096fefae9c3
-  insertSEnv1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-  {- Arity: 3,
-     Strictness: <S(LS(SSS)S),U(U,U(U,U,U),U)><S,1*U><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (v :: a)
-                   (ds :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case v of v2 { DEFAULT ->
-                 Language.Fixpoint.Types.Environments.$sinsert
-                   @ a
-                   x
-                   v2
-                   ds
-                     `cast`
-                   (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N) }) -}
-6cb2cd53df76aa50af651383f2197c38
-  insertsIBindEnv ::
-    [Language.Fixpoint.Types.Environments.BindId]
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.insertsIBindEnv1
-                  `cast`
-                (<[Language.Fixpoint.Types.Environments.BindId]>_R
-                 ->_R <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])) -}
-af3ac0e45514ea29ccab1ff1bde04cf2
-  insertsIBindEnv1 ::
-    [Language.Fixpoint.Types.Environments.BindId]
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: (\ (is :: [Language.Fixpoint.Types.Environments.BindId])
-                   (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 letrec {
-                   go6 :: [Language.Fixpoint.Types.Environments.BindId]
-                          -> Data.HashSet.HashSet Language.Fixpoint.Types.Environments.BindId
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds1 :: [Language.Fixpoint.Types.Environments.BindId]) ->
-                     case ds1 of wild {
-                       []
-                       -> ds `cast` (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                       : y ys
-                       -> case y of wild1 { GHC.Types.I# x# ->
-                          (Language.Fixpoint.Types.Environments.$wpoly_go10
-                             @ ()
-                             (GHC.Prim.int2Word# x#)
-                             x#
-                             GHC.Tuple.()
-                             0#
-                             (go6 ys)
-                               `cast`
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Environments.BindId>_N))
-                            `cast`
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N)) } }
-                 } in
-                 go6 is) -}
-e7a2c0bc6fed19ab508d75ff90ae8aa7
-  intersectWithSEnv ::
-    (v1 -> v2 -> a)
-    -> Language.Fixpoint.Types.Environments.SEnv v1
-    -> Language.Fixpoint.Types.Environments.SEnv v2
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 3, Strictness: <L,C(C1(U))><S,1*U><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$sintersectionWith
-                  `cast`
-                (forall (v1 :: <*>_N) (v2 :: <*>_N) (a :: <*>_N).
-                 <v1 -> v2 -> a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <v1>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <v2>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-9983d7e9d97433d2566c93bdd912d47b
-  intersectionIBindEnv ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.intersectionIBindEnv1
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R <Language.Fixpoint.Types.Environments.IBindEnv>_R
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-85ae596390919faec78669c10dd3bb13
-  intersectionIBindEnv1 ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId ()
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Environments.IBindEnv)
-                   (ds1 :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 Data.HashMap.Base.intersection
-                   @ Language.Fixpoint.Types.Environments.BindId
-                   @ ()
-                   @ ()
-                   GHC.Classes.$fEqInt
-                   Data.Hashable.Class.$fHashableInt
-                   ds
-                     `cast`
-                   (Trans
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Types.Environments.BindId>_N))
-                   ds1
-                     `cast`
-                   (Trans
-                        (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                        (Data.HashSet.N:HashSet[0]
-                             <Language.Fixpoint.Types.Environments.BindId>_N))) -}
-c4a692f1e144e9e359566ca003dc8e31
-  lookupBindEnv ::
-    Language.Fixpoint.Types.Environments.BindId
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 2, Strictness: <S(S),U(U)><S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindId)
-                   (w1 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Environments.BE ww3 ww4 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go13
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)
-                        (GHC.Prim.int2Word# ww1)
-                        ww1
-                        0#
-                        ww4 of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Environments.lookupBindEnv1 ww1
-                   GHC.Base.Just v -> v } } }) -}
-c03ae1da1b641bfb2551c0077dd96894
-  lookupBindEnv1 ::
-    GHC.Prim.Int#
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 1, Strictness: <L,U>x -}
-ebcaf832f9842b5825a8c74e9875fd33
-  lookupSEnv ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Base.Maybe a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$slookup1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <GHC.Base.Maybe a>_R) -}
-8487b4b7e6463dbcd7c933ce64e1d285
-  lookupSEnvWithDistance ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SESearch a
-  {- Arity: 2, Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Environments.$wlookupSEnvWithDistance
-                   @ a
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-f0600f0abf51aa40db9f3314d28af15f
-  lookupSEnvWithDistance1 ::
-    [[GHC.Types.Char]]
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> [[GHC.Types.Char]]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-c77564d4cea5fac956b5de40f6ba62f8
-  makePack ::
-    [Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar]
-    -> Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.makePack1
-                  `cast`
-                (<[Data.HashSet.HashSet
-                     Language.Fixpoint.Types.Refinements.KVar]>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:Packs[0])) -}
-02ed63bc787cfff83939e3f1439c5355
-  makePack1 ::
-    [Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (kvss :: [Data.HashSet.HashSet
-                               Language.Fixpoint.Types.Refinements.KVar]) ->
-                 Language.Fixpoint.Types.Environments.makePack_go
-                   Language.Fixpoint.Types.Environments.makePack3
-                   (Language.Fixpoint.Misc.componentsWith
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ [Language.Fixpoint.Misc.ListNE
-                           Language.Fixpoint.Types.Refinements.KVar]
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      Language.Fixpoint.Types.Refinements.$fOrdKVar
-                      Language.Fixpoint.Types.Environments.makePack2
-                      (GHC.Base.map
-                         @ (Data.HashSet.HashSet Language.Fixpoint.Types.Refinements.KVar)
-                         @ [Language.Fixpoint.Types.Refinements.KVar]
-                         (Data.HashSet.toList @ Language.Fixpoint.Types.Refinements.KVar)
-                         kvss))
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ GHC.Types.Int)) -}
-77684865bf420071ac1cde0b4a255bb9
-  makePack2 ::
-    [Language.Fixpoint.Misc.ListNE
-       Language.Fixpoint.Types.Refinements.KVar]
-    -> [(Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Refinements.KVar,
-         [Language.Fixpoint.Types.Refinements.KVar])]
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Misc.coalesceEdges
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   Language.Fixpoint.Types.Environments.$scoalesce1) -}
-77e072916008d9434f3e354418da68dc
-  makePack3 :: [GHC.Types.Int]
-  {- Unfolding: (GHC.Enum.eftInt 0# 9223372036854775807#) -}
-d2ff819bf465c1125d931de1b2f5be2f
-  makePack_go ::
-    [GHC.Types.Int]
-    -> [[Language.Fixpoint.Types.Refinements.KVar]]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-  {- Arity: 3, Strictness: <S,1*U><L,1*U><S,1*U> -}
-5587766109997447ce44fc36cf0d744e
-  mapBindEnv ::
-    (Language.Fixpoint.Types.Environments.BindId
-     -> (Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft)
-     -> (Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Refinements.SortedReft))
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 2, Strictness: <L,C(C1(U(U,U)))><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindId
-                         -> (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)
-                         -> (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft))
-                   (w1 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w1 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case Language.Fixpoint.Types.Environments.$wmapBindEnv
-                        w
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 Language.Fixpoint.Types.Environments.BE
-                   @ (Language.Fixpoint.Types.Names.Symbol,
-                      Language.Fixpoint.Types.Refinements.SortedReft)
-                   ww4
-                   ww5 } }) -}
-65a479f02008539ef5db9da17758dad9
-  mapMSEnv ::
-    GHC.Base.Monad m =>
-    (a -> m b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> m (Language.Fixpoint.Types.Environments.SEnv b)
-  {- Arity: 3, Strictness: <S(SLLLL),U(U,A,A,A,A)><L,C(U)><L,1*U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: a -> m b)
-                   (eta1 :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 let {
-                   $dApplicative :: GHC.Base.Applicative m
-                   = GHC.Base.$p1Monad @ m $dMonad
-                 } in
-                 let {
-                   $dFunctor :: GHC.Base.Functor m
-                   = GHC.Base.$p1Applicative @ m $dApplicative
-                 } in
-                 GHC.Base.fmap
-                   @ m
-                   $dFunctor
-                   @ [(Language.Fixpoint.Types.Names.Symbol, b)]
-                   @ (Language.Fixpoint.Types.Environments.SEnv b)
-                   (Language.Fixpoint.Types.Refinements.$dmsubst1_$sfromList @ b)
-                     `cast`
-                   (<[(Language.Fixpoint.Types.Names.Symbol, b)]>_R
-                    ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <b>_N)
-                   (Data.Traversable.$fTraversable[]_$cmapM
-                      @ m
-                      @ (Language.Fixpoint.Types.Names.Symbol, a)
-                      @ (Language.Fixpoint.Types.Names.Symbol, b)
-                      $dMonad
-                      (Language.Fixpoint.Misc.secondM
-                         @ m
-                         @ a
-                         @ b
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         $dFunctor
-                         eta)
-                      (Language.Fixpoint.Types.Environments.mapMSEnv1
-                         @ a
-                         (GHC.Types.[] @ (Language.Fixpoint.Types.Names.Symbol, a))
-                         eta1
-                           `cast`
-                         (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N)))) -}
-4a988c93edb73839e01b1970d9344ef3
-  mapMSEnv1 ::
-    [(Language.Fixpoint.Types.Names.Symbol, a)]
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> [(Language.Fixpoint.Types.Names.Symbol, a)]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-ae9741409aa049333ef008f3802cfecf
-  mapSEnv ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv b
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fFunctorSEnv2
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <a -> b>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <b>_N) -}
-665a644baddbe0872d9b4f31ded901ff
-  mapSEnvWithKey ::
-    ((Language.Fixpoint.Types.Names.Symbol, a)
-     -> (Language.Fixpoint.Types.Names.Symbol, b))
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv b
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.mapSEnvWithKey1
-                  `cast`
-                (forall (a :: <*>_N) (b :: <*>_N).
-                 <(Language.Fixpoint.Types.Names.Symbol, a)
-                  -> (Language.Fixpoint.Types.Names.Symbol, b)>_R
-                 ->_R <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <b>_N) -}
-be46b06e52815c64ba33d4138db953bf
-  mapSEnvWithKey1 ::
-    ((Language.Fixpoint.Types.Names.Symbol, a)
-     -> (Language.Fixpoint.Types.Names.Symbol, b))
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol b
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-9e2275fcf8423711cbdbf21dd8f18caa
-  mapWithKeyMBindEnv ::
-    GHC.Base.Monad m =>
-    ((Language.Fixpoint.Types.Environments.BindId,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))
-     -> m (Language.Fixpoint.Types.Environments.BindId,
-           (Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Refinements.SortedReft)))
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> m Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 3,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),U(U(U(U,U),U,U,U,U),A,A,A,A)><L,C(U)><S(LS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: (Language.Fixpoint.Types.Environments.BindId,
-                           (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft))
-                          -> m (Language.Fixpoint.Types.Environments.BindId,
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft)))
-                   (w2 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w2 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Environments.$wmapWithKeyMBindEnv
-                   @ m
-                   w
-                   w1
-                   ww1
-                   ww2 }) -}
-6c3bf38478937bb2cb3a25a0731d64a7
-  mapWithKeyMBindEnv_go ::
-    [(Language.Fixpoint.Types.Environments.BindId,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-6e2de0b643e64a028b75a137fc761e74
-  mapWithKeyMBindEnv_go1 ::
-    [(Language.Fixpoint.Types.Environments.BindId,
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft))]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> [(Language.Fixpoint.Types.Environments.BindId,
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-6702fd78c0541d0458bf46243a55c085
-  memberIBindEnv ::
-    Language.Fixpoint.Types.Environments.BindId
-    -> Language.Fixpoint.Types.Environments.IBindEnv -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),U(U)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (i :: Language.Fixpoint.Types.Environments.BindId)
-                   (ds :: Language.Fixpoint.Types.Environments.IBindEnv) ->
-                 case i of wild { GHC.Types.I# x# ->
-                 case Language.Fixpoint.Types.Environments.$slookup3
-                        @ ()
-                        (GHC.Types.W# (GHC.Prim.int2Word# x#))
-                        wild
-                        Language.Fixpoint.Types.Environments.$fFoldableSizedEnv5
-                        ds
-                          `cast`
-                        (Trans
-                             (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                             (Data.HashSet.N:HashSet[0]
-                                  <Language.Fixpoint.Types.Environments.BindId>_N)) of wild1 {
-                   GHC.Base.Nothing -> GHC.Types.False
-                   GHC.Base.Just ds1 -> GHC.Types.True } }) -}
-1b98968bd46488e485e82ffd497cf3a6
-  memberSEnv ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Environments.SEnv a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (ds :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 case Language.Fixpoint.Types.Environments.$slookup1
-                        @ a
-                        x
-                        ds
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N) of wild {
-                   GHC.Base.Nothing -> GHC.Types.False
-                   GHC.Base.Just ds1 -> GHC.Types.True }) -}
-b837d9ab18fd08c4d8f433be0aa2e1c8
-  nullIBindEnv ::
-    Language.Fixpoint.Types.Environments.IBindEnv -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashSet.null @ Language.Fixpoint.Types.Environments.BindId)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-ab42439971f160029014f6063bd5308f
-  packm ::
-    Language.Fixpoint.Types.Environments.Packs
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Environments.Packs
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fFixpointPacks_$s$dmsimplify
-                  `cast`
-                (<Language.Fixpoint.Types.Environments.Packs>_R
-                 ->_R Language.Fixpoint.Types.Environments.N:Packs[0]) -}
-7d9f775e6f4dff24a9066462a73e4a6a
-  seBinds ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-  RecSel Left Language.Fixpoint.Types.Environments.SEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.seBinds1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Environments.SEnv a>_R
-                 ->_R Language.Fixpoint.Types.Environments.N:SEnv[0] <a>_N) -}
-0703920017a3d1cfa4ac0b5acac52602
-  seBinds1 ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ a
-                   (eta :: Language.Fixpoint.Types.Environments.SEnv a) ->
-                 eta) -}
-fbbef264516f9bec0ae6fc47631bb833
-  soeBinds ::
-    Language.Fixpoint.Types.Environments.SolEnv
-    -> Language.Fixpoint.Types.Environments.BindEnv
-  RecSel Left Language.Fixpoint.Types.Environments.SolEnv
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Environments.SolEnv) ->
-                 case ds of wild { Language.Fixpoint.Types.Environments.SolEnv ds1 ->
-                 ds1 }) -}
-28b630fc2daa44cc77436b1b4a7207e8
-  toListSEnv ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> [(Language.Fixpoint.Types.Names.Symbol, a)]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.toList @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <[(Language.Fixpoint.Types.Names.Symbol, a)]>_R) -}
-f6babeef179e76988b659bd281a317e4
-  unionIBindEnv ::
-    Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                (Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_$s$wunion
-                   @ ())
-                  `cast`
-                (Trans
-                     (Sym (Data.HashSet.N:HashSet[0]
-                               <Language.Fixpoint.Types.Environments.BindId>_N))
-                     (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))
-                 ->_R Trans
-                          (Sym (Data.HashSet.N:HashSet[0]
-                                    <Language.Fixpoint.Types.Environments.BindId>_N))
-                          (Sym (Language.Fixpoint.Types.Environments.N:IBindEnv[0]))) -}
-c0b7430cad1fe3a300af1df67787d65a
-  unionSEnv ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fMonoidSEnv_$s$wunion
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R <Data.HashMap.Base.HashMap
-                         Language.Fixpoint.Types.Names.Symbol a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-d8011c88c4bb3b5c827c5bd9e6aa8a05
-  unionSEnv' ::
-    Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-    -> Language.Fixpoint.Types.Environments.SEnv a
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Environments.$fMonoidSEnv_$s$wunion
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N
-                 ->_R Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <a>_N) -}
-instance Data.Binary.Class.Binary [Data.HashSet.HashSet]
-  = Language.Fixpoint.Types.Environments.$fBinaryHashSet
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fBinaryIBindEnv
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fBinaryPacks
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fBinarySEnv
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fBinarySizedEnv
-instance Data.Data.Data [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fDataIBindEnv
-instance Data.Data.Data [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fDataSEnv
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fEqIBindEnv
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fEqPacks
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fEqSEnv
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fEqSizedEnv
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Environments.SolEnv]
-  = Language.Fixpoint.Types.Environments.$fEqSolEnv
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fFixpointIBindEnv
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fFixpointPacks
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fFixpointSEnv
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fFixpointSizedEnv
-instance Data.Foldable.Foldable [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fFoldableSEnv
-instance Data.Foldable.Foldable [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fFoldableSizedEnv
-instance GHC.Base.Functor [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fFunctorSEnv
-instance GHC.Base.Functor [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fFunctorSizedEnv
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fGenericIBindEnv
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fGenericPacks
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fGenericSEnv
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fGenericSizedEnv
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Environments.SolEnv]
-  = Language.Fixpoint.Types.Environments.$fGenericSolEnv
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fMonoidIBindEnv
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fMonoidPacks
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fMonoidSEnv
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fMonoidSizedEnv
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fNFDataIBindEnv
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fNFDataPacks
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fNFDataSEnv
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fNFDataSizedEnv
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.$fPPrintIBindEnv
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fPPrintPacks
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fPPrintSEnv
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fPPrintSizedEnv
-instance GHC.Show.Show [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.$fShowPacks
-instance GHC.Show.Show [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fShowSEnv
-instance GHC.Show.Show [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fShowSizedEnv
-instance GHC.Show.Show [Language.Fixpoint.Types.Environments.SolEnv]
-  = Language.Fixpoint.Types.Environments.$fShowSolEnv
-instance Data.Traversable.Traversable [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.$fTraversableSEnv
-instance Data.Traversable.Traversable [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.$fTraversableSizedEnv
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Environments.Packs]
-  = Language.Fixpoint.Types.Environments.Rep_Packs
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Environments.SolEnv]
-  = Language.Fixpoint.Types.Environments.Rep_SolEnv
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Environments.Rep_SizedEnv
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Environments.SEnv]
-  = Language.Fixpoint.Types.Environments.Rep_SEnv
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Environments.IBindEnv]
-  = Language.Fixpoint.Types.Environments.Rep_IBindEnv
-"SPEC/Language.Fixpoint.Types.Environments $dmdataCast1 @ IBindEnv" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                 Language.Fixpoint.Types.Environments.IBindEnv)
-  Data.Data.$dmdataCast1 @ Language.Fixpoint.Types.Environments.IBindEnv
-                         $dData
-  = Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Types.Environments $dmdataCast2 @ IBindEnv" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                 Language.Fixpoint.Types.Environments.IBindEnv)
-  Data.Data.$dmdataCast2 @ Language.Fixpoint.Types.Environments.IBindEnv
-                         $dData
-  = Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$dmdataCast2
-"SPEC/Language.Fixpoint.Types.Environments $dmput @ Packs" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                              (GHC.Generics.Rep
-                                                                                                 Language.Fixpoint.Types.Environments.Packs))
-                                                                           ($dGeneric :: GHC.Generics.Generic
-                                                                                           Language.Fixpoint.Types.Environments.Packs)
-                                                                           ($dBinary :: Data.Binary.Class.Binary
-                                                                                          Language.Fixpoint.Types.Environments.Packs)
-  Data.Binary.Class.$dmput @ Language.Fixpoint.Types.Environments.Packs
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Environments.$fBinaryPacks_$s$dmput
-"SPEC/Language.Fixpoint.Types.Environments $dmrnf @ BindEnv" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                             (GHC.Generics.Rep
-                                                                                                Language.Fixpoint.Types.Environments.BindEnv))
-                                                                             ($dGeneric :: GHC.Generics.Generic
-                                                                                             Language.Fixpoint.Types.Environments.BindEnv)
-                                                                             ($dNFData :: Control.DeepSeq.NFData
-                                                                                            Language.Fixpoint.Types.Environments.BindEnv)
-  Control.DeepSeq.$dmrnf @ (Language.Fixpoint.Types.Environments.SizedEnv
-                              (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft))
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Environments.$fNFDataSizedEnv_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Environments $dmrnf @ IBindEnv" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                              (GHC.Generics.Rep
-                                                                                                 Language.Fixpoint.Types.Environments.IBindEnv))
-                                                                              ($dGeneric :: GHC.Generics.Generic
-                                                                                              Language.Fixpoint.Types.Environments.IBindEnv)
-                                                                              ($dNFData :: Control.DeepSeq.NFData
-                                                                                             Language.Fixpoint.Types.Environments.IBindEnv)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Environments.IBindEnv
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Environments.$fNFDataIBindEnv_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Environments $dmrnf @ Packs" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                           (GHC.Generics.Rep
-                                                                                              Language.Fixpoint.Types.Environments.Packs))
-                                                                           ($dGeneric :: GHC.Generics.Generic
-                                                                                           Language.Fixpoint.Types.Environments.Packs)
-                                                                           ($dNFData :: Control.DeepSeq.NFData
-                                                                                          Language.Fixpoint.Types.Environments.Packs)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Environments.Packs
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Environments.$fNFDataPacks_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Environments $dmsimplify @ BindEnv" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                                   Language.Fixpoint.Types.Environments.BindEnv)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ (Language.Fixpoint.Types.Environments.SizedEnv
-                                                       (Language.Fixpoint.Types.Names.Symbol,
-                                                        Language.Fixpoint.Types.Refinements.SortedReft))
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Environments.$fFixpointSizedEnv_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Environments $dmsimplify @ IBindEnv" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                                    Language.Fixpoint.Types.Environments.IBindEnv)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Environments.IBindEnv
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Environments.$fFixpointIBindEnv_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Environments $dmsimplify @ Packs" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                                 Language.Fixpoint.Types.Environments.Packs)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Environments.Packs
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Environments.$fFixpointPacks_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Environments $fBinary(,) @ Symbol @ SortedReft" [ALWAYS] forall ($dBinary1 :: Data.Binary.Class.Binary
-                                                                                                              Language.Fixpoint.Types.Refinements.SortedReft)
-                                                                                              ($dBinary :: Data.Binary.Class.Binary
-                                                                                                             Language.Fixpoint.Types.Names.Symbol)
-  Data.Binary.Class.$fBinary(,) @ Language.Fixpoint.Types.Names.Symbol
-                                @ Language.Fixpoint.Types.Refinements.SortedReft
-                                $dBinary
-                                $dBinary1
-  = Language.Fixpoint.Types.Environments.$fBinarySizedEnv_$s$fBinary(,)
-"SPEC/Language.Fixpoint.Types.Environments $fDataHashSet @ Int" [ALWAYS] forall ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                 GHC.Types.Int)
-                                                                                ($dEq :: GHC.Classes.Eq
-                                                                                           GHC.Types.Int)
-                                                                                ($dData :: Data.Data.Data
-                                                                                             GHC.Types.Int)
-  Data.HashSet.$fDataHashSet @ GHC.Types.Int $dData $dEq $dHashable
-  = Language.Fixpoint.Types.Environments.$fDataIBindEnv_$s$fDataHashSet
-"SPEC/Language.Fixpoint.Types.Environments $fEqHashMap_$c/= @ KVar @ Int" [ALWAYS] forall ($dEq1 :: GHC.Classes.Eq
-                                                                                                      GHC.Types.Int)
-                                                                                          ($dEq :: GHC.Classes.Eq
-                                                                                                     Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Base.$fEqHashMap_$c/= @ Language.Fixpoint.Types.Refinements.KVar
-                                     @ GHC.Types.Int
-                                     $dEq
-                                     $dEq1
-  = Language.Fixpoint.Types.Environments.$fEqPacks_$s$fEqHashMap_$c/=
-"SPEC/Language.Fixpoint.Types.Environments $fEqHashMap_$c== @ KVar @ Int" [ALWAYS] forall ($dEq1 :: GHC.Classes.Eq
-                                                                                                      GHC.Types.Int)
-                                                                                          ($dEq :: GHC.Classes.Eq
-                                                                                                     Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Base.$fEqHashMap_$c== @ Language.Fixpoint.Types.Refinements.KVar
-                                     @ GHC.Types.Int
-                                     $dEq
-                                     $dEq1
-  = Language.Fixpoint.Types.Environments.$fEqPacks_$s$fEqHashMap_$c==
-"SPEC/Language.Fixpoint.Types.Environments $fEqHashSet_$c/= @ Int" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                              GHC.Types.Int)
-  Data.HashSet.$fEqHashSet_$c/= @ GHC.Types.Int $dEq
-  = Language.Fixpoint.Types.Environments.$fEqIBindEnv_$s$fEqHashSet_$c/=
-"SPEC/Language.Fixpoint.Types.Environments $fEqHashSet_$c== @ Int" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                              GHC.Types.Int)
-  Data.HashSet.$fEqHashSet_$c== @ GHC.Types.Int $dEq
-  = Language.Fixpoint.Types.Environments.$fEqIBindEnv_$s$fEqHashSet_$c==
-"SPEC/Language.Fixpoint.Types.Environments $fShow(,) @ Symbol @ SortedReft" [ALWAYS] forall ($dShow1 :: GHC.Show.Show
-                                                                                                          Language.Fixpoint.Types.Refinements.SortedReft)
-                                                                                            ($dShow :: GHC.Show.Show
-                                                                                                         Language.Fixpoint.Types.Names.Symbol)
-  GHC.Show.$fShow(,) @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.SortedReft
-                     $dShow
-                     $dShow1
-  = Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)
-"SPEC/Language.Fixpoint.Types.Environments $fShow(,)_$cshow @ Symbol @ SortedReft" [ALWAYS] forall ($dShow1 :: GHC.Show.Show
-                                                                                                                 Language.Fixpoint.Types.Refinements.SortedReft)
-                                                                                                   ($dShow :: GHC.Show.Show
-                                                                                                                Language.Fixpoint.Types.Names.Symbol)
-  GHC.Show.$fShow(,)_$cshow @ Language.Fixpoint.Types.Names.Symbol
-                            @ Language.Fixpoint.Types.Refinements.SortedReft
-                            $dShow
-                            $dShow1
-  = Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)_$cshow
-"SPEC/Language.Fixpoint.Types.Environments $fShow(,)_$cshowList @ Symbol @ SortedReft" [ALWAYS] forall ($dShow1 :: GHC.Show.Show
-                                                                                                                     Language.Fixpoint.Types.Refinements.SortedReft)
-                                                                                                       ($dShow :: GHC.Show.Show
-                                                                                                                    Language.Fixpoint.Types.Names.Symbol)
-  GHC.Show.$fShow(,)_$cshowList @ Language.Fixpoint.Types.Names.Symbol
-                                @ Language.Fixpoint.Types.Refinements.SortedReft
-                                $dShow
-                                $dShow1
-  = Language.Fixpoint.Types.Environments.$fShowSizedEnv_$s$fShow(,)_$cshowList
-"SPEC/Language.Fixpoint.Types.Environments $wunion @ BindId _" [0] forall @ v
-                                                                          (w :: GHC.Classes.Eq
-                                                                                  Language.Fixpoint.Types.Environments.BindId)
-  Data.HashMap.Base.$wunion @ GHC.Types.Int @ v w
-  = Language.Fixpoint.Types.Environments.$fMonoidIBindEnv_$s$wunion
-      @ v
-"SPEC/Language.Fixpoint.Types.Environments $wunion @ KVar _" [0] forall @ v
-                                                                        (w :: GHC.Classes.Eq
-                                                                                Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Base.$wunion @ Language.Fixpoint.Types.Refinements.KVar
-                            @ v
-                            w
-  = Language.Fixpoint.Types.Environments.$fMonoidPacks_$s$wunion @ v
-"SPEC/Language.Fixpoint.Types.Environments $wunion @ Symbol _" [0] forall @ v
-                                                                          (w :: GHC.Classes.Eq
-                                                                                  Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.$wunion @ Language.Fixpoint.Types.Names.Symbol
-                            @ v
-                            w
-  = Language.Fixpoint.Types.Environments.$fMonoidSEnv_$s$wunion @ v
-"SPEC/Language.Fixpoint.Types.Environments $wupdateOrConcatWithKey @ BindId _" [0] forall @ v
-                                                                                          (w :: GHC.Classes.Eq
-                                                                                                  Language.Fixpoint.Types.Environments.BindId)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ GHC.Types.Int @ v w
-  = Language.Fixpoint.Types.Environments.$s$wupdateOrConcatWithKey1
-      @ v
-"SPEC/Language.Fixpoint.Types.Environments $wupdateOrConcatWithKey @ KVar _" [0] forall @ v
-                                                                                        (w :: GHC.Classes.Eq
-                                                                                                Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ Language.Fixpoint.Types.Refinements.KVar
-                                            @ v
-                                            w
-  = Language.Fixpoint.Types.Environments.$s$wupdateOrConcatWithKey
-      @ v
-"SPEC/Language.Fixpoint.Types.Environments adjust @ BindId _" [ALWAYS] forall @ v
-                                                                              ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                               Language.Fixpoint.Types.Environments.BindId)
-                                                                              ($dEq :: GHC.Classes.Eq
-                                                                                         Language.Fixpoint.Types.Environments.BindId)
-  Data.HashMap.Strict.adjust @ GHC.Types.Int @ v $dEq $dHashable
-  = Language.Fixpoint.Types.Environments.$sadjust @ v
-"SPEC/Language.Fixpoint.Types.Environments difference @ Symbol _ _" [ALWAYS] forall @ v
-                                                                                    @ w
-                                                                                    ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                     Language.Fixpoint.Types.Names.Symbol)
-                                                                                    ($dEq :: GHC.Classes.Eq
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.difference @ Language.Fixpoint.Types.Names.Symbol
-                               @ v
-                               @ w
-                               $dEq
-                               $dHashable
-  = Language.Fixpoint.Types.Environments.$sdifference @ v @ w
-"SPEC/Language.Fixpoint.Types.Environments insert @ Symbol _" [ALWAYS] forall @ v
-                                                                              ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-                                                                              ($dEq :: GHC.Classes.Eq
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.insert @ Language.Fixpoint.Types.Names.Symbol
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Types.Environments.$sinsert @ v
-"SPEC/Language.Fixpoint.Types.Environments intersectionWith @ Symbol _ _ _" [ALWAYS] forall @ v1
-                                                                                            @ v2
-                                                                                            @ v3
-                                                                                            ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                             Language.Fixpoint.Types.Names.Symbol)
-                                                                                            ($dEq :: GHC.Classes.Eq
-                                                                                                       Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Strict.intersectionWith @ Language.Fixpoint.Types.Names.Symbol
-                                       @ v1
-                                       @ v2
-                                       @ v3
-                                       $dEq
-                                       $dHashable
-  = Language.Fixpoint.Types.Environments.$sintersectionWith
-      @ v1
-      @ v2
-      @ v3
-"SPEC/Language.Fixpoint.Types.Environments lookup @ KVar _" [ALWAYS] forall @ v
-                                                                            ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                             Language.Fixpoint.Types.Refinements.KVar)
-                                                                            ($dEq :: GHC.Classes.Eq
-                                                                                       Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Base.lookup @ Language.Fixpoint.Types.Refinements.KVar
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Types.Environments.$slookup @ v
-"SPEC/Language.Fixpoint.Types.Environments lookup @ Symbol _" [ALWAYS] forall @ v
-                                                                              ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-                                                                              ($dEq :: GHC.Classes.Eq
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.lookup @ Language.Fixpoint.Types.Names.Symbol
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Types.Environments.$slookup1 @ v
-"SPEC/Language.Fixpoint.Types.Environments pprint @ [BindId]" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                             [Language.Fixpoint.Types.Environments.BindId])
-  Language.Fixpoint.Types.PrettyPrint.pprint @ [Language.Fixpoint.Types.Environments.BindId]
-                                             $dPPrint
-  = Language.Fixpoint.Types.Environments.$fPPrintIBindEnv_$spprint
-"SPEC/Language.Fixpoint.Types.Environments shows @ Packs" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                       Language.Fixpoint.Types.Environments.Packs)
-  GHC.Show.shows @ Language.Fixpoint.Types.Environments.Packs $dShow
-  = Language.Fixpoint.Types.Environments.$fShowPacks_$sshows
-"SPEC/Language.Fixpoint.Types.Environments shows @ SolEnv" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                        Language.Fixpoint.Types.Environments.SolEnv)
-  GHC.Show.shows @ Language.Fixpoint.Types.Environments.SolEnv $dShow
-  = Language.Fixpoint.Types.Environments.$fShowSolEnv_$sshows
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Errors.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Errors.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Errors.dump-hi
+++ /dev/null
@@ -1,11495 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:52.010911 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors [orphan module] [family instance module] 8002
-  interface hash: 98702fe6c8c26d0a09a58c97eb6ae27f
-  ABI hash: d4d50638f5ff32bb3bc70ba4c9bb3ab8
-  export-list hash: c4470aa04bce431d939b34bcb1af3229
-  orphan hash: 8eef979b573f3e0cba4b98395c1509c0
-  flag hash: 94fce8d5fce2cde0a8505506fc47ec8c
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Errors.catError
-  Language.Fixpoint.Types.Errors.catErrors
-  Language.Fixpoint.Types.Errors.colorResult
-  Language.Fixpoint.Types.Errors.die
-  Language.Fixpoint.Types.Errors.err
-  Language.Fixpoint.Types.Errors.errFreeVarInConstraint
-  Language.Fixpoint.Types.Errors.errFreeVarInQual
-  Language.Fixpoint.Types.Errors.errIllScopedKVar
-  Language.Fixpoint.Types.Errors.exit
-  Language.Fixpoint.Types.Errors.resultDoc
-  Language.Fixpoint.Types.Spans.dummySpan
-  Language.Fixpoint.Types.Spans.sourcePosElts
-  Language.Fixpoint.Types.Errors.Error
-  Language.Fixpoint.Types.Errors.Error1|{errLoc errMsg}
-  Language.Fixpoint.Types.Errors.FixResult{Language.Fixpoint.Types.Errors.Crash Language.Fixpoint.Types.Errors.Safe Language.Fixpoint.Types.Errors.Unsafe}
-  Language.Fixpoint.Types.Spans.SrcSpan{Language.Fixpoint.Types.Spans.SS sp_start sp_stop}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.PrettyPrint Language.Fixpoint.Types.Spans
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Exception a76dd9666251322fe34dbcca3a0817bf
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Function 7aca86bfbd92366def5f260e30cb2628
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Exception e38fa3e73d54022fb9e3ce06477dfd07
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e:Data.Serialize bfa0e727b662cbdba896c0b5c0142f5d
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  Angry 0406db6b91563022a2bf052b37197c99
-  Happy dffacf5eff5611c151451a048c5fcc38
-  ListNE 245082d2e65bed4e03d6c17463d8b79a
-  Moods 91b7fe939c9c0ffb716510227cc5d3ce
-  Sad b91f086668a9bcac55cb0c0c49f4e9a1
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  exports: 7fe5850227a6e738b3508defc057da0b
-  Loc 5c898e316073c02ed4de00d3c857e47e
-  SS 0b969b36fbbffcb664c45ed3cb72e84a
-  SrcSpan 78175b19733acaa6a468bb3dc2117709
-  dummySpan 0a9a460d1a0c849b90ebbbabded90215
-  sourcePosElts 206f4217a89e76ad2874ab86ab0ff653
-  sp_start 66a78cde7fda67c47ad8854704384b7a
-  sp_stop 2a61f2810d77eadb616ccfe78300b944
-  srcSpan e14e72943b218bf137bbcd00f821afa2
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ 2ab5df7927668b2067e0d9d162c2deef
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-addDependentFile "/usr/local/lib/ghc-8.0.2/include/ghcversion.h"
-addDependentFile ".stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h"
-123fb36a4b195c04060a482ae5ce2b02
-  $c5QH7u8Lpk3uJNrpiH7MMq0 :: Data.Data.Constr
-e9b83f5db20d4eae4fd7d98891ce4eaf
-  $cL6YnlH531FFI7owCmZmx3C :: Data.Data.Constr
-79bf23f7be31553edccd57e71433b1b4
-  $cL7WXoOZlMdJygnLl3hGdW :: Data.Data.Constr
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(A,C(C1(U)),C(U(A,U)))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.$fBinaryFixResult_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Errors.$fBinaryFixResult_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Errors.$fBinaryFixResult_$cputList
-                     @ a
-                     $dBinary) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Errors.FixResult a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Errors.FixResult a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-c84219e2718c456da63f9877bb354550
-  $fBinaryFixResult2 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult3 ::
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.K1 GHC.Generics.R [a])
-             GHC.Generics.:*: GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1 GHC.Generics.R [a])))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Errors.Crash g1 g2
-                   -> GHC.Generics.L1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R [a])
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1 GHC.Generics.R [a])))
-                        @ x
-                        (GHC.Generics.:*:
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R [a]))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Base.String))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <x>_P))
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1 GHC.Generics.R [a]>_R) <x>_N))
-                           g2
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P <GHC.Base.String>_R <x>_P))
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R GHC.Base.String>_R) <x>_N)))
-                          `cast`
-                        (Sym (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.C>_P
-                                  <'GHC.Generics.MetaCons
-                                     "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.K1 GHC.Generics.R [a])
-                                   GHC.Generics.:*: GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R GHC.Base.String)>_R) <x>_N)
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fBinaryFixResult4 @ a @ x
-                   Language.Fixpoint.Types.Errors.Unsafe g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R [a])
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1 GHC.Generics.R [a])))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1)
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1 GHC.Generics.R [a])))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1 GHC.Generics.R [a]>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R [a])>_R)) <x>_N))) }) -}
-eb9f7330583e2954e03bb2e863c0c2d0
-  $fBinaryFixResult4 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1 GHC.Generics.R [a])
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1 GHC.Generics.R [a])))
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ a @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.NoSourceStrictness
-                              'GHC.Generics.DecidedLazy)
-                           (GHC.Generics.K1 GHC.Generics.R [a])
-                         GHC.Generics.:*: GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1 GHC.Generics.R [a])))
-                   @ x
-                   (Language.Fixpoint.Types.Errors.$fBinaryFixResult5 @ x @ a)) -}
-3ff001c00007bab1b5d157f59dc1423c
-  $fBinaryFixResult5 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1 GHC.Generics.R [a])))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x @ a ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1 GHC.Generics.R [a])))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-ccacc4448b538a0c330328891488d844
-  $fBinaryFixResult6 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fBinaryFixResult1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Errors.FixResult a>_R)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> Data.Binary.Put.Put
-  {- Arity: 2, Strictness: <L,U(A,A,C(U(A,U)))><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dBinary :: Data.Binary.Class.Binary a)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Data.Binary.Generic.$w$cgput
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.S1
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.NoSourceStrictness
-                              'GHC.Generics.DecidedLazy)
-                           (GHC.Generics.Rec0 [a])
-                         GHC.Generics.:*: GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.Rec0 GHC.Base.String)))
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0 [a])))
-                   (\ @ w1
-                      @ a1
-                      (w2 :: GHC.Num.Num w1)[OneShot]
-                      (w3 :: Data.Bits.Bits w1)[OneShot]
-                      (w4 :: Data.Binary.Class.Binary w1)[OneShot]
-                      (w5 :: w1)[OneShot]
-                      (w6 :: w1)[OneShot]
-                      (w7 :: GHC.Generics.C1
-                               ('GHC.Generics.MetaCons
-                                  "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 [a])
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0 GHC.Base.String))
-                               a1)[OneShot] ->
-                    case w5 of code { DEFAULT ->
-                    (Data.Binary.Put.PairS
-                       @ ()
-                       GHC.Tuple.()
-                       (let {
-                          ds1 :: Data.ByteString.Builder.Internal.Builder
-                          = case w7
-                                   `cast`
-                                 (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.C>_P
-                                      <'GHC.Generics.MetaCons
-                                         "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                      <GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy)
-                                         (GHC.Generics.Rec0 [a])
-                                       GHC.Generics.:*: GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.Rec0
-                                                             GHC.Base.String)>_R <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                            let {
-                              ds2 :: Data.ByteString.Builder.Internal.Builder
-                              = case Data.Binary.Class.$w$cputList
-                                       ww2
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Base.String>_R <a1>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <[GHC.Types.Char]>_R
-                                                 <a1>_P)) of ww4 { (#,#) ww5 ww6 ->
-                                ww6 }
-                            } in
-                            let {
-                              ds :: Data.ByteString.Builder.Internal.Builder
-                              = case (Data.Binary.Class.putList
-                                        @ a
-                                        $dBinary
-                                        ww1
-                                          `cast`
-                                        (Trans
-                                             (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy>_P
-                                                  <GHC.Generics.K1 GHC.Generics.R [a]>_R <a1>_N)
-                                             (GHC.Generics.N:K1[0]
-                                                  <GHC.Generics.R>_P <[a]>_R <a1>_P)))
-                                       `cast`
-                                     (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds3 w11 ->
-                                w11 }
-                            } in
-                            (\ @ r (eta1 :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                             ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                               @ r
-                               (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                  @ r
-                                  eta1))
-                              `cast`
-                            (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) }
-                        } in
-                        let {
-                          ds :: Data.ByteString.Builder.Internal.Builder
-                          = case (Data.Binary.Class.put @ w1 w4 code)
-                                   `cast`
-                                 (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                            w8 }
-                        } in
-                        (\ @ r (eta1 :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                         ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                           @ r
-                           (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                              @ r
-                              eta1))
-                          `cast`
-                        (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                      `cast`
-                    (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) })
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 [a])
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0 GHC.Base.String))>_N))
-                   (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                      @ (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-                      @ (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 [a])))
-                      Language.Fixpoint.Types.Errors.$fBinaryFixResult6
-                        `cast`
-                      (Sym (Data.Binary.Generic.N:GSumPut[0]
-                                <GHC.Generics.C1
-                                   ('GHC.Generics.MetaCons
-                                      "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1>_N))
-                      (\ @ w1
-                         @ a1
-                         (w2 :: GHC.Num.Num w1)[OneShot]
-                         (w3 :: Data.Bits.Bits w1)[OneShot]
-                         (w4 :: Data.Binary.Class.Binary w1)[OneShot]
-                         (w5 :: w1)[OneShot]
-                         (w6 :: w1)[OneShot]
-                         (w7 :: GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.M1
-                                     GHC.Generics.S
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0 [a]))
-                                  a1)[OneShot] ->
-                       case w5 of code { DEFAULT ->
-                       (Data.Binary.Put.PairS
-                          @ ()
-                          GHC.Tuple.()
-                          (let {
-                             ds1 :: Data.ByteString.Builder.Internal.Builder
-                             = case (Data.Binary.Class.putList
-                                       @ a
-                                       $dBinary
-                                       w7
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "Unsafe"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.Rec0 [a])>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R [a]>_R) <a1>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P <[a]>_R <a1>_P)))
-                                      `cast`
-                                    (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds w' ->
-                               w' }
-                           } in
-                           let {
-                             ds :: Data.ByteString.Builder.Internal.Builder
-                             = case (Data.Binary.Class.put @ w1 w4 code)
-                                      `cast`
-                                    (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                               w8 }
-                           } in
-                           (\ @ r (eta1 :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                            ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                              @ r
-                              (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                 @ r
-                                 eta1))
-                             `cast`
-                           (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                         `cast`
-                       (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) })
-                        `cast`
-                      (Sym (Data.Binary.Generic.N:GSumPut[0]
-                                <GHC.Generics.C1
-                                   ('GHC.Generics.MetaCons
-                                      "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.Rec0 [a]))>_N)))
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0 [a]))>_N))
-                   1##
-                   2##
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Errors.$fBinaryFixResult3
-                      @ a
-                      @ GHC.Prim.Any
-                      eta)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Errors.FixResult a] -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(A,C(C1(U)),C(U(A,U)))> -}
-bbcb7910102e76dd87f9706483b3612e
-  $fBinaryFixResult_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Errors.FixResult a) x
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Language.Fixpoint.Types.Errors.FixResult a) x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Errors.Rep_FixResult[0] <a>_N))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "FixResult"
-                                   "Language.Fixpoint.Types.Errors"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.K1 GHC.Generics.R [a])
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.NoSourceStrictness
-                                                          'GHC.Generics.DecidedLazy)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R GHC.Base.String))
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "Safe"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     GHC.Generics.U1
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "Unsafe"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            [a])))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1
-                             `cast`
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R [a])
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       GHC.Base.String)>_R <x>_N) of wild1 { GHC.Generics.:*: ds2 ds3 ->
-                      Language.Fixpoint.Types.Errors.Crash
-                        @ a
-                        ds2
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1 GHC.Generics.R [a]>_R <x>_N)
-                             (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <x>_P))
-                        ds3
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1 GHC.Generics.R GHC.Base.String>_R <x>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P <GHC.Base.String>_R <x>_P)) }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of tpl { DEFAULT ->
-                           Language.Fixpoint.Types.Errors.Safe @ a }
-                        GHC.Generics.R1 ds2
-                        -> Language.Fixpoint.Types.Errors.$WUnsafe
-                             @ a
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1 GHC.Generics.R [a])>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1 GHC.Generics.R [a]>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <x>_P)) } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult ::
-    Data.Data.Data a =>
-    Data.Data.Data (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dData :: Data.Data.Data a).
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cp1Data
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgunfold
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$ctoConstr
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cdataTypeOf
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cdataCast1
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cdataCast2
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapT @ a $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapQl
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapQr
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapQ @ a $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapQi
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapM @ a $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapMp
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgmapMo
-                     @ a
-                     $dData) -}
-06239c8d661ed0b3419ea4c148fb0451
-  $fDataFixResult1 :: g -> Data.Data.Qi u g
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ u @ g (ds :: g) ->
-                 Language.Fixpoint.Types.Errors.$fDataFixResult2 @ g @ u) -}
-c8efd382dedda0a83f9c1c343f136241
-  $fDataFixResult10 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Errors.$fDataFixResult11) -}
-d255d085c5c5e11d7efffa21781c4192
-  $fDataFixResult11 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Errors.$cL7WXoOZlMdJygnLl3hGdW
-                   Language.Fixpoint.Types.Errors.$fDataFixResult12) -}
-320f0818518bacfd8de795ae68478c7e
-  $fDataFixResult12 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Errors.$c5QH7u8Lpk3uJNrpiH7MMq0
-                   Language.Fixpoint.Types.Errors.$fDataFixResult13) -}
-e972516ae97ee23e300cf0e0b0cf1d48
-  $fDataFixResult13 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Errors.$cL6YnlH531FFI7owCmZmx3C
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-e0c637332a296cd6defda87f47e86b32
-  $fDataFixResult14 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "FixResult"#) -}
-716c56307fdb6f76d7c0a56310a79cb5
-  $fDataFixResult2 :: Data.Data.Qi u g
-  {- HasNoCafRefs,
-     Unfolding: (\ @ g @ u ->
-                 Data.Data.Qi
-                   @ *
-                   @ u
-                   @ g
-                   Language.Fixpoint.Types.Errors.$fDataFixResult3
-                   (GHC.Base.Nothing @ u)) -}
-6654b9d4f72f894dbad6d3b1bba85b20
-  $fDataFixResult3 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-82c43fc16ea012b65e7ef1401919a268
-  $fDataFixResult4 :: g -> [u] -> [u]
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ @ u @ g (ds :: g) (eta :: [u]) -> eta) -}
-aae20824da423c9d9a94e0b60baab670
-  $fDataFixResult5 :: g -> r -> r
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ @ r @ g (ds :: g) (eta :: r) -> eta) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult6 ::
-    Data.Data.Data a =>
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> Data.Data.ID (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: forall b. Data.Data.Data b => b -> b)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                   @ a
-                   $dData
-                   @ Data.Data.ID
-                   (\ @ d
-                      @ b
-                      ($dData1 :: Data.Data.Data d)
-                      (ds1 :: Data.Data.ID (d -> b))
-                      (x :: d) ->
-                    ds1 `cast` (Data.Data.N:ID[0] <d -> b>_R) (ds @ d $dData1 x))
-                     `cast`
-                   (forall (d :: <*>_N) (b :: <*>_N).
-                    <Data.Data.Data d>_R
-                    ->_R <Data.Data.ID (d -> b)>_R
-                    ->_R <d>_R
-                    ->_R Sym (Data.Data.N:ID[0] <b>_R))
-                   Language.Fixpoint.Types.Errors.$fDataFixResult7
-                     `cast`
-                   (forall (g :: <*>_N). <g>_R ->_R Sym (Data.Data.N:ID[0] <g>_R))
-                   eta) -}
-222af81af6ffca39122131939dfab49b
-  $fDataFixResult7 :: g -> g
-  {- Arity: 1, HasNoCafRefs, Unfolding: (\ @ g (tpl :: g) -> tpl) -}
-4b90c508570a3914ca73aa7534026a9e
-  $fDataFixResult8 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Errors.$fDataFixResult9
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Errors.$tcFixResult
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-4102094b16c6049fb9adbadb40b4ca28
-  $fDataFixResult9 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   5355333826724544256##
-                   5408947706589206649##) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cdataCast1 ::
-    Data.Data.Data a =>
-    forall (t :: * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Errors.FixResult a))
-  {- Arity: 3,
-     Strictness: <L,U><C(S(SLLLL)),1*C1(U(U,U,A,A,A))><L,1*C1(U)>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (f :: forall d. Data.Data.Data d => c (t d)) ->
-                 case $dTypeable
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <* -> *>_N <t>_N)
-                        (GHC.Prim.proxy#
-                           @ (* -> *)
-                           @ t) of wild { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.Types.Errors.$fDataFixResult8 of wild1 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild2 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing
-                        @ (c (Language.Fixpoint.Types.Errors.FixResult a))
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing
-                             @ (c (Language.Fixpoint.Types.Errors.FixResult a))
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ (c (Language.Fixpoint.Types.Errors.FixResult a))
-                             (f @ a $dData)
-                               `cast`
-                             (<c>_R (UnsafeCo nominal t Language.Fixpoint.Types.Errors.FixResult <a>_N)) } } } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cdataCast2 ::
-    Data.Data.Data a =>
-    forall (t :: * -> * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Errors.FixResult a))
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><L,A><L,A>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c (Language.Fixpoint.Types.Errors.FixResult a))) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cdataTypeOf ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> Data.Data.DataType
-  {- Arity: 2, Strictness: <L,A><L,A>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$t1UFU5oZ4U0l5IUwxNr3Y0y) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgfoldl ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> c (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) @ (c :: * -> *) ->
-                 let {
-                   $dData1 :: Data.Data.Data [a] = Data.Data.$fData[] @ a $dData
-                 } in
-                 \ (k1 :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> k1
-                        @ GHC.Base.String
-                        @ (Language.Fixpoint.Types.Errors.FixResult a)
-                        Data.Data.$fData[]_$s$fData[]
-                        (k1
-                           @ [a]
-                           @ (GHC.Base.String -> Language.Fixpoint.Types.Errors.FixResult a)
-                           $dData1
-                           (z @ ([a]
-                                 -> GHC.Base.String -> Language.Fixpoint.Types.Errors.FixResult a)
-                              (Language.Fixpoint.Types.Errors.Crash @ a))
-                           a1)
-                        a2
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> z @ (Language.Fixpoint.Types.Errors.FixResult a)
-                        (Language.Fixpoint.Types.Errors.Safe @ a)
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> k1
-                        @ [a]
-                        @ (Language.Fixpoint.Types.Errors.FixResult a)
-                        $dData1
-                        (z @ ([a] -> Language.Fixpoint.Types.Errors.FixResult a)
-                           (Language.Fixpoint.Types.Errors.$WUnsafe @ a))
-                        a1 }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapM ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> m (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U(A,C(C1(U)),A,U,A)><L,C(C1(U))>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d) ->
-                 Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                   @ a
-                   $dData
-                   @ m
-                   (\ @ d
-                      @ b
-                      ($dData1 :: Data.Data.Data d)
-                      (c :: m (d -> b))
-                      (x :: d) ->
-                    let {
-                      lvl23 :: m d = ds @ d $dData1 x
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ (d -> b)
-                      @ b
-                      c
-                      (\ (c' :: d -> b) ->
-                       GHC.Base.>>=
-                         @ m
-                         $dMonad
-                         @ d
-                         @ b
-                         lvl23
-                         (\ (x' :: d) -> GHC.Base.return @ m $dMonad @ b (c' x'))))
-                   (\ @ g -> GHC.Base.return @ m $dMonad @ g)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapMo ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> m (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl23 :: m (Language.Fixpoint.Types.Errors.FixResult a)
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ (Language.Fixpoint.Types.Errors.FixResult a)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Errors.FixResult a, GHC.Types.Bool)
-                   @ (Language.Fixpoint.Types.Errors.FixResult a)
-                   (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                      @ a
-                      $dData
-                      @ (Data.Data.Mp m)
-                      (\ @ d
-                         @ b
-                         ($dData1 :: Data.Data.Data d)
-                         (ds1 :: Data.Data.Mp m (d -> b))
-                         (y :: d) ->
-                       let {
-                         lvl24 :: m d = ds @ d $dData1 y
-                       } in
-                       GHC.Base.>>=
-                         @ m
-                         $dMonad
-                         @ (d -> b, GHC.Types.Bool)
-                         @ (b, GHC.Types.Bool)
-                         ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                         (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                          case ds2 of wild { (,) h b1 ->
-                          case b1 of wild1 {
-                            GHC.Types.False
-                            -> GHC.Base.mplus
-                                 @ m
-                                 $dMonadPlus
-                                 @ (b, GHC.Types.Bool)
-                                 (GHC.Base.>>=
-                                    @ m
-                                    $dMonad
-                                    @ d
-                                    @ (b, GHC.Types.Bool)
-                                    lvl24
-                                    (\ (y' :: d) ->
-                                     GHC.Base.return
-                                       @ m
-                                       $dMonad
-                                       @ (b, GHC.Types.Bool)
-                                       (h y', GHC.Types.True)))
-                                 (GHC.Base.return
-                                    @ m
-                                    $dMonad
-                                    @ (b, GHC.Types.Bool)
-                                    (h y, GHC.Types.False))
-                            GHC.Types.True
-                            -> GHC.Base.return
-                                 @ m
-                                 $dMonad
-                                 @ (b, GHC.Types.Bool)
-                                 (h y, GHC.Types.True) } }))
-                        `cast`
-                      (forall (d :: <*>_N) (b :: <*>_N).
-                       <Data.Data.Data d>_R
-                       ->_R <Data.Data.Mp m (d -> b)>_R
-                       ->_R <d>_R
-                       ->_R Sym (Data.Data.N:Mp[0] <m>_R <b>_N))
-                      (\ @ g (g1 :: g) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (g, GHC.Types.Bool)
-                         (g1, GHC.Types.False))
-                        `cast`
-                      (forall (g :: <*>_N).
-                       <g>_R ->_R Sym (Data.Data.N:Mp[0] <m>_R <g>_N))
-                      eta)
-                     `cast`
-                   (Data.Data.N:Mp[0]
-                        <m>_R <Language.Fixpoint.Types.Errors.FixResult a>_N)
-                   (\ (ds1 :: (Language.Fixpoint.Types.Errors.FixResult a,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl23
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Errors.FixResult a)
-                           x' } })) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapMp ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> m (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl23 :: m (Language.Fixpoint.Types.Errors.FixResult a)
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ (Language.Fixpoint.Types.Errors.FixResult a)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Errors.FixResult a, GHC.Types.Bool)
-                   @ (Language.Fixpoint.Types.Errors.FixResult a)
-                   (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                      @ a
-                      $dData
-                      @ (Data.Data.Mp m)
-                      (\ @ d
-                         @ b
-                         ($dData1 :: Data.Data.Data d)
-                         (ds1 :: Data.Data.Mp m (d -> b))
-                         (y :: d) ->
-                       let {
-                         lvl24 :: m d = ds @ d $dData1 y
-                       } in
-                       GHC.Base.>>=
-                         @ m
-                         $dMonad
-                         @ (d -> b, GHC.Types.Bool)
-                         @ (b, GHC.Types.Bool)
-                         ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                         (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                          case ds2 of wild { (,) h b1 ->
-                          GHC.Base.mplus
-                            @ m
-                            $dMonadPlus
-                            @ (b, GHC.Types.Bool)
-                            (GHC.Base.>>=
-                               @ m
-                               $dMonad
-                               @ d
-                               @ (b, GHC.Types.Bool)
-                               lvl24
-                               (\ (y' :: d) ->
-                                GHC.Base.return
-                                  @ m
-                                  $dMonad
-                                  @ (b, GHC.Types.Bool)
-                                  (h y', GHC.Types.True)))
-                            (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) }))
-                        `cast`
-                      (forall (d :: <*>_N) (b :: <*>_N).
-                       <Data.Data.Data d>_R
-                       ->_R <Data.Data.Mp m (d -> b)>_R
-                       ->_R <d>_R
-                       ->_R Sym (Data.Data.N:Mp[0] <m>_R <b>_N))
-                      (\ @ g (g1 :: g) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ (g, GHC.Types.Bool)
-                         (g1, GHC.Types.False))
-                        `cast`
-                      (forall (g :: <*>_N).
-                       <g>_R ->_R Sym (Data.Data.N:Mp[0] <m>_R <g>_N))
-                      eta)
-                     `cast`
-                   (Data.Data.N:Mp[0]
-                        <m>_R <Language.Fixpoint.Types.Errors.FixResult a>_N)
-                   (\ (ds1 :: (Language.Fixpoint.Types.Errors.FixResult a,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl23
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Errors.FixResult a)
-                           x' } })) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapQ ::
-    Data.Data.Data a =>
-    forall u.
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Errors.FixResult a -> [u]
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                    @ a
-                    $dData
-                    @ (Data.Data.Qr [u])
-                    (\ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (ds1 :: Data.Data.Qr [u] (d -> b))
-                       (x :: d)
-                       (r1 :: [u]) ->
-                     ds1 `cast` (Data.Data.N:Qr[0] <*>_N <[u]>_R <d -> b>_P)
-                       (GHC.Types.: @ u (ds @ d $dData1 x) r1))
-                      `cast`
-                    (forall (d :: <*>_N) (b :: <*>_N).
-                     <Data.Data.Data d>_R
-                     ->_R <Data.Data.Qr [u] (d -> b)>_R
-                     ->_R <d>_R
-                     ->_R Sym (Data.Data.N:Qr[0] <*>_N <[u]>_R <b>_P))
-                    (Language.Fixpoint.Types.Errors.$fDataFixResult4 @ u)
-                      `cast`
-                    (forall (g :: <*>_N).
-                     <g>_R ->_R Sym (Data.Data.N:Qr[0] <*>_N <[u]>_R <g>_P))
-                    eta)
-                   `cast`
-                 (Data.Data.N:Qr[0]
-                      <*>_N <[u]>_R <Language.Fixpoint.Types.Errors.FixResult a>_P)
-                   (GHC.Types.[] @ u)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapQi ::
-    Data.Data.Data a =>
-    forall u.
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> u
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,U(U)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                        @ a
-                        $dData
-                        @ (Data.Data.Qi u)
-                        (\ @ d
-                           @ b
-                           ($dData1 :: Data.Data.Data d)
-                           (ds2 :: Data.Data.Qi u (d -> b))
-                           (a1 :: d) ->
-                         case ds2 of wild { Data.Data.Qi i' q ->
-                         Data.Data.Qi
-                           @ *
-                           @ u
-                           @ b
-                           (case i' of wild1 { GHC.Types.I# x ->
-                            GHC.Types.I# (GHC.Prim.+# x 1#) })
-                           (case ds of wild1 { GHC.Types.I# x ->
-                            case i' of wild2 { GHC.Types.I# y ->
-                            case GHC.Prim.tagToEnum#
-                                   @ GHC.Types.Bool
-                                   (GHC.Prim.==# x y) of wild3 {
-                              GHC.Types.False -> q
-                              GHC.Types.True -> GHC.Base.Just @ u (ds1 @ d $dData1 a1) } } }) })
-                        (Language.Fixpoint.Types.Errors.$fDataFixResult1 @ u)
-                        eta of wild { Data.Data.Qi ds2 q ->
-                 Data.Maybe.fromJust @ u q }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapQl ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> r
-  {- Arity: 4,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U><L,C(C1(U))>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r') ->
-                 let {
-                   g :: Language.Fixpoint.Types.Errors.FixResult a
-                        -> Data.Data.CONST r (Language.Fixpoint.Types.Errors.FixResult a)
-                   = Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                       @ a
-                       $dData
-                       @ (Data.Data.CONST r)
-                       (\ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (c :: Data.Data.CONST r (d -> b))
-                          (x :: d) ->
-                        ds
-                          c `cast` (Data.Data.N:CONST[0] <*>_N <r>_R <d -> b>_P)
-                          (ds2 @ d $dData1 x))
-                         `cast`
-                       (forall (d :: <*>_N) (b :: <*>_N).
-                        <Data.Data.Data d>_R
-                        ->_R <Data.Data.CONST r (d -> b)>_R
-                        ->_R <d>_R
-                        ->_R Sym (Data.Data.N:CONST[0] <*>_N <r>_R <b>_P))
-                       (\ @ g1 (ds3 :: g1) -> ds1)
-                         `cast`
-                       (forall (g1 :: <*>_N).
-                        <g1>_R ->_R Sym (Data.Data.N:CONST[0] <*>_N <r>_R <g1>_P))
-                 } in
-                 (\ (x :: Language.Fixpoint.Types.Errors.FixResult a) -> g x)
-                   `cast`
-                 (<Language.Fixpoint.Types.Errors.FixResult a>_R
-                  ->_R Data.Data.N:CONST[0]
-                           <*>_N <r>_R <Language.Fixpoint.Types.Errors.FixResult a>_P)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapQr ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> r
-  {- Arity: 5,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 (Language.Fixpoint.Types.Errors.$fDataFixResult_$cgfoldl
-                    @ a
-                    $dData
-                    @ (Data.Data.Qr r)
-                    (\ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (ds3 :: Data.Data.Qr r (d -> b))
-                       (x :: d)
-                       (r1 :: r) ->
-                     ds3 `cast` (Data.Data.N:Qr[0] <*>_N <r>_R <d -> b>_P)
-                       (ds (ds2 @ d $dData1 x) r1))
-                      `cast`
-                    (forall (d :: <*>_N) (b :: <*>_N).
-                     <Data.Data.Data d>_R
-                     ->_R <Data.Data.Qr r (d -> b)>_R
-                     ->_R <d>_R
-                     ->_R Sym (Data.Data.N:Qr[0] <*>_N <r>_R <b>_P))
-                    (Language.Fixpoint.Types.Errors.$fDataFixResult5 @ r)
-                      `cast`
-                    (forall (g :: <*>_N).
-                     <g>_R ->_R Sym (Data.Data.N:Qr[0] <*>_N <r>_R <g>_P))
-                    eta)
-                   `cast`
-                 (Data.Data.N:Qr[0]
-                      <*>_N <r>_R <Language.Fixpoint.Types.Errors.FixResult a>_P)
-                   ds1) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgmapT ::
-    Data.Data.Data a =>
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 3,
-     Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)><L,C(C1(U))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fDataFixResult6
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Data.Data a>_R
-                 ->_R <forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Errors.FixResult a>_R
-                 ->_R Data.Data.N:ID[0]
-                          <Language.Fixpoint.Types.Errors.FixResult a>_R) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cgunfold ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) @ (c :: * -> *) ->
-                 let {
-                   $dData1 :: Data.Data.Data [a] = Data.Data.$fData[] @ a $dData
-                 } in
-                 \ (k1 :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (c1 :: Data.Data.Constr) ->
-                 case c1 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 case ww1 of wild {
-                   DEFAULT
-                   -> case Data.Data.constrIndex1 ww5
-                      ret_ty (c (Language.Fixpoint.Types.Errors.FixResult a))
-                      of {}
-                   Data.Data.AlgConstr idx
-                   -> case idx of wild1 { GHC.Types.I# ds ->
-                      case ds of ds1 {
-                        DEFAULT
-                        -> k1
-                             @ [a]
-                             @ (Language.Fixpoint.Types.Errors.FixResult a)
-                             $dData1
-                             (z @ ([a] -> Language.Fixpoint.Types.Errors.FixResult a)
-                                (Language.Fixpoint.Types.Errors.$WUnsafe @ a))
-                        1#
-                        -> k1
-                             @ GHC.Base.String
-                             @ (Language.Fixpoint.Types.Errors.FixResult a)
-                             Data.Data.$fData[]_$s$fData[]
-                             (k1
-                                @ [a]
-                                @ (GHC.Base.String -> Language.Fixpoint.Types.Errors.FixResult a)
-                                $dData1
-                                (z @ ([a]
-                                      -> GHC.Base.String
-                                      -> Language.Fixpoint.Types.Errors.FixResult a)
-                                   (Language.Fixpoint.Types.Errors.Crash @ a)))
-                        2#
-                        -> z @ (Language.Fixpoint.Types.Errors.FixResult a)
-                             (Language.Fixpoint.Types.Errors.Safe @ a) } } } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$cp1Data ::
-    Data.Data.Data a =>
-    Data.Typeable.Internal.Typeable
-      (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 1,
-     Strictness: <L,1*U(1*C1(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) ->
-                 let {
-                   ds :: Data.Typeable.Internal.TypeRep
-                   = case Language.Fixpoint.Types.Errors.$fDataFixResult8 of wild { Data.Typeable.Internal.TypeRep dt dt1 tc ks trs ->
-                     let {
-                       types :: [Data.Typeable.Internal.TypeRep]
-                       = GHC.Base.++
-                           @ Data.Typeable.Internal.TypeRep
-                           trs
-                           (GHC.Types.:
-                              @ Data.Typeable.Internal.TypeRep
-                              ((Data.Data.$p1Data @ a $dData)
-                                 `cast`
-                               (Data.Typeable.Internal.N:Typeable[0] <*>_N <a>_N)
-                                 (GHC.Prim.proxy# @ * @ a))
-                              (GHC.Types.[] @ Data.Typeable.Internal.TypeRep))
-                     } in
-                     case Data.Typeable.Internal.typeRepFingerprints
-                            ks
-                            types of kt_fps { DEFAULT ->
-                     case GHC.Fingerprint.fingerprintFingerprints
-                            (GHC.Types.:
-                               @ GHC.Fingerprint.Type.Fingerprint
-                               (Data.Typeable.Internal.tyConFingerprint tc)
-                               kt_fps) of dt2 { GHC.Fingerprint.Type.Fingerprint dt3 dt4 ->
-                     Data.Typeable.Internal.TypeRep dt3 dt4 tc ks types } } }
-                 } in
-                 (\ (wild :: GHC.Prim.Proxy#
-                               (Language.Fixpoint.Types.Errors.FixResult a)) ->
-                  ds)
-                   `cast`
-                 (Sym (Data.Typeable.Internal.N:Typeable[0]
-                           <*>_N <Language.Fixpoint.Types.Errors.FixResult a>_N))) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fDataFixResult_$ctoConstr ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> Data.Data.Constr
-  {- Arity: 2, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash ds1 ds2
-                   -> Language.Fixpoint.Types.Errors.$cL7WXoOZlMdJygnLl3hGdW
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$c5QH7u8Lpk3uJNrpiH7MMq0
-                   Language.Fixpoint.Types.Errors.Unsafe ds1
-                   -> Language.Fixpoint.Types.Errors.$cL6YnlH531FFI7owCmZmx3C }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fEqError :: GHC.Classes.Eq Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fEqError_$c==
-                  Language.Fixpoint.Types.Errors.$fEqError_$c/= -}
-af80a035f9731b203491b28daa7a8cc7
-  $fEqError1 :: GHC.Classes.Eq Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fEqError1_$c==
-                  Language.Fixpoint.Types.Errors.$fEqError1_$c/= -}
-af80a035f9731b203491b28daa7a8cc7
-  $fEqError1_$c/= ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c/=
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww2
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27
-                   ww16 } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fEqError1_$c== ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c==
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww2
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27
-                   ww16 } } } } } } } }) -}
-549abdde6554422383d7367002775622
-  $fEqError2 ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2,
-     Unfolding: (GHC.Classes.$fEq[]_$c==
-                   @ Language.Fixpoint.Types.Errors.Error1
-                   Language.Fixpoint.Types.Errors.$fEqError1) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fEqError_$c/= ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fEqError_$s$fEq[]_$c/=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fEqError_$c== ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fEqError2
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-98539841d28332c7b9fc76d21d58c7a5
-  $fEqError_$s$fEq[]_$c/= ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 GHC.Classes.not
-                   (GHC.Classes.$fEq[]_$c==
-                      @ Language.Fixpoint.Types.Errors.Error1
-                      Language.Fixpoint.Types.Errors.$fEqError1
-                      x
-                      y)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fEqFixResult ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.$fEqFixResult_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Errors.$fEqFixResult_$c/= @ a $dEq) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fEqFixResult_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)><L,U><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (3, False, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (x :: Language.Fixpoint.Types.Errors.FixResult a)
-                   (y :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 GHC.Classes.not
-                   (Language.Fixpoint.Types.Errors.$fEqFixResult_$c==
-                      @ a
-                      $dEq
-                      x
-                      y)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fEqFixResult_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U(C(C1(U)),A)><S,1*U><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a)
-                   (ds1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash xs ds2
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Errors.Crash ys ds3
-                        -> GHC.Classes.$fEq[]_$c== @ a $dEq xs ys }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Errors.Safe -> GHC.Types.True }
-                   Language.Fixpoint.Types.Errors.Unsafe xs
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Errors.Unsafe ys
-                        -> GHC.Classes.$fEq[]_$c== @ a $dEq xs ys } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError ::
-    GHC.Exception.Exception Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fExceptionError_$cp1Exception
-                  Language.Fixpoint.Types.Errors.$fShowError
-                  Language.Fixpoint.Types.Errors.$fExceptionError_$ctoException
-                  Language.Fixpoint.Types.Errors.$fExceptionError_$cfromException
-                  Language.Fixpoint.Types.Errors.$fExceptionError_$cdisplayException -}
-af80a035f9731b203491b28daa7a8cc7
-  $fExceptionError1 ::
-    Language.Fixpoint.Types.Errors.Error1 -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 Language.Fixpoint.Types.Errors.$w$cshowsPrec 0# ww1 ww2 w1 }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError10 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Errors.Error
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Errors.Error) ->
-                 Language.Fixpoint.Types.Errors.$fExceptionError8) -}
-2f7c3fabe9b75c1929b7fd3a7cfba7f5
-  $fExceptionError2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Error1 {"#) -}
-1da2b8f155107a64324e1dec23b0049b
-  $fExceptionError3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-6033fabd18e334dd184ddfdb92fca219
-  $fExceptionError4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "errMsg = "#) -}
-cbd4d8f1522d38eeede019d6f42febaf
-  $fExceptionError5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-0fa9945b1102511480572de92c437e0f
-  $fExceptionError6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "errLoc = "#) -}
-212461829aca42474a31d5edae59dff7
-  $fExceptionError7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Error "#) -}
-ffde507dca6293491b9141a79c15f11d
-  $fExceptionError8 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Errors.$fExceptionError9
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Errors.$tcError
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-57c935148a80439471ea9f3c90c2e6a2
-  $fExceptionError9 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   5573639981624302606##
-                   15596646033556386062##) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError_$cdisplayException ::
-    Language.Fixpoint.Types.Errors.Error -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fExceptionError_$cshow -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError_$cfromException ::
-    GHC.Exception.SomeException
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: GHC.Exception.SomeException) ->
-                 case eta of wild { GHC.Exception.SomeException e10 $dException1 e2 ->
-                 case (GHC.Exception.$p1Exception @ e10 $dException1)
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <*>_N <e10>_N)
-                        (GHC.Prim.proxy#
-                           @ *
-                           @ e10) of wild1 { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.Types.Errors.$fExceptionError8 of wild2 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild3 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing @ Language.Fixpoint.Types.Errors.Error
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing @ Language.Fixpoint.Types.Errors.Error
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ Language.Fixpoint.Types.Errors.Error
-                             e2
-                               `cast`
-                             (UnsafeCo representational e10 Language.Fixpoint.Types.Errors.Error) } } } } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError_$cp1Exception ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fExceptionError10
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Errors.Error>_N)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError_$cshow ::
-    Language.Fixpoint.Types.Errors.Error -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Errors.Error) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      Language.Fixpoint.Types.Errors.$fExceptionError7)
-                   (GHC.Show.showList__
-                      @ Language.Fixpoint.Types.Errors.Error1
-                      Language.Fixpoint.Types.Errors.$fExceptionError1
-                      x `cast` (Language.Fixpoint.Types.Errors.N:Error[0])
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionError_$ctoException ::
-    Language.Fixpoint.Types.Errors.Error -> GHC.Exception.SomeException
-  {- Arity: 1 -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult ::
-    GHC.Exception.Exception
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Errors.FixResult
-                       Language.Fixpoint.Types.Errors.Error)
-                  Language.Fixpoint.Types.Errors.$fExceptionFixResult_$cp1Exception
-                  Language.Fixpoint.Types.Errors.$fExceptionFixResult_$cp2Exception
-                  Language.Fixpoint.Types.Errors.$fExceptionFixResult_$ctoException
-                  Language.Fixpoint.Types.Errors.$fExceptionFixResult_$cfromException
-                  Language.Fixpoint.Types.Errors.$fExceptionFixResult_$cdisplayException -}
-b6a016449452a5dccb1e42c65e1773ec
-  $fExceptionFixResult1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackAppendCString#
-                   "[]"#
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-37a00411a0e51cc54c8690870d208045
-  $fExceptionFixResult2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Unsafe "#) -}
-5d9ecc38f9ed55f7342918655713aec4
-  $fExceptionFixResult3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Safe"#) -}
-654db0be44ed9a81db9705fd90ce2df1
-  $fExceptionFixResult4 :: [GHC.Types.Char]
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Types.:
-                   @ GHC.Types.Char
-                   GHC.Show.shows6
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-edb78071bc92c5dc1f235c356cecab8c
-  $fExceptionFixResult5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Crash "#) -}
-20c58c3a8eb8e9c39a22a9ed77f9dccc
-  $fExceptionFixResult6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Language.Fixpoint.Types.Errors.$fDataFixResult8 of wild { Data.Typeable.Internal.TypeRep dt dt1 tc ks trs ->
-                 let {
-                   types :: [Data.Typeable.Internal.TypeRep]
-                   = GHC.Base.++
-                       @ Data.Typeable.Internal.TypeRep
-                       trs
-                       Language.Fixpoint.Types.Errors.$fExceptionFixResult7
-                 } in
-                 case Data.Typeable.Internal.typeRepFingerprints
-                        ks
-                        types of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           (Data.Typeable.Internal.tyConFingerprint tc)
-                           kt_fps) of dt2 { GHC.Fingerprint.Type.Fingerprint dt3 dt4 ->
-                 Data.Typeable.Internal.TypeRep dt3 dt4 tc ks types } } }) -}
-e6dae518c5f59536740a3ac4d809ff74
-  $fExceptionFixResult7 :: [Data.Typeable.Internal.TypeRep]
-  {- Unfolding: (GHC.Types.:
-                   @ Data.Typeable.Internal.TypeRep
-                   Language.Fixpoint.Types.Errors.$fExceptionError8
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult8 ::
-    GHC.Prim.Proxy#
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              (Language.Fixpoint.Types.Errors.FixResult
-                                 Language.Fixpoint.Types.Errors.Error)) ->
-                 Language.Fixpoint.Types.Errors.$fExceptionFixResult6) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_$cdisplayException ::
-    Language.Fixpoint.Types.Errors.FixResult
-      Language.Fixpoint.Types.Errors.Error
-    -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Errors.FixResult
-                           Language.Fixpoint.Types.Errors.Error) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Errors.Crash b1 b2
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionFixResult5
-                        (GHC.Show.showList__
-                           @ Language.Fixpoint.Types.Errors.Error
-                           Language.Fixpoint.Types.Errors.$fShowError2
-                           b1
-                           (GHC.Types.:
-                              @ GHC.Types.Char
-                              GHC.Show.showSpace1
-                              (GHC.Types.:
-                                 @ GHC.Types.Char
-                                 GHC.Show.shows6
-                                 (GHC.Show.showLitString
-                                    b2
-                                    Language.Fixpoint.Types.Errors.$fExceptionFixResult4))))
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fExceptionFixResult3
-                   Language.Fixpoint.Types.Errors.Unsafe b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionFixResult2
-                        (case b1 of wild1 {
-                           [] -> Language.Fixpoint.Types.Errors.$fExceptionFixResult1
-                           : x1 xs
-                           -> GHC.Types.:
-                                @ GHC.Types.Char
-                                GHC.Show.showList__2
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Errors.$fExceptionError7
-                                   (let {
-                                      s :: GHC.Base.String
-                                      = Language.Fixpoint.Types.Errors.$fExceptionFixResult_showl xs
-                                    } in
-                                    case x1
-                                           `cast`
-                                         (Language.Fixpoint.Types.Errors.N:Error[0]) of wild2 {
-                                      [] -> GHC.CString.unpackAppendCString# "[]"# s
-                                      : x2 xs1
-                                      -> GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.showList__2
-                                           (case x2 of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                                            Language.Fixpoint.Types.Errors.$w$cshowsPrec
-                                              0#
-                                              ww1
-                                              ww2
-                                              (let {
-                                                 lvl23 :: [GHC.Types.Char]
-                                                 = GHC.Types.:
-                                                     @ GHC.Types.Char
-                                                     GHC.Show.showList__1
-                                                     s
-                                               } in
-                                               letrec {
-                                                 showl1 :: [Language.Fixpoint.Types.Errors.Error1]
-                                                           -> GHC.Base.String
-                                                   {- Arity: 1, Strictness: <S,1*U> -}
-                                                 = \ (ds2 :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                                                   case ds2 of wild3 {
-                                                     [] -> lvl23
-                                                     : y ys
-                                                     -> GHC.Types.:
-                                                          @ GHC.Types.Char
-                                                          GHC.Show.shows5
-                                                          (case y of ww3 { Language.Fixpoint.Types.Errors.Error1 ww4 ww5 ->
-                                                           Language.Fixpoint.Types.Errors.$w$cshowsPrec
-                                                             0#
-                                                             ww4
-                                                             ww5
-                                                             (showl1 ys) }) }
-                                               } in
-                                               showl1 xs1) }) })) }) }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_$cfromException ::
-    GHC.Exception.SomeException
-    -> GHC.Base.Maybe
-         (Language.Fixpoint.Types.Errors.FixResult
-            Language.Fixpoint.Types.Errors.Error)
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: GHC.Exception.SomeException) ->
-                 case eta of wild { GHC.Exception.SomeException e10 $dException1 e2 ->
-                 case (GHC.Exception.$p1Exception @ e10 $dException1)
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <*>_N <e10>_N)
-                        (GHC.Prim.proxy#
-                           @ *
-                           @ e10) of wild1 { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.Types.Errors.$fExceptionFixResult6 of wild2 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild3 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing
-                        @ (Language.Fixpoint.Types.Errors.FixResult
-                             Language.Fixpoint.Types.Errors.Error)
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing
-                             @ (Language.Fixpoint.Types.Errors.FixResult
-                                  Language.Fixpoint.Types.Errors.Error)
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ (Language.Fixpoint.Types.Errors.FixResult
-                                  Language.Fixpoint.Types.Errors.Error)
-                             e2
-                               `cast`
-                             (UnsafeCo representational e10 (Language.Fixpoint.Types.Errors.FixResult
-                                                               Language.Fixpoint.Types.Errors.Error)) } } } } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_$cp1Exception ::
-    Data.Typeable.Internal.Typeable
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fExceptionFixResult8
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N
-                          <Language.Fixpoint.Types.Errors.FixResult
-                             Language.Fixpoint.Types.Errors.Error>_N)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_$cp2Exception ::
-    GHC.Show.Show
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  {- Unfolding: (Language.Fixpoint.Types.Errors.$fShowFixResult
-                   @ Language.Fixpoint.Types.Errors.Error
-                   Language.Fixpoint.Types.Errors.$fShowError) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_$ctoException ::
-    Language.Fixpoint.Types.Errors.FixResult
-      Language.Fixpoint.Types.Errors.Error
-    -> GHC.Exception.SomeException
-  {- Arity: 1 -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fExceptionFixResult_showl ::
-    [Language.Fixpoint.Types.Errors.Error] -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U> -}
-af80a035f9731b203491b28daa7a8cc7
-  $fFixpointError1 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fFixpointError1_$spprint
-                  Language.Fixpoint.Types.Errors.$fFixpointError1_$s$dmsimplify -}
-af80a035f9731b203491b28daa7a8cc7
-  $fFixpointError1_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Errors.Error1
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 Language.Fixpoint.Types.Errors.$fFixpointError1_$cpprintTidy
-                   eta
-                   eta1) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fFixpointError1_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Errors.Error1
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <L,A><S(LS),1*U(U(U(U,U,U),U(U,U,U)),1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w1 of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 Language.Fixpoint.Types.Errors.$w$cpprintTidy ww1 ww2 }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fFixpointError1_$s$dmsimplify ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Errors.Error1) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fFixpointError1_$spprint ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, False)
-                (Language.Fixpoint.Types.Errors.$fFixpointError1_$cpprintPrec
-                   Language.Fixpoint.Types.PrettyPrint.pprint1
-                   Language.Fixpoint.Types.PrettyPrint.Full) -}
-17cfa4bffb0c0e801616ddd8bb33c157
-  $fFixpointError1_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ": Error"#) -}
-d2160546de8fd4d76ad238876901d231
-  $fFixpointError2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fFixpointError1_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.$fFixpointError3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-605459bcfe0aa97f4f1b24bb11cec6b1
-  $fFixpointError3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.$fFixpointError1_s) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult ::
-    Data.Foldable.Foldable Language.Fixpoint.Types.Errors.FixResult
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.FixResult
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfold
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldMap
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr'
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldl
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldl'
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr1
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldl1
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$ctoList
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cnull
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$clength
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$celem
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cmaximum
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cminimum
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$csum
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cproduct -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult1 ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> Data.Monoid.Product a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,U(A,A,1*U,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dNum :: GHC.Num.Num a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> let {
-                        f1 :: a -> a -> a = GHC.Num.* @ a $dNum
-                      } in
-                      let {
-                        z :: a = GHC.Num.fromInteger @ a $dNum Data.Monoid.$fMonoidProduct1
-                      } in
-                      letrec {
-                        go :: [a] -> Data.Monoid.Product a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 {
-                            [] -> z `cast` (Sym (Data.Monoid.N:Product[0] <a>_R))
-                            : y ys
-                            -> (f1 y (go ys) `cast` (Data.Monoid.N:Product[0] <a>_R))
-                                 `cast`
-                               (Sym (Data.Monoid.N:Product[0] <a>_R)) }
-                      } in
-                      go a1
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> (Data.Monoid.$fMonoidProduct2 @ a $dNum)
-                        `cast`
-                      (Sym (Data.Monoid.N:Product[0] <a>_R))
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> let {
-                        f1 :: a -> a -> a = GHC.Num.* @ a $dNum
-                      } in
-                      let {
-                        z :: a = GHC.Num.fromInteger @ a $dNum Data.Monoid.$fMonoidProduct1
-                      } in
-                      letrec {
-                        go :: [a] -> Data.Monoid.Product a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 {
-                            [] -> z `cast` (Sym (Data.Monoid.N:Product[0] <a>_R))
-                            : y ys
-                            -> (f1 y (go ys) `cast` (Data.Monoid.N:Product[0] <a>_R))
-                                 `cast`
-                               (Sym (Data.Monoid.N:Product[0] <a>_R)) }
-                      } in
-                      go a1 }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult2 ::
-    GHC.Num.Num a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> Data.Monoid.Sum a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,U(1*U,A,A,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dNum :: GHC.Num.Num a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> let {
-                        f1 :: a -> a -> a = GHC.Num.+ @ a $dNum
-                      } in
-                      let {
-                        z :: a = GHC.Num.fromInteger @ a $dNum Data.Monoid.$fMonoidSum1
-                      } in
-                      letrec {
-                        go :: [a] -> Data.Monoid.Sum a {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 {
-                            [] -> z `cast` (Sym (Data.Monoid.N:Sum[0] <a>_R))
-                            : y ys
-                            -> (f1 y (go ys) `cast` (Data.Monoid.N:Sum[0] <a>_R))
-                                 `cast`
-                               (Sym (Data.Monoid.N:Sum[0] <a>_R)) }
-                      } in
-                      go a1
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> (Data.Monoid.$fMonoidSum2 @ a $dNum)
-                        `cast`
-                      (Sym (Data.Monoid.N:Sum[0] <a>_R))
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> let {
-                        f1 :: a -> a -> a = GHC.Num.+ @ a $dNum
-                      } in
-                      let {
-                        z :: a = GHC.Num.fromInteger @ a $dNum Data.Monoid.$fMonoidSum1
-                      } in
-                      letrec {
-                        go :: [a] -> Data.Monoid.Sum a {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 {
-                            [] -> z `cast` (Sym (Data.Monoid.N:Sum[0] <a>_R))
-                            : y ys
-                            -> (f1 y (go ys) `cast` (Data.Monoid.N:Sum[0] <a>_R))
-                                 `cast`
-                               (Sym (Data.Monoid.N:Sum[0] <a>_R)) }
-                      } in
-                      go a1 }) -}
-34e59159e833d5de5274bc0ec11340ce
-  $fFoldableFixResult3 :: a
-  {- Strictness: x -}
-9d8b81b00c86e8e402184d30b64a0c52
-  $fFoldableFixResult4 :: a
-  {- Strictness: x -}
-34f4ba7851562235670c849d012ec7b7
-  $fFoldableFixResult5 ::
-    a
-    -> (GHC.Types.Int -> GHC.Types.Int)
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ a
-                   (x :: a)
-                   (k1 :: GHC.Types.Int -> GHC.Types.Int)[OneShot]
-                   (z :: GHC.Types.Int) ->
-                 case z of wild { GHC.Types.I# x1 ->
-                 k1 (GHC.Types.I# (GHC.Prim.+# x1 1#)) }) -}
-d55a13118bceb1ec3882ecbe2317286e
-  $fFoldableFixResult6 :: a -> GHC.Types.Bool -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a (ds :: a) (ds1 :: GHC.Types.Bool) -> GHC.Types.False) -}
-8d69d17293faae3cefa8dd6357737c01
-  $fFoldableFixResult7 :: a
-  {- Strictness: x -}
-47333df0c7c28f6db6c18858bbdc641d
-  $fFoldableFixResult8 :: a
-  {- Strictness: x -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$celem ::
-    GHC.Classes.Eq a =>
-    a -> Language.Fixpoint.Types.Errors.FixResult a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a ($dEq :: GHC.Classes.Eq a) (eta :: a) ->
-                 let {
-                   f :: a -> GHC.Types.Bool = GHC.Classes.== @ a $dEq eta
-                 } in
-                 letrec {
-                   go :: [a] -> Data.Monoid.Any {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.False `cast` (Sym (Data.Monoid.N:Any[0]))
-                       : y ys
-                       -> case f y of wild1 {
-                            GHC.Types.False -> go ys
-                            GHC.Types.True
-                            -> GHC.Types.True `cast` (Sym (Data.Monoid.N:Any[0])) } }
-                 } in
-                 letrec {
-                   go1 :: [a] -> Data.Monoid.Any {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.False `cast` (Sym (Data.Monoid.N:Any[0]))
-                       : y ys
-                       -> case f y of wild1 {
-                            GHC.Types.False -> go1 ys
-                            GHC.Types.True
-                            -> GHC.Types.True `cast` (Sym (Data.Monoid.N:Any[0])) } }
-                 } in
-                 (\ (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                  case ds of wild {
-                    Language.Fixpoint.Types.Errors.Crash a1 a2 -> go1 a1
-                    Language.Fixpoint.Types.Errors.Safe
-                    -> GHC.Types.False `cast` (Sym (Data.Monoid.N:Any[0]))
-                    Language.Fixpoint.Types.Errors.Unsafe a1 -> go a1 })
-                   `cast`
-                 (<Language.Fixpoint.Types.Errors.FixResult a>_R
-                  ->_R Data.Monoid.N:Any[0])) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfold ::
-    GHC.Base.Monoid m =>
-    Language.Fixpoint.Types.Errors.FixResult m -> m
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U(U,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ m
-                   ($dMonoid :: GHC.Base.Monoid m)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult m) ->
-                 Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldMap
-                   @ m
-                   @ m
-                   $dMonoid
-                   (GHC.Base.id @ m)
-                   eta) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldMap ::
-    GHC.Base.Monoid m =>
-    (a -> m) -> Language.Fixpoint.Types.Errors.FixResult a -> m
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S,U(1*U,1*U,A)><L,C(U)><S,1*U>,
-     Unfolding: (\ @ m
-                   @ a
-                   ($dMonoid :: GHC.Base.Monoid m)
-                   (f :: a -> m)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> let {
-                        f1 :: m -> m -> m = GHC.Base.mappend @ m $dMonoid
-                      } in
-                      let {
-                        z :: m = GHC.Base.mempty @ m $dMonoid
-                      } in
-                      letrec {
-                        go :: [a] -> m {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 { [] -> z : y ys -> f1 (f y) (go ys) }
-                      } in
-                      go a1
-                   Language.Fixpoint.Types.Errors.Safe -> GHC.Base.mempty @ m $dMonoid
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> let {
-                        f1 :: m -> m -> m = GHC.Base.mappend @ m $dMonoid
-                      } in
-                      let {
-                        z :: m = GHC.Base.mempty @ m $dMonoid
-                      } in
-                      letrec {
-                        go :: [a] -> m {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 { [] -> z : y ys -> f1 (f y) (go ys) }
-                      } in
-                      go a1 }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldl ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Errors.FixResult a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: (\ @ b
-                   @ a
-                   (f :: b -> a -> b)
-                   (z :: b)
-                   (t1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case t1 of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> letrec {
-                        go :: [a] -> b -> b {- Arity: 2, Strictness: <S,1*U><L,U> -}
-                        = \ (ds :: [a]) (eta :: b) ->
-                          case ds of wild1 { [] -> eta : y ys -> go ys (f eta y) }
-                      } in
-                      go a1 z
-                   Language.Fixpoint.Types.Errors.Safe -> z
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> letrec {
-                        go :: [a] -> b -> b {- Arity: 2, Strictness: <S,1*U><L,U> -}
-                        = \ (ds :: [a]) (eta :: b) ->
-                          case ds of wild1 { [] -> eta : y ys -> go ys (f eta y) }
-                      } in
-                      go a1 z }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldl' ::
-    (b -> a -> b)
-    -> b -> Language.Fixpoint.Types.Errors.FixResult a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: (\ @ b
-                   @ a
-                   (f :: b -> a -> b)
-                   (z0 :: b)
-                   (xs :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                   @ a
-                   @ (b -> b)
-                   (\ (x :: a) (k1 :: b -> b)[OneShot] (z :: b) ->
-                    case f z x of vx { DEFAULT -> k1 vx })
-                   (GHC.Base.id @ b)
-                   xs
-                   z0) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldl1 ::
-    (a -> a -> a) -> Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: (\ @ a
-                   (f :: a -> a -> a)
-                   (xs :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldl
-                        @ (GHC.Base.Maybe a)
-                        @ a
-                        (\ (m :: GHC.Base.Maybe a) (y :: a)[OneShot] ->
-                         GHC.Base.Just
-                           @ a
-                           (case m of wild {
-                              GHC.Base.Nothing -> y GHC.Base.Just x -> f x y }))
-                        (GHC.Base.Nothing @ a)
-                        xs of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Errors.$fFoldableFixResult7 @ a
-                   GHC.Base.Just v -> v }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldr ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Errors.FixResult a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f :: a -> b -> b)
-                   (z :: b)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> letrec {
-                        go :: [a] -> b {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 { [] -> z : y ys -> f y (go ys) }
-                      } in
-                      go a1
-                   Language.Fixpoint.Types.Errors.Safe -> z
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> letrec {
-                        go :: [a] -> b {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds1 :: [a]) ->
-                          case ds1 of wild1 { [] -> z : y ys -> f y (go ys) }
-                      } in
-                      go a1 }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldr' ::
-    (a -> b -> b)
-    -> b -> Language.Fixpoint.Types.Errors.FixResult a -> b
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,C(C1(U))><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f :: a -> b -> b)
-                   (z0 :: b)
-                   (xs :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldl
-                   @ (b -> b)
-                   @ a
-                   (\ (k1 :: b -> b) (x :: a)[OneShot] (z :: b) ->
-                    case f x z of vx { DEFAULT -> k1 vx })
-                   (GHC.Base.id @ b)
-                   xs
-                   z0) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cfoldr1 ::
-    (a -> a -> a) -> Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: (\ @ a
-                   (f :: a -> a -> a)
-                   (xs :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                        @ a
-                        @ (GHC.Base.Maybe a)
-                        (\ (x :: a) (m :: GHC.Base.Maybe a)[OneShot] ->
-                         GHC.Base.Just
-                           @ a
-                           (case m of wild {
-                              GHC.Base.Nothing -> x GHC.Base.Just y -> f x y }))
-                        (GHC.Base.Nothing @ a)
-                        xs of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Errors.$fFoldableFixResult8 @ a
-                   GHC.Base.Just v -> v }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$clength ::
-    Language.Fixpoint.Types.Errors.FixResult a -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   (xs :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                   @ a
-                   @ (GHC.Types.Int -> GHC.Types.Int)
-                   (Language.Fixpoint.Types.Errors.$fFoldableFixResult5 @ a)
-                   (GHC.Base.id @ GHC.Types.Int)
-                   xs
-                   Language.Fixpoint.Types.Errors.$fDataFixResult3) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cmaximum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,A,A,C(C1(U)),A,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case eta of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> letrec {
-                        go :: [a] -> Data.Foldable.Max a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds :: [a]) ->
-                          case ds of wild1 {
-                            []
-                            -> (GHC.Base.Nothing @ a)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                            : y ys
-                            -> case (go ys) `cast` (Data.Foldable.N:Max[0] <a>_N) of wild2 {
-                                 GHC.Base.Nothing
-                                 -> (GHC.Base.Just @ a y)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                                 GHC.Base.Just ipv
-                                 -> case GHC.Classes.>= @ a $dOrd y ipv of wild3 {
-                                      GHC.Types.False
-                                      -> wild2 `cast` (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                                      GHC.Types.True
-                                      -> (GHC.Base.Just @ a y)
-                                           `cast`
-                                         (Sym (Data.Foldable.N:Max[0]) <a>_N) } } }
-                      } in
-                      case (go a1) `cast` (Data.Foldable.N:Max[0] <a>_N) of wild1 {
-                        GHC.Base.Nothing
-                        -> Language.Fixpoint.Types.Errors.$fFoldableFixResult4 @ a
-                        GHC.Base.Just v -> v }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fFoldableFixResult4 @ a
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> letrec {
-                        go :: [a] -> Data.Foldable.Max a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds :: [a]) ->
-                          case ds of wild1 {
-                            []
-                            -> (GHC.Base.Nothing @ a)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                            : y ys
-                            -> case (go ys) `cast` (Data.Foldable.N:Max[0] <a>_N) of wild2 {
-                                 GHC.Base.Nothing
-                                 -> (GHC.Base.Just @ a y)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                                 GHC.Base.Just ipv
-                                 -> case GHC.Classes.>= @ a $dOrd y ipv of wild3 {
-                                      GHC.Types.False
-                                      -> wild2 `cast` (Sym (Data.Foldable.N:Max[0]) <a>_N)
-                                      GHC.Types.True
-                                      -> (GHC.Base.Just @ a y)
-                                           `cast`
-                                         (Sym (Data.Foldable.N:Max[0]) <a>_N) } } }
-                      } in
-                      case (go a1) `cast` (Data.Foldable.N:Max[0] <a>_N) of wild1 {
-                        GHC.Base.Nothing
-                        -> Language.Fixpoint.Types.Errors.$fFoldableFixResult4 @ a
-                        GHC.Base.Just v -> v } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cminimum ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, Strictness: <L,U(A,A,A,C(C1(U)),A,A,A,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case eta of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> letrec {
-                        go :: [a] -> Data.Foldable.Min a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds :: [a]) ->
-                          case ds of wild1 {
-                            []
-                            -> (GHC.Base.Nothing @ a)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                            : y ys
-                            -> case (go ys) `cast` (Data.Foldable.N:Min[0] <a>_N) of wild2 {
-                                 GHC.Base.Nothing
-                                 -> (GHC.Base.Just @ a y)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                                 GHC.Base.Just ipv
-                                 -> case GHC.Classes.<= @ a $dOrd y ipv of wild3 {
-                                      GHC.Types.False
-                                      -> wild2 `cast` (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                                      GHC.Types.True
-                                      -> (GHC.Base.Just @ a y)
-                                           `cast`
-                                         (Sym (Data.Foldable.N:Min[0]) <a>_N) } } }
-                      } in
-                      case (go a1) `cast` (Data.Foldable.N:Min[0] <a>_N) of wild1 {
-                        GHC.Base.Nothing
-                        -> Language.Fixpoint.Types.Errors.$fFoldableFixResult3 @ a
-                        GHC.Base.Just v -> v }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fFoldableFixResult3 @ a
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> letrec {
-                        go :: [a] -> Data.Foldable.Min a
-                          {- Arity: 1, Strictness: <S,1*U> -}
-                        = \ (ds :: [a]) ->
-                          case ds of wild1 {
-                            []
-                            -> (GHC.Base.Nothing @ a)
-                                 `cast`
-                               (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                            : y ys
-                            -> case (go ys) `cast` (Data.Foldable.N:Min[0] <a>_N) of wild2 {
-                                 GHC.Base.Nothing
-                                 -> (GHC.Base.Just @ a y)
-                                      `cast`
-                                    (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                                 GHC.Base.Just ipv
-                                 -> case GHC.Classes.<= @ a $dOrd y ipv of wild3 {
-                                      GHC.Types.False
-                                      -> wild2 `cast` (Sym (Data.Foldable.N:Min[0]) <a>_N)
-                                      GHC.Types.True
-                                      -> (GHC.Base.Just @ a y)
-                                           `cast`
-                                         (Sym (Data.Foldable.N:Min[0]) <a>_N) } } }
-                      } in
-                      case (go a1) `cast` (Data.Foldable.N:Min[0] <a>_N) of wild1 {
-                        GHC.Base.Nothing
-                        -> Language.Fixpoint.Types.Errors.$fFoldableFixResult3 @ a
-                        GHC.Base.Just v -> v } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cnull ::
-    Language.Fixpoint.Types.Errors.FixResult a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                   @ a
-                   @ GHC.Types.Bool
-                   (Language.Fixpoint.Types.Errors.$fFoldableFixResult6 @ a)
-                   GHC.Types.True) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$cproduct ::
-    GHC.Num.Num a => Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,U(A,A,1*U,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fFoldableFixResult1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R <Language.Fixpoint.Types.Errors.FixResult a>_R
-                 ->_R Data.Monoid.N:Product[0] <a>_R) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$csum ::
-    GHC.Num.Num a => Language.Fixpoint.Types.Errors.FixResult a -> a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,U(1*U,A,A,A,A,A,1*C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fFoldableFixResult2
-                  `cast`
-                (forall (a :: <*>_N).
-                 <GHC.Num.Num a>_R
-                 ->_R <Language.Fixpoint.Types.Errors.FixResult a>_R
-                 ->_R Data.Monoid.N:Sum[0] <a>_R) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFoldableFixResult_$ctoList ::
-    Language.Fixpoint.Types.Errors.FixResult a -> [a]
-  {- Arity: 1, Strictness: <L,U>, Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ a (t1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 GHC.Base.build
-                   @ a
-                   (\ @ b (c :: a -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                    Language.Fixpoint.Types.Errors.$fFoldableFixResult_$cfoldr
-                      @ a
-                      @ b
-                      c
-                      n
-                      t1)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFunctorFixResult ::
-    GHC.Base.Functor Language.Fixpoint.Types.Errors.FixResult
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.FixResult
-                  Language.Fixpoint.Types.Errors.$fFunctorFixResult_$cfmap
-                  Language.Fixpoint.Types.Errors.$fFunctorFixResult_$c<$ -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFunctorFixResult_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Errors.FixResult b
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Errors.FixResult b) ->
-                 Language.Fixpoint.Types.Errors.$fFunctorFixResult_$cfmap
-                   @ b
-                   @ a
-                   (\ (ds :: b) -> eta)
-                   eta1) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fFunctorFixResult_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult b
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: (\ @ a
-                   @ b
-                   (f :: a -> b)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash xs msg
-                   -> Language.Fixpoint.Types.Errors.Crash
-                        @ b
-                        (GHC.Base.map @ a @ b f xs)
-                        msg
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.Safe @ b
-                   Language.Fixpoint.Types.Errors.Unsafe xs
-                   -> case GHC.Base.map @ a @ b f xs of dt { DEFAULT ->
-                      Language.Fixpoint.Types.Errors.Unsafe @ b dt } }) -}
-b59e7fae45f4761ef0b99fff11eb419e
-  $fGenericAnnotDetails ::
-    GHC.Generics.Generic
-      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-                  (Language.Fixpoint.Types.Errors.$fGenericAnnotDetails_$cfrom @ a)
-                  (Language.Fixpoint.Types.Errors.$fGenericAnnotDetails_$cto @ a) -}
-6fa6de740e8ede8c1a565758358c1ac1
-  $fGenericAnnotDetails1 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceLazy
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.K1
-                  GHC.Generics.R Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-             GHC.Generics.:*: GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.SourceUnpack
-                                   'GHC.Generics.SourceLazy
-                                   'GHC.Generics.DecidedUnpack)
-                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.K1 GHC.Generics.R a)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x
-                   (x1 :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) ->
-                 case x1 of wild {
-                   Text.PrettyPrint.Annotated.HughesPJ.AnnotStart
-                   -> Language.Fixpoint.Types.Errors.$fGenericAnnotDetails2 @ x @ a
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot g1 dt
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceLazy
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.SourceUnpack
-                                                    'GHC.Generics.SourceLazy
-                                                    'GHC.Generics.DecidedUnpack)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R a)))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.SourceUnpack
-                                                       'GHC.Generics.SourceLazy
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R a)))
-                           @ x
-                           (GHC.Generics.:*:
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Text.PrettyPrint.Annotated.HughesPJ.TextDetails))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              @ x
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R
-                                             <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceLazy
-                                                'GHC.Generics.DecidedStrict>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R
-                                                Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R) <x>_N))
-                              (GHC.Types.I# dt)
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.S>_P
-                                             <'GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.SourceUnpack
-                                                'GHC.Generics.SourceLazy
-                                                'GHC.Generics.DecidedUnpack>_P
-                                             <GHC.Generics.K1
-                                                GHC.Generics.R GHC.Types.Int>_R) <x>_N)))
-                             `cast`
-                           (Sym (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceLazy
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.SourceUnpack
-                                                            'GHC.Generics.SourceLazy
-                                                            'GHC.Generics.DecidedUnpack)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            GHC.Types.Int)>_R) <x>_N))
-                   Text.PrettyPrint.Annotated.HughesPJ.AnnotEnd g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceLazy
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                              GHC.Generics.:*: GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.SourceUnpack
-                                                    'GHC.Generics.SourceLazy
-                                                    'GHC.Generics.DecidedUnpack)
-                                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1 GHC.Generics.R a)))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.SourceUnpack
-                                                       'GHC.Generics.SourceLazy
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R a)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1 GHC.Generics.R a>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "AnnotEnd"
-                                                  'GHC.Generics.PrefixI
-                                                  'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R a)>_R)) <x>_N))) }) -}
-fd98f8e1897125a5e1acab972bd64eb8
-  $fGenericAnnotDetails2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceLazy
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.SourceUnpack
-                                'GHC.Generics.SourceLazy
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1 GHC.Generics.R a)))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x @ a ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceLazy
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                         GHC.Generics.:*: GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.SourceUnpack
-                                               'GHC.Generics.SourceLazy
-                                               'GHC.Generics.DecidedUnpack)
-                                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.K1 GHC.Generics.R a)))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-9fc1be59795a2c80cc961c5867095e0f
-  $fGenericAnnotDetails_$cfrom ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a
-    -> GHC.Generics.Rep
-         (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fGenericAnnotDetails1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "AnnotDetails"
-                                       "Text.PrettyPrint.Annotated.HughesPJ"
-                                       "pretty-1.1.3.3"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "NoAnnot"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceLazy
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.SourceUnpack
-                                                                                'GHC.Generics.SourceLazy
-                                                                                'GHC.Generics.DecidedUnpack)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                GHC.Types.Int))
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "AnnotEnd"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                'GHC.Generics.DecidedLazy)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                a)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Errors.Rep_AnnotDetails[0]
-                                         <a>_N))) <x>_N) -}
-1bd771df6a656352723cf85b3b4021d3
-  $fGenericAnnotDetails_$cto ::
-    GHC.Generics.Rep
-      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) x
-    -> Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Errors.Rep_AnnotDetails[0] <a>_N))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "AnnotDetails"
-                                   "Text.PrettyPrint.Annotated.HughesPJ"
-                                   "pretty-1.1.3.3"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "NoAnnot"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceLazy
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                                      GHC.Generics.:*: GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.SourceUnpack
-                                                                            'GHC.Generics.SourceLazy
-                                                                            'GHC.Generics.DecidedUnpack)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            GHC.Types.Int))
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "AnnotEnd"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            a)))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Text.PrettyPrint.Annotated.HughesPJ.AnnotStart @ a }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2
-                                  `cast`
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceLazy
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.SourceUnpack
-                                                            'GHC.Generics.SourceLazy
-                                                            'GHC.Generics.DecidedUnpack)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            GHC.Types.Int)>_R <x>_N) of wild2 { GHC.Generics.:*: ds3 ds4 ->
-                           Text.PrettyPrint.Annotated.HughesPJ.$WNoAnnot
-                             @ a
-                             ds3
-                               `cast`
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.SourceLazy
-                                          'GHC.Generics.DecidedStrict>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R
-                                       <x>_P))
-                             ds4
-                               `cast`
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.SourceUnpack
-                                          'GHC.Generics.SourceLazy
-                                          'GHC.Generics.DecidedUnpack>_P
-                                       <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P)) }
-                        GHC.Generics.R1 ds2
-                        -> Text.PrettyPrint.Annotated.HughesPJ.AnnotEnd
-                             @ a
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R a)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P)) } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fGenericError ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fGenericError_$cfrom
-                  Language.Fixpoint.Types.Errors.$fGenericError_$cto -}
-af80a035f9731b203491b28daa7a8cc7
-  $fGenericError1 ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fGenericError1_$cfrom
-                  Language.Fixpoint.Types.Errors.$fGenericError1_$cto -}
-af80a035f9731b203491b28daa7a8cc7
-  $fGenericError1_$cfrom ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error1 x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fGenericError4
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Errors.Error1>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Error1"
-                                       "Language.Fixpoint.Types.Errors"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "errLoc")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "errMsg")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Text.PrettyPrint.HughesPJ.Doc))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Errors.Rep_Error1[0]))) <x>_N) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fGenericError1_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error1 x
-    -> Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error1 x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Errors.Rep_Error1[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Error1"
-                                        "Language.Fixpoint.Types.Errors"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "errLoc")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "errMsg")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Text.PrettyPrint.HughesPJ.Doc))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "errLoc")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "errMsg")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Text.PrettyPrint.HughesPJ.Doc)>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Language.Fixpoint.Types.Errors.Error1
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "errLoc")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Spans.SrcSpan>_R
-                             <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "errMsg")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Text.PrettyPrint.HughesPJ.Doc>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.PrettyPrint.HughesPJ.Doc>_R <x>_P)) }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fGenericError2 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x) ->
-                 ds) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fGenericError3 ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Errors.Error) -> x1) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fGenericError4 ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "errLoc")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "errMsg")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1 GHC.Generics.R Text.PrettyPrint.HughesPJ.Doc))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case x1 of wild { Language.Fixpoint.Types.Errors.Error1 g1 g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "errLoc")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "errMsg")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R Text.PrettyPrint.HughesPJ.Doc))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Spans.SrcSpan>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "errLoc")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Spans.SrcSpan>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Text.PrettyPrint.HughesPJ.Doc>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "errMsg")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Text.PrettyPrint.HughesPJ.Doc>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "errLoc")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Spans.SrcSpan)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "errMsg")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Text.PrettyPrint.HughesPJ.Doc)>_R) <x>_N) }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fGenericError_$cfrom ::
-    Language.Fixpoint.Types.Errors.Error
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fGenericError3
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Errors.Error>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Errors.N:Error[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <[Language.Fixpoint.Types.Errors.Error1]>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Errors.Error1]>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "Error"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         [Language.Fixpoint.Types.Errors.Error1])>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "Error"
-                                                           "Language.Fixpoint.Types.Errors"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "Error"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 [Language.Fixpoint.Types.Errors.Error1]))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Errors.Rep_Error[0]))))) <x>_N))) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fGenericError_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fGenericError2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Errors.Rep_Error[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "Error"
-                                            "Language.Fixpoint.Types.Errors"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  [Language.Fixpoint.Types.Errors.Error1]))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "Error" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [Language.Fixpoint.Types.Errors.Error1])>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Errors.Error1]>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <[Language.Fixpoint.Types.Errors.Error1]>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Errors.N:Error[0])))) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fGenericFixResult ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.$fGenericFixResult_$cfrom @ a)
-                  (Language.Fixpoint.Types.Errors.$fBinaryFixResult_$cto @ a) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fGenericFixResult_$cfrom ::
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Errors.FixResult a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fBinaryFixResult3
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Errors.FixResult a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "FixResult"
-                                       "Language.Fixpoint.Types.Errors"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1 GHC.Generics.R [a])
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R GHC.Base.String))
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "Safe"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         GHC.Generics.U1
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "Unsafe"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                [a])))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Errors.Rep_FixResult[0]
-                                         <a>_N))) <x>_N) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fMonoidFixResult ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.Safe @ a)
-                  (Language.Fixpoint.Types.Errors.$fMonoidFixResult_$cmappend @ a)
-                  (Language.Fixpoint.Types.Errors.$fMonoidFixResult_$cmconcat @ a) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fMonoidFixResult1 ::
-    [Language.Fixpoint.Types.Errors.FixResult a]
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-bbcb7910102e76dd87f9706483b3612e
-  $fMonoidFixResult_$cmappend ::
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ @ a
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a)
-                   (x :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   DEFAULT
-                   -> case x of wild1 {
-                        Language.Fixpoint.Types.Errors.Crash ds1 ds2 -> wild1
-                        Language.Fixpoint.Types.Errors.Safe -> wild
-                        Language.Fixpoint.Types.Errors.Unsafe ipv
-                        -> case wild of wild2 {
-                             Language.Fixpoint.Types.Errors.Crash ds1 ds2 -> wild2
-                             Language.Fixpoint.Types.Errors.Unsafe xs
-                             -> case GHC.Base.++ @ a xs ipv of dt { DEFAULT ->
-                                Language.Fixpoint.Types.Errors.Unsafe @ a dt } } }
-                   Language.Fixpoint.Types.Errors.Safe -> x }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fMonoidFixResult_$cmconcat ::
-    [Language.Fixpoint.Types.Errors.FixResult a]
-    -> Language.Fixpoint.Types.Errors.FixResult a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a
-                   (eta :: [Language.Fixpoint.Types.Errors.FixResult a]) ->
-                 Language.Fixpoint.Types.Errors.$fMonoidFixResult1 @ a eta) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fNFDataFixResult ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(H)><S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Errors.$fNFDataFixResult_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Errors.FixResult a>_N)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fNFDataFixResult_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(H)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dNFData :: Control.DeepSeq.NFData a)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case eta of wild {
-                   Language.Fixpoint.Types.Errors.Crash g1 g2
-                   -> case Control.DeepSeq.$fNFDataArray_$crnf1
-                             @ a
-                             $dNFData
-                             g1 of wild1 { () ->
-                      Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        g2 }
-                   Language.Fixpoint.Types.Errors.Safe -> GHC.Tuple.()
-                   Language.Fixpoint.Types.Errors.Unsafe g1
-                   -> Control.DeepSeq.$fNFDataArray_$crnf1 @ a $dNFData g1 }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError :: GHC.Classes.Ord Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fEqError
-                  Language.Fixpoint.Types.Errors.$fOrdError_$ccompare
-                  Language.Fixpoint.Types.Errors.$fOrdError_$c<
-                  Language.Fixpoint.Types.Errors.$fOrdError_$c<=
-                  Language.Fixpoint.Types.Errors.$fOrdError_$c>
-                  Language.Fixpoint.Types.Errors.$fOrdError_$c>=
-                  Language.Fixpoint.Types.Errors.$fOrdError_$cmax
-                  Language.Fixpoint.Types.Errors.$fOrdError_$cmin -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1 ::
-    GHC.Classes.Ord Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fEqError1
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$ccompare
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$c<
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$c<=
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$c>
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$c>=
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$cmax
-                  Language.Fixpoint.Types.Errors.$fOrdError1_$cmin -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$c< ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c<
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27 } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$c<= ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c<=
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27 } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$c> ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c>
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27 } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$c>= ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 Language.Fixpoint.Types.Errors.$w$c>=
-                   ww7
-                   ww8
-                   ww9
-                   ww11
-                   ww12
-                   ww13
-                   ww21
-                   ww22
-                   ww23
-                   ww25
-                   ww26
-                   ww27 } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$ccompare ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)><S(S(S(SLL)S)L),1*U(1*U(U(1*U,U,U),U(1*U,U,U)),A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Errors.Error1)
-                   (y :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case x of wild { Language.Fixpoint.Types.Errors.Error1 ds ds1 ->
-                 case y of wild1 { Language.Fixpoint.Types.Errors.Error1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$ccompare ds ds2 } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$cmax ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(U(U(U,U,U),U(U,U,U)),U)><S(S(S(SLL)S)L),1*U(U(U(U,U,U),U(U,U,U)),U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww7 ww21 of wild {
-                   GHC.Types.LT
-                   -> Language.Fixpoint.Types.Errors.Error1
-                        (Language.Fixpoint.Types.Spans.SS
-                           (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                           (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                        ww16
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww8 ww22) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww8 ww22) of wild2 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Errors.Error1
-                                  (Language.Fixpoint.Types.Spans.SS
-                                     (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                     (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                  ww2
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww9 ww23) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww9 ww23) of wild5 {
-                                       GHC.Types.False
-                                       -> Language.Fixpoint.Types.Errors.Error1
-                                            (Language.Fixpoint.Types.Spans.SS
-                                               (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                               (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                            ww2
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww11 ww25 of wild7 {
-                                            GHC.Types.LT
-                                            -> Language.Fixpoint.Types.Errors.Error1
-                                                 (Language.Fixpoint.Types.Spans.SS
-                                                    (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                                    (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                                 ww16
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww12 ww26) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww12 ww26) of wild9 {
-                                                      GHC.Types.False
-                                                      -> Language.Fixpoint.Types.Errors.Error1
-                                                           (Language.Fixpoint.Types.Spans.SS
-                                                              (Text.Parsec.Pos.SourcePos
-                                                                 ww7
-                                                                 ww8
-                                                                 ww9)
-                                                              (Text.Parsec.Pos.SourcePos
-                                                                 ww11
-                                                                 ww12
-                                                                 ww13))
-                                                           ww2
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<# ww13 ww27) of wild10 {
-                                                           GHC.Types.False
-                                                           -> case GHC.Prim.tagToEnum#
-                                                                     @ GHC.Types.Bool
-                                                                     (GHC.Prim.==#
-                                                                        ww13
-                                                                        ww27) of wild11 {
-                                                                GHC.Types.False
-                                                                -> Language.Fixpoint.Types.Errors.Error1
-                                                                     (Language.Fixpoint.Types.Spans.SS
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww7
-                                                                           ww8
-                                                                           ww9)
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww11
-                                                                           ww12
-                                                                           ww13))
-                                                                     ww2
-                                                                GHC.Types.True
-                                                                -> Language.Fixpoint.Types.Errors.Error1
-                                                                     (Language.Fixpoint.Types.Spans.SS
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww21
-                                                                           ww22
-                                                                           ww23)
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww25
-                                                                           ww26
-                                                                           ww27))
-                                                                     ww16 }
-                                                           GHC.Types.True
-                                                           -> Language.Fixpoint.Types.Errors.Error1
-                                                                (Language.Fixpoint.Types.Spans.SS
-                                                                   (Text.Parsec.Pos.SourcePos
-                                                                      ww21
-                                                                      ww22
-                                                                      ww23)
-                                                                   (Text.Parsec.Pos.SourcePos
-                                                                      ww25
-                                                                      ww26
-                                                                      ww27))
-                                                                ww16 } }
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Types.Errors.Error1
-                                                      (Language.Fixpoint.Types.Spans.SS
-                                                         (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                                         (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                                      ww16 }
-                                            GHC.Types.GT
-                                            -> Language.Fixpoint.Types.Errors.Error1
-                                                 (Language.Fixpoint.Types.Spans.SS
-                                                    (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                                    (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                                 ww2 } }
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Types.Errors.Error1
-                                       (Language.Fixpoint.Types.Spans.SS
-                                          (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                          (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                       ww16 } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Errors.Error1
-                             (Language.Fixpoint.Types.Spans.SS
-                                (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                             ww16 }
-                   GHC.Types.GT
-                   -> Language.Fixpoint.Types.Errors.Error1
-                        (Language.Fixpoint.Types.Spans.SS
-                           (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                           (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                        ww2 } } } } } } } } }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fOrdError1_$cmin ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S)L),1*U(U(U(U,U,U),U(U,U,U)),U)><S(S(S(SLL)S)L),1*U(U(U(U,U,U),U(U,U,U)),U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Errors.Error1)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case w of ww { Language.Fixpoint.Types.Errors.Error1 ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                 case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                 case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                 case w1 of ww14 { Language.Fixpoint.Types.Errors.Error1 ww15 ww16 ->
-                 case ww15 of ww17 { Language.Fixpoint.Types.Spans.SS ww18 ww19 ->
-                 case ww18 of ww20 { Text.Parsec.Pos.SourcePos ww21 ww22 ww23 ->
-                 case ww19 of ww24 { Text.Parsec.Pos.SourcePos ww25 ww26 ww27 ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww7 ww21 of wild {
-                   GHC.Types.LT
-                   -> Language.Fixpoint.Types.Errors.Error1
-                        (Language.Fixpoint.Types.Spans.SS
-                           (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                           (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                        ww2
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww8 ww22) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww8 ww22) of wild2 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Errors.Error1
-                                  (Language.Fixpoint.Types.Spans.SS
-                                     (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                     (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                  ww16
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww9 ww23) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww9 ww23) of wild5 {
-                                       GHC.Types.False
-                                       -> Language.Fixpoint.Types.Errors.Error1
-                                            (Language.Fixpoint.Types.Spans.SS
-                                               (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                               (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                            ww16
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww11 ww25 of wild7 {
-                                            GHC.Types.LT
-                                            -> Language.Fixpoint.Types.Errors.Error1
-                                                 (Language.Fixpoint.Types.Spans.SS
-                                                    (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                                    (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                                 ww2
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww12 ww26) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww12 ww26) of wild9 {
-                                                      GHC.Types.False
-                                                      -> Language.Fixpoint.Types.Errors.Error1
-                                                           (Language.Fixpoint.Types.Spans.SS
-                                                              (Text.Parsec.Pos.SourcePos
-                                                                 ww21
-                                                                 ww22
-                                                                 ww23)
-                                                              (Text.Parsec.Pos.SourcePos
-                                                                 ww25
-                                                                 ww26
-                                                                 ww27))
-                                                           ww16
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<# ww13 ww27) of wild10 {
-                                                           GHC.Types.False
-                                                           -> case GHC.Prim.tagToEnum#
-                                                                     @ GHC.Types.Bool
-                                                                     (GHC.Prim.==#
-                                                                        ww13
-                                                                        ww27) of wild11 {
-                                                                GHC.Types.False
-                                                                -> Language.Fixpoint.Types.Errors.Error1
-                                                                     (Language.Fixpoint.Types.Spans.SS
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww21
-                                                                           ww22
-                                                                           ww23)
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww25
-                                                                           ww26
-                                                                           ww27))
-                                                                     ww16
-                                                                GHC.Types.True
-                                                                -> Language.Fixpoint.Types.Errors.Error1
-                                                                     (Language.Fixpoint.Types.Spans.SS
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww7
-                                                                           ww8
-                                                                           ww9)
-                                                                        (Text.Parsec.Pos.SourcePos
-                                                                           ww11
-                                                                           ww12
-                                                                           ww13))
-                                                                     ww2 }
-                                                           GHC.Types.True
-                                                           -> Language.Fixpoint.Types.Errors.Error1
-                                                                (Language.Fixpoint.Types.Spans.SS
-                                                                   (Text.Parsec.Pos.SourcePos
-                                                                      ww7
-                                                                      ww8
-                                                                      ww9)
-                                                                   (Text.Parsec.Pos.SourcePos
-                                                                      ww11
-                                                                      ww12
-                                                                      ww13))
-                                                                ww2 } }
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Types.Errors.Error1
-                                                      (Language.Fixpoint.Types.Spans.SS
-                                                         (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                                         (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                                      ww2 }
-                                            GHC.Types.GT
-                                            -> Language.Fixpoint.Types.Errors.Error1
-                                                 (Language.Fixpoint.Types.Spans.SS
-                                                    (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                                                    (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                                                 ww16 } }
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Types.Errors.Error1
-                                       (Language.Fixpoint.Types.Spans.SS
-                                          (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                          (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                                       ww2 } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Errors.Error1
-                             (Language.Fixpoint.Types.Spans.SS
-                                (Text.Parsec.Pos.SourcePos ww7 ww8 ww9)
-                                (Text.Parsec.Pos.SourcePos ww11 ww12 ww13))
-                             ww2 }
-                   GHC.Types.GT
-                   -> Language.Fixpoint.Types.Errors.Error1
-                        (Language.Fixpoint.Types.Spans.SS
-                           (Text.Parsec.Pos.SourcePos ww21 ww22 ww23)
-                           (Text.Parsec.Pos.SourcePos ww25 ww26 ww27))
-                        ww16 } } } } } } } } }) -}
-f905d68706896b24782a75ff2dd85b50
-  $fOrdError2 ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Ordering
-  {- Arity: 2,
-     Unfolding: (GHC.Classes.$fOrd[]_$ccompare
-                   @ Language.Fixpoint.Types.Errors.Error1
-                   Language.Fixpoint.Types.Errors.$fOrdError1) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$c< ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c<
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$c<= ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c<=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$c> ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c>
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$c>= ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c>=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$ccompare ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Types.Ordering
-  {- Arity: 2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError2
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R <GHC.Types.Ordering>_R) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$cmax ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 2, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$cmax
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fOrdError_$cmin ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 2, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$cmin
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])) -}
-bf357c7b7763fd52e45a521a123f2a79
-  $fOrdError_$s$fOrd[]_$c< ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-10dc1e72fcaf164b61f5733c86ffbd18
-  $fOrdError_$s$fOrd[]_$c<= ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-457c105c25d2a8f42769110e4130ac16
-  $fOrdError_$s$fOrd[]_$c> ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-09e2e504c37051fb49218a5cdefd82b1
-  $fOrdError_$s$fOrd[]_$c>= ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1] -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-a0f82796e0571c4b357a8f28ccbe1fa2
-  $fOrdError_$s$fOrd[]_$cmax ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1]
-  {- Arity: 2, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> y GHC.Types.GT -> x }) -}
-a0d6608931793a29b8b084ae57154c79
-  $fOrdError_$s$fOrd[]_$cmin ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1]
-    -> [Language.Fixpoint.Types.Errors.Error1]
-  {- Arity: 2, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: [Language.Fixpoint.Types.Errors.Error1])
-                   (y :: [Language.Fixpoint.Types.Errors.Error1]) ->
-                 case GHC.Classes.$fOrd[]_$ccompare
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fOrdError1
-                        x
-                        y of wild {
-                   DEFAULT -> x GHC.Types.GT -> y }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fPPrintError ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fPPrintError_$cpprintTidy
-                  Language.Fixpoint.Types.Errors.$fPPrintError_$cpprintPrec -}
-af80a035f9731b203491b28daa7a8cc7
-  $fPPrintError1 ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fFixpointError1_$cpprintTidy
-                  Language.Fixpoint.Types.Errors.$fFixpointError1_$cpprintPrec -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fPPrintError_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Errors.Error
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Errors.Error) ->
-                 Language.Fixpoint.Types.Errors.$fPPrintError_$cpprintTidy
-                   eta
-                   eta1) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fPPrintError_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Errors.Error
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S,1*U>, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, True)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error) ->
-                 Language.Fixpoint.Types.Errors.$w$cpprintTidy1 w1) -}
-61e978aed7de42777c50ae537c022c1d
-  $fPPrintError_go ::
-    [Language.Fixpoint.Types.Errors.Error1]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-b0429539a3af14014fa62b047e6047e2
-  $fSerializeAnnotDetails ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Serialize
-      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(U,U)),C(C1(C1(C1(C1(U))))))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dSerialize :: Data.Serialize.Serialize a).
-                  @ (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-                  (Language.Fixpoint.Types.Errors.$fSerializeAnnotDetails_$cput
-                     @ a
-                     $dSerialize)
-                  (Language.Fixpoint.Types.Errors.$fSerializeAnnotDetails_$cget
-                     @ a
-                     $dSerialize) -}
-78cb11f78efdf8fd6c55bd67b0506472
-  $fSerializeAnnotDetails3 ::
-    Data.ByteString.Builder.Internal.BuildStep r
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ r
-                   (eta :: Data.ByteString.Builder.Internal.BuildStep r)
-                   (eta1 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case eta1 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.writeWord8OffAddr#
-                             @ GHC.Prim.RealWorld
-                             dt
-                             0#
-                             0##
-                             eta2 of s2 { DEFAULT ->
-                      (eta
-                         (Data.ByteString.Builder.Internal.BufferRange
-                            (GHC.Prim.plusAddr# dt 1#)
-                            dt1))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                        s2 }
-                   GHC.Types.True
-                   -> (# eta2,
-                         Data.ByteString.Builder.Internal.BufferFull
-                           @ r
-                           1#
-                           dt
-                           (\ (ds :: Data.ByteString.Builder.Internal.BufferRange)
-                              (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                            case ds of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                            case GHC.Prim.writeWord8OffAddr#
-                                   @ GHC.Prim.RealWorld
-                                   dt3
-                                   0#
-                                   0##
-                                   eta3 of s2 { DEFAULT ->
-                            (eta
-                               (Data.ByteString.Builder.Internal.BufferRange
-                                  (GHC.Prim.plusAddr# dt3 1#)
-                                  dt4))
-                              `cast`
-                            (GHC.Types.N:IO[0]
-                                 <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                              s2 } })
-                             `cast`
-                           (<Data.ByteString.Builder.Internal.BufferRange>_R
-                            ->_R Sym (GHC.Types.N:IO[0]
-                                          <Data.ByteString.Builder.Internal.BuildSignal
-                                             r>_R)) #) } }) -}
-383dde06f588c4358ad265ee4d72a884
-  $fSerializeAnnotDetails4 ::
-    Data.Serialize.Serialize a =>
-    forall r.
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ a
-                   (w :: Data.Serialize.Serialize a)
-                   @ r
-                   (w1 :: Data.Serialize.Get.Input)
-                   (w2 :: Data.Serialize.Get.Buffer)
-                   (w3 :: Data.Serialize.Get.More)
-                   (w4 :: Data.Serialize.Get.Failure r)
-                   (w5 :: Data.Serialize.Get.Success
-                            (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget1
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2
-                   w3
-                   w4
-                   w5 }) -}
-348ec6ec664048d09468a1c818a21d6b
-  $fSerializeAnnotDetails_$cget ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Get.Get
-      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeAnnotDetails4
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Serialize.Serialize a>_R
-                 ->_R Sym (Data.Serialize.Get.N:Get[0]
-                               <Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a>_R)) -}
-fc35cb786c776cc434d9f95b9005a35f
-  $fSerializeAnnotDetails_$cput ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Put.Putter
-      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U(U,U)),A)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Serialize.Serialize a)
-                   (w1 :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) ->
-                 case Language.Fixpoint.Types.Errors.$w$cput
-                        @ a
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-146e5fcaa831210e157731237c2b41fd
-  $fSerializeDoc ::
-    Data.Serialize.Serialize Text.PrettyPrint.HughesPJ.Doc
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.PrettyPrint.HughesPJ.Doc
-                  Language.Fixpoint.Types.Errors.$fSerializeDoc_$s$dmput
-                  Language.Fixpoint.Types.Errors.$fSerializeDoc_$cget -}
-f859c48378a12dfd1833aafe98592b68
-  $fSerializeDoc0 ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Serialize
-      (Text.PrettyPrint.Annotated.HughesPJ.Doc a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(U,U)),C(C1(C1(C1(C1(U))))))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dSerialize :: Data.Serialize.Serialize a).
-                  @ (Text.PrettyPrint.Annotated.HughesPJ.Doc a)
-                  (Language.Fixpoint.Types.Errors.$fSerializeDoc0_$cput
-                     @ a
-                     $dSerialize)
-                  (Language.Fixpoint.Types.Errors.$fSerializeDoc0_$cget
-                     @ a
-                     $dSerialize) -}
-c0bd4e1e2dfdb3a6ddab38c721be07e9
-  $fSerializeDoc0_$cget ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Get.Get (Text.PrettyPrint.Annotated.HughesPJ.Doc a)
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeDoc6
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Serialize.Serialize a>_R
-                 ->_R Sym (Data.Serialize.Get.N:Get[0]
-                               <Text.PrettyPrint.Annotated.HughesPJ.Doc a>_R)) -}
-538252496ef8596fce5fdbaf613b3b5f
-  $fSerializeDoc0_$cput ::
-    Data.Serialize.Serialize a =>
-    Data.Serialize.Put.Putter
-      (Text.PrettyPrint.Annotated.HughesPJ.Doc a)
-  {- Arity: 2, Strictness: <L,U(C(U(U,U)),A)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Serialize.Serialize a)
-                   (w1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc a) ->
-                 case Language.Fixpoint.Types.Errors.$w$cput1
-                        @ a
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-64ca941e495bf7f38572fd1060a9ca3d
-  $fSerializeDoc1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success Text.PrettyPrint.HughesPJ.Doc r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ r
-                   (w :: Data.Serialize.Get.Input)
-                   (w1 :: Data.Serialize.Get.Buffer)
-                   (w2 :: Data.Serialize.Get.More)
-                   (w3 :: Data.Serialize.Get.Failure r)
-                   (w4 :: Data.Serialize.Get.Success
-                            Text.PrettyPrint.HughesPJ.Doc r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget2
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1
-                   w2
-                   w3
-                   w4 }) -}
-b0c34702d32b012edfffecd395cde37a
-  $fSerializeDoc2 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Doc" "Text.PrettyPrint.HughesPJ" "pretty-1.1.3.3" 'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))))
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeDoc3
-                  `cast`
-                (Sym (Data.Serialize.N:GSerializePut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Doc" "Text.PrettyPrint.HughesPJ" "pretty-1.1.3.3" 'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))))>_N)) -}
-8a1947e9a4b62f9ed0dfe2e7fe0590b5
-  $fSerializeDoc3 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Doc" "Text.PrettyPrint.HughesPJ" "pretty-1.1.3.3" 'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Doc" "Text.PrettyPrint.HughesPJ" "pretty-1.1.3.3" 'GHC.Types.True)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))))
-                           a1) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeDoc_$s$cput
-                   x `cast`
-                   (Trans
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.D>_P
-                                  <'GHC.Generics.MetaData
-                                     "Doc"
-                                     "Text.PrettyPrint.HughesPJ"
-                                     "pretty-1.1.3.3"
-                                     'GHC.Types.True>_P
-                                  <GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))>_R)
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.C>_P
-                                       <'GHC.Generics.MetaCons
-                                          "Doc" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.Rec0
-                                             (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))>_R)
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          (Text.PrettyPrint.Annotated.HughesPJ.Doc ())>_R)) <a1>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Text.PrettyPrint.Annotated.HughesPJ.Doc ()>_R
-                             <a1>_P))) -}
-69215f36e8912f4a1c6d6e0e35cddd49
-  $fSerializeDoc4 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.C1
-          ('GHC.Generics.MetaCons
-             "Empty" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "NilAbove" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))))
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "TextBeside" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0
-                                 (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()))
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Nest" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.SourceUnpack
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack)
-                                               (GHC.Generics.Rec0 GHC.Types.Int)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                      ())))))
-      ((GHC.Generics.C1
-          ('GHC.Generics.MetaCons
-             "Union" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.S1
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.NoSourceStrictness
-                'GHC.Generics.DecidedLazy)
-             (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-           GHC.Generics.:*: GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))
-        GHC.Generics.:+: GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "NoDoc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Beside" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                            GHC.Generics.:*: (GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.Rec0 GHC.Types.Bool)
-                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.Rec0
-                                                                    (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                       ()))))
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Above" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                  (GHC.Generics.Rec0
-                                                                                     (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                                        ()))))))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: (GHC.Generics.:+:)
-                           ((GHC.Generics.C1
-                               ('GHC.Generics.MetaCons
-                                  "Empty" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               GHC.Generics.U1
-                             GHC.Generics.:+: GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "NilAbove"
-                                                   'GHC.Generics.PrefixI
-                                                   'GHC.Types.False)
-                                                (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                         ()))))
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "TextBeside"
-                                                   'GHC.Generics.PrefixI
-                                                   'GHC.Types.False)
-                                                (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.Rec0
-                                                      (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                                                         ()))
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.Rec0
-                                                                       (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                          ())))
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Nest"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.SourceUnpack
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.Rec0
-                                                                       GHC.Types.Int)
-                                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.NoSourceStrictness
-                                                                                        'GHC.Generics.DecidedLazy)
-                                                                                     (GHC.Generics.Rec0
-                                                                                        (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                                           ())))))
-                           ((GHC.Generics.C1
-                               ('GHC.Generics.MetaCons
-                                  "Union" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))
-                             GHC.Generics.:+: GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "NoDoc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1)
-                            GHC.Generics.:+: (GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "Beside" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0
-                                                      (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.NoSourceStrictness
-                                                                        'GHC.Generics.DecidedLazy)
-                                                                     (GHC.Generics.Rec0
-                                                                        GHC.Types.Bool)
-                                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                                            ()))))
-                                              GHC.Generics.:+: GHC.Generics.C1
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "Above"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.Rec0
-                                                                       (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                          ()))
-                                                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         'GHC.Base.Nothing
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         GHC.Types.Bool)
-                                                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                                                       ('GHC.Generics.MetaSel
-                                                                                                          'GHC.Base.Nothing
-                                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                                          'GHC.Generics.NoSourceStrictness
-                                                                                                          'GHC.Generics.DecidedLazy)
-                                                                                                       (GHC.Generics.Rec0
-                                                                                                          (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                                                             ()))))))
-                           a1) ->
-                 case Language.Fixpoint.Types.Errors.$wlvl2
-                        @ a1
-                        w of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-b7a5e3ba3b459c0f701cf1e7bfe3456f
-  $fSerializeDoc6 ::
-    Data.Serialize.Serialize a =>
-    forall r.
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Text.PrettyPrint.Annotated.HughesPJ.Doc a) r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ a
-                   (w :: Data.Serialize.Serialize a)
-                   @ r
-                   (w1 :: Data.Serialize.Get.Input)
-                   (w2 :: Data.Serialize.Get.Buffer)
-                   (w3 :: Data.Serialize.Get.More)
-                   (w4 :: Data.Serialize.Get.Failure r)
-                   (w5 :: Data.Serialize.Get.Success
-                            (Text.PrettyPrint.Annotated.HughesPJ.Doc a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget3
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2
-                   w3
-                   w4
-                   w5 }) -}
-1c0e43313b4bd7234381bc062327291e
-  $fSerializeDoc_$cget ::
-    Data.Serialize.Get.Get Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeDoc1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Text.PrettyPrint.HughesPJ.Doc>_R)) -}
-ba0254df34a24664b48e9dc94aaa66d8
-  $fSerializeDoc_$s$cput ::
-    Data.Serialize.Put.Putter
-      (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeDoc4
-                   @ GHC.Prim.Any
-                   (Text.PrettyPrint.Annotated.HughesPJ.$fGenericDoc1
-                      @ ()
-                      @ GHC.Prim.Any
-                      eta)) -}
-d0b0d8ce186cdafd00e24afc0aacaf49
-  $fSerializeDoc_$s$dmput ::
-    Data.Serialize.Put.Putter Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeDoc2
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Text.PrettyPrint.HughesPJ.Rep_Doc[0])))
-                   @ GHC.Prim.Any
-                   (Text.PrettyPrint.HughesPJ.$fGenericDoc_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeError ::
-    Data.Serialize.Serialize Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fSerializeError_$s$dmput
-                  Language.Fixpoint.Types.Errors.$fSerializeError_$cget -}
-af80a035f9731b203491b28daa7a8cc7
-  $fSerializeError1 ::
-    Data.Serialize.Serialize Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fSerializeError1_$s$dmput
-                  Language.Fixpoint.Types.Errors.$fSerializeError1_$cget -}
-af80a035f9731b203491b28daa7a8cc7
-  $fSerializeError1_$cget ::
-    Data.Serialize.Get.Get Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeError3
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Language.Fixpoint.Types.Errors.Error1>_R)) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fSerializeError1_$s$dmput ::
-    Data.Serialize.Put.Putter Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 1, Strictness: <S,1*U(1*U(U(U,U,U),U(U,U,U)),1*U)>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Errors.Error1) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeError6
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Language.Fixpoint.Types.Errors.Rep_Error1[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Errors.$fGenericError1_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeError2 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Errors.Error r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5,
-     Strictness: <S(SLSS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ r
-                   (w :: Data.Serialize.Get.Input)
-                   (w1 :: Data.Serialize.Get.Buffer)
-                   (w2 :: Data.Serialize.Get.More)
-                   (w3 :: Data.Serialize.Get.Failure r)
-                   (w4 :: Data.Serialize.Get.Success
-                            Language.Fixpoint.Types.Errors.Error r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget4
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1
-                   w2
-                   w3
-                   w4 }) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fSerializeError3 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Errors.Error1 r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: (\ @ r
-                   (eta :: Data.Serialize.Get.Input)
-                   (eta1 :: Data.Serialize.Get.Buffer)
-                   (eta2 :: Data.Serialize.Get.More)
-                   (eta3 :: Data.Serialize.Get.Failure r)
-                   (eta4 :: Data.Serialize.Get.Success
-                              Language.Fixpoint.Types.Errors.Error1 r) ->
-                 Language.Fixpoint.Types.Spans.$fSerializeSrcSpan1
-                   @ r
-                   eta
-                   eta1
-                   eta2
-                   eta3
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)[OneShot]
-                      (m1 :: Data.Serialize.Get.More)[OneShot]
-                      (a1 :: Language.Fixpoint.Types.Spans.SrcSpan)[OneShot] ->
-                    case s1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                    Language.Fixpoint.Types.Errors.$w$s$cget1
-                      @ r
-                      ww1
-                      ww2
-                      ww3
-                      ww4
-                      b1
-                      m1
-                      eta3
-                      (\ (s2 :: Data.Serialize.Get.Input)
-                         (b2 :: Data.Serialize.Get.Buffer)[OneShot]
-                         (m2 :: Data.Serialize.Get.More)[OneShot]
-                         (a2 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ())[OneShot] ->
-                       eta4
-                         s2
-                         b2
-                         m2
-                         (Language.Fixpoint.Types.Errors.Error1
-                            a1
-                            a2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])))) })) -}
-62d78a211b2edf59350432d043cb2f0d
-  $fSerializeError4 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Error"
-            "Language.Fixpoint.Types.Errors"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.True)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error1]))))
-  {- Arity: 1, Strictness: <L,U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeError5
-                  `cast`
-                (Sym (Data.Serialize.N:GSerializePut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Error"
-                                "Language.Fixpoint.Types.Errors"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.True)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0
-                                      [Language.Fixpoint.Types.Errors.Error1])))>_N)) -}
-230470833f412500a36162e0b00a40f6
-  $fSerializeError5 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Error"
-         "Language.Fixpoint.Types.Errors"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.True)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error1])))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Error"
-                              "Language.Fixpoint.Types.Errors"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.True)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error1])))
-                           a1) ->
-                 case Data.Serialize.$w$cput28
-                        @ Language.Fixpoint.Types.Errors.Error1
-                        Language.Fixpoint.Types.Errors.$fSerializeError1
-                        x `cast`
-                        (Trans
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.D>_P
-                                       <'GHC.Generics.MetaData
-                                          "Error"
-                                          "Language.Fixpoint.Types.Errors"
-                                          "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                          'GHC.Types.True>_P
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0
-                                                [Language.Fixpoint.Types.Errors.Error1]))>_R)
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "Error" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  [Language.Fixpoint.Types.Errors.Error1])>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Errors.Error1]>_R)) <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[Language.Fixpoint.Types.Errors.Error1]>_R
-                                  <a1>_P)) of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-f5f80f943794c86192e1ebf88db14c7b
-  $fSerializeError6 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Error1"
-            "Language.Fixpoint.Types.Errors"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "errLoc")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "errMsg")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc))))
-  {- Arity: 1, Strictness: <S,1*U(1*U(U(U,U,U),U(U,U,U)),1*U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeError7
-                  `cast`
-                (Trans
-                     (forall (a1 :: <*>_N).
-                      Sym (GHC.Generics.N:M1[0]
-                               <GHC.Generics.D>_P
-                               <'GHC.Generics.MetaData
-                                  "Error1"
-                                  "Language.Fixpoint.Types.Errors"
-                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                  'GHC.Types.False>_P
-                               <GHC.Generics.M1
-                                  GHC.Generics.C
-                                  ('GHC.Generics.MetaCons
-                                     "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "errLoc")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "errMsg")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0
-                                                         Text.PrettyPrint.HughesPJ.Doc))>_R) <a1>_N
-                      ->_R <Data.Serialize.Put.Put>_R)
-                     (Sym (Data.Serialize.N:GSerializePut[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "Error1"
-                                     "Language.Fixpoint.Types.Errors"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.False)
-                                  (GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "errLoc")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                                      GHC.Generics.:*: GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "errMsg")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.Rec0
-                                                            Text.PrettyPrint.HughesPJ.Doc)))>_N))) -}
-fcec7ce0c5a974069cf904e198707a26
-  $fSerializeError7 ::
-    GHC.Generics.M1
-      GHC.Generics.C
-      ('GHC.Generics.MetaCons
-         "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-      (GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "errLoc")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-       GHC.Generics.:*: GHC.Generics.S1
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "errMsg")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.NoSourceStrictness
-                             'GHC.Generics.DecidedLazy)
-                          (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <S,1*U(1*U(U(U,U,U),U(U,U,U)),1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "errLoc")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "errMsg")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc))
-                           a1) ->
-                 case w `cast`
-                      (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "errLoc")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "errMsg")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  Text.PrettyPrint.HughesPJ.Doc)>_R <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case Language.Fixpoint.Types.Errors.$w$dGSerializePut1
-                        @ a1
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (Data.Serialize.Put.PairS @ () ww4 ww5)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeError_$cget ::
-    Data.Serialize.Get.Get Language.Fixpoint.Types.Errors.Error
-  {- Arity: 5,
-     Strictness: <S(SLSS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeError2
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Language.Fixpoint.Types.Errors.Error>_R)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeError_$s$dmput ::
-    Data.Serialize.Put.Putter Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, Strictness: <L,U>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Errors.Error) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeError4
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Language.Fixpoint.Types.Errors.Rep_Error[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Errors.$fGenericError_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult ::
-    Data.Serialize.Serialize
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Errors.FixResult
-                       Language.Fixpoint.Types.Errors.Error)
-                  Language.Fixpoint.Types.Errors.$fSerializeFixResult_$s$dmput
-                  Language.Fixpoint.Types.Errors.$fSerializeFixResult_$cget -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Language.Fixpoint.Types.Errors.FixResult
-            Language.Fixpoint.Types.Errors.Error)
-         r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ r
-                   (w :: Data.Serialize.Get.Input)
-                   (w1 :: Data.Serialize.Get.Buffer)
-                   (w2 :: Data.Serialize.Get.More)
-                   (w3 :: Data.Serialize.Get.Failure r)
-                   (w4 :: Data.Serialize.Get.Success
-                            (Language.Fixpoint.Types.Errors.FixResult
-                               Language.Fixpoint.Types.Errors.Error)
-                            r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget5
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1
-                   w2
-                   w3
-                   w4 }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult2 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "FixResult"
-            "Language.Fixpoint.Types.Errors"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.Rec0 GHC.Base.String))
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     [Language.Fixpoint.Types.Errors.Error])))))
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeFixResult3
-                  `cast`
-                (Trans
-                     (forall (a1 :: <*>_N).
-                      Sym (GHC.Generics.N:M1[0]
-                               <GHC.Generics.D>_P
-                               <'GHC.Generics.MetaData
-                                  "FixResult"
-                                  "Language.Fixpoint.Types.Errors"
-                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                  'GHC.Types.False>_P
-                               <GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0 GHC.Base.String))
-                                GHC.Generics.:+: (GHC.Generics.C1
-                                                    ('GHC.Generics.MetaCons
-                                                       "Safe"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    GHC.Generics.U1
-                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "Unsafe"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           [Language.Fixpoint.Types.Errors.Error])))>_R) <a1>_N
-                      ->_R <Data.Serialize.Put.Put>_R)
-                     (Sym (Data.Serialize.N:GSerializePut[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "FixResult"
-                                     "Language.Fixpoint.Types.Errors"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.False)
-                                  (GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-                                      GHC.Generics.:*: GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.Rec0 GHC.Base.String))
-                                   GHC.Generics.:+: (GHC.Generics.C1
-                                                       ('GHC.Generics.MetaCons
-                                                          "Safe"
-                                                          'GHC.Generics.PrefixI
-                                                          'GHC.Types.False)
-                                                       GHC.Generics.U1
-                                                     GHC.Generics.:+: GHC.Generics.C1
-                                                                        ('GHC.Generics.MetaCons
-                                                                           "Unsafe"
-                                                                           'GHC.Generics.PrefixI
-                                                                           'GHC.Types.False)
-                                                                        (GHC.Generics.S1
-                                                                           ('GHC.Generics.MetaSel
-                                                                              'GHC.Base.Nothing
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.Rec0
-                                                                              [Language.Fixpoint.Types.Errors.Error]))))>_N))) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult3 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 GHC.Base.String)))
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: (GHC.Generics.:+:)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 GHC.Base.String)))
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     [Language.Fixpoint.Types.Errors.Error])))
-                           a1) ->
-                 case Language.Fixpoint.Types.Errors.$w$dGSerializePut2
-                        @ a1
-                        w of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-2803c4d1136fc9cbb596ca29e118f202
-  $fSerializeFixResult4 ::
-    Data.ByteString.Builder.Internal.BuildStep r
-    -> Data.ByteString.Builder.Internal.BufferRange
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.ByteString.Builder.Internal.BuildSignal r #)
-  {- Arity: 3, HasNoCafRefs,
-     Unfolding: (\ @ r
-                   (eta :: Data.ByteString.Builder.Internal.BuildStep r)
-                   (eta1 :: Data.ByteString.Builder.Internal.BufferRange)
-                   (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case eta1 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.writeWord8OffAddr#
-                             @ GHC.Prim.RealWorld
-                             dt
-                             0#
-                             1##
-                             eta2 of s2 { DEFAULT ->
-                      (eta
-                         (Data.ByteString.Builder.Internal.BufferRange
-                            (GHC.Prim.plusAddr# dt 1#)
-                            dt1))
-                        `cast`
-                      (GHC.Types.N:IO[0]
-                           <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                        s2 }
-                   GHC.Types.True
-                   -> (# eta2,
-                         Data.ByteString.Builder.Internal.BufferFull
-                           @ r
-                           1#
-                           dt
-                           (\ (ds :: Data.ByteString.Builder.Internal.BufferRange)
-                              (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                            case ds of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                            case GHC.Prim.writeWord8OffAddr#
-                                   @ GHC.Prim.RealWorld
-                                   dt3
-                                   0#
-                                   1##
-                                   eta3 of s2 { DEFAULT ->
-                            (eta
-                               (Data.ByteString.Builder.Internal.BufferRange
-                                  (GHC.Prim.plusAddr# dt3 1#)
-                                  dt4))
-                              `cast`
-                            (GHC.Types.N:IO[0]
-                                 <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                              s2 } })
-                             `cast`
-                           (<Data.ByteString.Builder.Internal.BufferRange>_R
-                            ->_R Sym (GHC.Types.N:IO[0]
-                                          <Data.ByteString.Builder.Internal.BuildSignal
-                                             r>_R)) #) } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult_$cget ::
-    Data.Serialize.Get.Get
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeFixResult1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Language.Fixpoint.Types.Errors.FixResult
-                             Language.Fixpoint.Types.Errors.Error>_R)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fSerializeFixResult_$s$dmput ::
-    Data.Serialize.Put.Putter
-      (Language.Fixpoint.Types.Errors.FixResult
-         Language.Fixpoint.Types.Errors.Error)
-  {- Arity: 1, Strictness: <S,1*U>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Errors.FixResult
-                             Language.Fixpoint.Types.Errors.Error) ->
-                 Language.Fixpoint.Types.Errors.$fSerializeFixResult2
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Language.Fixpoint.Types.Errors.Rep_FixResult[0]
-                                <Language.Fixpoint.Types.Errors.Error>_N)))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Errors.$fGenericFixResult_$cfrom
-                      @ Language.Fixpoint.Types.Errors.Error
-                      @ GHC.Prim.Any
-                      eta)) -}
-d5334340ebc141c9f62f25cf90a5884c
-  $fSerializeTextDetails ::
-    Data.Serialize.Serialize
-      Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-                  Language.Fixpoint.Types.Errors.$fSerializeTextDetails_$cput
-                  Language.Fixpoint.Types.Errors.$fSerializeTextDetails_$cget -}
-069ea05220ba20c58b7d7742c7c650b4
-  $fSerializeTextDetails1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Text.PrettyPrint.Annotated.HughesPJ.TextDetails r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ r
-                   (w :: Data.Serialize.Get.Input)
-                   (w1 :: Data.Serialize.Get.Buffer)
-                   (w2 :: Data.Serialize.Get.More)
-                   (w3 :: Data.Serialize.Get.Failure r)
-                   (w4 :: Data.Serialize.Get.Success
-                            Text.PrettyPrint.Annotated.HughesPJ.TextDetails r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cget6
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1
-                   w2
-                   w3
-                   w4 }) -}
-3915d2351b9afa393dc6878ed0fa4835
-  $fSerializeTextDetails_$cget ::
-    Data.Serialize.Get.Get
-      Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Arity: 5,
-     Strictness: <S(LLLS),1*U(U,U,U,U)><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.$fSerializeTextDetails1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R)) -}
-4ed0ecf9c0d0411b6ff83425c2c0d215
-  $fSerializeTextDetails_$cput ::
-    Data.Serialize.Put.Putter
-      Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails) ->
-                 case Language.Fixpoint.Types.Errors.$w$cput2
-                        w of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fShowError :: GHC.Show.Show Language.Fixpoint.Types.Errors.Error
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error
-                  Language.Fixpoint.Types.Errors.$fShowError_$cshowsPrec
-                  Language.Fixpoint.Types.Errors.$fExceptionError_$cshow
-                  Language.Fixpoint.Types.Errors.$fShowError_$cshowList -}
-af80a035f9731b203491b28daa7a8cc7
-  $fShowError1 :: GHC.Show.Show Language.Fixpoint.Types.Errors.Error1
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.Error1
-                  Language.Fixpoint.Types.Errors.$fShowError1_$cshowsPrec
-                  Language.Fixpoint.Types.Errors.$fShowError1_$cshow
-                  Language.Fixpoint.Types.Errors.$fShowError1_$cshowList -}
-af80a035f9731b203491b28daa7a8cc7
-  $fShowError1_$cshow ::
-    Language.Fixpoint.Types.Errors.Error1 -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Errors.Error1) ->
-                 Language.Fixpoint.Types.Errors.$fShowError1_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fShowError1_$cshowList ::
-    [Language.Fixpoint.Types.Errors.Error1] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Errors.Error1
-                   Language.Fixpoint.Types.Errors.$fExceptionError1) -}
-af80a035f9731b203491b28daa7a8cc7
-  $fShowError1_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Errors.Error1 -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S,1*U(1*U(U(1*U,U,U),U(1*U,U,U)),1*U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error1)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Errors.Error1 ww3 ww4 ->
-                 Language.Fixpoint.Types.Errors.$w$cshowsPrec ww1 ww3 ww4 w2 } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fShowError2 ::
-    Language.Fixpoint.Types.Errors.Error -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Errors.Error)
-                   (w1 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Errors.$w$cshowsPrec1 0# w w1) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fShowError_$cshowList ::
-    [Language.Fixpoint.Types.Errors.Error] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Errors.Error
-                   Language.Fixpoint.Types.Errors.$fShowError2) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $fShowError_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Errors.Error -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><L,1*U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Errors.Error)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Errors.$w$cshowsPrec1 ww1 w1 w2 }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fShowFixResult ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Errors.FixResult a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(A,A,C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Types.Errors.FixResult a)
-                  (Language.Fixpoint.Types.Errors.$fShowFixResult_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Errors.$fShowFixResult_$cshow @ a $dShow)
-                  (Language.Fixpoint.Types.Errors.$fShowFixResult_$cshowList
-                     @ a
-                     $dShow) -}
-f182f57f36993ba944b5c9344b61d9c3
-  $fShowFixResult1 :: GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Errors.$fExceptionFixResult3) -}
-a556674ba9dc3a88286702fb5c6b0c83
-  $fShowFixResult2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.Base.++
-                   @ GHC.Types.Char
-                   Language.Fixpoint.Types.Errors.$fExceptionFixResult3
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fShowFixResult_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Errors.FixResult a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(A,A,1*C1(C1(U)))><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Errors.Crash b1 b2
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionFixResult5
-                        (GHC.Show.showList
-                           @ a
-                           $dShow
-                           b1
-                           (GHC.Types.:
-                              @ GHC.Types.Char
-                              GHC.Show.showSpace1
-                              (GHC.Types.:
-                                 @ GHC.Types.Char
-                                 GHC.Show.shows6
-                                 (GHC.Show.showLitString
-                                    b2
-                                    Language.Fixpoint.Types.Errors.$fExceptionFixResult4))))
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fShowFixResult2
-                   Language.Fixpoint.Types.Errors.Unsafe b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionFixResult2
-                        (GHC.Show.showList
-                           @ a
-                           $dShow
-                           b1
-                           (GHC.Types.[] @ GHC.Types.Char)) }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fShowFixResult_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Types.Errors.FixResult a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(A,A,C(U))><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Types.Errors.FixResult a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Errors.FixResult a)
-                   (Language.Fixpoint.Types.Errors.$fShowFixResult_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Types.Errors.$fDataFixResult3)
-                   eta
-                   eta1) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fShowFixResult_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Errors.FixResult a -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(A,A,1*C1(U))><L,1*U(U)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (a1 :: GHC.Types.Int)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash b1 b2
-                   -> case a1 of wild1 { GHC.Types.I# x ->
-                      let {
-                        f :: GHC.Base.String -> GHC.Base.String
-                        = GHC.Show.showList @ a $dShow b1
-                      } in
-                      let {
-                        p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,U> -}
-                        = \ (x1 :: GHC.Base.String) ->
-                          GHC.Base.++
-                            @ GHC.Types.Char
-                            Language.Fixpoint.Types.Errors.$fExceptionFixResult5
-                            (f (GHC.Types.:
-                                  @ GHC.Types.Char
-                                  GHC.Show.showSpace1
-                                  (GHC.Types.:
-                                     @ GHC.Types.Char
-                                     GHC.Show.shows6
-                                     (GHC.Show.showLitString
-                                        b2
-                                        (GHC.Types.: @ GHC.Types.Char GHC.Show.shows6 x1)))))
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False -> p
-                        GHC.Types.True
-                        -> \ (x1 :: GHC.Base.String) ->
-                           GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x1)) } }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.$fShowFixResult1
-                   Language.Fixpoint.Types.Errors.Unsafe b1
-                   -> case a1 of wild1 { GHC.Types.I# x ->
-                      let {
-                        g :: GHC.Base.String -> GHC.Base.String
-                        = GHC.Show.showList @ a $dShow b1
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> \ (x1 :: GHC.Base.String) ->
-                           GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Types.Errors.$fExceptionFixResult2
-                             (g x1)
-                        GHC.Types.True
-                        -> \ (x1 :: GHC.Base.String) ->
-                           GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Errors.$fExceptionFixResult2
-                                (g (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x1))) } } }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fTraversableFixResult ::
-    Data.Traversable.Traversable
-      Language.Fixpoint.Types.Errors.FixResult
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Errors.FixResult
-                  Language.Fixpoint.Types.Errors.$fFunctorFixResult
-                  Language.Fixpoint.Types.Errors.$fFoldableFixResult
-                  Language.Fixpoint.Types.Errors.$fTraversableFixResult_$ctraverse
-                  Language.Fixpoint.Types.Errors.$fTraversableFixResult_$csequenceA
-                  Language.Fixpoint.Types.Errors.$fTraversableFixResult_$cmapM
-                  Language.Fixpoint.Types.Errors.$fTraversableFixResult_$csequence -}
-bbcb7910102e76dd87f9706483b3612e
-  $fTraversableFixResult_$cmapM ::
-    GHC.Base.Monad m =>
-    (a -> m b)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> m (Language.Fixpoint.Types.Errors.FixResult b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(SLLLL),1*U(1*U(U(U,U),1*C1(U),C(C1(U)),A,A),A,A,A,A)><L,C(U)><S,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: a -> m b)
-                   (eta1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 Language.Fixpoint.Types.Errors.$fTraversableFixResult_$ctraverse
-                   @ m
-                   @ a
-                   @ b
-                   (GHC.Base.$p1Monad @ m $dMonad)
-                   eta
-                   eta1) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fTraversableFixResult_$csequence ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Errors.FixResult (m a)
-    -> m (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLLLL),1*U(1*U(U(U,U),1*C1(U),C(C1(U)),A,A),A,A,A,A)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult (m a)) ->
-                 Language.Fixpoint.Types.Errors.$fTraversableFixResult_$ctraverse
-                   @ m
-                   @ (m a)
-                   @ a
-                   (GHC.Base.$p1Monad @ m $dMonad)
-                   (GHC.Base.id @ (m a))
-                   eta) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fTraversableFixResult_$csequenceA ::
-    GHC.Base.Applicative f =>
-    Language.Fixpoint.Types.Errors.FixResult (f a)
-    -> f (Language.Fixpoint.Types.Errors.FixResult a)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,U(U(U,U),C(U),C(C1(U)),A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   ($dApplicative :: GHC.Base.Applicative f)
-                   (eta :: Language.Fixpoint.Types.Errors.FixResult (f a)) ->
-                 Language.Fixpoint.Types.Errors.$fTraversableFixResult_$ctraverse
-                   @ f
-                   @ (f a)
-                   @ a
-                   $dApplicative
-                   (GHC.Base.id @ (f a))
-                   eta) -}
-bbcb7910102e76dd87f9706483b3612e
-  $fTraversableFixResult_$ctraverse ::
-    GHC.Base.Applicative f =>
-    (a -> f b)
-    -> Language.Fixpoint.Types.Errors.FixResult a
-    -> f (Language.Fixpoint.Types.Errors.FixResult b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S,U(U(U,U),1*C1(U),C(C1(U)),A,A)><L,C(U)><S,1*U>,
-     Unfolding: (\ @ (f :: * -> *)
-                   @ a
-                   @ b
-                   ($dApplicative :: GHC.Base.Applicative f)
-                   (eta :: a -> f b)
-                   (eta1 :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case eta1 of wild {
-                   Language.Fixpoint.Types.Errors.Crash a1 a2
-                   -> GHC.Base.fmap
-                        @ f
-                        (GHC.Base.$p1Applicative @ f $dApplicative)
-                        @ [b]
-                        @ (Language.Fixpoint.Types.Errors.FixResult b)
-                        (\ (b1 :: [b]) -> Language.Fixpoint.Types.Errors.Crash @ b b1 a2)
-                        (let {
-                           $dFunctor :: GHC.Base.Functor f
-                           = GHC.Base.$p1Applicative @ f $dApplicative
-                         } in
-                         let {
-                           z :: f [b]
-                           = GHC.Base.pure @ f $dApplicative @ [b] (GHC.Types.[] @ b)
-                         } in
-                         letrec {
-                           go :: [a] -> f [b] {- Arity: 1, Strictness: <S,1*U> -}
-                           = \ (ds :: [a]) ->
-                             case ds of wild1 {
-                               [] -> z
-                               : y ys
-                               -> GHC.Base.<*>
-                                    @ f
-                                    $dApplicative
-                                    @ [b]
-                                    @ [b]
-                                    (GHC.Base.fmap
-                                       @ f
-                                       $dFunctor
-                                       @ b
-                                       @ ([b] -> [b])
-                                       (GHC.Types.: @ b)
-                                       (eta y))
-                                    (go ys) }
-                         } in
-                         go a1)
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> GHC.Base.pure
-                        @ f
-                        $dApplicative
-                        @ (Language.Fixpoint.Types.Errors.FixResult b)
-                        (Language.Fixpoint.Types.Errors.Safe @ b)
-                   Language.Fixpoint.Types.Errors.Unsafe a1
-                   -> GHC.Base.fmap
-                        @ f
-                        (GHC.Base.$p1Applicative @ f $dApplicative)
-                        @ [b]
-                        @ (Language.Fixpoint.Types.Errors.FixResult b)
-                        (Language.Fixpoint.Types.Errors.$WUnsafe @ b)
-                        (let {
-                           $dFunctor :: GHC.Base.Functor f
-                           = GHC.Base.$p1Applicative @ f $dApplicative
-                         } in
-                         let {
-                           z :: f [b]
-                           = GHC.Base.pure @ f $dApplicative @ [b] (GHC.Types.[] @ b)
-                         } in
-                         letrec {
-                           go :: [a] -> f [b] {- Arity: 1, Strictness: <S,1*U> -}
-                           = \ (ds :: [a]) ->
-                             case ds of wild1 {
-                               [] -> z
-                               : y ys
-                               -> GHC.Base.<*>
-                                    @ f
-                                    $dApplicative
-                                    @ [b]
-                                    @ [b]
-                                    (GHC.Base.fmap
-                                       @ f
-                                       $dFunctor
-                                       @ b
-                                       @ ([b] -> [b])
-                                       (GHC.Types.: @ b)
-                                       (eta y))
-                                    (go ys) }
-                         } in
-                         go a1) }) -}
-b5cc72f656122ff5315a22b36f7b0b42
-  $t1UFU5oZ4U0l5IUwxNr3Y0y :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Errors.$fDataFixResult14
-                   Language.Fixpoint.Types.Errors.$fDataFixResult10) -}
-c2d087f7431537265c73652babb1aafd
-  $tc'Crash :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4844711504738049597##
-                   5524499073202752723##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tc'Crash1) -}
-876737dc3682efdc6f755b209351b8fe
-  $tc'Crash1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Crash"#) -}
-a919889b451ad8421a3d96d9bcafd8c2
-  $tc'Error :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2899795453813553520##
-                   1978355670435394513##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tc'Error2) -}
-778f48a5d1b12166503690f8afe296f8
-  $tc'Error1 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4114379777362511032##
-                   6441751259590954878##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tc'Error3) -}
-333b2198df46e314f72f2d31425bf19b
-  $tc'Error2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Error"#) -}
-a1cdaf1d4acf66cc2d8b9d2528c49d31
-  $tc'Error3 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Error1"#) -}
-14c0dc3fc86558a563ea5872b75aeb1c
-  $tc'Safe :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14226102180625162793##
-                   4599836222943054196##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tc'Safe1) -}
-c16dec169b25bc3049183f586b02f1e9
-  $tc'Safe1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Safe"#) -}
-4536afc837363b3de635e14ef1f39cb1
-  $tc'Unsafe :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10971340890455313828##
-                   6924385659345639542##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tc'Unsafe1) -}
-8000de9e607fe86c9eab5d8cc319f03c
-  $tc'Unsafe1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Unsafe"#) -}
-13d800464b3ec5340d4ca88a8226ebea
-  $tcError :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5573639981624302606##
-                   15596646033556386062##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tcError2) -}
-77757999522213990d482ccd7ed48465
-  $tcError1 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9143590400432396860##
-                   6696380685385156329##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tcError3) -}
-7a346f0f9fbcb237335410af48db86e7
-  $tcError2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Error"#) -}
-dfef48873986c537788b079463080979
-  $tcError3 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Error1"#) -}
-41d3893b27f66522c98d1c57190cc2cd
-  $tcFixResult :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5355333826724544256##
-                   5408947706589206649##
-                   Language.Fixpoint.Types.Errors.$trModule
-                   Language.Fixpoint.Types.Errors.$tcFixResult1) -}
-3001a32003d31362ee6885721d843f1c
-  $tcFixResult1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "FixResult"#) -}
-9d5c928897bd328a772dae834d22525f
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Errors.$trModule2
-                   Language.Fixpoint.Types.Errors.$trModule1) -}
-a38cc42aeb6930d93d7b9d2fa7e75e07
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Errors"#) -}
-3841ee7d5f28367324ae6f9c7dc5ba4b
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-a530112ca8aac5017f1c5d2fa6b555bb
-  $w$c/= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> GHC.Types.Bool
-  {- Arity: 14,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><L,1*U><S,1*U><L,U><L,U><L,1*U><L,U><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.PrettyPrint.HughesPJ.Doc)
-                   (ww7 :: Text.Parsec.Pos.SourceName)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: GHC.Prim.Int#)
-                   (ww10 :: Text.Parsec.Pos.SourceName)
-                   (ww11 :: GHC.Prim.Int#)
-                   (ww12 :: GHC.Prim.Int#)
-                   (ww13 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case GHC.Base.eqString ww ww7 of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww8) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww9) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Base.eqString ww3 ww10 of wild4 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww4 ww11) of wild5 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww12) of wild6 {
-                                            GHC.Types.False -> GHC.Types.True
-                                            GHC.Types.True
-                                            -> case Text.PrettyPrint.HughesPJ.$fEqDoc_$c==
-                                                      ww6
-                                                      ww13 of wild7 {
-                                                 GHC.Types.False -> GHC.Types.True
-                                                 GHC.Types.True -> GHC.Types.False } } } } } } }) -}
-e8903fca879977b81e7d412ae88bfeee
-  $w$c< ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww3 ww9 of wild7 {
-                                            GHC.Types.LT -> GHC.Types.True
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww4 ww10) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww4 ww10) of wild9 {
-                                                      GHC.Types.False -> GHC.Types.False
-                                                      GHC.Types.True
-                                                      -> GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.<# ww5 ww11) }
-                                                 GHC.Types.True -> GHC.Types.True }
-                                            GHC.Types.GT -> GHC.Types.False } }
-                                  GHC.Types.True -> GHC.Types.True } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-875905830e9b98f780a249f9994828b6
-  $w$c<= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww3 ww9 of wild7 {
-                                            GHC.Types.LT -> GHC.Types.True
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww4 ww10) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww4 ww10) of wild9 {
-                                                      GHC.Types.False -> GHC.Types.False
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<# ww5 ww11) of wild10 {
-                                                           GHC.Types.False
-                                                           -> GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.==# ww5 ww11)
-                                                           GHC.Types.True -> GHC.Types.True } }
-                                                 GHC.Types.True -> GHC.Types.True }
-                                            GHC.Types.GT -> GHC.Types.False } }
-                                  GHC.Types.True -> GHC.Types.True } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-f7f69c07c6259a3362ea751af2cc2cd8
-  $w$c== ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> GHC.Types.Bool
-  {- Arity: 14,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><L,1*U><S,1*U><L,U><L,U><L,1*U><L,U><L,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.PrettyPrint.HughesPJ.Doc)
-                   (ww7 :: Text.Parsec.Pos.SourceName)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: GHC.Prim.Int#)
-                   (ww10 :: Text.Parsec.Pos.SourceName)
-                   (ww11 :: GHC.Prim.Int#)
-                   (ww12 :: GHC.Prim.Int#)
-                   (ww13 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case GHC.Base.eqString ww ww7 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww8) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww9) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Base.eqString ww3 ww10 of wild4 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww4 ww11) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww12) of wild6 {
-                                            GHC.Types.False -> GHC.Types.False
-                                            GHC.Types.True
-                                            -> Text.PrettyPrint.HughesPJ.$fEqDoc_$c==
-                                                 ww6
-                                                 ww13 } } } } } }) -}
-d1658ccf8c0866cbd2f4e5adedeadc80
-  $w$c> ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww3 ww9 of wild7 {
-                                            GHC.Types.LT -> GHC.Types.False
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww4 ww10) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww4 ww10) of wild9 {
-                                                      GHC.Types.False -> GHC.Types.True
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<# ww5 ww11) of wild10 {
-                                                           GHC.Types.False
-                                                           -> case GHC.Prim.tagToEnum#
-                                                                     @ GHC.Types.Bool
-                                                                     (GHC.Prim.==#
-                                                                        ww5
-                                                                        ww11) of wild11 {
-                                                                GHC.Types.False -> GHC.Types.True
-                                                                GHC.Types.True -> GHC.Types.False }
-                                                           GHC.Types.True -> GHC.Types.False } }
-                                                 GHC.Types.True -> GHC.Types.False }
-                                            GHC.Types.GT -> GHC.Types.True } }
-                                  GHC.Types.True -> GHC.Types.False } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-58079dbc163858a89f1e49efade6f8b7
-  $w$c>= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww3 ww9 of wild7 {
-                                            GHC.Types.LT -> GHC.Types.False
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww4 ww10) of wild8 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww4 ww10) of wild9 {
-                                                      GHC.Types.False -> GHC.Types.True
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<# ww5 ww11) of wild10 {
-                                                           GHC.Types.False -> GHC.Types.True
-                                                           GHC.Types.True -> GHC.Types.False } }
-                                                 GHC.Types.True -> GHC.Types.False }
-                                            GHC.Types.GT -> GHC.Types.True } }
-                                  GHC.Types.True -> GHC.Types.False } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-bbcb7910102e76dd87f9706483b3612e
-  $w$cget ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Errors.FixResult a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Errors.FixResult a) r) ->
-                 Data.Binary.Generic.$w$cgget
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.S1
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.NoSourceStrictness
-                              'GHC.Generics.DecidedLazy)
-                           (GHC.Generics.Rec0 [a])
-                         GHC.Generics.:*: GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.Rec0 GHC.Base.String)))
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0 [a])))
-                   (\ @ word
-                      @ a1
-                      ($dOrd :: GHC.Classes.Ord word)
-                      ($dNum :: GHC.Num.Num word)[OneShot]
-                      ($dBits :: Data.Bits.Bits word)[OneShot]
-                      (eta :: word)[OneShot]
-                      (eta1 :: word)[OneShot]
-                      @ r1
-                      (eta2 :: Data.ByteString.Internal.ByteString)
-                      (eta3 :: Data.Binary.Get.Internal.Success
-                                 (GHC.Generics.M1
-                                    GHC.Generics.C
-                                    ('GHC.Generics.MetaCons
-                                       "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                    (GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 [a])
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Base.String))
-                                    a1)
-                                 r1) ->
-                    case eta2 of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Data.Binary.Class.$w$cget10
-                      @ a
-                      w
-                      @ r1
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i' :: Data.ByteString.Internal.ByteString)
-                         (a2 :: [a])[OneShot] ->
-                       case i' of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Data.Binary.Class.$w$cget10
-                         @ GHC.Types.Char
-                         Data.Binary.Class.$fBinaryChar
-                         @ r1
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                            (a3 :: [GHC.Types.Char])[OneShot] ->
-                          eta3
-                            i'1
-                            (GHC.Generics.:*:
-                               @ (GHC.Generics.M1
-                                    GHC.Generics.S
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [a]))
-                               @ (GHC.Generics.M1
-                                    GHC.Generics.S
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 GHC.Base.String))
-                               @ a1
-                               a2
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <a1>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1 GHC.Generics.R [a]>_R) <a1>_N))
-                               a3
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P <[GHC.Types.Char]>_R <a1>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R GHC.Base.String>_R) <a1>_N)))
-                              `cast`
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.C>_P
-                                      <'GHC.Generics.MetaCons
-                                         "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                      <GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy)
-                                         (GHC.Generics.Rec0 [a])
-                                       GHC.Generics.:*: GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.Rec0
-                                                             GHC.Base.String)>_R) <a1>_N)) }) })
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.NoSourceStrictness
-                                                'GHC.Generics.DecidedLazy)
-                                             (GHC.Generics.Rec0 [a])
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0 GHC.Base.String))
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.Rec0 [a])
-                                      GHC.Generics.:*: GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.Rec0 GHC.Base.String))>_N)))
-                   (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                      @ (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-                      @ (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 [a])))
-                      Language.Fixpoint.Types.Errors.$fBinaryFixResult2
-                        `cast`
-                      (Trans
-                           (forall (word :: <*>_N) (a1 :: <*>_N).
-                            <GHC.Classes.Ord word>_R
-                            ->_R <GHC.Num.Num word>_R
-                            ->_R <Data.Bits.Bits word>_R
-                            ->_R <word>_R
-                            ->_R <word>_R
-                            ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                          <GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                             a1>_R))
-                           (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                        GHC.Generics.U1>_N)))
-                      (\ @ word
-                         @ a1
-                         ($dOrd :: GHC.Classes.Ord word)
-                         ($dNum :: GHC.Num.Num word)[OneShot]
-                         ($dBits :: Data.Bits.Bits word)[OneShot]
-                         (eta :: word)[OneShot]
-                         (eta1 :: word)[OneShot]
-                         @ r1
-                         (eta2 :: Data.ByteString.Internal.ByteString)
-                         (eta3 :: Data.Binary.Get.Internal.Success
-                                    (GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.Rec0 [a]))
-                                       a1)
-                                    r1) ->
-                       case eta2 of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                       Data.Binary.Class.$w$cget10
-                         @ a
-                         w
-                         @ r1
-                         ww5
-                         ww6
-                         ww7
-                         ww8
-                         (\ (i' :: Data.ByteString.Internal.ByteString)
-                            (a2 :: [a])[OneShot] ->
-                          eta3
-                            i'
-                            a2
-                              `cast`
-                            (Trans
-                                 (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <[a]>_R <a1>_P))
-                                 (Trans
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1 GHC.Generics.R [a]>_R))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.C>_P
-                                                <'GHC.Generics.MetaCons
-                                                   "Unsafe"
-                                                   'GHC.Generics.PrefixI
-                                                   'GHC.Types.False>_P
-                                                <GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.Rec0 [a])>_R)) <a1>_N))) })
-                        `cast`
-                      (Trans
-                           (forall (word :: <*>_N) (a1 :: <*>_N).
-                            <GHC.Classes.Ord word>_R
-                            ->_R <GHC.Num.Num word>_R
-                            ->_R <Data.Bits.Bits word>_R
-                            ->_R <word>_R
-                            ->_R <word>_R
-                            ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                          <GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.Rec0 [a]))
-                                             a1>_R))
-                           (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.Rec0 [a]))>_N))))
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0 [a]))>_N))
-                   1##
-                   2##
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 [a])
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0 GHC.Base.String)))
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1
-                                GHC.Generics.:+: GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "Unsafe"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False)
-                                                   (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0 [a])))
-                               GHC.Prim.Any) ->
-                    w1
-                      i'
-                      (Language.Fixpoint.Types.Errors.$fBinaryFixResult_$cto
-                         @ a
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "FixResult"
-                                           "Language.Fixpoint.Types.Errors"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.C1
-                                           ('GHC.Generics.MetaCons
-                                              "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                           (GHC.Generics.S1
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy)
-                                              (GHC.Generics.Rec0 [a])
-                                            GHC.Generics.:*: GHC.Generics.S1
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.NoSourceStrictness
-                                                                  'GHC.Generics.DecidedLazy)
-                                                               (GHC.Generics.Rec0 GHC.Base.String))
-                                         GHC.Generics.:+: (GHC.Generics.C1
-                                                             ('GHC.Generics.MetaCons
-                                                                "Safe"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             GHC.Generics.U1
-                                                           GHC.Generics.:+: GHC.Generics.C1
-                                                                              ('GHC.Generics.MetaCons
-                                                                                 "Unsafe"
-                                                                                 'GHC.Generics.PrefixI
-                                                                                 'GHC.Types.False)
-                                                                              (GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    'GHC.Base.Nothing
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.SourceStrict
-                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    [a])))>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Errors.Rep_FixResult[0]
-                                             <a>_N))) <GHC.Prim.Any>_N)))) -}
-40f272afd1790af12d0e19713ca3b9a4
-  $w$cget1 ::
-    Data.Serialize.Serialize a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a) r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 9,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0] -}
-6f31163ce8f17542ca321a9bbe10e458
-  $w$cget2 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success Text.PrettyPrint.HughesPJ.Doc r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Serialize.Get.Buffer)
-                   (w1 :: Data.Serialize.Get.More)
-                   (w2 :: Data.Serialize.Get.Failure r)
-                   (w3 :: Data.Serialize.Get.Success
-                            Text.PrettyPrint.HughesPJ.Doc r) ->
-                 Language.Fixpoint.Types.Errors.$w$s$cget1
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   w
-                   w1
-                   w2
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)[OneShot]
-                      (m1 :: Data.Serialize.Get.More)[OneShot]
-                      (a1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ())[OneShot] ->
-                    w3
-                      s1
-                      b1
-                      m1
-                      a1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])))) -}
-ca27f05e77ab6771ebecc372ea1a3d39
-  $w$cget3 ::
-    Data.Serialize.Serialize a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Text.PrettyPrint.Annotated.HughesPJ.Doc a) r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 9,
-     Strictness: <L,U(A,C(C1(C1(C1(C1(U))))))><L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0] -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $w$cget4 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Errors.Error r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <S,U><L,U><S,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Serialize.Get.Buffer)
-                   (w1 :: Data.Serialize.Get.More)
-                   (w2 :: Data.Serialize.Get.Failure r)
-                   (w3 :: Data.Serialize.Get.Success
-                            Language.Fixpoint.Types.Errors.Error r) ->
-                 Data.Serialize.Get.$wgetListOf
-                   @ Language.Fixpoint.Types.Errors.Error1
-                   Language.Fixpoint.Types.Errors.$fSerializeError3
-                     `cast`
-                   (Sym (Data.Serialize.Get.N:Get[0]
-                             <Language.Fixpoint.Types.Errors.Error1>_R))
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   w
-                   w1
-                   w2
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)[OneShot]
-                      (m1 :: Data.Serialize.Get.More)[OneShot]
-                      (a1 :: [Language.Fixpoint.Types.Errors.Error1])[OneShot] ->
-                    w3
-                      s1
-                      b1
-                      m1
-                      a1 `cast` (Sym (Language.Fixpoint.Types.Errors.N:Error[0])))) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $w$cget5 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Language.Fixpoint.Types.Errors.FixResult
-            Language.Fixpoint.Types.Errors.Error)
-         r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0] -}
-bf7f09930c61325f8a9d5ad94bfbdf00
-  $w$cget6 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Text.PrettyPrint.Annotated.HughesPJ.TextDetails r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Serialize.Get.Buffer)
-                   (w1 :: Data.Serialize.Get.More)
-                   (w2 :: Data.Serialize.Get.Failure r)
-                   (w3 :: Data.Serialize.Get.Success
-                            Text.PrettyPrint.Annotated.HughesPJ.TextDetails r) ->
-                 Language.Fixpoint.Types.Errors.$w$dGSerializeGet
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   w
-                   w1
-                   w2
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)
-                      (m1 :: Data.Serialize.Get.More)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.SourceUnpack
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedUnpack)
-                                     (GHC.Generics.Rec0 GHC.Types.Char)))
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 GHC.Base.String))
-                                GHC.Generics.:+: GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                   (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0 GHC.Base.String)))
-                               GHC.Prim.Any) ->
-                    w3
-                      s1
-                      b1
-                      m1
-                      (Text.PrettyPrint.Annotated.HughesPJ.$fGenericTextDetails_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "TextDetails"
-                                           "Text.PrettyPrint.Annotated.HughesPJ"
-                                           "pretty-1.1.3.3"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.C1
-                                           ('GHC.Generics.MetaCons
-                                              "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                           (GHC.Generics.S1
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.SourceUnpack
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedUnpack)
-                                              (GHC.Generics.Rec0 GHC.Types.Char))
-                                         GHC.Generics.:+: (GHC.Generics.C1
-                                                             ('GHC.Generics.MetaCons
-                                                                "Str"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             (GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0 GHC.Base.String))
-                                                           GHC.Generics.:+: GHC.Generics.C1
-                                                                              ('GHC.Generics.MetaCons
-                                                                                 "PStr"
-                                                                                 'GHC.Generics.PrefixI
-                                                                                 'GHC.Types.False)
-                                                                              (GHC.Generics.S1
-                                                                                 ('GHC.Generics.MetaSel
-                                                                                    'GHC.Base.Nothing
-                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                    'GHC.Generics.NoSourceStrictness
-                                                                                    'GHC.Generics.DecidedLazy)
-                                                                                 (GHC.Generics.Rec0
-                                                                                    GHC.Base.String)))>_R))
-                              (Sub (Sym (Text.PrettyPrint.Annotated.HughesPJ.Rep_TextDetails[0]))) <GHC.Prim.Any>_N)))) -}
-eccf0d11dab53e14ad7088ba3eb34c6e
-  $w$cpprintTidy ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,U(U(U,U,U),U(U,U,U))><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (ww1 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wmkNest
-                        @ ()
-                        2#
-                        (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc
-                           @ ()
-                           ww1 `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Errors.$fFixpointError2
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Spans.$wppSrcSpan
-                                  ww of ww2 { (#,#) ww3 ww4 ->
-                           (Text.PrettyPrint.Annotated.HughesPJ.Above
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                                 GHC.Types.False
-                                 wild1)
-                              GHC.Types.True
-                              wild)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case Language.Fixpoint.Types.Spans.$wppSrcSpan
-                                  ww of ww2 { (#,#) ww3 ww4 ->
-                           (Text.PrettyPrint.Annotated.HughesPJ.Above
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                              GHC.Types.True
-                              wild)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.Errors.$fFixpointError2
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Spans.$wppSrcSpan
-                                  ww of ww2 { (#,#) ww3 ww4 ->
-                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                              GHC.Types.False
-                              wild1)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.Spans.ppSrcSpan ww } }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $w$cpprintTidy1 ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Errors.Error) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Language.Fixpoint.Types.Errors.$fPPrintError_go
-                              w `cast`
-                              (Language.Fixpoint.Types.Errors.N:Error[0]))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-b6f5a3863f0a7eaa268353f6784521f1
-  $w$cput ::
-    Data.Serialize.Serialize a =>
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U(U,U)),A)><S,1*U>,
-     Inline: [0] -}
-059ff5645f73e47894180fc7397f1fb8
-  $w$cput1 ::
-    Data.Serialize.Serialize a =>
-    Text.PrettyPrint.Annotated.HughesPJ.Doc a
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,U(C(U(U,U)),A)><S,1*U>, Inline: [0] -}
-0dc8009a8a76952b64f64bd490a0b23d
-  $w$cput2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails) ->
-                 case w of wild {
-                   Text.PrettyPrint.Annotated.HughesPJ.Chr dt1
-                   -> Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                        @ GHC.Prim.Any
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Char)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Base.String))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R GHC.Base.String)))
-                           @ GHC.Prim.Any
-                           (GHC.Types.C# dt1)
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P <GHC.Types.Char>_R <GHC.Prim.Any>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.SourceUnpack
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack>_P
-                                               <GHC.Generics.K1 GHC.Generics.R GHC.Types.Char>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.SourceUnpack
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     GHC.Types.Char)>_R)) <GHC.Prim.Any>_N)))
-                   Text.PrettyPrint.Annotated.HughesPJ.Str g1
-                   -> Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                        @ GHC.Prim.Any
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Char)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Base.String))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R GHC.Base.String)))
-                           @ GHC.Prim.Any
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                              @ GHC.Prim.Any
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <GHC.Base.String>_R
-                                             <GHC.Prim.Any>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R GHC.Base.String>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "Str" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        GHC.Base.String)>_R)) <GHC.Prim.Any>_N))))
-                   Text.PrettyPrint.Annotated.HughesPJ.PStr g1
-                   -> Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                        @ GHC.Prim.Any
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Char)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Base.String))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R GHC.Base.String)))
-                           @ GHC.Prim.Any
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Base.String)))
-                              @ GHC.Prim.Any
-                              g1
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P
-                                             <GHC.Base.String>_R
-                                             <GHC.Prim.Any>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R GHC.Base.String>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "PStr"
-                                                     'GHC.Generics.PrefixI
-                                                     'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        GHC.Base.String)>_R)) <GHC.Prim.Any>_N)))) }) -}
-26f8e3eef9c2b31fba66384f71171166
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 4,
-     Strictness: <S,U><L,1*U(U(1*U,U,U),U(1*U,U,U))><L,1*U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (ww2 :: Text.PrettyPrint.HughesPJ.Doc)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   g :: GHC.Base.String -> GHC.Base.String
-                     {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Errors.$fExceptionError6
-                       (case ww1 of ww3 { Language.Fixpoint.Types.Spans.SS ww4 ww5 ->
-                        case ww4 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                        case ww5 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                        Language.Fixpoint.Types.Spans.$w$cshowsPrec
-                          0#
-                          ww7
-                          ww8
-                          ww9
-                          ww11
-                          ww12
-                          ww13
-                          (GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Types.Errors.$fExceptionError5
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Errors.$fExceptionError4
-                                (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                                   @ ()
-                                   @ GHC.Base.String
-                                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                                   Text.PrettyPrint.HughesPJ.$fEqDoc1
-                                   (GHC.Base.++
-                                      @ GHC.Types.Char
-                                      Language.Fixpoint.Types.Errors.$fExceptionError3
-                                      x)
-                                   ww2 `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])))) } } })
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionError2
-                        (g w)
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Types.Errors.$fExceptionError2
-                           (g (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w))) }) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Errors.Error
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 3, Strictness: <S,U><L,1*U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Errors.Error)
-                   (w1 :: GHC.Base.String) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionError7
-                        (GHC.Show.showList__
-                           @ Language.Fixpoint.Types.Errors.Error1
-                           Language.Fixpoint.Types.Errors.$fExceptionError1
-                           w `cast` (Language.Fixpoint.Types.Errors.N:Error[0])
-                           w1)
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Types.Errors.$fExceptionError7
-                           (GHC.Show.showList__
-                              @ Language.Fixpoint.Types.Errors.Error1
-                              Language.Fixpoint.Types.Errors.$fExceptionError1
-                              w `cast` (Language.Fixpoint.Types.Errors.N:Error[0])
-                              (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w1))) }) -}
-61495745d3cea03b294d8b288c004c7b
-  $w$dGSerializeGet ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.SourceUnpack
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 GHC.Types.Char)))
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 GHC.Base.String))
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Base.String)))
-            a1)
-         r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8, Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-a3b5a965c928e27394f77e9dcf74f239
-  $w$dGSerializePut ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Chr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.SourceUnpack
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.Rec0 GHC.Types.Char)))
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Str" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 GHC.Base.String))
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "PStr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 GHC.Base.String)))
-      a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-8043e2c0ff58ec43aca7e3a21ec5df72
-  $w$dGSerializePut1 ::
-    GHC.Generics.S1
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "errLoc")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.NoSourceStrictness
-         'GHC.Generics.DecidedLazy)
-      (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-      a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "errMsg")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc)
-         a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,1*U(U(U,U,U),U(U,U,U))><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "errLoc")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                            a1)
-                   (ww1 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "errMsg")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc)
-                             a1) ->
-                 let {
-                   ds1 :: Data.Serialize.Put.Put
-                   = case Language.Fixpoint.Types.Errors.$wlvl2
-                            @ GHC.Prim.Any
-                            (Text.PrettyPrint.Annotated.HughesPJ.$fGenericDoc1
-                               @ ()
-                               @ GHC.Prim.Any
-                               ww1
-                                 `cast`
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "errMsg")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R Text.PrettyPrint.HughesPJ.Doc>_R <a1>_N)
-                                    (Trans
-                                         (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Text.PrettyPrint.HughesPJ.Doc>_R
-                                              <a1>_P)
-                                         (Text.PrettyPrint.HughesPJ.N:Doc[0])))) of ww2 { (#,#) ww3 ww4 ->
-                     (Data.Serialize.Put.PairS @ () ww3 ww4)
-                       `cast`
-                     (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }
-                 } in
-                 (# case ds1
-                           `cast`
-                         (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                    b2 },
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case ww
-                               `cast`
-                             (Trans
-                                  (GHC.Generics.N:M1[0]
-                                       <GHC.Generics.S>_P
-                                       <'GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "errLoc")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy>_P
-                                       <GHC.Generics.K1
-                                          GHC.Generics.R
-                                          Language.Fixpoint.Types.Spans.SrcSpan>_R <a1>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Spans.SrcSpan>_R
-                                       <a1>_P)) of wild { Language.Fixpoint.Types.Spans.SS g1 g2 ->
-                        case Language.Fixpoint.Types.Spans.$w$dGSerializePut
-                               @ GHC.Prim.Any
-                               g1
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Text.Parsec.Pos.SourcePos>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "sp_start")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Text.Parsec.Pos.SourcePos>_R) <GHC.Prim.Any>_N))
-                               g2
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P
-                                              <Text.Parsec.Pos.SourcePos>_R
-                                              <GHC.Prim.Any>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "sp_stop")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 Text.Parsec.Pos.SourcePos>_R) <GHC.Prim.Any>_N)) of ww3 { (#,#) ww4 ww5 ->
-                        ww5 } }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (case ds1
-                               `cast`
-                             (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                        w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta }))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-d0173fd74c0fa26b5149cb3e367aede0
-  $w$dGSerializePut2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 GHC.Base.String)))
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])))
-      a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (w :: (GHC.Generics.:+:)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 GHC.Base.String)))
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "Unsafe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     [Language.Fixpoint.Types.Errors.Error])))
-                           a1) ->
-                 case w of wild2 {
-                   GHC.Generics.L1 x
-                   -> let {
-                        ds :: Data.Serialize.Put.PairS ()
-                        = case x `cast`
-                               (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.C>_P
-                                    <'GHC.Generics.MetaCons
-                                       "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                    <GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          'GHC.Base.Nothing
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error])
-                                     GHC.Generics.:*: GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0
-                                                           GHC.Base.String)>_R <a1>_N) of wild { GHC.Generics.:*: a2 b1 ->
-                          let {
-                            ds1 :: Data.Serialize.Put.Put
-                            = case Data.Serialize.$w$cput28
-                                     @ GHC.Types.Char
-                                     Data.Serialize.$fSerializeChar
-                                     b1
-                                       `cast`
-                                     (Trans
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R GHC.Base.String>_R <a1>_N)
-                                          (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <[GHC.Types.Char]>_R
-                                               <a1>_P)) of ww { (#,#) ww1 ww2 ->
-                              (Data.Serialize.Put.PairS @ () ww1 ww2)
-                                `cast`
-                              (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }
-                          } in
-                          Data.Serialize.Put.PairS
-                            @ ()
-                            (case ds1
-                                    `cast`
-                                  (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                             b2 })
-                            (let {
-                               ds2 :: Data.ByteString.Builder.Internal.Builder
-                               = case Data.Serialize.$w$cput28
-                                        @ Language.Fixpoint.Types.Errors.Error
-                                        Language.Fixpoint.Types.Errors.$fSerializeError
-                                        a2
-                                          `cast`
-                                        (Trans
-                                             (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy>_P
-                                                  <GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     [Language.Fixpoint.Types.Errors.Error]>_R <a1>_N)
-                                             (GHC.Generics.N:K1[0]
-                                                  <GHC.Generics.R>_P
-                                                  <[Language.Fixpoint.Types.Errors.Error]>_R
-                                                  <a1>_P)) of ww { (#,#) ww1 ww2 ->
-                                 ww2 }
-                             } in
-                             (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                              ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                @ r
-                                (case ds1
-                                        `cast`
-                                      (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                                 w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                   @ r
-                                   eta }))
-                               `cast`
-                             (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) }
-                      } in
-                      (# case ds of wild { Data.Serialize.Put.PairS b1 w' -> b1 },
-                         (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                          let {
-                            eta1 :: Data.ByteString.Builder.Internal.BuildStep r
-                            = case ds of wild { Data.Serialize.Put.PairS b1 w' ->
-                              w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0]) @ r eta }
-                          } in
-                          let {
-                            lvl23 :: Data.ByteString.Builder.Internal.BufferRange
-                                     -> GHC.Prim.State# GHC.Prim.RealWorld
-                                     -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                                           Data.ByteString.Builder.Internal.BuildSignal r #)
-                              {- Arity: 2 -}
-                            = \ (ds1 :: Data.ByteString.Builder.Internal.BufferRange)
-                                (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                              case ds1 of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                              case GHC.Prim.writeWord8OffAddr#
-                                     @ GHC.Prim.RealWorld
-                                     dt3
-                                     0#
-                                     0##
-                                     eta3 of s2 { DEFAULT ->
-                              (eta1
-                                 (Data.ByteString.Builder.Internal.BufferRange
-                                    (GHC.Prim.plusAddr# dt3 1#)
-                                    dt4))
-                                `cast`
-                              (GHC.Types.N:IO[0]
-                                   <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                s2 } }
-                          } in
-                          \ (eta2 :: Data.ByteString.Builder.Internal.BufferRange)
-                            (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                          case eta2 of wild { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild1 {
-                            GHC.Types.False
-                            -> case GHC.Prim.writeWord8OffAddr#
-                                      @ GHC.Prim.RealWorld
-                                      dt
-                                      0#
-                                      0##
-                                      eta3 of s2 { DEFAULT ->
-                               (eta1
-                                  (Data.ByteString.Builder.Internal.BufferRange
-                                     (GHC.Prim.plusAddr# dt 1#)
-                                     dt1))
-                                 `cast`
-                               (GHC.Types.N:IO[0]
-                                    <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                 s2 }
-                            GHC.Types.True
-                            -> (# eta3,
-                                  Data.ByteString.Builder.Internal.BufferFull
-                                    @ r
-                                    1#
-                                    dt
-                                    lvl23
-                                      `cast`
-                                    (<Data.ByteString.Builder.Internal.BufferRange>_R
-                                     ->_R Sym (GHC.Types.N:IO[0]
-                                                   <Data.ByteString.Builder.Internal.BuildSignal
-                                                      r>_R)) #) } })
-                           `cast`
-                         (Trans
-                              (forall (r :: <*>_N).
-                               <Data.ByteString.Builder.Internal.BuildStep r>_R
-                               ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                               ->_R Sym (GHC.Types.N:IO[0]
-                                             <Data.ByteString.Builder.Internal.BuildSignal r>_R))
-                              (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #)
-                   GHC.Generics.R1 x
-                   -> case x of wild {
-                        GHC.Generics.L1 x1
-                        -> (# GHC.Tuple.(),
-                              Language.Fixpoint.Types.Errors.$fSerializeFixResult4
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #)
-                        GHC.Generics.R1 x1
-                        -> let {
-                             ds :: Data.Serialize.Put.Put
-                             = case Data.Serialize.$w$cput28
-                                      @ Language.Fixpoint.Types.Errors.Error
-                                      Language.Fixpoint.Types.Errors.$fSerializeError
-                                      x1
-                                        `cast`
-                                      (Trans
-                                           (Trans
-                                                (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "Unsafe"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.Rec0
-                                                           [Language.Fixpoint.Types.Errors.Error])>_R)
-                                                (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        [Language.Fixpoint.Types.Errors.Error]>_R) <a1>_N)
-                                           (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <[Language.Fixpoint.Types.Errors.Error]>_R
-                                                <a1>_P)) of ww { (#,#) ww1 ww2 ->
-                               (Data.Serialize.Put.PairS @ () ww1 ww2)
-                                 `cast`
-                               (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }
-                           } in
-                           (# case ds
-                                     `cast`
-                                   (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b1 w' ->
-                              b1 },
-                              (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                               let {
-                                 eta1 :: Data.ByteString.Builder.Internal.BuildStep r
-                                 = case ds
-                                          `cast`
-                                        (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b1 w' ->
-                                   w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                     @ r
-                                     eta }
-                               } in
-                               let {
-                                 lvl23 :: Data.ByteString.Builder.Internal.BufferRange
-                                          -> GHC.Prim.State# GHC.Prim.RealWorld
-                                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                                                Data.ByteString.Builder.Internal.BuildSignal r #)
-                                   {- Arity: 2 -}
-                                 = \ (ds1 :: Data.ByteString.Builder.Internal.BufferRange)
-                                     (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                                   case ds1 of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                                   case GHC.Prim.writeWord8OffAddr#
-                                          @ GHC.Prim.RealWorld
-                                          dt3
-                                          0#
-                                          2##
-                                          eta3 of s2 { DEFAULT ->
-                                   (eta1
-                                      (Data.ByteString.Builder.Internal.BufferRange
-                                         (GHC.Prim.plusAddr# dt3 1#)
-                                         dt4))
-                                     `cast`
-                                   (GHC.Types.N:IO[0]
-                                        <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                     s2 } }
-                               } in
-                               \ (eta2 :: Data.ByteString.Builder.Internal.BufferRange)
-                                 (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                               case eta2 of wild1 { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild3 {
-                                 GHC.Types.False
-                                 -> case GHC.Prim.writeWord8OffAddr#
-                                           @ GHC.Prim.RealWorld
-                                           dt
-                                           0#
-                                           2##
-                                           eta3 of s2 { DEFAULT ->
-                                    (eta1
-                                       (Data.ByteString.Builder.Internal.BufferRange
-                                          (GHC.Prim.plusAddr# dt 1#)
-                                          dt1))
-                                      `cast`
-                                    (GHC.Types.N:IO[0]
-                                         <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                      s2 }
-                                 GHC.Types.True
-                                 -> (# eta3,
-                                       Data.ByteString.Builder.Internal.BufferFull
-                                         @ r
-                                         1#
-                                         dt
-                                         lvl23
-                                           `cast`
-                                         (<Data.ByteString.Builder.Internal.BufferRange>_R
-                                          ->_R Sym (GHC.Types.N:IO[0]
-                                                        <Data.ByteString.Builder.Internal.BuildSignal
-                                                           r>_R)) #) } })
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #) } }) -}
-75f8d3ade6fb523231f945e171d04277
-  $w$s$cget1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         (Text.PrettyPrint.Annotated.HughesPJ.Doc ()) r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8,
-     Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Inline: [0] -}
-fe6e5aad05978433bf8f5711d14af3c1
-  $werrFreeVarInConstraint ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Integer.Type.Integer
-    -> a
-    -> (# Language.Fixpoint.Types.Errors.Error1,
-          [Language.Fixpoint.Types.Errors.Error1] #)
-  {- Arity: 3, Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ww :: GHC.Integer.Type.Integer)
-                   (ww1 :: a) ->
-                 (# Language.Fixpoint.Types.Errors.Error1
-                      Language.Fixpoint.Types.Spans.dummySpan
-                      (case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                 @ ()
-                                 (GHC.Types.:
-                                    @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                    Language.Fixpoint.Types.Errors.errFreeVarInConstraint4
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                    (GHC.Types.:
-                                       @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                       (Text.PrettyPrint.HughesPJ.integer ww)
-                                         `cast`
-                                       (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                       (GHC.Types.:
-                                          @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                             @ a
-                                             w
-                                             Language.Fixpoint.Types.PrettyPrint.pprint1
-                                             Language.Fixpoint.Types.PrettyPrint.Full
-                                             ww1)
-                                            `cast`
-                                          (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                          Language.Fixpoint.Types.Errors.errFreeVarInConstraint1)))) of ww2 { (#,#) ww3 ww4 ->
-                       ww4 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }),
-                    GHC.Types.[] @ Language.Fixpoint.Types.Errors.Error1 #)) -}
-07736d282eba2aa7a16fc35b0791b735
-  $werrFreeVarInQual ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint q,
-     Language.Fixpoint.Types.Spans.Loc q,
-     Language.Fixpoint.Types.PrettyPrint.PPrint x) =>
-    q
-    -> x
-    -> (# Language.Fixpoint.Types.Errors.Error1,
-          [Language.Fixpoint.Types.Errors.Error1] #)
-  {- Arity: 5,
-     Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,1*C1(U)><L,1*U(A,1*C1(C1(C1(U))))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ q
-                   @ x
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint q)
-                   (w1 :: Language.Fixpoint.Types.Spans.Loc q)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.PPrint x)
-                   (w3 :: q)
-                   (w4 :: x) ->
-                 (# Language.Fixpoint.Types.Errors.Error1
-                      (w1 `cast` (Language.Fixpoint.Types.Spans.N:Loc[0] <q>_N) w3)
-                      (case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                 @ ()
-                                 (GHC.Types.:
-                                    @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                    Language.Fixpoint.Types.Errors.errFreeVarInQual2
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                    (GHC.Types.:
-                                       @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                       (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                          @ q
-                                          w
-                                          Language.Fixpoint.Types.PrettyPrint.pprint1
-                                          Language.Fixpoint.Types.PrettyPrint.Full
-                                          w3)
-                                         `cast`
-                                       (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                       (GHC.Types.:
-                                          @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                             @ x
-                                             w2
-                                             Language.Fixpoint.Types.PrettyPrint.pprint1
-                                             Language.Fixpoint.Types.PrettyPrint.Full
-                                             w4)
-                                            `cast`
-                                          (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                          (GHC.Types.[]
-                                             @ (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                  ())))))) of ww { (#,#) ww1 ww2 ->
-                       ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }),
-                    GHC.Types.[] @ Language.Fixpoint.Types.Errors.Error1 #)) -}
-99ff54c146d963ba967825cb5ab2697f
-  $werrIllScopedKVar ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint k,
-     Language.Fixpoint.Types.PrettyPrint.PPrint bs) =>
-    k
-    -> GHC.Integer.Type.Integer
-    -> GHC.Integer.Type.Integer
-    -> bs
-    -> (# Language.Fixpoint.Types.Errors.Error1,
-          [Language.Fixpoint.Types.Errors.Error1] #)
-  {- Arity: 6,
-     Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,1*U(A,1*C1(C1(C1(U))))><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ k1
-                   @ bs
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint k1)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint bs)
-                   (ww :: k1)
-                   (ww1 :: GHC.Integer.Type.Integer)
-                   (ww2 :: GHC.Integer.Type.Integer)
-                   (ww3 :: bs) ->
-                 (# Language.Fixpoint.Types.Errors.Error1
-                      Language.Fixpoint.Types.Spans.dummySpan
-                      (case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                 @ ()
-                                 (GHC.Types.:
-                                    @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                    (case (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                             @ k1
-                                             w
-                                             Language.Fixpoint.Types.PrettyPrint.pprint1
-                                             Language.Fixpoint.Types.PrettyPrint.Full
-                                             ww)
-                                            `cast`
-                                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                                       DEFAULT
-                                       -> case Language.Fixpoint.Types.Errors.errIllScopedKVar5
-                                                 `cast`
-                                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                                            DEFAULT
-                                            -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                 @ ()
-                                                 wild1
-                                                 GHC.Types.True
-                                                 wild
-                                            Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild }
-                                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                       -> Language.Fixpoint.Types.Errors.errIllScopedKVar5
-                                            `cast`
-                                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) })
-                                    (GHC.Types.:
-                                       @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                       (case Text.PrettyPrint.HughesPJ.$winteger
-                                               ww2 of ww4 { (#,#) ww5 ww6 ->
-                                        case Text.PrettyPrint.HughesPJ.$winteger
-                                               ww1 of ww7 { (#,#) ww8 ww9 ->
-                                        case Language.Fixpoint.Types.Errors.errIllScopedKVar3
-                                               `cast`
-                                             (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                                          DEFAULT
-                                          -> case Language.Fixpoint.Types.Errors.errIllScopedKVar1
-                                                    `cast`
-                                                  (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                                               DEFAULT
-                                               -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                    @ ()
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                       @ ()
-                                                       (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                          @ ()
-                                                          wild1
-                                                          GHC.Types.True
-                                                          (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                             @ ()
-                                                             ww8
-                                                             ww9))
-                                                       GHC.Types.True
-                                                       wild)
-                                                    GHC.Types.True
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                       @ ()
-                                                       ww5
-                                                       ww6)
-                                               Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                               -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                    @ ()
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                       @ ()
-                                                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                          @ ()
-                                                          ww8
-                                                          ww9)
-                                                       GHC.Types.True
-                                                       wild)
-                                                    GHC.Types.True
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                       @ ()
-                                                       ww5
-                                                       ww6) }
-                                          Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                          -> case Language.Fixpoint.Types.Errors.errIllScopedKVar1
-                                                    `cast`
-                                                  (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                                               DEFAULT
-                                               -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                    @ ()
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                       @ ()
-                                                       wild1
-                                                       GHC.Types.True
-                                                       (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                          @ ()
-                                                          ww8
-                                                          ww9))
-                                                    GHC.Types.True
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                       @ ()
-                                                       ww5
-                                                       ww6)
-                                               Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                               -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                    @ ()
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                       @ ()
-                                                       ww8
-                                                       ww9)
-                                                    GHC.Types.True
-                                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                                       @ ()
-                                                       ww5
-                                                       ww6) } } } })
-                                       (GHC.Types.:
-                                          @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                             @ bs
-                                             w1
-                                             Language.Fixpoint.Types.PrettyPrint.pprint1
-                                             Language.Fixpoint.Types.PrettyPrint.Full
-                                             ww3)
-                                            `cast`
-                                          (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                          (GHC.Types.[]
-                                             @ (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                  ())))))) of ww4 { (#,#) ww5 ww6 ->
-                       ww6 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }),
-                    GHC.Types.[] @ Language.Fixpoint.Types.Errors.Error1 #)) -}
-09990c6f4ff85d17cb347ec32332df20
-  $wlvl ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceLazy
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.Rec0 GHC.Types.Int))
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 ())))
-            a1)
-         r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 8, Strictness: <L,U><L,U><L,U><S,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-ba451089357d474745e3510aa022cc5f
-  $wlvl1 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceLazy
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.Rec0 Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.SourceUnpack
-                                'GHC.Generics.SourceLazy
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.Rec0 GHC.Types.Int))
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 ())))
-      a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (w :: (GHC.Generics.:+:)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1)
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceLazy
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.SourceUnpack
-                                                     'GHC.Generics.SourceLazy
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.Rec0 GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "AnnotEnd" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 ())))
-                           a1) ->
-                 case w of wild2 {
-                   GHC.Generics.L1 x
-                   -> (# GHC.Tuple.(),
-                         Language.Fixpoint.Types.Errors.$fSerializeAnnotDetails3
-                           `cast`
-                         (Trans
-                              (forall (r :: <*>_N).
-                               <Data.ByteString.Builder.Internal.BuildStep r>_R
-                               ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                               ->_R Sym (GHC.Types.N:IO[0]
-                                             <Data.ByteString.Builder.Internal.BuildSignal r>_R))
-                              (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #)
-                   GHC.Generics.R1 x
-                   -> case x of wild {
-                        GHC.Generics.L1 x1
-                        -> let {
-                             ds :: Data.Serialize.Put.PairS ()
-                             = case x1
-                                      `cast`
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.C>_P
-                                         <'GHC.Generics.MetaCons
-                                            "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                         <GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceLazy
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                          GHC.Generics.:*: GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.SourceUnpack
-                                                                'GHC.Generics.SourceLazy
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.Rec0
-                                                                GHC.Types.Int)>_R <a1>_N) of wild1 { GHC.Generics.:*: a2 b1 ->
-                               let {
-                                 ds1 :: Data.Serialize.Put.PairS ()
-                                 = case Data.Serialize.$w$cput16
-                                          b1
-                                            `cast`
-                                          (Trans
-                                               (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.SourceUnpack
-                                                       'GHC.Generics.SourceLazy
-                                                       'GHC.Generics.DecidedUnpack>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R GHC.Types.Int>_R <a1>_N)
-                                               (GHC.Generics.N:K1[0]
-                                                    <GHC.Generics.R>_P
-                                                    <GHC.Types.Int>_R
-                                                    <a1>_P)) of ww { (#,#) ww1 ww2 ->
-                                   Data.Serialize.Put.PairS @ () ww1 ww2 }
-                               } in
-                               Data.Serialize.Put.PairS
-                                 @ ()
-                                 (case ds1 of wild3 { Data.Serialize.Put.PairS b2 w' -> b2 })
-                                 (let {
-                                    ds2 :: Data.ByteString.Builder.Internal.Builder
-                                    = case a2
-                                             `cast`
-                                           (Trans
-                                                (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceLazy
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R <a1>_N)
-                                                (GHC.Generics.N:K1[0]
-                                                     <GHC.Generics.R>_P
-                                                     <Text.PrettyPrint.Annotated.HughesPJ.TextDetails>_R
-                                                     <a1>_P)) of wild3 {
-                                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt1
-                                        -> case Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                                                  @ GHC.Prim.Any
-                                                  (GHC.Generics.L1
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Chr"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.SourceUnpack
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Char)))
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Str"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Base.String))
-                                                        GHC.Generics.:+: GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "PStr"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Base.String)))
-                                                     @ GHC.Prim.Any
-                                                     (GHC.Types.C# dt1)
-                                                       `cast`
-                                                     (Trans
-                                                          (Sym (GHC.Generics.N:K1[0]
-                                                                    <GHC.Generics.R>_P
-                                                                    <GHC.Types.Char>_R
-                                                                    <GHC.Prim.Any>_P))
-                                                          (Trans
-                                                               (Sym (GHC.Generics.N:M1[0]
-                                                                         <GHC.Generics.S>_P
-                                                                         <'GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.SourceUnpack
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedUnpack>_P
-                                                                         <GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            GHC.Types.Char>_R))
-                                                               (Sym (GHC.Generics.N:M1[0]
-                                                                         <GHC.Generics.C>_P
-                                                                         <'GHC.Generics.MetaCons
-                                                                            "Chr"
-                                                                            'GHC.Generics.PrefixI
-                                                                            'GHC.Types.False>_P
-                                                                         <GHC.Generics.M1
-                                                                            GHC.Generics.S
-                                                                            ('GHC.Generics.MetaSel
-                                                                               'GHC.Base.Nothing
-                                                                               'GHC.Generics.SourceUnpack
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedUnpack)
-                                                                            (GHC.Generics.K1
-                                                                               GHC.Generics.R
-                                                                               GHC.Types.Char)>_R)) <GHC.Prim.Any>_N))) of ww { (#,#) ww1 ww2 ->
-                                           ww2 }
-                                        Text.PrettyPrint.Annotated.HughesPJ.Str g1
-                                        -> case Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                                                  @ GHC.Prim.Any
-                                                  (GHC.Generics.R1
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Chr"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.SourceUnpack
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Char)))
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Str"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Base.String))
-                                                        GHC.Generics.:+: GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "PStr"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Base.String)))
-                                                     @ GHC.Prim.Any
-                                                     (GHC.Generics.L1
-                                                        @ (GHC.Generics.M1
-                                                             GHC.Generics.C
-                                                             ('GHC.Generics.MetaCons
-                                                                "Str"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Base.String)))
-                                                        @ (GHC.Generics.M1
-                                                             GHC.Generics.C
-                                                             ('GHC.Generics.MetaCons
-                                                                "PStr"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Base.String)))
-                                                        @ GHC.Prim.Any
-                                                        g1
-                                                          `cast`
-                                                        (Trans
-                                                             (Sym (GHC.Generics.N:K1[0]
-                                                                       <GHC.Generics.R>_P
-                                                                       <GHC.Base.String>_R
-                                                                       <GHC.Prim.Any>_P))
-                                                             (Trans
-                                                                  (Sym (GHC.Generics.N:M1[0]
-                                                                            <GHC.Generics.S>_P
-                                                                            <'GHC.Generics.MetaSel
-                                                                               'GHC.Base.Nothing
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.NoSourceStrictness
-                                                                               'GHC.Generics.DecidedLazy>_P
-                                                                            <GHC.Generics.K1
-                                                                               GHC.Generics.R
-                                                                               GHC.Base.String>_R))
-                                                                  (Sym (GHC.Generics.N:M1[0]
-                                                                            <GHC.Generics.C>_P
-                                                                            <'GHC.Generics.MetaCons
-                                                                               "Str"
-                                                                               'GHC.Generics.PrefixI
-                                                                               'GHC.Types.False>_P
-                                                                            <GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  'GHC.Base.Nothing
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Base.String)>_R)) <GHC.Prim.Any>_N)))) of ww { (#,#) ww1 ww2 ->
-                                           ww2 }
-                                        Text.PrettyPrint.Annotated.HughesPJ.PStr g1
-                                        -> case Language.Fixpoint.Types.Errors.$w$dGSerializePut
-                                                  @ GHC.Prim.Any
-                                                  (GHC.Generics.R1
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Chr"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.SourceUnpack
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Char)))
-                                                     @ (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "Str"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Base.String))
-                                                        GHC.Generics.:+: GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "PStr"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Base.String)))
-                                                     @ GHC.Prim.Any
-                                                     (GHC.Generics.R1
-                                                        @ (GHC.Generics.M1
-                                                             GHC.Generics.C
-                                                             ('GHC.Generics.MetaCons
-                                                                "Str"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Base.String)))
-                                                        @ (GHC.Generics.M1
-                                                             GHC.Generics.C
-                                                             ('GHC.Generics.MetaCons
-                                                                "PStr"
-                                                                'GHC.Generics.PrefixI
-                                                                'GHC.Types.False)
-                                                             (GHC.Generics.M1
-                                                                GHC.Generics.S
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.K1
-                                                                   GHC.Generics.R GHC.Base.String)))
-                                                        @ GHC.Prim.Any
-                                                        g1
-                                                          `cast`
-                                                        (Trans
-                                                             (Sym (GHC.Generics.N:K1[0]
-                                                                       <GHC.Generics.R>_P
-                                                                       <GHC.Base.String>_R
-                                                                       <GHC.Prim.Any>_P))
-                                                             (Trans
-                                                                  (Sym (GHC.Generics.N:M1[0]
-                                                                            <GHC.Generics.S>_P
-                                                                            <'GHC.Generics.MetaSel
-                                                                               'GHC.Base.Nothing
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.NoSourceStrictness
-                                                                               'GHC.Generics.DecidedLazy>_P
-                                                                            <GHC.Generics.K1
-                                                                               GHC.Generics.R
-                                                                               GHC.Base.String>_R))
-                                                                  (Sym (GHC.Generics.N:M1[0]
-                                                                            <GHC.Generics.C>_P
-                                                                            <'GHC.Generics.MetaCons
-                                                                               "PStr"
-                                                                               'GHC.Generics.PrefixI
-                                                                               'GHC.Types.False>_P
-                                                                            <GHC.Generics.M1
-                                                                               GHC.Generics.S
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  'GHC.Base.Nothing
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.NoSourceStrictness
-                                                                                  'GHC.Generics.DecidedLazy)
-                                                                               (GHC.Generics.K1
-                                                                                  GHC.Generics.R
-                                                                                  GHC.Base.String)>_R)) <GHC.Prim.Any>_N)))) of ww { (#,#) ww1 ww2 ->
-                                           ww2 } }
-                                  } in
-                                  (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                                   ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                     @ r
-                                     (case ds1 of wild3 { Data.Serialize.Put.PairS b2 w' ->
-                                      w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                        @ r
-                                        eta }))
-                                    `cast`
-                                  (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) }
-                           } in
-                           (# case ds of wild1 { Data.Serialize.Put.PairS b1 w' -> b1 },
-                              (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                               let {
-                                 eta1 :: Data.ByteString.Builder.Internal.BuildStep r
-                                 = case ds of wild1 { Data.Serialize.Put.PairS b1 w' ->
-                                   w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                     @ r
-                                     eta }
-                               } in
-                               let {
-                                 lvl23 :: Data.ByteString.Builder.Internal.BufferRange
-                                          -> GHC.Prim.State# GHC.Prim.RealWorld
-                                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                                                Data.ByteString.Builder.Internal.BuildSignal r #)
-                                   {- Arity: 2 -}
-                                 = \ (ds1 :: Data.ByteString.Builder.Internal.BufferRange)
-                                     (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                                   case ds1 of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                                   case GHC.Prim.writeWord8OffAddr#
-                                          @ GHC.Prim.RealWorld
-                                          dt3
-                                          0#
-                                          1##
-                                          eta3 of s2 { DEFAULT ->
-                                   (eta1
-                                      (Data.ByteString.Builder.Internal.BufferRange
-                                         (GHC.Prim.plusAddr# dt3 1#)
-                                         dt4))
-                                     `cast`
-                                   (GHC.Types.N:IO[0]
-                                        <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                     s2 } }
-                               } in
-                               \ (eta2 :: Data.ByteString.Builder.Internal.BufferRange)
-                                 (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                               case eta2 of wild1 { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild3 {
-                                 GHC.Types.False
-                                 -> case GHC.Prim.writeWord8OffAddr#
-                                           @ GHC.Prim.RealWorld
-                                           dt
-                                           0#
-                                           1##
-                                           eta3 of s2 { DEFAULT ->
-                                    (eta1
-                                       (Data.ByteString.Builder.Internal.BufferRange
-                                          (GHC.Prim.plusAddr# dt 1#)
-                                          dt1))
-                                      `cast`
-                                    (GHC.Types.N:IO[0]
-                                         <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                      s2 }
-                                 GHC.Types.True
-                                 -> (# eta3,
-                                       Data.ByteString.Builder.Internal.BufferFull
-                                         @ r
-                                         1#
-                                         dt
-                                         lvl23
-                                           `cast`
-                                         (<Data.ByteString.Builder.Internal.BufferRange>_R
-                                          ->_R Sym (GHC.Types.N:IO[0]
-                                                        <Data.ByteString.Builder.Internal.BuildSignal
-                                                           r>_R)) #) } })
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #)
-                        GHC.Generics.R1 x1
-                        -> let {
-                             ds :: Data.Serialize.Put.PairS ()
-                             = case x1 of tpl { DEFAULT -> Data.Serialize.$fSerialize()2 }
-                           } in
-                           (# case ds of wild1 { Data.Serialize.Put.PairS b1 w' -> b1 },
-                              (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                               let {
-                                 eta1 :: Data.ByteString.Builder.Internal.BuildStep r
-                                 = case ds of wild1 { Data.Serialize.Put.PairS b1 w' ->
-                                   w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                                     @ r
-                                     eta }
-                               } in
-                               let {
-                                 lvl23 :: Data.ByteString.Builder.Internal.BufferRange
-                                          -> GHC.Prim.State# GHC.Prim.RealWorld
-                                          -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-                                                Data.ByteString.Builder.Internal.BuildSignal r #)
-                                   {- Arity: 2 -}
-                                 = \ (ds1 :: Data.ByteString.Builder.Internal.BufferRange)
-                                     (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                                   case ds1 of wild3 { Data.ByteString.Builder.Internal.BufferRange dt3 dt4 ->
-                                   case GHC.Prim.writeWord8OffAddr#
-                                          @ GHC.Prim.RealWorld
-                                          dt3
-                                          0#
-                                          2##
-                                          eta3 of s2 { DEFAULT ->
-                                   (eta1
-                                      (Data.ByteString.Builder.Internal.BufferRange
-                                         (GHC.Prim.plusAddr# dt3 1#)
-                                         dt4))
-                                     `cast`
-                                   (GHC.Types.N:IO[0]
-                                        <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                     s2 } }
-                               } in
-                               \ (eta2 :: Data.ByteString.Builder.Internal.BufferRange)
-                                 (eta3 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                               case eta2 of wild1 { Data.ByteString.Builder.Internal.BufferRange dt dt1 ->
-                               case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.<# (GHC.Prim.minusAddr# dt1 dt) 1#) of wild3 {
-                                 GHC.Types.False
-                                 -> case GHC.Prim.writeWord8OffAddr#
-                                           @ GHC.Prim.RealWorld
-                                           dt
-                                           0#
-                                           2##
-                                           eta3 of s2 { DEFAULT ->
-                                    (eta1
-                                       (Data.ByteString.Builder.Internal.BufferRange
-                                          (GHC.Prim.plusAddr# dt 1#)
-                                          dt1))
-                                      `cast`
-                                    (GHC.Types.N:IO[0]
-                                         <Data.ByteString.Builder.Internal.BuildSignal r>_R)
-                                      s2 }
-                                 GHC.Types.True
-                                 -> (# eta3,
-                                       Data.ByteString.Builder.Internal.BufferFull
-                                         @ r
-                                         1#
-                                         dt
-                                         lvl23
-                                           `cast`
-                                         (<Data.ByteString.Builder.Internal.BufferRange>_R
-                                          ->_R Sym (GHC.Types.N:IO[0]
-                                                        <Data.ByteString.Builder.Internal.BuildSignal
-                                                           r>_R)) #) } })
-                                `cast`
-                              (Trans
-                                   (forall (r :: <*>_N).
-                                    <Data.ByteString.Builder.Internal.BuildStep r>_R
-                                    ->_R <Data.ByteString.Builder.Internal.BufferRange>_R
-                                    ->_R Sym (GHC.Types.N:IO[0]
-                                                  <Data.ByteString.Builder.Internal.BuildSignal
-                                                     r>_R))
-                                   (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))) #) } }) -}
-a9c36e995a2bed4f3af09f8ea09c1600
-  $wlvl2 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.C1
-          ('GHC.Generics.MetaCons
-             "Empty" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "NilAbove" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))))
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "TextBeside" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0
-                                 (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()))
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Nest" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.SourceUnpack
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack)
-                                               (GHC.Generics.Rec0 GHC.Types.Int)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.NoSourceStrictness
-                                                                   'GHC.Generics.DecidedLazy)
-                                                                (GHC.Generics.Rec0
-                                                                   (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                      ())))))
-      ((GHC.Generics.C1
-          ('GHC.Generics.MetaCons
-             "Union" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.S1
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.NoSourceStrictness
-                'GHC.Generics.DecidedLazy)
-             (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-           GHC.Generics.:*: GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ())))
-        GHC.Generics.:+: GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "NoDoc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "Beside" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                            GHC.Generics.:*: (GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.Rec0 GHC.Types.Bool)
-                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.Rec0
-                                                                    (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                       ()))))
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "Above" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0
-                                                  (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))
-                                             GHC.Generics.:*: (GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                               GHC.Generics.:*: GHC.Generics.S1
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.NoSourceStrictness
-                                                                                     'GHC.Generics.DecidedLazy)
-                                                                                  (GHC.Generics.Rec0
-                                                                                     (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                                        ()))))))
-      a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-d0173fd74c0fa26b5149cb3e367aede0
-  newtype Error = Error [Language.Fixpoint.Types.Errors.Error1]
-af80a035f9731b203491b28daa7a8cc7
-  data Error1
-    = Error1 {errLoc :: Language.Fixpoint.Types.Spans.SrcSpan,
-              errMsg :: Text.PrettyPrint.HughesPJ.Doc}
-bbcb7910102e76dd87f9706483b3612e
-  data FixResult a = Crash [a] GHC.Base.String | Safe | Unsafe ![a]
-75ab10dd828afff8423da645334f503f
-  axiom Rep_AnnotDetails::
-    [a]
-      GHC.Generics.Rep
-        (Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "AnnotDetails"
-               "Text.PrettyPrint.Annotated.HughesPJ"
-               "pretty-1.1.3.3"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "AnnotStart" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "NoAnnot" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceLazy
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0
-                                       Text.PrettyPrint.Annotated.HughesPJ.TextDetails)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.SourceUnpack
-                                                        'GHC.Generics.SourceLazy
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "AnnotEnd"
-                                                     'GHC.Generics.PrefixI
-                                                     'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0 a))))
-d0173fd74c0fa26b5149cb3e367aede0
-  axiom Rep_Error::
-      GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Error"
-               "Language.Fixpoint.Types.Errors"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Error" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Errors.Error1])))
-af80a035f9731b203491b28daa7a8cc7
-  axiom Rep_Error1::
-      GHC.Generics.Rep Language.Fixpoint.Types.Errors.Error1
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Error1"
-               "Language.Fixpoint.Types.Errors"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Error1" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "errLoc")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Spans.SrcSpan)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "errMsg")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 Text.PrettyPrint.HughesPJ.Doc)))
-bbcb7910102e76dd87f9706483b3612e
-  axiom Rep_FixResult::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Errors.FixResult a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "FixResult"
-               "Language.Fixpoint.Types.Errors"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Crash" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 [a])
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Base.String))
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "Safe" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Unsafe"
-                                                     'GHC.Generics.PrefixI
-                                                     'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 [a]))))
-18ee612360aad031ca35f01fa2eca9a2
-  catError ::
-    Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Base.++ @ Language.Fixpoint.Types.Errors.Error1)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])) -}
-7650892e6059ecff2d06a66111a8993f
-  catErrors ::
-    Language.Fixpoint.Misc.ListNE Language.Fixpoint.Types.Errors.Error
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Errors.Error]) ->
-                 Language.Fixpoint.Types.Errors.catErrors_go eta) -}
-7aa8a8d3944a801396ce79d2ae0ba426
-  catErrors_go ::
-    [Language.Fixpoint.Types.Errors.Error]
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 1, Strictness: <S,1*U> -}
-fd7ce028805fe41d6945d0d87e4f5635
-  colorResult ::
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Language.Fixpoint.Misc.Moods
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash ipv ipv1
-                   -> Language.Fixpoint.Misc.Sad
-                   Language.Fixpoint.Types.Errors.Safe -> Language.Fixpoint.Misc.Happy
-                   Language.Fixpoint.Types.Errors.Unsafe ds1
-                   -> Language.Fixpoint.Misc.Angry }) -}
-a892c3bd643380084ab25f8b09c20b83
-  die :: Language.Fixpoint.Types.Errors.Error -> a
-  {- Arity: 1, Strictness: <L,U>x -}
-a90e823f0e6047342911d3113f83b3d9
-  err ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.err1
-                  `cast`
-                (<Language.Fixpoint.Types.Spans.SrcSpan>_R
-                 ->_R <Text.PrettyPrint.HughesPJ.Doc>_R
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])) -}
-f388f603c1f6dcfaa94a2c9bb7c406f4
-  err1 ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> [Language.Fixpoint.Types.Errors.Error1]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ (sp :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (d :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 GHC.Types.:
-                   @ Language.Fixpoint.Types.Errors.Error1
-                   (Language.Fixpoint.Types.Errors.Error1 sp d)
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Errors.Error1)) -}
-81315397e78a9f2e2283f8640a3210c7
-  errFreeVarInConstraint ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    (GHC.Integer.Type.Integer, a)
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 2, Strictness: <L,1*U(A,1*C1(C1(C1(U))))><S,1*U(U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: (GHC.Integer.Type.Integer, a)) ->
-                 case w1 of ww { (,) ww1 ww2 ->
-                 case Language.Fixpoint.Types.Errors.$werrFreeVarInConstraint
-                        @ a
-                        w
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (GHC.Types.: @ Language.Fixpoint.Types.Errors.Error1 ww4 ww5)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Errors.N:Error[0])) } }) -}
-8073afaac57c19696295acba813f3190
-  errFreeVarInConstraint1 ::
-    [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Unfolding: (GHC.Types.:
-                   @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                   Language.Fixpoint.Types.Errors.errFreeVarInConstraint2
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                   (GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ()))) -}
-3f4cf7db242f95e4d7bc0bcfd1f1003d
-  errFreeVarInConstraint2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errFreeVarInConstraint_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errFreeVarInConstraint3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-9b9ae8bac4ccc11afc736549b42d2865
-  errFreeVarInConstraint3 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errFreeVarInConstraint_s) -}
-7fd13a4c588ada845e115bbcc7768209
-  errFreeVarInConstraint4 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errFreeVarInConstraint_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errFreeVarInConstraint5
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-fa38b6e9b14f3f7fbefed642cf68c7fc
-  errFreeVarInConstraint5 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errFreeVarInConstraint_s1) -}
-f4004fccec95121da1181ccfca9364d5
-  errFreeVarInConstraint_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Try using the --prune-unsorted flag"#) -}
-6b3e5eb6177d152157dcb5cce81d39b4
-  errFreeVarInConstraint_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Constraint with free vars"#) -}
-fc2bd9e9fa9736df222b49dfe9c98248
-  errFreeVarInQual ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint q,
-     Language.Fixpoint.Types.Spans.Loc q,
-     Language.Fixpoint.Types.PrettyPrint.PPrint x) =>
-    q -> x -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 5,
-     Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,1*C1(U)><L,1*U(A,1*C1(C1(C1(U))))><L,U><L,U>m2,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.errFreeVarInQual1
-                  `cast`
-                (forall (q :: <*>_N) (x :: <*>_N).
-                 <Language.Fixpoint.Types.PrettyPrint.PPrint q>_R
-                 ->_R <Language.Fixpoint.Types.Spans.Loc q>_R
-                 ->_R <Language.Fixpoint.Types.PrettyPrint.PPrint x>_R
-                 ->_R <q>_R
-                 ->_R <x>_R
-                 ->_R Sym (Language.Fixpoint.Types.Errors.N:Error[0])) -}
-166512983c388d53b580194a239dfff5
-  errFreeVarInQual1 ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint q,
-     Language.Fixpoint.Types.Spans.Loc q,
-     Language.Fixpoint.Types.PrettyPrint.PPrint x) =>
-    q -> x -> [Language.Fixpoint.Types.Errors.Error1]
-  {- Arity: 5,
-     Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,1*C1(U)><L,1*U(A,1*C1(C1(C1(U))))><L,U><L,U>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ q
-                   @ x
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint q)
-                   (w1 :: Language.Fixpoint.Types.Spans.Loc q)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.PPrint x)
-                   (w3 :: q)
-                   (w4 :: x) ->
-                 case Language.Fixpoint.Types.Errors.$werrFreeVarInQual
-                        @ q
-                        @ x
-                        w
-                        w1
-                        w2
-                        w3
-                        w4 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ Language.Fixpoint.Types.Errors.Error1 ww1 ww2 }) -}
-5c422cc9f4898fe820ed1e20979164b4
-  errFreeVarInQual2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errFreeVarInQual_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errFreeVarInQual3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-0f568bccb6d2f993275b7f59173f00bc
-  errFreeVarInQual3 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errFreeVarInQual_s) -}
-6e8c660d37ff43c330069455c70e3ab3
-  errFreeVarInQual_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Qualifier with free vars"#) -}
-c70d60d92ea6a41b668761a1249b3b3a
-  errIllScopedKVar ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint k,
-     Language.Fixpoint.Types.PrettyPrint.PPrint bs) =>
-    (k, GHC.Integer.Type.Integer, GHC.Integer.Type.Integer, bs)
-    -> Language.Fixpoint.Types.Errors.Error
-  {- Arity: 3,
-     Strictness: <L,1*U(A,1*C1(C1(C1(U))))><L,1*U(A,1*C1(C1(C1(U))))><S,1*U(U,U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ k1
-                   @ bs
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint k1)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint bs)
-                   (w2 :: (k1, GHC.Integer.Type.Integer, GHC.Integer.Type.Integer,
-                           bs)) ->
-                 case w2 of ww { (,,,) ww1 ww2 ww3 ww4 ->
-                 case Language.Fixpoint.Types.Errors.$werrIllScopedKVar
-                        @ k1
-                        @ bs
-                        w
-                        w1
-                        ww1
-                        ww2
-                        ww3
-                        ww4 of ww5 { (#,#) ww6 ww7 ->
-                 (GHC.Types.: @ Language.Fixpoint.Types.Errors.Error1 ww6 ww7)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Errors.N:Error[0])) } }) -}
-33904d0bc8c9ce4d62f641dee043a57f
-  errIllScopedKVar1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errIllScopedKVar_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errIllScopedKVar2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-419d8a8568779db8d9eda06ee11d7604
-  errIllScopedKVar2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errIllScopedKVar_s) -}
-608f961451571496929928ba59c3650a
-  errIllScopedKVar3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errIllScopedKVar_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errIllScopedKVar4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-03c7c1a0a26a3c8fab7d4d9602d4d0ac
-  errIllScopedKVar4 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errIllScopedKVar_s1) -}
-783724a1a9063b8ad31e1ce30686e57f
-  errIllScopedKVar5 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.errIllScopedKVar_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.errIllScopedKVar6
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-af4825ece365f8f9719f4b5d2a701e2a
-  errIllScopedKVar6 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.errIllScopedKVar_s2) -}
-e5f5a344bbe2cc3c1115f353a9dd7fec
-  errIllScopedKVar_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Missing common binders at def"#) -}
-8890e563da5c71de2a8cbed740a56851
-  errIllScopedKVar_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "and use"#) -}
-371b778d433e94d1a4d849a60ed6eee6
-  errIllScopedKVar_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Ill-scoped KVar"#) -}
-f5bcaffe7d92b6cc27c2aedf4745c1ec
-  errLoc ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  RecSel Left Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(1*U(U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case ds of wild { Language.Fixpoint.Types.Errors.Error1 ds1 ds2 ->
-                 ds1 }) -}
-7b4853c89069275128e262536a6f9df5
-  errMsg ::
-    Language.Fixpoint.Types.Errors.Error1
-    -> Text.PrettyPrint.HughesPJ.Doc
-  RecSel Left Language.Fixpoint.Types.Errors.Error1
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Errors.Error1) ->
-                 case ds of wild { Language.Fixpoint.Types.Errors.Error1 ds1 ds2 ->
-                 ds2 }) -}
-baef9c1fa43dbe1a498d99d2cb072930
-  exit :: a -> GHC.Types.IO a -> GHC.Types.IO a
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Errors.exit1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <a>_R
-                 ->_R <GHC.Types.IO a>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <a>_R)) -}
-0d1c75d38a338326807cc0b92096ae78
-  exit1 ::
-    a
-    -> GHC.Types.IO a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>,
-     Unfolding: (\ @ a
-                   (def :: a)
-                   (act :: GHC.Types.IO a)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 GHC.Prim.catch#
-                   @ a
-                   @ GHC.Exception.SomeException
-                   (GHC.Magic.lazy @ (GHC.Types.IO a) act)
-                     `cast`
-                   (GHC.Types.N:IO[0] <a>_R)
-                   (\ (e1 :: GHC.Exception.SomeException)[OneShot]
-                      (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    case e1 of wild { GHC.Exception.SomeException e10 $dException1 e2 ->
-                    case (GHC.Exception.$p1Exception @ e10 $dException1)
-                           `cast`
-                         (Data.Typeable.Internal.N:Typeable[0] <*>_N <e10>_N)
-                           (GHC.Prim.proxy#
-                              @ *
-                              @ e10) of wild1 { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                    case Language.Fixpoint.Types.Errors.$fExceptionError8 of wild2 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                    case GHC.Prim.tagToEnum#
-                           @ GHC.Types.Bool
-                           (GHC.Prim.eqWord# dt dt2) of wild3 {
-                      GHC.Types.False
-                      -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ a wild eta1
-                      GHC.Types.True
-                      -> case GHC.Prim.tagToEnum#
-                                @ GHC.Types.Bool
-                                (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                           GHC.Types.False
-                           -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ a wild eta1
-                           GHC.Types.True
-                           -> case GHC.IO.Handle.Text.hPutStr2
-                                     GHC.IO.Handle.FD.stdout
-                                     (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                                        @ ()
-                                        @ GHC.Base.String
-                                        Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                                        Text.PrettyPrint.Annotated.HughesPJ.render3
-                                        Text.PrettyPrint.Annotated.HughesPJ.render2
-                                        Language.Fixpoint.Types.Errors.exit4
-                                        (GHC.Types.[] @ GHC.Types.Char)
-                                        (case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                                                @ ()
-                                                (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                                   @ ()
-                                                   (GHC.Types.:
-                                                      @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                                      Language.Fixpoint.Types.Errors.exit2
-                                                        `cast`
-                                                      (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                                      (GHC.Types.:
-                                                         @ (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                              ())
-                                                         (Language.Fixpoint.Types.Errors.$w$cpprintTidy1
-                                                            e2
-                                                              `cast`
-                                                            (UnsafeCo representational e10 Language.Fixpoint.Types.Errors.Error))
-                                                           `cast`
-                                                         (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                                         (GHC.Types.[]
-                                                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc
-                                                                 ()))))) of ww { (#,#) ww1 ww2 ->
-                                         ww2 }))
-                                     GHC.Types.True
-                                     eta1 of ds1 { (#,#) ipv ipv1 ->
-                              (# ipv, def #) } } } } } })
-                   eta) -}
-16971c68ce9c7a053117a790b42144d6
-  exit2 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.exit_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.exit3
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-dc1a412208851017ff23dbd01dd3653e
-  exit3 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.exit_s) -}
-7c190c3b85652490a1a439ef04ba3a07
-  exit4 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                            ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s dt1
-                   -> case s of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s1
-                        -> GHC.Base.++ @ GHC.Types.Char s1 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s1
-                        -> GHC.Base.++ @ GHC.Types.Char s1 eta } }) -}
-cc8365c54579797f510c08b6d172d987
-  exit_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Unexpected Errors!"#) -}
-2c5d213b3ed009477ac7767316f04226
-  resultDoc ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Errors.FixResult a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*U,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (ds :: Language.Fixpoint.Types.Errors.FixResult a) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Errors.Crash xs msg
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                             @ ()
-                             (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                @ ()
-                                (GHC.Types.:
-                                   @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                   (let {
-                                      s :: GHC.Base.String
-                                      = GHC.CString.unpackAppendCString# "Crash!: "# msg
-                                    } in
-                                    case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                                    Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                                      @ ()
-                                      (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                                         @ ()
-                                         (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                                         ww2)
-                                      (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()) })
-                                   (let {
-                                      g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                                      = Language.Fixpoint.Types.PrettyPrint.toFix @ a $dFixpoint
-                                    } in
-                                    letrec {
-                                      go :: [a] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                                        {- Arity: 1, Strictness: <S,1*U> -}
-                                      = \ (ds1 :: [a]) ->
-                                        case ds1 of wild1 {
-                                          []
-                                          -> GHC.Types.[]
-                                               @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          : y ys
-                                          -> GHC.Types.:
-                                               @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                               (case (g y)
-                                                       `cast`
-                                                     (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                                  DEFAULT
-                                                  -> case Language.Fixpoint.Types.Errors.resultDoc7
-                                                            `cast`
-                                                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                                       DEFAULT
-                                                       -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                            @ ()
-                                                            wild3
-                                                            GHC.Types.True
-                                                            wild2
-                                                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                                       -> wild2 }
-                                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                                  -> Language.Fixpoint.Types.Errors.resultDoc7
-                                                       `cast`
-                                                     (Text.PrettyPrint.HughesPJ.N:Doc[0]) })
-                                               (go ys) }
-                                    } in
-                                    go xs))) of ww { (#,#) ww1 ww2 ->
-                      ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                   Language.Fixpoint.Types.Errors.Safe
-                   -> Language.Fixpoint.Types.Errors.resultDoc5
-                   Language.Fixpoint.Types.Errors.Unsafe xs
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                             @ ()
-                             (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                                @ ()
-                                (GHC.Types.:
-                                   @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                   Language.Fixpoint.Types.Errors.resultDoc3
-                                     `cast`
-                                   (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                                   (let {
-                                      g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                                      = Language.Fixpoint.Types.PrettyPrint.toFix @ a $dFixpoint
-                                    } in
-                                    letrec {
-                                      go :: [a] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                                        {- Arity: 1, Strictness: <S,1*U> -}
-                                      = \ (ds1 :: [a]) ->
-                                        case ds1 of wild1 {
-                                          []
-                                          -> GHC.Types.[]
-                                               @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                          : y ys
-                                          -> GHC.Types.:
-                                               @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                                               (case (g y)
-                                                       `cast`
-                                                     (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                                  DEFAULT
-                                                  -> case Language.Fixpoint.Types.Errors.resultDoc1
-                                                            `cast`
-                                                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                                       DEFAULT
-                                                       -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                            @ ()
-                                                            wild3
-                                                            GHC.Types.True
-                                                            wild2
-                                                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                                       -> wild2 }
-                                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                                  -> Language.Fixpoint.Types.Errors.resultDoc1
-                                                       `cast`
-                                                     (Text.PrettyPrint.HughesPJ.N:Doc[0]) })
-                                               (go ys) }
-                                    } in
-                                    go xs))) of ww { (#,#) ww1 ww2 ->
-                      ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-6e155e0af68b736543a5bbdf51d98da2
-  resultDoc1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.resultDoc_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.resultDoc2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-5843ea84200cbb23fe9d176e1468c2b9
-  resultDoc2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.resultDoc_s) -}
-845c7e86447c4b8ee6cc9b79055e508c
-  resultDoc3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.resultDoc_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.resultDoc4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-fe77f74ede74bba286ce0e77e32db569
-  resultDoc4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.resultDoc_s1) -}
-6efb231968b38efbde5f004a80f918ad
-  resultDoc5 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.$fExceptionFixResult3
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.resultDoc6
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-d071f56b9af37b9b8cfab93da9635c31
-  resultDoc6 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.$fExceptionFixResult3) -}
-6a6af9e2c6d197da8f32405873a0107c
-  resultDoc7 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Errors.resultDoc_s2
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Errors.resultDoc8
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-e925800401e42413a5a8dbda5818666a
-  resultDoc8 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Errors.resultDoc_s2) -}
-599814b7947d142f0f4d5448c758c297
-  resultDoc_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "WARNING:"#) -}
-94c5751065dc4698686359a5c12b5319
-  resultDoc_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Unsafe:"#) -}
-86350d3ff0a7b43fd30828e7af7dc1d7
-  resultDoc_s2 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "CRASH:"#) -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fBinaryFixResult
-instance Data.Data.Data [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fDataFixResult
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fEqError
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fEqError1
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fEqFixResult
-instance GHC.Exception.Exception [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fExceptionError
-instance GHC.Exception.Exception [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fExceptionFixResult
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fFixpointError1
-instance Data.Foldable.Foldable [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fFoldableFixResult
-instance GHC.Base.Functor [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fFunctorFixResult
-instance GHC.Generics.Generic [Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails]
-  = Language.Fixpoint.Types.Errors.$fGenericAnnotDetails
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fGenericError
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fGenericError1
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fGenericFixResult
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fMonoidFixResult
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fNFDataFixResult
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fOrdError
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fOrdError1
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fPPrintError
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fPPrintError1
-instance Data.Serialize.Serialize [Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails]
-  = Language.Fixpoint.Types.Errors.$fSerializeAnnotDetails
-instance Data.Serialize.Serialize [Text.PrettyPrint.HughesPJ.Doc]
-  = Language.Fixpoint.Types.Errors.$fSerializeDoc
-instance Data.Serialize.Serialize [Text.PrettyPrint.Annotated.HughesPJ.Doc]
-  = Language.Fixpoint.Types.Errors.$fSerializeDoc0
-instance Data.Serialize.Serialize [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fSerializeError
-instance Data.Serialize.Serialize [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fSerializeError1
-instance Data.Serialize.Serialize [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fSerializeFixResult
-instance Data.Serialize.Serialize [Text.PrettyPrint.Annotated.HughesPJ.TextDetails]
-  = Language.Fixpoint.Types.Errors.$fSerializeTextDetails
-instance GHC.Show.Show [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.$fShowError
-instance GHC.Show.Show [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.$fShowError1
-instance GHC.Show.Show [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fShowFixResult
-instance Data.Traversable.Traversable [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.$fTraversableFixResult
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Errors.FixResult]
-  = Language.Fixpoint.Types.Errors.Rep_FixResult
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Errors.Error]
-  = Language.Fixpoint.Types.Errors.Rep_Error
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Errors.Error1]
-  = Language.Fixpoint.Types.Errors.Rep_Error1
-family instance GHC.Generics.Rep [Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails]
-  = Language.Fixpoint.Types.Errors.Rep_AnnotDetails
-"SPEC $cput @ ()" [ALWAYS] forall ($dSerialize :: Data.Serialize.Serialize
-                                                    ())
-  Language.Fixpoint.Types.Errors.$fSerializeDoc0_$cput @ ()
-                                                       $dSerialize
-  = Language.Fixpoint.Types.Errors.$fSerializeDoc_$s$cput
-"SPEC/Language.Fixpoint.Types.Errors $dmput @ (FixResult Error)" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                                       (GHC.Generics.Rep
-                                                                                                          (Language.Fixpoint.Types.Errors.FixResult
-                                                                                                             Language.Fixpoint.Types.Errors.Error)))
-                                                                                 ($dGeneric :: GHC.Generics.Generic
-                                                                                                 (Language.Fixpoint.Types.Errors.FixResult
-                                                                                                    Language.Fixpoint.Types.Errors.Error))
-                                                                                 ($dSerialize :: Data.Serialize.Serialize
-                                                                                                   (Language.Fixpoint.Types.Errors.FixResult
-                                                                                                      Language.Fixpoint.Types.Errors.Error))
-  Data.Serialize.$dmput @ (Language.Fixpoint.Types.Errors.FixResult
-                             Language.Fixpoint.Types.Errors.Error)
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Errors.$fSerializeFixResult_$s$dmput
-"SPEC/Language.Fixpoint.Types.Errors $dmput @ Doc" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                         (GHC.Generics.Rep
-                                                                                            Text.PrettyPrint.HughesPJ.Doc))
-                                                                   ($dGeneric :: GHC.Generics.Generic
-                                                                                   Text.PrettyPrint.HughesPJ.Doc)
-                                                                   ($dSerialize :: Data.Serialize.Serialize
-                                                                                     Text.PrettyPrint.HughesPJ.Doc)
-  Data.Serialize.$dmput @ Text.PrettyPrint.HughesPJ.Doc
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Errors.$fSerializeDoc_$s$dmput
-"SPEC/Language.Fixpoint.Types.Errors $dmput @ Error" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                           (GHC.Generics.Rep
-                                                                                              Language.Fixpoint.Types.Errors.Error))
-                                                                     ($dGeneric :: GHC.Generics.Generic
-                                                                                     Language.Fixpoint.Types.Errors.Error)
-                                                                     ($dSerialize :: Data.Serialize.Serialize
-                                                                                       Language.Fixpoint.Types.Errors.Error)
-  Data.Serialize.$dmput @ Language.Fixpoint.Types.Errors.Error
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Errors.$fSerializeError_$s$dmput
-"SPEC/Language.Fixpoint.Types.Errors $dmput @ Error1" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                            (GHC.Generics.Rep
-                                                                                               Language.Fixpoint.Types.Errors.Error1))
-                                                                      ($dGeneric :: GHC.Generics.Generic
-                                                                                      Language.Fixpoint.Types.Errors.Error1)
-                                                                      ($dSerialize :: Data.Serialize.Serialize
-                                                                                        Language.Fixpoint.Types.Errors.Error1)
-  Data.Serialize.$dmput @ Language.Fixpoint.Types.Errors.Error1
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Errors.$fSerializeError1_$s$dmput
-"SPEC/Language.Fixpoint.Types.Errors $dmsimplify @ Error1" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                            Language.Fixpoint.Types.Errors.Error1)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Errors.Error1
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Errors.$fFixpointError1_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Errors $fEq[]_$c/= @ Error1" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                      Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fEq[]_$c/= @ Language.Fixpoint.Types.Errors.Error1
-                          $dEq
-  = Language.Fixpoint.Types.Errors.$fEqError_$s$fEq[]_$c/=
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$c< @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                       Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$c< @ Language.Fixpoint.Types.Errors.Error1
-                          $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c<
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$c<= @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                        Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$c<= @ Language.Fixpoint.Types.Errors.Error1
-                           $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c<=
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$c> @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                       Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$c> @ Language.Fixpoint.Types.Errors.Error1
-                          $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c>
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$c>= @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                        Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$c>= @ Language.Fixpoint.Types.Errors.Error1
-                           $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$c>=
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$cmax @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                         Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$cmax @ Language.Fixpoint.Types.Errors.Error1
-                            $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$cmax
-"SPEC/Language.Fixpoint.Types.Errors $fOrd[]_$cmin @ Error1" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                         Language.Fixpoint.Types.Errors.Error1)
-  GHC.Classes.$fOrd[]_$cmin @ Language.Fixpoint.Types.Errors.Error1
-                            $dOrd
-  = Language.Fixpoint.Types.Errors.$fOrdError_$s$fOrd[]_$cmin
-"SPEC/Language.Fixpoint.Types.Errors pprint @ Error1" [ALWAYS] forall ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                     Language.Fixpoint.Types.Errors.Error1)
-  Language.Fixpoint.Types.PrettyPrint.pprint @ Language.Fixpoint.Types.Errors.Error1
-                                             $dPPrint
-  = Language.Fixpoint.Types.Errors.$fFixpointError1_$spprint
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Names.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Names.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Names.dump-hi
+++ /dev/null
@@ -1,6171 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:56.034601 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names [orphan module] [family instance module] 8002
-  interface hash: 9f599bdb225d1f1d4d6fdfb3c6df310e
-  ABI hash: e10fad5e5b8ff170c535ac390b7d6df1
-  export-list hash: 743e0e557751599295b6ae4810403574
-  orphan hash: 91fdab81f14605f8fe9fceebb5c7ea5b
-  flag hash: 92be7ce0fea13229700aa5eff1326897
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Names.anfPrefix
-  Language.Fixpoint.Types.Names.bitVecApplyName
-  Language.Fixpoint.Types.Names.bitVecName
-  Language.Fixpoint.Types.Names.bitVecToIntName
-  Language.Fixpoint.Types.Names.boolApplyName
-  Language.Fixpoint.Types.Names.boolConName
-  Language.Fixpoint.Types.Names.boolToIntName
-  Language.Fixpoint.Types.Names.bvAndName
-  Language.Fixpoint.Types.Names.bvOrName
-  Language.Fixpoint.Types.Names.consName
-  Language.Fixpoint.Types.Names.consSym
-  Language.Fixpoint.Types.Names.divFuncName
-  Language.Fixpoint.Types.Names.dropSym
-  Language.Fixpoint.Types.Names.dummyName
-  Language.Fixpoint.Types.Names.dummySymbol
-  Language.Fixpoint.Types.Names.existSymbol
-  Language.Fixpoint.Types.Names.funConName
-  Language.Fixpoint.Types.Names.headSym
-  Language.Fixpoint.Types.Names.intApplyName
-  Language.Fixpoint.Types.Names.intArgName
-  Language.Fixpoint.Types.Names.intSymbol
-  Language.Fixpoint.Types.Names.isDummy
-  Language.Fixpoint.Types.Names.isLitSymbol
-  Language.Fixpoint.Types.Names.isNonSymbol
-  Language.Fixpoint.Types.Names.isNontrivialVV
-  Language.Fixpoint.Types.Names.isPrefixOfSym
-  Language.Fixpoint.Types.Names.isSuffixOfSym
-  Language.Fixpoint.Types.Names.kArgSymbol
-  Language.Fixpoint.Types.Names.lambdaName
-  Language.Fixpoint.Types.Names.lengthSym
-  Language.Fixpoint.Types.Names.listConName
-  Language.Fixpoint.Types.Names.listLConName
-  Language.Fixpoint.Types.Names.litSymbol
-  Language.Fixpoint.Types.Names.mapApplyName
-  Language.Fixpoint.Types.Names.mapConName
-  Language.Fixpoint.Types.Names.mapToIntName
-  Language.Fixpoint.Types.Names.mulFuncName
-  Language.Fixpoint.Types.Names.nilName
-  Language.Fixpoint.Types.Names.nonSymbol
-  Language.Fixpoint.Types.Names.preludeName
-  Language.Fixpoint.Types.Names.prims
-  Language.Fixpoint.Types.Names.realApplyName
-  Language.Fixpoint.Types.Names.realToIntName
-  Language.Fixpoint.Types.Names.renameSymbol
-  Language.Fixpoint.Types.Names.setApplyName
-  Language.Fixpoint.Types.Names.setConName
-  Language.Fixpoint.Types.Names.setToIntName
-  Language.Fixpoint.Types.Names.size32Name
-  Language.Fixpoint.Types.Names.size64Name
-  Language.Fixpoint.Types.Names.strConName
-  Language.Fixpoint.Types.Names.stripPrefix
-  Language.Fixpoint.Types.Names.suffixSymbol
-  Language.Fixpoint.Types.Names.symChars
-  Language.Fixpoint.Types.Names.symbolSafeString
-  Language.Fixpoint.Types.Names.symbolSafeText
-  Language.Fixpoint.Types.Names.symbolString
-  Language.Fixpoint.Types.Names.symbolText
-  Language.Fixpoint.Types.Names.symbolicString
-  Language.Fixpoint.Types.Names.tempPrefix
-  Language.Fixpoint.Types.Names.tempSymbol
-  Language.Fixpoint.Types.Names.tidySymbol
-  Language.Fixpoint.Types.Names.tupConName
-  Language.Fixpoint.Types.Names.unLitSymbol
-  Language.Fixpoint.Types.Names.unconsSym
-  Language.Fixpoint.Types.Names.vv
-  Language.Fixpoint.Types.Names.vvCon
-  Language.Fixpoint.Types.Names.vvName
-  Language.Fixpoint.Types.Names.LocSymbol
-  Language.Fixpoint.Types.Names.LocText
-  Language.Fixpoint.Types.Names.Symbol
-  Language.Fixpoint.Types.Names.Symbolic{Language.Fixpoint.Types.Names.symbol}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.PrettyPrint Language.Fixpoint.Types.Spans
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Char 01433d23661edb6e5ef1536ef1e6774c
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.String b34df69c7b6358cd40a379c8a0a78dcf
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned 5863f78e22c2d71ca922c6519fa795a0
-import  -/  intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal 2b432815dbe90537c6d0bc62a44bcd96
-import  -/  intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text 706cb854af55afb3e6a09b940cb48181
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  exports: 7fe5850227a6e738b3508defc057da0b
-  Located 3326b791adf9e0911edd64707c0fed2a
-  val a3c4cf7922f79de46237eef8822a75ce
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal a2f6f66c5bb1247458d9fa25257ab188
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show 638b4149d86790151d6d4eeca215be94
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-63168e6c9c3e01fcbdadaa3ec4dcaf10
-  $c8wIVoHaUdCGCnqCEqihGgP :: Data.Data.Constr
-5d0728cdd3fe7b245d22dd18feb07119
-  $cAlyW0SdN2Ec9BKKpQHJGD2 :: Data.Data.Constr
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fBinarySymbol_$cput
-                  Language.Fixpoint.Types.Names.$fBinarySymbol_$cget
-                  Language.Fixpoint.Types.Names.$fBinarySymbol_$cputList -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Names.Symbol r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Names.Symbol r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Names.$w$cget @ r ww1 ww2 ww3 ww4 w1 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol2 ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Binary.Put.PairS ()
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,1*U),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Data.Binary.Class.$w$cput7
-                        (case w of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                         case ds of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                         Data.Text.Encoding.$wencodeUtf8
-                           ww1
-                           ww2
-                           ww3 } }) of ww { (#,#) ww1 ww2 ->
-                 Data.Binary.Put.PairS @ () ww1 ww2 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol_$cget ::
-    Data.Binary.Get.Internal.Get Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fBinarySymbol1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Names.Symbol>_R)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol_$cput ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,1*U),A)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fBinarySymbol2
-                  `cast`
-                (<Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R Sym (Data.Binary.Put.N:PutM[0]) <()>_N) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fBinarySymbol_$cputList ::
-    [Language.Fixpoint.Types.Names.Symbol] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-a6db83df676d9ab3ffa8609aea1e561c
-  $fDataInternedText ::
-    Data.Data.Data Data.Interned.Internal.Text.InternedText
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Data.Interned.Internal.Text.InternedText
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cp1Data
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgfoldl
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgunfold
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$ctoConstr
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cdataTypeOf
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$s$dmdataCast1
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$s$dmdataCast2
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapT
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapQl
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapQr
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapQ
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapQi
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapM
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapMp
-                  Language.Fixpoint.Types.Names.$fDataInternedText_$cgmapMo -}
-28067bf058b7b44ea91f7965fb71a465
-  $fDataInternedText1 ::
-    (Data.Interned.Internal.Id
-     -> Data.Text.Internal.Text
-     -> Data.Interned.Internal.Text.InternedText,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Data.Interned.Internal.Text.$WInternedText,
-                  GHC.Types.False)) -}
-4c226de46d787d78bba9a2e020e48fdc
-  $fDataInternedText2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Names.$fDataInternedText3) -}
-016452a5e7f11f1081f5688a6f66cf9e
-  $fDataInternedText3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Names.$c8wIVoHaUdCGCnqCEqihGgP
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-90f32134987b79548004828be594c6f0
-  $fDataInternedText4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "InternedText"#) -}
-d0ee3788e21f4a10a6cb6266cb01b2b4
-  $fDataInternedText5 ::
-    GHC.Prim.Proxy# Data.Interned.Internal.Text.InternedText
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Data.Interned.Internal.Text.InternedText) ->
-                 Language.Fixpoint.Types.Names.$fDataInternedText6) -}
-a8825e29f0e6591c9425dad5042dbd06
-  $fDataInternedText6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Names.$fDataInternedText7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Data.Interned.Internal.Text.$tcInternedText
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-37d0d79b70e1c77ff214f1bf52ce0d76
-  $fDataInternedText7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   13274085457852993140##
-                   18306213730702641936##) -}
-cdf4293b235f59ffc7031c8369750ed2
-  $fDataInternedText_$cdataTypeOf ::
-    Data.Interned.Internal.Text.InternedText -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Data.Interned.Internal.Text.InternedText) ->
-                 Language.Fixpoint.Types.Names.$t8wIVoHaUdCGCnqCEqihGgP) -}
-4d5aa92ec16fe44589c202ca40ac178d
-  $fDataInternedText_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Data.Interned.Internal.Text.InternedText
-    -> c Data.Interned.Internal.Text.InternedText
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w2 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Names.$w$cgfoldl
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-a90a180acc0927607d5e1415a81e13a1
-  $fDataInternedText_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Data.Interned.Internal.Text.InternedText
-    -> m Data.Interned.Internal.Text.InternedText
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w2 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapM
-                   @ m
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-d1db358b09b81cef8972b719bccc007a
-  $fDataInternedText_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Data.Interned.Internal.Text.InternedText
-    -> m Data.Interned.Internal.Text.InternedText
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Data.Interned.Internal.Text.InternedText) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl40 :: m Data.Interned.Internal.Text.InternedText
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Data.Interned.Internal.Text.InternedText
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Data.Interned.Internal.Text.InternedText, GHC.Types.Bool)
-                   @ Data.Interned.Internal.Text.InternedText
-                   (case eta1 of wild { Data.Interned.Internal.Text.InternedText dt dt1 dt2 dt3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl41 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           case b1 of wild2 {
-                             GHC.Types.False
-                             -> GHC.Base.mplus
-                                  @ m
-                                  $dMonadPlus
-                                  @ (b, GHC.Types.Bool)
-                                  (GHC.Base.>>=
-                                     @ m
-                                     $dMonad
-                                     @ d
-                                     @ (b, GHC.Types.Bool)
-                                     lvl41
-                                     (\ (y' :: d) ->
-                                      GHC.Base.return
-                                        @ m
-                                        $dMonad
-                                        @ (b, GHC.Types.Bool)
-                                        (h y', GHC.Types.True)))
-                                  (GHC.Base.return
-                                     @ m
-                                     $dMonad
-                                     @ (b, GHC.Types.Bool)
-                                     (h y, GHC.Types.False))
-                             GHC.Types.True
-                             -> GHC.Base.return
-                                  @ m
-                                  $dMonad
-                                  @ (b, GHC.Types.Bool)
-                                  (h y, GHC.Types.True) } })
-                    } in
-                    k @ Data.Text.Internal.Text
-                      @ Data.Interned.Internal.Text.InternedText
-                      Data.Text.$fDataText
-                      (k @ Data.Interned.Internal.Id
-                         @ (Data.Text.Internal.Text
-                            -> Data.Interned.Internal.Text.InternedText)
-                         Data.Data.$fDataInt
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Data.Interned.Internal.Id
-                               -> Data.Text.Internal.Text
-                               -> Data.Interned.Internal.Text.InternedText,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Names.$fDataInternedText1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Data.Interned.Internal.Id
-                                    -> Data.Text.Internal.Text
-                                    -> Data.Interned.Internal.Text.InternedText>_N))
-                         (GHC.Types.I# dt))
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Data.Text.Internal.Text
-                                 -> Data.Interned.Internal.Text.InternedText>_N))
-                      (Data.Text.Internal.Text dt1 dt2 dt3) })
-                   (\ (ds1 :: (Data.Interned.Internal.Text.InternedText,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl40
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Data.Interned.Internal.Text.InternedText
-                           x' } })) -}
-d3436bd06a45b9513b41a524c33b8efc
-  $fDataInternedText_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Data.Interned.Internal.Text.InternedText
-    -> m Data.Interned.Internal.Text.InternedText
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Data.Interned.Internal.Text.InternedText) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl40 :: m Data.Interned.Internal.Text.InternedText
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Data.Interned.Internal.Text.InternedText
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Data.Interned.Internal.Text.InternedText, GHC.Types.Bool)
-                   @ Data.Interned.Internal.Text.InternedText
-                   (case eta1 of wild { Data.Interned.Internal.Text.InternedText dt dt1 dt2 dt3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl41 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl41
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ Data.Text.Internal.Text
-                      @ Data.Interned.Internal.Text.InternedText
-                      Data.Text.$fDataText
-                      (k @ Data.Interned.Internal.Id
-                         @ (Data.Text.Internal.Text
-                            -> Data.Interned.Internal.Text.InternedText)
-                         Data.Data.$fDataInt
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Data.Interned.Internal.Id
-                               -> Data.Text.Internal.Text
-                               -> Data.Interned.Internal.Text.InternedText,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Names.$fDataInternedText1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Data.Interned.Internal.Id
-                                    -> Data.Text.Internal.Text
-                                    -> Data.Interned.Internal.Text.InternedText>_N))
-                         (GHC.Types.I# dt))
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Data.Text.Internal.Text
-                                 -> Data.Interned.Internal.Text.InternedText>_N))
-                      (Data.Text.Internal.Text dt1 dt2 dt3) })
-                   (\ (ds1 :: (Data.Interned.Internal.Text.InternedText,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl40
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Data.Interned.Internal.Text.InternedText
-                           x' } })) -}
-274ce127c4897f3e4273c2a0d39dc517
-  $fDataInternedText_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Data.Interned.Internal.Text.InternedText -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U(U,U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (w1 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w1 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 GHC.Types.:
-                   @ u
-                   (w @ Data.Interned.Internal.Id
-                      Data.Data.$fDataInt
-                      (GHC.Types.I# ww1))
-                   (GHC.Types.:
-                      @ u
-                      (w @ Data.Text.Internal.Text
-                         Data.Text.$fDataText
-                         (Data.Text.Internal.Text ww2 ww3 ww4))
-                      (GHC.Types.[] @ u)) }) -}
-2b39d2e33ffa54b4c4eb20766a09a2b0
-  $fDataInternedText_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Data.Interned.Internal.Text.InternedText
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S,1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Data.Interned.Internal.Text.InternedText ww3 ww4 ww5 ww6 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQi
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4
-                   ww5
-                   ww6 } }) -}
-b6c12063d9b2de4a811b5e5a32a10346
-  $fDataInternedText_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Data.Interned.Internal.Text.InternedText
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w3 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQl
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-4c2b3154188e4fa29137d4283b55663b
-  $fDataInternedText_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Data.Interned.Internal.Text.InternedText
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w3 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQr
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3
-                   ww4 }) -}
-7284c57347b4c0af927e9b80b4b09979
-  $fDataInternedText_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Data.Interned.Internal.Text.InternedText
-    -> Data.Interned.Internal.Text.InternedText
-  {- Arity: 2, Strictness: <C(C(B)),C(C1(U))><S,1*U(U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Data.Interned.Internal.Text.InternedText) ->
-                 case w1 of ww { Data.Interned.Internal.Text.InternedText ww1 ww2 ww3 ww4 ->
-                 case w @ Data.Interned.Internal.Id
-                        Data.Data.$fDataInt
-                        (GHC.Types.I# ww1) of dt { GHC.Types.I# dt1 ->
-                 case w @ Data.Text.Internal.Text
-                        Data.Text.$fDataText
-                        (Data.Text.Internal.Text
-                           ww2
-                           ww3
-                           ww4) of dt2 { Data.Text.Internal.Text dt3 dt4 dt5 ->
-                 Data.Interned.Internal.Text.InternedText dt1 dt3 dt4 dt5 } } }) -}
-2e92d60c56f5fd9ed6943238e401219f
-  $fDataInternedText_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Data.Interned.Internal.Text.InternedText
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ Data.Text.Internal.Text
-                   @ Data.Interned.Internal.Text.InternedText
-                   Data.Text.$fDataText
-                   (k @ Data.Interned.Internal.Id
-                      @ (Data.Text.Internal.Text
-                         -> Data.Interned.Internal.Text.InternedText)
-                      Data.Data.$fDataInt
-                      (z @ (Data.Interned.Internal.Id
-                            -> Data.Text.Internal.Text
-                            -> Data.Interned.Internal.Text.InternedText)
-                         Data.Interned.Internal.Text.$WInternedText))) -}
-9d60039f0aa6416a63ed5f38573182e2
-  $fDataInternedText_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Data.Interned.Internal.Text.InternedText
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fDataInternedText5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Data.Interned.Internal.Text.InternedText>_N)) -}
-31132f11aae3bc7ef9278af4f0450979
-  $fDataInternedText_$ctoConstr ::
-    Data.Interned.Internal.Text.InternedText -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Data.Interned.Internal.Text.InternedText) ->
-                 case ds of wild { Data.Interned.Internal.Text.InternedText dt dt1 dt2 dt3 ->
-                 Language.Fixpoint.Types.Names.$c8wIVoHaUdCGCnqCEqihGgP }) -}
-cc92e685b29b0f35773178e7fd784569
-  $fDataInternedText_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Data.Interned.Internal.Text.InternedText)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Data.Interned.Internal.Text.InternedText)) -}
-ac14a3313c90f5bbf6bd38aaa27624e7
-  $fDataInternedText_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Data.Interned.Internal.Text.InternedText)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Data.Interned.Internal.Text.InternedText)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol :: Data.Data.Data Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cp1Data
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgfoldl
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgunfold
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$ctoConstr
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cdataTypeOf
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$s$dmdataCast1
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$s$dmdataCast2
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapT
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapQl
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapQr
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapQ
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapQi
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapM
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapMp
-                  Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapMo -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol1 ::
-    (Data.Interned.Internal.Id
-     -> Data.Text.Internal.Text
-     -> Data.Text.Internal.Text
-     -> Language.Fixpoint.Types.Names.Symbol,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Names.$WS,
-                  GHC.Types.False)) -}
-b69be746639c9d17c5607a82d8f413f6
-  $fDataSymbol2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Names.$fDataSymbol3) -}
-bad836ec5b66b7dac57216bae27061c0
-  $fDataSymbol3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Names.$cAlyW0SdN2Ec9BKKpQHJGD2
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-826f90171abacd79a312aa63f0635912
-  $fDataSymbol4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Symbol"#) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Names.Symbol
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.Types.Names.$fDataSymbol6) -}
-12e1ca94f4dc33131c6354f7964ae1dd
-  $fDataSymbol6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Names.$fDataSymbol7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Names.$tcSymbol
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-42c332f04e42414772601ae54f32918a
-  $fDataSymbol7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   8981628712049838859##
-                   18007897414829905084##) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cdataTypeOf ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.Types.Names.$tAej1sndbM6DDTVZTHjMcUS) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> c Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S(LSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w2 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Names.$w$cgfoldl1
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> m Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S(LSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w2 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapM1 @ m w w1 ww1 ww2 ww3 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> m Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)> -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> m Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl40 :: m Language.Fixpoint.Types.Names.Symbol
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Names.Symbol
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Names.Symbol, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   (case eta1 of wild { Language.Fixpoint.Types.Names.S dt a2 a3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl41 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl41
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ Data.Text.Internal.Text
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      Data.Text.$fDataText
-                      (k @ Data.Text.Internal.Text
-                         @ (Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                         Data.Text.$fDataText
-                         (k @ Data.Interned.Internal.Id
-                            @ (Data.Text.Internal.Text
-                               -> Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                            Data.Data.$fDataInt
-                            (GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Data.Interned.Internal.Id
-                                  -> Data.Text.Internal.Text
-                                  -> Data.Text.Internal.Text
-                                  -> Language.Fixpoint.Types.Names.Symbol,
-                                  GHC.Types.Bool)
-                               Language.Fixpoint.Types.Names.$fDataSymbol1)
-                              `cast`
-                            (Sym (Data.Data.N:Mp[0]
-                                      <m>_R
-                                      <Data.Interned.Internal.Id
-                                       -> Data.Text.Internal.Text
-                                       -> Data.Text.Internal.Text
-                                       -> Language.Fixpoint.Types.Names.Symbol>_N))
-                            (GHC.Types.I# dt))
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Data.Text.Internal.Text
-                                    -> Data.Text.Internal.Text
-                                    -> Language.Fixpoint.Types.Names.Symbol>_N))
-                         a2)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Data.Text.Internal.Text
-                                 -> Language.Fixpoint.Types.Names.Symbol>_N))
-                      a3 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Names.Symbol,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl40
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           x' } })) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Names.Symbol -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (eta :: Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.Types.Names.$fDataSymbol_$cgmapQr
-                   @ [u]
-                   @ u
-                   (GHC.Types.: @ u)
-                   (GHC.Types.[] @ u)
-                   ds
-                   eta) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S(LSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQi1
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4
-                   ww5 } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(LSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w3 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQl1
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(LSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w3 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Names.$w$cgmapQr1
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><S(LSS),1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case w @ Data.Interned.Internal.Id
-                        Data.Data.$fDataInt
-                        (GHC.Types.I# ww1) of dt { GHC.Types.I# dt1 ->
-                 case w @ Data.Text.Internal.Text
-                        Data.Text.$fDataText
-                        ww2 of dt2 { Data.Text.Internal.Text ipv ipv1 ipv2 ->
-                 case w @ Data.Text.Internal.Text
-                        Data.Text.$fDataText
-                        ww3 of dt3 { Data.Text.Internal.Text ipv3 ipv4 ipv5 ->
-                 Language.Fixpoint.Types.Names.S dt1 dt2 dt3 } } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 Language.Fixpoint.Types.Names.$w$cgunfold @ c w w1) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fDataSymbol5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Names.Symbol>_N)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$ctoConstr ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 Language.Fixpoint.Types.Names.$cAlyW0SdN2Ec9BKKpQHJGD2 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$s$dmdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Names.Symbol)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Names.Symbol)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fDataSymbol_$s$dmdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Names.Symbol)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Names.Symbol)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqDescription ::
-    GHC.Classes.Eq
-      (Data.Interned.Internal.Description
-         Language.Fixpoint.Types.Names.Symbol)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Data.Interned.Internal.Description
-                       Language.Fixpoint.Types.Names.Symbol)
-                  Language.Fixpoint.Types.Names.$fEqDescription_$c==
-                  Language.Fixpoint.Types.Names.$fEqDescription_$c/= -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqDescription_$c/= ::
-    Data.Interned.Internal.Description
-      Language.Fixpoint.Types.Names.Symbol
-    -> Data.Interned.Internal.Description
-         Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Data.Text.$fEqText_$c/=
-                  `cast`
-                (Trans
-                     (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                     (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R Trans
-                          (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                          (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R <GHC.Types.Bool>_R) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqDescription_$c== ::
-    Data.Interned.Internal.Description
-      Language.Fixpoint.Types.Names.Symbol
-    -> Data.Interned.Internal.Description
-         Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLS),1*U(U,U,U)><S(LLS),1*U(U,U,U)>,
-     Unfolding: InlineRule (0, True, True)
-                Data.Text.$fEqText_$c==
-                  `cast`
-                (Trans
-                     (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                     (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R Trans
-                          (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                          (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R <GHC.Types.Bool>_R) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqSymbol :: GHC.Classes.Eq Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fEqSymbol_$c==
-                  Language.Fixpoint.Types.Names.$fEqSymbol_$c/= -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqSymbol_$c/= ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 GHC.Classes.not
-                   (Language.Fixpoint.Types.Names.$fEqSymbol_$c== x y)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fEqSymbol_$c== ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol)
-                   (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fFixpointSymbol ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fFixpointSymbol_$ctoFix
-                  Language.Fixpoint.Types.Names.$fFixpointSymbol_$s$dmsimplify -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fFixpointSymbol_$ctoFix ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(LS(LLS)S),1*U(A,U(U,U,U),U(U,U,U))>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case ww3 of ww8 { Data.Text.Internal.Text ww9 ww10 ww11 ->
-                 case Language.Fixpoint.Types.Names.$w$ctoFix
-                        ww5
-                        ww6
-                        ww7
-                        ww9
-                        ww10
-                        ww11 of ww12 { (#,#) ww13 ww14 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww13 ww14)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fFixpointSymbol_$s$dmsimplify ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Names.Symbol) -}
-17e13ede98ec4da4e7c5a3511bdcce16
-  $fFixpointText ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Data.Text.Internal.Text
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Data.Text.Internal.Text
-                  Language.Fixpoint.Types.Names.$fFixpointText_$ctoFix
-                  Language.Fixpoint.Types.Names.$fFixpointText_$s$dmsimplify -}
-fd1b1383d52fa1c5a0cbec9ec27a7342
-  $fFixpointText_$ctoFix ::
-    Data.Text.Internal.Text -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSS),1*U(U,U,U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Data.Text.Internal.Text) ->
-                 case w of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.Names.$w$ctoFix1
-                        ww1
-                        ww2
-                        ww3 of ww4 { (#,#) ww5 ww6 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww5 ww6)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-f849ec45d151ca533823613c6c2cd8c8
-  $fFixpointText_$s$dmsimplify ::
-    Data.Text.Internal.Text -> Data.Text.Internal.Text
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id @ Data.Text.Internal.Text) -}
-66059842e835cc162562bbbb04bf51de
-  $fGenericInternedText ::
-    GHC.Generics.Generic Data.Interned.Internal.Text.InternedText
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Data.Interned.Internal.Text.InternedText
-                  Language.Fixpoint.Types.Names.$fGenericInternedText_$cfrom
-                  Language.Fixpoint.Types.Names.$fGenericInternedText_$cto -}
-f832f6c6a301538676387614d2641d2b
-  $fGenericInternedText1 ::
-    Data.Interned.Internal.Text.InternedText
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "internedTextId")
-               'GHC.Generics.SourceUnpack
-               'GHC.Generics.SourceLazy
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "uninternedText")
-                                'GHC.Generics.SourceUnpack
-                                'GHC.Generics.SourceLazy
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Data.Interned.Internal.Text.InternedText) ->
-                 case x1 of wild { Data.Interned.Internal.Text.InternedText dt dt1 dt2 dt3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "internedTextId")
-                            'GHC.Generics.SourceUnpack
-                            'GHC.Generics.SourceLazy
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "uninternedText")
-                            'GHC.Generics.SourceUnpack
-                            'GHC.Generics.SourceLazy
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text))
-                    @ x
-                    (GHC.Types.I# dt)
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Data.Interned.Internal.Id>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "internedTextId")
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedUnpack>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Data.Interned.Internal.Id>_R) <x>_N))
-                    (Data.Text.Internal.Text dt1 dt2 dt3)
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "uninternedText")
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedUnpack>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Data.Text.Internal.Text>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "internedTextId")
-                                 'GHC.Generics.SourceUnpack
-                                 'GHC.Generics.SourceLazy
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "uninternedText")
-                                                  'GHC.Generics.SourceUnpack
-                                                  'GHC.Generics.SourceLazy
-                                                  'GHC.Generics.DecidedUnpack)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Data.Text.Internal.Text)>_R) <x>_N) }) -}
-5889e432386ca7b14908fa0c9aeb6dca
-  $fGenericInternedText_$cfrom ::
-    Data.Interned.Internal.Text.InternedText
-    -> GHC.Generics.Rep Data.Interned.Internal.Text.InternedText x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fGenericInternedText1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Data.Interned.Internal.Text.InternedText>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "InternedText"
-                                       "Data.Interned.Internal.Text"
-                                       "intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "internedTextId")
-                                             'GHC.Generics.SourceUnpack
-                                             'GHC.Generics.SourceLazy
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "uninternedText")
-                                                              'GHC.Generics.SourceUnpack
-                                                              'GHC.Generics.SourceLazy
-                                                              'GHC.Generics.DecidedUnpack)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Data.Text.Internal.Text))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Names.Rep_InternedText[0]))) <x>_N) -}
-1df1da19bcc1f84759facac129e078df
-  $fGenericInternedText_$cto ::
-    GHC.Generics.Rep Data.Interned.Internal.Text.InternedText x
-    -> Data.Interned.Internal.Text.InternedText
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Data.Interned.Internal.Text.InternedText x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Names.Rep_InternedText[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "InternedText"
-                                        "Data.Interned.Internal.Text"
-                                        "intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "internedTextId")
-                                              'GHC.Generics.SourceUnpack
-                                              'GHC.Generics.SourceLazy
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Data.Interned.Internal.Id)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "uninternedText")
-                                                               'GHC.Generics.SourceUnpack
-                                                               'GHC.Generics.SourceLazy
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Data.Text.Internal.Text))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "internedTextId")
-                                           'GHC.Generics.SourceUnpack
-                                           'GHC.Generics.SourceLazy
-                                           'GHC.Generics.DecidedUnpack)
-                                        (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "uninternedText")
-                                                            'GHC.Generics.SourceUnpack
-                                                            'GHC.Generics.SourceLazy
-                                                            'GHC.Generics.DecidedUnpack)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Data.Text.Internal.Text)>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Data.Interned.Internal.Text.$WInternedText
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "internedTextId")
-                                'GHC.Generics.SourceUnpack
-                                'GHC.Generics.SourceLazy
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Data.Interned.Internal.Id>_R <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "uninternedText")
-                                'GHC.Generics.SourceUnpack
-                                'GHC.Generics.SourceLazy
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P)) }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fGenericSymbol ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fGenericSymbol_$cfrom
-                  Language.Fixpoint.Types.Names.$fGenericSymbol_$cto -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fGenericSymbol1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "_symbolId")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "symbolRaw")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "symbolEncoded")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R Data.Text.Internal.Text)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case x1 of wild { Language.Fixpoint.Types.Names.S dt g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_symbolId")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "symbolRaw")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "symbolEncoded")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text))
-                    @ x
-                    (GHC.Types.I# dt)
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Data.Interned.Internal.Id>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "_symbolId")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Data.Interned.Internal.Id>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "symbolRaw")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "symbolEncoded")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "symbolRaw")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R Data.Text.Internal.Text>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "symbolEncoded")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R Data.Text.Internal.Text>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "S" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_symbolId")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "symbolRaw")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R Data.Text.Internal.Text)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "symbolEncoded")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Data.Text.Internal.Text))>_R) <x>_N) }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fGenericSymbol_$cfrom ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Names.Symbol x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fGenericSymbol1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Names.Symbol>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Symbol"
-                                       "Language.Fixpoint.Types.Names"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "S" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "_symbolId")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "symbolRaw")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Data.Text.Internal.Text)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "symbolEncoded")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Data.Text.Internal.Text)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Names.Rep_Symbol[0]))) <x>_N) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fGenericSymbol_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Names.Symbol x
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Names.Symbol x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Names.Rep_Symbol[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Symbol"
-                                        "Language.Fixpoint.Types.Names"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "S" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_symbolId")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Data.Interned.Internal.Id)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "symbolRaw")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Data.Text.Internal.Text)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "symbolEncoded")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Data.Text.Internal.Text)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "S" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "_symbolId")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedUnpack)
-                                        (GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "symbolRaw")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R Data.Text.Internal.Text)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "symbolEncoded")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Data.Text.Internal.Text))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                 Language.Fixpoint.Types.Names.$WS
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_symbolId")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1 GHC.Generics.R Data.Interned.Internal.Id>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Data.Interned.Internal.Id>_R <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "symbolRaw")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "symbolEncoded")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Data.Text.Internal.Text>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Data.Text.Internal.Text>_R <x>_P)) } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableDescription ::
-    Data.Hashable.Class.Hashable
-      (Data.Interned.Internal.Description
-         Language.Fixpoint.Types.Names.Symbol)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Data.Interned.Internal.Description
-                       Language.Fixpoint.Types.Names.Symbol)
-                  Language.Fixpoint.Types.Names.$fHashableDescription_$chashWithSalt
-                  Language.Fixpoint.Types.Names.$fHashableDescription_$chash -}
-419e443dae4d7923d8e0e8ffe9abc258
-  $fHashableDescription1 :: Data.Text.Internal.Text -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Data.Hashable.Class.$fHashableText_$chashWithSalt1
-                   Data.Hashable.Class.defaultSalt) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableDescription_$chash ::
-    Data.Interned.Internal.Description
-      Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fHashableDescription1
-                  `cast`
-                (Trans
-                     (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                     (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R <GHC.Types.Int>_R) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableDescription_$chashWithSalt ::
-    GHC.Types.Int
-    -> Data.Interned.Internal.Description
-         Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Data.Hashable.Class.$fHashableText_$chashWithSalt1
-                  `cast`
-                (<GHC.Types.Int>_R
-                 ->_R Trans
-                          (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                          (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0]))
-                 ->_R <GHC.Types.Int>_R) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableSymbol ::
-    Data.Hashable.Class.Hashable Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fHashableSymbol_$chashWithSalt
-                  Language.Fixpoint.Types.Names.$fHashableSymbol_$chash -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableSymbol_$chash ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Names.$fHashableSymbol_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fHashableSymbol_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(LS(SSS)L),1*U(A,U(U,U,U),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                 case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww7
-                        (GHC.Prim.uncheckedIShiftL# ww8 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww9 1#)
-                        ww1
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 GHC.Types.I# ds2 } } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol ::
-    Data.Interned.Internal.Interned
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fEqDescription
-                  Language.Fixpoint.Types.Names.$fHashableDescription
-                  (\ (tpl :: Data.Text.Internal.Text) -> tpl)
-                    `cast`
-                  (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))
-                   ->_R Trans
-                            (Sym (Language.Fixpoint.Types.Names.N:R:DescriptionSymbol[0]))
-                            (Sym (Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0[0])))
-                  Language.Fixpoint.Types.Names.$fInternedSymbol_$cidentify
-                  Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmseedIdentity
-                  Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmcacheWidth
-                  Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmmodifyAdvice
-                  Language.Fixpoint.Types.Names.$fInternedSymbol_$ccache -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol_$ccache ::
-    Data.Interned.Internal.Cache Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.sCache -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol_$cidentify ::
-    Data.Interned.Internal.Id
-    -> Data.Interned.Internal.Uninterned
-         Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S(SSS),1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Data.Interned.Internal.Id)
-                   (w1 :: Data.Interned.Internal.Uninterned
-                            Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1
-                        `cast`
-                      (Sub (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])) of ww2 { Data.Text.Internal.Text ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Names.$w$cidentify
-                        ww1
-                        ww3
-                        ww4
-                        ww5 of ww6 { (#,,#) ww7 ww8 ww9 ->
-                 Language.Fixpoint.Types.Names.S ww7 ww8 ww9 } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol_$s$dmcacheWidth ::
-    p Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>m,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (p :: * -> *)
-                   (ds :: p Language.Fixpoint.Types.Names.Symbol) ->
-                 Data.Interned.Internal.defaultCacheWidth) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol_$s$dmmodifyAdvice ::
-    GHC.Types.IO Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.IO Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-1, True, True)
-                (GHC.Base.id
-                   @ (GHC.Types.IO Language.Fixpoint.Types.Names.Symbol)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fInternedSymbol_$s$dmseedIdentity ::
-    p Language.Fixpoint.Types.Names.Symbol -> Data.Interned.Internal.Id
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>m,
-     Unfolding: InlineRule (-1, True, True)
-                (\ @ (p :: * -> *)
-                   (ds :: p Language.Fixpoint.Types.Names.Symbol) ->
-                 GHC.Types.I# 0#) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fIsStringSymbol ::
-    Data.String.IsString Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                  `cast`
-                (Sym (Data.String.N:IsString[0]) <Language.Fixpoint.Types.Names.Symbol>_N) -}
-5bc6750ea1ec45d7d9fe49e181ea0341
-  $fIsStringSymbol1 :: GHC.Types.Int
-  {- HasNoCafRefs, Unfolding: (GHC.Types.I# 4#) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fIsStringSymbol_$cfromString ::
-    GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: GHC.Base.String) ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds1 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           x
-                           0#
-                           ipv }) of ds1 { (#,#) ipv ipv1 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   ipv1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fNFDataSymbol ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Names.$fNFDataSymbol_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Names.Symbol>_N)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fNFDataSymbol_$crnf :: Language.Fixpoint.Types.Names.Symbol -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 GHC.Tuple.() }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol :: GHC.Classes.Ord Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fEqSymbol
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$ccompare
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm<
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm<=
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm>
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm>=
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$cmax
-                  Language.Fixpoint.Types.Names.$fOrdSymbol_$cmin -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$ccompare ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol)
-                   (ds1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 GHC.Classes.compareInt# dt dt1 } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$cmax ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SSS),1*U(U,U,U)><S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case y of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# dt dt1) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt1) of wild3 {
-                        GHC.Types.False -> wild GHC.Types.True -> wild1 }
-                   GHC.Types.True -> wild1 } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$cmin ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SSS),1*U(U,U,U)><S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case y of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# dt dt1) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt1) of wild3 {
-                        GHC.Types.False -> wild1 GHC.Types.True -> wild }
-                   GHC.Types.True -> wild } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$s$dm< ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.$fOrdSymbol_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$s$dm<= ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.$fOrdSymbol_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$s$dm> ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.$fOrdSymbol_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fOrdSymbol_$s$dm>= ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U,A,A)><S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.$fOrdSymbol_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fPPrintSymbol ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fPPrintSymbol_$cpprintTidy
-                  Language.Fixpoint.Types.Names.$fPPrintSymbol_$cpprintPrec -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fPPrintSymbol1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LS(LSS)L),1*U(A,U(U,U,U),A)>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case Language.Fixpoint.Types.Names.$wlvl
-                        ww5
-                        ww6
-                        ww7 of ww8 { (#,#) ww9 ww10 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fPPrintSymbol_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Names.$fPPrintSymbol_$cpprintTidy eta) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fPPrintSymbol_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.Types.Names.$fPPrintSymbol1 eta) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fShowSymbol :: GHC.Show.Show Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fShowSymbol_$s$dmshowsPrec
-                  Language.Fixpoint.Types.Names.$fShowSymbol_$cshow
-                  Language.Fixpoint.Types.Names.$fShowSymbol_$cshowList -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fShowSymbol1 ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <L,1*U(A,U(U,U,U),A)><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (s :: GHC.Base.String) ->
-                 case Data.Text.Show.$w$cshow
-                        (case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                         ds }) of ww { (#,#) ww1 ww2 ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (GHC.Types.: @ GHC.Types.Char ww1 ww2))
-                   s }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fShowSymbol_$cshow ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,U),A)>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Data.Text.Show.$w$cshow
-                        (case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                         ds }) of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ GHC.Types.Char ww1 ww2 }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fShowSymbol_$cshowList ::
-    [Language.Fixpoint.Types.Names.Symbol] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (ls :: [Language.Fixpoint.Types.Names.Symbol])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fShowSymbol1
-                   ls
-                   s) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fShowSymbol_$s$dmshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><L,1*U(A,U(U,U,U),A)><L,1*U>,
-     Unfolding: InlineRule (-1, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Names.Symbol)
-                   (s :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (Language.Fixpoint.Types.Names.$fShowSymbol_$cshow x))
-                   s) -}
-0626e8bb4c60b162c8065dcfe58d4ead
-  $fSymbolicLocated ::
-    Language.Fixpoint.Types.Names.Symbolic a =>
-    Language.Fixpoint.Types.Names.Symbolic
-      (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U(U,U,U))><L,1*U(A,A,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Names.$fSymbolicLocated_$csymbol
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Names.Symbolic a>_R
-                 ->_R Sym (Language.Fixpoint.Types.Names.N:Symbolic[0]
-                               <Language.Fixpoint.Types.Spans.Located a>_N)) -}
-0626e8bb4c60b162c8065dcfe58d4ead
-  $fSymbolicLocated_$csymbol ::
-    Language.Fixpoint.Types.Names.Symbolic a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U(U,U,U))><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dSymbolic :: Language.Fixpoint.Types.Names.Symbolic a)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 $dSymbolic
-                   `cast`
-                 (Language.Fixpoint.Types.Names.N:Symbolic[0] <a>_N)
-                   (Language.Fixpoint.Types.Spans.val @ a eta)) -}
-0626e8bb4c60b162c8065dcfe58d4ead
-  $fSymbolicSymbol ::
-    Language.Fixpoint.Types.Names.Symbolic
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                (GHC.Base.id @ Language.Fixpoint.Types.Names.Symbol)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Names.N:Symbolic[0]
-                          <Language.Fixpoint.Types.Names.Symbol>_N)) -}
-0626e8bb4c60b162c8065dcfe58d4ead
-  $fSymbolicText ::
-    Language.Fixpoint.Types.Names.Symbolic Data.Text.Internal.Text
-  DFunId
-  {- Arity: 1, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Names.textSymbol
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Names.N:Symbolic[0]
-                          <Data.Text.Internal.Text>_N)) -}
-4dd7ddd95b340f72c15b998d88681c1b
-  $fSymbolicText1 ::
-    Data.Interned.Internal.Uninterned
-      Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol) -}
-0626e8bb4c60b162c8065dcfe58d4ead
-  $fSymbolic[] ::
-    Language.Fixpoint.Types.Names.Symbolic GHC.Base.String
-  DFunId
-  {- Arity: 1, Strictness: <S,1*U>, Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Names.$fSymbolic[]_$csymbol
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Names.N:Symbolic[0]
-                          <GHC.Base.String>_N)) -}
-f6733c6759134dd02e11fe2c6c6a2822
-  $fSymbolic[]_$csymbol ::
-    GHC.Base.String -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: GHC.Base.String) ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds1 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter1
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           x
-                           0#
-                           ipv }) of ds1 { (#,#) ipv ipv1 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   ipv1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fUninternableSymbol ::
-    Data.Interned.Internal.Uninternable
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Names.$fInternedSymbol
-                  Language.Fixpoint.Types.Names.$fUninternableSymbol_$cunintern -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $fUninternableSymbol_$cunintern ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Data.Interned.Internal.Uninterned
-         Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U(U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt t ds1 ->
-                 t `cast`
-                 (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }) -}
-1ea30fe8143fe8d7ba45fa5c834a8895
-  $s$wupdateOrConcatWithKey ::
-    (GHC.Types.Char -> v -> v -> v)
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: GHC.Types.Char -> v -> v -> v)
-                   (ww :: GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf GHC.Types.Char v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo2 :: forall s.
-                            Data.HashMap.Array.Array (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                            -> Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.State# s
-                            -> (# GHC.Prim.State# s,
-                                  Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf GHC.Types.Char v))
-                       (w2 :: Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds1 ->
-                          case GHC.Prim.writeArray#
-                                 @ s
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds1
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds2 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                         ds2
-                                         ww2 of ds4 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds3 ->
-                                  case k1 of ww4 { GHC.Types.C# ww5 ->
-                                  Language.Fixpoint.Types.Names.$wpoly_go1
-                                    @ v
-                                    ww5
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                       ww) } } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo2 @ s w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo2
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds2 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Types.Names.$wgo1
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf GHC.Types.Char v))
-                        GHC.Prim.realWorld# of ds4 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s2 { DEFAULT ->
-                 letrec {
-                   $wgo3 :: GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.State# GHC.Prim.RealWorld
-                            -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds5 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ww1
-                                      ww4 of ds6 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo3 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ww
-                                      i# of ds6 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ww1
-                                      ww4 of ds7 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds8 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L @ GHC.Types.Char @ v k1 (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo3 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo3 n1 0# s2 of ds5 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                        ipv8
-                        ipv9 of ds6 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-b27dbb30d784ae31381281f8f95e1a47
-  $slookup2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-ef77efd7be73c1a87a8aff0d95b81bcf
-  $t8wIVoHaUdCGCnqCEqihGgP :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Names.$fDataInternedText4
-                   Language.Fixpoint.Types.Names.$fDataInternedText2) -}
-360e7d289d4789c9f1831fca021036f9
-  $tAej1sndbM6DDTVZTHjMcUS :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Names.$fDataSymbol4
-                   Language.Fixpoint.Types.Names.$fDataSymbol2) -}
-8216273dd684cb15fa24daf9b598f89a
-  $tc'C:Symbolic :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2387456145185633769##
-                   545144060267998057##
-                   Language.Fixpoint.Types.Names.$trModule
-                   Language.Fixpoint.Types.Names.$tc'C:Symbolic1) -}
-74d1f38a8910d650c7841ffa5639e063
-  $tc'C:Symbolic1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Symbolic"#) -}
-3e1d9488214db15b6fa6618c98af9459
-  $tc'S :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17914497818095210173##
-                   827802848045683749##
-                   Language.Fixpoint.Types.Names.$trModule
-                   Language.Fixpoint.Types.Names.$tc'S1) -}
-0d8951582076a288ed323b049f229750
-  $tc'S1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'S"#) -}
-5d37c057a244783d19475da056afa95d
-  $tcSymbol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8981628712049838859##
-                   18007897414829905084##
-                   Language.Fixpoint.Types.Names.$trModule
-                   Language.Fixpoint.Types.Names.$tcSymbol1) -}
-80ec2bd64b297eb52e76de6b6b3c5784
-  $tcSymbol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Symbol"#) -}
-c1327a2f842e8113cec8c0010e158eac
-  $tcSymbolic :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   34212036879190630##
-                   16819331989270215913##
-                   Language.Fixpoint.Types.Names.$trModule
-                   Language.Fixpoint.Types.Names.$tcSymbolic1) -}
-114ead5f12e2eac5608e137444bd1f61
-  $tcSymbolic1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Symbolic"#) -}
-e53c777c937e2c24c8c4a558731ca9f9
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Names.$trModule2
-                   Language.Fixpoint.Types.Names.$trModule1) -}
-1a7ff1c264b5304315eacae70f637058
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Names"#) -}
-58264ec012af8a94284743586bd86b72
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $w$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Names.Symbol r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Names.Symbol r) ->
-                 Data.Text.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Data.Text.Internal.Text)[OneShot] ->
-                    w i'
-                      (Data.Interned.Internal.intern
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         Language.Fixpoint.Types.Names.$fInternedSymbol
-                         a1
-                           `cast`
-                         (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))))) -}
-2db53e0fcac1cc13c5bef69e3ea033c6
-  $w$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> c Data.Interned.Internal.Text.InternedText
-  {- Arity: 6,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 w @ Data.Text.Internal.Text
-                   @ Data.Interned.Internal.Text.InternedText
-                   Data.Text.$fDataText
-                   (w @ Data.Interned.Internal.Id
-                      @ (Data.Text.Internal.Text
-                         -> Data.Interned.Internal.Text.InternedText)
-                      Data.Data.$fDataInt
-                      (w1
-                         @ (Data.Interned.Internal.Id
-                            -> Data.Text.Internal.Text
-                            -> Data.Interned.Internal.Text.InternedText)
-                         Data.Interned.Internal.Text.$WInternedText)
-                      (GHC.Types.I# ww))
-                   (Data.Text.Internal.Text ww1 ww2 ww3)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $w$cgfoldl1 ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> c Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text) ->
-                 w @ Data.Text.Internal.Text
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Data.Text.$fDataText
-                   (w @ Data.Text.Internal.Text
-                      @ (Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                      Data.Text.$fDataText
-                      (w @ Data.Interned.Internal.Id
-                         @ (Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                         Data.Data.$fDataInt
-                         (w1
-                            @ (Data.Interned.Internal.Id
-                               -> Data.Text.Internal.Text
-                               -> Data.Text.Internal.Text
-                               -> Language.Fixpoint.Types.Names.Symbol)
-                            Language.Fixpoint.Types.Names.$WS)
-                         (GHC.Types.I# ww))
-                      ww1)
-                   ww2) -}
-3b33a92d373ede593f7b5797fc0a8924
-  $w$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> m Data.Interned.Internal.Text.InternedText
-  {- Arity: 6,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl40 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl40
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ Data.Text.Internal.Text
-                   @ Data.Interned.Internal.Text.InternedText
-                   Data.Text.$fDataText
-                   (k @ Data.Interned.Internal.Id
-                      @ (Data.Text.Internal.Text
-                         -> Data.Interned.Internal.Text.InternedText)
-                      Data.Data.$fDataInt
-                      (GHC.Base.return
-                         @ m
-                         w
-                         @ (Data.Interned.Internal.Id
-                            -> Data.Text.Internal.Text
-                            -> Data.Interned.Internal.Text.InternedText)
-                         Data.Interned.Internal.Text.$WInternedText)
-                      (GHC.Types.I# ww))
-                   (Data.Text.Internal.Text ww1 ww2 ww3)) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $w$cgmapM1 ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> m Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl40 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl40
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ Data.Text.Internal.Text
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Data.Text.$fDataText
-                   (k @ Data.Text.Internal.Text
-                      @ (Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                      Data.Text.$fDataText
-                      (k @ Data.Interned.Internal.Id
-                         @ (Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                         Data.Data.$fDataInt
-                         (GHC.Base.return
-                            @ m
-                            w
-                            @ (Data.Interned.Internal.Id
-                               -> Data.Text.Internal.Text
-                               -> Data.Text.Internal.Text
-                               -> Language.Fixpoint.Types.Names.Symbol)
-                            Language.Fixpoint.Types.Names.$WS)
-                         (GHC.Types.I# ww))
-                      ww1)
-                   ww2) -}
-368078bb2ddc6f944f33bc5039953129
-  $w$cgmapQi ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> u
-  {- Arity: 6,
-     Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.ByteArray#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w @ Data.Interned.Internal.Id
-                        Data.Data.$fDataInt
-                        (GHC.Types.I# ww1)
-                   1#
-                   -> w @ Data.Text.Internal.Text
-                        Data.Text.$fDataText
-                        (Data.Text.Internal.Text ww2 ww3 ww4) }) -}
-ed670f0311b15cbf5217d58c385b2a7c
-  $w$cgmapQi1 ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> u
-  {- Arity: 5,
-     Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (ww3 :: Data.Text.Internal.Text) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w @ Data.Interned.Internal.Id
-                        Data.Data.$fDataInt
-                        (GHC.Types.I# ww1)
-                   1# -> w @ Data.Text.Internal.Text Data.Text.$fDataText ww2
-                   2# -> w @ Data.Text.Internal.Text Data.Text.$fDataText ww3 }) -}
-e49e5090ac33a33ce3f1db782e7c7fdd
-  $w$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> r
-  {- Arity: 7,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 w (w w1
-                      (w2
-                         @ Data.Interned.Internal.Id
-                         Data.Data.$fDataInt
-                         (GHC.Types.I# ww)))
-                   (w2
-                      @ Data.Text.Internal.Text
-                      Data.Text.$fDataText
-                      (Data.Text.Internal.Text ww1 ww2 ww3))) -}
-ebde412a665a7c037454551e9d5e8986
-  $w$cgmapQl1 ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text) ->
-                 w (w (w w1
-                         (w2
-                            @ Data.Interned.Internal.Id
-                            Data.Data.$fDataInt
-                            (GHC.Types.I# ww)))
-                      (w2 @ Data.Text.Internal.Text Data.Text.$fDataText ww1))
-                   (w2 @ Data.Text.Internal.Text Data.Text.$fDataText ww2)) -}
-e65cfe6099c1e61945f6af2761bd58fb
-  $w$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> r
-  {- Arity: 7,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 w (w2
-                      @ Data.Interned.Internal.Id
-                      Data.Data.$fDataInt
-                      (GHC.Types.I# ww))
-                   (w (w2
-                         @ Data.Text.Internal.Text
-                         Data.Text.$fDataText
-                         (Data.Text.Internal.Text ww1 ww2 ww3))
-                      w1)) -}
-88479144b9c713b122f263614209b0dd
-  $w$cgmapQr1 ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text) ->
-                 w (w2
-                      @ Data.Interned.Internal.Id
-                      Data.Data.$fDataInt
-                      (GHC.Types.I# ww))
-                   (w (w2 @ Data.Text.Internal.Text Data.Text.$fDataText ww1)
-                      (w (w2 @ Data.Text.Internal.Text Data.Text.$fDataText ww2) w1))) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  $w$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r) -> c Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r) ->
-                 w @ Data.Text.Internal.Text
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Data.Text.$fDataText
-                   (w @ Data.Text.Internal.Text
-                      @ (Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                      Data.Text.$fDataText
-                      (w @ Data.Interned.Internal.Id
-                         @ (Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol)
-                         Data.Data.$fDataInt
-                         (w1
-                            @ (Data.Interned.Internal.Id
-                               -> Data.Text.Internal.Text
-                               -> Data.Text.Internal.Text
-                               -> Language.Fixpoint.Types.Names.Symbol)
-                            Language.Fixpoint.Types.Names.$WS)))) -}
-a2ed49bb184c515f4ee18687ea791409
-  $w$cidentify ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# GHC.Prim.Int#, Data.Text.Internal.Text,
-          Data.Text.Internal.Text #)
-  {- Arity: 4, Strictness: <S,U><S,U><S,U><S,U>, Inline: [0] -}
-7232e4762ce0b91c9a5f3f5e2663bf1c
-  $w$ctoFix ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 6, Strictness: <L,U><L,U><S,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-86d4e7ca1936342b6b0052ee026ce7e8
-  $w$ctoFix1 ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww3 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww3 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww3 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           ww
-                                           (GHC.Prim.+# ww3 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww3 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 let {
-                   s :: GHC.Base.String = $wunfold ww1
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww3 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww3,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) }) -}
-aac1f8ffabd7f1bc5c4f1b41d5e8f459
-  $w$s$wupdateOrSnocWithKey ::
-    (GHC.Types.Char -> v -> v -> v)
-    -> GHC.Prim.Char#
-    -> v
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-  {- Arity: 4, Strictness: <L,C(C1(C1(U)))><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: GHC.Types.Char -> v -> v -> v)
-                   (ww :: GHC.Prim.Char#)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf GHC.Types.Char v)) ->
-                 letrec {
-                   $wgo2 :: GHC.Prim.Char#
-                            -> v
-                            -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                     {- Arity: 5, Strictness: <L,U><L,U><S,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww1 :: GHC.Prim.Char#)
-                       (w3 :: v)
-                       (ww2 :: GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v))
-                       (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#) ->
-                     let {
-                       k2 :: GHC.Types.Char = GHC.Types.C# ww1
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 ww4) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                 ww2
-                                 ww3 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { GHC.Types.C# y1 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqChar# ww1 y1) of wild3 {
-                            GHC.Types.False -> $wgo2 ww1 w3 ww2 (GHC.Prim.+# ww3 1#) ww4
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      @ GHC.Prim.RealWorld
-                                      ww2
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                         ww2)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ipv5
-                                      ww3
-                                      (Data.HashMap.Base.L @ GHC.Types.Char @ v k2 (w k2 w3 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww4 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf GHC.Types.Char v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                 @ GHC.Prim.RealWorld
-                                 ww2
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww4
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                 ipv4
-                                 ww4
-                                 (Data.HashMap.Base.L @ GHC.Types.Char @ v k2 w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo2
-                   ww
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf GHC.Types.Char v)
-                      w2)) -}
-0a6d38121743028ee80bf22b2e7e8580
-  $w$sintSymbol ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 4, Strictness: <L,U><L,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append (Data.Text.Internal.Text ww ww1 ww2) ds)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case GHC.Show.$wshowSignedInt
-                        0#
-                        ww3
-                        (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds4 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter2
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           (GHC.Types.: @ GHC.Types.Char ww5 ww6)
-                           0#
-                           ipv }) of ds4 { (#,#) ipv ipv1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        ipv1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt2 ds5 ds6 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds2 ds5)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } }) -}
-102f5394096f25fa7ce63059284c884b
-  $w$slookup ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Data.Text.Internal.Text v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <S,U><S,U><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (w :: Data.HashMap.Base.HashMap Data.Text.Internal.Text v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww
-                        (GHC.Prim.uncheckedIShiftL# ww1 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Names.$wpoly_go5
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   ww1
-                   ww2
-                   0#
-                   w }) -}
-6433279c75491d88c7d9c6929bf9a814
-  $wconsSym ::
-    GHC.Prim.Char#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 4, Strictness: <S,U><L,U><S,U><S,U>, Inline: [0] -}
-8d10026b26b0714b92ccb749185dd2bf
-  $wdropSym ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 4, Strictness: <S,U><L,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<=# ww 0#) of wild2 {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# ww ww3) of wild3 {
-                        GHC.Types.False
-                        -> case Data.Text.$witerN
-                                  (GHC.Types.I# ww)
-                                  ww1
-                                  ww2
-                                  ww3 of ww4 { DEFAULT ->
-                           case GHC.Prim.-# ww3 ww4 of wild5 {
-                             DEFAULT
-                             -> Data.Interned.Internal.intern
-                                  @ Language.Fixpoint.Types.Names.Symbol
-                                  Language.Fixpoint.Types.Names.$fInternedSymbol
-                                  (Data.Text.Internal.Text ww1 (GHC.Prim.+# ww2 ww4) wild5)
-                                    `cast`
-                                  (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))
-                             0# -> Language.Fixpoint.Types.Names.dropSym1 } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Names.dropSym1 }
-                   GHC.Types.True
-                   -> Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }) -}
-14c3efd01e780fa9eb9ea3d12e98f675
-  $wgo1 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-40a99eac2bb939d487d2f3dd15c58646
-  $wintSymbol ::
-    GHC.Show.Show a =>
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> a
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><L,U><L,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (w1 :: a) ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append (Data.Text.Internal.Text ww ww1 ww2) ds)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case GHC.Show.show @ a w w1 of dt2 { DEFAULT ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds4 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter6
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           dt2
-                           0#
-                           ipv }) of ds4 { (#,#) ipv ipv1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        ipv1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt3 ds5 ds6 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds2 ds5)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } }) -}
-2e07c7168e6cf9e1df49f3c21b9c8bf4
-  $wisPrefixOfSym ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,U><S,U><S,U><L,U><L,U><L,U>, Inline: [0] -}
-9e087219898dd520c73d1dae277c5a35
-  $wisSuffixOfSym ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,U><L,U><S,U><L,U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.ByteArray#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 let {
-                   d :: GHC.Prim.Int# = GHC.Prim.-# ww5 ww2
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# d 0#) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case d of wild1 {
-                        DEFAULT
-                        -> case {__pkg_ccall text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR _hs_text_memcmp GHC.Prim.ByteArray#
-                                                                                                              -> GHC.Prim.Word#
-                                                                                                              -> GHC.Prim.ByteArray#
-                                                                                                              -> GHC.Prim.Word#
-                                                                                                              -> GHC.Prim.Word#
-                                                                                                              -> GHC.Prim.State#
-                                                                                                                   GHC.Prim.RealWorld
-                                                                                                              -> (# GHC.Prim.State#
-                                                                                                                      GHC.Prim.RealWorld,
-                                                                                                                    GHC.Prim.Int# #)}
-                                  ww
-                                  (GHC.Prim.int2Word# ww1)
-                                  ww3
-                                  (GHC.Prim.int2Word# (GHC.Prim.+# ww4 wild1))
-                                  (GHC.Prim.int2Word# ww2)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds11 ds12 ->
-                           case GHC.Prim.narrow32Int# ds12 of wild3 {
-                             DEFAULT -> GHC.Types.False 0# -> GHC.Types.True } }
-                        0#
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww5) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case {__pkg_ccall text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR _hs_text_memcmp GHC.Prim.ByteArray#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.ByteArray#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.Word#
-                                                                                                                   -> GHC.Prim.State#
-                                                                                                                        GHC.Prim.RealWorld
-                                                                                                                   -> (# GHC.Prim.State#
-                                                                                                                           GHC.Prim.RealWorld,
-                                                                                                                         GHC.Prim.Int# #)}
-                                       ww
-                                       (GHC.Prim.int2Word# ww1)
-                                       ww3
-                                       (GHC.Prim.int2Word# ww4)
-                                       (GHC.Prim.int2Word# ww2)
-                                       GHC.Prim.realWorld# of wild3 { (#,#) ds11 ds12 ->
-                                case GHC.Prim.narrow32Int# ds12 of wild4 {
-                                  DEFAULT -> GHC.Types.False 0# -> GHC.Types.True } } } } }) -}
-d346b749c3d19fe700da9f177826ff2d
-  $wkArgSymbol ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 6, Strictness: <L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.ByteArray#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case Language.Fixpoint.Types.Names.kArgPrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds (Data.Text.Internal.Text ww ww1 ww2))
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild2 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds2 ds4)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt3 ds6 ds7 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds6 (Data.Text.Internal.Text ww3 ww4 ww5))
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } }) -}
-fc94008ba213b3d7ca8f359ddc058e06
-  $wlengthSym ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wloop_length :: GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-                     {- Arity: 2, Strictness: <L,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) (ww4 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww4 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> $wloop_length (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#)
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> $wloop_length (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#)
-                                 GHC.Types.True
-                                 -> $wloop_length (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 2#) } } }
-                       GHC.Types.True -> ww3 }
-                 } in
-                 $wloop_length 0# ww1) -}
-64753813837ea7bb233f2800f7d2fc28
-  $wlvl ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww3 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww3 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww3 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           ww
-                                           (GHC.Prim.+# ww3 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww3 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 let {
-                   s :: GHC.Base.String = $wunfold ww1
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww3 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww3,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) }) -}
-51a19b2e9a530535d2fb237574011dd7
-  $wouter ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-4578bbb38143e09f3e45d2b117dfaa08
-  $wouter1 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-35cbbb732dc8a85f49a0bcce2752c353
-  $wouter2 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-2d3bf21d93b6d284cd99858fded567eb
-  $wouter3 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-c381f5fe7285b285313e39afb222769d
-  $wouter4 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-dc5258b96e1df2a6af531e0e94334a17
-  $wouter6 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-7ce1320a3743b13c139b505d9e2556b9
-  $wouter7 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-652bfd8357f13d0475d437d9afa0e6b8
-  $wouter8 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-f53d3cc297bdd92459aabcba5c89f599
-  $wouter9 ::
-    Data.Text.Array.MArray GHC.Prim.RealWorld
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,1*U><S,U><S,U>,
-     Inline: [0] -}
-6429b22b23d7d7a6f7655f9545f1bca9
-  $wpoly_go1 ::
-    GHC.Prim.Char#
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-d2c9cbd182e82fd5f868b01174439b47
-  $wpoly_go2 ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Data.Text.Internal.Text v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,U><L,U><L,U><S,U><S,U><S,U>, Inline: [0] -}
-8305e48c6530e331023488370bb2d0fe
-  $wpoly_go3 ::
-    GHC.Prim.Char#
-    -> GHC.Prim.Array# (Data.HashMap.Base.Leaf GHC.Types.Char v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-b3b24c594a12d7636d0b72f967df3816
-  $wpoly_go4 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Char v
-    -> Data.HashMap.Base.HashMap GHC.Types.Char v
-    -> Data.HashMap.Base.HashMap GHC.Types.Char v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-5add66e0661b786e126e02d56d608c94
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Data.Text.Internal.Text v
-    -> GHC.Base.Maybe v
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,U><L,U><L,U><L,U><L,U><S,1*U>, Inline: [0] -}
-ef6209bc09d16badd289d668090c0f59
-  $wpoly_go6 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Char#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Char v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-79727ac8858e6bb91ad6ee9b480efde1
-  $wstripPrefix ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 6, Strictness: <S,U><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.ByteArray#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case Data.Text.$wstripPrefix ww ww1 ww2 ww3 ww4 ww5 of wild {
-                   GHC.Base.Nothing
-                   -> GHC.Base.Nothing @ Language.Fixpoint.Types.Names.Symbol
-                   GHC.Base.Just x
-                   -> GHC.Base.Just
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        (Data.Interned.Internal.intern
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           Language.Fixpoint.Types.Names.$fInternedSymbol
-                           x `cast`
-                           (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) }) -}
-62617df88fdb98c4a5b5ab6815584716
-  $wsuffixSymbol ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 6, Strictness: <L,U><L,U><S,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.ByteArray#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append (Data.Text.Internal.Text ww ww1 ww2) ds)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds2 (Data.Text.Internal.Text ww3 ww4 ww5))
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } }) -}
-60e32460cd87e80ab31e98cec78398f0
-  $wsymbolSafeString ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Base.String
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww3 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww3 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww3 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           ww
-                                           (GHC.Prim.+# ww3 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww3 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 $wunfold ww1) -}
-920d574d3ad087e97fe3fbdcbd9cccdb
-  $wsymbolString ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Base.String
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww3 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww3 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww3 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           ww
-                                           (GHC.Prim.+# ww3 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww3 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 $wunfold ww1) -}
-6918e9bacba58a10365d5d74cdc8060a
-  $wtidySymbol ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5, Strictness: <L,U><S,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text) ->
-                 case Language.Fixpoint.Types.Names.kArgPrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case ds of ww5 { Data.Text.Internal.Text ww6 ww7 ww8 ->
-                 case Data.Text.$wstripPrefix ww6 ww7 ww8 ww1 ww2 ww3 of wild1 {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Names.tidySymbol1
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                   GHC.Base.Just x
-                   -> case Data.Interned.Internal.intern
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fInternedSymbol
-                             x `cast`
-                             (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of ww9 { Language.Fixpoint.Types.Names.S ww10 ww11 ww12 ->
-                      Language.Fixpoint.Types.Names.tidySymbol1
-                        ww10
-                        ww11
-                        ww12 } } } }) -}
-a7d074373cf28ac96a19939aaaf8ab06
-  $wunSuffixSymbol ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><S,U><S,U>, Inline: [0] -}
-60745162ac334e82fde6592a76d2e0c0
-  $wunconsSym ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe
-         (GHC.Types.Char, Language.Fixpoint.Types.Names.Symbol)
-  {- Arity: 3, Strictness: <L,U><L,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<=# ww2 0#) of wild1 {
-                   GHC.Types.False
-                   -> GHC.Base.Just
-                        @ (GHC.Types.Char, Language.Fixpoint.Types.Names.Symbol)
-                        (let {
-                           x :: (GHC.Types.Char, Data.Text.Internal.Text)
-                           = case GHC.Prim.indexWord16Array# ww ww1 of r# { DEFAULT ->
-                             case GHC.Prim.tagToEnum#
-                                    @ GHC.Types.Bool
-                                    (GHC.Prim.ltWord# r# 55296##) of wild2 {
-                               GHC.Types.False
-                               -> case GHC.Prim.tagToEnum#
-                                         @ GHC.Types.Bool
-                                         (GHC.Prim.gtWord# r# 56319##) of wild3 {
-                                    GHC.Types.False
-                                    -> case GHC.Prim.indexWord16Array#
-                                              ww
-                                              (GHC.Prim.+# ww1 1#) of r#1 { DEFAULT ->
-                                       (GHC.Types.C#
-                                          (GHC.Prim.chr#
-                                             (GHC.Prim.+#
-                                                (GHC.Prim.+#
-                                                   (GHC.Prim.uncheckedIShiftL#
-                                                      (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                      10#)
-                                                   (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                                65536#)),
-                                        case GHC.Prim.-# ww2 2# of wild4 {
-                                          DEFAULT
-                                          -> Data.Text.Internal.Text ww (GHC.Prim.+# ww1 2#) wild4
-                                          0# -> Data.Text.Internal.empty }) }
-                                    GHC.Types.True
-                                    -> (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)),
-                                        case GHC.Prim.-# ww2 1# of wild4 {
-                                          DEFAULT
-                                          -> Data.Text.Internal.Text ww (GHC.Prim.+# ww1 1#) wild4
-                                          0# -> Data.Text.Internal.empty }) }
-                               GHC.Types.True
-                               -> (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)),
-                                   case GHC.Prim.-# ww2 1# of wild3 {
-                                     DEFAULT
-                                     -> Data.Text.Internal.Text ww (GHC.Prim.+# ww1 1#) wild3
-                                     0# -> Data.Text.Internal.empty }) } }
-                         } in
-                         (case x of wild { (,) x1 y -> x1 },
-                          case x of wild { (,) x1 y ->
-                          Data.Interned.Internal.intern
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            Language.Fixpoint.Types.Names.$fInternedSymbol
-                            y `cast`
-                            (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }))
-                   GHC.Types.True
-                   -> GHC.Base.Nothing
-                        @ (GHC.Types.Char, Language.Fixpoint.Types.Names.Symbol) }) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  axiom D:R:DescriptionSymbol0::
-      Data.Interned.Internal.Description
-        Language.Fixpoint.Types.Names.Symbol
-        = Language.Fixpoint.Types.Names.R:DescriptionSymbol
-48f09ac5554b5659507cdde0ca23f8ac
-  axiom D:R:UninternedSymbol::
-      Data.Interned.Internal.Uninterned
-        Language.Fixpoint.Types.Names.Symbol
-        = Data.Text.Internal.Text
-4a6c826b689fe9b6e8ce8f2d4ad897b2
-  type LocSymbol =
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-6076edc10b7eed5a7f2e20ce1fdcc4e4
-  type LocText =
-    Language.Fixpoint.Types.Spans.Located Data.Text.Internal.Text
-48f09ac5554b5659507cdde0ca23f8ac
-  newtype instance Data.Interned.Internal.Description
-                     Language.Fixpoint.Types.Names.Symbol
-    = DT Data.Text.Internal.Text
-    RecFlag: Recursive
-204db8dd25cf3eebb857e3f4d24a5853
-  axiom Rep_InternedText::
-      GHC.Generics.Rep Data.Interned.Internal.Text.InternedText
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "InternedText"
-               "Data.Interned.Internal.Text"
-               "intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "InternedText" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "internedTextId")
-                     'GHC.Generics.SourceUnpack
-                     'GHC.Generics.SourceLazy
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 Data.Interned.Internal.Id)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "uninternedText")
-                                      'GHC.Generics.SourceUnpack
-                                      'GHC.Generics.SourceLazy
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.Rec0 Data.Text.Internal.Text)))
-48f09ac5554b5659507cdde0ca23f8ac
-  axiom Rep_Symbol::
-      GHC.Generics.Rep Language.Fixpoint.Types.Names.Symbol
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Symbol"
-               "Language.Fixpoint.Types.Names"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "S" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "_symbolId")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 Data.Interned.Internal.Id)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "symbolRaw")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Data.Text.Internal.Text)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "symbolEncoded")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 Data.Text.Internal.Text))))
-7802d252a68eb00796959f32d35a93ad
-  type SafeText = Data.Text.Internal.Text
-48f09ac5554b5659507cdde0ca23f8ac
-  data Symbol
-    = S {_symbolId :: {-# UNPACK #-}Data.Interned.Internal.Id,
-         symbolRaw :: !Data.Text.Internal.Text,
-         symbolEncoded :: !Data.Text.Internal.Text}
-0626e8bb4c60b162c8065dcfe58d4ead
-  class Symbolic a where
-    symbol :: a -> Language.Fixpoint.Types.Names.Symbol
-    {-# MINIMAL symbol #-}
-ea456b7c5c1734b457eaceaaa012d5ec
-  _symbolId ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Interned.Internal.Id
-  RecSel Left Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 GHC.Types.I# dt }) -}
-0ac2a33f808a6c46876db382ded0c258
-  anfPrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.anfPrefix1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-e07aa82bca2ac7ca2ab149debb7054c8
-  anfPrefix1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lq_anf$"#) -}
-c1d8a192c1714ead9703691284dcf814
-  bitVecApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.bitVecApplyName1) -}
-c2b04ba955a0068b23c10547ce5bddae
-  bitVecApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.bitVecApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-01eb1f6d4f19ca13a222571740d0e52a
-  bitVecApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "bitvec_apply"#) -}
-8659d8279059db3e790c7e6c5ea5c695
-  bitVecApplyName3 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        Language.Fixpoint.Types.Names.bitVecApplyName4 of ds1 { (#,#) ipv ipv1 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   ipv1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) }) -}
-dcb787f74f13a72493f31f55f6fcf87b
-  bitVecApplyName4 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Data.Text.Internal.Text #)
-  {- Arity: 1,
-     Unfolding: (\ (s1 :: GHC.Prim.State#
-                            GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.Prim.newByteArray#
-                        @ GHC.Prim.RealWorld
-                        8#
-                        s1 of ds1 { (#,#) ipv ipv1 ->
-                 Language.Fixpoint.Types.Names.$wouter3
-                   (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                   Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                   Language.Fixpoint.Types.Names.bitVecApplyName5
-                   0#
-                   ipv }) -}
-6c2223a790cbbce733e9ddf7a79345ac
-  bitVecApplyName5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "##"#) -}
-7020c3cba296b7cce9ee10371d92777e
-  bitVecApplyName_$sintSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(LS(LLS)L),1*U(A,U(U,U,U),A)><S(S),1*U(U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: GHC.Types.Int) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { GHC.Types.I# ww9 ->
-                 Language.Fixpoint.Types.Names.$w$sintSymbol
-                   ww5
-                   ww6
-                   ww7
-                   ww9 } } }) -}
-e733c9a4c9e40b0853f73957e759dbeb
-  bitVecName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.bitVecName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-80c165d908bc212b0737e72003ab159d
-  bitVecName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "BitVec"#) -}
-833190a7a8cfebe72de4caf10a5cd319
-  bitVecToIntName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.bitVecToIntName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-4c09d0d2105a95e79fcc2188f6510575
-  bitVecToIntName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "bitvec_to_int"#) -}
-a7cb25f4ae6200ec0fb30523f7ea2268
-  boolApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.boolApplyName1) -}
-162fa0a98090b93c3e623c3fcb74e93a
-  boolApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.boolApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-94382a68426c16f1080d886bc3611b6b
-  boolApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "bool_apply_"#) -}
-9d7c74893e77ca7ed925570c70a80376
-  boolConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.boolConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-aa965c8077ab512c777a8699ed93c2b2
-  boolConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Bool"#) -}
-9d33f51c7225f602107a67923bf43210
-  boolToIntName :: Data.String.IsString a => a
-  {- Arity: 1, Strictness: <C(S),1*C1(U)>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a ($dIsString :: Data.String.IsString a) ->
-                 $dIsString `cast` (Data.String.N:IsString[0] <a>_N)
-                   Language.Fixpoint.Types.Names.boolToIntName1) -}
-a9b017f987998baff53ea47c2edc3e05
-  boolToIntName1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "bool_to_int"#) -}
-cc27784d934e70c697e2e7240aaffb45
-  bvAndName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.bvAndName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-3d03cfa9bbba74ba191fe07ee2fa1d5b
-  bvAndName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "bvand"#) -}
-505f19c374fb8992291f59af417f3415
-  bvOrName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.bvOrName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-812a4ab99aa955cf773f4106870a8ded
-  bvOrName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "bvor"#) -}
-ed36636f996a42e3d326a45fa723e77c
-  consName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.consName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-4fac32c223f2a66fa24a142d742dd2d9
-  consName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "cons"#) -}
-8465bcabc71a22e8d3d2c2956170b033
-  consSym ::
-    GHC.Types.Char
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S(LS(LSS)L),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Char)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { GHC.Types.C# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                 case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                 Language.Fixpoint.Types.Names.$wconsSym ww1 ww7 ww8 ww9 } } }) -}
-21067dc33a1b9d59afe793b7ef69039c
-  divFuncName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.divFuncName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-504edb725104f102081059665cff0d0b
-  divFuncName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Z3_OP_DIV"#) -}
-05bf2b8874ca8502b1e7ac38b9a80e33
-  dropSym ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S(LSL),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                 case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                 Language.Fixpoint.Types.Names.$wdropSym ww1 ww7 ww8 ww9 } } }) -}
-c51cbb557013af0eb20abb71d99dd69f
-  dropSym1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Data.Text.Internal.empty
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-8464bea10cca21e98816b59f50ab6a7e
-  dummyName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.dummyName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-cb7dd02a3be06a94a9ffc10c9ba15092
-  dummyName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "LIQUID$dummy"#) -}
-a9b923c7c6cdb8f9e9593dd6fd31ad20
-  dummySymbol :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.dummyName -}
-26bfaedab359e23097b7157aa3131f0c
-  existPrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.existSymbol1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-b649109f37b6f92f423961de502201cc
-  existSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Integer.Type.Integer -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,U),A)>,
-     Unfolding: (\ (prefix :: Language.Fixpoint.Types.Names.Symbol) ->
-                 let {
-                   x :: Language.Fixpoint.Types.Names.Symbol
-                   = case Language.Fixpoint.Types.Names.existPrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                     case prefix of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                     Data.Interned.Internal.intern
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       Language.Fixpoint.Types.Names.$fInternedSymbol
-                       (Data.Text.append ds ds2)
-                         `cast`
-                       (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } }
-                 } in
-                 \ (i :: GHC.Integer.Type.Integer) ->
-                 case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds ds2)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case GHC.Show.$w$cshowsPrec1
-                        0#
-                        i
-                        (GHC.Types.[] @ GHC.Types.Char) of ww2 { (#,#) ww3 ww4 ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds6 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter4
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           (GHC.Types.: @ GHC.Types.Char ww3 ww4)
-                           0#
-                           ipv }) of ds6 { (#,#) ipv ipv1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        ipv1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt3 ds7 ds8 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds4 ds7)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } } }) -}
-b23f15273fa77bb7402188a2228eb6f1
-  existSymbol1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lq_ext$"#) -}
-0b26e765b8a1752da2787e9fc6812946
-  funConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.funConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-25e8ad068462777137bb4343b89bf620
-  funConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "->"#) -}
-f93dcaf4fe3979d6e57ada71e23db9e1
-  headSym :: Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Char
-  {- Arity: 1, Strictness: <S(LS(SSS)L),1*U(A,U(U,U,U),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww6 (GHC.Prim.+# ww6 ww7)) of wild1 {
-                   GHC.Types.False
-                   -> case GHC.Prim.indexWord16Array# ww5 ww6 of r# { DEFAULT ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.geWord# r# 55296##) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#))
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.leWord# r# 56319##) of wild3 {
-                             GHC.Types.False
-                             -> GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#))
-                             GHC.Types.True
-                             -> case GHC.Prim.indexWord16Array#
-                                       ww5
-                                       (GHC.Prim.+# ww6 1#) of r#1 { DEFAULT ->
-                                GHC.Types.C#
-                                  (GHC.Prim.chr#
-                                     (GHC.Prim.+#
-                                        (GHC.Prim.+#
-                                           (GHC.Prim.uncheckedIShiftL#
-                                              (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                              10#)
-                                           (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                        65536#)) } } } }
-                   GHC.Types.True
-                   -> case Data.Text.Internal.Fusion.Common.head_empty
-                      ret_ty GHC.Types.Char
-                      of {} } } }) -}
-4ab0157cfdbb81e9834f5fc91b8839f3
-  intApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.intApplyName1) -}
-089aff3e461e095cd7378b1c1c5ca79a
-  intApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.intApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-68fa05a4fbede1934561c89ba0aa64cb
-  intApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "int_apply_"#) -}
-6428e688e6c8bd56e1f50b5eb6ad378e
-  intArgName :: GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.intArgName1) -}
-0215f77d50ddd8fc92e6e915b045eded
-  intArgName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.intArgName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-13c052df58648f5190d07ed9df179c3a
-  intArgName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lam_int_arg"#) -}
-e3ca25b3b5ce8f9f7ec4158e72746e1c
-  intSymbol ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Names.Symbol
-    -> a -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><S(LS(LLS)L),1*U(A,U(U,U,U),A)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (w2 :: a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Names.$wintSymbol
-                   @ a
-                   w
-                   ww5
-                   ww6
-                   ww7
-                   w2 } }) -}
-a42a7ee4e6e6bf413760f114cd1c5ec3
-  isDummy ::
-    Language.Fixpoint.Types.Names.Symbolic a => a -> GHC.Types.Bool
-  {- Arity: 2, Strictness: <C(S(SLL)),1*C1(U(U,A,A))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dSymbolic :: Language.Fixpoint.Types.Names.Symbolic a)
-                   (a1 :: a) ->
-                 case $dSymbolic
-                        `cast`
-                      (Language.Fixpoint.Types.Names.N:Symbolic[0] <a>_N)
-                        a1 of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Language.Fixpoint.Types.Names.dummyName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } }) -}
-fce949627de0b7387ed9b777cad06478
-  isLitSymbol ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.isPrefixOfSym
-                   Language.Fixpoint.Types.Names.litPrefix) -}
-4c3a8cf3d56c60083b8e4616d1ee7dfa
-  isLitSymbol1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lit$"#) -}
-8d13c5d0098ab6b146558cf15cc940cb
-  isNonSymbol ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 case Language.Fixpoint.Types.Names.nonSymbol of wild1 { Language.Fixpoint.Types.Names.S dt1 ds3 ds4 ->
-                 GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) } }) -}
-41702d52373f9b03403e4eb6b414eaab
-  isNontrivialVV ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <S(SLL),1*U(U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.isNontrivialVV1 of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case x of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild2 {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False } } }) -}
-659cf5cf2a0a923c977249299afadfd4
-  isNontrivialVV1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.vv
-                   (GHC.Base.Nothing @ GHC.Integer.Type.Integer)) -}
-9607183a94529023225b6f290d52f6a5
-  isPrefixOfSym ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(LSS)L),1*U(A,U(U,U,U),A)><S(LSL),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                 case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Names.$wisPrefixOfSym
-                   ww5
-                   ww6
-                   ww7
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-3623e2e6314128d5b44a2e3c98c27987
-  isSuffixOfSym ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LS(LLS)L),1*U(A,U(U,U,U),A)><S(LS(LLS)L),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                 case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Names.$wisSuffixOfSym
-                   ww5
-                   ww6
-                   ww7
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-05976301f0b92e3b0dfea7f1d96e9410
-  kArgPrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.kArgSymbol1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-262c6e8ecea1e0a5e6a338e1da93e761
-  kArgSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(LSL),1*U(A,U(U,U,U),A)><S(LSL),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                 case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Names.$wkArgSymbol
-                   ww5
-                   ww6
-                   ww7
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-fd005f3afd71fa2ab5614be2401f9735
-  kArgSymbol1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lq_karg$"#) -}
-d844da24cbcbb857f0cf79953babe2df
-  lambdaName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.lambdaName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-f0e37f3ea20291a9f5505928b6c676ce
-  lambdaName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "smt_lambda"#) -}
-82ca3ece250e1a7bb8819a80286e9117
-  lengthSym :: Language.Fixpoint.Types.Names.Symbol -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LS(LSS)L),1*U(A,U(U,U,U),A)>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case Language.Fixpoint.Types.Names.$wlengthSym
-                        ww5
-                        ww6
-                        ww7 of ww8 { DEFAULT ->
-                 GHC.Types.I# ww8 } } }) -}
-4113185c856aab9be37cba78888b077d
-  listConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.listConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-ab47c14676d9a931552ddfe62e517a3f
-  listConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "[]"#) -}
-54dd753466623be0c46238bdbf5a223f
-  listLConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.listLConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-50096f35cd36ef8a442f12eb498f68f9
-  listLConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "List"#) -}
-2f85e6b69fb1ddbc47d6fa314846465b
-  litPrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.isLitSymbol1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-c75a305fa091f5ad50247c8e57607fe0
-  litSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <S(LSL),1*U(A,U(U,U,U),A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case Language.Fixpoint.Types.Names.litPrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case s of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.Internal.Fusion.unstream
-                      (Data.Text.Internal.Fusion.Common.append
-                         (Data.Text.Internal.Fusion.stream ds)
-                         (Data.Text.Internal.Fusion.stream ds2)))
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } }) -}
-ddb317d661ab32350988590f7250f5a7
-  mapApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.mapApplyName1) -}
-b85be32e8e74a232a45de01c6cd21e5c
-  mapApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.mapApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-ebe56e1389dc6ccc016b92ed339bf485
-  mapApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "map_apply_"#) -}
-27aaea04a10e9d7d92d914234f1660b7
-  mapConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.mapConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-915200fea5a36483d17a223c2943492d
-  mapConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Map_t"#) -}
-850ac887e9f7e9682c6cec9b99cb2e14
-  mapToIntName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.mapToIntName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-7415a946ed4933b9cd0aec2825974d78
-  mapToIntName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "map_to_int"#) -}
-43af320c45dc2b3a6646f173f8434c27
-  mulFuncName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.mulFuncName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-ea036d17f28f7e3bb5bd8d6492316014
-  mulFuncName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Z3_OP_MUL"#) -}
-34c4b5ad364c3b4dc20f882752b534af
-  nilName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.nilName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-fe7610a75a3d9f30fa8bca6ea190f50c
-  nilName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "nil"#) -}
-c533f408e275a93031358a3e73ca199d
-  nonSymbol :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Data.Text.Internal.empty_
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-3ab6683e69c9b422c09838a37f1eebe5
-  preludeName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.preludeName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-36126b80d1c71ecb9f236bf3c32822e8
-  preludeName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Prelude"#) -}
-70e6f07d1b9819e49e94a46ecbff4e62
-  prims :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims52
-                   Language.Fixpoint.Types.Names.prims1) -}
-eb86579abb25736331932bb94ddf3610
-  prims1 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims50
-                   Language.Fixpoint.Types.Names.prims2) -}
-c2b3a9e7767518abd2cd2adfe41e417d
-  prims10 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims40
-                   Language.Fixpoint.Types.Names.prims11) -}
-7162f9b6f622b032f15f1f50be477279
-  prims11 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims38
-                   Language.Fixpoint.Types.Names.prims12) -}
-0aceb26e7705d542410f7d6861e4ee2b
-  prims12 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims36
-                   Language.Fixpoint.Types.Names.prims13) -}
-2525e3db8b6e880cb028e214e3a61c4f
-  prims13 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims34
-                   Language.Fixpoint.Types.Names.prims14) -}
-56063b18b9002fc1852e33fe9d3095be
-  prims14 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims32
-                   Language.Fixpoint.Types.Names.prims15) -}
-d6a30dfb3cb0c3f056a740b6420fe34b
-  prims15 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.mapConName
-                   Language.Fixpoint.Types.Names.prims16) -}
-d5f0fc44862a9880bc313b2df40db3f7
-  prims16 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims30
-                   Language.Fixpoint.Types.Names.prims17) -}
-2b2639cb4fd848ea505a438bb76bf002
-  prims17 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims28
-                   Language.Fixpoint.Types.Names.prims18) -}
-781fb2624a85b642497aca297a986362
-  prims18 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.size32Name
-                   Language.Fixpoint.Types.Names.prims19) -}
-c6c4c91954595d960a86061ed7e1ce2c
-  prims19 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.size64Name
-                   Language.Fixpoint.Types.Names.prims20) -}
-78525ba6e72ee849aec4a269998b7e27
-  prims2 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.vvName
-                   Language.Fixpoint.Types.Names.prims3) -}
-d8eb3918994538fc52d331d9f596391b
-  prims20 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.bitVecName
-                   Language.Fixpoint.Types.Names.prims21) -}
-422a72c755623d4020fdf20440014bc6
-  prims21 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.bvOrName
-                   Language.Fixpoint.Types.Names.prims22) -}
-6cca63003657c14afc75b2a18c17a72c
-  prims22 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.bvAndName
-                   Language.Fixpoint.Types.Names.prims23) -}
-37c42fad4eb921df405b65d32a1f215d
-  prims23 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims26
-                   Language.Fixpoint.Types.Names.prims24) -}
-0ecd8c2d23e147786585f21b00d95856
-  prims24 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.nilName
-                   Language.Fixpoint.Types.Names.prims25) -}
-3b2aafd15c4f29426944c171ac694f50
-  prims25 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.consName
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)) -}
-15f7f2a66c7e4067eaa168da42420013
-  prims26 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims27
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-9fbdca1f215c60ab2f6a0b871aa2108f
-  prims27 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "FAppTy"#) -}
-3b357311bb8442ef6a92bbf83c2238b8
-  prims28 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims29
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-83fd0cda20c2ea7ff531ddb211f1f274
-  prims29 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Map_store"#) -}
-b064d990b6efd07b48e712911dab62b3
-  prims3 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims48
-                   Language.Fixpoint.Types.Names.prims4) -}
-1371f3650d7caa2f3b0d37d3b58763e8
-  prims30 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims31
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-7f9e172d80b372abd314ff3e3bcbb620
-  prims31 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Map_select"#) -}
-6f847f865e55dd844fb639461e11bb69
-  prims32 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims33
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-8926a14cd14daa333e98f36f427a628b
-  prims33 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_sub"#) -}
-43f14efdb55293d53c7928452c01b9ff
-  prims34 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims35
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-7f34f3c07f0a69174966281751cc1e36
-  prims35 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_mem"#) -}
-7a622b29308dd2ef79d8e5c8f5d23f45
-  prims36 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims37
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-a9640cdd1621b1a27aa81d998e48719f
-  prims37 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_empty"#) -}
-4bf85535de217615d932943145dc27c8
-  prims38 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims39
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-30f2d862c3c181191bb6a6fe944d9e71
-  prims39 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_emp"#) -}
-5f5e889b40fb70d259e0e0d1558a17a4
-  prims4 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.listLConName
-                   Language.Fixpoint.Types.Names.prims5) -}
-d42235816184cd957ff0e86a1f7ad8e5
-  prims40 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims41
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-9a809aacabc03b698227ea24dd3d2ca7
-  prims41 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_dif"#) -}
-5e59724d0b6d98f7f5a6f3d66b76a81d
-  prims42 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims43
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-b0809bb820e34b7a9c88997eeb8b028f
-  prims43 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_cap"#) -}
-723b607d7bb7e3cb5d6ac2d42f6c9c51
-  prims44 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims45
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-e0cc574c551d73b53016f835dbab7fd3
-  prims45 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_cup"#) -}
-9d86969c320a8f9fe282406850aeab06
-  prims46 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims47
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-00622049bf8730618da60d83d07f3b98
-  prims47 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_sng"#) -}
-3a065c15615ddea725f329dc8c7c2733
-  prims48 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims49
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-1e23a0c82729ed3b0b82db842f698b20
-  prims49 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Pred"#) -}
-c58145c5b8969203a03e5c9a3571c391
-  prims5 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.listConName
-                   Language.Fixpoint.Types.Names.prims6) -}
-663684a5504e1f1550da412202e84b3f
-  prims50 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims51
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-2106954788f19dd77d7f2de11962f63e
-  prims51 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "HProp"#) -}
-2f981a621da6ba6766f802c127bc246f
-  prims52 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.prims53
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-1e1cc81d30158372b4da600cf0f3eaa5
-  prims53 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Prop"#) -}
-b6a3ccbe4538e13d774fb4af4a09a8ba
-  prims6 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.setConName
-                   Language.Fixpoint.Types.Names.prims7) -}
-0c9b9642e8a879ef6a9af4190303596e
-  prims7 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims46
-                   Language.Fixpoint.Types.Names.prims8) -}
-2e113ebe5af3c396a3a1c6099e8896b3
-  prims8 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims44
-                   Language.Fixpoint.Types.Names.prims9) -}
-22835216b0c59a29e3eff76979b96079
-  prims9 :: [Language.Fixpoint.Types.Names.Symbol]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.prims42
-                   Language.Fixpoint.Types.Names.prims10) -}
-babaf3aa9ec579d8932f0f002e849304
-  realApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.realApplyName1) -}
-56f2a40fe1d1f382cc4e8c01ad15d342
-  realApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.realApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-25bdd950b159eba18d2aaae2132d42a9
-  realApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "real_apply_"#) -}
-bf741618648c7a866047d91e92aca515
-  realToIntName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.realToIntName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-2ae80e4a771df90df2b38c389c847b2a
-  realToIntName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "real_to_int"#) -}
-c15461b63d6bea0b5920bb4bae4928c9
-  renamePrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.renameSymbol1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-9e1a1bd4c9b876ef906bfe825c73742d
-  renameSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,U),A)>,
-     Unfolding: (\ (prefix :: Language.Fixpoint.Types.Names.Symbol) ->
-                 let {
-                   x :: Language.Fixpoint.Types.Names.Symbol
-                   = case Language.Fixpoint.Types.Names.renamePrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                     case prefix of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                     Data.Interned.Internal.intern
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       Language.Fixpoint.Types.Names.$fInternedSymbol
-                       (Data.Text.append ds ds2)
-                         `cast`
-                       (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } }
-                 } in
-                 \ (i :: GHC.Types.Int) ->
-                 case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds ds2)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case i of ww2 { GHC.Types.I# ww3 ->
-                 case GHC.Show.$wshowSignedInt
-                        0#
-                        ww3
-                        (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds6 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter8
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           (GHC.Types.: @ GHC.Types.Char ww5 ww6)
-                           0#
-                           ipv }) of ds6 { (#,#) ipv ipv1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        ipv1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt3 ds7 ds8 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds4 ds7)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } } } }) -}
-aad60d36a9f839a38b13fe910f87e005
-  renameSymbol1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lq_rnm$"#) -}
-48f09ac5554b5659507cdde0ca23f8ac
-  sCache ::
-    Data.Interned.Internal.Cache Language.Fixpoint.Types.Names.Symbol
-  {- Inline: NOINLINE -}
-1c534130f995a9b6cd7d384d6eebf8b0
-  setApplyName ::
-    GHC.Types.Int -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-                   Language.Fixpoint.Types.Names.setApplyName1) -}
-1164fd1941b41846e8d16808e441f1f4
-  setApplyName1 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.setApplyName2
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-c8c89a9a75c680fb4537c19b66ee99db
-  setApplyName2 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "set_apply_"#) -}
-1d0f81ce4f6d2857d0d0f587eedcb6c3
-  setConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.setConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-33822115d4e6e80da6c152f278b5f226
-  setConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Set_Set"#) -}
-0e6624be05e2b19e3bb7d51886ba5fc1
-  setToIntName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.setToIntName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-86040c3c7ec2facc91be35eb1e71d6f4
-  setToIntName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "set_to_int"#) -}
-9dde6f1d287cc6bef86214a3aec859d3
-  size32Name :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.size32Name1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-590780f0b535de4986a6436a42a8d4c1
-  size32Name1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Size32"#) -}
-c54b5b34d899e6fa20ee4e270c10e2a5
-  size64Name :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.size64Name1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-67b63e0091bdf0709502b420edb116d2
-  size64Name1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Size64"#) -}
-8f2d7586bedd92b3d2ca070cd9d9606e
-  strConName :: Data.String.IsString a => a
-  {- Arity: 1, Strictness: <C(S),1*C1(U)>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ a ($dIsString :: Data.String.IsString a) ->
-                 $dIsString `cast` (Data.String.N:IsString[0] <a>_N)
-                   Language.Fixpoint.Types.Names.strConName1) -}
-9c6e57ef328a753f601aff468e0fa27d
-  strConName1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Str"#) -}
-68070d94b1ebdb812637801dba5f520c
-  stripPrefix ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(LS(SSS)L),1*U(A,U(U,U,U),A)><S(LS(SSS)L),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                 case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Names.$wstripPrefix
-                   ww5
-                   ww6
-                   ww7
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-f64bb5413c73d049867763d988ae75e5
-  suffixSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(LS(LLS)L),1*U(A,U(U,U,U),A)><S(LSL),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Names.S ww9 ww10 ww11 ->
-                 case ww10 of ww12 { Data.Text.Internal.Text ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Names.$wsuffixSymbol
-                   ww5
-                   ww6
-                   ww7
-                   ww13
-                   ww14
-                   ww15 } } } }) -}
-c771e2dddb18af0127beb2e9fa50af8c
-  symChars :: Data.HashSet.HashSet GHC.Types.Char
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.symChars1
-                  `cast`
-                (Sym (Data.HashSet.N:HashSet[0] <GHC.Types.Char>_N)) -}
-9a6f75538e50bc1e994068c090e57696
-  symChars1 :: Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Unfolding: (case Data.HashMap.Base.insert
-                        @ GHC.Types.Char
-                        @ ()
-                        GHC.Classes.$fEqChar
-                        Data.Hashable.Class.$fHashableChar
-                        Language.Fixpoint.Types.Names.symChars11
-                        GHC.Tuple.()
-                        (Data.HashMap.Base.Empty @ GHC.Types.Char @ ()) of z { DEFAULT ->
-                 case Data.HashMap.Base.insert
-                        @ GHC.Types.Char
-                        @ ()
-                        GHC.Classes.$fEqChar
-                        Data.Hashable.Class.$fHashableChar
-                        Language.Fixpoint.Types.Names.symChars10
-                        GHC.Tuple.()
-                        z of z1 { DEFAULT ->
-                 case Data.HashMap.Base.insert
-                        @ GHC.Types.Char
-                        @ ()
-                        GHC.Classes.$fEqChar
-                        Data.Hashable.Class.$fHashableChar
-                        Language.Fixpoint.Types.Names.symChars9
-                        GHC.Tuple.()
-                        z1 of z2 { DEFAULT ->
-                 Language.Fixpoint.Types.Names.$wpoly_go4
-                   @ ()
-                   0#
-                   Language.Fixpoint.Types.Names.symChars3
-                   (Data.HashMap.Base.insert
-                      @ GHC.Types.Char
-                      @ ()
-                      GHC.Classes.$fEqChar
-                      Data.Hashable.Class.$fHashableChar
-                      Language.Fixpoint.Types.Names.symChars2
-                      GHC.Tuple.()
-                      z2) } } }) -}
-0d2b9fcb138c7af58963c2cffb8b4966
-  symChars10 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '#'#) -}
-97fb16034c850fcd8f9fab518d1eea78
-  symChars11 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '%'#) -}
-47041ac39afd48ac9790645dcc917341
-  symChars2 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '\''#) -}
-f5f3368d364e12a022dd2c45a0b5f3be
-  symChars3 :: Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Unfolding: (case Data.HashMap.Base.insert
-                        @ GHC.Types.Char
-                        @ ()
-                        GHC.Classes.$fEqChar
-                        Data.Hashable.Class.$fHashableChar
-                        Language.Fixpoint.Types.Names.symChars8
-                        GHC.Tuple.()
-                        (Data.HashMap.Base.Empty @ GHC.Types.Char @ ()) of z { DEFAULT ->
-                 Language.Fixpoint.Types.Names.$wpoly_go4
-                   @ ()
-                   0#
-                   Language.Fixpoint.Types.Names.symChars5
-                   (Data.HashMap.Base.insert
-                      @ GHC.Types.Char
-                      @ ()
-                      GHC.Classes.$fEqChar
-                      Data.Hashable.Class.$fHashableChar
-                      Language.Fixpoint.Types.Names.symChars4
-                      GHC.Tuple.()
-                      z) }) -}
-3dca390885ef81847f2948da4ee9f4cd
-  symChars4 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '.'#) -}
-5340261d3801f715de7441bdecc3c554
-  symChars5 :: Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Unfolding: (Language.Fixpoint.Types.Names.$wpoly_go4
-                   @ ()
-                   0#
-                   Language.Fixpoint.Types.Names.symChars7
-                   Language.Fixpoint.Types.Names.symChars6) -}
-e38158f0bea46d5e8144f2c589348503
-  symChars6 :: Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Unfolding: (Language.Fixpoint.Types.Names.symChars_go
-                   48#
-                   (Data.HashMap.Base.Empty @ GHC.Types.Char @ ())) -}
-430abad4905f31fa151bcda260a8b337
-  symChars7 :: Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Unfolding: (Language.Fixpoint.Types.Names.symChars_go1
-                   97#
-                   (Data.HashMap.Base.Empty @ GHC.Types.Char @ ())) -}
-6ec472eef238f2e1cbd76ef39c29c83a
-  symChars8 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '_'#) -}
-1f7c8952c190ef0b1b57c38df007ef86
-  symChars9 :: GHC.Types.Char
-  {- HasNoCafRefs, Unfolding: (GHC.Types.C# '$'#) -}
-b05983e1c670ef3dd79a2df14fecdda7
-  symChars_go ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Char ()
-    -> Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Arity: 2, Strictness: <S,U><S,1*U> -}
-e2192ab758ae298824b5f09b09ad2f5b
-  symChars_go1 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap GHC.Types.Char ()
-    -> Data.HashMap.Base.HashMap GHC.Types.Char ()
-  {- Arity: 2, Strictness: <S,U><S,1*U> -}
-0ec180cc4dfe5d082b83ec705f9f396a
-  symbolEncoded ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Text.Internal.Text
-  RecSel Left Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 ds2 }) -}
-6b2425765dc76e3a209be3f85029a88e
-  symbolRaw ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Text.Internal.Text
-  RecSel Left Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U(U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                 ds1 }) -}
-81865ef12754b3a346967a9345fac225
-  symbolSafeString ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Base.String
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS(LSS)),1*U(A,A,U(U,U,U))>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Names.$wsymbolSafeString
-                   ww5
-                   ww6
-                   ww7 } }) -}
-526a21b244d2aaefeee84da8dfb69719
-  symbolSafeText ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.SafeText
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.symbolEncoded -}
-819d69bd3146ce4a14769a9d11f1deac
-  symbolString ::
-    Language.Fixpoint.Types.Names.Symbol -> GHC.Base.String
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LS(LSS)L),1*U(A,U(U,U,U),A)>, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Names.$wsymbolString ww5 ww6 ww7 } }) -}
-13814968e12e393cf26b05198caca520
-  symbolText ::
-    Language.Fixpoint.Types.Names.Symbol -> Data.Text.Internal.Text
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U(U,U,U),A)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.symbolRaw -}
-0a512abdee4d24495fc35a1fbc40416a
-  symbolicString ::
-    Language.Fixpoint.Types.Names.Symbolic a => a -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S(LS(LSS)L)),1*C1(U(A,U(U,U,U),A))><L,U>,
-     Unfolding: (\ @ a
-                   ($dSymbolic :: Language.Fixpoint.Types.Names.Symbolic a)
-                   (eta :: a) ->
-                 case $dSymbolic
-                        `cast`
-                      (Language.Fixpoint.Types.Names.N:Symbolic[0] <a>_N)
-                        eta of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case ds of wild1 { Data.Text.Internal.Text dt1 dt2 dt3 ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# dt2 dt3
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww end) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# dt1 ww of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild3 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild4 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           dt1
-                                           (GHC.Prim.+# ww 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 $wunfold dt2 } }) -}
-0c008559a7f5308a5d259cc16e58983f
-  tempPrefix :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.tempPrefix1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-84d1c7844dd529c60d4cc9f7e955a678
-  tempPrefix1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "lq_tmp$"#) -}
-b4c8572afb1b31fcc34ec3529b1475d0
-  tempSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Integer.Type.Integer -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <L,1*U(A,U(U,U,U),A)>,
-     Unfolding: (\ (prefix :: Language.Fixpoint.Types.Names.Symbol) ->
-                 let {
-                   x :: Language.Fixpoint.Types.Names.Symbol
-                   = case Language.Fixpoint.Types.Names.tempPrefix of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                     case prefix of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                     Data.Interned.Internal.intern
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       Language.Fixpoint.Types.Names.$fInternedSymbol
-                       (Data.Text.append ds ds2)
-                         `cast`
-                       (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } }
-                 } in
-                 \ (i :: GHC.Integer.Type.Integer) ->
-                 case x of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds ds2)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case GHC.Show.$w$cshowsPrec1
-                        0#
-                        i
-                        (GHC.Types.[] @ GHC.Types.Char) of ww2 { (#,#) ww3 ww4 ->
-                 case GHC.Magic.runRW#
-                        @ 'GHC.Types.PtrRepLifted
-                        @ Data.Text.Internal.Text
-                        (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                         case GHC.Prim.newByteArray#
-                                @ GHC.Prim.RealWorld
-                                8#
-                                s1 of ds6 { (#,#) ipv ipv1 ->
-                         Language.Fixpoint.Types.Names.$wouter9
-                           (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                           Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                           (GHC.Types.: @ GHC.Types.Char ww3 ww4)
-                           0#
-                           ipv }) of ds6 { (#,#) ipv ipv1 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        ipv1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt3 ds7 ds8 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds4 ds7)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } } }) -}
-cca542d5851ae4002e9e23ae8ae1cf7c
-  textSymbol ::
-    Data.Text.Internal.Text -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Names.$fSymbolicText1
-                  `cast`
-                (Sub (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])
-                 ->_R <Language.Fixpoint.Types.Names.Symbol>_R) -}
-b70497f43e52e4ceb47dfd12bfc678f1
-  tidySymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <S(LS(SSS)S),1*U(U,U(U,U,U),U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Names.$wtidySymbol
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3 } }) -}
-6d9498b85b464852e2fc165501b40962
-  tidySymbol1 ::
-    GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 3,
-     Unfolding: (\ (ww :: GHC.Prim.Int#)[OneShot]
-                   (ww1 :: Data.Text.Internal.Text)[OneShot]
-                   (ww2 :: Data.Text.Internal.Text)[OneShot] ->
-                 case ww1 of ww3 { Data.Text.Internal.Text ww4 ww5 ww6 ->
-                 case Language.Fixpoint.Types.Names.$wunSuffixSymbol
-                        ww
-                        ww4
-                        ww5
-                        ww6
-                        ww2 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case ww9 of ww11 { Data.Text.Internal.Text ww12 ww13 ww14 ->
-                 Language.Fixpoint.Types.Names.$wunSuffixSymbol
-                   ww8
-                   ww12
-                   ww13
-                   ww14
-                   ww10 } } }) -}
-f66fb15765dc599a241c368644fe2f5b
-  tupConName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.tupConName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-d27dca21dfd6e6486846a87177ebbbef
-  tupConName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "Tuple"#) -}
-81afb8c736c7ae134a4127b3c32d4a46
-  unLitSymbol ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Names.stripPrefix
-                   Language.Fixpoint.Types.Names.litPrefix) -}
-25ffcff080e9bf7bcd926b625c0f7381
-  unconsSym ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Base.Maybe
-         (GHC.Types.Char, Language.Fixpoint.Types.Names.Symbol)
-  {- Arity: 1, Strictness: <S(LS(LLS)L),1*U(A,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Names.$wunconsSym ww5 ww6 ww7 } }) -}
-4b45795aef057f81c9dd51fae36c4b72
-  vv ::
-    GHC.Base.Maybe GHC.Integer.Type.Integer
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: GHC.Base.Maybe GHC.Integer.Type.Integer) ->
-                 case ds of wild {
-                   GHC.Base.Nothing -> Language.Fixpoint.Types.Names.vvName
-                   GHC.Base.Just i
-                   -> case Language.Fixpoint.Types.Names.vvName of wild1 { Language.Fixpoint.Types.Names.S dt ds1 ds2 ->
-                      case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild2 { Language.Fixpoint.Types.Names.S dt1 ds3 ds4 ->
-                      case Data.Interned.Internal.intern
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fInternedSymbol
-                             (Data.Text.append ds1 ds3)
-                               `cast`
-                             (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt2 ds5 ds6 ->
-                      case GHC.Show.$w$cshowsPrec1
-                             0#
-                             i
-                             (GHC.Types.[] @ GHC.Types.Char) of ww2 { (#,#) ww3 ww4 ->
-                      case GHC.Magic.runRW#
-                             @ 'GHC.Types.PtrRepLifted
-                             @ Data.Text.Internal.Text
-                             (\ (s1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                              case GHC.Prim.newByteArray#
-                                     @ GHC.Prim.RealWorld
-                                     8#
-                                     s1 of ds7 { (#,#) ipv ipv1 ->
-                              Language.Fixpoint.Types.Names.$wouter7
-                                (Data.Text.Array.MArray @ GHC.Prim.RealWorld ipv1)
-                                Language.Fixpoint.Types.Names.$fIsStringSymbol1
-                                (GHC.Types.: @ GHC.Types.Char ww3 ww4)
-                                0#
-                                ipv }) of ds7 { (#,#) ipv ipv1 ->
-                      case Data.Interned.Internal.intern
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fInternedSymbol
-                             ipv1
-                               `cast`
-                             (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild4 { Language.Fixpoint.Types.Names.S dt3 ds8 ds9 ->
-                      Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds5 ds8)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } } } } }) -}
-a4b3f1f3ff639683c70d24afe93cd83a
-  vvCon :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.vvName of wild { Language.Fixpoint.Types.Names.S dt ds ds1 ->
-                 case Language.Fixpoint.Types.Names.bitVecApplyName3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds2 ds3 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        (Data.Text.append ds ds2)
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild2 { Language.Fixpoint.Types.Names.S dt2 ds4 ds5 ->
-                 case Data.Interned.Internal.intern
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fInternedSymbol
-                        Language.Fixpoint.Types.Names.vvCon1
-                          `cast`
-                        (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) of wild3 { Language.Fixpoint.Types.Names.S dt3 ds6 ds7 ->
-                 Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   (Data.Text.append ds4 ds6)
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))) } } } }) -}
-e27078812ebec4e8b103254becc31bc6
-  vvCon1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "F"#) -}
-ccc19ee1d0e7075ff77f0067f757ed2d
-  vvName :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Data.Interned.Internal.intern
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fInternedSymbol
-                   Language.Fixpoint.Types.Names.vvName1
-                     `cast`
-                   (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0])))) -}
-73a3d72878310b4cb014c23094d12d45
-  vvName1 :: Data.Text.Internal.Text
-  {- Unfolding: (Data.Text.Show.unpackCString# "VV"#) -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fBinarySymbol
-instance Data.Data.Data [Data.Interned.Internal.Text.InternedText]
-  = Language.Fixpoint.Types.Names.$fDataInternedText
-instance Data.Data.Data [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fDataSymbol
-instance GHC.Classes.Eq [Data.Interned.Internal.Description]
-  = Language.Fixpoint.Types.Names.$fEqDescription
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fEqSymbol
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fFixpointSymbol
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Data.Text.Internal.Text]
-  = Language.Fixpoint.Types.Names.$fFixpointText
-instance GHC.Generics.Generic [Data.Interned.Internal.Text.InternedText]
-  = Language.Fixpoint.Types.Names.$fGenericInternedText
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fGenericSymbol
-instance Data.Hashable.Class.Hashable [Data.Interned.Internal.Description]
-  = Language.Fixpoint.Types.Names.$fHashableDescription
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fHashableSymbol
-instance Data.Interned.Internal.Interned [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fInternedSymbol
-instance Data.String.IsString [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fIsStringSymbol
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fNFDataSymbol
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fOrdSymbol
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fPPrintSymbol
-instance GHC.Show.Show [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fShowSymbol
-instance Language.Fixpoint.Types.Names.Symbolic [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Names.$fSymbolicLocated
-instance Language.Fixpoint.Types.Names.Symbolic [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fSymbolicSymbol
-instance Language.Fixpoint.Types.Names.Symbolic [Data.Text.Internal.Text]
-  = Language.Fixpoint.Types.Names.$fSymbolicText
-instance Language.Fixpoint.Types.Names.Symbolic [[]]
-  = Language.Fixpoint.Types.Names.$fSymbolic[]
-instance Data.Interned.Internal.Uninternable [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.$fUninternableSymbol
-family instance Data.Interned.Internal.Description [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.D:R:DescriptionSymbol0
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.Rep_Symbol
-family instance GHC.Generics.Rep [Data.Interned.Internal.Text.InternedText]
-  = Language.Fixpoint.Types.Names.Rep_InternedText
-family instance Data.Interned.Internal.Uninterned [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Names.D:R:UninternedSymbol
-"SPEC intSymbol @ Int" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                    GHC.Types.Int)
-  Language.Fixpoint.Types.Names.intSymbol @ GHC.Types.Int $dShow
-  = Language.Fixpoint.Types.Names.bitVecApplyName_$sintSymbol
-"SPEC/Language.Fixpoint.Types.Names $dm< @ Symbol" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                               Language.Fixpoint.Types.Names.Symbol)
-  GHC.Classes.$dm< @ Language.Fixpoint.Types.Names.Symbol $dOrd
-  = Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm<
-"SPEC/Language.Fixpoint.Types.Names $dm<= @ Symbol" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                Language.Fixpoint.Types.Names.Symbol)
-  GHC.Classes.$dm<= @ Language.Fixpoint.Types.Names.Symbol $dOrd
-  = Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm<=
-"SPEC/Language.Fixpoint.Types.Names $dm> @ Symbol" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                               Language.Fixpoint.Types.Names.Symbol)
-  GHC.Classes.$dm> @ Language.Fixpoint.Types.Names.Symbol $dOrd
-  = Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm>
-"SPEC/Language.Fixpoint.Types.Names $dm>= @ Symbol" [ALWAYS] forall ($dOrd :: GHC.Classes.Ord
-                                                                                Language.Fixpoint.Types.Names.Symbol)
-  GHC.Classes.$dm>= @ Language.Fixpoint.Types.Names.Symbol $dOrd
-  = Language.Fixpoint.Types.Names.$fOrdSymbol_$s$dm>=
-"SPEC/Language.Fixpoint.Types.Names $dmcacheWidth @ Symbol" [ALWAYS] forall ($dInterned :: Data.Interned.Internal.Interned
-                                                                                             Language.Fixpoint.Types.Names.Symbol)
-  Data.Interned.Internal.$dmcacheWidth @ Language.Fixpoint.Types.Names.Symbol
-                                       $dInterned
-  = Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmcacheWidth
-"SPEC/Language.Fixpoint.Types.Names $dmdataCast1 @ InternedText" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              Data.Interned.Internal.Text.InternedText)
-  Data.Data.$dmdataCast1 @ Data.Interned.Internal.Text.InternedText
-                         $dData
-  = Language.Fixpoint.Types.Names.$fDataInternedText_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Types.Names $dmdataCast1 @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-  Data.Data.$dmdataCast1 @ Language.Fixpoint.Types.Names.Symbol
-                         $dData
-  = Language.Fixpoint.Types.Names.$fDataSymbol_$s$dmdataCast1
-"SPEC/Language.Fixpoint.Types.Names $dmdataCast2 @ InternedText" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                              Data.Interned.Internal.Text.InternedText)
-  Data.Data.$dmdataCast2 @ Data.Interned.Internal.Text.InternedText
-                         $dData
-  = Language.Fixpoint.Types.Names.$fDataInternedText_$s$dmdataCast2
-"SPEC/Language.Fixpoint.Types.Names $dmdataCast2 @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-  Data.Data.$dmdataCast2 @ Language.Fixpoint.Types.Names.Symbol
-                         $dData
-  = Language.Fixpoint.Types.Names.$fDataSymbol_$s$dmdataCast2
-"SPEC/Language.Fixpoint.Types.Names $dmmodifyAdvice @ Symbol" [ALWAYS] forall ($dInterned :: Data.Interned.Internal.Interned
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-  Data.Interned.Internal.$dmmodifyAdvice @ Language.Fixpoint.Types.Names.Symbol
-                                         $dInterned
-  = Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmmodifyAdvice
-"SPEC/Language.Fixpoint.Types.Names $dmseedIdentity @ Symbol" [ALWAYS] forall ($dInterned :: Data.Interned.Internal.Interned
-                                                                                               Language.Fixpoint.Types.Names.Symbol)
-  Data.Interned.Internal.$dmseedIdentity @ Language.Fixpoint.Types.Names.Symbol
-                                         $dInterned
-  = Language.Fixpoint.Types.Names.$fInternedSymbol_$s$dmseedIdentity
-"SPEC/Language.Fixpoint.Types.Names $dmshowsPrec @ Symbol" [ALWAYS] forall ($dShow :: GHC.Show.Show
-                                                                                        Language.Fixpoint.Types.Names.Symbol)
-  GHC.Show.$dmshowsPrec @ Language.Fixpoint.Types.Names.Symbol $dShow
-  = Language.Fixpoint.Types.Names.$fShowSymbol_$s$dmshowsPrec
-"SPEC/Language.Fixpoint.Types.Names $dmsimplify @ Symbol" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                           Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Language.Fixpoint.Types.Names.Symbol
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Names.$fFixpointSymbol_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Names $dmsimplify @ Text" [ALWAYS] forall ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint
-                                                                                         Data.Text.Internal.Text)
-  Language.Fixpoint.Types.PrettyPrint.$dmsimplify @ Data.Text.Internal.Text
-                                                  $dFixpoint
-  = Language.Fixpoint.Types.Names.$fFixpointText_$s$dmsimplify
-"SPEC/Language.Fixpoint.Types.Names $wupdateOrConcatWithKey @ Char _" [0] forall @ v
-                                                                                 (w :: GHC.Classes.Eq
-                                                                                         GHC.Types.Char)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ GHC.Types.Char @ v w
-  = Language.Fixpoint.Types.Names.$s$wupdateOrConcatWithKey @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/PrettyPrint.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/PrettyPrint.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/PrettyPrint.dump-hi
+++ /dev/null
@@ -1,3264 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:46.294802 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.PrettyPrint 8002
-  interface hash: 1d83c80e655b6bdcbe25e32129f2c8a5
-  ABI hash: 9f8ba54128c047c2f5df631a58152645
-  export-list hash: 8280ba96c3b943538085a23e8c114f93
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: f99c5df795e9a0a14c19697b9b989ebd
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.PrettyPrint.boxDoc
-  Language.Fixpoint.Types.PrettyPrint.boxHSep
-  Language.Fixpoint.Types.PrettyPrint.docBox
-  Language.Fixpoint.Types.PrettyPrint.notracepp
-  Language.Fixpoint.Types.PrettyPrint.pprint
-  Language.Fixpoint.Types.PrettyPrint.pprintKVs
-  Language.Fixpoint.Types.PrettyPrint.showFix
-  Language.Fixpoint.Types.PrettyPrint.showTable
-  Language.Fixpoint.Types.PrettyPrint.showpp
-  Language.Fixpoint.Types.PrettyPrint.traceFix
-  Language.Fixpoint.Types.PrettyPrint.tracepp
-  Language.Fixpoint.Types.PrettyPrint.DocTable{Language.Fixpoint.Types.PrettyPrint.DocTable}
-  Language.Fixpoint.Types.PrettyPrint.Fixpoint{Language.Fixpoint.Types.PrettyPrint.simplify Language.Fixpoint.Types.PrettyPrint.toFix}
-  Language.Fixpoint.Types.PrettyPrint.PPrint{Language.Fixpoint.Types.PrettyPrint.pprintPrec Language.Fixpoint.Types.PrettyPrint.pprintTidy}
-  Language.Fixpoint.Types.PrettyPrint.PTable{Language.Fixpoint.Types.PrettyPrint.ptable}
-  Language.Fixpoint.Types.PrettyPrint.Tidy{Language.Fixpoint.Types.PrettyPrint.Full Language.Fixpoint.Types.PrettyPrint.Lossy}
-module dependencies: Language.Fixpoint.Misc
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Debug.Trace a9edf3aec504f4423d8ba829ab373a25
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m:Text.PrettyPrint.Boxes 06317079dc1484f477639a6ffe963956
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  tshow c3e388152c637865435def68336e9158
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text 02cbbc20bdd508fabc38de38896bbae0
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Internal a2f6f66c5bb1247458d9fa25257ab188
-import  -/  text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show 638b4149d86790151d6d4eeca215be94
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-addDependentFile "/usr/local/lib/ghc-8.0.2/include/ghcversion.h"
-addDependentFile ".stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/autogen/cabal_macros.h"
-58124de7dffef1dae656e4bfcac56093
-  $dmpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(SL),1*U(1*U,A)><L,A>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int) ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintTidy @ a $dPPrint) -}
-3cc116e3477d8fc69b5c60e052923261
-  $dmpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LC(S)),1*U(A,1*C1(U))>,
-     Unfolding: InlineRule (0, True, False)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a) ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                   @ a
-                   $dPPrint
-                   (GHC.Types.I# 0#)) -}
-3625e7ff9114f13a0a4516cf3f3a945e
-  $dmsimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a => a -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: a) ->
-                 GHC.Base.id @ a eta) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fEqTidy :: GHC.Classes.Eq Language.Fixpoint.Types.PrettyPrint.Tidy
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.PrettyPrint.Tidy
-                  Language.Fixpoint.Types.PrettyPrint.$fEqTidy_$c==
-                  Language.Fixpoint.Types.PrettyPrint.$fEqTidy_$c/= -}
-6fdc633788cc0508dea7c363965cb87c
-  $fEqTidy_$c/= ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.False
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.True }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.True
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.False } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fEqTidy_$c== ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (ds1 :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.True
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.False }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.False
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.True } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint() :: Language.Fixpoint.Types.PrettyPrint.Fixpoint ()
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ ()
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpoint()_$ctoFix
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpoint()_$csimplify -}
-37221178a5498de8d4b9e3fd5aa033d2
-  $fFixpoint()1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpoint()_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpoint()2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-1c4b9a7712f0b1be6bf24b67e1c0cce4
-  $fFixpoint()2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpoint()_s) -}
-d3e350939329bc035f8743e716bd699f
-  $fFixpoint()_$csimplify :: () -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True) (GHC.Base.id @ ()) -}
-e9c5e25a200cae7d73a8d7c006392076
-  $fFixpoint()_$ctoFix :: () -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: ()) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fFixpoint()1) -}
-e954ed7ddcd005b2a565191a4ea168dd
-  $fFixpoint()_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "()"#) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,) ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b) =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint (a, b)
-  DFunId
-  {- Arity: 2, Strictness: <L,U(C(U),C(U))><L,U(C(U),C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                      ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b).
-                  @ (a, b)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)_$ctoFix
-                     @ a
-                     @ b
-                     $dFixpoint
-                     $dFixpoint1)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)_$csimplify
-                     @ a
-                     @ b
-                     $dFixpoint
-                     $dFixpoint1) -}
-9f38c2a05116f534b587874b85e63529
-  $fFixpoint(,)1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ca3d452fc71f199c6b2697accbbb5002
-  $fFixpoint(,)2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)_s) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,)_$csimplify ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b) =>
-    (a, b) -> (a, b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*C1(U))><L,1*U(A,1*C1(U))><S,1*U(U,U)>m,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x y ->
-                 (Language.Fixpoint.Types.PrettyPrint.simplify @ a $dFixpoint x,
-                  Language.Fixpoint.Types.PrettyPrint.simplify
-                    @ b
-                    $dFixpoint1
-                    y) }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,)_$ctoFix ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b) =>
-    (a, b) -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   (w2 :: (a, b)) ->
-                 case w2 of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.PrettyPrint.$w$ctoFix
-                   @ a
-                   @ b
-                   w
-                   w1
-                   ww1
-                   ww2 }) -}
-89d8e8990e2eddac38107721171c6331
-  $fFixpoint(,)_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ":"#) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,,) ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint c) =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint (a, b, c)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U(C(U),C(U))><L,U(C(U),C(U))><L,U(C(U),C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      @ c
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                      ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                      ($dFixpoint2 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint c).
-                  @ (a, b, c)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,,)_$ctoFix
-                     @ a
-                     @ b
-                     @ c
-                     $dFixpoint
-                     $dFixpoint1
-                     $dFixpoint2)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,,)_$csimplify
-                     @ a
-                     @ b
-                     @ c
-                     $dFixpoint
-                     $dFixpoint1
-                     $dFixpoint2) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,,)_$csimplify ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint c) =>
-    (a, b, c) -> (a, b, c)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*C1(U))><L,1*U(A,1*C1(U))><L,1*U(A,1*C1(U))><S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   @ c
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   ($dFixpoint1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   ($dFixpoint2 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint c)
-                   (ds :: (a, b, c)) ->
-                 case ds of wild { (,,) x y z ->
-                 (Language.Fixpoint.Types.PrettyPrint.simplify @ a $dFixpoint x,
-                  Language.Fixpoint.Types.PrettyPrint.simplify @ b $dFixpoint1 y,
-                  Language.Fixpoint.Types.PrettyPrint.simplify
-                    @ c
-                    $dFixpoint2
-                    z) }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint(,,)_$ctoFix ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint c) =>
-    (a, b, c) -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   @ c
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint c)
-                   (w3 :: (a, b, c)) ->
-                 case w3 of ww { (,,) ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.PrettyPrint.$w$ctoFix1
-                   @ a
-                   @ b
-                   @ c
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointBool ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint GHC.Types.Bool
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Bool
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_$ctoFix
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_$csimplify -}
-1437a9e8ff34fd171938a5658277fbdb
-  $fFixpointBool1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpointBool2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-9bbf7c146aa8ea580efc1f5452bdc9d9
-  $fFixpointBool2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_s) -}
-149967964f1f8f59c14cac5961225b55
-  $fFixpointBool3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpointBool4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-dba26a3e3c8e6f4a711c012a502269f6
-  $fFixpointBool4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpointBool_s1) -}
-4e08eac39899c31ae4645325e7647cfe
-  $fFixpointBool_$csimplify :: GHC.Types.Bool -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (z :: GHC.Types.Bool) -> z) -}
-3d47e02c06f33f1d68a0ff6861190ab8
-  $fFixpointBool_$ctoFix ::
-    GHC.Types.Bool -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: GHC.Types.Bool) ->
-                 case ds of wild {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointBool3
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointBool1 }) -}
-807a922d916fb302775b8b971faac783
-  $fFixpointBool_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "True"#) -}
-bf1d7caf831aca0b46eb99d95320b41e
-  $fFixpointBool_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "False"#) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointDouble ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint GHC.Types.Double
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Double
-                  Text.PrettyPrint.HughesPJ.double
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointDouble_$csimplify -}
-4697623f00bb91a08f501ffa55b52bfb
-  $fFixpointDouble_$csimplify :: GHC.Types.Double -> GHC.Types.Double
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Base.id @ GHC.Types.Double) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointHashSet ::
-    (GHC.Classes.Ord a, Data.Hashable.Class.Hashable a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Data.HashSet.HashSet a)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U(U,C(C1(U)),A,A,A,A,A,A)><L,U(A,C(U(U)))><L,U(U,U)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dOrd :: GHC.Classes.Ord a)
-                      ($dHashable :: Data.Hashable.Class.Hashable a)
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Data.HashSet.HashSet a)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet_$ctoFix
-                     @ a
-                     $dOrd
-                     $dHashable
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet_$csimplify
-                     @ a
-                     $dOrd
-                     $dHashable
-                     $dFixpoint) -}
-48c79133e1badb4f69e992cda1d62065
-  $fFixpointHashSet1 :: [a] -> Data.HashMap.Base.HashMap a () -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   (z1 :: [a])
-                   (ds :: Data.HashMap.Base.HashMap a ()) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty -> z1
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet4
-                        @ a
-                        (Data.HashMap.Array.Array @ (Data.HashMap.Base.HashMap a ()) dt1)
-                        (GHC.Prim.sizeofArray# @ (Data.HashMap.Base.HashMap a ()) dt1)
-                        0#
-                        z1
-                   Data.HashMap.Base.Leaf dt dt1 dt2 -> GHC.Types.: @ a dt1 z1
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet3
-                        @ a
-                        (Data.HashMap.Array.Array @ (Data.HashMap.Base.HashMap a ()) dt)
-                        (GHC.Prim.sizeofArray# @ (Data.HashMap.Base.HashMap a ()) dt)
-                        0#
-                        z1
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet2
-                        @ a
-                        (Data.HashMap.Array.Array @ (Data.HashMap.Base.Leaf a ()) dt1)
-                        (GHC.Prim.sizeofArray# @ (Data.HashMap.Base.Leaf a ()) dt1)
-                        0#
-                        z1 }) -}
-96662ec5c7bf7c32ccd915f1cad17f42
-  $fFixpointHashSet2 ::
-    Data.HashMap.Array.Array (Data.HashMap.Base.Leaf a ())
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> [a] -> [a]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-18d7c75ab928daa9dd3496d794f14e6b
-  $fFixpointHashSet3 ::
-    Data.HashMap.Array.Array (Data.HashMap.Base.HashMap a ())
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> [a] -> [a]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-0db4a47903f25955544adfcf1cf9ac3f
-  $fFixpointHashSet4 ::
-    Data.HashMap.Array.Array (Data.HashMap.Base.HashMap a ())
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> [a] -> [a]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-8fb71968809717128c1d402dc7bf1f41
-  $fFixpointHashSet5 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet6
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-674eeb6a9ffeb9c04cc1b9199510ce0b
-  $fFixpointHashSet6 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet_s) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointHashSet_$csimplify ::
-    (GHC.Classes.Ord a, Data.Hashable.Class.Hashable a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Data.HashSet.HashSet a -> Data.HashSet.HashSet a
-  {- Arity: 4,
-     Strictness: <L,1*U(1*U,A,A,A,A,A,A,A)><L,U(A,C(U(U)))><L,1*U(A,1*U)><S,1*U> -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointHashSet_$ctoFix ::
-    (GHC.Classes.Ord a, Data.Hashable.Class.Hashable a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Data.HashSet.HashSet a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,1*U(A,1*C(C1(U)),A,A,A,A,A,A)><L,A><L,1*U(1*U,A)><S,1*U>m7,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (w1 :: Data.Hashable.Class.Hashable a)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w3 :: Data.HashSet.HashSet a) ->
-                 case Language.Fixpoint.Types.PrettyPrint.$w$ctoFix2
-                        @ a
-                        w
-                        w2
-                        w3 of ww { (#,,#) ww1 ww2 ww3 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.Beside @ () ww1 ww2 ww3)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-10627272c3a33adab5a98e89070ce3b8
-  $fFixpointHashSet_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ";"#) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointInt ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint GHC.Types.Int
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Int
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointInt_$ctoFix
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointInt_$csimplify -}
-0dc5bb5109edf175818ede29738112c2
-  $fFixpointInt_$csimplify :: GHC.Types.Int -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Base.id @ GHC.Types.Int) -}
-bdbc2c835bb90b71afb62b4c5de87d75
-  $fFixpointInt_$ctoFix ::
-    GHC.Types.Int -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: GHC.Types.Int) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Types.PrettyPrint.$w$ctoFix3
-                        ww1 of ww2 { (#,#) ww3 ww4 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointInteger ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      GHC.Integer.Type.Integer
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Integer.Type.Integer
-                  Text.PrettyPrint.HughesPJ.integer
-                  Language.Fixpoint.Types.PrettyPrint.$fFixpointInteger_$csimplify -}
-6b49a13c2444436fc9313b8e665dd36c
-  $fFixpointInteger_$csimplify ::
-    GHC.Integer.Type.Integer -> GHC.Integer.Type.Integer
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Base.id @ GHC.Integer.Type.Integer) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointMaybe ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint (GHC.Base.Maybe a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),C(U))>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (GHC.Base.Maybe a)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_$csimplify
-                     @ a
-                     $dFixpoint) -}
-5f78c9155e3bbaa1722e251246a36544
-  $fFixpointMaybe1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-c8c66c468ad2044f3c264e14a27df50f
-  $fFixpointMaybe2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_s) -}
-e726acd7a9f9b85e885598b3880ceb81
-  $fFixpointMaybe3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ce6a5cf51cce042699926260b3688ceb
-  $fFixpointMaybe4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe_s1) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointMaybe_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Base.Maybe a -> GHC.Base.Maybe a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(A,1*C1(U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: GHC.Base.Maybe a) ->
-                 case eta of wild {
-                   GHC.Base.Nothing -> GHC.Base.Nothing @ a
-                   GHC.Base.Just x
-                   -> GHC.Base.Just
-                        @ a
-                        (Language.Fixpoint.Types.PrettyPrint.simplify
-                           @ a
-                           $dFixpoint
-                           x) }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpointMaybe_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Base.Maybe a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: GHC.Base.Maybe a) ->
-                 case eta of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe3
-                   GHC.Base.Just x
-                   -> case (Language.Fixpoint.Types.PrettyPrint.toFix
-                              @ a
-                              $dFixpoint
-                              x)
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1 } }) -}
-eba917c0660d780626c95ba8a013c5ef
-  $fFixpointMaybe_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Just"#) -}
-e7c09c6eddce434d531d93f74d05e1c3
-  $fFixpointMaybe_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Nothing"#) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint[] ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint [a]
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,C(U))>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ [a]
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint[]_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fFixpoint[]_$csimplify
-                     @ a
-                     $dFixpoint) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint[]_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a => [a] -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(A,1*C(U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: [a]) ->
-                 GHC.Base.build
-                   @ a
-                   (\ @ b1 (c :: a -> b1 -> b1)[OneShot] (n :: b1)[OneShot] ->
-                    GHC.Base.foldr
-                      @ a
-                      @ b1
-                      (GHC.Base.mapFB
-                         @ a
-                         @ b1
-                         @ a
-                         c
-                         (Language.Fixpoint.Types.PrettyPrint.simplify @ a $dFixpoint))
-                      n
-                      eta)) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $fFixpoint[]_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [a] -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*U,A)><S,1*U>m7,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: [a]) ->
-                 case Language.Fixpoint.Types.PrettyPrint.$w$ctoFix4
-                        @ a
-                        w
-                        w1 of ww { (#,,#) ww1 ww2 ww3 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.Beside @ () ww1 ww2 ww3)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-1983262d60a6608966f615360ce51628
-  $fMonoidDocTable ::
-    GHC.Base.Monoid Language.Fixpoint.Types.PrettyPrint.DocTable
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.PrettyPrint.DocTable
-                  (GHC.Types.[]
-                     @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc))
-                    `cast`
-                  (Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0]))
-                  Language.Fixpoint.Types.PrettyPrint.$fMonoidDocTable_$cmappend
-                  Language.Fixpoint.Types.PrettyPrint.$fMonoidDocTable_$cmconcat -}
-1983262d60a6608966f615360ce51628
-  $fMonoidDocTable_$cmappend ::
-    Language.Fixpoint.Types.PrettyPrint.DocTable
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.Base.++
-                   @ (Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc))
-                  `cast`
-                (Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])
-                 ->_R Sym (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])) -}
-1983262d60a6608966f615360ce51628
-  $fMonoidDocTable_$cmconcat ::
-    [Language.Fixpoint.Types.PrettyPrint.DocTable]
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.PrettyPrint.DocTable]) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fMonoidDocTable_go eta) -}
-1983262d60a6608966f615360ce51628
-  $fMonoidDocTable_go ::
-    [Language.Fixpoint.Types.PrettyPrint.DocTable]
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy ::
-    GHC.Classes.Ord Language.Fixpoint.Types.PrettyPrint.Tidy
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.PrettyPrint.Tidy
-                  Language.Fixpoint.Types.PrettyPrint.$fEqTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$ccompare
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$c<
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$c<=
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$c>
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$c>=
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$cmax
-                  Language.Fixpoint.Types.PrettyPrint.$fOrdTidy_$cmin -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$c< ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.False
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.True }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$c<= ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.False
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.True } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$c> ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.True
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.False } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$c>= ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.True
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.False }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$ccompare ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (b :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.EQ
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.LT }
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.PrettyPrint.Lossy -> GHC.Types.GT
-                        Language.Fixpoint.Types.PrettyPrint.Full -> GHC.Types.EQ } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$cmax ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (y :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy -> y
-                   Language.Fixpoint.Types.PrettyPrint.Full
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Types.PrettyPrint.Full } }) -}
-6fdc633788cc0508dea7c363965cb87c
-  $fOrdTidy_$cmin ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (y :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.PrettyPrint.Lossy
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Types.PrettyPrint.Lossy }
-                   Language.Fixpoint.Types.PrettyPrint.Full -> y }) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint() :: Language.Fixpoint.Types.PrettyPrint.PPrint ()
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ ()
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrint()_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrint()_$cpprintPrec -}
-9a9099b1b91b73184ad63e8cbe9ae6f1
-  $fPPrint()1 :: () -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*H>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: ()) ->
-                 case w of w1 { () ->
-                 case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        GHC.Show.shows16
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str GHC.Show.shows16)
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-480533ecdb777012475c0cdceeeae48d
-  $fPPrint()_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> ()
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint()_$cpprintTidy eta) -}
-392f6599482a0e55422a6eb387ccb352
-  $fPPrint()_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> () -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy) (eta :: ()) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint()1 eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,) ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint (a, b)
-  DFunId
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                      ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b).
-                  @ (a, b)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintPrec
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,)_$cpprintPrec ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (a, b)
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,A><L,U><S,1*U(U,U)>,
-     Unfolding: InlineRule (5, True, True)
-                (\ @ a
-                   @ b
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: (a, b)) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                   @ a
-                   @ b
-                   $dPPrint
-                   $dPPrint1
-                   eta
-                   eta1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,)_$cpprintTidy ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (a, b) -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,U><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w3 :: (a, b)) ->
-                 case w3 of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.PrettyPrint.$w$cpprintTidy
-                   @ a
-                   @ b
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,,) ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b,
-     Language.Fixpoint.Types.PrettyPrint.PPrint c) =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint (a, b, c)
-  DFunId
-  {- Arity: 3,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)><L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      @ c
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                      ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                      ($dPPrint2 :: Language.Fixpoint.Types.PrettyPrint.PPrint c).
-                  @ (a, b, c)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintTidy
-                     @ a
-                     @ b
-                     @ c
-                     $dPPrint
-                     $dPPrint1
-                     $dPPrint2)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintPrec
-                     @ a
-                     @ b
-                     @ c
-                     $dPPrint
-                     $dPPrint1
-                     $dPPrint2) -}
-a7a13808cafe3c33b7d0ac69e874683e
-  $fPPrint(,,)1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-cd8709925e27aa3d7f4315e69d51bd2b
-  $fPPrint(,,)2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_s) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,,)_$cpprintPrec ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b,
-     Language.Fixpoint.Types.PrettyPrint.PPrint c) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (a, b, c)
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 6,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,A><L,U><S,1*U(U,U,U)>m7,
-     Unfolding: InlineRule (6, True, True)
-                (\ @ a
-                   @ b
-                   @ c
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   ($dPPrint2 :: Language.Fixpoint.Types.PrettyPrint.PPrint c)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: (a, b, c)) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)_$cpprintTidy
-                   @ a
-                   @ b
-                   @ c
-                   $dPPrint
-                   $dPPrint1
-                   $dPPrint2
-                   eta
-                   eta1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint(,,)_$cpprintTidy ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b,
-     Language.Fixpoint.Types.PrettyPrint.PPrint c) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (a, b, c) -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,U><S,1*U(U,U,U)>m7,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   @ b
-                   @ c
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.PPrint c)
-                   (w3 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w4 :: (a, b, c)) ->
-                 case w4 of ww { (,,) ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.PrettyPrint.$w$cpprintTidy1
-                        @ a
-                        @ b
-                        @ c
-                        w
-                        w1
-                        w2
-                        w3
-                        ww1
-                        ww2
-                        ww3 of ww4 { (#,,#) ww5 ww6 ww7 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.Beside @ () ww5 ww6 ww7)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-094bdf1f5aaf1b78a69f85f88a03a6fa
-  $fPPrint(,,)_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ","#) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintBool ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint GHC.Types.Bool
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Bool
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintBool_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintBool_$cpprintPrec -}
-613283ffb8d2f3f81e47507929ae344a
-  $fPPrintBool1 :: GHC.Types.Bool -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: GHC.Types.Bool) ->
-                 let {
-                   s :: GHC.Base.String
-                   = case w of wild {
-                       GHC.Types.False -> GHC.Show.shows18
-                       GHC.Types.True -> GHC.Show.shows17 }
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-f95a3c4ca83abde482cd99d533f21a2c
-  $fPPrintBool_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Bool
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintBool_$cpprintTidy
-                   eta) -}
-ca0aca3da52084de8860aee0f9bd3038
-  $fPPrintBool_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Bool -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: GHC.Types.Bool) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintBool1 eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintDoc ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Text.PrettyPrint.HughesPJ.Doc
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.PrettyPrint.HughesPJ.Doc
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintDoc_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintDoc_$cpprintPrec -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintDocTable ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.PrettyPrint.DocTable
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.PrettyPrint.DocTable
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable_$cpprintPrec -}
-7d3a6fcb68d9ea9fac24579127c6d58d
-  $fPPrintDocTable1 :: Text.PrettyPrint.Boxes.Box
-  {- HasNoCafRefs,
-     Unfolding: (Text.PrettyPrint.Boxes.Box
-                   Text.PrettyPrint.Boxes.$fShowContent2
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable2
-                   Text.PrettyPrint.Boxes.Blank) -}
-731254a5a2034fc7a1350703864f2a6d
-  $fPPrintDocTable2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 1#) -}
-37b40c8c587f83705c6ed0f14f7bb814
-  $fPPrintDocTable_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.PrettyPrint.DocTable) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable_$cpprintTidy
-                   eta
-                   eta1) -}
-cee672dd6642a024d203a359f9ce9ffc
-  $fPPrintDocTable_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.PrettyPrint.DocTable
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.DocTable) ->
-                 case Language.Fixpoint.Types.PrettyPrint.$w$cpprintTidy2
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-01f10e448a4b6aed84f148ac8190a78f
-  $fPPrintDoc_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintDoc_$cpprintTidy
-                   eta) -}
-180f7007ca61d66b351e597275a7ef96
-  $fPPrintDoc_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 GHC.Base.id @ Text.PrettyPrint.HughesPJ.Doc eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintFloat ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint GHC.Types.Float
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Float
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat_$cpprintPrec -}
-b02230c3e6addff7cc3adc1bcf77535a
-  $fPPrintFloat1 :: GHC.Types.Float -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(S),1*U(U)>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: GHC.Types.Float) ->
-                 case w of ww { GHC.Types.F# ww1 ->
-                 let {
-                   s :: GHC.Base.String
-                   = GHC.Float.$w$sshowSignedFloat1
-                       GHC.Float.$fShowFloat_$sshowFloat
-                       GHC.Show.shows22
-                       ww1
-                       (GHC.Types.[] @ GHC.Types.Char)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-3b1f0233b305db27f5afb49ef0e8b851
-  $fPPrintFloat_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Float
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat_$cpprintTidy
-                   eta) -}
-a737d1ab66d93e767d4bfa78f46d3f13
-  $fPPrintFloat_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Float -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: GHC.Types.Float) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat1 eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashMap ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Data.HashMap.Base.HashMap a b)
-  DFunId
-  {- Arity: 2, Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                      ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b).
-                  @ (Data.HashMap.Base.HashMap a b)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashMap_$cpprintTidy
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashMap_$cpprintPrec
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashMap_$cpprintPrec ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashMap.Base.HashMap a b
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)><L,A><L,U>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   @ b
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Data.HashMap.Base.HashMap a b) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashMap_$cpprintTidy
-                   @ a
-                   @ b
-                   $dPPrint
-                   $dPPrint1
-                   eta
-                   eta1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashMap_$cpprintTidy ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashMap.Base.HashMap a b -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)><L,U><S,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (x :: Data.HashMap.Base.HashMap a b) ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                   @ a
-                   @ b
-                   $dPPrint
-                   $dPPrint1
-                   k
-                   (Data.HashMap.Base.toList @ a @ b x)) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashSet ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint (Data.HashSet.HashSet a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ (Data.HashSet.HashSet a)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-0d8b51fa87e4d79b10e16b4b9bfbce3a
-  $fPPrintHashSet1 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- HasNoCafRefs,
-     Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                   @ ()
-                   Text.PrettyPrint.HughesPJ.brackets4
-                   GHC.Types.False
-                   Text.PrettyPrint.HughesPJ.brackets1) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashSet_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashSet.HashSet a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,U(C(U),A)><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy
-                   @ a
-                   $dPPrint
-                   eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashSet_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.HashSet.HashSet a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   f :: [a] -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                       @ a
-                       $dPPrint
-                       k
-                 } in
-                 \ (x :: Data.HashSet.HashSet a) ->
-                 f (Data.HashSet.toList @ a x)) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintHashSet_$cpprintTidy1 ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [a] -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.pprintTidy @ a $dPPrint k
-                 } in
-                 letrec {
-                   go1 :: [a] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (g y) `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                            (go1 ys) }
-                 } in
-                 \ (x :: [a]) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Text.PrettyPrint.HughesPJ.comma1
-                        (go1 x) of wild {
-                   []
-                   -> Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet1
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   : p ps
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                             @ ()
-                             GHC.Types.True
-                             (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                             0#
-                             ps of wild1 {
-                        DEFAULT
-                        -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                              @ ()
-                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 Text.PrettyPrint.HughesPJ.brackets4
-                                 GHC.Types.False
-                                 wild1)
-                              GHC.Types.False
-                              Text.PrettyPrint.HughesPJ.brackets1)
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet1
-                             `cast`
-                           (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintInt ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint GHC.Types.Int
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Types.Int
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintInt_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintInt_$cpprintPrec -}
-4d5a687cedc415aab4b4ab1d9b1c4f3a
-  $fPPrintInt1 :: GHC.Types.Int -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: GHC.Types.Int) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Types.PrettyPrint.$wlvl
-                        ww1 of ww2 { (#,#) ww3 ww4 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww3 ww4)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-d37feb62c6bbd42774a3f718beb27e41
-  $fPPrintInt_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Int
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintInt_$cpprintTidy
-                   eta) -}
-7330097952b00e6469557eaa76229354
-  $fPPrintInt_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Types.Int -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: GHC.Types.Int) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintInt1 eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintInteger ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint GHC.Integer.Type.Integer
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ GHC.Integer.Type.Integer
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintInteger_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintInteger_$cpprintPrec -}
-a80747214953072dfbacdc4d515d1834
-  $fPPrintInteger_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Integer.Type.Integer
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintInteger_$cpprintTidy
-                   eta) -}
-3070ba17547772a78f958d7d237ec5e6
-  $fPPrintInteger_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Integer.Type.Integer -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: GHC.Integer.Type.Integer) ->
-                 Text.PrettyPrint.HughesPJ.integer eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintMaybe ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint (GHC.Base.Maybe a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ (GHC.Base.Maybe a)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintMaybe_$cpprintTidy
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintMaybe_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintMaybe_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Base.Maybe a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintMaybe_$cpprintTidy
-                   @ a
-                   $dPPrint
-                   eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintMaybe_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> GHC.Base.Maybe a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.pprintTidy @ a $dPPrint k
-                 } in
-                 \ (ds1 :: GHC.Base.Maybe a) ->
-                 case ds1 of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe3
-                   GHC.Base.Just x
-                   -> case (g x)
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1 } }) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrintText ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint Data.Text.Internal.Text
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Data.Text.Internal.Text
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintText_$cpprintTidy
-                  Language.Fixpoint.Types.PrettyPrint.$fPPrintText_$cpprintPrec -}
-daf6d4aa0644ce6a409251f77615c51f
-  $fPPrintText1 ::
-    Data.Text.Internal.Text -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSS),1*U(U,U,U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Data.Text.Internal.Text) ->
-                 case w of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.PrettyPrint.$wlvl1
-                        ww1
-                        ww2
-                        ww3 of ww4 { (#,#) ww5 ww6 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww5 ww6)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-8dcd4e30ac81de3a618584bbd0707154
-  $fPPrintText_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.Text.Internal.Text
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintText_$cpprintTidy
-                   eta) -}
-1c38c18efc80a952ff662739631d873e
-  $fPPrintText_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Data.Text.Internal.Text -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Data.Text.Internal.Text) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintText1 eta) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint[] ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint [a]
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U),A)>m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ [a]
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint[]_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $fPPrint[]_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [a]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,A><L,U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                   @ a
-                   $dPPrint
-                   eta) -}
-f40a9d5c1fd2ab7622d76afec65c667a
-  $tc'C:Fixpoint :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3480375457339714873##
-                   8413079098572764025##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'C:Fixpoint1) -}
-f69139bdbe4817d150b87ff0958c521c
-  $tc'C:Fixpoint1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Fixpoint"#) -}
-d32c75e88497c7ca8ffebe27b23f57b9
-  $tc'C:PPrint :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12705788457100681109##
-                   12391311005464134154##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'C:PPrint1) -}
-99d59780d31a5a32f642e2b44c3feed5
-  $tc'C:PPrint1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:PPrint"#) -}
-301d68c634116d7df155429f0fc912c8
-  $tc'C:PTable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16543468977259343176##
-                   12204853844651996613##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'C:PTable1) -}
-6a1c6e7617a92b4530816eedcdbe1196
-  $tc'C:PTable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:PTable"#) -}
-6fc33845531f887bfdef56d7a081aa8d
-  $tc'DocTable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10720926827269941229##
-                   11140701366624306166##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'DocTable1) -}
-0f6a95eb7ebc4b4b249186dfa7c71efd
-  $tc'DocTable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'DocTable"#) -}
-026d39b7d791586e5436269b11c52d2d
-  $tc'Full :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12416053811499359863##
-                   1378966993215936538##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'Full1) -}
-98cb6bf77463c71057271f3ac01c0bb2
-  $tc'Full1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Full"#) -}
-af918191236e302d445603f016cba5ac
-  $tc'Lossy :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1154572863817588707##
-                   12455311205797527825##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tc'Lossy1) -}
-f23d74e37dcfe64850a2b66ab436d053
-  $tc'Lossy1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Lossy"#) -}
-6f20de1d1b2ff413c1f48ceb47d30fb3
-  $tcDocTable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6010415119671162312##
-                   4632040785313142821##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tcDocTable1) -}
-928a7071180d662090a4c5f862eba037
-  $tcDocTable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "DocTable"#) -}
-f30c7a37ae573eb5a8260f042687b578
-  $tcFixpoint :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13488198139254069495##
-                   5996424168830308273##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tcFixpoint1) -}
-cc6120df0ef58db8fa31f666e153a8f6
-  $tcFixpoint1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Fixpoint"#) -}
-982861b193f165c2d38608fc0769c4ae
-  $tcPPrint :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8260364991512979700##
-                   16280176250899259602##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tcPPrint1) -}
-da12bf75b6994fc314a801ac3e416c2d
-  $tcPPrint1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "PPrint"#) -}
-40a200d131c2291d8c05275a6752a949
-  $tcPTable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7484113556867690471##
-                   3862987735936612111##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tcPTable1) -}
-7b55015221728c973150d71969fcdc6b
-  $tcPTable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "PTable"#) -}
-8cb5ca122d8c3fa02cbc4629ea5a630e
-  $tcTidy :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1627332649137169778##
-                   10635071454718447502##
-                   Language.Fixpoint.Types.PrettyPrint.$trModule
-                   Language.Fixpoint.Types.PrettyPrint.$tcTidy1) -}
-007be8b55fd1bf3a4fadd55cdb930e63
-  $tcTidy1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Tidy"#) -}
-2bd50a8f80eb6d07a292070356879c33
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.PrettyPrint.$trModule2
-                   Language.Fixpoint.Types.PrettyPrint.$trModule1) -}
-d9b757284c28b8ca13d2d5bdc1f63e11
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.PrettyPrint"#) -}
-b1fcd3945c4112eb9e61ad7de326633a
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $w$cpprintTidy ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> a -> b -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (ww :: a)
-                   (ww1 :: b) ->
-                 case (Language.Fixpoint.Types.PrettyPrint.pprintTidy @ b w1 w2 ww1)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                   @ a
-                                   w
-                                   w2
-                                   ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild1)
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild1
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                   @ a
-                                   w
-                                   w2
-                                   ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                   @ a
-                                   w
-                                   w2
-                                   ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                             @ a
-                             w
-                             w2
-                             ww } }) -}
-f926efd2d44310d1ff99c4868d82bc97
-  $w$cpprintTidy1 ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b,
-     Language.Fixpoint.Types.PrettyPrint.PPrint c) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> a
-    -> b
-    -> c
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.Doc (), GHC.Types.Bool,
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 7,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   @ c
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.PPrint c)
-                   (w3 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (ww :: a)
-                   (ww1 :: b)
-                   (ww2 :: c) ->
-                 let {
-                   p :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                   = case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                             @ b
-                             w1
-                             w3
-                             ww1)
-                            `cast`
-                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                       DEFAULT
-                       -> case Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)1
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                       @ a
-                                       w
-                                       w3
-                                       ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                         @ ()
-                                         wild2
-                                         GHC.Types.False
-                                         wild1)
-                                      GHC.Types.True
-                                      wild
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild1
-                                      GHC.Types.True
-                                      wild }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                       @ a
-                                       w
-                                       w3
-                                       ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild } }
-                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                       -> case Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)1
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                       @ a
-                                       w
-                                       w3
-                                       ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.False
-                                      wild1
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild1 }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> (Language.Fixpoint.Types.PrettyPrint.pprintTidy @ a w w3 ww)
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) } }
-                 } in
-                 case (Language.Fixpoint.Types.PrettyPrint.pprintTidy @ c w2 w3 ww2)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           wild2
-                                           GHC.Types.False
-                                           wild1)
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild1
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild2
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     wild,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild2
-                                        GHC.Types.False
-                                        wild1),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     wild1,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.lparen1
-                                     GHC.Types.False
-                                     wild2,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.parens1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.HughesPJ.lparen1, GHC.Types.False,
-                                   Text.PrettyPrint.HughesPJ.parens1 #) } } }) -}
-07043851d1bd3f624f75eaabac41681e
-  $w$cpprintTidy2 ::
-    Language.Fixpoint.Types.PrettyPrint.DocTable
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 1, Strictness: <L,U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.PrettyPrint.DocTable) ->
-                 case Text.PrettyPrint.Boxes.$whcat
-                        Text.PrettyPrint.Boxes.AlignFirst
-                        (let {
-                           ds :: ([Text.PrettyPrint.HughesPJ.Doc],
-                                  [Text.PrettyPrint.HughesPJ.Doc])
-                           = case Language.Fixpoint.Types.PrettyPrint.$wgo
-                                    w `cast`
-                                    (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0]) of ww { (#,#) ww1 ww2 ->
-                             (ww1, ww2) }
-                         } in
-                         GHC.Types.:
-                           @ Text.PrettyPrint.Boxes.Box
-                           (case Text.PrettyPrint.Boxes.$wvcat
-                                   Text.PrettyPrint.Boxes.AlignFirst
-                                   (case ds of wild { (,) ks vs ->
-                                    GHC.Base.map
-                                      @ Text.PrettyPrint.HughesPJ.Doc
-                                      @ Text.PrettyPrint.Boxes.Box
-                                      Language.Fixpoint.Types.PrettyPrint.docBox
-                                      ks }) of ww { (#,,#) ww1 ww2 ww3 ->
-                            Text.PrettyPrint.Boxes.Box ww1 ww2 ww3 })
-                           (Data.OldList.prependToAll
-                              @ Text.PrettyPrint.Boxes.Box
-                              Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable1
-                              (GHC.Types.:
-                                 @ Text.PrettyPrint.Boxes.Box
-                                 (case Text.PrettyPrint.Boxes.$wvcat
-                                         Text.PrettyPrint.Boxes.AlignFirst
-                                         (case GHC.List.$wlenAcc
-                                                 @ (Text.PrettyPrint.HughesPJ.Doc,
-                                                    Text.PrettyPrint.HughesPJ.Doc)
-                                                 w `cast`
-                                                 (Language.Fixpoint.Types.PrettyPrint.N:DocTable[0])
-                                                 0# of ww2 { DEFAULT ->
-                                          case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.<# 0# ww2) of wild {
-                                            GHC.Types.False
-                                            -> GHC.Types.[] @ Text.PrettyPrint.Boxes.Box
-                                            GHC.Types.True
-                                            -> Language.Fixpoint.Types.PrettyPrint.$wxs
-                                                 ww2 } }) of ww { (#,,#) ww1 ww2 ww3 ->
-                                  Text.PrettyPrint.Boxes.Box ww1 ww2 ww3 })
-                                 (GHC.Types.:
-                                    @ Text.PrettyPrint.Boxes.Box
-                                    (case Text.PrettyPrint.Boxes.$wvcat
-                                            Text.PrettyPrint.Boxes.AlignLast
-                                            (case ds of wild { (,) ks vs ->
-                                             GHC.Base.map
-                                               @ Text.PrettyPrint.HughesPJ.Doc
-                                               @ Text.PrettyPrint.Boxes.Box
-                                               Language.Fixpoint.Types.PrettyPrint.docBox
-                                               vs }) of ww { (#,,#) ww1 ww2 ww3 ->
-                                     Text.PrettyPrint.Boxes.Box ww1 ww2 ww3 })
-                                    (GHC.Types.[]
-                                       @ Text.PrettyPrint.Boxes.Box))))) of ww { (#,,#) ww1 ww2 ww3 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Data.OldList.unlines
-                       (Text.PrettyPrint.Boxes.$wrenderBox ww1 ww2 ww3)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww4 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww4,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $w$ctoFix ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b) =>
-    a -> b -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   (ww :: a)
-                   (ww1 :: b) ->
-                 case (Language.Fixpoint.Types.PrettyPrint.toFix @ b w1 ww1)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild1)
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild1
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $w$ctoFix1 ::
-    (Language.Fixpoint.Types.PrettyPrint.Fixpoint a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint b,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint c) =>
-    a -> b -> c -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 6,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><S(C(S)L),1*U(1*C1(U),A)><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ b
-                   @ c
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint c)
-                   (ww :: a)
-                   (ww1 :: b)
-                   (ww2 :: c) ->
-                 let {
-                   p :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                   = case (Language.Fixpoint.Types.PrettyPrint.toFix @ b w1 ww1)
-                            `cast`
-                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                       DEFAULT
-                       -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                         @ ()
-                                         wild2
-                                         GHC.Types.True
-                                         wild1)
-                                      GHC.Types.True
-                                      wild
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild1
-                                      GHC.Types.True
-                                      wild }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild } }
-                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                       -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                      `cast`
-                                    (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                 DEFAULT
-                                 -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild1
-                                 Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild1 }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> (Language.Fixpoint.Types.PrettyPrint.toFix @ a w ww)
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) } }
-                 } in
-                 case (Language.Fixpoint.Types.PrettyPrint.toFix @ c w2 ww2)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                      @ ()
-                                      wild2
-                                      GHC.Types.True
-                                      wild1)
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild1
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                   @ ()
-                                   wild2
-                                   GHC.Types.True
-                                   wild1)
-                                  `cast`
-                                (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> wild1 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> p `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $w$ctoFix2 ::
-    (GHC.Classes.Ord a,
-     Language.Fixpoint.Types.PrettyPrint.Fixpoint a) =>
-    Data.HashSet.HashSet a
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.Doc (), GHC.Types.Bool,
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 3,
-     Strictness: <L,1*U(A,1*C(C1(U)),A,A,A,A,A,A)><L,1*U(1*U,A)><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Ord a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w2 :: Data.HashSet.HashSet a) ->
-                 let {
-                   f :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.toFix @ a w1
-                 } in
-                 letrec {
-                   go1 :: [a] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (f y) `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                            (go1 ys) }
-                 } in
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet5
-                          `cast`
-                        (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                        (go1
-                           (Data.OldList.sortBy
-                              @ a
-                              (GHC.Classes.compare @ a w)
-                              (Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet1
-                                 @ a
-                                 (GHC.Types.[] @ a)
-                                 w2 `cast` (Data.HashSet.N:HashSet[0] <a>_N)))) of wild {
-                   []
-                   -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                         Text.PrettyPrint.HughesPJ.brackets1 #)
-                   : p ps
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                             @ ()
-                             GHC.Types.True
-                             (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                             0#
-                             ps of wild1 {
-                        DEFAULT
-                        -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                @ ()
-                                Text.PrettyPrint.HughesPJ.brackets4
-                                GHC.Types.False
-                                wild1,
-                              GHC.Types.False, Text.PrettyPrint.HughesPJ.brackets1 #)
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                              Text.PrettyPrint.HughesPJ.brackets1 #) } }) -}
-1ac14f96fcc64238ac02c3a41cf5845b
-  $w$ctoFix3 ::
-    GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#) ->
-                 case GHC.Show.$wshowSignedInt
-                        0#
-                        ww
-                        (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                 let {
-                   s :: GHC.Base.String = GHC.Types.: @ GHC.Types.Char ww5 ww6
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww2,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) } }) -}
-cc7bdd91c6c79c1473a4d48904d3bc29
-  $w$ctoFix4 ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    [a]
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.Doc (), GHC.Types.Bool,
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 2, Strictness: <L,1*U(1*U,A)><S,1*U>, Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (w1 :: [a]) ->
-                 let {
-                   f :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.toFix @ a w
-                 } in
-                 letrec {
-                   go1 :: [a] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (f y) `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                            (go1 ys) }
-                 } in
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet5
-                          `cast`
-                        (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                        (go1 w1) of wild {
-                   []
-                   -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                         Text.PrettyPrint.HughesPJ.brackets1 #)
-                   : p ps
-                   -> case Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                             @ ()
-                             GHC.Types.True
-                             (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                             0#
-                             ps of wild1 {
-                        DEFAULT
-                        -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                @ ()
-                                Text.PrettyPrint.HughesPJ.brackets4
-                                GHC.Types.False
-                                wild1,
-                              GHC.Types.False, Text.PrettyPrint.HughesPJ.brackets1 #)
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> (# Text.PrettyPrint.HughesPJ.brackets4, GHC.Types.False,
-                              Text.PrettyPrint.HughesPJ.brackets1 #) } }) -}
-7105318a6fda96dda2c28c7f8773b312
-  $wboxHSep ::
-    Text.PrettyPrint.HughesPJ.Doc
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 2, Strictness: <L,1*U><L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Text.PrettyPrint.HughesPJ.Doc)
-                   (w1 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case Text.PrettyPrint.Boxes.$whcat
-                        Text.PrettyPrint.Boxes.AlignFirst
-                        (GHC.Types.:
-                           @ Text.PrettyPrint.Boxes.Box
-                           (Language.Fixpoint.Types.PrettyPrint.docBox w)
-                           (GHC.Types.:
-                              @ Text.PrettyPrint.Boxes.Box
-                              (Language.Fixpoint.Types.PrettyPrint.docBox w1)
-                              (GHC.Types.[]
-                                 @ Text.PrettyPrint.Boxes.Box))) of ww { (#,,#) ww1 ww2 ww3 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Data.OldList.unlines
-                       (Text.PrettyPrint.Boxes.$wrenderBox ww1 ww2 ww3)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww4 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww4,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) } }) -}
-cba126ca3950ed0ab7351bf25034059f
-  $wgo ::
-    [(Text.PrettyPrint.HughesPJ.Doc, Text.PrettyPrint.HughesPJ.Doc)]
-    -> (# [Text.PrettyPrint.HughesPJ.Doc],
-          [Text.PrettyPrint.HughesPJ.Doc] #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-3be9e24cdace6f0bd348681c99aac800
-  $wlvl ::
-    GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#) ->
-                 case GHC.Show.$wshowSignedInt
-                        0#
-                        ww
-                        (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                 let {
-                   s :: GHC.Base.String = GHC.Types.: @ GHC.Types.Char ww5 ww6
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww2,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) } }) -}
-de2583acee625d94ab3b2ae9c8c89fa4
-  $wlvl1 ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.ByteArray#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#) ->
-                 let {
-                   end :: GHC.Prim.Int# = GHC.Prim.+# ww1 ww2
-                 } in
-                 letrec {
-                   $wunfold :: GHC.Prim.Int# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww3 end) of wild1 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexWord16Array# ww ww3 of r# { DEFAULT ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.geWord# r# 55296##) of wild2 {
-                            GHC.Types.False
-                            -> GHC.Types.:
-                                 @ GHC.Types.Char
-                                 (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                 ($wunfold (GHC.Prim.+# ww3 1#))
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.leWord# r# 56319##) of wild3 {
-                                 GHC.Types.False
-                                 -> GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C# (GHC.Prim.chr# (GHC.Prim.word2Int# r#)))
-                                      ($wunfold (GHC.Prim.+# ww3 1#))
-                                 GHC.Types.True
-                                 -> case GHC.Prim.indexWord16Array#
-                                           ww
-                                           (GHC.Prim.+# ww3 1#) of r#1 { DEFAULT ->
-                                    GHC.Types.:
-                                      @ GHC.Types.Char
-                                      (GHC.Types.C#
-                                         (GHC.Prim.chr#
-                                            (GHC.Prim.+#
-                                               (GHC.Prim.+#
-                                                  (GHC.Prim.uncheckedIShiftL#
-                                                     (GHC.Prim.-# (GHC.Prim.word2Int# r#) 55296#)
-                                                     10#)
-                                                  (GHC.Prim.-# (GHC.Prim.word2Int# r#1) 56320#))
-                                               65536#)))
-                                      ($wunfold (GHC.Prim.+# ww3 2#)) } } } }
-                       GHC.Types.True -> GHC.Types.[] @ GHC.Types.Char }
-                 } in
-                 let {
-                   s :: GHC.Base.String = $wunfold ww1
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww3 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                      ww3,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) }) -}
-e8ef3797186ca6db5bc4b1f982e15292
-  $wxs :: GHC.Prim.Int# -> [Text.PrettyPrint.Boxes.Box]
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-1983262d60a6608966f615360ce51628
-  newtype DocTable
-    = DocTable [(Text.PrettyPrint.HughesPJ.Doc,
-                 Text.PrettyPrint.HughesPJ.Doc)]
-cc7bdd91c6c79c1473a4d48904d3bc29
-  class Fixpoint a where
-    toFix :: a -> Text.PrettyPrint.HughesPJ.Doc
-    simplify :: a -> a
-    {-# MINIMAL toFix #-}
-f926efd2d44310d1ff99c4868d82bc97
-  class PPrint a where
-    pprintTidy :: Language.Fixpoint.Types.PrettyPrint.Tidy
-                  -> a -> Text.PrettyPrint.HughesPJ.Doc
-    pprintPrec :: GHC.Types.Int
-                  -> Language.Fixpoint.Types.PrettyPrint.Tidy
-                  -> a
-                  -> Text.PrettyPrint.HughesPJ.Doc
-f56e84dc8639a434ea5dee7210b75707
-  class PTable a where
-    ptable :: a -> Language.Fixpoint.Types.PrettyPrint.DocTable
-    {-# MINIMAL ptable #-}
-6fdc633788cc0508dea7c363965cb87c
-  data Tidy = Lossy | Full
-8d4d7741ce77338fbce0d5df13fb179b
-  boxDoc ::
-    Text.PrettyPrint.Boxes.Box -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLS),1*U(U(U),U(U),1*U)>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.PrettyPrint.Boxes.Box) ->
-                 case w of ww { Text.PrettyPrint.Boxes.Box ww1 ww2 ww3 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Data.OldList.unlines
-                       (Text.PrettyPrint.Boxes.$wrenderBox ww1 ww2 ww3)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww4 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww4)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-8a92cb9508820b080061dc0c237e0c4f
-  boxHSep ::
-    Text.PrettyPrint.HughesPJ.Doc
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,1*U><L,1*U>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Text.PrettyPrint.HughesPJ.Doc)
-                   (w1 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case Language.Fixpoint.Types.PrettyPrint.$wboxHSep
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-ff2593195f41a1cde2feeee3eac42483
-  docBox ::
-    Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.Boxes.Box
-  {- Arity: 1, Strictness: <L,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 let {
-                   t :: GHC.Base.String
-                   = Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                       @ ()
-                       @ GHC.Base.String
-                       Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                       Text.PrettyPrint.Annotated.HughesPJ.render3
-                       Text.PrettyPrint.Annotated.HughesPJ.render2
-                       Language.Fixpoint.Types.PrettyPrint.docBox1
-                       (GHC.Types.[] @ GHC.Types.Char)
-                       w `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                 } in
-                 Text.PrettyPrint.Boxes.Box
-                   Text.PrettyPrint.Boxes.text1
-                   (case GHC.List.$wlenAcc @ GHC.Types.Char t 0# of ww2 { DEFAULT ->
-                    GHC.Types.I# ww2 })
-                   (Text.PrettyPrint.Boxes.Text t)) -}
-2c20183fd941101a579c684bf819a4e7
-  docBox1 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                            ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s dt1
-                   -> case s of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s1
-                        -> GHC.Base.++ @ GHC.Types.Char s1 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s1
-                        -> GHC.Base.++ @ GHC.Types.Char s1 eta } }) -}
-23093b339d9413532997992b94a8c483
-  notracepp ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Base.String -> a -> a
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><L,A><S,1*U>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Base.String)
-                   (x :: a) ->
-                 x) -}
-3b1416a258327e319f3edde9b9e2d64e
-  pprint ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    a -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LC(C(S))),1*U(A,1*C1(C1(U)))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a) ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                   @ a
-                   $dPPrint
-                   Language.Fixpoint.Types.PrettyPrint.pprint1
-                   Language.Fixpoint.Types.PrettyPrint.Full) -}
-0a777858d7529dca1a76030f737c344b
-  pprint1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-f926efd2d44310d1ff99c4868d82bc97
-  pprintKVs ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint k,
-     Language.Fixpoint.Types.PrettyPrint.PPrint v) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [(k, v)] -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)><L,U><S,1*U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint k)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint v)
-                   (t :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: [(k, v)]) ->
-                 letrec {
-                   go1 :: [(k, v)] -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [(k, v)]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Text.PrettyPrint.Annotated.HughesPJ.Doc ())
-                            (case y of wild1 { (,) x y1 ->
-                             case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                     @ v
-                                     $dPPrint1
-                                     t
-                                     y1)
-                                    `cast`
-                                  (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                               DEFAULT
-                               -> case Language.Fixpoint.Types.PrettyPrint.pprintKVs3
-                                         `cast`
-                                       (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                    DEFAULT
-                                    -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                               @ k
-                                               $dPPrint
-                                               t
-                                               x)
-                                              `cast`
-                                            (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild4 {
-                                         DEFAULT
-                                         -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                 @ ()
-                                                 wild4
-                                                 GHC.Types.True
-                                                 wild3)
-                                              GHC.Types.True
-                                              wild2
-                                         Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                         -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild3
-                                              GHC.Types.True
-                                              wild2 }
-                                    Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                    -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                               @ k
-                                               $dPPrint
-                                               t
-                                               x)
-                                              `cast`
-                                            (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild4 {
-                                         DEFAULT
-                                         -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild4
-                                              GHC.Types.True
-                                              wild2
-                                         Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild2 } }
-                               Text.PrettyPrint.Annotated.HughesPJ.Empty
-                               -> case Language.Fixpoint.Types.PrettyPrint.pprintKVs3
-                                         `cast`
-                                       (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild3 {
-                                    DEFAULT
-                                    -> case (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                               @ k
-                                               $dPPrint
-                                               t
-                                               x)
-                                              `cast`
-                                            (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild4 {
-                                         DEFAULT
-                                         -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild4
-                                              GHC.Types.True
-                                              wild3
-                                         Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild3 }
-                                    Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                    -> (Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                                          @ k
-                                          $dPPrint
-                                          t
-                                          x)
-                                         `cast`
-                                       (Text.PrettyPrint.HughesPJ.N:Doc[0]) } } })
-                            (go1 ys) }
-                 } in
-                 case Text.PrettyPrint.Annotated.HughesPJ.$wreduceVert
-                        @ ()
-                        (Text.PrettyPrint.Annotated.HughesPJ.vcat1
-                           @ ()
-                           (Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                              @ ()
-                              Language.Fixpoint.Types.PrettyPrint.pprintKVs1
-                                `cast`
-                              (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                              (go1 eta))) of ww { (#,#) ww1 ww2 ->
-                 ww2 `cast` (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-6f3a630162b48a1439d73aeafb0369f4
-  pprintKVs1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.pprintKVs_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.pprintKVs2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-d205d33eb802e6c3e0ad914df4acf7fd
-  pprintKVs2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.pprintKVs_s) -}
-639c596d79304bbf01392ae2495950e1
-  pprintKVs3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.PrettyPrint.pprintKVs_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.PrettyPrint.pprintKVs4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-86cd6c38173e47b2c2add14d72232647
-  pprintKVs4 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.PrettyPrint.pprintKVs_s1) -}
-861647bf4c5916e0dd965dc5ffee235d
-  pprintKVs_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "\n"#) -}
-12b2f43911dafb66312460b5edb061d5
-  pprintKVs_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ":="#) -}
-096da0098f8a576a024913fb9c478e62
-  showFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.PrettyPrint.toFix @ a $dFixpoint eta)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-d49681911c1e0ff007381860bbf21a4a
-  showTable ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint k,
-     Language.Fixpoint.Types.PrettyPrint.PPrint v) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> [(k, v)] -> GHC.Base.String
-  {- Arity: 4,
-     Strictness: <L,U(C(C1(U)),A)><L,U(C(C1(U)),A)><L,U><L,1*U>,
-     Unfolding: (\ @ k
-                   @ v
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint k)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint v)
-                   (k1 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (x :: [(k, v)]) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                      @ k
-                      @ v
-                      $dPPrint
-                      $dPPrint1
-                      k1
-                      x)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-0da0198db560727e041326beddb9a8d5
-  showpp ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    a -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U(A,1*C1(C1(U)))>,
-     Unfolding: (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a) ->
-                 let {
-                   g :: a -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                       @ a
-                       $dPPrint
-                       Language.Fixpoint.Types.PrettyPrint.pprint1
-                       Language.Fixpoint.Types.PrettyPrint.Full
-                 } in
-                 \ (x :: a) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (g x) `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-ebd506346d0bbbd9a53ce9b07728df00
-  traceFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    GHC.Base.String -> a -> a
-  {- Arity: 3, Strictness: <L,1*U(1*C1(U),A)><L,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (s :: GHC.Base.String)
-                   (x :: a) ->
-                 Debug.Trace.trace
-                   @ a
-                   (GHC.CString.unpackAppendCString#
-                      "\n\
-                      \Trace: ["#
-                      (GHC.Base.++
-                         @ GHC.Types.Char
-                         s
-                         (GHC.CString.unpackAppendCString#
-                            "] : "#
-                            (Language.Fixpoint.Types.PrettyPrint.showFix @ a $dFixpoint x))))
-                   x) -}
-7724a9ed27c3c4f8119ffb64ffeb17d8
-  tracepp ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Base.String -> a -> a
-  {- Arity: 3, Strictness: <L,1*U(A,1*C1(C1(U)))><L,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (s :: GHC.Base.String)
-                   (x :: a) ->
-                 Debug.Trace.trace
-                   @ a
-                   (GHC.CString.unpackAppendCString#
-                      "\n\
-                      \Trace: ["#
-                      (GHC.Base.++
-                         @ GHC.Types.Char
-                         s
-                         (GHC.CString.unpackAppendCString#
-                            "] : "#
-                            (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                               @ ()
-                               @ GHC.Base.String
-                               Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                               Text.PrettyPrint.Annotated.HughesPJ.render3
-                               Text.PrettyPrint.Annotated.HughesPJ.render2
-                               Language.Fixpoint.Types.PrettyPrint.docBox1
-                               (GHC.Types.[] @ GHC.Types.Char)
-                               (Language.Fixpoint.Types.PrettyPrint.pprintPrec
-                                  @ a
-                                  $dPPrint
-                                  Language.Fixpoint.Types.PrettyPrint.pprint1
-                                  Language.Fixpoint.Types.PrettyPrint.Full
-                                  x)
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0])))))
-                   x) -}
-instance GHC.Classes.Eq [Language.Fixpoint.Types.PrettyPrint.Tidy]
-  = Language.Fixpoint.Types.PrettyPrint.$fEqTidy
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [()]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpoint()
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [(,)]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,)
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [(,,)]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpoint(,,)
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [GHC.Types.Bool]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointBool
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [GHC.Types.Double]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointDouble
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Data.HashSet.HashSet]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointHashSet
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [GHC.Types.Int]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointInt
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [GHC.Integer.Type.Integer]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointInteger
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [GHC.Base.Maybe]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [[]]
-  = Language.Fixpoint.Types.PrettyPrint.$fFixpoint[]
-instance GHC.Base.Monoid [Language.Fixpoint.Types.PrettyPrint.DocTable]
-  = Language.Fixpoint.Types.PrettyPrint.$fMonoidDocTable
-instance GHC.Classes.Ord [Language.Fixpoint.Types.PrettyPrint.Tidy]
-  = Language.Fixpoint.Types.PrettyPrint.$fOrdTidy
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [()]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrint()
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [(,)]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [(,,)]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrint(,,)
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Types.Bool]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintBool
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Text.PrettyPrint.HughesPJ.Doc]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintDoc
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.PrettyPrint.DocTable]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintDocTable
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Types.Float]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Data.HashMap.Base.HashMap]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashMap
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Data.HashSet.HashSet]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Types.Int]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Integer.Type.Integer]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintInteger
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [GHC.Base.Maybe]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintMaybe
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Data.Text.Internal.Text]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrintText
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [[]]
-  = Language.Fixpoint.Types.PrettyPrint.$fPPrint[]
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Refinements.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Refinements.dump-hi
deleted file mode 100644
# file too large to diff: liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Refinements.dump-hi
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Solutions.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Solutions.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Solutions.dump-hi
+++ /dev/null
@@ -1,9913 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:01.7516 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions [family instance module] 8002
-  interface hash: d16abd5f1814be1bfc46d2a98cbf91ba
-  ABI hash: 44253093d8f715e38f38f5864906aa91
-  export-list hash: 3aba65d43f1b4def37dedf43442dc2cb
-  orphan hash: f73935513f31fa82bf2c1af14e989ca6
-  flag hash: cf79def9316a248f22832b6c427acabc
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Solutions.eQual
-  Language.Fixpoint.Types.Solutions.emptyGMap
-  Language.Fixpoint.Types.Solutions.equalsGb
-  Language.Fixpoint.Types.Solutions.fromList
-  Language.Fixpoint.Types.Solutions.gbEquals
-  Language.Fixpoint.Types.Solutions.gbFilterM
-  Language.Fixpoint.Types.Solutions.gbToQbs
-  Language.Fixpoint.Types.Solutions.glookup
-  Language.Fixpoint.Types.Solutions.lookup
-  Language.Fixpoint.Types.Solutions.lookupQBind
-  Language.Fixpoint.Types.Solutions.qb
-  Language.Fixpoint.Types.Solutions.qbFilter
-  Language.Fixpoint.Types.Solutions.qbPreds
-  Language.Fixpoint.Types.Solutions.qbToGb
-  Language.Fixpoint.Types.Solutions.result
-  Language.Fixpoint.Types.Solutions.resultGradual
-  Language.Fixpoint.Types.Solutions.trueEqual
-  Language.Fixpoint.Types.Solutions.update
-  Language.Fixpoint.Types.Solutions.updateGMap
-  Language.Fixpoint.Types.Solutions.updateGMapWithKey
-  Language.Fixpoint.Types.Solutions.BIndex{Language.Fixpoint.Types.Solutions.Bind Language.Fixpoint.Types.Solutions.Cstr Language.Fixpoint.Types.Solutions.Root}
-  Language.Fixpoint.Types.Solutions.BindPred{Language.Fixpoint.Types.Solutions.BP bpConc bpKVar}
-  Language.Fixpoint.Types.Solutions.CMap
-  Language.Fixpoint.Types.Solutions.Cand
-  Language.Fixpoint.Types.Solutions.Cube{Language.Fixpoint.Types.Solutions.Cube cuBinds cuId cuSubst cuTag}
-  Language.Fixpoint.Types.Solutions.EQual{Language.Fixpoint.Types.Solutions.EQL _eqArgs _eqQual eqPred}
-  Language.Fixpoint.Types.Solutions.GBind
-  Language.Fixpoint.Types.Solutions.GSolution
-  Language.Fixpoint.Types.Solutions.Hyp
-  Language.Fixpoint.Types.Solutions.Index{Language.Fixpoint.Types.Solutions.FastIdx bindExpr envBinds envSorts envTx kvDef kvUse}
-  Language.Fixpoint.Types.Solutions.KIndex{Language.Fixpoint.Types.Solutions.KIndex kiBIndex kiKVar kiPos}
-  Language.Fixpoint.Types.Solutions.QBind
-  Language.Fixpoint.Types.Solutions.Sol{gMap sEnv sScp}
-  Language.Fixpoint.Types.Solutions.Solution
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Either 20b09ef8d0a5b74fdec011c40c1587f5
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  ListNE 245082d2e65bed4e03d6c17463d8b79a
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  groupBase 9dd7c99949f69030dba08f18ac31f288
-  safeZip 4b17163e981a092c47f7e5dc77154e16
-  tshow c3e388152c637865435def68336e9158
-  |-> 179563de072577d02bfeb5d1665e4175
-import  -/  Language.Fixpoint.SortCheck c9a1a2a1ffe81fd310d7086dfdf22f97
-  exports: a9abe77527737e86ba7b120d738eae9d
-  elaborate 5d158ea131d7e277795d290df18aadb1
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  exports: 8ff2109a000830685650941885f8f564
-  Qualifier 50ebd3aab1ef1df3934f91be3cbdc9a8
-  SubcId cdcef876bb053a43ceafb5cadfe2311f
-  Tag a9aceec288db7dfc6dfc1b70bc4a8f49
-  qBody a90af993c8ca625414e8b90f88916f3f
-  qParams 54bc9290720ec8197ce69a552d4656be
-  trueQual eeaca4f0234943aafb2bfee7e7c4a632
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  exports: 0b4b7a69569980039fc5b65d426e2d6f
-  BindId 8c87ed5c72a1a0e13ef4756e1a2fa1a4
-  IBindEnv dae79859b3442c211473f5cded0c14f7
-  SEnv ae9741409aa049333ef008f3802cfecf
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  showpp 0da0198db560727e041326beddb9a8d5
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVSub c90a46333bc7a488713b09e58c2c7d81
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  exports: c2522a8cb8fa0e99702ea4cacf9bcf96
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  Language.Fixpoint.Types.Substitutions 71387f94a50c084a205ef233a1922487
-  exports: a573d56a0ab0c7b358ce707e661d4756
-  mkSubst fb28cdefd3c7c63bb5a42b1e7ed00813
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-e518b1979b6f75d14999ab1b171ee475
-  $c5r5ZPZ10Qcz5QLwv8gi6VI :: Data.Data.Constr
-4c349c6b4b3912b41a20bef1a1f44281
-  $cHf0UzAzOg8aHRlH63rW5AX :: Data.Data.Constr
-5bba9fd7f190c32fa8e47fd58abfc710
-  $cKKhfAXEYklkKqbqeAKWbxa :: Data.Data.Constr
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual ::
-    Data.Data.Data Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.EQual
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cp1Data
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgfoldl
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgunfold
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$ctoConstr
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cdataTypeOf
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cdataCast1
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cdataCast2
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapT
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapQl
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapQr
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapQ
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapQi
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapM
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapMp
-                  Language.Fixpoint.Types.Solutions.$fDataEQual_$cgmapMo -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual1 ::
-    (Language.Fixpoint.Types.Constraints.Qualifier
-     -> Language.Fixpoint.Types.Refinements.Expr
-     -> [Language.Fixpoint.Types.Refinements.Expr]
-     -> Language.Fixpoint.Types.Solutions.EQual,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Solutions.$WEQL,
-                  GHC.Types.False)) -}
-1b34983ca0ed5af8824ec215b068e7ba
-  $fDataEQual2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Solutions.$fDataEQual3) -}
-257b21b2a30b9cddedfcda5dc33d553d
-  $fDataEQual3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Solutions.$cKKhfAXEYklkKqbqeAKWbxa
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-471c30489e6906a90ab864f6ddb5115c
-  $fDataEQual4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "EQual"#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Solutions.EQual
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Solutions.EQual) ->
-                 Language.Fixpoint.Types.Solutions.$fDataEQual6) -}
-ce327392340f10a7fe275454d72c0ee9
-  $fDataEQual6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Solutions.$fDataEQual7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Solutions.$tcEQual
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-189a844b6bf3929d8fb23ce10e3d8a34
-  $fDataEQual7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   4722934541866525724##
-                   2366909952471550354##) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.EQual)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.EQual)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.EQual)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.EQual)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cdataTypeOf ::
-    Language.Fixpoint.Types.Solutions.EQual -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 Language.Fixpoint.Types.Solutions.$tFj0zxOA5fqxKSNTcI3kqJM) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> c Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w2 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Solutions.$w$cgfoldl
-                   @ c
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3 }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> m Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w2 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Solutions.$w$cgmapM
-                   @ m
-                   w
-                   w1
-                   ww1
-                   ww2
-                   ww3 }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> m Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)> -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> m Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl35 :: m Language.Fixpoint.Types.Solutions.EQual
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Solutions.EQual
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Solutions.EQual, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   (case eta1 of wild { Language.Fixpoint.Types.Solutions.EQL a1 a2 a3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl36 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl36
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ [Language.Fixpoint.Types.Refinements.Expr]
-                      @ Language.Fixpoint.Types.Solutions.EQual
-                      Language.Fixpoint.Types.Refinements.$s$fData[]5
-                      (k @ Language.Fixpoint.Types.Refinements.Expr
-                         @ ([Language.Fixpoint.Types.Refinements.Expr]
-                            -> Language.Fixpoint.Types.Solutions.EQual)
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         (k @ Language.Fixpoint.Types.Constraints.Qualifier
-                            @ (Language.Fixpoint.Types.Refinements.Expr
-                               -> [Language.Fixpoint.Types.Refinements.Expr]
-                               -> Language.Fixpoint.Types.Solutions.EQual)
-                            Language.Fixpoint.Types.Constraints.$fDataQualifier
-                            (GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Language.Fixpoint.Types.Constraints.Qualifier
-                                  -> Language.Fixpoint.Types.Refinements.Expr
-                                  -> [Language.Fixpoint.Types.Refinements.Expr]
-                                  -> Language.Fixpoint.Types.Solutions.EQual,
-                                  GHC.Types.Bool)
-                               Language.Fixpoint.Types.Solutions.$fDataEQual1)
-                              `cast`
-                            (Sym (Data.Data.N:Mp[0]
-                                      <m>_R
-                                      <Language.Fixpoint.Types.Constraints.Qualifier
-                                       -> Language.Fixpoint.Types.Refinements.Expr
-                                       -> [Language.Fixpoint.Types.Refinements.Expr]
-                                       -> Language.Fixpoint.Types.Solutions.EQual>_N))
-                            a1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Language.Fixpoint.Types.Refinements.Expr
-                                    -> [Language.Fixpoint.Types.Refinements.Expr]
-                                    -> Language.Fixpoint.Types.Solutions.EQual>_N))
-                         a2)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <[Language.Fixpoint.Types.Refinements.Expr]
-                                 -> Language.Fixpoint.Types.Solutions.EQual>_N))
-                      a3 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Solutions.EQual,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl35
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Solutions.EQual
-                           x' } })) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.EQual -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S(SSS),1*U(U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (w1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w1 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 GHC.Types.:
-                   @ u
-                   (w @ Language.Fixpoint.Types.Constraints.Qualifier
-                      Language.Fixpoint.Types.Constraints.$fDataQualifier
-                      ww1)
-                   (GHC.Types.:
-                      @ u
-                      (w @ Language.Fixpoint.Types.Refinements.Expr
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         ww2)
-                      (GHC.Types.:
-                         @ u
-                         (w @ [Language.Fixpoint.Types.Refinements.Expr]
-                            Language.Fixpoint.Types.Refinements.$s$fData[]5
-                            ww3)
-                         (GHC.Types.[] @ u))) }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Solutions.EQL ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Solutions.$w$cgmapQi
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4
-                   ww5 } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w3 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Solutions.$w$cgmapQl
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w3 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Solutions.$w$cgmapQr
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><S(SSS),1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w1 of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 case w @ Language.Fixpoint.Types.Constraints.Qualifier
-                        Language.Fixpoint.Types.Constraints.$fDataQualifier
-                        ww1 of dt { Language.Fixpoint.Types.Constraints.Q ipv ipv1 ipv2 ipv3 ->
-                 case w @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fDataExpr
-                        ww2 of dt1 { DEFAULT ->
-                 case w @ [Language.Fixpoint.Types.Refinements.Expr]
-                        Language.Fixpoint.Types.Refinements.$s$fData[]5
-                        ww3 of dt2 { DEFAULT ->
-                 Language.Fixpoint.Types.Solutions.EQL dt dt1 dt2 } } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 Language.Fixpoint.Types.Solutions.$w$cgunfold @ c w w1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataEQual5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Solutions.EQual>_N)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataEQual_$ctoConstr ::
-    Language.Fixpoint.Types.Solutions.EQual -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.EQL ds1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Solutions.$cKKhfAXEYklkKqbqeAKWbxa }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind ::
-    Data.Data.Data Language.Fixpoint.Types.Solutions.GBind
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.GBind
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cp1Data
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgfoldl
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgunfold
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$ctoConstr
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cdataTypeOf
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cdataCast1
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cdataCast2
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapT
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapQl
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapQr
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapQ
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapQi
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapM
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapMp
-                  Language.Fixpoint.Types.Solutions.$fDataGBind_$cgmapMo -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind1 ::
-    ([[Language.Fixpoint.Types.Solutions.EQual]]
-     -> Language.Fixpoint.Types.Solutions.GBind,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Solutions.$fDataGBind2
-                    `cast`
-                  (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                   ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])),
-                  GHC.Types.False)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind10 ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> [[Language.Fixpoint.Types.Solutions.EQual]]
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 ds
-                   @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                   x0 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-f6efb2807f7d2ed6a1fb434adeb25122
-  $fDataGBind11 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Solutions.$fDataGBind12) -}
-d2096540555235f648ee127ef70adb97
-  $fDataGBind12 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Solutions.$cHf0UzAzOg8aHRlH63rW5AX
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-014f5d8a66cf05cc5eec5bba39963054
-  $fDataGBind13 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "GBind"#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind14 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Solutions.GBind
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Solutions.GBind) ->
-                 Language.Fixpoint.Types.Solutions.$fDataGBind15) -}
-0711ac7c9d71ffb7a6a8ea04301cdc82
-  $fDataGBind15 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Solutions.$fDataGBind16
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Solutions.$tcGBind
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-97ecffb610509737db12445813d6cd99
-  $fDataGBind16 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   841667668048486937##
-                   277690391081026976##) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind2 ::
-    [[Language.Fixpoint.Types.Solutions.EQual]]
-    -> [[Language.Fixpoint.Types.Solutions.EQual]]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (tpl :: [[Language.Fixpoint.Types.Solutions.EQual]]) -> tpl) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind3 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c [[Language.Fixpoint.Types.Solutions.EQual]])
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c [[Language.Fixpoint.Types.Solutions.EQual]])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind4 ::
-    [[Language.Fixpoint.Types.Solutions.EQual]] -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                 Data.Data.listDataType) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind5 ::
-    [[Language.Fixpoint.Types.Solutions.EQual]] -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                 case ds of wild {
-                   [] -> Data.Data.nilConstr : ds1 ds2 -> Data.Data.consConstr }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind6 ::
-    Data.Data.Data [Language.Fixpoint.Types.Solutions.EQual]
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1 -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind7 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c [Language.Fixpoint.Types.Solutions.EQual])
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c [Language.Fixpoint.Types.Solutions.EQual])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind8 ::
-    [Language.Fixpoint.Types.Solutions.EQual] -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                 Data.Data.listDataType) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind9 ::
-    [Language.Fixpoint.Types.Solutions.EQual] -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                 case ds of wild {
-                   [] -> Data.Data.nilConstr : ds1 ds2 -> Data.Data.consConstr }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.GBind)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.GBind)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.GBind)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.GBind)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cdataTypeOf ::
-    Language.Fixpoint.Types.Solutions.GBind -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 Language.Fixpoint.Types.Solutions.$t7NIgNMeAJqb7lftg8PcXtY) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> c Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),1*C1(C1(C1(U)))><L,1*C1(U)><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 k @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                   (z @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                         -> Language.Fixpoint.Types.Solutions.GBind)
-                      Language.Fixpoint.Types.Solutions.$fDataGBind2
-                        `cast`
-                      (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])))
-                   ds `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> m Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 let {
-                   lvl35 :: m [[Language.Fixpoint.Types.Solutions.EQual]]
-                   = ds
-                       @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                       Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                       eta `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                      -> Language.Fixpoint.Types.Solutions.GBind)
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   (GHC.Base.return
-                      @ m
-                      $dMonad
-                      @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                         -> Language.Fixpoint.Types.Solutions.GBind)
-                      Language.Fixpoint.Types.Solutions.$fDataGBind2
-                        `cast`
-                      (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])))
-                   (\ (c' :: [[Language.Fixpoint.Types.Solutions.EQual]]
-                             -> Language.Fixpoint.Types.Solutions.GBind) ->
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                      @ Language.Fixpoint.Types.Solutions.GBind
-                      lvl35
-                      (\ (x' :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ Language.Fixpoint.Types.Solutions.GBind
-                         (c' x')))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> m Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl35 :: m Language.Fixpoint.Types.Solutions.GBind
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Solutions.GBind
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   (let {
-                      lvl36 :: m [[Language.Fixpoint.Types.Solutions.EQual]]
-                      = ds
-                          @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                          Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                          eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                         -> Language.Fixpoint.Types.Solutions.GBind,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                            -> Language.Fixpoint.Types.Solutions.GBind,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Solutions.$fDataGBind1)
-                      (\ (ds1 :: ([[Language.Fixpoint.Types.Solutions.EQual]]
-                                  -> Language.Fixpoint.Types.Solutions.GBind,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       case b1 of wild1 {
-                         GHC.Types.False
-                         -> GHC.Base.mplus
-                              @ m
-                              $dMonadPlus
-                              @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                              (GHC.Base.>>=
-                                 @ m
-                                 $dMonad
-                                 @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                                 @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                                 lvl36
-                                 (\ (y' :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                                  GHC.Base.return
-                                    @ m
-                                    $dMonad
-                                    @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                                    (h y', GHC.Types.True)))
-                              (GHC.Base.return
-                                 @ m
-                                 $dMonad
-                                 @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                                 (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]),
-                                  GHC.Types.False))
-                         GHC.Types.True
-                         -> GHC.Base.return
-                              @ m
-                              $dMonad
-                              @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                              (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]),
-                               GHC.Types.True) } }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Solutions.GBind,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl35
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Solutions.GBind
-                           x' } })) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> m Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl35 :: m Language.Fixpoint.Types.Solutions.GBind
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Solutions.GBind
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   (let {
-                      lvl36 :: m [[Language.Fixpoint.Types.Solutions.EQual]]
-                      = ds
-                          @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                          Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                          eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                         -> Language.Fixpoint.Types.Solutions.GBind,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                            -> Language.Fixpoint.Types.Solutions.GBind,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Solutions.$fDataGBind1)
-                      (\ (ds1 :: ([[Language.Fixpoint.Types.Solutions.EQual]]
-                                  -> Language.Fixpoint.Types.Solutions.GBind,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       GHC.Base.mplus
-                         @ m
-                         $dMonadPlus
-                         @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                         (GHC.Base.>>=
-                            @ m
-                            $dMonad
-                            @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                            @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                            lvl36
-                            (\ (y' :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                             GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                               (h y', GHC.Types.True)))
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Solutions.GBind, GHC.Types.Bool)
-                            (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]),
-                             b1)) }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Solutions.GBind,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl35
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Solutions.GBind
-                           x' } })) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.GBind -> [u]
-  {- Arity: 2, Strictness: <L,1*C1(C1(U))><L,U>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 GHC.Types.:
-                   @ u
-                   (ds
-                      @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                      x0 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]))
-                   (GHC.Types.[] @ u)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> u
-  {- Arity: 3, Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 case ds of wild { GHC.Types.I# x1 ->
-                 case x1 of wild1 {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> ds1
-                        @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                        Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                        x `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]) } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 ds
-                   ds1
-                   (ds2
-                      @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                      eta `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 ds
-                   (ds2
-                      @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                      x0 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]))
-                   ds1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataGBind10
-                  `cast`
-                (<forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Solutions.GBind>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3, Strictness: <C(C(S)),1*C1(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-                   (z @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                         -> Language.Fixpoint.Types.Solutions.GBind)
-                      Language.Fixpoint.Types.Solutions.$fDataGBind2
-                        `cast`
-                      (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataGBind14
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Solutions.GBind>_N)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$ctoConstr ::
-    Language.Fixpoint.Types.Solutions.GBind -> Data.Data.Constr
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 Language.Fixpoint.Types.Solutions.$cHf0UzAzOg8aHRlH63rW5AX) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$s$fData[] ::
-    Data.Data.Data [[Language.Fixpoint.Types.Solutions.EQual]]
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                  (Data.Data.$fData[]_$cp1Data
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgfoldl
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgunfold
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  Language.Fixpoint.Types.Solutions.$fDataGBind5
-                  Language.Fixpoint.Types.Solutions.$fDataGBind4
-                  (Data.Data.$fData[]_$cdataCast1
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  Language.Fixpoint.Types.Solutions.$fDataGBind3
-                  (Data.Data.$fData[]_$cgmapT
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapQl
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapQr
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapQ
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapQi
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapM
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapMp
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6)
-                  (Data.Data.$fData[]_$cgmapMo
-                     @ [Language.Fixpoint.Types.Solutions.EQual]
-                     Language.Fixpoint.Types.Solutions.$fDataGBind6) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataGBind_$s$fData[]1 ::
-    Data.Data.Data [Language.Fixpoint.Types.Solutions.EQual]
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [Language.Fixpoint.Types.Solutions.EQual]
-                  (Data.Data.$fData[]_$cp1Data
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgfoldl
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgunfold
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  Language.Fixpoint.Types.Solutions.$fDataGBind9
-                  Language.Fixpoint.Types.Solutions.$fDataGBind8
-                  (Data.Data.$fData[]_$cdataCast1
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  Language.Fixpoint.Types.Solutions.$fDataGBind7
-                  (Data.Data.$fData[]_$cgmapT
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapQl
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapQr
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapQ
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapQi
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapM
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapMp
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual)
-                  (Data.Data.$fData[]_$cgmapMo
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fDataEQual) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind ::
-    Data.Data.Data Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.QBind
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cp1Data
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgfoldl
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgunfold
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$ctoConstr
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cdataTypeOf
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cdataCast1
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cdataCast2
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapT
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapQl
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapQr
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapQ
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapQi
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapM
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapMp
-                  Language.Fixpoint.Types.Solutions.$fDataQBind_$cgmapMo -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind1 ::
-    ([Language.Fixpoint.Types.Solutions.EQual]
-     -> Language.Fixpoint.Types.Solutions.QBind,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Solutions.$fDataQBind2
-                    `cast`
-                  (<[Language.Fixpoint.Types.Solutions.EQual]>_R
-                   ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])),
-                  GHC.Types.False)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind2 ::
-    [Language.Fixpoint.Types.Solutions.EQual]
-    -> [Language.Fixpoint.Types.Solutions.EQual]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (tpl :: [Language.Fixpoint.Types.Solutions.EQual]) -> tpl) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind3 ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> [Language.Fixpoint.Types.Solutions.EQual]
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 ds
-                   @ [Language.Fixpoint.Types.Solutions.EQual]
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                   x0 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-166c3ebcc0fa3e3d2535d7cd4105fd6e
-  $fDataQBind4 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Solutions.$fDataQBind5) -}
-c419bab37bbb334c2bc47c5ed43f1c60
-  $fDataQBind5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Solutions.$c5r5ZPZ10Qcz5QLwv8gi6VI
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-ceb090e9d371361308b6efd6f63027ed
-  $fDataQBind6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "QBind"#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind7 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Solutions.QBind
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Solutions.QBind) ->
-                 Language.Fixpoint.Types.Solutions.$fDataQBind8) -}
-1061200d7cc4607a197eefff6a37bddd
-  $fDataQBind8 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Solutions.$fDataQBind9
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Solutions.$tcQBind
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-e7cc59b7ba94f8f24ebcb7f0a986a4f0
-  $fDataQBind9 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   5764535289528777981##
-                   15267269007377772324##) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.QBind)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.QBind)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Solutions.QBind)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Solutions.QBind)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cdataTypeOf ::
-    Language.Fixpoint.Types.Solutions.QBind -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 Language.Fixpoint.Types.Solutions.$tDpk8R7UY3GJDKdssOFNdZX) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> c Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),1*C1(C1(C1(U)))><L,1*C1(U)><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (z :: forall g. g -> c g)
-                   (ds :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 k @ [Language.Fixpoint.Types.Solutions.EQual]
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                   (z @ ([Language.Fixpoint.Types.Solutions.EQual]
-                         -> Language.Fixpoint.Types.Solutions.QBind)
-                      Language.Fixpoint.Types.Solutions.$fDataQBind2
-                        `cast`
-                      (<[Language.Fixpoint.Types.Solutions.EQual]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])))
-                   ds `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> m Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 let {
-                   lvl35 :: m [Language.Fixpoint.Types.Solutions.EQual]
-                   = ds
-                       @ [Language.Fixpoint.Types.Solutions.EQual]
-                       Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                       eta `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ ([Language.Fixpoint.Types.Solutions.EQual]
-                      -> Language.Fixpoint.Types.Solutions.QBind)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   (GHC.Base.return
-                      @ m
-                      $dMonad
-                      @ ([Language.Fixpoint.Types.Solutions.EQual]
-                         -> Language.Fixpoint.Types.Solutions.QBind)
-                      Language.Fixpoint.Types.Solutions.$fDataQBind2
-                        `cast`
-                      (<[Language.Fixpoint.Types.Solutions.EQual]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])))
-                   (\ (c' :: [Language.Fixpoint.Types.Solutions.EQual]
-                             -> Language.Fixpoint.Types.Solutions.QBind) ->
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ [Language.Fixpoint.Types.Solutions.EQual]
-                      @ Language.Fixpoint.Types.Solutions.QBind
-                      lvl35
-                      (\ (x' :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                       GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ Language.Fixpoint.Types.Solutions.QBind
-                         (c' x')))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> m Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl35 :: m Language.Fixpoint.Types.Solutions.QBind
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Solutions.QBind
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   (let {
-                      lvl36 :: m [Language.Fixpoint.Types.Solutions.EQual]
-                      = ds
-                          @ [Language.Fixpoint.Types.Solutions.EQual]
-                          Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                          eta1 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ ([Language.Fixpoint.Types.Solutions.EQual]
-                         -> Language.Fixpoint.Types.Solutions.QBind,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ ([Language.Fixpoint.Types.Solutions.EQual]
-                            -> Language.Fixpoint.Types.Solutions.QBind,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Solutions.$fDataQBind1)
-                      (\ (ds1 :: ([Language.Fixpoint.Types.Solutions.EQual]
-                                  -> Language.Fixpoint.Types.Solutions.QBind,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       case b1 of wild1 {
-                         GHC.Types.False
-                         -> GHC.Base.mplus
-                              @ m
-                              $dMonadPlus
-                              @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                              (GHC.Base.>>=
-                                 @ m
-                                 $dMonad
-                                 @ [Language.Fixpoint.Types.Solutions.EQual]
-                                 @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                                 lvl36
-                                 (\ (y' :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                                  GHC.Base.return
-                                    @ m
-                                    $dMonad
-                                    @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                                    (h y', GHC.Types.True)))
-                              (GHC.Base.return
-                                 @ m
-                                 $dMonad
-                                 @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                                 (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]),
-                                  GHC.Types.False))
-                         GHC.Types.True
-                         -> GHC.Base.return
-                              @ m
-                              $dMonad
-                              @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                              (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]),
-                               GHC.Types.True) } }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Solutions.QBind,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl35
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Solutions.QBind
-                           x' } })) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> m Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl35 :: m Language.Fixpoint.Types.Solutions.QBind
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Solutions.QBind
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   (let {
-                      lvl36 :: m [Language.Fixpoint.Types.Solutions.EQual]
-                      = ds
-                          @ [Language.Fixpoint.Types.Solutions.EQual]
-                          Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                          eta1 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                    } in
-                    GHC.Base.>>=
-                      @ m
-                      $dMonad
-                      @ ([Language.Fixpoint.Types.Solutions.EQual]
-                         -> Language.Fixpoint.Types.Solutions.QBind,
-                         GHC.Types.Bool)
-                      @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                      (GHC.Base.return
-                         @ m
-                         $dMonad
-                         @ ([Language.Fixpoint.Types.Solutions.EQual]
-                            -> Language.Fixpoint.Types.Solutions.QBind,
-                            GHC.Types.Bool)
-                         Language.Fixpoint.Types.Solutions.$fDataQBind1)
-                      (\ (ds1 :: ([Language.Fixpoint.Types.Solutions.EQual]
-                                  -> Language.Fixpoint.Types.Solutions.QBind,
-                                  GHC.Types.Bool)) ->
-                       case ds1 of wild { (,) h b1 ->
-                       GHC.Base.mplus
-                         @ m
-                         $dMonadPlus
-                         @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                         (GHC.Base.>>=
-                            @ m
-                            $dMonad
-                            @ [Language.Fixpoint.Types.Solutions.EQual]
-                            @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                            lvl36
-                            (\ (y' :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                             GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                               (h y', GHC.Types.True)))
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Solutions.QBind, GHC.Types.Bool)
-                            (h eta1 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]),
-                             b1)) }))
-                   (\ (ds1 :: (Language.Fixpoint.Types.Solutions.QBind,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl35
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Solutions.QBind
-                           x' } })) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.QBind -> [u]
-  {- Arity: 2, Strictness: <L,1*C1(C1(U))><L,U>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 GHC.Types.:
-                   @ u
-                   (ds
-                      @ [Language.Fixpoint.Types.Solutions.EQual]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                      x0 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]))
-                   (GHC.Types.[] @ u)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> u
-  {- Arity: 3, Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (ds :: GHC.Types.Int)
-                   (ds1 :: forall d. Data.Data.Data d => d -> u)
-                   (x :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 case ds of wild { GHC.Types.I# x1 ->
-                 case x1 of wild1 {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> ds1
-                        @ [Language.Fixpoint.Types.Solutions.EQual]
-                        Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                        x `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]) } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r -> r' -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (eta :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 ds
-                   ds1
-                   (ds2
-                      @ [Language.Fixpoint.Types.Solutions.EQual]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                      eta `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><L,1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (ds :: r' -> r -> r)
-                   (ds1 :: r)
-                   (ds2 :: forall d. Data.Data.Data d => d -> r')
-                   (x0 :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 ds
-                   (ds2
-                      @ [Language.Fixpoint.Types.Solutions.EQual]
-                      Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                      x0 `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]))
-                   ds1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 2, Strictness: <C(C(S)),1*C1(C1(U))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataQBind3
-                  `cast`
-                (<forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Solutions.QBind>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3, Strictness: <C(C(S)),1*C1(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ [Language.Fixpoint.Types.Solutions.EQual]
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-                   (z @ ([Language.Fixpoint.Types.Solutions.EQual]
-                         -> Language.Fixpoint.Types.Solutions.QBind)
-                      Language.Fixpoint.Types.Solutions.$fDataQBind2
-                        `cast`
-                      (<[Language.Fixpoint.Types.Solutions.EQual]>_R
-                       ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataQBind7
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Solutions.QBind>_N)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fDataQBind_$ctoConstr ::
-    Language.Fixpoint.Types.Solutions.QBind -> Data.Data.Constr
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 Language.Fixpoint.Types.Solutions.$c5r5ZPZ10Qcz5QLwv8gi6VI) -}
-8f62a988059ccdc709db0148913c1842
-  $fEqBIndex ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fEqBIndex_$c==
-                  Language.Fixpoint.Types.Solutions.$fEqBIndex_$c/= -}
-8f62a988059ccdc709db0148913c1842
-  $fEqBIndex_$c/= ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.False }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt1) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.eqInteger# a1 b1 of wild2 { DEFAULT ->
-                           case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fEqBIndex_$c== ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (ds1 :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.True }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt1) }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case ds1 of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.eqInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqEQual :: GHC.Classes.Eq Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.EQual
-                  Language.Fixpoint.Types.Solutions.$fEqEQual_$c==
-                  Language.Fixpoint.Types.Solutions.$fEqEQual_$c/= -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqEQual_$c/= ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> Language.Fixpoint.Types.Solutions.EQual -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)LSS)SS),1*U(U(U(U,A,A),1*U,U,U(1*U,U,U)),U,U)><S(S(S(SLL)LSS)SS),1*U(U(U(U,A,A),1*U,U,U(1*U,U,U)),U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Solutions.EQual)
-                   (b :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case Language.Fixpoint.Types.Solutions.$fEqEQual_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqEQual_$c== ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> Language.Fixpoint.Types.Solutions.EQual -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)LSS)SS),1*U(U(U(U,A,A),1*U,U,U(1*U,U,U)),U,U)><S(S(S(SLL)LSS)SS),1*U(U(U(U,A,A),1*U,U,U(1*U,U,U)),U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.EQual)
-                   (w1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Language.Fixpoint.Types.Constraints.Q ww5 ww6 ww7 ww8 ->
-                 case ww5 of ww9 { Language.Fixpoint.Types.Names.S ww10 ww11 ww12 ->
-                 case ww8 of ww13 { Text.Parsec.Pos.SourcePos ww14 ww15 ww16 ->
-                 case w1 of ww17 { Language.Fixpoint.Types.Solutions.EQL ww18 ww19 ww20 ->
-                 case ww18 of ww21 { Language.Fixpoint.Types.Constraints.Q ww22 ww23 ww24 ww25 ->
-                 case ww22 of ww26 { Language.Fixpoint.Types.Names.S ww27 ww28 ww29 ->
-                 case ww25 of ww30 { Text.Parsec.Pos.SourcePos ww31 ww32 ww33 ->
-                 Language.Fixpoint.Types.Solutions.$w$c==
-                   ww10
-                   ww6
-                   ww7
-                   ww14
-                   ww15
-                   ww16
-                   ww2
-                   ww3
-                   ww27
-                   ww23
-                   ww24
-                   ww31
-                   ww32
-                   ww33
-                   ww19
-                   ww20 } } } } } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fEqKIndex ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fEqKIndex_$c==
-                  Language.Fixpoint.Types.Solutions.$fEqKIndex_$c/= -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fEqKIndex_$c/= ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww1 ww9) of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 ww10) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww5 ww13) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True -> GHC.Types.False } } } } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fEqKIndex_$c== ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (ds1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.KIndex dt dt1 a3 ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Solutions.KIndex dt2 dt3 b3 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt2) of wild2 {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt1 dt3) of wild3 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case a3
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild4 { Language.Fixpoint.Types.Names.S dt4 ds2 ds3 ->
-                           case b3
-                                  `cast`
-                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild5 { Language.Fixpoint.Types.Names.S dt5 ds4 ds5 ->
-                           GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt4 dt5) } } } } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqQBind :: GHC.Classes.Eq Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.QBind
-                  Language.Fixpoint.Types.Solutions.$fEqQBind_$c==
-                  Language.Fixpoint.Types.Solutions.$fEqQBind_$c/= -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqQBind1 ::
-    [Language.Fixpoint.Types.Solutions.EQual]
-    -> [Language.Fixpoint.Types.Solutions.EQual] -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (GHC.Classes.$fEq[]_$c==
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Solutions.$fEqEQual) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqQBind_$c/= ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.QBind -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fEqQBind_$s$fEq[]_$c/=
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqQBind_$c== ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.QBind -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fEqQBind1
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fEqQBind_$s$fEq[]_$c/= ::
-    [Language.Fixpoint.Types.Solutions.EQual]
-    -> [Language.Fixpoint.Types.Solutions.EQual] -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: [Language.Fixpoint.Types.Solutions.EQual])
-                   (y :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                 GHC.Classes.not
-                   (GHC.Classes.$fEq[]_$c==
-                      @ Language.Fixpoint.Types.Solutions.EQual
-                      Language.Fixpoint.Types.Solutions.$fEqEQual
-                      x
-                      y)) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fFunctorSol ::
-    GHC.Base.Functor (Language.Fixpoint.Types.Solutions.Sol a)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Solutions.Sol a)
-                  (Language.Fixpoint.Types.Solutions.$fFunctorSol_$cfmap @ a)
-                  (Language.Fixpoint.Types.Solutions.$fFunctorSol_$c<$ @ a) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fFunctorSol_$c<$ ::
-    a1
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-    -> Language.Fixpoint.Types.Solutions.Sol a a1
-  {- Arity: 2, Strictness: <L,U><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ a1
-                   @ b
-                   (eta :: a1)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.Sol a b) ->
-                 Language.Fixpoint.Types.Solutions.$fFunctorSol_$cfmap
-                   @ a
-                   @ b
-                   @ a1
-                   (\ (ds :: b) -> eta)
-                   eta1) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fFunctorSol_$cfmap ::
-    (a1 -> b)
-    -> Language.Fixpoint.Types.Solutions.Sol a a1
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-  {- Arity: 2, Strictness: <L,C(U)><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ a1
-                   @ b
-                   (w :: a1 -> b)
-                   (w1 :: Language.Fixpoint.Types.Solutions.Sol a a1) ->
-                 case w1 of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Solutions.$w$cfmap
-                        @ a
-                        @ a1
-                        @ b
-                        w
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        ww5 of ww6 { (#,,,,#) ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ a
-                   @ b
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww11 } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fGenericBIndex ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fGenericBIndex_$cfrom
-                  Language.Fixpoint.Types.Solutions.$fGenericBIndex_$cto -}
-8f62a988059ccdc709db0148913c1842
-  $fGenericBIndex1 ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedUnpack)
-               (GHC.Generics.K1
-                  GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-          GHC.Generics.:+: GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Constraints.SubcId)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> Language.Fixpoint.Types.Solutions.$fGenericBIndex2 @ x
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Constraints.SubcId)))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Constraints.SubcId)))
-                           @ x
-                           (GHC.Types.I# dt)
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Environments.BindId>_R
-                                          <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Environments.BindId>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Environments.BindId)>_R)) <x>_N)))
-                   Language.Fixpoint.Types.Solutions.Cstr g1
-                   -> GHC.Generics.R1
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-                        @ (GHC.Generics.M1
-                             GHC.Generics.C
-                             ('GHC.Generics.MetaCons
-                                "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.S
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack)
-                                (GHC.Generics.K1
-                                   GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-                           GHC.Generics.:+: GHC.Generics.M1
-                                              GHC.Generics.C
-                                              ('GHC.Generics.MetaCons
-                                                 "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Constraints.SubcId)))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.K1
-                                      GHC.Generics.R Language.Fixpoint.Types.Constraints.SubcId)))
-                           @ x
-                           g1
-                             `cast`
-                           (Trans
-                                (Sym (GHC.Generics.N:K1[0]
-                                          <GHC.Generics.R>_P
-                                          <Language.Fixpoint.Types.Constraints.SubcId>_R
-                                          <x>_P))
-                                (Trans
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.S>_P
-                                               <'GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict>_P
-                                               <GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Constraints.SubcId>_R))
-                                     (Sym (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Constraints.SubcId)>_R)) <x>_N))) }) -}
-1717f31dca41d502244c1e42cc7133a3
-  $fGenericBIndex2 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Constraints.SubcId)))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedUnpack)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Constraints.SubcId)))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "Root" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-8f62a988059ccdc709db0148913c1842
-  $fGenericBIndex_$cfrom ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.BIndex x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericBIndex1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Solutions.BIndex>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "BIndex"
-                                       "Language.Fixpoint.Types.Solutions"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                         GHC.Generics.C
-                                                         ('GHC.Generics.MetaCons
-                                                            "Bind"
-                                                            'GHC.Generics.PrefixI
-                                                            'GHC.Types.False)
-                                                         (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Environments.BindId))
-                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                          GHC.Generics.C
-                                                                          ('GHC.Generics.MetaCons
-                                                                             "Cstr"
-                                                                             'GHC.Generics.PrefixI
-                                                                             'GHC.Types.False)
-                                                                          (GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                'GHC.Base.Nothing
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Constraints.SubcId)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Solutions.Rep_BIndex[0]))) <x>_N) -}
-8f62a988059ccdc709db0148913c1842
-  $fGenericBIndex_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.BIndex x
-    -> Language.Fixpoint.Types.Solutions.BIndex
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Solutions.BIndex x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Solutions.Rep_BIndex[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "BIndex"
-                                   "Language.Fixpoint.Types.Solutions"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: (GHC.Generics.M1
-                                                     GHC.Generics.C
-                                                     ('GHC.Generics.MetaCons
-                                                        "Bind"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False)
-                                                     (GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedUnpack)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Environments.BindId))
-                                                   GHC.Generics.:+: GHC.Generics.M1
-                                                                      GHC.Generics.C
-                                                                      ('GHC.Generics.MetaCons
-                                                                         "Cstr"
-                                                                         'GHC.Generics.PrefixI
-                                                                         'GHC.Types.False)
-                                                                      (GHC.Generics.M1
-                                                                         GHC.Generics.S
-                                                                         ('GHC.Generics.MetaSel
-                                                                            'GHC.Base.Nothing
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.SourceStrict
-                                                                            'GHC.Generics.DecidedStrict)
-                                                                         (GHC.Generics.K1
-                                                                            GHC.Generics.R
-                                                                            Language.Fixpoint.Types.Constraints.SubcId)))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Types.Solutions.Root }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> Language.Fixpoint.Types.Solutions.$WBind
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedUnpack)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Environments.BindId)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedUnpack>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Environments.BindId>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Environments.BindId>_R
-                                       <x>_P))
-                        GHC.Generics.R1 ds2
-                        -> Language.Fixpoint.Types.Solutions.$WCstr
-                             ds2
-                               `cast`
-                             (Trans
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.C>_P
-                                            <'GHC.Generics.MetaCons
-                                               "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                            <GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Constraints.SubcId)>_R)
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Constraints.SubcId>_R) <x>_N)
-                                  (GHC.Generics.N:K1[0]
-                                       <GHC.Generics.R>_P
-                                       <Language.Fixpoint.Types.Constraints.SubcId>_R
-                                       <x>_P)) } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericEQual ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.EQual
-                  Language.Fixpoint.Types.Solutions.$fGenericEQual_$cfrom
-                  Language.Fixpoint.Types.Solutions.$fGenericEQual_$cto -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericEQual1 ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "_eqQual")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Constraints.Qualifier)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "eqPred")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "_eqArgs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  [Language.Fixpoint.Types.Refinements.Expr])))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case x1 of wild { Language.Fixpoint.Types.Solutions.EQL g1 g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "_eqQual")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Constraints.Qualifier))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "eqPred")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "_eqArgs")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             [Language.Fixpoint.Types.Refinements.Expr]))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "_eqQual")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Constraints.Qualifier>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "eqPred")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "_eqArgs")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R [Language.Fixpoint.Types.Refinements.Expr]))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.Expr>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "eqPred")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.Expr>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "_eqArgs")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         [Language.Fixpoint.Types.Refinements.Expr]>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_eqQual")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Constraints.Qualifier)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "eqPred")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Refinements.Expr)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "_eqArgs")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    [Language.Fixpoint.Types.Refinements.Expr]))>_R) <x>_N) }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericEQual_$cfrom ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.EQual x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericEQual1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Solutions.EQual>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "EQual"
-                                       "Language.Fixpoint.Types.Solutions"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "_eqQual")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Constraints.Qualifier)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "eqPred")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Refinements.Expr)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "_eqArgs")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                [Language.Fixpoint.Types.Refinements.Expr])))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Solutions.Rep_EQual[0]))) <x>_N) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericEQual_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.EQual x
-    -> Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Solutions.EQual x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Solutions.Rep_EQual[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "EQual"
-                                        "Language.Fixpoint.Types.Solutions"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "_eqQual")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Constraints.Qualifier)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "eqPred")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Language.Fixpoint.Types.Refinements.Expr)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "_eqArgs")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 [Language.Fixpoint.Types.Refinements.Expr])))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "_eqQual")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Language.Fixpoint.Types.Constraints.Qualifier)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "eqPred")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Refinements.Expr)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "_eqArgs")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              [Language.Fixpoint.Types.Refinements.Expr]))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                 Language.Fixpoint.Types.Solutions.$WEQL
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_eqQual")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Constraints.Qualifier>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                             <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eqPred")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Refinements.Expr>_R
-                             <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_eqArgs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R [Language.Fixpoint.Types.Refinements.Expr]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                             <x>_P)) } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericGBind ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Solutions.GBind
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.GBind
-                  Language.Fixpoint.Types.Solutions.$fGenericGBind_$cfrom
-                  Language.Fixpoint.Types.Solutions.$fGenericGBind_$cto -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericGBind1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Solutions.GBind x) ->
-                 ds) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericGBind2 ::
-    Language.Fixpoint.Types.Solutions.GBind
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Solutions.GBind) -> x1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericGBind_$cfrom ::
-    Language.Fixpoint.Types.Solutions.GBind
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericGBind2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Solutions.GBind>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [[Language.Fixpoint.Types.Solutions.EQual]]>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "GB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         [[Language.Fixpoint.Types.Solutions.EQual]])>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "GBind"
-                                                           "Language.Fixpoint.Types.Solutions"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "GB"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 [[Language.Fixpoint.Types.Solutions.EQual]]))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Solutions.Rep_GBind[0]))))) <x>_N))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericGBind_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind x
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericGBind1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Solutions.Rep_GBind[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "GBind"
-                                            "Language.Fixpoint.Types.Solutions"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "GB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  [[Language.Fixpoint.Types.Solutions.EQual]]))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "GB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [[Language.Fixpoint.Types.Solutions.EQual]])>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [[Language.Fixpoint.Types.Solutions.EQual]]>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])))) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fGenericKIndex ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fGenericKIndex_$cfrom
-                  Language.Fixpoint.Types.Solutions.$fGenericKIndex_$cto -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fGenericKIndex1 ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "kiBIndex")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "kiPos")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "kiKVar")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Refinements.KVar)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case x1 of wild { Language.Fixpoint.Types.Solutions.KIndex dt dt1 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "kiBIndex")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Environments.BindId))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "kiPos")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "kiKVar")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Refinements.KVar))
-                    @ x
-                    (GHC.Types.I# dt)
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Environments.BindId>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "kiBIndex")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Environments.BindId>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "kiPos")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "kiKVar")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1
-                               GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar))
-                       @ x
-                       (GHC.Types.I# dt1)
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "kiPos")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Refinements.KVar>_R
-                                      <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "kiKVar")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Refinements.KVar>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "kiBIndex")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Environments.BindId)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "kiPos")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "kiKVar")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Refinements.KVar))>_R) <x>_N) }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fGenericKIndex_$cfrom ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.KIndex x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericKIndex1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Solutions.KIndex>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "KIndex"
-                                       "Language.Fixpoint.Types.Solutions"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "kiBIndex")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedUnpack)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Environments.BindId)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "kiPos")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Int)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "kiKVar")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                Language.Fixpoint.Types.Refinements.KVar)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Solutions.Rep_KIndex[0]))) <x>_N) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fGenericKIndex_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.KIndex x
-    -> Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Solutions.KIndex x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Solutions.Rep_KIndex[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "KIndex"
-                                        "Language.Fixpoint.Types.Solutions"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "kiBIndex")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Environments.BindId)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "kiPos")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Int)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "kiKVar")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Refinements.KVar)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "kiBIndex")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedUnpack)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Language.Fixpoint.Types.Environments.BindId)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "kiPos")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedUnpack)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R GHC.Types.Int)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "kiKVar")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              Language.Fixpoint.Types.Refinements.KVar))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                 Language.Fixpoint.Types.Solutions.$WKIndex
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "kiBIndex")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                Language.Fixpoint.Types.Environments.BindId>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Environments.BindId>_R
-                             <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "kiPos")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "kiKVar")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Refinements.KVar>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Refinements.KVar>_R
-                             <x>_P)) } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericQBind ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.QBind
-                  Language.Fixpoint.Types.Solutions.$fGenericQBind_$cfrom
-                  Language.Fixpoint.Types.Solutions.$fGenericQBind_$cto -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericQBind1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Solutions.QBind x) ->
-                 ds) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericQBind2 ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Solutions.QBind) -> x1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericQBind_$cfrom ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericQBind2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Solutions.QBind>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <[Language.Fixpoint.Types.Solutions.EQual]>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Solutions.EQual]>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "QB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         [Language.Fixpoint.Types.Solutions.EQual])>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "QBind"
-                                                           "Language.Fixpoint.Types.Solutions"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "QB"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 [Language.Fixpoint.Types.Solutions.EQual]))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Solutions.Rep_QBind[0]))))) <x>_N))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fGenericQBind_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind x
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fGenericQBind1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Solutions.Rep_QBind[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "QBind"
-                                            "Language.Fixpoint.Types.Solutions"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "QB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  [Language.Fixpoint.Types.Solutions.EQual]))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "QB" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [Language.Fixpoint.Types.Solutions.EQual])>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [Language.Fixpoint.Types.Solutions.EQual]>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <[Language.Fixpoint.Types.Solutions.EQual]>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])))) -}
-8f62a988059ccdc709db0148913c1842
-  $fHashableBIndex ::
-    Data.Hashable.Class.Hashable
-      Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fHashableBIndex_$chashWithSalt
-                  Language.Fixpoint.Types.Solutions.$fHashableBIndex_$chash -}
-8f62a988059ccdc709db0148913c1842
-  $fHashableBIndex_$chash ::
-    Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Solutions.$fHashableBIndex_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-8f62a988059ccdc709db0148913c1842
-  $fHashableBIndex_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Types.Solutions.$w$chashWithSalt
-                        ww1
-                        w1 of ww2 { DEFAULT ->
-                 GHC.Types.I# ww2 } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fHashableKIndex ::
-    Data.Hashable.Class.Hashable
-      Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fHashableKIndex_$chashWithSalt
-                  Language.Fixpoint.Types.Solutions.$fHashableKIndex_$chash -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fHashableKIndex_$chash ::
-    Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Solutions.$fHashableKIndex_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fHashableKIndex_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(SSS(LS(SSS)L)),1*U(U,U,U(A,U(U,U,U),A))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Solutions.KIndex ww3 ww4 ww5 ->
-                 case ww5
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww11
-                        (GHC.Prim.uncheckedIShiftL# ww12 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww13 1#)
-                        (GHC.Prim.xorI#
-                           (GHC.Prim.*#
-                              (GHC.Prim.xorI# (GHC.Prim.*# ww1 16777619#) ww3)
-                              16777619#)
-                           ww4)
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 GHC.Types.I# ds2 } } } } }) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fMonoidSol ::
-    GHC.Base.Monoid (Language.Fixpoint.Types.Solutions.Sol a b)
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a @ b.
-                  @ (Language.Fixpoint.Types.Solutions.Sol a b)
-                  (Language.Fixpoint.Types.Solutions.$fMonoidSol_$cmempty @ a @ b)
-                  (Language.Fixpoint.Types.Solutions.$fMonoidSol_$cmappend @ a @ b)
-                  (Language.Fixpoint.Types.Solutions.$fMonoidSol_$cmconcat
-                     @ a
-                     @ b) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fMonoidSol1 ::
-    [Language.Fixpoint.Types.Solutions.Sol a b]
-    -> (# Language.Fixpoint.Types.Environments.SEnv
-            Language.Fixpoint.Types.Sorts.Sort,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar b,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar a,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.Hyp,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Environments.IBindEnv #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fMonoidSol_$cmappend ::
-    Language.Fixpoint.Types.Solutions.Sol a b
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-  {- Arity: 2,
-     Strictness: <S(SSSSS),1*U(U,U,U,U,U)><S(SSSSS),1*U(U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.Solutions.Sol a b)
-                   (w1 :: Language.Fixpoint.Types.Solutions.Sol a b) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case w1 of ww6 { Language.Fixpoint.Types.Solutions.Sol ww7 ww8 ww9 ww10 ww11 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go3
-                        @ Language.Fixpoint.Types.Sorts.Sort
-                        0#
-                        ww1
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N)
-                        ww7
-                          `cast`
-                        (Language.Fixpoint.Types.Environments.N:SEnv[0] <Language.Fixpoint.Types.Sorts.Sort>_N) of nt { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ b
-                        0#
-                        ww2
-                        ww8 of dt { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ a
-                        0#
-                        ww3
-                        ww9 of dt1 { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ [Language.Fixpoint.Types.Solutions.Cube]
-                        0#
-                        ww4
-                        ww10 of dt2 { DEFAULT ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go2
-                        @ Language.Fixpoint.Types.Environments.IBindEnv
-                        0#
-                        ww5
-                        ww11 of dt3 { DEFAULT ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ a
-                   @ b
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   dt
-                   dt1
-                   dt2
-                   dt3 } } } } } } }) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fMonoidSol_$cmconcat ::
-    [Language.Fixpoint.Types.Solutions.Sol a b]
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ b (w :: [Language.Fixpoint.Types.Solutions.Sol a b]) ->
-                 case Language.Fixpoint.Types.Solutions.$fMonoidSol1
-                        @ a
-                        @ b
-                        w of ww { (#,,,,#) ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ a
-                   @ b
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5 }) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fMonoidSol_$cmempty :: Language.Fixpoint.Types.Solutions.Sol a b
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (\ @ a @ b ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ a
-                   @ b
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Sorts.Sort)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Environments.N:SEnv[0]) <Language.Fixpoint.Types.Sorts.Sort>_N)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ b)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ a)
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ [Language.Fixpoint.Types.Solutions.Cube])
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ Language.Fixpoint.Types.Environments.IBindEnv)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataEQual ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(LSSS(SLL))SS),1*U(U(A,1*U,U,U(1*U,A,A)),U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Solutions.$fNFDataEQual_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Solutions.EQual>_N)) -}
-b3b6bd6987aea7426f6a83eaf31df03c
-  $fNFDataEQual1 ::
-    (GHC.Generics.:*:)
-      (GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "_eqQual")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Constraints.Qualifier))
-      (GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "eqPred")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-       GHC.Generics.:*: GHC.Generics.S1
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "_eqArgs")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.SourceStrict
-                             'GHC.Generics.DecidedStrict)
-                          (GHC.Generics.Rec0 [Language.Fixpoint.Types.Refinements.Expr]))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(LSSS(SLL))S(SS)),1*U(1*U(A,1*U,U,U(1*U,A,A)),1*U(1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: (GHC.Generics.:*:)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_eqQual")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Constraints.Qualifier))
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "eqPred")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "_eqArgs")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  [Language.Fixpoint.Types.Refinements.Expr]))
-                           a1) ->
-                 case w of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "_eqQual")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict>_P
-                                <GHC.Generics.Rec0
-                                   Language.Fixpoint.Types.Constraints.Qualifier>_R <a1>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                                <a1>_P)) of ww3 { Language.Fixpoint.Types.Constraints.Q ww4 ww5 ww6 ww7 ->
-                 case ww7 of ww8 { Text.Parsec.Pos.SourcePos ww9 ww10 ww11 ->
-                 case ww2 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 Language.Fixpoint.Types.Solutions.$w$dGNFData
-                   @ a1
-                   ww5
-                   ww6
-                   ww9
-                   ww13
-                   ww14 } } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataEQual_$crnf ::
-    Language.Fixpoint.Types.Solutions.EQual -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(LSSS(SLL))SS),1*U(U(A,1*U,U,U(1*U,A,A)),U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case eta of wild { Language.Fixpoint.Types.Solutions.EQL g1 g2 g3 ->
-                 Language.Fixpoint.Types.Solutions.$fNFDataEQual1
-                   @ GHC.Prim.Any
-                   (GHC.Generics.:*:
-                      @ (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              ('GHC.Base.Just "_eqQual")
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Language.Fixpoint.Types.Constraints.Qualifier))
-                      @ (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              ('GHC.Base.Just "eqPred")
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr)
-                         GHC.Generics.:*: GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "_eqArgs")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               [Language.Fixpoint.Types.Refinements.Expr]))
-                      @ GHC.Prim.Any
-                      g1
-                        `cast`
-                      (Trans
-                           (Sym (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Constraints.Qualifier>_R
-                                     <GHC.Prim.Any>_P))
-                           (Sym (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.S>_P
-                                     <'GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "_eqQual")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict>_P
-                                     <GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Language.Fixpoint.Types.Constraints.Qualifier>_R) <GHC.Prim.Any>_N))
-                      (GHC.Generics.:*:
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "eqPred")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Refinements.Expr))
-                         @ (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "_eqArgs")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R [Language.Fixpoint.Types.Refinements.Expr]))
-                         @ GHC.Prim.Any
-                         g2
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:K1[0]
-                                        <GHC.Generics.R>_P
-                                        <Language.Fixpoint.Types.Refinements.Expr>_R
-                                        <GHC.Prim.Any>_P))
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.S>_P
-                                        <'GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "eqPred")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict>_P
-                                        <GHC.Generics.K1
-                                           GHC.Generics.R
-                                           Language.Fixpoint.Types.Refinements.Expr>_R) <GHC.Prim.Any>_N))
-                         g3
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:K1[0]
-                                        <GHC.Generics.R>_P
-                                        <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                                        <GHC.Prim.Any>_P))
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.S>_P
-                                        <'GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "_eqArgs")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict>_P
-                                        <GHC.Generics.K1
-                                           GHC.Generics.R
-                                           [Language.Fixpoint.Types.Refinements.Expr]>_R) <GHC.Prim.Any>_N)))) }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataGBind ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Solutions.GBind
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Solutions.$fNFDataGBind_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Solutions.GBind>_N)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataGBind1 :: [Language.Fixpoint.Types.Solutions.EQual] -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Solutions.$fNFDataEQual_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Solutions.EQual>_N))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataGBind_$crnf ::
-    Language.Fixpoint.Types.Solutions.GBind -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ [Language.Fixpoint.Types.Solutions.EQual]
-                   Language.Fixpoint.Types.Solutions.$fNFDataGBind1
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <[Language.Fixpoint.Types.Solutions.EQual]>_N))
-                   eta `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataQBind ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Solutions.$fNFDataQBind_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Solutions.QBind>_N)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fNFDataQBind_$crnf ::
-    Language.Fixpoint.Types.Solutions.QBind -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Solutions.$fNFDataEQual_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Solutions.EQual>_N))
-                   eta `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex ::
-    GHC.Classes.Ord Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fEqBIndex
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$ccompare
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$c<
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$c<=
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$c>
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$c>=
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$cmax
-                  Language.Fixpoint.Types.Solutions.$fOrdBIndex_$cmin -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$c< ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.False }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<# dt dt1)
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> GHC.Types.True }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.ltInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$c<= ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 { DEFAULT -> GHC.Types.True }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<=# dt dt1)
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> GHC.Types.True }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.leInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$c> ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 { DEFAULT -> GHC.Types.False }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.># dt dt1)
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> GHC.Types.False }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.gtInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$c>= ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.False
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.True }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.>=# dt dt1)
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> GHC.Types.False }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.True
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.geInteger# a1 b1 of wild2 { DEFAULT ->
-                           GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$ccompare ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (b :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.LT
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.EQ }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> GHC.Types.GT
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> GHC.Classes.compareInt# dt dt1
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> GHC.Types.LT }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case b of wild1 {
-                        DEFAULT -> GHC.Types.GT
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> GHC.Integer.Type.compareInteger a1 b1 } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$cmax ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (y :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Solutions.Root -> y
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case y of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root -> wild
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<=# dt dt1) of wild2 {
-                             GHC.Types.False -> wild GHC.Types.True -> wild1 }
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> wild1 }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case y of wild1 {
-                        DEFAULT -> wild
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.leInteger# a1 b1 of wild2 { DEFAULT ->
-                           case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                             GHC.Types.False -> wild GHC.Types.True -> wild1 } } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fOrdBIndex_$cmin ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex
-    -> Language.Fixpoint.Types.Solutions.BIndex
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (y :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> case y of wild1 { DEFAULT ->
-                      Language.Fixpoint.Types.Solutions.Root }
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case y of wild1 {
-                        Language.Fixpoint.Types.Solutions.Root
-                        -> Language.Fixpoint.Types.Solutions.Root
-                        Language.Fixpoint.Types.Solutions.Bind dt1
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<=# dt dt1) of wild2 {
-                             GHC.Types.False -> wild1 GHC.Types.True -> wild }
-                        Language.Fixpoint.Types.Solutions.Cstr ipv -> wild }
-                   Language.Fixpoint.Types.Solutions.Cstr a1
-                   -> case y of wild1 {
-                        DEFAULT -> wild1
-                        Language.Fixpoint.Types.Solutions.Cstr b1
-                        -> case GHC.Integer.Type.leInteger# a1 b1 of wild2 { DEFAULT ->
-                           case GHC.Prim.tagToEnum# @ GHC.Types.Bool wild2 of wild3 {
-                             GHC.Types.False -> wild1 GHC.Types.True -> wild } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex ::
-    GHC.Classes.Ord Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fEqKIndex
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$ccompare
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$c<
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$c<=
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$c>
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$c>=
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$cmax
-                  Language.Fixpoint.Types.Solutions.$fOrdKIndex_$cmin -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$c< ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Solutions.$w$c<
-                   ww1
-                   ww2
-                   ww5
-                   ww9
-                   ww10
-                   ww13 } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$c<= ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Solutions.$w$c<=
-                   ww1
-                   ww2
-                   ww5
-                   ww9
-                   ww10
-                   ww13 } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$c> ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Solutions.$w$c>
-                   ww1
-                   ww2
-                   ww5
-                   ww9
-                   ww10
-                   ww13 } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$c>= ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Solutions.$w$c>=
-                   ww1
-                   ww2
-                   ww5
-                   ww9
-                   ww10
-                   ww13 } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$ccompare ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,A,A))><S(SLS),1*U(U,U,U(U,A,A))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 Language.Fixpoint.Types.Solutions.$w$ccompare
-                   ww1
-                   ww2
-                   ww5
-                   ww9
-                   ww10
-                   ww13 } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$cmax ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww1 ww9) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww9) of wild1 {
-                        GHC.Types.False
-                        -> Language.Fixpoint.Types.Solutions.KIndex
-                             ww1
-                             ww2
-                             (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                               `cast`
-                             (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww2 ww10) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww2 ww10) of wild3 {
-                                  GHC.Types.False
-                                  -> Language.Fixpoint.Types.Solutions.KIndex
-                                       ww1
-                                       ww2
-                                       (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                                         `cast`
-                                       (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.<# ww5 ww13) of wild4 {
-                                       GHC.Types.False
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww13) of wild5 {
-                                            GHC.Types.False
-                                            -> Language.Fixpoint.Types.Solutions.KIndex
-                                                 ww1
-                                                 ww2
-                                                 (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                                                   `cast`
-                                                 (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            GHC.Types.True
-                                            -> Language.Fixpoint.Types.Solutions.KIndex
-                                                 ww9
-                                                 ww10
-                                                 (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                                                   `cast`
-                                                 (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) }
-                                       GHC.Types.True
-                                       -> Language.Fixpoint.Types.Solutions.KIndex
-                                            ww9
-                                            ww10
-                                            (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } }
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Solutions.KIndex
-                                  ww9
-                                  ww10
-                                  (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                                    `cast`
-                                  (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Solutions.KIndex
-                        ww9
-                        ww10
-                        (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                          `cast`
-                        (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } } } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fOrdKIndex_$cmin ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLS),1*U(U,U,U(U,U,U))><S(SLS),1*U(U,U,U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case w1 of ww8 { Language.Fixpoint.Types.Solutions.KIndex ww9 ww10 ww11 ->
-                 case ww11
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww12 { Language.Fixpoint.Types.Names.S ww13 ww14 ww15 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww1 ww9) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww9) of wild1 {
-                        GHC.Types.False
-                        -> Language.Fixpoint.Types.Solutions.KIndex
-                             ww9
-                             ww10
-                             (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                               `cast`
-                             (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww2 ww10) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww2 ww10) of wild3 {
-                                  GHC.Types.False
-                                  -> Language.Fixpoint.Types.Solutions.KIndex
-                                       ww9
-                                       ww10
-                                       (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                                         `cast`
-                                       (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.<# ww5 ww13) of wild4 {
-                                       GHC.Types.False
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww13) of wild5 {
-                                            GHC.Types.False
-                                            -> Language.Fixpoint.Types.Solutions.KIndex
-                                                 ww9
-                                                 ww10
-                                                 (Language.Fixpoint.Types.Names.S ww13 ww14 ww15)
-                                                   `cast`
-                                                 (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            GHC.Types.True
-                                            -> Language.Fixpoint.Types.Solutions.KIndex
-                                                 ww1
-                                                 ww2
-                                                 (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                                                   `cast`
-                                                 (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) }
-                                       GHC.Types.True
-                                       -> Language.Fixpoint.Types.Solutions.KIndex
-                                            ww1
-                                            ww2
-                                            (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } }
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Solutions.KIndex
-                                  ww1
-                                  ww2
-                                  (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                                    `cast`
-                                  (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Solutions.KIndex
-                        ww1
-                        ww2
-                        (Language.Fixpoint.Types.Names.S ww5 ww6 ww7)
-                          `cast`
-                        (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0])) } } } } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fPPrintBIndex ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fPPrintBIndex_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintBIndex_$cpprintPrec -}
-8f62a988059ccdc709db0148913c1842
-  $fPPrintBIndex1 ::
-    Language.Fixpoint.Types.Solutions.BIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 let {
-                   s :: GHC.Base.String
-                   = Language.Fixpoint.Types.Solutions.$fPPrintBIndex_$cshow w
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-aef634632b3745685e05dac8ed346a41
-  $fPPrintBIndex2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Cstr "#) -}
-9433f259d7f0319faa033ea0a8b1bf95
-  $fPPrintBIndex3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Bind "#) -}
-d8f79a06963e496005d538e1059328db
-  $fPPrintBIndex4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Root"#) -}
-8f62a988059ccdc709db0148913c1842
-  $fPPrintBIndex_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.BIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintBIndex_$cpprintTidy
-                   eta) -}
-8f62a988059ccdc709db0148913c1842
-  $fPPrintBIndex_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.BIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintBIndex1 eta) -}
-8f62a988059ccdc709db0148913c1842
-  $fPPrintBIndex_$cshow ::
-    Language.Fixpoint.Types.Solutions.BIndex -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> Language.Fixpoint.Types.Solutions.$fPPrintBIndex4
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fPPrintBIndex3
-                        (case GHC.Show.$wshowSignedInt
-                                11#
-                                dt
-                                (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                         GHC.Types.: @ GHC.Types.Char ww5 ww6 })
-                   Language.Fixpoint.Types.Solutions.Cstr b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fPPrintBIndex2
-                        (case GHC.Show.$w$cshowsPrec1
-                                11#
-                                b1
-                                (GHC.Types.[] @ GHC.Types.Char) of ww2 { (#,#) ww3 ww4 ->
-                         GHC.Types.: @ GHC.Types.Char ww3 ww4 }) }) -}
-526e025701d4a129ac5721aaa98616ae
-  $fPPrintBindPred ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.BindPred
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BindPred
-                  Language.Fixpoint.Types.Solutions.$fPPrintBindPred_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintBindPred_$cpprintPrec -}
-526e025701d4a129ac5721aaa98616ae
-  $fPPrintBindPred1 ::
-    Language.Fixpoint.Types.Solutions.BindPred
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U)>m3, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.BP ww1 ww2 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Language.Fixpoint.Types.Solutions.$w$cshowsPrec
-                       0#
-                       ww1
-                       ww2
-                       (GHC.Types.[] @ GHC.Types.Char)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww3 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww3)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-ab488dfc8c3e3a7933d1d8b10814d635
-  $fPPrintBindPred10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BP {"#) -}
-7c87a8e10771277ccd23efa22ef80f5f
-  $fPPrintBindPred2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-ba23800b08323a15f4affe37a676905c
-  $fPPrintBindPred3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "kiKVar = "#) -}
-2b38b6ccb5152f4c58a0450fdece6bd6
-  $fPPrintBindPred4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "kiPos = "#) -}
-f0e062301c147d10d4818ba4917c78e5
-  $fPPrintBindPred5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-08668aaed3f2aa0170aa75c0a0e82344
-  $fPPrintBindPred6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "kiBIndex = "#) -}
-a938ac0a86d4d0cc4a97a28bdde44513
-  $fPPrintBindPred7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "KIndex {"#) -}
-5d5823c7e6e85cf7c4505f3148d93867
-  $fPPrintBindPred8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "bpKVar = "#) -}
-5d6b43f3bd971314bcef4579bd169a6d
-  $fPPrintBindPred9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "bpConc = "#) -}
-526e025701d4a129ac5721aaa98616ae
-  $fPPrintBindPred_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.BindPred
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintBindPred_$cpprintTidy
-                   eta) -}
-526e025701d4a129ac5721aaa98616ae
-  $fPPrintBindPred_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.BindPred
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintBindPred1 eta) -}
-a3c72678689a09bc3a389091220691c4
-  $fPPrintCube ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.Cube
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.Cube
-                  Language.Fixpoint.Types.Solutions.$fPPrintCube_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintCube_$cpprintPrec -}
-5867c4549afd65224bd2ce18863a3b3c
-  $fPPrintCube1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fPPrintCube_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Solutions.$fPPrintCube2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-995de262264c8dab14c0c5d954b5be9d
-  $fPPrintCube2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Solutions.$fPPrintCube_s) -}
-a3c72678689a09bc3a389091220691c4
-  $fPPrintCube_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.Cube
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintCube_$cpprintTidy
-                   eta
-                   eta1) -}
-a3c72678689a09bc3a389091220691c4
-  $fPPrintCube_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.Cube
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S(LLSL),1*U(A,A,U,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (c :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 case c of wild { Language.Fixpoint.Types.Solutions.Cube ds1 ds2 ds3 ds4 ->
-                 case Text.PrettyPrint.HughesPJ.$winteger
-                        ds3 of ww { (#,#) ww1 ww2 ->
-                 case Language.Fixpoint.Types.Solutions.$fPPrintCube1
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                   DEFAULT
-                   -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                         @ ()
-                         wild1
-                         GHC.Types.True
-                         (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2))
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-e98499243abec1c5865008d7f8f9dc84
-  $fPPrintCube_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "Cube"#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintEQual ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.EQual
-                  Language.Fixpoint.Types.Solutions.$fPPrintEQual_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintEQual_$cpprintPrec -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintEQual_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintEQual_$cpprintTidy
-                   eta
-                   eta1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintEQual_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.EQual
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S(LSL),1*U(A,U,A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (k :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case eta of wild { Language.Fixpoint.Types.Solutions.EQL ds ds1 ds2 ->
-                 Language.Fixpoint.Types.Refinements.$w$cpprintPrec
-                   Language.Fixpoint.Types.Refinements.$fDataExpr2
-                   ds1 }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fPPrintKIndex ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fPPrintKIndex_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintKIndex_$cpprintPrec -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fPPrintKIndex1 ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(LLS),1*U(U,U,U(A,U(U,U,U),A))>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 let {
-                   s :: GHC.Base.String
-                   = Language.Fixpoint.Types.Solutions.$w$cshowsPrec1
-                       0#
-                       ww1
-                       ww2
-                       ww6
-                       (GHC.Types.[] @ GHC.Types.Char)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww8 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww8)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fPPrintKIndex_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.KIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintKIndex_$cpprintTidy
-                   eta) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fPPrintKIndex_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.KIndex
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintKIndex1 eta) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintQBind ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.QBind
-                  Language.Fixpoint.Types.Solutions.$fPPrintQBind_$cpprintTidy
-                  Language.Fixpoint.Types.Solutions.$fPPrintQBind_$cpprintPrec -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintQBind_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintQBind_$cpprintTidy
-                   eta) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fPPrintQBind_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (k :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 let {
-                   f :: [Language.Fixpoint.Types.Solutions.EQual]
-                        -> Text.PrettyPrint.HughesPJ.Doc
-                   = Language.Fixpoint.Types.PrettyPrint.$fPPrintHashSet_$cpprintTidy1
-                       @ Language.Fixpoint.Types.Solutions.EQual
-                       Language.Fixpoint.Types.Solutions.$fPPrintEQual
-                       k
-                 } in
-                 \ (x :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 f x `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fPPrintSol ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Solutions.Sol a b)
-  DFunId
-  {- Arity: 2, Strictness: <L,A><L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                      ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b).
-                  @ (Language.Fixpoint.Types.Solutions.Sol a b)
-                  (Language.Fixpoint.Types.Solutions.$fPPrintSol_$cpprintTidy
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1)
-                  (Language.Fixpoint.Types.Solutions.$fPPrintSol_$cpprintPrec
-                     @ a
-                     @ b
-                     $dPPrint
-                     $dPPrint1) -}
-f6bc8818e3411d69ad2302f1613e36cc
-  $fPPrintSol1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar b)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-40fba3063920160e96ee9f2efc0f93d5
-  $fPPrintSol2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar b)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-630fc8c7aa966e15c65187f337b94b2e
-  $fPPrintSol3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar b)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fPPrintSol_$cpprintPrec ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 5,
-     Strictness: <L,A><L,U(C(C1(U)),A)><L,A><L,U><S(LSLLL),1*U(A,U,A,A,A)>,
-     Unfolding: InlineRule (5, True, True)
-                (\ @ a
-                   @ b
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.Sol a b) ->
-                 Language.Fixpoint.Types.Solutions.$fPPrintSol_$cpprintTidy
-                   @ a
-                   @ b
-                   $dPPrint
-                   $dPPrint1
-                   eta
-                   eta1) -}
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  $fPPrintSol_$cpprintTidy ::
-    (Language.Fixpoint.Types.PrettyPrint.PPrint a,
-     Language.Fixpoint.Types.PrettyPrint.PPrint b) =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4,
-     Strictness: <L,A><L,U(C(C1(U)),A)><L,U><S(LSLLL),1*U(A,U,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (w1 :: Language.Fixpoint.Types.PrettyPrint.PPrint b)
-                   (w2 :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w3 :: Language.Fixpoint.Types.Solutions.Sol a b) ->
-                 case w3 of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case ww2 of wild {
-                   Data.HashMap.Base.Empty
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ b
-                        Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                        w1
-                        w2
-                        (GHC.Types.[] @ (Language.Fixpoint.Types.Refinements.KVar, b))
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ b
-                        Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                        w1
-                        w2
-                        (Language.Fixpoint.Types.Solutions.$fPPrintSol3
-                           @ b
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt1)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt1)
-                           0#
-                           (GHC.Types.[] @ (Language.Fixpoint.Types.Refinements.KVar, b)))
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ b
-                        Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                        w1
-                        w2
-                        (GHC.Types.:
-                           @ (Language.Fixpoint.Types.Refinements.KVar, b)
-                           (dt1, dt2)
-                           (GHC.Types.[] @ (Language.Fixpoint.Types.Refinements.KVar, b)))
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ b
-                        Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                        w1
-                        w2
-                        (Language.Fixpoint.Types.Solutions.$fPPrintSol2
-                           @ b
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.HashMap
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt)
-                           0#
-                           (GHC.Types.[] @ (Language.Fixpoint.Types.Refinements.KVar, b)))
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.PrettyPrint.pprintKVs
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ b
-                        Language.Fixpoint.Types.Refinements.$fPPrintKVar
-                        w1
-                        w2
-                        (Language.Fixpoint.Types.Solutions.$fPPrintSol1
-                           @ b
-                           (Data.HashMap.Array.Array
-                              @ (Data.HashMap.Base.Leaf
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt1)
-                           (GHC.Prim.sizeofArray#
-                              @ (Data.HashMap.Base.Leaf
-                                   Language.Fixpoint.Types.Refinements.KVar b)
-                              dt1)
-                           0#
-                           (GHC.Types.[]
-                              @ (Language.Fixpoint.Types.Refinements.KVar, b))) } }) -}
-8f62a988059ccdc709db0148913c1842
-  $fShowBIndex ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.BIndex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BIndex
-                  Language.Fixpoint.Types.Solutions.$fShowBIndex_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fPPrintBIndex_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowBIndex_$cshowList -}
-8f62a988059ccdc709db0148913c1842
-  $fShowBIndex1 ::
-    Language.Fixpoint.Types.Solutions.BIndex -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Types.Solutions.$fShowBIndex_$cshowsPrec
-                   Language.Fixpoint.Types.Solutions.$fShowBIndex2) -}
-e170e4dd330611f4a034f7f201966b3f
-  $fShowBIndex2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-8f62a988059ccdc709db0148913c1842
-  $fShowBIndex_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.BIndex] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.BIndex
-                   Language.Fixpoint.Types.Solutions.$fShowBIndex1) -}
-8f62a988059ccdc709db0148913c1842
-  $fShowBIndex_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(U)><S,1*U><L,U>,
-     Unfolding: (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Types.Solutions.BIndex)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fPPrintBIndex4
-                        eta
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Types.Solutions.$fPPrintBIndex3
-                             (case GHC.Show.$wshowSignedInt 11# dt eta of ww4 { (#,#) ww5 ww6 ->
-                              GHC.Types.: @ GHC.Types.Char ww5 ww6 })
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Solutions.$fPPrintBIndex3
-                                (case GHC.Show.$wshowSignedInt
-                                        11#
-                                        dt
-                                        (GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.shows4
-                                           eta) of ww4 { (#,#) ww5 ww6 ->
-                                 GHC.Types.: @ GHC.Types.Char ww5 ww6 })) } }
-                   Language.Fixpoint.Types.Solutions.Cstr b1
-                   -> case ds of wild1 { GHC.Types.I# x ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.>=# x 11#) of wild2 {
-                        GHC.Types.False
-                        -> GHC.Base.++
-                             @ GHC.Types.Char
-                             Language.Fixpoint.Types.Solutions.$fPPrintBIndex2
-                             (case GHC.Show.$w$cshowsPrec1 11# b1 eta of ww2 { (#,#) ww3 ww4 ->
-                              GHC.Types.: @ GHC.Types.Char ww3 ww4 })
-                        GHC.Types.True
-                        -> GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.shows7
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Solutions.$fPPrintBIndex2
-                                (case GHC.Show.$w$cshowsPrec1
-                                        11#
-                                        b1
-                                        (GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.shows4
-                                           eta) of ww2 { (#,#) ww3 ww4 ->
-                                 GHC.Types.: @ GHC.Types.Char ww3 ww4 })) } } }) -}
-526e025701d4a129ac5721aaa98616ae
-  $fShowBindPred ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.BindPred
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.BindPred
-                  Language.Fixpoint.Types.Solutions.$fShowBindPred_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowBindPred_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowBindPred_$cshowList -}
-526e025701d4a129ac5721aaa98616ae
-  $fShowBindPred1 ::
-    Language.Fixpoint.Types.Solutions.BindPred -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.BP ww1 ww2 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec 0# ww1 ww2 }) -}
-526e025701d4a129ac5721aaa98616ae
-  $fShowBindPred_$cshow ::
-    Language.Fixpoint.Types.Solutions.BindPred -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SS),1*U(U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 Language.Fixpoint.Types.Solutions.$fShowBindPred_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-526e025701d4a129ac5721aaa98616ae
-  $fShowBindPred_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.BindPred] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.BindPred
-                   Language.Fixpoint.Types.Solutions.$fShowBindPred1) -}
-526e025701d4a129ac5721aaa98616ae
-  $fShowBindPred_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.BindPred -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Solutions.BP ww3 ww4 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec ww1 ww3 ww4 } }) -}
-a3c72678689a09bc3a389091220691c4
-  $fShowCube :: GHC.Show.Show Language.Fixpoint.Types.Solutions.Cube
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.Cube
-                  Language.Fixpoint.Types.Solutions.$fShowCube_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowCube_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowCube_$cshowList -}
-a3c72678689a09bc3a389091220691c4
-  $fShowCube1 ::
-    Language.Fixpoint.Types.Solutions.Cube
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Solutions.Cube)
-                   (s :: GHC.Base.String)[OneShot] ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Language.Fixpoint.Types.Solutions.$fShowCube_$cshow x)
-                   s) -}
-a3c72678689a09bc3a389091220691c4
-  $fShowCube_$cshow ::
-    Language.Fixpoint.Types.Solutions.Cube -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U(A,A,U,A)>,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (case x of wild { Language.Fixpoint.Types.Solutions.Cube ds ds1 ds2 ds3 ->
-                    case Text.PrettyPrint.HughesPJ.$winteger
-                           ds2 of ww { (#,#) ww1 ww2 ->
-                    case Language.Fixpoint.Types.Solutions.$fPPrintCube1
-                           `cast`
-                         (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                      DEFAULT
-                      -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                           @ ()
-                           wild1
-                           GHC.Types.True
-                           (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                      Text.PrettyPrint.Annotated.HughesPJ.Empty
-                      -> Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                           @ ()
-                           ww1
-                           ww2 } } })) -}
-a3c72678689a09bc3a389091220691c4
-  $fShowCube_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.Cube] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (ls :: [Language.Fixpoint.Types.Solutions.Cube])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.Cube
-                   Language.Fixpoint.Types.Solutions.$fShowCube1
-                   ls
-                   s) -}
-a3c72678689a09bc3a389091220691c4
-  $fShowCube_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.Cube -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><L,1*U(A,A,U,A)><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Solutions.Cube)
-                   (s :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (Language.Fixpoint.Types.Solutions.$fShowCube_$cshow x))
-                   s) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowEQual ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.EQual
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.EQual
-                  Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowEQual_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowList -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowEQual1 ::
-    Language.Fixpoint.Types.Solutions.EQual -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.EQL ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Language.Fixpoint.Types.Constraints.Q ww5 ww6 ww7 ww8 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec2
-                   0#
-                   ww5
-                   ww6
-                   ww7
-                   ww8
-                   ww2
-                   ww3 } }) -}
-f23d003e21677890bc32d80995ed00f6
-  $fShowEQual2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_eqArgs = "#) -}
-7cf5780da278f31bb43d04157b62a597
-  $fShowEQual3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "eqPred = "#) -}
-3e87c69b50296afe6c5efb27ca1c6512
-  $fShowEQual4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "_eqQual = "#) -}
-e66bc78cbd1bef19d6de089f99c616a8
-  $fShowEQual5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "EQL {"#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowEQual_$cshow ::
-    Language.Fixpoint.Types.Solutions.EQual -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S(SSS),1*U(U(U(A,U(U,U,U),A),U,U,U(U,U,U)),U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowEQual_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.EQual] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Solutions.$fShowEQual1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowEQual_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.EQual -> GHC.Show.ShowS
-  {- Arity: 2,
-     Strictness: <S(S),1*U(U)><S(SSS),1*U(U(U(A,U(U,U,U),A),U,U,U(U,U,U)),U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Solutions.EQL ww3 ww4 ww5 ->
-                 case ww3 of ww6 { Language.Fixpoint.Types.Constraints.Q ww7 ww8 ww9 ww10 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec2
-                   ww1
-                   ww7
-                   ww8
-                   ww9
-                   ww10
-                   ww4
-                   ww5 } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowGBind ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.GBind
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.GBind
-                  Language.Fixpoint.Types.Solutions.$fShowGBind_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowGBind_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowGBind_$cshowList -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowGBind1 ::
-    Language.Fixpoint.Types.Solutions.GBind -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.GBind)
-                   (w1 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec3 0# w w1) -}
-cf9b09a96cd116a1297768a0f86722a1
-  $fShowGBind2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "GB "#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowGBind_$cshow ::
-    Language.Fixpoint.Types.Solutions.GBind -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      Language.Fixpoint.Types.Solutions.$fShowGBind2)
-                   (GHC.Show.showList__
-                      @ [Language.Fixpoint.Types.Solutions.EQual]
-                      Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowList
-                      x `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowGBind_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.GBind] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   Language.Fixpoint.Types.Solutions.$fShowGBind1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowGBind_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.GBind -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><L,1*U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.GBind)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec3 ww1 w1 w2 }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fShowKIndex ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.KIndex
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.KIndex
-                  Language.Fixpoint.Types.Solutions.$fShowKIndex_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowKIndex_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowKIndex_$cshowList -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fShowKIndex1 ::
-    Language.Fixpoint.Types.Solutions.KIndex -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.KIndex ww1 ww2 ww3 ->
-                 case ww3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec1
-                   0#
-                   ww1
-                   ww2
-                   ww6
-                   w1 } }) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fShowKIndex_$cshow ::
-    Language.Fixpoint.Types.Solutions.KIndex -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(LLS),1*U(U,U,U(A,U(U,U,U),A))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 Language.Fixpoint.Types.Solutions.$fShowKIndex_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fShowKIndex_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.KIndex] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.KIndex
-                   Language.Fixpoint.Types.Solutions.$fShowKIndex1) -}
-f5f596d4ba7db56e254a65fca3db1847
-  $fShowKIndex_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.KIndex -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S(LLS),1*U(U,U,U(A,U(U,U,U),A))><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.KIndex)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Solutions.KIndex ww3 ww4 ww5 ->
-                 case ww5
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec1
-                   ww1
-                   ww3
-                   ww4
-                   ww8
-                   w2 } } }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowQBind ::
-    GHC.Show.Show Language.Fixpoint.Types.Solutions.QBind
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Solutions.QBind
-                  Language.Fixpoint.Types.Solutions.$fShowQBind_$cshowsPrec
-                  Language.Fixpoint.Types.Solutions.$fShowQBind_$cshow
-                  Language.Fixpoint.Types.Solutions.$fShowQBind_$cshowList -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowQBind1 ::
-    Language.Fixpoint.Types.Solutions.QBind -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: GHC.Base.String) ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec4 0# w w1) -}
-99091cba1a54a7c66a902dec8a8aaa04
-  $fShowQBind2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "QB "#) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowQBind_$cshow ::
-    Language.Fixpoint.Types.Solutions.QBind -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      Language.Fixpoint.Types.Solutions.$fShowQBind2)
-                   (GHC.Show.showList__
-                      @ Language.Fixpoint.Types.Solutions.EQual
-                      Language.Fixpoint.Types.Solutions.$fShowEQual1
-                      x `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowQBind_$cshowList ::
-    [Language.Fixpoint.Types.Solutions.QBind] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   Language.Fixpoint.Types.Solutions.$fShowQBind1) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $fShowQBind_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Solutions.QBind -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><L,1*U><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Solutions.QBind)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 Language.Fixpoint.Types.Solutions.$w$cshowsPrec4 ww1 w1 w2 }) -}
-16e0f5eb9edf6ddadc2eeee818bc7c1e
-  $s$fEq[] ::
-    GHC.Classes.Eq [Language.Fixpoint.Types.Solutions.EQual]
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [Language.Fixpoint.Types.Solutions.EQual]
-                  (GHC.Classes.$fEq[]_$c==
-                     @ Language.Fixpoint.Types.Solutions.EQual
-                     Language.Fixpoint.Types.Solutions.$fEqEQual)
-                  Language.Fixpoint.Types.Solutions.$fEqQBind_$s$fEq[]_$c/= -}
-beb008d1ffb0f67c56d965bb35b520ed
-  $sfromList ::
-    [(Language.Fixpoint.Types.Refinements.KVar, v)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ @ v
-                   (eta :: [(Language.Fixpoint.Types.Refinements.KVar, v)]) ->
-                 Language.Fixpoint.Types.Solutions.$sfromList1
-                   @ v
-                   eta
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Refinements.KVar
-                      @ v)) -}
-f9562486358cbecfd7bdeae091d6ac75
-  $sfromList1 ::
-    [(Language.Fixpoint.Types.Refinements.KVar, v)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-68d182cfeb87ba1d6b1587357464b43a
-  $t7NIgNMeAJqb7lftg8PcXtY :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Solutions.$fDataGBind13
-                   Language.Fixpoint.Types.Solutions.$fDataGBind11) -}
-517859c3f99b8d0491af44d5b4b45f24
-  $tDpk8R7UY3GJDKdssOFNdZX :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Solutions.$fDataQBind6
-                   Language.Fixpoint.Types.Solutions.$fDataQBind4) -}
-690f6431c7bced149bff584e0294eb0b
-  $tFj0zxOA5fqxKSNTcI3kqJM :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Solutions.$fDataEQual4
-                   Language.Fixpoint.Types.Solutions.$fDataEQual2) -}
-6be1e391225fd646d7b30df9bd1e0860
-  $tc'BP :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16887038895391822037##
-                   15359364384650419708##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'BP1) -}
-c041c9bda3e687c07a1bf2f3a4421870
-  $tc'BP1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BP"#) -}
-9c4b86d6c864221a00898f35b25c066a
-  $tc'Bind :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13933273352686792739##
-                   6151293462460833028##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'Bind1) -}
-a4fc875d6c9f94c47bc09d96eaf2b1e9
-  $tc'Bind1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Bind"#) -}
-094442f8afc6347d4456b1b4fd4617b0
-  $tc'Cstr :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5886045182370264023##
-                   1708952353256694871##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'Cstr1) -}
-44059db5102cb2645076f1a98b5252b4
-  $tc'Cstr1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cstr"#) -}
-5794588915472105694496af62c080e0
-  $tc'Cube :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5890919511227446950##
-                   4430555069780202131##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'Cube1) -}
-c722a6fce09cb6f8bba9f3cb53daed3e
-  $tc'Cube1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cube"#) -}
-03ad38152e8e267e3a5028cef0bac3f4
-  $tc'EQL :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14332036531209935979##
-                   998014730147035118##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'EQL1) -}
-228e59aefa999da8cb301814a83de6e3
-  $tc'EQL1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'EQL"#) -}
-f761730b118ed8c54b4787bcdc59cd4f
-  $tc'FastIdx :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4720997814811142958##
-                   11402435480988821736##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'FastIdx1) -}
-a81c81ffa944520f409b0efbac8922f8
-  $tc'FastIdx1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FastIdx"#) -}
-63e8775c5e45292ce256587ebbf3f32b
-  $tc'GB :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1619190530841942039##
-                   2352559717756095772##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'GB1) -}
-92917fe818497d0db8fbf584436e5ab7
-  $tc'GB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'GB"#) -}
-4650dcb8ffe512573e6723709009ce03
-  $tc'KIndex :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13499606230259388163##
-                   11740484637457629493##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'KIndex1) -}
-fc7f0ec4b5335d6494845bd46b3cfc86
-  $tc'KIndex1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'KIndex"#) -}
-b73e434e0350727ac5b52885940c735e
-  $tc'QB :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8444494962044626095##
-                   18414771458307512626##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'QB1) -}
-d5282ac42057510eb1d3babd0ed544ec
-  $tc'QB1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'QB"#) -}
-08d0636c1be0c45bf163532e213dcf87
-  $tc'Root :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16791511054802707706##
-                   6018654568600921924##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'Root1) -}
-9a3c568e2dbe51faedb04c442f94050a
-  $tc'Root1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Root"#) -}
-97110a206f715e4aefb69fb22ed36242
-  $tc'Sol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   367010805789711293##
-                   1756965817451803009##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tc'Sol1) -}
-c489c6af6ce4e480ab9bc8b2daf3d38e
-  $tc'Sol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Sol"#) -}
-94643a37e36c03f451bc6335d06d97e2
-  $tcBIndex :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12606748146646894024##
-                   2229974026138256149##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcBIndex1) -}
-1603f5f63fcbf2eb7707e707788bdeeb
-  $tcBIndex1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "BIndex"#) -}
-f8228911517be7c9b35fc41924e9eeff
-  $tcBindPred :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1051136349389132075##
-                   7920140223977376622##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcBindPred1) -}
-13da772efa4cb7e2e4e2870b3912a866
-  $tcBindPred1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "BindPred"#) -}
-ee8bcd56059b9c858f44c52140293d2f
-  $tcCube :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2550857572149062917##
-                   9888094126979791681##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcCube1) -}
-30f6e5bf1ee749a128d4038e9112034b
-  $tcCube1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Cube"#) -}
-05cbc5db5988eb0f4e0a45efd9be84be
-  $tcEQual :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4722934541866525724##
-                   2366909952471550354##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcEQual1) -}
-122990f1ae8ebfb903b8767bd49d7202
-  $tcEQual1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "EQual"#) -}
-7437e1570d7ebc8b9e69150c094e9b61
-  $tcGBind :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   841667668048486937##
-                   277690391081026976##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcGBind1) -}
-680af09e215e104f1268dd2fb2e1df20
-  $tcGBind1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "GBind"#) -}
-9ec9c2f3f8faa2bd29a64cddf9ef93a6
-  $tcIndex :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17950824693134969770##
-                   10573706530634538192##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcIndex1) -}
-92d17a1aad18d536599fd7bfb6df956e
-  $tcIndex1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Index"#) -}
-08008f3ef0c48bf487e39fe2f18574e5
-  $tcKIndex :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9566995161743977433##
-                   17384893016378978716##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcKIndex1) -}
-e9a72fb4ed89fcd202ff4f4370185df8
-  $tcKIndex1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "KIndex"#) -}
-eabee5696e5896b99298a25cd4f3a61e
-  $tcQBind :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5764535289528777981##
-                   15267269007377772324##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcQBind1) -}
-22eb152e60c33f9b0ccec872b65a6c69
-  $tcQBind1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "QBind"#) -}
-b68b42e041c8b31f1e1a3e0c738d5c3b
-  $tcSol :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16657534278005125951##
-                   18080135624941175586##
-                   Language.Fixpoint.Types.Solutions.$trModule
-                   Language.Fixpoint.Types.Solutions.$tcSol1) -}
-08b74a47e4d8f319bb0d189a8f63a962
-  $tcSol1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Sol"#) -}
-2f9ed933fe94fa5e0ab2b5c75e5731b6
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Solutions.$trModule2
-                   Language.Fixpoint.Types.Solutions.$trModule1) -}
-b5d16cc7ae5290a76b7328fbe90bc4d6
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Solutions"#) -}
-366e77e491fd46d8b5f7d6213353c689
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-9305f43f19fd8a895513e3699578e6f0
-  $w$c< ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww3) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww3) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww1 ww4) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 ww4) of wild3 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.<# ww2 ww5) }
-                             GHC.Types.True -> GHC.Types.True } }
-                   GHC.Types.True -> GHC.Types.True }) -}
-a6fd93ba220dd248a9a77051a63f0dbb
-  $w$c<= ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww3) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww3) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww1 ww4) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 ww4) of wild3 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.<# ww2 ww5) of wild4 {
-                                       GHC.Types.False
-                                       -> GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww5)
-                                       GHC.Types.True -> GHC.Types.True } }
-                             GHC.Types.True -> GHC.Types.True } }
-                   GHC.Types.True -> GHC.Types.True }) -}
-267bbe993182ecdae1cf8f49f072ffc7
-  $w$c== ::
-    GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Prim.Int#
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Types.Bool
-  {- Arity: 16, HasNoCafRefs,
-     Strictness: <S,U><L,1*U><S,U><L,1*U><L,U><L,U><S,U><S,U><S,U><L,1*U><S,U><L,1*U><L,U><L,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww7 :: [Language.Fixpoint.Types.Refinements.Expr])
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww10 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww11 :: Text.Parsec.Pos.SourceName)
-                   (ww12 :: GHC.Prim.Int#)
-                   (ww13 :: GHC.Prim.Int#)
-                   (ww14 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww15 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww ww8) of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Classes.$fEq[]_$c==
-                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort)
-                             Language.Fixpoint.Types.Refinements.$s$fEq(,)
-                             ww1
-                             ww9 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                  ww2
-                                  ww10 of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Base.eqString ww3 ww11 of wild4 {
-                                  GHC.Types.False -> GHC.Types.False
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww4 ww12) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww13) of wild6 {
-                                            GHC.Types.False -> GHC.Types.False
-                                            GHC.Types.True
-                                            -> case Language.Fixpoint.Types.Refinements.$fEqExpr_$c==
-                                                      ww6
-                                                      ww14 of wild7 {
-                                                 GHC.Types.False -> GHC.Types.False
-                                                 GHC.Types.True
-                                                 -> GHC.Classes.$fEq[]_$c==
-                                                      @ Language.Fixpoint.Types.Refinements.Expr
-                                                      Language.Fixpoint.Types.Refinements.$fEqExpr
-                                                      ww7
-                                                      ww15 } } } } } } }) -}
-c681d28b649790ddc762e5a00f8b8e2b
-  $w$c> ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww3) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww3) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww1 ww4) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 ww4) of wild3 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.<# ww2 ww5) of wild4 {
-                                       GHC.Types.False
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww2 ww5) of wild5 {
-                                            GHC.Types.False -> GHC.Types.True
-                                            GHC.Types.True -> GHC.Types.False }
-                                       GHC.Types.True -> GHC.Types.False } }
-                             GHC.Types.True -> GHC.Types.False } }
-                   GHC.Types.True -> GHC.Types.False }) -}
-d20719432cd69c7418a446cac96023c2
-  $w$c>= ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww3) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww3) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww1 ww4) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 ww4) of wild3 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.<# ww2 ww5) of wild4 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True -> GHC.Types.False } }
-                             GHC.Types.True -> GHC.Types.False } }
-                   GHC.Types.True -> GHC.Types.False }) -}
-f6f421a260a237762f9eb6faad4325d0
-  $w$ccompare ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Ordering
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,U><L,U><L,U><S,U><L,U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww3) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww3) of wild1 {
-                        GHC.Types.False -> GHC.Types.GT
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.<# ww1 ww4) of wild2 {
-                             GHC.Types.False
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.==# ww1 ww4) of wild3 {
-                                  GHC.Types.False -> GHC.Types.GT
-                                  GHC.Types.True -> GHC.Classes.compareInt# ww2 ww5 }
-                             GHC.Types.True -> GHC.Types.LT } }
-                   GHC.Types.True -> GHC.Types.LT }) -}
-88d334d77a8aa0fbba873010f9ba3499
-  $w$cfmap ::
-    (a1 -> b)
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar a1
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Solutions.Hyp
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Environments.IBindEnv
-    -> (# Language.Fixpoint.Types.Environments.SEnv
-            Language.Fixpoint.Types.Sorts.Sort,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar b,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar a,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Solutions.Hyp,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            Language.Fixpoint.Types.Environments.IBindEnv #)
-  {- Arity: 6, Strictness: <L,C(U)><S,U><S,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-d48cd6c8fd87428c462add5de1e5d785
-  $w$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> c Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 5,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 w @ [Language.Fixpoint.Types.Refinements.Expr]
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Refinements.$s$fData[]5
-                   (w @ Language.Fixpoint.Types.Refinements.Expr
-                      @ ([Language.Fixpoint.Types.Refinements.Expr]
-                         -> Language.Fixpoint.Types.Solutions.EQual)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (w @ Language.Fixpoint.Types.Constraints.Qualifier
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> [Language.Fixpoint.Types.Refinements.Expr]
-                            -> Language.Fixpoint.Types.Solutions.EQual)
-                         Language.Fixpoint.Types.Constraints.$fDataQualifier
-                         (w1
-                            @ (Language.Fixpoint.Types.Constraints.Qualifier
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> [Language.Fixpoint.Types.Refinements.Expr]
-                               -> Language.Fixpoint.Types.Solutions.EQual)
-                            Language.Fixpoint.Types.Solutions.$WEQL)
-                         ww)
-                      ww1)
-                   ww2) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $w$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> m Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 5,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl35 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl35
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ [Language.Fixpoint.Types.Refinements.Expr]
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Refinements.$s$fData[]5
-                   (k @ Language.Fixpoint.Types.Refinements.Expr
-                      @ ([Language.Fixpoint.Types.Refinements.Expr]
-                         -> Language.Fixpoint.Types.Solutions.EQual)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (k @ Language.Fixpoint.Types.Constraints.Qualifier
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> [Language.Fixpoint.Types.Refinements.Expr]
-                            -> Language.Fixpoint.Types.Solutions.EQual)
-                         Language.Fixpoint.Types.Constraints.$fDataQualifier
-                         (GHC.Base.return
-                            @ m
-                            w
-                            @ (Language.Fixpoint.Types.Constraints.Qualifier
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> [Language.Fixpoint.Types.Refinements.Expr]
-                               -> Language.Fixpoint.Types.Solutions.EQual)
-                            Language.Fixpoint.Types.Solutions.$WEQL)
-                         ww)
-                      ww1)
-                   ww2) -}
-1ed2b12ad91eb2f5e5bc162f794e4128
-  $w$cgmapQi ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> u
-  {- Arity: 5,
-     Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w @ Language.Fixpoint.Types.Constraints.Qualifier
-                        Language.Fixpoint.Types.Constraints.$fDataQualifier
-                        ww1
-                   1#
-                   -> w @ Language.Fixpoint.Types.Refinements.Expr
-                        Language.Fixpoint.Types.Refinements.$fDataExpr
-                        ww2
-                   2#
-                   -> w @ [Language.Fixpoint.Types.Refinements.Expr]
-                        Language.Fixpoint.Types.Refinements.$s$fData[]5
-                        ww3 }) -}
-a587bb2763b669c3e06654d87f78ac53
-  $w$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 w (w (w w1
-                         (w2
-                            @ Language.Fixpoint.Types.Constraints.Qualifier
-                            Language.Fixpoint.Types.Constraints.$fDataQualifier
-                            ww))
-                      (w2
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         ww1))
-                   (w2
-                      @ [Language.Fixpoint.Types.Refinements.Expr]
-                      Language.Fixpoint.Types.Refinements.$s$fData[]5
-                      ww2)) -}
-b1aa03e82bf8f0dab7d74e5ac526ae19
-  $w$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 w (w2
-                      @ Language.Fixpoint.Types.Constraints.Qualifier
-                      Language.Fixpoint.Types.Constraints.$fDataQualifier
-                      ww)
-                   (w (w2
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         Language.Fixpoint.Types.Refinements.$fDataExpr
-                         ww1)
-                      (w (w2
-                            @ [Language.Fixpoint.Types.Refinements.Expr]
-                            Language.Fixpoint.Types.Refinements.$s$fData[]5
-                            ww2)
-                         w1))) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $w$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> c Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r) ->
-                 w @ [Language.Fixpoint.Types.Refinements.Expr]
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Refinements.$s$fData[]5
-                   (w @ Language.Fixpoint.Types.Refinements.Expr
-                      @ ([Language.Fixpoint.Types.Refinements.Expr]
-                         -> Language.Fixpoint.Types.Solutions.EQual)
-                      Language.Fixpoint.Types.Refinements.$fDataExpr
-                      (w @ Language.Fixpoint.Types.Constraints.Qualifier
-                         @ (Language.Fixpoint.Types.Refinements.Expr
-                            -> [Language.Fixpoint.Types.Refinements.Expr]
-                            -> Language.Fixpoint.Types.Solutions.EQual)
-                         Language.Fixpoint.Types.Constraints.$fDataQualifier
-                         (w1
-                            @ (Language.Fixpoint.Types.Constraints.Qualifier
-                               -> Language.Fixpoint.Types.Refinements.Expr
-                               -> [Language.Fixpoint.Types.Refinements.Expr]
-                               -> Language.Fixpoint.Types.Solutions.EQual)
-                            Language.Fixpoint.Types.Solutions.$WEQL)))) -}
-8f62a988059ccdc709db0148913c1842
-  $w$chashWithSalt ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Solutions.BIndex -> GHC.Prim.Int#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Solutions.BIndex) ->
-                 case w of wild {
-                   Language.Fixpoint.Types.Solutions.Root
-                   -> GHC.Prim.*# (GHC.Prim.*# ww 16777619#) 16777619#
-                   Language.Fixpoint.Types.Solutions.Bind dt
-                   -> GHC.Prim.xorI#
-                        (GHC.Prim.*#
-                           (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 1#)
-                           16777619#)
-                        dt
-                   Language.Fixpoint.Types.Solutions.Cstr g1
-                   -> case g1 of wild1 {
-                        GHC.Integer.Type.S# n
-                        -> GHC.Prim.xorI#
-                             (GHC.Prim.*#
-                                (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                16777619#)
-                             n
-                        GHC.Integer.Type.Jp# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.xorI#
-                             (GHC.Prim.*# ds1 16777619#)
-                             (GHC.Prim.quotInt# numBytes 8#) }
-                        GHC.Integer.Type.Jn# dt
-                        -> let {
-                             numBytes :: GHC.Prim.Int# = GHC.Prim.sizeofByteArray# dt
-                           } in
-                           case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.Int#
-                                                                                                                               -> GHC.Prim.State#
-                                                                                                                                    GHC.Prim.RealWorld
-                                                                                                                               -> (# GHC.Prim.State#
-                                                                                                                                       GHC.Prim.RealWorld,
-                                                                                                                                     GHC.Prim.Int# #)}
-                                  dt
-                                  0#
-                                  numBytes
-                                  (GHC.Prim.xorI# (GHC.Prim.*# ww 16777619#) 2#)
-                                  GHC.Prim.realWorld# of wild2 { (#,#) ds ds1 ->
-                           GHC.Prim.negateInt#
-                             (GHC.Prim.xorI#
-                                (GHC.Prim.*# ds1 16777619#)
-                                (GHC.Prim.quotInt# numBytes 8#)) } } }) -}
-8b7d270fcd78320e623a650f1730f2ac
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Pred
-    -> [Language.Fixpoint.Types.Solutions.KIndex]
-    -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Pred)
-                   (ww2 :: [Language.Fixpoint.Types.Solutions.KIndex]) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = Language.Fixpoint.Types.Refinements.$w$cshowsPrec3 0# ww1
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Solutions.$fPPrintBindPred10
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Solutions.$fPPrintBindPred9
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Solutions.$fPPrintBindPred5
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Solutions.$fPPrintBindPred8
-                                   (let {
-                                      s :: GHC.Base.String
-                                      = GHC.Base.++
-                                          @ GHC.Types.Char
-                                          Language.Fixpoint.Types.Solutions.$fPPrintBindPred2
-                                          x
-                                    } in
-                                    case ww2 of wild {
-                                      [] -> GHC.CString.unpackAppendCString# "[]"# s
-                                      : x1 xs
-                                      -> GHC.Types.:
-                                           @ GHC.Types.Char
-                                           GHC.Show.showList__2
-                                           (case x1 of ww3 { Language.Fixpoint.Types.Solutions.KIndex ww4 ww5 ww6 ->
-                                            case ww6
-                                                   `cast`
-                                                 (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                                            Language.Fixpoint.Types.Solutions.$w$cshowsPrec1
-                                              0#
-                                              ww4
-                                              ww5
-                                              ww9
-                                              (let {
-                                                 lvl35 :: [GHC.Types.Char]
-                                                 = GHC.Types.:
-                                                     @ GHC.Types.Char
-                                                     GHC.Show.showList__1
-                                                     s
-                                               } in
-                                               letrec {
-                                                 showl :: [Language.Fixpoint.Types.Solutions.KIndex]
-                                                          -> GHC.Base.String
-                                                   {- Arity: 1, Strictness: <S,1*U> -}
-                                                 = \ (ds2 :: [Language.Fixpoint.Types.Solutions.KIndex]) ->
-                                                   case ds2 of wild1 {
-                                                     [] -> lvl35
-                                                     : y ys
-                                                     -> GHC.Types.:
-                                                          @ GHC.Types.Char
-                                                          GHC.Show.shows5
-                                                          (case y of ww11 { Language.Fixpoint.Types.Solutions.KIndex ww12 ww13 ww14 ->
-                                                           case ww14
-                                                                  `cast`
-                                                                (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww15 { Language.Fixpoint.Types.Names.S ww16 ww17 ww18 ->
-                                                           Language.Fixpoint.Types.Solutions.$w$cshowsPrec1
-                                                             0#
-                                                             ww12
-                                                             ww13
-                                                             ww17
-                                                             (showl ys) } }) }
-                                               } in
-                                               showl xs) } }) })))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-97b35c01abcffa2b0e3591b8ebd68d4a
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,U><L,U><L,U(U,U,U)><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Data.Text.Internal.Text)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Solutions.$fPPrintBindPred7
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Solutions.$fPPrintBindPred6
-                          (case GHC.Show.$wshowSignedInt
-                                  0#
-                                  ww1
-                                  (GHC.Base.++
-                                     @ GHC.Types.Char
-                                     Language.Fixpoint.Types.Solutions.$fPPrintBindPred5
-                                     (GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Types.Solutions.$fPPrintBindPred4
-                                        (case GHC.Show.$wshowSignedInt
-                                                0#
-                                                ww2
-                                                (GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Types.Solutions.$fPPrintBindPred5
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Types.Solutions.$fPPrintBindPred3
-                                                      (GHC.CString.unpackAppendCString#
-                                                         "$"#
-                                                         (case Data.Text.Show.$w$cshow
-                                                                 ww3 of ww4 { (#,#) ww5 ww6 ->
-                                                          GHC.Base.++
-                                                            @ GHC.Types.Char
-                                                            (GHC.Types.: @ GHC.Types.Char ww5 ww6)
-                                                            (GHC.Base.++
-                                                               @ GHC.Types.Char
-                                                               Language.Fixpoint.Types.Solutions.$fPPrintBindPred2
-                                                               x) })))) of ww4 { (#,#) ww5 ww6 ->
-                                         GHC.Types.:
-                                           @ GHC.Types.Char
-                                           ww5
-                                           ww6 }))) of ww4 { (#,#) ww5 ww6 ->
-                           GHC.Types.: @ GHC.Types.Char ww5 ww6 }))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-b96fa8b15d136fd34e27b3c84347b295
-  $w$cshowsPrec2 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-    -> GHC.Show.ShowS
-  {- Arity: 7,
-     Strictness: <S,U><L,U(A,U(U,U,U),A)><L,U><L,U><L,U(U,U,U)><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww4 :: Text.Parsec.Pos.SourcePos)
-                   (ww5 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww6 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 let {
-                   f :: GHC.Base.String -> GHC.Base.String
-                   = case ww1 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                     case ww4 of ww11 { Text.Parsec.Pos.SourcePos ww12 ww13 ww14 ->
-                     Language.Fixpoint.Types.Constraints.$w$cshowsPrec4
-                       0#
-                       ww9
-                       ww2
-                       ww3
-                       ww12
-                       ww13
-                       ww14 } }
-                 } in
-                 let {
-                   f1 :: GHC.Base.String -> GHC.Base.String
-                   = Language.Fixpoint.Types.Refinements.$w$cshowsPrec3 0# ww5
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Solutions.$fShowEQual5
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Solutions.$fShowEQual4
-                          (f (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Solutions.$fPPrintBindPred5
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Solutions.$fShowEQual3
-                                   (f1
-                                      (GHC.Base.++
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.Types.Solutions.$fPPrintBindPred5
-                                         (GHC.Base.++
-                                            @ GHC.Types.Char
-                                            Language.Fixpoint.Types.Solutions.$fShowEQual2
-                                            (let {
-                                               s :: GHC.Base.String
-                                               = GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   Language.Fixpoint.Types.Solutions.$fPPrintBindPred2
-                                                   x
-                                             } in
-                                             case ww6 of wild {
-                                               [] -> GHC.CString.unpackAppendCString# "[]"# s
-                                               : x1 xs
-                                               -> GHC.Types.:
-                                                    @ GHC.Types.Char
-                                                    GHC.Show.showList__2
-                                                    (Language.Fixpoint.Types.Refinements.$w$cshowsPrec3
-                                                       0#
-                                                       x1
-                                                       (let {
-                                                          lvl35 :: [GHC.Types.Char]
-                                                          = GHC.Types.:
-                                                              @ GHC.Types.Char
-                                                              GHC.Show.showList__1
-                                                              s
-                                                        } in
-                                                        letrec {
-                                                          showl :: [Language.Fixpoint.Types.Refinements.Expr]
-                                                                   -> GHC.Base.String
-                                                            {- Arity: 1, Strictness: <S,1*U> -}
-                                                          = \ (ds2 :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                                                            case ds2 of wild1 {
-                                                              [] -> lvl35
-                                                              : y ys
-                                                              -> GHC.Types.:
-                                                                   @ GHC.Types.Char
-                                                                   GHC.Show.shows5
-                                                                   (Language.Fixpoint.Types.Refinements.$w$cshowsPrec3
-                                                                      0#
-                                                                      y
-                                                                      (showl ys)) }
-                                                        } in
-                                                        showl xs)) }))))))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $w$cshowsPrec3 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 3, Strictness: <S,U><L,1*U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Solutions.GBind)
-                   (w1 :: GHC.Base.String) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fShowGBind2
-                        (GHC.Show.showList__
-                           @ [Language.Fixpoint.Types.Solutions.EQual]
-                           Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowList
-                           w `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                           w1)
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Types.Solutions.$fShowGBind2
-                           (GHC.Show.showList__
-                              @ [Language.Fixpoint.Types.Solutions.EQual]
-                              Language.Fixpoint.Types.Solutions.$fShowEQual_$cshowList
-                              w `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])
-                              (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w1))) }) -}
-d48cd6c8fd87428c462add5de1e5d785
-  $w$cshowsPrec4 ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 3, Strictness: <S,U><L,1*U><L,U>, Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (w :: Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: GHC.Base.String) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Solutions.$fShowQBind2
-                        (GHC.Show.showList__
-                           @ Language.Fixpoint.Types.Solutions.EQual
-                           Language.Fixpoint.Types.Solutions.$fShowEQual1
-                           w `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                           w1)
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Types.Solutions.$fShowQBind2
-                           (GHC.Show.showList__
-                              @ Language.Fixpoint.Types.Solutions.EQual
-                              Language.Fixpoint.Types.Solutions.$fShowEQual1
-                              w `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                              (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w1))) }) -}
-3324aa25afd05268140dc405758de39a
-  $w$dGNFData ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "eqPred")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "_eqArgs")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 [Language.Fixpoint.Types.Refinements.Expr])
-         a1
-    -> ()
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <S,1*U><S,U><S,1*U><S,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: [(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww2 :: Text.Parsec.Pos.SourceName)
-                   (ww3 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "eqPred")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                             a1)
-                   (ww4 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_eqArgs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 [Language.Fixpoint.Types.Refinements.Expr])
-                             a1) ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort)
-                        Language.Fixpoint.Types.Constraints.$fNFDataGInfo2
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <(Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort)>_N))
-                        ww of wild1 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww1) of wild2 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        ww2 of wild4 { () ->
-                 case Language.Fixpoint.Types.Refinements.$fNFDataExpr1
-                        @ GHC.Prim.Any
-                        (Language.Fixpoint.Types.Refinements.$fBinaryReft2
-                           @ GHC.Prim.Any
-                           ww3
-                             `cast`
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.S>_P
-                                     <'GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "eqPred")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict>_P
-                                     <GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Language.Fixpoint.Types.Refinements.Expr>_R <a1>_N)
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Refinements.Expr>_R
-                                     <a1>_P))) of wild5 { () ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Types.Refinements.$fNFDataExpr_$crnf
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <Language.Fixpoint.Types.Refinements.Expr>_N))
-                   ww4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "_eqArgs")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R
-                                [Language.Fixpoint.Types.Refinements.Expr]>_R <a1>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <[Language.Fixpoint.Types.Refinements.Expr]>_R
-                             <a1>_P)) } } } }) -}
-15d1161f945c979cdaedd5c50214de6d
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Refinements.KVar -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo7 :: GHC.Prim.Int#
-                            -> Data.Text.Internal.Text
-                            -> Data.Text.Internal.Text
-                            -> v
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Int#
-                            -> GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       nt :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo7 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         nt
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         (w nt
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                            w3
-                                            y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Refinements.KVar v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Refinements.KVar
-                                    @ v
-                                    nt `cast` (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo7
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w2)) -}
-dea5413cdd8622923f018d8685d34a48
-  $w$s$wupdateWith ::
-    (v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,C(U)><L,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf
-                               Language.Fixpoint.Types.Refinements.KVar v)) ->
-                 letrec {
-                   $wgo :: GHC.Prim.Int#
-                           -> Data.Text.Internal.Text
-                           -> Data.Text.Internal.Text
-                           -> GHC.Prim.Array#
-                                (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                           -> GHC.Prim.Int#
-                           -> GHC.Prim.Int#
-                           -> GHC.Prim.Array#
-                                (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Refinements.KVar v)
-                     {- Arity: 6, Strictness: <L,U><S,U><S,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf
-                                    Language.Fixpoint.Types.Refinements.KVar v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False -> $wgo ww3 ww4 ww5 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case w y of v' { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Refinements.KVar
-                                         @ v
-                                         (Language.Fixpoint.Types.Names.S ww3 ww4 ww5)
-                                           `cast`
-                                         (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                         v')
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } } }
-                       GHC.Types.True -> ww6 }
-                 } in
-                 $wgo
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf
-                           Language.Fixpoint.Types.Refinements.KVar v)
-                      w1)) -}
-aff521ab4f0e9a76749a0b67d2d7f032
-  $w$sadjust ::
-    (v -> v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,C(U)><L,U><S,U><S,U><S,U><S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 letrec {
-                   $wgo :: GHC.Prim.Word#
-                           -> GHC.Prim.Int#
-                           -> Data.Text.Internal.Text
-                           -> Data.Text.Internal.Text
-                           -> GHC.Prim.Int#
-                           -> Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar v
-                           -> Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar v
-                     {- Arity: 6, Strictness: <L,U><L,U><S,U><S,U><L,U><S,1*U>,
-                        Inline: [0] -}
-                   = \ (ww5 :: GHC.Prim.Word#)
-                       (ww6 :: GHC.Prim.Int#)
-                       (ww7 :: Data.Text.Internal.Text)
-                       (ww8 :: Data.Text.Internal.Text)
-                       (ww9 :: GHC.Prim.Int#)
-                       (w2 :: Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar v) ->
-                     case w2 of wild {
-                       Data.HashMap.Base.Empty
-                       -> Data.HashMap.Base.Empty
-                            @ Language.Fixpoint.Types.Refinements.KVar
-                            @ v
-                       Data.HashMap.Base.BitmapIndexed dt dt1
-                       -> let {
-                            m :: GHC.Prim.Word#
-                            = GHC.Prim.uncheckedShiftL#
-                                1##
-                                (GHC.Prim.word2Int#
-                                   (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww5 ww9) 15##))
-                          } in
-                          case GHC.Prim.and# dt m of wild2 {
-                            DEFAULT
-                            -> let {
-                                 i :: GHC.Prim.Int#
-                                 = GHC.Prim.word2Int#
-                                     (GHC.Prim.popCnt#
-                                        (GHC.Prim.and# dt (GHC.Prim.minusWord# m 1##)))
-                               } in
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      dt1
-                                      i of ds7 { Unit# ipv2 ->
-                               case $wgo
-                                      ww5
-                                      ww6
-                                      ww7
-                                      ww8
-                                      (GHC.Prim.+# ww9 4#)
-                                      ipv2 of vx { DEFAULT ->
-                               case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      @ GHC.Prim.RealWorld
-                                      dt1
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.HashMap
-                                              Language.Fixpoint.Types.Refinements.KVar v)
-                                         dt1)
-                                      GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv4
-                                      i
-                                      vx
-                                      ipv1 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.HashMap
-                                           Language.Fixpoint.Types.Refinements.KVar v)
-                                      ipv4
-                                      s' of ds4 { (#,#) ipv3 ipv5 ->
-                               Data.HashMap.Base.BitmapIndexed
-                                 @ Language.Fixpoint.Types.Refinements.KVar
-                                 @ v
-                                 dt
-                                 ipv5 } } } } }
-                            0## -> wild }
-                       Data.HashMap.Base.Leaf dt dt1 dt2
-                       -> case dt1
-                                 `cast`
-                               (Language.Fixpoint.Types.Refinements.N:KVar[0]) of wild2 { Language.Fixpoint.Types.Names.S dt4 ds4 ds3 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# dt ww5) of wild3 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case GHC.Prim.tagToEnum#
-                                      @ GHC.Types.Bool
-                                      (GHC.Prim.==# dt4 ww6) of wild4 {
-                                 GHC.Types.False -> wild
-                                 GHC.Types.True
-                                 -> case w dt2 of v1 { DEFAULT ->
-                                    Data.HashMap.Base.Leaf
-                                      @ Language.Fixpoint.Types.Refinements.KVar
-                                      @ v
-                                      ww5
-                                      (Language.Fixpoint.Types.Names.S ww6 ww7 ww8)
-                                        `cast`
-                                      (Sym (Language.Fixpoint.Types.Refinements.N:KVar[0]))
-                                      v1 } } } }
-                       Data.HashMap.Base.Full dt
-                       -> let {
-                            i :: GHC.Prim.Int#
-                            = GHC.Prim.word2Int#
-                                (GHC.Prim.and# (GHC.Prim.uncheckedShiftRL# ww5 ww9) 15##)
-                          } in
-                          case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 dt
-                                 i of ds7 { Unit# ipv2 ->
-                          case $wgo
-                                 ww5
-                                 ww6
-                                 ww7
-                                 ww8
-                                 (GHC.Prim.+# ww9 4#)
-                                 ipv2 of vx { DEFAULT ->
-                          case GHC.Prim.thawArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 @ GHC.Prim.RealWorld
-                                 dt
-                                 0#
-                                 16#
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv1 ipv4 ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 i
-                                 vx
-                                 ipv1 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar v)
-                                 ipv4
-                                 s' of ds4 { (#,#) ipv5 ipv3 ->
-                          Data.HashMap.Base.Full
-                            @ Language.Fixpoint.Types.Refinements.KVar
-                            @ v
-                            ipv3 } } } } }
-                       Data.HashMap.Base.Collision dt dt1
-                       -> case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.eqWord# ww5 dt) of wild2 {
-                            GHC.Types.False -> wild
-                            GHC.Types.True
-                            -> case Language.Fixpoint.Types.Solutions.$w$s$wupdateWith
-                                      @ v
-                                      w
-                                      ww6
-                                      ww7
-                                      ww8
-                                      dt1 of ww10 { DEFAULT ->
-                               Data.HashMap.Base.Collision
-                                 @ Language.Fixpoint.Types.Refinements.KVar
-                                 @ v
-                                 ww5
-                                 ww10 } } }
-                 } in
-                 $wgo
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   (Data.Text.Internal.Text ww1 ww2 ww3)
-                   ww4
-                   0#
-                   w1 }) -}
-058084fa5b64ef9c423bef1f3f3fa057
-  $w$sinsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Solutions.$wpoly_go1
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   (Data.Text.Internal.Text ww1 ww2 ww3)
-                   ww4
-                   w
-                   0#
-                   w1 }) -}
-4903aed76dc6af1757a957ee46d885bd
-  $w$sunsafeInsert ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <L,U><S,U><S,U><S,U><S,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (w :: v)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Solutions.$wpoly_go2
-                        @ GHC.Prim.RealWorld
-                        @ v
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                        w
-                        0#
-                        w1
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 ipv1 } }) -}
-c7acb2cbd61d12a1b4d0f0b948ff988b
-  $weQual ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> [(Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort)]
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.Parsec.Pos.SourcePos
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> (# Language.Fixpoint.Types.Constraints.Qualifier,
-          Language.Fixpoint.Types.Refinements.Expr,
-          [Language.Fixpoint.Types.Refinements.Expr] #)
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: [(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort)])
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww3 :: Text.Parsec.Pos.SourcePos)
-                   (w :: [Language.Fixpoint.Types.Names.Symbol]) ->
-                 let {
-                   es :: [Language.Fixpoint.Types.Refinements.Expr]
-                   = GHC.Base.map
-                       @ Language.Fixpoint.Types.Names.Symbol
-                       @ Language.Fixpoint.Types.Refinements.Expr
-                       Language.Fixpoint.Types.Refinements.$fExpressionSymbol_$cprop
-                       w
-                 } in
-                 case Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                        (Language.Fixpoint.Types.Refinements.$dmsubst2
-                           @ Language.Fixpoint.Types.Refinements.Expr
-                           (GHC.List.reverse1
-                              @ (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.Expr)
-                              (GHC.List.filter
-                                 @ (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.Expr)
-                                 Language.Fixpoint.Types.Substitutions.mkSubst_notTrivial
-                                 (Language.Fixpoint.Misc.safeZip
-                                    @ Language.Fixpoint.Types.Names.Symbol
-                                    @ Language.Fixpoint.Types.Refinements.Expr
-                                    Language.Fixpoint.Types.Solutions.eQual2
-                                      `cast`
-                                    (Sym (GHC.Classes.N:IP[0]
-                                              <"callStack">_N <GHC.Stack.Types.CallStack>_N))
-                                    Language.Fixpoint.Types.Solutions.eQual1
-                                    (GHC.Base.map
-                                       @ (Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort)
-                                       @ Language.Fixpoint.Types.Names.Symbol
-                                       (Data.Tuple.fst
-                                          @ Language.Fixpoint.Types.Names.Symbol
-                                          @ Language.Fixpoint.Types.Sorts.Sort)
-                                       ww1)
-                                    es))
-                              (GHC.Types.[]
-                                 @ (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.Expr)))
-                           (Data.HashMap.Base.Empty
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              @ Language.Fixpoint.Types.Refinements.Expr))
-                          `cast`
-                        (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                        ww2 of dt { DEFAULT ->
-                 case es of dt1 { DEFAULT ->
-                 (# Language.Fixpoint.Types.Constraints.Q ww ww1 ww2 ww3, dt,
-                    dt1 #) } }) -}
-6496c23860ce5e7a30925a513717574d
-  $wglookup ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      Language.Fixpoint.Types.Solutions.QBind
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Solutions.Hyp
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         (Data.Either.Either
-            Language.Fixpoint.Types.Solutions.QBind
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-  {- Arity: 7, Strictness: <S,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Solutions.QBind)
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             (((Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort),
-                               Language.Fixpoint.Types.Refinements.Expr),
-                              Language.Fixpoint.Types.Solutions.GBind))
-                   (ww2 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             Language.Fixpoint.Types.Solutions.Hyp)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.ByteArray#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: GHC.Prim.Int#) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww4
-                        (GHC.Prim.uncheckedIShiftL# ww5 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go11
-                        @ (((Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Sorts.Sort),
-                            Language.Fixpoint.Types.Refinements.Expr),
-                           Language.Fixpoint.Types.Solutions.GBind)
-                        (GHC.Prim.int2Word# ds2)
-                        ww3
-                        0#
-                        ww1 of wild {
-                   GHC.Base.Nothing
-                   -> case Language.Fixpoint.Types.Environments.$wpoly_go11
-                             @ [Language.Fixpoint.Types.Solutions.Cube]
-                             (GHC.Prim.int2Word# ds2)
-                             ww3
-                             0#
-                             ww2 of wild2 {
-                        GHC.Base.Nothing
-                        -> case Language.Fixpoint.Types.Environments.$wpoly_go11
-                                  @ Language.Fixpoint.Types.Solutions.QBind
-                                  (GHC.Prim.int2Word# ds2)
-                                  ww3
-                                  0#
-                                  ww of wild3 {
-                             GHC.Base.Nothing
-                             -> Language.Fixpoint.Types.Solutions.glookup1 ww5 ww4 ww6
-                             GHC.Base.Just eqs
-                             -> Data.Either.Right
-                                  @ Language.Fixpoint.Types.Solutions.Hyp
-                                  @ (Data.Either.Either
-                                       Language.Fixpoint.Types.Solutions.QBind
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  (Data.Either.Left
-                                     @ Language.Fixpoint.Types.Solutions.QBind
-                                     @ (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind)
-                                     eqs) }
-                        GHC.Base.Just cs
-                        -> Data.Either.Left
-                             @ Language.Fixpoint.Types.Solutions.Hyp
-                             @ (Data.Either.Either
-                                  Language.Fixpoint.Types.Solutions.QBind
-                                  (((Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Sorts.Sort),
-                                    Language.Fixpoint.Types.Refinements.Expr),
-                                   Language.Fixpoint.Types.Solutions.GBind))
-                             cs }
-                   GHC.Base.Just gbs
-                   -> Data.Either.Right
-                        @ Language.Fixpoint.Types.Solutions.Hyp
-                        @ (Data.Either.Either
-                             Language.Fixpoint.Types.Solutions.QBind
-                             (((Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort),
-                               Language.Fixpoint.Types.Refinements.Expr),
-                              Language.Fixpoint.Types.Solutions.GBind))
-                        (Data.Either.Right
-                           @ Language.Fixpoint.Types.Solutions.QBind
-                           @ (((Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Sorts.Sort),
-                               Language.Fixpoint.Types.Refinements.Expr),
-                              Language.Fixpoint.Types.Solutions.GBind)
-                           gbs) } }) -}
-3c7638cdc58a02a7c227582486e9877e
-  $wgo1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Refinements.KVar
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.Leaf
-               Language.Fixpoint.Types.Refinements.KVar
-               (((Language.Fixpoint.Types.Names.Symbol,
-                  Language.Fixpoint.Types.Sorts.Sort),
-                 Language.Fixpoint.Types.Refinements.Expr),
-                Language.Fixpoint.Types.Solutions.GBind)) #)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(U)><L,U(U)><S,U><S,U><S,U>, Inline: [0] -}
-a088e8d52a83d8ecfc56c731f02654b4
-  $wgo2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               (((Language.Fixpoint.Types.Names.Symbol,
-                  Language.Fixpoint.Types.Sorts.Sort),
-                 Language.Fixpoint.Types.Refinements.Expr),
-                Language.Fixpoint.Types.Solutions.GBind)) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-96103ef09a9ab3a7d63899bdb5762b82
-  $wgo3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               (((Language.Fixpoint.Types.Names.Symbol,
-                  Language.Fixpoint.Types.Sorts.Sort),
-                 Language.Fixpoint.Types.Refinements.Expr),
-                Language.Fixpoint.Types.Solutions.GBind)) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-420d39a0b6e3995eb013326cf32b5053
-  $wgo4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.Leaf
-            Language.Fixpoint.Types.Refinements.KVar
-            (Language.Fixpoint.Types.Refinements.Expr,
-             [Language.Fixpoint.Types.Refinements.Expr]))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.Leaf
-               Language.Fixpoint.Types.Refinements.KVar
-               (Language.Fixpoint.Types.Refinements.Expr,
-                [Language.Fixpoint.Types.Refinements.Expr])) #)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(U)><L,U(U)><S,U><S,U><S,U>, Inline: [0] -}
-e3d7d82c0de9fff1bc3f96eece504ae2
-  $wgo5 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (Language.Fixpoint.Types.Refinements.Expr,
-             [Language.Fixpoint.Types.Refinements.Expr]))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               (Language.Fixpoint.Types.Refinements.Expr,
-                [Language.Fixpoint.Types.Refinements.Expr])) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-6afce0f8eb90b551adfaf0d07f6e9031
-  $wgo6 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind))
-    -> Data.HashMap.Array.MArray
-         s
-         (Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar
-            (Language.Fixpoint.Types.Refinements.Expr,
-             [Language.Fixpoint.Types.Refinements.Expr]))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Array.MArray
-            s
-            (Data.HashMap.Base.HashMap
-               Language.Fixpoint.Types.Refinements.KVar
-               (Language.Fixpoint.Types.Refinements.Expr,
-                [Language.Fixpoint.Types.Refinements.Expr])) #)
-  {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-     Inline: [0] -}
-7e71cc08ad1ee388d35ed339dc0aad4c
-  $wlookup ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      Language.Fixpoint.Types.Solutions.QBind
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Solutions.Hyp
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 6, Strictness: <S,U><S,U><L,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Solutions.QBind)
-                   (ww1 :: Data.HashMap.Base.HashMap
-                             Language.Fixpoint.Types.Refinements.KVar
-                             Language.Fixpoint.Types.Solutions.Hyp)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.ByteArray#)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww3
-                        (GHC.Prim.uncheckedIShiftL# ww4 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww5 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go11
-                        @ [Language.Fixpoint.Types.Solutions.Cube]
-                        (GHC.Prim.int2Word# ds2)
-                        ww2
-                        0#
-                        ww1 of wild {
-                   GHC.Base.Nothing
-                   -> case Language.Fixpoint.Types.Environments.$wpoly_go11
-                             @ Language.Fixpoint.Types.Solutions.QBind
-                             (GHC.Prim.int2Word# ds2)
-                             ww2
-                             0#
-                             ww of wild2 {
-                        GHC.Base.Nothing
-                        -> Language.Fixpoint.Types.Solutions.lookup1 ww4 ww3 ww5
-                        GHC.Base.Just eqs
-                        -> Data.Either.Right
-                             @ Language.Fixpoint.Types.Solutions.Hyp
-                             @ Language.Fixpoint.Types.Solutions.QBind
-                             eqs }
-                   GHC.Base.Just cs
-                   -> Data.Either.Left
-                        @ Language.Fixpoint.Types.Solutions.Hyp
-                        @ Language.Fixpoint.Types.Solutions.QBind
-                        cs } }) -}
-7445c42e03ab3f93ad4ca4e34000f759
-  $wlookupQBind ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Refinements.KVar
-      Language.Fixpoint.Types.Solutions.QBind
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 5, HasNoCafRefs, Strictness: <S,U><L,U><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar
-                            Language.Fixpoint.Types.Solutions.QBind)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.ByteArray#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: GHC.Prim.Int#) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww2
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww4 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Environments.$wpoly_go11
-                        @ Language.Fixpoint.Types.Solutions.QBind
-                        (GHC.Prim.int2Word# ds2)
-                        ww1
-                        0#
-                        ww of wild {
-                   GHC.Base.Nothing
-                   -> (GHC.Types.[] @ Language.Fixpoint.Types.Solutions.EQual)
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Solutions.N:QBind[0]))
-                   GHC.Base.Just v -> v } }) -}
-f322d4a9675b8190d052c95b014967d0
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-  {- Arity: 7, Strictness: <S,U><L,U><S,U><S,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-e8a526e0c06b620dbeb59492f7b66426
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar v
-    -> GHC.Prim.State# s
-    -> (# GHC.Prim.State# s,
-          Data.HashMap.Base.HashMap
-            Language.Fixpoint.Types.Refinements.KVar v #)
-  {- Arity: 8,
-     Strictness: <L,U><L,U><S,U><S,U><L,U><L,U><S,1*U><S,U>,
-     Inline: [0] -}
-bd6e6e8b9fbae521b1178e2e1db8dece
-  $wupdate ::
-    Language.Fixpoint.Types.Solutions.Sol
-      a Language.Fixpoint.Types.Solutions.QBind
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> [(Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Solutions.EQual)]
-    -> (# GHC.Types.Bool,
-          Language.Fixpoint.Types.Solutions.Sol
-            a Language.Fixpoint.Types.Solutions.QBind #)
-  {- Arity: 3, Strictness: <L,U(U,U,U,U,U)><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: [Language.Fixpoint.Types.Refinements.KVar])
-                   (w2 :: [(Language.Fixpoint.Types.Refinements.KVar,
-                            Language.Fixpoint.Types.Solutions.EQual)]) ->
-                 let {
-                   ds :: ([GHC.Types.Bool],
-                          Language.Fixpoint.Types.Solutions.Sol
-                            a Language.Fixpoint.Types.Solutions.QBind)
-                   = Language.Fixpoint.Types.Solutions.update1
-                       @ a
-                       (GHC.Base.id
-                          @ ([GHC.Types.Bool],
-                             Language.Fixpoint.Types.Solutions.Sol
-                               a Language.Fixpoint.Types.Solutions.QBind))
-                       (Language.Fixpoint.Misc.groupBase
-                          @ Language.Fixpoint.Types.Refinements.KVar
-                          @ Language.Fixpoint.Types.Solutions.EQual
-                          Language.Fixpoint.Types.Refinements.$fEqKVar
-                          Language.Fixpoint.Types.Refinements.$fHashableKVar
-                          (Language.Fixpoint.Types.Solutions.update_go1
-                             w1
-                             (Data.HashMap.Base.Empty
-                                @ Language.Fixpoint.Types.Refinements.KVar
-                                @ [Language.Fixpoint.Types.Solutions.EQual]))
-                          w2)
-                       (GHC.Types.[] @ GHC.Types.Bool, w)
-                 } in
-                 (# case ds of wild { (,) bs s' ->
-                    (Language.Fixpoint.Types.Solutions.update_go bs)
-                      `cast`
-                    (Data.Monoid.N:Any[0]) },
-                    case ds of wild { (,) bs s' -> s' } #)) -}
-8f62a988059ccdc709db0148913c1842
-  data BIndex
-    = Root
-    | Bind {-# UNPACK #-}Language.Fixpoint.Types.Environments.BindId
-    | Cstr !Language.Fixpoint.Types.Constraints.SubcId
-526e025701d4a129ac5721aaa98616ae
-  data BindPred
-    = BP {bpConc :: !Language.Fixpoint.Types.Refinements.Pred,
-          bpKVar :: ![Language.Fixpoint.Types.Solutions.KIndex]}
-60b1399c548e67aa6e3ae48b1aff972a
-  type CMap a =
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId a
-1258f02e99cbe417bcd003d5a26f39d7
-  type Cand a = [(Language.Fixpoint.Types.Refinements.Expr, a)]
-a3c72678689a09bc3a389091220691c4
-  data Cube
-    = Cube {cuBinds :: Language.Fixpoint.Types.Environments.IBindEnv,
-            cuSubst :: Language.Fixpoint.Types.Refinements.Subst,
-            cuId :: Language.Fixpoint.Types.Constraints.SubcId,
-            cuTag :: Language.Fixpoint.Types.Constraints.Tag}
-d48cd6c8fd87428c462add5de1e5d785
-  data EQual
-    = EQL {_eqQual :: !Language.Fixpoint.Types.Constraints.Qualifier,
-           eqPred :: !Language.Fixpoint.Types.Refinements.Expr,
-           _eqArgs :: ![Language.Fixpoint.Types.Refinements.Expr]}
-d48cd6c8fd87428c462add5de1e5d785
-  newtype GBind = GB [[Language.Fixpoint.Types.Solutions.EQual]]
-46cbbd29db6fed96ab8b25a466a3c498
-  type GSolution =
-    Language.Fixpoint.Types.Solutions.Sol
-      (((Language.Fixpoint.Types.Names.Symbol,
-         Language.Fixpoint.Types.Sorts.Sort),
-        Language.Fixpoint.Types.Refinements.Expr),
-       Language.Fixpoint.Types.Solutions.GBind)
-      Language.Fixpoint.Types.Solutions.QBind
-9ada9a2e9283c0d71dc285dc2d850f46
-  type Hyp =
-    Language.Fixpoint.Misc.ListNE
-      Language.Fixpoint.Types.Solutions.Cube
-e8b35721bec6196b1a81a4e8ce90ea6d
-  data Index
-    = FastIdx {bindExpr :: !Language.Fixpoint.Types.Environments.BindId
-                            Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Solutions.BindPred,
-               kvUse :: !Language.Fixpoint.Types.Solutions.KIndex
-                         Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Refinements.KVSub,
-               kvDef :: !Language.Fixpoint.Types.Refinements.KVar
-                         Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Solutions.Hyp,
-               envBinds :: !Language.Fixpoint.Types.Solutions.CMap
-                              Language.Fixpoint.Types.Environments.IBindEnv,
-               envTx :: !Language.Fixpoint.Types.Solutions.CMap
-                           [Language.Fixpoint.Types.Constraints.SubcId],
-               envSorts :: !Language.Fixpoint.Types.Environments.SEnv
-                              Language.Fixpoint.Types.Sorts.Sort}
-f5f596d4ba7db56e254a65fca3db1847
-  data KIndex
-    = KIndex {kiBIndex :: {-# UNPACK #-}Language.Fixpoint.Types.Environments.BindId,
-              kiPos :: {-# UNPACK #-}GHC.Types.Int,
-              kiKVar :: !Language.Fixpoint.Types.Refinements.KVar}
-d48cd6c8fd87428c462add5de1e5d785
-  newtype QBind = QB [Language.Fixpoint.Types.Solutions.EQual]
-8f62a988059ccdc709db0148913c1842
-  axiom Rep_BIndex::
-      GHC.Generics.Rep Language.Fixpoint.Types.Solutions.BIndex
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "BIndex"
-               "Language.Fixpoint.Types.Solutions"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Root" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "Bind" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.BindId))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "Cstr" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Constraints.SubcId))))
-d48cd6c8fd87428c462add5de1e5d785
-  axiom Rep_EQual::
-      GHC.Generics.Rep Language.Fixpoint.Types.Solutions.EQual
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "EQual"
-               "Language.Fixpoint.Types.Solutions"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "EQL" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "_eqQual")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Constraints.Qualifier)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "eqPred")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Refinements.Expr)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "_eqArgs")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        [Language.Fixpoint.Types.Refinements.Expr]))))
-d48cd6c8fd87428c462add5de1e5d785
-  axiom Rep_GBind::
-      GHC.Generics.Rep Language.Fixpoint.Types.Solutions.GBind
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "GBind"
-               "Language.Fixpoint.Types.Solutions"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "GB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 [[Language.Fixpoint.Types.Solutions.EQual]])))
-f5f596d4ba7db56e254a65fca3db1847
-  axiom Rep_KIndex::
-      GHC.Generics.Rep Language.Fixpoint.Types.Solutions.KIndex
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "KIndex"
-               "Language.Fixpoint.Types.Solutions"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "KIndex" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "kiBIndex")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Environments.BindId)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "kiPos")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "kiKVar")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Refinements.KVar))))
-d48cd6c8fd87428c462add5de1e5d785
-  axiom Rep_QBind::
-      GHC.Generics.Rep Language.Fixpoint.Types.Solutions.QBind
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "QBind"
-               "Language.Fixpoint.Types.Solutions"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "QB" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 [Language.Fixpoint.Types.Solutions.EQual])))
-5c80baaee2ad2e2f29824ed6e0d2d1eb
-  data Sol b a
-    = Sol {sEnv :: !Language.Fixpoint.Types.Environments.SEnv
-                      Language.Fixpoint.Types.Sorts.Sort,
-           sMap :: !Data.HashMap.Base.HashMap
-                      Language.Fixpoint.Types.Refinements.KVar a,
-           gMap :: !Data.HashMap.Base.HashMap
-                      Language.Fixpoint.Types.Refinements.KVar b,
-           sHyp :: !Data.HashMap.Base.HashMap
-                      Language.Fixpoint.Types.Refinements.KVar
-                      Language.Fixpoint.Types.Solutions.Hyp,
-           sScp :: !Data.HashMap.Base.HashMap
-                      Language.Fixpoint.Types.Refinements.KVar
-                      Language.Fixpoint.Types.Environments.IBindEnv}
-45346c1c7bebcad6381bc3e14333f2b2
-  type Solution =
-    Language.Fixpoint.Types.Solutions.Sol
-      () Language.Fixpoint.Types.Solutions.QBind
-fc9aef305144246652f34527e8c03d96
-  _eqArgs ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  RecSel Left Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.EQL ds1 ds2 ds3 ->
-                 ds3 }) -}
-f720d34c92eb99e53b38c1c4e32e7eb9
-  _eqQual ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> Language.Fixpoint.Types.Constraints.Qualifier
-  RecSel Left Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(U(U,U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.EQL ds1 ds2 ds3 ->
-                 ds1 }) -}
-a5255021887e945fa19f9d1cb7f22164
-  bindExpr ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Environments.BindId
-       Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Solutions.BindPred
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLL),1*U(U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds1 }) -}
-898a55da1f956cd7772be394e3bf7d63
-  bpConc ::
-    Language.Fixpoint.Types.Solutions.BindPred
-    -> Language.Fixpoint.Types.Refinements.Pred
-  RecSel Left Language.Fixpoint.Types.Solutions.BindPred
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.BP ds1 ds2 ->
-                 ds1 }) -}
-5b49edeade61d3fb1c18252dfc51b96e
-  bpKVar ::
-    Language.Fixpoint.Types.Solutions.BindPred
-    -> [Language.Fixpoint.Types.Solutions.KIndex]
-  RecSel Left Language.Fixpoint.Types.Solutions.BindPred
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.BindPred) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.BP ds1 ds2 ->
-                 ds2 }) -}
-8bc973b08bb7740942a1cf2fdfd24dfc
-  cuBinds ::
-    Language.Fixpoint.Types.Solutions.Cube
-    -> Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Solutions.Cube
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLL),1*U(1*U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Cube ds1 ds2 ds3 ds4 ->
-                 ds1 }) -}
-8dafbad8bcefeb5c75b865c6e470264f
-  cuId ::
-    Language.Fixpoint.Types.Solutions.Cube
-    -> Language.Fixpoint.Types.Constraints.SubcId
-  RecSel Left Language.Fixpoint.Types.Solutions.Cube
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSL),1*U(A,A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Cube ds1 ds2 ds3 ds4 ->
-                 ds3 }) -}
-56fb7dba58bfdc3e40221a038611ad8f
-  cuSubst ::
-    Language.Fixpoint.Types.Solutions.Cube
-    -> Language.Fixpoint.Types.Refinements.Subst
-  RecSel Left Language.Fixpoint.Types.Solutions.Cube
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLL),1*U(A,1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Cube ds1 ds2 ds3 ds4 ->
-                 ds2 }) -}
-df8c539c6864ee075246c5c36aa42f2c
-  cuTag ::
-    Language.Fixpoint.Types.Solutions.Cube
-    -> Language.Fixpoint.Types.Constraints.Tag
-  RecSel Left Language.Fixpoint.Types.Solutions.Cube
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLS),1*U(A,A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Cube) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Cube ds1 ds2 ds3 ds4 ->
-                 ds4 }) -}
-273cec9ec35fd4cb7087dc5e8a27224d
-  eQual ::
-    Language.Fixpoint.Types.Constraints.Qualifier
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Constraints.Qualifier)
-                   (w1 :: [Language.Fixpoint.Types.Names.Symbol]) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.Q ww1 ww2 ww3 ww4 ->
-                 case Language.Fixpoint.Types.Solutions.$weQual
-                        ww1
-                        ww2
-                        ww3
-                        ww4
-                        w1 of ww5 { (#,,#) ww6 ww7 ww8 ->
-                 Language.Fixpoint.Types.Solutions.EQL ww6 ww7 ww8 } }) -}
-a1f5e82989acb0155964bd9a0d97f303
-  eQual1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "eQual"#) -}
-3b233dd3e80aebd063a5304cfc8f74da
-  eQual10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "safeZip"#) -}
-c64a558c8d0d8ddef709d88ddd97760d
-  eQual2 :: GHC.Stack.Types.CallStack
-  {- Strictness: m2,
-     Unfolding: (GHC.Stack.Types.PushCallStack
-                   Language.Fixpoint.Types.Solutions.eQual10
-                   Language.Fixpoint.Types.Solutions.eQual3
-                   GHC.Stack.Types.EmptyCallStack) -}
-ea5b6d686762cc9fc1fe8ce40c5ace6d
-  eQual3 :: GHC.Stack.Types.SrcLoc
-  {- Strictness: m,
-     Unfolding: (GHC.Stack.Types.SrcLoc
-                   Language.Fixpoint.Types.Solutions.eQual9
-                   Language.Fixpoint.Types.Solutions.eQual8
-                   Language.Fixpoint.Types.Solutions.eQual7
-                   Language.Fixpoint.Types.Solutions.eQual6
-                   Language.Fixpoint.Types.Solutions.eQual5
-                   Language.Fixpoint.Types.Solutions.eQual6
-                   Language.Fixpoint.Types.Solutions.eQual4) -}
-dda4ae532dc427752d6d32232c3fd479
-  eQual4 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 48#) -}
-c203e56c7d78064589d9a7c5437f0aae
-  eQual5 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 26#) -}
-459f94d976108017d19664442e5f2764
-  eQual6 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 328#) -}
-aacd70a27f5a070c1f136dd200230546
-  eQual7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "src/Language/Fixpoint/Types/Solutions.hs"#) -}
-fbd0c82c7e905348b4bd2e746ffdb3aa
-  eQual8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Language.Fixpoint.Types.Solutions"#) -}
-445fa2653a19c74aeb59a9e09b47d056
-  eQual9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-92c0cefa906b0bd8c716086f4cf41bb4
-  emptyGMap ::
-    Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Solutions.GSolution
-  {- Arity: 1, Strictness: <S(SSSSS),1*U(U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.GSolution) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case case ww3 of wild {
-                        Data.HashMap.Base.Empty
-                        -> Data.HashMap.Base.Empty
-                             @ Language.Fixpoint.Types.Refinements.KVar
-                             @ (((Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort),
-                                 Language.Fixpoint.Types.Refinements.Expr),
-                                Language.Fixpoint.Types.Solutions.GBind)
-                        Data.HashMap.Base.BitmapIndexed dt dt1
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar
-                                      (((Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort),
-                                        Language.Fixpoint.Types.Refinements.Expr),
-                                       Language.Fixpoint.Types.Solutions.GBind))
-                                 dt1
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind)))
-                                  GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Solutions.$wgo3
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     dt1)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds1 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  ds2
-                                  ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.BitmapIndexed
-                             @ Language.Fixpoint.Types.Refinements.KVar
-                             @ (((Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort),
-                                 Language.Fixpoint.Types.Refinements.Expr),
-                                Language.Fixpoint.Types.Solutions.GBind)
-                             dt
-                             ipv5 } } } }
-                        Data.HashMap.Base.Leaf dt dt1 dt2
-                        -> case dt2 of wild1 { (,) x ds ->
-                           Data.HashMap.Base.Leaf
-                             @ Language.Fixpoint.Types.Refinements.KVar
-                             @ (((Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort),
-                                 Language.Fixpoint.Types.Refinements.Expr),
-                                Language.Fixpoint.Types.Solutions.GBind)
-                             dt
-                             dt1
-                             (x,
-                              (GHC.Types.[] @ [Language.Fixpoint.Types.Solutions.EQual])
-                                `cast`
-                              (Sym (Language.Fixpoint.Types.Solutions.N:GBind[0]))) }
-                        Data.HashMap.Base.Full dt
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.HashMap
-                                      Language.Fixpoint.Types.Refinements.KVar
-                                      (((Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort),
-                                        Language.Fixpoint.Types.Refinements.Expr),
-                                       Language.Fixpoint.Types.Solutions.GBind))
-                                 dt
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind)))
-                                  GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Solutions.$wgo2
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     dt)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.HashMap
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds1 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.HashMap
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  ds2
-                                  ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.Full
-                             @ Language.Fixpoint.Types.Refinements.KVar
-                             @ (((Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort),
-                                 Language.Fixpoint.Types.Refinements.Expr),
-                                Language.Fixpoint.Types.Solutions.GBind)
-                             ipv5 } } } }
-                        Data.HashMap.Base.Collision dt dt1
-                        -> let {
-                             wild2 :: GHC.Prim.Int#
-                             = GHC.Prim.sizeofArray#
-                                 @ (Data.HashMap.Base.Leaf
-                                      Language.Fixpoint.Types.Refinements.KVar
-                                      (((Language.Fixpoint.Types.Names.Symbol,
-                                         Language.Fixpoint.Types.Sorts.Sort),
-                                        Language.Fixpoint.Types.Refinements.Expr),
-                                       Language.Fixpoint.Types.Solutions.GBind))
-                                 dt1
-                           } in
-                           case GHC.Prim.newArray#
-                                  @ (Data.HashMap.Base.Leaf
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  @ GHC.Prim.RealWorld
-                                  wild2
-                                  (Data.HashMap.Array.undefinedElem
-                                     @ (Data.HashMap.Base.Leaf
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind)))
-                                  GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                           case Language.Fixpoint.Types.Solutions.$wgo1
-                                  @ GHC.Prim.RealWorld
-                                  (Data.HashMap.Array.Array
-                                     @ (Data.HashMap.Base.Leaf
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     dt1)
-                                  (Data.HashMap.Array.$WMArray
-                                     @ GHC.Prim.RealWorld
-                                     @ (Data.HashMap.Base.Leaf
-                                          Language.Fixpoint.Types.Refinements.KVar
-                                          (((Language.Fixpoint.Types.Names.Symbol,
-                                             Language.Fixpoint.Types.Sorts.Sort),
-                                            Language.Fixpoint.Types.Refinements.Expr),
-                                           Language.Fixpoint.Types.Solutions.GBind))
-                                     ipv1)
-                                  0#
-                                  wild2
-                                  ipv of ds1 { (#,#) ipv2 ipv3 ->
-                           case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                           case GHC.Prim.unsafeFreezeArray#
-                                  @ GHC.Prim.RealWorld
-                                  @ (Data.HashMap.Base.Leaf
-                                       Language.Fixpoint.Types.Refinements.KVar
-                                       (((Language.Fixpoint.Types.Names.Symbol,
-                                          Language.Fixpoint.Types.Sorts.Sort),
-                                         Language.Fixpoint.Types.Refinements.Expr),
-                                        Language.Fixpoint.Types.Solutions.GBind))
-                                  ds2
-                                  ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                           Data.HashMap.Base.Collision
-                             @ Language.Fixpoint.Types.Refinements.KVar
-                             @ (((Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Sorts.Sort),
-                                 Language.Fixpoint.Types.Refinements.Expr),
-                                Language.Fixpoint.Types.Solutions.GBind)
-                             dt
-                             ipv5 } } } } } of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ (((Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Sorts.Sort),
-                       Language.Fixpoint.Types.Refinements.Expr),
-                      Language.Fixpoint.Types.Solutions.GBind)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   ww1
-                   ww2
-                   dt
-                   ww4
-                   ww5 } }) -}
-0acf1889af3863be1ebc2607e6b40292
-  envBinds ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Solutions.CMap
-         Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLL),1*U(A,A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds4 }) -}
-d35f70f764e998692d7a425fe2dee24f
-  envSorts ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLS),1*U(A,A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds6 }) -}
-b8a267705374349a2f980badfdc5694a
-  envTx ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Solutions.CMap
-         [Language.Fixpoint.Types.Constraints.SubcId]
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSL),1*U(A,A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds5 }) -}
-f4224b5f1cdddeabb689ccc6f25e105a
-  eqPred ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Solutions.EQual
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.EQL ds1 ds2 ds3 ->
-                 ds2 }) -}
-a1eea7d66b334a8ef0e99eeb595abc8f
-  equalsGb ::
-    [[Language.Fixpoint.Types.Solutions.EQual]]
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataGBind2
-                  `cast`
-                (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-5ee336afe6bc1f0c40109c6e7f4f6826
-  fromList ::
-    Language.Fixpoint.Types.Environments.SEnv
-      Language.Fixpoint.Types.Sorts.Sort
-    -> [(Language.Fixpoint.Types.Refinements.KVar, a)]
-    -> [(Language.Fixpoint.Types.Refinements.KVar, b)]
-    -> [(Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Solutions.Hyp)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Environments.IBindEnv
-    -> Language.Fixpoint.Types.Solutions.Sol a b
-  {- Arity: 4, Strictness: <L,U><L,1*U><L,1*U><L,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   (env :: Language.Fixpoint.Types.Environments.SEnv
-                             Language.Fixpoint.Types.Sorts.Sort)
-                   (kGs :: [(Language.Fixpoint.Types.Refinements.KVar, a)])
-                   (kXs :: [(Language.Fixpoint.Types.Refinements.KVar, b)])
-                   (kYs :: [(Language.Fixpoint.Types.Refinements.KVar,
-                             Language.Fixpoint.Types.Solutions.Hyp)]) ->
-                 Language.Fixpoint.Types.Solutions.$WSol
-                   @ a
-                   @ b
-                   env
-                   (Language.Fixpoint.Types.Solutions.$sfromList @ b kXs)
-                   (Language.Fixpoint.Types.Solutions.$sfromList @ a kGs)
-                   (Language.Fixpoint.Types.Solutions.$sfromList
-                      @ [Language.Fixpoint.Types.Solutions.Cube]
-                      kYs)) -}
-82947ed07d3651a7fb9e2bc24a14d8d8
-  gMap ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar b
-  RecSel Left Language.Fixpoint.Types.Solutions.Sol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ b @ a (ds :: Language.Fixpoint.Types.Solutions.Sol b a) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                 ds3 }) -}
-7841b0490393d681b0289070301ff4e6
-  gbEquals ::
-    Language.Fixpoint.Types.Solutions.GBind
-    -> [[Language.Fixpoint.Types.Solutions.EQual]]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.gbEquals1
-                  `cast`
-                (<Language.Fixpoint.Types.Solutions.GBind>_R
-                 ->_R Language.Fixpoint.Types.Solutions.N:GBind[0]) -}
-7b9246d3031bffbcdb2467f3e8493305
-  gbEquals1 ::
-    Language.Fixpoint.Types.Solutions.GBind
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.GBind) -> ds) -}
-333a69bee82727014ec4869516c8bfda
-  gbFilterM ::
-    GHC.Base.Monad m =>
-    ([Language.Fixpoint.Types.Solutions.EQual] -> m GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Solutions.GBind
-    -> m Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(SLLLL),1*U(1*U,A,A,A,A)><L,C(U)><L,1*U>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: [Language.Fixpoint.Types.Solutions.EQual]
-                           -> m GHC.Types.Bool)
-                   (eta1 :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 let {
-                   $dApplicative :: GHC.Base.Applicative m
-                   = GHC.Base.$p1Monad @ m $dMonad
-                 } in
-                 let {
-                   lvl35 :: GHC.Base.Functor m
-                   = GHC.Base.$p1Applicative @ m $dApplicative
-                 } in
-                 GHC.Base.fmap
-                   @ m
-                   lvl35
-                   @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                   @ Language.Fixpoint.Types.Solutions.GBind
-                   Language.Fixpoint.Types.Solutions.$fDataGBind2
-                     `cast`
-                   (<[[Language.Fixpoint.Types.Solutions.EQual]]>_R
-                    ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0]))
-                   (let {
-                      z :: m [[Language.Fixpoint.Types.Solutions.EQual]]
-                      = GHC.Base.pure
-                          @ m
-                          $dApplicative
-                          @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                          (GHC.Types.[] @ [Language.Fixpoint.Types.Solutions.EQual])
-                    } in
-                    letrec {
-                      go2 :: [[Language.Fixpoint.Types.Solutions.EQual]]
-                             -> m [[Language.Fixpoint.Types.Solutions.EQual]]
-                        {- Arity: 1, Strictness: <S,1*U> -}
-                      = \ (ds :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                        case ds of wild {
-                          [] -> z
-                          : y ys
-                          -> GHC.Base.<*>
-                               @ m
-                               $dApplicative
-                               @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                               @ [[Language.Fixpoint.Types.Solutions.EQual]]
-                               (GHC.Base.fmap
-                                  @ m
-                                  lvl35
-                                  @ GHC.Types.Bool
-                                  @ ([[Language.Fixpoint.Types.Solutions.EQual]]
-                                     -> [[Language.Fixpoint.Types.Solutions.EQual]])
-                                  (\ (flg :: GHC.Types.Bool)
-                                     (eta2 :: [[Language.Fixpoint.Types.Solutions.EQual]]) ->
-                                   case flg of wild1 {
-                                     GHC.Types.False -> eta2
-                                     GHC.Types.True
-                                     -> GHC.Types.:
-                                          @ [Language.Fixpoint.Types.Solutions.EQual]
-                                          y
-                                          eta2 })
-                                  (eta y))
-                               (go2 ys) }
-                    } in
-                    go2 eta1 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0]))) -}
-4e8aa7c592b46e3af55fec68c7aa3261
-  gbToQbs ::
-    Language.Fixpoint.Types.Solutions.GBind
-    -> [Language.Fixpoint.Types.Solutions.QBind]
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.GBind) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Solutions.N:GBind[0]) of wild {
-                   [] -> Language.Fixpoint.Types.Solutions.gbToQbs1
-                   : ipv ipv1
-                   -> wild
-                        `cast`
-                      ([Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])])_R }) -}
-59ad8853cd45bc237830be72aad18dd1
-  gbToQbs1 :: [Language.Fixpoint.Types.Solutions.QBind]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   Language.Fixpoint.Types.Solutions.gbToQbs2
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Solutions.N:QBind[0]))
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Solutions.QBind)) -}
-b74bea1090d29c9950c69ed93f8a4a41
-  gbToQbs2 :: [Language.Fixpoint.Types.Solutions.EQual]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   Language.Fixpoint.Types.Solutions.trueEqual
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Solutions.EQual)) -}
-a9f72c61ea808aa3d6c9cff88a372e9b
-  glookup ::
-    Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Refinements.KVar
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         (Data.Either.Either
-            Language.Fixpoint.Types.Solutions.QBind
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-  {- Arity: 2,
-     Strictness: <S(LSSSL),1*U(A,U,U,U,A)><S(LS(SSS)L),1*U(U,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.GSolution)
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case w1
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 Language.Fixpoint.Types.Solutions.$wglookup
-                   ww2
-                   ww3
-                   ww4
-                   ww7
-                   ww11
-                   ww12
-                   ww13 } } }) -}
-4b3cd5411ad06ba48bf2818928949eed
-  glookup1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         (Data.Either.Either
-            Language.Fixpoint.Types.Solutions.QBind
-            (((Language.Fixpoint.Types.Names.Symbol,
-               Language.Fixpoint.Types.Sorts.Sort),
-              Language.Fixpoint.Types.Refinements.Expr),
-             Language.Fixpoint.Types.Solutions.GBind))
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>x -}
-1a596f9ee9b7852d081c32cc08169528
-  kiBIndex ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Environments.BindId
-  RecSel Left Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.KIndex dt dt1 ds1 ->
-                 GHC.Types.I# dt }) -}
-87d73300ad5153e4bb301e642b9865d5
-  kiKVar ::
-    Language.Fixpoint.Types.Solutions.KIndex
-    -> Language.Fixpoint.Types.Refinements.KVar
-  RecSel Left Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.KIndex dt dt1 ds1 ->
-                 ds1 }) -}
-1fbca235056ed157fabe42e412083eba
-  kiPos :: Language.Fixpoint.Types.Solutions.KIndex -> GHC.Types.Int
-  RecSel Left Language.Fixpoint.Types.Solutions.KIndex
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.KIndex) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.KIndex dt dt1 ds1 ->
-                 GHC.Types.I# dt1 }) -}
-aded7227bae8de6f2424a319cf4f77da
-  kvDef ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Refinements.KVar
-       Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Solutions.Hyp
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLL),1*U(A,A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds3 }) -}
-0c8c788cc2a8f228a4d52583d80a9ad5
-  kvUse ::
-    Language.Fixpoint.Types.Solutions.Index
-    -> Language.Fixpoint.Types.Solutions.KIndex
-       Language.Fixpoint.Misc.|-> Language.Fixpoint.Types.Refinements.KVSub
-  RecSel Left Language.Fixpoint.Types.Solutions.Index
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLL),1*U(A,U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.Index) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.FastIdx ds1 ds2 ds3 ds4 ds5 ds6 ->
-                 ds2 }) -}
-2848f247fbf1b30f1a97706f940167d1
-  lookup ::
-    Language.Fixpoint.Types.Solutions.Sol
-      a Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Refinements.KVar
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 2,
-     Strictness: <S(LSLSL),1*U(A,U,A,U,A)><S(LS(SSS)L),1*U(U,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case w1
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 Language.Fixpoint.Types.Solutions.$wlookup
-                   @ a
-                   ww2
-                   ww4
-                   ww7
-                   ww11
-                   ww12
-                   ww13 } } }) -}
-6bad835b31e70415b008925f8d77eef5
-  lookup1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> Data.Either.Either
-         Language.Fixpoint.Types.Solutions.Hyp
-         Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 3, Strictness: <L,U><L,U><L,U>x -}
-02bfd5983256e2f7d7024c264dfcc4f9
-  lookupQBind ::
-    Language.Fixpoint.Types.Solutions.Sol
-      a Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Refinements.KVar
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LSLLL),1*U(A,U,A,A,A)><S(LS(SSS)L),1*U(U,U(U,U,U),A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case w1
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 Language.Fixpoint.Types.Solutions.$wlookupQBind
-                   @ a
-                   ww2
-                   ww7
-                   ww11
-                   ww12
-                   ww13 } } }) -}
-897bfa04139ac9486b855ccba6f1cc7c
-  qb ::
-    [Language.Fixpoint.Types.Solutions.EQual]
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.$fDataQBind2
-                  `cast`
-                (<[Language.Fixpoint.Types.Solutions.EQual]>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-c86c4e749145841bd4676d837bbc75f1
-  qbFilter ::
-    (Language.Fixpoint.Types.Solutions.EQual -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.QBind
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (GHC.List.filter @ Language.Fixpoint.Types.Solutions.EQual)
-                  `cast`
-                (<Language.Fixpoint.Types.Solutions.EQual -> GHC.Types.Bool>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-ee53cb8d2b8872c615fcdd1168450ebc
-  qbPreds ::
-    GHC.Base.String
-    -> Language.Fixpoint.Types.Solutions.Sol
-         a Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Solutions.QBind
-    -> [(Language.Fixpoint.Types.Refinements.Pred,
-         Language.Fixpoint.Types.Solutions.EQual)]
-  {- Arity: 4, Strictness: <L,U><L,1*U(U,A,A,A,A)><L,U><S,1*U>,
-     Unfolding: (\ @ a
-                   (msg :: GHC.Base.String)
-                   (s :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind)
-                   (su :: Language.Fixpoint.Types.Refinements.Subst)
-                   (ds :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 let {
-                   elabPred :: [GHC.Types.Char]
-                   = GHC.CString.unpackAppendCString# "qbPreds:"# msg
-                 } in
-                 let {
-                   elabPred1 :: Language.Fixpoint.Types.Environments.SEnv
-                                  Language.Fixpoint.Types.Sorts.Sort
-                   = case s of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                     ds1 }
-                 } in
-                 letrec {
-                   go2 :: [Language.Fixpoint.Types.Solutions.EQual]
-                          -> [(Language.Fixpoint.Types.Refinements.Pred,
-                               Language.Fixpoint.Types.Solutions.EQual)]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds1 :: [Language.Fixpoint.Types.Solutions.EQual]) ->
-                     case ds1 of wild {
-                       []
-                       -> GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Refinements.Pred,
-                               Language.Fixpoint.Types.Solutions.EQual)
-                       : y ys
-                       -> GHC.Types.:
-                            @ (Language.Fixpoint.Types.Refinements.Pred,
-                               Language.Fixpoint.Types.Solutions.EQual)
-                            (Language.Fixpoint.SortCheck.$fElaborateExpr_$celaborate
-                               elabPred
-                               elabPred1
-                               (case y of wild1 { Language.Fixpoint.Types.Solutions.EQL ds2 ds3 ds4 ->
-                                Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                  su
-                                  ds3 }),
-                             y)
-                            (go2 ys) }
-                 } in
-                 go2 ds `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0])) -}
-34418e359e9e7942b4cc6e47055f11f0
-  qbToGb ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Solutions.GBind
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Solutions.qbToGb1
-                  `cast`
-                (<Language.Fixpoint.Types.Solutions.QBind>_R
-                 ->_R Sym (Language.Fixpoint.Types.Solutions.N:GBind[0])) -}
-c64e5a60bca2d44f912e7b2b3618582d
-  qbToGb1 ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> [[Language.Fixpoint.Types.Solutions.EQual]]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 GHC.Base.build
-                   @ [Language.Fixpoint.Types.Solutions.EQual]
-                   (\ @ b1
-                      (c :: [Language.Fixpoint.Types.Solutions.EQual]
-                            -> b1 -> b1)[OneShot]
-                      (n :: b1)[OneShot] ->
-                    GHC.Base.foldr
-                      @ Language.Fixpoint.Types.Solutions.EQual
-                      @ b1
-                      (GHC.Base.mapFB
-                         @ [Language.Fixpoint.Types.Solutions.EQual]
-                         @ b1
-                         @ Language.Fixpoint.Types.Solutions.EQual
-                         c
-                         Language.Fixpoint.Types.Solutions.qbToGb2)
-                      n
-                      ds `cast` (Language.Fixpoint.Types.Solutions.N:QBind[0]))) -}
-6b9d352314d5363b5b99231f9095abd8
-  qbToGb2 ::
-    Language.Fixpoint.Types.Solutions.EQual
-    -> [Language.Fixpoint.Types.Solutions.EQual]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Solutions.EQual) ->
-                 GHC.Types.:
-                   @ Language.Fixpoint.Types.Solutions.EQual
-                   ds
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Solutions.EQual)) -}
-c7035a98aefbbb2d3ba288ebc07d1dd0
-  result ::
-    Language.Fixpoint.Types.Solutions.Sol
-      a Language.Fixpoint.Types.Solutions.QBind
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <S(SSSSS),1*U(U,U,U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   (s :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind) ->
-                 case Language.Fixpoint.Types.Solutions.$fFunctorSol_$cfmap
-                        @ a
-                        @ Language.Fixpoint.Types.Solutions.QBind
-                        @ Language.Fixpoint.Types.Refinements.Pred
-                        Language.Fixpoint.Types.Solutions.result1
-                        s of wild { Language.Fixpoint.Types.Solutions.Sol ds ds1 ds2 ds3 ds4 ->
-                 ds1 }) -}
-fe19af1b8d38054e2f7f8e64091dfe5b
-  result1 ::
-    Language.Fixpoint.Types.Solutions.QBind
-    -> Language.Fixpoint.Types.Refinements.Pred
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Solutions.QBind) ->
-                 case GHC.Base.build
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        (\ @ b1
-                           (c :: Language.Fixpoint.Types.Refinements.Expr
-                                 -> b1 -> b1)[OneShot]
-                           (n :: b1)[OneShot] ->
-                         GHC.Base.foldr
-                           @ Language.Fixpoint.Types.Solutions.EQual
-                           @ b1
-                           (GHC.Base.mapFB
-                              @ Language.Fixpoint.Types.Refinements.Expr
-                              @ b1
-                              @ Language.Fixpoint.Types.Solutions.EQual
-                              c
-                              Language.Fixpoint.Types.Solutions.eqPred)
-                           n
-                           x `cast`
-                           (Language.Fixpoint.Types.Solutions.N:QBind[0])) of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                   (Language.Fixpoint.Types.Refinements.PAnd dt) }) -}
-f4523f3b125a3fbd98f78e2fc3ff707d
-  resultGradual ::
-    Language.Fixpoint.Types.Solutions.GSolution
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (Language.Fixpoint.Types.Refinements.Expr,
-          [Language.Fixpoint.Types.Refinements.Expr])
-  {- Arity: 1, Strictness: <S(LLSLL),1*U(A,A,U,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Solutions.GSolution) ->
-                 case w of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case ww3 of wild {
-                   Data.HashMap.Base.Empty
-                   -> Data.HashMap.Base.Empty
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Refinements.KVar
-                                 (((Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort),
-                                   Language.Fixpoint.Types.Refinements.Expr),
-                                  Language.Fixpoint.Types.Solutions.GBind))
-                            dt1
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr])))
-                             GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Types.Solutions.$wgo6
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (((Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Sorts.Sort),
-                                       Language.Fixpoint.Types.Refinements.Expr),
-                                      Language.Fixpoint.Types.Solutions.GBind))
-                                dt1)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr]))
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds1 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             ds2
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.BitmapIndexed
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                        dt
-                        ipv5 } } } }
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> Data.HashMap.Base.Leaf
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                        dt
-                        dt1
-                        (Language.Fixpoint.Types.Solutions.resultGradual1 dt2)
-                   Data.HashMap.Base.Full dt
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.HashMap
-                                 Language.Fixpoint.Types.Refinements.KVar
-                                 (((Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort),
-                                   Language.Fixpoint.Types.Refinements.Expr),
-                                  Language.Fixpoint.Types.Solutions.GBind))
-                            dt
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr])))
-                             GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Types.Solutions.$wgo5
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (((Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Sorts.Sort),
-                                       Language.Fixpoint.Types.Refinements.Expr),
-                                      Language.Fixpoint.Types.Solutions.GBind))
-                                dt)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.HashMap
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr]))
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds1 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.HashMap
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             ds2
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.Full
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                        ipv5 } } } }
-                   Data.HashMap.Base.Collision dt dt1
-                   -> let {
-                        wild2 :: GHC.Prim.Int#
-                        = GHC.Prim.sizeofArray#
-                            @ (Data.HashMap.Base.Leaf
-                                 Language.Fixpoint.Types.Refinements.KVar
-                                 (((Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Sorts.Sort),
-                                   Language.Fixpoint.Types.Refinements.Expr),
-                                  Language.Fixpoint.Types.Solutions.GBind))
-                            dt1
-                      } in
-                      case GHC.Prim.newArray#
-                             @ (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             @ GHC.Prim.RealWorld
-                             wild2
-                             (Data.HashMap.Array.undefinedElem
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr])))
-                             GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                      case Language.Fixpoint.Types.Solutions.$wgo4
-                             @ GHC.Prim.RealWorld
-                             (Data.HashMap.Array.Array
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (((Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Sorts.Sort),
-                                       Language.Fixpoint.Types.Refinements.Expr),
-                                      Language.Fixpoint.Types.Solutions.GBind))
-                                dt1)
-                             (Data.HashMap.Array.$WMArray
-                                @ GHC.Prim.RealWorld
-                                @ (Data.HashMap.Base.Leaf
-                                     Language.Fixpoint.Types.Refinements.KVar
-                                     (Language.Fixpoint.Types.Refinements.Expr,
-                                      [Language.Fixpoint.Types.Refinements.Expr]))
-                                ipv1)
-                             0#
-                             wild2
-                             ipv of ds1 { (#,#) ipv2 ipv3 ->
-                      case ipv3 of wild1 { Data.HashMap.Array.MArray ds2 ->
-                      case GHC.Prim.unsafeFreezeArray#
-                             @ GHC.Prim.RealWorld
-                             @ (Data.HashMap.Base.Leaf
-                                  Language.Fixpoint.Types.Refinements.KVar
-                                  (Language.Fixpoint.Types.Refinements.Expr,
-                                   [Language.Fixpoint.Types.Refinements.Expr]))
-                             ds2
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      Data.HashMap.Base.Collision
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        @ (Language.Fixpoint.Types.Refinements.Expr,
-                           [Language.Fixpoint.Types.Refinements.Expr])
-                        dt
-                        ipv5 } } } } } }) -}
-aa1568bc0da7dde9165ec7ee5fe89c71
-  resultGradual1 ::
-    (((Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Sorts.Sort),
-      Language.Fixpoint.Types.Refinements.Expr),
-     Language.Fixpoint.Types.Solutions.GBind)
-    -> (Language.Fixpoint.Types.Refinements.Expr,
-        [Language.Fixpoint.Types.Refinements.Expr])
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(1*U(A,U),1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: (((Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Sorts.Sort),
-                           Language.Fixpoint.Types.Refinements.Expr),
-                          Language.Fixpoint.Types.Solutions.GBind)) ->
-                 case w of ww { (,) ww1 ww2 ->
-                 case ww1 of ww3 { (,) ww4 ww5 ->
-                 (ww5,
-                  Language.Fixpoint.Types.Solutions.resultGradual_go
-                    ww2 `cast` (Language.Fixpoint.Types.Solutions.N:GBind[0])) } }) -}
-809bec9c7d3ff3e3c9374886bc7ceb5a
-  resultGradual_go ::
-    [[Language.Fixpoint.Types.Solutions.EQual]]
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-d23bc0542d4f553904c83bd3771d1f80
-  sEnv ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Language.Fixpoint.Types.Environments.SEnv
-         Language.Fixpoint.Types.Sorts.Sort
-  RecSel Left Language.Fixpoint.Types.Solutions.Sol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLLLL),1*U(U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ b @ a (ds :: Language.Fixpoint.Types.Solutions.Sol b a) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                 ds1 }) -}
-49e0f5513a84ec749f207992aa31d91c
-  sHyp ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Solutions.Hyp
-  RecSel Left Language.Fixpoint.Types.Solutions.Sol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLSL),1*U(A,A,A,U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ b @ a (ds :: Language.Fixpoint.Types.Solutions.Sol b a) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                 ds4 }) -}
-721cc05f1513c44f59e27700aacfb60d
-  sMap ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar a
-  RecSel Left Language.Fixpoint.Types.Solutions.Sol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSLLL),1*U(A,U,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ b @ a (ds :: Language.Fixpoint.Types.Solutions.Sol b a) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                 ds2 }) -}
-1351dc93ff0aff4b607b457fc5e7a087
-  sScp ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         Language.Fixpoint.Types.Environments.IBindEnv
-  RecSel Left Language.Fixpoint.Types.Solutions.Sol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLLLS),1*U(A,A,A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ b @ a (ds :: Language.Fixpoint.Types.Solutions.Sol b a) ->
-                 case ds of wild { Language.Fixpoint.Types.Solutions.Sol ds1 ds2 ds3 ds4 ds5 ->
-                 ds5 }) -}
-c1f46126190794b254239bca5fe702af
-  trueEqual :: Language.Fixpoint.Types.Solutions.EQual
-  {- Unfolding: (case Language.Fixpoint.Types.Constraints.trueQual of dt { Language.Fixpoint.Types.Constraints.Q ipv ipv1 ipv2 ipv3 ->
-                 Language.Fixpoint.Types.Solutions.EQL
-                   dt
-                   Language.Fixpoint.Types.Refinements.$bPTop
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr) }) -}
-4ee25b98e93e86f189e02ab7e64de90e
-  update ::
-    Language.Fixpoint.Types.Solutions.Sol
-      a Language.Fixpoint.Types.Solutions.QBind
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> [(Language.Fixpoint.Types.Refinements.KVar,
-         Language.Fixpoint.Types.Solutions.EQual)]
-    -> (GHC.Types.Bool,
-        Language.Fixpoint.Types.Solutions.Sol
-          a Language.Fixpoint.Types.Solutions.QBind)
-  {- Arity: 3, Strictness: <L,U(U,U,U,U,U)><L,1*U><L,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Solutions.Sol
-                           a Language.Fixpoint.Types.Solutions.QBind)
-                   (w1 :: [Language.Fixpoint.Types.Refinements.KVar])
-                   (w2 :: [(Language.Fixpoint.Types.Refinements.KVar,
-                            Language.Fixpoint.Types.Solutions.EQual)]) ->
-                 case Language.Fixpoint.Types.Solutions.$wupdate
-                        @ a
-                        w
-                        w1
-                        w2 of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2) }) -}
-ec5b4ed95ee6f2d8b835b53ee829426b
-  update1 ::
-    (([GHC.Types.Bool],
-      Language.Fixpoint.Types.Solutions.Sol
-        a Language.Fixpoint.Types.Solutions.QBind)
-     -> ([GHC.Types.Bool],
-         Language.Fixpoint.Types.Solutions.Sol
-           a Language.Fixpoint.Types.Solutions.QBind))
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         [Language.Fixpoint.Types.Solutions.EQual]
-    -> ([GHC.Types.Bool],
-        Language.Fixpoint.Types.Solutions.Sol
-          a Language.Fixpoint.Types.Solutions.QBind)
-    -> ([GHC.Types.Bool],
-        Language.Fixpoint.Types.Solutions.Sol
-          a Language.Fixpoint.Types.Solutions.QBind)
-  {- Arity: 3, Strictness: <L,1*U><S,1*U><L,U(U,U(U,U,U,U,U))> -}
-9799048a8ec1338ed2d1c6863fdb35eb
-  updateGMap ::
-    Language.Fixpoint.Types.Solutions.Sol b a
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar b
-    -> Language.Fixpoint.Types.Solutions.Sol b a
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SSLSS),1*U(U,U,A,U,U)><S,1*U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ b
-                   @ a
-                   (sol :: Language.Fixpoint.Types.Solutions.Sol b a)
-                   (gmap :: Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Refinements.KVar b) ->
-                 case sol of wild { Language.Fixpoint.Types.Solutions.Sol ds ds1 ds2 ds3 ds4 ->
-                 case gmap of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ b
-                   @ a
-                   ds
-                   ds1
-                   dt
-                   ds3
-                   ds4 } }) -}
-60b188fabce9b3ef75fb71f6f0832931
-  updateGMapWithKey ::
-    [(Language.Fixpoint.Types.Refinements.KVar,
-      Language.Fixpoint.Types.Solutions.QBind)]
-    -> Language.Fixpoint.Types.Solutions.GSolution
-    -> Language.Fixpoint.Types.Solutions.GSolution
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,1*U><S(SSSSS),1*U(U,U,U,U,U)>m, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: [(Language.Fixpoint.Types.Refinements.KVar,
-                           Language.Fixpoint.Types.Solutions.QBind)])
-                   (w1 :: Language.Fixpoint.Types.Solutions.GSolution) ->
-                 case w1 of ww { Language.Fixpoint.Types.Solutions.Sol ww1 ww2 ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Solutions.updateGMapWithKey_go
-                        w
-                        ww3 of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Solutions.Sol
-                   @ (((Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Sorts.Sort),
-                       Language.Fixpoint.Types.Refinements.Expr),
-                      Language.Fixpoint.Types.Solutions.GBind)
-                   @ Language.Fixpoint.Types.Solutions.QBind
-                   ww1
-                   ww2
-                   dt
-                   ww4
-                   ww5 } }) -}
-345c70888bbdd49761965ef4a122f2d1
-  updateGMapWithKey_go ::
-    [(Language.Fixpoint.Types.Refinements.KVar,
-      Language.Fixpoint.Types.Solutions.QBind)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind)
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         (((Language.Fixpoint.Types.Names.Symbol,
-            Language.Fixpoint.Types.Sorts.Sort),
-           Language.Fixpoint.Types.Refinements.Expr),
-          Language.Fixpoint.Types.Solutions.GBind)
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U> -}
-3e439e3fe559dfde4f6737e038b431f0
-  update_go :: [GHC.Types.Bool] -> Data.Monoid.Any
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-fb3b0dd9610f54926a3f24faf2f3fdf5
-  update_go1 ::
-    [Language.Fixpoint.Types.Refinements.KVar]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         [Language.Fixpoint.Types.Solutions.EQual]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar
-         [Language.Fixpoint.Types.Solutions.EQual]
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-instance Data.Data.Data [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fDataEQual
-instance Data.Data.Data [Language.Fixpoint.Types.Solutions.GBind]
-  = Language.Fixpoint.Types.Solutions.$fDataGBind
-instance Data.Data.Data [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fDataQBind
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fEqBIndex
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fEqEQual
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fEqKIndex
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fEqQBind
-instance GHC.Base.Functor [Language.Fixpoint.Types.Solutions.Sol]
-  = Language.Fixpoint.Types.Solutions.$fFunctorSol
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fGenericBIndex
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fGenericEQual
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Solutions.GBind]
-  = Language.Fixpoint.Types.Solutions.$fGenericGBind
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fGenericKIndex
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fGenericQBind
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fHashableBIndex
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fHashableKIndex
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Solutions.Sol]
-  = Language.Fixpoint.Types.Solutions.$fMonoidSol
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fNFDataEQual
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Solutions.GBind]
-  = Language.Fixpoint.Types.Solutions.$fNFDataGBind
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fNFDataQBind
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fOrdBIndex
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fOrdKIndex
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fPPrintBIndex
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.BindPred]
-  = Language.Fixpoint.Types.Solutions.$fPPrintBindPred
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.Cube]
-  = Language.Fixpoint.Types.Solutions.$fPPrintCube
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fPPrintEQual
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fPPrintKIndex
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fPPrintQBind
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Solutions.Sol]
-  = Language.Fixpoint.Types.Solutions.$fPPrintSol
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.$fShowBIndex
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.BindPred]
-  = Language.Fixpoint.Types.Solutions.$fShowBindPred
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.Cube]
-  = Language.Fixpoint.Types.Solutions.$fShowCube
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.$fShowEQual
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.GBind]
-  = Language.Fixpoint.Types.Solutions.$fShowGBind
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.$fShowKIndex
-instance GHC.Show.Show [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.$fShowQBind
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Solutions.BIndex]
-  = Language.Fixpoint.Types.Solutions.Rep_BIndex
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Solutions.KIndex]
-  = Language.Fixpoint.Types.Solutions.Rep_KIndex
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Solutions.QBind]
-  = Language.Fixpoint.Types.Solutions.Rep_QBind
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Solutions.GBind]
-  = Language.Fixpoint.Types.Solutions.Rep_GBind
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Solutions.EQual]
-  = Language.Fixpoint.Types.Solutions.Rep_EQual
-"SPEC/Language.Fixpoint.Types.Solutions $fData[] @ EQual" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                       Language.Fixpoint.Types.Solutions.EQual)
-  Data.Data.$fData[] @ Language.Fixpoint.Types.Solutions.EQual $dData
-  = Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]1
-"SPEC/Language.Fixpoint.Types.Solutions $fData[] @ [EQual]" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                         [Language.Fixpoint.Types.Solutions.EQual])
-  Data.Data.$fData[] @ [Language.Fixpoint.Types.Solutions.EQual]
-                     $dData
-  = Language.Fixpoint.Types.Solutions.$fDataGBind_$s$fData[]
-"SPEC/Language.Fixpoint.Types.Solutions $fEq[] @ EQual" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                   Language.Fixpoint.Types.Solutions.EQual)
-  GHC.Classes.$fEq[] @ Language.Fixpoint.Types.Solutions.EQual $dEq
-  = Language.Fixpoint.Types.Solutions.$s$fEq[]
-"SPEC/Language.Fixpoint.Types.Solutions $fEq[]_$c/= @ EQual" [ALWAYS] forall ($dEq :: GHC.Classes.Eq
-                                                                                        Language.Fixpoint.Types.Solutions.EQual)
-  GHC.Classes.$fEq[]_$c/= @ Language.Fixpoint.Types.Solutions.EQual
-                          $dEq
-  = Language.Fixpoint.Types.Solutions.$fEqQBind_$s$fEq[]_$c/=
-"SPEC/Language.Fixpoint.Types.Solutions fromList @ KVar _" [ALWAYS] forall @ v
-                                                                           ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                            Language.Fixpoint.Types.Refinements.KVar)
-                                                                           ($dEq :: GHC.Classes.Eq
-                                                                                      Language.Fixpoint.Types.Refinements.KVar)
-  Data.HashMap.Strict.fromList @ Language.Fixpoint.Types.Refinements.KVar
-                               @ v
-                               $dEq
-                               $dHashable
-  = Language.Fixpoint.Types.Solutions.$sfromList @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Sorts.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Sorts.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Sorts.dump-hi
+++ /dev/null
@@ -1,13136 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:00.087563 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts [family instance module] 8002
-  interface hash: 853d64b548b4d515bc345a4d1bac01fa
-  ABI hash: b5018989427724a1db790152ee79cb6f
-  export-list hash: c2522a8cb8fa0e99702ea4cacf9bcf96
-  orphan hash: 52b7b3857a03cee54523792d019d8807
-  flag hash: 5233216f1508d82b92884347b99f7a79
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Sorts.bitVecSort
-  Language.Fixpoint.Types.Sorts.bkFFunc
-  Language.Fixpoint.Types.Sorts.boolFTyCon
-  Language.Fixpoint.Types.Sorts.boolSort
-  Language.Fixpoint.Types.Sorts.fApp
-  Language.Fixpoint.Types.Sorts.fApp'
-  Language.Fixpoint.Types.Sorts.fAppTC
-  Language.Fixpoint.Types.Sorts.fObj
-  Language.Fixpoint.Types.Sorts.fTyconSort
-  Language.Fixpoint.Types.Sorts.fTyconSymbol
-  Language.Fixpoint.Types.Sorts.funcSort
-  Language.Fixpoint.Types.Sorts.functionSort
-  Language.Fixpoint.Types.Sorts.intFTyCon
-  Language.Fixpoint.Types.Sorts.intSort
-  Language.Fixpoint.Types.Sorts.isFirstOrder
-  Language.Fixpoint.Types.Sorts.isListTC
-  Language.Fixpoint.Types.Sorts.isNumeric
-  Language.Fixpoint.Types.Sorts.isReal
-  Language.Fixpoint.Types.Sorts.isString
-  Language.Fixpoint.Types.Sorts.listFTyCon
-  Language.Fixpoint.Types.Sorts.mapSort
-  Language.Fixpoint.Types.Sorts.mappendFTC
-  Language.Fixpoint.Types.Sorts.mkFFunc
-  Language.Fixpoint.Types.Sorts.numFTyCon
-  Language.Fixpoint.Types.Sorts.realFTyCon
-  Language.Fixpoint.Types.Sorts.realSort
-  Language.Fixpoint.Types.Sorts.setFTyCon
-  Language.Fixpoint.Types.Sorts.setSort
-  Language.Fixpoint.Types.Sorts.sortFTycon
-  Language.Fixpoint.Types.Sorts.sortSubst
-  Language.Fixpoint.Types.Sorts.strFTyCon
-  Language.Fixpoint.Types.Sorts.strSort
-  Language.Fixpoint.Types.Sorts.symbolFTycon
-  Language.Fixpoint.Types.Sorts.symbolNumInfoFTyCon
-  Language.Fixpoint.Types.Sorts.FTycon
-  Language.Fixpoint.Types.Sorts.Sort{Language.Fixpoint.Types.Sorts.FAbs Language.Fixpoint.Types.Sorts.FApp Language.Fixpoint.Types.Sorts.FFrac Language.Fixpoint.Types.Sorts.FFunc Language.Fixpoint.Types.Sorts.FInt Language.Fixpoint.Types.Sorts.FNum Language.Fixpoint.Types.Sorts.FObj Language.Fixpoint.Types.Sorts.FReal Language.Fixpoint.Types.Sorts.FTC Language.Fixpoint.Types.Sorts.FVar}
-  Language.Fixpoint.Types.Sorts.Sub{Language.Fixpoint.Types.Sorts.Sub}
-  Language.Fixpoint.Types.Sorts.TCEmb
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Spans
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Monoid 51cc9cd8c130d49ba96b7c2c2406022b
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Err 3bba35a16538d33d424682ce66876cdd
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  ListNE 245082d2e65bed4e03d6c17463d8b79a
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-  intersperse a8af56faf80774d73c5863a2e27859d2
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  LocSymbol 4a6c826b689fe9b6e8ce8f2d4ad897b2
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  bitVecName e733c9a4c9e40b0853f73957e759dbeb
-  listConName 4113185c856aab9be37cba78888b077d
-  listLConName 54dd753466623be0c46238bdbf5a223f
-  mapConName 27aaea04a10e9d7d92d914234f1660b7
-  setConName 1d0f81ce4f6d2857d0d0f587eedcb6c3
-  size32Name 9dde6f1d287cc6bef86214a3aec859d3
-  strConName 8f2d7586bedd92b3d2ca070cd9d9606e
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Spans 914694383547ac6e05961eac2448df52
-  exports: 7fe5850227a6e738b3508defc057da0b
-  Located 3326b791adf9e0911edd64707c0fed2a
-  dummyLoc 6a5341e3e7c769f139b8c25d5592734b
-  val a3c4cf7922f79de46237eef8822a75ce
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-d6c014da8497fb259ba5c8f06f6f1aa2
-  $c4nFqhwJhcOQ9KTF6rikmMx :: Data.Data.Constr
-8f67d4632134879ae5122cc51e9ebd92
-  $c5huMuApk3Mg6IO8Yr5Tk40 :: Data.Data.Constr
-0184105fd2ab7e4dda335b6d90e42991
-  $c6RYlUiMK23a3ay43to1Q26 :: Data.Data.Constr
-3124e712069299473ea88c379d9df448
-  $c6lryIfmwS5FAOU8SrFqaAP :: Data.Data.Constr
-32627db9da406667fc654cab6a283647
-  $cAmP4bmjQugfEdDULoh9L6m :: Data.Data.Constr
-f2f0c5113b0a90b44c613747ff695467
-  $cEIyDUkWRRxqDaYsseRDRc4 :: Data.Data.Constr
-8365c43e0d8d2fedefb42a08d50cedca
-  $cF7PH0YDpd8VEcavqEqEeb0 :: Data.Data.Constr
-e9c6c33f398c9718bc75ee5a401f1ea1
-  $cGvAdKY6exahIFmQDssmLiA :: Data.Data.Constr
-d234b60e6bf5008634f01915091caa81
-  $cH9G6wGw32zN6PiZhZZt4Aa :: Data.Data.Constr
-e9bd6727e35463b5fcaa3b19217325d3
-  $cHRtkDf9p9z36mwAQIrUTbo :: Data.Data.Constr
-86426a11a0550151f9353321389efdb0
-  $ckPMNhFPyi2JSxf5DN1EPJ :: Data.Data.Constr
-176a076c376e0259a5b0fc1848a619db
-  $cxFiV85AP1J0jr9lfm5fHg :: Data.Data.Constr
-402c177fc699f05dd97dbf4130d9008b
-  $fBinaryFTycon ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cput
-                  Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cget
-                  Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cputList -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinaryFTycon1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.FTycon r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Sorts.FTycon r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cget @ r ww1 ww2 ww3 ww4 w1 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinaryFTycon_$cget ::
-    Data.Binary.Get.Internal.Get Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fBinaryFTycon1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Sorts.FTycon>_R)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinaryFTycon_$cput ::
-    Language.Fixpoint.Types.Sorts.FTycon -> Data.Binary.Put.Put
-  {- Arity: 1,
-     Strictness: <S,1*U(1*U(U(1*U,U,U),U(1*U,U,U),U(A,U(U,U,1*U),A)),1*U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case Language.Fixpoint.Types.Sorts.$w$cput
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (Data.Binary.Put.PairS @ () ww4 ww5)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinaryFTycon_$cputList ::
-    [Language.Fixpoint.Types.Sorts.FTycon] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryFTycon_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Sorts.TCInfo x
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Sorts.TCInfo x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Sorts.Rep_TCInfo[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "TCInfo"
-                                        "Language.Fixpoint.Types.Sorts"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "tc_isNum")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "tc_isReal")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Bool)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "tc_isString")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Types.Bool)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "tc_isNum")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "tc_isReal")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.NoSourceStrictness
-                                                             'GHC.Generics.DecidedLazy)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R GHC.Types.Bool)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "tc_isString")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.NoSourceStrictness
-                                                                              'GHC.Generics.DecidedLazy)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              GHC.Types.Bool))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                 Language.Fixpoint.Types.Sorts.TCInfo
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "tc_isNum")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "tc_isReal")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "tc_isString")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P)) } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fBinarySort_$cput
-                  Language.Fixpoint.Types.Sorts.$fBinarySort_$cget
-                  Language.Fixpoint.Types.Sorts.$fBinarySort_$cputList -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.Sort r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Sorts.Sort r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cget1 @ r ww1 ww2 ww3 ww4 w1 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort10 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FObj"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Names.Symbol)))))
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort)))
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort))
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.FTycon))
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FApp"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Sorts.Sort)
-                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                  GHC.Generics.S
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.SourceStrict
-                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                  (GHC.Generics.K1
-                                                                                     GHC.Generics.R
-                                                                                     Language.Fixpoint.Types.Sorts.Sort)))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         GHC.Generics.U1
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1)
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FFrac"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FObj"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               'GHC.Base.Nothing
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)))
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FTC"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            (GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.FTycon))
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FApp"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    'GHC.Base.Nothing
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort11 @ x)) -}
-ef40173ca3f75960a933c186b205b736
-  $fBinarySort11 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort12 @ x)) -}
-df4e83c1d1da62e52b4d2e165456511e
-  $fBinarySort12 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort13 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FObj"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Names.Symbol)))))
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort)))
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort))
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.FTycon))
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FApp"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Sorts.Sort)
-                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                  GHC.Generics.S
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.SourceStrict
-                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                  (GHC.Generics.K1
-                                                                                     GHC.Generics.R
-                                                                                     Language.Fixpoint.Types.Sorts.Sort)))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         GHC.Generics.U1
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1)
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FFrac"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FObj"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               'GHC.Base.Nothing
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)))
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FTC"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            (GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.FTycon))
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FApp"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    'GHC.Base.Nothing
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort14 @ x)) -}
-bcf1d895b46ba1f0826f320e66c11aca
-  $fBinarySort14 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort15 @ x)) -}
-afd37b4717e77c977d00dddf21caf650
-  $fBinarySort15 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort16 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedUnpack)
-               (GHC.Generics.Rec0 GHC.Types.Int))
-          GHC.Generics.:+: GHC.Generics.C1
-                             ('GHC.Generics.MetaCons
-                                "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-                              GHC.Generics.:*: GHC.Generics.S1
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict)
-                                                 (GHC.Generics.Rec0
-                                                    Language.Fixpoint.Types.Sorts.Sort)))
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedUnpack)
-               (GHC.Generics.Rec0 GHC.Types.Int)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort))
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.FTycon))
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.S1
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.Rec0
-                                                                      Language.Fixpoint.Types.Sorts.Sort))))
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6 -}
-820c495629987b2417a9b6a1bded1192
-  $fBinarySort17 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.C1
-                             ('GHC.Generics.MetaCons
-                                "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.Rec0
-                                                     Language.Fixpoint.Types.Names.Symbol))))
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.C1
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort23
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort18
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FObj"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Names.Symbol)))>_N))) -}
-2adef34aa565a6636d31a568219375ab
-  $fBinarySort18 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.C1
-                             ('GHC.Generics.MetaCons
-                                "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             (GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   'GHC.Base.Nothing
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               Language.Fixpoint.Types.Names.Symbol)))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort22
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort19
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       Language.Fixpoint.Types.Names.Symbol))>_N))) -}
-49f03f13bbbb8d16a48871a94ce49137
-  $fBinarySort19 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.S1
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort21
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort20
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0
-                                      Language.Fixpoint.Types.Names.Symbol))>_N))) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort2 ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> (GHC.Generics.:+:)
-         ((GHC.Generics.M1
-             GHC.Generics.C
-             ('GHC.Generics.MetaCons
-                "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-             GHC.Generics.U1
-           GHC.Generics.:+: GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1)
-          GHC.Generics.:+: (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FObj"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Names.Symbol)))))
-         ((GHC.Generics.M1
-             GHC.Generics.C
-             ('GHC.Generics.MetaCons
-                "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-             (GHC.Generics.M1
-                GHC.Generics.S
-                ('GHC.Generics.MetaSel
-                   'GHC.Base.Nothing
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.SourceStrict
-                   'GHC.Generics.DecidedUnpack)
-                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-           GHC.Generics.:+: GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.K1 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)))
-          GHC.Generics.:+: (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                               GHC.Generics.:*: GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort))
-                            GHC.Generics.:+: (GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                (GHC.Generics.M1
-                                                   GHC.Generics.S
-                                                   ('GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict)
-                                                   (GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Sorts.FTycon))
-                                              GHC.Generics.:+: GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FApp"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ x (x1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Sorts.FInt
-                   -> Language.Fixpoint.Types.Sorts.$fBinarySort13 @ x
-                   Language.Fixpoint.Types.Sorts.FReal
-                   -> Language.Fixpoint.Types.Sorts.$fBinarySort10 @ x
-                   Language.Fixpoint.Types.Sorts.FNum
-                   -> Language.Fixpoint.Types.Sorts.$fBinarySort7 @ x
-                   Language.Fixpoint.Types.Sorts.FFrac
-                   -> Language.Fixpoint.Types.Sorts.$fBinarySort3 @ x
-                   Language.Fixpoint.Types.Sorts.FObj g1
-                   -> GHC.Generics.L1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1)
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FObj"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Names.Symbol))))
-                           @ x
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1)
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "FObj"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Names.Symbol)))
-                              @ x
-                              (GHC.Generics.R1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      GHC.Generics.U1)
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)))
-                                 @ x
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Names.Symbol>_R
-                                                <x>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Names.Symbol>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "FObj"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Names.Symbol)>_R)) <x>_N)))))
-                   Language.Fixpoint.Types.Sorts.FVar dt
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FApp"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x
-                              (GHC.Types.I# dt)
-                                `cast`
-                              (Trans
-                                   (Sym (GHC.Generics.N:K1[0]
-                                             <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                   (Trans
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.S>_P
-                                                  <'GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack>_P
-                                                  <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R))
-                                        (Sym (GHC.Generics.N:M1[0]
-                                                  <GHC.Generics.C>_P
-                                                  <'GHC.Generics.MetaCons
-                                                     "FVar"
-                                                     'GHC.Generics.PrefixI
-                                                     'GHC.Types.False>_P
-                                                  <GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R GHC.Types.Int)>_R)) <x>_N))))
-                   Language.Fixpoint.Types.Sorts.FFunc g1 g2
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.L1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FApp"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x
-                              (GHC.Generics.:*:
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                 @ x
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                <x>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N))
-                                 g2
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                <x>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N)))
-                                `cast`
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Sorts.Sort)>_R) <x>_N)))
-                   Language.Fixpoint.Types.Sorts.FAbs dt g2
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FApp"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x
-                           (GHC.Generics.L1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.FTycon))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "FApp"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x
-                              (GHC.Generics.:*:
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                 @ x
-                                 (GHC.Types.I# dt)
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R GHC.Types.Int>_R) <x>_N))
-                                 g2
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                <x>_P))
-                                      (Sym (GHC.Generics.N:M1[0]
-                                                <GHC.Generics.S>_P
-                                                <'GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict>_P
-                                                <GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N)))
-                                `cast`
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                        <GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Sorts.Sort)>_R) <x>_N)))
-                   Language.Fixpoint.Types.Sorts.FTC g1
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FApp"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.FTycon))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "FApp"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x
-                              (GHC.Generics.L1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.FTycon)))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Sorts.Sort)))
-                                 @ x
-                                 g1
-                                   `cast`
-                                 (Trans
-                                      (Sym (GHC.Generics.N:K1[0]
-                                                <GHC.Generics.R>_P
-                                                <Language.Fixpoint.Types.Sorts.FTycon>_R
-                                                <x>_P))
-                                      (Trans
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.S>_P
-                                                     <'GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict>_P
-                                                     <GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon>_R))
-                                           (Sym (GHC.Generics.N:M1[0]
-                                                     <GHC.Generics.C>_P
-                                                     <'GHC.Generics.MetaCons
-                                                        "FTC"
-                                                        'GHC.Generics.PrefixI
-                                                        'GHC.Types.False>_P
-                                                     <GHC.Generics.M1
-                                                        GHC.Generics.S
-                                                        ('GHC.Generics.MetaSel
-                                                           'GHC.Base.Nothing
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedStrict)
-                                                        (GHC.Generics.K1
-                                                           GHC.Generics.R
-                                                           Language.Fixpoint.Types.Sorts.FTycon)>_R)) <x>_N)))))
-                   Language.Fixpoint.Types.Sorts.FApp g1 g2
-                   -> GHC.Generics.R1
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               GHC.Generics.U1
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FFrac"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 GHC.Generics.U1
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FObj"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Names.Symbol)))))
-                        @ ((GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                            GHC.Generics.:+: GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)))
-                           GHC.Generics.:+: (GHC.Generics.M1
-                                               GHC.Generics.C
-                                               ('GHC.Generics.MetaCons
-                                                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                               (GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedUnpack)
-                                                  (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort))
-                                             GHC.Generics.:+: (GHC.Generics.M1
-                                                                 GHC.Generics.C
-                                                                 ('GHC.Generics.MetaCons
-                                                                    "FTC"
-                                                                    'GHC.Generics.PrefixI
-                                                                    'GHC.Types.False)
-                                                                 (GHC.Generics.M1
-                                                                    GHC.Generics.S
-                                                                    ('GHC.Generics.MetaSel
-                                                                       'GHC.Base.Nothing
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedStrict)
-                                                                    (GHC.Generics.K1
-                                                                       GHC.Generics.R
-                                                                       Language.Fixpoint.Types.Sorts.FTycon))
-                                                               GHC.Generics.:+: GHC.Generics.M1
-                                                                                  GHC.Generics.C
-                                                                                  ('GHC.Generics.MetaCons
-                                                                                     "FApp"
-                                                                                     'GHC.Generics.PrefixI
-                                                                                     'GHC.Types.False)
-                                                                                  (GHC.Generics.M1
-                                                                                     GHC.Generics.S
-                                                                                     ('GHC.Generics.MetaSel
-                                                                                        'GHC.Base.Nothing
-                                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                                        'GHC.Generics.SourceStrict
-                                                                                        'GHC.Generics.DecidedStrict)
-                                                                                     (GHC.Generics.K1
-                                                                                        GHC.Generics.R
-                                                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                                                   GHC.Generics.:*: GHC.Generics.M1
-                                                                                                      GHC.Generics.S
-                                                                                                      ('GHC.Generics.MetaSel
-                                                                                                         'GHC.Base.Nothing
-                                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                                         'GHC.Generics.SourceStrict
-                                                                                                         'GHC.Generics.DecidedStrict)
-                                                                                                      (GHC.Generics.K1
-                                                                                                         GHC.Generics.R
-                                                                                                         Language.Fixpoint.Types.Sorts.Sort)))))
-                        @ x
-                        (GHC.Generics.R1
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort)
-                                                  GHC.Generics.:*: GHC.Generics.M1
-                                                                     GHC.Generics.S
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.K1
-                                                                        GHC.Generics.R
-                                                                        Language.Fixpoint.Types.Sorts.Sort)))
-                           @ (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.M1
-                                   GHC.Generics.S
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedUnpack)
-                                   (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                 GHC.Generics.:*: GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Sorts.Sort))
-                              GHC.Generics.:+: (GHC.Generics.M1
-                                                  GHC.Generics.C
-                                                  ('GHC.Generics.MetaCons
-                                                     "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.M1
-                                                     GHC.Generics.S
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.K1
-                                                        GHC.Generics.R
-                                                        Language.Fixpoint.Types.Sorts.FTycon))
-                                                GHC.Generics.:+: GHC.Generics.M1
-                                                                   GHC.Generics.C
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FApp"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.M1
-                                                                      GHC.Generics.S
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.K1
-                                                                         GHC.Generics.R
-                                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                                    GHC.Generics.:*: GHC.Generics.M1
-                                                                                       GHC.Generics.S
-                                                                                       ('GHC.Generics.MetaSel
-                                                                                          'GHC.Base.Nothing
-                                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                                          'GHC.Generics.SourceStrict
-                                                                                          'GHC.Generics.DecidedStrict)
-                                                                                       (GHC.Generics.K1
-                                                                                          GHC.Generics.R
-                                                                                          Language.Fixpoint.Types.Sorts.Sort))))
-                           @ x
-                           (GHC.Generics.R1
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack)
-                                      (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                    GHC.Generics.:*: GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                              @ (GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   (GHC.Generics.M1
-                                      GHC.Generics.S
-                                      ('GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict)
-                                      (GHC.Generics.K1
-                                         GHC.Generics.R Language.Fixpoint.Types.Sorts.FTycon))
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "FApp"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    (GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.K1
-                                                          GHC.Generics.R
-                                                          Language.Fixpoint.Types.Sorts.Sort)
-                                                     GHC.Generics.:*: GHC.Generics.M1
-                                                                        GHC.Generics.S
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.K1
-                                                                           GHC.Generics.R
-                                                                           Language.Fixpoint.Types.Sorts.Sort)))
-                              @ x
-                              (GHC.Generics.R1
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.FTycon)))
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                       GHC.Generics.:*: GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             'GHC.Base.Nothing
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Language.Fixpoint.Types.Sorts.Sort)))
-                                 @ x
-                                 (GHC.Generics.:*:
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                    @ (GHC.Generics.M1
-                                         GHC.Generics.S
-                                         ('GHC.Generics.MetaSel
-                                            'GHC.Base.Nothing
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict)
-                                         (GHC.Generics.K1
-                                            GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort))
-                                    @ x
-                                    g1
-                                      `cast`
-                                    (Trans
-                                         (Sym (GHC.Generics.N:K1[0]
-                                                   <GHC.Generics.R>_P
-                                                   <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                   <x>_P))
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.S>_P
-                                                   <'GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict>_P
-                                                   <GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N))
-                                    g2
-                                      `cast`
-                                    (Trans
-                                         (Sym (GHC.Generics.N:K1[0]
-                                                   <GHC.Generics.R>_P
-                                                   <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                   <x>_P))
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.S>_P
-                                                   <'GHC.Generics.MetaSel
-                                                      'GHC.Base.Nothing
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedStrict>_P
-                                                   <GHC.Generics.K1
-                                                      GHC.Generics.R
-                                                      Language.Fixpoint.Types.Sorts.Sort>_R) <x>_N)))
-                                   `cast`
-                                 (Sym (GHC.Generics.N:M1[0]
-                                           <GHC.Generics.C>_P
-                                           <'GHC.Generics.MetaCons
-                                              "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                           <GHC.Generics.M1
-                                              GHC.Generics.S
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.K1
-                                                 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                            GHC.Generics.:*: GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.Sort)>_R) <x>_N)))) }) -}
-cfb1e2e6c0d653eaf6aa0e8a898e635b
-  $fBinarySort20 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,1*U(A,U(U,U,1*U),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  'GHC.Base.Nothing
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                            a1) ->
-                 case Language.Fixpoint.Types.Sorts.$w$dGSumPut
-                        @ w
-                        @ a1
-                        w3
-                        w4
-                        w6 of ww { (#,#) ww1 ww2 ->
-                 (Data.Binary.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-f924d1dd27e45ebb053f2804a7da7dd3
-  $fBinarySort21 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-29a8d35e526ed91af46f768ad8d41016
-  $fBinarySort22 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-4e6218196ae8f1462b3b5fb32983f903
-  $fBinarySort23 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumPut:+:_$cputSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Sorts.$fBinarySort25
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort24
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))) -}
-2da89e301f08e38496fe087e85da1ee6
-  $fBinarySort24 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-8c61d3b89949ead3c42773b607cdbcd6
-  $fBinarySort25 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort3 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FObj"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Names.Symbol)))))
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort)))
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort))
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.FTycon))
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FApp"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Sorts.Sort)
-                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                  GHC.Generics.S
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.SourceStrict
-                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                  (GHC.Generics.K1
-                                                                                     GHC.Generics.R
-                                                                                     Language.Fixpoint.Types.Sorts.Sort)))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         GHC.Generics.U1
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1)
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FFrac"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FObj"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               'GHC.Base.Nothing
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)))
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FTC"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            (GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.FTycon))
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FApp"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    'GHC.Base.Nothing
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort4 @ x)) -}
-6fd031764f3abe309a1484d3ee28f4f7
-  $fBinarySort4 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol))))
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort5 @ x)) -}
-567e3b3ebf7e0b7d8b236d4db27b6bb3
-  $fBinarySort5 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)))
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol)))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort6 @ x)) -}
-e3722dbacc1552bac9586addf8bfb618
-  $fBinarySort6 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.M1
-                           GHC.Generics.S
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.K1
-                              GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort7 ::
-    (GHC.Generics.:+:)
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          GHC.Generics.U1
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1)
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             GHC.Generics.U1
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FObj"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Names.Symbol)))))
-      ((GHC.Generics.M1
-          GHC.Generics.C
-          ('GHC.Generics.MetaCons
-             "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-          (GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                'GHC.Base.Nothing
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.SourceStrict
-                'GHC.Generics.DecidedUnpack)
-             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-        GHC.Generics.:+: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort)))
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.Sort))
-                         GHC.Generics.:+: (GHC.Generics.M1
-                                             GHC.Generics.C
-                                             ('GHC.Generics.MetaCons
-                                                "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                             (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   'GHC.Base.Nothing
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R
-                                                   Language.Fixpoint.Types.Sorts.FTycon))
-                                           GHC.Generics.:+: GHC.Generics.M1
-                                                              GHC.Generics.C
-                                                              ('GHC.Generics.MetaCons
-                                                                 "FApp"
-                                                                 'GHC.Generics.PrefixI
-                                                                 'GHC.Types.False)
-                                                              (GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    'GHC.Base.Nothing
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    Language.Fixpoint.Types.Sorts.Sort)
-                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                  GHC.Generics.S
-                                                                                  ('GHC.Generics.MetaSel
-                                                                                     'GHC.Base.Nothing
-                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                     'GHC.Generics.SourceStrict
-                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                  (GHC.Generics.K1
-                                                                                     GHC.Generics.R
-                                                                                     Language.Fixpoint.Types.Sorts.Sort)))))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         GHC.Generics.U1
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1)
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FFrac"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FObj"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                   @ ((GHC.Generics.M1
-                         GHC.Generics.C
-                         ('GHC.Generics.MetaCons
-                            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               'GHC.Base.Nothing
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int))
-                       GHC.Generics.:+: GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)))
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                            GHC.Generics.C
-                                                            ('GHC.Generics.MetaCons
-                                                               "FTC"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            (GHC.Generics.M1
-                                                               GHC.Generics.S
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.K1
-                                                                  GHC.Generics.R
-                                                                  Language.Fixpoint.Types.Sorts.FTycon))
-                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                             GHC.Generics.C
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FApp"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.M1
-                                                                                GHC.Generics.S
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.K1
-                                                                                   GHC.Generics.R
-                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-                                                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                                                 GHC.Generics.S
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    'GHC.Base.Nothing
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.K1
-                                                                                                    GHC.Generics.R
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort8 @ x)) -}
-597751f29f30c896261e4107f1ed4ad3
-  $fBinarySort8 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons
-                              "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Names.Symbol))))
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   @ x
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort9 @ x)) -}
-bb8e14761ff12ef57df7de08bef40103
-  $fBinarySort9 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.M1
-                          GHC.Generics.C
-                          ('GHC.Generics.MetaCons
-                             "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.Symbol)))
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.M1
-                                            GHC.Generics.S
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Names.Symbol)))
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort_$cget ::
-    Data.Binary.Get.Internal.Get Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fBinarySort1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Sorts.Sort>_R)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort_$cput ::
-    Language.Fixpoint.Types.Sorts.Sort -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Data.Binary.Generic.$w$cgput
-                   @ ((GHC.Generics.C1
-                         ('GHC.Generics.MetaCons
-                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         GHC.Generics.U1
-                       GHC.Generics.:+: GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1)
-                      GHC.Generics.:+: (GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: (GHC.Generics.C1
-                                                            ('GHC.Generics.MetaCons
-                                                               "FFrac"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1
-                                                          GHC.Generics.:+: GHC.Generics.C1
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FObj"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.S1
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.Rec0
-                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                   @ ((GHC.Generics.C1
-                         ('GHC.Generics.MetaCons
-                            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                         (GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               'GHC.Base.Nothing
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.Rec0 GHC.Types.Int))
-                       GHC.Generics.:+: GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Sorts.Sort)))
-                      GHC.Generics.:+: (GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.S1
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.Rec0 GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Sorts.Sort))
-                                        GHC.Generics.:+: (GHC.Generics.C1
-                                                            ('GHC.Generics.MetaCons
-                                                               "FTC"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            (GHC.Generics.S1
-                                                               ('GHC.Generics.MetaSel
-                                                                  'GHC.Base.Nothing
-                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                  'GHC.Generics.SourceStrict
-                                                                  'GHC.Generics.DecidedStrict)
-                                                               (GHC.Generics.Rec0
-                                                                  Language.Fixpoint.Types.Sorts.FTycon))
-                                                          GHC.Generics.:+: GHC.Generics.C1
-                                                                             ('GHC.Generics.MetaCons
-                                                                                "FApp"
-                                                                                'GHC.Generics.PrefixI
-                                                                                'GHC.Types.False)
-                                                                             (GHC.Generics.S1
-                                                                                ('GHC.Generics.MetaSel
-                                                                                   'GHC.Base.Nothing
-                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                   'GHC.Generics.SourceStrict
-                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                (GHC.Generics.Rec0
-                                                                                   Language.Fixpoint.Types.Sorts.Sort)
-                                                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                    'GHC.Base.Nothing
-                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                 (GHC.Generics.Rec0
-                                                                                                    Language.Fixpoint.Types.Sorts.Sort)))))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort17
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <(GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1)
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: (GHC.Generics.C1
-                                                                    ('GHC.Generics.MetaCons
-                                                                       "FFrac"
-                                                                       'GHC.Generics.PrefixI
-                                                                       'GHC.Types.False)
-                                                                    GHC.Generics.U1
-                                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                                     ('GHC.Generics.MetaCons
-                                                                                        "FObj"
-                                                                                        'GHC.Generics.PrefixI
-                                                                                        'GHC.Types.False)
-                                                                                     (GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           Language.Fixpoint.Types.Names.Symbol))))>_N))
-                   Language.Fixpoint.Types.Sorts.$fBinarySort16
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <(GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Int))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Sorts.Sort)))
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Int)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Sorts.Sort))
-                                                GHC.Generics.:+: (GHC.Generics.C1
-                                                                    ('GHC.Generics.MetaCons
-                                                                       "FTC"
-                                                                       'GHC.Generics.PrefixI
-                                                                       'GHC.Types.False)
-                                                                    (GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.Rec0
-                                                                          Language.Fixpoint.Types.Sorts.FTycon))
-                                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                                     ('GHC.Generics.MetaCons
-                                                                                        "FApp"
-                                                                                        'GHC.Generics.PrefixI
-                                                                                        'GHC.Types.False)
-                                                                                     (GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           'GHC.Base.Nothing
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedStrict)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           Language.Fixpoint.Types.Sorts.Sort)
-                                                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                                                         ('GHC.Generics.MetaSel
-                                                                                                            'GHC.Base.Nothing
-                                                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                                                            'GHC.Generics.SourceStrict
-                                                                                                            'GHC.Generics.DecidedStrict)
-                                                                                                         (GHC.Generics.Rec0
-                                                                                                            Language.Fixpoint.Types.Sorts.Sort))))>_N))
-                   5##
-                   5##
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Sorts.$fBinarySort2
-                      @ GHC.Prim.Any
-                      eta)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySort_$cputList ::
-    [Language.Fixpoint.Types.Sorts.Sort] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Sorts.Sub
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sub
-                  Language.Fixpoint.Types.Sorts.$fBinarySub_$cput
-                  Language.Fixpoint.Types.Sorts.$fBinarySub_$cget
-                  Language.Fixpoint.Types.Sorts.$fBinarySub_$cputList -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.Sub r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Sorts.Sub r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cget2 @ r ww1 ww2 ww3 ww4 w1 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub_$cget ::
-    Data.Binary.Get.Internal.Get Language.Fixpoint.Types.Sorts.Sub
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fBinarySub1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Sorts.Sub>_R)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub_$cput ::
-    Language.Fixpoint.Types.Sorts.Sub -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Sorts.Sub) ->
-                 Data.Binary.Class.$fBinary(,)_$cputList
-                   @ GHC.Types.Int
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Data.Binary.Class.$fBinaryInt
-                   Language.Fixpoint.Types.Sorts.$fBinarySort
-                   eta `cast` (Language.Fixpoint.Types.Sorts.N:Sub[0])) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub_$cputList ::
-    [Language.Fixpoint.Types.Sorts.Sub] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-402c177fc699f05dd97dbf4130d9008b
-  $fBinarySub_$s$fBinary(,) ::
-    Data.Binary.Class.Binary
-      (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)
-                  (Data.Binary.Class.$fBinary(,)_$cput
-                     @ GHC.Types.Int
-                     @ Language.Fixpoint.Types.Sorts.Sort
-                     Data.Binary.Class.$fBinaryInt
-                     Language.Fixpoint.Types.Sorts.$fBinarySort)
-                  (Data.Binary.Class.$fBinary(,)_$cget
-                     @ GHC.Types.Int
-                     @ Language.Fixpoint.Types.Sorts.Sort
-                     Data.Binary.Class.$fBinaryInt
-                     Language.Fixpoint.Types.Sorts.$fBinarySort)
-                  (Data.Binary.Class.$fBinary(,)_$cputList
-                     @ GHC.Types.Int
-                     @ Language.Fixpoint.Types.Sorts.Sort
-                     Data.Binary.Class.$fBinaryInt
-                     Language.Fixpoint.Types.Sorts.$fBinarySort) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryTCInfo ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fBinaryTCInfo_$cput
-                  Language.Fixpoint.Types.Sorts.$fBinaryTCInfo_$cget
-                  Language.Fixpoint.Types.Sorts.$fBinaryTCInfo_$cputList -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryTCInfo1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.TCInfo r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Sorts.TCInfo r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cget3 @ r ww1 ww2 ww3 ww4 w1 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryTCInfo_$cget ::
-    Data.Binary.Get.Internal.Get Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fBinaryTCInfo1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Sorts.TCInfo>_R)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryTCInfo_$cput ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> Data.Binary.Put.Put
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case Language.Fixpoint.Types.Sorts.$w$cput1
-                        ww1
-                        ww2
-                        ww3 of ww4 { (#,#) ww5 ww6 ->
-                 (Data.Binary.Put.PairS @ () ww5 ww6)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fBinaryTCInfo_$cputList ::
-    [Language.Fixpoint.Types.Sorts.TCInfo] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon :: Data.Data.Data Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cp1Data
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgfoldl
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgunfold
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$ctoConstr
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cdataTypeOf
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cdataCast1
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cdataCast2
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapT
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapQl
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapQr
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapQ
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapQi
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapM
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapMp
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$cgmapMo -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon1 ::
-    (Language.Fixpoint.Types.Names.LocSymbol
-     -> Language.Fixpoint.Types.Sorts.TCInfo
-     -> Language.Fixpoint.Types.Sorts.FTycon,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Sorts.TC, GHC.Types.False)) -}
-8c4025ee006a2215cb21bd7f220b1fe3
-  $fDataFTycon2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Sorts.$fDataFTycon3) -}
-f43c2f05d41568e33936adde93b3cdd3
-  $fDataFTycon3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cGvAdKY6exahIFmQDssmLiA
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-26d8da5e0bc7e553a9578f36ad97bda1
-  $fDataFTycon4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "FTycon"#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Sorts.FTycon
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Sorts.FTycon) ->
-                 Language.Fixpoint.Types.Sorts.$fDataFTycon6) -}
-72c5fcecb241546eb17029c7cf2a97c5
-  $fDataFTycon6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Sorts.$fDataFTycon7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Sorts.$tcFTycon
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-9d310ca235947bdee0fc131a454a82f2
-  $fDataFTycon7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   123389277251040635##
-                   9538149976616457341##) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.FTycon)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.FTycon)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.FTycon)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.FTycon)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cdataTypeOf ::
-    Language.Fixpoint.Types.Sorts.FTycon -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 Language.Fixpoint.Types.Sorts.$tHMY900FLlyu57Kl5VtT8k0) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> c Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w2 of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgfoldl1 @ c w w1 ww1 ww2 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> m Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w2 of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapM1 @ m w w1 ww1 ww2 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> m Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl88 :: m Language.Fixpoint.Types.Sorts.FTycon
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Sorts.FTycon
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Sorts.FTycon, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   (case eta1 of wild { Language.Fixpoint.Types.Sorts.TC a1 a2 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl89 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           case b1 of wild2 {
-                             GHC.Types.False
-                             -> GHC.Base.mplus
-                                  @ m
-                                  $dMonadPlus
-                                  @ (b, GHC.Types.Bool)
-                                  (GHC.Base.>>=
-                                     @ m
-                                     $dMonad
-                                     @ d
-                                     @ (b, GHC.Types.Bool)
-                                     lvl89
-                                     (\ (y' :: d) ->
-                                      GHC.Base.return
-                                        @ m
-                                        $dMonad
-                                        @ (b, GHC.Types.Bool)
-                                        (h y', GHC.Types.True)))
-                                  (GHC.Base.return
-                                     @ m
-                                     $dMonad
-                                     @ (b, GHC.Types.Bool)
-                                     (h y, GHC.Types.False))
-                             GHC.Types.True
-                             -> GHC.Base.return
-                                  @ m
-                                  $dMonad
-                                  @ (b, GHC.Types.Bool)
-                                  (h y, GHC.Types.True) } })
-                    } in
-                    k @ Language.Fixpoint.Types.Sorts.TCInfo
-                      @ Language.Fixpoint.Types.Sorts.FTycon
-                      Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                      (k @ Language.Fixpoint.Types.Names.LocSymbol
-                         @ (Language.Fixpoint.Types.Sorts.TCInfo
-                            -> Language.Fixpoint.Types.Sorts.FTycon)
-                         Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Names.LocSymbol
-                               -> Language.Fixpoint.Types.Sorts.TCInfo
-                               -> Language.Fixpoint.Types.Sorts.FTycon,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Sorts.$fDataFTycon1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Language.Fixpoint.Types.Names.LocSymbol
-                                    -> Language.Fixpoint.Types.Sorts.TCInfo
-                                    -> Language.Fixpoint.Types.Sorts.FTycon>_N))
-                         a1)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Language.Fixpoint.Types.Sorts.TCInfo
-                                 -> Language.Fixpoint.Types.Sorts.FTycon>_N))
-                      a2 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Sorts.FTycon,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl88
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Sorts.FTycon
-                           x' } })) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> m Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl88 :: m Language.Fixpoint.Types.Sorts.FTycon
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Sorts.FTycon
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Sorts.FTycon, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   (case eta1 of wild { Language.Fixpoint.Types.Sorts.TC a1 a2 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl89 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl89
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ Language.Fixpoint.Types.Sorts.TCInfo
-                      @ Language.Fixpoint.Types.Sorts.FTycon
-                      Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                      (k @ Language.Fixpoint.Types.Names.LocSymbol
-                         @ (Language.Fixpoint.Types.Sorts.TCInfo
-                            -> Language.Fixpoint.Types.Sorts.FTycon)
-                         Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Language.Fixpoint.Types.Names.LocSymbol
-                               -> Language.Fixpoint.Types.Sorts.TCInfo
-                               -> Language.Fixpoint.Types.Sorts.FTycon,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Sorts.$fDataFTycon1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Language.Fixpoint.Types.Names.LocSymbol
-                                    -> Language.Fixpoint.Types.Sorts.TCInfo
-                                    -> Language.Fixpoint.Types.Sorts.FTycon>_N))
-                         a1)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Language.Fixpoint.Types.Sorts.TCInfo
-                                 -> Language.Fixpoint.Types.Sorts.FTycon>_N))
-                      a2 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Sorts.FTycon,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl88
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Sorts.FTycon
-                           x' } })) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.FTycon -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U(U,U)>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case x0 of wild { Language.Fixpoint.Types.Sorts.TC a1 a2 ->
-                 GHC.Types.:
-                   @ u
-                   (ds
-                      @ Language.Fixpoint.Types.Names.LocSymbol
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      a1)
-                   (GHC.Types.:
-                      @ u
-                      (ds
-                         @ Language.Fixpoint.Types.Sorts.TCInfo
-                         Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                         a2)
-                      (GHC.Types.[] @ u)) }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Sorts.TC ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQi1
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w3 of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQl1
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w3 of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQr1
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: forall b. Data.Data.Data b => b -> b)
-                   (x0 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case x0 of wild { Language.Fixpoint.Types.Sorts.TC a1 a2 ->
-                 Language.Fixpoint.Types.Sorts.TC
-                   (ds
-                      @ Language.Fixpoint.Types.Names.LocSymbol
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      a1)
-                   (ds
-                      @ Language.Fixpoint.Types.Sorts.TCInfo
-                      Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                      a2) }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ Language.Fixpoint.Types.Sorts.TCInfo
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                   (k @ Language.Fixpoint.Types.Names.LocSymbol
-                      @ (Language.Fixpoint.Types.Sorts.TCInfo
-                         -> Language.Fixpoint.Types.Sorts.FTycon)
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      (z @ (Language.Fixpoint.Types.Names.LocSymbol
-                            -> Language.Fixpoint.Types.Sorts.TCInfo
-                            -> Language.Fixpoint.Types.Sorts.FTycon)
-                         Language.Fixpoint.Types.Sorts.TC))) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fDataFTycon5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Sorts.FTycon>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataFTycon_$ctoConstr ::
-    Language.Fixpoint.Types.Sorts.FTycon -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TC ds1 ds2 ->
-                 Language.Fixpoint.Types.Sorts.$cGvAdKY6exahIFmQDssmLiA }) -}
-fa071ac634dd039ade6c882f313f9d99
-  $fDataFTycon_$s$fDataLocated ::
-    Data.Data.Data
-      (Language.Fixpoint.Types.Spans.Located
-         Language.Fixpoint.Types.Names.Symbol)
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (Language.Fixpoint.Types.Spans.Located
-                       Language.Fixpoint.Types.Names.Symbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cp1Data
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgfoldl
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cgunfold
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$ctoConstr
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cdataTypeOf
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cdataCast1
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cdataCast2
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapT
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQl
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQr
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQ
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQi
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapM
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapMp
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapMo
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     Language.Fixpoint.Types.Names.$fDataSymbol) -}
-dac2e077bfe46134dd1ba25ce8d9953f
-  $fDataFTycon_$s$fDataLocated_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe
-         (c (Language.Fixpoint.Types.Spans.Located
-               Language.Fixpoint.Types.Names.Symbol))
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c (Language.Fixpoint.Types.Spans.Located
-                           Language.Fixpoint.Types.Names.Symbol))) -}
-fadc64ea5ac76948b9061f9245af1456
-  $fDataFTycon_$s$fDataLocated_$cdataTypeOf ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-    -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Spans.Located
-                            Language.Fixpoint.Types.Names.Symbol) ->
-                 Language.Fixpoint.Types.Spans.$tJhDnuonFSChJGPkHkwy5l0) -}
-f13cf58a4ddde048693cf20e88e74196
-  $fDataFTycon_$s$fDataLocated_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c (Language.Fixpoint.Types.Spans.Located
-            Language.Fixpoint.Types.Names.Symbol)
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ Language.Fixpoint.Types.Names.Symbol
-                   @ (Language.Fixpoint.Types.Spans.Located
-                        Language.Fixpoint.Types.Names.Symbol)
-                   Language.Fixpoint.Types.Names.$fDataSymbol
-                   (k @ Text.Parsec.Pos.SourcePos
-                      @ (Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Spans.Located
-                              Language.Fixpoint.Types.Names.Symbol)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Names.Symbol
-                            -> Language.Fixpoint.Types.Spans.Located
-                                 Language.Fixpoint.Types.Names.Symbol)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (z @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Names.Symbol
-                               -> Language.Fixpoint.Types.Spans.Located
-                                    Language.Fixpoint.Types.Names.Symbol)
-                            (Language.Fixpoint.Types.Spans.$WLoc
-                               @ Language.Fixpoint.Types.Names.Symbol))))) -}
-af71b5f1c62eba5930af2a29471c9117
-  $fDataFTycon_$s$fDataLocated_$ctoConstr ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-    -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Spans.Located
-                            Language.Fixpoint.Types.Names.Symbol) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Spans.$cEQNJ5yZQ7j0HQqD1jb9GSg }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort :: Data.Data.Data Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cp1Data
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgfoldl
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgunfold
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$ctoConstr
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cdataTypeOf
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cdataCast1
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cdataCast2
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapT
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapQl
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapQr
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapQ
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapQi
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapM
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapMp
-                  Language.Fixpoint.Types.Sorts.$fDataSort_$cgmapMo -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort1 ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Data.Data.CONST r Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 4, Strictness: <L,C(C1(U))><L,1*U><L,C(C1(U))><S,1*U> -}
-151d7e79f83cf979f288740abe69c0bb
-  $fDataSort10 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cH9G6wGw32zN6PiZhZZt4Aa
-                   Language.Fixpoint.Types.Sorts.$fDataSort11) -}
-2a2f57d623e964c7918942866720a7ae
-  $fDataSort11 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$c5huMuApk3Mg6IO8Yr5Tk40
-                   Language.Fixpoint.Types.Sorts.$fDataSort12) -}
-a54bd359b1b75807854b69726a9ec2a6
-  $fDataSort12 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$c6RYlUiMK23a3ay43to1Q26
-                   Language.Fixpoint.Types.Sorts.$fDataSort13) -}
-8aff60392f0587a3b4315f3d9aec5933
-  $fDataSort13 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$c4nFqhwJhcOQ9KTF6rikmMx
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-5b15f3d7d7689847e5f5ab25f675d55a
-  $fDataSort14 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Sort"#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort15 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Sorts.Sort
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy# Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.Types.Sorts.$fDataSort16) -}
-f310aa0df2196a2200e926904247d6b1
-  $fDataSort16 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Sorts.$fDataSort17
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Sorts.$tcSort
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-1c0b53e91576563a5e4201ea501dfb0c
-  $fDataSort17 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   17621859458835602585##
-                   8094375512519615495##) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort2 ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Data.Data.ID Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U> -}
-116af632900b168b0c84efdd86e4e3f1
-  $fDataSort3 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Sorts.$fDataSort4) -}
-6bb15fa5ffeead30779ca6531a541083
-  $fDataSort4 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cxFiV85AP1J0jr9lfm5fHg
-                   Language.Fixpoint.Types.Sorts.$fDataSort5) -}
-3d6f731ec411c2aeaaf74e2a160c2702
-  $fDataSort5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cF7PH0YDpd8VEcavqEqEeb0
-                   Language.Fixpoint.Types.Sorts.$fDataSort6) -}
-62d8c4d3fe574437e526df48da87ce74
-  $fDataSort6 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$ckPMNhFPyi2JSxf5DN1EPJ
-                   Language.Fixpoint.Types.Sorts.$fDataSort7) -}
-17ad42085f126778b2aa0c5a5c5e8a55
-  $fDataSort7 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cEIyDUkWRRxqDaYsseRDRc4
-                   Language.Fixpoint.Types.Sorts.$fDataSort8) -}
-9d7845922b28f369a1677c0e82282931
-  $fDataSort8 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cHRtkDf9p9z36mwAQIrUTbo
-                   Language.Fixpoint.Types.Sorts.$fDataSort9) -}
-3f5a4399c914ff070fd025fc632380cd
-  $fDataSort9 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$cAmP4bmjQugfEdDULoh9L6m
-                   Language.Fixpoint.Types.Sorts.$fDataSort10) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.Sort)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.Sort)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.Sort)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.Sort)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cdataTypeOf ::
-    Language.Fixpoint.Types.Sorts.Sort -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.Types.Sorts.$tAI3uWxxtIFm0LXCwSV5D7V) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> c Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><L,1*C1(U)><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> m Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> m Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> m Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.Sort -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> u
-  {- Arity: 3, Strictness: <L,U(U)><L,C(C1(U))><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> r
-  {- Arity: 4, Strictness: <L,C(C1(U))><L,1*U><L,C(C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fDataSort1
-                  `cast`
-                (forall (r :: <*>_N) (r' :: <*>_N).
-                 <r -> r' -> r>_R
-                 ->_R <r>_R
-                 ->_R <forall d. Data.Data.Data d => d -> r'>_R
-                 ->_R <Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Data.Data.N:CONST[0]
-                          <*>_N <r>_R <Language.Fixpoint.Types.Sorts.Sort>_P) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> r
-  {- Arity: 4, Strictness: <L,C(C1(U))><L,U><L,C(C1(U))><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fDataSort2
-                  `cast`
-                (<forall b. Data.Data.Data b => b -> b>_R
-                 ->_R <Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Data.Data.N:ID[0] <Language.Fixpoint.Types.Sorts.Sort>_R) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 3,
-     Strictness: <L,C(C1(U))><L,1*C1(U)><S(SLLLL),1*U(1*U,A,A,A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 case w2 of ww { Data.Data.Constr ww1 ww2 ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgunfold1 @ c w w1 ww1 ww5 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$cp1Data ::
-    Data.Typeable.Internal.Typeable Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fDataSort15
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Sorts.Sort>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fDataSort_$ctoConstr ::
-    Language.Fixpoint.Types.Sorts.Sort -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Sorts.FInt
-                   -> Language.Fixpoint.Types.Sorts.$cxFiV85AP1J0jr9lfm5fHg
-                   Language.Fixpoint.Types.Sorts.FReal
-                   -> Language.Fixpoint.Types.Sorts.$cF7PH0YDpd8VEcavqEqEeb0
-                   Language.Fixpoint.Types.Sorts.FNum
-                   -> Language.Fixpoint.Types.Sorts.$ckPMNhFPyi2JSxf5DN1EPJ
-                   Language.Fixpoint.Types.Sorts.FFrac
-                   -> Language.Fixpoint.Types.Sorts.$cEIyDUkWRRxqDaYsseRDRc4
-                   Language.Fixpoint.Types.Sorts.FObj ds1
-                   -> Language.Fixpoint.Types.Sorts.$cHRtkDf9p9z36mwAQIrUTbo
-                   Language.Fixpoint.Types.Sorts.FVar dt
-                   -> Language.Fixpoint.Types.Sorts.$cAmP4bmjQugfEdDULoh9L6m
-                   Language.Fixpoint.Types.Sorts.FFunc ds1 ds2
-                   -> Language.Fixpoint.Types.Sorts.$cH9G6wGw32zN6PiZhZZt4Aa
-                   Language.Fixpoint.Types.Sorts.FAbs dt ds1
-                   -> Language.Fixpoint.Types.Sorts.$c5huMuApk3Mg6IO8Yr5Tk40
-                   Language.Fixpoint.Types.Sorts.FTC ds1
-                   -> Language.Fixpoint.Types.Sorts.$c6RYlUiMK23a3ay43to1Q26
-                   Language.Fixpoint.Types.Sorts.FApp ds1 ds2
-                   -> Language.Fixpoint.Types.Sorts.$c4nFqhwJhcOQ9KTF6rikmMx }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo :: Data.Data.Data Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cp1Data
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgfoldl
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgunfold
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$ctoConstr
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cdataTypeOf
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cdataCast1
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cdataCast2
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapT
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapQl
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapQr
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapQ
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapQi
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapM
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapMp
-                  Language.Fixpoint.Types.Sorts.$fDataTCInfo_$cgmapMo -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo1 ::
-    (GHC.Types.Bool
-     -> GHC.Types.Bool
-     -> GHC.Types.Bool
-     -> Language.Fixpoint.Types.Sorts.TCInfo,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Sorts.TCInfo,
-                  GHC.Types.False)) -}
-d1ea551e6faf6ffaaafbeec5bb22d422
-  $fDataTCInfo2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo3) -}
-9ea1f52a127430c6d36b3ca408fa906f
-  $fDataTCInfo3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Sorts.$c6lryIfmwS5FAOU8SrFqaAP
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-2c9bc8cae4c0a46c457c5ceaecf3e259
-  $fDataTCInfo4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "TCInfo"#) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Sorts.TCInfo
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 Language.Fixpoint.Types.Sorts.$fDataTCInfo6) -}
-238fffeba5d235a7a1b1fab2bea27463
-  $fDataTCInfo6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Sorts.$fDataTCInfo7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Sorts.$tcTCInfo
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-a622993f5ad9f00a38742ca19f78e909
-  $fDataTCInfo7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   13875749711259797912##
-                   13141292080341204697##) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.TCInfo)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.TCInfo)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Sorts.TCInfo)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Sorts.TCInfo)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cdataTypeOf ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 Language.Fixpoint.Types.Sorts.$t6lryIfmwS5FAOU8SrFqaAP) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> c Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w2 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgfoldl @ c w w1 ww1 ww2 ww3 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> m Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w2 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapM @ m w w1 ww1 ww2 ww3 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> m Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)> -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> m Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl88 :: m Language.Fixpoint.Types.Sorts.TCInfo
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Sorts.TCInfo
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Sorts.TCInfo, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Sorts.TCInfo
-                   (case eta1 of wild { Language.Fixpoint.Types.Sorts.TCInfo a1 a2 a3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl89 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl89
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ GHC.Types.Bool
-                      @ Language.Fixpoint.Types.Sorts.TCInfo
-                      Data.Data.$fDataBool
-                      (k @ GHC.Types.Bool
-                         @ (GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                         Data.Data.$fDataBool
-                         (k @ GHC.Types.Bool
-                            @ (GHC.Types.Bool
-                               -> GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                            Data.Data.$fDataBool
-                            (GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (GHC.Types.Bool
-                                  -> GHC.Types.Bool
-                                  -> GHC.Types.Bool
-                                  -> Language.Fixpoint.Types.Sorts.TCInfo,
-                                  GHC.Types.Bool)
-                               Language.Fixpoint.Types.Sorts.$fDataTCInfo1)
-                              `cast`
-                            (Sym (Data.Data.N:Mp[0]
-                                      <m>_R
-                                      <GHC.Types.Bool
-                                       -> GHC.Types.Bool
-                                       -> GHC.Types.Bool
-                                       -> Language.Fixpoint.Types.Sorts.TCInfo>_N))
-                            a1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <GHC.Types.Bool
-                                    -> GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo>_N))
-                         a2)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R <GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo>_N))
-                      a3 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Sorts.TCInfo,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl88
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Sorts.TCInfo
-                           x' } })) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U(U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w1 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 GHC.Types.:
-                   @ u
-                   (w @ GHC.Types.Bool Data.Data.$fDataBool ww1)
-                   (GHC.Types.:
-                      @ u
-                      (w @ GHC.Types.Bool Data.Data.$fDataBool ww2)
-                      (GHC.Types.:
-                         @ u
-                         (w @ GHC.Types.Bool Data.Data.$fDataBool ww3)
-                         (GHC.Types.[] @ u))) }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Sorts.TCInfo ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQi
-                   @ u
-                   ww1
-                   w1
-                   ww3
-                   ww4
-                   ww5 } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w3 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQl
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w3 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.$w$cgmapQr
-                   @ r
-                   @ r'
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w1 of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.TCInfo
-                   (w @ GHC.Types.Bool Data.Data.$fDataBool ww1)
-                   (w @ GHC.Types.Bool Data.Data.$fDataBool ww2)
-                   (w @ GHC.Types.Bool Data.Data.$fDataBool ww3) }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r)
-                   (w2 :: Data.Data.Constr) ->
-                 Language.Fixpoint.Types.Sorts.$w$cgunfold @ c w w1) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fDataTCInfo5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Sorts.TCInfo>_N)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fDataTCInfo_$ctoConstr ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TCInfo ds1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Sorts.$c6lryIfmwS5FAOU8SrFqaAP }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqFTycon :: GHC.Classes.Eq Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fEqFTycon_$c==
-                  Language.Fixpoint.Types.Sorts.$fEqFTycon_$c/= -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqFTycon_$c/= ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (y :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 GHC.Classes.not
-                   (Language.Fixpoint.Types.Sorts.$fEqFTycon_$c== x y)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqFTycon_$c== ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),A)><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),A)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (ds1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TC s3 ds2 ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Sorts.TC s' ds3 ->
-                 case s3 of wild2 { Language.Fixpoint.Types.Spans.Loc ds4 ds5 ds6 ->
-                 case ds6 of wild3 { Language.Fixpoint.Types.Names.S dt ds7 ds8 ->
-                 case s' of wild4 { Language.Fixpoint.Types.Spans.Loc ds9 ds10 ds11 ->
-                 case ds11 of wild5 { Language.Fixpoint.Types.Names.S dt1 ds12 ds13 ->
-                 GHC.Prim.tagToEnum#
-                   @ GHC.Types.Bool
-                   (GHC.Prim.==# dt dt1) } } } } } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqSort :: GHC.Classes.Eq Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                  Language.Fixpoint.Types.Sorts.$fEqSort_$c/= -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqSort_$c/= ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Sorts.Sort)
-                   (b :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fEqSort_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fEqSort_$c== ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U> -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fEqTCInfo :: GHC.Classes.Eq Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fEqTCInfo_$c==
-                  Language.Fixpoint.Types.Sorts.$fEqTCInfo_$c/= -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fEqTCInfo_$c/= ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (b :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case Language.Fixpoint.Types.Sorts.$fEqTCInfo_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fEqTCInfo_$c== ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$c==
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fFixpointFTycon ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fFixpointFTycon_$ctoFix
-                  Language.Fixpoint.Types.Sorts.$fFixpointFTycon_$csimplify -}
-402c177fc699f05dd97dbf4130d9008b
-  $fFixpointFTycon_$csimplify ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Language.Fixpoint.Types.Sorts.FTycon) -> eta) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fFixpointFTycon_$ctoFix ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1,
-     Strictness: <S(S(LLS(LS(SSS)S(SSS)))L),1*U(1*U(A,A,U(A,U(U,U,U),U(U,U,U))),A)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case ww9 of ww11 { Data.Text.Internal.Text ww12 ww13 ww14 ->
-                 case ww10 of ww15 { Data.Text.Internal.Text ww16 ww17 ww18 ->
-                 case Language.Fixpoint.Types.Names.$w$ctoFix
-                        ww12
-                        ww13
-                        ww14
-                        ww16
-                        ww17
-                        ww18 of ww19 { (#,#) ww20 ww21 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww20 ww21)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } } } } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fFixpointSort ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.toFixSort
-                  Language.Fixpoint.Types.Sorts.$fFixpointSort_$csimplify -}
-402c177fc699f05dd97dbf4130d9008b
-  $fFixpointSort_$csimplify ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Language.Fixpoint.Types.Sorts.Sort) -> eta) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericFTycon ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fGenericFTycon_$cfrom
-                  Language.Fixpoint.Types.Sorts.$fGenericFTycon_$cto -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericFTycon1 ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "TC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Sorts.TCInfo))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case x1 of wild { Language.Fixpoint.Types.Sorts.TC g1 g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            'GHC.Base.Nothing
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            'GHC.Base.Nothing
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Sorts.TCInfo))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Names.LocSymbol>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Names.LocSymbol>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Sorts.TCInfo>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Sorts.TCInfo>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "TC" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Language.Fixpoint.Types.Sorts.TCInfo)>_R) <x>_N) }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericFTycon_$cfrom ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Sorts.FTycon x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fGenericFTycon1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Sorts.FTycon>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "FTycon"
-                                       "Language.Fixpoint.Types.Sorts"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "TC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Language.Fixpoint.Types.Sorts.TCInfo))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_FTycon[0]))) <x>_N) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericFTycon_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Sorts.FTycon x
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Sorts.FTycon x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Sorts.Rep_FTycon[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "FTycon"
-                                        "Language.Fixpoint.Types.Sorts"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "TC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Names.LocSymbol)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Language.Fixpoint.Types.Sorts.TCInfo))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "TC" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Sorts.TCInfo)>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Language.Fixpoint.Types.Sorts.TC
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Names.LocSymbol>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Names.LocSymbol>_R
-                             <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Sorts.TCInfo>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Sorts.TCInfo>_R
-                             <x>_P)) }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSort ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fGenericSort_$cfrom
-                  Language.Fixpoint.Types.Sorts.$fGenericSort_$cto -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSort_$cfrom ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sort x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fBinarySort2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Sorts.Sort>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Sort"
-                                       "Language.Fixpoint.Types.Sorts"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <((GHC.Generics.M1
-                                         GHC.Generics.C
-                                         ('GHC.Generics.MetaCons
-                                            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1
-                                       GHC.Generics.:+: GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "FReal"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          GHC.Generics.U1)
-                                      GHC.Generics.:+: (GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "FNum"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          GHC.Generics.U1
-                                                        GHC.Generics.:+: (GHC.Generics.M1
-                                                                            GHC.Generics.C
-                                                                            ('GHC.Generics.MetaCons
-                                                                               "FFrac"
-                                                                               'GHC.Generics.PrefixI
-                                                                               'GHC.Types.False)
-                                                                            GHC.Generics.U1
-                                                                          GHC.Generics.:+: GHC.Generics.M1
-                                                                                             GHC.Generics.C
-                                                                                             ('GHC.Generics.MetaCons
-                                                                                                "FObj"
-                                                                                                'GHC.Generics.PrefixI
-                                                                                                'GHC.Types.False)
-                                                                                             (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   'GHC.Base.Nothing
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   Language.Fixpoint.Types.Names.Symbol)))))
-                                     GHC.Generics.:+: ((GHC.Generics.M1
-                                                          GHC.Generics.C
-                                                          ('GHC.Generics.MetaCons
-                                                             "FVar"
-                                                             'GHC.Generics.PrefixI
-                                                             'GHC.Types.False)
-                                                          (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                'GHC.Base.Nothing
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R GHC.Types.Int))
-                                                        GHC.Generics.:+: GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "FFunc"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 Language.Fixpoint.Types.Sorts.Sort)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  'GHC.Base.Nothing
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedStrict)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  Language.Fixpoint.Types.Sorts.Sort)))
-                                                       GHC.Generics.:+: (GHC.Generics.M1
-                                                                           GHC.Generics.C
-                                                                           ('GHC.Generics.MetaCons
-                                                                              "FAbs"
-                                                                              'GHC.Generics.PrefixI
-                                                                              'GHC.Types.False)
-                                                                           (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 'GHC.Base.Nothing
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedUnpack)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Types.Int)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  'GHC.Base.Nothing
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedStrict)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  Language.Fixpoint.Types.Sorts.Sort))
-                                                                         GHC.Generics.:+: (GHC.Generics.M1
-                                                                                             GHC.Generics.C
-                                                                                             ('GHC.Generics.MetaCons
-                                                                                                "FTC"
-                                                                                                'GHC.Generics.PrefixI
-                                                                                                'GHC.Types.False)
-                                                                                             (GHC.Generics.M1
-                                                                                                GHC.Generics.S
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   'GHC.Base.Nothing
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedStrict)
-                                                                                                (GHC.Generics.K1
-                                                                                                   GHC.Generics.R
-                                                                                                   Language.Fixpoint.Types.Sorts.FTycon))
-                                                                                           GHC.Generics.:+: GHC.Generics.M1
-                                                                                                              GHC.Generics.C
-                                                                                                              ('GHC.Generics.MetaCons
-                                                                                                                 "FApp"
-                                                                                                                 'GHC.Generics.PrefixI
-                                                                                                                 'GHC.Types.False)
-                                                                                                              (GHC.Generics.M1
-                                                                                                                 GHC.Generics.S
-                                                                                                                 ('GHC.Generics.MetaSel
-                                                                                                                    'GHC.Base.Nothing
-                                                                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                                                                    'GHC.Generics.SourceStrict
-                                                                                                                    'GHC.Generics.DecidedStrict)
-                                                                                                                 (GHC.Generics.K1
-                                                                                                                    GHC.Generics.R
-                                                                                                                    Language.Fixpoint.Types.Sorts.Sort)
-                                                                                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                                  GHC.Generics.S
-                                                                                                                                  ('GHC.Generics.MetaSel
-                                                                                                                                     'GHC.Base.Nothing
-                                                                                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                     'GHC.Generics.SourceStrict
-                                                                                                                                     'GHC.Generics.DecidedStrict)
-                                                                                                                                  (GHC.Generics.K1
-                                                                                                                                     GHC.Generics.R
-                                                                                                                                     Language.Fixpoint.Types.Sorts.Sort)))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_Sort[0]))) <x>_N) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSort_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sort x
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sort x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Sorts.Rep_Sort[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Sort"
-                                   "Language.Fixpoint.Types.Sorts"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <((GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1
-                                   GHC.Generics.:+: GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "FReal"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      GHC.Generics.U1)
-                                  GHC.Generics.:+: (GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "FNum"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      GHC.Generics.U1
-                                                    GHC.Generics.:+: (GHC.Generics.M1
-                                                                        GHC.Generics.C
-                                                                        ('GHC.Generics.MetaCons
-                                                                           "FFrac"
-                                                                           'GHC.Generics.PrefixI
-                                                                           'GHC.Types.False)
-                                                                        GHC.Generics.U1
-                                                                      GHC.Generics.:+: GHC.Generics.M1
-                                                                                         GHC.Generics.C
-                                                                                         ('GHC.Generics.MetaCons
-                                                                                            "FObj"
-                                                                                            'GHC.Generics.PrefixI
-                                                                                            'GHC.Types.False)
-                                                                                         (GHC.Generics.M1
-                                                                                            GHC.Generics.S
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               'GHC.Base.Nothing
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.SourceStrict
-                                                                                               'GHC.Generics.DecidedStrict)
-                                                                                            (GHC.Generics.K1
-                                                                                               GHC.Generics.R
-                                                                                               Language.Fixpoint.Types.Names.Symbol)))))
-                                 GHC.Generics.:+: ((GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "FVar"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False)
-                                                      (GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedUnpack)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R GHC.Types.Int))
-                                                    GHC.Generics.:+: GHC.Generics.M1
-                                                                       GHC.Generics.C
-                                                                       ('GHC.Generics.MetaCons
-                                                                          "FFunc"
-                                                                          'GHC.Generics.PrefixI
-                                                                          'GHC.Types.False)
-                                                                       (GHC.Generics.M1
-                                                                          GHC.Generics.S
-                                                                          ('GHC.Generics.MetaSel
-                                                                             'GHC.Base.Nothing
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedStrict)
-                                                                          (GHC.Generics.K1
-                                                                             GHC.Generics.R
-                                                                             Language.Fixpoint.Types.Sorts.Sort)
-                                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                                           GHC.Generics.S
-                                                                                           ('GHC.Generics.MetaSel
-                                                                                              'GHC.Base.Nothing
-                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                              'GHC.Generics.SourceStrict
-                                                                                              'GHC.Generics.DecidedStrict)
-                                                                                           (GHC.Generics.K1
-                                                                                              GHC.Generics.R
-                                                                                              Language.Fixpoint.Types.Sorts.Sort)))
-                                                   GHC.Generics.:+: (GHC.Generics.M1
-                                                                       GHC.Generics.C
-                                                                       ('GHC.Generics.MetaCons
-                                                                          "FAbs"
-                                                                          'GHC.Generics.PrefixI
-                                                                          'GHC.Types.False)
-                                                                       (GHC.Generics.M1
-                                                                          GHC.Generics.S
-                                                                          ('GHC.Generics.MetaSel
-                                                                             'GHC.Base.Nothing
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedUnpack)
-                                                                          (GHC.Generics.K1
-                                                                             GHC.Generics.R
-                                                                             GHC.Types.Int)
-                                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                                           GHC.Generics.S
-                                                                                           ('GHC.Generics.MetaSel
-                                                                                              'GHC.Base.Nothing
-                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                              'GHC.Generics.SourceStrict
-                                                                                              'GHC.Generics.DecidedStrict)
-                                                                                           (GHC.Generics.K1
-                                                                                              GHC.Generics.R
-                                                                                              Language.Fixpoint.Types.Sorts.Sort))
-                                                                     GHC.Generics.:+: (GHC.Generics.M1
-                                                                                         GHC.Generics.C
-                                                                                         ('GHC.Generics.MetaCons
-                                                                                            "FTC"
-                                                                                            'GHC.Generics.PrefixI
-                                                                                            'GHC.Types.False)
-                                                                                         (GHC.Generics.M1
-                                                                                            GHC.Generics.S
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               'GHC.Base.Nothing
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.SourceStrict
-                                                                                               'GHC.Generics.DecidedStrict)
-                                                                                            (GHC.Generics.K1
-                                                                                               GHC.Generics.R
-                                                                                               Language.Fixpoint.Types.Sorts.FTycon))
-                                                                                       GHC.Generics.:+: GHC.Generics.M1
-                                                                                                          GHC.Generics.C
-                                                                                                          ('GHC.Generics.MetaCons
-                                                                                                             "FApp"
-                                                                                                             'GHC.Generics.PrefixI
-                                                                                                             'GHC.Types.False)
-                                                                                                          (GHC.Generics.M1
-                                                                                                             GHC.Generics.S
-                                                                                                             ('GHC.Generics.MetaSel
-                                                                                                                'GHC.Base.Nothing
-                                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                                'GHC.Generics.SourceStrict
-                                                                                                                'GHC.Generics.DecidedStrict)
-                                                                                                             (GHC.Generics.K1
-                                                                                                                GHC.Generics.R
-                                                                                                                Language.Fixpoint.Types.Sorts.Sort)
-                                                                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                                                                              GHC.Generics.S
-                                                                                                                              ('GHC.Generics.MetaSel
-                                                                                                                                 'GHC.Base.Nothing
-                                                                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                                                                 'GHC.Generics.SourceStrict
-                                                                                                                                 'GHC.Generics.DecidedStrict)
-                                                                                                                              (GHC.Generics.K1
-                                                                                                                                 GHC.Generics.R
-                                                                                                                                 Language.Fixpoint.Types.Sorts.Sort)))))>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> case ds3 of tpl { DEFAULT ->
-                                Language.Fixpoint.Types.Sorts.FInt }
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of tpl { DEFAULT ->
-                                Language.Fixpoint.Types.Sorts.FReal } }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> case ds3 of tpl { DEFAULT ->
-                                Language.Fixpoint.Types.Sorts.FNum }
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of wild3 {
-                                  GHC.Generics.L1 ds4
-                                  -> case ds4 of tpl { DEFAULT ->
-                                     Language.Fixpoint.Types.Sorts.FFrac }
-                                  GHC.Generics.R1 ds4
-                                  -> Language.Fixpoint.Types.Sorts.$WFObj
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "FObj"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Names.Symbol)>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Names.Symbol>_R) <x>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Names.Symbol>_R
-                                                 <x>_P)) } } }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of wild1 {
-                        GHC.Generics.L1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> Language.Fixpoint.Types.Sorts.$WFVar
-                                  ds3
-                                    `cast`
-                                  (Trans
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.C>_P
-                                                 <'GHC.Generics.MetaCons
-                                                    "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                                 <GHC.Generics.M1
-                                                    GHC.Generics.S
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedUnpack)
-                                                    (GHC.Generics.K1
-                                                       GHC.Generics.R GHC.Types.Int)>_R)
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedUnpack>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Types.Int>_R) <x>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                             GHC.Generics.R1 ds3
-                             -> case ds3
-                                       `cast`
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.K1
-                                                GHC.Generics.R Language.Fixpoint.Types.Sorts.Sort)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)>_R <x>_N) of wild3 { GHC.Generics.:*: ds4 ds5 ->
-                                Language.Fixpoint.Types.Sorts.$WFFunc
-                                  ds4
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Sorts.Sort>_R <x>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x>_P))
-                                  ds5
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Sorts.Sort>_R <x>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x>_P)) } }
-                        GHC.Generics.R1 ds2
-                        -> case ds2 of wild2 {
-                             GHC.Generics.L1 ds3
-                             -> case ds3
-                                       `cast`
-                                     (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Int)
-                                           GHC.Generics.:*: GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 Language.Fixpoint.Types.Sorts.Sort)>_R <x>_N) of wild3 { GHC.Generics.:*: ds4 ds5 ->
-                                Language.Fixpoint.Types.Sorts.$WFAbs
-                                  ds4
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedUnpack>_P
-                                            <GHC.Generics.K1 GHC.Generics.R GHC.Types.Int>_R <x>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P <GHC.Types.Int>_R <x>_P))
-                                  ds5
-                                    `cast`
-                                  (Trans
-                                       (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Sorts.Sort>_R <x>_N)
-                                       (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Sorts.Sort>_R
-                                            <x>_P)) }
-                             GHC.Generics.R1 ds3
-                             -> case ds3 of wild3 {
-                                  GHC.Generics.L1 ds4
-                                  -> Language.Fixpoint.Types.Sorts.$WFTC
-                                       ds4
-                                         `cast`
-                                       (Trans
-                                            (Trans
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.C>_P
-                                                      <'GHC.Generics.MetaCons
-                                                         "FTC"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.False>_P
-                                                      <GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Language.Fixpoint.Types.Sorts.FTycon)>_R)
-                                                 (GHC.Generics.N:M1[0]
-                                                      <GHC.Generics.S>_P
-                                                      <'GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict>_P
-                                                      <GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         Language.Fixpoint.Types.Sorts.FTycon>_R) <x>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Sorts.FTycon>_R
-                                                 <x>_P))
-                                  GHC.Generics.R1 ds4
-                                  -> case ds4
-                                            `cast`
-                                          (GHC.Generics.N:M1[0]
-                                               <GHC.Generics.C>_P
-                                               <'GHC.Generics.MetaCons
-                                                  "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                               <GHC.Generics.M1
-                                                  GHC.Generics.S
-                                                  ('GHC.Generics.MetaSel
-                                                     'GHC.Base.Nothing
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.SourceStrict
-                                                     'GHC.Generics.DecidedStrict)
-                                                  (GHC.Generics.K1
-                                                     GHC.Generics.R
-                                                     Language.Fixpoint.Types.Sorts.Sort)
-                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                   GHC.Generics.S
-                                                                   ('GHC.Generics.MetaSel
-                                                                      'GHC.Base.Nothing
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.SourceStrict
-                                                                      'GHC.Generics.DecidedStrict)
-                                                                   (GHC.Generics.K1
-                                                                      GHC.Generics.R
-                                                                      Language.Fixpoint.Types.Sorts.Sort)>_R <x>_N) of wild4 { GHC.Generics.:*: ds5 ds6 ->
-                                     Language.Fixpoint.Types.Sorts.$WFApp
-                                       ds5
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort>_R <x>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                 <x>_P))
-                                       ds6
-                                         `cast`
-                                       (Trans
-                                            (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.SourceStrict
-                                                    'GHC.Generics.DecidedStrict>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    Language.Fixpoint.Types.Sorts.Sort>_R <x>_N)
-                                            (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P
-                                                 <Language.Fixpoint.Types.Sorts.Sort>_R
-                                                 <x>_P)) } } } } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSub ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Sorts.Sub
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sub
-                  Language.Fixpoint.Types.Sorts.$fGenericSub_$cfrom
-                  Language.Fixpoint.Types.Sorts.$fGenericSub_$cto -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSub1 ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x) ->
-                 ds) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSub2 ::
-    Language.Fixpoint.Types.Sorts.Sub
-    -> Language.Fixpoint.Types.Sorts.Sub
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Sorts.Sub) -> x1) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSub_$cfrom ::
-    Language.Fixpoint.Types.Sorts.Sub
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fGenericSub2
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Sorts.Sub>_R
-                 ->_R Trans
-                          (Language.Fixpoint.Types.Sorts.N:Sub[0])
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <[(GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                         <x>_P))
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [(GHC.Types.Int,
-                                                   Language.Fixpoint.Types.Sorts.Sort)]>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.C>_P
-                                                   <'GHC.Generics.MetaCons
-                                                      "Sub"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.S
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.K1
-                                                         GHC.Generics.R
-                                                         [(GHC.Types.Int,
-                                                           Language.Fixpoint.Types.Sorts.Sort)])>_R))
-                                         (Trans
-                                              (Sym (GHC.Generics.N:M1[0]
-                                                        <GHC.Generics.D>_P
-                                                        <'GHC.Generics.MetaData
-                                                           "Sub"
-                                                           "Language.Fixpoint.Types.Sorts"
-                                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                           'GHC.Types.True>_P
-                                                        <GHC.Generics.M1
-                                                           GHC.Generics.C
-                                                           ('GHC.Generics.MetaCons
-                                                              "Sub"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.M1
-                                                              GHC.Generics.S
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.K1
-                                                                 GHC.Generics.R
-                                                                 [(GHC.Types.Int,
-                                                                   Language.Fixpoint.Types.Sorts.Sort)]))>_R))
-                                              (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_Sub[0]))))) <x>_N))) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fGenericSub_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x
-    -> Language.Fixpoint.Types.Sorts.Sub
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fGenericSub1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub x>_R
-                 ->_R Trans
-                          (Trans
-                               (Sub (Language.Fixpoint.Types.Sorts.Rep_Sub[0]))
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.D>_P
-                                         <'GHC.Generics.MetaData
-                                            "Sub"
-                                            "Language.Fixpoint.Types.Sorts"
-                                            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                            'GHC.Types.True>_P
-                                         <GHC.Generics.M1
-                                            GHC.Generics.C
-                                            ('GHC.Generics.MetaCons
-                                               "Sub" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  [(GHC.Types.Int,
-                                                    Language.Fixpoint.Types.Sorts.Sort)]))>_R)
-                                    (Trans
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "Sub" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                              <GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    'GHC.Base.Nothing
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [(GHC.Types.Int,
-                                                      Language.Fixpoint.Types.Sorts.Sort)])>_R)
-                                         (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R
-                                                 [(GHC.Types.Int,
-                                                   Language.Fixpoint.Types.Sorts.Sort)]>_R))) <x>_N)
-                          (Trans
-                               (GHC.Generics.N:K1[0]
-                                    <GHC.Generics.R>_P
-                                    <[(GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)]>_R
-                                    <x>_P)
-                               (Sym (Language.Fixpoint.Types.Sorts.N:Sub[0])))) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fGenericTCInfo ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fGenericTCInfo_$cfrom
-                  Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cto -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fGenericTCInfo1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "tc_isNum")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "tc_isReal")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "tc_isString")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case x1 of wild { Language.Fixpoint.Types.Sorts.TCInfo g1 g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "tc_isNum")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "tc_isReal")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "tc_isString")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "tc_isNum")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "tc_isReal")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "tc_isString")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "tc_isReal")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Bool>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "tc_isString")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "tc_isNum")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "tc_isReal")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.NoSourceStrictness
-                                                   'GHC.Generics.DecidedLazy)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "tc_isString")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.NoSourceStrictness
-                                                                    'GHC.Generics.DecidedLazy)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    GHC.Types.Bool))>_R) <x>_N) }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fGenericTCInfo_$cfrom ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Sorts.TCInfo x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fGenericTCInfo1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Sorts.TCInfo>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "TCInfo"
-                                       "Language.Fixpoint.Types.Sorts"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "tc_isNum")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1 GHC.Generics.R GHC.Types.Bool)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "tc_isReal")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Bool)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "tc_isString")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.NoSourceStrictness
-                                                                                'GHC.Generics.DecidedLazy)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                GHC.Types.Bool)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_TCInfo[0]))) <x>_N) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableFTycon ::
-    Data.Hashable.Class.Hashable Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fHashableFTycon_$chashWithSalt
-                  Language.Fixpoint.Types.Sorts.$fHashableFTycon_$chash -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableFTycon_$chash ::
-    Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Sorts.$fHashableFTycon_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableFTycon_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(S(LLS(LS(SSS)L))L),1*U(1*U(A,A,U(A,U(U,U,U),A)),A)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Sorts.TC ww3 ww4 ->
-                 case ww3 of ww5 { Language.Fixpoint.Types.Spans.Loc ww6 ww7 ww8 ->
-                 case ww8 of ww9 { Language.Fixpoint.Types.Names.S ww10 ww11 ww12 ->
-                 case ww11 of ww13 { Data.Text.Internal.Text ww14 ww15 ww16 ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww14
-                        (GHC.Prim.uncheckedIShiftL# ww15 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww16 1#)
-                        ww1
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 GHC.Types.I# ds2 } } } } } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableSort ::
-    Data.Hashable.Class.Hashable Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fHashableSort_$chashWithSalt
-                  Language.Fixpoint.Types.Sorts.$fHashableSort_$chash -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableSort_$chash ::
-    Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Sorts.$fHashableSort_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fHashableSort_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(S),1*U(U)><S,1*U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case Language.Fixpoint.Types.Sorts.$w$chashWithSalt
-                        ww1
-                        w1 of ww2 { DEFAULT ->
-                 GHC.Types.I# ww2 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort :: GHC.Base.Monoid Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmempty
-                  Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmappend
-                  Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmconcat -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort1 ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <L,U><L,U>x -}
-ac78cc6f29827628827d7f5c0fe1c20d
-  $fMonoidSort2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "any"#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort_$cmappend ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <S,U><S,U>,
-     Unfolding: (\ (t1 :: Language.Fixpoint.Types.Sorts.Sort)
-                   (t2 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                        t1
-                        Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmempty of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                             t2
-                             Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmempty of wild1 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.$fEqSort_$c==
-                                  t1
-                                  t2 of wild2 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.$fMonoidSort1 t2 t1
-                             GHC.Types.True -> t1 }
-                        GHC.Types.True -> t1 }
-                   GHC.Types.True -> t2 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort_$cmconcat ::
-    [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Sorts.Sort]) ->
-                 Language.Fixpoint.Types.Sorts.$fMonoidSort_go eta) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort_$cmempty :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.$fMonoidSort2 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Sorts.FObj dt }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fMonoidSort_go ::
-    [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S,1*U> -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fMonoidTCInfo ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1
-                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo_$cmappend
-                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo_$cmconcat -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fMonoidTCInfo1 :: Language.Fixpoint.Types.Sorts.TCInfo
-  {- HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TCInfo
-                   GHC.Types.False
-                   GHC.Types.False
-                   GHC.Types.False) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fMonoidTCInfo_$cmappend ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,1*U(1*U,1*U,1*U)><S,1*U(1*U,1*U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.TCInfo
-                   (GHC.Classes.|| ww1 ww5)
-                   (GHC.Classes.|| ww2 ww6)
-                   (GHC.Classes.|| ww3 ww7) } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fMonoidTCInfo_$cmconcat ::
-    [Language.Fixpoint.Types.Sorts.TCInfo]
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Types.Sorts.TCInfo]) ->
-                 case Language.Fixpoint.Types.Sorts.$wgo
-                        w of ww { (#,,#) ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataFTycon ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S(SLL)L)S(SSS)),1*U(1*U(U(1*U,A,A),U(1*U,A,A),A),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Sorts.$fNFDataFTycon_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Sorts.FTycon>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataFTycon_$crnf :: Language.Fixpoint.Types.Sorts.FTycon -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(S(SLL)S(SLL)L)S(SSS)),1*U(1*U(U(1*U,A,A),U(1*U,A,A),A),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww4 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case ww5 of ww11 { Text.Parsec.Pos.SourcePos ww12 ww13 ww14 ->
-                 case ww2 of ww15 { Language.Fixpoint.Types.Sorts.TCInfo ww16 ww17 ww18 ->
-                 Language.Fixpoint.Types.Sorts.$w$crnf
-                   ww8
-                   ww12
-                   ww16
-                   ww17
-                   ww18 } } } } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataSort ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Sorts.Sort>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataSort_$crnf :: Language.Fixpoint.Types.Sorts.Sort -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataSub ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Sorts.Sub
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Sorts.$fNFDataSub_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Sorts.Sub>_N)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataSub1 ::
-    (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort) -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*H,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)) ->
-                 case ds of wild { (,) x y ->
-                 case x of ds1 { GHC.Types.I# ipv ->
-                 Language.Fixpoint.Types.Sorts.$fNFDataSort_$crnf y } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fNFDataSub_$crnf :: Language.Fixpoint.Types.Sorts.Sub -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Sorts.Sub) ->
-                 Control.DeepSeq.$fNFDataArray_$crnf1
-                   @ (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)
-                   Language.Fixpoint.Types.Sorts.$fNFDataSub1
-                     `cast`
-                   (Sym (Control.DeepSeq.N:NFData[0]
-                             <(GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)>_N))
-                   eta `cast` (Language.Fixpoint.Types.Sorts.N:Sub[0])) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fNFDataTCInfo ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Sorts.$fNFDataTCInfo_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Sorts.TCInfo>_N)) -}
-2458b7fb05a13623749bc44389aa4644
-  $fNFDataTCInfo1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "TCInfo"
-            "Language.Fixpoint.Types.Sorts"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "tc_isNum")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 GHC.Types.Bool)
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "tc_isReal")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "tc_isString")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 GHC.Types.Bool)))))
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(1*U,1*U(1*U,1*U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Sorts.$fNFDataTCInfo2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "TCInfo"
-                                "Language.Fixpoint.Types.Sorts"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "tc_isNum")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "tc_isReal")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just
-                                                                            "tc_isString")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.NoSourceStrictness
-                                                                         'GHC.Generics.DecidedLazy)
-                                                                      (GHC.Generics.Rec0
-                                                                         GHC.Types.Bool))))>_N)) -}
-0f6aaa74f9b1bdb9dc20cdab89b50f28
-  $fNFDataTCInfo2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "TCInfo"
-         "Language.Fixpoint.Types.Sorts"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "tc_isNum")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.Rec0 GHC.Types.Bool)
-          GHC.Generics.:*: (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "tc_isReal")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 GHC.Types.Bool)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "tc_isString")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.Rec0 GHC.Types.Bool))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(1*U,1*U(1*U,1*U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "TCInfo"
-                              "Language.Fixpoint.Types.Sorts"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "tc_isNum")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "tc_isReal")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just
-                                                                          "tc_isString")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.NoSourceStrictness
-                                                                       'GHC.Generics.DecidedLazy)
-                                                                    (GHC.Generics.Rec0
-                                                                       GHC.Types.Bool))))
-                           a1) ->
-                 case x `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "TCInfo"
-                                   "Language.Fixpoint.Types.Sorts"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   (GHC.Generics.S1
-                                      ('GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "tc_isNum")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy)
-                                      (GHC.Generics.Rec0 GHC.Types.Bool)
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "tc_isReal")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.NoSourceStrictness
-                                                           'GHC.Generics.DecidedLazy)
-                                                        (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                      GHC.Generics.:*: GHC.Generics.S1
-                                                                         ('GHC.Generics.MetaSel
-                                                                            ('GHC.Base.Just
-                                                                               "tc_isString")
-                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                            'GHC.Generics.NoSourceStrictness
-                                                                            'GHC.Generics.DecidedLazy)
-                                                                         (GHC.Generics.Rec0
-                                                                            GHC.Types.Bool)))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "tc_isNum")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "tc_isReal")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         ('GHC.Base.Just
-                                                                            "tc_isString")
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.NoSourceStrictness
-                                                                         'GHC.Generics.DecidedLazy)
-                                                                      (GHC.Generics.Rec0
-                                                                         GHC.Types.Bool))>_R) <a1>_N) of wild { GHC.Generics.:*: x1 y ->
-                 case x1 of tpl { DEFAULT ->
-                 case y of wild1 { GHC.Generics.:*: x2 y1 ->
-                 case x2 of tpl1 { DEFAULT ->
-                 case y1 of tpl2 { DEFAULT -> GHC.Tuple.() } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fNFDataTCInfo_$s$dmrnf ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 Language.Fixpoint.Types.Sorts.$fNFDataTCInfo1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Sorts.Rep_TCInfo[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Sorts.$fGenericTCInfo_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon :: GHC.Classes.Ord Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fEqFTycon
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$ccompare
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<=
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>=
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$cmax
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$cmin -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$c< ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Sorts.TC ww12 ww13 ->
-                 case ww12 of ww14 { Language.Fixpoint.Types.Spans.Loc ww15 ww16 ww17 ->
-                 case ww17 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Sorts.$w$c<
-                   ww8
-                   ww2
-                   ww19
-                   ww13 } } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdFTycon_$c<1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$c<1
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$c<= ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Sorts.TC ww12 ww13 ->
-                 case ww12 of ww14 { Language.Fixpoint.Types.Spans.Loc ww15 ww16 ww17 ->
-                 case ww17 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Sorts.$w$c<=
-                   ww8
-                   ww2
-                   ww19
-                   ww13 } } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdFTycon_$c<=1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$c<=1
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$c> ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Sorts.TC ww12 ww13 ->
-                 case ww12 of ww14 { Language.Fixpoint.Types.Spans.Loc ww15 ww16 ww17 ->
-                 case ww17 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Sorts.$w$c>
-                   ww8
-                   ww2
-                   ww19
-                   ww13 } } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdFTycon_$c>1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$c>1
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$c>= ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Sorts.TC ww12 ww13 ->
-                 case ww12 of ww14 { Language.Fixpoint.Types.Spans.Loc ww15 ww16 ww17 ->
-                 case ww17 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Sorts.$w$c>=
-                   ww8
-                   ww2
-                   ww19
-                   ww13 } } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdFTycon_$c>=1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$c>=1
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$ccompare ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))><S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),1*U(1*U,1*U,1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Sorts.TC ww12 ww13 ->
-                 case ww12 of ww14 { Language.Fixpoint.Types.Spans.Loc ww15 ww16 ww17 ->
-                 case ww17 of ww18 { Language.Fixpoint.Types.Names.S ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Sorts.$w$ccompare
-                   ww8
-                   ww2
-                   ww19
-                   ww13 } } } } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdFTycon_$ccompare1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),1*U(1*U,1*U,1*U)><S(SLL),1*U(1*U,1*U,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 case w1 of ww4 { Language.Fixpoint.Types.Sorts.TCInfo ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Sorts.$w$ccompare1
-                   ww1
-                   ww2
-                   ww3
-                   ww5
-                   ww6
-                   ww7 } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$cmax ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),U(U(U,U,U(U,U,U)),U(U,U,U))><S(S(LLS(SLL))L),U(U(U,U,U(U,U,U)),U(U,U,U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (y :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<= x y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdFTycon_$cmin ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(LLS(SLL))L),U(U(U,U,U(U,U,U)),U(U,U,U))><S(S(LLS(SLL))L),U(U(U,U,U(U,U,U)),U(U,U,U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (y :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<= x y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort :: GHC.Classes.Ord Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fEqSort
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$c<
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$c<=
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$c>
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$c>=
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$cmax
-                  Language.Fixpoint.Types.Sorts.$fOrdSort_$cmin -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$c< ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$c<= ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$c> ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$c>= ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$ccompare ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U> -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$cmax ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> y GHC.Types.GT -> x }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fOrdSort_$cmin ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort)
-                   (y :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdSort_$ccompare
-                        x
-                        y of wild {
-                   DEFAULT -> x GHC.Types.GT -> y }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdTCInfo :: GHC.Classes.Ord Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fEqTCInfo
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$ccompare1
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<1
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<=1
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>1
-                  Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>=1
-                  Language.Fixpoint.Types.Sorts.$fOrdTCInfo_$cmax
-                  Language.Fixpoint.Types.Sorts.$fOrdTCInfo_$cmin -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdTCInfo_$cmax ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),U(U,U,U)><S(SLL),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (y :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<=1 x y of wild {
-                   GHC.Types.False -> x GHC.Types.True -> y }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fOrdTCInfo_$cmin ::
-    Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(SLL),U(U,U,U)><S(SLL),U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (y :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<=1 x y of wild {
-                   GHC.Types.False -> y GHC.Types.True -> x }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowFTycon :: GHC.Show.Show Language.Fixpoint.Types.Sorts.FTycon
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.FTycon
-                  Language.Fixpoint.Types.Sorts.$fShowFTycon_$cshowsPrec
-                  Language.Fixpoint.Types.Sorts.$fShowFTycon_$cshow
-                  Language.Fixpoint.Types.Sorts.$fShowFTycon_$cshowList -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowFTycon1 ::
-    Language.Fixpoint.Types.Sorts.FTycon -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 Language.Fixpoint.Types.Sorts.$w$cshowsPrec 0# ww1 ww2 w1 }) -}
-3ca1f771742071ee7e0478746cbfb3bc
-  $fShowFTycon2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "TCInfo {"#) -}
-c1a7c82e5aba2afe86ad6c586f8b12c3
-  $fShowFTycon3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-26410eb349b32ee73ab7f9ab4a03bcd9
-  $fShowFTycon4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tc_isString = "#) -}
-087402851fc0b3bcdeff4b176123edc2
-  $fShowFTycon5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tc_isReal = "#) -}
-7dd6b2f79047da72e48d70a519208d2e
-  $fShowFTycon6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "tc_isNum = "#) -}
-97ad4be7e54f51522d9cb011cb478283
-  $fShowFTycon7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "TC "#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowFTycon_$cshow ::
-    Language.Fixpoint.Types.Sorts.FTycon -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <S,1*U(1*U(U(U,U,U),U(U,U,U),U),1*U(1*U,1*U,1*U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 Language.Fixpoint.Types.Sorts.$fShowFTycon_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowFTycon_$cshowList ::
-    [Language.Fixpoint.Types.Sorts.FTycon] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.$fShowFTycon1) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowFTycon_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Sorts.FTycon -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S,1*U(1*U(U(U,U,U),U(U,U,U),U),1*U(1*U,1*U,1*U))><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Sorts.TC ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$cshowsPrec ww1 ww3 ww4 w2 } }) -}
-5eee0c1bdf4813725d5796e793f37dbd
-  $fShowFTycon_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowSort :: GHC.Show.Show Language.Fixpoint.Types.Sorts.Sort
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.Sort
-                  Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                  Language.Fixpoint.Types.Sorts.$fShowSort_$cshow
-                  Language.Fixpoint.Types.Sorts.$fShowSort_$cshowList -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowSort1 :: Language.Fixpoint.Types.Sorts.Sort -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                   Language.Fixpoint.Types.Sorts.$fShowSort2) -}
-67433506b1ea8e58d4aa8624faacc389
-  $fShowSort2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowSort_$cshow ::
-    Language.Fixpoint.Types.Sorts.Sort -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowSort_$cshowList ::
-    [Language.Fixpoint.Types.Sorts.Sort] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Language.Fixpoint.Types.Sorts.$fShowSort1) -}
-402c177fc699f05dd97dbf4130d9008b
-  $fShowSort_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(U)><S,1*U><L,U> -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fShowTCInfo :: GHC.Show.Show Language.Fixpoint.Types.Sorts.TCInfo
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Sorts.TCInfo
-                  Language.Fixpoint.Types.Sorts.$fShowTCInfo_$cshowsPrec
-                  Language.Fixpoint.Types.Sorts.$fShowTCInfo_$cshow
-                  Language.Fixpoint.Types.Sorts.$fShowTCInfo_$cshowList -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fShowTCInfo1 ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TCInfo ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Sorts.$w$cshowsPrec1
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   w1 }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fShowTCInfo_$cshow ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(1*U,1*U,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 Language.Fixpoint.Types.Sorts.$fShowTCInfo_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fShowTCInfo_$cshowList ::
-    [Language.Fixpoint.Types.Sorts.TCInfo] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Sorts.TCInfo
-                   Language.Fixpoint.Types.Sorts.$fShowTCInfo1) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $fShowTCInfo_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <S(S),1*U(U)><S,1*U(1*U,1*U,1*U)><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Sorts.TCInfo ww3 ww4 ww5 ->
-                 Language.Fixpoint.Types.Sorts.$w$cshowsPrec1
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   w2 } }) -}
-938e2522b988a07e300c9b2de138fe3c
-  $s$dmget10 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 GHC.Types.Int))
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-                                 GHC.Generics.:*: GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       Language.Fixpoint.Types.Sorts.Sort)))
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedUnpack)
-                  (GHC.Generics.Rec0 GHC.Types.Int)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort))
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       'GHC.Base.Nothing
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.FTycon))
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Sorts.Sort)
-                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Sorts.Sort))))
-            a1)
-  {- Arity: 5 -}
-1f2908769f16f656fa35e94956703f19
-  $s$dmget11 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: (GHC.Generics.C1
-                                 ('GHC.Generics.MetaCons
-                                    "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                               GHC.Generics.:+: GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        'GHC.Base.Nothing
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0
-                                                        Language.Fixpoint.Types.Names.Symbol))))
-            a1)
-  {- Arity: 5,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: (GHC.Generics.C1
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                        GHC.Generics.:+: GHC.Generics.C1
-                                                           ('GHC.Generics.MetaCons
-                                                              "FObj"
-                                                              'GHC.Generics.PrefixI
-                                                              'GHC.Types.False)
-                                                           (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 'GHC.Base.Nothing
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.SourceStrict
-                                                                 'GHC.Generics.DecidedStrict)
-                                                              (GHC.Generics.Rec0
-                                                                 Language.Fixpoint.Types.Names.Symbol))))
-                   Language.Fixpoint.Types.Sorts.$s$dmget17
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Sorts.$s$dmget12
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: (GHC.Generics.C1
-                                                  ('GHC.Generics.MetaCons
-                                                     "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                  GHC.Generics.U1
-                                                GHC.Generics.:+: GHC.Generics.C1
-                                                                   ('GHC.Generics.MetaCons
-                                                                      "FObj"
-                                                                      'GHC.Generics.PrefixI
-                                                                      'GHC.Types.False)
-                                                                   (GHC.Generics.S1
-                                                                      ('GHC.Generics.MetaSel
-                                                                         'GHC.Base.Nothing
-                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                         'GHC.Generics.SourceStrict
-                                                                         'GHC.Generics.DecidedStrict)
-                                                                      (GHC.Generics.Rec0
-                                                                         Language.Fixpoint.Types.Names.Symbol)))>_N))) -}
-f1b1ce045f1e589b528f9d699906563c
-  $s$dmget12 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                (GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-            a1)
-  {- Arity: 5,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.C1
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1
-                      GHC.Generics.:+: GHC.Generics.C1
-                                         ('GHC.Generics.MetaCons
-                                            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                         (GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.SourceStrict
-                                               'GHC.Generics.DecidedStrict)
-                                            (GHC.Generics.Rec0
-                                               Language.Fixpoint.Types.Names.Symbol)))
-                   Language.Fixpoint.Types.Sorts.$s$dmget16
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Sorts.$s$dmget13
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumGet[0]
-                             <GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.M1
-                                                 GHC.Generics.C
-                                                 ('GHC.Generics.MetaCons
-                                                    "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict)
-                                                    (GHC.Generics.Rec0
-                                                       Language.Fixpoint.Types.Names.Symbol))>_N))) -}
-30cddee42dde8f9a9e1f83c5414931ef
-  $s$dmget13 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-            a1)
-  {- Arity: 5,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        (GHC.Generics.S1
-                           ('GHC.Generics.MetaSel
-                              'GHC.Base.Nothing
-                              'GHC.Generics.NoSourceUnpackedness
-                              'GHC.Generics.SourceStrict
-                              'GHC.Generics.DecidedStrict)
-                           (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol)))
-                   Language.Fixpoint.Types.Sorts.$s$dmget15
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Sorts.$s$dmget14
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          (GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0
-                                                Language.Fixpoint.Types.Names.Symbol))
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     (GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.Rec0
-                                           Language.Fixpoint.Types.Names.Symbol))>_N)))) -}
-c6eea3dc5659cfba6b2e2283c905d02f
-  $s$dmget14 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.M1
-                  GHC.Generics.S
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (7, True, False)
-                (\ @ word
-                   @ a1
-                   (w :: GHC.Classes.Ord word)
-                   (w1 :: GHC.Num.Num word)
-                   (w2 :: Data.Bits.Bits word)
-                   (w3 :: word)
-                   (w4 :: word)
-                   @ r
-                   (w5 :: Data.ByteString.Internal.ByteString)
-                   (w6 :: Data.Binary.Get.Internal.Success
-                            (GHC.Generics.M1
-                               GHC.Generics.C
-                               ('GHC.Generics.MetaCons
-                                  "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               (GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     'GHC.Base.Nothing
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                               a1)
-                            r) ->
-                 case w5 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Sorts.$w$dGSumGet
-                   @ word
-                   @ a1
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w6 }) -}
-c0e6c11de56b8c31ed53f71cfdd95447
-  $s$dmget15 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-0152ce9d2c636dc07cedf910e966f2e7
-  $s$dmget16 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-4fa2138b6c24196557282f5999270be6
-  $s$dmget17 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> Data.Binary.Get.Internal.Get
-         ((GHC.Generics.:+:)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1)
-            a1)
-  {- Arity: 5, HasNoCafRefs,
-     Unfolding: (Data.Binary.Generic.$fGSumGet:+:_$cgetSum
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Sorts.$s$dmget19
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Sorts.$s$dmget18
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))) -}
-e031977a478504aa3d0f458c4843f92b
-  $s$dmget18 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-4a3c2907dfe00d93455559c2bdfdf436
-  $s$dmget19 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-0494dfe024b4fcd908c0cd6bbc43ee4f
-  $s$dmrnf6 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.Rec0 GHC.Types.Int))
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "FFunc" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          (GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-                           GHC.Generics.:*: GHC.Generics.S1
-                                              ('GHC.Generics.MetaSel
-                                                 'GHC.Base.Nothing
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.SourceStrict
-                                                 'GHC.Generics.DecidedStrict)
-                                              (GHC.Generics.Rec0
-                                                 Language.Fixpoint.Types.Sorts.Sort)))
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.S1
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedUnpack)
-            (GHC.Generics.Rec0 GHC.Types.Int)
-          GHC.Generics.:*: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort))
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "FTC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.FTycon))
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "FApp" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  Language.Fixpoint.Types.Sorts.Sort)
-                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                ('GHC.Generics.MetaSel
-                                                                   'GHC.Base.Nothing
-                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                   'GHC.Generics.SourceStrict
-                                                                   'GHC.Generics.DecidedStrict)
-                                                                (GHC.Generics.Rec0
-                                                                   Language.Fixpoint.Types.Sorts.Sort))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-f46f541e6730aea59132d10105807bf5
-  $s$dmrnf7 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: (GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                            (GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  Language.Fixpoint.Types.Names.Symbol))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ @ a1
-                   (ds :: (GHC.Generics.:+:)
-                            (GHC.Generics.C1
-                               ('GHC.Generics.MetaCons
-                                  "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               GHC.Generics.U1
-                             GHC.Generics.:+: GHC.Generics.C1
-                                                ('GHC.Generics.MetaCons
-                                                   "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                GHC.Generics.U1)
-                            (GHC.Generics.C1
-                               ('GHC.Generics.MetaCons
-                                  "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                               GHC.Generics.U1
-                             GHC.Generics.:+: (GHC.Generics.C1
-                                                 ('GHC.Generics.MetaCons
-                                                    "FFrac" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                 GHC.Generics.U1
-                                               GHC.Generics.:+: GHC.Generics.C1
-                                                                  ('GHC.Generics.MetaCons
-                                                                     "FObj"
-                                                                     'GHC.Generics.PrefixI
-                                                                     'GHC.Types.False)
-                                                                  (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        'GHC.Base.Nothing
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedStrict)
-                                                                     (GHC.Generics.Rec0
-                                                                        Language.Fixpoint.Types.Names.Symbol))))
-                            a1) ->
-                 case ds of wild {
-                   GHC.Generics.L1 x
-                   -> case x of wild1 {
-                        GHC.Generics.L1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() }
-                        GHC.Generics.R1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() } }
-                   GHC.Generics.R1 x
-                   -> case x of wild1 {
-                        GHC.Generics.L1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() }
-                        GHC.Generics.R1 x1
-                        -> case x1 of wild2 {
-                             GHC.Generics.L1 x2 -> case x2 of tpl { DEFAULT -> GHC.Tuple.() }
-                             GHC.Generics.R1 x2
-                             -> case x2 of tpl { DEFAULT -> GHC.Tuple.() } } } }) -}
-9e6fde7a387b125e2f02058ab0356640
-  $t6lryIfmwS5FAOU8SrFqaAP :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo4
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo2) -}
-bdb529c1378a1fceefcee986074f9975
-  $tAI3uWxxtIFm0LXCwSV5D7V :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Sorts.$fDataSort14
-                   Language.Fixpoint.Types.Sorts.$fDataSort3) -}
-f11ecee41783dc499d13c85fe63fd4ca
-  $tHMY900FLlyu57Kl5VtT8k0 :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Sorts.$fDataFTycon4
-                   Language.Fixpoint.Types.Sorts.$fDataFTycon2) -}
-bc293e7b28bb2e2d1d6c244c94cd1826
-  $tc'FAbs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13966037668256572034##
-                   11684961317303742758##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FAbs1) -}
-99d66c6ce435b611d13125b3c81c3c48
-  $tc'FAbs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FAbs"#) -}
-be807219d0cce67078e135d1c8adb5e4
-  $tc'FApp :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11815264927534270583##
-                   6689182964077709217##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FApp1) -}
-a8921137c16a68c510c98f67ddd95093
-  $tc'FApp1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FApp"#) -}
-dd878bf2e9415e1f27730a5f64748756
-  $tc'FFrac :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12450718701328846699##
-                   17763657189293829557##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FFrac1) -}
-68a9e5e26242c35d6c782be874e65779
-  $tc'FFrac1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FFrac"#) -}
-d51ae1cbb67a95df31a44c3c688fd2da
-  $tc'FFunc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   766935788769159492##
-                   2939272288718253767##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FFunc1) -}
-61bdd2e7716729d0e500c74e97773206
-  $tc'FFunc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FFunc"#) -}
-885151c3193499f34ad4a395a438079d
-  $tc'FInt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8977522995142401887##
-                   2821079047023288121##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FInt1) -}
-bb31d9bfcc5df638f36ee4144aaf68d7
-  $tc'FInt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FInt"#) -}
-fcd154bd5e01cc976b94f99add85a4a5
-  $tc'FNum :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2100002729590058643##
-                   17081518588452275912##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FNum1) -}
-1cd54935031b620b6d79eeec6799bfef
-  $tc'FNum1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FNum"#) -}
-b15ec2546a5617ac1fef670667a6e422
-  $tc'FObj :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   197644709198858024##
-                   10272863441235135969##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FObj1) -}
-07af4ff9a84596a737158964c33dbd85
-  $tc'FObj1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FObj"#) -}
-ac9e7de825597487637d65357a3f3906
-  $tc'FReal :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17748229734750054451##
-                   6865322779499117900##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FReal1) -}
-f0312e62100d26df4ef7e515a87588e0
-  $tc'FReal1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FReal"#) -}
-c297ea3ee1879acb6cb40183b38856c0
-  $tc'FTC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3873709110367583758##
-                   7370454109075783764##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FTC1) -}
-55d12f694a5c96d3e7ce0f0a61f65a83
-  $tc'FTC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FTC"#) -}
-b01a45b69f864db7d4682830d7a92b7b
-  $tc'FVar :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   18310071450010203270##
-                   5663864549016588827##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'FVar1) -}
-650b77d0df68af37f8a0093309c4d38a
-  $tc'FVar1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'FVar"#) -}
-6a794aee319eacba20d01b13e4c73f94
-  $tc'Sub :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16691140787625658225##
-                   15141932984574964172##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'Sub1) -}
-9e335eb1508abc7c61dac4148c9514ff
-  $tc'Sub1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Sub"#) -}
-9abb1e78555c4d1a5dd7183e7dcfe5bd
-  $tc'TC :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7194057683714356847##
-                   11672006799560303849##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'TC1) -}
-f9f496f886c8e4dbf05be759285a5756
-  $tc'TC1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'TC"#) -}
-429cbee1a60fa1f5a9706bd8b82e7ac0
-  $tc'TCInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7462662279661559350##
-                   16567145943826342010##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tc'TCInfo1) -}
-397638ad9648f4a8ef0b9db22bd5e882
-  $tc'TCInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'TCInfo"#) -}
-fe548899764f98a082365084a4677b8c
-  $tcFTycon :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   123389277251040635##
-                   9538149976616457341##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tcFTycon1) -}
-66dbbf3ece34d49d77f389dfb6b71182
-  $tcFTycon1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "FTycon"#) -}
-5a22c910182c605ac74f294740c491d6
-  $tcSort :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17621859458835602585##
-                   8094375512519615495##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tcSort1) -}
-1d8b8f5a8eab81cf121a80e8f8d2a44d
-  $tcSort1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Sort"#) -}
-196008fae23a8e77fe21301f2c6eab57
-  $tcSub :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11565954256817787741##
-                   17451682964443234541##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tcSub1) -}
-8c2ff0f8845c25cbd538d9c9251e85f1
-  $tcSub1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Sub"#) -}
-9d9ab973293f89a8269acfefe96ef12d
-  $tcTCInfo :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13875749711259797912##
-                   13141292080341204697##
-                   Language.Fixpoint.Types.Sorts.$trModule
-                   Language.Fixpoint.Types.Sorts.$tcTCInfo1) -}
-dbf4cf094ac7826c8481bf2a4af06bfc
-  $tcTCInfo1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "TCInfo"#) -}
-35fa7d7ed2d62c8a1df1d7fdc4997338
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Sorts.$trModule2
-                   Language.Fixpoint.Types.Sorts.$trModule1) -}
-d3d89c5e0ac1f1e744c6fa047d821ef8
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Sorts"#) -}
-b7e30a390a209b04063ce63fcd968ac3
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-122a2646c19822b06482df39ec89ee92
-  $w$c< ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(1*U,1*U,1*U)><S,U><L,1*U(1*U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww2) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww2) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<1 ww1 ww3 }
-                   GHC.Types.True -> GHC.Types.True }) -}
-4f71e15872a6ad020c6abc99b3b7724d
-  $w$c<1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fOrdBool_$c< ww2 ww5
-                            GHC.Types.True -> GHC.Types.True }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.False
-                            GHC.Types.True -> GHC.Classes.$fOrdBool_$c< ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-5f09cae143907382bb73d2cfa3af49dc
-  $w$c<= ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(1*U,1*U,1*U)><S,U><L,1*U(1*U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww2) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww2) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c<=1 ww1 ww3 }
-                   GHC.Types.True -> GHC.Types.True }) -}
-82c5e9b9829f63b6ca4b614f2981c138
-  $w$c<=1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fOrdBool_$c<= ww2 ww5
-                            GHC.Types.True -> GHC.Types.True }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.False
-                            GHC.Types.True -> GHC.Classes.$fOrdBool_$c<= ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-a0b72fe0d40b380f70132172c82a9689
-  $w$c== ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fEqBool_$c== ww2 ww5
-                            GHC.Types.True -> GHC.Types.False }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.False
-                            GHC.Types.True -> GHC.Classes.$fEqBool_$c== ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-27e874b7d74ee14a0b26139d93f1b33e
-  $w$c> ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(1*U,1*U,1*U)><S,U><L,1*U(1*U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww2) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww2) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>1 ww1 ww3 }
-                   GHC.Types.True -> GHC.Types.False }) -}
-addce0c9af172b84e879c25714ca351f
-  $w$c>1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fOrdBool_$c> ww2 ww5
-                            GHC.Types.True -> GHC.Types.False }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.True
-                            GHC.Types.True -> GHC.Classes.$fOrdBool_$c> ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-945429052b43bb7713744c7012ca95ea
-  $w$c>= ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Types.Bool
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(1*U,1*U,1*U)><S,U><L,1*U(1*U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww2) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww2) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.$fOrdFTycon_$c>=1 ww1 ww3 }
-                   GHC.Types.True -> GHC.Types.False }) -}
-661e12b4cef167718c8906b598c0bc6a
-  $w$c>=1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Bool
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fOrdBool_$c>= ww2 ww5
-                            GHC.Types.True -> GHC.Types.False }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.True
-                            GHC.Types.True -> GHC.Classes.$fOrdBool_$c>= ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-f33c01f9da9aabd5b1117999e8fa63c3
-  $w$ccompare ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Types.Ordering
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S,U><L,1*U(1*U,1*U,1*U)><S,U><L,1*U(1*U,1*U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.<# ww ww2) of wild {
-                   GHC.Types.False
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww ww2) of wild1 {
-                        GHC.Types.False -> GHC.Types.GT
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.$fOrdFTycon_$ccompare1 ww1 ww3 }
-                   GHC.Types.True -> GHC.Types.LT }) -}
-673dbf71ecba7fb32aa5fc8e4a1b19cb
-  $w$ccompare1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Ordering
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><L,1*U><L,1*U><S,1*U><L,1*U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool)
-                   (ww5 :: GHC.Types.Bool) ->
-                 let {
-                   $j1 :: GHC.Prim.Void# -> GHC.Types.Ordering
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case ww1 of wild {
-                       GHC.Types.False
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Classes.$fOrdBool_$ccompare ww2 ww5
-                            GHC.Types.True -> GHC.Types.LT }
-                       GHC.Types.True
-                       -> case ww4 of wild1 {
-                            GHC.Types.False -> GHC.Types.GT
-                            GHC.Types.True -> GHC.Classes.$fOrdBool_$ccompare ww2 ww5 } }
-                 } in
-                 case ww of wild {
-                   GHC.Types.False
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> $j1 GHC.Prim.void#
-                        GHC.Types.True -> GHC.Types.LT }
-                   GHC.Types.True
-                   -> case ww3 of wild1 {
-                        GHC.Types.False -> GHC.Types.GT
-                        GHC.Types.True -> $j1 GHC.Prim.void# } }) -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.FTycon r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Sorts.FTycon r) ->
-                 Language.Fixpoint.Types.Spans.$w$cget
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Names.$fBinarySymbol
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Language.Fixpoint.Types.Spans.Located
-                               Language.Fixpoint.Types.Names.Symbol)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Language.Fixpoint.Types.Sorts.$w$dGBinaryGet
-                      @ GHC.Prim.Any
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: (GHC.Generics.:*:)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "tc_isNum")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 GHC.Types.Bool))
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "tc_isReal")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 GHC.Types.Bool)
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "tc_isString")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0 GHC.Types.Bool))
-                                  GHC.Prim.Any)[OneShot] ->
-                       w i'1
-                         (Language.Fixpoint.Types.Sorts.TC
-                            a1
-                            (Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cto
-                               @ GHC.Prim.Any
-                               a2
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.C>_P
-                                              <'GHC.Generics.MetaCons
-                                                 "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                              <GHC.Generics.S1
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "tc_isNum")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                                               GHC.Generics.:*: (GHC.Generics.S1
-                                                                   ('GHC.Generics.MetaSel
-                                                                      ('GHC.Base.Just "tc_isReal")
-                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                      'GHC.Generics.NoSourceStrictness
-                                                                      'GHC.Generics.DecidedLazy)
-                                                                   (GHC.Generics.Rec0
-                                                                      GHC.Types.Bool)
-                                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                                    ('GHC.Generics.MetaSel
-                                                                                       ('GHC.Base.Just
-                                                                                          "tc_isString")
-                                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                                       'GHC.Generics.NoSourceStrictness
-                                                                                       'GHC.Generics.DecidedLazy)
-                                                                                    (GHC.Generics.Rec0
-                                                                                       GHC.Types.Bool))>_R))
-                                    (Trans
-                                         (Sym (GHC.Generics.N:M1[0]
-                                                   <GHC.Generics.D>_P
-                                                   <'GHC.Generics.MetaData
-                                                      "TCInfo"
-                                                      "Language.Fixpoint.Types.Sorts"
-                                                      "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                      'GHC.Types.False>_P
-                                                   <GHC.Generics.M1
-                                                      GHC.Generics.C
-                                                      ('GHC.Generics.MetaCons
-                                                         "TCInfo"
-                                                         'GHC.Generics.PrefixI
-                                                         'GHC.Types.True)
-                                                      (GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "tc_isNum")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                       GHC.Generics.:*: (GHC.Generics.S1
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just
-                                                                                 "tc_isReal")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.NoSourceStrictness
-                                                                              'GHC.Generics.DecidedLazy)
-                                                                           (GHC.Generics.Rec0
-                                                                              GHC.Types.Bool)
-                                                                         GHC.Generics.:*: GHC.Generics.S1
-                                                                                            ('GHC.Generics.MetaSel
-                                                                                               ('GHC.Base.Just
-                                                                                                  "tc_isString")
-                                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                                               'GHC.Generics.NoSourceStrictness
-                                                                                               'GHC.Generics.DecidedLazy)
-                                                                                            (GHC.Generics.Rec0
-                                                                                               GHC.Types.Bool)))>_R))
-                                         (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_TCInfo[0])))) <GHC.Prim.Any>_N)))) })) -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cget1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.Sort r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0] -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cget2 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.Sub r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Sorts.Sub r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ (GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)
-                   Language.Fixpoint.Types.Sorts.$fBinarySub_$s$fBinary(,)
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [(GHC.Types.Int,
-                               Language.Fixpoint.Types.Sorts.Sort)])[OneShot] ->
-                    w i' a1 `cast` (Sym (Language.Fixpoint.Types.Sorts.N:Sub[0])))) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $w$cget3 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Sorts.TCInfo r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Sorts.TCInfo r) ->
-                 Language.Fixpoint.Types.Sorts.$w$dGBinaryGet
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:*:)
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "tc_isNum")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 GHC.Types.Bool))
-                               (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "tc_isReal")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 GHC.Types.Bool)
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "tc_isString")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0 GHC.Types.Bool))
-                               GHC.Prim.Any)[OneShot] ->
-                    w i'
-                      (Language.Fixpoint.Types.Sorts.$fBinaryFTycon_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.C>_P
-                                        <'GHC.Generics.MetaCons
-                                           "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                        <GHC.Generics.S1
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "tc_isNum")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.Rec0 GHC.Types.Bool)
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "tc_isReal")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                           GHC.Generics.:*: GHC.Generics.S1
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "tc_isString")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.NoSourceStrictness
-                                                                                 'GHC.Generics.DecidedLazy)
-                                                                              (GHC.Generics.Rec0
-                                                                                 GHC.Types.Bool))>_R))
-                              (Trans
-                                   (Sym (GHC.Generics.N:M1[0]
-                                             <GHC.Generics.D>_P
-                                             <'GHC.Generics.MetaData
-                                                "TCInfo"
-                                                "Language.Fixpoint.Types.Sorts"
-                                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                                'GHC.Types.False>_P
-                                             <GHC.Generics.M1
-                                                GHC.Generics.C
-                                                ('GHC.Generics.MetaCons
-                                                   "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                                (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "tc_isNum")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.NoSourceStrictness
-                                                      'GHC.Generics.DecidedLazy)
-                                                   (GHC.Generics.Rec0 GHC.Types.Bool)
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "tc_isReal")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.NoSourceStrictness
-                                                                        'GHC.Generics.DecidedLazy)
-                                                                     (GHC.Generics.Rec0
-                                                                        GHC.Types.Bool)
-                                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         ('GHC.Base.Just
-                                                                                            "tc_isString")
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.NoSourceStrictness
-                                                                                         'GHC.Generics.DecidedLazy)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         GHC.Types.Bool)))>_R))
-                                   (Sub (Sym (Language.Fixpoint.Types.Sorts.Rep_TCInfo[0])))) <GHC.Prim.Any>_N)))) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $w$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> c Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 5,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool) ->
-                 w @ GHC.Types.Bool
-                   @ Language.Fixpoint.Types.Sorts.TCInfo
-                   Data.Data.$fDataBool
-                   (w @ GHC.Types.Bool
-                      @ (GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                      Data.Data.$fDataBool
-                      (w @ GHC.Types.Bool
-                         @ (GHC.Types.Bool
-                            -> GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                         Data.Data.$fDataBool
-                         (w1
-                            @ (GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> Language.Fixpoint.Types.Sorts.TCInfo)
-                            Language.Fixpoint.Types.Sorts.TCInfo)
-                         ww)
-                      ww1)
-                   ww2) -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cgfoldl1 ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> c Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 4,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (ww :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 w @ Language.Fixpoint.Types.Sorts.TCInfo
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                   (w @ Language.Fixpoint.Types.Names.LocSymbol
-                      @ (Language.Fixpoint.Types.Sorts.TCInfo
-                         -> Language.Fixpoint.Types.Sorts.FTycon)
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      (w1
-                         @ (Language.Fixpoint.Types.Names.LocSymbol
-                            -> Language.Fixpoint.Types.Sorts.TCInfo
-                            -> Language.Fixpoint.Types.Sorts.FTycon)
-                         Language.Fixpoint.Types.Sorts.TC)
-                      ww)
-                   ww1) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $w$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> m Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 5,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl88 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl88
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ GHC.Types.Bool
-                   @ Language.Fixpoint.Types.Sorts.TCInfo
-                   Data.Data.$fDataBool
-                   (k @ GHC.Types.Bool
-                      @ (GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                      Data.Data.$fDataBool
-                      (k @ GHC.Types.Bool
-                         @ (GHC.Types.Bool
-                            -> GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                         Data.Data.$fDataBool
-                         (GHC.Base.return
-                            @ m
-                            w
-                            @ (GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> Language.Fixpoint.Types.Sorts.TCInfo)
-                            Language.Fixpoint.Types.Sorts.TCInfo)
-                         ww)
-                      ww1)
-                   ww2) -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cgmapM1 ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> m Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 4,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl88 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl88
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ Language.Fixpoint.Types.Sorts.TCInfo
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                   (k @ Language.Fixpoint.Types.Names.LocSymbol
-                      @ (Language.Fixpoint.Types.Sorts.TCInfo
-                         -> Language.Fixpoint.Types.Sorts.FTycon)
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      (GHC.Base.return
-                         @ m
-                         w
-                         @ (Language.Fixpoint.Types.Names.LocSymbol
-                            -> Language.Fixpoint.Types.Sorts.TCInfo
-                            -> Language.Fixpoint.Types.Sorts.FTycon)
-                         Language.Fixpoint.Types.Sorts.TC)
-                      ww)
-                   ww1) -}
-e18a1bdf24de1a4463316fa06c74edde
-  $w$cgmapQi ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> u
-  {- Arity: 5,
-     Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0# -> w @ GHC.Types.Bool Data.Data.$fDataBool ww1
-                   1# -> w @ GHC.Types.Bool Data.Data.$fDataBool ww2
-                   2# -> w @ GHC.Types.Bool Data.Data.$fDataBool ww3 }) -}
-11d7c96834df93b261dc74b0b9d75571
-  $w$cgmapQi1 ::
-    GHC.Prim.Int#
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> u
-  {- Arity: 4, Strictness: <S,1*U><C(C(S)),1*C1(C1(U))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ u
-                   (ww :: GHC.Prim.Int#)
-                   (w :: forall d. Data.Data.Data d => d -> u)
-                   (ww1 :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww2 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case ww of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w @ Language.Fixpoint.Types.Names.LocSymbol
-                        Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                        ww1
-                   1#
-                   -> w @ Language.Fixpoint.Types.Sorts.TCInfo
-                        Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                        ww2 }) -}
-6d1a67427f11ff7e683439c9c6162b40
-  $w$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool) ->
-                 w (w (w w1 (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww))
-                      (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww1))
-                   (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww2)) -}
-ecb8f327973026ab275c264ed528b2f0
-  $w$cgmapQl1 ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> r
-  {- Arity: 5,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 w (w w1
-                      (w2
-                         @ Language.Fixpoint.Types.Names.LocSymbol
-                         Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                         ww))
-                   (w2
-                      @ Language.Fixpoint.Types.Sorts.TCInfo
-                      Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                      ww1)) -}
-90d8f292adced52800a96360fe9be71f
-  $w$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> r
-  {- Arity: 6,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool) ->
-                 w (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww)
-                   (w (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww1)
-                      (w (w2 @ GHC.Types.Bool Data.Data.$fDataBool ww2) w1))) -}
-30981ce65e809d363136c337b3f5c79e
-  $w$cgmapQr1 ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> r
-  {- Arity: 5,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 w (w2
-                      @ Language.Fixpoint.Types.Names.LocSymbol
-                      Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-                      ww)
-                   (w (w2
-                         @ Language.Fixpoint.Types.Sorts.TCInfo
-                         Language.Fixpoint.Types.Sorts.$fDataTCInfo
-                         ww1)
-                      w1)) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $w$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r) -> c Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)>,
-     Inline: [0],
-     Unfolding: (\ @ (c :: * -> *)
-                   (w :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (w1 :: forall r. r -> c r) ->
-                 w @ GHC.Types.Bool
-                   @ Language.Fixpoint.Types.Sorts.TCInfo
-                   Data.Data.$fDataBool
-                   (w @ GHC.Types.Bool
-                      @ (GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                      Data.Data.$fDataBool
-                      (w @ GHC.Types.Bool
-                         @ (GHC.Types.Bool
-                            -> GHC.Types.Bool -> Language.Fixpoint.Types.Sorts.TCInfo)
-                         Data.Data.$fDataBool
-                         (w1
-                            @ (GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> GHC.Types.Bool
-                               -> Language.Fixpoint.Types.Sorts.TCInfo)
-                            Language.Fixpoint.Types.Sorts.TCInfo)))) -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$cgunfold1 ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.ConstrRep
-    -> Data.Data.DataType
-    -> c Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 4, Strictness: <L,C(C1(U))><L,1*C1(U)><S,1*U><L,U>,
-     Inline: [0] -}
-402c177fc699f05dd97dbf4130d9008b
-  $w$chashWithSalt ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Sorts.Sort -> GHC.Prim.Int#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,1*U>, Inline: [0] -}
-1f0c172a107badb63260c5df52779072
-  $w$cput ::
-    Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2,
-     Strictness: <L,1*U(U(1*U,U,U),U(1*U,U,U),U(A,U(U,U,1*U),A))><L,1*U(U,U,U)>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww1 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case ww1 of ww2 { Language.Fixpoint.Types.Sorts.TCInfo ww3 ww4 ww5 ->
-                        case Language.Fixpoint.Types.Sorts.$w$cput1
-                               ww3
-                               ww4
-                               ww5 of ww6 { (#,#) ww7 ww8 ->
-                        ww8 } }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case ww of ww2 { Language.Fixpoint.Types.Spans.Loc ww3 ww4 ww5 ->
-                        case ww3 of ww6 { Text.Parsec.Pos.SourcePos ww7 ww8 ww9 ->
-                        case ww4 of ww10 { Text.Parsec.Pos.SourcePos ww11 ww12 ww13 ->
-                        case ww5 of ww14 { Language.Fixpoint.Types.Names.S ww15 ww16 ww17 ->
-                        case Language.Fixpoint.Types.Sorts.$w$dGBinaryPut
-                               @ GHC.Prim.Any
-                               ww7
-                               ww8
-                               ww9
-                               ww11
-                               ww12
-                               ww13
-                               ww16 of ww18 { (#,#) ww19 ww20 ->
-                        ww20 } } } } }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-e1c4317f06c5d71025c64f68ed0bcf7e
-  $w$cput1 ::
-    GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Types.Bool)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput5 ww2 of ww3 { (#,#) ww4 ww5 ->
-                        ww5 }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput5 ww1 of ww3 { (#,#) ww4 ww5 ->
-                        ww5 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput5 ww of ww3 { (#,#) ww4 ww5 ->
-                        ww5 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-4e4cef13f6da1a8c2085d0ad0c3e8741
-  $w$crnf ::
-    Text.Parsec.Pos.SourceName
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> ()
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <S,1*U><S,1*U><S,1*U><S,1*U><S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: Text.Parsec.Pos.SourceName)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (ww4 :: GHC.Types.Bool) ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        ww of wild1 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        ww1 of wild2 { () ->
-                 case ww2 of tpl { DEFAULT ->
-                 case ww3 of tpl1 { DEFAULT ->
-                 case ww4 of tpl2 { DEFAULT -> GHC.Tuple.() } } } } }) -}
-e78144082771af8dd2855a6325194e4b
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 4,
-     Strictness: <S,U><L,1*U(U(U,U,U),U(U,U,U),U)><L,1*U(1*U,1*U,1*U)><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (ww2 :: Language.Fixpoint.Types.Sorts.TCInfo)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Sorts.$fShowFTycon7
-                       (case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                        case ww4 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                        case ww5 of ww11 { Text.Parsec.Pos.SourcePos ww12 ww13 ww14 ->
-                        GHC.Base.++
-                          @ GHC.Types.Char
-                          (Language.Fixpoint.Types.Spans.$w$cshow
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             Language.Fixpoint.Types.Names.$fShowSymbol
-                             ww8
-                             ww9
-                             ww10
-                             ww12
-                             ww13
-                             ww14
-                             ww6)
-                          (GHC.Types.:
-                             @ GHC.Types.Char
-                             GHC.Show.showSpace1
-                             (case ww2 of ww15 { Language.Fixpoint.Types.Sorts.TCInfo ww16 ww17 ww18 ->
-                              Language.Fixpoint.Types.Sorts.$w$cshowsPrec1
-                                11#
-                                ww16
-                                ww17
-                                ww18
-                                x })) } } })
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-f77e7005dafa323945471194edaa59dd
-  $w$cshowsPrec1 ::
-    GHC.Prim.Int#
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 5, Strictness: <S,U><L,1*U><L,1*U><L,1*U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Types.Bool)
-                   (ww2 :: GHC.Types.Bool)
-                   (ww3 :: GHC.Types.Bool)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   g :: GHC.Base.String -> GHC.Base.String
-                     {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Sorts.$fShowFTycon6
-                       (let {
-                          eta :: GHC.Base.String
-                          = GHC.Base.++
-                              @ GHC.Types.Char
-                              Language.Fixpoint.Types.Sorts.$fShowFTycon_s
-                              (GHC.Base.++
-                                 @ GHC.Types.Char
-                                 Language.Fixpoint.Types.Sorts.$fShowFTycon5
-                                 (let {
-                                    eta1 :: GHC.Base.String
-                                    = GHC.Base.++
-                                        @ GHC.Types.Char
-                                        Language.Fixpoint.Types.Sorts.$fShowFTycon_s
-                                        (GHC.Base.++
-                                           @ GHC.Types.Char
-                                           Language.Fixpoint.Types.Sorts.$fShowFTycon4
-                                           (case ww3 of wild {
-                                              GHC.Types.False
-                                              -> GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   GHC.Show.shows18
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Types.Sorts.$fShowFTycon3
-                                                      x)
-                                              GHC.Types.True
-                                              -> GHC.Base.++
-                                                   @ GHC.Types.Char
-                                                   GHC.Show.shows17
-                                                   (GHC.Base.++
-                                                      @ GHC.Types.Char
-                                                      Language.Fixpoint.Types.Sorts.$fShowFTycon3
-                                                      x) }))
-                                  } in
-                                  case ww2 of wild {
-                                    GHC.Types.False
-                                    -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows18 eta1
-                                    GHC.Types.True
-                                    -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows17 eta1 }))
-                        } in
-                        case ww1 of wild {
-                          GHC.Types.False
-                          -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows18 eta
-                          GHC.Types.True
-                          -> GHC.Base.++ @ GHC.Types.Char GHC.Show.shows17 eta })
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Sorts.$fShowFTycon2
-                        (g w)
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (GHC.Base.++
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Types.Sorts.$fShowFTycon2
-                           (g (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w))) }) -}
-d00701b1450a9c517447fb730ad26afc
-  $w$dGBinaryGet ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         ((GHC.Generics.:*:)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "tc_isNum")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 GHC.Types.Bool))
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "tc_isReal")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.NoSourceStrictness
-                  'GHC.Generics.DecidedLazy)
-               (GHC.Generics.Rec0 GHC.Types.Bool)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "tc_isString")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.NoSourceStrictness
-                                   'GHC.Generics.DecidedLazy)
-                                (GHC.Generics.Rec0 GHC.Types.Bool))
-            t)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           ((GHC.Generics.:*:)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "tc_isNum")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 GHC.Types.Bool))
-                              (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "tc_isReal")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.NoSourceStrictness
-                                    'GHC.Generics.DecidedLazy)
-                                 (GHC.Generics.Rec0 GHC.Types.Bool)
-                               GHC.Generics.:*: GHC.Generics.S1
-                                                  ('GHC.Generics.MetaSel
-                                                     ('GHC.Base.Just "tc_isString")
-                                                     'GHC.Generics.NoSourceUnpackedness
-                                                     'GHC.Generics.NoSourceStrictness
-                                                     'GHC.Generics.DecidedLazy)
-                                                  (GHC.Generics.Rec0 GHC.Types.Bool))
-                              t)
-                           r) ->
-                 Data.Binary.Class.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: GHC.Types.Bool)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Data.Binary.Class.$w$cget
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: GHC.Types.Bool)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Data.Binary.Class.$w$cget
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a3 :: GHC.Types.Bool)[OneShot] ->
-                          w i'2
-                            (GHC.Generics.:*:
-                               @ (GHC.Generics.M1
-                                    GHC.Generics.S
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "tc_isNum")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 GHC.Types.Bool))
-                               @ (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "tc_isReal")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 GHC.Types.Bool)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "tc_isString")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0 GHC.Types.Bool))
-                               @ t
-                               a1
-                                 `cast`
-                               (Trans
-                                    (Sym (GHC.Generics.N:K1[0]
-                                              <GHC.Generics.R>_P <GHC.Types.Bool>_R <t>_P))
-                                    (Sym (GHC.Generics.N:M1[0]
-                                              <GHC.Generics.S>_P
-                                              <'GHC.Generics.MetaSel
-                                                 ('GHC.Base.Just "tc_isNum")
-                                                 'GHC.Generics.NoSourceUnpackedness
-                                                 'GHC.Generics.NoSourceStrictness
-                                                 'GHC.Generics.DecidedLazy>_P
-                                              <GHC.Generics.K1
-                                                 GHC.Generics.R GHC.Types.Bool>_R) <t>_N))
-                               (GHC.Generics.:*:
-                                  @ (GHC.Generics.M1
-                                       GHC.Generics.S
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "tc_isReal")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 GHC.Types.Bool))
-                                  @ (GHC.Generics.M1
-                                       GHC.Generics.S
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "tc_isString")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 GHC.Types.Bool))
-                                  @ t
-                                  a2
-                                    `cast`
-                                  (Trans
-                                       (Sym (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P <GHC.Types.Bool>_R <t>_P))
-                                       (Sym (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "tc_isReal")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R GHC.Types.Bool>_R) <t>_N))
-                                  a3
-                                    `cast`
-                                  (Trans
-                                       (Sym (GHC.Generics.N:K1[0]
-                                                 <GHC.Generics.R>_P <GHC.Types.Bool>_R <t>_P))
-                                       (Sym (GHC.Generics.N:M1[0]
-                                                 <GHC.Generics.S>_P
-                                                 <'GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "tc_isString")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy>_P
-                                                 <GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    GHC.Types.Bool>_R) <t>_N))))) }) })) -}
-56fde106672372db7934780eb3a012c3
-  $w$dGBinaryPut ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 7,
-     Strictness: <L,1*U><L,U><L,U><L,1*U><L,U><L,U><L,U(U,U,1*U)>,
-     Inline: [0],
-     Unfolding: (\ @ t
-                   (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Data.Text.Internal.Text) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case ww6 of ww7 { Data.Text.Internal.Text ww8 ww9 ww10 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww8
-                                  ww9
-                                  ww10 }) of ww7 { (#,#) ww8 ww9 ->
-                        ww9 }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput1
-                               (Text.Parsec.Pos.SourcePos ww3 ww4 ww5) of ww7 { (#,#) ww8 ww9 ->
-                        ww9 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput1
-                               (Text.Parsec.Pos.SourcePos ww ww1 ww2) of ww7 { (#,#) ww8 ww9 ->
-                        ww9 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-9b2494e9c39c8f4bc8e5c573fbb34bc8
-  $w$dGHashable1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            'GHC.Base.Nothing
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-         a1
-    -> GHC.Prim.Int#
-  {- Arity: 3, HasNoCafRefs, Strictness: <S,U><S,U><S,1*U>,
-     Inline: [0] -}
-6bd703dd71d21cdce392f6f6a8479af9
-  $w$dGHashable2 ::
-    GHC.Prim.Int#
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            'GHC.Base.Nothing
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-         a1
-    -> GHC.Generics.M1
-         GHC.Generics.S
-         ('GHC.Generics.MetaSel
-            'GHC.Base.Nothing
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.Sort)
-         a1
-    -> GHC.Prim.Int#
-  {- Arity: 3, HasNoCafRefs, Strictness: <S,U><S,1*U><S,1*U>,
-     Inline: [0] -}
-a6966b886e7b3464610ba3c6b0aa2646
-  $w$dGSumGet ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            (GHC.Generics.M1
-               GHC.Generics.S
-               ('GHC.Generics.MetaSel
-                  'GHC.Base.Nothing
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-            a1)
-         r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ word
-                   @ a1
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              (GHC.Generics.M1
-                                 GHC.Generics.S
-                                 ('GHC.Generics.MetaSel
-                                    'GHC.Base.Nothing
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedStrict)
-                                 (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                              a1)
-                           r) ->
-                 Data.Text.$w$cget
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a2 :: Data.Text.Internal.Text)[OneShot] ->
-                    w i'
-                      (Data.Interned.Internal.intern
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         Language.Fixpoint.Types.Names.$fInternedSymbol
-                         a2
-                           `cast`
-                         (Sub (Sym (Language.Fixpoint.Types.Names.D:R:UninternedSymbol[0]))))
-                        `cast`
-                      (Trans
-                           (Sym (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Language.Fixpoint.Types.Names.Symbol>_R
-                                     <a1>_P))
-                           (Trans
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.S>_P
-                                          <'GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict>_P
-                                          <GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Names.Symbol>_R))
-                                (Sym (GHC.Generics.N:M1[0]
-                                          <GHC.Generics.C>_P
-                                          <'GHC.Generics.MetaCons
-                                             "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                          <GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                'GHC.Base.Nothing
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedStrict)
-                                             (GHC.Generics.Rec0
-                                                Language.Fixpoint.Types.Names.Symbol)>_R)) <a1>_N)))) -}
-1d5866ce443ac162980df71daab7500f
-  $w$dGSumPut ::
-    Data.Binary.Class.Binary w =>
-    w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-         a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 3,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,1*U(A,U(U,U,1*U),A)>,
-     Inline: [0],
-     Unfolding: (\ @ w
-                   @ a1
-                   (w1 :: Data.Binary.Class.Binary w)
-                   (w2 :: w)
-                   (w3 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "FObj" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  'GHC.Base.Nothing
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedStrict)
-                               (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.Symbol))
-                            a1) ->
-                 case w2 of code { DEFAULT ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput7
-                               (case w3
-                                       `cast`
-                                     (Trans
-                                          (Trans
-                                               (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.C>_P
-                                                    <'GHC.Generics.MetaCons
-                                                       "FObj"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False>_P
-                                                    <GHC.Generics.M1
-                                                       GHC.Generics.S
-                                                       ('GHC.Generics.MetaSel
-                                                          'GHC.Base.Nothing
-                                                          'GHC.Generics.NoSourceUnpackedness
-                                                          'GHC.Generics.SourceStrict
-                                                          'GHC.Generics.DecidedStrict)
-                                                       (GHC.Generics.Rec0
-                                                          Language.Fixpoint.Types.Names.Symbol)>_R)
-                                               (GHC.Generics.N:M1[0]
-                                                    <GHC.Generics.S>_P
-                                                    <'GHC.Generics.MetaSel
-                                                       'GHC.Base.Nothing
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.SourceStrict
-                                                       'GHC.Generics.DecidedStrict>_P
-                                                    <GHC.Generics.K1
-                                                       GHC.Generics.R
-                                                       Language.Fixpoint.Types.Names.Symbol>_R) <a1>_N)
-                                          (GHC.Generics.N:K1[0]
-                                               <GHC.Generics.R>_P
-                                               <Language.Fixpoint.Types.Names.Symbol>_R
-                                               <a1>_P)) of wild { Language.Fixpoint.Types.Names.S dt ds ds2 ->
-                                case ds of ww { Data.Text.Internal.Text ww1 ww2 ww3 ->
-                                Data.Text.Encoding.$wencodeUtf8
-                                  ww1
-                                  ww2
-                                  ww3 } }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case (Data.Binary.Class.put @ w w1 code)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                        w8 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #) }) -}
-a2e7768b5f4c5c456baf2301034c4449
-  $wbkAbs ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> (# [GHC.Types.Int], Language.Fixpoint.Types.Sorts.Sort #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-7e9b37397194098a8eaba2fdbf7016ab
-  $wfTyconSort ::
-    Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Sorts.TCInfo
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 6, Strictness: <L,U><L,U><S,U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Data.Text.Internal.Text)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (ww5 :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww2 dt1) of wild2 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild3 { Language.Fixpoint.Types.Spans.Loc ds7 ds8 ds9 ->
-                      case ds9 of wild4 { Language.Fixpoint.Types.Names.S dt2 ds10 ds11 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww2 dt2) of wild5 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild6 { Language.Fixpoint.Types.Spans.Loc ds12 ds13 ds14 ->
-                           case ds14 of wild7 { Language.Fixpoint.Types.Names.S dt3 ds15 ds16 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 dt3) of wild8 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.FTC
-                                  (Language.Fixpoint.Types.Sorts.TC
-                                     (Language.Fixpoint.Types.Spans.Loc
-                                        @ Language.Fixpoint.Types.Names.Symbol
-                                        ww
-                                        ww1
-                                        (Language.Fixpoint.Types.Names.S ww2 ww3 ww4))
-                                     ww5)
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                   GHC.Types.True -> Language.Fixpoint.Types.Sorts.FInt } } }) -}
-ca30c2f1a0bb1ae2e563e26512d60fec
-  $wgo ::
-    [Language.Fixpoint.Types.Sorts.TCInfo]
-    -> (# GHC.Types.Bool, GHC.Types.Bool, GHC.Types.Bool #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-08024de07df3163a4e201bc99dd62b01
-  $wgo1 ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> (# Language.Fixpoint.Types.Sorts.Sort,
-          [Language.Fixpoint.Types.Sorts.Sort] #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0] -}
-b64ff8048b24d22618465715fb5dd2df
-  $wgo2 ::
-    [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> (# Language.Fixpoint.Types.Sorts.Sort,
-          [Language.Fixpoint.Types.Sorts.Sort] #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>, Inline: [0] -}
-81db9a90e3a327733e9fcf68aca30518
-  $wgo3 ::
-    [GHC.Types.Int]
-    -> [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> (# [GHC.Types.Int], [Language.Fixpoint.Types.Sorts.Sort],
-          Language.Fixpoint.Types.Sorts.Sort #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U><L,U><S,1*U>,
-     Inline: [0] -}
-5cc8c3d0d60256c115031ed0db8e6236
-  $wpoly_go1 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-b8dbb8670fabfbc959c4e3c9d0a47a20
-  $wpoly_go2 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-402c177fc699f05dd97dbf4130d9008b
-  data FTycon
-    = TC Language.Fixpoint.Types.Names.LocSymbol
-         Language.Fixpoint.Types.Sorts.TCInfo
-402c177fc699f05dd97dbf4130d9008b
-  axiom Rep_FTycon::
-      GHC.Generics.Rep Language.Fixpoint.Types.Sorts.FTycon
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "FTycon"
-               "Language.Fixpoint.Types.Sorts"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "TC" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Names.LocSymbol)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 Language.Fixpoint.Types.Sorts.TCInfo)))
-402c177fc699f05dd97dbf4130d9008b
-  axiom Rep_Sort::
-      GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sort
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Sort"
-               "Language.Fixpoint.Types.Sorts"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (((GHC.Generics.C1
-                 ('GHC.Generics.MetaCons
-                    "FInt" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                 GHC.Generics.U1
-               GHC.Generics.:+: GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "FReal" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-              GHC.Generics.:+: (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "FNum" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1
-                                GHC.Generics.:+: (GHC.Generics.C1
-                                                    ('GHC.Generics.MetaCons
-                                                       "FFrac"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    GHC.Generics.U1
-                                                  GHC.Generics.:+: GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "FObj"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           Language.Fixpoint.Types.Names.Symbol)))))
-             GHC.Generics.:+: ((GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "FVar" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        'GHC.Base.Nothing
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedUnpack)
-                                     (GHC.Generics.Rec0 GHC.Types.Int))
-                                GHC.Generics.:+: GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "FFunc"
-                                                      'GHC.Generics.PrefixI
-                                                      'GHC.Types.False)
-                                                   (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Language.Fixpoint.Types.Sorts.Sort)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.Rec0
-                                                                          Language.Fixpoint.Types.Sorts.Sort)))
-                               GHC.Generics.:+: (GHC.Generics.C1
-                                                   ('GHC.Generics.MetaCons
-                                                      "FAbs" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                                   (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         'GHC.Base.Nothing
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedUnpack)
-                                                      (GHC.Generics.Rec0 GHC.Types.Int)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          'GHC.Base.Nothing
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedStrict)
-                                                                       (GHC.Generics.Rec0
-                                                                          Language.Fixpoint.Types.Sorts.Sort))
-                                                 GHC.Generics.:+: (GHC.Generics.C1
-                                                                     ('GHC.Generics.MetaCons
-                                                                        "FTC"
-                                                                        'GHC.Generics.PrefixI
-                                                                        'GHC.Types.False)
-                                                                     (GHC.Generics.S1
-                                                                        ('GHC.Generics.MetaSel
-                                                                           'GHC.Base.Nothing
-                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                           'GHC.Generics.SourceStrict
-                                                                           'GHC.Generics.DecidedStrict)
-                                                                        (GHC.Generics.Rec0
-                                                                           Language.Fixpoint.Types.Sorts.FTycon))
-                                                                   GHC.Generics.:+: GHC.Generics.C1
-                                                                                      ('GHC.Generics.MetaCons
-                                                                                         "FApp"
-                                                                                         'GHC.Generics.PrefixI
-                                                                                         'GHC.Types.False)
-                                                                                      (GHC.Generics.S1
-                                                                                         ('GHC.Generics.MetaSel
-                                                                                            'GHC.Base.Nothing
-                                                                                            'GHC.Generics.NoSourceUnpackedness
-                                                                                            'GHC.Generics.SourceStrict
-                                                                                            'GHC.Generics.DecidedStrict)
-                                                                                         (GHC.Generics.Rec0
-                                                                                            Language.Fixpoint.Types.Sorts.Sort)
-                                                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                                                          ('GHC.Generics.MetaSel
-                                                                                                             'GHC.Base.Nothing
-                                                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                                                             'GHC.Generics.SourceStrict
-                                                                                                             'GHC.Generics.DecidedStrict)
-                                                                                                          (GHC.Generics.Rec0
-                                                                                                             Language.Fixpoint.Types.Sorts.Sort))))))
-402c177fc699f05dd97dbf4130d9008b
-  axiom Rep_Sub::
-      GHC.Generics.Rep Language.Fixpoint.Types.Sorts.Sub
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Sub"
-               "Language.Fixpoint.Types.Sorts"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.True)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Sub" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0
-                     [(GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)])))
-ca30c2f1a0bb1ae2e563e26512d60fec
-  axiom Rep_TCInfo::
-      GHC.Generics.Rep Language.Fixpoint.Types.Sorts.TCInfo
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "TCInfo"
-               "Language.Fixpoint.Types.Sorts"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "TCInfo" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "tc_isNum")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 GHC.Types.Bool)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "tc_isReal")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 GHC.Types.Bool)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "tc_isString")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.NoSourceStrictness
-                                                        'GHC.Generics.DecidedLazy)
-                                                     (GHC.Generics.Rec0 GHC.Types.Bool))))
-402c177fc699f05dd97dbf4130d9008b
-  data Sort
-    = FInt
-    | FReal
-    | FNum
-    | FFrac
-    | FObj !Language.Fixpoint.Types.Names.Symbol
-    | FVar {-# UNPACK #-}GHC.Types.Int
-    | FFunc !Language.Fixpoint.Types.Sorts.Sort
-            !Language.Fixpoint.Types.Sorts.Sort
-    | FAbs {-# UNPACK #-}GHC.Types.Int
-           !Language.Fixpoint.Types.Sorts.Sort
-    | FTC !Language.Fixpoint.Types.Sorts.FTycon
-    | FApp !Language.Fixpoint.Types.Sorts.Sort
-           !Language.Fixpoint.Types.Sorts.Sort
-402c177fc699f05dd97dbf4130d9008b
-  newtype Sub
-    = Sub [(GHC.Types.Int, Language.Fixpoint.Types.Sorts.Sort)]
-08f7885e1c7db5d1e9fd26f03b2c2c63
-  type TCEmb a =
-    Data.HashMap.Base.HashMap a Language.Fixpoint.Types.Sorts.FTycon
-ca30c2f1a0bb1ae2e563e26512d60fec
-  data TCInfo
-    = TCInfo {tc_isNum :: GHC.Types.Bool,
-              tc_isReal :: GHC.Types.Bool,
-              tc_isString :: GHC.Types.Bool}
-9fc3e3b3261380d669b65cbdc171b88b
-  bitVecSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Names.bitVecName of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case Language.Fixpoint.Types.Names.listConName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv dt1) of wild {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ipv dt2) of wild3 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.bitVecSort3
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.bitVecSort2
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             Language.Fixpoint.Types.Sorts.bitVecSort2
-                             Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } of dt2 { Language.Fixpoint.Types.Sorts.TC ipv3 ipv4 ->
-                 case Language.Fixpoint.Types.Names.size32Name of dt3 { Language.Fixpoint.Types.Names.S ipv5 ipv6 ipv7 ->
-                 case case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv5 dt1) of wild {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt4 ds1 ds2 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ipv5 dt4) of wild3 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.bitVecSort1
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.bitVecSort2
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             Language.Fixpoint.Types.Sorts.bitVecSort2
-                             Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } of dt4 { Language.Fixpoint.Types.Sorts.TC ipv8 ipv9 ->
-                 Language.Fixpoint.Types.Sorts.FApp
-                   (Language.Fixpoint.Types.Sorts.FTC dt2)
-                   (Language.Fixpoint.Types.Sorts.FTC dt4) } } } } }) -}
-e2e250140f3c7ede3609d6a2a5d2ebd4
-  bitVecSort1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Names.size32Name) -}
-139a6e59ad3dfd8bd3c24f31274303b1
-  bitVecSort2 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Names.listConName) -}
-cbfcebdb3bb893c2e862e43f7234fa8b
-  bitVecSort3 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Names.bitVecName) -}
-3efbde406923e7d79b41a428eddeb56b
-  bkFFunc ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe
-         (GHC.Types.Int, [Language.Fixpoint.Types.Sorts.Sort])
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ (t :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$wbkAbs
-                        t of ww { (#,#) ww1 ww2 ->
-                 case ww2 of wild {
-                   DEFAULT
-                   -> GHC.Base.Nothing
-                        @ (GHC.Types.Int, [Language.Fixpoint.Types.Sorts.Sort])
-                   Language.Fixpoint.Types.Sorts.FFunc ds ds1
-                   -> GHC.Base.Just
-                        @ (GHC.Types.Int, [Language.Fixpoint.Types.Sorts.Sort])
-                        (case GHC.List.$wgo ww1 0# of ww3 { DEFAULT -> GHC.Types.I# ww3 },
-                         case Language.Fixpoint.Types.Sorts.$wgo1
-                                wild of ww3 { (#,#) ww4 ww5 ->
-                         GHC.Types.: @ Language.Fixpoint.Types.Sorts.Sort ww4 ww5 }) } }) -}
-92013a835882e58fc8cef59c65c8ea2c
-  boolFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.boolFTyCon1
-                   Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1) -}
-001abe5f7ff90bd3ba740c315985fbb7
-  boolFTyCon1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.boolFTyCon2 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-f0693a9f5434691ad89ea0efb9c53868
-  boolFTyCon2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "bool"#) -}
-22d923a69c59fbf1c3c3d3b80b0969e5
-  boolSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.boolFTyCon1 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt ds4 ds5 ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild2 { Language.Fixpoint.Types.Spans.Loc ds6 ds7 ds8 ->
-                 case ds8 of wild3 { Language.Fixpoint.Types.Names.S dt1 ds9 ds10 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild4 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild5 { Language.Fixpoint.Types.Spans.Loc ds11 ds12 ds13 ->
-                      case ds13 of wild6 { Language.Fixpoint.Types.Names.S dt2 ds14 ds15 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt2) of wild7 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild8 { Language.Fixpoint.Types.Spans.Loc ds16 ds17 ds18 ->
-                           case ds18 of wild9 { Language.Fixpoint.Types.Names.S dt3 ds19 ds20 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt3) of wild10 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.FTC
-                                  Language.Fixpoint.Types.Sorts.boolFTyCon
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                   GHC.Types.True -> Language.Fixpoint.Types.Sorts.FInt } } } } }) -}
-73731952ee623d9c47601898fb05f715
-  boolSort1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.boolSort2 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-cb87bce3fd51c656265d98f63967c910
-  boolSort2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "num"#) -}
-99ec37855342aafd5e06d7bfffac5f48
-  boolSort3 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.boolSort4 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-ce15988a06793ae7df3411972b957636
-  boolSort4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "real"#) -}
-7706edea952506c5627dd8bbe7ae4810
-  boolSort5 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.boolSort6 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-5b2555073f1516bf64376b5b6670087f
-  boolSort6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "int"#) -}
-5c63b19014800e99d08dfb68a2254686
-  fApp ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (GHC.List.foldl'
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Language.Fixpoint.Types.Sorts.$WFApp) -}
-398d659108ca4ff3190b6fab2ce4ab10
-  fApp' ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Misc.ListNE Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$wgo2
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Sorts.Sort)
-                        w of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ Language.Fixpoint.Types.Sorts.Sort ww1 ww2 }) -}
-22827646c1f645ee866f65ee56f30fcc
-  fAppTC ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <L,1*U(U(U,U,U(U,U,U)),U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 GHC.List.foldl'
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   @ Language.Fixpoint.Types.Sorts.Sort
-                   Language.Fixpoint.Types.Sorts.$WFApp
-                   (Language.Fixpoint.Types.Sorts.fTyconSort x)) -}
-5dd7a3d6c17c995e87cf1f88dde34207
-  fObj ::
-    Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S(LLS(SLL)),U(U,U,U(U,U,U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.LocSymbol) ->
-                 Language.Fixpoint.Types.Sorts.fTyconSort
-                   (Language.Fixpoint.Types.Sorts.TC
-                      x
-                      Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1)) -}
-54e118334660a6b9b8ab68de35e9d722
-  fTyconSort ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <S(S(LLS(SLL))L),1*U(U(U,U,U(U,U,U)),U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case w of ww { Language.Fixpoint.Types.Sorts.TC ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Spans.Loc ww4 ww5 ww6 ->
-                 case ww6 of ww7 { Language.Fixpoint.Types.Names.S ww8 ww9 ww10 ->
-                 Language.Fixpoint.Types.Sorts.$wfTyconSort
-                   ww4
-                   ww5
-                   ww8
-                   ww9
-                   ww10
-                   ww2 } } }) -}
-2743e949ae7708233d72b5c54ab28250
-  fTyconSymbol ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Spans.Located
-         Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(1*U(U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TC s3 ds1 ->
-                 s3 }) -}
-3b405e725beb70a70012b60bc3c24849
-  funcSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                        Language.Fixpoint.Types.Sorts.funcSort1 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ipv dt1) of wild2 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild3 { Language.Fixpoint.Types.Spans.Loc ds7 ds8 ds9 ->
-                      case ds9 of wild4 { Language.Fixpoint.Types.Names.S dt2 ds10 ds11 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv dt2) of wild5 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild6 { Language.Fixpoint.Types.Spans.Loc ds12 ds13 ds14 ->
-                           case ds14 of wild7 { Language.Fixpoint.Types.Names.S dt3 ds15 ds16 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ipv dt3) of wild8 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.FTC
-                                  (Language.Fixpoint.Types.Sorts.TC
-                                     (Language.Fixpoint.Types.Spans.Loc
-                                        @ Language.Fixpoint.Types.Names.Symbol
-                                        Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                                        Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                                        dt)
-                                     Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1)
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                   GHC.Types.True -> Language.Fixpoint.Types.Sorts.FInt } } } }) -}
-bdb112f232d2114ebc920b567abf283a
-  funcSort1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "function"#) -}
-11d97370b121a8ef0a4def7d986212ac
-  functionSort ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe
-         ([GHC.Types.Int], [Language.Fixpoint.Types.Sorts.Sort],
-          Language.Fixpoint.Types.Sorts.Sort)
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ (s3 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case Language.Fixpoint.Types.Sorts.$wgo3
-                        (GHC.Types.[] @ GHC.Types.Int)
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Sorts.Sort)
-                        s3 of ww { (#,,#) ww1 ww2 ww3 ->
-                 case ww1 of wild {
-                   []
-                   -> case ww2 of wild1 {
-                        []
-                        -> GHC.Base.Nothing
-                             @ ([GHC.Types.Int], [Language.Fixpoint.Types.Sorts.Sort],
-                                Language.Fixpoint.Types.Sorts.Sort)
-                        : ds1 ds2
-                        -> GHC.Base.Just
-                             @ ([GHC.Types.Int], [Language.Fixpoint.Types.Sorts.Sort],
-                                Language.Fixpoint.Types.Sorts.Sort)
-                             (GHC.Types.[] @ GHC.Types.Int, wild1, ww3) }
-                   : ds1 ds2
-                   -> GHC.Base.Just
-                        @ ([GHC.Types.Int], [Language.Fixpoint.Types.Sorts.Sort],
-                           Language.Fixpoint.Types.Sorts.Sort)
-                        (wild, ww2, ww3) } }) -}
-d9966971dce7264f0aff1a7d0a9a289a
-  intFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.boolSort5
-                   Language.Fixpoint.Types.Sorts.numTcInfo) -}
-ebe09619b507dbe92e5361e5c5dd5b3d
-  intSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.boolSort5 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Sorts.FInt }) -}
-1384aa1f1f0be14cd0f1e2434c096cde
-  isFirstOrder ::
-    Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-50dc4149e3221ba9f64a6a1b3fc30d59
-  isListTC :: Language.Fixpoint.Types.Sorts.FTycon -> GHC.Types.Bool
-  {- Arity: 1,
-     Strictness: <S(S(LLS(SLL))L),1*U(1*U(A,A,U(U,A,A)),A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TC z ds1 ->
-                 case z of wild1 { Language.Fixpoint.Types.Spans.Loc ds2 ds3 ds4 ->
-                 case ds4 of wild2 { Language.Fixpoint.Types.Names.S dt ds5 ds6 ->
-                 case Language.Fixpoint.Types.Names.listConName of wild3 { Language.Fixpoint.Types.Names.S dt1 ds7 ds8 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild4 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.listLConName of wild5 { Language.Fixpoint.Types.Names.S dt2 ds9 ds10 ->
-                      GHC.Prim.tagToEnum# @ GHC.Types.Bool (GHC.Prim.==# dt dt2) }
-                   GHC.Types.True -> GHC.Types.True } } } } }) -}
-6546be8f39343882e55ad3e06f1fa162
-  isNumeric :: Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-e79863c5bcfc82a63ce88790561955aa
-  isReal :: Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-38c8c0ba321aaab302577dbd1742344c
-  isString :: Language.Fixpoint.Types.Sorts.Sort -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <S,1*U> -}
-bb6bdf8d1cf9f6c4480304436c015a14
-  listFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.listFTyCon1
-                   Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1) -}
-d2da853d589a9f9a120fd25c9c01deaf
-  listFTyCon1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.listConName of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Sorts.bitVecSort2 }) -}
-a4e35a945d04168734676a5d44e30e3c
-  mapSort ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 Language.Fixpoint.Types.Sorts.$WFApp
-                   (Language.Fixpoint.Types.Sorts.$WFApp
-                      Language.Fixpoint.Types.Sorts.mapSort1
-                      x)) -}
-826a31c7b4d7346f0dbea2ecc1095284
-  mapSort1 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Names.mapConName of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 case Language.Fixpoint.Types.Names.listConName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ipv dt1) of wild {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ipv dt2) of wild3 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.mapSort2
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1
-                             GHC.Types.True
-                             -> Language.Fixpoint.Types.Sorts.TC
-                                  Language.Fixpoint.Types.Sorts.bitVecSort2
-                                  Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             Language.Fixpoint.Types.Sorts.bitVecSort2
-                             Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1 } of dt2 { Language.Fixpoint.Types.Sorts.TC ipv3 ipv4 ->
-                 Language.Fixpoint.Types.Sorts.FTC dt2 } } }) -}
-dd30abe45e610186b32f47b6ee10fb64
-  mapSort2 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Names.mapConName) -}
-e262c0278a252326ad96c9bebda94b3b
-  mappendFTC ::
-    Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S,1*U(U,1*U(1*U,1*U,1*U))><S,1*U(A,1*U(1*U,1*U,1*U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.FTycon)
-                   (ds1 :: Language.Fixpoint.Types.Sorts.FTycon) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TC x i1 ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Sorts.TC ds2 i2 ->
-                 Language.Fixpoint.Types.Sorts.TC
-                   x
-                   (Language.Fixpoint.Types.Sorts.$fMonoidTCInfo_$cmappend
-                      i1
-                      i2) } }) -}
-30116a200ae299e51d495025e136b48f
-  mkFFunc ::
-    GHC.Types.Int
-    -> [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (i :: GHC.Types.Int)
-                   (ss :: [Language.Fixpoint.Types.Sorts.Sort]) ->
-                 case i of wild { GHC.Types.I# x ->
-                 Language.Fixpoint.Types.Sorts.mkFFunc_go
-                   (GHC.Base.build
-                      @ GHC.Types.Int
-                      (\ @ b (c :: GHC.Types.Int -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                       GHC.Enum.eftIntFB @ b c n 0# (GHC.Prim.-# x 1#)))
-                   ss }) -}
-2edfe7ff2aca892b3673c602b986046c
-  mkFFunc_go ::
-    [GHC.Types.Int]
-    -> [Language.Fixpoint.Types.Sorts.Sort]
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-1073a950279f070dd409d54acc46a6da
-  numFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.boolSort1
-                   Language.Fixpoint.Types.Sorts.numTcInfo) -}
-dc2a122227a6c0f31d39078fbe6ce015
-  numTcInfo :: Language.Fixpoint.Types.Sorts.TCInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TCInfo
-                   GHC.Types.True
-                   GHC.Types.False
-                   GHC.Types.False) -}
-1c1981a95bcafb42e8fdd18f4da80892
-  realFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.boolSort3
-                   Language.Fixpoint.Types.Sorts.realTcInfo) -}
-bc948854af7ac157c8f16f9a7de09084
-  realSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.boolSort3 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt ds4 ds5 ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild2 { Language.Fixpoint.Types.Spans.Loc ds6 ds7 ds8 ->
-                 case ds8 of wild3 { Language.Fixpoint.Types.Names.S dt1 ds9 ds10 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild4 {
-                   GHC.Types.False -> Language.Fixpoint.Types.Sorts.FReal
-                   GHC.Types.True -> Language.Fixpoint.Types.Sorts.FInt } } } } }) -}
-42396dafe17f74fbf05a39d92973a3ac
-  realTcInfo :: Language.Fixpoint.Types.Sorts.TCInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TCInfo
-                   GHC.Types.True
-                   GHC.Types.True
-                   GHC.Types.False) -}
-8c73af5e478a3d6e1947b99ea5780c13
-  setFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.setFTyCon1
-                   Language.Fixpoint.Types.Sorts.$fMonoidTCInfo1) -}
-5c284f5fc738e16d2f35d78d82498221
-  setFTyCon1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Names.setConName of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-bb3b735b09c5e2f516234bf59aa18caf
-  setSort ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 1,
-     Unfolding: (Language.Fixpoint.Types.Sorts.$WFApp
-                   Language.Fixpoint.Types.Sorts.setSort1) -}
-8cfe0d6a7c4570259c151ab3ce80d4f0
-  setSort1 :: Language.Fixpoint.Types.Sorts.Sort
-  {- Strictness: m9,
-     Unfolding: (Language.Fixpoint.Types.Sorts.FTC
-                   Language.Fixpoint.Types.Sorts.setFTyCon) -}
-aa92ff049a7f8aec49425207579a69c0
-  sortFTycon ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 case ds of wild {
-                   DEFAULT -> GHC.Base.Nothing @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.FInt
-                   -> Language.Fixpoint.Types.Sorts.sortFTycon3
-                   Language.Fixpoint.Types.Sorts.FReal
-                   -> Language.Fixpoint.Types.Sorts.sortFTycon2
-                   Language.Fixpoint.Types.Sorts.FNum
-                   -> Language.Fixpoint.Types.Sorts.sortFTycon1
-                   Language.Fixpoint.Types.Sorts.FTC c
-                   -> GHC.Base.Just @ Language.Fixpoint.Types.Sorts.FTycon c }) -}
-4c146d0088751724df40355a22718cc2
-  sortFTycon1 :: GHC.Base.Maybe Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.numFTyCon) -}
-5054ab7a11b69ca7c23f9ac4d2d5098c
-  sortFTycon2 :: GHC.Base.Maybe Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.realFTyCon) -}
-7cc1c0c7733f05ccf93e513d29dccb21
-  sortFTycon3 :: GHC.Base.Maybe Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ Language.Fixpoint.Types.Sorts.FTycon
-                   Language.Fixpoint.Types.Sorts.intFTyCon) -}
-43691848b1ac553a62bd349ff6195e42
-  sortSubst ::
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Names.Symbol
-      Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-32e95024d73de5e6bbeff8517e4ecbb3
-  strFTyCon :: Language.Fixpoint.Types.Sorts.FTycon
-  {- Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TC
-                   Language.Fixpoint.Types.Sorts.strFTyCon1
-                   Language.Fixpoint.Types.Sorts.strTcInfo) -}
-60d07411fd86aaef1bb64f7b8921c194
-  strFTyCon1 ::
-    Language.Fixpoint.Types.Spans.Located
-      Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.strFTyCon2 of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-3454158279620002d4616e2446f34a65
-  strFTyCon2 :: Language.Fixpoint.Types.Names.Symbol
-  {- Unfolding: (Language.Fixpoint.Types.Names.$fIsStringSymbol_$cfromString
-                   Language.Fixpoint.Types.Names.strConName1) -}
-c3f197f2dc52b2b1cf128955742223a1
-  strSort :: Language.Fixpoint.Types.Sorts.Sort
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.strFTyCon1 of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 case ds3 of wild1 { Language.Fixpoint.Types.Names.S dt ds4 ds5 ->
-                 case Language.Fixpoint.Types.Sorts.boolSort5 of wild2 { Language.Fixpoint.Types.Spans.Loc ds6 ds7 ds8 ->
-                 case ds8 of wild3 { Language.Fixpoint.Types.Names.S dt1 ds9 ds10 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# dt dt1) of wild4 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Sorts.boolSort3 of wild5 { Language.Fixpoint.Types.Spans.Loc ds11 ds12 ds13 ->
-                      case ds13 of wild6 { Language.Fixpoint.Types.Names.S dt2 ds14 ds15 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt2) of wild7 {
-                        GHC.Types.False
-                        -> case Language.Fixpoint.Types.Sorts.boolSort1 of wild8 { Language.Fixpoint.Types.Spans.Loc ds16 ds17 ds18 ->
-                           case ds18 of wild9 { Language.Fixpoint.Types.Names.S dt3 ds19 ds20 ->
-                           case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# dt dt3) of wild10 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Sorts.FTC
-                                  Language.Fixpoint.Types.Sorts.strFTyCon
-                             GHC.Types.True -> Language.Fixpoint.Types.Sorts.FNum } } }
-                        GHC.Types.True -> Language.Fixpoint.Types.Sorts.FReal } } }
-                   GHC.Types.True -> Language.Fixpoint.Types.Sorts.FInt } } } } }) -}
-24186f062cb4aa9ef2996d22d2ea1b35
-  strTcInfo :: Language.Fixpoint.Types.Sorts.TCInfo
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Sorts.TCInfo
-                   GHC.Types.False
-                   GHC.Types.False
-                   GHC.Types.True) -}
-2016d9cf7aad07819194e6b6c1769258
-  symbolFTycon ::
-    Language.Fixpoint.Types.Names.LocSymbol
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 1, Strictness: <S(SSS(SLL)),1*U(U,U,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (c :: Language.Fixpoint.Types.Names.LocSymbol) ->
-                 Language.Fixpoint.Types.Sorts.symbolNumInfoFTyCon
-                   c
-                   GHC.Types.False
-                   GHC.Types.False) -}
-87604c8e050166877454c1e816548baf
-  symbolNumInfoFTyCon ::
-    Language.Fixpoint.Types.Names.LocSymbol
-    -> GHC.Types.Bool
-    -> GHC.Types.Bool
-    -> Language.Fixpoint.Types.Sorts.FTycon
-  {- Arity: 3,
-     Strictness: <S(SSS(SLL)),1*U(U,U,U(U,U,U))><L,U><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.LocSymbol)
-                   (w1 :: GHC.Types.Bool)
-                   (w2 :: GHC.Types.Bool) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case ww3 of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                 case Language.Fixpoint.Types.Names.listConName of wild1 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww5 dt1) of wild {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.listLConName of wild2 { Language.Fixpoint.Types.Names.S dt2 ds1 ds2 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww5 dt2) of wild3 {
-                        GHC.Types.False
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             (Language.Fixpoint.Types.Spans.Loc
-                                @ Language.Fixpoint.Types.Names.Symbol
-                                ww1
-                                ww2
-                                (Language.Fixpoint.Types.Names.S ww5 ww6 ww7))
-                             (Language.Fixpoint.Types.Sorts.TCInfo w1 w2 GHC.Types.False)
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Sorts.TC
-                             (Language.Fixpoint.Types.Spans.Loc
-                                @ Language.Fixpoint.Types.Names.Symbol
-                                ww1
-                                ww2
-                                wild1)
-                             (Language.Fixpoint.Types.Sorts.TCInfo w1 w2 GHC.Types.False) } }
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Sorts.TC
-                        (Language.Fixpoint.Types.Spans.Loc
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           ww1
-                           ww2
-                           wild1)
-                        (Language.Fixpoint.Types.Sorts.TCInfo
-                           w1
-                           w2
-                           GHC.Types.False) } } } }) -}
-9de107747705fb614156b3ffb6133465
-  tc_isNum :: Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TCInfo ds1 ds2 ds3 ->
-                 ds1 }) -}
-3eca7361a802ae8511bb7223a73d6d3e
-  tc_isReal :: Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TCInfo ds1 ds2 ds3 ->
-                 ds2 }) -}
-6ff6bf57e6847349089ac24234f5b9e9
-  tc_isString ::
-    Language.Fixpoint.Types.Sorts.TCInfo -> GHC.Types.Bool
-  RecSel Left Language.Fixpoint.Types.Sorts.TCInfo
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Sorts.TCInfo) ->
-                 case ds of wild { Language.Fixpoint.Types.Sorts.TCInfo ds1 ds2 ds3 ->
-                 ds3 }) -}
-402c177fc699f05dd97dbf4130d9008b
-  toFixSort ::
-    Language.Fixpoint.Types.Sorts.Sort -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U> -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fBinaryFTycon
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fBinarySort
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Sorts.Sub]
-  = Language.Fixpoint.Types.Sorts.$fBinarySub
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fBinaryTCInfo
-instance Data.Data.Data [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon
-instance Data.Data.Data [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fDataSort
-instance Data.Data.Data [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fDataTCInfo
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fEqFTycon
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fEqSort
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fEqTCInfo
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fFixpointFTycon
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fFixpointSort
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fGenericFTycon
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fGenericSort
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Sorts.Sub]
-  = Language.Fixpoint.Types.Sorts.$fGenericSub
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fGenericTCInfo
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fHashableFTycon
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fHashableSort
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fMonoidSort
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fMonoidTCInfo
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fNFDataFTycon
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fNFDataSort
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Sorts.Sub]
-  = Language.Fixpoint.Types.Sorts.$fNFDataSub
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fNFDataTCInfo
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fOrdFTycon
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fOrdSort
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fOrdTCInfo
-instance GHC.Show.Show [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.$fShowFTycon
-instance GHC.Show.Show [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.$fShowSort
-instance GHC.Show.Show [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.$fShowTCInfo
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Sorts.Sub]
-  = Language.Fixpoint.Types.Sorts.Rep_Sub
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Sorts.Sort]
-  = Language.Fixpoint.Types.Sorts.Rep_Sort
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Sorts.FTycon]
-  = Language.Fixpoint.Types.Sorts.Rep_FTycon
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Sorts.TCInfo]
-  = Language.Fixpoint.Types.Sorts.Rep_TCInfo
-"SPEC/Language.Fixpoint.Types.Sorts $dmrnf @ TCInfo" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                     (GHC.Generics.Rep
-                                                                                        Language.Fixpoint.Types.Sorts.TCInfo))
-                                                                     ($dGeneric :: GHC.Generics.Generic
-                                                                                     Language.Fixpoint.Types.Sorts.TCInfo)
-                                                                     ($dNFData :: Control.DeepSeq.NFData
-                                                                                    Language.Fixpoint.Types.Sorts.TCInfo)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Sorts.TCInfo
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Sorts.$fNFDataTCInfo_$s$dmrnf
-"SPEC/Language.Fixpoint.Types.Sorts $fBinary(,) @ Int @ Sort" [ALWAYS] forall ($dBinary1 :: Data.Binary.Class.Binary
-                                                                                              Language.Fixpoint.Types.Sorts.Sort)
-                                                                              ($dBinary :: Data.Binary.Class.Binary
-                                                                                             GHC.Types.Int)
-  Data.Binary.Class.$fBinary(,) @ GHC.Types.Int
-                                @ Language.Fixpoint.Types.Sorts.Sort
-                                $dBinary
-                                $dBinary1
-  = Language.Fixpoint.Types.Sorts.$fBinarySub_$s$fBinary(,)
-"SPEC/Language.Fixpoint.Types.Sorts $fDataLocated @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                         Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Spans.$fDataLocated @ Language.Fixpoint.Types.Names.Symbol
-                                              $dData
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated
-"SPEC/Language.Fixpoint.Types.Sorts $fDataLocated_$cdataCast2 @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                     Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Spans.$fDataLocated_$cdataCast2 @ Language.Fixpoint.Types.Names.Symbol
-                                                          $dData
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cdataCast2
-"SPEC/Language.Fixpoint.Types.Sorts $fDataLocated_$cdataTypeOf @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                      Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Spans.$fDataLocated_$cdataTypeOf @ Language.Fixpoint.Types.Names.Symbol
-                                                           $dData
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cdataTypeOf
-"SPEC/Language.Fixpoint.Types.Sorts $fDataLocated_$cgunfold @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                   Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Spans.$fDataLocated_$cgunfold @ Language.Fixpoint.Types.Names.Symbol
-                                                        $dData
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$cgunfold
-"SPEC/Language.Fixpoint.Types.Sorts $fDataLocated_$ctoConstr @ Symbol" [ALWAYS] forall ($dData :: Data.Data.Data
-                                                                                                    Language.Fixpoint.Types.Names.Symbol)
-  Language.Fixpoint.Types.Spans.$fDataLocated_$ctoConstr @ Language.Fixpoint.Types.Names.Symbol
-                                                         $dData
-  = Language.Fixpoint.Types.Sorts.$fDataFTycon_$s$fDataLocated_$ctoConstr
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Spans.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Spans.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Spans.dump-hi
+++ /dev/null
@@ -1,5520 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:47.886079 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans [orphan module] [family instance module] 8002
-  interface hash: 5e1116584c1d5f93de173eb418304946
-  ABI hash: 914694383547ac6e05961eac2448df52
-  export-list hash: 7fe5850227a6e738b3508defc057da0b
-  orphan hash: be281d7c61d48c5d9603129f0c789640
-  flag hash: e95999e1c8e5e49e4aef4724d8cd8def
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Spans.atLoc
-  Language.Fixpoint.Types.Spans.dummyLoc
-  Language.Fixpoint.Types.Spans.dummyPos
-  Language.Fixpoint.Types.Spans.dummySpan
-  Language.Fixpoint.Types.Spans.locAt
-  Language.Fixpoint.Types.Spans.sourcePosElts
-  Language.Fixpoint.Types.Spans.Loc{Language.Fixpoint.Types.Spans.srcSpan}
-  Language.Fixpoint.Types.Spans.Located{Language.Fixpoint.Types.Spans.Loc loc locE val}
-  Language.Fixpoint.Types.Spans.SrcSpan{Language.Fixpoint.Types.Spans.SS sp_start sp_stop}
-  Text.Parsec.Pos.SourcePos
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.PrettyPrint
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Data da440c60016500822a3d4307ca5dea66
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.String b34df69c7b6358cd40a379c8a0a78dcf
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Typeable 9257e47d10882145c67c5b489965cfb7
-import  -/  base-4.9.1.0:Data.Typeable.Internal 0e9bdefa4325a0112d8e73b5e1e1f85d
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e:Data.Serialize bfa0e727b662cbdba896c0b5c0142f5d
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable 7d10d34251a69a2590fb6d42e4140fe6
-import  -/  hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Class 8a5b5f72682ff3e25541f7e85c3ab8dc
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  toFix adc72af29f82382843f845a7caada087
-import  -/  parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw:Text.Parsec.Pos 722d2dd11f7d41778d1cb0c7e9424b8c
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics ea99a8062a9608312218ffd7309b5391
-ef0db2a31e195b670dd5f30272ca625f
-  $cBEMzUOgtw1j9Aw6XX5qeXe :: Data.Data.Constr
-3f2056793c43e02f2ff3a6d5a5ca0ece
-  $cEQNJ5yZQ7j0HQqD1jb9GSg :: Data.Data.Constr
-3326b791adf9e0911edd64707c0fed2a
-  $fBinaryLocated ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fBinaryLocated_$cput @ a $dBinary)
-                  (Language.Fixpoint.Types.Spans.$fBinaryLocated_$cget @ a $dBinary)
-                  (Language.Fixpoint.Types.Spans.$fBinaryLocated_$cputList
-                     @ a
-                     $dBinary) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fBinaryLocated1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Spans.Located a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Spans.Located a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Spans.$w$cget
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fBinaryLocated_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fBinaryLocated1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Spans.Located a>_R)) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fBinaryLocated_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Spans.Located a -> Data.Binary.Put.Put
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S(SSS),1*U(U(U,U,U),U(U,U,U),U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (w1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 case ww2 of ww8 { Text.Parsec.Pos.SourcePos ww9 ww10 ww11 ->
-                 case Language.Fixpoint.Types.Spans.$w$cput
-                        @ a
-                        w
-                        ww5
-                        ww6
-                        ww7
-                        ww9
-                        ww10
-                        ww11
-                        ww3 of ww12 { (#,#) ww13 ww14 ->
-                 (Data.Binary.Put.PairS @ () ww13 ww14)
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fBinaryLocated_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Spans.Located a] -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)> -}
-a57eb1c4a008b6f354f3040b01a30a71
-  $fBinarySourcePos ::
-    Data.Binary.Class.Binary Text.Parsec.Pos.SourcePos
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.Parsec.Pos.SourcePos
-                  Language.Fixpoint.Types.Spans.$fBinarySourcePos_$cput
-                  Language.Fixpoint.Types.Spans.$fBinarySourcePos_$cget
-                  Language.Fixpoint.Types.Spans.$fBinarySourcePos_$cputList -}
-6e4d2332241ecdc08cd81f43451393b8
-  $fBinarySourcePos1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success Text.Parsec.Pos.SourcePos r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Text.Parsec.Pos.SourcePos r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Spans.$w$cget1 @ r ww1 ww2 ww3 ww4 w1 }) -}
-c12a8261e336f5447c2dd6e4c4f7664d
-  $fBinarySourcePos2 ::
-    Text.Parsec.Pos.SourcePos -> Data.Binary.Put.PairS ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(1*U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 case Language.Fixpoint.Types.Spans.$w$cput1
-                        w of ww { (#,#) ww1 ww2 ->
-                 Data.Binary.Put.PairS @ () ww1 ww2 }) -}
-274470323e2be7b2f2b0203b520207f4
-  $fBinarySourcePos_$cget ::
-    Data.Binary.Get.Internal.Get Text.Parsec.Pos.SourcePos
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fBinarySourcePos1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Text.Parsec.Pos.SourcePos>_R)) -}
-191ee60f787adc7e111d7b4468eaf616
-  $fBinarySourcePos_$cput ::
-    Text.Parsec.Pos.SourcePos -> Data.Binary.Put.Put
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(1*U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fBinarySourcePos2
-                  `cast`
-                (<Text.Parsec.Pos.SourcePos>_R
-                 ->_R Sym (Data.Binary.Put.N:PutM[0]) <()>_N) -}
-238939d0f91acabe26dd0a102d791918
-  $fBinarySourcePos_$cputList ::
-    [Text.Parsec.Pos.SourcePos] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated ::
-    Data.Data.Data a =>
-    Data.Data.Data (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U,U,U,U,U)>,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dData :: Data.Data.Data a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cp1Data @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgfoldl @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgunfold @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$ctoConstr @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cdataTypeOf
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cdataCast1
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cdataCast2
-                     @ a
-                     $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapT @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQl @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQr @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQ @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapQi @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapM @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapMp @ a $dData)
-                  (Language.Fixpoint.Types.Spans.$fDataLocated_$cgmapMo
-                     @ a
-                     $dData) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated1 ::
-    (Text.Parsec.Pos.SourcePos
-     -> Text.Parsec.Pos.SourcePos
-     -> a
-     -> Language.Fixpoint.Types.Spans.Located a,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: (\ @ a ->
-                 (Language.Fixpoint.Types.Spans.$WLoc @ a, GHC.Types.False)) -}
-49806f47310f943213afd6badd49c681
-  $fDataLocated2 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Spans.$fDataLocated3
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Spans.$tcLocated
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-6ae09181f9f0041e99e497436e7f81e6
-  $fDataLocated3 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   11711989137260920405##
-                   3225057830536678298##) -}
-b59f74b8d6330027606dc4761f9a2120
-  $fDataLocated4 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Spans.$fDataLocated5) -}
-674827a4b3b3f7045267e1dd94fae31f
-  $fDataLocated5 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Spans.$cEQNJ5yZQ7j0HQqD1jb9GSg
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-a475bfe2e4c9a85166df18cbeef7ac87
-  $fDataLocated6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Located"#) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cdataCast1 ::
-    Data.Data.Data a =>
-    forall (t :: * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Spans.Located a))
-  {- Arity: 3,
-     Strictness: <L,U><C(S(SLLLL)),1*C1(U(U,U,A,A,A))><L,1*C1(U)>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (f :: forall d. Data.Data.Data d => c (t d)) ->
-                 case $dTypeable
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <* -> *>_N <t>_N)
-                        (GHC.Prim.proxy#
-                           @ (* -> *)
-                           @ t) of wild { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case Language.Fixpoint.Types.Spans.$fDataLocated2 of wild1 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild2 {
-                   GHC.Types.False
-                   -> GHC.Base.Nothing @ (c (Language.Fixpoint.Types.Spans.Located a))
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Base.Nothing @ (c (Language.Fixpoint.Types.Spans.Located a))
-                        GHC.Types.True
-                        -> GHC.Base.Just
-                             @ (c (Language.Fixpoint.Types.Spans.Located a))
-                             (f @ a $dData)
-                               `cast`
-                             (<c>_R (UnsafeCo nominal t Language.Fixpoint.Types.Spans.Located <a>_N)) } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cdataCast2 ::
-    Data.Data.Data a =>
-    forall (t :: * -> * -> *) (c :: * -> *).
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c (Language.Fixpoint.Types.Spans.Located a))
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,A><L,A><L,A>,
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing
-                   @ (c (Language.Fixpoint.Types.Spans.Located a))) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cdataTypeOf ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Spans.Located a -> Data.Data.DataType
-  {- Arity: 2, Strictness: <L,A><L,A>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 Language.Fixpoint.Types.Spans.$tJhDnuonFSChJGPkHkwy5l0) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgfoldl ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> c (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 4,
-     Strictness: <L,U><C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ (c :: * -> *)
-                   (w1 :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w2 :: forall g. g -> c g)
-                   (w3 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w3 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Spans.$w$cgfoldl
-                   @ a
-                   w
-                   @ c
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapM ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> m (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 4,
-     Strictness: <L,U><S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   (w1 :: GHC.Base.Monad m)
-                   (w2 :: forall d. Data.Data.Data d => d -> m d)
-                   (w3 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w3 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Spans.$w$cgmapM
-                   @ a
-                   w
-                   @ m
-                   w1
-                   w2
-                   ww1
-                   ww2
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapMo ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> m (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 4,
-     Strictness: <L,U><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)> -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapMp ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> m (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 4,
-     Strictness: <L,U><S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U,U)>,
-     Unfolding: (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl20 :: m (Language.Fixpoint.Types.Spans.Located a)
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ (Language.Fixpoint.Types.Spans.Located a)
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Spans.Located a, GHC.Types.Bool)
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   (case eta of wild { Language.Fixpoint.Types.Spans.Loc a1 a2 a3 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl21 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl21
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ a
-                      @ (Language.Fixpoint.Types.Spans.Located a)
-                      $dData
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (a -> Language.Fixpoint.Types.Spans.Located a)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (k @ Text.Parsec.Pos.SourcePos
-                            @ (Text.Parsec.Pos.SourcePos
-                               -> a -> Language.Fixpoint.Types.Spans.Located a)
-                            Text.Parsec.Pos.$fDataSourcePos
-                            (GHC.Base.return
-                               @ m
-                               $dMonad
-                               @ (Text.Parsec.Pos.SourcePos
-                                  -> Text.Parsec.Pos.SourcePos
-                                  -> a
-                                  -> Language.Fixpoint.Types.Spans.Located a,
-                                  GHC.Types.Bool)
-                               (Language.Fixpoint.Types.Spans.$fDataLocated1 @ a))
-                              `cast`
-                            (Sym (Data.Data.N:Mp[0]
-                                      <m>_R
-                                      <Text.Parsec.Pos.SourcePos
-                                       -> Text.Parsec.Pos.SourcePos
-                                       -> a
-                                       -> Language.Fixpoint.Types.Spans.Located a>_N))
-                            a1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Text.Parsec.Pos.SourcePos
-                                    -> a -> Language.Fixpoint.Types.Spans.Located a>_N))
-                         a2)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R <a -> Language.Fixpoint.Types.Spans.Located a>_N))
-                      a3 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Spans.Located a,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl20
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ (Language.Fixpoint.Types.Spans.Located a)
-                           x' } })) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapQ ::
-    Data.Data.Data a =>
-    forall u.
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Spans.Located a -> [u]
-  {- Arity: 3, Strictness: <L,U><L,C(C1(U))><S(SSS),1*U(U,U,U)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ u
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 GHC.Types.:
-                   @ u
-                   (w1
-                      @ Text.Parsec.Pos.SourcePos
-                      Text.Parsec.Pos.$fDataSourcePos
-                      ww1)
-                   (GHC.Types.:
-                      @ u
-                      (w1
-                         @ Text.Parsec.Pos.SourcePos
-                         Text.Parsec.Pos.$fDataSourcePos
-                         ww2)
-                      (GHC.Types.: @ u (w1 @ a w ww3) (GHC.Types.[] @ u))) }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapQi ::
-    Data.Data.Data a =>
-    forall u.
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> u
-  {- Arity: 4,
-     Strictness: <L,U><S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ u
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: forall d. Data.Data.Data d => d -> u)
-                   (w3 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 case w3 of ww2 { Language.Fixpoint.Types.Spans.Loc ww3 ww4 ww5 ->
-                 case ww1 of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w2
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww3
-                   1#
-                   -> w2
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww4
-                   2# -> w2 @ a w ww5 } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapQl ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> r
-  {- Arity: 5,
-     Strictness: <L,U><C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (w1 :: r -> r' -> r)
-                   (w2 :: r)
-                   (w3 :: forall d. Data.Data.Data d => d -> r')
-                   (w4 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w4 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Spans.$w$cgmapQl
-                   @ a
-                   w
-                   @ r
-                   @ r'
-                   w1
-                   w2
-                   w3
-                   ww1
-                   ww2
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapQr ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> r
-  {- Arity: 5,
-     Strictness: <L,U><C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (5, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (w1 :: r' -> r -> r)
-                   (w2 :: r)
-                   (w3 :: forall d. Data.Data.Data d => d -> r')
-                   (w4 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w4 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 Language.Fixpoint.Types.Spans.$w$cgmapQr
-                   @ a
-                   w
-                   @ r
-                   @ r'
-                   w1
-                   w2
-                   w3
-                   ww1
-                   ww2
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgmapT ::
-    Data.Data.Data a =>
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 3,
-     Strictness: <L,U><C(C(S)),C(C1(U))><S(SSS),1*U(U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Data.Data a)
-                   (w1 :: forall b. Data.Data.Data b => b -> b)
-                   (w2 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case w1
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww1 of dt { Text.Parsec.Pos.SourcePos ipv ipv1 ipv2 ->
-                 case w1
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww2 of dt1 { Text.Parsec.Pos.SourcePos ipv3 ipv4 ipv5 ->
-                 case w1 @ a w ww3 of dt2 { DEFAULT ->
-                 Language.Fixpoint.Types.Spans.Loc @ a dt dt1 dt2 } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cgunfold ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 4, Strictness: <L,U><C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ a
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   $dData
-                   (k @ Text.Parsec.Pos.SourcePos
-                      @ (a -> Language.Fixpoint.Types.Spans.Located a)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> a -> Language.Fixpoint.Types.Spans.Located a)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (z @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> a
-                               -> Language.Fixpoint.Types.Spans.Located a)
-                            (Language.Fixpoint.Types.Spans.$WLoc @ a))))) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$cp1Data ::
-    Data.Data.Data a =>
-    Data.Typeable.Internal.Typeable
-      (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 1,
-     Strictness: <L,1*U(1*C1(U),A,A,A,A,A,A,A,A,A,A,A,A,A,A)>,
-     Unfolding: (\ @ a ($dData :: Data.Data.Data a) ->
-                 let {
-                   ds :: Data.Typeable.Internal.TypeRep
-                   = case Language.Fixpoint.Types.Spans.$fDataLocated2 of wild { Data.Typeable.Internal.TypeRep dt dt1 tc ks trs ->
-                     let {
-                       types :: [Data.Typeable.Internal.TypeRep]
-                       = GHC.Base.++
-                           @ Data.Typeable.Internal.TypeRep
-                           trs
-                           (GHC.Types.:
-                              @ Data.Typeable.Internal.TypeRep
-                              ((Data.Data.$p1Data @ a $dData)
-                                 `cast`
-                               (Data.Typeable.Internal.N:Typeable[0] <*>_N <a>_N)
-                                 (GHC.Prim.proxy# @ * @ a))
-                              (GHC.Types.[] @ Data.Typeable.Internal.TypeRep))
-                     } in
-                     case Data.Typeable.Internal.typeRepFingerprints
-                            ks
-                            types of kt_fps { DEFAULT ->
-                     case GHC.Fingerprint.fingerprintFingerprints
-                            (GHC.Types.:
-                               @ GHC.Fingerprint.Type.Fingerprint
-                               (Data.Typeable.Internal.tyConFingerprint tc)
-                               kt_fps) of dt2 { GHC.Fingerprint.Type.Fingerprint dt3 dt4 ->
-                     Data.Typeable.Internal.TypeRep dt3 dt4 tc ks types } } }
-                 } in
-                 (\ (wild :: GHC.Prim.Proxy#
-                               (Language.Fixpoint.Types.Spans.Located a)) ->
-                  ds)
-                   `cast`
-                 (Sym (Data.Typeable.Internal.N:Typeable[0]
-                           <*>_N <Language.Fixpoint.Types.Spans.Located a>_N))) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fDataLocated_$ctoConstr ::
-    Data.Data.Data a =>
-    Language.Fixpoint.Types.Spans.Located a -> Data.Data.Constr
-  {- Arity: 2, Strictness: <L,A><S,1*H>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dData :: Data.Data.Data a)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 Language.Fixpoint.Types.Spans.$cEQNJ5yZQ7j0HQqD1jb9GSg }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan ::
-    Data.Data.Data Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cp1Data
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgfoldl
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgunfold
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$ctoConstr
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cdataTypeOf
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cdataCast1
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cdataCast2
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapT
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapQl
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapQr
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapQ
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapQi
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapM
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapMp
-                  Language.Fixpoint.Types.Spans.$fDataSrcSpan_$cgmapMo -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan1 ::
-    (Text.Parsec.Pos.SourcePos
-     -> Text.Parsec.Pos.SourcePos
-     -> Language.Fixpoint.Types.Spans.SrcSpan,
-     GHC.Types.Bool)
-  {- HasNoCafRefs,
-     Unfolding: ((Language.Fixpoint.Types.Spans.$WSS,
-                  GHC.Types.False)) -}
-ef1bf0612693b4a1d8cf66e0caca15cd
-  $fDataSrcSpan2 :: Data.Data.DataRep
-  {- Strictness: m1,
-     Unfolding: (Data.Data.AlgRep
-                   Language.Fixpoint.Types.Spans.$fDataSrcSpan3) -}
-367185032804a0b270e58b70a596ae20
-  $fDataSrcSpan3 :: [Data.Data.Constr]
-  {- Strictness: m2,
-     Unfolding: (GHC.Types.:
-                   @ Data.Data.Constr
-                   Language.Fixpoint.Types.Spans.$cBEMzUOgtw1j9Aw6XX5qeXe
-                   (GHC.Types.[] @ Data.Data.Constr)) -}
-11e7817e966c68c01e4b5fa0b99ae92c
-  $fDataSrcSpan4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SrcSpan"#) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan5 ::
-    GHC.Prim.Proxy# Language.Fixpoint.Types.Spans.SrcSpan
-    -> Data.Typeable.Internal.TypeRep
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (wild :: GHC.Prim.Proxy#
-                              Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 Language.Fixpoint.Types.Spans.$fDataSrcSpan6) -}
-49e9e1b4a3d2608d33769c609f7a5b17
-  $fDataSrcSpan6 :: Data.Typeable.Internal.TypeRep
-  {- Unfolding: (case Data.Typeable.Internal.typeRepFingerprints
-                        (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                        (GHC.Types.[]
-                           @ Data.Typeable.Internal.TypeRep) of kt_fps { DEFAULT ->
-                 case GHC.Fingerprint.fingerprintFingerprints
-                        (GHC.Types.:
-                           @ GHC.Fingerprint.Type.Fingerprint
-                           Language.Fixpoint.Types.Spans.$fDataSrcSpan7
-                           kt_fps) of dt { GHC.Fingerprint.Type.Fingerprint dt1 dt2 ->
-                 Data.Typeable.Internal.TypeRep
-                   dt1
-                   dt2
-                   Language.Fixpoint.Types.Spans.$tcSrcSpan
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep)
-                   (GHC.Types.[] @ Data.Typeable.Internal.TypeRep) } }) -}
-387244ee529a89f549831ab38a00bde3
-  $fDataSrcSpan7 :: GHC.Fingerprint.Type.Fingerprint
-  {- HasNoCafRefs,
-     Unfolding: (GHC.Fingerprint.Type.Fingerprint
-                   16495729787624148680##
-                   10819508590848038093##) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cdataCast1 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d. Data.Data.Data d => c (t d))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Spans.SrcSpan)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d. Data.Data.Data d => c (t d)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Spans.SrcSpan)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cdataCast2 ::
-    Data.Typeable.Internal.Typeable t =>
-    (forall d e. (Data.Data.Data d, Data.Data.Data e) => c (t d e))
-    -> GHC.Base.Maybe (c Language.Fixpoint.Types.Spans.SrcSpan)
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ (t :: * -> * -> *)
-                   @ (c :: * -> *)
-                   ($dTypeable :: Data.Typeable.Internal.Typeable t)
-                   (ds :: forall d e.
-                          (Data.Data.Data d, Data.Data.Data e) =>
-                          c (t d e)) ->
-                 GHC.Base.Nothing @ (c Language.Fixpoint.Types.Spans.SrcSpan)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cdataTypeOf ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> Data.Data.DataType
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 Language.Fixpoint.Types.Spans.$t42RKcBSP3Cr8SwBmLTMGby) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgfoldl ::
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> c Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 3,
-     Strictness: <C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (w :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w1 :: forall g. g -> c g)
-                   (w2 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w2 of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 w @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (w @ Text.Parsec.Pos.SourcePos
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Spans.SrcSpan)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (w1
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Spans.SrcSpan)
-                         Language.Fixpoint.Types.Spans.$WSS)
-                      ww1)
-                   ww2 }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapM ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> m Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 3,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (w2 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w2 of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 Language.Fixpoint.Types.Spans.$w$cgmapM1 @ m w w1 ww1 ww2 }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapMo ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> m Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl20 :: m Language.Fixpoint.Types.Spans.SrcSpan
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Spans.SrcSpan
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Spans.SrcSpan, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   (case eta1 of wild { Language.Fixpoint.Types.Spans.SS a1 a2 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl21 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           case b1 of wild2 {
-                             GHC.Types.False
-                             -> GHC.Base.mplus
-                                  @ m
-                                  $dMonadPlus
-                                  @ (b, GHC.Types.Bool)
-                                  (GHC.Base.>>=
-                                     @ m
-                                     $dMonad
-                                     @ d
-                                     @ (b, GHC.Types.Bool)
-                                     lvl21
-                                     (\ (y' :: d) ->
-                                      GHC.Base.return
-                                        @ m
-                                        $dMonad
-                                        @ (b, GHC.Types.Bool)
-                                        (h y', GHC.Types.True)))
-                                  (GHC.Base.return
-                                     @ m
-                                     $dMonad
-                                     @ (b, GHC.Types.Bool)
-                                     (h y, GHC.Types.False))
-                             GHC.Types.True
-                             -> GHC.Base.return
-                                  @ m
-                                  $dMonad
-                                  @ (b, GHC.Types.Bool)
-                                  (h y, GHC.Types.True) } })
-                    } in
-                    k @ Text.Parsec.Pos.SourcePos
-                      @ Language.Fixpoint.Types.Spans.SrcSpan
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Spans.SrcSpan)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Spans.SrcSpan,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Spans.$fDataSrcSpan1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Text.Parsec.Pos.SourcePos
-                                    -> Text.Parsec.Pos.SourcePos
-                                    -> Language.Fixpoint.Types.Spans.SrcSpan>_N))
-                         a1)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Text.Parsec.Pos.SourcePos
-                                 -> Language.Fixpoint.Types.Spans.SrcSpan>_N))
-                      a2 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Spans.SrcSpan,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl20
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Spans.SrcSpan
-                           x' } })) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapMp ::
-    GHC.Base.MonadPlus m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> m Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 3,
-     Strictness: <S(LSLL),U(A,1*U,U,C(C1(U)))><L,C(C1(U))><L,1*U(U,U)>,
-     Unfolding: (\ @ (m :: * -> *)
-                   ($dMonadPlus :: GHC.Base.MonadPlus m)
-                   (ds :: forall d. Data.Data.Data d => d -> m d)
-                   (eta1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 let {
-                   $dMonad :: GHC.Base.Monad m = GHC.Base.$p2MonadPlus @ m $dMonadPlus
-                 } in
-                 let {
-                   lvl20 :: m Language.Fixpoint.Types.Spans.SrcSpan
-                   = GHC.Base.mzero
-                       @ m
-                       $dMonadPlus
-                       @ Language.Fixpoint.Types.Spans.SrcSpan
-                 } in
-                 GHC.Base.>>=
-                   @ m
-                   $dMonad
-                   @ (Language.Fixpoint.Types.Spans.SrcSpan, GHC.Types.Bool)
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   (case eta1 of wild { Language.Fixpoint.Types.Spans.SS a1 a2 ->
-                    let {
-                      k :: forall d b.
-                           Data.Data.Data d =>
-                           Data.Data.Mp m (d -> b) -> d -> m (b, GHC.Types.Bool)
-                        {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                      = \ @ d
-                          @ b
-                          ($dData1 :: Data.Data.Data d)
-                          (ds1 :: Data.Data.Mp m (d -> b))[OneShot]
-                          (y :: d)[OneShot] ->
-                        let {
-                          lvl21 :: m d = ds @ d $dData1 y
-                        } in
-                        GHC.Base.>>=
-                          @ m
-                          $dMonad
-                          @ (d -> b, GHC.Types.Bool)
-                          @ (b, GHC.Types.Bool)
-                          ds1 `cast` (Data.Data.N:Mp[0] <m>_R <d -> b>_N)
-                          (\ (ds2 :: (d -> b, GHC.Types.Bool)) ->
-                           case ds2 of wild1 { (,) h b1 ->
-                           GHC.Base.mplus
-                             @ m
-                             $dMonadPlus
-                             @ (b, GHC.Types.Bool)
-                             (GHC.Base.>>=
-                                @ m
-                                $dMonad
-                                @ d
-                                @ (b, GHC.Types.Bool)
-                                lvl21
-                                (\ (y' :: d) ->
-                                 GHC.Base.return
-                                   @ m
-                                   $dMonad
-                                   @ (b, GHC.Types.Bool)
-                                   (h y', GHC.Types.True)))
-                             (GHC.Base.return @ m $dMonad @ (b, GHC.Types.Bool) (h y, b1)) })
-                    } in
-                    k @ Text.Parsec.Pos.SourcePos
-                      @ Language.Fixpoint.Types.Spans.SrcSpan
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Spans.SrcSpan)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (GHC.Base.return
-                            @ m
-                            $dMonad
-                            @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> Language.Fixpoint.Types.Spans.SrcSpan,
-                               GHC.Types.Bool)
-                            Language.Fixpoint.Types.Spans.$fDataSrcSpan1)
-                           `cast`
-                         (Sym (Data.Data.N:Mp[0]
-                                   <m>_R
-                                   <Text.Parsec.Pos.SourcePos
-                                    -> Text.Parsec.Pos.SourcePos
-                                    -> Language.Fixpoint.Types.Spans.SrcSpan>_N))
-                         a1)
-                        `cast`
-                      (Sym (Data.Data.N:Mp[0]
-                                <m>_R
-                                <Text.Parsec.Pos.SourcePos
-                                 -> Language.Fixpoint.Types.Spans.SrcSpan>_N))
-                      a2 })
-                   (\ (ds1 :: (Language.Fixpoint.Types.Spans.SrcSpan,
-                               GHC.Types.Bool)) ->
-                    case ds1 of wild { (,) x' b ->
-                    case b of wild1 {
-                      GHC.Types.False -> lvl20
-                      GHC.Types.True
-                      -> GHC.Base.return
-                           @ m
-                           $dMonad
-                           @ Language.Fixpoint.Types.Spans.SrcSpan
-                           x' } })) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapQ ::
-    (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> [u]
-  {- Arity: 2, Strictness: <L,C(C1(U))><S(SS),1*U(U,U)>m2,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ u
-                   (ds :: forall d. Data.Data.Data d => d -> u)
-                   (x0 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case x0 of wild { Language.Fixpoint.Types.Spans.SS a1 a2 ->
-                 GHC.Types.:
-                   @ u
-                   (ds @ Text.Parsec.Pos.SourcePos Text.Parsec.Pos.$fDataSourcePos a1)
-                   (GHC.Types.:
-                      @ u
-                      (ds @ Text.Parsec.Pos.SourcePos Text.Parsec.Pos.$fDataSourcePos a2)
-                      (GHC.Types.[] @ u)) }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapQi ::
-    GHC.Types.Int
-    -> (forall d. Data.Data.Data d => d -> u)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> u
-  {- Arity: 3,
-     Strictness: <S(S),1*U(1*U)><C(C(S)),1*C1(C1(U))><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ u
-                   (w :: GHC.Types.Int)
-                   (w1 :: forall d. Data.Data.Data d => d -> u)
-                   (w2 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Spans.SS ww3 ww4 ->
-                 case ww1 of wild {
-                   DEFAULT -> Data.Maybe.fromJust1 @ u
-                   0#
-                   -> w1
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww3
-                   1#
-                   -> w1
-                        @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww4 } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapQl ::
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r -> r' -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w3 of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 w (w w1
-                      (w2
-                         @ Text.Parsec.Pos.SourcePos
-                         Text.Parsec.Pos.$fDataSourcePos
-                         ww1))
-                   (w2
-                      @ Text.Parsec.Pos.SourcePos
-                      Text.Parsec.Pos.$fDataSourcePos
-                      ww2) }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapQr ::
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> r
-  {- Arity: 4,
-     Strictness: <C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S(SS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ r
-                   @ r'
-                   (w :: r' -> r -> r)
-                   (w1 :: r)
-                   (w2 :: forall d. Data.Data.Data d => d -> r')
-                   (w3 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w3 of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 w (w2
-                      @ Text.Parsec.Pos.SourcePos
-                      Text.Parsec.Pos.$fDataSourcePos
-                      ww1)
-                   (w (w2
-                         @ Text.Parsec.Pos.SourcePos
-                         Text.Parsec.Pos.$fDataSourcePos
-                         ww2)
-                      w1) }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgmapT ::
-    (forall b. Data.Data.Data b => b -> b)
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 2, Strictness: <C(C(S)),C(C1(U))><S(SS),1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: forall b. Data.Data.Data b => b -> b)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case w @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww1 of dt { Text.Parsec.Pos.SourcePos ipv ipv1 ipv2 ->
-                 case w @ Text.Parsec.Pos.SourcePos
-                        Text.Parsec.Pos.$fDataSourcePos
-                        ww2 of dt1 { Text.Parsec.Pos.SourcePos ipv3 ipv4 ipv5 ->
-                 Language.Fixpoint.Types.Spans.SS dt dt1 } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cgunfold ::
-    (forall b r. Data.Data.Data b => c (b -> r) -> c r)
-    -> (forall r. r -> c r)
-    -> Data.Data.Constr
-    -> c Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 3, Strictness: <C(C(S)),C(C1(U))><L,1*C1(U)><L,A>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (c :: * -> *)
-                   (k :: forall b r. Data.Data.Data b => c (b -> r) -> c r)
-                   (z :: forall r. r -> c r)
-                   (ds :: Data.Data.Constr) ->
-                 k @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (k @ Text.Parsec.Pos.SourcePos
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Spans.SrcSpan)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (z @ (Text.Parsec.Pos.SourcePos
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Spans.SrcSpan)
-                         Language.Fixpoint.Types.Spans.$WSS))) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$cp1Data ::
-    Data.Typeable.Internal.Typeable
-      Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, Strictness: <L,A>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fDataSrcSpan5
-                  `cast`
-                (Sym (Data.Typeable.Internal.N:Typeable[0]
-                          <*>_N <Language.Fixpoint.Types.Spans.SrcSpan>_N)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fDataSrcSpan_$ctoConstr ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> Data.Data.Constr
-  {- Arity: 1, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.SS ds1 ds2 ->
-                 Language.Fixpoint.Types.Spans.$cBEMzUOgtw1j9Aw6XX5qeXe }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fEqLocated ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fEqLocated_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Spans.$fEqLocated_$c/= @ a $dEq) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fEqLocated_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)><L,U><L,U>,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (3, False, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 GHC.Classes.not
-                   (Language.Fixpoint.Types.Spans.$fEqLocated_$c== @ a $dEq x y)) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fEqLocated_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><S(LLS),1*U(A,A,U)><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a)
-                   (ds1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds2 ds3 x ->
-                 case ds1 of wild1 { Language.Fixpoint.Types.Spans.Loc ds4 ds5 y ->
-                 GHC.Classes.== @ a $dEq x y } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fEqSrcSpan :: GHC.Classes.Eq Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fEqSrcSpan_$c==
-                  Language.Fixpoint.Types.Spans.$fEqSrcSpan_$c/= -}
-78175b19733acaa6a468bb3dc2117709
-  $fEqSrcSpan_$c/= ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c/=
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fEqSrcSpan_$c== ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c==
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFixpointLocated ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(U),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fFixpointLocated_$ctoFix
-                     @ a
-                     $dFixpoint)
-                  (Language.Fixpoint.Types.Spans.$fFixpointLocated_$csimplify
-                     @ a
-                     $dFixpoint) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFixpointLocated_$csimplify ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 eta) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFixpointLocated_$ctoFix ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(C(S)L),1*U(1*C1(U),A)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dFixpoint :: Language.Fixpoint.Types.PrettyPrint.Fixpoint a)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 Language.Fixpoint.Types.PrettyPrint.toFix
-                   @ a
-                   $dFixpoint
-                   (case eta of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                    ds2 })) -}
-e8137ca5b4de88c9c6ed8a54c6a9ae8e
-  $fFixpointSourcePos ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Text.Parsec.Pos.SourcePos
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.Parsec.Pos.SourcePos
-                  Language.Fixpoint.Types.Spans.$fFixpointSourcePos_$ctoFix
-                  Language.Fixpoint.Types.Spans.$fFixpointSourcePos_$csimplify -}
-cdf0fd05906395407d014a6f5501d77e
-  $fFixpointSourcePos_$csimplify ::
-    Text.Parsec.Pos.SourcePos -> Text.Parsec.Pos.SourcePos
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Text.Parsec.Pos.SourcePos) -> eta) -}
-07e948972ff33ae2f5fdbe11e960e0bb
-  $fFixpointSourcePos_$ctoFix ::
-    Text.Parsec.Pos.SourcePos -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(SSS),1*U(1*U,U,U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 case w of ww { Text.Parsec.Pos.SourcePos ww1 ww2 ww3 ->
-                 let {
-                   s :: GHC.Base.String = Text.Parsec.Pos.$w$cshow ww1 ww2 ww3
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww4 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww4)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated ::
-    Data.Foldable.Foldable Language.Fixpoint.Types.Spans.Located
-  DFunId
-  {- HasNoCafRefs, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.Located
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfold
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldMap
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldr'
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldr'
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldl
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldl
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldl1
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldl1
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$ctoList
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cnull
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$clength
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$celem
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cminimum
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cminimum
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cproduct
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated_$cproduct -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$celem ::
-    GHC.Classes.Eq a =>
-    a -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a ($dEq :: GHC.Classes.Eq a) (eta :: a) ->
-                 let {
-                   f :: a -> GHC.Types.Bool = GHC.Classes.== @ a $dEq eta
-                 } in
-                 (\ (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                  case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 x ->
-                  (f x) `cast` (Sym (Data.Monoid.N:Any[0])) })
-                   `cast`
-                 (<Language.Fixpoint.Types.Spans.Located a>_R
-                  ->_R Data.Monoid.N:Any[0])) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cfold ::
-    GHC.Base.Monoid m => Language.Fixpoint.Types.Spans.Located m -> m
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ m
-                   ($dMonoid :: GHC.Base.Monoid m)
-                   (ds :: Language.Fixpoint.Types.Spans.Located m) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 x ->
-                 x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cfoldMap ::
-    GHC.Base.Monoid m =>
-    (a -> m) -> Language.Fixpoint.Types.Spans.Located a -> m
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,A><C(S),1*C1(U)><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ m
-                   @ a
-                   ($dMonoid :: GHC.Base.Monoid m)
-                   (f :: a -> m)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 x ->
-                 f x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cfoldl ::
-    (b -> a -> b) -> b -> Language.Fixpoint.Types.Spans.Located a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ b
-                   @ a
-                   (f :: b -> a -> b)
-                   (z :: b)
-                   (t1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case t1 of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 f z x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cfoldl1 ::
-    (a -> a -> a) -> Language.Fixpoint.Types.Spans.Located a -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (f :: a -> a -> a)
-                   (xs :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case xs of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cfoldr' ::
-    (a -> b -> b) -> b -> Language.Fixpoint.Types.Spans.Located a -> b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(C(S)),1*C1(C1(U))><L,U><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   (f :: a -> b -> b)
-                   (z0 :: b)
-                   (xs :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case xs of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 f x z0 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$clength ::
-    Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (xs :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case xs of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 GHC.Types.I# 1# }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cminimum ::
-    GHC.Classes.Ord a => Language.Fixpoint.Types.Spans.Located a -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case eta of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cnull ::
-    Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*H>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (t1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case t1 of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 GHC.Types.False }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$cproduct ::
-    GHC.Num.Num a => Language.Fixpoint.Types.Spans.Located a -> a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dNum :: GHC.Num.Num a)
-                   (eta :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case eta of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 x ->
-                 x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFoldableLocated_$ctoList ::
-    Language.Fixpoint.Types.Spans.Located a -> [a]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ a (t1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 GHC.Base.build
-                   @ a
-                   (\ @ b (c :: a -> b -> b)[OneShot] (n :: b)[OneShot] ->
-                    Language.Fixpoint.Types.Spans.$fFoldableLocated_$cfoldr'
-                      @ a
-                      @ b
-                      c
-                      n
-                      t1)) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFunctorLocated ::
-    GHC.Base.Functor Language.Fixpoint.Types.Spans.Located
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.Located
-                  Language.Fixpoint.Types.Spans.$fFunctorLocated_$cfmap
-                  Language.Fixpoint.Types.Spans.$fFunctorLocated_$c<$ -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFunctorLocated_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Spans.Located b
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S(SSL),1*U(U,U,A)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (ds :: Language.Fixpoint.Types.Spans.Located b) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc l l' x ->
-                 case eta of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Spans.Loc @ a l l' dt } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fFunctorLocated_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located b
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U)><S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (f :: a -> b)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc l l' x ->
-                 case f x of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Spans.Loc @ b l l' dt } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fGenericLocated ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fGenericLocated_$cfrom @ a)
-                  (Language.Fixpoint.Types.Spans.$fGenericLocated_$cto @ a) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fGenericLocated1 ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "loc")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "locE")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "val")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1 GHC.Generics.R a)))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Spans.Loc g1 g2 g3 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "loc")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "locE")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                       GHC.Generics.:*: GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "val")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1 GHC.Generics.R a))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "loc")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Text.Parsec.Pos.SourcePos>_R) <x>_N))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "locE")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "val")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.K1 GHC.Generics.R a))
-                       @ x
-                       g2
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "locE")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R Text.Parsec.Pos.SourcePos>_R) <x>_N))
-                       g3
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "val")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "loc")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "locE")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedStrict)
-                                                (GHC.Generics.K1
-                                                   GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "val")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedStrict)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    a))>_R) <x>_N) }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fGenericLocated_$cfrom ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> GHC.Generics.Rep (Language.Fixpoint.Types.Spans.Located a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSS),1*U(U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fGenericLocated1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Spans.Located a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Located"
-                                       "Language.Fixpoint.Types.Spans"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "loc")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "locE")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Text.Parsec.Pos.SourcePos)
-                                                          GHC.Generics.:*: GHC.Generics.M1
-                                                                             GHC.Generics.S
-                                                                             ('GHC.Generics.MetaSel
-                                                                                ('GHC.Base.Just
-                                                                                   "val")
-                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                'GHC.Generics.SourceStrict
-                                                                                'GHC.Generics.DecidedStrict)
-                                                                             (GHC.Generics.K1
-                                                                                GHC.Generics.R
-                                                                                a)))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Spans.Rep_Located[0]
-                                         <a>_N))) <x>_N) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fGenericLocated_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Spans.Located a) x
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SS(SS)),1*U(U,1*U(U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Language.Fixpoint.Types.Spans.Located a) x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Spans.Rep_Located[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Located"
-                                        "Language.Fixpoint.Types.Spans"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "loc")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "locE")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedStrict)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                Text.Parsec.Pos.SourcePos)
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "val")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedStrict)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 a)))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "loc")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                      GHC.Generics.:*: (GHC.Generics.M1
-                                                          GHC.Generics.S
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "locE")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedStrict)
-                                                          (GHC.Generics.K1
-                                                             GHC.Generics.R
-                                                             Text.Parsec.Pos.SourcePos)
-                                                        GHC.Generics.:*: GHC.Generics.M1
-                                                                           GHC.Generics.S
-                                                                           ('GHC.Generics.MetaSel
-                                                                              ('GHC.Base.Just "val")
-                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                              'GHC.Generics.SourceStrict
-                                                                              'GHC.Generics.DecidedStrict)
-                                                                           (GHC.Generics.K1
-                                                                              GHC.Generics.R
-                                                                              a))>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 case ds2 of wild1 { GHC.Generics.:*: ds3 ds4 ->
-                 Language.Fixpoint.Types.Spans.$WLoc
-                   @ a
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "loc")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                   ds3
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "locE")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                   ds4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "val")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P)) } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fGenericSrcSpan ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fGenericSrcSpan_$cfrom
-                  Language.Fixpoint.Types.Spans.$fGenericSrcSpan_$cto -}
-78175b19733acaa6a468bb3dc2117709
-  $fGenericSrcSpan1 ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               ('GHC.Base.Just "sp_start")
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.SourceStrict
-               'GHC.Generics.DecidedStrict)
-            (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "sp_stop")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case x1 of wild { Language.Fixpoint.Types.Spans.SS g1 g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "sp_start")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "sp_stop")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedStrict)
-                         (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "sp_start")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Text.Parsec.Pos.SourcePos>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "sp_stop")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R Text.Parsec.Pos.SourcePos>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "SS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "sp_start")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "sp_stop")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.K1
-                                                  GHC.Generics.R
-                                                  Text.Parsec.Pos.SourcePos)>_R) <x>_N) }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fGenericSrcSpan_$cfrom ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Spans.SrcSpan x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fGenericSrcSpan1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Spans.SrcSpan>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "SrcSpan"
-                                       "Language.Fixpoint.Types.Spans"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             ('GHC.Base.Just "sp_start")
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.SourceStrict
-                                             'GHC.Generics.DecidedStrict)
-                                          (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "sp_stop")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.SourceStrict
-                                                              'GHC.Generics.DecidedStrict)
-                                                           (GHC.Generics.K1
-                                                              GHC.Generics.R
-                                                              Text.Parsec.Pos.SourcePos))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Spans.Rep_SrcSpan[0]))) <x>_N) -}
-78175b19733acaa6a468bb3dc2117709
-  $fGenericSrcSpan_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Spans.SrcSpan x
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep Language.Fixpoint.Types.Spans.SrcSpan x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Spans.Rep_SrcSpan[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "SrcSpan"
-                                        "Language.Fixpoint.Types.Spans"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "sp_start")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedStrict)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "sp_stop")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedStrict)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R
-                                                               Text.Parsec.Pos.SourcePos))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "SS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "sp_start")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "sp_stop")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            Text.Parsec.Pos.SourcePos)>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Language.Fixpoint.Types.Spans.$WSS
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "sp_start")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "sp_stop")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict>_P
-                             <GHC.Generics.K1 GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <Text.Parsec.Pos.SourcePos>_R <x>_P)) }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fHashableLocated ::
-    Data.Hashable.Class.Hashable a =>
-    Data.Hashable.Class.Hashable
-      (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(U),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dHashable :: Data.Hashable.Class.Hashable a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fHashableLocated_$chashWithSalt
-                     @ a
-                     $dHashable)
-                  (Language.Fixpoint.Types.Spans.$fHashableLocated_$chash
-                     @ a
-                     $dHashable) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fHashableLocated_$chash ::
-    Data.Hashable.Class.Hashable a =>
-    Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a ($dHashable :: Data.Hashable.Class.Hashable a) ->
-                 Language.Fixpoint.Types.Spans.$fHashableLocated_$chashWithSalt
-                   @ a
-                   $dHashable
-                   Data.Hashable.Class.defaultSalt) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fHashableLocated_$chashWithSalt ::
-    Data.Hashable.Class.Hashable a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*C1(U),A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dHashable :: Data.Hashable.Class.Hashable a)
-                   (i :: GHC.Types.Int) ->
-                 let {
-                   f :: a -> GHC.Types.Int
-                   = Data.Hashable.Class.hashWithSalt @ a $dHashable i
-                 } in
-                 \ (x :: Language.Fixpoint.Types.Spans.Located a) ->
-                 f (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                    ds2 })) -}
-e36e02d9b1b5023897623c796e639da9
-  $fHashableSourcePos ::
-    Data.Hashable.Class.Hashable Text.Parsec.Pos.SourcePos
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.Parsec.Pos.SourcePos
-                  Language.Fixpoint.Types.Spans.$fHashableSourcePos_$chashWithSalt
-                  Language.Fixpoint.Types.Spans.$fHashableSourcePos_$chash -}
-87fa6913049529f45556a53f5f08250b
-  $fHashableSourcePos_$chash ::
-    Text.Parsec.Pos.SourcePos -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Spans.$fHashableSourcePos_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-726579ca8b1d0ddaf9b41ceea7a48cee
-  $fHashableSourcePos_$chashWithSalt ::
-    GHC.Types.Int -> Text.Parsec.Pos.SourcePos -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(SSS),1*U(1*U,U,U)>m, Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int) (w1 :: Text.Parsec.Pos.SourcePos) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Text.Parsec.Pos.SourcePos ww3 ww4 ww5 ->
-                 case Language.Fixpoint.Types.Spans.$wgo4
-                        ww3
-                        ww1
-                        0# of ww6 { (#,#) ww7 ww8 ->
-                 GHC.Types.I#
-                   (GHC.Prim.xorI#
-                      (GHC.Prim.*#
-                         (GHC.Prim.xorI#
-                            (GHC.Prim.*#
-                               (GHC.Prim.xorI# (GHC.Prim.*# ww7 16777619#) ww8)
-                               16777619#)
-                            ww4)
-                         16777619#)
-                      ww5) } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fHashableSrcSpan ::
-    Data.Hashable.Class.Hashable Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fHashableSrcSpan_$chashWithSalt
-                  Language.Fixpoint.Types.Spans.$fHashableSrcSpan_$chash -}
-78175b19733acaa6a468bb3dc2117709
-  $fHashableSrcSpan_$chash ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Int
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Spans.$fHashableSrcSpan_$chashWithSalt
-                   Data.Hashable.Class.defaultSalt) -}
-78175b19733acaa6a468bb3dc2117709
-  $fHashableSrcSpan_$chashWithSalt ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Int
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S),1*U(U)><S(S(SSS)S(SSS)),U(U(1*U,U,U),U(1*U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Spans.SS ww3 ww4 ->
-                 case ww3 of ww5 { Text.Parsec.Pos.SourcePos ww6 ww7 ww8 ->
-                 case ww4 of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                 case Language.Fixpoint.Types.Spans.$wgo4
-                        ww6
-                        ww1
-                        0# of ww13 { (#,#) ww14 ww15 ->
-                 case Language.Fixpoint.Types.Spans.$wgo1
-                        ww10
-                        (GHC.Prim.xorI#
-                           (GHC.Prim.*#
-                              (GHC.Prim.xorI#
-                                 (GHC.Prim.*#
-                                    (GHC.Prim.xorI# (GHC.Prim.*# ww14 16777619#) ww15)
-                                    16777619#)
-                                 ww7)
-                              16777619#)
-                           ww8)
-                        0# of ww16 { (#,#) ww17 ww18 ->
-                 GHC.Types.I#
-                   (GHC.Prim.xorI#
-                      (GHC.Prim.*#
-                         (GHC.Prim.xorI#
-                            (GHC.Prim.*#
-                               (GHC.Prim.xorI# (GHC.Prim.*# ww17 16777619#) ww18)
-                               16777619#)
-                            ww11)
-                         16777619#)
-                      ww12) } } } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fIsStringLocated ::
-    Data.String.IsString a =>
-    Data.String.IsString (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 2, Strictness: <C(S),1*C1(U)><L,U>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Spans.$fIsStringLocated_$cfromString
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.String.IsString a>_R
-                 ->_R Sym (Data.String.N:IsString[0]) <Language.Fixpoint.Types.Spans.Located
-                                                         a>_N) -}
-32aba2c15d0e901dbbe0eab5e05e2105
-  $fIsStringLocated1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Fixpoint.Types.dummyLoc"#) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fIsStringLocated_$cfromString ::
-    Data.String.IsString a =>
-    GHC.Base.String -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 2, Strictness: <C(S),1*C1(U)><L,U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dIsString :: Data.String.IsString a)
-                   (eta :: GHC.Base.String) ->
-                 case $dIsString `cast` (Data.String.N:IsString[0] <a>_N)
-                        eta of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Spans.Loc
-                   @ a
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   dt }) -}
-e7db40f4d21cb666fba07366f186cef8
-  $fIsStringLocated_l :: Text.Parsec.Pos.SourcePos
-  {- Strictness: m,
-     Unfolding: (Text.Parsec.Pos.SourcePos
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated1
-                   0#
-                   0#) -}
-5c898e316073c02ed4de00d3c857e47e
-  $fLocLocated ::
-    Language.Fixpoint.Types.Spans.Loc
-      (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSL),1*U(U,U,A)>m,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Spans.$fLocLocated_$csrcSpan
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Spans.N:Loc[0]
-                          <Language.Fixpoint.Types.Spans.Located a>_N)) -}
-da3be6579088a921bb15d90458b7ddbf
-  $fLocLocated_$csrcSpan ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SSL),1*U(U,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc l l' ds1 ->
-                 Language.Fixpoint.Types.Spans.SS l l' }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fNFDataLocated ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(S(SLL)S(SLL)S),1*U(U(1*U,A,A),U(1*U,A,A),U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Spans.$fNFDataLocated_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Spans.Located a>_N)) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fNFDataLocated_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Spans.Located a -> ()
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(S(SLL)S(SLL)S),1*U(U(1*U,A,A),U(1*U,A,A),U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Control.DeepSeq.NFData a)
-                   (w1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 case ww2 of ww8 { Text.Parsec.Pos.SourcePos ww9 ww10 ww11 ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        ww5 of wild1 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        ww9 of wild2 { () ->
-                 w `cast` (Control.DeepSeq.N:NFData[0] <a>_N) ww3 } } } } }) -}
-ee6fa252a3a3066f4c890ef78bfbf9c1
-  $fNFDataSourcePos ::
-    Control.DeepSeq.NFData Text.Parsec.Pos.SourcePos
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),U(1*U,A,A)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Spans.$fNFDataSourcePos_$crnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Text.Parsec.Pos.SourcePos>_N)) -}
-0d04f647a91333ff19f39a0091a3f841
-  $fNFDataSourcePos_$crnf :: Text.Parsec.Pos.SourcePos -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Text.Parsec.Pos.SourcePos) ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Char
-                        Control.DeepSeq.$fNFDataChar_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Char>_N))
-                        (Text.Parsec.Pos.sourceName x) of wild1 { () ->
-                 case x of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                 GHC.Tuple.() } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated ::
-    GHC.Classes.Ord a =>
-    GHC.Classes.Ord (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <L,U(1*U(C(C1(U)),A),C(C1(U)),A,A,A,A,A,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dOrd :: GHC.Classes.Ord a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$cp1Ord @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$ccompare @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$c< @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$c<= @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$c> @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$c>= @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$cmax @ a $dOrd)
-                  (Language.Fixpoint.Types.Spans.$fOrdLocated_$cmin @ a $dOrd) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$c< ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,1*U(A,A,U)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$c<= ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,1*U(A,A,U)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$c> ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,1*U(A,A,U)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$c>= ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,1*U(A,A,U)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$ccompare ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Types.Ordering
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,1*U(A,A,U)><L,1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 GHC.Classes.compare
-                   @ a
-                   $dOrd
-                   (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                    ds2 })
-                   (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                    ds2 })) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$cmax ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,U(U,U,U)><L,U(U,U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> y GHC.Types.GT -> x }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$cmin ::
-    GHC.Classes.Ord a =>
-    Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(LC(C(S))LLLLLL),1*U(A,1*C1(C1(U)),A,A,A,A,A,A)><L,U(U,U,U)><L,U(U,U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dOrd :: GHC.Classes.Ord a)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (y :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case GHC.Classes.compare
-                        @ a
-                        $dOrd
-                        (case x of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 })
-                        (case y of wild { Language.Fixpoint.Types.Spans.Loc ds ds1 ds2 ->
-                         ds2 }) of wild {
-                   DEFAULT -> x GHC.Types.GT -> y }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fOrdLocated_$cp1Ord ::
-    GHC.Classes.Ord a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <L,1*U(1*U(C(C1(U)),A),A,A,A,A,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a ($dOrd :: GHC.Classes.Ord a) ->
-                 Language.Fixpoint.Types.Spans.$fEqLocated
-                   @ a
-                   (GHC.Classes.$p1Ord @ a $dOrd)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan ::
-    GHC.Classes.Ord Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fEqSrcSpan
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$ccompare
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$c<
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$c<=
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$c>
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$c>=
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$cmax
-                  Language.Fixpoint.Types.Spans.$fOrdSrcSpan_$cmin -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$c< ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c<
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$c<= ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c<=
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$c> ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c>
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$c>= ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$c>=
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$ccompare ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))><S(S(SLL)S),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 Language.Fixpoint.Types.Spans.$w$ccompare
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   ww15
-                   ww16
-                   ww17
-                   ww19
-                   ww20
-                   ww21 } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$cmax ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(U,U,U),U(U,U,U))><S(S(SLL)S),1*U(U(U,U,U),U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww4 ww15 of wild {
-                   GHC.Types.LT
-                   -> Language.Fixpoint.Types.Spans.SS
-                        (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                        (Text.Parsec.Pos.SourcePos ww19 ww20 ww21)
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww5 ww16) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww5 ww16) of wild2 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Spans.SS
-                                  (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                  (Text.Parsec.Pos.SourcePos ww8 ww9 ww10)
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww6 ww17) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww6 ww17) of wild5 {
-                                       GHC.Types.False
-                                       -> Language.Fixpoint.Types.Spans.SS
-                                            (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                            (Text.Parsec.Pos.SourcePos ww8 ww9 ww10)
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww8 ww19 of wild6 {
-                                            GHC.Types.LT
-                                            -> Language.Fixpoint.Types.Spans.SS
-                                                 (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                                 (Text.Parsec.Pos.SourcePos ww19 ww20 ww21)
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww9 ww20) of wild7 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww9 ww20) of wild8 {
-                                                      GHC.Types.False
-                                                      -> Language.Fixpoint.Types.Spans.SS
-                                                           (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                                           (Text.Parsec.Pos.SourcePos ww8 ww9 ww10)
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<=# ww10 ww21) of wild9 {
-                                                           GHC.Types.False
-                                                           -> Language.Fixpoint.Types.Spans.SS
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww4
-                                                                   ww5
-                                                                   ww6)
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww8
-                                                                   ww9
-                                                                   ww10)
-                                                           GHC.Types.True
-                                                           -> Language.Fixpoint.Types.Spans.SS
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww15
-                                                                   ww16
-                                                                   ww17)
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww19
-                                                                   ww20
-                                                                   ww21) } }
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Types.Spans.SS
-                                                      (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                                      (Text.Parsec.Pos.SourcePos ww19 ww20 ww21) }
-                                            GHC.Types.GT
-                                            -> Language.Fixpoint.Types.Spans.SS
-                                                 (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                                 (Text.Parsec.Pos.SourcePos ww8 ww9 ww10) } }
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Types.Spans.SS
-                                       (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                       (Text.Parsec.Pos.SourcePos ww19 ww20 ww21) } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Spans.SS
-                             (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                             (Text.Parsec.Pos.SourcePos ww19 ww20 ww21) }
-                   GHC.Types.GT
-                   -> Language.Fixpoint.Types.Spans.SS
-                        (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                        (Text.Parsec.Pos.SourcePos ww8 ww9 ww10) } } } } } } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fOrdSrcSpan_$cmin ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(SLL)S),1*U(U(U,U,U),U(U,U,U))><S(S(SLL)S),1*U(U(U,U,U),U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 case w1 of ww11 { Language.Fixpoint.Types.Spans.SS ww12 ww13 ->
-                 case ww12 of ww14 { Text.Parsec.Pos.SourcePos ww15 ww16 ww17 ->
-                 case ww13 of ww18 { Text.Parsec.Pos.SourcePos ww19 ww20 ww21 ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww4 ww15 of wild {
-                   GHC.Types.LT
-                   -> Language.Fixpoint.Types.Spans.SS
-                        (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                        (Text.Parsec.Pos.SourcePos ww8 ww9 ww10)
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww5 ww16) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww5 ww16) of wild2 {
-                             GHC.Types.False
-                             -> Language.Fixpoint.Types.Spans.SS
-                                  (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                  (Text.Parsec.Pos.SourcePos ww19 ww20 ww21)
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww6 ww17) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww6 ww17) of wild5 {
-                                       GHC.Types.False
-                                       -> Language.Fixpoint.Types.Spans.SS
-                                            (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                            (Text.Parsec.Pos.SourcePos ww19 ww20 ww21)
-                                       GHC.Types.True
-                                       -> case GHC.Classes.$fOrd[]_$s$ccompare1 ww8 ww19 of wild6 {
-                                            GHC.Types.LT
-                                            -> Language.Fixpoint.Types.Spans.SS
-                                                 (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                                 (Text.Parsec.Pos.SourcePos ww8 ww9 ww10)
-                                            GHC.Types.EQ
-                                            -> case GHC.Prim.tagToEnum#
-                                                      @ GHC.Types.Bool
-                                                      (GHC.Prim.<# ww9 ww20) of wild7 {
-                                                 GHC.Types.False
-                                                 -> case GHC.Prim.tagToEnum#
-                                                           @ GHC.Types.Bool
-                                                           (GHC.Prim.==# ww9 ww20) of wild8 {
-                                                      GHC.Types.False
-                                                      -> Language.Fixpoint.Types.Spans.SS
-                                                           (Text.Parsec.Pos.SourcePos
-                                                              ww15
-                                                              ww16
-                                                              ww17)
-                                                           (Text.Parsec.Pos.SourcePos
-                                                              ww19
-                                                              ww20
-                                                              ww21)
-                                                      GHC.Types.True
-                                                      -> case GHC.Prim.tagToEnum#
-                                                                @ GHC.Types.Bool
-                                                                (GHC.Prim.<=# ww10 ww21) of wild9 {
-                                                           GHC.Types.False
-                                                           -> Language.Fixpoint.Types.Spans.SS
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww15
-                                                                   ww16
-                                                                   ww17)
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww19
-                                                                   ww20
-                                                                   ww21)
-                                                           GHC.Types.True
-                                                           -> Language.Fixpoint.Types.Spans.SS
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww4
-                                                                   ww5
-                                                                   ww6)
-                                                                (Text.Parsec.Pos.SourcePos
-                                                                   ww8
-                                                                   ww9
-                                                                   ww10) } }
-                                                 GHC.Types.True
-                                                 -> Language.Fixpoint.Types.Spans.SS
-                                                      (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                                      (Text.Parsec.Pos.SourcePos ww8 ww9 ww10) }
-                                            GHC.Types.GT
-                                            -> Language.Fixpoint.Types.Spans.SS
-                                                 (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                                                 (Text.Parsec.Pos.SourcePos ww19 ww20 ww21) } }
-                                  GHC.Types.True
-                                  -> Language.Fixpoint.Types.Spans.SS
-                                       (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                                       (Text.Parsec.Pos.SourcePos ww8 ww9 ww10) } }
-                        GHC.Types.True
-                        -> Language.Fixpoint.Types.Spans.SS
-                             (Text.Parsec.Pos.SourcePos ww4 ww5 ww6)
-                             (Text.Parsec.Pos.SourcePos ww8 ww9 ww10) }
-                   GHC.Types.GT
-                   -> Language.Fixpoint.Types.Spans.SS
-                        (Text.Parsec.Pos.SourcePos ww15 ww16 ww17)
-                        (Text.Parsec.Pos.SourcePos ww19 ww20 ww21) } } } } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fPPrintLocated ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fPPrintLocated_$cpprintTidy
-                     @ a
-                     $dPPrint)
-                  (Language.Fixpoint.Types.Spans.$fPPrintLocated_$cpprintPrec
-                     @ a
-                     $dPPrint) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fPPrintLocated_$cpprintPrec ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,A><L,U><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (4, True, True)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 Language.Fixpoint.Types.Spans.$fPPrintLocated_$cpprintTidy
-                   @ a
-                   $dPPrint
-                   eta
-                   eta1) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fPPrintLocated_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint a =>
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(C(S))L),1*U(1*C1(C1(U)),A)><L,U><S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint a)
-                   (k :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 x ->
-                 Language.Fixpoint.Types.PrettyPrint.pprintTidy
-                   @ a
-                   $dPPrint
-                   k
-                   x }) -}
-18171d65ae271d1eed7b0df0aeb94956
-  $fPPrintSourcePos ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Text.Parsec.Pos.SourcePos
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.Parsec.Pos.SourcePos
-                  Language.Fixpoint.Types.Spans.$fPPrintSourcePos_$cpprintTidy
-                  Language.Fixpoint.Types.Spans.$fPPrintSourcePos_$cpprintPrec -}
-cf5e6ba6d970fbede76610a63f472bd5
-  $fPPrintSourcePos1 ::
-    Text.Parsec.Pos.SourcePos -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(SSS),1*U(1*U,U,U)>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 case w of ww { Text.Parsec.Pos.SourcePos ww1 ww2 ww3 ->
-                 let {
-                   s :: GHC.Base.String = Text.Parsec.Pos.$w$cshow ww1 ww2 ww3
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s 0# of ww4 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       (Text.PrettyPrint.Annotated.HughesPJ.Str s)
-                       ww4)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }) -}
-00b3025865f39f1808b4b76b1b7b5292
-  $fPPrintSourcePos_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Spans.$fPPrintSourcePos_$cpprintTidy
-                   eta) -}
-487dab3fadaeae18d136508d6524368a
-  $fPPrintSourcePos_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Text.Parsec.Pos.SourcePos -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Text.Parsec.Pos.SourcePos) ->
-                 Language.Fixpoint.Types.Spans.$fPPrintSourcePos1 eta) -}
-78175b19733acaa6a468bb3dc2117709
-  $fPPrintSrcSpan ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$cpprintTidy
-                  Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$cpprintPrec -}
-ad0a58b4c0a9a324edd269300fec5763
-  $fPPrintSrcSpan1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "%s:%d:%d-%d:%d"#) -}
-95a781dcc6966d6115e4092a538ebfc9
-  $fPPrintSrcSpan2 ::
-    GHC.Base.String
-    -> [Text.Printf.UPrintf]
-    -> GHC.Types.Int
-    -> GHC.Types.Int
-    -> [GHC.Types.Char]
-  {- Arity: 4, Strictness: <S,1*U><L,U><L,U(U)><L,U(U)>,
-     Unfolding: (\ (fmts :: GHC.Base.String)
-                   (args :: [Text.Printf.UPrintf])
-                   (a1 :: GHC.Types.Int)
-                   (eta :: GHC.Types.Int) ->
-                 GHC.Base.map
-                   @ GHC.Types.Char
-                   @ GHC.Types.Char
-                   Text.Printf.$fIsCharChar_$cfromChar
-                   (Text.Printf.uprintfs
-                      fmts
-                      (GHC.List.reverse1
-                         @ Text.Printf.UPrintf
-                         (GHC.Types.:
-                            @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                            (Text.Printf.$wparseIntFormat @ GHC.Types.Int,
-                             Text.Printf.$fPrintfArgInt_$sformatInt eta)
-                            (GHC.Types.:
-                               @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                               (Text.Printf.$wparseIntFormat @ GHC.Types.Int,
-                                Text.Printf.$fPrintfArgInt_$sformatInt a1)
-                               args))
-                         (GHC.Types.[] @ Text.Printf.UPrintf))
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-78175b19733acaa6a468bb3dc2117709
-  $fPPrintSrcSpan_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy) ->
-                 Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$cpprintTidy eta) -}
-78175b19733acaa6a468bb3dc2117709
-  $fPPrintSrcSpan_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 Language.Fixpoint.Types.Spans.ppSrcSpan eta) -}
-8ad7c104a81faaf2708f2f423db0d88d
-  $fPPrintSrcSpan_$s$fPrintfArg[]_$cparseFormat ::
-    [GHC.Types.Char] -> Text.Printf.ModifierParser
-  {- Arity: 2, Strictness: <L,A><S,1*U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds1 :: [GHC.Types.Char]) (ds2 :: [GHC.Types.Char]) ->
-                 case ds2 of wild {
-                   [] -> Text.Printf.errorShortFormat @ Text.Printf.FormatParse
-                   : c1 cs
-                   -> Text.Printf.FormatParse
-                        (GHC.Types.[] @ GHC.Types.Char)
-                        c1
-                        cs }) -}
-0ad3121342dcaf7299aaba5092852e51
-  $fSerializeSourcePos ::
-    Data.Serialize.Serialize Text.Parsec.Pos.SourcePos
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Text.Parsec.Pos.SourcePos
-                  Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$cput
-                  Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$cget -}
-6986c8d6b9b2dd8663f27e595e80776a
-  $fSerializeSourcePos1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success Text.Parsec.Pos.SourcePos r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: (\ @ r
-                   (s0 :: Data.Serialize.Get.Input)
-                   (b0 :: Data.Serialize.Get.Buffer)
-                   (m0 :: Data.Serialize.Get.More)
-                   (kf :: Data.Serialize.Get.Failure r)
-                   (ks :: Data.Serialize.Get.Success Text.Parsec.Pos.SourcePos r) ->
-                 Data.Serialize.$fSerialize(,,)1
-                   @ [GHC.Types.Char]
-                   @ GHC.Types.Int
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$s$fSerialize[]
-                   Data.Serialize.$fSerializeInt
-                   Data.Serialize.$fSerializeInt
-                   @ r
-                   s0
-                   b0
-                   m0
-                   kf
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)[OneShot]
-                      (m1 :: Data.Serialize.Get.More)[OneShot]
-                      (a1 :: (Text.Parsec.Pos.SourceName, Text.Parsec.Pos.Line,
-                              Text.Parsec.Pos.Column))[OneShot] ->
-                    ks
-                      s1
-                      b1
-                      m1
-                      (case a1 of wild { (,,) f l c ->
-                       Text.Parsec.Pos.$WSourcePos f l c }))) -}
-072af9d3918bebcf6d66bf3fdeec7d17
-  $fSerializeSourcePos_$cget ::
-    Data.Serialize.Get.Get Text.Parsec.Pos.SourcePos
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fSerializeSourcePos1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Text.Parsec.Pos.SourcePos>_R)) -}
-99b26c730314bb015d632a4b62137cdd
-  $fSerializeSourcePos_$cput ::
-    Data.Serialize.Put.Putter Text.Parsec.Pos.SourcePos
-  {- Arity: 1, Strictness: <L,U(1*U,U,U)>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 case Language.Fixpoint.Types.Spans.$w$cput2
-                        w of ww { (#,#) ww1 ww2 ->
-                 (Data.Serialize.Put.PairS @ () ww1 ww2)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }) -}
-ffd97752c6862137b7655c33b43b24be
-  $fSerializeSourcePos_$s$fSerialize[] ::
-    Data.Serialize.Serialize [GHC.Types.Char]
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ [GHC.Types.Char]
-                  (Data.Serialize.$fSerialize[]_$cput
-                     @ GHC.Types.Char
-                     Data.Serialize.$fSerializeChar)
-                  (Data.Serialize.$fSerializeNatural_$cget1
-                     @ GHC.Types.Char
-                     Data.Serialize.$fSerializeChar) -}
-78175b19733acaa6a468bb3dc2117709
-  $fSerializeSrcSpan ::
-    Data.Serialize.Serialize Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fSerializeSrcSpan_$s$dmput
-                  Language.Fixpoint.Types.Spans.$fSerializeSrcSpan_$cget -}
-78175b19733acaa6a468bb3dc2117709
-  $fSerializeSrcSpan1 ::
-    Data.Serialize.Get.Input
-    -> Data.Serialize.Get.Buffer
-    -> Data.Serialize.Get.More
-    -> Data.Serialize.Get.Failure r
-    -> Data.Serialize.Get.Success
-         Language.Fixpoint.Types.Spans.SrcSpan r
-    -> Data.Serialize.Get.Result r
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: (\ @ r
-                   (eta :: Data.Serialize.Get.Input)
-                   (eta1 :: Data.Serialize.Get.Buffer)
-                   (eta2 :: Data.Serialize.Get.More)
-                   (eta3 :: Data.Serialize.Get.Failure r)
-                   (eta4 :: Data.Serialize.Get.Success
-                              Language.Fixpoint.Types.Spans.SrcSpan r) ->
-                 Data.Serialize.$fSerialize(,,)1
-                   @ [GHC.Types.Char]
-                   @ GHC.Types.Int
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$s$fSerialize[]
-                   Data.Serialize.$fSerializeInt
-                   Data.Serialize.$fSerializeInt
-                   @ r
-                   eta
-                   eta1
-                   eta2
-                   eta3
-                   (\ (s1 :: Data.Serialize.Get.Input)
-                      (b1 :: Data.Serialize.Get.Buffer)[OneShot]
-                      (m1 :: Data.Serialize.Get.More)[OneShot]
-                      (a1 :: (Text.Parsec.Pos.SourceName, Text.Parsec.Pos.Line,
-                              Text.Parsec.Pos.Column))[OneShot] ->
-                    Data.Serialize.$fSerialize(,,)1
-                      @ [GHC.Types.Char]
-                      @ GHC.Types.Int
-                      @ GHC.Types.Int
-                      Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$s$fSerialize[]
-                      Data.Serialize.$fSerializeInt
-                      Data.Serialize.$fSerializeInt
-                      @ r
-                      s1
-                      b1
-                      m1
-                      eta3
-                      (\ (s2 :: Data.Serialize.Get.Input)
-                         (b2 :: Data.Serialize.Get.Buffer)[OneShot]
-                         (m2 :: Data.Serialize.Get.More)[OneShot]
-                         (a2 :: (Text.Parsec.Pos.SourceName, Text.Parsec.Pos.Line,
-                                 Text.Parsec.Pos.Column))[OneShot] ->
-                       eta4
-                         s2
-                         b2
-                         m2
-                         (case a1 of wild { (,,) f l c ->
-                          case l of dt { GHC.Types.I# dt1 ->
-                          case c of dt2 { GHC.Types.I# dt3 ->
-                          case a2 of wild1 { (,,) f1 l1 c1 ->
-                          case l1 of dt4 { GHC.Types.I# dt5 ->
-                          case c1 of dt6 { GHC.Types.I# dt7 ->
-                          Language.Fixpoint.Types.Spans.SS
-                            (Text.Parsec.Pos.SourcePos f dt1 dt3)
-                            (Text.Parsec.Pos.SourcePos f1 dt5 dt7) } } } } } })))) -}
-30a9b2a4305fa9735ba8ccadeb9d94de
-  $fSerializeSrcSpan2 ::
-    Data.Serialize.GSerializePut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "SrcSpan"
-            "Language.Fixpoint.Types.Spans"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            (GHC.Generics.S1
-               ('GHC.Generics.MetaSel
-                  ('GHC.Base.Just "sp_start")
-                  'GHC.Generics.NoSourceUnpackedness
-                  'GHC.Generics.SourceStrict
-                  'GHC.Generics.DecidedStrict)
-               (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-             GHC.Generics.:*: GHC.Generics.S1
-                                ('GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "sp_stop")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedStrict)
-                                (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos))))
-  {- Arity: 1, Strictness: <S,1*U(U(U,U,U),U(U,U,U))>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fSerializeSrcSpan3
-                  `cast`
-                (Trans
-                     (forall (a1 :: <*>_N).
-                      Sym (GHC.Generics.N:M1[0]
-                               <GHC.Generics.D>_P
-                               <'GHC.Generics.MetaData
-                                  "SrcSpan"
-                                  "Language.Fixpoint.Types.Spans"
-                                  "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                  'GHC.Types.False>_P
-                               <GHC.Generics.M1
-                                  GHC.Generics.C
-                                  ('GHC.Generics.MetaCons
-                                     "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                  (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "sp_start")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict)
-                                     (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "sp_stop")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedStrict)
-                                                      (GHC.Generics.Rec0
-                                                         Text.Parsec.Pos.SourcePos))>_R) <a1>_N
-                      ->_R <Data.Serialize.Put.Put>_R)
-                     (Sym (Data.Serialize.N:GSerializePut[0]
-                               <GHC.Generics.M1
-                                  GHC.Generics.D
-                                  ('GHC.Generics.MetaData
-                                     "SrcSpan"
-                                     "Language.Fixpoint.Types.Spans"
-                                     "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                     'GHC.Types.False)
-                                  (GHC.Generics.M1
-                                     GHC.Generics.C
-                                     ('GHC.Generics.MetaCons
-                                        "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                     (GHC.Generics.S1
-                                        ('GHC.Generics.MetaSel
-                                           ('GHC.Base.Just "sp_start")
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.SourceStrict
-                                           'GHC.Generics.DecidedStrict)
-                                        (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                                      GHC.Generics.:*: GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "sp_stop")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.SourceStrict
-                                                            'GHC.Generics.DecidedStrict)
-                                                         (GHC.Generics.Rec0
-                                                            Text.Parsec.Pos.SourcePos)))>_N))) -}
-769d1634f5b25f7db45014d2532f3cd1
-  $fSerializeSrcSpan3 ::
-    GHC.Generics.M1
-      GHC.Generics.C
-      ('GHC.Generics.MetaCons "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-      (GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "sp_start")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-       GHC.Generics.:*: GHC.Generics.S1
-                          ('GHC.Generics.MetaSel
-                             ('GHC.Base.Just "sp_stop")
-                             'GHC.Generics.NoSourceUnpackedness
-                             'GHC.Generics.SourceStrict
-                             'GHC.Generics.DecidedStrict)
-                          (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos))
-      a1
-    -> Data.Serialize.Put.Put
-  {- Arity: 1, Strictness: <S,1*U(U(U,U,U),U(U,U,U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: GHC.Generics.M1
-                           GHC.Generics.C
-                           ('GHC.Generics.MetaCons "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                           (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "sp_start")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "sp_stop")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos))
-                           a1) ->
-                 case w `cast`
-                      (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "SS" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "sp_start")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedStrict)
-                              (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                            GHC.Generics.:*: GHC.Generics.S1
-                                               ('GHC.Generics.MetaSel
-                                                  ('GHC.Base.Just "sp_stop")
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.SourceStrict
-                                                  'GHC.Generics.DecidedStrict)
-                                               (GHC.Generics.Rec0
-                                                  Text.Parsec.Pos.SourcePos)>_R <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case Language.Fixpoint.Types.Spans.$w$dGSerializePut
-                        @ a1
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (Data.Serialize.Put.PairS @ () ww4 ww5)
-                   `cast`
-                 (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) } }) -}
-78175b19733acaa6a468bb3dc2117709
-  $fSerializeSrcSpan_$cget ::
-    Data.Serialize.Get.Get Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 5, Strictness: <L,U><L,U><L,U><L,U><L,C(C1(C1(C1(U))))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Spans.$fSerializeSrcSpan1
-                  `cast`
-                (Sym (Data.Serialize.Get.N:Get[0]
-                          <Language.Fixpoint.Types.Spans.SrcSpan>_R)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fSerializeSrcSpan_$s$dmput ::
-    Data.Serialize.Put.Putter Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, Strictness: <S(SS),1*U(U(U,U,U),U(U,U,U))>m,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 Language.Fixpoint.Types.Spans.$fSerializeSrcSpan2
-                   `cast`
-                 (Data.Serialize.N:GSerializePut[0]
-                      (Sym (Language.Fixpoint.Types.Spans.Rep_SrcSpan[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Spans.$fGenericSrcSpan_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fShowLocated ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Spans.Located a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(A,C(U),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Types.Spans.Located a)
-                  (Language.Fixpoint.Types.Spans.$fShowLocated_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Spans.$fShowLocated_$cshow @ a $dShow)
-                  (Language.Fixpoint.Types.Spans.$fShowLocated_$cshowList
-                     @ a
-                     $dShow) -}
-f8bb1823dcea4c7918f8ff8717adfa1b
-  $fShowLocated1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# " (dummyLoc)"#) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fShowLocated_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Spans.Located a -> GHC.Base.String
-  {- Arity: 2,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><S(S(SLL)S(SLL)S),1*U(U(U,U,U),U(U,U,U),U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 case ww1 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                 case ww2 of ww8 { Text.Parsec.Pos.SourcePos ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Spans.$w$cshow
-                   @ a
-                   w
-                   ww5
-                   ww6
-                   ww7
-                   ww9
-                   ww10
-                   ww11
-                   ww3 } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fShowLocated_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Types.Spans.Located a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(A,C(U),A)><S,1*U><L,U>,
-     Unfolding: (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (ls :: [Language.Fixpoint.Types.Spans.Located a])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   (\ (x :: Language.Fixpoint.Types.Spans.Located a)
-                      (s1 :: GHC.Base.String)[OneShot] ->
-                    case x of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                    case ww1 of ww4 { Text.Parsec.Pos.SourcePos ww5 ww6 ww7 ->
-                    case ww2 of ww8 { Text.Parsec.Pos.SourcePos ww9 ww10 ww11 ->
-                    GHC.Base.++
-                      @ GHC.Types.Char
-                      (Language.Fixpoint.Types.Spans.$w$cshow
-                         @ a
-                         $dShow
-                         ww5
-                         ww6
-                         ww7
-                         ww9
-                         ww10
-                         ww11
-                         ww3)
-                      s1 } } })
-                   ls
-                   s) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fShowLocated_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Spans.Located a -> GHC.Show.ShowS
-  {- Arity: 4,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><L,A><S(S(SLL)S(SLL)S),1*U(U(U,U,U),U(U,U,U),U)><L,1*U>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Spans.Located a)
-                   (s :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c
-                      n
-                      (Language.Fixpoint.Types.Spans.$fShowLocated_$cshow @ a $dShow x))
-                   s) -}
-78175b19733acaa6a468bb3dc2117709
-  $fShowSrcSpan ::
-    GHC.Show.Show Language.Fixpoint.Types.Spans.SrcSpan
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.SrcSpan
-                  Language.Fixpoint.Types.Spans.$fShowSrcSpan_$cshowsPrec
-                  Language.Fixpoint.Types.Spans.$fShowSrcSpan_$cshow
-                  Language.Fixpoint.Types.Spans.$fShowSrcSpan_$cshowList -}
-78175b19733acaa6a468bb3dc2117709
-  $fShowSrcSpan1 ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w1 :: GHC.Base.String) ->
-                 case w of ww { Language.Fixpoint.Types.Spans.SS ww1 ww2 ->
-                 case ww1 of ww3 { Text.Parsec.Pos.SourcePos ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Text.Parsec.Pos.SourcePos ww8 ww9 ww10 ->
-                 Language.Fixpoint.Types.Spans.$w$cshowsPrec
-                   0#
-                   ww4
-                   ww5
-                   ww6
-                   ww8
-                   ww9
-                   ww10
-                   w1 } } }) -}
-459e4bf304258dacedb8ff86bb474d5b
-  $fShowSrcSpan2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "}"#) -}
-1de37a4190721571992c7495ec6496f5
-  $fShowSrcSpan3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "sp_stop = "#) -}
-6d83ac3838b274341a6b73fc997e0794
-  $fShowSrcSpan4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ", "#) -}
-27d961f83d86848a32687b100b4c25f3
-  $fShowSrcSpan5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "sp_start = "#) -}
-ff55e7c5751b12b1fb310f56d85467a8
-  $fShowSrcSpan6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "SS {"#) -}
-78175b19733acaa6a468bb3dc2117709
-  $fShowSrcSpan_$cshow ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Base.String
-  {- Arity: 1, Strictness: <S(SS),1*U(U(1*U,U,U),U(1*U,U,U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 Language.Fixpoint.Types.Spans.$fShowSrcSpan_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-78175b19733acaa6a468bb3dc2117709
-  $fShowSrcSpan_$cshowList ::
-    [Language.Fixpoint.Types.Spans.SrcSpan] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   Language.Fixpoint.Types.Spans.$fShowSrcSpan1) -}
-78175b19733acaa6a468bb3dc2117709
-  $fShowSrcSpan_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Spans.SrcSpan -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <S(S),1*U(U)><S(SS),1*U(U(1*U,U,U),U(1*U,U,U))><L,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Types.Spans.SrcSpan)
-                   (w2 :: GHC.Base.String) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Types.Spans.SS ww3 ww4 ->
-                 case ww3 of ww5 { Text.Parsec.Pos.SourcePos ww6 ww7 ww8 ->
-                 case ww4 of ww9 { Text.Parsec.Pos.SourcePos ww10 ww11 ww12 ->
-                 Language.Fixpoint.Types.Spans.$w$cshowsPrec
-                   ww1
-                   ww6
-                   ww7
-                   ww8
-                   ww10
-                   ww11
-                   ww12
-                   w2 } } } }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fTraversableLocated ::
-    Data.Traversable.Traversable Language.Fixpoint.Types.Spans.Located
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Spans.Located
-                  Language.Fixpoint.Types.Spans.$fFunctorLocated
-                  Language.Fixpoint.Types.Spans.$fFoldableLocated
-                  Language.Fixpoint.Types.Spans.$fTraversableLocated_$ctraverse
-                  Language.Fixpoint.Types.Spans.$fTraversableLocated_$csequenceA
-                  Language.Fixpoint.Types.Spans.$fTraversableLocated_$cmapM
-                  Language.Fixpoint.Types.Spans.$fTraversableLocated_$csequence -}
-3326b791adf9e0911edd64707c0fed2a
-  $fTraversableLocated_$cmapM ::
-    GHC.Base.Monad m =>
-    (a -> m b)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> m (Language.Fixpoint.Types.Spans.Located b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),1*U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),A,A,A,A)><L,1*C1(U)><S(SSS),1*U(U,U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   @ b
-                   ($dMonad :: GHC.Base.Monad m)
-                   (eta :: a -> m b)
-                   (eta1 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 Language.Fixpoint.Types.Spans.$fTraversableLocated_$ctraverse
-                   @ m
-                   @ a
-                   @ b
-                   (GHC.Base.$p1Monad @ m $dMonad)
-                   eta
-                   eta1) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fTraversableLocated_$csequence ::
-    GHC.Base.Monad m =>
-    Language.Fixpoint.Types.Spans.Located (m a)
-    -> m (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(S(C(C(S))L)LLLL)LLLL),1*U(1*U(1*U(1*C1(C1(U)),A),A,A,A,A),A,A,A,A)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (m :: * -> *)
-                   @ a
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: Language.Fixpoint.Types.Spans.Located (m a)) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 GHC.Base.fmap
-                   @ m
-                   (GHC.Base.$p1Applicative @ m (GHC.Base.$p1Monad @ m w))
-                   @ a
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   (Language.Fixpoint.Types.Spans.$WLoc @ a ww1 ww2)
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fTraversableLocated_$csequenceA ::
-    GHC.Base.Applicative f =>
-    Language.Fixpoint.Types.Spans.Located (f a)
-    -> f (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(S(C(C(S))L)LLLL),1*U(1*U(1*C1(C1(U)),A),A,A,A,A)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   (w :: GHC.Base.Applicative f)
-                   (w1 :: Language.Fixpoint.Types.Spans.Located (f a)) ->
-                 case w1 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 GHC.Base.fmap
-                   @ f
-                   (GHC.Base.$p1Applicative @ f w)
-                   @ a
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   (Language.Fixpoint.Types.Spans.$WLoc @ a ww1 ww2)
-                   ww3 }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $fTraversableLocated_$ctraverse ::
-    GHC.Base.Applicative f =>
-    (a -> f b)
-    -> Language.Fixpoint.Types.Spans.Located a
-    -> f (Language.Fixpoint.Types.Spans.Located b)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(S(C(C(S))L)LLLL),1*U(1*U(1*C1(C1(U)),A),A,A,A,A)><L,1*C1(U)><S(SSS),1*U(U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ (f :: * -> *)
-                   @ a
-                   @ b
-                   (w :: GHC.Base.Applicative f)
-                   (w1 :: a -> f b)
-                   (w2 :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case w2 of ww { Language.Fixpoint.Types.Spans.Loc ww1 ww2 ww3 ->
-                 GHC.Base.fmap
-                   @ f
-                   (GHC.Base.$p1Applicative @ f w)
-                   @ b
-                   @ (Language.Fixpoint.Types.Spans.Located b)
-                   (Language.Fixpoint.Types.Spans.$WLoc @ b ww1 ww2)
-                   (w1 ww3) }) -}
-720251df1757813b2058979fb31cb978
-  $t42RKcBSP3Cr8SwBmLTMGby :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Spans.$fDataSrcSpan4
-                   Language.Fixpoint.Types.Spans.$fDataSrcSpan2) -}
-2602b963b0526b8163681f380fadfb8c
-  $tJhDnuonFSChJGPkHkwy5l0 :: Data.Data.DataType
-  {- Strictness: m,
-     Unfolding: (Data.Data.DataType
-                   Language.Fixpoint.Types.Spans.$fDataLocated6
-                   Language.Fixpoint.Types.Spans.$fDataLocated4) -}
-7b383713945ad1b644bedfe9405081ef
-  $tc'C:Loc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15607779196087557570##
-                   12683268362814385443##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tc'C:Loc1) -}
-0c5b32ac46432c5d1054ca29e2c0e27f
-  $tc'C:Loc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Loc"#) -}
-7be70c7a78f12e05c74d75e4e38243cb
-  $tc'Loc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11470707191234826714##
-                   7278582708074253692##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tc'Loc1) -}
-07ebc105103aa96c82af471d1b398017
-  $tc'Loc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Loc"#) -}
-91422155b6c5bd40408f9876bee21f47
-  $tc'SS :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9574454909373110890##
-                   10006459098275382814##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tc'SS1) -}
-7b6aad4df487f02215651d2ed98f16ca
-  $tc'SS1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'SS"#) -}
-352d8e2cf2b92b6813ad2a71cb53d97e
-  $tcLoc :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14540235522611395765##
-                   1116109149257949023##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tcLoc1) -}
-371ef529189c734d39d9bea002711372
-  $tcLoc1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Loc"#) -}
-91dafcda7dcb702f806e2d8929c72502
-  $tcLocated :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11711989137260920405##
-                   3225057830536678298##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tcLocated1) -}
-5bbb4b52f6128c668368e91c2ec60fa5
-  $tcLocated1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Located"#) -}
-d26765748478e3008f2c8ead94870523
-  $tcSrcSpan :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16495729787624148680##
-                   10819508590848038093##
-                   Language.Fixpoint.Types.Spans.$trModule
-                   Language.Fixpoint.Types.Spans.$tcSrcSpan1) -}
-3ae1260461312a87cc4ef3433c98db66
-  $tcSrcSpan1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SrcSpan"#) -}
-d51f64b4a75c180ab9c7043ee3c4638f
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Spans.$trModule2
-                   Language.Fixpoint.Types.Spans.$trModule1) -}
-e121dc128ece9e96dd70e233b38bf36a
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Spans"#) -}
-0e970c1af63a013ff59d7221ddb84cfc
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-a8d310e6d9b284b5fe157b689091b7fe
-  $w$c/= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Base.eqString ww ww6 of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww7) of wild1 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww8) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Base.eqString ww3 ww9 of wild3 {
-                                  GHC.Types.False -> GHC.Types.True
-                                  GHC.Types.True
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww4 ww10) of wild4 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> case GHC.Prim.tagToEnum#
-                                                 @ GHC.Types.Bool
-                                                 (GHC.Prim.==# ww5 ww11) of wild5 {
-                                            GHC.Types.False -> GHC.Types.True
-                                            GHC.Types.True -> GHC.Types.False } } } } } }) -}
-208fb5fd138471812883b63e1ae18808
-  $w$c< ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> Text.Parsec.Pos.$w$c< ww3 ww4 ww5 ww9 ww10 ww11 }
-                                  GHC.Types.True -> GHC.Types.True } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-f68cb3cfe07d293b0279eab92b5a9503
-  $w$c<= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.True
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.False
-                                       GHC.Types.True
-                                       -> Text.Parsec.Pos.$w$c<= ww3 ww4 ww5 ww9 ww10 ww11 }
-                                  GHC.Types.True -> GHC.Types.True } }
-                        GHC.Types.True -> GHC.Types.True }
-                   GHC.Types.GT -> GHC.Types.False }) -}
-d1d796a57af9f7d658f301d2d53d12cc
-  $w$c== ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Base.eqString ww ww6 of wild {
-                   GHC.Types.False -> GHC.Types.False
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww7) of wild1 {
-                        GHC.Types.False -> GHC.Types.False
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww8) of wild2 {
-                             GHC.Types.False -> GHC.Types.False
-                             GHC.Types.True
-                             -> Text.Parsec.Pos.$w$c== ww3 ww4 ww5 ww9 ww10 ww11 } } }) -}
-37aa3848b4788e62f8037d27e00c83af
-  $w$c> ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> Text.Parsec.Pos.$w$c> ww3 ww4 ww5 ww9 ww10 ww11 }
-                                  GHC.Types.True -> GHC.Types.False } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-244f284b86f2311f2492413193f179ce
-  $w$c>= ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Bool
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.False
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.True
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.True
-                                       GHC.Types.True
-                                       -> Text.Parsec.Pos.$w$c>= ww3 ww4 ww5 ww9 ww10 ww11 }
-                                  GHC.Types.True -> GHC.Types.False } }
-                        GHC.Types.True -> GHC.Types.False }
-                   GHC.Types.GT -> GHC.Types.True }) -}
-bd1b8ef3717166dfa6c427142a48775f
-  $w$ccompare ::
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Types.Ordering
-  {- Arity: 12, HasNoCafRefs,
-     Strictness: <S,1*U><L,U><L,U><L,1*U><L,U><L,U><S,1*U><L,U><L,U><L,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: Text.Parsec.Pos.SourceName)
-                   (ww7 :: GHC.Prim.Int#)
-                   (ww8 :: GHC.Prim.Int#)
-                   (ww9 :: Text.Parsec.Pos.SourceName)
-                   (ww10 :: GHC.Prim.Int#)
-                   (ww11 :: GHC.Prim.Int#) ->
-                 case GHC.Classes.$fOrd[]_$s$ccompare1 ww ww6 of wild {
-                   GHC.Types.LT -> GHC.Types.LT
-                   GHC.Types.EQ
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# ww1 ww7) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww1 ww7) of wild2 {
-                             GHC.Types.False -> GHC.Types.GT
-                             GHC.Types.True
-                             -> case GHC.Prim.tagToEnum#
-                                       @ GHC.Types.Bool
-                                       (GHC.Prim.<# ww2 ww8) of wild4 {
-                                  GHC.Types.False
-                                  -> case GHC.Prim.tagToEnum#
-                                            @ GHC.Types.Bool
-                                            (GHC.Prim.==# ww2 ww8) of wild5 {
-                                       GHC.Types.False -> GHC.Types.GT
-                                       GHC.Types.True
-                                       -> Text.Parsec.Pos.$w$ccompare ww3 ww4 ww5 ww9 ww10 ww11 }
-                                  GHC.Types.True -> GHC.Types.LT } }
-                        GHC.Types.True -> GHC.Types.LT }
-                   GHC.Types.GT -> GHC.Types.GT }) -}
-3326b791adf9e0911edd64707c0fed2a
-  $w$cget ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Spans.Located a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Spans.Located a) r) ->
-                 Language.Fixpoint.Types.Spans.$w$cget1
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: Text.Parsec.Pos.SourcePos)[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Language.Fixpoint.Types.Spans.$w$cget1
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: GHC.Generics.M1
-                                  GHC.Generics.S
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "locE")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.SourceStrict
-                                     'GHC.Generics.DecidedStrict)
-                                  (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                                  GHC.Prim.Any)[OneShot] ->
-                       (Data.Binary.Class.get @ a w)
-                         `cast`
-                       (Data.Binary.Get.Internal.N:Get[0] <a>_R)
-                         @ r
-                         i'1
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString) (a3 :: a) ->
-                          w1
-                            i'2
-                            (Language.Fixpoint.Types.Spans.$WLoc
-                               @ a
-                               a1
-                               a2
-                                 `cast`
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "locE")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            Text.Parsec.Pos.SourcePos>_R <GHC.Prim.Any>_N)
-                                    (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Text.Parsec.Pos.SourcePos>_R
-                                         <GHC.Prim.Any>_P))
-                               a3)))
-                        `cast`
-                      (<Data.ByteString.Internal.ByteString>_R
-                       ->_R Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.S>_P
-                                     <'GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "locE")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.SourceStrict
-                                        'GHC.Generics.DecidedStrict>_P
-                                     <GHC.Generics.K1
-                                        GHC.Generics.R
-                                        Text.Parsec.Pos.SourcePos>_R <GHC.Prim.Any>_N)
-                                (GHC.Generics.N:K1[0]
-                                     <GHC.Generics.R>_P
-                                     <Text.Parsec.Pos.SourcePos>_R
-                                     <GHC.Prim.Any>_P)
-                       ->_R <Data.Binary.Get.Internal.Decoder r>_R) })) -}
-c90d2569526b89f9575ac1f8694ee46a
-  $w$cget1 ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success Text.Parsec.Pos.SourcePos r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Text.Parsec.Pos.SourcePos r) ->
-                 Data.Binary.Class.$w$cget10
-                   @ GHC.Types.Char
-                   Data.Binary.Class.$fBinaryChar
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: [GHC.Types.Char])[OneShot] ->
-                    case i' of ww4 { Data.ByteString.Internal.PS ww5 ww6 ww7 ww8 ->
-                    Data.Binary.Class.$w$cget9
-                      @ r
-                      ww5
-                      ww6
-                      ww7
-                      ww8
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString)
-                         (a2 :: GHC.Types.Int)[OneShot] ->
-                       case i'1 of ww9 { Data.ByteString.Internal.PS ww10 ww11 ww12 ww13 ->
-                       Data.Binary.Class.$w$cget9
-                         @ r
-                         ww10
-                         ww11
-                         ww12
-                         ww13
-                         (\ (i'2 :: Data.ByteString.Internal.ByteString)
-                            (a3 :: GHC.Types.Int)[OneShot] ->
-                          w i'2 (Text.Parsec.Pos.$WSourcePos a1 a2 a3)) }) })) -}
-3326b791adf9e0911edd64707c0fed2a
-  $w$cgfoldl ::
-    Data.Data.Data a =>
-    forall (c :: * -> *).
-    (forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-    -> (forall g. g -> c g)
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> a
-    -> c (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 6,
-     Strictness: <L,U><C(C(C(S))),C(C1(C1(U)))><L,1*C1(U)><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ (c :: * -> *)
-                   (w1 :: forall d b. Data.Data.Data d => c (d -> b) -> d -> c b)
-                   (w2 :: forall g. g -> c g)
-                   (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos)
-                   (ww2 :: a) ->
-                 w1
-                   @ a
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   w
-                   (w1
-                      @ Text.Parsec.Pos.SourcePos
-                      @ (a -> Language.Fixpoint.Types.Spans.Located a)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (w1
-                         @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> a -> Language.Fixpoint.Types.Spans.Located a)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (w2
-                            @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> a
-                               -> Language.Fixpoint.Types.Spans.Located a)
-                            (Language.Fixpoint.Types.Spans.$WLoc @ a))
-                         ww)
-                      ww1)
-                   ww2) -}
-3326b791adf9e0911edd64707c0fed2a
-  $w$cgmapM ::
-    Data.Data.Data a =>
-    forall (m :: * -> *).
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> a
-    -> m (Language.Fixpoint.Types.Spans.Located a)
-  {- Arity: 6,
-     Strictness: <L,U><S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ (m :: * -> *)
-                   (w1 :: GHC.Base.Monad m)
-                   (w2 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos)
-                   (ww2 :: a) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl20 :: m d = w2 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w1
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w1
-                          @ d
-                          @ b
-                          lvl20
-                          (\ (x' :: d) -> GHC.Base.return @ m w1 @ b (c' x')))
-                 } in
-                 k @ a
-                   @ (Language.Fixpoint.Types.Spans.Located a)
-                   w
-                   (k @ Text.Parsec.Pos.SourcePos
-                      @ (a -> Language.Fixpoint.Types.Spans.Located a)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (k @ Text.Parsec.Pos.SourcePos
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> a -> Language.Fixpoint.Types.Spans.Located a)
-                         Text.Parsec.Pos.$fDataSourcePos
-                         (GHC.Base.return
-                            @ m
-                            w1
-                            @ (Text.Parsec.Pos.SourcePos
-                               -> Text.Parsec.Pos.SourcePos
-                               -> a
-                               -> Language.Fixpoint.Types.Spans.Located a)
-                            (Language.Fixpoint.Types.Spans.$WLoc @ a))
-                         ww)
-                      ww1)
-                   ww2) -}
-78175b19733acaa6a468bb3dc2117709
-  $w$cgmapM1 ::
-    GHC.Base.Monad m =>
-    (forall d. Data.Data.Data d => d -> m d)
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> m Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 4,
-     Strictness: <S(LC(C(S))LLL),U(A,C(C1(U)),A,C(U),A)><L,C(C1(U))><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ (m :: * -> *)
-                   (w :: GHC.Base.Monad m)
-                   (w1 :: forall d. Data.Data.Data d => d -> m d)
-                   (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos) ->
-                 let {
-                   k :: forall d b. Data.Data.Data d => m (d -> b) -> d -> m b
-                     {- Arity: 3, Strictness: <L,U><L,U><L,U> -}
-                   = \ @ d
-                       @ b
-                       ($dData1 :: Data.Data.Data d)
-                       (c :: m (d -> b))[OneShot]
-                       (x :: d)[OneShot] ->
-                     let {
-                       lvl20 :: m d = w1 @ d $dData1 x
-                     } in
-                     GHC.Base.>>=
-                       @ m
-                       w
-                       @ (d -> b)
-                       @ b
-                       c
-                       (\ (c' :: d -> b) ->
-                        GHC.Base.>>=
-                          @ m
-                          w
-                          @ d
-                          @ b
-                          lvl20
-                          (\ (x' :: d) -> GHC.Base.return @ m w @ b (c' x')))
-                 } in
-                 k @ Text.Parsec.Pos.SourcePos
-                   @ Language.Fixpoint.Types.Spans.SrcSpan
-                   Text.Parsec.Pos.$fDataSourcePos
-                   (k @ Text.Parsec.Pos.SourcePos
-                      @ (Text.Parsec.Pos.SourcePos
-                         -> Language.Fixpoint.Types.Spans.SrcSpan)
-                      Text.Parsec.Pos.$fDataSourcePos
-                      (GHC.Base.return
-                         @ m
-                         w
-                         @ (Text.Parsec.Pos.SourcePos
-                            -> Text.Parsec.Pos.SourcePos
-                            -> Language.Fixpoint.Types.Spans.SrcSpan)
-                         Language.Fixpoint.Types.Spans.$WSS)
-                      ww)
-                   ww1) -}
-fe930cda1eb888be74751bea5ded1e3b
-  $w$cgmapQl ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r -> r' -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> a
-    -> r
-  {- Arity: 7,
-     Strictness: <L,U><C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (w1 :: r -> r' -> r)
-                   (w2 :: r)
-                   (w3 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos)
-                   (ww2 :: a) ->
-                 w1
-                   (w1
-                      (w1
-                         w2
-                         (w3
-                            @ Text.Parsec.Pos.SourcePos
-                            Text.Parsec.Pos.$fDataSourcePos
-                            ww))
-                      (w3
-                         @ Text.Parsec.Pos.SourcePos
-                         Text.Parsec.Pos.$fDataSourcePos
-                         ww1))
-                   (w3 @ a w ww2)) -}
-0b5b338aacd7900f304d30642cb83f38
-  $w$cgmapQr ::
-    Data.Data.Data a =>
-    forall r r'.
-    (r' -> r -> r)
-    -> r
-    -> (forall d. Data.Data.Data d => d -> r')
-    -> Text.Parsec.Pos.SourcePos
-    -> Text.Parsec.Pos.SourcePos
-    -> a
-    -> r
-  {- Arity: 7,
-     Strictness: <L,U><C(C(S)),C(C1(U))><L,U><L,C(C1(U))><S,U><S,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Data.Data a)
-                   @ r
-                   @ r'
-                   (w1 :: r' -> r -> r)
-                   (w2 :: r)
-                   (w3 :: forall d. Data.Data.Data d => d -> r')
-                   (ww :: Text.Parsec.Pos.SourcePos)
-                   (ww1 :: Text.Parsec.Pos.SourcePos)
-                   (ww2 :: a) ->
-                 w1
-                   (w3 @ Text.Parsec.Pos.SourcePos Text.Parsec.Pos.$fDataSourcePos ww)
-                   (w1
-                      (w3
-                         @ Text.Parsec.Pos.SourcePos
-                         Text.Parsec.Pos.$fDataSourcePos
-                         ww1)
-                      (w1 (w3 @ a w ww2) w2))) -}
-18754a44a860cdc6959fffae570e583b
-  $w$cput ::
-    Data.Binary.Class.Binary a =>
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> a
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 8, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(U(A,U)),A,A)><L,U><L,U><L,U><L,U><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: a) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case (Data.Binary.Class.put @ a w ww6)
-                               `cast`
-                             (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds w' ->
-                        w' }
-                    } in
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput1
-                               (Text.Parsec.Pos.SourcePos ww3 ww4 ww5) of ww7 { (#,#) ww8 ww9 ->
-                        ww9 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput1
-                               (Text.Parsec.Pos.SourcePos ww ww1 ww2) of ww7 { (#,#) ww8 ww9 ->
-                        ww9 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-9272b8fe82fce190a608ecc383f76b6a
-  $w$cput1 ::
-    Text.Parsec.Pos.SourcePos
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(1*U,U,U)>, Inline: [0],
-     Unfolding: (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 (# GHC.Tuple.(),
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cputList
-                               (case w of wild { Text.Parsec.Pos.SourcePos name dt dt1 ->
-                                name }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput1
-                               (case w of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                                GHC.Types.I# dt }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Binary.Class.$w$cput1
-                               (case w of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                                GHC.Types.I# dt1 }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta)))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-f4e31b6a8a2ffee3a18b783e51db11fc
-  $w$cput2 ::
-    Text.Parsec.Pos.SourcePos
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 1, Strictness: <L,U(1*U,U,U)>, Inline: [0],
-     Unfolding: (\ (w :: Text.Parsec.Pos.SourcePos) ->
-                 let {
-                   ds :: Data.Serialize.Put.Put
-                   = case Data.Serialize.$w$cput16
-                            (case w of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                             GHC.Types.I# dt1 }) of ww { (#,#) ww1 ww2 ->
-                     (Data.Serialize.Put.PairS @ () ww1 ww2)
-                       `cast`
-                     (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }
-                 } in
-                 (# case ds
-                           `cast`
-                         (Data.Serialize.Put.N:PutM[0] <()>_N) of wild { Data.Serialize.Put.PairS b1 w' ->
-                    b1 },
-                    let {
-                      ds1 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Serialize.$w$cput28
-                               @ GHC.Types.Char
-                               Data.Serialize.$fSerializeChar
-                               (case w of wild { Text.Parsec.Pos.SourcePos name dt dt1 ->
-                                name }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    let {
-                      ds2 :: Data.ByteString.Builder.Internal.Builder
-                      = case Data.Serialize.$w$cput16
-                               (case w of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                                GHC.Types.I# dt }) of ww { (#,#) ww1 ww2 ->
-                        ww2 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (ds2 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          (case ds
-                                  `cast`
-                                (Data.Serialize.Put.N:PutM[0] <()>_N) of wild { Data.Serialize.Put.PairS b1 w' ->
-                           w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                             @ r
-                             eta })))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-5d3f3ed1b80183f02c12ba1466c3c882
-  $w$cshow ::
-    GHC.Show.Show a =>
-    Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> a
-    -> GHC.Base.String
-  {- Arity: 8,
-     Strictness: <S(LC(S)L),1*U(A,1*C1(U),A)><S,U><L,U><L,U><S,U><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: Text.Parsec.Pos.SourceName)
-                   (ww1 :: GHC.Prim.Int#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: Text.Parsec.Pos.SourceName)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: a) ->
-                 let {
-                   $j :: GHC.Prim.Void# -> [GHC.Types.Char]
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w1 :: GHC.Prim.Void#)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       (GHC.Show.show @ a w ww6)
-                       (GHC.CString.unpackAppendCString#
-                          " defined from: "#
-                          (GHC.Base.++
-                             @ GHC.Types.Char
-                             (Text.Parsec.Pos.$w$cshow ww ww1 ww2)
-                             (GHC.CString.unpackAppendCString#
-                                " to: "#
-                                (Text.Parsec.Pos.$w$cshow ww3 ww4 ww5))))
-                 } in
-                 case GHC.Base.eqString ww ww3 of wild {
-                   GHC.Types.False -> $j GHC.Prim.void#
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww1 ww4) of wild1 {
-                        GHC.Types.False -> $j GHC.Prim.void#
-                        GHC.Types.True
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# ww2 ww5) of wild2 {
-                             GHC.Types.False -> $j GHC.Prim.void#
-                             GHC.Types.True
-                             -> case GHC.Base.eqString
-                                       ww
-                                       Language.Fixpoint.Types.Spans.$fIsStringLocated1 of wild3 {
-                                  GHC.Types.False -> $j GHC.Prim.void#
-                                  GHC.Types.True
-                                  -> case ww1 of wild4 {
-                                       DEFAULT -> $j GHC.Prim.void#
-                                       0#
-                                       -> case ww2 of wild5 {
-                                            DEFAULT -> $j GHC.Prim.void#
-                                            0#
-                                            -> GHC.Base.++
-                                                 @ GHC.Types.Char
-                                                 (GHC.Show.show @ a w ww6)
-                                                 Language.Fixpoint.Types.Spans.$fShowLocated1 } } } } } }) -}
-a8991bfa3c93961b9f2408fc9ba87bf8
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Text.Parsec.Pos.SourceName
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.String
-    -> GHC.Base.String
-  {- Arity: 8,
-     Strictness: <S,U><L,1*U><L,U><L,U><L,1*U><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Text.Parsec.Pos.SourceName)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Text.Parsec.Pos.SourceName)
-                   (ww5 :: GHC.Prim.Int#)
-                   (ww6 :: GHC.Prim.Int#)
-                   (w :: GHC.Base.String) ->
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,1*U> -}
-                   = \ (x :: GHC.Base.String)[OneShot] ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Spans.$fShowSrcSpan6
-                       (GHC.Base.++
-                          @ GHC.Types.Char
-                          Language.Fixpoint.Types.Spans.$fShowSrcSpan5
-                          (GHC.Base.++
-                             @ GHC.Types.Char
-                             (Text.Parsec.Pos.$w$cshow ww1 ww2 ww3)
-                             (GHC.Base.++
-                                @ GHC.Types.Char
-                                Language.Fixpoint.Types.Spans.$fShowSrcSpan4
-                                (GHC.Base.++
-                                   @ GHC.Types.Char
-                                   Language.Fixpoint.Types.Spans.$fShowSrcSpan3
-                                   (GHC.Base.++
-                                      @ GHC.Types.Char
-                                      (Text.Parsec.Pos.$w$cshow ww4 ww5 ww6)
-                                      (GHC.Base.++
-                                         @ GHC.Types.Char
-                                         Language.Fixpoint.Types.Spans.$fShowSrcSpan2
-                                         x))))))
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p w
-                   GHC.Types.True
-                   -> GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w)) }) -}
-2a2d8362dc7e6454774ab465ace310d6
-  $w$dGSerializePut ::
-    GHC.Generics.S1
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "sp_start")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.SourceStrict
-         'GHC.Generics.DecidedStrict)
-      (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-      a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "sp_stop")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedStrict)
-         (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-         a1
-    -> (# (), Data.ByteString.Builder.Internal.Builder #)
-  {- Arity: 2, Strictness: <L,U(U,U,U)><L,U(U,U,U)>, Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "sp_start")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedStrict)
-                            (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                            a1)
-                   (ww1 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "sp_stop")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedStrict)
-                             (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                             a1) ->
-                 let {
-                   ds1 :: Data.Serialize.Put.Put
-                   = case Language.Fixpoint.Types.Spans.$w$cput2
-                            ww1
-                              `cast`
-                            (Trans
-                                 (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "sp_stop")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedStrict>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <a1>_N)
-                                 (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Text.Parsec.Pos.SourcePos>_R
-                                      <a1>_P)) of ww2 { (#,#) ww3 ww4 ->
-                     (Data.Serialize.Put.PairS @ () ww3 ww4)
-                       `cast`
-                     (Sym (Data.Serialize.Put.N:PutM[0]) <()>_N) }
-                 } in
-                 (# case ds1
-                           `cast`
-                         (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                    b2 },
-                    let {
-                      ds :: Data.ByteString.Builder.Internal.Builder
-                      = case Language.Fixpoint.Types.Spans.$w$cput2
-                               ww
-                                 `cast`
-                               (Trans
-                                    (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "sp_start")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedStrict>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R Text.Parsec.Pos.SourcePos>_R <a1>_N)
-                                    (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <Text.Parsec.Pos.SourcePos>_R
-                                         <a1>_P)) of ww2 { (#,#) ww3 ww4 ->
-                        ww4 }
-                    } in
-                    (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                     ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                       @ r
-                       (case ds1
-                               `cast`
-                             (Data.Serialize.Put.N:PutM[0] <()>_N) of wild1 { Data.Serialize.Put.PairS b2 w' ->
-                        w' `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                          @ r
-                          eta }))
-                      `cast`
-                    (Sym (Data.ByteString.Builder.Internal.N:Builder[0])) #)) -}
-7d1ee7ff58490b4002d4ebf11752d14c
-  $wgo1 ::
-    [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# GHC.Prim.Int#, GHC.Prim.Int# #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U>,
-     Inline: [0] -}
-11b009d868dbdf300c3da9cb11a21cdb
-  $wgo4 ::
-    [GHC.Types.Char]
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> (# GHC.Prim.Int#, GHC.Prim.Int# #)
-  {- Arity: 3, HasNoCafRefs, Strictness: <S,1*U><S,U><S,U>,
-     Inline: [0] -}
-78175b19733acaa6a468bb3dc2117709
-  $wppSrcSpan ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails (),
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 1, Strictness: <L,U(U(U,U,U),U(U,U,U))>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 let {
-                   s :: Text.Parsec.Pos.SourcePos
-                   = case w of wild { Language.Fixpoint.Types.Spans.SS ds ds1 -> ds1 }
-                 } in
-                 let {
-                   s1 :: Text.Parsec.Pos.SourcePos
-                   = case w of wild { Language.Fixpoint.Types.Spans.SS ds ds1 -> ds }
-                 } in
-                 let {
-                   ds :: Text.Parsec.Pos.SourceName
-                   = case s1 of wild { Text.Parsec.Pos.SourcePos name dt dt1 -> name }
-                 } in
-                 let {
-                   s2 :: GHC.Base.String
-                   = Language.Fixpoint.Types.Spans.$fPPrintSrcSpan2
-                       Language.Fixpoint.Types.Spans.$fPPrintSrcSpan1
-                       (GHC.Types.:
-                          @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                          (Text.Printf.$wparseIntFormat @ GHC.Types.Int,
-                           let {
-                             w1 :: GHC.Types.Int
-                             = case s1 of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                               GHC.Types.I# dt1 }
-                           } in
-                           \ (w2 :: Text.Printf.FieldFormat) ->
-                           case w2 of ww { Text.Printf.FieldFormat ww1 ww2 ww3 ww4 ww5 ww6 ww7 ->
-                           case ww7 of ww8 { GHC.Types.C# ww9 ->
-                           Text.Printf.$w$sformatInt w1 ww1 ww2 ww3 ww4 ww5 ww6 ww9 } })
-                          (GHC.Types.:
-                             @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                             (Text.Printf.$wparseIntFormat @ GHC.Types.Int,
-                              let {
-                                w1 :: GHC.Types.Int
-                                = case s1 of wild { Text.Parsec.Pos.SourcePos _name dt dt1 ->
-                                  GHC.Types.I# dt }
-                              } in
-                              \ (w2 :: Text.Printf.FieldFormat) ->
-                              case w2 of ww { Text.Printf.FieldFormat ww1 ww2 ww3 ww4 ww5 ww6 ww7 ->
-                              case ww7 of ww8 { GHC.Types.C# ww9 ->
-                              Text.Printf.$w$sformatInt w1 ww1 ww2 ww3 ww4 ww5 ww6 ww9 } })
-                             (GHC.Types.:
-                                @ (Text.Printf.ModifierParser, Text.Printf.FieldFormatter)
-                                (Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$s$fPrintfArg[]_$cparseFormat
-                                   ds,
-                                 \ (w2 :: Text.Printf.FieldFormat) ->
-                                 case w2 of ww { Text.Printf.FieldFormat ww1 ww2 ww3 ww4 ww5 ww6 ww7 ->
-                                 case ww7 of ww8 { GHC.Types.C# ww9 ->
-                                 Text.Printf.$wformatString
-                                   @ GHC.Types.Char
-                                   Text.Printf.$fIsCharChar
-                                   ds
-                                   ww1
-                                   ww2
-                                   ww3
-                                   ww9 } })
-                                (GHC.Types.[] @ Text.Printf.UPrintf))))
-                       (Text.Parsec.Pos.sourceLine s)
-                       (Text.Parsec.Pos.sourceColumn s)
-                 } in
-                 case GHC.List.$wlenAcc @ GHC.Types.Char s2 0# of ww2 { DEFAULT ->
-                 (# Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                      @ ()
-                      (Text.PrettyPrint.Annotated.HughesPJ.Str s2)
-                      ww2,
-                    Text.PrettyPrint.Annotated.HughesPJ.Empty @ () #) }) -}
-5c898e316073c02ed4de00d3c857e47e
-  class Loc a where
-    srcSpan :: a -> Language.Fixpoint.Types.Spans.SrcSpan
-    {-# MINIMAL srcSpan #-}
-3326b791adf9e0911edd64707c0fed2a
-  data Located a
-    = Loc {loc :: !Text.Parsec.Pos.SourcePos,
-           locE :: !Text.Parsec.Pos.SourcePos,
-           val :: !a}
-3326b791adf9e0911edd64707c0fed2a
-  axiom Rep_Located::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Spans.Located a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Located"
-               "Language.Fixpoint.Types.Spans"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Loc" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "loc")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "locE")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedStrict)
-                                    (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                                  GHC.Generics.:*: GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "val")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedStrict)
-                                                     (GHC.Generics.Rec0 a))))
-78175b19733acaa6a468bb3dc2117709
-  axiom Rep_SrcSpan::
-      GHC.Generics.Rep Language.Fixpoint.Types.Spans.SrcSpan
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "SrcSpan"
-               "Language.Fixpoint.Types.Spans"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons "SS" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     ('GHC.Base.Just "sp_start")
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.SourceStrict
-                     'GHC.Generics.DecidedStrict)
-                  (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      ('GHC.Base.Just "sp_stop")
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.SourceStrict
-                                      'GHC.Generics.DecidedStrict)
-                                   (GHC.Generics.Rec0 Text.Parsec.Pos.SourcePos)))
-78175b19733acaa6a468bb3dc2117709
-  data SrcSpan
-    = SS {sp_start :: !Text.Parsec.Pos.SourcePos,
-          sp_stop :: !Text.Parsec.Pos.SourcePos}
-1a8353ae38c3784917c1312ef9069e6e
-  atLoc ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> b -> Language.Fixpoint.Types.Spans.Located b
-  {- Arity: 2, HasNoCafRefs, Strictness: <S(SSL),1*U(U,U,A)><S,1*U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (ds :: Language.Fixpoint.Types.Spans.Located a)
-                   (eta :: b) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc l l' ds1 ->
-                 case eta of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Spans.Loc @ b l l' dt } }) -}
-6a5341e3e7c769f139b8c25d5592734b
-  dummyLoc :: a -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 1,
-     Unfolding: (\ @ a ->
-                 Language.Fixpoint.Types.Spans.$WLoc
-                   @ a
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l
-                   Language.Fixpoint.Types.Spans.$fIsStringLocated_l) -}
-e32aab89d7fc10cc795bd688f402a6ee
-  dummyPos :: GHC.Base.String -> Text.Parsec.Pos.SourcePos
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: GHC.Base.String) -> Text.Parsec.Pos.SourcePos s 0# 0#) -}
-0a9a460d1a0c849b90ebbbabded90215
-  dummySpan :: Language.Fixpoint.Types.Spans.SrcSpan
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Spans.SS
-                   Language.Fixpoint.Types.Spans.dummySpan_l
-                   Language.Fixpoint.Types.Spans.dummySpan_l) -}
-028c880765161e0e82b3dcec7364d0a2
-  dummySpan_l :: Text.Parsec.Pos.SourcePos
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Text.Parsec.Pos.SourcePos
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   1#
-                   1#) -}
-c6f10c8419386acc7423cddd0148af63
-  loc ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> Text.Parsec.Pos.SourcePos
-  RecSel Left Language.Fixpoint.Types.Spans.Located
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(U(U,U,U),A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 ds1 }) -}
-6922a27f4af2481145388cc9f35b2ad5
-  locAt ::
-    GHC.Base.String -> a -> Language.Fixpoint.Types.Spans.Located a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a (s :: GHC.Base.String) (eta :: a) ->
-                 case eta of dt { DEFAULT ->
-                 let {
-                   l :: Text.Parsec.Pos.SourcePos = Text.Parsec.Pos.SourcePos s 0# 0#
-                 } in
-                 Language.Fixpoint.Types.Spans.Loc @ a l l dt }) -}
-1bb6165f5c9ac9b994b30b60db58afcd
-  locE ::
-    Language.Fixpoint.Types.Spans.Located a
-    -> Text.Parsec.Pos.SourcePos
-  RecSel Left Language.Fixpoint.Types.Spans.Located
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,U(U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 ds2 }) -}
-78175b19733acaa6a468bb3dc2117709
-  ppSrcSpan ::
-    Language.Fixpoint.Types.Spans.SrcSpan
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,U(U(U,U,U),U(U,U,U))>m3,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case Language.Fixpoint.Types.Spans.$wppSrcSpan
-                        w of ww { (#,#) ww1 ww2 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww1 ww2)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-206f4217a89e76ad2874ab86ab0ff653
-  sourcePosElts ::
-    Text.Parsec.Pos.SourcePos
-    -> (Text.Parsec.Pos.SourceName, Text.Parsec.Pos.Line,
-        Text.Parsec.Pos.Column)
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(1*U,U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: Text.Parsec.Pos.SourcePos) ->
-                 (Text.Parsec.Pos.sourceName s, Text.Parsec.Pos.sourceLine s,
-                  Text.Parsec.Pos.sourceColumn s)) -}
-66a78cde7fda67c47ad8854704384b7a
-  sp_start ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> Text.Parsec.Pos.SourcePos
-  RecSel Left Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SL),1*U(U(U,U,U),A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.SS ds1 ds2 ->
-                 ds1 }) -}
-2a61f2810d77eadb616ccfe78300b944
-  sp_stop ::
-    Language.Fixpoint.Types.Spans.SrcSpan -> Text.Parsec.Pos.SourcePos
-  RecSel Left Language.Fixpoint.Types.Spans.SrcSpan
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U(U,U,U))>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Spans.SrcSpan) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.SS ds1 ds2 ->
-                 ds2 }) -}
-a3c4cf7922f79de46237eef8822a75ce
-  val :: Language.Fixpoint.Types.Spans.Located a -> a
-  RecSel Left Language.Fixpoint.Types.Spans.Located
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (ds :: Language.Fixpoint.Types.Spans.Located a) ->
-                 case ds of wild { Language.Fixpoint.Types.Spans.Loc ds1 ds2 ds3 ->
-                 ds3 }) -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fBinaryLocated
-instance Data.Binary.Class.Binary [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fBinarySourcePos
-instance Data.Data.Data [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fDataLocated
-instance Data.Data.Data [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fDataSrcSpan
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fEqLocated
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fEqSrcSpan
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fFixpointLocated
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fFixpointSourcePos
-instance Data.Foldable.Foldable [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fFoldableLocated
-instance GHC.Base.Functor [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fFunctorLocated
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fGenericLocated
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fGenericSrcSpan
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fHashableLocated
-instance Data.Hashable.Class.Hashable [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fHashableSourcePos
-instance Data.Hashable.Class.Hashable [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fHashableSrcSpan
-instance Data.String.IsString [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fIsStringLocated
-instance Language.Fixpoint.Types.Spans.Loc [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fLocLocated
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fNFDataLocated
-instance Control.DeepSeq.NFData [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fNFDataSourcePos
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fOrdLocated
-instance GHC.Classes.Ord [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fOrdSrcSpan
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fPPrintLocated
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fPPrintSourcePos
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fPPrintSrcSpan
-instance Data.Serialize.Serialize [Text.Parsec.Pos.SourcePos]
-  = Language.Fixpoint.Types.Spans.$fSerializeSourcePos
-instance Data.Serialize.Serialize [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fSerializeSrcSpan
-instance GHC.Show.Show [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fShowLocated
-instance GHC.Show.Show [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.$fShowSrcSpan
-instance Data.Traversable.Traversable [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.$fTraversableLocated
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Spans.SrcSpan]
-  = Language.Fixpoint.Types.Spans.Rep_SrcSpan
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Spans.Located]
-  = Language.Fixpoint.Types.Spans.Rep_Located
-"SPEC/Language.Fixpoint.Types.Spans $dmput @ SrcSpan" [ALWAYS] forall ($dGSerializePut :: Data.Serialize.GSerializePut
-                                                                                            (GHC.Generics.Rep
-                                                                                               Language.Fixpoint.Types.Spans.SrcSpan))
-                                                                      ($dGeneric :: GHC.Generics.Generic
-                                                                                      Language.Fixpoint.Types.Spans.SrcSpan)
-                                                                      ($dSerialize :: Data.Serialize.Serialize
-                                                                                        Language.Fixpoint.Types.Spans.SrcSpan)
-  Data.Serialize.$dmput @ Language.Fixpoint.Types.Spans.SrcSpan
-                        $dSerialize
-                        $dGeneric
-                        $dGSerializePut
-  = Language.Fixpoint.Types.Spans.$fSerializeSrcSpan_$s$dmput
-"SPEC/Language.Fixpoint.Types.Spans $fPrintfArg[]_$cparseFormat @ Char" [ALWAYS] forall ($dIsChar :: Text.Printf.IsChar
-                                                                                                       GHC.Types.Char)
-  Text.Printf.$fPrintfArg[]_$cparseFormat @ GHC.Types.Char $dIsChar
-  = Language.Fixpoint.Types.Spans.$fPPrintSrcSpan_$s$fPrintfArg[]_$cparseFormat
-"SPEC/Language.Fixpoint.Types.Spans $fSerialize[] @ Char" [ALWAYS] forall ($dSerialize :: Data.Serialize.Serialize
-                                                                                            GHC.Types.Char)
-  Data.Serialize.$fSerialize[] @ GHC.Types.Char $dSerialize
-  = Language.Fixpoint.Types.Spans.$fSerializeSourcePos_$s$fSerialize[]
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Substitutions.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Substitutions.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Substitutions.dump-hi
+++ /dev/null
@@ -1,3381 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:17.116871 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions [orphan module] 8002
-  interface hash: c2c7b5fbe4e9a7cd8e16482abe810b70
-  ABI hash: 71387f94a50c084a205ef233a1922487
-  export-list hash: a573d56a0ab0c7b358ce707e661d4756
-  orphan hash: b2bd5ad2f60edfba155ff6582e75f2e5
-  flag hash: 7e2dcab90bf70589aa712dce4d889873
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Substitutions.filterSubst
-  Language.Fixpoint.Types.Substitutions.isEmptySubst
-  Language.Fixpoint.Types.Substitutions.mkSubst
-  Language.Fixpoint.Types.Substitutions.subst1Except
-  Language.Fixpoint.Types.Substitutions.substExcept
-  Language.Fixpoint.Types.Substitutions.substfExcept
-  Language.Fixpoint.Types.Substitutions.targetSubstSyms
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:Text.Printf 6701574960cd2af960fec5d940be0c25
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-  dummySymbol a9b923c7c6cdb8f9e9593dd6fd31ad20
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  Fixpoint cc7bdd91c6c79c1473a4d48904d3bc29
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprintTidy 51116c55bcc153b0498f02ab688dd904
-  showFix 096da0098f8a576a024913fb9c478e62
-  toFix adc72af29f82382843f845a7caada087
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  PTrue 5df77d7a117ac1937594998bc4175838
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  Reftable f1cc4ee61221b68049853c08a25a8bd1
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Su a32bf8cf0151ae6cb5c9b46123fb4b77
-  Subable 888f0a174e8b2968bd36b05b87cb7e9b
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  falseReft e1d18913543aec13ccfb54732c05fcf5
-  flattenRefas d95ecf2f3c639c542da387a8aa9ab869
-  isTauto b3fdb4c9cc1321cb83515fc764be7e58
-  isTautoPred 373003ad41691aa151266d2335dd3efb
-  pAnd 2d7e49d5bd88e54fdd84a02dbca76a98
-  ppTy d52912ebfbb4ad818c6b23ac9a38ad57
-  pprintReft 5f861df11709f284c74009634c85bb74
-  reftPred 654b4f577b3cda7ef6c36c09495b0b64
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-  subst1 ff192c02dc885c0c57d77566090d0798
-  substa 50e50af1b4df2a3f3cc13eaac9a575ea
-  substf b2da8a5b5529532d5f1f59e58c725354
-  syms 337dea3d27d630b73de6b6c383ffc586
-  toReft 63b3fc3bd4520c4ac709faf83e069d7d
-  trueReft 97751329ee522413e77af4a7674ff14b
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  exports: c2522a8cb8fa0e99702ea4cacf9bcf96
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-fe026ab18ec897f3bb2df0a45d2ac6a4
-  $fFixpointReft ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Substitutions.$fFixpointReft_$ctoFix
-                  Language.Fixpoint.Types.Substitutions.$fFixpointReft_$csimplify -}
-0ab54cb1e8dfa5feefb32cadf21b7468
-  $fFixpointReft1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Substitutions.$fFixpointReft_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Substitutions.$fFixpointReft2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-3e1e54d6ca54657ec8e989e37ecd2437
-  $fFixpointReft2 :: Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Substitutions.$fFixpointReft_s) -}
-b80604debb3a5dddd60c64cb738ad3e9
-  $fFixpointReft_$csimplify ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Language.Fixpoint.Types.Refinements.Reft) -> eta) -}
-4e07c15c49d0a8f35e44c8c343f4e350
-  $fFixpointReft_$ctoFix ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S(LS),1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) ds1 p ->
-                 case Language.Fixpoint.Types.Refinements.isTautoPred p of wild1 {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Types.Substitutions.ppRas
-                        (GHC.Types.:
-                           @ Language.Fixpoint.Types.Refinements.Expr
-                           p
-                           (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr))
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Substitutions.$fFixpointReft1 } }) -}
-20d2924b8971ff43a966fc9c25bd23cd
-  $fFixpointReft_go ::
-    [Language.Fixpoint.Types.Refinements.Expr]
-    -> [Text.PrettyPrint.Annotated.HughesPJ.Doc ()]
-  {- Arity: 1, Strictness: <S,1*U> -}
-1382ea023f34c7ea01bcace63a76f3c6
-  $fFixpointReft_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "true"#) -}
-cb9b21b0f0d110bb1eea6fe21f3d89a2
-  $fFixpointSortedReft ::
-    Language.Fixpoint.Types.PrettyPrint.Fixpoint
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fFixpointSortedReft_$ctoFix
-                  Language.Fixpoint.Types.Substitutions.$fFixpointSortedReft_$csimplify -}
-92eb105615fb17a70837ca3d1743c745
-  $fFixpointSortedReft_$csimplify ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (eta :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 eta) -}
-37b6a6e3db2a31d35e40bee1e621713e
-  $fFixpointSortedReft_$ctoFix ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1,
-     Strictness: <S(SS(S(LS(SSS)S(SSS))S)),1*U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 case ww4 of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 case ww9 of ww14 { Data.Text.Internal.Text ww15 ww16 ww17 ->
-                 Language.Fixpoint.Types.Substitutions.$w$ctoFix
-                   ww1
-                   ww11
-                   ww12
-                   ww13
-                   ww15
-                   ww16
-                   ww17
-                   ww5 } } } } }) -}
-7ed17b0ab147097a99340daa7acdc79d
-  $fMonoidExpr ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Expr
-                  Language.Fixpoint.Types.Refinements.$bPTrue
-                  Language.Fixpoint.Types.Substitutions.$fMonoidExpr_$cmappend
-                  Language.Fixpoint.Types.Refinements.pAnd -}
-93be877ba5d4c693edf118707fa6751d
-  $fMonoidExpr_$cmappend ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (p :: Language.Fixpoint.Types.Refinements.Expr)
-                   (q :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                   (Language.Fixpoint.Types.Refinements.PAnd
-                      (GHC.Types.:
-                         @ Language.Fixpoint.Types.Refinements.Pred
-                         p
-                         (GHC.Types.:
-                            @ Language.Fixpoint.Types.Refinements.Pred
-                            q
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Pred))))) -}
-f0a91c0cbd010ae3eae365900ed70d5b
-  $fMonoidReft ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Refinements.trueReft
-                  Language.Fixpoint.Types.Substitutions.$fMonoidReft_$cmappend
-                  Language.Fixpoint.Types.Substitutions.$fMonoidReft_$cmconcat -}
-b6d921f6392f54c5f60622023b7aeaae
-  $fMonoidReft_$cmappend ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2,
-     Strictness: <S(S(SSS)L),1*U(1*U(U,U,U),U)><S(S(SSS)L),1*U(1*U(U,U,U),U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft)
-                   (w1 :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                 case w1
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww7 { (,) ww8 ww9 ->
-                 case ww8 of ww10 { Language.Fixpoint.Types.Names.S ww11 ww12 ww13 ->
-                 case Language.Fixpoint.Types.Substitutions.$w$cmappend
-                        ww4
-                        ww5
-                        ww6
-                        ww2
-                        ww11
-                        ww12
-                        ww13
-                        ww9 of ww14 { (#,#) ww15 ww16 ->
-                 (ww15, ww16)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } } } } }) -}
-ee2ed040dc9548b8bc038e4421e1e6bb
-  $fMonoidReft_$cmconcat ::
-    [Language.Fixpoint.Types.Refinements.Reft]
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, Strictness: <S,1*U>m, Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: [Language.Fixpoint.Types.Refinements.Reft]) ->
-                 case Language.Fixpoint.Types.Substitutions.$wgo
-                        w of ww { (#,#) ww1 ww2 ->
-                 (ww1, ww2)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-64555107037ba16483e409c1dc44cf94
-  $fMonoidReft_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <L,U><S,1*U> -}
-632561e27a3dd7d58dfb150fe8d9a7a9
-  $fMonoidSortedReft ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft_$cmempty
-                  Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft_$cmappend
-                  Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft_$cmconcat -}
-8b0f49cda860e33901e633efebc18e9c
-  $fMonoidSortedReft1 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.Expr)
-  {- Unfolding: ((Language.Fixpoint.Types.Refinements.vv_,
-                  Language.Fixpoint.Types.Refinements.$bPTop)) -}
-052c5b59111e2760bdf085222278b17a
-  $fMonoidSortedReft_$cmappend ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2,
-     Strictness: <S(SS(S(SSS)L)),U(U,U(1*U(U,U,U),U))><S(SS(S(SSS)L)),U(U,U(1*U(U,U,U),U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 case ww4 of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case w1 of ww10 { Language.Fixpoint.Types.Refinements.RR ww11 ww12 ->
-                 case ww12
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww13 { (,) ww14 ww15 ->
-                 case ww14 of ww16 { Language.Fixpoint.Types.Names.S ww17 ww18 ww19 ->
-                 case Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmappend
-                        ww1
-                        ww11 of dt { DEFAULT ->
-                 case Language.Fixpoint.Types.Substitutions.$w$cmappend
-                        ww7
-                        ww8
-                        ww9
-                        ww5
-                        ww17
-                        ww18
-                        ww19
-                        ww15 of ww20 { (#,#) ww21 ww22 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   dt
-                   (ww21, ww22)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } } } } } } } }) -}
-71fa087020e56c7d6cc312c5d3c50870
-  $fMonoidSortedReft_$cmconcat ::
-    [Language.Fixpoint.Types.Refinements.SortedReft]
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Refinements.SortedReft]) ->
-                 Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft_go eta) -}
-86f86b3d4d0b929f3400b8c61bbab4ec
-  $fMonoidSortedReft_$cmempty ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-  {- Unfolding: (case Language.Fixpoint.Types.Sorts.$fMonoidSort_$cmempty of dt { DEFAULT ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   dt
-                   Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft1
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-9e3bc4d5c7d2f74645aad6f79f487acc
-  $fMonoidSortedReft_go ::
-    [Language.Fixpoint.Types.Refinements.SortedReft]
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, Strictness: <S,1*U> -}
-d0e93cf9cae47626d64044e546a6fdcf
-  $fMonoidSubst ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Refinements.Subst
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Subst
-                  (Data.HashMap.Base.empty
-                     @ Language.Fixpoint.Types.Names.Symbol
-                     @ Language.Fixpoint.Types.Refinements.Expr)
-                    `cast`
-                  (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                  Language.Fixpoint.Types.Substitutions.catSubst
-                  Language.Fixpoint.Types.Substitutions.$fMonoidSubst_$cmconcat -}
-65c4752578f6bfd41750fde0f79c54f5
-  $fMonoidSubst1 ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Subst
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <S,1*U><S,U> -}
-0c9dadd494f9d6951105257880c95124
-  $fMonoidSubst_$cmconcat ::
-    [Language.Fixpoint.Types.Refinements.Subst]
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Refinements.Subst]) ->
-                 Language.Fixpoint.Types.Substitutions.$fMonoidSubst_go eta) -}
-011b24b58339b563d71a6ed6d26d826e
-  $fMonoidSubst_go ::
-    [Language.Fixpoint.Types.Refinements.Subst]
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 1, Strictness: <S,1*U> -}
-d0352405771a49a94ee57630612df1a1
-  $fPPrintReft ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Substitutions.$fPPrintReft_$cpprintTidy
-                  Language.Fixpoint.Types.Substitutions.$fPPrintReft_$cpprintPrec -}
-797557e82de44db7dabc29e64b18bd2f
-  $fPPrintReft1 ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Substitutions.$w$cisTauto ww2 }) -}
-08b0be18d86232f4cec17c2e77916e09
-  $fPPrintReft2 ::
-    [Language.Fixpoint.Types.Refinements.Expr] -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 Language.Fixpoint.Types.Substitutions.$fPPrintReft_go eta) -}
-8c128a15680ee60cee899472a76bc94b
-  $fPPrintReft_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 Language.Fixpoint.Types.Substitutions.$fPPrintReft_$cpprintTidy
-                   eta
-                   eta1) -}
-28060f40f18867fb876870931cd41694
-  $fPPrintReft_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><S(LS),U(A,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (k :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (r :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case (Language.Fixpoint.Types.Substitutions.$fPPrintReft2
-                         (Language.Fixpoint.Types.Substitutions.$fPPrintReft1 r))
-                        `cast`
-                      (Data.Monoid.N:All[0]) of wild {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Types.Refinements.pprintReft k r
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Substitutions.$fFixpointReft1 }) -}
-b36509b83e120f824ce0bcf5d21577c1
-  $fPPrintReft_go ::
-    [Language.Fixpoint.Types.Refinements.Expr] -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-89eb11acb6a62613303a4c331360c498
-  $fPPrintSortedReft ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_$cpprintTidy
-                  Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_$cpprintPrec -}
-35b88c0b53455ea9d4851dbea22b5b84
-  $fPPrintSortedReft1 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_s
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft2
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-a3122068b5f1d89a8e2e2c16ca35aff1
-  $fPPrintSortedReft2 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_s) -}
-8a1f28ec56f7208cdd69056fd35f7369
-  $fPPrintSortedReft3 :: Text.PrettyPrint.HughesPJ.Doc
-  {- Unfolding: (case GHC.List.$wlenAcc
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_s1
-                        0# of ww2 { DEFAULT ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside
-                    @ ()
-                    (Text.PrettyPrint.Annotated.HughesPJ.NoAnnot
-                       @ ()
-                       Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft4
-                       ww2)
-                    (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ()))
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-e24044d0e6683940f32d3694f48304bf
-  $fPPrintSortedReft4 ::
-    Text.PrettyPrint.Annotated.HughesPJ.TextDetails
-  {- Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Str
-                   Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_s1) -}
-cd48f10c51cfa444b8fdabcc449469fb
-  $fPPrintSortedReft_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft_$cpprintTidy
-                   eta
-                   eta1) -}
-4f594cb409e179b6b727db25a1bc781f
-  $fPPrintSortedReft_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <L,A><S(SS(S(LS(SSS)L)S)),1*U(U,U(1*U(A,U(U,U,U),A),U))>m7,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 case ww4 of ww6 { Language.Fixpoint.Types.Names.S ww7 ww8 ww9 ->
-                 case ww8 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                 case Language.Fixpoint.Types.Substitutions.$w$cpprintTidy
-                        ww1
-                        ww11
-                        ww12
-                        ww13
-                        ww5 of ww14 { (#,,#) ww15 ww16 ww17 ->
-                 (Text.PrettyPrint.Annotated.HughesPJ.Beside @ () ww15 ww16 ww17)
-                   `cast`
-                 (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } } } }) -}
-669c70f7dbc47390b858aee55e5594f1
-  $fPPrintSortedReft_s :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# "|"#) -}
-c8a5baa7050d6b0ec276a62232c17dce
-  $fPPrintSortedReft_s1 :: GHC.Base.String
-  {- Unfolding: (GHC.CString.unpackCString# ":"#) -}
-b5e761453a030c0ccd1b723fe6fa9270
-  $fReftable() :: Language.Fixpoint.Types.Refinements.Reftable ()
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ ()
-                  GHC.Base.$fMonoid()
-                  Language.Fixpoint.Types.Substitutions.$fSubable()
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cisTauto
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cppTy
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$ctop
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$ctop
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cmeet
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$ctoReft
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cofReft
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cparams -}
-238774012b0732ff8678c86ce5442379
-  $fReftable()1 ::
-    ()
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: ()) -> Language.Fixpoint.Types.Refinements.trueReft1) -}
-ef95413d54c5e80ea093ae5cd1589082
-  $fReftable()_$cisTauto :: () -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: ()) -> GHC.Types.True) -}
-829ae64319a746a8608e7bb7663907d0
-  $fReftable()_$cmeet :: () -> () -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: ()) (ds1 :: ()) -> GHC.Tuple.()) -}
-70baf7287117df94b783b2f02f5ebbea
-  $fReftable()_$cofReft ::
-    Language.Fixpoint.Types.Refinements.Reft -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 GHC.Tuple.()) -}
-787fc4afa26acb0e31968d6798b5104b
-  $fReftable()_$cparams ::
-    () -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: ()) ->
-                 GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol) -}
-35a9b3f5203b04c29c45c8acedf518af
-  $fReftable()_$cppTy ::
-    ()
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: ()) (d :: Text.PrettyPrint.HughesPJ.Doc) -> d) -}
-0416dcf591a2a4f717808726addc4cd2
-  $fReftable()_$ctoReft ::
-    () -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fReftable()1
-                  `cast`
-                (<()>_R
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) -}
-6cc44a221983cd55a0d0fbea06bd0def
-  $fReftable()_$ctop :: () -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: ()) -> GHC.Tuple.()) -}
-25ca8b32efa353fe1ccf894e9a840dd2
-  $fReftableReft ::
-    Language.Fixpoint.Types.Refinements.Reftable
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Substitutions.$fMonoidReft
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$cisTauto
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$cppTy
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$ctop
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$cbot
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$cmeet
-                  (GHC.Base.id @ Language.Fixpoint.Types.Refinements.Reft)
-                  (GHC.Base.id @ Language.Fixpoint.Types.Refinements.Reft)
-                  Language.Fixpoint.Types.Substitutions.$fReftableReft_$cparams -}
-728b7f06f204077872fcc2c90951542a
-  $fReftableReft1 ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 Language.Fixpoint.Types.Refinements.falseReft1) -}
-54a17d55cdbf40a7bd82259104de9add
-  $fReftableReft2 :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-  {- HasNoCafRefs,
-     Unfolding: (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                   @ ()
-                   Text.PrettyPrint.HughesPJ.braces4
-                   GHC.Types.False
-                   Text.PrettyPrint.HughesPJ.braces1) -}
-7e15b289c4a4c4c68b27c67f48e5dcb4
-  $fReftableReft3 ::
-    Language.Fixpoint.Types.Refinements.Reft -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 Language.Fixpoint.Types.Substitutions.$fPPrintReft2
-                   (Language.Fixpoint.Types.Substitutions.$fPPrintReft1 x)) -}
-9cf343525a4c02135a1e486159e04b69
-  $fReftableReft_$cbot ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, Strictness: <L,A>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fReftableReft1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Reft>_R
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) -}
-658b9d94f7618ed9206d189bdcddbb89
-  $fReftableReft_$cisTauto ::
-    Language.Fixpoint.Types.Refinements.Reft -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,1*U)>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fReftableReft3
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Reft>_R
-                 ->_R Data.Monoid.N:All[0]) -}
-46aa6e635333910155b824e87b95c44d
-  $fReftableReft_$cmeet ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2,
-     Strictness: <S(S(SSS)L),1*U(1*U(U,U,U),U)><S(S(SSS)L),1*U(1*U(U,U,U),U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fMonoidReft_$cmappend -}
-f1d239ec5492093bd7f1bdb72d49e65e
-  $fReftableReft_$cparams ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol) -}
-7eaa504ba727ee48b2d959ba5e1ef505
-  $fReftableReft_$cppTy ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <S(LS),1*U(1*U(A,U(U,U,U),U(U,U,U)),U)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft)
-                   (w1 :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Substitutions.$w$cppTy ww1 ww2 w1 }) -}
-075758930bc67368c05a15729f4bb4a1
-  $fReftableReft_$ctop ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) v ds1 ->
-                 (v, Language.Fixpoint.Types.Refinements.$bPTop)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-c59f4f76982c0b6b55a45ea90f147db2
-  $fReftableSortedReft ::
-    Language.Fixpoint.Types.Refinements.Reftable
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cisTauto
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cppTy
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$ctop
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cbot
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cmeet
-                  Language.Fixpoint.Types.Refinements.sr_reft
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cofReft
-                  Language.Fixpoint.Types.Substitutions.$fReftableSortedReft_$cparams -}
-b1216ec31d5b6126c72e582268d17162
-  $fReftableSortedReft1 ::
-    Language.Fixpoint.Types.Refinements.SortedReft -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS(LS)),1*U(A,U(A,1*U))>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case x of wild { Language.Fixpoint.Types.Refinements.RR ds1 ds2 ->
-                 Language.Fixpoint.Types.Substitutions.$fPPrintReft2
-                   (Language.Fixpoint.Types.Substitutions.$fPPrintReft1 ds2) }) -}
-0c30c37207259f32e0bb58e7f45c982c
-  $fReftableSortedReft_$cbot ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, Strictness: <S(SL),1*U(U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case s of wild { Language.Fixpoint.Types.Refinements.RR ds ds1 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   ds
-                   (Language.Fixpoint.Types.Refinements.vv_,
-                    Language.Fixpoint.Types.Refinements.$bEBot)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-7e4b38c7add0f7901418396484c9b311
-  $fReftableSortedReft_$cisTauto ::
-    Language.Fixpoint.Types.Refinements.SortedReft -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS(LS)),1*U(A,U(A,1*U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fReftableSortedReft1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.SortedReft>_R
-                 ->_R Data.Monoid.N:All[0]) -}
-053029dba48162f4cfc414d5e8328621
-  $fReftableSortedReft_$cmeet ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2,
-     Strictness: <S(SS(S(SSS)L)),U(U,U(1*U(U,U,U),U))><S(SS(S(SSS)L)),U(U,U(1*U(U,U,U),U))>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft_$cmappend -}
-ecd787a89676060bab78ceb452ecd94e
-  $fReftableSortedReft_$cofReft ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Strictness: x -}
-a9a845cbbecdb964c835fbec1ae5e80a
-  $fReftableSortedReft_$cparams ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol) -}
-7fa7c4aef976a700cfdb25bad1e8b2e1
-  $fReftableSortedReft_$cppTy ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Text.PrettyPrint.HughesPJ.Doc -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2,
-     Strictness: <S(LS(LS)),1*U(A,U(1*U(A,U(U,U,U),U(U,U,U)),U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (eta :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case x of wild { Language.Fixpoint.Types.Refinements.RR ds1 ds2 ->
-                 Language.Fixpoint.Types.Substitutions.$fReftableReft_$cppTy
-                   ds2
-                   eta }) -}
-dd2b2224026017408e8199a357af91dc
-  $fReftableSortedReft_$ctop ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 1, Strictness: <S(SL),1*U(U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case s of wild { Language.Fixpoint.Types.Refinements.RR ds ds1 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   ds
-                   (Language.Fixpoint.Types.Refinements.vv_,
-                    Language.Fixpoint.Types.Refinements.$bPTop)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-ad96be1e6795a4e6a31f0910d9514c00
-  $fShowReft ::
-    GHC.Show.Show Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Substitutions.$fShowReft_$cshowsPrec
-                  Language.Fixpoint.Types.Substitutions.$fShowReft_$cshow
-                  Language.Fixpoint.Types.Substitutions.$fShowReft_$cshowList -}
-8d7f92d44c3209e412f8bcd78eb2b7d8
-  $fShowReft1 ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Refinements.Reft)
-                   (s :: GHC.Base.String)[OneShot] ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Language.Fixpoint.Types.Substitutions.$fShowReft_$cshow x)
-                   s) -}
-2f3f92263876a82b0b15171dca00dc85
-  $fShowReft_$cshow ::
-    Language.Fixpoint.Types.Refinements.Reft -> GHC.Base.String
-  {- Arity: 1, Strictness: <L,1*U(A,U)>,
-     Unfolding: (\ (eta :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Substitutions.$fFixpointReft_$ctoFix eta)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-d9d06c0acaf36ada42219617f18a45b6
-  $fShowReft_$cshowList ::
-    [Language.Fixpoint.Types.Refinements.Reft] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (ls :: [Language.Fixpoint.Types.Refinements.Reft])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Refinements.Reft
-                   Language.Fixpoint.Types.Substitutions.$fShowReft1
-                   ls
-                   s) -}
-4568f390a23abd42df2c8e046d3440fd
-  $fShowReft_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Refinements.Reft -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><L,1*U(A,U)><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Refinements.Reft)
-                   (s :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c1 :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c1
-                      n
-                      (Language.Fixpoint.Types.Substitutions.$fShowReft_$cshow x))
-                   s) -}
-4dfc1cbc766083f291d262948430f200
-  $fShowSortedReft ::
-    GHC.Show.Show Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshowsPrec
-                  Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshow
-                  Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshowList -}
-529e34939c0f834f2eef972988a42d72
-  $fShowSortedReft1 ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (x :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (s :: GHC.Base.String)[OneShot] ->
-                 GHC.Base.++
-                   @ GHC.Types.Char
-                   (Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshow x)
-                   s) -}
-dfe50b86d3e6b6ed85e9f3614634870d
-  $fShowSortedReft_$cshow ::
-    Language.Fixpoint.Types.Refinements.SortedReft -> GHC.Base.String
-  {- Arity: 1,
-     Strictness: <L,1*U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U))>,
-     Unfolding: (\ (eta :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                   @ ()
-                   @ GHC.Base.String
-                   Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                   Text.PrettyPrint.Annotated.HughesPJ.render3
-                   Text.PrettyPrint.Annotated.HughesPJ.render2
-                   Language.Fixpoint.Types.PrettyPrint.docBox1
-                   (GHC.Types.[] @ GHC.Types.Char)
-                   (Language.Fixpoint.Types.Substitutions.$fFixpointSortedReft_$ctoFix
-                      eta)
-                     `cast`
-                   (Text.PrettyPrint.HughesPJ.N:Doc[0])) -}
-49a365da4e469140e8664e610aae5e77
-  $fShowSortedReft_$cshowList ::
-    [Language.Fixpoint.Types.Refinements.SortedReft] -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (ls :: [Language.Fixpoint.Types.Refinements.SortedReft])
-                   (s :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Refinements.SortedReft
-                   Language.Fixpoint.Types.Substitutions.$fShowSortedReft1
-                   ls
-                   s) -}
-9e5ca216a12d4d311c6f7929046877b6
-  $fShowSortedReft_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Refinements.SortedReft -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,A><L,1*U(U,U(1*U(A,U(U,U,U),U(U,U,U)),1*U))><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (x :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (s :: GHC.Base.String) ->
-                 GHC.Base.augment
-                   @ GHC.Types.Char
-                   (\ @ b
-                      (c1 :: GHC.Types.Char -> b -> b)[OneShot]
-                      (n :: b)[OneShot] ->
-                    GHC.Base.foldr
-                      @ GHC.Types.Char
-                      @ b
-                      c1
-                      n
-                      (Language.Fixpoint.Types.Substitutions.$fShowSortedReft_$cshow x))
-                   s) -}
-dd0b16d6fd465a440d9f2dcfcf61e925
-  $fSubable() :: Language.Fixpoint.Types.Refinements.Subable ()
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ ()
-                  Language.Fixpoint.Types.Substitutions.$fReftable()_$cparams
-                  Language.Fixpoint.Types.Substitutions.$fSubable()_$csubsta
-                  Language.Fixpoint.Types.Substitutions.$fSubable()_$csubstf
-                  Language.Fixpoint.Types.Substitutions.$fSubable()_$csubst
-                  Language.Fixpoint.Types.Substitutions.$fSubable()_$csubst1 -}
-db502a43106ffc3e78040fa43be7ac23
-  $fSubable()_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst -> () -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U()>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Subst) (ds1 :: ()) ->
-                 ds1) -}
-b99e5fed5d7285f1c11e6deb5b8768d1
-  $fSubable()_$csubst1 ::
-    ()
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U()><S,1*H>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (y :: ())
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x e -> y }) -}
-09c9b0b45d5668d2bdc7a4c3c5350cf3
-  $fSubable()_$csubsta ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> () -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U()>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol
-                          -> Language.Fixpoint.Types.Names.Symbol)
-                   (ds1 :: ()) ->
-                 ds1) -}
-4f218462d2a5635ff7296ce1c3f5a195
-  $fSubable()_$csubstf ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> () -> ()
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U()>m,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: Language.Fixpoint.Types.Names.Symbol
-                          -> Language.Fixpoint.Types.Refinements.Expr)
-                   (ds1 :: ()) ->
-                 ds1) -}
-1f78977648b312faf2ebd053fcd57587
-  $fSubable(,) ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    Language.Fixpoint.Types.Refinements.Subable (a, b)
-  DFunId
-  {- Arity: 2,
-     Strictness: <L,U(C(U),C(C1(U)),C(C1(U)),C(C1(U)),A)><L,U(C(U),C(C1(U)),C(C1(U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ b
-                      ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                      ($dSubable1 :: Language.Fixpoint.Types.Refinements.Subable b).
-                  @ (a, b)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable(,)_$csyms
-                     @ a
-                     @ b
-                     $dSubable
-                     $dSubable1)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable(,)_$csubsta
-                     @ a
-                     @ b
-                     $dSubable
-                     $dSubable1)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable(,)_$csubstf
-                     @ a
-                     @ b
-                     $dSubable
-                     $dSubable1)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable(,)_$csubst
-                     @ a
-                     @ b
-                     $dSubable
-                     $dSubable1)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable(,)_$csubst1
-                     @ a
-                     @ b
-                     $dSubable
-                     $dSubable1) -}
-7fad1e0d05fd422d006879dd1a8de971
-  $fSubable(,)_$csubst ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    Language.Fixpoint.Types.Refinements.Subst -> (a, b) -> (a, b)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,A,1*C1(C1(U)),A)><L,1*U(A,A,A,1*C1(C1(U)),A)><L,U><S,1*U(U,U)>m,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   ($dSubable1 :: Language.Fixpoint.Types.Refinements.Subable b)
-                   (su :: Language.Fixpoint.Types.Refinements.Subst)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x y ->
-                 (Language.Fixpoint.Types.Refinements.subst @ a $dSubable su x,
-                  Language.Fixpoint.Types.Refinements.subst
-                    @ b
-                    $dSubable1
-                    su
-                    y) }) -}
-51e000fbb75d9c563d66d5f3b7d4a761
-  $fSubable(,)_$csubst1 ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    (a, b)
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> (a, b)
-  {- Arity: 4,
-     Strictness: <L,1*U(A,A,A,1*C1(C1(U)),A)><L,1*U(A,A,A,1*C1(C1(U)),A)><S,1*U(U,U)><S,1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   (w :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (w1 :: Language.Fixpoint.Types.Refinements.Subable b)
-                   (w2 :: (a, b))
-                   (w3 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case w2 of ww { (,) ww1 ww2 ->
-                 case w3 of ww3 { (,) ww4 ww5 ->
-                 let {
-                   su :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Types.Refinements.$dmsubst2
-                       @ Language.Fixpoint.Types.Refinements.Expr
-                       (GHC.Types.:
-                          @ (Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.Expr)
-                          (ww4, ww5)
-                          (GHC.Types.[]
-                             @ (Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.Expr)))
-                       (Data.HashMap.Base.Empty
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          @ Language.Fixpoint.Types.Refinements.Expr)
-                 } in
-                 (Language.Fixpoint.Types.Refinements.subst
-                    @ a
-                    w
-                    su `cast` (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                    ww1,
-                  Language.Fixpoint.Types.Refinements.subst
-                    @ b
-                    w1
-                    su `cast` (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                    ww2) } }) -}
-be9177a71c93e93e443f7b2107788f0c
-  $fSubable(,)_$csubsta ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> (a, b) -> (a, b)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*C1(C1(U)),A,A,A)><L,1*U(A,1*C1(C1(U)),A,A,A)><L,U><S,1*U(U,U)>m,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   ($dSubable1 :: Language.Fixpoint.Types.Refinements.Subable b)
-                   (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Names.Symbol)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x y ->
-                 (Language.Fixpoint.Types.Refinements.substa @ a $dSubable f x,
-                  Language.Fixpoint.Types.Refinements.substa
-                    @ b
-                    $dSubable1
-                    f
-                    y) }) -}
-e8f824916cfd41c74242cc196979d032
-  $fSubable(,)_$csubstf ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> (a, b) -> (a, b)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,1*C1(C1(U)),A,A)><L,1*U(A,A,1*C1(C1(U)),A,A)><L,U><S,1*U(U,U)>m,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ b
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   ($dSubable1 :: Language.Fixpoint.Types.Refinements.Subable b)
-                   (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x y ->
-                 (Language.Fixpoint.Types.Refinements.substf @ a $dSubable f x,
-                  Language.Fixpoint.Types.Refinements.substf
-                    @ b
-                    $dSubable1
-                    f
-                    y) }) -}
-8f2f13cfc9ba53e8ab50f1de2589fe6a
-  $fSubable(,)_$csyms ::
-    (Language.Fixpoint.Types.Refinements.Subable a,
-     Language.Fixpoint.Types.Refinements.Subable b) =>
-    (a, b) -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <S(C(S)LLLL),1*U(1*C1(U),A,A,A,A)><L,1*U(1*C1(U),A,A,A,A)><S,1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ b
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   ($dSubable1 :: Language.Fixpoint.Types.Refinements.Subable b)
-                   (ds :: (a, b)) ->
-                 case ds of wild { (,) x y ->
-                 GHC.Base.augment
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   (\ @ b1
-                      (c1 :: Language.Fixpoint.Types.Names.Symbol -> b1 -> b1)[OneShot]
-                      (n :: b1)[OneShot] ->
-                    GHC.Base.foldr
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ b1
-                      c1
-                      n
-                      (Language.Fixpoint.Types.Refinements.syms @ a $dSubable x))
-                   (Language.Fixpoint.Types.Refinements.syms @ b $dSubable1 y) }) -}
-5f0f794c137f095582ae4fe004ed0fc9
-  $fSubableExpr ::
-    Language.Fixpoint.Types.Refinements.Subable
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Expr
-                  Language.Fixpoint.Types.Substitutions.$fSubableExpr_$csyms
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubsta1
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubstf1
-                  Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                  Language.Fixpoint.Types.Substitutions.$fSubableExpr_$csubst1 -}
-18646a7b173bbd310ea53164e24c76ab
-  $fSubableExpr_$csubst1 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <S,1*U><S,1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (y :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x e ->
-                 Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                   (Language.Fixpoint.Types.Refinements.$dmsubst2
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      (GHC.Types.:
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         (x, e)
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)))
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ Language.Fixpoint.Types.Refinements.Expr))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                   y }) -}
-f2b6b330d0de9108887ebb01063056a1
-  $fSubableExpr_$csyms ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fSubableReft_go -}
-ab3725fd7a9f3249ff1045155872d10c
-  $fSubableHashMap ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Language.Fixpoint.Types.Refinements.Subable
-      (Data.HashMap.Base.HashMap k a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,C(U),C(U),C(U),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      @ k
-                      ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a).
-                  @ (Data.HashMap.Base.HashMap k a)
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csyms
-                     @ a
-                     @ k
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csubsta
-                     @ a
-                     @ k
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csubstf
-                     @ a
-                     @ k
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csubst
-                     @ a
-                     @ k
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csubst1
-                     @ a
-                     @ k
-                     $dSubable) -}
-f51e0a5bcba6a3bfeca4f7d6ec1d016c
-  $fSubableHashMap1 :: [a] -> Data.HashMap.Base.HashMap k a -> [a]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U> -}
-18fdfe26df15dd640536f22c71c4c67b
-  $fSubableHashMap_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Data.HashMap.Base.HashMap k a -> Data.HashMap.Base.HashMap k a
-  {- Arity: 2, Strictness: <L,1*U(A,A,A,1*C1(U),A)><L,U> -}
-855fc88d8c272383bbc1450dcac7aeeb
-  $fSubableHashMap_$csubst1 ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Data.HashMap.Base.HashMap k a
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> Data.HashMap.Base.HashMap k a
-  {- Arity: 3, Strictness: <L,1*U(A,A,A,1*C1(U),A)><L,U><S,1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   @ k
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (y :: Data.HashMap.Base.HashMap k a)
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x e ->
-                 Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csubst
-                   @ a
-                   @ k
-                   $dSubable
-                   (Language.Fixpoint.Types.Refinements.$dmsubst2
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      (GHC.Types.:
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         (x, e)
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)))
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ Language.Fixpoint.Types.Refinements.Expr))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                   y }) -}
-5c65023396ef685f20001bf3308226da
-  $fSubableHashMap_$csubsta ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> Data.HashMap.Base.HashMap k a -> Data.HashMap.Base.HashMap k a
-  {- Arity: 2, Strictness: <L,1*U(A,1*C1(U),A,A,A)><L,U> -}
-5a84b2e33d32c7ed451532a54f92fec0
-  $fSubableHashMap_$csubstf ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Data.HashMap.Base.HashMap k a -> Data.HashMap.Base.HashMap k a
-  {- Arity: 2, Strictness: <L,1*U(A,A,1*C1(U),A,A)><L,U> -}
-58a8e739714de999acb6f66b0e7dd989
-  $fSubableHashMap_$csyms ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Data.HashMap.Base.HashMap k a
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*U,A,A,A,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   @ k
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (eta :: Data.HashMap.Base.HashMap k a) ->
-                 Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csyms1
-                   @ a
-                   $dSubable
-                   (Language.Fixpoint.Types.Substitutions.$fSubableHashMap1
-                      @ k
-                      @ a
-                      (GHC.Types.[] @ a)
-                      eta)) -}
-1574d6d39919cb05e8ceff4d53945476
-  $fSubableHashMap_$csyms1 ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    [a] -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U(1*U,A,A,A,A)><S,1*U>,
-     Unfolding: (\ @ a
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (eta :: [a]) ->
-                 let {
-                   f :: a -> [Language.Fixpoint.Types.Names.Symbol]
-                   = Language.Fixpoint.Types.Refinements.syms @ a $dSubable
-                 } in
-                 letrec {
-                   go12 :: [a] -> [Language.Fixpoint.Types.Names.Symbol]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [a]) ->
-                     case ds of wild {
-                       [] -> GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol
-                       : y ys
-                       -> GHC.Base.++
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            (f y)
-                            (go12 ys) }
-                 } in
-                 go12 eta) -}
-7c1c5b8d02cc2bebc4c3f769cfa309d2
-  $fSubableHashMap_go ::
-    [Language.Fixpoint.Types.Refinements.Expr]
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-41274546490ea872eab701ab7068221e
-  $fSubableReft ::
-    Language.Fixpoint.Types.Refinements.Subable
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.Reft
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csyms
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubsta
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubstf
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubst
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubst1 -}
-18835ade7dea8328418b5ed71b351fa0
-  $fSubableReft_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2, Strictness: <L,1*U><S,1*U(U,1*U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (su :: Language.Fixpoint.Types.Refinements.Subst)
-                   (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) v ras ->
-                 (v,
-                  Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                    (Language.Fixpoint.Types.Substitutions.substExcept
-                       su
-                       (GHC.Types.:
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          v
-                          (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)))
-                    ras)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-86eed7090094ea3abfe7a14e074950bf
-  $fSubableReft_$csubst1 ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2, Strictness: <S,1*U(U,1*U)><L,1*U(U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft)
-                   (w1 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 case Language.Fixpoint.Types.Substitutions.$w$csubst1
-                        ww1
-                        ww2
-                        w1 of ww3 { (#,#) ww4 ww5 ->
-                 (ww4, ww5)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-f94405a78b21714ba8fd47a3bab7a5bf
-  $fSubableReft_$csubsta ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2, Strictness: <L,C(U(U,U,U))><S,1*U(U,1*U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Names.Symbol)
-                   (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) v ras ->
-                 (f v,
-                  Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubsta1
-                    f
-                    ras)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) }) -}
-885d4696e26e9af795aa589252207b7e
-  $fSubableReft_$csubsta1 ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <L,C(U(U,U,U))><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Names.Symbol)
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubstf1
-                   (\ (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                    case f x of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                    Language.Fixpoint.Types.Refinements.EVar dt })
-                   eta) -}
-cad858d5b862aabff23d4d1df351d77f
-  $fSubableReft_$csubstf ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U(U,1*U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (w1 :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w1
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 case Language.Fixpoint.Types.Substitutions.$w$csubstf
-                        w
-                        ww1
-                        ww2 of ww3 { (#,#) ww4 ww5 ->
-                 (ww4, ww5)
-                   `cast`
-                 (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-11213e2532d7a656fd044ad8a622ca32
-  $fSubableReft_$csubstf1 ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, Strictness: <L,C(U)><S,1*U> -}
-e5b72878d44dd47538536e4645878162
-  $fSubableReft_$csyms ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,1*U)>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) v ras ->
-                 GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   v
-                   (Language.Fixpoint.Types.Substitutions.$fSubableReft_go ras) }) -}
-383309ba79451faf0e53cb36d108d64e
-  $fSubableReft_go ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-08e2793559e1704f9d452f0de9bfbf2e
-  $fSubableSortedReft ::
-    Language.Fixpoint.Types.Refinements.Subable
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Refinements.SortedReft
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csyms
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csubsta
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csubstf
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csubst
-                  Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csubst1 -}
-f505567c07366243d07afac65b1ea259
-  $fSubableSortedReft_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2, Strictness: <L,1*U><S(SS),1*U(U,U(U,1*U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Subst)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   ww1
-                   (ww4,
-                    Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                      (Language.Fixpoint.Types.Substitutions.substExcept
-                         w
-                         (GHC.Types.:
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            ww4
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)))
-                      ww5)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-2fe9b4132bcac710eee27a8f59db464a
-  $fSubableSortedReft_$csubst1 ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2, Strictness: <S(SS),1*U(U,U(U,1*U))><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (y :: Language.Fixpoint.Types.Refinements.SortedReft)
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x e ->
-                 Language.Fixpoint.Types.Substitutions.$fSubableSortedReft_$csubst
-                   (Language.Fixpoint.Types.Refinements.$dmsubst2
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      (GHC.Types.:
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         (x, e)
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)))
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ Language.Fixpoint.Types.Refinements.Expr))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                   y }) -}
-e0b5149f0ad4b68cc3b9cc5c669d18a6
-  $fSubableSortedReft_$csubsta ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2, Strictness: <L,C(U(U,U,U))><S(SS),1*U(U,U(U,1*U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Names.Symbol)
-                   (ds :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case ds of wild { Language.Fixpoint.Types.Refinements.RR so r ->
-                 case r `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) v ras ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   so
-                   (f v,
-                    Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubsta1
-                      f
-                      ras)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-4e92e15b8a905b593ba340e9fc4df427
-  $fSubableSortedReft_$csubstf ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 2, Strictness: <L,C(U)><S(SS),1*U(U,U(U,1*U))>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (ds :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case ds of wild { Language.Fixpoint.Types.Refinements.RR so r ->
-                 case (Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubstf
-                         f
-                         r)
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of nt { (,) ipv ipv1 ->
-                 Language.Fixpoint.Types.Refinements.RR
-                   so
-                   nt
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])) } }) -}
-d6d5bcaa7048cbe896ca95fd0c8021f9
-  $fSubableSortedReft_$csyms ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U(U,1*U))>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case x of wild { Language.Fixpoint.Types.Refinements.RR ds1 ds2 ->
-                 case ds2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) v ras ->
-                 GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   v
-                   (Language.Fixpoint.Types.Substitutions.$fSubableReft_go
-                      ras) } }) -}
-935833d2d19eec3a31d2bc917ff178bc
-  $fSubableSymbol ::
-    Language.Fixpoint.Types.Refinements.Subable
-      Language.Fixpoint.Types.Names.Symbol
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Names.Symbol
-                  Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csyms
-                  Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csubsta
-                  Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csubstf
-                  Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csubst
-                  Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csubst1 -}
-7ee772fecd9a51e4d4dcce51bed60ca6
-  $fSubableSymbol1 ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 7, Strictness: <L,U><L,U><L,U><L,U><L,U><L,U><L,U>x -}
-3d995026e5a40cfa6ca1bf741714de08
-  $fSubableSymbol2 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <B,1*U(A,U(U,U,U),U(U,U,U))><B,1*U>x,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 case ww3 of ww8 { Data.Text.Internal.Text ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Substitutions.$wlvl
-                   ww5
-                   ww6
-                   ww7
-                   ww9
-                   ww10
-                   ww11
-                   w1 } } }) -}
-e4fc34dc2e1e90ce483091ff02886c8f
-  $fSubableSymbol_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S,1*U><S(LS(SSS)L),U(U,U(U,U,U),U(U,U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Subst)
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case w1 of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Substitutions.$w$csubst
-                   w
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   ww3 } }) -}
-6f91efbb8c1363b1e5cc7cf429c79945
-  $fSubableSymbol_$csubst1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2,
-     Strictness: <S(LS(SSS)L),U(U,U(U,U,U),U(U,U,U))><S,1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (y :: Language.Fixpoint.Types.Names.Symbol)
-                   (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x e ->
-                 Language.Fixpoint.Types.Substitutions.$fSubableSymbol_$csubst
-                   (Language.Fixpoint.Types.Refinements.$dmsubst2
-                      @ Language.Fixpoint.Types.Refinements.Expr
-                      (GHC.Types.:
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         (x, e)
-                         (GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)))
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Names.Symbol
-                         @ Language.Fixpoint.Types.Refinements.Expr))
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                   y }) -}
-a137c08548dd48da8f807e256598d1f8
-  $fSubableSymbol_$csubsta ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Names.Symbol) ->
-                 f) -}
-3f5e6704ddb85a36f0d7eb03b6448cbf
-  $fSubableSymbol_$csubstf ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 2, Strictness: <C(S),1*C1(U)><L,U(U,U(U,U,U),U(U,U,U))>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case f x of wild {
-                   DEFAULT
-                   -> Language.Fixpoint.Types.Substitutions.$fSubableSymbol2
-                        x
-                        (GHC.Base.Just @ Language.Fixpoint.Types.Refinements.Expr wild)
-                   Language.Fixpoint.Types.Refinements.EVar y -> y }) -}
-18c4c59fb88be606de4839d9a1368702
-  $fSubableSymbol_$csyms ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Names.Symbol) ->
-                 GHC.Types.:
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   x
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)) -}
-5a55ceb0f986008705b8328134e41058
-  $fSubable[] ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Language.Fixpoint.Types.Refinements.Subable [a]
-  DFunId
-  {- Arity: 1, Strictness: <L,U(U,C(C(U)),C(C(U)),C(C(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a
-                      ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a).
-                  @ [a]
-                  (Language.Fixpoint.Types.Substitutions.$fSubableHashMap_$csyms1
-                     @ a
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable[]_$csubsta
-                     @ a
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable[]_$csubstf
-                     @ a
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable[]_$csubst
-                     @ a
-                     $dSubable)
-                  (Language.Fixpoint.Types.Substitutions.$fSubable[]_$csubst1
-                     @ a
-                     $dSubable) -}
-5071de0b29ad01be37f4740902da3cbb
-  $fSubable[]_$csubst ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    Language.Fixpoint.Types.Refinements.Subst -> [a] -> [a]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,A,1*C1(C(U)),A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (eta :: Language.Fixpoint.Types.Refinements.Subst) ->
-                 GHC.Base.map
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Types.Refinements.subst @ a $dSubable eta)) -}
-8e7aff7c6c07989732cbdcf1156e5e93
-  $fSubable[]_$csubst1 ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    [a]
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> [a]
-  {- Arity: 3,
-     Strictness: <L,1*U(A,A,A,1*C1(C(U)),A)><S,1*U><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (w1 :: [a])
-                   (w2 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case w2 of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Substitutions.$w$csubst2
-                   @ a
-                   w
-                   w1
-                   ww1
-                   ww2 }) -}
-12e07b4a343b40699dead804fb0d392d
-  $fSubable[]_$csubsta ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Names.Symbol)
-    -> [a] -> [a]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*C1(C(U)),A,A,A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (eta :: Language.Fixpoint.Types.Names.Symbol
-                           -> Language.Fixpoint.Types.Names.Symbol) ->
-                 GHC.Base.map
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Types.Refinements.substa @ a $dSubable eta)) -}
-6416c88603540680325bcdc3c8be4cc3
-  $fSubable[]_$csubstf ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> [a] -> [a]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,1*C1(C(U)),A,A)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (eta :: Language.Fixpoint.Types.Names.Symbol
-                           -> Language.Fixpoint.Types.Refinements.Expr) ->
-                 GHC.Base.map
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Types.Refinements.substf @ a $dSubable eta)) -}
-59ac2a4d5d595152d7b7844bf1bd0f3f
-  $s$fShow(,)_$cshow3 ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Sorts.Sort)
-    -> GHC.Base.String -> [GHC.Types.Char]
-  {- Arity: 2,
-     Unfolding: (\ (w3 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Sorts.Sort))
-                   (w4 :: GHC.Base.String)[OneShot] ->
-                 case w3 of ww { (,) ww1 ww2 ->
-                 GHC.Types.:
-                   @ GHC.Types.Char
-                   GHC.Show.shows7
-                   (let {
-                      z :: GHC.Base.String
-                      = GHC.Show.$fShow(,)_$sgo
-                          (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 w4)
-                          (Language.Fixpoint.Types.Sorts.$fShowSort_$cshowsPrec
-                             GHC.Show.shows22
-                             ww2)
-                          (GHC.Types.[] @ GHC.Show.ShowS)
-                    } in
-                    let {
-                      z1 :: [GHC.Types.Char]
-                      = GHC.Types.: @ GHC.Types.Char GHC.Show.shows5 z
-                    } in
-                    letrec {
-                      go12 :: [GHC.Types.Char] -> [GHC.Types.Char]
-                        {- Arity: 1, Strictness: <S,1*U> -}
-                      = \ (ds :: [GHC.Types.Char]) ->
-                        case ds of wild {
-                          [] -> z1 : y ys -> GHC.Types.: @ GHC.Types.Char y (go12 ys) }
-                    } in
-                    go12 (Language.Fixpoint.Types.Names.$fShowSymbol_$cshow ww1)) }) -}
-4e285d72dbb7c7c0a1ac3143e0fbb1d8
-  $s$wupdateOrConcatWithKey ::
-    (Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-  {- Arity: 3, Strictness: <L,C(C1(C1(U)))><S,U><S,U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (w1 :: Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-                   (ww :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v))
-                   (ww1 :: GHC.Prim.Array#
-                             (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)) ->
-                 let {
-                   wild1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                       ww1
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        @ GHC.Prim.RealWorld
-                        wild1
-                        (Data.HashMap.Array.undefinedElem @ (GHC.Base.Maybe GHC.Types.Int))
-                        GHC.Prim.realWorld# of ds { (#,#) ipv ipv1 ->
-                 letrec {
-                   $wgo16 :: forall s.
-                             Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                             -> Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# s
-                             -> (# GHC.Prim.State# s,
-                                   Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int) #)
-                     {- Arity: 5, Strictness: <L,U(U)><L,U(U)><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ @ s
-                       (w :: Data.HashMap.Array.Array
-                               (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v))
-                       (w2 :: Data.HashMap.Array.MArray s (GHC.Base.Maybe GHC.Types.Int))
-                       (ww2 :: GHC.Prim.Int#)
-                       (ww3 :: GHC.Prim.Int#)
-                       (w3 :: GHC.Prim.State# s)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww2 ww3) of wild2 {
-                       GHC.Types.False
-                       -> case w2 of wild3 { Data.HashMap.Array.MArray ds1 ->
-                          case GHC.Prim.writeArray#
-                                 @ s
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ds1
-                                 ww2
-                                 (case w of wild4 { Data.HashMap.Array.Array ds2 ->
-                                  case GHC.Prim.indexArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Names.Symbol v)
-                                         ds2
-                                         ww2 of ds4 { Unit# ipv2 ->
-                                  case ipv2 of wild5 { Data.HashMap.Base.L k1 ds3 ->
-                                  case k1 of ww4 { Language.Fixpoint.Types.Names.S ww5 ww6 ww7 ->
-                                  Language.Fixpoint.Types.Substitutions.$wpoly_go2
-                                    @ v
-                                    ww5
-                                    ww
-                                    0#
-                                    (GHC.Prim.sizeofArray#
-                                       @ (Data.HashMap.Base.Leaf
-                                            Language.Fixpoint.Types.Names.Symbol v)
-                                       ww) } } } })
-                                 w3 of s' { DEFAULT ->
-                          $wgo16 @ s w wild3 (GHC.Prim.+# ww2 1#) ww3 s' } }
-                       GHC.Types.True -> (# w3, w2 #) }
-                 } in
-                 case $wgo16
-                        @ GHC.Prim.RealWorld
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                           ww1)
-                        (Data.HashMap.Array.$WMArray
-                           @ GHC.Prim.RealWorld
-                           @ (GHC.Base.Maybe GHC.Types.Int)
-                           ipv1)
-                        0#
-                        wild1
-                        ipv of ds1 { (#,#) ipv2 ipv3 ->
-                 case ipv3 of wild { Data.HashMap.Array.MArray ds2 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe GHC.Types.Int)
-                        ds2
-                        ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                 case Language.Fixpoint.Types.Substitutions.$wgo1
-                        (Data.HashMap.Array.Array @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        (GHC.Prim.sizeofArray# @ (GHC.Base.Maybe GHC.Types.Int) ipv5)
-                        0#
-                        0# of ww2 { DEFAULT ->
-                 let {
-                   n1 :: GHC.Prim.Int#
-                   = GHC.Prim.sizeofArray#
-                       @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                       ww
-                 } in
-                 case GHC.Prim.newArray#
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                        @ GHC.Prim.RealWorld
-                        (GHC.Prim.+# n1 ww2)
-                        (Data.HashMap.Array.undefinedElem
-                           @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v))
-                        GHC.Prim.realWorld# of ds4 { (#,#) ipv7 ipv8 ->
-                 case GHC.Prim.copyArray#
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                        @ GHC.Prim.RealWorld
-                        ww
-                        0#
-                        ipv8
-                        0#
-                        n1
-                        ipv7 of s2 { DEFAULT ->
-                 letrec {
-                   $wgo17 :: GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.State# GHC.Prim.RealWorld
-                             -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 3, Strictness: <L,U><S,U><S,U>, Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: GHC.Prim.Int#)
-                       (w :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww4 wild1) of wild2 {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (GHC.Base.Maybe GHC.Types.Int)
-                                 ipv5
-                                 ww4 of ds5 { Unit# ipv9 ->
-                          case ipv9 of wild3 {
-                            GHC.Base.Nothing
-                            -> case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ww1
-                                      ww4 of ds6 { Unit# ipv10 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv8
-                                      ww3
-                                      ipv10
-                                      w of s' { DEFAULT ->
-                               $wgo17 (GHC.Prim.+# ww3 1#) (GHC.Prim.+# ww4 1#) s' } }
-                            GHC.Base.Just i3
-                            -> case i3 of wild4 { GHC.Types.I# i# ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ww
-                                      i# of ds6 { Unit# ipv10 ->
-                               case ipv10 of wild5 { Data.HashMap.Base.L k1 v1 ->
-                               case GHC.Prim.indexArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ww1
-                                      ww4 of ds7 { Unit# ipv6 ->
-                               case ipv6 of wild6 { Data.HashMap.Base.L ds8 v2 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv8
-                                      i#
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Names.Symbol
-                                         @ v
-                                         k1
-                                         (w1 k1 v1 v2))
-                                      w of s' { DEFAULT ->
-                               $wgo17 ww3 (GHC.Prim.+# ww4 1#) s' } } } } } } } }
-                       GHC.Types.True -> (# w, GHC.Tuple.() #) }
-                 } in
-                 case $wgo17 n1 0# s2 of ds5 { (#,#) ipv9 ipv10 ->
-                 case GHC.Prim.unsafeFreezeArray#
-                        @ GHC.Prim.RealWorld
-                        @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                        ipv8
-                        ipv9 of ds6 { (#,#) ipv11 ipv12 ->
-                 ipv12 } } } } } } } } }) -}
-1c6ee15760bf43bff40bebbe1b8030d6
-  $sdelete ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 2, Strictness: <S(LS(SSS)L),U(U,U(U,U,U),A)><S,1*U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ v
-                   (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Names.Symbol v) ->
-                 case w of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                 case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                 Language.Fixpoint.Types.Substitutions.$w$sdelete
-                   @ v
-                   ww1
-                   ww5
-                   ww6
-                   ww7
-                   w1 } }) -}
-38be0d9660800c94c6763c2114340443
-  $sprintf3 ::
-    GHC.Base.String -> [Text.Printf.UPrintf] -> [GHC.Types.Char]
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: (\ (fmts :: GHC.Base.String)
-                   (args :: [Text.Printf.UPrintf]) ->
-                 GHC.Base.map
-                   @ GHC.Types.Char
-                   @ GHC.Types.Char
-                   Text.Printf.$fIsCharChar_$cfromChar
-                   (Text.Printf.uprintfs
-                      fmts
-                      (GHC.List.reverse1
-                         @ Text.Printf.UPrintf
-                         args
-                         (GHC.Types.[] @ Text.Printf.UPrintf))
-                      (GHC.Types.[] @ GHC.Types.Char))) -}
-80da3e083b1cf8dfe0c6579e2d99bc9f
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Substitutions.$trModule2
-                   Language.Fixpoint.Types.Substitutions.$trModule1) -}
-7af8db0b00bdd1a6f0220930f225e7ec
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Substitutions"#) -}
-08fb3f96e209264c54893c8416ba80e6
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-aa29ace74b2ef04253946cc7ab3c027f
-  $w$cisTauto ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ww of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                             wild of wild1 {
-                        GHC.Types.False
-                        -> GHC.Types.:
-                             @ Language.Fixpoint.Types.Refinements.Expr
-                             wild
-                             (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr)
-                        GHC.Types.True
-                        -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr }
-                   Language.Fixpoint.Types.Refinements.PAnd ps
-                   -> Language.Fixpoint.Types.Refinements.conjuncts_go ps }) -}
-76049228df256803e8ce2fc1f7c10ab0
-  $w$cmappend ::
-    GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.Expr #)
-  {- Arity: 8, Strictness: <S,U><S,U><S,U><L,U><S,U><S,U><S,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (ww3 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww4 :: GHC.Prim.Int#)
-                   (ww5 :: Data.Text.Internal.Text)
-                   (ww6 :: Data.Text.Internal.Text)
-                   (ww7 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   wild :: Language.Fixpoint.Types.Names.Symbol
-                   = Language.Fixpoint.Types.Names.S ww ww1 ww2
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==# ww ww4) of wild1 {
-                   GHC.Types.False
-                   -> case Language.Fixpoint.Types.Names.dummyName of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                      let {
-                        wild3 :: Language.Fixpoint.Types.Names.Symbol
-                        = Language.Fixpoint.Types.Names.S ww4 ww5 ww6
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# ww dt1) of wild4 {
-                        GHC.Types.False
-                        -> (# wild,
-                              Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                                (Language.Fixpoint.Types.Refinements.PAnd
-                                   (GHC.Types.:
-                                      @ Language.Fixpoint.Types.Refinements.Pred
-                                      ww3
-                                      (GHC.Types.:
-                                         @ Language.Fixpoint.Types.Refinements.Pred
-                                         (Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                            (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                               @ Language.Fixpoint.Types.Refinements.Expr
-                                               (GHC.Types.:
-                                                  @ (Language.Fixpoint.Types.Names.Symbol,
-                                                     Language.Fixpoint.Types.Refinements.Expr)
-                                                  (wild3,
-                                                   Language.Fixpoint.Types.Refinements.EVar wild)
-                                                  (GHC.Types.[]
-                                                     @ (Language.Fixpoint.Types.Names.Symbol,
-                                                        Language.Fixpoint.Types.Refinements.Expr)))
-                                               (Data.HashMap.Base.Empty
-                                                  @ Language.Fixpoint.Types.Names.Symbol
-                                                  @ Language.Fixpoint.Types.Refinements.Expr))
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                            ww7)
-                                         (GHC.Types.[]
-                                            @ Language.Fixpoint.Types.Refinements.Pred)))) #)
-                        GHC.Types.True
-                        -> (# wild3,
-                              Language.Fixpoint.Types.Refinements.$fFixpointExpr_$csimplify
-                                (Language.Fixpoint.Types.Refinements.PAnd
-                                   (GHC.Types.:
-                                      @ Language.Fixpoint.Types.Refinements.Pred
-                                      ww7
-                                      (GHC.Types.:
-                                         @ Language.Fixpoint.Types.Refinements.Pred
-                                         (Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                            (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                               @ Language.Fixpoint.Types.Refinements.Expr
-                                               (GHC.Types.:
-                                                  @ (Language.Fixpoint.Types.Names.Symbol,
-                                                     Language.Fixpoint.Types.Refinements.Expr)
-                                                  (wild,
-                                                   Language.Fixpoint.Types.Refinements.EVar wild3)
-                                                  (GHC.Types.[]
-                                                     @ (Language.Fixpoint.Types.Names.Symbol,
-                                                        Language.Fixpoint.Types.Refinements.Expr)))
-                                               (Data.HashMap.Base.Empty
-                                                  @ Language.Fixpoint.Types.Names.Symbol
-                                                  @ Language.Fixpoint.Types.Refinements.Expr))
-                                              `cast`
-                                            (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                            ww3)
-                                         (GHC.Types.[]
-                                            @ Language.Fixpoint.Types.Refinements.Pred)))) #) } }
-                   GHC.Types.True
-                   -> (# wild,
-                         Language.Fixpoint.Types.Substitutions.$fMonoidExpr_$cmappend
-                           ww3
-                           ww7 #) }) -}
-5f258de6bcc055f1438b8ef54e0e91c4
-  $w$cppTy ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.PrettyPrint.HughesPJ.Doc
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,1*U(A,U(U,U,U),U(U,U,U))><S,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w :: Text.PrettyPrint.HughesPJ.Doc) ->
-                 case Language.Fixpoint.Types.Refinements.isTautoPred ww1 of wild {
-                   GHC.Types.False
-                   -> let {
-                        p :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                        = case w `cast` (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case ww of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                               case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                               case ww5 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                               case Language.Fixpoint.Types.Names.$w$ctoFix
-                                      ww7
-                                      ww8
-                                      ww9
-                                      ww11
-                                      ww12
-                                      ww13 of ww14 { (#,#) ww15 ww16 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww15 ww16)
-                                    GHC.Types.True
-                                    Text.PrettyPrint.HughesPJ.colon1)
-                                 GHC.Types.True
-                                 wild1 } } } }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> case ww of ww2 { Language.Fixpoint.Types.Names.S ww3 ww4 ww5 ->
-                               case ww4 of ww6 { Data.Text.Internal.Text ww7 ww8 ww9 ->
-                               case ww5 of ww10 { Data.Text.Internal.Text ww11 ww12 ww13 ->
-                               case Language.Fixpoint.Types.Names.$w$ctoFix
-                                      ww7
-                                      ww8
-                                      ww9
-                                      ww11
-                                      ww12
-                                      ww13 of ww14 { (#,#) ww15 ww16 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww15 ww16)
-                                 GHC.Types.True
-                                 Text.PrettyPrint.HughesPJ.colon1 } } } } }
-                      } in
-                      case (Language.Fixpoint.Types.Substitutions.ppRas
-                              (GHC.Types.:
-                                 @ Language.Fixpoint.Types.Refinements.Expr
-                                 ww1
-                                 (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr)))
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> case p of wild3 {
-                                  DEFAULT
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                                 @ ()
-                                                 wild3
-                                                 GHC.Types.True
-                                                 wild2)
-                                              GHC.Types.True
-                                              wild1))
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild2
-                                              GHC.Types.True
-                                              wild1))
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> case p of wild3 {
-                                  DEFAULT
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild3
-                                              GHC.Types.True
-                                              wild1))
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           wild1)
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft1
-                                  `cast`
-                                (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                             DEFAULT
-                             -> case p of wild3 {
-                                  DEFAULT
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                              @ ()
-                                              wild3
-                                              GHC.Types.True
-                                              wild2))
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           wild2)
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> case p of wild3 {
-                                  DEFAULT
-                                  -> (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           Text.PrettyPrint.HughesPJ.braces4
-                                           GHC.Types.False
-                                           wild3)
-                                        GHC.Types.False
-                                        Text.PrettyPrint.HughesPJ.braces1)
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                                  Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                  -> Language.Fixpoint.Types.Substitutions.$fReftableReft2
-                                       `cast`
-                                     (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) } } }
-                   GHC.Types.True -> w }) -}
-d395c619d7c0b20e4e276aa595cde657
-  $w$cpprintTidy ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Text.PrettyPrint.Annotated.HughesPJ.Doc (), GHC.Types.Bool,
-          Text.PrettyPrint.Annotated.HughesPJ.Doc () #)
-  {- Arity: 5, Strictness: <S,U><S,U><S,U><S,U><S,U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   p :: Text.PrettyPrint.Annotated.HughesPJ.Doc ()
-                   = case (Language.Fixpoint.Types.Sorts.toFixSort ww)
-                            `cast`
-                          (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                       DEFAULT
-                       -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft3
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case Language.Fixpoint.Types.Names.$wlvl
-                                      ww1
-                                      ww2
-                                      ww3 of ww8 { (#,#) ww9 ww10 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                    @ ()
-                                    (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                                    GHC.Types.True
-                                    wild1)
-                                 GHC.Types.True
-                                 wild }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> case Language.Fixpoint.Types.Names.$wlvl
-                                      ww1
-                                      ww2
-                                      ww3 of ww8 { (#,#) ww9 ww10 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                                 GHC.Types.True
-                                 wild } }
-                       Text.PrettyPrint.Annotated.HughesPJ.Empty
-                       -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft3
-                                 `cast`
-                               (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                            DEFAULT
-                            -> case Language.Fixpoint.Types.Names.$wlvl
-                                      ww1
-                                      ww2
-                                      ww3 of ww8 { (#,#) ww9 ww10 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                 @ ()
-                                 (Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10)
-                                 GHC.Types.True
-                                 wild1 }
-                            Text.PrettyPrint.Annotated.HughesPJ.Empty
-                            -> case Language.Fixpoint.Types.Names.$wlvl
-                                      ww1
-                                      ww2
-                                      ww3 of ww8 { (#,#) ww9 ww10 ->
-                               Text.PrettyPrint.Annotated.HughesPJ.TextBeside @ () ww9 ww10 } } }
-                 } in
-                 case (Language.Fixpoint.Types.Refinements.$w$cpprintPrec
-                         Language.Fixpoint.Types.Refinements.$fDataExpr2
-                         ww4)
-                        `cast`
-                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                           @ ()
-                                           wild2
-                                           GHC.Types.True
-                                           wild1)
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild1
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild2
-                                        GHC.Types.True
-                                        wild),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     wild,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #) } }
-                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                   -> case Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft1
-                             `cast`
-                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                        DEFAULT
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     (Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                        @ ()
-                                        wild2
-                                        GHC.Types.True
-                                        wild1),
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     wild1,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #) }
-                        Text.PrettyPrint.Annotated.HughesPJ.Empty
-                        -> case p of wild2 {
-                             DEFAULT
-                             -> (# Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                     @ ()
-                                     Text.PrettyPrint.HughesPJ.braces4
-                                     GHC.Types.False
-                                     wild2,
-                                   GHC.Types.False, Text.PrettyPrint.HughesPJ.braces1 #)
-                             Text.PrettyPrint.Annotated.HughesPJ.Empty
-                             -> (# Text.PrettyPrint.HughesPJ.braces4, GHC.Types.False,
-                                   Text.PrettyPrint.HughesPJ.braces1 #) } } }) -}
-444e87ec1e6c7b3c298e97fe8175ed96
-  $w$csubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 6, Strictness: <S,1*U><L,U><S,U><S,U><S,U><L,U(U,U,U)>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Refinements.Subst)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 case Language.Fixpoint.Types.Substitutions.$wpoly_go1
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        (GHC.Prim.int2Word# ds2)
-                        ww
-                        0#
-                        w `cast` (Language.Fixpoint.Types.Refinements.N:Subst[0]) of wild {
-                   GHC.Base.Nothing
-                   -> Language.Fixpoint.Types.Names.S
-                        ww
-                        (Data.Text.Internal.Text ww1 ww2 ww3)
-                        ww4
-                   GHC.Base.Just v
-                   -> case v of wild2 {
-                        DEFAULT
-                        -> case ww4 of ww5 { Data.Text.Internal.Text ww6 ww7 ww8 ->
-                           Language.Fixpoint.Types.Substitutions.$fSubableSymbol1
-                             ww1
-                             ww2
-                             ww3
-                             ww6
-                             ww7
-                             ww8
-                             wild2 }
-                        Language.Fixpoint.Types.Refinements.EVar y -> y } } }) -}
-f869c521be2d6e7a1742a1ce61bd40a9
-  $w$csubst1 ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.Expr #)
-  {- Arity: 3, Strictness: <L,U><L,1*U><L,1*U(U,U)>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr)
-                   (w :: (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.Expr)) ->
-                 (# ww,
-                    case w of wild { (,) x ds ->
-                    case GHC.List.elem
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           Language.Fixpoint.Types.Names.$fEqSymbol
-                           x
-                           (GHC.Types.:
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              ww
-                              (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)) of wild1 {
-                      GHC.Types.False
-                      -> Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                           (Language.Fixpoint.Types.Refinements.$dmsubst2
-                              @ Language.Fixpoint.Types.Refinements.Expr
-                              (GHC.Types.:
-                                 @ (Language.Fixpoint.Types.Names.Symbol,
-                                    Language.Fixpoint.Types.Refinements.Expr)
-                                 wild
-                                 (GHC.Types.[]
-                                    @ (Language.Fixpoint.Types.Names.Symbol,
-                                       Language.Fixpoint.Types.Refinements.Expr)))
-                              (Data.HashMap.Base.Empty
-                                 @ Language.Fixpoint.Types.Names.Symbol
-                                 @ Language.Fixpoint.Types.Refinements.Expr))
-                             `cast`
-                           (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                           ww1
-                      GHC.Types.True -> ww1 } } #)) -}
-66312dfba9d0506387303072191c1507
-  $w$csubst2 ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    [a]
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [a]
-  {- Arity: 4,
-     Strictness: <L,1*U(A,A,A,1*C1(C(U)),A)><S,1*U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (w1 :: [a])
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 GHC.Base.map
-                   @ a
-                   @ a
-                   (Language.Fixpoint.Types.Refinements.subst
-                      @ a
-                      w
-                      (Language.Fixpoint.Types.Refinements.$dmsubst2
-                         @ Language.Fixpoint.Types.Refinements.Expr
-                         (GHC.Types.:
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)
-                            (ww, ww1)
-                            (GHC.Types.[]
-                               @ (Language.Fixpoint.Types.Names.Symbol,
-                                  Language.Fixpoint.Types.Refinements.Expr)))
-                         (Data.HashMap.Base.Empty
-                            @ Language.Fixpoint.Types.Names.Symbol
-                            @ Language.Fixpoint.Types.Refinements.Expr))
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])))
-                   w1) -}
-370d739cd0236319987c79d244b6bb46
-  $w$csubstf ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.Expr #)
-  {- Arity: 3, Strictness: <L,C(U)><L,U><L,1*U>, Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 (# ww,
-                    Language.Fixpoint.Types.Substitutions.$fSubableReft_$csubstf1
-                      (let {
-                         xs :: [Language.Fixpoint.Types.Names.Symbol]
-                         = GHC.Types.:
-                             @ Language.Fixpoint.Types.Names.Symbol
-                             ww
-                             (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)
-                       } in
-                       \ (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                       case GHC.List.elem
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              Language.Fixpoint.Types.Names.$fEqSymbol
-                              y
-                              xs of wild {
-                         GHC.Types.False -> w y
-                         GHC.Types.True -> Language.Fixpoint.Types.Refinements.$WEVar y })
-                      ww1 #)) -}
-aadc1b6ebf47552fb8b3243fa819ece0
-  $w$ctoFix ::
-    Language.Fixpoint.Types.Sorts.Sort
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 8,
-     Strictness: <S,U><S,U><S,U><S,U><S,U><S,U><S,U><S,1*U>,
-     Inline: [0] -}
-099559d3bfa8186787dcb30fd899affd
-  $w$s$wupdateOrSnocWithKey ::
-    (Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Data.Text.Internal.Text
-    -> v
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-  {- Arity: 6, Strictness: <L,C(C1(C1(U)))><L,U><S,U><S,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ v
-                   (w :: Language.Fixpoint.Types.Names.Symbol -> v -> v -> v)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Data.Text.Internal.Text)
-                   (ww2 :: Data.Text.Internal.Text)
-                   (w1 :: v)
-                   (w2 :: GHC.Prim.Array#
-                            (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)) ->
-                 letrec {
-                   $wgo16 :: GHC.Prim.Int#
-                             -> Data.Text.Internal.Text
-                             -> Data.Text.Internal.Text
-                             -> v
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Int#
-                             -> GHC.Prim.Array#
-                                  (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                     {- Arity: 7, Strictness: <L,U><S,U><S,U><L,U><S,U><S,U><S,U>,
-                        Inline: [0] -}
-                   = \ (ww3 :: GHC.Prim.Int#)
-                       (ww4 :: Data.Text.Internal.Text)
-                       (ww5 :: Data.Text.Internal.Text)
-                       (w3 :: v)
-                       (ww6 :: GHC.Prim.Array#
-                                 (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v))
-                       (ww7 :: GHC.Prim.Int#)
-                       (ww8 :: GHC.Prim.Int#) ->
-                     let {
-                       k2 :: Language.Fixpoint.Types.Names.Symbol
-                       = Language.Fixpoint.Types.Names.S ww3 ww4 ww5
-                     } in
-                     case GHC.Prim.tagToEnum#
-                            @ GHC.Types.Bool
-                            (GHC.Prim.>=# ww7 ww8) of wild {
-                       GHC.Types.False
-                       -> case GHC.Prim.indexArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ww6
-                                 ww7 of ds { Unit# ipv3 ->
-                          case ipv3 of wild1 { Data.HashMap.Base.L kx y ->
-                          case kx of wild2 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                          case GHC.Prim.tagToEnum#
-                                 @ GHC.Types.Bool
-                                 (GHC.Prim.==# ww3 dt1) of wild3 {
-                            GHC.Types.False
-                            -> $wgo16 ww3 ww4 ww5 w3 ww6 (GHC.Prim.+# ww7 1#) ww8
-                            GHC.Types.True
-                            -> case GHC.Prim.thawArray#
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      @ GHC.Prim.RealWorld
-                                      ww6
-                                      0#
-                                      (GHC.Prim.sizeofArray#
-                                         @ (Data.HashMap.Base.Leaf
-                                              Language.Fixpoint.Types.Names.Symbol v)
-                                         ww6)
-                                      GHC.Prim.realWorld# of ds1 { (#,#) ipv4 ipv5 ->
-                               case GHC.Prim.writeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv5
-                                      ww7
-                                      (Data.HashMap.Base.L
-                                         @ Language.Fixpoint.Types.Names.Symbol
-                                         @ v
-                                         k2
-                                         (w k2 w3 y))
-                                      ipv4 of s' { DEFAULT ->
-                               case GHC.Prim.unsafeFreezeArray#
-                                      @ GHC.Prim.RealWorld
-                                      @ (Data.HashMap.Base.Leaf
-                                           Language.Fixpoint.Types.Names.Symbol v)
-                                      ipv5
-                                      s' of ds2 { (#,#) ipv6 ipv7 ->
-                               ipv7 } } } } } } }
-                       GHC.Types.True
-                       -> case GHC.Prim.newArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 @ GHC.Prim.RealWorld
-                                 (GHC.Prim.+# ww8 1#)
-                                 (Data.HashMap.Array.undefinedElem
-                                    @ (Data.HashMap.Base.Leaf
-                                         Language.Fixpoint.Types.Names.Symbol v))
-                                 GHC.Prim.realWorld# of ds { (#,#) ipv3 ipv4 ->
-                          case GHC.Prim.copyArray#
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 @ GHC.Prim.RealWorld
-                                 ww6
-                                 0#
-                                 ipv4
-                                 0#
-                                 ww8
-                                 ipv3 of s2 { DEFAULT ->
-                          case GHC.Prim.writeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ipv4
-                                 ww8
-                                 (Data.HashMap.Base.L
-                                    @ Language.Fixpoint.Types.Names.Symbol
-                                    @ v
-                                    k2
-                                    w3)
-                                 s2 of s' { DEFAULT ->
-                          case GHC.Prim.unsafeFreezeArray#
-                                 @ GHC.Prim.RealWorld
-                                 @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                                 ipv4
-                                 s' of ds1 { (#,#) ipv5 ipv6 ->
-                          ipv6 } } } } }
-                 } in
-                 $wgo16
-                   ww
-                   ww1
-                   ww2
-                   w1
-                   w2
-                   0#
-                   (GHC.Prim.sizeofArray#
-                      @ (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-                      w2)) -}
-e4cf01bed6be1d2ccdce0d346f6ee4c9
-  $w$sdelete ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 5, Strictness: <L,U><S,U><S,U><S,U><S,1*U>, Inline: [0],
-     Unfolding: (\ @ v
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.HashMap.Base.HashMap
-                           Language.Fixpoint.Types.Names.Symbol v) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 Language.Fixpoint.Types.Substitutions.$wpoly_go5
-                   @ v
-                   (GHC.Prim.int2Word# ds2)
-                   ww
-                   0#
-                   w }) -}
-4e04a3986b1616d4475c468ea49a2a43
-  $wgo ::
-    [Language.Fixpoint.Types.Refinements.Reft]
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.Expr #)
-  {- Arity: 1, Strictness: <S,1*U>, Inline: [0] -}
-5a2039c40124415425980a00110ad5a1
-  $wgo1 ::
-    Data.HashMap.Array.Array (GHC.Base.Maybe GHC.Types.Int)
-    -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int# -> GHC.Prim.Int#
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,U>,
-     Inline: [0] -}
-385545a01e8fd5bc6e4c257f6b594fd5
-  $wlvl ::
-    GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 7, Strictness: <B,U><B,U><B,U><B,U><B,U><B,U><B,1*U>x,
-     Inline: [0] -}
-b2ce261eac9b03c161a7c8b0153b81df
-  $wpoly_go1 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><L,U><L,U><S,1*U>,
-     Inline: [0] -}
-fb008dd1db3ea6823eda4b1df18df890
-  $wpoly_go2 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe GHC.Types.Int
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-074396d3273c3393def730a9fc37eb5d
-  $wpoly_go3 ::
-    GHC.Prim.Int#
-    -> GHC.Prim.Array#
-         (Data.HashMap.Base.Leaf Language.Fixpoint.Types.Names.Symbol v)
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> GHC.Base.Maybe v
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U><S,U><S,U><S,U>,
-     Inline: [0] -}
-3e767cce9a99038be4d998cedbc6894a
-  $wpoly_go4 ::
-    GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 3, Strictness: <L,U><S,U><S,1*U>, Inline: [0] -}
-342e61b2b0ac145a476cffb6bc0b1618
-  $wpoly_go5 ::
-    GHC.Prim.Word#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-    -> Data.HashMap.Base.HashMap Language.Fixpoint.Types.Names.Symbol v
-  {- Arity: 4, Strictness: <L,U><L,U><L,U><S,1*U>, Inline: [0] -}
-11661e7c067f59b0d617eb3085e0ef09
-  catSubst ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.$fMonoidSubst1
-                  `cast`
-                (<Language.Fixpoint.Types.Refinements.Subst>_R
-                 ->_R <Language.Fixpoint.Types.Refinements.Subst>_R
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])) -}
-fe7db8b6c61c46b271d51e28e2300e29
-  filterSubst ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr -> GHC.Types.Bool)
-    -> Language.Fixpoint.Types.Refinements.Subst
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 2, Strictness: <L,C(C1(U))><S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.filterWithKey
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ Language.Fixpoint.Types.Refinements.Expr)
-                  `cast`
-                (<Language.Fixpoint.Types.Names.Symbol
-                  -> Language.Fixpoint.Types.Refinements.Expr -> GHC.Types.Bool>_R
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])) -}
-ba20c49ceb860f94495c9a12fcf719e2
-  isEmptySubst ::
-    Language.Fixpoint.Types.Refinements.Subst -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                (Data.HashMap.Base.null
-                   @ Language.Fixpoint.Types.Names.Symbol
-                   @ Language.Fixpoint.Types.Refinements.Expr)
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])
-                 ->_R <GHC.Types.Bool>_R) -}
-fb28cdefd3c7c63bb5a42b1e7ed00813
-  mkSubst ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.Expr)]
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Substitutions.mkSubst1
-                  `cast`
-                (<[(Language.Fixpoint.Types.Names.Symbol,
-                    Language.Fixpoint.Types.Refinements.Expr)]>_R
-                 ->_R Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])) -}
-4875ede4531af0b66fd06e92002ecc90
-  mkSubst1 ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.Expr)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: [(Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)]) ->
-                 Language.Fixpoint.Types.Refinements.$dmsubst2
-                   @ Language.Fixpoint.Types.Refinements.Expr
-                   (GHC.List.reverse1
-                      @ (Language.Fixpoint.Types.Names.Symbol,
-                         Language.Fixpoint.Types.Refinements.Expr)
-                      (GHC.List.filter
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)
-                         Language.Fixpoint.Types.Substitutions.mkSubst_notTrivial
-                         x)
-                      (GHC.Types.[]
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.Expr)))
-                   (Data.HashMap.Base.Empty
-                      @ Language.Fixpoint.Types.Names.Symbol
-                      @ Language.Fixpoint.Types.Refinements.Expr)) -}
-cb83716de32082557d22b92fde4119b6
-  mkSubst_notTrivial ::
-    (Language.Fixpoint.Types.Names.Symbol,
-     Language.Fixpoint.Types.Refinements.Expr)
-    -> GHC.Types.Bool
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(1*U(U,A,A),1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case ds of wild { (,) x ds1 ->
-                 case ds1 of wild1 {
-                   DEFAULT -> GHC.Types.True
-                   Language.Fixpoint.Types.Refinements.EVar y
-                   -> case x of wild2 { Language.Fixpoint.Types.Names.S dt ds2 ds3 ->
-                      case y of wild3 { Language.Fixpoint.Types.Names.S dt1 ds4 ds5 ->
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.==# dt dt1) of wild4 {
-                        GHC.Types.False -> GHC.Types.True
-                        GHC.Types.True -> GHC.Types.False } } } } }) -}
-78f9446f970fd9766c6d1fb0bdcd928b
-  ppRas ::
-    [Language.Fixpoint.Types.Refinements.Expr]
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: [Language.Fixpoint.Types.Refinements.Expr]) ->
-                 case Text.PrettyPrint.Annotated.HughesPJ.punctuate
-                        @ ()
-                        Text.PrettyPrint.HughesPJ.comma1
-                        (Language.Fixpoint.Types.Substitutions.$fFixpointReft_go
-                           x) of wild {
-                   []
-                   -> (Text.PrettyPrint.Annotated.HughesPJ.Empty @ ())
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0]))
-                   : p ps
-                   -> (Text.PrettyPrint.Annotated.HughesPJ.$wsep1
-                         @ ()
-                         GHC.Types.False
-                         (Text.PrettyPrint.Annotated.HughesPJ.reduceDoc @ () p)
-                         0#
-                         ps)
-                        `cast`
-                      (Sym (Text.PrettyPrint.HughesPJ.N:Doc[0])) }) -}
-a94df2c9f4df7f39cc946ebf63bd4011
-  subst1Except ::
-    Language.Fixpoint.Types.Refinements.Subable a =>
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> a
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.Expr)
-    -> a
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,A,A,1*C1(C1(U)))><S,1*U><L,U><S,1*U(U,U)>,
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   ($dSubable :: Language.Fixpoint.Types.Refinements.Subable a)
-                   (xs :: [Language.Fixpoint.Types.Names.Symbol])
-                   (z :: a)
-                   (su :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.Expr)) ->
-                 case su of wild { (,) x ds ->
-                 case GHC.List.elem
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fEqSymbol
-                        x
-                        xs of wild1 {
-                   GHC.Types.False
-                   -> Language.Fixpoint.Types.Refinements.subst1 @ a $dSubable z wild
-                   GHC.Types.True -> z } }) -}
-9e2f8e63412bc58752f11b98fe855696
-  substExcept ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Refinements.Subst
-  {- Arity: 2, Strictness: <S,1*U><L,U> -}
-819086f6db7b45efab1c0fbdccd4840d
-  substfExcept ::
-    (Language.Fixpoint.Types.Names.Symbol
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> [Language.Fixpoint.Types.Names.Symbol]
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (f :: Language.Fixpoint.Types.Names.Symbol
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (xs :: [Language.Fixpoint.Types.Names.Symbol])
-                   (y :: Language.Fixpoint.Types.Names.Symbol) ->
-                 case GHC.List.elem
-                        @ Language.Fixpoint.Types.Names.Symbol
-                        Language.Fixpoint.Types.Names.$fEqSymbol
-                        y
-                        xs of wild {
-                   GHC.Types.False -> f y
-                   GHC.Types.True
-                   -> Language.Fixpoint.Types.Refinements.$WEVar y }) -}
-6ff234737c1669f4465693a192980e2c
-  targetSubstSyms ::
-    Language.Fixpoint.Types.Refinements.Subst
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Types.Refinements.Subst) ->
-                 Language.Fixpoint.Types.Substitutions.targetSubstSyms_go1
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Names.Symbol)
-                   ds `cast` (Language.Fixpoint.Types.Refinements.N:Subst[0])) -}
-e236641c9d075e5477cb70100066612a
-  targetSubstSyms_go1 ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol
-         Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*U><S,1*U> -}
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fFixpointReft
-instance Language.Fixpoint.Types.PrettyPrint.Fixpoint [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fFixpointSortedReft
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Types.Substitutions.$fMonoidExpr
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fMonoidReft
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fMonoidSortedReft
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Refinements.Subst]
-  = Language.Fixpoint.Types.Substitutions.$fMonoidSubst
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fPPrintReft
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fPPrintSortedReft
-instance Language.Fixpoint.Types.Refinements.Reftable [()]
-  = Language.Fixpoint.Types.Substitutions.$fReftable()
-instance Language.Fixpoint.Types.Refinements.Reftable [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fReftableReft
-instance Language.Fixpoint.Types.Refinements.Reftable [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fReftableSortedReft
-instance GHC.Show.Show [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fShowReft
-instance GHC.Show.Show [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fShowSortedReft
-instance Language.Fixpoint.Types.Refinements.Subable [()]
-  = Language.Fixpoint.Types.Substitutions.$fSubable()
-instance Language.Fixpoint.Types.Refinements.Subable [(,)]
-  = Language.Fixpoint.Types.Substitutions.$fSubable(,)
-instance Language.Fixpoint.Types.Refinements.Subable [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Types.Substitutions.$fSubableExpr
-instance Language.Fixpoint.Types.Refinements.Subable [Data.HashMap.Base.HashMap]
-  = Language.Fixpoint.Types.Substitutions.$fSubableHashMap
-instance Language.Fixpoint.Types.Refinements.Subable [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Substitutions.$fSubableReft
-instance Language.Fixpoint.Types.Refinements.Subable [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Substitutions.$fSubableSortedReft
-instance Language.Fixpoint.Types.Refinements.Subable [Language.Fixpoint.Types.Names.Symbol]
-  = Language.Fixpoint.Types.Substitutions.$fSubableSymbol
-instance Language.Fixpoint.Types.Refinements.Subable [[]]
-  = Language.Fixpoint.Types.Substitutions.$fSubable[]
-"SPEC/Language.Fixpoint.Types.Substitutions $wupdateOrConcatWithKey @ Symbol _" [0] forall @ v
-                                                                                           (w :: GHC.Classes.Eq
-                                                                                                   Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.$wupdateOrConcatWithKey @ Language.Fixpoint.Types.Names.Symbol
-                                            @ v
-                                            w
-  = Language.Fixpoint.Types.Substitutions.$s$wupdateOrConcatWithKey
-      @ v
-"SPEC/Language.Fixpoint.Types.Substitutions delete @ Symbol _" [ALWAYS] forall @ v
-                                                                               ($dHashable :: Data.Hashable.Class.Hashable
-                                                                                                Language.Fixpoint.Types.Names.Symbol)
-                                                                               ($dEq :: GHC.Classes.Eq
-                                                                                          Language.Fixpoint.Types.Names.Symbol)
-  Data.HashMap.Base.delete @ Language.Fixpoint.Types.Names.Symbol
-                           @ v
-                           $dEq
-                           $dHashable
-  = Language.Fixpoint.Types.Substitutions.$sdelete @ v
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Triggers.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Triggers.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Triggers.dump-hi
+++ /dev/null
@@ -1,2094 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:24.195197 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers [family instance module] 8002
-  interface hash: 1553fa15296efa679efd0efb3053a239
-  ABI hash: 78e706fc94d14f2234498b868981d807
-  export-list hash: c7736da3935e25870190610c933aae55
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 3e9da7f76a1b96d5bc9ae423dc279113
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Triggers.defaultTrigger
-  Language.Fixpoint.Types.Triggers.makeTriggers
-  Language.Fixpoint.Types.Triggers.noTrigger
-  Language.Fixpoint.Types.Triggers.Trigger{Language.Fixpoint.Types.Triggers.LeftHandSide Language.Fixpoint.Types.Triggers.NoTrigger}
-  Language.Fixpoint.Types.Triggers.Triggered{Language.Fixpoint.Types.Triggers.TR}
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary 68bf10cd9cced43ad785ce79fc9157c3
-import  -/  binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Class 74e43ac8c719b63390fb5224488bc2fa
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  Eq 335b461632fbbf9532cda2ae4e55fdeb
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PFalse bb7da1702e7769414ba90b65c41747cb
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  Ueq 6474df993ebe4d0afd93678b01fc0b4a
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger ::
-    Data.Binary.Class.Binary Language.Fixpoint.Types.Triggers.Trigger
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Triggers.Trigger
-                  Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$s$dmput
-                  Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cget
-                  Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cputList -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger1 ::
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Triggers.Trigger r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ r
-                   (w :: Data.ByteString.Internal.ByteString)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            Language.Fixpoint.Types.Triggers.Trigger r) ->
-                 case w of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Triggers.$w$cget
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w1 }) -}
-1b39fcfeab8606837a318f07c619094f
-  $fBinaryTrigger10 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-a8efc46bd53f3206a2e88d4b273d4726
-  $fBinaryTrigger2 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-9e7b6198ef00ea89bc9f4e916312b652
-  $fBinaryTrigger3 ::
-    (GHC.Classes.Ord word, GHC.Num.Num word, Data.Bits.Bits word) =>
-    word
-    -> word
-    -> forall r.
-       Data.ByteString.Internal.ByteString
-       -> Data.Binary.Get.Internal.Success
-            (GHC.Generics.M1
-               GHC.Generics.C
-               ('GHC.Generics.MetaCons
-                  "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-               a1)
-            r
-       -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 7, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,A><L,A><L,A><L,U><C(C(S)),1*C1(C1(U))>,
-     Unfolding: InlineRule (7, True, True)
-                (\ @ word
-                   @ a1
-                   ($dOrd :: GHC.Classes.Ord word)
-                   ($dNum :: GHC.Num.Num word)
-                   ($dBits :: Data.Bits.Bits word)
-                   (eta :: word)
-                   (eta1 :: word)
-                   @ r
-                   (eta2 :: Data.ByteString.Internal.ByteString)
-                   (eta3 :: Data.Binary.Get.Internal.Success
-                              (GHC.Generics.M1
-                                 GHC.Generics.C
-                                 ('GHC.Generics.MetaCons
-                                    "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                 GHC.Generics.U1
-                                 a1)
-                              r) ->
-                 eta3
-                   eta2
-                   (GHC.Generics.U1 @ a1)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <a1>_N)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger4 ::
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> (GHC.Generics.:+:)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         (GHC.Generics.M1
-            GHC.Generics.C
-            ('GHC.Generics.MetaCons
-               "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1)
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (x1 :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 case x1 of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> Language.Fixpoint.Types.Triggers.$fBinaryTrigger6 @ x
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> Language.Fixpoint.Types.Triggers.$fBinaryTrigger5 @ x }) -}
-350530849d9f4b820e8c6b2c5018b623
-  $fBinaryTrigger5 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m2,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.R1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-9b3fc48c2fec1c73070164433b50a2e9
-  $fBinaryTrigger6 ::
-    (GHC.Generics.:+:)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1)
-      x
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (\ @ x ->
-                 GHC.Generics.L1
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ x
-                   (GHC.Generics.U1 @ x)
-                     `cast`
-                   (Sym (GHC.Generics.N:M1[0]
-                             <GHC.Generics.C>_P
-                             <'GHC.Generics.MetaCons
-                                "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                             <GHC.Generics.U1>_R) <x>_N)) -}
-d7f37fd8b9514ed34555bc9c1a489fb1
-  $fBinaryTrigger7 ::
-    Data.Binary.Class.GBinaryPut
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Trigger"
-            "Language.Fixpoint.Types.Triggers"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.C1
-                             ('GHC.Generics.MetaCons
-                                "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1))
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fBinaryTrigger8
-                  `cast`
-                (Sym (Data.Binary.Class.N:GBinaryPut[0]
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Trigger"
-                                "Language.Fixpoint.Types.Triggers"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.C1
-                                                 ('GHC.Generics.MetaCons
-                                                    "LeftHandSide"
-                                                    'GHC.Generics.PrefixI
-                                                    'GHC.Types.False)
-                                                 GHC.Generics.U1)>_N)) -}
-14b9c87c4c6c504f1a37cd05ed48991e
-  $fBinaryTrigger8 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Trigger"
-         "Language.Fixpoint.Types.Triggers"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      t
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ t
-                   (eta :: GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Trigger"
-                                "Language.Fixpoint.Types.Triggers"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.C1
-                                                 ('GHC.Generics.MetaCons
-                                                    "LeftHandSide"
-                                                    'GHC.Generics.PrefixI
-                                                    'GHC.Types.False)
-                                                 GHC.Generics.U1)
-                             t) ->
-                 Data.Binary.Generic.$w$cgput
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger10
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger9
-                     `cast`
-                   (Sym (Data.Binary.Generic.N:GSumPut[0]
-                             <GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1>_N))
-                   1##
-                   1##
-                   @ t
-                   eta
-                     `cast`
-                   (GHC.Generics.N:M1[0]
-                        <GHC.Generics.D>_P
-                        <'GHC.Generics.MetaData
-                           "Trigger"
-                           "Language.Fixpoint.Types.Triggers"
-                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                           'GHC.Types.False>_P
-                        <GHC.Generics.C1
-                           ('GHC.Generics.MetaCons
-                              "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                           GHC.Generics.U1
-                         GHC.Generics.:+: GHC.Generics.C1
-                                            ('GHC.Generics.MetaCons
-                                               "LeftHandSide"
-                                               'GHC.Generics.PrefixI
-                                               'GHC.Types.False)
-                                            GHC.Generics.U1>_R <t>_N)) -}
-c7be77f595e4d913cc4ea141dd7cef85
-  $fBinaryTrigger9 ::
-    (GHC.Num.Num w, Data.Bits.Bits w, Data.Binary.Class.Binary w) =>
-    w
-    -> w
-    -> GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-         a1
-    -> Data.Binary.Put.Put
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <L,A><L,A><L,1*U(1*C1(U(A,U)),A,A)><S,1*U><L,A><L,U>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (6, True, False)
-                (\ @ w
-                   @ a1
-                   (w1 :: GHC.Num.Num w)
-                   (w2 :: Data.Bits.Bits w)
-                   (w3 :: Data.Binary.Class.Binary w)
-                   (w4 :: w)
-                   (w5 :: w)
-                   (w6 :: GHC.Generics.C1
-                            ('GHC.Generics.MetaCons
-                               "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                            GHC.Generics.U1
-                            a1) ->
-                 case w4 of code { DEFAULT ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ w w3 code)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w8 ->
-                         w8 }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (case w6 of tpl { DEFAULT ->
-                         \ (range :: Data.ByteString.Builder.Internal.BufferRange) ->
-                         eta range }))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger_$cfrom ::
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> GHC.Generics.Rep Language.Fixpoint.Types.Triggers.Trigger x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fBinaryTrigger4
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Triggers.Trigger>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Trigger"
-                                       "Language.Fixpoint.Types.Triggers"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       GHC.Generics.U1
-                                     GHC.Generics.:+: GHC.Generics.M1
-                                                        GHC.Generics.C
-                                                        ('GHC.Generics.MetaCons
-                                                           "LeftHandSide"
-                                                           'GHC.Generics.PrefixI
-                                                           'GHC.Types.False)
-                                                        GHC.Generics.U1>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Triggers.Rep_Trigger[0]))) <x>_N) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger_$cget ::
-    Data.Binary.Get.Internal.Get
-      Language.Fixpoint.Types.Triggers.Trigger
-  {- Arity: 2, Strictness: <S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fBinaryTrigger1
-                  `cast`
-                (Sym (Data.Binary.Get.Internal.N:Get[0]
-                          <Language.Fixpoint.Types.Triggers.Trigger>_R)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger_$cputList ::
-    [Language.Fixpoint.Types.Triggers.Trigger] -> Data.Binary.Put.Put
-  {- Arity: 1 -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Types.Triggers.Trigger x
-    -> Language.Fixpoint.Types.Triggers.Trigger
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (ds :: GHC.Generics.Rep
-                            Language.Fixpoint.Types.Triggers.Trigger x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Triggers.Rep_Trigger[0]))
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Trigger"
-                                   "Language.Fixpoint.Types.Triggers"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                   GHC.Generics.U1
-                                 GHC.Generics.:+: GHC.Generics.M1
-                                                    GHC.Generics.C
-                                                    ('GHC.Generics.MetaCons
-                                                       "LeftHandSide"
-                                                       'GHC.Generics.PrefixI
-                                                       'GHC.Types.False)
-                                                    GHC.Generics.U1>_R) <x>_N) of wild {
-                   GHC.Generics.L1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Types.Triggers.NoTrigger }
-                   GHC.Generics.R1 ds1
-                   -> case ds1 of tpl { DEFAULT ->
-                      Language.Fixpoint.Types.Triggers.LeftHandSide } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTrigger_$s$dmput ::
-    Language.Fixpoint.Types.Triggers.Trigger -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 Language.Fixpoint.Types.Triggers.$fBinaryTrigger7
-                   `cast`
-                 (Data.Binary.Class.N:GBinaryPut[0]
-                      (Sym (Language.Fixpoint.Types.Triggers.Rep_Trigger[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTriggered ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Class.Binary
-      (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dBinary :: Data.Binary.Class.Binary a).
-                  @ (Language.Fixpoint.Types.Triggers.Triggered a)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cput
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cget
-                     @ a
-                     $dBinary)
-                  (Language.Fixpoint.Types.Triggers.$fBinaryTriggered_$cputList
-                     @ a
-                     $dBinary) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTriggered1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    Data.ByteString.Internal.ByteString
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Triggers.Triggered a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (w1 :: Data.ByteString.Internal.ByteString)
-                   (w2 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Triggers.Triggered a) r) ->
-                 case w1 of ww { Data.ByteString.Internal.PS ww1 ww2 ww3 ww4 ->
-                 Language.Fixpoint.Types.Triggers.$w$cget1
-                   @ a
-                   w
-                   @ r
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   w2 }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTriggered_$cget ::
-    Data.Binary.Class.Binary a =>
-    Data.Binary.Get.Internal.Get
-      (Language.Fixpoint.Types.Triggers.Triggered a)
-  {- Arity: 3,
-     Strictness: <L,U(A,C(C1(U)),A)><S(SLSS),1*U(U,U,U,U)><L,C(C1(U))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fBinaryTriggered1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Data.Binary.Class.Binary a>_R
-                 ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                               <Language.Fixpoint.Types.Triggers.Triggered a>_R)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTriggered_$cput ::
-    Data.Binary.Class.Binary a =>
-    Language.Fixpoint.Types.Triggers.Triggered a -> Data.Binary.Put.Put
-  {- Arity: 2, Strictness: <L,1*U(1*C1(U(A,U)),A,A)><S,1*U(1*U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   (w1 :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Triggers.TR ww1 ww2 ->
-                 (Data.Binary.Put.PairS
-                    @ ()
-                    GHC.Tuple.()
-                    (let {
-                       ds :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Generic.$w$cgput
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      GHC.Generics.U1)
-                                 @ (GHC.Generics.M1
-                                      GHC.Generics.C
-                                      ('GHC.Generics.MetaCons
-                                         "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                      GHC.Generics.U1)
-                                 Language.Fixpoint.Types.Triggers.$fBinaryTrigger10
-                                   `cast`
-                                 (Sym (Data.Binary.Generic.N:GSumPut[0]
-                                           <GHC.Generics.C1
-                                              ('GHC.Generics.MetaCons
-                                                 "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                              GHC.Generics.U1>_N))
-                                 Language.Fixpoint.Types.Triggers.$fBinaryTrigger9
-                                   `cast`
-                                 (Sym (Data.Binary.Generic.N:GSumPut[0]
-                                           <GHC.Generics.C1
-                                              ('GHC.Generics.MetaCons
-                                                 "LeftHandSide"
-                                                 'GHC.Generics.PrefixI
-                                                 'GHC.Types.False)
-                                              GHC.Generics.U1>_N))
-                                 1##
-                                 1##
-                                 @ GHC.Prim.Any
-                                 (Language.Fixpoint.Types.Triggers.$fBinaryTrigger4
-                                    @ GHC.Prim.Any
-                                    ww1))
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w3 ->
-                         w3 }
-                     } in
-                     let {
-                       ds1 :: Data.ByteString.Builder.Internal.Builder
-                       = case (Data.Binary.Class.put @ a w ww2)
-                                `cast`
-                              (Data.Binary.Put.N:PutM[0] <()>_N) of wild { Data.Binary.Put.PairS ds2 w' ->
-                         w' }
-                     } in
-                     (\ @ r (eta :: Data.ByteString.Builder.Internal.BuildStep r) ->
-                      ds `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                        @ r
-                        (ds1 `cast` (Data.ByteString.Builder.Internal.N:Builder[0])
-                           @ r
-                           eta))
-                       `cast`
-                     (Sym (Data.ByteString.Builder.Internal.N:Builder[0]))))
-                   `cast`
-                 (Sym (Data.Binary.Put.N:PutM[0]) <()>_N) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fBinaryTriggered_$cputList ::
-    Data.Binary.Class.Binary a =>
-    [Language.Fixpoint.Types.Triggers.Triggered a]
-    -> Data.Binary.Put.Put
-  {- Arity: 1, Strictness: <L,U(C(U(A,U)),C(C1(U)),A)> -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTrigger ::
-    GHC.Classes.Eq Language.Fixpoint.Types.Triggers.Trigger
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Triggers.Trigger
-                  Language.Fixpoint.Types.Triggers.$fEqTrigger_$c==
-                  Language.Fixpoint.Types.Triggers.$fEqTrigger_$c/= -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTrigger_$c/= ::
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> Language.Fixpoint.Types.Triggers.Trigger -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (b :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 case a of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger -> GHC.Types.False
-                        Language.Fixpoint.Types.Triggers.LeftHandSide -> GHC.Types.True }
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> case b of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger -> GHC.Types.True
-                        Language.Fixpoint.Types.Triggers.LeftHandSide
-                        -> GHC.Types.False } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTrigger_$c== ::
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> Language.Fixpoint.Types.Triggers.Trigger -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ds1 :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger -> GHC.Types.True
-                        Language.Fixpoint.Types.Triggers.LeftHandSide -> GHC.Types.False }
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> case ds1 of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger -> GHC.Types.False
-                        Language.Fixpoint.Types.Triggers.LeftHandSide
-                        -> GHC.Types.True } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTriggered ::
-    GHC.Classes.Eq a =>
-    GHC.Classes.Eq (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U(C(C1(U)),A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dEq :: GHC.Classes.Eq a).
-                  @ (Language.Fixpoint.Types.Triggers.Triggered a)
-                  (Language.Fixpoint.Types.Triggers.$fEqTriggered_$c== @ a $dEq)
-                  (Language.Fixpoint.Types.Triggers.$fEqTriggered_$c/= @ a $dEq) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTriggered_$c/= ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Triggers.Triggered a
-    -> Language.Fixpoint.Types.Triggers.Triggered a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S(SL),1*U(1*U,U)><S(SL),1*U(1*U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dEq :: GHC.Classes.Eq a)
-                   (a1 :: Language.Fixpoint.Types.Triggers.Triggered a)
-                   (b :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case Language.Fixpoint.Types.Triggers.$fEqTriggered_$c==
-                        @ a
-                        $dEq
-                        a1
-                        b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fEqTriggered_$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Triggers.Triggered a
-    -> Language.Fixpoint.Types.Triggers.Triggered a -> GHC.Types.Bool
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S(SL),1*U(1*U,U)><S(SL),1*U(1*U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (w1 :: Language.Fixpoint.Types.Triggers.Triggered a)
-                   (w2 :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Triggers.TR ww1 ww2 ->
-                 case w2 of ww3 { Language.Fixpoint.Types.Triggers.TR ww4 ww5 ->
-                 Language.Fixpoint.Types.Triggers.$w$c==
-                   @ a
-                   w
-                   ww1
-                   ww2
-                   ww4
-                   ww5 } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fFunctorTriggered ::
-    GHC.Base.Functor Language.Fixpoint.Types.Triggers.Triggered
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Triggers.Triggered
-                  Language.Fixpoint.Types.Triggers.$fFunctorTriggered_$cfmap
-                  Language.Fixpoint.Types.Triggers.$fFunctorTriggered_$c<$ -}
-0ede6587ce135bd08622314fe97bbc85
-  $fFunctorTriggered_$c<$ ::
-    a
-    -> Language.Fixpoint.Types.Triggers.Triggered b
-    -> Language.Fixpoint.Types.Triggers.Triggered a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U(U,A)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (eta :: a)
-                   (ds :: Language.Fixpoint.Types.Triggers.Triggered b) ->
-                 case ds of wild { Language.Fixpoint.Types.Triggers.TR a1 a2 ->
-                 Language.Fixpoint.Types.Triggers.TR @ a a1 eta }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fFunctorTriggered_$cfmap ::
-    (a -> b)
-    -> Language.Fixpoint.Types.Triggers.Triggered a
-    -> Language.Fixpoint.Types.Triggers.Triggered b
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,1*C1(U)><S,1*U(U,U)>m,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   @ b
-                   (f :: a -> b)
-                   (ds :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case ds of wild { Language.Fixpoint.Types.Triggers.TR a1 a2 ->
-                 Language.Fixpoint.Types.Triggers.TR @ b a1 (f a2) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fGenericTrigger ::
-    GHC.Generics.Generic Language.Fixpoint.Types.Triggers.Trigger
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Triggers.Trigger
-                  Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cfrom
-                  Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cto -}
-0ede6587ce135bd08622314fe97bbc85
-  $fGenericTriggered ::
-    GHC.Generics.Generic (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a.
-                  @ (Language.Fixpoint.Types.Triggers.Triggered a)
-                  (Language.Fixpoint.Types.Triggers.$fGenericTriggered_$cfrom @ a)
-                  (Language.Fixpoint.Types.Triggers.$fGenericTriggered_$cto @ a) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fGenericTriggered1 ::
-    Language.Fixpoint.Types.Triggers.Triggered a
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "TR" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         (GHC.Generics.M1
-            GHC.Generics.S
-            ('GHC.Generics.MetaSel
-               'GHC.Base.Nothing
-               'GHC.Generics.NoSourceUnpackedness
-               'GHC.Generics.NoSourceStrictness
-               'GHC.Generics.DecidedLazy)
-            (GHC.Generics.K1
-               GHC.Generics.R Language.Fixpoint.Types.Triggers.Trigger)
-          GHC.Generics.:*: GHC.Generics.M1
-                             GHC.Generics.S
-                             ('GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.K1 GHC.Generics.R a))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a @ x (x1 :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case x1 of wild { Language.Fixpoint.Types.Triggers.TR g1 g2 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            'GHC.Base.Nothing
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1
-                            GHC.Generics.R Language.Fixpoint.Types.Triggers.Trigger))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            'GHC.Base.Nothing
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R a))
-                    @ x
-                    g1
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0]
-                                   <GHC.Generics.R>_P
-                                   <Language.Fixpoint.Types.Triggers.Trigger>_R
-                                   <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1
-                                      GHC.Generics.R
-                                      Language.Fixpoint.Types.Triggers.Trigger>_R) <x>_N))
-                    g2
-                      `cast`
-                    (Trans
-                         (Sym (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P))
-                         (Sym (GHC.Generics.N:M1[0]
-                                   <GHC.Generics.S>_P
-                                   <'GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy>_P
-                                   <GHC.Generics.K1 GHC.Generics.R a>_R) <x>_N)))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "TR" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                           <GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.K1
-                                 GHC.Generics.R Language.Fixpoint.Types.Triggers.Trigger)
-                            GHC.Generics.:*: GHC.Generics.M1
-                                               GHC.Generics.S
-                                               ('GHC.Generics.MetaSel
-                                                  'GHC.Base.Nothing
-                                                  'GHC.Generics.NoSourceUnpackedness
-                                                  'GHC.Generics.NoSourceStrictness
-                                                  'GHC.Generics.DecidedLazy)
-                                               (GHC.Generics.K1 GHC.Generics.R a)>_R) <x>_N) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fGenericTriggered_$cfrom ::
-    Language.Fixpoint.Types.Triggers.Triggered a
-    -> GHC.Generics.Rep
-         (Language.Fixpoint.Types.Triggers.Triggered a) x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fGenericTriggered1
-                  `cast`
-                (forall (a :: <*>_N) (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Types.Triggers.Triggered a>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Triggered"
-                                       "Language.Fixpoint.Types.Triggers"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "TR" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                       (GHC.Generics.M1
-                                          GHC.Generics.S
-                                          ('GHC.Generics.MetaSel
-                                             'GHC.Base.Nothing
-                                             'GHC.Generics.NoSourceUnpackedness
-                                             'GHC.Generics.NoSourceStrictness
-                                             'GHC.Generics.DecidedLazy)
-                                          (GHC.Generics.K1
-                                             GHC.Generics.R
-                                             Language.Fixpoint.Types.Triggers.Trigger)
-                                        GHC.Generics.:*: GHC.Generics.M1
-                                                           GHC.Generics.S
-                                                           ('GHC.Generics.MetaSel
-                                                              'GHC.Base.Nothing
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.K1 GHC.Generics.R a))>_R))
-                          (Sub (Sym (Language.Fixpoint.Types.Triggers.Rep_Triggered[0]
-                                         <a>_N))) <x>_N) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fGenericTriggered_$cto ::
-    GHC.Generics.Rep (Language.Fixpoint.Types.Triggers.Triggered a) x
-    -> Language.Fixpoint.Types.Triggers.Triggered a
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a
-                   @ x
-                   (ds :: GHC.Generics.Rep
-                            (Language.Fixpoint.Types.Triggers.Triggered a) x) ->
-                 case ds
-                        `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Types.Triggers.Rep_Triggered[0] <a>_N))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Triggered"
-                                        "Language.Fixpoint.Types.Triggers"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.C
-                                        ('GHC.Generics.MetaCons
-                                           "TR" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                        (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              'GHC.Base.Nothing
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R
-                                              Language.Fixpoint.Types.Triggers.Trigger)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               'GHC.Base.Nothing
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.NoSourceStrictness
-                                                               'GHC.Generics.DecidedLazy)
-                                                            (GHC.Generics.K1 GHC.Generics.R a))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "TR" 'GHC.Generics.PrefixI 'GHC.Types.False>_P
-                                     <GHC.Generics.M1
-                                        GHC.Generics.S
-                                        ('GHC.Generics.MetaSel
-                                           'GHC.Base.Nothing
-                                           'GHC.Generics.NoSourceUnpackedness
-                                           'GHC.Generics.NoSourceStrictness
-                                           'GHC.Generics.DecidedLazy)
-                                        (GHC.Generics.K1
-                                           GHC.Generics.R Language.Fixpoint.Types.Triggers.Trigger)
-                                      GHC.Generics.:*: GHC.Generics.M1
-                                                         GHC.Generics.S
-                                                         ('GHC.Generics.MetaSel
-                                                            'GHC.Base.Nothing
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.K1
-                                                            GHC.Generics.R
-                                                            a)>_R)) <x>_N) of wild { GHC.Generics.:*: ds1 ds2 ->
-                 Language.Fixpoint.Types.Triggers.TR
-                   @ a
-                   ds1
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R Language.Fixpoint.Types.Triggers.Trigger>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P
-                             <Language.Fixpoint.Types.Triggers.Trigger>_R
-                             <x>_P))
-                   ds2
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                'GHC.Base.Nothing
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R a>_R <x>_N)
-                        (GHC.Generics.N:K1[0] <GHC.Generics.R>_P <a>_R <x>_P)) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fNFDataTrigger ::
-    Control.DeepSeq.NFData Language.Fixpoint.Types.Triggers.Trigger
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Triggers.$fNFDataTrigger_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Types.Triggers.Trigger>_N)) -}
-fc9537f46b445998d1486100a24e5208
-  $fNFDataTrigger1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Trigger"
-            "Language.Fixpoint.Types.Triggers"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-            GHC.Generics.U1
-          GHC.Generics.:+: GHC.Generics.C1
-                             ('GHC.Generics.MetaCons
-                                "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                             GHC.Generics.U1))
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Triggers.$fNFDataTrigger2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Trigger"
-                                "Language.Fixpoint.Types.Triggers"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1
-                              GHC.Generics.:+: GHC.Generics.C1
-                                                 ('GHC.Generics.MetaCons
-                                                    "LeftHandSide"
-                                                    'GHC.Generics.PrefixI
-                                                    'GHC.Types.False)
-                                                 GHC.Generics.U1)>_N)) -}
-bd3b7a0df0d55783fcebef350dc05df7
-  $fNFDataTrigger2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Trigger"
-         "Language.Fixpoint.Types.Triggers"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.C1
-         ('GHC.Generics.MetaCons
-            "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-         GHC.Generics.U1
-       GHC.Generics.:+: GHC.Generics.C1
-                          ('GHC.Generics.MetaCons
-                             "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                          GHC.Generics.U1)
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (x :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Trigger"
-                              "Language.Fixpoint.Types.Triggers"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "LeftHandSide"
-                                                  'GHC.Generics.PrefixI
-                                                  'GHC.Types.False)
-                                               GHC.Generics.U1)
-                           a1) ->
-                 case x `cast`
-                      (GHC.Generics.N:M1[0]
-                           <GHC.Generics.D>_P
-                           <'GHC.Generics.MetaData
-                              "Trigger"
-                              "Language.Fixpoint.Types.Triggers"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False>_P
-                           <GHC.Generics.C1
-                              ('GHC.Generics.MetaCons
-                                 "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                              GHC.Generics.U1
-                            GHC.Generics.:+: GHC.Generics.C1
-                                               ('GHC.Generics.MetaCons
-                                                  "LeftHandSide"
-                                                  'GHC.Generics.PrefixI
-                                                  'GHC.Types.False)
-                                               GHC.Generics.U1>_R <a1>_N) of wild {
-                   GHC.Generics.L1 x1 -> case x1 of tpl { DEFAULT -> GHC.Tuple.() }
-                   GHC.Generics.R1 x1
-                   -> case x1 of tpl { DEFAULT -> GHC.Tuple.() } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fNFDataTrigger_$s$dmrnf ::
-    Language.Fixpoint.Types.Triggers.Trigger -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 Language.Fixpoint.Types.Triggers.$fNFDataTrigger1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Types.Triggers.Rep_Trigger[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fNFDataTriggered ::
-    Control.DeepSeq.NFData a =>
-    Control.DeepSeq.NFData
-      (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SL),1*U(1*U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Triggers.$fNFDataTriggered_$crnf
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Control.DeepSeq.NFData a>_R
-                 ->_R Sym (Control.DeepSeq.N:NFData[0]
-                               <Language.Fixpoint.Types.Triggers.Triggered a>_N)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fNFDataTriggered_$crnf ::
-    Control.DeepSeq.NFData a =>
-    Language.Fixpoint.Types.Triggers.Triggered a -> ()
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U())><S(SL),1*U(1*U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dNFData :: Control.DeepSeq.NFData a)
-                   (eta :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case eta of wild { Language.Fixpoint.Types.Triggers.TR g1 g2 ->
-                 case g1 of wild1 { DEFAULT ->
-                 $dNFData `cast` (Control.DeepSeq.N:NFData[0] <a>_N) g2 } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTrigger ::
-    GHC.Show.Show Language.Fixpoint.Types.Triggers.Trigger
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Triggers.Trigger
-                  Language.Fixpoint.Types.Triggers.$fShowTrigger_$cshowsPrec
-                  Language.Fixpoint.Types.Triggers.$fShowTrigger_$cshow
-                  Language.Fixpoint.Types.Triggers.$fShowTrigger_$cshowList -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTrigger1 ::
-    Language.Fixpoint.Types.Triggers.Trigger -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S,1*U><L,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (eta :: GHC.Base.String) ->
-                 case ds of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Types.Triggers.$fShowTrigger3)
-                        eta
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Types.Triggers.$fShowTrigger2)
-                        eta }) -}
-e24cff88799bc65630aef1cc904f4b5c
-  $fShowTrigger2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "LeftHandSide"#) -}
-f88e24213402b27dfad8f9f49cdddb53
-  $fShowTrigger3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "NoTrigger"#) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTrigger_$cshow ::
-    Language.Fixpoint.Types.Triggers.Trigger -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Types.Triggers.Trigger) ->
-                 case x of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> Language.Fixpoint.Types.Triggers.$fShowTrigger3
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> Language.Fixpoint.Types.Triggers.$fShowTrigger2 }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTrigger_$cshowList ::
-    [Language.Fixpoint.Types.Triggers.Trigger] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Types.Triggers.Trigger
-                   Language.Fixpoint.Types.Triggers.$fShowTrigger1) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTrigger_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Triggers.Trigger -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,A><S,1*U><L,1*U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (ds1 :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (eta :: GHC.Base.String) ->
-                 case ds1 of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Types.Triggers.$fShowTrigger3)
-                        eta
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> GHC.Base.augment
-                        @ GHC.Types.Char
-                        (\ @ b
-                           (c :: GHC.Types.Char -> b -> b)[OneShot]
-                           (n :: b)[OneShot] ->
-                         GHC.Base.foldr
-                           @ GHC.Types.Char
-                           @ b
-                           c
-                           n
-                           Language.Fixpoint.Types.Triggers.$fShowTrigger2)
-                        eta }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTriggered ::
-    GHC.Show.Show a =>
-    GHC.Show.Show (Language.Fixpoint.Types.Triggers.Triggered a)
-  DFunId
-  {- Arity: 1, Strictness: <L,U(C(C1(U)),A,A)>m,
-     Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ a ($dShow :: GHC.Show.Show a).
-                  @ (Language.Fixpoint.Types.Triggers.Triggered a)
-                  (Language.Fixpoint.Types.Triggers.$fShowTriggered_$cshowsPrec
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Triggers.$fShowTriggered_$cshow
-                     @ a
-                     $dShow)
-                  (Language.Fixpoint.Types.Triggers.$fShowTriggered_$cshowList
-                     @ a
-                     $dShow) -}
-cbf23b47d89238ce03a8c9842a7a7316
-  $fShowTriggered1 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-8eeb33ea1b744dc041ca22ec65543eb4
-  $fShowTriggered2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "TR "#) -}
-a627ec9acb19b7496ec8175d5c13efe8
-  $fShowTriggered3 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 11#) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTriggered_$cshow ::
-    GHC.Show.Show a =>
-    Language.Fixpoint.Types.Triggers.Triggered a -> GHC.Base.String
-  {- Arity: 2, Strictness: <L,1*U(1*C1(C1(U)),A,A)><S,1*U(U,U)>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (x :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 Language.Fixpoint.Types.Triggers.$fShowTriggered_$cshowsPrec
-                   @ a
-                   $dShow
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTriggered_$cshowList ::
-    GHC.Show.Show a =>
-    [Language.Fixpoint.Types.Triggers.Triggered a] -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,U(C(C1(U)),A,A)><S,1*U><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   ($dShow :: GHC.Show.Show a)
-                   (eta :: [Language.Fixpoint.Types.Triggers.Triggered a])
-                   (eta1 :: GHC.Base.String) ->
-                 GHC.Show.showList__
-                   @ (Language.Fixpoint.Types.Triggers.Triggered a)
-                   (Language.Fixpoint.Types.Triggers.$fShowTriggered_$cshowsPrec
-                      @ a
-                      $dShow
-                      Language.Fixpoint.Types.Triggers.$fShowTriggered1)
-                   eta
-                   eta1) -}
-0ede6587ce135bd08622314fe97bbc85
-  $fShowTriggered_$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.Triggers.Triggered a -> GHC.Show.ShowS
-  {- Arity: 3,
-     Strictness: <L,1*U(1*C1(C1(U)),A,A)><S(S),1*U(U)><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, False)
-                (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (w1 :: GHC.Types.Int)
-                   (w2 :: Language.Fixpoint.Types.Triggers.Triggered a) ->
-                 case w1 of ww { GHC.Types.I# ww1 ->
-                 case w2 of ww2 { Language.Fixpoint.Types.Triggers.TR ww3 ww4 ->
-                 Language.Fixpoint.Types.Triggers.$w$cshowsPrec
-                   @ a
-                   w
-                   ww1
-                   ww3
-                   ww4 } }) -}
-fe891cc69354768b0f053f1dc49e7163
-  $tc'LeftHandSide :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2326495868857635222##
-                   9168403974021767560##
-                   Language.Fixpoint.Types.Triggers.$trModule
-                   Language.Fixpoint.Types.Triggers.$tc'LeftHandSide1) -}
-3c4929494d98740d36c520e7079dab52
-  $tc'LeftHandSide1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'LeftHandSide"#) -}
-bbf341ec963d9aeb1d0063144d0f66ea
-  $tc'NoTrigger :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11781270508128939119##
-                   15661476380936433793##
-                   Language.Fixpoint.Types.Triggers.$trModule
-                   Language.Fixpoint.Types.Triggers.$tc'NoTrigger1) -}
-cb8dafa9d28330914a708fff5ae3251b
-  $tc'NoTrigger1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'NoTrigger"#) -}
-123e34695062ae65b6d8c6162b98e0ff
-  $tc'TR :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2046404271416206192##
-                   7256182060426594946##
-                   Language.Fixpoint.Types.Triggers.$trModule
-                   Language.Fixpoint.Types.Triggers.$tc'TR1) -}
-966265db0485e0ca5f4f5b204a8eb316
-  $tc'TR1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'TR"#) -}
-a82fb6254226ad4544e1503cc11bd850
-  $tcTrigger :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7374618129986076639##
-                   2787413388427844988##
-                   Language.Fixpoint.Types.Triggers.$trModule
-                   Language.Fixpoint.Types.Triggers.$tcTrigger1) -}
-585986acf4dacb65351e1bd7942dcd73
-  $tcTrigger1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Trigger"#) -}
-fc280850efd8d43cf8ad876ac703a914
-  $tcTriggered :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15618417583459619644##
-                   204330870616713696##
-                   Language.Fixpoint.Types.Triggers.$trModule
-                   Language.Fixpoint.Types.Triggers.$tcTriggered1) -}
-127ea129d854d6d628c6c2a5b218ec01
-  $tcTriggered1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Triggered"#) -}
-0afa0783eff1dd71515d1a1d2cfaa070
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Triggers.$trModule2
-                   Language.Fixpoint.Types.Triggers.$trModule1) -}
-ffefe9f1d26ae50cc870c9a052f82249
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Triggers"#) -}
-a57f4f0a7d146d0aaeaadb03c07da242
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-0ede6587ce135bd08622314fe97bbc85
-  $w$c== ::
-    GHC.Classes.Eq a =>
-    Language.Fixpoint.Types.Triggers.Trigger
-    -> a
-    -> Language.Fixpoint.Types.Triggers.Trigger
-    -> a
-    -> GHC.Types.Bool
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(1*C1(C1(U)),A)><S,1*U><L,U><S,1*U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Classes.Eq a)
-                   (ww :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ww1 :: a)
-                   (ww2 :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ww3 :: a) ->
-                 case ww of wild {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> case ww2 of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger
-                        -> GHC.Classes.== @ a w ww1 ww3
-                        Language.Fixpoint.Types.Triggers.LeftHandSide -> GHC.Types.False }
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> case ww2 of wild1 {
-                        Language.Fixpoint.Types.Triggers.NoTrigger -> GHC.Types.False
-                        Language.Fixpoint.Types.Triggers.LeftHandSide
-                        -> GHC.Classes.== @ a w ww1 ww3 } }) -}
-0ede6587ce135bd08622314fe97bbc85
-  $w$cget ::
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         Language.Fixpoint.Types.Triggers.Trigger r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 5, Strictness: <S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w :: Data.Binary.Get.Internal.Success
-                           Language.Fixpoint.Types.Triggers.Trigger r) ->
-                 Data.Binary.Generic.$w$cgget
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger3
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger2
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   1##
-                   1##
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               GHC.Prim.Any) ->
-                    w i'
-                      (Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$cto
-                         @ GHC.Prim.Any
-                         a1
-                           `cast`
-                         (Trans
-                              (Sym (GHC.Generics.N:M1[0]
-                                        <GHC.Generics.D>_P
-                                        <'GHC.Generics.MetaData
-                                           "Trigger"
-                                           "Language.Fixpoint.Types.Triggers"
-                                           "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                           'GHC.Types.False>_P
-                                        <GHC.Generics.C1
-                                           ('GHC.Generics.MetaCons
-                                              "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                           GHC.Generics.U1
-                                         GHC.Generics.:+: GHC.Generics.C1
-                                                            ('GHC.Generics.MetaCons
-                                                               "LeftHandSide"
-                                                               'GHC.Generics.PrefixI
-                                                               'GHC.Types.False)
-                                                            GHC.Generics.U1>_R))
-                              (Sub (Sym (Language.Fixpoint.Types.Triggers.Rep_Trigger[0]))) <GHC.Prim.Any>_N)))) -}
-0ede6587ce135bd08622314fe97bbc85
-  $w$cget1 ::
-    Data.Binary.Class.Binary a =>
-    forall r.
-    GHC.Prim.Addr#
-    -> GHC.ForeignPtr.ForeignPtrContents
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Binary.Get.Internal.Success
-         (Language.Fixpoint.Types.Triggers.Triggered a) r
-    -> Data.Binary.Get.Internal.Decoder r
-  {- Arity: 6,
-     Strictness: <L,U(A,C(C1(U)),A)><S,U><L,U><S,U><S,U><L,C(C1(U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Data.Binary.Class.Binary a)
-                   @ r
-                   (ww :: GHC.Prim.Addr#)
-                   (ww1 :: GHC.ForeignPtr.ForeignPtrContents)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (w1 :: Data.Binary.Get.Internal.Success
-                            (Language.Fixpoint.Types.Triggers.Triggered a) r) ->
-                 Data.Binary.Generic.$w$cgget
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   @ (GHC.Generics.M1
-                        GHC.Generics.C
-                        ('GHC.Generics.MetaCons
-                           "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                        GHC.Generics.U1)
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger3
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   Language.Fixpoint.Types.Triggers.$fBinaryTrigger2
-                     `cast`
-                   (Trans
-                        (forall (word :: <*>_N) (a1 :: <*>_N).
-                         <GHC.Classes.Ord word>_R
-                         ->_R <GHC.Num.Num word>_R
-                         ->_R <Data.Bits.Bits word>_R
-                         ->_R <word>_R
-                         ->_R <word>_R
-                         ->_R Sym (Data.Binary.Get.Internal.N:Get[0]
-                                       <GHC.Generics.M1
-                                          GHC.Generics.C
-                                          ('GHC.Generics.MetaCons
-                                             "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                          GHC.Generics.U1
-                                          a1>_R))
-                        (Sym (Data.Binary.Generic.N:GSumGet[0]
-                                  <GHC.Generics.C1
-                                     ('GHC.Generics.MetaCons
-                                        "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                     GHC.Generics.U1>_N)))
-                   1##
-                   1##
-                   @ GHC.Prim.Any
-                   @ r
-                   ww
-                   ww1
-                   ww2
-                   ww3
-                   (\ (i' :: Data.ByteString.Internal.ByteString)
-                      (a1 :: (GHC.Generics.:+:)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               (GHC.Generics.C1
-                                  ('GHC.Generics.MetaCons
-                                     "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                  GHC.Generics.U1)
-                               GHC.Prim.Any) ->
-                    let {
-                      a2 :: GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 'GHC.Base.Nothing
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.NoSourceStrictness
-                                 'GHC.Generics.DecidedLazy)
-                              (GHC.Generics.Rec0 Language.Fixpoint.Types.Triggers.Trigger)
-                              GHC.Prim.Any
-                      = case a1 of wild {
-                          GHC.Generics.L1 ds
-                          -> case ds of tpl { DEFAULT ->
-                             Language.Fixpoint.Types.Triggers.NoTrigger
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Triggers.Trigger>_R
-                                            <GHC.Prim.Any>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Triggers.Trigger>_R) <GHC.Prim.Any>_N)) }
-                          GHC.Generics.R1 ds
-                          -> case ds of tpl { DEFAULT ->
-                             Language.Fixpoint.Types.Triggers.LeftHandSide
-                               `cast`
-                             (Trans
-                                  (Sym (GHC.Generics.N:K1[0]
-                                            <GHC.Generics.R>_P
-                                            <Language.Fixpoint.Types.Triggers.Trigger>_R
-                                            <GHC.Prim.Any>_P))
-                                  (Sym (GHC.Generics.N:M1[0]
-                                            <GHC.Generics.S>_P
-                                            <'GHC.Generics.MetaSel
-                                               'GHC.Base.Nothing
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy>_P
-                                            <GHC.Generics.K1
-                                               GHC.Generics.R
-                                               Language.Fixpoint.Types.Triggers.Trigger>_R) <GHC.Prim.Any>_N)) } }
-                    } in
-                    (Data.Binary.Class.get @ a w)
-                      `cast`
-                    (Data.Binary.Get.Internal.N:Get[0] <a>_R)
-                      @ r
-                      i'
-                      (\ (i'1 :: Data.ByteString.Internal.ByteString) (a3 :: a) ->
-                       w1
-                         i'1
-                         (Language.Fixpoint.Types.Triggers.TR
-                            @ a
-                            a2
-                              `cast`
-                            (Trans
-                                 (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         'GHC.Base.Nothing
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1
-                                         GHC.Generics.R
-                                         Language.Fixpoint.Types.Triggers.Trigger>_R <GHC.Prim.Any>_N)
-                                 (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P
-                                      <Language.Fixpoint.Types.Triggers.Trigger>_R
-                                      <GHC.Prim.Any>_P))
-                            a3)))) -}
-0ede6587ce135bd08622314fe97bbc85
-  $w$cshowsPrec ::
-    GHC.Show.Show a =>
-    GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Triggers.Trigger -> a -> GHC.Show.ShowS
-  {- Arity: 4, Strictness: <L,1*U(1*C1(C1(U)),A,A)><S,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: GHC.Show.Show a)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Triggers.Trigger)
-                   (ww2 :: a) ->
-                 let {
-                   g :: GHC.Base.String -> GHC.Base.String
-                   = GHC.Show.showsPrec
-                       @ a
-                       w
-                       Language.Fixpoint.Types.Triggers.$fShowTriggered3
-                       ww2
-                 } in
-                 let {
-                   p :: GHC.Show.ShowS {- Arity: 1, Strictness: <L,U> -}
-                   = \ (x :: GHC.Base.String) ->
-                     GHC.Base.++
-                       @ GHC.Types.Char
-                       Language.Fixpoint.Types.Triggers.$fShowTriggered2
-                       (case ww1 of wild {
-                          Language.Fixpoint.Types.Triggers.NoTrigger
-                          -> GHC.Base.++
-                               @ GHC.Types.Char
-                               Language.Fixpoint.Types.Triggers.$fShowTrigger3
-                               (GHC.Types.: @ GHC.Types.Char GHC.Show.showSpace1 (g x))
-                          Language.Fixpoint.Types.Triggers.LeftHandSide
-                          -> GHC.Base.++
-                               @ GHC.Types.Char
-                               Language.Fixpoint.Types.Triggers.$fShowTrigger2
-                               (GHC.Types.: @ GHC.Types.Char GHC.Show.showSpace1 (g x)) })
-                 } in
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.>=# ww 11#) of wild {
-                   GHC.Types.False -> p
-                   GHC.Types.True
-                   -> \ (x :: GHC.Base.String) ->
-                      GHC.Types.:
-                        @ GHC.Types.Char
-                        GHC.Show.shows7
-                        (p (GHC.Types.: @ GHC.Types.Char GHC.Show.shows4 x)) }) -}
-0ede6587ce135bd08622314fe97bbc85
-  axiom Rep_Trigger::
-      GHC.Generics.Rep Language.Fixpoint.Types.Triggers.Trigger
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Trigger"
-               "Language.Fixpoint.Types.Triggers"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "NoTrigger" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               GHC.Generics.U1
-             GHC.Generics.:+: GHC.Generics.C1
-                                ('GHC.Generics.MetaCons
-                                   "LeftHandSide" 'GHC.Generics.PrefixI 'GHC.Types.False)
-                                GHC.Generics.U1)
-0ede6587ce135bd08622314fe97bbc85
-  axiom Rep_Triggered::
-    [a]
-      GHC.Generics.Rep (Language.Fixpoint.Types.Triggers.Triggered a)
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Triggered"
-               "Language.Fixpoint.Types.Triggers"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "TR" 'GHC.Generics.PrefixI 'GHC.Types.False)
-               (GHC.Generics.S1
-                  ('GHC.Generics.MetaSel
-                     'GHC.Base.Nothing
-                     'GHC.Generics.NoSourceUnpackedness
-                     'GHC.Generics.NoSourceStrictness
-                     'GHC.Generics.DecidedLazy)
-                  (GHC.Generics.Rec0 Language.Fixpoint.Types.Triggers.Trigger)
-                GHC.Generics.:*: GHC.Generics.S1
-                                   ('GHC.Generics.MetaSel
-                                      'GHC.Base.Nothing
-                                      'GHC.Generics.NoSourceUnpackedness
-                                      'GHC.Generics.NoSourceStrictness
-                                      'GHC.Generics.DecidedLazy)
-                                   (GHC.Generics.Rec0 a)))
-0ede6587ce135bd08622314fe97bbc85
-  data Trigger = NoTrigger | LeftHandSide
-0ede6587ce135bd08622314fe97bbc85
-  data Triggered a = TR Language.Fixpoint.Types.Triggers.Trigger a
-237a3da477605ef3c522535a5ce5c4f8
-  defaultTrigger :: e -> Language.Fixpoint.Types.Triggers.Triggered e
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ e ->
-                 Language.Fixpoint.Types.Triggers.TR
-                   @ e
-                   Language.Fixpoint.Types.Triggers.LeftHandSide) -}
-f7e9e621fd26bbd7d12000ecf1fca65e
-  getLeftHandSide ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-b108caff5f18ac240520ad38417b7df1
-  makeTriggers ::
-    Language.Fixpoint.Types.Triggers.Triggered
-      Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 1, Strictness: <S(SL),1*U(1*U,1*U)>m2,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Triggers.Triggered
-                            Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds of wild { Language.Fixpoint.Types.Triggers.TR ds1 e ->
-                 case ds1 of wild1 {
-                   Language.Fixpoint.Types.Triggers.NoTrigger
-                   -> Language.Fixpoint.Types.Triggers.makeTriggers1
-                   Language.Fixpoint.Types.Triggers.LeftHandSide
-                   -> GHC.Types.:
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        (Language.Fixpoint.Types.Triggers.getLeftHandSide e)
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr) } }) -}
-708d4bc2b2698f6103d92868a7c98ddf
-  makeTriggers1 :: [Language.Fixpoint.Types.Refinements.Expr]
-  {- Strictness: x -}
-2a3844e2122655f969f8cc5c99ed8bb2
-  noTrigger :: e -> Language.Fixpoint.Types.Triggers.Triggered e
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ @ e ->
-                 Language.Fixpoint.Types.Triggers.TR
-                   @ e
-                   Language.Fixpoint.Types.Triggers.NoTrigger) -}
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.$fBinaryTrigger
-instance Data.Binary.Class.Binary [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fBinaryTriggered
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.$fEqTrigger
-instance GHC.Classes.Eq [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fEqTriggered
-instance GHC.Base.Functor [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fFunctorTriggered
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.$fGenericTrigger
-instance GHC.Generics.Generic [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fGenericTriggered
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.$fNFDataTrigger
-instance Control.DeepSeq.NFData [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fNFDataTriggered
-instance GHC.Show.Show [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.$fShowTrigger
-instance GHC.Show.Show [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.$fShowTriggered
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Triggers.Triggered]
-  = Language.Fixpoint.Types.Triggers.Rep_Triggered
-family instance GHC.Generics.Rep [Language.Fixpoint.Types.Triggers.Trigger]
-  = Language.Fixpoint.Types.Triggers.Rep_Trigger
-"SPEC/Language.Fixpoint.Types.Triggers $dmput @ Trigger" [ALWAYS] forall ($dGBinaryPut :: Data.Binary.Class.GBinaryPut
-                                                                                            (GHC.Generics.Rep
-                                                                                               Language.Fixpoint.Types.Triggers.Trigger))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Types.Triggers.Trigger)
-                                                                         ($dBinary :: Data.Binary.Class.Binary
-                                                                                        Language.Fixpoint.Types.Triggers.Trigger)
-  Data.Binary.Class.$dmput @ Language.Fixpoint.Types.Triggers.Trigger
-                           $dBinary
-                           $dGeneric
-                           $dGBinaryPut
-  = Language.Fixpoint.Types.Triggers.$fBinaryTrigger_$s$dmput
-"SPEC/Language.Fixpoint.Types.Triggers $dmrnf @ Trigger" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                         (GHC.Generics.Rep
-                                                                                            Language.Fixpoint.Types.Triggers.Trigger))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Types.Triggers.Trigger)
-                                                                         ($dNFData :: Control.DeepSeq.NFData
-                                                                                        Language.Fixpoint.Types.Triggers.Trigger)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Types.Triggers.Trigger
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Types.Triggers.$fNFDataTrigger_$s$dmrnf
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Utils.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Utils.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Utils.dump-hi
+++ /dev/null
@@ -1,464 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:39.45012 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Utils 8002
-  interface hash: e513c8e342190113f4d2426f0cd3024b
-  ABI hash: 2a6ace2b5f761ef0b8de35b42fc81edd
-  export-list hash: 4280c2f28b8856531536351e033c46bc
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 7e2dcab90bf70589aa712dce4d889873
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Utils.kvarDomain
-  Language.Fixpoint.Types.Utils.reftFreeVars
-  Language.Fixpoint.Types.Utils.sortedReftConcKVars
-module dependencies: Language.Fixpoint.Misc
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  fst3 d403c254371349110bdd0be2f09b4237
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  exports: 8ff2109a000830685650941885f8f564
-  SInfo 1052549cc559e08aaa78c218edda206c
-  WfC 50354839b899806bfddb7dd9a816596d
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  wenv 20fa0d1838b6d2ec27b5d3c0b003ae97
-  wrft a33060451417dea7c01c64c3c2b14b8f
-  ws 5325410ee67d4c56c5404e8dff4dad17
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  exports: 0b4b7a69569980039fc5b65d426e2d6f
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  envCs e66be8902a29b4ff6ba9a891b4078535
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  exports: 743e0e557751599295b6ae4810403574
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  exports: 679e1835da47fa35bc6f2f814149dbeb
-  KVS dfa4952f3f3c0180400d8195e19d9ed9
-  KVSub c90a46333bc7a488713b09e58c2c7d81
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  Pred 5b40eb4c712dc0c43764372a1759d736
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  eVar b87e58c3d10c3466cba387aee526d1e5
-  reftConjuncts 9b4898b9eb0028ce5dcac03fa40c6500
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  sr_sort 13518abdc021a870b3d23c5d5d39f465
-  subst1 ff192c02dc885c0c57d77566090d0798
-  syms 337dea3d27d630b73de6b6c383ffc586
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-91b02fe09955c6e8660888ac99a1bc5a
-  $s!1 :: v
-  {- Strictness: x -}
-b860007a08a15e3098d7c76c37f888be
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Utils.$trModule2
-                   Language.Fixpoint.Types.Utils.$trModule1) -}
-85006c4a1235c6f20a28a5bdb09a8a13
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Types.Utils"#) -}
-9dbc030104a0f3e288cfe2545c059f8b
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-8a56f15208f60d2692002ff4926a85f6
-  $wkvarDomain ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Refinements.KVar
-    -> (# Language.Fixpoint.Types.Names.Symbol,
-          [Language.Fixpoint.Types.Names.Symbol] #)
-  {- Arity: 2,
-     Strictness: <L,U(A,U,U(A,U),A,A,A,A,A,A,A,A)><L,1*U(U,U(U,U,U),A)>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar) ->
-                 let {
-                   wfc :: Language.Fixpoint.Types.Constraints.WfC a
-                   = case w of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                     case w1
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:KVar[0]) of ww { Language.Fixpoint.Types.Names.S ww1 ww2 ww3 ->
-                     case ww2 of ww4 { Data.Text.Internal.Text ww5 ww6 ww7 ->
-                     case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                         -> GHC.Prim.Int#
-                                                                                                                         -> GHC.Prim.Int#
-                                                                                                                         -> GHC.Prim.Int#
-                                                                                                                         -> GHC.Prim.State#
-                                                                                                                              GHC.Prim.RealWorld
-                                                                                                                         -> (# GHC.Prim.State#
-                                                                                                                                 GHC.Prim.RealWorld,
-                                                                                                                               GHC.Prim.Int# #)}
-                            ww5
-                            (GHC.Prim.uncheckedIShiftL# ww6 1#)
-                            (GHC.Prim.uncheckedIShiftL# ww7 1#)
-                            -2578643520546668380#
-                            GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds16 ->
-                     case Language.Fixpoint.Types.Environments.$wpoly_go11
-                            @ (Language.Fixpoint.Types.Constraints.WfC a)
-                            (GHC.Prim.int2Word# ds16)
-                            ww1
-                            0#
-                            ds3 of wild2 {
-                       GHC.Base.Nothing
-                       -> Language.Fixpoint.Types.Utils.$s!1
-                            @ (Language.Fixpoint.Types.Constraints.WfC a)
-                       GHC.Base.Just v1 -> v1 } } } } }
-                 } in
-                 (# case wfc of wild {
-                      Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4
-                      -> case ds3 of wild1 { (,,) x1 ds1 ds7 -> x1 }
-                      Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                      -> case ds3 of wild1 { (,,) x1 ds1 ds7 -> x1 } },
-                    case wfc of wild {
-                      Language.Fixpoint.Types.Constraints.WfC ds2 ds3 ds4
-                      -> GHC.Base.map
-                           @ (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           (Data.Tuple.fst
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              @ Language.Fixpoint.Types.Refinements.SortedReft)
-                           (Language.Fixpoint.Types.Environments.envCs
-                              (case w of wild1 { Language.Fixpoint.Types.Constraints.FI ds1 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ds13 ds14 ->
-                               ds6 })
-                              ds2)
-                      Language.Fixpoint.Types.Constraints.GWfC ds2 ds3 ds4 ds5
-                      -> GHC.Base.map
-                           @ (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)
-                           @ Language.Fixpoint.Types.Names.Symbol
-                           (Data.Tuple.fst
-                              @ Language.Fixpoint.Types.Names.Symbol
-                              @ Language.Fixpoint.Types.Refinements.SortedReft)
-                           (Language.Fixpoint.Types.Environments.envCs
-                              (case w of wild1 { Language.Fixpoint.Types.Constraints.FI ds1 ds8 ds9 ds10 ds6 ds7 ds11 ds12 ds13 ds14 ds15 ->
-                               ds9 })
-                              ds2) } #)) -}
-4361dd7a4c27e5bdd30e797c73f0c60b
-  $wreftFreeVars ::
-    GHC.Prim.Int#
-    -> GHC.Prim.ByteArray#
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> Data.Text.Internal.Text
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 6, Strictness: <L,U><S,U><S,U><S,U><S,U><L,1*U>,
-     Inline: [0],
-     Unfolding: (\ (ww :: GHC.Prim.Int#)
-                   (ww1 :: GHC.Prim.ByteArray#)
-                   (ww2 :: GHC.Prim.Int#)
-                   (ww3 :: GHC.Prim.Int#)
-                   (ww4 :: Data.Text.Internal.Text)
-                   (ww5 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case {__pkg_ccall hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x hashable_fnv_hash_offset GHC.Prim.ByteArray#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.Int#
-                                                                                                                     -> GHC.Prim.State#
-                                                                                                                          GHC.Prim.RealWorld
-                                                                                                                     -> (# GHC.Prim.State#
-                                                                                                                             GHC.Prim.RealWorld,
-                                                                                                                           GHC.Prim.Int# #)}
-                        ww1
-                        (GHC.Prim.uncheckedIShiftL# ww2 1#)
-                        (GHC.Prim.uncheckedIShiftL# ww3 1#)
-                        -2578643520546668380#
-                        GHC.Prim.realWorld# of wild1 { (#,#) ds1 ds2 ->
-                 (Language.Fixpoint.Types.Substitutions.$wpoly_go5
-                    @ ()
-                    (GHC.Prim.int2Word# ds2)
-                    ww
-                    0#
-                    (Language.Fixpoint.Types.Utils.reftFreeVars_go
-                       (GHC.Types.:
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          (Language.Fixpoint.Types.Names.S
-                             ww
-                             (Data.Text.Internal.Text ww1 ww2 ww3)
-                             ww4)
-                          (Language.Fixpoint.Types.Substitutions.$fSubableReft_go ww5))
-                       (Data.HashMap.Base.Empty
-                          @ Language.Fixpoint.Types.Names.Symbol
-                          @ ())))
-                   `cast`
-                 (Sym (Data.HashSet.N:HashSet[0]
-                           <Language.Fixpoint.Types.Names.Symbol>_N)) }) -}
-5e0c4d4238d0144c571b1475f14034dd
-  $wsortedReftConcKVars ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> (# [Language.Fixpoint.Types.Refinements.Pred],
-          [Language.Fixpoint.Types.Refinements.KVSub],
-          [Language.Fixpoint.Types.Refinements.KVSub] #)
-  {- Arity: 4, Strictness: <L,1*U(U,U,U)><L,U><L,U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww :: Language.Fixpoint.Types.Sorts.Sort)
-                   (ww1 :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww2 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 letrec {
-                   $wgo :: [Language.Fixpoint.Types.Refinements.Expr]
-                           -> [Language.Fixpoint.Types.Refinements.KVSub]
-                           -> [Language.Fixpoint.Types.Refinements.KVSub]
-                           -> [(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.Expr)]
-                           -> (# [Language.Fixpoint.Types.Refinements.Expr],
-                                 [Language.Fixpoint.Types.Refinements.KVSub],
-                                 [Language.Fixpoint.Types.Refinements.KVSub] #)
-                     {- Arity: 4, Strictness: <L,U><L,U><L,U><S,1*U>, Inline: [0] -}
-                   = \ (w1 :: [Language.Fixpoint.Types.Refinements.Expr])
-                       (w2 :: [Language.Fixpoint.Types.Refinements.KVSub])
-                       (w3 :: [Language.Fixpoint.Types.Refinements.KVSub])
-                       (w4 :: [(Language.Fixpoint.Types.Names.Symbol,
-                                Language.Fixpoint.Types.Refinements.Expr)]) ->
-                     case w4 of wild {
-                       [] -> (# w1, w2, w3 #)
-                       : ds xs
-                       -> case ds of wild1 { (,) v ds1 ->
-                          case ds1 of wild2 {
-                            DEFAULT
-                            -> $wgo
-                                 (GHC.Types.: @ Language.Fixpoint.Types.Refinements.Expr wild2 w1)
-                                 w2
-                                 w3
-                                 xs
-                            Language.Fixpoint.Types.Refinements.PKVar k su
-                            -> $wgo
-                                 w1
-                                 (GHC.Types.:
-                                    @ Language.Fixpoint.Types.Refinements.KVSub
-                                    (Language.Fixpoint.Types.Refinements.KVS v ww k su)
-                                    w2)
-                                 w3
-                                 xs
-                            Language.Fixpoint.Types.Refinements.PGrad k su ds2
-                            -> $wgo
-                                 w1
-                                 w2
-                                 (GHC.Types.:
-                                    @ Language.Fixpoint.Types.Refinements.KVSub
-                                    (Language.Fixpoint.Types.Refinements.KVS v ww k su)
-                                    w3)
-                                 xs } } }
-                 } in
-                 let {
-                   lvl10 :: Language.Fixpoint.Types.Refinements.Expr
-                   = case w of dt { Language.Fixpoint.Types.Names.S ipv ipv1 ipv2 ->
-                     Language.Fixpoint.Types.Refinements.EVar dt }
-                 } in
-                 letrec {
-                   go :: [Language.Fixpoint.Types.Refinements.Reft]
-                         -> [(Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.Expr)]
-                     {- Arity: 1, Strictness: <S,1*U> -}
-                   = \ (ds :: [Language.Fixpoint.Types.Refinements.Reft]) ->
-                     case ds of wild {
-                       []
-                       -> GHC.Types.[]
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)
-                       : y ys
-                       -> case y `cast`
-                               (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) v p ->
-                          GHC.Types.:
-                            @ (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.Expr)
-                            (v,
-                             Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                               (Language.Fixpoint.Types.Refinements.$dmsubst2
-                                  @ Language.Fixpoint.Types.Refinements.Expr
-                                  (GHC.Types.:
-                                     @ (Language.Fixpoint.Types.Names.Symbol,
-                                        Language.Fixpoint.Types.Refinements.Expr)
-                                     (v, lvl10)
-                                     (GHC.Types.[]
-                                        @ (Language.Fixpoint.Types.Names.Symbol,
-                                           Language.Fixpoint.Types.Refinements.Expr)))
-                                  (Data.HashMap.Base.Empty
-                                     @ Language.Fixpoint.Types.Names.Symbol
-                                     @ Language.Fixpoint.Types.Refinements.Expr))
-                                 `cast`
-                               (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                               p)
-                            (go ys) } }
-                 } in
-                 $wgo
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr)
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVSub)
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVSub)
-                   (go
-                      (Language.Fixpoint.Types.Refinements.$wreftConjuncts ww1 ww2))) -}
-6fbc199f4dcafc17414225a6ff861f4a
-  kvarDomain ::
-    Language.Fixpoint.Types.Constraints.SInfo a
-    -> Language.Fixpoint.Types.Refinements.KVar
-    -> [Language.Fixpoint.Types.Names.Symbol]
-  {- Arity: 2,
-     Strictness: <L,U(A,U,U(A,U),A,A,A,A,A,A,A,A)><L,1*U(U,U(U,U,U),A)>m2,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.SInfo a)
-                   (w1 :: Language.Fixpoint.Types.Refinements.KVar) ->
-                 case Language.Fixpoint.Types.Utils.$wkvarDomain
-                        @ a
-                        w
-                        w1 of ww { (#,#) ww1 ww2 ->
-                 GHC.Types.: @ Language.Fixpoint.Types.Names.Symbol ww1 ww2 }) -}
-d0a11cb872a28228f0f250c57166ce63
-  reftFreeVars ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> Data.HashSet.HashSet Language.Fixpoint.Types.Names.Symbol
-  {- Arity: 1,
-     Strictness: <S(S(LS(SSS)S)L),1*U(1*U(U,U(U,U,U),U),1*U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 case ww1 of ww3 { Language.Fixpoint.Types.Names.S ww4 ww5 ww6 ->
-                 case ww5 of ww7 { Data.Text.Internal.Text ww8 ww9 ww10 ->
-                 Language.Fixpoint.Types.Utils.$wreftFreeVars
-                   ww4
-                   ww8
-                   ww9
-                   ww10
-                   ww6
-                   ww2 } } }) -}
-b82e2586f190bbdc47957982ee247720
-  reftFreeVars_go ::
-    [Language.Fixpoint.Types.Names.Symbol]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol ()
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Names.Symbol ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-cac548010e601c57894a79c824007fb5
-  sortedReftConcKVars ::
-    Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> ([Language.Fixpoint.Types.Refinements.Pred],
-        [Language.Fixpoint.Types.Refinements.KVSub],
-        [Language.Fixpoint.Types.Refinements.KVSub])
-  {- Arity: 2, Strictness: <L,1*U(U,U,U)><S(LS(LS)),U(U,U(U,1*U))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: Language.Fixpoint.Types.Names.Symbol)
-                   (w1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w1 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 case Language.Fixpoint.Types.Utils.$wsortedReftConcKVars
-                        w
-                        ww1
-                        ww4
-                        ww5 of ww6 { (#,,#) ww7 ww8 ww9 ->
-                 (ww7, ww8, ww9) } } }) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Visitor.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Visitor.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Types/Visitor.dump-hi
+++ /dev/null
@@ -1,2920 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:55.610356 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Visitor 8002
-  interface hash: 18aecacb54027828219ea7e70c964d35
-  ABI hash: 8cae387e2f4319552a95752f5dcd18fb
-  export-list hash: 26f0cdfe40ac2491bdd244bfea3f01e6
-  orphan hash: 5b934e0dd0e62ab8e030acf5b59e23f2
-  flag hash: 62b01c897a7d4c18327bdf49df798e9a
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Types.Visitor.defaultVisitor
-  Language.Fixpoint.Types.Visitor.eapps
-  Language.Fixpoint.Types.Visitor.envKVars
-  Language.Fixpoint.Types.Visitor.envKVarsN
-  Language.Fixpoint.Types.Visitor.fold
-  Language.Fixpoint.Types.Visitor.foldSort
-  Language.Fixpoint.Types.Visitor.isConcC
-  Language.Fixpoint.Types.Visitor.isKvarC
-  Language.Fixpoint.Types.Visitor.kvars
-  Language.Fixpoint.Types.Visitor.lamSize
-  Language.Fixpoint.Types.Visitor.mapExpr
-  Language.Fixpoint.Types.Visitor.mapKVarSubsts
-  Language.Fixpoint.Types.Visitor.mapKVars
-  Language.Fixpoint.Types.Visitor.mapKVars'
-  Language.Fixpoint.Types.Visitor.mapMExpr
-  Language.Fixpoint.Types.Visitor.mapSort
-  Language.Fixpoint.Types.Visitor.rhsKVars
-  Language.Fixpoint.Types.Visitor.size
-  Language.Fixpoint.Types.Visitor.stripCasts
-  Language.Fixpoint.Types.Visitor.trans
-  Language.Fixpoint.Types.Visitor.SymConsts{Language.Fixpoint.Types.Visitor.symConsts}
-  Language.Fixpoint.Types.Visitor.Visitable{Language.Fixpoint.Types.Visitor.visit}
-  Language.Fixpoint.Types.Visitor.Visitor{Language.Fixpoint.Types.Visitor.Visitor accExpr ctxExpr txExpr}
-module dependencies: Language.Fixpoint.Misc Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:Data.Tuple 7dc4bbb45d2e69c991ffac438beeca11
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Num 00bfaa7b2f9d6084913c0697a8a49ec8
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  count 3465de1600d6142a0b40ebd8679184c9
-  sortNub 642a4eda4245223ed5db9730a31eb8bf
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  GInfo 1052549cc559e08aaa78c218edda206c
-  SimpC 422c859b64e365b196f8fd06ad8cb7f1
-  SubC ed16f1ec59060d74f74ea827928489f9
-  TaggedC 710144f9da9a9e879219a27a9c6dc76f
-  _crhs 746ca2f97e781cb1955fd7640112b9a8
-  bs d267a9df5f80275fb39b5fc05f60d3f9
-  clhs 4cf40034a3d73fd78899b3581cd09a97
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-  crhs 1e68f26339689c1f8619807c178004c5
-  qBody a90af993c8ca625414e8b90f88916f3f
-  quals 733cbf41a4dbbd9b4564f52a0bd82386
-  slhs ff31f7ff76d5011e3329777d046753a8
-  srhs 6299a4aca5a3764628a25206cc77779a
-import  -/  Language.Fixpoint.Types.Environments 39a7a5317852adad63623f9a402cc5a6
-  BindEnv 792d9eaa5d5c1843c39b7b64e5cd1dac
-  beBinds 0907867d711aa08166613144dbfef14c
-import  -/  Language.Fixpoint.Types.Names e10fad5e5b8ff170c535ac390b7d6df1
-  Symbol 48f09ac5554b5659507cdde0ca23f8ac
-import  -/  Language.Fixpoint.Types.Refinements 14ae5428586db5cedff3d8f72f8648b7
-  EApp 242f67cc5b7496adee37b0324be59497
-  EBin b701dd2a71bce1eb343b2513e5d6fa48
-  ECon ab1ba7bb8f5af33c895526c1c056e7ff
-  ECst 7679f212aeb5f0744769abe62a44ee1b
-  EIte c6d70c8b2fac4c9992bb3fe089a9b464
-  ELam 20eee96d53677ca43811052ef690f968
-  ENeg fca8f0488c578d50ebb3086944afa95b
-  ESym b05e53b59eecfe2f6d7c4b864a39af90
-  ETAbs cf486f62ca1036d64dac0b7fc30b355d
-  ETApp 6f9fa64dc1ea94265346dee4dfbd1dd9
-  EVar 4ac413912c48a3e2b7f279c0abf0b81c
-  Expr 7fb70fb47d0302cfb4b9c12c86306141
-  KVar 9a92033bfe21324e80629facb0f6357f
-  PAll 5b5b161c8a455dff7c62b538ddd642db
-  PAnd e4ddc2579168019e5d8a7240f883a96b
-  PAtom 55a13458e0515551093b57ea202b6eef
-  PExist 83d46b5b3ba4dfd16ed3ab8c4cdb6285
-  PGrad 1ba105909b1a27f382ef9e235a533976
-  PIff 26c8be80f88d825a6dec4e341889a1a3
-  PImp 58a478a071013ad73b32bb10517db0d2
-  PKVar 27549ccaacfa3dd875a070c6d85abc60
-  PNot c4eeca122c5c0a43c77041a865069326
-  POr 5047bfaf429ce9d92fe3d210e4c62b03
-  RR 770fb6f952861174841244857625a4cc
-  Reft 0e78bf0338164597faa58ab74c6fcf68
-  Reft 7fb70fb47d0302cfb4b9c12c86306141
-  SortedReft 7fb70fb47d0302cfb4b9c12c86306141
-  Subst 7fb70fb47d0302cfb4b9c12c86306141
-  SymConst 2d8cc80e963ce7fc658d82e1df676d25
-  conjuncts 8b597424c017de26584204ed283dc3d9
-  sr_reft 4589b402dcbc851255ad92efc8f9fcc4
-  subst 7e8823041d8875dd250f4dd63b9bcae9
-import  -/  Language.Fixpoint.Types.Sorts b5018989427724a1db790152ee79cb6f
-  FAbs 8aa258e1d4a21bcfa98339b6771fc61f
-  FApp 7a29422ecfa9008e1b305cccc4f76b35
-  FFunc 724fb91b0715d4ded5b35408590658ef
-  Sort 402c177fc699f05dd97dbf4130d9008b
-import  -/  transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.State.Strict 978f397cc30fa26d55cf117e3751a6ed
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet ee03eb1144d3c6624c9254dd24f4ef67
-239f66d8996b0f6ab8aa800f771f8e14
-  $fMonoidMInt ::
-    GHC.Base.Monoid Language.Fixpoint.Types.Visitor.MInt
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Types.Visitor.MInt
-                  Language.Fixpoint.Types.Visitor.$fMonoidMInt_$cmempty
-                  Language.Fixpoint.Types.Visitor.$fMonoidMInt_$cmappend
-                  Language.Fixpoint.Types.Visitor.$fMonoidMInt_$cmconcat -}
-e9e01866826a2d59cf3b1fcef1378a8b
-  $fMonoidMInt1 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (0) -}
-239f66d8996b0f6ab8aa800f771f8e14
-  $fMonoidMInt_$cmappend ::
-    Language.Fixpoint.Types.Visitor.MInt
-    -> Language.Fixpoint.Types.Visitor.MInt
-    -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 2, Strictness: <S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                GHC.Integer.Type.plusInteger
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])
-                 ->_R Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])
-                 ->_R Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])) -}
-239f66d8996b0f6ab8aa800f771f8e14
-  $fMonoidMInt_$cmconcat ::
-    [Language.Fixpoint.Types.Visitor.MInt]
-    -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (eta :: [Language.Fixpoint.Types.Visitor.MInt]) ->
-                 Language.Fixpoint.Types.Visitor.$fMonoidMInt_go eta) -}
-239f66d8996b0f6ab8aa800f771f8e14
-  $fMonoidMInt_$cmempty :: Language.Fixpoint.Types.Visitor.MInt
-  {- Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Visitor.$fMonoidMInt1
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])) -}
-239f66d8996b0f6ab8aa800f771f8e14
-  $fMonoidMInt_go ::
-    [Language.Fixpoint.Types.Visitor.MInt]
-    -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 1, Strictness: <S,1*U> -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsExpr ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsExpr_$csymConsts
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-534bafecdf857b6e03e293bfc9c47cd2
-  $fSymConstsExpr1 ::
-    Language.Fixpoint.Types.Visitor.Visitor
-      [Language.Fixpoint.Types.Refinements.SymConst] ()
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ [Language.Fixpoint.Types.Refinements.SymConst]
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ())
-                   Language.Fixpoint.Types.Visitor.$fSymConstsExpr2) -}
-6bd819e595a458146e816882e24f11ce
-  $fSymConstsExpr2 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds1 of wild {
-                   DEFAULT
-                   -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst
-                   Language.Fixpoint.Types.Refinements.ESym dt
-                   -> GHC.Types.:
-                        @ Language.Fixpoint.Types.Refinements.SymConst
-                        (Language.Fixpoint.Types.Refinements.SL dt)
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst) }) -}
-c5a616a7064a949b78ce6c81118cf3a0
-  $fSymConstsExpr3 ::
-    ctx
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, True)
-                (\ @ ctx
-                   (ds :: ctx)
-                   (x :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 x) -}
-516542a685ca4c66e1b330cdd956807b
-  $fSymConstsExpr_$csymConsts ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (t :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.SymConst]
-                          @ ()
-                          (GHC.Base.$fMonoid[]
-                             @ Language.Fixpoint.Types.Refinements.SymConst)
-                          Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                          GHC.Tuple.()
-                          t)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsGInfo ::
-    Language.Fixpoint.Types.Visitor.SymConsts (c a) =>
-    Language.Fixpoint.Types.Visitor.SymConsts
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,C(U)><S(SLLLLLLLLLL),U(U,A,U(A,U),A,A,A,U,A,A,A,A)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsGInfo_$csymConsts
-                  `cast`
-                (forall (c :: <* -> *>_N) (a :: <*>_N).
-                 <Language.Fixpoint.Types.Visitor.SymConsts (c a)>_R
-                 ->_R Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                               <Language.Fixpoint.Types.Constraints.GInfo c a>_N)) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsGInfo_$csymConsts ::
-    Language.Fixpoint.Types.Visitor.SymConsts (c a) =>
-    Language.Fixpoint.Types.Constraints.GInfo c a
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,C(U)><S(SLLLLLLLLLL),U(U,A,U(A,U),A,A,A,U,A,A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ @ (c :: * -> *)
-                   @ a
-                   (w :: Language.Fixpoint.Types.Visitor.SymConsts (c a))
-                   (w1 :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 case w1 of ww { Language.Fixpoint.Types.Constraints.FI ww1 ww2 ww3 ww4 ww5 ww6 ww7 ww8 ww9 ww10 ww11 ->
-                 Language.Fixpoint.Types.Visitor.$w$csymConsts
-                   @ c
-                   @ a
-                   w
-                   ww1
-                   ww3
-                   ww7 }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsReft ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(A,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsReft_$csymConsts
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Refinements.Reft>_N)) -}
-f930c143a85c412dc0840fca7850d018
-  $fSymConstsReft_$csymConsts ::
-    Language.Fixpoint.Types.Refinements.Reft
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(A,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ds
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild { (,) ds1 ra ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.SymConst]
-                          @ ()
-                          (GHC.Base.$fMonoid[]
-                             @ Language.Fixpoint.Types.Refinements.SymConst)
-                          Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                          GHC.Tuple.()
-                          ra)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild1 { (,) ds2 y ->
-                 y } }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsSimpC ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U(A,U,A,A,A)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsSimpC_$csymConsts
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Constraints.SimpC a>_N)) -}
-84c34d8bc68cb30547aafa98f7c2cad7
-  $fSymConstsSimpC_$csymConsts ::
-    Language.Fixpoint.Types.Constraints.SimpC a
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U(A,U,A,A,A)>,
-     Unfolding: (\ @ a
-                   (c :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.SymConst]
-                          @ ()
-                          (GHC.Base.$fMonoid[]
-                             @ Language.Fixpoint.Types.Refinements.SymConst)
-                          Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                          GHC.Tuple.()
-                          (Language.Fixpoint.Types.Constraints._crhs @ a c))
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsSizedEnv ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsSizedEnv_$csymConsts
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-c1f68ca31106b2b5d3d0aa4b3684f56f
-  $fSymConstsSizedEnv_$csymConsts ::
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 case ww2 of wild {
-                   Data.HashMap.Base.Empty
-                   -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.Visitor.$wgo3
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        0#
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst)
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> case dt2 of ww3 { (,) ww4 ww5 ->
-                      case ww5 of ww6 { Language.Fixpoint.Types.Refinements.RR ww7 ww8 ->
-                      case ww8
-                             `cast`
-                           (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww9 { (,) ww10 ww11 ->
-                      case ((Language.Fixpoint.Types.Visitor.visitExpr
-                               @ [Language.Fixpoint.Types.Refinements.SymConst]
-                               @ ()
-                               (GHC.Base.$fMonoid[]
-                                  @ Language.Fixpoint.Types.Refinements.SymConst)
-                               Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                               GHC.Tuple.()
-                               ww11)
-                              `cast`
-                            (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                 <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                                 <Data.Functor.Identity.Identity>_R
-                                 <Language.Fixpoint.Types.Refinements.Expr>_N)
-                              (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild1 { (,) ds1 y ->
-                      GHC.Base.++
-                        @ Language.Fixpoint.Types.Refinements.SymConst
-                        y
-                        (GHC.Types.[]
-                           @ Language.Fixpoint.Types.Refinements.SymConst) } } } }
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.Visitor.$wgo1
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt)
-                        0#
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst)
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.Visitor.$wgo2
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Environments.BindId
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft))
-                           dt1)
-                        0#
-                        (GHC.Types.[]
-                           @ Language.Fixpoint.Types.Refinements.SymConst) } }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsSortedReft ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U(A,U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsSortedReft_$csymConsts
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Refinements.SortedReft>_N)) -}
-3627d0db5bea60829c240b61a5a7e582
-  $fSymConstsSortedReft_$csymConsts ::
-    Language.Fixpoint.Types.Refinements.SortedReft
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LS),1*U(A,U(A,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ (w :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 Language.Fixpoint.Types.Visitor.$w$csymConsts1 ww5 } }) -}
-487d0150a1314871b7b84fc92411ac5c
-  $fSymConstsSubC ::
-    Language.Fixpoint.Types.Visitor.SymConsts
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LS(LS)SLLL),1*U(A,U(A,U(A,U)),U(A,U(A,U)),A,A,A)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fSymConstsSubC_$csymConsts
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Visitor.N:SymConsts[0]
-                          <Language.Fixpoint.Types.Constraints.SubC a>_N)) -}
-03a0fd77185e0c75587e7d5c9f02b1a7
-  $fSymConstsSubC_$csymConsts ::
-    Language.Fixpoint.Types.Constraints.SubC a
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LS(LS)SLLL),1*U(A,U(A,U(A,U)),U(A,U(A,U)),A,A,A)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a (w :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 case w of ww { Language.Fixpoint.Types.Constraints.SubC ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 case ww2 of ww7 { Language.Fixpoint.Types.Refinements.RR ww8 ww9 ->
-                 case ww9
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww10 { (,) ww11 ww12 ->
-                 case ww3 of ww13 { Language.Fixpoint.Types.Refinements.RR ww14 ww15 ->
-                 Language.Fixpoint.Types.Visitor.$w$csymConsts2
-                   @ a
-                   ww12
-                   ww15 } } } }) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitable(,) ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      (Language.Fixpoint.Types.Names.Symbol,
-       Language.Fixpoint.Types.Refinements.SortedReft)
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S,1*U(U,1*U(U,U(U,U)))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitable(,)_$cvisit
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <(Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)>_N)) -}
-891d7f8497f028d649d284e0c730328a
-  $fVisitable(,)_$cvisit ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> (Language.Fixpoint.Types.Names.Symbol,
-        Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S,1*U(U,1*U(U,U(U,U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (w3 :: (Language.Fixpoint.Types.Names.Symbol,
-                           Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 case w3 of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Visitor.$w$cvisit
-                   @ a
-                   @ c
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableExpr ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      Language.Fixpoint.Types.Refinements.Expr
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.visitExpr
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Refinements.Expr>_N)) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableGInfo ::
-    Language.Fixpoint.Types.Visitor.Visitable (c a) =>
-    Language.Fixpoint.Types.Visitor.Visitable
-      (Language.Fixpoint.Types.Constraints.GInfo c a)
-  DFunId
-  {- Arity: 5,
-     Strictness: <L,1*C1(C1(C1(C(U))))><L,U(U,U,U)><L,U(U,U,U)><L,U><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (1, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$cvisit
-                  `cast`
-                (forall (c :: <* -> *>_N) (a :: <*>_N).
-                 <Language.Fixpoint.Types.Visitor.Visitable (c a)>_R
-                 ->_R Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                               <Language.Fixpoint.Types.Constraints.GInfo c a>_N)) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableGInfo_$cvisit ::
-    Language.Fixpoint.Types.Visitor.Visitable (c a) =>
-    forall a1 c1.
-    GHC.Base.Monoid a1 =>
-    Language.Fixpoint.Types.Visitor.Visitor a1 c1
-    -> c1
-    -> Language.Fixpoint.Types.Constraints.GInfo c a
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a1 (Language.Fixpoint.Types.Constraints.GInfo c a)
-  {- Arity: 5,
-     Strictness: <L,1*C1(C1(C1(C(U))))><L,U(U,U,U)><L,U(U,U,U)><L,U><L,U(U,U,U(U,U),U,U,U,U,U,U,U,U)>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable (c a))
-                   @ a1
-                   @ c1
-                   ($dMonoid :: GHC.Base.Monoid a1)
-                   (v :: Language.Fixpoint.Types.Visitor.Visitor a1 c1)
-                   (c2 :: c1)
-                   (x :: Language.Fixpoint.Types.Constraints.GInfo c a) ->
-                 let {
-                   lvl3 :: Language.Fixpoint.Types.Visitor.VisitM
-                             a1 Language.Fixpoint.Types.Environments.BindEnv
-                   = case x of wild { Language.Fixpoint.Types.Constraints.FI ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ds11 ds12 ->
-                     case ds4 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                     let {
-                       m1 :: Control.Monad.Trans.State.Strict.StateT
-                               a1
-                               Data.Functor.Identity.Identity
-                               (Language.Fixpoint.Types.Environments.BindMap
-                                  (Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Refinements.SortedReft))
-                       = Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                           @ GHC.Types.Int
-                           @ (Control.Monad.Trans.State.Strict.StateT
-                                a1 Data.Functor.Identity.Identity)
-                           @ (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)
-                           @ (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)
-                           (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT
-                              @ a1)
-                           (Language.Fixpoint.Types.Visitor.$fVisitable(,)_$cvisit
-                              @ a1
-                              @ c1
-                              $dMonoid
-                              v
-                              c2)
-                           ww2
-                     } in
-                     (\ (s1 :: a1) ->
-                      case (m1
-                              `cast`
-                            (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                 <a1>_N
-                                 <Data.Functor.Identity.Identity>_R
-                                 <Language.Fixpoint.Types.Environments.BindMap
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft)>_N)
-                              s1)
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Environments.BindMap
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft),
-                                  a1)>_R) of wild1 { (,) a2 s' ->
-                      (case a2 of dt { DEFAULT ->
-                       Language.Fixpoint.Types.Environments.BE
-                         @ (Language.Fixpoint.Types.Names.Symbol,
-                            Language.Fixpoint.Types.Refinements.SortedReft)
-                         ww1
-                         dt },
-                       s')
-                        `cast`
-                      (Sym (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Environments.SizedEnv
-                                    (Language.Fixpoint.Types.Names.Symbol,
-                                     Language.Fixpoint.Types.Refinements.SortedReft),
-                                  a1)>_R)) })
-                       `cast`
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <a1>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Environments.SizedEnv
-                                  (Language.Fixpoint.Types.Names.Symbol,
-                                   Language.Fixpoint.Types.Refinements.SortedReft)>_N)) } }
-                 } in
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a1
-                           Data.Functor.Identity.Identity
-                           (Data.HashMap.Base.HashMap
-                              Language.Fixpoint.Types.Constraints.SubcId (c a))
-                   = Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                       @ GHC.Integer.Type.Integer
-                       @ (Control.Monad.Trans.State.Strict.StateT
-                            a1 Data.Functor.Identity.Identity)
-                       @ (c a)
-                       @ (c a)
-                       (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT
-                          @ a1)
-                       ($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <c a>_N)
-                          @ a1
-                          @ c1
-                          $dMonoid
-                          v
-                          c2)
-                       (Language.Fixpoint.Types.Constraints.cm @ c @ a x)
-                 } in
-                 (\ (s1 :: a1) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a1>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId (c a)>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Constraints.SubcId (c a),
-                              a1)>_R) of wild { (,) a2 s' ->
-                  case (lvl3
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a1>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Environments.BindEnv>_N)
-                          s')
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Environments.BindEnv,
-                              a1)>_R) of wild1 { (,) a3 s'1 ->
-                  (case x of wild2 { Language.Fixpoint.Types.Constraints.FI ds ds1 ds2 ds3 ds4 ds5 ds6 ds7 ds8 ds9 ds10 ->
-                   case a2 of dt { DEFAULT ->
-                   case a3 of dt1 { Language.Fixpoint.Types.Environments.BE ipv ipv1 ->
-                   Language.Fixpoint.Types.Constraints.FI
-                     @ c
-                     @ a
-                     dt
-                     ds1
-                     dt1
-                     ds3
-                     ds4
-                     ds5
-                     ds6
-                     ds7
-                     ds8
-                     ds9
-                     ds10 } } },
-                   s'1)
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Constraints.GInfo c a, a1)>_R)) } })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a1>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Constraints.GInfo c a>_N))) -}
-369c1e9c3b20950733d280c6c9f7164a
-  $fVisitableGInfo_$dFunctor ::
-    GHC.Base.Functor Data.Functor.Identity.Identity
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Data.Functor.Identity.$fFunctorIdentity -}
-10397551d38f3698be57f540faa7f747
-  $fVisitableGInfo_$s$fApplicativeStateT ::
-    GHC.Base.Applicative
-      (Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Strict.StateT
-                       s Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$cp1Applicative
-                     @ s)
-                  (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$cpure
-                     @ s)
-                  (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$c<*>
-                     @ s)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c*>
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity)
-                  (Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$dFunctor
-                     Data.Functor.Identity.$fMonadIdentity) -}
-941777129d256377b0bd450134489df8
-  $fVisitableGInfo_$s$fApplicativeStateT_$c<*> ::
-    Control.Monad.Trans.State.Strict.StateT
-      s Data.Functor.Identity.Identity (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(S),1*C1(U(1*C1(U),U))><C(S),1*C1(U(U,U))><L,U>m,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (ds :: Control.Monad.Trans.State.Strict.StateT
-                            s Data.Functor.Identity.Identity (a -> b))
-                   (ds1 :: Control.Monad.Trans.State.Strict.StateT
-                             s Data.Functor.Identity.Identity a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Strict.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fMonadIdentity_$c>>=
-                      @ (a -> b, s)
-                      @ (b, s)
-                      (ds
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <s>_N <Data.Functor.Identity.Identity>_R <a -> b>_N)
-                         s1)
-                      (\ (ds2 :: (a -> b, s))[OneShot] ->
-                       case ds2 of wild { (,) f s' ->
-                       Data.Functor.Identity.$fMonadIdentity_$c>>=
-                         @ (a, s)
-                         @ (b, s)
-                         (ds1
-                            `cast`
-                          (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <s>_N <Data.Functor.Identity.Identity>_R <a>_N)
-                            s')
-                         (\ (ds3 :: (a, s))[OneShot] ->
-                          case ds3 of wild1 { (,) x s'' ->
-                          Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                            @ (b, s)
-                            (f x, s'') }) }))) -}
-ab6aecfae3daed6e48bc2fc7b33bf451
-  $fVisitableGInfo_$s$fApplicativeStateT_$cp1Applicative ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity)
-  {- Strictness: m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fFunctorStateT -}
-9cd83555d6e56a29e98fdb934775e635
-  $fVisitableGInfo_$s$fApplicativeStateT_$cpure ::
-    a
-    -> Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity a
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U>m,
-     Inline: INLINE (sat-args=1),
-     Unfolding: InlineRule (1, False, False)
-                (\ @ s @ a (a1 :: a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (a, s))
-                   @ (Control.Monad.Trans.State.Strict.StateT
-                        s Data.Functor.Identity.Identity a)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (a, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (a, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <a>_N))
-                   (\ (s1 :: s) ->
-                    Data.Functor.Identity.$fApplicativeIdentity_$cpure
-                      @ (a, s)
-                      (a1, s1))) -}
-8c63bc2e083bda6ae5e72e0eaa633f23
-  $fVisitableGInfo_$s$fFunctorStateT ::
-    GHC.Base.Functor
-      (Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity)
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun: @ s.
-                  @ (Control.Monad.Trans.State.Strict.StateT
-                       s Data.Functor.Identity.Identity)
-                  (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fFunctorStateT_$cfmap
-                     @ s)
-                  (Control.Monad.Trans.State.Strict.$fFunctorStateT_$c<$
-                     @ Data.Functor.Identity.Identity
-                     @ s
-                     Data.Functor.Identity.$fFunctorIdentity) -}
-9d001a1891c056e4640345b274523d7f
-  $fVisitableGInfo_$s$fFunctorStateT_$cfmap ::
-    (a -> b)
-    -> Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity a
-    -> Control.Monad.Trans.State.Strict.StateT
-         s Data.Functor.Identity.Identity b
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,1*C1(U)><C(S),1*C1(U(U,U))><L,U>m,
-     Inline: INLINE (sat-args=2),
-     Unfolding: InlineRule (2, False, False)
-                (\ @ s
-                   @ a
-                   @ b
-                   (f :: a -> b)
-                   (m1 :: Control.Monad.Trans.State.Strict.StateT
-                            s Data.Functor.Identity.Identity a) ->
-                 GHC.Base.$
-                   @ 'GHC.Types.PtrRepLifted
-                   @ (s -> Data.Functor.Identity.Identity (b, s))
-                   @ (Control.Monad.Trans.State.Strict.StateT
-                        s Data.Functor.Identity.Identity b)
-                   (\ (tpl :: s -> Data.Functor.Identity.Identity (b, s)) -> tpl)
-                     `cast`
-                   (<s -> Data.Functor.Identity.Identity (b, s)>_R
-                    ->_R Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                  <s>_N <Data.Functor.Identity.Identity>_R <b>_N))
-                   (\ (s1 :: s) ->
-                    GHC.Base.$
-                      @ 'GHC.Types.PtrRepLifted
-                      @ (Data.Functor.Identity.Identity (a, s))
-                      @ (Data.Functor.Identity.Identity (b, s))
-                      (Data.Functor.Identity.$fFunctorIdentity_$cfmap
-                         @ (a, s)
-                         @ (b, s)
-                         (\ (ds :: (a, s)) -> case ds of wild { (,) a1 s' -> (f a1, s') }))
-                      (Control.Monad.Trans.State.Strict.runStateT
-                         @ s
-                         @ Data.Functor.Identity.Identity
-                         @ a
-                         m1
-                         s1))) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableReft ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      Language.Fixpoint.Types.Refinements.Reft
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S,1*U(U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableReft_$cvisit
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Refinements.Reft>_N)) -}
-857bbeaadac923e3c23b71e66f56c039
-  $fVisitableReft_$cvisit ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S,1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (w3 :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case w3
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww { (,) ww1 ww2 ->
-                 Language.Fixpoint.Types.Visitor.$w$cvisit1
-                   @ a
-                   @ c
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableSimpC ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      (Language.Fixpoint.Types.Constraints.SimpC a)
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U(U,U,U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableSimpC_$cvisit
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Constraints.SimpC a>_N)) -}
-0feb24517da14e060a5124ba3e31b37a
-  $fVisitableSimpC_$cvisit ::
-    GHC.Base.Monoid a1 =>
-    Language.Fixpoint.Types.Visitor.Visitor a1 c
-    -> c
-    -> Language.Fixpoint.Types.Constraints.SimpC a
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a1 (Language.Fixpoint.Types.Constraints.SimpC a)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U(U,U,U,U,U)>,
-     Unfolding: (\ @ a
-                   @ a1
-                   @ c
-                   ($dMonoid :: GHC.Base.Monoid a1)
-                   (v :: Language.Fixpoint.Types.Visitor.Visitor a1 c)
-                   (c1 :: c)
-                   (x :: Language.Fixpoint.Types.Constraints.SimpC a) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a1
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Types.Visitor.visitExpr
-                       @ a1
-                       @ c
-                       $dMonoid
-                       v
-                       c1
-                       (Language.Fixpoint.Types.Constraints._crhs @ a x)
-                 } in
-                 (\ (s1 :: a1) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a1>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.Expr>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.Expr,
-                              a1)>_R) of wild { (,) a2 s' ->
-                  (case x of wild1 { Language.Fixpoint.Types.Constraints.SimpC ds ds1 ds2 ds3 ds4 ->
-                   case a2 of dt { DEFAULT ->
-                   Language.Fixpoint.Types.Constraints.SimpC
-                     @ a
-                     ds
-                     dt
-                     ds2
-                     ds3
-                     ds4 } },
-                   s')
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Constraints.SimpC a, a1)>_R)) })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a1>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Constraints.SimpC a>_N))) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableSizedEnv ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      Language.Fixpoint.Types.Environments.BindEnv
-  DFunId
-  {- Arity: 4,
-     Strictness: <L,U(A,U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S(LS),1*U(U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableSizedEnv_$cvisit
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Environments.BindEnv>_N)) -}
-1de905c2ed6a2dff86b6e1fa2161d904
-  $fVisitableSizedEnv_$cvisit ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a Language.Fixpoint.Types.Environments.BindEnv
-  {- Arity: 4,
-     Strictness: <L,U(A,U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S(LS),1*U(U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (w3 :: Language.Fixpoint.Types.Environments.BindEnv) ->
-                 case w3 of ww { Language.Fixpoint.Types.Environments.BE ww1 ww2 ->
-                 Language.Fixpoint.Types.Visitor.$w$cvisit2
-                   @ a
-                   @ c
-                   w
-                   w1
-                   w2
-                   ww1
-                   ww2 }) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableSortedReft ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      Language.Fixpoint.Types.Refinements.SortedReft
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S(SS),1*U(U,U(U,U))>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableSortedReft_$cvisit
-                  `cast`
-                (Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Refinements.SortedReft>_N)) -}
-26f2beadcdba00d07588333a8f0a9695
-  $fVisitableSortedReft_$cvisit ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a Language.Fixpoint.Types.Refinements.SortedReft
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><S(SS),1*U(U,U(U,U))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (4, True, False)
-                (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (w3 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 case w3 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                 case ww2
-                        `cast`
-                      (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Types.Visitor.visitExpr @ a @ c w w1 w2 ww5
-                 } in
-                 (\ (s1 :: a) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.Expr>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.Expr,
-                              a)>_R) of wild { (,) a1 s' ->
-                  (Language.Fixpoint.Types.Refinements.RR
-                     ww1
-                     (ww4, a1)
-                       `cast`
-                     (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                   s')
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.SortedReft, a)>_R)) })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } }) -}
-b5488c516ee98083465a9979b0edbf0b
-  $fVisitableSubC ::
-    Language.Fixpoint.Types.Visitor.Visitable
-      (Language.Fixpoint.Types.Constraints.SubC a)
-  DFunId
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,U(A,U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U(U,U(U,U(U,U)),U(U,U(U,U)),U,U,U)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Types.Visitor.$fVisitableSubC_$cvisit
-                  `cast`
-                (forall (a :: <*>_N).
-                 Sym (Language.Fixpoint.Types.Visitor.N:Visitable[0]
-                          <Language.Fixpoint.Types.Constraints.SubC a>_N)) -}
-0c0716cbd574c4373a814ee1b99576d1
-  $fVisitableSubC_$cvisit ::
-    GHC.Base.Monoid a1 =>
-    Language.Fixpoint.Types.Visitor.Visitor a1 c
-    -> c
-    -> Language.Fixpoint.Types.Constraints.SubC a
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a1 (Language.Fixpoint.Types.Constraints.SubC a)
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,U(A,U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U(U,U(U,U(U,U)),U(U,U(U,U)),U,U,U)>,
-     Unfolding: (\ @ a
-                   @ a1
-                   @ c
-                   ($dMonoid :: GHC.Base.Monoid a1)
-                   (v :: Language.Fixpoint.Types.Visitor.Visitor a1 c)
-                   (c1 :: c)
-                   (x :: Language.Fixpoint.Types.Constraints.SubC a) ->
-                 let {
-                   lvl3 :: Language.Fixpoint.Types.Visitor.VisitM
-                             a1 Language.Fixpoint.Types.Refinements.SortedReft
-                   = case x of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                     case ds4 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                     case ww2
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                     let {
-                       m1 :: Control.Monad.Trans.State.Strict.StateT
-                               a1
-                               Data.Functor.Identity.Identity
-                               Language.Fixpoint.Types.Refinements.Expr
-                       = Language.Fixpoint.Types.Visitor.visitExpr
-                           @ a1
-                           @ c
-                           $dMonoid
-                           v
-                           c1
-                           ww5
-                     } in
-                     (\ (s1 :: a1) ->
-                      case (m1
-                              `cast`
-                            (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                 <a1>_N
-                                 <Data.Functor.Identity.Identity>_R
-                                 <Language.Fixpoint.Types.Refinements.Expr>_N)
-                              s1)
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  a1)>_R) of wild1 { (,) a2 s' ->
-                      (Language.Fixpoint.Types.Refinements.RR
-                         ww1
-                         (ww4, a2)
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                       s')
-                        `cast`
-                      (Sym (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.SortedReft, a1)>_R)) })
-                       `cast`
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <a1>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } } }
-                 } in
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a1
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.SortedReft
-                   = case x of wild { Language.Fixpoint.Types.Constraints.SubC ds2 ds3 ds4 ds5 ds6 ds7 ->
-                     case ds3 of ww { Language.Fixpoint.Types.Refinements.RR ww1 ww2 ->
-                     case ww2
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww3 { (,) ww4 ww5 ->
-                     let {
-                       m2 :: Control.Monad.Trans.State.Strict.StateT
-                               a1
-                               Data.Functor.Identity.Identity
-                               Language.Fixpoint.Types.Refinements.Expr
-                       = Language.Fixpoint.Types.Visitor.visitExpr
-                           @ a1
-                           @ c
-                           $dMonoid
-                           v
-                           c1
-                           ww5
-                     } in
-                     (\ (s1 :: a1) ->
-                      case (m2
-                              `cast`
-                            (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                 <a1>_N
-                                 <Data.Functor.Identity.Identity>_R
-                                 <Language.Fixpoint.Types.Refinements.Expr>_N)
-                              s1)
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  a1)>_R) of wild1 { (,) a2 s' ->
-                      (Language.Fixpoint.Types.Refinements.RR
-                         ww1
-                         (ww4, a2)
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                       s')
-                        `cast`
-                      (Sym (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.SortedReft, a1)>_R)) })
-                       `cast`
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <a1>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } } }
-                 } in
-                 (\ (s1 :: a1) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a1>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.SortedReft>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.SortedReft,
-                              a1)>_R) of wild { (,) a2 s' ->
-                  case (lvl3
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a1>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.SortedReft>_N)
-                          s')
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.SortedReft,
-                              a1)>_R) of wild1 { (,) a3 s'1 ->
-                  (case x of wild2 { Language.Fixpoint.Types.Constraints.SubC ds ds1 ds2 ds3 ds4 ds5 ->
-                   case a2 of dt { Language.Fixpoint.Types.Refinements.RR ipv ipv1 ->
-                   case a3 of dt1 { Language.Fixpoint.Types.Refinements.RR ipv2 ipv3 ->
-                   Language.Fixpoint.Types.Constraints.SubC
-                     @ a
-                     ds
-                     dt
-                     dt1
-                     ds3
-                     ds4
-                     ds5 } } },
-                   s'1)
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Constraints.SubC a, a1)>_R)) } })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a1>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Constraints.SubC a>_N))) -}
-d949230218d95a2fc3452e73ea77f0c0
-  $tc'C:SymConsts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5168044056769303283##
-                   18044279355453940619##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tc'C:SymConsts1) -}
-b681b0ff01936cf75ebf87471099a0eb
-  $tc'C:SymConsts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:SymConsts"#) -}
-a0ab4eddb3c4a9517a75e11c2ad8c868
-  $tc'C:Visitable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7500484986567656041##
-                   177644629295887131##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tc'C:Visitable1) -}
-089e42caa1b5bf51415de75aa3664887
-  $tc'C:Visitable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'C:Visitable"#) -}
-d6589018a2f2121027ff510c05c3bbf0
-  $tc'MInt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3075174386398702742##
-                   7333062448098494567##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tc'MInt1) -}
-3def384dbd8e816e355f6af00861e545
-  $tc'MInt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'MInt"#) -}
-a03cc2af918d99ccdd22056d6d66a04b
-  $tc'Visitor :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1067959098000224690##
-                   6250259715442111976##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tc'Visitor1) -}
-8942aeb0b414a59834839345fd9b0114
-  $tc'Visitor1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Visitor"#) -}
-9d7496764674f3cf56762b54f0cf1bbf
-  $tcMInt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17082165803040957327##
-                   8718487598105691120##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tcMInt1) -}
-900bc13d853f0dc15c33b89300948f2a
-  $tcMInt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "MInt"#) -}
-27b0903920d0dab0b72ba6ac3f6d1775
-  $tcSymConsts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   16570474597428536111##
-                   16879269785248626226##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tcSymConsts1) -}
-03e4e1f6e88a4e3f99f85e14a1e8eb70
-  $tcSymConsts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "SymConsts"#) -}
-1d5698cbd1b2486846fa38a8a338ac43
-  $tcVisitable :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12715897666376863913##
-                   18013601660342401659##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tcVisitable1) -}
-e2dbf302a26b90a3f82748c3664b059d
-  $tcVisitable1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Visitable"#) -}
-b4c1497885521e22d073fca5ca81fafb
-  $tcVisitor :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7722778231166247085##
-                   3116314934715764522##
-                   Language.Fixpoint.Types.Visitor.$trModule
-                   Language.Fixpoint.Types.Visitor.$tcVisitor1) -}
-478f72e1d3475630578ee54617d2b994
-  $tcVisitor1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Visitor"#) -}
-ca43691e63b90705540d9b5f77a69a65
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Types.Visitor.$trModule2
-                   Language.Fixpoint.Types.Visitor.$trModule1) -}
-fd74f0c2c41470966260dc7886e04cde
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Types.Visitor"#) -}
-5f9431347189495cb6c2235e9a5a7f24
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-487d0150a1314871b7b84fc92411ac5c
-  $w$csymConsts ::
-    Language.Fixpoint.Types.Visitor.SymConsts (c a) =>
-    Data.HashMap.Base.HashMap
-      Language.Fixpoint.Types.Constraints.SubcId (c a)
-    -> Language.Fixpoint.Types.Environments.BindEnv
-    -> [Language.Fixpoint.Types.Constraints.Qualifier]
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,C(U)><S,U><L,U(A,U)><L,U>, Inline: [0] -}
-2aae95e2c14b2c95413d86b78e8e272d
-  $w$csymConsts1 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,U>, Inline: [0],
-     Unfolding: (\ (ww :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.SymConst]
-                          @ ()
-                          (GHC.Base.$fMonoid[]
-                             @ Language.Fixpoint.Types.Refinements.SymConst)
-                          Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                          GHC.Tuple.()
-                          ww)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-4b5f1c9bb674603b008a8183a5146c8f
-  $w$csymConsts2 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Reft
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><L,U(A,U)>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (ww :: Language.Fixpoint.Types.Refinements.Expr)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Reft) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.SymConst]
-                          @ ()
-                          (GHC.Base.$fMonoid[]
-                             @ Language.Fixpoint.Types.Refinements.SymConst)
-                          Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                          GHC.Tuple.()
-                          ww)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild { (,) ds1 y ->
-                 GHC.Base.++
-                   @ Language.Fixpoint.Types.Refinements.SymConst
-                   y
-                   (case ww1
-                           `cast`
-                         (Language.Fixpoint.Types.Refinements.N:Reft[0]) of wild1 { (,) ds ra ->
-                    case ((Language.Fixpoint.Types.Visitor.visitExpr
-                             @ [Language.Fixpoint.Types.Refinements.SymConst]
-                             @ ()
-                             (GHC.Base.$fMonoid[]
-                                @ Language.Fixpoint.Types.Refinements.SymConst)
-                             Language.Fixpoint.Types.Visitor.$fSymConstsExpr1
-                             GHC.Tuple.()
-                             ra)
-                            `cast`
-                          (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <[Language.Fixpoint.Types.Refinements.SymConst]>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.Expr>_N)
-                            (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.SymConst))
-                           `cast`
-                         (Data.Functor.Identity.N:Identity[0]
-                              <(Language.Fixpoint.Types.Refinements.Expr,
-                                [Language.Fixpoint.Types.Refinements.SymConst])>_R) of wild2 { (,) ds2 y1 ->
-                    y1 } }) }) -}
-0b13b62e9c4b7c5d19fef21e738c4226
-  $w$cvisit ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.SortedReft
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U><L,1*U(U,U(U,U))>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.SortedReft) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.SortedReft
-                   = case ww1 of ww2 { Language.Fixpoint.Types.Refinements.RR ww3 ww4 ->
-                     case ww4
-                            `cast`
-                          (Language.Fixpoint.Types.Refinements.N:Reft[0]) of ww5 { (,) ww6 ww7 ->
-                     let {
-                       m2 :: Control.Monad.Trans.State.Strict.StateT
-                               a
-                               Data.Functor.Identity.Identity
-                               Language.Fixpoint.Types.Refinements.Expr
-                       = Language.Fixpoint.Types.Visitor.visitExpr @ a @ c w w1 w2 ww7
-                     } in
-                     (\ (s1 :: a) ->
-                      case (m2
-                              `cast`
-                            (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                 <a>_N
-                                 <Data.Functor.Identity.Identity>_R
-                                 <Language.Fixpoint.Types.Refinements.Expr>_N)
-                              s1)
-                             `cast`
-                           (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.Expr,
-                                  a)>_R) of wild { (,) a1 s' ->
-                      (Language.Fixpoint.Types.Refinements.RR
-                         ww3
-                         (ww6, a1)
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                       s')
-                        `cast`
-                      (Sym (Data.Functor.Identity.N:Identity[0]
-                                <(Language.Fixpoint.Types.Refinements.SortedReft, a)>_R)) })
-                       `cast`
-                     (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                               <a>_N
-                               <Data.Functor.Identity.Identity>_R
-                               <Language.Fixpoint.Types.Refinements.SortedReft>_N)) } }
-                 } in
-                 (\ (s1 :: a) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.SortedReft>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.SortedReft,
-                              a)>_R) of wild { (,) a1 s' ->
-                  ((ww, a1), s')
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <((Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft),
-                              a)>_R)) })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <(Language.Fixpoint.Types.Names.Symbol,
-                             Language.Fixpoint.Types.Refinements.SortedReft)>_N))) -}
-d2f69d06b610e20a18d81ed4fbcbc694
-  $w$cvisit1 ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> Language.Fixpoint.Types.Names.Symbol
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a Language.Fixpoint.Types.Refinements.Reft
-  {- Arity: 5, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U><L,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (ww :: Language.Fixpoint.Types.Names.Symbol)
-                   (ww1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a
-                           Data.Functor.Identity.Identity
-                           Language.Fixpoint.Types.Refinements.Expr
-                   = Language.Fixpoint.Types.Visitor.visitExpr @ a @ c w w1 w2 ww1
-                 } in
-                 (\ (s1 :: a) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Refinements.Expr>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.Expr,
-                              a)>_R) of wild { (,) a1 s' ->
-                  ((ww, a1)
-                     `cast`
-                   (Sym (Language.Fixpoint.Types.Refinements.N:Reft[0])),
-                   s')
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Refinements.Reft, a)>_R)) })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Refinements.Reft>_N))) -}
-0b247c98a1e12cf94b0c433d52af0deb
-  $w$cvisit2 ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a c
-    -> c
-    -> GHC.Prim.Int#
-    -> Language.Fixpoint.Types.Environments.BindMap
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft)
-    -> Control.Monad.Trans.State.Strict.StateT
-         a
-         Data.Functor.Identity.Identity
-         (Language.Fixpoint.Types.Environments.SizedEnv
-            (Language.Fixpoint.Types.Names.Symbol,
-             Language.Fixpoint.Types.Refinements.SortedReft))
-  {- Arity: 5,
-     Strictness: <L,U(A,U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   @ c
-                   (w :: GHC.Base.Monoid a)
-                   (w1 :: Language.Fixpoint.Types.Visitor.Visitor a c)
-                   (w2 :: c)
-                   (ww :: GHC.Prim.Int#)
-                   (ww1 :: Language.Fixpoint.Types.Environments.BindMap
-                             (Language.Fixpoint.Types.Names.Symbol,
-                              Language.Fixpoint.Types.Refinements.SortedReft)) ->
-                 let {
-                   m1 :: Control.Monad.Trans.State.Strict.StateT
-                           a
-                           Data.Functor.Identity.Identity
-                           (Language.Fixpoint.Types.Environments.BindMap
-                              (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft))
-                   = Data.HashMap.Base.$fTraversableHashMap_$ctraverse
-                       @ GHC.Types.Int
-                       @ (Control.Monad.Trans.State.Strict.StateT
-                            a Data.Functor.Identity.Identity)
-                       @ (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)
-                       @ (Language.Fixpoint.Types.Names.Symbol,
-                          Language.Fixpoint.Types.Refinements.SortedReft)
-                       (Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT
-                          @ a)
-                       (Language.Fixpoint.Types.Visitor.$fVisitable(,)_$cvisit
-                          @ a
-                          @ c
-                          w
-                          w1
-                          w2)
-                       ww1
-                 } in
-                 (\ (s1 :: a) ->
-                  case (m1
-                          `cast`
-                        (Control.Monad.Trans.State.Strict.N:StateT[0]
-                             <a>_N
-                             <Data.Functor.Identity.Identity>_R
-                             <Language.Fixpoint.Types.Environments.BindMap
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft)>_N)
-                          s1)
-                         `cast`
-                       (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Environments.BindMap
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft),
-                              a)>_R) of wild { (,) a1 s' ->
-                  (case a1 of dt { DEFAULT ->
-                   Language.Fixpoint.Types.Environments.BE
-                     @ (Language.Fixpoint.Types.Names.Symbol,
-                        Language.Fixpoint.Types.Refinements.SortedReft)
-                     ww
-                     dt },
-                   s')
-                    `cast`
-                  (Sym (Data.Functor.Identity.N:Identity[0]
-                            <(Language.Fixpoint.Types.Environments.SizedEnv
-                                (Language.Fixpoint.Types.Names.Symbol,
-                                 Language.Fixpoint.Types.Refinements.SortedReft),
-                              a)>_R)) })
-                   `cast`
-                 (Sym (Control.Monad.Trans.State.Strict.N:StateT[0]
-                           <a>_N
-                           <Data.Functor.Identity.Identity>_R
-                           <Language.Fixpoint.Types.Environments.SizedEnv
-                              (Language.Fixpoint.Types.Names.Symbol,
-                               Language.Fixpoint.Types.Refinements.SortedReft)>_N))) -}
-5e8f3e4bfd98dda49819dd4ee4808daf
-  $wgo1 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-7df4f2e35bad3be9c1d5049082a7d196
-  $wgo2 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-9e1c89fb89b10cfd78a13b352850e3d5
-  $wgo3 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Environments.BindId
-         (Language.Fixpoint.Types.Names.Symbol,
-          Language.Fixpoint.Types.Refinements.SortedReft))
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-    -> [Language.Fixpoint.Types.Refinements.SymConst]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-fab61e3c7ac0c59b935d23c162d454b2
-  $wgo4 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.Leaf
-         Language.Fixpoint.Types.Refinements.KVar ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,1*U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-5442c2b6df7d476b5fd51678e83452e8
-  $wgo5 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-f4a5f483f17ec6c5ab282f5bfefc24d1
-  $wgo6 ::
-    Data.HashMap.Array.Array
-      (Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ())
-    -> GHC.Prim.Int#
-    -> GHC.Prim.Int#
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 4, HasNoCafRefs, Strictness: <L,U(U)><S,U><S,U><L,1*U>,
-     Inline: [0] -}
-239f66d8996b0f6ab8aa800f771f8e14
-  newtype MInt = MInt GHC.Integer.Type.Integer
-487d0150a1314871b7b84fc92411ac5c
-  class SymConsts a where
-    symConsts :: a -> [Language.Fixpoint.Types.Refinements.SymConst]
-    {-# MINIMAL symConsts #-}
-9a0e6c7f24ae6537817b1a6a27aad08d
-  type VisitM acc =
-    Control.Monad.Trans.State.Strict.State acc :: * -> *
-b5488c516ee98083465a9979b0edbf0b
-  class Visitable t where
-    visit :: GHC.Base.Monoid a =>
-             Language.Fixpoint.Types.Visitor.Visitor a c
-             -> c -> t -> Language.Fixpoint.Types.Visitor.VisitM a t
-    {-# MINIMAL visit #-}
-33c63afa8f4288a9ffa5e86ff687dc11
-  data Visitor acc ctx
-    = Visitor {ctxExpr :: ctx
-                          -> Language.Fixpoint.Types.Refinements.Expr -> ctx,
-               txExpr :: ctx
-                         -> Language.Fixpoint.Types.Refinements.Expr
-                         -> Language.Fixpoint.Types.Refinements.Expr,
-               accExpr :: ctx -> Language.Fixpoint.Types.Refinements.Expr -> acc}
-d0ee2d431eac6e5bd8f232ae912f3573
-  accExpr ::
-    Language.Fixpoint.Types.Visitor.Visitor acc ctx
-    -> ctx -> Language.Fixpoint.Types.Refinements.Expr -> acc
-  RecSel Left Language.Fixpoint.Types.Visitor.Visitor
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LLS),1*U(A,A,1*U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ acc
-                   @ ctx
-                   (ds :: Language.Fixpoint.Types.Visitor.Visitor acc ctx) ->
-                 case ds of wild { Language.Fixpoint.Types.Visitor.Visitor ds1 ds2 ds3 ->
-                 ds3 }) -}
-93161d2daeca51281482e1fbd8baa56a
-  ctxExpr ::
-    Language.Fixpoint.Types.Visitor.Visitor acc ctx
-    -> ctx -> Language.Fixpoint.Types.Refinements.Expr -> ctx
-  RecSel Left Language.Fixpoint.Types.Visitor.Visitor
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SLL),1*U(1*U,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ acc
-                   @ ctx
-                   (ds :: Language.Fixpoint.Types.Visitor.Visitor acc ctx) ->
-                 case ds of wild { Language.Fixpoint.Types.Visitor.Visitor ds1 ds2 ds3 ->
-                 ds1 }) -}
-d076e91e9b65345dc4f86c444d6f63d5
-  defaultVisitor ::
-    GHC.Base.Monoid acc =>
-    Language.Fixpoint.Types.Visitor.Visitor acc ctx
-  {- Arity: 1, HasNoCafRefs, Strictness: <L,1*U(1*U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ acc @ ctx ($dMonoid :: GHC.Base.Monoid acc) ->
-                 let {
-                   lvl3 :: acc = GHC.Base.mempty @ acc $dMonoid
-                 } in
-                 Language.Fixpoint.Types.Visitor.Visitor
-                   @ acc
-                   @ ctx
-                   (GHC.Base.const @ ctx @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ctx)
-                   (\ (ds :: ctx) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                    lvl3)) -}
-d63c8f2c7640ab0edbc423852a9f6287
-  eapps ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (t1 :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ [Language.Fixpoint.Types.Refinements.Expr]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ Language.Fixpoint.Types.Refinements.Expr)
-                          Language.Fixpoint.Types.Visitor.eapps1
-                          GHC.Tuple.()
-                          t1)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.Expr]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <t>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t,
-                             [Language.Fixpoint.Types.Refinements.Expr])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-625f3694e1fc5010b4f0baeae5eb436c
-  eapps1 ::
-    Language.Fixpoint.Types.Visitor.Visitor
-      [Language.Fixpoint.Types.Refinements.Expr] ()
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ [Language.Fixpoint.Types.Refinements.Expr]
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ())
-                   Language.Fixpoint.Types.Visitor.eapps2) -}
-e6c20954eab4fbe5b989d0c576918ada
-  eapps2 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.Expr]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: ()) (e :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case e of wild {
-                   DEFAULT -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr
-                   Language.Fixpoint.Types.Refinements.EApp ds1 ds2
-                   -> GHC.Types.:
-                        @ Language.Fixpoint.Types.Refinements.Expr
-                        wild
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.Expr) }) -}
-8beb8bafb32f77bb7d6294a6bb583510
-  envKVars ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> c a -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 3,
-     Strictness: <S(LLLLC(C(S))L),1*U(A,A,A,A,1*C1(C1(U)),A)><L,U><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (be :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (c1 :: c a) ->
-                 Language.Fixpoint.Types.Visitor.envKVars_go1
-                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                   (Language.Fixpoint.Types.Visitor.envKVars_go
-                      (Language.Fixpoint.Types.Constraints.clhs @ c @ a $dTaggedC be c1)
-                      (Data.HashMap.Base.Empty
-                         @ Language.Fixpoint.Types.Refinements.KVar
-                         @ ()))) -}
-a0dcdf6742402ac65be1e924a7312c47
-  envKVarsN ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    Language.Fixpoint.Types.Environments.BindEnv
-    -> c a
-    -> [(Language.Fixpoint.Types.Refinements.KVar, GHC.Types.Int)]
-  {- Arity: 3,
-     Strictness: <S(LLLLC(C(S))L),1*U(A,A,A,A,1*C1(C1(U)),A)><L,U><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (be :: Language.Fixpoint.Types.Environments.BindEnv)
-                   (c1 :: c a) ->
-                 Language.Fixpoint.Misc.count
-                   @ Language.Fixpoint.Types.Refinements.KVar
-                   Language.Fixpoint.Types.Refinements.$fEqKVar
-                   Language.Fixpoint.Types.Refinements.$fHashableKVar
-                   (Language.Fixpoint.Types.Visitor.envKVarsN_go
-                      (Language.Fixpoint.Types.Constraints.clhs
-                         @ c
-                         @ a
-                         $dTaggedC
-                         be
-                         c1))) -}
-c9ad696778953cb375c4711e5a8051d8
-  envKVarsN_go ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-84364ec161ce7fa67b605aefd2151f06
-  envKVars_go ::
-    [(Language.Fixpoint.Types.Names.Symbol,
-      Language.Fixpoint.Types.Refinements.SortedReft)]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-  {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-b4d2fc4fb29e4df23a114a3a4b467c89
-  envKVars_go1 ::
-    [Language.Fixpoint.Types.Refinements.KVar]
-    -> Data.HashMap.Base.HashMap
-         Language.Fixpoint.Types.Refinements.KVar ()
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,U><S,1*U>,
-     Unfolding: (\ (z1 :: [Language.Fixpoint.Types.Refinements.KVar])
-                   (ds :: Data.HashMap.Base.HashMap
-                            Language.Fixpoint.Types.Refinements.KVar ()) ->
-                 case ds of wild {
-                   Data.HashMap.Base.Empty -> z1
-                   Data.HashMap.Base.BitmapIndexed dt dt1
-                   -> Language.Fixpoint.Types.Visitor.$wgo6
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt1)
-                        0#
-                        z1
-                   Data.HashMap.Base.Leaf dt dt1 dt2
-                   -> GHC.Types.: @ Language.Fixpoint.Types.Refinements.KVar dt1 z1
-                   Data.HashMap.Base.Full dt
-                   -> Language.Fixpoint.Types.Visitor.$wgo5
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.HashMap
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt)
-                        0#
-                        z1
-                   Data.HashMap.Base.Collision dt dt1
-                   -> Language.Fixpoint.Types.Visitor.$wgo4
-                        (Data.HashMap.Array.Array
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt1)
-                        (GHC.Prim.sizeofArray#
-                           @ (Data.HashMap.Base.Leaf
-                                Language.Fixpoint.Types.Refinements.KVar ())
-                           dt1)
-                        0#
-                        z1 }) -}
-959bed7463c9510c06515f0a30c37558
-  fold ::
-    (Language.Fixpoint.Types.Visitor.Visitable t, GHC.Base.Monoid a) =>
-    Language.Fixpoint.Types.Visitor.Visitor a ctx -> ctx -> a -> t -> a
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U><L,U><L,U><L,U><L,U>,
-     Unfolding: InlineRule (6, True, False)
-                (\ @ t
-                   @ a
-                   @ ctx
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   ($dMonoid :: GHC.Base.Monoid a)
-                   (v :: Language.Fixpoint.Types.Visitor.Visitor a ctx)
-                   (c :: ctx)
-                   (a1 :: a)
-                   (t1 :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ a
-                          @ ctx
-                          $dMonoid
-                          v
-                          c
-                          t1)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <a>_N <Data.Functor.Identity.Identity>_R <t>_N)
-                         a1)
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t, a)>_R) of wild { (,) ds1 y ->
-                 y }) -}
-8ccf870b83ea22eef6497c06e35f13f4
-  foldSort ::
-    (a -> Language.Fixpoint.Types.Sorts.Sort -> a)
-    -> a -> Language.Fixpoint.Types.Sorts.Sort -> a
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(C(S)),C(C1(U))><L,U><S,U>,
-     Unfolding: (\ @ a
-                   (f :: a -> Language.Fixpoint.Types.Sorts.Sort -> a)
-                   (eta :: a)
-                   (eta1 :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 letrec {
-                   go3 :: a -> Language.Fixpoint.Types.Sorts.Sort -> a
-                     {- Arity: 2, Strictness: <S,1*U><S,1*U> -}
-                   = \ (b :: a) (ds :: Language.Fixpoint.Types.Sorts.Sort) ->
-                     case ds of wild {
-                       DEFAULT -> b
-                       Language.Fixpoint.Types.Sorts.FFunc t1 t2
-                       -> case b of z { DEFAULT ->
-                          case go3 (f z t1) t1 of z1 { DEFAULT -> go3 (f z1 t2) t2 } }
-                       Language.Fixpoint.Types.Sorts.FAbs dt t -> go3 b t
-                       Language.Fixpoint.Types.Sorts.FApp t1 t2
-                       -> case b of z { DEFAULT ->
-                          case go3 (f z t1) t1 of z1 { DEFAULT -> go3 (f z1 t2) t2 } } }
-                 } in
-                 go3 (f eta eta1) eta1) -}
-168eb47fa1697b4be4039258d2f9ed16
-  isConcC ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    c a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLLLLC(S)),1*U(A,A,A,A,A,1*C1(U))><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (eta :: c a) ->
-                 case Language.Fixpoint.Types.Constraints.crhs
-                        @ c
-                        @ a
-                        $dTaggedC
-                        eta of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                             wild of wild1 {
-                        GHC.Types.False
-                        -> case ((Language.Fixpoint.Types.Visitor.visitExpr
-                                    @ [Language.Fixpoint.Types.Refinements.KVar]
-                                    @ ()
-                                    (GHC.Base.$fMonoid[] @ Language.Fixpoint.Types.Refinements.KVar)
-                                    Language.Fixpoint.Types.Visitor.isConcC1
-                                    GHC.Tuple.()
-                                    wild)
-                                   `cast`
-                                 (Control.Monad.Trans.State.Strict.N:StateT[0]
-                                      <[Language.Fixpoint.Types.Refinements.KVar]>_N
-                                      <Data.Functor.Identity.Identity>_R
-                                      <Language.Fixpoint.Types.Refinements.Expr>_N)
-                                   (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar))
-                                  `cast`
-                                (Data.Functor.Identity.N:Identity[0]
-                                     <(Language.Fixpoint.Types.Refinements.Expr,
-                                       [Language.Fixpoint.Types.Refinements.KVar])>_R) of wild2 { (,) ds1 y ->
-                           case y of wild3 {
-                             [] -> GHC.Types.True : ds2 ds3 -> GHC.Types.False } }
-                        GHC.Types.True -> GHC.Types.True }
-                   Language.Fixpoint.Types.Refinements.PAnd ps
-                   -> (Language.Fixpoint.Types.Visitor.isConcC_go
-                         (Language.Fixpoint.Types.Refinements.conjuncts_go ps))
-                        `cast`
-                      (Data.Monoid.N:All[0]) }) -}
-c09862a57b688fa00824aa0360025265
-  isConcC1 ::
-    Language.Fixpoint.Types.Visitor.Visitor
-      [Language.Fixpoint.Types.Refinements.KVar] ()
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ [Language.Fixpoint.Types.Refinements.KVar]
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ())
-                   Language.Fixpoint.Types.Visitor.isConcC2) -}
-f19821bed1783426d3450ff2071e655b
-  isConcC2 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds1 of wild {
-                   DEFAULT -> GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar
-                   Language.Fixpoint.Types.Refinements.PKVar k ds2
-                   -> GHC.Types.:
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        k
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar)
-                   Language.Fixpoint.Types.Refinements.PGrad k ds2 ds3
-                   -> GHC.Types.:
-                        @ Language.Fixpoint.Types.Refinements.KVar
-                        k
-                        (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar) }) -}
-d971f7b6649eba10e06546c29436fb65
-  isConcC_go ::
-    [Language.Fixpoint.Types.Refinements.Expr] -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-66f0d7fd732551524a0e018bd0ab4846
-  isKvarC ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    c a -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <S(LLLLLC(S)),1*U(A,A,A,A,A,1*C1(U))><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (eta :: c a) ->
-                 case Language.Fixpoint.Types.Constraints.crhs
-                        @ c
-                        @ a
-                        $dTaggedC
-                        eta of wild {
-                   DEFAULT
-                   -> case Language.Fixpoint.Types.Refinements.isTautoPred
-                             wild of wild1 {
-                        GHC.Types.False
-                        -> case wild of wild2 {
-                             DEFAULT -> GHC.Types.False
-                             Language.Fixpoint.Types.Refinements.PKVar ds ds1 -> GHC.Types.True
-                             Language.Fixpoint.Types.Refinements.PGrad ds ds1 ds2
-                             -> GHC.Types.True }
-                        GHC.Types.True -> GHC.Types.True }
-                   Language.Fixpoint.Types.Refinements.PAnd ps
-                   -> (Language.Fixpoint.Types.Visitor.isKvarC_go
-                         (Language.Fixpoint.Types.Refinements.conjuncts_go ps))
-                        `cast`
-                      (Data.Monoid.N:All[0]) }) -}
-03d706d9f2c5bf069e478d33fe405fe5
-  isKvarC_go ::
-    [Language.Fixpoint.Types.Refinements.Expr] -> Data.Monoid.All
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-16b8d297ad4a7c9e979b8fb21df7dcf8
-  kvars ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (t1 :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ [Language.Fixpoint.Types.Refinements.KVar]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ Language.Fixpoint.Types.Refinements.KVar)
-                          Language.Fixpoint.Types.Visitor.isConcC1
-                          GHC.Tuple.()
-                          t1)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.KVar]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <t>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t,
-                             [Language.Fixpoint.Types.Refinements.KVar])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-07d9d495b0787697bcef0c6337c16844
-  lamSize ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> GHC.Integer.Type.Integer
-  {- Arity: 2,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Visitor.lamSize1
-                  `cast`
-                (forall (t :: <*>_N).
-                 <Language.Fixpoint.Types.Visitor.Visitable t>_R
-                 ->_R <t>_R
-                 ->_R Language.Fixpoint.Types.Visitor.N:MInt[0]) -}
-9c6b29a261797729925791e43cb45d91
-  lamSize1 ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 2,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (t1 :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ Language.Fixpoint.Types.Visitor.MInt
-                          @ ()
-                          Language.Fixpoint.Types.Visitor.$fMonoidMInt
-                          Language.Fixpoint.Types.Visitor.lamSize2
-                          GHC.Tuple.()
-                          t1)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <Language.Fixpoint.Types.Visitor.MInt>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <t>_N)
-                         Language.Fixpoint.Types.Visitor.$fMonoidMInt1
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t,
-                             Language.Fixpoint.Types.Visitor.MInt)>_R) of wild { (,) ds1 y ->
-                 y }) -}
-3366f761b611167dfe9894e9818adc73
-  lamSize2 ::
-    Language.Fixpoint.Types.Visitor.Visitor
-      Language.Fixpoint.Types.Visitor.MInt ()
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ Language.Fixpoint.Types.Visitor.MInt
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ())
-                   Language.Fixpoint.Types.Visitor.lamSize3) -}
-3fc303747fabd7805d3722812f94534a
-  lamSize3 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds1 of wild {
-                   DEFAULT
-                   -> Language.Fixpoint.Types.Visitor.$fMonoidMInt1
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0]))
-                   Language.Fixpoint.Types.Refinements.ELam ds2 ds3
-                   -> Language.Fixpoint.Types.Visitor.lamSize4
-                        `cast`
-                      (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])) }) -}
-0c71a8036829ddff51861814f6c7458b
-  lamSize4 :: GHC.Integer.Type.Integer
-  {- HasNoCafRefs, Unfolding: (1) -}
-d9f5673910f4e8be82a41738edf792b5
-  mapExpr ::
-    (Language.Fixpoint.Types.Refinements.Expr
-     -> Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,C(U)><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: Language.Fixpoint.Types.Refinements.Expr
-                         -> Language.Fixpoint.Types.Refinements.Expr)
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [GHC.Prim.Any]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                          (Language.Fixpoint.Types.Visitor.Visitor
-                             @ [GHC.Prim.Any]
-                             @ ()
-                             (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                             (\ (ds :: ()) -> f)
-                             Language.Fixpoint.Types.Visitor.mapExpr1)
-                          GHC.Tuple.()
-                          eta)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[GHC.Prim.Any]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ GHC.Prim.Any))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [GHC.Prim.Any])>_R) of wild { (,) x ds1 ->
-                 x }) -}
-6dc1abbd46a3ec128f1c08aef26f6326
-  mapExpr1 ::
-    () -> Language.Fixpoint.Types.Refinements.Expr -> [GHC.Prim.Any]
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 GHC.Types.[] @ GHC.Prim.Any) -}
-5c2ee594f944d9ac0904549f86b93398
-  mapKVarSubsts ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    (Language.Fixpoint.Types.Refinements.KVar
-     -> Language.Fixpoint.Types.Refinements.Subst
-     -> Language.Fixpoint.Types.Refinements.Subst)
-    -> t -> t
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <C(C(C(C(C(S(SL)))))),1*C1(C1(C1(C1(C1(U(1*U,A))))))><L,C(C1(U))><L,U>,
-     Unfolding: (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (f :: Language.Fixpoint.Types.Refinements.KVar
-                         -> Language.Fixpoint.Types.Refinements.Subst
-                         -> Language.Fixpoint.Types.Refinements.Subst)
-                   (eta :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ [GHC.Prim.Any]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                          (Language.Fixpoint.Types.Visitor.Visitor
-                             @ [GHC.Prim.Any]
-                             @ ()
-                             (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                             (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                              case ds1 of wild {
-                                DEFAULT -> wild
-                                Language.Fixpoint.Types.Refinements.PKVar k su
-                                -> case (f k su)
-                                          `cast`
-                                        (Language.Fixpoint.Types.Refinements.N:Subst[0]) of nt { DEFAULT ->
-                                   Language.Fixpoint.Types.Refinements.PKVar
-                                     k
-                                     nt
-                                       `cast`
-                                     (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0])) }
-                                Language.Fixpoint.Types.Refinements.PGrad k su e
-                                -> case (f k su)
-                                          `cast`
-                                        (Language.Fixpoint.Types.Refinements.N:Subst[0]) of nt { DEFAULT ->
-                                   Language.Fixpoint.Types.Refinements.PGrad
-                                     k
-                                     nt
-                                       `cast`
-                                     (Sym (Language.Fixpoint.Types.Refinements.N:Subst[0]))
-                                     e } })
-                             Language.Fixpoint.Types.Visitor.mapExpr1)
-                          GHC.Tuple.()
-                          eta)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[GHC.Prim.Any]>_N <Data.Functor.Identity.Identity>_R <t>_N)
-                         (GHC.Types.[] @ GHC.Prim.Any))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t, [GHC.Prim.Any])>_R) of wild { (,) x ds1 ->
-                 x }) -}
-0ed00aae968de150fa223abd5c1357d8
-  mapKVars ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    (Language.Fixpoint.Types.Refinements.KVar
-     -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr)
-    -> t -> t
-  {- Arity: 3,
-     Strictness: <C(C(C(C(C(S(SL)))))),1*C1(C1(C1(C1(C1(U(1*U,A))))))><L,C(U)><L,U>,
-     Unfolding: InlineRule (3, True, False)
-                (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (f :: Language.Fixpoint.Types.Refinements.KVar
-                         -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr)
-                   (eta :: t) ->
-                 Language.Fixpoint.Types.Visitor.mapKVars'
-                   @ t
-                   $dVisitable
-                   (\ (ds :: (Language.Fixpoint.Types.Refinements.KVar,
-                              Language.Fixpoint.Types.Refinements.Subst)) ->
-                    case ds of wild { (,) kv' ds1 -> f kv' })
-                   eta) -}
-0f8d6640a1d06a16e31aa2c13647552a
-  mapKVars' ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    ((Language.Fixpoint.Types.Refinements.KVar,
-      Language.Fixpoint.Types.Refinements.Subst)
-     -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr)
-    -> t -> t
-  {- Arity: 3,
-     Strictness: <C(C(C(C(C(S(SL)))))),1*C1(C1(C1(C1(C1(U(1*U,A))))))><L,C(U)><L,U>,
-     Unfolding: (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (f :: (Language.Fixpoint.Types.Refinements.KVar,
-                          Language.Fixpoint.Types.Refinements.Subst)
-                         -> GHC.Base.Maybe Language.Fixpoint.Types.Refinements.Expr)
-                   (eta :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ [GHC.Prim.Any]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                          (Language.Fixpoint.Types.Visitor.Visitor
-                             @ [GHC.Prim.Any]
-                             @ ()
-                             (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                             (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                              case ds1 of wild {
-                                DEFAULT -> wild
-                                Language.Fixpoint.Types.Refinements.PKVar k su
-                                -> case f (k, su) of wild1 {
-                                     GHC.Base.Nothing -> wild
-                                     GHC.Base.Just p'
-                                     -> Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                          su
-                                          p' }
-                                Language.Fixpoint.Types.Refinements.PGrad k su ds2
-                                -> case f (k, su) of wild1 {
-                                     GHC.Base.Nothing -> wild
-                                     GHC.Base.Just p'
-                                     -> Language.Fixpoint.Types.Substitutions.$fMonoidReft_$csubst
-                                          su
-                                          p' } })
-                             Language.Fixpoint.Types.Visitor.mapExpr1)
-                          GHC.Tuple.()
-                          eta)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[GHC.Prim.Any]>_N <Data.Functor.Identity.Identity>_R <t>_N)
-                         (GHC.Types.[] @ GHC.Prim.Any))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t, [GHC.Prim.Any])>_R) of wild { (,) x ds1 ->
-                 x }) -}
-6616a904920b9995d8850ccd6842422c
-  mapMExpr ::
-    GHC.Base.Monad m =>
-    (Language.Fixpoint.Types.Refinements.Expr
-     -> m Language.Fixpoint.Types.Refinements.Expr)
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> m Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,U(1*U,C(C1(U)),A,A,A)><L,U><S,1*U> -}
-6607fc6ebc44b7a5f02e3380cea270cb
-  mapSort ::
-    (Language.Fixpoint.Types.Sorts.Sort
-     -> Language.Fixpoint.Types.Sorts.Sort)
-    -> Language.Fixpoint.Types.Sorts.Sort
-    -> Language.Fixpoint.Types.Sorts.Sort
-  {- Arity: 2, HasNoCafRefs, Strictness: <C(S),C(U)><L,U>,
-     Unfolding: (\ (f :: Language.Fixpoint.Types.Sorts.Sort
-                         -> Language.Fixpoint.Types.Sorts.Sort)
-                   (eta :: Language.Fixpoint.Types.Sorts.Sort) ->
-                 letrec {
-                   step :: Language.Fixpoint.Types.Sorts.Sort
-                           -> Language.Fixpoint.Types.Sorts.Sort
-                     {- Arity: 1, Strictness: <L,U> -}
-                   = \ (x :: Language.Fixpoint.Types.Sorts.Sort) ->
-                     case f x of wild {
-                       DEFAULT -> wild
-                       Language.Fixpoint.Types.Sorts.FFunc t1 t2
-                       -> case step t1 of dt { DEFAULT ->
-                          case step t2 of dt1 { DEFAULT ->
-                          Language.Fixpoint.Types.Sorts.FFunc dt dt1 } }
-                       Language.Fixpoint.Types.Sorts.FAbs dt t
-                       -> case step t of dt1 { DEFAULT ->
-                          Language.Fixpoint.Types.Sorts.FAbs dt dt1 }
-                       Language.Fixpoint.Types.Sorts.FApp t1 t2
-                       -> case step t1 of dt { DEFAULT ->
-                          case step t2 of dt1 { DEFAULT ->
-                          Language.Fixpoint.Types.Sorts.FApp dt dt1 } } }
-                 } in
-                 step eta) -}
-82f909c00a52c7e77d1d76d4eab7697c
-  rhsKVars ::
-    Language.Fixpoint.Types.Constraints.TaggedC c a =>
-    c a -> [Language.Fixpoint.Types.Refinements.KVar]
-  {- Arity: 2, HasNoCafRefs,
-     Strictness: <L,1*U(A,A,A,A,A,1*C1(U))><L,U>,
-     Unfolding: (\ @ (c :: * -> *)
-                   @ a
-                   ($dTaggedC :: Language.Fixpoint.Types.Constraints.TaggedC c a)
-                   (eta :: c a) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [Language.Fixpoint.Types.Refinements.KVar]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ Language.Fixpoint.Types.Refinements.KVar)
-                          Language.Fixpoint.Types.Visitor.isConcC1
-                          GHC.Tuple.()
-                          (Language.Fixpoint.Types.Constraints.crhs @ c @ a $dTaggedC eta))
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[Language.Fixpoint.Types.Refinements.KVar]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ Language.Fixpoint.Types.Refinements.KVar))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [Language.Fixpoint.Types.Refinements.KVar])>_R) of wild { (,) ds1 y ->
-                 y }) -}
-062a5730dbfc245df03924c69cf1ffd0
-  size ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> GHC.Integer.Type.Integer
-  {- Arity: 2,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Types.Visitor.size1
-                  `cast`
-                (forall (t :: <*>_N).
-                 <Language.Fixpoint.Types.Visitor.Visitable t>_R
-                 ->_R <t>_R
-                 ->_R Language.Fixpoint.Types.Visitor.N:MInt[0]) -}
-6d78384a3f130f3de3968722533528a4
-  size1 ::
-    Language.Fixpoint.Types.Visitor.Visitable t =>
-    t -> Language.Fixpoint.Types.Visitor.MInt
-  {- Arity: 2,
-     Strictness: <C(C(C(C(C(S(LS)))))),1*C1(C1(C1(C1(C1(U(A,1*U))))))><L,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ @ t
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   (t1 :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ Language.Fixpoint.Types.Visitor.MInt
-                          @ ()
-                          Language.Fixpoint.Types.Visitor.$fMonoidMInt
-                          Language.Fixpoint.Types.Visitor.size2
-                          GHC.Tuple.()
-                          t1)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <Language.Fixpoint.Types.Visitor.MInt>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <t>_N)
-                         Language.Fixpoint.Types.Visitor.$fMonoidMInt1
-                           `cast`
-                         (Sym (Language.Fixpoint.Types.Visitor.N:MInt[0])))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t,
-                             Language.Fixpoint.Types.Visitor.MInt)>_R) of wild { (,) ds1 y ->
-                 y }) -}
-e60940a1984f76424a4f82ab08c3e1e8
-  size2 ::
-    Language.Fixpoint.Types.Visitor.Visitor
-      Language.Fixpoint.Types.Visitor.MInt ()
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ Language.Fixpoint.Types.Visitor.MInt
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   (Language.Fixpoint.Types.Visitor.$fSymConstsExpr3 @ ())
-                   Language.Fixpoint.Types.Visitor.size3
-                     `cast`
-                   (<()>_R
-                    ->_R <Language.Fixpoint.Types.Refinements.Expr>_R
-                    ->_R Sym (Language.Fixpoint.Types.Visitor.N:MInt[0]))) -}
-23a120d9952b4c634df4bc549485abcb
-  size3 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> GHC.Integer.Type.Integer
-  {- Arity: 2, HasNoCafRefs, Strictness: <L,A><L,A>,
-     Unfolding: InlineRule (2, True, True)
-                (\ (ds :: ()) (ds1 :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 Language.Fixpoint.Types.Visitor.lamSize4) -}
-b393e58e10c00b233928107eccbc8744
-  stripCasts ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs,
-     Unfolding: (\ (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ((Language.Fixpoint.Types.Visitor.visitExpr
-                          @ [GHC.Prim.Any]
-                          @ ()
-                          (GHC.Base.$fMonoid[] @ GHC.Prim.Any)
-                          Language.Fixpoint.Types.Visitor.stripCasts1
-                          GHC.Tuple.()
-                          eta)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <[GHC.Prim.Any]>_N
-                            <Data.Functor.Identity.Identity>_R
-                            <Language.Fixpoint.Types.Refinements.Expr>_N)
-                         (GHC.Types.[] @ GHC.Prim.Any))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(Language.Fixpoint.Types.Refinements.Expr,
-                             [GHC.Prim.Any])>_R) of wild { (,) x ds1 ->
-                 x }) -}
-eeab738715e0a6e025b3d35c9ee0c2c2
-  stripCasts1 ::
-    Language.Fixpoint.Types.Visitor.Visitor [GHC.Prim.Any] ()
-  {- HasNoCafRefs,
-     Unfolding: (Language.Fixpoint.Types.Visitor.Visitor
-                   @ [GHC.Prim.Any]
-                   @ ()
-                   (GHC.Base.const @ () @ Language.Fixpoint.Types.Refinements.Expr)
-                   Language.Fixpoint.Types.Visitor.stripCasts2
-                   Language.Fixpoint.Types.Visitor.mapExpr1) -}
-19fc7fe5eac1479851ee222efedec15b
-  stripCasts2 ::
-    ()
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: ())
-                   (eta :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 Language.Fixpoint.Types.Visitor.stripCasts3 eta) -}
-f73de4e0d9d452ec1dee1cac736f528d
-  stripCasts3 ::
-    Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Types.Refinements.Expr) ->
-                 case ds of wild {
-                   DEFAULT -> wild
-                   Language.Fixpoint.Types.Refinements.ECst e ds1 -> e }) -}
-2e358b05fee68f20d2f82c6e9bac564f
-  trans ::
-    (Language.Fixpoint.Types.Visitor.Visitable t, GHC.Base.Monoid a) =>
-    Language.Fixpoint.Types.Visitor.Visitor a ctx -> ctx -> a -> t -> t
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <C(C(C(C(C(S(SL)))))),1*C1(C1(C1(C1(C1(U(1*U,A))))))><L,U(U,U,U)><L,U><L,U><L,A><L,U>,
-     Unfolding: InlineRule (6, True, False)
-                (\ @ t
-                   @ a
-                   @ ctx
-                   ($dVisitable :: Language.Fixpoint.Types.Visitor.Visitable t)
-                   ($dMonoid :: GHC.Base.Monoid a)
-                   (v :: Language.Fixpoint.Types.Visitor.Visitor a ctx)
-                   (c :: ctx)
-                   (ds :: a)
-                   (z :: t) ->
-                 case (($dVisitable
-                          `cast`
-                        (Language.Fixpoint.Types.Visitor.N:Visitable[0] <t>_N)
-                          @ a
-                          @ ctx
-                          $dMonoid
-                          v
-                          c
-                          z)
-                         `cast`
-                       (Control.Monad.Trans.State.Strict.N:StateT[0]
-                            <a>_N <Data.Functor.Identity.Identity>_R <t>_N)
-                         (GHC.Base.mempty @ a $dMonoid))
-                        `cast`
-                      (Data.Functor.Identity.N:Identity[0]
-                           <(t, a)>_R) of wild { (,) x ds1 ->
-                 x }) -}
-dd72d11302601173cb1e870ddbe4fffb
-  txExpr ::
-    Language.Fixpoint.Types.Visitor.Visitor acc ctx
-    -> ctx
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Refinements.Expr
-  RecSel Left Language.Fixpoint.Types.Visitor.Visitor
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(LSL),1*U(A,1*U,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ @ acc
-                   @ ctx
-                   (ds :: Language.Fixpoint.Types.Visitor.Visitor acc ctx) ->
-                 case ds of wild { Language.Fixpoint.Types.Visitor.Visitor ds1 ds2 ds3 ->
-                 ds2 }) -}
-cd46f15518f94a2d94677233a25f2ee9
-  visitExpr ::
-    GHC.Base.Monoid a =>
-    Language.Fixpoint.Types.Visitor.Visitor a ctx
-    -> ctx
-    -> Language.Fixpoint.Types.Refinements.Expr
-    -> Language.Fixpoint.Types.Visitor.VisitM
-         a Language.Fixpoint.Types.Refinements.Expr
-  {- Arity: 4, HasNoCafRefs,
-     Strictness: <L,1*U(A,1*U,A)><L,U(C(C1(U)),C(C1(U)),C(C1(U)))><L,U><L,U> -}
-instance GHC.Base.Monoid [Language.Fixpoint.Types.Visitor.MInt]
-  = Language.Fixpoint.Types.Visitor.$fMonoidMInt
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsExpr
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsGInfo
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsReft
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsSimpC
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsSizedEnv
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsSortedReft
-instance Language.Fixpoint.Types.Visitor.SymConsts [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Visitor.$fSymConstsSubC
-instance Language.Fixpoint.Types.Visitor.Visitable [(,)]
-  = Language.Fixpoint.Types.Visitor.$fVisitable(,)
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Refinements.Expr]
-  = Language.Fixpoint.Types.Visitor.$fVisitableExpr
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Constraints.GInfo]
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Refinements.Reft]
-  = Language.Fixpoint.Types.Visitor.$fVisitableReft
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Constraints.SimpC]
-  = Language.Fixpoint.Types.Visitor.$fVisitableSimpC
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Environments.SizedEnv]
-  = Language.Fixpoint.Types.Visitor.$fVisitableSizedEnv
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Refinements.SortedReft]
-  = Language.Fixpoint.Types.Visitor.$fVisitableSortedReft
-instance Language.Fixpoint.Types.Visitor.Visitable [Language.Fixpoint.Types.Constraints.SubC]
-  = Language.Fixpoint.Types.Visitor.$fVisitableSubC
-"SPEC/Language.Fixpoint.Types.Visitor $fApplicativeStateT @ Identity _" [ALWAYS] forall @ s
-                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                      Data.Functor.Identity.Identity)
-                                                                                        ($dFunctor :: GHC.Base.Functor
-                                                                                                        Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT @ Data.Functor.Identity.Identity
-                                                       @ s
-                                                       $dFunctor
-                                                       $dMonad
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT
-      @ s
-"SPEC/Language.Fixpoint.Types.Visitor $fApplicativeStateT_$c<*> @ Identity _" [ALWAYS] forall @ s
-                                                                                              ($dMonad :: GHC.Base.Monad
-                                                                                                            Data.Functor.Identity.Identity)
-                                                                                              ($dFunctor :: GHC.Base.Functor
-                                                                                                              Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$c<*> @ Data.Functor.Identity.Identity
-                                                             @ s
-                                                             $dFunctor
-                                                             $dMonad
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$c<*>
-      @ s
-"SPEC/Language.Fixpoint.Types.Visitor $fApplicativeStateT_$cp1Applicative @ Identity _" [ALWAYS] forall @ s
-                                                                                                        ($dMonad :: GHC.Base.Monad
-                                                                                                                      Data.Functor.Identity.Identity)
-                                                                                                        ($dFunctor :: GHC.Base.Functor
-                                                                                                                        Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cp1Applicative @ Data.Functor.Identity.Identity
-                                                                       @ s
-                                                                       $dFunctor
-                                                                       $dMonad
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$cp1Applicative
-      @ s
-"SPEC/Language.Fixpoint.Types.Visitor $fApplicativeStateT_$cpure @ Identity _" [ALWAYS] forall @ s
-                                                                                               ($dMonad :: GHC.Base.Monad
-                                                                                                             Data.Functor.Identity.Identity)
-                                                                                               ($dFunctor :: GHC.Base.Functor
-                                                                                                               Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fApplicativeStateT_$cpure @ Data.Functor.Identity.Identity
-                                                              @ s
-                                                              $dFunctor
-                                                              $dMonad
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fApplicativeStateT_$cpure
-      @ s
-"SPEC/Language.Fixpoint.Types.Visitor $fFunctorStateT @ Identity _" [ALWAYS] forall @ s
-                                                                                    ($dFunctor :: GHC.Base.Functor
-                                                                                                    Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT @ Data.Functor.Identity.Identity
-                                                   @ s
-                                                   $dFunctor
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fFunctorStateT
-      @ s
-"SPEC/Language.Fixpoint.Types.Visitor $fFunctorStateT_$cfmap @ Identity _" [ALWAYS] forall @ s
-                                                                                           ($dFunctor :: GHC.Base.Functor
-                                                                                                           Data.Functor.Identity.Identity)
-  Control.Monad.Trans.State.Strict.$fFunctorStateT_$cfmap @ Data.Functor.Identity.Identity
-                                                          @ s
-                                                          $dFunctor
-  = Language.Fixpoint.Types.Visitor.$fVisitableGInfo_$s$fFunctorStateT_$cfmap
-      @ s
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Files.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Files.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Files.dump-hi
+++ /dev/null
@@ -1,1494 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:36:24.714898 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Utils.Files 8002
-  interface hash: 6912a48195d4bec2cd5fafef7b92446f
-  ABI hash: 00ca7654ce931c19e6d232e8db43f586
-  export-list hash: fa819c1ab65a8419ad74769e75b8866f
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: 255dc1f2207ef3820ecfdf51aab3d0e2
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Utils.Files.copyFiles
-  Language.Fixpoint.Utils.Files.extFileName
-  Language.Fixpoint.Utils.Files.extFileNameR
-  Language.Fixpoint.Utils.Files.extModuleName
-  Language.Fixpoint.Utils.Files.getFileInDirs
-  Language.Fixpoint.Utils.Files.getFixpointPath
-  Language.Fixpoint.Utils.Files.getZ3LibPath
-  Language.Fixpoint.Utils.Files.isBinary
-  Language.Fixpoint.Utils.Files.isExtFile
-  Language.Fixpoint.Utils.Files.tempDirectory
-  Language.Fixpoint.Utils.Files.withExt
-  Language.Fixpoint.Utils.Files.Ext{Language.Fixpoint.Utils.Files.Annot Language.Fixpoint.Utils.Files.Auto Language.Fixpoint.Utils.Files.BinFq Language.Fixpoint.Utils.Files.BinSpec Language.Fixpoint.Utils.Files.Cache Language.Fixpoint.Utils.Files.Cgi Language.Fixpoint.Utils.Files.Cst Language.Fixpoint.Utils.Files.Dat Language.Fixpoint.Utils.Files.Dot Language.Fixpoint.Utils.Files.Fq Language.Fixpoint.Utils.Files.Hquals Language.Fixpoint.Utils.Files.Hs Language.Fixpoint.Utils.Files.HsBoot Language.Fixpoint.Utils.Files.Html Language.Fixpoint.Utils.Files.Js Language.Fixpoint.Utils.Files.Json Language.Fixpoint.Utils.Files.LHs Language.Fixpoint.Utils.Files.Min Language.Fixpoint.Utils.Files.MinKVars Language.Fixpoint.Utils.Files.MinQuals Language.Fixpoint.Utils.Files.Mkdn Language.Fixpoint.Utils.Files.Out Language.Fixpoint.Utils.Files.PAss Language.Fixpoint.Utils.Files.Part Language.Fixpoint.Utils.Files.Pred Language.Fixpoint.Utils.Files.Result Language.Fixpoint.Utils.Files.Saved Language.Fixpoint.Utils.Files.Smt2 Language.Fixpoint.Utils.Files.Spec Language.Fixpoint.Utils.Files.Ts Language.Fixpoint.Utils.Files.Vim}
-module dependencies: Language.Fixpoint.Misc
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-import  -/  base-4.9.1.0:Control.Exception a76dd9666251322fe34dbcca3a0817bf
-import  -/  base-4.9.1.0:Control.Exception.Base 1e106916283856f4d9caeddab92cd861
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.Maybe d876c4ffe4b3c43755a781e8ad860d88
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:Data.Traversable 556020d7cf3c4a34a774600512918a37
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.IO eb504c57b397cf133849f8586f15dafb
-import  -/  base-4.9.1.0:GHC.IO.Exception 5064be4c355632a1d1c4f2322f56ac52
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  directory-1.3.0.0@directory-1.3.0.0:System.Directory 23e4e3d52f91c33b21f0667cd90aa164
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath a3d1d13ac7dd86705b5dfaf58a5c0b9e
-import  -/  filepath-1.4.1.1@filepath-1.4.1.1:System.FilePath.Posix 6a5e3ee74184fdcc5da09a368e7c40f5
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  errorstar e13c48ac8d5f72547a0d41e4f1437551
-07623a7462b8ee05bab2b75f947ad892
-  $fEqExt :: GHC.Classes.Eq Language.Fixpoint.Utils.Files.Ext
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Files.Ext
-                  Language.Fixpoint.Utils.Files.$fEqExt_$c==
-                  Language.Fixpoint.Utils.Files.$fEqExt_$c/= -}
-07623a7462b8ee05bab2b75f947ad892
-  $fEqExt_$c/= ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (a :: Language.Fixpoint.Utils.Files.Ext)
-                   (b :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fEqExt_$c== a b of wild {
-                   GHC.Types.False -> GHC.Types.True
-                   GHC.Types.True -> GHC.Types.False }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fEqExt_$c== ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Utils.Files.Ext)
-                   (ds1 :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case ds of wild {
-                   DEFAULT
-                   -> GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.==#
-                           (GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext wild)
-                           (GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext ds1))
-                   Language.Fixpoint.Utils.Files.Part a1
-                   -> case ds1 of wild1 {
-                        DEFAULT
-                        -> case GHC.Prim.dataToTag#
-                                  @ Language.Fixpoint.Utils.Files.Ext
-                                  wild1 of wild2 {
-                             DEFAULT -> GHC.Types.False 21# -> GHC.Types.True }
-                        Language.Fixpoint.Utils.Files.Part b1 -> GHC.Classes.eqInt a1 b1 }
-                   Language.Fixpoint.Utils.Files.Auto a1
-                   -> case ds1 of wild1 {
-                        DEFAULT
-                        -> case GHC.Prim.dataToTag#
-                                  @ Language.Fixpoint.Utils.Files.Ext
-                                  wild1 of wild2 {
-                             DEFAULT -> GHC.Types.False 22# -> GHC.Types.True }
-                        Language.Fixpoint.Utils.Files.Auto b1
-                        -> GHC.Classes.eqInt a1 b1 } }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt :: GHC.Classes.Ord Language.Fixpoint.Utils.Files.Ext
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Files.Ext
-                  Language.Fixpoint.Utils.Files.$fEqExt
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$c<
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$c<=
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$c>
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$c>=
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$cmax
-                  Language.Fixpoint.Utils.Files.$fOrdExt_$cmin -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$c< ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.LT -> GHC.Types.True }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$c<= ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.GT -> GHC.Types.False }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$c> ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> GHC.Types.False GHC.Types.GT -> GHC.Types.True }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$c>= ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Bool
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> GHC.Types.True GHC.Types.LT -> GHC.Types.False }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$ccompare ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Types.Ordering
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,1*U>,
-     Unfolding: (\ (a :: Language.Fixpoint.Utils.Files.Ext)
-                   (b :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case a of wild {
-                   DEFAULT
-                   -> let {
-                        a# :: GHC.Prim.Int#
-                        = GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext wild
-                      } in
-                      let {
-                        b# :: GHC.Prim.Int#
-                        = GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext b
-                      } in
-                      case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<# a# b#) of wild1 {
-                        GHC.Types.False
-                        -> case GHC.Prim.tagToEnum#
-                                  @ GHC.Types.Bool
-                                  (GHC.Prim.==# a# b#) of wild2 {
-                             GHC.Types.False -> GHC.Types.GT GHC.Types.True -> GHC.Types.EQ }
-                        GHC.Types.True -> GHC.Types.LT }
-                   Language.Fixpoint.Utils.Files.Part a1
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<#
-                                (GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext b)
-                                21#) of wild1 {
-                        GHC.Types.False
-                        -> case b of wild2 {
-                             DEFAULT -> GHC.Types.LT
-                             Language.Fixpoint.Utils.Files.Part b1
-                             -> GHC.Classes.compareInt a1 b1 }
-                        GHC.Types.True -> GHC.Types.GT }
-                   Language.Fixpoint.Utils.Files.Auto a1
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.<#
-                                (GHC.Prim.dataToTag# @ Language.Fixpoint.Utils.Files.Ext b)
-                                22#) of wild1 {
-                        GHC.Types.False
-                        -> case b of wild2 {
-                             DEFAULT -> GHC.Types.LT
-                             Language.Fixpoint.Utils.Files.Auto b1
-                             -> GHC.Classes.compareInt a1 b1 }
-                        GHC.Types.True -> GHC.Types.GT } }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$cmax ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> y GHC.Types.GT -> x }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fOrdExt_$cmin ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext
-    -> Language.Fixpoint.Utils.Files.Ext
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,U><S,U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Files.Ext)
-                   (y :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Language.Fixpoint.Utils.Files.$fOrdExt_$ccompare x y of wild {
-                   DEFAULT -> x GHC.Types.GT -> y }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fShowExt :: GHC.Show.Show Language.Fixpoint.Utils.Files.Ext
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Files.Ext
-                  Language.Fixpoint.Utils.Files.$fShowExt_$cshowsPrec
-                  Language.Fixpoint.Utils.Files.$fShowExt_$cshow
-                  Language.Fixpoint.Utils.Files.$fShowExt_$cshowList -}
-07623a7462b8ee05bab2b75f947ad892
-  $fShowExt1 :: Language.Fixpoint.Utils.Files.Ext -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (Language.Fixpoint.Utils.Files.$fShowExt_$cshowsPrec
-                   Language.Fixpoint.Utils.Files.$fShowExt2) -}
-17833082426a52656f095894b7faf4f2
-  $fShowExt10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Pred"#) -}
-458a8550675a0f2718ef876c3b1acb43
-  $fShowExt11 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Auto "#) -}
-9c29e238aadd57d82369a983907f7e02
-  $fShowExt12 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Part "#) -}
-470a2c3b7af2a995a1a3eba6101d2d2b
-  $fShowExt13 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Dot"#) -}
-12fa18c25c94b35b2e580c8e8e7fb873
-  $fShowExt14 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Cache"#) -}
-727c51c1b109fb3d7ba0bbacc2843b5f
-  $fShowExt15 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Saved"#) -}
-342ccbe926f1ae011fc5351443a4092c
-  $fShowExt16 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Json"#) -}
-9bd64b244f549105ba468117b5360057
-  $fShowExt17 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Mkdn"#) -}
-c72f1656166914675ec00e4f73ec99bd
-  $fShowExt18 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Cst"#) -}
-fc4910ddda680c06fe154229370087c5
-  $fShowExt19 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Result"#) -}
-0d51911369f51bbf853b23a1292b94de
-  $fShowExt2 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 0#) -}
-5f951db444b84da1e266d5c99e335eb6
-  $fShowExt20 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Hquals"#) -}
-8899921a93da6a5a589fe7169158a16a
-  $fShowExt21 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BinSpec"#) -}
-911eec2f2233dc384f6c6ed3f540cd08
-  $fShowExt22 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Spec"#) -}
-e2fdf3544d7cec40eaee1ab9483ec92f
-  $fShowExt23 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Ts"#) -}
-eb7f901c784ad49f3dc927ff69901d47
-  $fShowExt24 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Js"#) -}
-3e976f8d55f091b4106dbe8c26393c3a
-  $fShowExt25 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "LHs"#) -}
-52a4c47d87826c2e00c7b6780bc2a281
-  $fShowExt26 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "HsBoot"#) -}
-ff61414177b1e257a0f51207754f7fbe
-  $fShowExt27 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Hs"#) -}
-2859f50460c21b7ec1509bbfe7ce92dd
-  $fShowExt28 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Vim"#) -}
-d1a5c434a6a61c56640a7ff9dfd05a69
-  $fShowExt29 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Annot"#) -}
-bb95473ab170c9521fc6da2876ba681b
-  $fShowExt3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "MinKVars"#) -}
-85813ff2f2a058f7044be691254a6c10
-  $fShowExt30 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Html"#) -}
-f7ba37cbc300c9c4eed10bd464daf63f
-  $fShowExt31 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Out"#) -}
-812b201ed00886093d9497e257bcaf63
-  $fShowExt32 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Fq"#) -}
-f506285a8f2191b115543dcbd13f5d67
-  $fShowExt33 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Cgi"#) -}
-74fd58bd6322d90691421c22641900aa
-  $fShowExt4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "MinQuals"#) -}
-a70358b3a9c9b5f8b3b160fd44c78fc0
-  $fShowExt5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Min"#) -}
-86bfd110513616e6cbcffbbf3cf3eed8
-  $fShowExt6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Smt2"#) -}
-bd3f9c43b8751e2ade30da683d9eda10
-  $fShowExt7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "BinFq"#) -}
-b3b16a0291915e1f5b92eb09f8e16595
-  $fShowExt8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Dat"#) -}
-8cfb1767dbca5709389478db3bb4be23
-  $fShowExt9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "PAss"#) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fShowExt_$cshow ::
-    Language.Fixpoint.Utils.Files.Ext -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (x :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case x of wild {
-                   Language.Fixpoint.Utils.Files.Cgi
-                   -> Language.Fixpoint.Utils.Files.$fShowExt33
-                   Language.Fixpoint.Utils.Files.Fq
-                   -> Language.Fixpoint.Utils.Files.$fShowExt32
-                   Language.Fixpoint.Utils.Files.Out
-                   -> Language.Fixpoint.Utils.Files.$fShowExt31
-                   Language.Fixpoint.Utils.Files.Html
-                   -> Language.Fixpoint.Utils.Files.$fShowExt30
-                   Language.Fixpoint.Utils.Files.Annot
-                   -> Language.Fixpoint.Utils.Files.$fShowExt29
-                   Language.Fixpoint.Utils.Files.Vim
-                   -> Language.Fixpoint.Utils.Files.$fShowExt28
-                   Language.Fixpoint.Utils.Files.Hs
-                   -> Language.Fixpoint.Utils.Files.$fShowExt27
-                   Language.Fixpoint.Utils.Files.HsBoot
-                   -> Language.Fixpoint.Utils.Files.$fShowExt26
-                   Language.Fixpoint.Utils.Files.LHs
-                   -> Language.Fixpoint.Utils.Files.$fShowExt25
-                   Language.Fixpoint.Utils.Files.Js
-                   -> Language.Fixpoint.Utils.Files.$fShowExt24
-                   Language.Fixpoint.Utils.Files.Ts
-                   -> Language.Fixpoint.Utils.Files.$fShowExt23
-                   Language.Fixpoint.Utils.Files.Spec
-                   -> Language.Fixpoint.Utils.Files.$fShowExt22
-                   Language.Fixpoint.Utils.Files.BinSpec
-                   -> Language.Fixpoint.Utils.Files.$fShowExt21
-                   Language.Fixpoint.Utils.Files.Hquals
-                   -> Language.Fixpoint.Utils.Files.$fShowExt20
-                   Language.Fixpoint.Utils.Files.Result
-                   -> Language.Fixpoint.Utils.Files.$fShowExt19
-                   Language.Fixpoint.Utils.Files.Cst
-                   -> Language.Fixpoint.Utils.Files.$fShowExt18
-                   Language.Fixpoint.Utils.Files.Mkdn
-                   -> Language.Fixpoint.Utils.Files.$fShowExt17
-                   Language.Fixpoint.Utils.Files.Json
-                   -> Language.Fixpoint.Utils.Files.$fShowExt16
-                   Language.Fixpoint.Utils.Files.Saved
-                   -> Language.Fixpoint.Utils.Files.$fShowExt15
-                   Language.Fixpoint.Utils.Files.Cache
-                   -> Language.Fixpoint.Utils.Files.$fShowExt14
-                   Language.Fixpoint.Utils.Files.Dot
-                   -> Language.Fixpoint.Utils.Files.$fShowExt13
-                   Language.Fixpoint.Utils.Files.Part b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Utils.Files.$fShowExt12
-                        (case b1 of ww2 { GHC.Types.I# ww3 ->
-                         case GHC.Show.$wshowSignedInt
-                                11#
-                                ww3
-                                (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                         GHC.Types.: @ GHC.Types.Char ww5 ww6 } })
-                   Language.Fixpoint.Utils.Files.Auto b1
-                   -> GHC.Base.++
-                        @ GHC.Types.Char
-                        Language.Fixpoint.Utils.Files.$fShowExt11
-                        (case b1 of ww2 { GHC.Types.I# ww3 ->
-                         case GHC.Show.$wshowSignedInt
-                                11#
-                                ww3
-                                (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                         GHC.Types.: @ GHC.Types.Char ww5 ww6 } })
-                   Language.Fixpoint.Utils.Files.Pred
-                   -> Language.Fixpoint.Utils.Files.$fShowExt10
-                   Language.Fixpoint.Utils.Files.PAss
-                   -> Language.Fixpoint.Utils.Files.$fShowExt9
-                   Language.Fixpoint.Utils.Files.Dat
-                   -> Language.Fixpoint.Utils.Files.$fShowExt8
-                   Language.Fixpoint.Utils.Files.BinFq
-                   -> Language.Fixpoint.Utils.Files.$fShowExt7
-                   Language.Fixpoint.Utils.Files.Smt2
-                   -> Language.Fixpoint.Utils.Files.$fShowExt6
-                   Language.Fixpoint.Utils.Files.Min
-                   -> Language.Fixpoint.Utils.Files.$fShowExt5
-                   Language.Fixpoint.Utils.Files.MinQuals
-                   -> Language.Fixpoint.Utils.Files.$fShowExt4
-                   Language.Fixpoint.Utils.Files.MinKVars
-                   -> Language.Fixpoint.Utils.Files.$fShowExt3 }) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fShowExt_$cshowList ::
-    [Language.Fixpoint.Utils.Files.Ext] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Utils.Files.Ext
-                   Language.Fixpoint.Utils.Files.$fShowExt1) -}
-07623a7462b8ee05bab2b75f947ad892
-  $fShowExt_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.Show.ShowS
-  {- Arity: 3, Strictness: <L,1*U(U)><S,1*U><L,U> -}
-70b990438bd9bcdf4f941b43f7720a55
-  $tc'Annot :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6594056033735548370##
-                   17160452557578200188##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Annot1) -}
-5af1cba24264c3db336a47760183cae5
-  $tc'Annot1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Annot"#) -}
-461b5e91185b1672fa0221cc19518a39
-  $tc'Auto :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   382448704333353792##
-                   4180264978635816887##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Auto1) -}
-c706d405b2856bd571ffa05e2d85c8e7
-  $tc'Auto1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Auto"#) -}
-a85a8049acf5c12f0d2966369dcd62b5
-  $tc'BinFq :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14064551371382365350##
-                   2211667678304169371##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'BinFq1) -}
-448c5b33a3905659c884d605349b07a5
-  $tc'BinFq1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BinFq"#) -}
-46609e7cecad959c2b0321f15a443e16
-  $tc'BinSpec :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3348341754297411409##
-                   3127837493167763073##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'BinSpec1) -}
-02b4789e5533d55645626fba2e656d19
-  $tc'BinSpec1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'BinSpec"#) -}
-eb64d7434f073d64cb72f66fabbd41a5
-  $tc'Cache :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10558418572189227684##
-                   12046815524400097124##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Cache1) -}
-ffb21d972ca2e2b4a0b25504bc63b270
-  $tc'Cache1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cache"#) -}
-aab6aadb12e86282ef1ef003604161f3
-  $tc'Cgi :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5385559981829720263##
-                   11898581292623151957##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Cgi1) -}
-2f509913b4c450e8f2a4f7dc039a8982
-  $tc'Cgi1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cgi"#) -}
-bb0ef359fd50ca6f29c40236108c4df5
-  $tc'Cst :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8227082798329126700##
-                   18321322627345435993##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Cst1) -}
-7fea184d9398315c549a6e0ba63ac41f
-  $tc'Cst1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Cst"#) -}
-1fd3d8d932ab5d67a937f8387ef29b49
-  $tc'Dat :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3550322518978955237##
-                   13137246982658747724##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Dat1) -}
-5f98a5ac6ceea95eec37f29c7c4f35f8
-  $tc'Dat1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Dat"#) -}
-eee3489bf0cadc9d0e479be1fcdc732d
-  $tc'Dot :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   10516538856969905552##
-                   14632972307133312008##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Dot1) -}
-a9f366e2a7c5f2e04f652b67df750b38
-  $tc'Dot1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Dot"#) -}
-103bb01f499e77d8cf5abaf3652821d0
-  $tc'Fq :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1875268967375953630##
-                   6624948878550106784##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Fq1) -}
-bc435c91fcd1a65d613904fc356ccc00
-  $tc'Fq1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Fq"#) -}
-35d892e3ad04eff295a5f77ebed5d9d6
-  $tc'Hquals :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3886471384223604099##
-                   10274023136770858578##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Hquals1) -}
-021ce1bec8266897a3cd3b3cd682d154
-  $tc'Hquals1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Hquals"#) -}
-0175c2dfe45135bce7536760641d8a0d
-  $tc'Hs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9537626868926691576##
-                   11484586451743771977##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Hs1) -}
-0dfe72ae1a046f599d98c8cef1c8933b
-  $tc'Hs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Hs"#) -}
-ffeea3410183bd2ffac75043230a58d2
-  $tc'HsBoot :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   11199312350004107791##
-                   195592308318917403##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'HsBoot1) -}
-80e754795ff3e7f659989470817ba5ba
-  $tc'HsBoot1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'HsBoot"#) -}
-e5fd6dbcbc66df359c0a3495fcdecd34
-  $tc'Html :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   12572128421219584112##
-                   15582723865275732041##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Html1) -}
-835bbdad6b9bdc9fd2d1313aeb42edf4
-  $tc'Html1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Html"#) -}
-ea44afb116eeafd84768685a9536462f
-  $tc'Js :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   2229286080657049355##
-                   13683234701513991987##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Js1) -}
-378796f0af8dcf30160997db97eb4db5
-  $tc'Js1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Js"#) -}
-5339121d4505a189ffabddfff32b2c32
-  $tc'Json :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6716705763473454249##
-                   16778037565165887918##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Json1) -}
-811a1d4833c834578e0ae64ed9307285
-  $tc'Json1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Json"#) -}
-d884c7ac2ff8af668eaba1bfaf0076ca
-  $tc'LHs :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   1284112330362864445##
-                   2468509387669399677##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'LHs1) -}
-8146bfe8aaa57887bdeed15f4a275bb9
-  $tc'LHs1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'LHs"#) -}
-cf1b47870e5d4c8332c2289d4636b6fb
-  $tc'Min :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6324077831081617864##
-                   16554794313310534853##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Min1) -}
-0d9e72ae1518484029bf0af99e47143d
-  $tc'Min1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Min"#) -}
-605512c31ef5061b430ace667890e20e
-  $tc'MinKVars :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   9487492199385627886##
-                   2845658374146588112##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'MinKVars1) -}
-160712624ddbacad56fb64621aa75134
-  $tc'MinKVars1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'MinKVars"#) -}
-d9bc379f7948c048003579fabb004fcb
-  $tc'MinQuals :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   869563436402779166##
-                   4400339343903071627##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'MinQuals1) -}
-275ec78aa8862680f1c5be29b6b7ccf6
-  $tc'MinQuals1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'MinQuals"#) -}
-0e73b80c01e8316dc6a033f7fdb2e984
-  $tc'Mkdn :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   5998254961059878219##
-                   3366985876466327464##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Mkdn1) -}
-d32a66026ca019a1aacd83aa2549afce
-  $tc'Mkdn1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Mkdn"#) -}
-d13fd1ea9cb97a5a57e97bb492a0134b
-  $tc'Out :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15729382445310669841##
-                   7560663355801730757##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Out1) -}
-e40c844c68537bc8907d6264d38dc44c
-  $tc'Out1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Out"#) -}
-a32d7cf0943610cc63111a9d2e04bbbc
-  $tc'PAss :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   13041417132067549316##
-                   9179445869603493607##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'PAss1) -}
-1f629aaf1235c5ff1197114944abe336
-  $tc'PAss1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'PAss"#) -}
-da380ef0411894f05dca62088950ab19
-  $tc'Part :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14637098858868076909##
-                   15060367679693349065##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Part1) -}
-615bba07c4160aa4a6360907cc40d13d
-  $tc'Part1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Part"#) -}
-22afd8faaa821b63251e1eb8c1d1a896
-  $tc'Pred :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   8509037278595539104##
-                   9013258984922995302##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Pred1) -}
-298266a861f894111c39375ae6675d12
-  $tc'Pred1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Pred"#) -}
-4091d918a2743cdd7dbbbf584349950c
-  $tc'Result :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   14492112788693407099##
-                   13272346322265145301##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Result1) -}
-490034e42e4f04e6503639847842260e
-  $tc'Result1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Result"#) -}
-81eef82ed68f338d5e0c44b94ac32d7b
-  $tc'Saved :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   3091570095859245422##
-                   1022275572900189052##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Saved1) -}
-91e155910fa2daf5151d6964d9291d80
-  $tc'Saved1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Saved"#) -}
-64c0eb0095cae16957f7f0768b38d663
-  $tc'Smt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Smt2"#) -}
-62a30d9423f2b88515a61c8b79b8ab76
-  $tc'Smt2 :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17291865117418122126##
-                   14945569690118655381##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Smt1) -}
-88471237e576d99b9227b56fc2f6203a
-  $tc'Spec :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7314795872964425314##
-                   6034112348002004233##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Spec1) -}
-2298f9b39cfc13adf4aef73d9e1b141e
-  $tc'Spec1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Spec"#) -}
-e64dbd14d300b03db54e47d4040f56a2
-  $tc'Ts :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   4135578715141802963##
-                   18066081314731283317##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Ts1) -}
-351ad47b9d7fa9ce3d36543d6dfb1448
-  $tc'Ts1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Ts"#) -}
-7b813964274476a55ce731c3b44dee7f
-  $tc'Vim :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   15975288441538043332##
-                   1228165810792248686##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tc'Vim1) -}
-75c1c009c19c172618a07072070ecd72
-  $tc'Vim1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Vim"#) -}
-58ae2942a50b05110dd90619e77ec8ba
-  $tcExt :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   17344154457723712591##
-                   16933617126355765525##
-                   Language.Fixpoint.Utils.Files.$trModule
-                   Language.Fixpoint.Utils.Files.$tcExt1) -}
-cbc593840173d60e617dbda7b9ec1404
-  $tcExt1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Ext"#) -}
-75ebe81da62120067b440769dd35fdd6
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Utils.Files.$trModule2
-                   Language.Fixpoint.Utils.Files.$trModule1) -}
-d33cb8d34e25e86d54a2dc0940274ebf
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Language.Fixpoint.Utils.Files"#) -}
-0284be52b03cb9d8802a6c25d9166f7e
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-07623a7462b8ee05bab2b75f947ad892
-  data Ext
-    = Cgi
-    | Fq
-    | Out
-    | Html
-    | Annot
-    | Vim
-    | Hs
-    | HsBoot
-    | LHs
-    | Js
-    | Ts
-    | Spec
-    | BinSpec
-    | Hquals
-    | Result
-    | Cst
-    | Mkdn
-    | Json
-    | Saved
-    | Cache
-    | Dot
-    | Part GHC.Types.Int
-    | Auto GHC.Types.Int
-    | Pred
-    | PAss
-    | Dat
-    | BinFq
-    | Smt2
-    | Min
-    | MinQuals
-    | MinKVars
-56973da0edfcb2611485503e015b1bf8
-  copyFiles ::
-    [GHC.IO.FilePath] -> GHC.IO.FilePath -> GHC.Types.IO ()
-  {- Arity: 3, Strictness: <S,1*U><L,U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Files.copyFiles1
-                  `cast`
-                (<[GHC.IO.FilePath]>_R
-                 ->_R <GHC.IO.FilePath>_R
-                 ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-3a89c94b427b258f8253ea71fe87d312
-  copyFiles1 ::
-    [GHC.IO.FilePath]
-    -> GHC.IO.FilePath
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 3, Strictness: <S,1*U><L,U><S,U>,
-     Unfolding: (\ (srcs :: [GHC.IO.FilePath])
-                   (tgt :: GHC.IO.FilePath)
-                   (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.Prim.catch#
-                        @ ()
-                        @ GHC.Exception.SomeException
-                        (GHC.Magic.lazy
-                           @ (GHC.Types.IO ())
-                           (System.Posix.Files.removeLink1 tgt)
-                             `cast`
-                           (Sym (GHC.Types.N:IO[0] <()>_R)))
-                          `cast`
-                        (GHC.Types.N:IO[0] <()>_R)
-                        Language.Fixpoint.Utils.Files.copyFiles2
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 letrec {
-                   go1 :: [GHC.IO.FilePath]
-                          -> GHC.Prim.State# GHC.Prim.RealWorld
-                          -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 2, Strictness: <S,1*U><S,U> -}
-                   = \ (ds :: [GHC.IO.FilePath])
-                       (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                     case ds of wild {
-                       [] -> (# eta, GHC.Tuple.() #)
-                       : y ys
-                       -> case GHC.IO.Handle.FD.openFile1
-                                 y
-                                 GHC.IO.IOMode.ReadMode
-                                 eta of ds2 { (#,#) ipv2 ipv3 ->
-                          case GHC.IO.Handle.Text.hGetContents1
-                                 ipv3
-                                 ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                          case System.IO.appendFile1
-                                 tgt
-                                 ipv5
-                                 ipv4 of ds4 { (#,#) ipv6 ipv7 ->
-                          go1 ys ipv6 } } } }
-                 } in
-                 go1 srcs ipv }) -}
-c7ccdadaee9024db01a5df3145728e70
-  copyFiles2 ::
-    GHC.Exception.SomeException
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2,
-     Unfolding: (\ (e1 :: GHC.Exception.SomeException)[OneShot]
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case e1 of wild { GHC.Exception.SomeException e100 $dException1 e2 ->
-                 case (GHC.Exception.$p1Exception @ e100 $dException1)
-                        `cast`
-                      (Data.Typeable.Internal.N:Typeable[0] <*>_N <e100>_N)
-                        (GHC.Prim.proxy#
-                           @ *
-                           @ e100) of wild1 { Data.Typeable.Internal.TypeRep dt dt1 ds2 ds3 ds4 ->
-                 case GHC.IO.Exception.$fExceptionIOException3 of wild2 { Data.Typeable.Internal.TypeRep dt2 dt3 ds5 ds6 ds7 ->
-                 case GHC.Prim.tagToEnum#
-                        @ GHC.Types.Bool
-                        (GHC.Prim.eqWord# dt dt2) of wild3 {
-                   GHC.Types.False
-                   -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ () wild eta
-                   GHC.Types.True
-                   -> case GHC.Prim.tagToEnum#
-                             @ GHC.Types.Bool
-                             (GHC.Prim.eqWord# dt1 dt3) of wild4 {
-                        GHC.Types.False
-                        -> GHC.Prim.raiseIO# @ GHC.Exception.SomeException @ () wild eta
-                        GHC.Types.True -> (# eta, GHC.Tuple.() #) } } } } }) -}
-06c632f2fccc040aa84e2dc062afc041
-  extFileName ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> GHC.IO.FilePath -> GHC.IO.FilePath
-  {- Arity: 2, Strictness: <S,1*U><L,U>,
-     Unfolding: (\ (e :: Language.Fixpoint.Utils.Files.Ext)
-                   (f :: GHC.IO.FilePath) ->
-                 System.FilePath.Posix.combine
-                   (Language.Fixpoint.Utils.Files.tempDirectory f)
-                   (System.FilePath.Posix.addExtension
-                      (System.FilePath.Posix.takeFileName f)
-                      (Language.Fixpoint.Utils.Files.extMap e))) -}
-0aadcf19387cf6565b237fbab3a81ff2
-  extFileName1 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".minkvars"#) -}
-38784c8ffeb2fbb9d5f371774a08e5d2
-  extFileName10 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".err"#) -}
-389e40f9aecf671420a674ef91604c6d
-  extFileName11 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".bak"#) -}
-e587c0893a44c88858da4b97831b2e19
-  extFileName12 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".json"#) -}
-832cb4db52d8f4f5cb27c373f17f5a9f
-  extFileName13 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".markdown"#) -}
-5310ea1fe6d61b1239d889f4dd2ad708
-  extFileName14 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".cst"#) -}
-ee9028733337d817c526e972894fb8e6
-  extFileName15 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".out"#) -}
-525a3ef997bd9fcaddb52ddf16bb0bc9
-  extFileName16 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".hquals"#) -}
-3b2fb27be92be1a20b8c4ae752d3334e
-  extFileName17 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".bspec"#) -}
-39e1b6ec60f139366b82408d215c2695
-  extFileName18 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".spec"#) -}
-8ace28b826824881bf3d2406daa76a79
-  extFileName19 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".ts"#) -}
-d5dcc89185883aeb6da5cbbc8bfb19b6
-  extFileName2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".minquals"#) -}
-cb7ca0a6b9af08cf73f8792685dd1442
-  extFileName20 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".js"#) -}
-72c5cb24f1c83cb616c75794396a86db
-  extFileName21 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".lhs"#) -}
-490288a848e99bcab638228562191612
-  extFileName22 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".hs-boot"#) -}
-e888971eaed1df2667e5745b85e6ec05
-  extFileName23 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".hs"#) -}
-fe0c5ae8e234a7ace974b15f58421e83
-  extFileName24 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".vim.annot"#) -}
-e842222330793798fdf929c8c9ca67e9
-  extFileName25 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".annot"#) -}
-b391d0178cd42927787f27c9fe481349
-  extFileName26 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".html"#) -}
-9493355171f54f6ad250958afbb87fa8
-  extFileName27 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".fqout"#) -}
-53aa0bbb3a22ff0a6409783c2a602e0a
-  extFileName28 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".fq"#) -}
-5ed5de49ec3cca5c2447dbac7381b171
-  extFileName29 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".cgi"#) -}
-7529f8bf1176a82ac5d2c4891ae8012c
-  extFileName3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".minfq"#) -}
-98aefb9f30adeec8bc5a1913924cabf5
-  extFileName4 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".smt2"#) -}
-e5813216e6eafbf105f766c9505b2c37
-  extFileName5 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".bfq"#) -}
-4a7ae4824731b8b972e8ea5f71f61609
-  extFileName6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".dat"#) -}
-422406f95cabf4e9214e1fa03db16771
-  extFileName7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".pass"#) -}
-c9dab26b72ec7947ad8bbe9d0bebcf2f
-  extFileName8 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".pred"#) -}
-0173940926dc5ac1afee4b21983d2fc8
-  extFileName9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# ".dot"#) -}
-49a70048a192cd16431cb1f1863a54b6
-  extFileNameR ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> GHC.IO.FilePath -> GHC.IO.FilePath
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ext :: Language.Fixpoint.Utils.Files.Ext) ->
-                 let {
-                   ds :: GHC.Base.String = Language.Fixpoint.Utils.Files.extMap ext
-                 } in
-                 \ (ds1 :: GHC.IO.FilePath) ->
-                 System.FilePath.Posix.addExtension ds1 ds) -}
-ad007f047dac01b93ae61bf15330c8f4
-  extMap :: Language.Fixpoint.Utils.Files.Ext -> GHC.IO.FilePath
-  {- Arity: 1, Strictness: <S,1*U>,
-     Unfolding: (\ (ds :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case ds of wild {
-                   Language.Fixpoint.Utils.Files.Cgi
-                   -> Language.Fixpoint.Utils.Files.extFileName29
-                   Language.Fixpoint.Utils.Files.Fq
-                   -> Language.Fixpoint.Utils.Files.extFileName28
-                   Language.Fixpoint.Utils.Files.Out
-                   -> Language.Fixpoint.Utils.Files.extFileName27
-                   Language.Fixpoint.Utils.Files.Html
-                   -> Language.Fixpoint.Utils.Files.extFileName26
-                   Language.Fixpoint.Utils.Files.Annot
-                   -> Language.Fixpoint.Utils.Files.extFileName25
-                   Language.Fixpoint.Utils.Files.Vim
-                   -> Language.Fixpoint.Utils.Files.extFileName24
-                   Language.Fixpoint.Utils.Files.Hs
-                   -> Language.Fixpoint.Utils.Files.extFileName23
-                   Language.Fixpoint.Utils.Files.HsBoot
-                   -> Language.Fixpoint.Utils.Files.extFileName22
-                   Language.Fixpoint.Utils.Files.LHs
-                   -> Language.Fixpoint.Utils.Files.extFileName21
-                   Language.Fixpoint.Utils.Files.Js
-                   -> Language.Fixpoint.Utils.Files.extFileName20
-                   Language.Fixpoint.Utils.Files.Ts
-                   -> Language.Fixpoint.Utils.Files.extFileName19
-                   Language.Fixpoint.Utils.Files.Spec
-                   -> Language.Fixpoint.Utils.Files.extFileName18
-                   Language.Fixpoint.Utils.Files.BinSpec
-                   -> Language.Fixpoint.Utils.Files.extFileName17
-                   Language.Fixpoint.Utils.Files.Hquals
-                   -> Language.Fixpoint.Utils.Files.extFileName16
-                   Language.Fixpoint.Utils.Files.Result
-                   -> Language.Fixpoint.Utils.Files.extFileName15
-                   Language.Fixpoint.Utils.Files.Cst
-                   -> Language.Fixpoint.Utils.Files.extFileName14
-                   Language.Fixpoint.Utils.Files.Mkdn
-                   -> Language.Fixpoint.Utils.Files.extFileName13
-                   Language.Fixpoint.Utils.Files.Json
-                   -> Language.Fixpoint.Utils.Files.extFileName12
-                   Language.Fixpoint.Utils.Files.Saved
-                   -> Language.Fixpoint.Utils.Files.extFileName11
-                   Language.Fixpoint.Utils.Files.Cache
-                   -> Language.Fixpoint.Utils.Files.extFileName10
-                   Language.Fixpoint.Utils.Files.Dot
-                   -> Language.Fixpoint.Utils.Files.extFileName9
-                   Language.Fixpoint.Utils.Files.Part n
-                   -> GHC.CString.unpackAppendCString#
-                        "."#
-                        (case n of ww2 { GHC.Types.I# ww3 ->
-                         case GHC.Show.$wshowSignedInt
-                                0#
-                                ww3
-                                (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                         GHC.Types.: @ GHC.Types.Char ww5 ww6 } })
-                   Language.Fixpoint.Utils.Files.Auto n
-                   -> GHC.CString.unpackAppendCString#
-                        ".auto."#
-                        (case n of ww2 { GHC.Types.I# ww3 ->
-                         case GHC.Show.$wshowSignedInt
-                                0#
-                                ww3
-                                (GHC.Types.[] @ GHC.Types.Char) of ww4 { (#,#) ww5 ww6 ->
-                         GHC.Types.: @ GHC.Types.Char ww5 ww6 } })
-                   Language.Fixpoint.Utils.Files.Pred
-                   -> Language.Fixpoint.Utils.Files.extFileName8
-                   Language.Fixpoint.Utils.Files.PAss
-                   -> Language.Fixpoint.Utils.Files.extFileName7
-                   Language.Fixpoint.Utils.Files.Dat
-                   -> Language.Fixpoint.Utils.Files.extFileName6
-                   Language.Fixpoint.Utils.Files.BinFq
-                   -> Language.Fixpoint.Utils.Files.extFileName5
-                   Language.Fixpoint.Utils.Files.Smt2
-                   -> Language.Fixpoint.Utils.Files.extFileName4
-                   Language.Fixpoint.Utils.Files.Min
-                   -> Language.Fixpoint.Utils.Files.extFileName3
-                   Language.Fixpoint.Utils.Files.MinQuals
-                   -> Language.Fixpoint.Utils.Files.extFileName2
-                   Language.Fixpoint.Utils.Files.MinKVars
-                   -> Language.Fixpoint.Utils.Files.extFileName1 }) -}
-f1d076092e2b76cddcc9aaa0e9574100
-  extModuleName ::
-    GHC.Base.String
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.IO.FilePath
-  {- Arity: 2, Strictness: <S,U><S,1*U>,
-     Unfolding: (\ (modName :: GHC.Base.String)
-                   (ext :: Language.Fixpoint.Utils.Files.Ext) ->
-                 case Data.OldList.words
-                        (GHC.Base.map
-                           @ GHC.Types.Char
-                           @ GHC.Types.Char
-                           Language.Fixpoint.Utils.Files.extModuleName2
-                           modName) of wild {
-                   [] -> Language.Fixpoint.Utils.Files.extModuleName1 modName
-                   : ipv ipv1
-                   -> System.FilePath.Posix.addExtension
-                        (Language.Fixpoint.Utils.Files.extModuleName_go wild)
-                        (Language.Fixpoint.Utils.Files.extMap ext) }) -}
-83f83ffd383f401d5a317bb84d706ff6
-  extModuleName1 :: GHC.Base.String -> GHC.IO.FilePath
-  {- Arity: 1, Strictness: <L,U>x -}
-1c52f61f8e84c6116642bebda4ee8e44
-  extModuleName2 :: GHC.Types.Char -> GHC.Types.Char
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(S),1*U(U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (c :: GHC.Types.Char) ->
-                 case c of wild { GHC.Types.C# x ->
-                 case x of wild1 {
-                   DEFAULT -> wild
-                   '.'# -> Language.Fixpoint.Utils.Files.extModuleName3 } }) -}
-b7b763505dcf2bec6a074aeb5d0508aa
-  extModuleName3 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# ' '#) -}
-cf52a6fdc5791c81d0fe96cc63bca1b5
-  extModuleName_go :: [GHC.IO.FilePath] -> GHC.IO.FilePath
-  {- Arity: 1, Strictness: <S,1*U> -}
-7c651bf40f8a95711c29aca7fb3e5e9d
-  getFileInDirs ::
-    GHC.IO.FilePath
-    -> [GHC.IO.FilePath]
-    -> GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Files.getFileInDirs1
-                  `cast`
-                (<GHC.IO.FilePath>_R
-                 ->_R <[GHC.IO.FilePath]>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <GHC.Base.Maybe [GHC.Types.Char]>_R)) -}
-eac024823c37673d1c291427f05ca5dc
-  getFileInDirs1 ::
-    GHC.IO.FilePath
-    -> [GHC.IO.FilePath]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.Base.Maybe [GHC.Types.Char] #)
-  {- Arity: 3, Strictness: <L,U><S,1*U><S,U>,
-     Unfolding: (\ (name :: GHC.IO.FilePath)
-                   (eta :: [GHC.IO.FilePath])
-                   (eta1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Utils.Files.getFileInDirs2
-                   @ [GHC.Types.Char]
-                   @ [GHC.Types.Char]
-                   (\ (x :: GHC.IO.FilePath)
-                      (eta2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    let {
-                      x1 :: GHC.IO.FilePath = System.FilePath.Posix.combine x name
-                    } in
-                    case (System.IO.Error.catchIOError
-                            @ GHC.Types.Bool
-                            (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                             case System.Posix.Files.getFileStatus1
-                                    x1
-                                    s of ds10 { (#,#) ipv ipv1 ->
-                             System.Directory.doesFileExist1 ipv1 ipv })
-                              `cast`
-                            (Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R))
-                            System.Directory.doesDirectoryExist1
-                              `cast`
-                            (<GHC.IO.Exception.IOError>_R
-                             ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)))
-                           `cast`
-                         (GHC.Types.N:IO[0] <GHC.Types.Bool>_R)
-                           eta2 of ds1 { (#,#) ipv ipv1 ->
-                    (# ipv,
-                       case ipv1 of wild {
-                         GHC.Types.False -> GHC.Types.[] @ GHC.IO.FilePath
-                         GHC.Types.True
-                         -> GHC.Types.:
-                              @ GHC.IO.FilePath
-                              x1
-                              (GHC.Types.[] @ GHC.IO.FilePath) } #) })
-                     `cast`
-                   (<GHC.IO.FilePath>_R
-                    ->_R Sym (GHC.Types.N:IO[0] <[GHC.IO.FilePath]>_R))
-                   eta
-                   eta1) -}
-111c9bbb2ed4eeb3bc0d5319deb10e56
-  getFileInDirs2 ::
-    (t -> GHC.Types.IO [a])
-    -> [t]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.Base.Maybe a #)
-  {- Arity: 3, HasNoCafRefs,
-     Strictness: <L,C(C1(U(U,1*U)))><S,1*U><S,U> -}
-81379db0574bb028e01479a57167e696
-  getFixpointPath :: GHC.Types.IO GHC.IO.FilePath
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Files.getFixpointPath1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <GHC.IO.FilePath>_R)) -}
-fba56ef6c248eaa14c794dc6c7b8253b
-  getFixpointPath1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.IO.FilePath #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: (\ (eta :: GHC.Prim.State#
-                             GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Utils.Files.getFixpointPath13
-                        Language.Fixpoint.Utils.Files.getFixpointPath3
-                        eta of ds { (#,#) ipv ipv1 ->
-                 (# ipv,
-                    case Language.Fixpoint.Utils.Files.getFixpointPath_go
-                           ipv1 of wild {
-                      GHC.Base.Nothing -> Language.Fixpoint.Utils.Files.getFixpointPath2
-                      GHC.Base.Just v -> v } #) }) -}
-ed5c9e6d687d6624f13eda17de10d559
-  getFixpointPath10 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.Base.Maybe GHC.IO.FilePath #)
-  {- Arity: 1,
-     Unfolding: (System.Directory.findExecutable1
-                   Language.Fixpoint.Utils.Files.getFixpointPath11) -}
-222df6963e0a9fe65939f4df13d1260c
-  getFixpointPath11 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "fixpoint.native.exe"#) -}
-728f09ec739f873d3b8593c62d03a368
-  getFixpointPath12 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.Base.Maybe GHC.IO.FilePath #)
-  {- Arity: 1,
-     Unfolding: (System.Directory.findExecutable1
-                   Language.Fixpoint.Utils.Files.getFixpointPath7) -}
-3995b666330214cb8076ebe8c92a557d
-  getFixpointPath13 ::
-    [GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)]
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          [GHC.Base.Maybe GHC.IO.FilePath] #)
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><S,U> -}
-3f4f83e516f7096715b011d2aa8e1536
-  getFixpointPath2 :: GHC.IO.FilePath
-  {- Strictness: x -}
-a6506c06846730bba86489c26ab413ee
-  getFixpointPath3 :: [GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)]
-  {- Unfolding: (GHC.Types.:
-                   @ (GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath))
-                   Language.Fixpoint.Utils.Files.getFixpointPath12
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <GHC.Base.Maybe GHC.IO.FilePath>_R))
-                   Language.Fixpoint.Utils.Files.getFixpointPath4) -}
-67ee2e82693d526e2b87d7d906dab00a
-  getFixpointPath4 :: [GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)]
-  {- Unfolding: (GHC.Types.:
-                   @ (GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath))
-                   Language.Fixpoint.Utils.Files.getFixpointPath10
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <GHC.Base.Maybe GHC.IO.FilePath>_R))
-                   Language.Fixpoint.Utils.Files.getFixpointPath5) -}
-30df9f40c4f4ea006048b9139579b85d
-  getFixpointPath5 :: [GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)]
-  {- Unfolding: (GHC.Types.:
-                   @ (GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath))
-                   Language.Fixpoint.Utils.Files.getFixpointPath6
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <GHC.Base.Maybe GHC.IO.FilePath>_R))
-                   (GHC.Types.[]
-                      @ (GHC.Types.IO (GHC.Base.Maybe GHC.IO.FilePath)))) -}
-3b0446dd3e07721c40dc53d918552c9d
-  getFixpointPath6 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          GHC.Base.Maybe GHC.IO.FilePath #)
-  {- Arity: 1,
-     Unfolding: (System.Directory.findFile3
-                   System.Directory.findFile2
-                     `cast`
-                   (<GHC.IO.FilePath>_R
-                    ->_R Sym (GHC.Types.N:IO[0] <GHC.Types.Bool>_R))
-                   Language.Fixpoint.Utils.Files.getFixpointPath8
-                   Language.Fixpoint.Utils.Files.getFixpointPath7) -}
-59312965bd2208e786b314a8435a39e4
-  getFixpointPath7 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "fixpoint.native"#) -}
-ba4e899c15f6bafb7a4851d260b15b98
-  getFixpointPath8 :: [GHC.IO.FilePath]
-  {- Unfolding: (GHC.Types.:
-                   @ GHC.IO.FilePath
-                   Language.Fixpoint.Utils.Files.getFixpointPath9
-                   (GHC.Types.[] @ GHC.IO.FilePath)) -}
-da570058c75b80ea65fd18b0547e8557
-  getFixpointPath9 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "external/fixpoint"#) -}
-e0ec1bd7f94caad6ddbc91e29e22473e
-  getFixpointPath_go ::
-    [GHC.Base.Maybe GHC.IO.FilePath] -> GHC.Base.Maybe GHC.IO.FilePath
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-1649eff0a4d9ee8afece65806830beb0
-  getZ3LibPath :: GHC.Types.IO GHC.IO.FilePath
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Files.getZ3LibPath1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <GHC.IO.FilePath>_R)) -}
-15bf4b9f443474320f4c53de16f53668
-  getZ3LibPath1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, GHC.IO.FilePath #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Utils.Files.getFixpointPath1
-                        eta of ds { (#,#) ipv ipv1 ->
-                 (# ipv, System.FilePath.Posix.dropFileName ipv1 #) }) -}
-d3015995629add210c6cf592f0434cf7
-  isBinary :: GHC.IO.FilePath -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <L,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: GHC.IO.FilePath) ->
-                 case System.FilePath.Posix.$wsplitExtension
-                        x of ww { (#,#) ww1 ww2 ->
-                 GHC.Base.eqString
-                   Language.Fixpoint.Utils.Files.extFileName5
-                   ww2 }) -}
-da9496247a258108493245420a422928
-  isExtFile ::
-    Language.Fixpoint.Utils.Files.Ext
-    -> GHC.IO.FilePath -> GHC.Types.Bool
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (ext :: Language.Fixpoint.Utils.Files.Ext) ->
-                 let {
-                   f :: GHC.IO.FilePath = Language.Fixpoint.Utils.Files.extMap ext
-                 } in
-                 \ (x :: GHC.IO.FilePath) ->
-                 case System.FilePath.Posix.$wsplitExtension
-                        x of ww { (#,#) ww1 ww2 ->
-                 GHC.Base.eqString f ww2 }) -}
-6577e27495d3326704c7e95f9babf2de
-  tempDirectory :: GHC.IO.FilePath -> GHC.IO.FilePath
-  {- Arity: 1, Strictness: <L,1*U>,
-     Unfolding: (\ (f :: GHC.IO.FilePath) ->
-                 let {
-                   dir :: GHC.IO.FilePath
-                   = case System.FilePath.Posix.$wsplitFileName_
-                            f of ww { (#,#) ww1 ww2 ->
-                     case ww1 of wild1 {
-                       [] -> Language.Fixpoint.Utils.Files.tempDirectory1
-                       : ds1 ds2
-                       -> System.FilePath.Posix.dropTrailingPathSeparator wild1 } }
-                 } in
-                 case Data.OldList.isSuffixOf
-                        @ GHC.Types.Char
-                        GHC.Classes.$fEqChar
-                        Language.Fixpoint.Utils.Files.tmpDirName
-                        dir of wild {
-                   GHC.Types.False
-                   -> System.FilePath.Posix.combine
-                        dir
-                        Language.Fixpoint.Utils.Files.tmpDirName
-                   GHC.Types.True -> dir }) -}
-51536fbad4be71312b9c49b27d7739ee
-  tempDirectory1 :: GHC.IO.FilePath
-  {- Unfolding: (System.FilePath.Posix.dropTrailingPathSeparator
-                   System.FilePath.Posix.dropFileName1) -}
-229ff0a0bcd768e8dba3b5261cce6cbd
-  tmpDirName :: GHC.IO.FilePath
-  {- Unfolding: (GHC.CString.unpackCString# ".liquid"#) -}
-bdeff51add08587478588b4a57cb51a0
-  withExt ::
-    GHC.IO.FilePath
-    -> Language.Fixpoint.Utils.Files.Ext -> GHC.IO.FilePath
-  {- Arity: 2, Strictness: <L,U><S,1*U>,
-     Unfolding: InlineRule (2, True, False)
-                (\ (f :: GHC.IO.FilePath)
-                   (ext :: Language.Fixpoint.Utils.Files.Ext) ->
-                 System.FilePath.Posix.addExtension
-                   (System.FilePath.Posix.dropExtension f)
-                   (Language.Fixpoint.Utils.Files.extMap ext)) -}
-instance GHC.Classes.Eq [Language.Fixpoint.Utils.Files.Ext]
-  = Language.Fixpoint.Utils.Files.$fEqExt
-instance GHC.Classes.Ord [Language.Fixpoint.Utils.Files.Ext]
-  = Language.Fixpoint.Utils.Files.$fOrdExt
-instance GHC.Show.Show [Language.Fixpoint.Utils.Files.Ext]
-  = Language.Fixpoint.Utils.Files.$fShowExt
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Statistics.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Statistics.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/src/Language/Fixpoint/Utils/Statistics.dump-hi
+++ /dev/null
@@ -1,1892 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:37:25.738379 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Utils.Statistics [family instance module] 8002
-  interface hash: 3d29c8f244e7db57f7a01eb18d5c8f98
-  ABI hash: a13613b1b407b566c4dfeffa954d6400
-  export-list hash: cb753336970f9e94042ff46d1d6e87c5
-  orphan hash: 189a3d8213ed16d8ef3830726df25bf1
-  flag hash: 1be090a857589f54a1976da57c3ecff4
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Utils.Statistics.statistics
-module dependencies: Language.Fixpoint.Graph
-                     Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph.Indexed
-                     Language.Fixpoint.Graph.Partition Language.Fixpoint.Graph.Reducible
-                     Language.Fixpoint.Graph.Types Language.Fixpoint.Misc
-                     Language.Fixpoint.Smt.Theories Language.Fixpoint.Smt.Types
-                     Language.Fixpoint.SortCheck Language.Fixpoint.Types
-                     Language.Fixpoint.Types.Config Language.Fixpoint.Types.Constraints
-                     Language.Fixpoint.Types.Environments Language.Fixpoint.Types.Errors
-                     Language.Fixpoint.Types.Names Language.Fixpoint.Types.PrettyPrint
-                     Language.Fixpoint.Types.Refinements
-                     Language.Fixpoint.Types.Solutions Language.Fixpoint.Types.Sorts
-                     Language.Fixpoint.Types.Spans Language.Fixpoint.Types.Substitutions
-                     Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Utils
-                     Language.Fixpoint.Types.Visitor Language.Fixpoint.Utils.Files
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      boxes-0.1.4@boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cereal-0.5.4.0@cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      containers-0.5.7.1@containers-0.5.7.1
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      double-conversion-2.0.2.0@double-conversion-2.0.2.0-FB9lbzCS3eNEibeP1aq5Xr
-                      fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-                      filepath-1.4.1.1@filepath-1.4.1.1 ghc-prim-0.5.0.0
-                      hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-                      integer-gmp-1.0.0.1
-                      intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-                      located-base-0.1.1.0@located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-                      mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      parsec-3.1.11@parsec-3.1.11-113irVHGgd88sRnywByDNw
-                      pretty-1.1.3.3@pretty-1.1.3.3 process-1.4.3.0@process-1.4.3.0
-                      split-0.2.3.1@split-0.2.3.1-FWyXC6nhV0H3AfM8IzrEFk
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      text-format-0.3.1.1@text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-                      unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Explicit.Help
-         hashable-1.2.6.0@hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x:Data.Hashable.Generic
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Substitutions
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         syb-0.6@syb-0.6-IcoSwlPi2Nx4zSqMmorFPS:Data.Generics.Instances
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Compose base-4.9.1.0:Data.Functor.Const
-                         base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.Functor.Product base-4.9.1.0:Data.Functor.Sum
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         fgl-5.5.3.1@fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz:Data.Graph.Inductive.PatriciaTree
-                         intern-0.9.1.4@intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx:Data.Interned.Internal.Text
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Graph.Types
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Config
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Constraints
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Environments
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Errors
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Names
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Refinements
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Solutions
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Sorts
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Spans
-                         liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Types.Triggers
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.Annotated.HughesPJ
-                         pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base
-                         unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashSet
-import  -/  base-4.9.1.0:Control.Arrow 70754b538e7d75521cd68162917b6946
-import  -/  base-4.9.1.0:Data.Foldable 3e0b6967a1da89945d0e2d47266337a2
-import  -/  base-4.9.1.0:Data.Functor 5ab1dc703df5b482e77efb697833ca3c
-import  -/  base-4.9.1.0:Data.List 07ae2acca6538aa0800bd0a993ac6ac1
-import  -/  base-4.9.1.0:Data.OldList 27987919d8da2f92e3f472ca81f730f8
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.Generics 1dbec2bc7dd1c5bd8c89ed857eaed19b
-import  -/  base-4.9.1.0:GHC.List ab8c4e523e6c479c549d3bcd5fc4a439
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:GHC.Show a027f5ac24879eaba752f44aa90fe511
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO c9de64c5f5407c4cf1c52500c4d15200
-import  -/  deepseq-1.4.2.0@deepseq-1.4.2.0:Control.DeepSeq 0a99763cf6016b16bbf55422778a79b2
-import  -/  ghc-prim-0.5.0.0:GHC.Classes 0bdf3d057a415ec1b84a7b1994efbe47
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-import  -/  integer-gmp-1.0.0.1:GHC.Integer.Type 318df275d77dcdb18e0006d8d7870c2a
-import  -/  Language.Fixpoint.Graph 96b1659cd922559f07884eea5976fb53
-  exports: dad5544a3a41a5c3c772ca79356d39ad
-import  -/  Language.Fixpoint.Graph.Partition a564ef7164aba59432a750fd2fa72ad6
-  partition' 968dd790e46c5ddf1a99a826058b1b68
-import  -/  Language.Fixpoint.Misc 268edc2be2657e56d9ac2e0e5f861c66
-  exports: 0d4209a369f77ae55113ca41b56281c2
-  Loud df42ce750f735e9386f34485e7fff5ef
-  applyNonNull 303cbe5541e25fbd8cd11b7c15ff6310
-  donePhase 1cf4579b993fe9690101309d8b0cc613
-import  -/  Language.Fixpoint.Types 09d1039f1e0058408506d58eee0982ca
-  exports: 91181ff2c29316a0420a9031c7b2d4bd
-import  -/  Language.Fixpoint.Types.Config 163393aa566fa4479116d419651371d6
-  exports: 87e69df825248b6123b5720d7ef71a71
-  Config 0a1d3ab6981cc6a61194de16bb9f26fb
-import  -/  Language.Fixpoint.Types.Constraints dc475bd125456ae511f39eb7bfb576f7
-  FInfo beb16efa76d83917c7875fd2371988e0
-  Result 1de0e7882069f13222c6effa6f71fad5
-  cm e96439d8256cfec0e43dbb4c8b7f9965
-import  -/  Language.Fixpoint.Types.PrettyPrint 9f8ba54128c047c2f5df631a58152645
-  exports: 8280ba96c3b943538085a23e8c114f93
-  PPrint f926efd2d44310d1ff99c4868d82bc97
-  pprint 3b1416a258327e319f3edde9b9e2d64e
-import  -/  pretty-1.1.3.3@pretty-1.1.3.3:Text.PrettyPrint.HughesPJ 0c3d66734497c26d70ab123829dd1cb4
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Base 2b46c25df89b2b3ba6c50f91554dc6fe
-import  -/  unordered-containers-0.2.8.0@unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o:Data.HashMap.Strict 05b98a538bea7df232363274cae058f8
-2a78bf95de525c340269c30a394c00f8
-  $fGenericStats ::
-    GHC.Generics.Generic Language.Fixpoint.Utils.Statistics.Stats
-  DFunId
-  {- HasNoCafRefs, Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Statistics.Stats
-                  Language.Fixpoint.Utils.Statistics.$fGenericStats_$cfrom
-                  Language.Fixpoint.Utils.Statistics.$fGenericStats_$cto -}
-2a78bf95de525c340269c30a394c00f8
-  $fGenericStats1 ::
-    Language.Fixpoint.Utils.Statistics.Stats
-    -> GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.M1
-             GHC.Generics.S
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "cSizes")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.NoSourceStrictness
-                'GHC.Generics.DecidedLazy)
-             (GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float])
-           GHC.Generics.:*: (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cFreq")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1 GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)])
-                             GHC.Generics.:*: GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "cTotal")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)))
-          GHC.Generics.:*: (GHC.Generics.M1
-                              GHC.Generics.S
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "cMean")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "cMax")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                                              GHC.Generics.:*: GHC.Generics.M1
-                                                                 GHC.Generics.S
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "cSpeed")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedUnpack)
-                                                                 (GHC.Generics.K1
-                                                                    GHC.Generics.R
-                                                                    GHC.Types.Float))))
-         x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U,U,U)>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x (w :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case w of ww { Language.Fixpoint.Utils.Statistics.Stats ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 (GHC.Generics.:*:
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "cSizes")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.NoSourceStrictness
-                            'GHC.Generics.DecidedLazy)
-                         (GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float])
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "cFreq")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1
-                                              GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)])
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "cTotal")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Float)))
-                    @ (GHC.Generics.M1
-                         GHC.Generics.S
-                         ('GHC.Generics.MetaSel
-                            ('GHC.Base.Just "cMean")
-                            'GHC.Generics.NoSourceUnpackedness
-                            'GHC.Generics.SourceStrict
-                            'GHC.Generics.DecidedUnpack)
-                         (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                       GHC.Generics.:*: (GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "cMax")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.SourceStrict
-                                              'GHC.Generics.DecidedUnpack)
-                                           (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                                         GHC.Generics.:*: GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "cSpeed")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Float)))
-                    @ x
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cSizes")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float]))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cFreq")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.K1 GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)])
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "cTotal")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                       @ x
-                       ww1
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <[GHC.Types.Float]>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "cSizes")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.NoSourceStrictness
-                                         'GHC.Generics.DecidedLazy>_P
-                                      <GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float]>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cFreq")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1
-                                  GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)]))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cTotal")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                          @ x
-                          ww2
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P
-                                         <[(GHC.Types.Float, GHC.Types.Int)]>_R
-                                         <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cFreq")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R
-                                            [(GHC.Types.Float, GHC.Types.Int)]>_R) <x>_N))
-                          (GHC.Types.F# ww3)
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P <GHC.Types.Float>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cTotal")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R GHC.Types.Float>_R) <x>_N))))
-                    (GHC.Generics.:*:
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cMean")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                       @ (GHC.Generics.M1
-                            GHC.Generics.S
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cMax")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.SourceStrict
-                               'GHC.Generics.DecidedUnpack)
-                            (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                          GHC.Generics.:*: GHC.Generics.M1
-                                             GHC.Generics.S
-                                             ('GHC.Generics.MetaSel
-                                                ('GHC.Base.Just "cSpeed")
-                                                'GHC.Generics.NoSourceUnpackedness
-                                                'GHC.Generics.SourceStrict
-                                                'GHC.Generics.DecidedUnpack)
-                                             (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                       @ x
-                       (GHC.Types.F# ww4)
-                         `cast`
-                       (Trans
-                            (Sym (GHC.Generics.N:K1[0]
-                                      <GHC.Generics.R>_P <GHC.Types.Float>_R <x>_P))
-                            (Sym (GHC.Generics.N:M1[0]
-                                      <GHC.Generics.S>_P
-                                      <'GHC.Generics.MetaSel
-                                         ('GHC.Base.Just "cMean")
-                                         'GHC.Generics.NoSourceUnpackedness
-                                         'GHC.Generics.SourceStrict
-                                         'GHC.Generics.DecidedUnpack>_P
-                                      <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R) <x>_N))
-                       (GHC.Generics.:*:
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cMax")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                          @ (GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cSpeed")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.SourceStrict
-                                  'GHC.Generics.DecidedUnpack)
-                               (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float))
-                          @ x
-                          (GHC.Types.F# ww5)
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P <GHC.Types.Float>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cMax")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack>_P
-                                         <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R) <x>_N))
-                          (GHC.Types.F# ww6)
-                            `cast`
-                          (Trans
-                               (Sym (GHC.Generics.N:K1[0]
-                                         <GHC.Generics.R>_P <GHC.Types.Float>_R <x>_P))
-                               (Sym (GHC.Generics.N:M1[0]
-                                         <GHC.Generics.S>_P
-                                         <'GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cSpeed")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.SourceStrict
-                                            'GHC.Generics.DecidedUnpack>_P
-                                         <GHC.Generics.K1
-                                            GHC.Generics.R GHC.Types.Float>_R) <x>_N)))))
-                   `cast`
-                 (Sym (GHC.Generics.N:M1[0]
-                           <GHC.Generics.C>_P
-                           <'GHC.Generics.MetaCons
-                              "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                           <(GHC.Generics.M1
-                               GHC.Generics.S
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cSizes")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float])
-                             GHC.Generics.:*: (GHC.Generics.M1
-                                                 GHC.Generics.S
-                                                 ('GHC.Generics.MetaSel
-                                                    ('GHC.Base.Just "cFreq")
-                                                    'GHC.Generics.NoSourceUnpackedness
-                                                    'GHC.Generics.NoSourceStrictness
-                                                    'GHC.Generics.DecidedLazy)
-                                                 (GHC.Generics.K1
-                                                    GHC.Generics.R
-                                                    [(GHC.Types.Float, GHC.Types.Int)])
-                                               GHC.Generics.:*: GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "cTotal")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedUnpack)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R
-                                                                     GHC.Types.Float)))
-                            GHC.Generics.:*: (GHC.Generics.M1
-                                                GHC.Generics.S
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "cMean")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.K1 GHC.Generics.R GHC.Types.Float)
-                                              GHC.Generics.:*: (GHC.Generics.M1
-                                                                  GHC.Generics.S
-                                                                  ('GHC.Generics.MetaSel
-                                                                     ('GHC.Base.Just "cMax")
-                                                                     'GHC.Generics.NoSourceUnpackedness
-                                                                     'GHC.Generics.SourceStrict
-                                                                     'GHC.Generics.DecidedUnpack)
-                                                                  (GHC.Generics.K1
-                                                                     GHC.Generics.R GHC.Types.Float)
-                                                                GHC.Generics.:*: GHC.Generics.M1
-                                                                                   GHC.Generics.S
-                                                                                   ('GHC.Generics.MetaSel
-                                                                                      ('GHC.Base.Just
-                                                                                         "cSpeed")
-                                                                                      'GHC.Generics.NoSourceUnpackedness
-                                                                                      'GHC.Generics.SourceStrict
-                                                                                      'GHC.Generics.DecidedUnpack)
-                                                                                   (GHC.Generics.K1
-                                                                                      GHC.Generics.R
-                                                                                      GHC.Types.Float)))>_R) <x>_N) }) -}
-2a78bf95de525c340269c30a394c00f8
-  $fGenericStats_$cfrom ::
-    Language.Fixpoint.Utils.Statistics.Stats
-    -> GHC.Generics.Rep Language.Fixpoint.Utils.Statistics.Stats x
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U(U,U,U,U,U,U)>m,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Statistics.$fGenericStats1
-                  `cast`
-                (forall (x :: <GHC.Types.*>_N).
-                 <Language.Fixpoint.Utils.Statistics.Stats>_R
-                 ->_R Trans
-                          (Sym (GHC.Generics.N:M1[0]
-                                    <GHC.Generics.D>_P
-                                    <'GHC.Generics.MetaData
-                                       "Stats"
-                                       "Language.Fixpoint.Utils.Statistics"
-                                       "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                       'GHC.Types.False>_P
-                                    <GHC.Generics.M1
-                                       GHC.Generics.C
-                                       ('GHC.Generics.MetaCons
-                                          "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                       ((GHC.Generics.M1
-                                           GHC.Generics.S
-                                           ('GHC.Generics.MetaSel
-                                              ('GHC.Base.Just "cSizes")
-                                              'GHC.Generics.NoSourceUnpackedness
-                                              'GHC.Generics.NoSourceStrictness
-                                              'GHC.Generics.DecidedLazy)
-                                           (GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float])
-                                         GHC.Generics.:*: (GHC.Generics.M1
-                                                             GHC.Generics.S
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "cFreq")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.NoSourceStrictness
-                                                                'GHC.Generics.DecidedLazy)
-                                                             (GHC.Generics.K1
-                                                                GHC.Generics.R
-                                                                [(GHC.Types.Float, GHC.Types.Int)])
-                                                           GHC.Generics.:*: GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "cTotal")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedUnpack)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Types.Float)))
-                                        GHC.Generics.:*: (GHC.Generics.M1
-                                                            GHC.Generics.S
-                                                            ('GHC.Generics.MetaSel
-                                                               ('GHC.Base.Just "cMean")
-                                                               'GHC.Generics.NoSourceUnpackedness
-                                                               'GHC.Generics.SourceStrict
-                                                               'GHC.Generics.DecidedUnpack)
-                                                            (GHC.Generics.K1
-                                                               GHC.Generics.R GHC.Types.Float)
-                                                          GHC.Generics.:*: (GHC.Generics.M1
-                                                                              GHC.Generics.S
-                                                                              ('GHC.Generics.MetaSel
-                                                                                 ('GHC.Base.Just
-                                                                                    "cMax")
-                                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                                 'GHC.Generics.SourceStrict
-                                                                                 'GHC.Generics.DecidedUnpack)
-                                                                              (GHC.Generics.K1
-                                                                                 GHC.Generics.R
-                                                                                 GHC.Types.Float)
-                                                                            GHC.Generics.:*: GHC.Generics.M1
-                                                                                               GHC.Generics.S
-                                                                                               ('GHC.Generics.MetaSel
-                                                                                                  ('GHC.Base.Just
-                                                                                                     "cSpeed")
-                                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                                  'GHC.Generics.SourceStrict
-                                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                                               (GHC.Generics.K1
-                                                                                                  GHC.Generics.R
-                                                                                                  GHC.Types.Float))))>_R))
-                          (Sub (Sym (Language.Fixpoint.Utils.Statistics.Rep_Stats[0]))) <x>_N) -}
-2a78bf95de525c340269c30a394c00f8
-  $fGenericStats_$cto ::
-    GHC.Generics.Rep Language.Fixpoint.Utils.Statistics.Stats x
-    -> Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(LS(LS))S(SS(SS))),1*U(1*U(U,1*U(U,U)),1*U(U,1*U(U,U)))>m,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ x
-                   (w :: GHC.Generics.Rep
-                           Language.Fixpoint.Utils.Statistics.Stats x) ->
-                 case w `cast`
-                      (Trans
-                           (Sub (Language.Fixpoint.Utils.Statistics.Rep_Stats[0]))
-                           (Trans
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.D>_P
-                                     <'GHC.Generics.MetaData
-                                        "Stats"
-                                        "Language.Fixpoint.Utils.Statistics"
-                                        "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                        'GHC.Types.False>_P
-                                     <GHC.Generics.C1
-                                        ('GHC.Generics.MetaCons
-                                           "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                        ((GHC.Generics.S1
-                                            ('GHC.Generics.MetaSel
-                                               ('GHC.Base.Just "cSizes")
-                                               'GHC.Generics.NoSourceUnpackedness
-                                               'GHC.Generics.NoSourceStrictness
-                                               'GHC.Generics.DecidedLazy)
-                                            (GHC.Generics.Rec0 [GHC.Types.Float])
-                                          GHC.Generics.:*: (GHC.Generics.S1
-                                                              ('GHC.Generics.MetaSel
-                                                                 ('GHC.Base.Just "cFreq")
-                                                                 'GHC.Generics.NoSourceUnpackedness
-                                                                 'GHC.Generics.NoSourceStrictness
-                                                                 'GHC.Generics.DecidedLazy)
-                                                              (GHC.Generics.Rec0
-                                                                 [(GHC.Types.Float, GHC.Types.Int)])
-                                                            GHC.Generics.:*: GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "cTotal")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                               (GHC.Generics.Rec0
-                                                                                  GHC.Types.Float)))
-                                         GHC.Generics.:*: (GHC.Generics.S1
-                                                             ('GHC.Generics.MetaSel
-                                                                ('GHC.Base.Just "cMean")
-                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                'GHC.Generics.SourceStrict
-                                                                'GHC.Generics.DecidedUnpack)
-                                                             (GHC.Generics.Rec0 GHC.Types.Float)
-                                                           GHC.Generics.:*: (GHC.Generics.S1
-                                                                               ('GHC.Generics.MetaSel
-                                                                                  ('GHC.Base.Just
-                                                                                     "cMax")
-                                                                                  'GHC.Generics.NoSourceUnpackedness
-                                                                                  'GHC.Generics.SourceStrict
-                                                                                  'GHC.Generics.DecidedUnpack)
-                                                                               (GHC.Generics.Rec0
-                                                                                  GHC.Types.Float)
-                                                                             GHC.Generics.:*: GHC.Generics.S1
-                                                                                                ('GHC.Generics.MetaSel
-                                                                                                   ('GHC.Base.Just
-                                                                                                      "cSpeed")
-                                                                                                   'GHC.Generics.NoSourceUnpackedness
-                                                                                                   'GHC.Generics.SourceStrict
-                                                                                                   'GHC.Generics.DecidedUnpack)
-                                                                                                (GHC.Generics.Rec0
-                                                                                                   GHC.Types.Float))))>_R)
-                                (GHC.Generics.N:M1[0]
-                                     <GHC.Generics.C>_P
-                                     <'GHC.Generics.MetaCons
-                                        "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                     <(GHC.Generics.S1
-                                         ('GHC.Generics.MetaSel
-                                            ('GHC.Base.Just "cSizes")
-                                            'GHC.Generics.NoSourceUnpackedness
-                                            'GHC.Generics.NoSourceStrictness
-                                            'GHC.Generics.DecidedLazy)
-                                         (GHC.Generics.Rec0 [GHC.Types.Float])
-                                       GHC.Generics.:*: (GHC.Generics.S1
-                                                           ('GHC.Generics.MetaSel
-                                                              ('GHC.Base.Just "cFreq")
-                                                              'GHC.Generics.NoSourceUnpackedness
-                                                              'GHC.Generics.NoSourceStrictness
-                                                              'GHC.Generics.DecidedLazy)
-                                                           (GHC.Generics.Rec0
-                                                              [(GHC.Types.Float, GHC.Types.Int)])
-                                                         GHC.Generics.:*: GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "cTotal")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedUnpack)
-                                                                            (GHC.Generics.Rec0
-                                                                               GHC.Types.Float)))
-                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                          ('GHC.Generics.MetaSel
-                                                             ('GHC.Base.Just "cMean")
-                                                             'GHC.Generics.NoSourceUnpackedness
-                                                             'GHC.Generics.SourceStrict
-                                                             'GHC.Generics.DecidedUnpack)
-                                                          (GHC.Generics.Rec0 GHC.Types.Float)
-                                                        GHC.Generics.:*: (GHC.Generics.S1
-                                                                            ('GHC.Generics.MetaSel
-                                                                               ('GHC.Base.Just
-                                                                                  "cMax")
-                                                                               'GHC.Generics.NoSourceUnpackedness
-                                                                               'GHC.Generics.SourceStrict
-                                                                               'GHC.Generics.DecidedUnpack)
-                                                                            (GHC.Generics.Rec0
-                                                                               GHC.Types.Float)
-                                                                          GHC.Generics.:*: GHC.Generics.S1
-                                                                                             ('GHC.Generics.MetaSel
-                                                                                                ('GHC.Base.Just
-                                                                                                   "cSpeed")
-                                                                                                'GHC.Generics.NoSourceUnpackedness
-                                                                                                'GHC.Generics.SourceStrict
-                                                                                                'GHC.Generics.DecidedUnpack)
-                                                                                             (GHC.Generics.Rec0
-                                                                                                GHC.Types.Float)))>_R)) <x>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww5 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww2 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww11 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 case ww8
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "cTotal")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Float>_R
-                                <x>_P)) of dt { GHC.Types.F# dt1 ->
-                 case ww10
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "cMean")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Float>_R
-                                <x>_P)) of dt2 { GHC.Types.F# dt3 ->
-                 case ww13
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "cMax")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Float>_R
-                                <x>_P)) of dt4 { GHC.Types.F# dt5 ->
-                 case ww14
-                        `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.S>_P
-                                <'GHC.Generics.MetaSel
-                                   ('GHC.Base.Just "cSpeed")
-                                   'GHC.Generics.NoSourceUnpackedness
-                                   'GHC.Generics.SourceStrict
-                                   'GHC.Generics.DecidedUnpack>_P
-                                <GHC.Generics.K1 GHC.Generics.R GHC.Types.Float>_R <x>_N)
-                           (GHC.Generics.N:K1[0]
-                                <GHC.Generics.R>_P
-                                <GHC.Types.Float>_R
-                                <x>_P)) of dt6 { GHC.Types.F# dt7 ->
-                 Language.Fixpoint.Utils.Statistics.Stats
-                   ww4
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cSizes")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <[GHC.Types.Float]>_R <x>_P))
-                   ww7
-                     `cast`
-                   (Trans
-                        (GHC.Generics.N:M1[0]
-                             <GHC.Generics.S>_P
-                             <'GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cFreq")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy>_P
-                             <GHC.Generics.K1
-                                GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)]>_R <x>_N)
-                        (GHC.Generics.N:K1[0]
-                             <GHC.Generics.R>_P <[(GHC.Types.Float, GHC.Types.Int)]>_R <x>_P))
-                   dt1
-                   dt3
-                   dt5
-                   dt7 } } } } } } } } }) -}
-2a78bf95de525c340269c30a394c00f8
-  $fNFDataStats ::
-    Control.DeepSeq.NFData Language.Fixpoint.Utils.Statistics.Stats
-  DFunId
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSLLLL),1*U(1*U,1*U,A,A,A,A)>,
-     Inline: INLINE (sat-args=0),
-     Unfolding: InlineRule (0, False, True)
-                Language.Fixpoint.Utils.Statistics.$fNFDataStats_$s$dmrnf
-                  `cast`
-                (Sym (Control.DeepSeq.N:NFData[0]
-                          <Language.Fixpoint.Utils.Statistics.Stats>_N)) -}
-535672b37465c91f44e6b9ee5fdd3065
-  $fNFDataStats1 ::
-    Control.DeepSeq.GNFData
-      (GHC.Generics.D1
-         ('GHC.Generics.MetaData
-            "Stats"
-            "Language.Fixpoint.Utils.Statistics"
-            "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-            'GHC.Types.False)
-         (GHC.Generics.C1
-            ('GHC.Generics.MetaCons
-               "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-            ((GHC.Generics.S1
-                ('GHC.Generics.MetaSel
-                   ('GHC.Base.Just "cSizes")
-                   'GHC.Generics.NoSourceUnpackedness
-                   'GHC.Generics.NoSourceStrictness
-                   'GHC.Generics.DecidedLazy)
-                (GHC.Generics.Rec0 [GHC.Types.Float])
-              GHC.Generics.:*: (GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "cFreq")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 [(GHC.Types.Float, GHC.Types.Int)])
-                                GHC.Generics.:*: GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "cTotal")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Float)))
-             GHC.Generics.:*: (GHC.Generics.S1
-                                 ('GHC.Generics.MetaSel
-                                    ('GHC.Base.Just "cMean")
-                                    'GHC.Generics.NoSourceUnpackedness
-                                    'GHC.Generics.SourceStrict
-                                    'GHC.Generics.DecidedUnpack)
-                                 (GHC.Generics.Rec0 GHC.Types.Float)
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "cMax")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Float)
-                                                 GHC.Generics.:*: GHC.Generics.S1
-                                                                    ('GHC.Generics.MetaSel
-                                                                       ('GHC.Base.Just "cSpeed")
-                                                                       'GHC.Generics.NoSourceUnpackedness
-                                                                       'GHC.Generics.SourceStrict
-                                                                       'GHC.Generics.DecidedUnpack)
-                                                                    (GHC.Generics.Rec0
-                                                                       GHC.Types.Float))))))
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS(SS))S(SS(SS))),1*U(1*U(1*U,1*U(1*U,1*U)),1*U(1*U,1*U(1*U,1*U)))>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Statistics.$fNFDataStats2
-                  `cast`
-                (Sym (Control.DeepSeq.N:GNFData[0]
-                          <GHC.Types.*>_N
-                          <GHC.Generics.M1
-                             GHC.Generics.D
-                             ('GHC.Generics.MetaData
-                                "Stats"
-                                "Language.Fixpoint.Utils.Statistics"
-                                "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                'GHC.Types.False)
-                             (GHC.Generics.M1
-                                GHC.Generics.C
-                                ('GHC.Generics.MetaCons
-                                   "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                ((GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "cSizes")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [GHC.Types.Float])
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "cFreq")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0
-                                                         [(GHC.Types.Float, GHC.Types.Int)])
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "cTotal")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Float)))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "cMean")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Float)
-                                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "cMax")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Float)
-                                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           ('GHC.Base.Just
-                                                                                              "cSpeed")
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedUnpack)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           GHC.Types.Float)))))>_N)) -}
-574641f13ce5b0584f0fc5ac4af3ded1
-  $fNFDataStats2 ::
-    GHC.Generics.M1
-      GHC.Generics.D
-      ('GHC.Generics.MetaData
-         "Stats"
-         "Language.Fixpoint.Utils.Statistics"
-         "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-         'GHC.Types.False)
-      (GHC.Generics.M1
-         GHC.Generics.C
-         ('GHC.Generics.MetaCons
-            "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-         ((GHC.Generics.S1
-             ('GHC.Generics.MetaSel
-                ('GHC.Base.Just "cSizes")
-                'GHC.Generics.NoSourceUnpackedness
-                'GHC.Generics.NoSourceStrictness
-                'GHC.Generics.DecidedLazy)
-             (GHC.Generics.Rec0 [GHC.Types.Float])
-           GHC.Generics.:*: (GHC.Generics.S1
-                               ('GHC.Generics.MetaSel
-                                  ('GHC.Base.Just "cFreq")
-                                  'GHC.Generics.NoSourceUnpackedness
-                                  'GHC.Generics.NoSourceStrictness
-                                  'GHC.Generics.DecidedLazy)
-                               (GHC.Generics.Rec0 [(GHC.Types.Float, GHC.Types.Int)])
-                             GHC.Generics.:*: GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "cTotal")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.Rec0 GHC.Types.Float)))
-          GHC.Generics.:*: (GHC.Generics.S1
-                              ('GHC.Generics.MetaSel
-                                 ('GHC.Base.Just "cMean")
-                                 'GHC.Generics.NoSourceUnpackedness
-                                 'GHC.Generics.SourceStrict
-                                 'GHC.Generics.DecidedUnpack)
-                              (GHC.Generics.Rec0 GHC.Types.Float)
-                            GHC.Generics.:*: (GHC.Generics.S1
-                                                ('GHC.Generics.MetaSel
-                                                   ('GHC.Base.Just "cMax")
-                                                   'GHC.Generics.NoSourceUnpackedness
-                                                   'GHC.Generics.SourceStrict
-                                                   'GHC.Generics.DecidedUnpack)
-                                                (GHC.Generics.Rec0 GHC.Types.Float)
-                                              GHC.Generics.:*: GHC.Generics.S1
-                                                                 ('GHC.Generics.MetaSel
-                                                                    ('GHC.Base.Just "cSpeed")
-                                                                    'GHC.Generics.NoSourceUnpackedness
-                                                                    'GHC.Generics.SourceStrict
-                                                                    'GHC.Generics.DecidedUnpack)
-                                                                 (GHC.Generics.Rec0
-                                                                    GHC.Types.Float)))))
-      a1
-    -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(S(SS(SS))S(SS(SS))),1*U(1*U(1*U,1*U(1*U,1*U)),1*U(1*U,1*U(1*U,1*U)))>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (1, True, False)
-                (\ @ a1
-                   (w :: GHC.Generics.M1
-                           GHC.Generics.D
-                           ('GHC.Generics.MetaData
-                              "Stats"
-                              "Language.Fixpoint.Utils.Statistics"
-                              "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                              'GHC.Types.False)
-                           (GHC.Generics.M1
-                              GHC.Generics.C
-                              ('GHC.Generics.MetaCons
-                                 "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                              ((GHC.Generics.S1
-                                  ('GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "cSizes")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy)
-                                  (GHC.Generics.Rec0 [GHC.Types.Float])
-                                GHC.Generics.:*: (GHC.Generics.S1
-                                                    ('GHC.Generics.MetaSel
-                                                       ('GHC.Base.Just "cFreq")
-                                                       'GHC.Generics.NoSourceUnpackedness
-                                                       'GHC.Generics.NoSourceStrictness
-                                                       'GHC.Generics.DecidedLazy)
-                                                    (GHC.Generics.Rec0
-                                                       [(GHC.Types.Float, GHC.Types.Int)])
-                                                  GHC.Generics.:*: GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "cTotal")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedUnpack)
-                                                                     (GHC.Generics.Rec0
-                                                                        GHC.Types.Float)))
-                               GHC.Generics.:*: (GHC.Generics.S1
-                                                   ('GHC.Generics.MetaSel
-                                                      ('GHC.Base.Just "cMean")
-                                                      'GHC.Generics.NoSourceUnpackedness
-                                                      'GHC.Generics.SourceStrict
-                                                      'GHC.Generics.DecidedUnpack)
-                                                   (GHC.Generics.Rec0 GHC.Types.Float)
-                                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                                     ('GHC.Generics.MetaSel
-                                                                        ('GHC.Base.Just "cMax")
-                                                                        'GHC.Generics.NoSourceUnpackedness
-                                                                        'GHC.Generics.SourceStrict
-                                                                        'GHC.Generics.DecidedUnpack)
-                                                                     (GHC.Generics.Rec0
-                                                                        GHC.Types.Float)
-                                                                   GHC.Generics.:*: GHC.Generics.S1
-                                                                                      ('GHC.Generics.MetaSel
-                                                                                         ('GHC.Base.Just
-                                                                                            "cSpeed")
-                                                                                         'GHC.Generics.NoSourceUnpackedness
-                                                                                         'GHC.Generics.SourceStrict
-                                                                                         'GHC.Generics.DecidedUnpack)
-                                                                                      (GHC.Generics.Rec0
-                                                                                         GHC.Types.Float)))))
-                           a1) ->
-                 case w `cast`
-                      (Trans
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.D>_P
-                                <'GHC.Generics.MetaData
-                                   "Stats"
-                                   "Language.Fixpoint.Utils.Statistics"
-                                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-                                   'GHC.Types.False>_P
-                                <GHC.Generics.M1
-                                   GHC.Generics.C
-                                   ('GHC.Generics.MetaCons
-                                      "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-                                   ((GHC.Generics.S1
-                                       ('GHC.Generics.MetaSel
-                                          ('GHC.Base.Just "cSizes")
-                                          'GHC.Generics.NoSourceUnpackedness
-                                          'GHC.Generics.NoSourceStrictness
-                                          'GHC.Generics.DecidedLazy)
-                                       (GHC.Generics.Rec0 [GHC.Types.Float])
-                                     GHC.Generics.:*: (GHC.Generics.S1
-                                                         ('GHC.Generics.MetaSel
-                                                            ('GHC.Base.Just "cFreq")
-                                                            'GHC.Generics.NoSourceUnpackedness
-                                                            'GHC.Generics.NoSourceStrictness
-                                                            'GHC.Generics.DecidedLazy)
-                                                         (GHC.Generics.Rec0
-                                                            [(GHC.Types.Float, GHC.Types.Int)])
-                                                       GHC.Generics.:*: GHC.Generics.S1
-                                                                          ('GHC.Generics.MetaSel
-                                                                             ('GHC.Base.Just
-                                                                                "cTotal")
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedUnpack)
-                                                                          (GHC.Generics.Rec0
-                                                                             GHC.Types.Float)))
-                                    GHC.Generics.:*: (GHC.Generics.S1
-                                                        ('GHC.Generics.MetaSel
-                                                           ('GHC.Base.Just "cMean")
-                                                           'GHC.Generics.NoSourceUnpackedness
-                                                           'GHC.Generics.SourceStrict
-                                                           'GHC.Generics.DecidedUnpack)
-                                                        (GHC.Generics.Rec0 GHC.Types.Float)
-                                                      GHC.Generics.:*: (GHC.Generics.S1
-                                                                          ('GHC.Generics.MetaSel
-                                                                             ('GHC.Base.Just "cMax")
-                                                                             'GHC.Generics.NoSourceUnpackedness
-                                                                             'GHC.Generics.SourceStrict
-                                                                             'GHC.Generics.DecidedUnpack)
-                                                                          (GHC.Generics.Rec0
-                                                                             GHC.Types.Float)
-                                                                        GHC.Generics.:*: GHC.Generics.S1
-                                                                                           ('GHC.Generics.MetaSel
-                                                                                              ('GHC.Base.Just
-                                                                                                 "cSpeed")
-                                                                                              'GHC.Generics.NoSourceUnpackedness
-                                                                                              'GHC.Generics.SourceStrict
-                                                                                              'GHC.Generics.DecidedUnpack)
-                                                                                           (GHC.Generics.Rec0
-                                                                                              GHC.Types.Float))))>_R)
-                           (GHC.Generics.N:M1[0]
-                                <GHC.Generics.C>_P
-                                <'GHC.Generics.MetaCons
-                                   "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True>_P
-                                <(GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "cSizes")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.NoSourceStrictness
-                                       'GHC.Generics.DecidedLazy)
-                                    (GHC.Generics.Rec0 [GHC.Types.Float])
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "cFreq")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.NoSourceStrictness
-                                                         'GHC.Generics.DecidedLazy)
-                                                      (GHC.Generics.Rec0
-                                                         [(GHC.Types.Float, GHC.Types.Int)])
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "cTotal")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Float)))
-                                 GHC.Generics.:*: (GHC.Generics.S1
-                                                     ('GHC.Generics.MetaSel
-                                                        ('GHC.Base.Just "cMean")
-                                                        'GHC.Generics.NoSourceUnpackedness
-                                                        'GHC.Generics.SourceStrict
-                                                        'GHC.Generics.DecidedUnpack)
-                                                     (GHC.Generics.Rec0 GHC.Types.Float)
-                                                   GHC.Generics.:*: (GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "cMax")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Float)
-                                                                     GHC.Generics.:*: GHC.Generics.S1
-                                                                                        ('GHC.Generics.MetaSel
-                                                                                           ('GHC.Base.Just
-                                                                                              "cSpeed")
-                                                                                           'GHC.Generics.NoSourceUnpackedness
-                                                                                           'GHC.Generics.SourceStrict
-                                                                                           'GHC.Generics.DecidedUnpack)
-                                                                                        (GHC.Generics.Rec0
-                                                                                           GHC.Types.Float)))>_R) <a1>_N) of ww { GHC.Generics.:*: ww1 ww2 ->
-                 case ww1 of ww3 { GHC.Generics.:*: ww4 ww5 ->
-                 case ww5 of ww6 { GHC.Generics.:*: ww7 ww8 ->
-                 case ww2 of ww9 { GHC.Generics.:*: ww10 ww11 ->
-                 case ww11 of ww12 { GHC.Generics.:*: ww13 ww14 ->
-                 Language.Fixpoint.Utils.Statistics.$w$dGNFData
-                   @ a1
-                   ww4
-                   ww7
-                   ww8
-                   ww10
-                   ww13
-                   ww14 } } } } }) -}
-c8c73ce0085437f64d410019ccdc8201
-  $fNFDataStats3 :: (GHC.Types.Float, GHC.Types.Int) -> ()
-  {- Arity: 1, HasNoCafRefs, Strictness: <S(SS),1*U(1*H,1*H)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: (GHC.Types.Float, GHC.Types.Int)) ->
-                 case ds of wild { (,) x y ->
-                 case x of ds1 { GHC.Types.F# ipv ->
-                 Control.DeepSeq.$fNFDataInt_$crnf y } }) -}
-2a78bf95de525c340269c30a394c00f8
-  $fNFDataStats_$s$dmrnf ::
-    Language.Fixpoint.Utils.Statistics.Stats -> ()
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SSLLLL),1*U(1*U,1*U,A,A,A,A)>,
-     Unfolding: InlineRule (-3, True, False)
-                (\ (eta :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 Language.Fixpoint.Utils.Statistics.$fNFDataStats1
-                   `cast`
-                 (Control.DeepSeq.N:GNFData[0]
-                      <GHC.Types.*>_N
-                      (Sym (Language.Fixpoint.Utils.Statistics.Rep_Stats[0])))
-                   @ GHC.Prim.Any
-                   (Language.Fixpoint.Utils.Statistics.$fGenericStats_$cfrom
-                      @ GHC.Prim.Any
-                      eta)) -}
-2a78bf95de525c340269c30a394c00f8
-  $fPPrintStats ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      Language.Fixpoint.Utils.Statistics.Stats
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Statistics.Stats
-                  Language.Fixpoint.Utils.Statistics.$fPPrintStats_$cpprintTidy
-                  Language.Fixpoint.Utils.Statistics.$fPPrintStats_$cpprintPrec -}
-2a78bf95de525c340269c30a394c00f8
-  $fPPrintStats_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Utils.Statistics.Stats
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A>,
-     Unfolding: InlineRule (1, True, True)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 Language.Fixpoint.Utils.Statistics.$fPPrintStats_$cpprintTidy
-                   eta
-                   eta1) -}
-2a78bf95de525c340269c30a394c00f8
-  $fPPrintStats_$cpprintTidy ::
-    Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> Language.Fixpoint.Utils.Statistics.Stats
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 2, Strictness: <L,A><L,U(A,1*U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, True)
-                (\ (w :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (w1 :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 Language.Fixpoint.Utils.Statistics.$w$cpprintTidy w1) -}
-2a78bf95de525c340269c30a394c00f8
-  $fShowStats ::
-    GHC.Show.Show Language.Fixpoint.Utils.Statistics.Stats
-  DFunId
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ Language.Fixpoint.Utils.Statistics.Stats
-                  Language.Fixpoint.Utils.Statistics.$fShowStats_$cshowsPrec
-                  Language.Fixpoint.Utils.Statistics.$fShowStats_$cshow
-                  Language.Fixpoint.Utils.Statistics.$fShowStats_$cshowList -}
-2a78bf95de525c340269c30a394c00f8
-  $fShowStats1 ::
-    Language.Fixpoint.Utils.Statistics.Stats -> GHC.Show.ShowS
-  {- Arity: 1,
-     Unfolding: (\ (w :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case w of ww { Language.Fixpoint.Utils.Statistics.Stats ww1 ww2 ww3 ww4 ww5 ww6 ->
-                 Language.Fixpoint.Utils.Statistics.$w$cshowsPrec
-                   0#
-                   ww1
-                   ww2
-                   ww3
-                   ww4
-                   ww5
-                   ww6 }) -}
-2a78bf95de525c340269c30a394c00f8
-  $fShowStats_$cshow ::
-    Language.Fixpoint.Utils.Statistics.Stats -> GHC.Base.String
-  {- Arity: 1, Strictness: <S,1*U(U,U,U,U,U,U)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 Language.Fixpoint.Utils.Statistics.$fShowStats_$cshowsPrec
-                   GHC.Show.shows22
-                   x
-                   (GHC.Types.[] @ GHC.Types.Char)) -}
-2a78bf95de525c340269c30a394c00f8
-  $fShowStats_$cshowList ::
-    [Language.Fixpoint.Utils.Statistics.Stats] -> GHC.Show.ShowS
-  {- Arity: 2,
-     Unfolding: (GHC.Show.showList__
-                   @ Language.Fixpoint.Utils.Statistics.Stats
-                   Language.Fixpoint.Utils.Statistics.$fShowStats1) -}
-2a78bf95de525c340269c30a394c00f8
-  $fShowStats_$cshowsPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Utils.Statistics.Stats -> GHC.Show.ShowS
-  {- Arity: 2, Strictness: <S(S),1*U(U)><S,1*U(U,U,U,U,U,U)>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (2, True, False)
-                (\ (w :: GHC.Types.Int)
-                   (w1 :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case w of ww { GHC.Types.I# ww1 ->
-                 case w1 of ww2 { Language.Fixpoint.Utils.Statistics.Stats ww3 ww4 ww5 ww6 ww7 ww8 ->
-                 Language.Fixpoint.Utils.Statistics.$w$cshowsPrec
-                   ww1
-                   ww3
-                   ww4
-                   ww5
-                   ww6
-                   ww7
-                   ww8 } }) -}
-d84722108be7709264b403612f26ea0d
-  $s$fPPrint(,) ::
-    Language.Fixpoint.Types.PrettyPrint.PPrint
-      (GHC.Types.Float, GHC.Types.Int)
-  {- Strictness: m, Inline: [ALWAYS] CONLIKE,
-     Unfolding: DFun:.
-                  @ (GHC.Types.Float, GHC.Types.Int)
-                  (Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                     @ GHC.Types.Float
-                     @ GHC.Types.Int
-                     Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat
-                     Language.Fixpoint.Types.PrettyPrint.$fPPrintInt)
-                  Language.Fixpoint.Utils.Statistics.$s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec -}
-04284ea3fd68862f2e7ffe5b704d4412
-  $s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec ::
-    GHC.Types.Int
-    -> Language.Fixpoint.Types.PrettyPrint.Tidy
-    -> (GHC.Types.Float, GHC.Types.Int)
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 3, Strictness: <L,A><L,U><S,1*U(U,U)>,
-     Unfolding: InlineRule (3, True, False)
-                (\ (ds :: GHC.Types.Int)
-                   (eta :: Language.Fixpoint.Types.PrettyPrint.Tidy)
-                   (eta1 :: (GHC.Types.Float, GHC.Types.Int)) ->
-                 Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintTidy
-                   @ GHC.Types.Float
-                   @ GHC.Types.Int
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrintFloat
-                   Language.Fixpoint.Types.PrettyPrint.$fPPrintInt
-                   eta
-                   eta1) -}
-7de20dfe63b277f0850258814a00485f
-  $tc'Stats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   6866275786177616929##
-                   3215507976288736869##
-                   Language.Fixpoint.Utils.Statistics.$trModule
-                   Language.Fixpoint.Utils.Statistics.$tc'Stats1) -}
-6c2c3295a5574b9ccde68d369bf8c548
-  $tc'Stats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "'Stats"#) -}
-2663793a34e62eed0c609382f76d4938
-  $tcStats :: GHC.Types.TyCon
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.TyCon
-                   7085458041283566380##
-                   14403610781827513098##
-                   Language.Fixpoint.Utils.Statistics.$trModule
-                   Language.Fixpoint.Utils.Statistics.$tcStats1) -}
-f1fd9c1e192d70f95b325a6ced4edb11
-  $tcStats1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS "Stats"#) -}
-4d2c8d97db283b147e4312d2258e7355
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Utils.Statistics.$trModule2
-                   Language.Fixpoint.Utils.Statistics.$trModule1) -}
-2c57cc454788f42567053f7537d51afb
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Utils.Statistics"#) -}
-336d1bdc32a2402b23c83049eafebcd5
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-2a78bf95de525c340269c30a394c00f8
-  $w$cpprintTidy ::
-    Language.Fixpoint.Utils.Statistics.Stats
-    -> Text.PrettyPrint.HughesPJ.Doc
-  {- Arity: 1, Strictness: <L,U(A,1*U,U,U,U,U)>, Inline: [0] -}
-a2d185b5c45f52cb02d19469eb4aa8e4
-  $w$cshowsPrec ::
-    GHC.Prim.Int#
-    -> [GHC.Types.Float]
-    -> [(GHC.Types.Float, GHC.Types.Int)]
-    -> GHC.Prim.Float#
-    -> GHC.Prim.Float#
-    -> GHC.Prim.Float#
-    -> GHC.Prim.Float#
-    -> GHC.Show.ShowS
-  {- Arity: 7, Strictness: <S,U><L,U><L,U><L,U><L,U><L,U><L,U>,
-     Inline: [0] -}
-af1bb4c73268f7de53b2a04f6f2553a3
-  $w$dGNFData ::
-    GHC.Generics.S1
-      ('GHC.Generics.MetaSel
-         ('GHC.Base.Just "cSizes")
-         'GHC.Generics.NoSourceUnpackedness
-         'GHC.Generics.NoSourceStrictness
-         'GHC.Generics.DecidedLazy)
-      (GHC.Generics.Rec0 [GHC.Types.Float])
-      a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "cFreq")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.NoSourceStrictness
-            'GHC.Generics.DecidedLazy)
-         (GHC.Generics.Rec0 [(GHC.Types.Float, GHC.Types.Int)])
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "cTotal")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedUnpack)
-         (GHC.Generics.Rec0 GHC.Types.Float)
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "cMean")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedUnpack)
-         (GHC.Generics.Rec0 GHC.Types.Float)
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "cMax")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedUnpack)
-         (GHC.Generics.Rec0 GHC.Types.Float)
-         a1
-    -> GHC.Generics.S1
-         ('GHC.Generics.MetaSel
-            ('GHC.Base.Just "cSpeed")
-            'GHC.Generics.NoSourceUnpackedness
-            'GHC.Generics.SourceStrict
-            'GHC.Generics.DecidedUnpack)
-         (GHC.Generics.Rec0 GHC.Types.Float)
-         a1
-    -> ()
-  {- Arity: 6, HasNoCafRefs,
-     Strictness: <S,1*U><S,1*U><S,1*U><S,1*U><S,1*U><S,1*U>,
-     Inline: [0],
-     Unfolding: (\ @ a1
-                   (ww :: GHC.Generics.S1
-                            ('GHC.Generics.MetaSel
-                               ('GHC.Base.Just "cSizes")
-                               'GHC.Generics.NoSourceUnpackedness
-                               'GHC.Generics.NoSourceStrictness
-                               'GHC.Generics.DecidedLazy)
-                            (GHC.Generics.Rec0 [GHC.Types.Float])
-                            a1)
-                   (ww1 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cFreq")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.NoSourceStrictness
-                                'GHC.Generics.DecidedLazy)
-                             (GHC.Generics.Rec0 [(GHC.Types.Float, GHC.Types.Int)])
-                             a1)
-                   (ww2 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cTotal")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.Rec0 GHC.Types.Float)
-                             a1)
-                   (ww3 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cMean")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.Rec0 GHC.Types.Float)
-                             a1)
-                   (ww4 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cMax")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.Rec0 GHC.Types.Float)
-                             a1)
-                   (ww5 :: GHC.Generics.S1
-                             ('GHC.Generics.MetaSel
-                                ('GHC.Base.Just "cSpeed")
-                                'GHC.Generics.NoSourceUnpackedness
-                                'GHC.Generics.SourceStrict
-                                'GHC.Generics.DecidedUnpack)
-                             (GHC.Generics.Rec0 GHC.Types.Float)
-                             a1) ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ GHC.Types.Float
-                        Control.DeepSeq.$fNFDataFloat_$crnf
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0] <GHC.Types.Float>_N))
-                        ww
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "cSizes")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1 GHC.Generics.R [GHC.Types.Float]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P <[GHC.Types.Float]>_R <a1>_P)) of wild1 { () ->
-                 case Control.DeepSeq.$fNFDataArray_$crnf1
-                        @ (GHC.Types.Float, GHC.Types.Int)
-                        Language.Fixpoint.Utils.Statistics.$fNFDataStats3
-                          `cast`
-                        (Sym (Control.DeepSeq.N:NFData[0]
-                                  <(GHC.Types.Float, GHC.Types.Int)>_N))
-                        ww1
-                          `cast`
-                        (Trans
-                             (GHC.Generics.N:M1[0]
-                                  <GHC.Generics.S>_P
-                                  <'GHC.Generics.MetaSel
-                                     ('GHC.Base.Just "cFreq")
-                                     'GHC.Generics.NoSourceUnpackedness
-                                     'GHC.Generics.NoSourceStrictness
-                                     'GHC.Generics.DecidedLazy>_P
-                                  <GHC.Generics.K1
-                                     GHC.Generics.R [(GHC.Types.Float, GHC.Types.Int)]>_R <a1>_N)
-                             (GHC.Generics.N:K1[0]
-                                  <GHC.Generics.R>_P
-                                  <[(GHC.Types.Float, GHC.Types.Int)]>_R
-                                  <a1>_P)) of wild2 { () ->
-                 case ww2 of tpl { DEFAULT ->
-                 case ww3 of tpl1 { DEFAULT ->
-                 case ww4 of tpl2 { DEFAULT ->
-                 case ww5 of tpl3 { DEFAULT -> GHC.Tuple.() } } } } } }) -}
-1a0bfd5595885fe3a484171fbcb9a36c
-  $wgo :: [GHC.Types.Float] -> GHC.Prim.Float# -> GHC.Prim.Float#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,U>, Inline: [0] -}
-0590b941cd64109b291a6a1375498918
-  $wgo1 :: [GHC.Types.Float] -> GHC.Prim.Float# -> GHC.Prim.Float#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,U>, Inline: [0] -}
-615baceef8687a687dc0322c9fed263f
-  $wgo2 :: [GHC.Types.Float] -> GHC.Prim.Float# -> GHC.Prim.Float#
-  {- Arity: 2, HasNoCafRefs, Strictness: <S,1*U><L,U>, Inline: [0] -}
-9d64bff8a5a68bb60d9ed91deb043e4d
-  $wstatistics ::
-    Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 2, Strictness: <L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: [0],
-     Unfolding: (\ @ a
-                   (w :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w1 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case GHC.IO.Handle.Text.hPutStr2
-                        GHC.IO.Handle.FD.stdout
-                        (Text.PrettyPrint.Annotated.HughesPJ.fullRenderAnn
-                           @ ()
-                           @ GHC.Base.String
-                           Text.PrettyPrint.Annotated.HughesPJ.PageMode
-                           Text.PrettyPrint.Annotated.HughesPJ.render3
-                           Text.PrettyPrint.Annotated.HughesPJ.render2
-                           Language.Fixpoint.Utils.Statistics.statistics5
-                           (GHC.Types.[] @ GHC.Types.Char)
-                           (case Language.Fixpoint.Utils.Statistics.statistics4
-                                   @ a
-                                   (Language.Fixpoint.Graph.Partition.partition'
-                                      @ a
-                                      (GHC.Base.Nothing @ Language.Fixpoint.Graph.Partition.MCInfo)
-                                      w) of wild {
-                              []
-                              -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe3
-                                   `cast`
-                                 (Text.PrettyPrint.HughesPJ.N:Doc[0])
-                              : ipv ipv1
-                              -> case (Language.Fixpoint.Utils.Statistics.$w$cpprintTidy
-                                         (case Language.Fixpoint.Utils.Statistics.$wgo2
-                                                 wild
-                                                 0.0# of ww { DEFAULT ->
-                                          case Language.Fixpoint.Utils.Statistics.$wgo1
-                                                 wild
-                                                 0.0# of ww1 { DEFAULT ->
-                                          case GHC.List.$wlenAcc
-                                                 @ GHC.Types.Float
-                                                 wild
-                                                 0# of ww2 { DEFAULT ->
-                                          case ipv of ww3 { GHC.Types.F# ww4 ->
-                                          case Language.Fixpoint.Utils.Statistics.$wgo
-                                                 ipv1
-                                                 ww4 of ww5 { DEFAULT ->
-                                          case GHC.Prim.divideFloat#
-                                                 ww1
-                                                 (GHC.Prim.int2Float# ww2) of wild2 { DEFAULT ->
-                                          case GHC.Prim.divideFloat# ww ww5 of wild1 { DEFAULT ->
-                                          Language.Fixpoint.Utils.Statistics.Stats
-                                            wild
-                                            (GHC.Base.map
-                                               @ [GHC.Types.Float]
-                                               @ (GHC.Types.Float, GHC.Types.Int)
-                                               Language.Fixpoint.Utils.Statistics.statistics3
-                                               (Data.OldList.groupBy
-                                                  @ GHC.Types.Float
-                                                  GHC.Classes.eqFloat
-                                                  (Data.OldList.sortBy
-                                                     @ GHC.Types.Float
-                                                     GHC.Classes.$fOrdFloat_$ccompare
-                                                     wild)))
-                                            ww
-                                            wild2
-                                            ww5
-                                            wild1 } } } } } } }))
-                                        `cast`
-                                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild1 {
-                                   DEFAULT
-                                   -> case Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1
-                                             `cast`
-                                           (Text.PrettyPrint.HughesPJ.N:Doc[0]) of wild2 {
-                                        DEFAULT
-                                        -> Text.PrettyPrint.Annotated.HughesPJ.Beside
-                                             @ ()
-                                             wild2
-                                             GHC.Types.True
-                                             wild1
-                                        Text.PrettyPrint.Annotated.HughesPJ.Empty -> wild1 }
-                                   Text.PrettyPrint.Annotated.HughesPJ.Empty
-                                   -> Language.Fixpoint.Types.PrettyPrint.$fFixpointMaybe1
-                                        `cast`
-                                      (Text.PrettyPrint.HughesPJ.N:Doc[0]) } }))
-                        GHC.Types.True
-                        w1 of ds1 { (#,#) ipv ipv1 ->
-                 case Language.Fixpoint.Misc.donePhase1
-                        Language.Fixpoint.Misc.Loud
-                        Language.Fixpoint.Utils.Statistics.statistics2
-                        ipv of ds2 { (#,#) ipv2 ipv3 ->
-                 (# ipv2,
-                    Language.Fixpoint.Types.Constraints.$fMonoidResult_$cmempty
-                      @ (GHC.Integer.Type.Integer, a) #) } }) -}
-2a78bf95de525c340269c30a394c00f8
-  axiom Rep_Stats::
-      GHC.Generics.Rep Language.Fixpoint.Utils.Statistics.Stats
-        = GHC.Generics.D1
-            ('GHC.Generics.MetaData
-               "Stats"
-               "Language.Fixpoint.Utils.Statistics"
-               "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"
-               'GHC.Types.False)
-            (GHC.Generics.C1
-               ('GHC.Generics.MetaCons
-                  "Stats" 'GHC.Generics.PrefixI 'GHC.Types.True)
-               ((GHC.Generics.S1
-                   ('GHC.Generics.MetaSel
-                      ('GHC.Base.Just "cSizes")
-                      'GHC.Generics.NoSourceUnpackedness
-                      'GHC.Generics.NoSourceStrictness
-                      'GHC.Generics.DecidedLazy)
-                   (GHC.Generics.Rec0 [GHC.Types.Float])
-                 GHC.Generics.:*: (GHC.Generics.S1
-                                     ('GHC.Generics.MetaSel
-                                        ('GHC.Base.Just "cFreq")
-                                        'GHC.Generics.NoSourceUnpackedness
-                                        'GHC.Generics.NoSourceStrictness
-                                        'GHC.Generics.DecidedLazy)
-                                     (GHC.Generics.Rec0 [(GHC.Types.Float, GHC.Types.Int)])
-                                   GHC.Generics.:*: GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "cTotal")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedUnpack)
-                                                      (GHC.Generics.Rec0 GHC.Types.Float)))
-                GHC.Generics.:*: (GHC.Generics.S1
-                                    ('GHC.Generics.MetaSel
-                                       ('GHC.Base.Just "cMean")
-                                       'GHC.Generics.NoSourceUnpackedness
-                                       'GHC.Generics.SourceStrict
-                                       'GHC.Generics.DecidedUnpack)
-                                    (GHC.Generics.Rec0 GHC.Types.Float)
-                                  GHC.Generics.:*: (GHC.Generics.S1
-                                                      ('GHC.Generics.MetaSel
-                                                         ('GHC.Base.Just "cMax")
-                                                         'GHC.Generics.NoSourceUnpackedness
-                                                         'GHC.Generics.SourceStrict
-                                                         'GHC.Generics.DecidedUnpack)
-                                                      (GHC.Generics.Rec0 GHC.Types.Float)
-                                                    GHC.Generics.:*: GHC.Generics.S1
-                                                                       ('GHC.Generics.MetaSel
-                                                                          ('GHC.Base.Just "cSpeed")
-                                                                          'GHC.Generics.NoSourceUnpackedness
-                                                                          'GHC.Generics.SourceStrict
-                                                                          'GHC.Generics.DecidedUnpack)
-                                                                       (GHC.Generics.Rec0
-                                                                          GHC.Types.Float)))))
-2a78bf95de525c340269c30a394c00f8
-  data Stats
-    = Stats {cSizes :: [GHC.Types.Float],
-             cFreq :: [(GHC.Types.Float, GHC.Types.Int)],
-             cTotal :: {-# UNPACK #-}GHC.Types.Float,
-             cMean :: {-# UNPACK #-}GHC.Types.Float,
-             cMax :: {-# UNPACK #-}GHC.Types.Float,
-             cSpeed :: {-# UNPACK #-}GHC.Types.Float}
-915e1b243c44fffeb7da5427923516b6
-  cFreq ::
-    Language.Fixpoint.Utils.Statistics.Stats
-    -> [(GHC.Types.Float, GHC.Types.Int)]
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LSLLLL),1*U(A,1*U,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 ds2 }) -}
-4e49d6a603d1fe06ef0e3635dc2b3f2b
-  cMax :: Language.Fixpoint.Utils.Statistics.Stats -> GHC.Types.Float
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLSL),1*U(A,A,A,A,U,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 GHC.Types.F# dt2 }) -}
-a3f1a23f0775012f52934edb00bcf948
-  cMean ::
-    Language.Fixpoint.Utils.Statistics.Stats -> GHC.Types.Float
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLSLL),1*U(A,A,A,U,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 GHC.Types.F# dt1 }) -}
-ec0a975a3bf84a2c2793ac6aac52515b
-  cSizes ::
-    Language.Fixpoint.Utils.Statistics.Stats -> [GHC.Types.Float]
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(SLLLLL),1*U(1*U,A,A,A,A,A)>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 ds1 }) -}
-c7d2658e23d6c76a72d428f013c2fe65
-  cSpeed ::
-    Language.Fixpoint.Utils.Statistics.Stats -> GHC.Types.Float
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLLLLS),1*U(A,A,A,A,A,U)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 GHC.Types.F# dt3 }) -}
-38f52a8443f5e555d374970f2fcb9574
-  cTotal ::
-    Language.Fixpoint.Utils.Statistics.Stats -> GHC.Types.Float
-  RecSel Left Language.Fixpoint.Utils.Statistics.Stats
-  {- Arity: 1, HasNoCafRefs,
-     Strictness: <S(LLSLLL),1*U(A,A,U,A,A,A)>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (ds :: Language.Fixpoint.Utils.Statistics.Stats) ->
-                 case ds of wild { Language.Fixpoint.Utils.Statistics.Stats ds1 ds2 dt dt1 dt2 dt3 ->
-                 GHC.Types.F# dt }) -}
-c0f44f55507843032bac925b5998623d
-  statistics ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Types.IO
-         (Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a))
-  {- Arity: 3, Strictness: <L,A><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Statistics.statistics1
-                  `cast`
-                (forall (a :: <*>_N).
-                 <Language.Fixpoint.Types.Config.Config>_R
-                 ->_R <Language.Fixpoint.Types.Constraints.FInfo a>_R
-                 ->_R Sym (GHC.Types.N:IO[0]
-                               <Language.Fixpoint.Types.Constraints.Result
-                                  (GHC.Integer.Type.Integer, a)>_R)) -}
-dfab519a6ad9f1a3bb2863bae5f6fb19
-  statistics1 ::
-    Language.Fixpoint.Types.Config.Config
-    -> Language.Fixpoint.Types.Constraints.FInfo a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld,
-          Language.Fixpoint.Types.Constraints.Result
-            (GHC.Integer.Type.Integer, a) #)
-  {- Arity: 3, Strictness: <L,A><L,U(U,U,U,U,U,U,U,U,U,U,U)><S,U>,
-     Inline: INLINE[0],
-     Unfolding: InlineRule (3, True, True)
-                (\ @ a
-                   (w :: Language.Fixpoint.Types.Config.Config)
-                   (w1 :: Language.Fixpoint.Types.Constraints.FInfo a)
-                   (w2 :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 Language.Fixpoint.Utils.Statistics.$wstatistics @ a w1 w2) -}
-c97d39679c921e9b3833273a61395799
-  statistics2 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Statistics"#) -}
-af905134b570844bf07c8f65976f6b08
-  statistics3 ::
-    [GHC.Types.Float] -> (GHC.Types.Float, GHC.Types.Int)
-  {- Arity: 1, Strictness: <L,U>m,
-     Unfolding: InlineRule (1, True, False)
-                (\ (x :: [GHC.Types.Float]) ->
-                 (GHC.List.head @ GHC.Types.Float x,
-                  case GHC.List.$wlenAcc @ GHC.Types.Float x 0# of ww2 { DEFAULT ->
-                  GHC.Types.I# ww2 })) -}
-d328661b20e70628abb1d87d24f40e04
-  statistics4 ::
-    [Language.Fixpoint.Types.Constraints.FInfo a] -> [GHC.Types.Float]
-  {- Arity: 1, HasNoCafRefs, Strictness: <S,1*U> -}
-a7b1e85e48e2041b31efe0985fd692df
-  statistics5 ::
-    Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails ()
-    -> GHC.Base.String -> GHC.Base.String
-  {- Arity: 2, HasNoCafRefs,
-     Unfolding: (\ (ds :: Text.PrettyPrint.Annotated.HughesPJ.AnnotDetails
-                            ())
-                   (eta :: GHC.Base.String)[OneShot] ->
-                 case ds of wild {
-                   DEFAULT -> eta
-                   Text.PrettyPrint.Annotated.HughesPJ.NoAnnot s5 dt1
-                   -> case s5 of wild1 {
-                        Text.PrettyPrint.Annotated.HughesPJ.Chr dt
-                        -> GHC.Types.: @ GHC.Types.Char (GHC.Types.C# dt) eta
-                        Text.PrettyPrint.Annotated.HughesPJ.Str s6
-                        -> GHC.Base.++ @ GHC.Types.Char s6 eta
-                        Text.PrettyPrint.Annotated.HughesPJ.PStr s6
-                        -> GHC.Base.++ @ GHC.Types.Char s6 eta } }) -}
-instance GHC.Generics.Generic [Language.Fixpoint.Utils.Statistics.Stats]
-  = Language.Fixpoint.Utils.Statistics.$fGenericStats
-instance Control.DeepSeq.NFData [Language.Fixpoint.Utils.Statistics.Stats]
-  = Language.Fixpoint.Utils.Statistics.$fNFDataStats
-instance Language.Fixpoint.Types.PrettyPrint.PPrint [Language.Fixpoint.Utils.Statistics.Stats]
-  = Language.Fixpoint.Utils.Statistics.$fPPrintStats
-instance GHC.Show.Show [Language.Fixpoint.Utils.Statistics.Stats]
-  = Language.Fixpoint.Utils.Statistics.$fShowStats
-family instance GHC.Generics.Rep [Language.Fixpoint.Utils.Statistics.Stats]
-  = Language.Fixpoint.Utils.Statistics.Rep_Stats
-"SPEC/Language.Fixpoint.Utils.Statistics $dmrnf @ Stats" [ALWAYS] forall ($dGNFData :: Control.DeepSeq.GNFData
-                                                                                         (GHC.Generics.Rep
-                                                                                            Language.Fixpoint.Utils.Statistics.Stats))
-                                                                         ($dGeneric :: GHC.Generics.Generic
-                                                                                         Language.Fixpoint.Utils.Statistics.Stats)
-                                                                         ($dNFData :: Control.DeepSeq.NFData
-                                                                                        Language.Fixpoint.Utils.Statistics.Stats)
-  Control.DeepSeq.$dmrnf @ Language.Fixpoint.Utils.Statistics.Stats
-                         $dNFData
-                         $dGeneric
-                         $dGNFData
-  = Language.Fixpoint.Utils.Statistics.$fNFDataStats_$s$dmrnf
-"SPEC/Language.Fixpoint.Utils.Statistics $fPPrint(,) @ Float @ Int" [ALWAYS] forall ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                    GHC.Types.Int)
-                                                                                    ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                   GHC.Types.Float)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,) @ GHC.Types.Float
-                                                  @ GHC.Types.Int
-                                                  $dPPrint
-                                                  $dPPrint1
-  = Language.Fixpoint.Utils.Statistics.$s$fPPrint(,)
-"SPEC/Language.Fixpoint.Utils.Statistics $fPPrint(,)_$cpprintPrec @ Float @ Int" [ALWAYS] forall ($dPPrint1 :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                 GHC.Types.Int)
-                                                                                                 ($dPPrint :: Language.Fixpoint.Types.PrettyPrint.PPrint
-                                                                                                                GHC.Types.Float)
-  Language.Fixpoint.Types.PrettyPrint.$fPPrint(,)_$cpprintPrec @ GHC.Types.Float
-                                                               @ GHC.Types.Int
-                                                               $dPPrint
-                                                               $dPPrint1
-  = Language.Fixpoint.Utils.Statistics.$s$fPPrint(,)_$s$fPPrint(,)_$cpprintPrec
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/unix/Language/Fixpoint/Utils/Progress.dump-hi b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/unix/Language/Fixpoint/Utils/Progress.dump-hi
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build/unix/Language/Fixpoint/Utils/Progress.dump-hi
+++ /dev/null
@@ -1,345 +0,0 @@
-
-==================== FINAL INTERFACE ====================
-2017-05-02 18:35:43.808455 UTC
-
-interface liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf:Language.Fixpoint.Utils.Progress 8002
-  interface hash: 2d10c0f8a98f5ec9389adabd0cff3c1b
-  ABI hash: c33622b0de2ac75cce2fddefd881586d
-  export-list hash: 470eada57a968d087705a49045e28146
-  orphan hash: 693e9af84d3dfcc71e640e005bdc5e2e
-  flag hash: ad2a2de9c90cf8a18002f9ca6039214f
-  sig of: Nothing
-  used TH splices: False
-  where
-exports:
-  Language.Fixpoint.Utils.Progress.progressClose
-  Language.Fixpoint.Utils.Progress.progressInit
-  Language.Fixpoint.Utils.Progress.progressTick
-  Language.Fixpoint.Utils.Progress.withProgress
-module dependencies:
-package dependencies: ansi-terminal-0.6.2.3@ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo
-                      array-0.5.1.1@array-0.5.1.1
-                      ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-                      async-2.1.1@async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK base-4.9.1.0
-                      binary-0.8.3.0@binary-0.8.3.0
-                      bytestring-0.10.8.1@bytestring-0.10.8.1
-                      cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I
-                      concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ
-                      containers-0.5.7.1@containers-0.5.7.1
-                      data-default-0.7.1.1@data-default-0.7.1.1-7EGYJX2YWqWJRbPFUHNoCr
-                      data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD
-                      data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK
-                      data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl
-                      data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l
-                      deepseq-1.4.2.0@deepseq-1.4.2.0 directory-1.3.0.0@directory-1.3.0.0
-                      dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD
-                      exceptions-0.8.3@exceptions-0.8.3-ADEDRATtUrMK1JW4zMQ9U
-                      filepath-1.4.1.1@filepath-1.4.1.1
-                      ghc-boot-th-8.0.2@ghc-boot-th-8.0.2 ghc-prim-0.5.0.0
-                      integer-gmp-1.0.0.1 mtl-2.2.1@mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-                      old-locale-1.0.0.7@old-locale-1.0.0.7-KGBP1BSKxH5GCm0LnZP04j
-                      process-1.4.3.0@process-1.4.3.0
-                      stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve
-                      template-haskell-2.11.1.0
-                      terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4
-                      text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-                      time-1.6.0.1@time-1.6.0.1 transformers-0.5.2.0@transformers-0.5.2.0
-                      unix-2.7.2.1@unix-2.7.2.1
-orphans: base-4.9.1.0:GHC.Base base-4.9.1.0:GHC.Float
-         binary-0.8.3.0@binary-0.8.3.0:Data.Binary.Generic
-         bytestring-0.10.8.1@bytestring-0.10.8.1:Data.ByteString.Builder
-         data-default-instances-containers-0.0.1@data-default-instances-containers-0.0.1-bob6IQGdJq92c061H46zK:Data.Default.Instances.Containers
-         data-default-instances-dlist-0.0.1@data-default-instances-dlist-0.0.1-FKnZBeovJMk4M89wQxDhjl:Data.Default.Instances.DList
-         data-default-instances-old-locale-0.0.1@data-default-instances-old-locale-0.0.1-9zaGDEmgOixKkmLylWdN5l:Data.Default.Instances.OldLocale
-         stm-2.4.4.1@stm-2.4.4.1-JQn4hNPyYjP5m9AcbI88Ve:Control.Monad.STM
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Show
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Calendar.Gregorian
-         time-1.6.0.1@time-1.6.0.1:Data.Time.Format.Parse
-         time-1.6.0.1@time-1.6.0.1:Data.Time.LocalTime.LocalTime
-         transformers-0.5.2.0@transformers-0.5.2.0:Control.Monad.Trans.Error
-family instance modules: base-4.9.1.0:Control.Applicative
-                         base-4.9.1.0:Data.Complex base-4.9.1.0:Data.Either
-                         base-4.9.1.0:Data.Functor.Const base-4.9.1.0:Data.Functor.Identity
-                         base-4.9.1.0:Data.List.NonEmpty base-4.9.1.0:Data.Monoid
-                         base-4.9.1.0:Data.Semigroup base-4.9.1.0:Data.Type.Equality
-                         base-4.9.1.0:Data.Version base-4.9.1.0:Data.Void
-                         base-4.9.1.0:GHC.Exts base-4.9.1.0:GHC.Generics
-                         base-4.9.1.0:GHC.IO.Exception base-4.9.1.0:GHC.TypeLits
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntMap.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.IntSet.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Map.Base
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Sequence
-                         containers-0.5.7.1@containers-0.5.7.1:Data.Set.Base
-                         dlist-0.8.0.2@dlist-0.8.0.2-6Wnps4GD7EFnRucVzXIFD:Data.DList
-                         ghc-boot-th-8.0.2@ghc-boot-th-8.0.2:GHC.LanguageExtensions.Type
-                         template-haskell-2.11.1.0:Language.Haskell.TH.Syntax
-                         terminal-size-0.3.2.1@terminal-size-0.3.2.1-LL700oIgYTEEtJWQuzY2Y4:System.Console.Terminal.Common
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text
-                         text-1.2.2.1@text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR:Data.Text.Lazy
-import  -/  ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY:System.Console.AsciiProgress 9caa8c742b5fcb492670ca59b2046c82
-import  -/  ascii-progress-0.3.3.0@ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY:System.Console.AsciiProgress.Internal 3e57926debd6d4a12745e817aa93d0d5
-import  -/  base-4.9.1.0:Control.Monad a6784c5dab0d75c63dabec5a37843f98
-import  -/  base-4.9.1.0:Data.IORef 71c87b0b25a8bca3e3f4497725f5e543
-import  -/  base-4.9.1.0:GHC.Base c4231c43c07e46080a26bf94094c7aa1
-import  -/  base-4.9.1.0:GHC.IO.Unsafe 1c057c642b0e201f55a24585d3d94564
-import  -/  base-4.9.1.0:GHC.IORef 306bd532f2f3b000347cbe6316adc20e
-import  -/  base-4.9.1.0:GHC.Real 82e4e59051a13dba1da63e1e970a69e6
-import  -/  base-4.9.1.0:Prelude 22dd289b8469a8fa8dc81cab7b237771
-import  -/  base-4.9.1.0:System.IO.Unsafe 1e3c5b8dd8cf6850ae43cce967bb46cd
-import  -/  cmdargs-0.10.17@cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I:System.Console.CmdArgs.Verbosity 7bf06f3afbdc9ccb1d15f1e14eae9da1
-import  -/  concurrent-output-1.7.9@concurrent-output-1.7.9-3kS8cAeEcLcYjDfj5flxQ:System.Console.Regions d02a80457369aaa808dea94bd0ed102f
-import  -/  data-default-class-0.1.2.0@data-default-class-0.1.2.0-GsXqKN6o1X9jr0fF5qCVD:Data.Default.Class 6e6ff0df81cdc438838c4b9b3d4260b1
-import  -/  ghc-prim-0.5.0.0:GHC.Types 89f8de4f08018c9177c98d979eae0e45
-92c5507181360372babca5b5f68e2d7c
-  $trModule :: GHC.Types.Module
-  {- HasNoCafRefs, Strictness: m,
-     Unfolding: (GHC.Types.Module
-                   Language.Fixpoint.Utils.Progress.$trModule2
-                   Language.Fixpoint.Utils.Progress.$trModule1) -}
-7fd7d7eb2415a250062af0c6b7a1de1c
-  $trModule1 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "Language.Fixpoint.Utils.Progress"#) -}
-1bf1bff569e8d0b1defe46717aa1eb63
-  $trModule2 :: GHC.Types.TrName
-  {- HasNoCafRefs, Strictness: m1,
-     Unfolding: (GHC.Types.TrNameS
-                   "liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf"#) -}
-63049062e5179ee22533e49732bc32db
-  pbRef ::
-    GHC.IORef.IORef
-      (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-  {- Inline: NOINLINE -}
-b722a26a9046064106c0291a4455a3c5
-  progressClose :: GHC.Types.IO ()
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Progress.progressClose1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <()>_R)) -}
-b02b430fa5e483fd1064421671350a0f
-  progressClose1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Utils.Progress.pbRef
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                               System.Console.AsciiProgress.ProgressBar>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                        var#
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of wild1 {
-                   GHC.Base.Nothing -> (# ipv, GHC.Tuple.() #)
-                   GHC.Base.Just p
-                   -> System.Console.AsciiProgress.complete1 p ipv } } }) -}
-960917b1f2dcb63412196369c958ced7
-  progressInit :: GHC.Types.Int -> GHC.Types.IO ()
-  {- Arity: 2, Strictness: <L,1*U(U)><S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Progress.progressInit1
-                  `cast`
-                (<GHC.Types.Int>_R ->_R Sym (GHC.Types.N:IO[0] <()>_R)) -}
-d9f8d83ded56c4a06b395a0056e4e1b6
-  progressInit1 ::
-    GHC.Types.Int
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 2, Strictness: <L,1*U(U)><S,U>,
-     Unfolding: (\ (n :: GHC.Types.Int)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case System.Console.CmdArgs.Verbosity.ref
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ System.Console.CmdArgs.Verbosity.Verbosity
-                        var#
-                        eta of ds { (#,#) ipv ipv1 ->
-                 let {
-                   $j :: GHC.Prim.Void#
-                         -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-                     {- Arity: 1, Strictness: <L,A> -}
-                   = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                     case System.Console.AsciiProgress.newProgressBar1
-                            (System.Console.AsciiProgress.Internal.Options
-                               Language.Fixpoint.Utils.Progress.progressInit6
-                               System.Console.AsciiProgress.Internal.$fDefaultOptions4
-                               Language.Fixpoint.Utils.Progress.progressInit5
-                               (GHC.Real.$fIntegralInt_$ctoInteger n)
-                               Language.Fixpoint.Utils.Progress.progressInit4
-                               Language.Fixpoint.Utils.Progress.progressInit2
-                               System.Console.AsciiProgress.Internal.getProgressStr)
-                            ipv of ds1 { (#,#) ipv2 ipv3 ->
-                     case Language.Fixpoint.Utils.Progress.pbRef
-                            `cast`
-                          (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                                   System.Console.AsciiProgress.ProgressBar>_N) of wild1 { GHC.STRef.STRef var#1 ->
-                     case GHC.Prim.writeMutVar#
-                            @ GHC.Prim.RealWorld
-                            @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                            var#1
-                            (GHC.Base.Just @ System.Console.AsciiProgress.ProgressBar ipv3)
-                            ipv2 of s2# { DEFAULT ->
-                     (# s2#, GHC.Tuple.() #) } } }
-                 } in
-                 case ipv1 of wild1 {
-                   System.Console.CmdArgs.Verbosity.Quiet -> (# ipv, GHC.Tuple.() #)
-                   System.Console.CmdArgs.Verbosity.Normal -> $j GHC.Prim.void#
-                   System.Console.CmdArgs.Verbosity.Loud
-                   -> $j GHC.Prim.void# } } }) -}
-e9ca5bc0ca4a2df5bfa8a02b2c963028
-  progressInit2 :: GHC.Base.Maybe [GHC.Types.Char]
-  {- Strictness: m2,
-     Unfolding: (GHC.Base.Just
-                   @ [GHC.Types.Char]
-                   Language.Fixpoint.Utils.Progress.progressInit3) -}
-e1626c782ca9acb7e147660cea367234
-  progressInit3 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString# "Done solving."#) -}
-b8ff98648e203788f50e000a8b31b125
-  progressInit4 :: GHC.Types.Int
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.I# 80#) -}
-c7eb38c3c6da23c7223153a793148578
-  progressInit5 :: GHC.Types.Char
-  {- HasNoCafRefs, Strictness: m, Unfolding: (GHC.Types.C# '.'#) -}
-1a936dbe785331c38c1c6eb9060ab2af
-  progressInit6 :: [GHC.Types.Char]
-  {- Unfolding: (GHC.CString.unpackCString#
-                   "Working :percent [:bar]"#) -}
-4251deeb770e243019a2ae5545dd09a2
-  progressTick :: GHC.Types.IO ()
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (0, True, True)
-                Language.Fixpoint.Utils.Progress.progressTick1
-                  `cast`
-                (Sym (GHC.Types.N:IO[0] <()>_R)) -}
-ac5566bb4a52b014287b9945a9b05889
-  progressTick1 ::
-    GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, () #)
-  {- Arity: 1, Strictness: <S,U>,
-     Unfolding: InlineRule (1, True, False)
-                (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Utils.Progress.pbRef
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                               System.Console.AsciiProgress.ProgressBar>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                        var#
-                        s of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of wild1 {
-                   GHC.Base.Nothing -> (# ipv, GHC.Tuple.() #)
-                   GHC.Base.Just pr
-                   -> System.Console.AsciiProgress.tick1 pr ipv } } }) -}
-711691385c363d35855a35d90e2def22
-  withProgress :: GHC.Types.Int -> GHC.Types.IO a -> GHC.Types.IO a
-  {- Arity: 2, Strictness: <L,U(U)><L,C(U(U,U))>,
-     Unfolding: (\ @ a (n :: GHC.Types.Int) (act :: GHC.Types.IO a) ->
-                 System.Console.Regions.displayConsoleRegions
-                   @ GHC.Types.IO
-                   @ a
-                   Control.Monad.IO.Class.$fMonadIOIO
-                   Control.Monad.Catch.$fMonadMaskIO
-                   (\ (s :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                    case System.Console.CmdArgs.Verbosity.ref
-                           `cast`
-                         (GHC.IORef.N:IORef[0] <System.Console.CmdArgs.Verbosity.Verbosity>_N) of wild { GHC.STRef.STRef var# ->
-                    case GHC.Prim.readMutVar#
-                           @ GHC.Prim.RealWorld
-                           @ System.Console.CmdArgs.Verbosity.Verbosity
-                           var#
-                           s of ds { (#,#) ipv ipv1 ->
-                    let {
-                      $j :: GHC.Prim.Void# -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-                        {- Arity: 1, Strictness: <L,A> -}
-                      = \ (w :: GHC.Prim.Void#)[OneShot] ->
-                        case System.Console.AsciiProgress.newProgressBar1
-                               (System.Console.AsciiProgress.Internal.Options
-                                  Language.Fixpoint.Utils.Progress.progressInit6
-                                  System.Console.AsciiProgress.Internal.$fDefaultOptions4
-                                  Language.Fixpoint.Utils.Progress.progressInit5
-                                  (GHC.Real.$fIntegralInt_$ctoInteger n)
-                                  Language.Fixpoint.Utils.Progress.progressInit4
-                                  Language.Fixpoint.Utils.Progress.progressInit2
-                                  System.Console.AsciiProgress.Internal.getProgressStr)
-                               ipv of ds1 { (#,#) ipv2 ipv3 ->
-                        case Language.Fixpoint.Utils.Progress.pbRef
-                               `cast`
-                             (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                                      System.Console.AsciiProgress.ProgressBar>_N) of wild1 { GHC.STRef.STRef var#1 ->
-                        case GHC.Prim.writeMutVar#
-                               @ GHC.Prim.RealWorld
-                               @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                               var#1
-                               (GHC.Base.Just @ System.Console.AsciiProgress.ProgressBar ipv3)
-                               ipv2 of s2# { DEFAULT ->
-                        case act `cast` (GHC.Types.N:IO[0] <a>_R)
-                               s2# of ds2 { (#,#) ipv4 ipv5 ->
-                        Language.Fixpoint.Utils.Progress.withProgress1
-                          @ a
-                          ipv5
-                          ipv4 } } } }
-                    } in
-                    case ipv1 of wild1 {
-                      System.Console.CmdArgs.Verbosity.Quiet
-                      -> case act `cast` (GHC.Types.N:IO[0] <a>_R)
-                                ipv of ds1 { (#,#) ipv2 ipv3 ->
-                         Language.Fixpoint.Utils.Progress.withProgress1 @ a ipv3 ipv2 }
-                      System.Console.CmdArgs.Verbosity.Normal -> $j GHC.Prim.void#
-                      System.Console.CmdArgs.Verbosity.Loud -> $j GHC.Prim.void# } } })
-                     `cast`
-                   (Sym (GHC.Types.N:IO[0] <a>_R))) -}
-49e925ca5eab077cc88354c06157f75c
-  withProgress1 ::
-    a
-    -> GHC.Prim.State# GHC.Prim.RealWorld
-    -> (# GHC.Prim.State# GHC.Prim.RealWorld, a #)
-  {- Arity: 2, Strictness: <L,U><S,U>,
-     Unfolding: (\ @ a
-                   (r :: a)
-                   (eta :: GHC.Prim.State# GHC.Prim.RealWorld)[OneShot] ->
-                 case Language.Fixpoint.Utils.Progress.pbRef
-                        `cast`
-                      (GHC.IORef.N:IORef[0] <GHC.Base.Maybe
-                                               System.Console.AsciiProgress.ProgressBar>_N) of wild { GHC.STRef.STRef var# ->
-                 case GHC.Prim.readMutVar#
-                        @ GHC.Prim.RealWorld
-                        @ (GHC.Base.Maybe System.Console.AsciiProgress.ProgressBar)
-                        var#
-                        eta of ds1 { (#,#) ipv ipv1 ->
-                 case ipv1 of wild1 {
-                   GHC.Base.Nothing -> (# ipv, r #)
-                   GHC.Base.Just p
-                   -> case p of ww { System.Console.AsciiProgress.ProgressBar ww1 ww2 ww3 ->
-                      case ww1 of ww4 { System.Console.AsciiProgress.Internal.ProgressBarInfo ww5 ww6 ww7 ww8 ->
-                      case ww6 of ww9 { Control.Concurrent.Chan.Chan ww10 ww11 ->
-                      case Control.Concurrent.Chan.$wwriteChan
-                             @ GHC.Integer.Type.Integer
-                             ww10
-                             ww11
-                             (case ww5 of wild2 { System.Console.AsciiProgress.Internal.Options ds2 ds3 ds4 ds5 ds6 ds7 ds8 ->
-                              ds5 })
-                             ipv of ds2 { (#,#) ipv2 ipv3 ->
-                      case GHC.Prim.atomically#
-                             @ ()
-                             (Control.Concurrent.Async.waitSTM1 @ () ww2)
-                             ipv2 of ds3 { (#,#) ipv4 ipv5 ->
-                      (# ipv4, r #) } } } } } } } }) -}
-vectorised variables:
-vectorised tycons:
-vectorised reused tycons:
-parallel variables:
-parallel tycons:
-trusted: none
-require own pkg trusted: False
-
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.conf b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.conf
deleted file mode 100644
--- a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-name: liquid-fixpoint
-version: 0.6.0.1
-id: liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf
-key: liquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf
-license: BSD3
-copyright: 2010-17 Ranjit Jhala, University of California, San Diego.
-maintainer: jhala@cs.ucsd.edu
-homepage: https://github.com/ucsd-progsys/liquid-fixpoint
-synopsis: Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
-description:
-    This package is a Haskell wrapper to the SMTLIB-based
-    Horn-Clause/Logical Implication constraint solver used
-    for Liquid Types.
-    .
-    The package includes:
-    .
-    1. Types for Expressions, Predicates, Constraints, Solutions
-    .
-    2. Code for solving constraints
-    .
-    Requirements
-    .
-    In addition to the .cabal dependencies you require
-    .
-    - A Z3 (<http://z3.codeplex.com>) or CVC4 (<http://cvc4.cs.nyu.edu>) binary.
-category: Language
-author: Ranjit Jhala, Niki Vazou, Eric Seidel
-exposed: True
-exposed-modules:
-    Language.Fixpoint.Types.Names Language.Fixpoint.Types.Errors
-    Language.Fixpoint.Types.Config Language.Fixpoint.Types.Visitor
-    Language.Fixpoint.Types.PrettyPrint Language.Fixpoint.Types.Spans
-    Language.Fixpoint.Types.Sorts Language.Fixpoint.Types.Refinements
-    Language.Fixpoint.Types.Substitutions
-    Language.Fixpoint.Types.Environments
-    Language.Fixpoint.Types.Constraints
-    Language.Fixpoint.Types.Triggers Language.Fixpoint.Types.Solutions
-    Language.Fixpoint.Types.Utils Language.Fixpoint.Types
-    Language.Fixpoint.Graph.Types Language.Fixpoint.Graph.Reducible
-    Language.Fixpoint.Graph.Indexed Language.Fixpoint.Graph.Partition
-    Language.Fixpoint.Graph.Deps Language.Fixpoint.Graph
-    Language.Fixpoint.Defunctionalize Language.Fixpoint.Smt.Types
-    Language.Fixpoint.Smt.Bitvector Language.Fixpoint.Smt.Theories
-    Language.Fixpoint.Smt.Serialize Language.Fixpoint.Smt.Interface
-    Language.Fixpoint.Minimize Language.Fixpoint.Solver
-    Language.Fixpoint.Parse Language.Fixpoint.SortCheck
-    Language.Fixpoint.Misc Language.Fixpoint.Utils.Progress
-    Language.Fixpoint.Utils.Files
-    Language.Fixpoint.Solver.GradualSolution
-    Language.Fixpoint.Solver.Solution Language.Fixpoint.Solver.Worklist
-    Language.Fixpoint.Solver.Monad Language.Fixpoint.Solver.TrivialSort
-    Language.Fixpoint.Solver.UniqifyKVars
-    Language.Fixpoint.Solver.UniqifyBinds
-    Language.Fixpoint.Solver.Eliminate
-    Language.Fixpoint.Solver.Instantiate
-    Language.Fixpoint.Solver.Sanitize
-    Language.Fixpoint.Utils.Statistics
-    Language.Fixpoint.Solver.GradualSolve
-    Language.Fixpoint.Solver.Solve
-abi: 
-trusted: False
-import-dirs: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build
-library-dirs: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build
-dynamic-library-dirs: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/build
-data-dir: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint
-hs-libraries: HSliquid-fixpoint-0.6.0.1-6TLfofWrTFvFP1QJmA2Rhf
-depends:
-    ansi-terminal-0.6.2.3-4HPxin1iv6RAndS8lH3nzo array-0.5.1.1
-    ascii-progress-0.3.3.0-AaLvoyEtYmuH04MiSlDfRY
-    async-2.1.1-4n6HEMPJR2eJK0JpvCfuPK
-    attoparsec-0.13.1.0-KwckfZOQnr04d9ofoJ9Hh4 base-4.9.1.0
-    bifunctors-5.4.1-LZeQTL0Uaws6v2aJY5STuc binary-0.8.3.0
-    boxes-0.1.4-6YjYnmNJvyiGUQgGc0o5m bytestring-0.10.8.1
-    cereal-0.5.4.0-BsAGxfp8yAs3CiRo2E875e
-    cmdargs-0.10.17-IWa8ygdJhnJBShkQXN8V9I containers-0.5.7.1
-    deepseq-1.4.2.0 directory-1.3.0.0
-    dotgen-0.4.2-BZVF2GHTiQa3V3DtnOX8Xh
-    fgl-5.5.3.1-BBO2AKBsFGnFCFJiVxJiz
-    fgl-visualize-0.1.0.1-GczPFReGtq8B1TZwh6G6nq
-    filemanip-0.3.6.3-39GGNCiHahb1wSL6fkG6wy filepath-1.4.1.1
-    ghc-prim-0.5.0.0 hashable-1.2.6.0-3EXxoqeEgbfAKr6aGkye6x
-    intern-0.9.1.4-L6DPHi71I8uFQt9sdHfbWx
-    located-base-0.1.1.0-HUdCVrbsrYd4xCcb0zuvg3
-    mtl-2.2.1-BLKBelFsPB3BoFeSWSOYj6
-    parallel-3.2.1.1-KQJHWCcq2Ka569Stb10nhx
-    parsec-3.1.11-113irVHGgd88sRnywByDNw pretty-1.1.3.3 process-1.4.3.0
-    syb-0.6-IcoSwlPi2Nx4zSqMmorFPS text-1.2.2.1-Ji7hMs2U4BkBwavd4taEVR
-    text-format-0.3.1.1-IdImYtolSdoC3n5Y2CJ8aG time-1.6.0.1
-    transformers-0.5.2.0
-    unordered-containers-0.2.8.0-1XEErQCPPPc2SEtcHHNx9o
-haddock-interfaces: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/doc/html/liquid-fixpoint/liquid-fixpoint.haddock
-haddock-html: /Users/niki/liquidtypes/liquidhaskell/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/doc/html/liquid-fixpoint
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/package.cache b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/package.cache
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/package.conf.inplace/package.cache and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/setup-config b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/setup-config
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/setup-config and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-build-cache b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-build-cache
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-build-cache and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-cabal-mod b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-cabal-mod
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-cabal-mod and /dev/null differ
diff --git a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-config-cache b/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-config-cache
deleted file mode 100644
Binary files a/liquid-fixpoint/.stack-work/dist/x86_64-osx/Cabal-1.24.2.0/stack-config-cache and /dev/null differ
diff --git a/liquid-fixpoint/.travis.yml b/liquid-fixpoint/.travis.yml
deleted file mode 100644
--- a/liquid-fixpoint/.travis.yml
+++ /dev/null
@@ -1,51 +0,0 @@
-language: c
-sudo: false
-
-# Only build master, develop, and PRs
-branches:
-  only:
-  - master
-  - develop
-  - parser-az
-
-matrix:
-  include:
-    - env: SMT="z3" CABAL=1.22 GHC=7.10.3
-      addons: {apt: {packages: [cabal-install-1.22,ghc-7.10.3,],sources: [hvr-ghc]}}
-    - env: SMT="z3" CABAL=1.24 GHC=8.0.1
-      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.1,],sources: [hvr-ghc]}}
-    - env: SMT="z3" CABAL=1.24 GHC=8.0.2
-      addons: {apt: {packages: [cabal-install-1.24,ghc-8.0.2,],sources: [hvr-ghc]}}
-    - env: CABALVER=head GHCVER=head
-      addons: {apt: {packages: [cabal-install-head,ghc-head],  sources: [hvr-ghc]}}
-
-  allow_failures:
-   - env: CABALVER=head GHCVER=head
-
-cache:
-  directories:
-  - $HOME/.cabal
-  - $HOME/.ghc
-
-before_install:
- - export PATH="$HOME/.cabal/bin:/opt/ghc/$GHC/bin:/opt/cabal/$CABAL/bin:$PATH"
- - scripts/travis clean_cache "$SMT"
-
-install:
- - scripts/travis install_cabal_deps
- - scripts/travis install_smt "$SMT"
-
-script:
- - scripts/travis do_build && scripts/travis do_test "$SMT"
- - scripts/travis clean_cache "$SMT"
-
-after_failure:
- - scripts/travis dump_fail_logs
-
-notifications:
-  slack:
-    rooms:
-      secure: VT1SqW+4WQKb2PXgObQ/rNdQN8pFK5LaFacxB0fEvRZ2FSbM3qp1NGgii7WHlQdr598+L5qYhkpy1B8ssgNeR7iMmYP4GV/fhCoMd8nTQHLSrTMH8iQgT0D7SnuKdk5FQq1IXWtHjUzXtTIhnkfwOJF/xYf6BMMrO0sCta5JZgg=
-    on_success: change
-    on_failure: always
-    on_start: never
diff --git a/liquid-fixpoint/CHANGES.md b/liquid-fixpoint/CHANGES.md
deleted file mode 100644
--- a/liquid-fixpoint/CHANGES.md
+++ /dev/null
@@ -1,29 +0,0 @@
-# CHANGES
-
-## NEXT
-
-## 0.3.0.0
-
-- Make interpreted mul and div the default, when `solver = z3`
-- Use `higherorder` flag to allow higher order binders into the environment 
-
-## 0.2.2.0
-
-- Added support for theory of Arrays `Map_t`, `Map_select`, `Map_store`
-
-- Added support for theory of Bitvectors -- see `Language.Fixpoint.Smt.Bitvector`
-
-- Added support for string literals
-
-## 0.2.1.0
-
-- Pre-compiled binaries of the underlying ocaml solver are now
-  provided for Linux, Mac OSX, and Windows.
-
-  No more need to install Ocaml!
-
-## 0.2.0.0
-
-- Parsing has been improved to require *much* fewer parentheses.
-
-- Experimental support for Z3's theory of real numbers with the `--real` flag.
diff --git a/liquid-fixpoint/LICENSE b/liquid-fixpoint/LICENSE
deleted file mode 100644
--- a/liquid-fixpoint/LICENSE
+++ /dev/null
@@ -1,30 +0,0 @@
-Copyright (c) 2013-2014, Ranjit Jhala
-
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without
-modification, are permitted provided that the following conditions are met:
-
-    * Redistributions of source code must retain the above copyright
-      notice, this list of conditions and the following disclaimer.
-
-    * Redistributions in binary form must reproduce the above
-      copyright notice, this list of conditions and the following
-      disclaimer in the documentation and/or other materials provided
-      with the distribution.
-
-    * Neither the name of Ranjit Jhala nor the names of other
-      contributors may be used to endorse or promote products derived
-      from this software without specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/liquid-fixpoint/Makefile b/liquid-fixpoint/Makefile
deleted file mode 100644
--- a/liquid-fixpoint/Makefile
+++ /dev/null
@@ -1,59 +0,0 @@
-
-OPTS="-W -O2 -XStandaloneDeriving"
-PROFOPTS="-O2 -rtsopts -prof -auto-all -caf-all -XStandaloneDeriving -XDeriveDataTypeable"
-
-CABAL=cabal
-CABALI=$(CABAL) install --ghc-options=$(OPTS)
-CABALP=$(CABAL) install --ghc-options=$(OPTS) -p
-
-DEPS=unix-compat transformers mtl filemanip text parsec ghc-paths deepseq comonad contravariant semigroupoids semigroups bifunctors hscolour ansi-terminal hashable unordered-containers
-
-TASTY=./dist/build/test/test
-
-all:
-	$(CABAL) install --ghc-options=$(OPTS)
-
-force:
-	$(CABAL) install --force-reinstalls --ghc-options=$(OPTS)
-
-rebuild: ocaml
-	make
-
-igoto:
-	$(CABAL) configure --ghc-options=$(OPTS)
-
-goto:
-	$(CABAL) build --ghc-options=$(OPTS)
-	cp dist/build/liquid/liquid ~/.cabal/bin/
-
-prof:
-	$(CABAL) install --enable-executable-profiling --enable-library-profiling --ghc-options=$(PROFOPTS)
-
-clean:
-	cabal clean
-
-docs:
-	$(CABAL) haddock --executables --internal --hoogle --hyperlink-source #--html-location=http://goto.ucsd.edu/~rjhala/llvm-haskell/
-
-
-deps:
-	$(CABALI) $(DEPS)
-
-pdeps:
-	$(CABALP) $(DEPS)
-
-lint:
-	hlint --colour --report .
-
-tags:
-	hasktags -c src/
-	hasktags -e src/
-	hasktags -x -c src/
-
-test:
-	cabal configure -fdevel --enable-tests --disable-library-profiling -O2
-	cabal build
-	cabal exec $(TASTY)
-
-test710:
-	$(TASTY)
diff --git a/liquid-fixpoint/README.md b/liquid-fixpoint/README.md
deleted file mode 100644
--- a/liquid-fixpoint/README.md
+++ /dev/null
@@ -1,303 +0,0 @@
-Liquid Fixpoint [![Hackage](https://img.shields.io/hackage/v/liquid-fixpoint.svg)](https://hackage.haskell.org/package/liquid-fixpoint) [![Hackage-Deps](https://img.shields.io/hackage-deps/v/liquid-fixpoint.svg)](http://packdeps.haskellers.com/feed?needle=liquid-fixpoint) [![Build Status](https://img.shields.io/travis/ucsd-progsys/liquid-fixpoint/master.svg)](https://travis-ci.org/ucsd-progsys/liquid-fixpoint)
-===============
-
-
-This package implements a Horn-Clause/Logical Implication constraint solver used
-for various Liquid Types. The solver uses SMTLIB2 to implement an algorithm similar to:
-
-+ [Houdini](https://users.soe.ucsc.edu/~cormac/papers/fme01.pdf)
-+ [cartesian predicate abstraction](http://swt.informatik.uni-freiburg.de/berit/papers/boolean-and-cartesian-....pdf)
-
-
-Requirements
-------------
-
-In addition to the .cabal dependencies you require an SMTLIB2 compatible solver binary:
-
-- [Z3](http://z3.codeplex.com)
-- [CVC4](http://cvc4.cs.nyu.edu)
-- [MathSat](http://mathsat.fbk.eu/download.html)
-
-If on Windows, please make sure to place the binary and any associated DLLs somewhere
-in your path.
-
-How To Build and Install
-------------------------
-
-Simply do:
-
-    git clone https://github.com/ucsd-progsys/liquid-fixpoint.git
-    cd liquid-fixpoint
-    stack install
-
-or (`cabal` instead of `stack` if you prefer.)
-
-
-Using SMTLIB-based SMT Solvers
-------------------------------
-
-You can use one of several SMTLIB2 compliant solvers, by:
-
-    fixpoint --smtsolver=z3 path/to/file.hs
-
-Currently, we support
-
-    * Z3
-    * CVC4
-    * MathSat
-
-
-
-Configuration Management
-------------------------
-
-It is very important that the version of Liquid Fixpoint be maintained properly.
-
-Suppose that the current version of Liquid Haskell is `A.B.C.D`:
-
-+ After a release to hackage is made, if any of the components `B`, `C`, or `D` are missing, they shall be added and set to `0`. Then the `D` component of Liquid Fixpoint shall be incremented by `1`. The version of Liquid Fixpoint is now `A.B.C.(D + 1)`
-
-+ The first time a new function or type is exported from Liquid Fixpoint, if any of the components `B`, or `C` are missing, they shall be added and set to `0`. Then the `C` component shall be incremented by `1`, and the `D` component shall stripped. The version of Liquid Fixpoint is now `A.B.(C + 1)`
-
-+ The first time the signature of an exported function or type is changed, or an exported function or type is removed (this includes functions or types that Liquid Fixpoint re-exports from its own dependencies), if the `B` component is missing, it shall be added and set to `0`. Then the `B` component shall be incremented by `1`, and the `C` and `D` components shall be stripped. The version of Liquid Fixpoint is now `A.(B + 1)`
-
-+ The `A` component shall be updated at the sole discretion of the project owners.
-
-It is recommended to use the [Bumper](https://hackage.haskell.org/package/bumper) utility to manage the versioning of Liquid Fixpoint. Bumper will automatically do the correct update to the cabal file. Additionally, it will update any packages that you have the source for that depend on Liquid Fixpoint.
-
-To update Liquid Fixpoint and Liquid Haskell, first clone Liquid Haskell and Liquid Fixpoint to a common location:
-
-```
-git clone https://github.com/ucsd-progsys/liquidhaskell.git
-git clone https://github.com/ucsd-progsys/liquid-fixpoint.git
-```
-
-To increment the `D` component of Liquid Fixpoint:
-
-```
-./path/to/bumper -3 liquid-fixpoint
-```
-
-This will update the `D` component of Liquid Fixpoint. If necessary, this will update the `Build-Depends` of Liquid Haskell. If the `Build-Depends` was updated, Liquid Haskell's `D` component will be incremented.
-
-To increment the `C` component of Liquid Fixpoint, and strip the `D` component:
-
-```
-./path/to/bumper --minor liquid-fixpoint
-```
-
-As before, this will update Liquid Fixpoint and, if necessary, Liquid Haskell.
-
-To increment the `B` component of Liquid Fixpoint, and strip the `D` and `C` components:
-
-```
-./path/to/bumper --major liquid-fixpoint
-```
-
-As before, this will update Liquid Fixpoint and, if necessary, Liquid Haskell
-
-SMTLIB2 Interface
------------------
-
-There is a new SMTLIB2 interface directly from Haskell:
-
-+ Language.Fixpoint.SmtLib2
-
-See `tests/smt2/{Smt.hs, foo.smt2}` for an example of how to use it.
-
-Options
--------
-
-`--higherorder` allows higher order binders into the environment
-
-`--extsolver` runs the **deprecated** external solver.
-
-`--parts` Partitions an `FInfo` into a `[FInfo]` and emits a bunch of files. So:
-
-    $ fixpoint -n -p path/to/foo.fq
-
-will now emit files:
-
-    path/to/.liquid/foo.1.fq
-    path/to/.liquid/foo.2.fq
-    . . .
-    path/to/.liquid/foo.k.fq
-
-and also a dot file with the constraint dependency graph:
-
-    path/to/.liquid/foo.fq.dot
-
-
-## FInfo Invariants
-
-### Binders
-
-This is the field
-
-```
-     , bs       :: !BindEnv         -- ^ Bind  |-> (Symbol, SortedReft)
-```
-
-or in the .fq files as
-
-```
-bind 1 x : ...
-bind 2 y : ...
-```
-
-* Each `BindId` must be a distinct `Int`,
-* Each `BindId` that appears in a constraint
-  environment i.e. inside _any_ `IBindEnv`
-  must appear inside the `bs`
-
-### Environments
-
-* Each constraint's environment is a set of `BindId`
-  which must be defined in the `bindInfo`. Furthermore
-
-* Each constraint should not have _duplicate_ names in its
-  environment, that is if you have two binders
-
-```
-  bind 1 x : ...
-  bind 12 x : ...
-```
-
-  Then a single `IBindEnv` should only mention _at most_
-  one of `1` or `12`.
-
-* There is also a "tree-shape" property that its a bit hard
-  to describe ... TODO     
-
-### LHS
-
-Each `slhs` of a constraint is a `SortedReft`.
-
-- Each `SortredReft` is basically a `Reft` -- a logical predicate.
-  The important bit is that a `KVar` i.e. terms of the formalized
-
-```
-     $k1[x1:=y1][x2:=y2]...[xn:=yn]
-```
-
-  That is represented in the `Expr` type as
-
-```
-  | PKVar  !KVar !Subst
-```
-
-  must appear _only_ at the **top-level** that is not under _any_
-  other operators, i.e. not as a sub-`Expr` of other expressions.
-
-
-- This is basically a predicate that needs to be "well sorted"
-  with respect to the `BindId`, intuitively
-
-```
-    x:int, y:int |- x + y : int
-```
-
-  is well sorted. but
-
-```
-    x:int  |- x + y : int
-```
-
-  is not, and
-
-```
-    x:int, y: list |- x + y : int
-```
-
-  is not. The exact definition is formalized in `Language.Fixpoint.SortCheck`
-
-
-### RHS
-
-Similarly each `rhs` of a `SubC` must either be a single `$k[...]` or an plain `$k`-free `Expr`.
-
-### Global vs. Distinct Literals
-
-```
-     , gLits    :: !(SEnv Sort)               -- ^ Global Constant symbols
-     , dLits    :: !(SEnv Sort)       
-```
-
-The _global_ literals `gLits` are symbols that
-are in scope _everywhere_ i.e. need not be separately
-defined in individual environments. These include things like
-
-- uninterpreted _measure_ functions `len`, `height`,
-- uninterpreted _data constructor_ literals `True`, `False`
-
-Suppose you have an enumerated type like:
-
-```
-data Day = Sun | Mon | Tue | Wed | ... | Sat
-```
-
-You can model the above values in fixpoint as:
-
-```
-constant lit#Sun : Day
-constant lit#Mon : Day
-constant lit#Tue : Day
-constant lit#Wed : Day
-```
-
-The _distinct_ literals are a subset of the above where we
-want to tell the SMT solver that the values are *distinct*
-i.e. **not equal** to each other, for example, you can
-**additionally** specify this as:
-
-```
-distinct lit#Sun : Day
-distinct lit#Mon : Day
-distinct lit#Tue : Day
-distinct lit#Wed : Day
-```
-
-The above two are represented programmatically by generating   
-suitable `Symbol` values (for the literals  see `litSymbol`)
-and `Sort` values as `FTC FTycon` and then making an `SEnv`
-from the `[(Symbol, Sort)]`.
-
-### Sorts
-
-> What's the difference between an FTC and an FObj?
-
-In early versions of fixpoint, there was support for 
-three sorts for expressions (`Expr`) that were sent 
-to the SMT solver:
-
-1. `int`
-2. `bool`
-3. "other"
-
-The `FObj` sort was introduced to represent essentially _all_ 
-non-int and non-bool values (e.g. tuples, lists, trees, pointers...)
-
-However, we later realized that it is valuable to keep _more_
-precise information for `Expr`s and so we introduced the `FTC`
-(fixpoint type constructor), which lets us represent the above
-respectively as:
-
-- `FTC "String" []`                   -- in Haskell `String`
-- `FTC "Tuple"  [FInt, Bool]`         -- in Haskell `(Int, Bool)`
-- `FTC "List" [FTC "List" [FInt]]`    -- in Haskell `[[Int]]`
-
-> There is a comment that says FObj's are uninterpretted types;
-> so probably a type the SMT solver doesn't know about?
-> Does that then make FTC types that the SMT solver does
-> know about (bools, ints, lists, sets, etc.)?
-
-The SMT solver knows about `bool`, `int` and `set` (also `bitvector` 
-and `map`) but _all_ other types are _currently_ represented as plain 
-`Int` inside the SMT solver. However, we _will be_ changing this 
-to make use of SMT support for ADTs ...
-
-To sum up: the `FObj` is there for historical reasons; it has been 
-subsumed by `FTC` which is what I recomend you use. However `FObj` 
-is there if you want a simple "unitype" / "any" type for terms 
-that are not "interpreted".
-
diff --git a/liquid-fixpoint/Setup.hs b/liquid-fixpoint/Setup.hs
deleted file mode 100644
--- a/liquid-fixpoint/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/liquid-fixpoint/TODO.md b/liquid-fixpoint/TODO.md
deleted file mode 100644
--- a/liquid-fixpoint/TODO.md
+++ /dev/null
@@ -1,37 +0,0 @@
-# TODO
-
-## Proper Encoding of DataTypes
-
-```
-(declare-datatypes (T) ((LL lnil (lcons (lhd T) (ltl LL)))))
-(declare-fun l1 () (LL Int))
-(declare-fun l2 () (LL Int))
-(declare-fun l3 () (LL Int))
-(declare-fun x  () Int)
-(declare-fun zzz () Int)
-
-(assert (not (= l1 (as lnil (LL Int)))))
-(assert (not (= l2 (as lnil (LL Int)))))
-
-(assert (= (lhd l1) (lhd l2)))
-(assert (not (= l1 l2)))
-(assert (= l3 (lcons x l2)))
-(assert (> x 100))
-(check-sat)
-
-(get-model)
-
-
-(declare-fun xs () (LL Int))
-(declare-fun ys () (LL Int))
-(declare-fun y  () Int)
-
-(assert (= xs (as lnil (LL Int))))
-(assert (= ys (lcons y ys)))
-(assert (= xs ys))
-(check-sat)
-
-
-;; (assert (= (ltl l1) (ltl l2)))
-;; (check-sat)
-```
diff --git a/liquid-fixpoint/bin/Fixpoint.hs b/liquid-fixpoint/bin/Fixpoint.hs
deleted file mode 100644
--- a/liquid-fixpoint/bin/Fixpoint.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-import Language.Fixpoint.Solver        (solveFQ)
-import Language.Fixpoint.Types.Config  (getOpts)
-import System.Exit
-import Language.Fixpoint.Misc    (writeLoud)
-
-main = do
-  cfg <- getOpts
-  writeLoud $  "Options: " ++ show cfg
-  e <- solveFQ cfg
-  exitWith e
-
diff --git a/liquid-fixpoint/default.nix b/liquid-fixpoint/default.nix
deleted file mode 100644
--- a/liquid-fixpoint/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{ fetchgitLocal }:
-{ mkDerivation, ansi-terminal, array, ascii-progress, async
-, attoparsec, base, bifunctors, binary, boxes, bytestring, cereal
-, cmdargs, containers, deepseq, directory, filemanip, filepath
-, ghc-prim, hashable, intern, located-base, mtl, parallel, parsec, pretty
-, process, stdenv, syb, tasty, tasty-hunit, tasty-rerun, text
-, text-format, transformers, unordered-containers, z3
-, dotgen, fgl, fgl-visualize
-}:
-mkDerivation {
-  pname = "liquid-fixpoint";
-  version = "9.9.9.9";
-  src = fetchgitLocal ./.;
-  isLibrary = true;
-  isExecutable = true;
-  libraryHaskellDepends = [
-    ansi-terminal array ascii-progress async attoparsec base bifunctors
-    binary boxes bytestring cereal cmdargs containers deepseq directory
-    filemanip filepath ghc-prim hashable intern located-base mtl parallel parsec
-    pretty process syb text text-format transformers
-    unordered-containers
-    dotgen fgl fgl-visualize
-  ];
-  executableHaskellDepends = [ base ];
-  testHaskellDepends = [
-    base directory filepath process tasty tasty-hunit tasty-rerun text
-  ];
-  testSystemDepends = [ z3 ];
-  homepage = "https://github.com/ucsd-progsys/liquid-fixpoint";
-  description = "Predicate Abstraction-based Horn-Clause/Implication Constraint Solver";
-  license = stdenv.lib.licenses.bsd3;
-}
diff --git a/liquid-fixpoint/liquid-fixpoint.cabal b/liquid-fixpoint/liquid-fixpoint.cabal
deleted file mode 100644
--- a/liquid-fixpoint/liquid-fixpoint.cabal
+++ /dev/null
@@ -1,226 +0,0 @@
-name:                liquid-fixpoint
-version:             0.6.0.1
-Copyright:           2010-17 Ranjit Jhala, University of California, San Diego.
-synopsis:            Predicate Abstraction-based Horn-Clause/Implication Constraint Solver
-homepage:            https://github.com/ucsd-progsys/liquid-fixpoint
-license:             BSD3
-license-file:        LICENSE
-author:              Ranjit Jhala, Niki Vazou, Eric Seidel
-maintainer:          jhala@cs.ucsd.edu
-category:            Language
-build-type:          Simple
-cabal-version:       >=1.10
-Tested-With:         GHC == 7.10.3, GHC == 8.0.1
-
-
-
-description:     This package is a Haskell wrapper to the SMTLIB-based
-                 Horn-Clause/Logical Implication constraint solver used
-                 for Liquid Types.
-                 .
-                 The package includes:
-                 .
-                 1. Types for Expressions, Predicates, Constraints, Solutions
-                 .
-                 2. Code for solving constraints
-                 .
-                 Requirements
-                 .
-                 In addition to the .cabal dependencies you require
-                 .
-                 - A Z3 (<http://z3.codeplex.com>) or CVC4 (<http://cvc4.cs.nyu.edu>) binary.
-
-Extra-Source-Files: tests/neg/*.fq
-                  , tests/pos/*.fq
-                  , unix/Language/Fixpoint/Utils/*.hs
-                  , win/Language/Fixpoint/Utils/*.hs
-
-Source-Repository head
-  Type:        git
-  Location:    https://github.com/ucsd-progsys/liquid-fixpoint/
-
-Flag devel
-  Description: turn on stricter error reporting for development
-  Default:     False
-  Manual:      True
-
-Executable fixpoint
-  default-language: Haskell98
-  Main-is:       Fixpoint.hs
-  ghc-options:   -threaded -W -fno-warn-missing-methods
-  if flag(devel)
-    ghc-options: -Werror
-  hs-source-dirs: bin
-  Build-Depends: base 
-               , liquid-fixpoint
-
-Library
-  default-language: Haskell98
-  ghc-options:     -W -fno-warn-missing-methods
-  if flag(devel)
-    ghc-options:   -Werror
-  ghc-prof-options: -fprof-auto
-  hs-source-dirs:  src
-  Exposed-Modules: Language.Fixpoint.Types.Names,
-                   Language.Fixpoint.Types.Errors,
-                   Language.Fixpoint.Types.Config,
-                   Language.Fixpoint.Types.Visitor,
-                   Language.Fixpoint.Types.PrettyPrint,
-                   Language.Fixpoint.Types.Spans,
-                   Language.Fixpoint.Types.Sorts,
-                   Language.Fixpoint.Types.Refinements,
-                   Language.Fixpoint.Types.Substitutions,
-                   Language.Fixpoint.Types.Environments,
-                   Language.Fixpoint.Types.Constraints,
-                   Language.Fixpoint.Types.Triggers,
-                   Language.Fixpoint.Types.Solutions,
-                   Language.Fixpoint.Types.Utils,
-                   Language.Fixpoint.Types,
-                   Language.Fixpoint.Graph.Types,
-                   Language.Fixpoint.Graph.Reducible,
-                   Language.Fixpoint.Graph.Indexed,
-                   Language.Fixpoint.Graph.Partition,
-                   Language.Fixpoint.Graph.Deps,
-                   Language.Fixpoint.Graph,
-                   Language.Fixpoint.Defunctionalize,
-                   Language.Fixpoint.Smt.Types,
-                   Language.Fixpoint.Smt.Bitvector,
-                   Language.Fixpoint.Smt.Theories,
-                   Language.Fixpoint.Smt.Serialize,
-                   Language.Fixpoint.Smt.Interface,
-                   Language.Fixpoint.Minimize,
-                   Language.Fixpoint.Solver,
-                   Language.Fixpoint.Parse,
-                   Language.Fixpoint.SortCheck,
-                   Language.Fixpoint.Misc,
-                   Language.Fixpoint.Utils.Progress,
-                   Language.Fixpoint.Utils.Files,
-                   Language.Fixpoint.Solver.GradualSolution,
-                   Language.Fixpoint.Solver.Solution,
-                   Language.Fixpoint.Solver.Worklist,
-                   Language.Fixpoint.Solver.Monad,
-                   Language.Fixpoint.Solver.TrivialSort,
-                   Language.Fixpoint.Solver.UniqifyKVars,
-                   Language.Fixpoint.Solver.UniqifyBinds,
-                   Language.Fixpoint.Solver.Eliminate,
-                   Language.Fixpoint.Solver.Instantiate,
-                   Language.Fixpoint.Solver.Sanitize,
-                   Language.Fixpoint.Utils.Statistics,
-                   Language.Fixpoint.Solver.GradualSolve,
-                   Language.Fixpoint.Solver.Solve
-
-  Build-Depends: base
-               , array
-               , async
-               , attoparsec
-               , syb
-               , cmdargs
-               , ansi-terminal
-               , bifunctors
-               , binary
-               , bytestring
-               , containers
-               , deepseq
-               , directory
-               , filemanip
-               , filepath
-               , ghc-prim
-               , intern
-               , mtl
-               , parsec
-               , pretty
-               , boxes
-               , parallel
-               , process
-               , syb
-               , text
-               , transformers
-               , hashable
-               , unordered-containers
-               , cereal
-               , text-format
-               , fgl
-               , fgl-visualize
-               , dotgen
-               , time
-
-  if impl(ghc >= 7.10.2)
-    Build-Depends: located-base
-  if !os(windows)
-    Build-Depends: ascii-progress >= 0.3
-    hs-source-dirs: unix
-  if os(windows)
-    hs-source-dirs: win
-
-test-suite test
-  default-language: Haskell98
-  type:             exitcode-stdio-1.0
-  hs-source-dirs:   tests
-  ghc-options:      -threaded
-  if flag(devel)
-    ghc-options:    -Werror
-  main-is:          test.hs
-  build-depends:    base,
-                    directory,
-                    filepath,
-                    process,
-                    tasty >= 0.10,
-                    tasty-hunit,
-                    tasty-rerun >= 1.1,
-                    text
-
-test-suite testparser
-  default-language: Haskell98
-  type:             exitcode-stdio-1.0
-  hs-source-dirs:   tests
-  ghc-options:      -threaded
-  if flag(devel)
-    ghc-options:    -Werror
-  main-is:          testParser.hs
-  build-depends:    base,
-                    directory,
-                    filepath,
-                    tasty >= 0.10,
-                    tasty-hunit,
-                    tasty-rerun >= 1.1,
-                    text
-  if flag(devel)
-    hs-source-dirs:   tests src
-    build-depends:
-                 array
-               , async
-               , attoparsec
-               , syb
-               , cmdargs
-               , ansi-terminal
-               , bifunctors
-               , binary
-               , bytestring
-               , containers
-               , deepseq
-               , directory
-               , filemanip
-               , filepath
-               , ghc-prim
-               , intern
-               , mtl
-               , parsec
-               , pretty
-               , boxes
-               , parallel
-               , process
-               , syb
-               , text
-               , transformers
-               , hashable
-               , unordered-containers
-               , cereal
-               , text-format
-               , fgl
-               , fgl-visualize
-               , dotgen
-               , time
-    if impl(ghc >= 7.10.2)
-      Build-Depends: located-base
-  else
-    build-depends: liquid-fixpoint
diff --git a/liquid-fixpoint/scripts/travis b/liquid-fixpoint/scripts/travis
deleted file mode 100644
--- a/liquid-fixpoint/scripts/travis
+++ /dev/null
@@ -1,137 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-## Helper Functions
-
-function loud {
-  echo "$ $@"
-  $@
-}
-
-# Source: https://github.com/travis-ci/travis-build/blob/fc4ae8a2ffa1f2b3a2f62533bbc4f8a9be19a8ae/lib/travis/build/script/templates/header.sh#L104-L123
-RED="\033[31;1m"
-GREEN="\033[32;1m"
-RESET="\033[0m"
-function travis_retry {
-  local result=0
-  local count=1
-  while [ $count -le 3 ]; do
-    [ $result -ne 0 ] && {
-      echo -e "\n${RED}The command \"$@\" failed. Retrying, $count of 3.${RESET}\n" >&2
-    }
-    set +e
-    "$@"
-    result=$?
-    set -e
-    [ $result -eq 0 ] && break
-    count=$(($count + 1))
-    sleep 1
-  done
-
-  [ $count -eq 4 ] && {
-    echo "\n${RED}The command \"$@\" failed 3 times.${RESET}\n" >&2
-  }
-
-  return $result
-}
-
-function prevent_timeout {
-  local cmd="$@"
-
-  $cmd &
-  local cmd_pid=$!
-
-  poke_stdout &
-  local poke_pid=$!
-
-  wait $cmd_pid
-  exit_code=$?
-
-  kill $poke_pid
-  (wait $poke_pid 2>/dev/null) || true
-
-  return $exit_code
-}
-
-function poke_stdout {
-  # Print an invisible character every minute
-  while true; do
-    echo -ne "\xE2\x80\x8B"
-    sleep 60
-  done
-}
-
-function pastebin {
-  curl -s -F 'clbin=<-' https://clbin.com
-}
-
-## Testing Stages
-
-function clean_cache {
-  local smt="$1"
-
-  loud ghc-pkg unregister liquid-fixpoint --force || true
-  loud rm "$HOME/.cabal/bin/$smt" || true
-}
-
-function install_smt {
-  local smt="$1"
-
-  mkdir -p "$HOME/.cabal/bin"
-  loud curl "http://goto.ucsd.edu/~gridaphobe/$smt" -o "$HOME/.cabal/bin/$smt"
-  loud chmod a+x "$HOME/.cabal/bin/$smt"
-}
-
-function install_cabal_deps {
-  if ! _install_cabal_deps; then
-    echo " ==> Cabal install failed. Clearing dependency cache and retrying."
-    loud rm -rf "$HOME/.cabal"
-    loud rm -rf "$HOME/.ghc"
-    _install_cabal_deps
-  fi
-}
-
-function _install_cabal_deps {
-  loud travis_retry cabal update || return 1
-  loud travis_retry cabal install --only-dependencies --enable-tests || return 1
-}
-
-function do_build {
-  loud cabal configure -fbuild-external --enable-tests -v2
-  loud prevent_timeout cabal build -j2
-  loud cabal haddock
-}
-
-function do_test {
-  loud prevent_timeout ./dist/build/test/test
-}
-
-function dump_fail_logs {
-  find . -type f -wholename '*/.liquid/*' -name '*.log' -print0 | while IFS= read -r -d $'\0' file; do
-    echo "${file}:"
-    echo "    $(pastebin < "${file}")"
-  done
-}
-
-function test_source_pkg {
-  loud cabal sdist
-
-  local src_tgz="dist/$(cabal info . | awk '{print $2 ".tar.gz";exit}')"
-
-  if [ -f "$src_tgz" ]; then
-    loud prevent_timeout cabal install -j4 "$src_tgz"
-  else
-    echo "expected '$src_tgz' not found"
-    return 1
-  fi
-}
-
-## Run Test Stage
-
-stage="$1"
-shift
-
-$stage "$@"
-
diff --git a/liquid-fixpoint/shell.nix b/liquid-fixpoint/shell.nix
deleted file mode 100644
--- a/liquid-fixpoint/shell.nix
+++ /dev/null
@@ -1,17 +0,0 @@
-{ nixpkgs ? import <nixpkgs> {}, compiler ? "default" }:
-
-let
-
-  inherit (nixpkgs) pkgs;
-
-  f = import ./default.nix { inherit (pkgs) fetchgitLocal; };
-
-  haskellPackages = if compiler == "default"
-                       then pkgs.haskellPackages
-                       else pkgs.haskell.packages.${compiler};
-
-  drv = haskellPackages.callPackage f { inherit (pkgs) z3; };
-
-in
-
-  if pkgs.lib.inNixShell then drv.env else drv
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Defunctionalize.hs b/liquid-fixpoint/src/Language/Fixpoint/Defunctionalize.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Defunctionalize.hs
+++ /dev/null
@@ -1,368 +0,0 @@
-{-# LANGUAGE TypeSynonymInstances #-}
-{-# LANGUAGE FlexibleContexts     #-}
-{-# LANGUAGE FlexibleInstances    #-}
-{-# LANGUAGE TupleSections        #-}
-{-# LANGUAGE PatternGuards        #-}
-{-# LANGUAGE OverloadedStrings    #-}
-
---------------------------------------------------------------------------------
--- | `defunctionalize` traverses the query to:
---      1. "normalize" lambda terms by renaming binders,
---      2. generate alpha- and beta-equality axioms for
---   The lambdas and redexes found in the query.
---
---   NOTE: `defunctionalize` should happen **BEFORE**
---   `elaborate` as the latter converts all actual `EApp`
---   into the (uninterpreted) `smt_apply`.
---   We cannot elaborate prior to `defunc` as we need the
---   `EApp` and `ELam` to determine the lambdas and redexes.
---------------------------------------------------------------------------------
-
-module Language.Fixpoint.Defunctionalize (defunctionalize, Defunc(..), defuncAny, makeLamArg) where
-
-import qualified Data.HashMap.Strict as M
-import           Data.Hashable
-import           Data.Maybe             (isJust, maybeToList)
-import qualified Data.List           as L
-
-import           Control.Monad.State
-import           Language.Fixpoint.Misc            (sortNub, fM, whenM, secondM, mapSnd)
-import           Language.Fixpoint.Solver.Sanitize (symbolEnv)
-import           Language.Fixpoint.Types        hiding (allowHO)
-import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.SortCheck       (checkSortExpr)
-import           Language.Fixpoint.Types.Visitor   (mapMExpr, stripCasts)
--- import Debug.Trace (trace)
-
-defunctionalize :: (Fixpoint a) => Config -> SInfo a -> SInfo a
-defunctionalize cfg si = evalState (defunc si) (makeInitDFState cfg si)
-
-defuncAny :: Defunc a => Config -> SEnv Sort -> a -> a 
-defuncAny cfg env e = evalState (defunc e) (makeDFState cfg env emptyIBindEnv)
-
-
---------------------------------------------------------------------------------
--- | Expressions defunctionalization -------------------------------------------
---------------------------------------------------------------------------------
-txExpr :: Expr -> DF Expr
-txExpr e = do
-  hoFlag <- gets dfHO
-  if hoFlag then defuncExpr e else return e
-
-defuncExpr :: Expr -> DF Expr
-defuncExpr = mapMExpr reBind
-         >=> mapMExpr logLam
-         >=> mapMExpr logRedex
-         >=> mapMExpr (fM normalizeLams)
-
-reBind :: Expr -> DF Expr
-reBind (ELam (x, s) e) = (\y -> ELam (y, s) (subst1 e (x, EVar y))) <$> freshSym s
-reBind e               = return e
-
-maxLamArg :: Int
-maxLamArg = 7
-
--- NIKI TODO: allow non integer lambda arguments
--- sorts = [setSort intSort, bitVecSort intSort, mapSort intSort intSort, boolSort, realSort, intSort]
-makeLamArg :: Sort -> Int -> Symbol
-makeLamArg _ = intArgName
-
---------------------------------------------------------------------------------
-
-makeAxioms :: DF [Expr]
-makeAxioms = do
-  alphEqs <- concatMap makeAlphaAxioms <$> getLams
-  betaEqs <- concatMap makeBetaAxioms  <$> getRedexes
-  env     <- gets dfEnv
-  return   $ filter (validAxiom env) (alphEqs ++ betaEqs)
-
-validAxiom :: SEnv Sort -> Expr -> Bool
-validAxiom env = isJust . checkSortExpr env
-
---------------------------------------------------------------------------------
--- | Alpha Equivalence ---------------------------------------------------------
---------------------------------------------------------------------------------
-makeAlphaAxioms ::  Expr -> [Expr]
-makeAlphaAxioms = makeAlphaEq . normalizeLams
-
-makeAlphaEq :: Expr -> [Expr]
-makeAlphaEq e = go e ++ go' e
-  where
-    go ee
-      = makeEqForAll ee (normalize ee)
-    go' ee@(ELam (x, s) e)
-      = [makeEq ee ee'
-         | (i, ee') <- map (\j -> normalizeLamsFromTo j (ELam (x, s) e)) [1..maxLamArg-1]
-         , i <= maxLamArg ]
-    go' _
-      = []
-
---------------------------------------------------------------------------------
--- | Normalizations ------------------------------------------------------------
---------------------------------------------------------------------------------
-
--- head normal form [TODO: example]
-
-normalize :: Expr -> Expr
-normalize = snd . go
-  where
-    go (ELam (y, sy) e) = let (i', e') = go e
-                              y'      = makeLamArg sy i'
-                          in (i'+1, ELam (y', sy) (e' `subst1` (y, EVar y')))
-    go (EApp e e2)
-      |  (ELam (x, _) bd) <- unECst e
-                        = let (i1, e1') = go bd
-                              (i2, e2') = go e2
-                          in (max i1 i2, e1' `subst1` (x, e2'))
-    go (EApp e1 e2)     = let (i1, e1') = go e1
-                              (i2, e2') = go e2
-                          in (max i1 i2, EApp e1' e2')
-    go (ECst e s)       = mapSnd (`ECst` s) (go e)
-    go (PAll bs e)      = mapSnd (PAll bs)  (go e)
-    go e                = (1, e)
-
-    unECst (ECst e _) = unECst e
-    unECst e          = e
-
--- normalize lambda arguments [TODO: example]
-
-normalizeLams :: Expr -> Expr
-normalizeLams e = snd $ normalizeLamsFromTo 1 e
-
-normalizeLamsFromTo :: Int -> Expr -> (Int, Expr)
-normalizeLamsFromTo i   = go
-  where
-    go (ELam (y, sy) e) = let (i', e') = go e
-                              y'      = makeLamArg sy i'
-                          in (i' + 1, ELam (y', sy) (e' `subst1` (y, EVar y')))
-    go (EApp e1 e2)     = let (i1, e1') = go e1
-                              (i2, e2') = go e2
-                          in (max i1 i2, EApp e1' e2')
-    go (ECst e s)       = mapSnd (`ECst` s) (go e)
-    go (PAll bs e)      = mapSnd (PAll bs) (go e)
-    go e                = (i, e)
-
---------------------------------------------------------------------------------
--- | Beta Equivalence ----------------------------------------------------------
---------------------------------------------------------------------------------
-makeBetaAxioms :: Expr -> [Expr]
-makeBetaAxioms e = makeEqForAll (normalizeLams e) (normalize e)
-  -- where
-  --  e             = trace ("BETA-NL e = " ++ showpp e0) e0
-
-makeEq :: Expr -> Expr -> Expr
-makeEq e1 e2
-  | e1 == e2  = PTrue
-  | otherwise = EEq e1 e2
-
-makeEqForAll :: Expr -> Expr -> [Expr]
-makeEqForAll e1 e2 = [ makeEq (closeLam su e1') (closeLam su e2') | su <- instantiate xs]
-  where
-    (xs1, e1')     = splitPAll [] e1
-    (xs2, e2')     = splitPAll [] e2
-    xs             = L.nub (xs1 ++ xs2)
-
-closeLam :: [(Symbol, (Symbol, Sort))] -> Expr -> Expr
-closeLam ((x,(y,s)):su) e = ELam (y,s) (subst1 (closeLam su e) (x, EVar y))
-closeLam []             e = e
-
-splitPAll :: [(Symbol, Sort)] -> Expr -> ([(Symbol, Sort)], Expr)
-splitPAll acc (PAll xs e) = splitPAll (acc ++ xs) e
-splitPAll acc e           = (acc, e)
-
--- NOPROP instantiate :: [(Symbol, Sort)] -> [[(Symbol, (Symbol,Sort))]]
--- NOPROP instantiate []     = [[]]
--- NOPROP instantiate xs     = L.foldl' (\acc x -> combine (instOne x) acc) [] xs
-  -- NOPROP where
-    -- NOPROP instOne (x, s) = [(x, (makeLamArg s i, s)) | i <- [1..maxLamArg]]
-    -- NOPROP combine xs []  = [[x] | x <- xs]
-    -- NOPROP combine xs acc = concat [(x:) <$> acc | x <- xs]
-
-instantiate    :: [(Symbol, Sort)] -> [[(Symbol, (Symbol,Sort))]]
-instantiate     = choices . map inst1
-  where
-    inst1 (x,s) = [(x, (makeLamArg s i, s)) | i <- [1..maxLamArg]]
-
-choices :: [[a]] -> [[a]]
-choices []       = [[]]
-choices (xs:xss) = [a:as | a <- xs, as <- choices xss]
-
---------------------------------------------------------------------------------
--- | Containers defunctionalization --------------------------------------------
---------------------------------------------------------------------------------
-
-class Defunc a where
-  defunc :: a -> DF a
-
-instance (Defunc (c a), TaggedC c a) => Defunc (GInfo c a) where
-  defunc fi = do
-    cm'    <- defunc $ cm    fi
-    ws'    <- defunc $ ws    fi
-    -- NOPROP setBinds $ mconcat ((senv <$> M.elems (cm fi)) ++ (wenv <$> M.elems (ws fi)))
-    gLits' <- defunc $ gLits fi
-    dLits' <- defunc $ dLits fi
-    bs'    <- defunc $ bs    fi
-    ass'   <- defunc $ asserts fi 
-    -- NOPROP quals' <- defunc $ quals fi
-    axioms <- makeAxioms
-    return $ fi { cm      = cm'
-                , ws      = ws'
-                , gLits   = gLits'
-                , dLits   = dLits'
-                , bs      = bs'
-                -- NOPROP , quals   = quals'
-                , asserts = (noTrigger <$> axioms) ++ ass' 
-                }
-
-instance (Defunc a) => Defunc (Triggered a) where
-  defunc (TR t e) = TR t <$> defunc e 
-
-instance Defunc (SimpC a) where
-  defunc sc = do crhs' <- defunc $ _crhs sc
-                 return $ sc {_crhs = crhs'}
-
-instance Defunc (WfC a)   where
-  defunc wf@(WfC {}) = do
-    let (x, t, k) = wrft wf
-    t' <- defunc t
-    return $ wf { wrft = (x, t', k) }
-  defunc wf@(GWfC {}) = do
-    let (x, t, k) = wrft wf
-    t' <- defunc t
-    e' <- defunc $ wexpr wf
-    return $ wf { wrft = (x, t', k), wexpr = e' }
-
-instance Defunc SortedReft where
-  defunc (RR s r) = RR s <$> defunc r
-
-instance Defunc (Symbol, SortedReft) where
-  defunc (x, sr) = (x,) <$> defunc sr
-
-instance Defunc (Symbol, Sort) where
-  defunc (x, t) = (x,) <$> defunc t
-
-instance Defunc Reft where
-  defunc (Reft (x, e)) = Reft . (x,) <$> defunc e
-
-instance Defunc Expr where
-  defunc = txExpr
-
-instance Defunc a => Defunc (SEnv a) where
-  defunc = mapMSEnv defunc
-
-instance Defunc BindEnv   where
-  defunc bs = do dfbs <- gets dfBEnv
-                 let f (i, xs) = if i `memberIBindEnv` dfbs
-                                       then  (i,) <$> defunc xs
-                                       else  (i,) <$> matchSort xs
-                 mapWithKeyMBindEnv f bs
-   where
-    -- The refinement cannot be elaborated thus defunc-ed because
-    -- the bind does not appear in any contraint,
-    -- thus unique binders does not perform properly
-    -- The sort should be defunc, to ensure same sort on double binders
-    matchSort (x, RR s r) = ((x,) . (`RR` r)) <$> defunc s
-
--- Sort defunctionalization [should be done by elaboration]
-instance Defunc Sort where
-  defunc = return
-
-instance Defunc a => Defunc [a] where
-  defunc = mapM defunc
-
-instance (Defunc a, Eq k, Hashable k) => Defunc (M.HashMap k a) where
-  defunc m = M.fromList <$> mapM (secondM defunc) (M.toList m)
-
-type DF    = State DFST
-
-data DFST = DFST
-  { dfFresh   :: !Int
-  , dfEnv   :: !(SEnv Sort)
-  , dfBEnv  :: !IBindEnv
-  , dfLam   :: !Bool        -- ^ normalize lams
-  , dfExt   :: !Bool        -- ^ enable extensionality axioms
-  , dfAEq   :: !Bool        -- ^ enable alpha equivalence axioms
-  , dfBEq   :: !Bool        -- ^ enable beta equivalence axioms
-  , dfNorm  :: !Bool        -- ^ enable normal form axioms
-  , dfHO    :: !Bool        -- ^ allow higher order thus defunctionalize
-  , dfLNorm :: !Bool
-  , dfLams  :: ![Expr]      -- ^ lambda expressions appearing in the expressions
-  , dfRedex :: ![Expr]      -- ^ redexes appearing in the expressions
-  , dfBinds :: !(SEnv Sort) -- ^ sorts of new lambda-binders
-  }
-
-
-makeDFState :: Config -> SEnv Sort -> IBindEnv -> DFST
-makeDFState cfg senv ibind = DFST
-  { dfFresh = 0
-  , dfEnv   = senv 
-  , dfBEnv  = ibind
-  , dfLam   = True
-  , dfExt   = False 
-  , dfAEq   = alphaEquivalence cfg
-  , dfBEq   = betaEquivalence  cfg
-  , dfNorm  = normalForm       cfg
-  , dfHO    = allowHO cfg  || defunction cfg
-  , dfLNorm = True
-  -- INVARIANT: lambads and redexes are not defunctionalized
-  , dfLams  = []
-  , dfRedex = []
-  , dfBinds = mempty
-  }
-
-
-makeInitDFState :: Config -> SInfo a -> DFST
-makeInitDFState cfg si 
-  = makeDFState cfg 
-         (symbolEnv cfg si) 
-         (mconcat ((senv <$> M.elems (cm si)) ++ (wenv <$> M.elems (ws si))))
-
---------------------------------------------------------------------------------
--- | Low level monad manipulation ----------------------------------------------
---------------------------------------------------------------------------------
-freshSym :: Sort -> DF Symbol
-freshSym t = do
-  n    <- gets dfFresh
-  let x = intSymbol "lambda_fun_" n
-  modify $ \s -> s {dfFresh = n + 1, dfBinds = insertSEnv x t (dfBinds s)}
-  return x
-
-logLam :: Expr -> DF Expr
-logLam e = whenM (gets dfAEq) (putLam e) >> return e
-
-logRedex :: Expr -> DF Expr
-logRedex e = whenM (gets dfBEq) (putRedex e) >> return e
-
-putLam :: Expr -> DF ()
-putLam e@(ELam {}) = modify $ \s -> s { dfLams = e : dfLams s}
-putLam _           = return ()
-
-putRedex :: Expr -> DF ()
-putRedex e@(EApp f _)
-  | ELam _ _ <- stripCasts f
-  = modify $ \s -> s { dfRedex = e : dfRedex s }
-putRedex _
-  = return ()
-
-
--- | getLams and getRedexes return the (previously seen) lambdas and redexes,
---   after "closing" them by quantifying out free vars corresponding to the
---   fresh binders in `dfBinds`.
-getLams    :: DF [Expr]
-getLams    = getClosedField dfLams
-
-getRedexes :: DF [Expr]
-getRedexes = getClosedField dfRedex
-
-getClosedField :: (DFST -> [Expr]) -> DF [Expr]
-getClosedField fld = do
-  env <- gets dfBinds
-  es  <- gets fld
-  return (closeLams env <$> es)
-
-closeLams :: SEnv Sort -> Expr -> Expr
-closeLams env e = PAll (freeBinds env e) e
-
-freeBinds :: SEnv Sort -> Expr -> [(Symbol, Sort)]
-freeBinds env e = [ (y, t) | y <- sortNub (syms e)
-                           , t <- maybeToList (lookupSEnv y env) ]
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- | This module re-exports the data types, operations and
---   serialization functions for representing and computing
---   with constraint dependencies.
-
-module Language.Fixpoint.Graph (module X ) where
-
-import Language.Fixpoint.Graph.Types     as X
-import Language.Fixpoint.Graph.Partition as X
-import Language.Fixpoint.Graph.Reducible as X
-import Language.Fixpoint.Graph.Deps      as X
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph/Deps.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph/Deps.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph/Deps.hs
+++ /dev/null
@@ -1,549 +0,0 @@
-{-# LANGUAGE TupleSections         #-}
-{-# LANGUAGE OverloadedStrings     #-}
-{-# LANGUAGE ConstraintKinds       #-}
-{-# LANGUAGE TypeOperators         #-}
-{-# LANGUAGE RecordWildCards       #-}
-
-module Language.Fixpoint.Graph.Deps (
-       -- * Remove Constraints that don't affect Targets
-         slice
-
-       -- * Predicate describing Targets
-       , isTarget
-
-      -- * Eliminatable KVars
-      , Elims (..)
-      , elimVars
-      , elimDeps
-
-      -- * Compute Raw Dependencies
-      , kvEdges
-
-      -- * Partition
-      , decompose
-
-      -- * Debug
-      , graphStatistics
-      ) where
-
-import           Prelude hiding (init)
-import           Data.Maybe                       (mapMaybe, fromMaybe)
-import           Data.Tree (flatten)
-import           Language.Fixpoint.Misc
-import           Language.Fixpoint.Utils.Files
-import           Language.Fixpoint.Types.Config
-import qualified Language.Fixpoint.Types.Visitor      as V
-import           Language.Fixpoint.Types.PrettyPrint
-import qualified Language.Fixpoint.Types              as F
-import           Language.Fixpoint.Graph.Types
-import           Language.Fixpoint.Graph.Reducible  (isReducible)
-import           Language.Fixpoint.Graph.Indexed
-
-import           Control.Monad             (when)
-import qualified Data.HashSet                         as S
-import qualified Data.List                            as L
-import qualified Data.HashMap.Strict                  as M
-import qualified Data.Graph                           as G
-import           Data.Function (on)
-import           Data.Hashable
-import           Text.PrettyPrint.HughesPJ
-import           Debug.Trace (trace)
-
---------------------------------------------------------------------------------
--- | Compute constraints that transitively affect target constraints,
---   and delete everything else from F.SInfo a
---------------------------------------------------------------------------------
-slice :: (F.TaggedC c a) => Config -> F.GInfo c a -> F.GInfo c a
---------------------------------------------------------------------------------
-slice cfg fi 
-  | noslice cfg 
-  = fi 
-  | otherwise
-  = fi { F.cm = cm'
-       , F.ws = ws' }
-  where
-     cm' = M.filterWithKey inC (F.cm fi)
-     ws' = M.filterWithKey inW (F.ws fi)
-     ks  = sliceKVars fi sl
-     is  = S.fromList (slKVarCs sl ++ slConcCs sl)
-     sl  = mkSlice fi
-     inC i _ = S.member i is
-     inW k _ = S.member k ks
-
-sliceKVars :: (F.TaggedC c a) => F.GInfo c a -> Slice -> S.HashSet F.KVar
-sliceKVars fi sl = S.fromList $ concatMap (subcKVars be) cs
-  where
-    cs           = lookupCMap cm <$> slKVarCs sl ++ slConcCs sl
-    be           = F.bs fi
-    cm           = F.cm fi
-
-subcKVars :: (F.TaggedC c a) => F.BindEnv -> c a -> [F.KVar]
-subcKVars be c = V.envKVars be c ++ V.rhsKVars c
-
---------------------------------------------------------------------------------
-mkSlice :: (F.TaggedC c a) => F.GInfo c a -> Slice
---------------------------------------------------------------------------------
-mkSlice fi        = mkSlice_ (F.cm fi) g' es v2i i2v
-  where
-    g'            = G.transposeG g  -- "inverse" of g (reverse the dep-edges)
-    (g, vf, cf)   = G.graphFromEdges es
-    es            = gEdges $ cGraph fi
-    v2i           = fst3 . vf
-    i2v i         = fromMaybe (errU i) $ cf i
-    errU i        = errorstar $ "graphSlice: Unknown constraint " ++ show i
-
-mkSlice_ :: F.TaggedC c a
-         => M.HashMap F.SubcId (c a)
-         -> G.Graph
-         -> [DepEdge]
-         -> (G.Vertex -> F.SubcId)
-         -> (F.SubcId -> G.Vertex)
-         -> Slice
-mkSlice_ cm g' es v2i i2v = Slice { slKVarCs = kvarCs
-                                  , slConcCs = concCs
-                                  , slEdges  = sliceEdges kvarCs es
-                                  }
-  where
-    -- n                  = length kvarCs
-    concCs             = [ i | (i, c) <- M.toList cm, isTarget c ]
-    kvarCs             = v2i <$> reachVs
-    rootVs             = i2v <$> concCs
-    reachVs            = concatMap flatten $ G.dfs g' rootVs
-
-sliceEdges :: [F.SubcId] -> [DepEdge] -> [DepEdge]
-sliceEdges is es = [ (i, i, filter inSlice js) | (i, _, js) <- es, inSlice i ]
-  where
-    inSlice i    = M.member i im
-    im           = M.fromList $ (, ()) <$> is
-
--- | DO NOT DELETE!
--- sliceCSucc :: Slice -> CSucc
--- sliceCSucc sl = \i -> M.lookupDefault [] i im
-  -- where
-    -- im        = M.fromList [(i, is) | (i,_,is) <- slEdges sl]
-
---------------------------------------------------------------------------------
-isTarget :: (F.TaggedC c a) => c a -> Bool
---------------------------------------------------------------------------------
-isTarget c   = V.isConcC c && isNonTriv c
-  where
-   isNonTriv = not .  F.isTautoPred . F.crhs
-
-
---------------------------------------------------------------------------------
--- | Constraint Graph ----------------------------------------------------------
---------------------------------------------------------------------------------
-cGraph :: (F.TaggedC c a) => F.GInfo c a -> CGraph
----------------------------------------------------------------------------
-cGraph fi = CGraph { gEdges = es
-                   , gRanks = outRs
-                   , gSucc  = next
-                   , gSccs  = length sccs }
-  where
-    es             = [(i, i, M.lookupDefault [] i next) | i <- M.keys $ F.cm fi]
-    next           = kvSucc fi
-    (g, vf, _)     = G.graphFromEdges es
-    (outRs, sccs)  = graphRanks g vf
-
---------------------------------------------------------------------------------
--- | Ranks from Graph ----------------------------------------------------------
---------------------------------------------------------------------------------
-graphRanks :: G.Graph -> (G.Vertex -> DepEdge) -> (CMap Int, [[G.Vertex]])
----------------------------------------------------------------------------
-graphRanks g vf = (M.fromList irs, sccs)
-  where
-    irs        = [(v2i v, r) | (r, vs) <- rvss, v <- vs ]
-    rvss       = zip [0..] sccs
-    sccs       = L.reverse $ map flatten $ G.scc g
-    v2i        = fst3 . vf
-
---------------------------------------------------------------------------------
--- | Dependencies --------------------------------------------------------------
---------------------------------------------------------------------------------
-kvSucc :: (F.TaggedC c a) => F.GInfo c a -> CMap [F.SubcId]
---------------------------------------------------------------------------------
-kvSucc fi = succs cm rdBy
-  where
-    rdBy  = kvReadBy fi
-    cm    = F.cm     fi
-
-succs :: (F.TaggedC c a) => CMap (c a) -> KVRead -> CMap [F.SubcId]
-succs cm rdBy = (sortNub . concatMap kvReads . kvWrites) <$> cm
-  where
-    kvReads k = M.lookupDefault [] k rdBy
-    kvWrites  = V.kvars . F.crhs
-
---------------------------------------------------------------------------------
-kvWriteBy :: (F.TaggedC c a) => CMap (c a) -> F.SubcId -> [F.KVar]
---------------------------------------------------------------------------------
-kvWriteBy cm = V.kvars . F.crhs . lookupCMap cm
-
---------------------------------------------------------------------------------
-kvReadBy :: (F.TaggedC c a) => F.GInfo c a -> KVRead
---------------------------------------------------------------------------------
-kvReadBy fi = group [ (k, i) | (i, ci) <- M.toList cm
-                             , k       <- V.envKVars bs ci]
-  where
-    cm      = F.cm fi
-    bs      = F.bs fi
-
---------------------------------------------------------------------------------
-decompose :: (F.TaggedC c a) => F.GInfo c a -> KVComps
---------------------------------------------------------------------------------
-decompose = componentsWith (kvgEdges . kvGraph)
-
---------------------------------------------------------------------------------
-kvGraph :: (F.TaggedC c a) => F.GInfo c a -> KVGraph
---------------------------------------------------------------------------------
-kvGraph = edgeGraph . kvEdges
-
-edgeGraph :: [CEdge] -> KVGraph
-edgeGraph es = KVGraph [(v, v, vs) | (v, vs) <- groupList es ]
-
-kvEdges :: (F.TaggedC c a) => F.GInfo c a -> [CEdge]
-kvEdges fi = selfes ++ concatMap (subcEdges bs) cs
-  where
-    bs     = F.bs fi
-    cs     = M.elems (F.cm fi)
-    ks     = fiKVars fi
-    selfes =  [(Cstr i , Cstr  i) | c <- cs, let i = F.subcId c]
-           ++ [(KVar k , DKVar k) | k <- ks]
-           ++ [(DKVar k, DKVar k) | k <- ks]
-
-fiKVars :: F.GInfo c a -> [F.KVar]
-fiKVars = M.keys . F.ws
-
-subcEdges :: (F.TaggedC c a) => F.BindEnv -> c a -> [CEdge]
-subcEdges bs c =  [(KVar k, Cstr i ) | k  <- V.envKVars bs c]
-               ++ [(Cstr i, KVar k') | k' <- V.rhsKVars c ]
-  where
-    i          = F.subcId c
-
---------------------------------------------------------------------------------
--- | Eliminated Dependencies
---------------------------------------------------------------------------------
-elimDeps :: F.SInfo a -> [CEdge] -> S.HashSet F.KVar -> CDeps
-elimDeps si es nonKutVs = graphDeps si es'
-  where
-    es'                 = graphElim es nonKutVs
-    _msg                = "graphElim: " ++ show (length es')
-
-{- | `graphElim` "eliminates" a kvar k by replacing every "path"
-
-          ki -> ci -> k -> c
-
-      with an edge
-
-          ki ------------> c
--}
-graphElim :: [CEdge] -> S.HashSet F.KVar -> [CEdge]
-graphElim es ks = ikvgEdges $ elimKs ks $ edgesIkvg es
-  where
-    elimKs      = flip (S.foldl' elimK)
-
-elimK  :: IKVGraph -> F.KVar -> IKVGraph
-elimK g k   = (g `addLinks` es') `delNodes` (kV : cis)
-  where
-   es'      = [(ki, c) | ki@(KVar _) <- kis, c@(Cstr _) <- cs]
-   cs       = getSuccs g kV
-   cis      = getPreds g kV
-   kis      = concatMap (getPreds g) cis
-   kV       = KVar k
-
---------------------------------------------------------------------------------
--- | Generic Dependencies ------------------------------------------------------
---------------------------------------------------------------------------------
-data Elims a
-  = Deps { depCuts    :: !(S.HashSet a)
-         , depNonCuts :: !(S.HashSet a)
-         }
-    deriving (Show)
-
-instance PPrint (Elims a) where
-  pprintTidy _ d = "#Cuts ="    <+> ppSize (depCuts d) <+>
-                   "#NonCuts =" <+> ppSize (depNonCuts d)
-    where
-      ppSize     = pprint . S.size
-
-instance (Eq a, Hashable a) => Monoid (Elims a) where
-  mempty                            = Deps S.empty S.empty
-  mappend (Deps d1 n1) (Deps d2 n2) = Deps (S.union d1 d2) (S.union n1 n2)
-
-dCut, dNonCut :: (Hashable a) => a -> Elims a
-dNonCut v = Deps S.empty (S.singleton v)
-dCut    v = Deps (S.singleton v) S.empty
-
---------------------------------------------------------------------------------
--- | Compute Dependencies and Cuts ---------------------------------------------
---------------------------------------------------------------------------------
-elimVars :: (F.TaggedC c a) => Config -> F.GInfo c a -> ([CEdge], Elims F.KVar)
---------------------------------------------------------------------------------
-elimVars cfg si = (es, ds)
-  where
-    ds          = edgeDeps cfg si es
-    es          = kvEdges si
-
-removeKutEdges ::  S.HashSet F.KVar -> [CEdge] -> [CEdge]
-removeKutEdges ks = filter (not . isKut . snd)
-  where
-    cutVs         = S.map KVar ks
-    isKut         = (`S.member` cutVs)
-
-cutVars :: (F.TaggedC c a) => Config -> F.GInfo c a -> S.HashSet F.KVar
-cutVars cfg si
-  | autoKuts cfg = S.empty
-  | otherwise    = F.ksVars . F.kuts $ si
-
-forceKuts :: (Hashable a, Eq a) => S.HashSet a -> Elims a  -> Elims a
-forceKuts xs (Deps cs ns) = Deps (S.union cs xs) (S.difference ns xs)
-
-edgeDeps :: (F.TaggedC c a) => Config -> F.GInfo c a -> [CEdge] -> Elims F.KVar
-edgeDeps cfg si  = forceKuts ks
-                 . edgeDeps' cfg
-                 . removeKutEdges ks
-                 . filter isRealEdge
-  where
-    ks           = givenKs `S.union` nlKs
-    givenKs      = cutVars cfg    si
-    nlKs
-      | nonLinCuts cfg = nonLinearKVars si
-      | otherwise      = mempty
-
-edgeDeps' :: Config -> [CEdge] -> Elims F.KVar
-edgeDeps' cfg es = Deps (takeK cs) (takeK ns)
-  where
-    Deps cs ns   = gElims cfg kF cutF g
-    g            = kvgEdges    (edgeGraph es)
-    cutF         = edgeRankCut (edgeRank es)
-    takeK        = sMapMaybe tx
-    tx (KVar z)  = Just z
-    tx _         = Nothing
-    kF (KVar _)  = True
-    kF _         = False
-
-sMapMaybe :: (Hashable b, Eq b) => (a -> Maybe b) -> S.HashSet a -> S.HashSet b
-sMapMaybe f = S.fromList . mapMaybe f . S.toList
-
---------------------------------------------------------------------------------
-type EdgeRank = M.HashMap F.KVar Integer
---------------------------------------------------------------------------------
-edgeRank :: [CEdge] -> EdgeRank
-edgeRank es = minimum . (n :) <$> kiM
-  where
-    n       = 1 + maximum [ i | (Cstr i, _)     <- es ]
-    kiM     = group [ (k, i) | (KVar k, Cstr i) <- es ]
-
-edgeRankCut :: EdgeRank -> Cutter CVertex
-edgeRankCut km vs = case ks of
-                      []  -> Nothing
-                      k:_ -> Just (KVar k, [x | x@(u,_,_) <- vs, u /= KVar k])
-  where
-    ks            = orderBy [k | (KVar k, _ ,_) <- vs]
-    rank          = (km M.!)
-    orderBy       = L.sortBy (compare `on` rank)
-
---------------------------------------------------------------------------------
-type Cutter a = [(a, a, [a])] -> Maybe (a, [(a, a, [a])])
---------------------------------------------------------------------------------
-
---------------------------------------------------------------------------------
-type Cutable a = (Eq a, Ord a, Hashable a, Show a)
---------------------------------------------------------------------------------
-gElims :: (Cutable a) => Config -> (a -> Bool) -> Cutter a -> [(a, a, [a])] -> Elims a
---------------------------------------------------------------------------------
-gElims cfg kF cutF g = boundElims cfg kF g $ sccElims cutF g
-
---------------------------------------------------------------------------------
--- | `sccElims` returns an `Elims` that renders the dependency graph acyclic
---    by picking _at least one_ kvar from each non-trivial SCC in the graph
---------------------------------------------------------------------------------
-
-sccElims :: (Cutable a) => Cutter a -> [(a, a, [a])] -> Elims a
-sccElims f = sccsToDeps f . G.stronglyConnCompR
-
-sccsToDeps :: (Cutable a) => Cutter a -> [G.SCC (a, a, [a])] -> Elims a
-sccsToDeps f xs = mconcat $ sccDep f <$> xs
-
-sccDep :: (Cutable a) =>  Cutter a -> G.SCC (a, a, [a]) -> Elims a
-sccDep _ (G.AcyclicSCC (v,_,_)) = dNonCut v
-sccDep f (G.CyclicSCC vs)      = cycleDep f vs
-
-cycleDep :: (Cutable a) => Cutter a -> [(a, a, [a])] -> Elims a
-cycleDep _ [] = mempty
-cycleDep f vs = addCut f (f vs)
-
-addCut :: (Cutable a) => Cutter a -> Maybe (a, [(a, a, [a])]) -> Elims a
-addCut _ Nothing         = mempty
-addCut f (Just (v, vs')) = mconcat $ dCut v : (sccDep f <$> sccs)
-  where
-    sccs                 = G.stronglyConnCompR vs'
-
-
---------------------------------------------------------------------------------
--- | `boundElims` extends the input `Elims` by adding kuts that ensure that
---   the *maximum distance* between an eliminated KVar and a cut KVar is
---   *upper bounded* by a given threshold.
---------------------------------------------------------------------------------
-boundElims :: (Cutable a) => Config -> (a -> Bool) -> [(a, a, [a])] -> Elims a -> Elims a
---------------------------------------------------------------------------------
-boundElims cfg isK es ds = maybe ds (bElims isK es ds) (elimBound cfg)
-
-bElims :: (Cutable a) => (a -> Bool) -> [(a, a, [a])] -> Elims a -> Int -> Elims a
-bElims isK es ds dMax   = forceKuts kS' ds
-  where
-    (_ , kS')           = L.foldl' step (M.empty, depCuts ds) vs
-    vs                  = topoSort ds es
-    predM               = invertEdges es
-    addK v ks
-      | isK v           = S.insert v ks
-      | otherwise       = ks
-
-    zero                = (0, S.empty)
-
-    step (dM, kS) v
-      | v `S.member` kS = (M.insert v zero  dM,        kS)
-      | vDist < dMax    = (M.insert v dv    dM,        kS)
-      | otherwise       = (M.insert v zero  dM, addK v kS)
-      where
-        dv              = trace msg dv_
-        msg             = show v ++ " DIST =" ++ show vDist ++ " SIZE = " ++ show vSize
-        dv_@(vDist, s)  = distV predM v dM
-        vSize           = S.size s
-
-distV :: (Cutable a) => M.HashMap a [a] -> a -> M.HashMap a (Int, S.HashSet a) -> (Int, S.HashSet a)
-distV predM v dM = (d, s)
-  where
-    d            = 1 + maximumDef 0 (fst . du <$> us)
-    s            = S.insert v (S.unions (snd . du <$> us))
-    du u         = fromMaybe (oops u) $ M.lookup u dM
-    us           = M.lookupDefault [] v predM
-    oops u       = errorstar $ "dist: don't have dist for " ++ show u ++ " when checking " ++ show v
-
-topoSort :: (Cutable a) => Elims a -> [(a, a, [a])] -> [a]
-topoSort ds = G.flattenSCCs . reverse . G.stronglyConnComp . ripKuts ds
-
-ripKuts :: (Cutable a) => Elims a -> [(a, a, [a])] -> [(a, a, [a])]
-ripKuts ds es = [ (u, x, notKuts vs) | (u, x, vs) <- es ]
-  where
-    notKuts   = filter (not . (`S.member` ks))
-    ks        = depCuts ds
-
-invertEdges :: (Cutable a) => [(a, a, [a])] -> M.HashMap a [a]
-invertEdges es = group [ (v, u) | (u, _, vs) <- es, v <- vs ]
-
-maximumDef :: (Ord a) => a -> [a] -> a
-maximumDef d [] = d
-maximumDef _ xs = maximum xs
-
-
----------------------------------------------------------------------------
-graphDeps :: F.SInfo a -> [CEdge] -> CDeps
----------------------------------------------------------------------------
-graphDeps fi cs = CDs { cSucc   = gSucc cg
-                      , cPrev   = cPrevM
-                      , cNumScc = gSccs cg
-                      , cRank   = M.fromList [(i, rf i) | i <- is ]
-                      }
-  where
-    rf          = rankF (F.cm fi) outRs inRs
-    inRs        = inRanks fi es outRs
-    outRs       = gRanks cg
-    es          = gEdges cg
-    cg          = cGraphCE cs
-    is          = [i | (Cstr i, _) <- cs]
-    cPrevM      = sortNub <$> group [ (i, k) | (KVar k, Cstr i) <- cs ]
-
---TODO merge these with cGraph and kvSucc
-cGraphCE :: [CEdge] -> CGraph
-cGraphCE cs = CGraph { gEdges = es
-                     , gRanks = outRs
-                     , gSucc  = next
-                     , gSccs  = length sccs }
-  where
-    es             = [(i, i, M.lookupDefault [] i next) | (Cstr i, _) <- cs]
-    next           = cSuccM cs
-    (g, vf, _)     = G.graphFromEdges es
-    (outRs, sccs)  = graphRanks g vf
-
-cSuccM      :: [CEdge] -> CMap [F.SubcId]
-cSuccM es    = (sortNub . concatMap kRdBy) <$> iWrites
-  where
-    kRdBy k  = M.lookupDefault [] k kReads
-    iWrites  = group [ (i, k) | (Cstr i, KVar k) <- es ]
-    kReads   = group [ (k, j) | (KVar k, Cstr j) <- es ]
-
-rankF :: CMap (F.SimpC a) -> CMap Int -> CMap Int -> F.SubcId -> Rank
-rankF cm outR inR = \i -> Rank (outScc i) (inScc i) (tag i)
-  where
-    outScc        = lookupCMap outR
-    inScc         = lookupCMap inR
-    tag           = F._ctag . lookupCMap cm
-
----------------------------------------------------------------------------
-inRanks :: F.SInfo a -> [DepEdge] -> CMap Int -> CMap Int
----------------------------------------------------------------------------
-inRanks fi es outR
-  | ks == mempty      = outR
-  | otherwise         = fst $ graphRanks g' vf'
-  where
-    ks                = F.kuts fi
-    cm                = F.cm fi
-    (g', vf', _)      = G.graphFromEdges es'
-    es'               = [(i, i, filter (not . isCut i) js) | (i,_,js) <- es ]
-    isCut i j         = S.member i cutCIds && isEqOutRank i j
-    isEqOutRank i j   = lookupCMap outR i == lookupCMap outR j
-    cutCIds           = S.fromList [i | i <- M.keys cm, isKutWrite i ]
-    isKutWrite        = any (`F.ksMember` ks) . kvWriteBy cm
-
---------------------------------------------------------------------------------
-graphStatistics :: Config -> F.SInfo a -> IO ()
---------------------------------------------------------------------------------
-graphStatistics cfg si = when (elimStats cfg) $ do
-  -- writeGraph f  (kvGraph si)
-  writeEdges f es'
-  appendFile f . ppc . ptable $ graphStats cfg si
-  where
-    f        = queryFile Dot cfg
-    es'      = removeKutEdges (depCuts ds) es
-    (es, ds) = elimVars cfg si
-    ppc d    = showpp $ vcat [" ", " ", "/*", pprint d, "*/"]
-
-data Stats = Stats {
-    stNumKVCuts   :: !Int   -- ^ number of kvars whose removal makes deps acyclic
-  , stNumKVNonLin :: !Int   -- ^ number of kvars that appear >= 2 in some LHS
-  , stNumKVTotal  :: !Int   -- ^ number of kvars
-  , stIsReducible :: !Bool  -- ^ is dep-graph reducible
-  , stSetKVNonLin :: !(S.HashSet F.KVar) -- ^ set of non-linear kvars
-  }
-
-instance PTable Stats where
-  ptable (Stats {..})  = DocTable [
-      ("# KVars [Cut]"    , pprint stNumKVCuts)
-    , ("# KVars [NonLin]" , pprint stNumKVNonLin)
-    , ("# KVars [All]"    , pprint stNumKVTotal)
-    , ("# Reducible"      , pprint stIsReducible)
-    , ("KVars NonLin"     , pprint stSetKVNonLin)
-    ]
-
-graphStats :: Config -> F.SInfo a -> Stats
-graphStats cfg si = Stats {
-    stNumKVCuts   = S.size $ F.tracepp "CUTS:" (depCuts d)
-  , stNumKVNonLin = S.size  nlks
-  , stNumKVTotal  = S.size (depCuts d) + S.size (depNonCuts d)
-  , stIsReducible = isReducible si
-  , stSetKVNonLin = nlks
-  }
-  where
-    nlks          = nonLinearKVars si
-    d             = snd $ elimVars cfg si
-
---------------------------------------------------------------------------------
-nonLinearKVars :: (F.TaggedC c a) => F.GInfo c a -> S.HashSet F.KVar
---------------------------------------------------------------------------------
-nonLinearKVars fi = S.unions $ nlKVarsC bs <$> cs
-  where
-    bs            = F.bs fi
-    cs            = M.elems (F.cm fi)
-
-nlKVarsC :: (F.TaggedC c a) => F.BindEnv -> c a -> S.HashSet F.KVar
-nlKVarsC bs c = S.fromList [ k |  (k, n) <- V.envKVarsN bs c, n >= 2]
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph/Indexed.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph/Indexed.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph/Indexed.hs
+++ /dev/null
@@ -1,100 +0,0 @@
---------------------------------------------------------------------------------
--- | This module implements Indexed KV Graphs,
---   a representation of the KVGraph with a fast
---   succ, pred lookup
---------------------------------------------------------------------------------
-
-{-# LANGUAGE OverloadedStrings #-}
-
-module Language.Fixpoint.Graph.Indexed (
-  -- * (Abstract) Indexed Graphs
-    IKVGraph (..)
-
-  -- * Constructor
-  , edgesIkvg
-
-  -- * Destructor
-  , ikvgEdges
-
-  -- * Modify
-  , addLinks
-  , delNodes
-
-  -- * Lookup
-  , getSuccs
-  , getPreds
-  ) where
-
-import           Language.Fixpoint.Graph.Types
-import qualified Data.HashSet              as S
-import qualified Data.HashMap.Strict       as M
-import qualified Data.List as L
-import           Data.Hashable (Hashable)
-
---------------------------------------------------------------------------------
--- | `IKVGraph` is representation of the KVGraph with a fast succ, pred lookup
---------------------------------------------------------------------------------
-
-data IKVGraph = IKVGraph
-  { igSucc :: !(M.HashMap CVertex (S.HashSet CVertex))  -- ^ out-edges of a `CVertex`
-  , igPred :: !(M.HashMap CVertex (S.HashSet CVertex))  -- ^ in-edges  of a `CVertex`
-  } deriving (Show)
-
-
-addLinks :: IKVGraph -> [CEdge] -> IKVGraph
-addLinks = L.foldl' addLink
-
-addLink :: IKVGraph -> CEdge -> IKVGraph
-addLink g (u, v) = addSucc (u, v) . addPred (u, v) $ g
-
-delNodes :: IKVGraph -> [CVertex] -> IKVGraph
-delNodes = L.foldl' delNode
-
-delNode :: IKVGraph -> CVertex -> IKVGraph
-delNode g v = delVtx v . txMany delSucc uvs . txMany delPred vws $ g
-  where
-    uvs     = [ (u, v) | u <- getPreds g v ]
-    vws     = [ (v, w) | w <- getSuccs g v ]
-
-edgesIkvg :: [CEdge] -> IKVGraph
-edgesIkvg = addLinks empty
-
-ikvgEdges :: IKVGraph -> [CEdge]
-ikvgEdges g = [ (u, v) | (u, vs) <- M.toList (igSucc g), v <- S.toList vs]
-
-getSuccs :: IKVGraph -> CVertex -> [CVertex]
-getSuccs g u = S.toList $ M.lookupDefault S.empty u (igSucc g)
-
-getPreds :: IKVGraph -> CVertex -> [CVertex]
-getPreds g v = S.toList $ M.lookupDefault S.empty v (igPred g)
-
---------------------------------------------------------------------------------
-empty :: IKVGraph
-empty = IKVGraph M.empty M.empty
-
-txMany :: (a -> b -> b) -> [a] -> b -> b
-txMany op es g = L.foldl' (flip op) g es
-
-addSucc :: CEdge -> IKVGraph -> IKVGraph
-addSucc (u, v) g = g { igSucc = inserts u v (igSucc g) }
-
-addPred :: CEdge -> IKVGraph -> IKVGraph
-addPred (u, v) g = g { igPred = inserts v u (igPred g) }
-
-delSucc :: CEdge -> IKVGraph -> IKVGraph
-delSucc (u, v) g = g { igSucc = removes u v (igSucc g)}
-
-delPred :: (CVertex, CVertex) -> IKVGraph -> IKVGraph
-delPred (u, v) g = g { igPred = removes v u (igPred g)}
-
-delVtx :: CVertex -> IKVGraph -> IKVGraph
-delVtx v g = g { igSucc = M.delete v (igSucc g) }
-               { igPred = M.delete v (igPred g) }
-
-inserts :: (Eq k, Eq v, Hashable k, Hashable v)
-        => k -> v -> M.HashMap k (S.HashSet v) -> M.HashMap k (S.HashSet v)
-inserts k v m = M.insert k (S.insert v $ M.lookupDefault S.empty k m) m
-
-removes :: (Eq k, Eq v, Hashable k, Hashable v)
-        => k -> v -> M.HashMap k (S.HashSet v) -> M.HashMap k (S.HashSet v)
-removes k v m = M.insert k (S.delete v (M.lookupDefault S.empty k m)) m
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph/Partition.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph/Partition.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph/Partition.hs
+++ /dev/null
@@ -1,213 +0,0 @@
-{-# LANGUAGE ConstraintKinds   #-}
-{-# LANGUAGE OverloadedStrings #-}
-
--- | This module implements functions to build constraint / kvar
---   dependency graphs, partition them and print statistics about
---   their structure.
-
-module Language.Fixpoint.Graph.Partition (
-
-  -- * Split constraints
-    CPart (..)
-  , partition, partition', partitionN
-
-  -- * Information about cores
-  , MCInfo (..)
-  , mcInfo
-
-  -- * Debug
-  , dumpPartitions
-
-  ) where
-
-import           GHC.Conc                  (getNumProcessors)
-import           Control.Monad             (forM_)
--- import           GHC.Generics              (Generic)
-import           Language.Fixpoint.Misc         -- hiding (group)
-import           Language.Fixpoint.Utils.Files
-import           Language.Fixpoint.Types.Config
--- import           Language.Fixpoint.Types.PrettyPrint
--- import qualified Language.Fixpoint.Types.Visitor      as V
-import qualified Language.Fixpoint.Types              as F
-import           Language.Fixpoint.Graph.Types
-import           Language.Fixpoint.Graph.Deps
-
-import qualified Data.HashMap.Strict                  as M
--- import qualified Data.Graph                           as G
--- import qualified Data.Tree                            as T
--- import           Data.Function (on)
-import           Data.Maybe                     (fromMaybe)
-import           Data.Hashable
-import           Text.PrettyPrint.HughesPJ
-import           Data.List (sortBy)
--- import qualified Data.HashSet              as S
-
--- import qualified Language.Fixpoint.Solver.Solution    as So
--- import Data.Graph.Inductive
-
-
-
---------------------------------------------------------------------------------
--- | Constraint Partition Container --------------------------------------------
---------------------------------------------------------------------------------
-
-data CPart a = CPart { pws :: !(M.HashMap F.KVar (F.WfC a))
-                     , pcm :: !(M.HashMap Integer (F.SubC a))
-                     }
-
-instance Monoid (CPart a) where
-   mempty = CPart mempty mempty
-   mappend l r = CPart { pws = pws l `mappend` pws r
-                       , pcm = pcm l `mappend` pcm r
-                       }
-
---------------------------------------------------------------------------------
--- | Multicore info ------------------------------------------------------------
---------------------------------------------------------------------------------
-
-data MCInfo = MCInfo { mcCores       :: !Int
-                     , mcMinPartSize :: !Int
-                     , mcMaxPartSize :: !Int
-                     } deriving (Show)
-
-mcInfo :: Config -> IO MCInfo
-mcInfo c = do
-   np <- getNumProcessors
-   let nc = fromMaybe np (cores c)
-   return MCInfo { mcCores = nc
-                 , mcMinPartSize = minPartSize c
-                 , mcMaxPartSize = maxPartSize c
-                 }
-
-partition :: (F.Fixpoint a) => Config -> F.FInfo a -> IO (F.Result (Integer, a))
-partition cfg fi
-  = do dumpPartitions cfg fis
-       -- writeGraph      f   g
-       return mempty
-    where
-      --f   = queryFile Dot cfg
-      fis = partition' Nothing fi
-
-------------------------------------------------------------------------------
--- | Partition an FInfo into multiple disjoint FInfos. Info is Nothing to
---   produce the maximum possible number of partitions. Or a MultiCore Info
---   to control the partitioning
-------------------------------------------------------------------------------
-partition' :: Maybe MCInfo -> F.FInfo a -> [F.FInfo a]
-------------------------------------------------------------------------------
-partition' mn fi  = case mn of
-   Nothing -> fis mkPartition id
-   Just mi -> partitionN mi fi $ fis mkPartition' finfoToCpart
-  where
-    css            = decompose fi
-    fis partF ctor = applyNonNull [ctor fi] (pbc partF) css
-    pbc partF      = partitionByConstraints partF fi
-
--- | Partition an FInfo into a specific number of partitions of roughly equal
--- amounts of work
-partitionN :: MCInfo    -- ^ describes thresholds and partiton amounts
-           -> F.FInfo a   -- ^ The originial FInfo
-           -> [CPart a] -- ^ A list of the smallest possible CParts
-           -> [F.FInfo a] -- ^ At most N partitions of at least thresh work
-partitionN mi fi cp
-   | cpartSize (finfoToCpart fi) <= minThresh = [fi]
-   | otherwise = map (cpartToFinfo fi) $ toNParts sortedParts
-   where
-      toNParts p
-         | isDone p = p
-         | otherwise = toNParts $ insertSorted firstTwo rest
-            where (firstTwo, rest) = unionFirstTwo p
-      isDone [] = True
-      isDone [_] = True
-      isDone fi'@(a:b:_) = length fi' <= prts
-                            && (cpartSize a >= minThresh
-                                || cpartSize a + cpartSize b >= maxThresh)
-      sortedParts = sortBy sortPredicate cp
-      unionFirstTwo (a:b:xs) = (a `mappend` b, xs)
-      unionFirstTwo _        = errorstar "Partition.partitionN.unionFirstTwo called on bad arguments"
-      sortPredicate lhs rhs
-         | cpartSize lhs < cpartSize rhs = GT
-         | cpartSize lhs > cpartSize rhs = LT
-         | otherwise = EQ
-      insertSorted a []     = [a]
-      insertSorted a (x:xs) = if sortPredicate a x == LT
-                              then x : insertSorted a xs
-                              else a : x : xs
-      prts      = mcCores mi
-      minThresh = mcMinPartSize mi
-      maxThresh = mcMaxPartSize mi
-
-
--- | Return the "size" of a CPart. Used to determine if it's
--- substantial enough to be worth parallelizing.
-cpartSize :: CPart a -> Int
-cpartSize c = (M.size . pcm) c + (length . pws) c
-
--- | Convert a CPart to an FInfo
-cpartToFinfo :: F.FInfo a -> CPart a -> F.FInfo a
-cpartToFinfo fi p = fi { F.cm = pcm p
-                       , F.ws = pws p
-                       }
-
--- | Convert an FInfo to a CPart
-finfoToCpart :: F.FInfo a -> CPart a
-finfoToCpart fi = CPart { pcm = F.cm fi
-                        , pws = F.ws fi
-                        }
-
--------------------------------------------------------------------------------------
-dumpPartitions :: (F.Fixpoint a) => Config -> [F.FInfo a] -> IO ()
--------------------------------------------------------------------------------------
-dumpPartitions cfg fis =
-  forM_ (zip [0..] fis) $ \(i, fi) ->
-    writeFile (queryFile (Part i) cfg) (render $ F.toFixpoint cfg fi)
-
-
--- | Type alias for a function to construct a partition. mkPartition and
---   mkPartition' are the two primary functions that conform to this interface
-type PartitionCtor a b = F.FInfo a
-                       -> M.HashMap Int [(Integer, F.SubC a)]
-                       -> M.HashMap Int [(F.KVar, F.WfC a)]
-                       -> Int
-                       -> b -- ^ typically a F.FInfo a or F.CPart a
-
-partitionByConstraints :: PartitionCtor a b -- ^ mkPartition or mkPartition'
-                          -> F.FInfo a
-                          -> KVComps
-                          -> ListNE b -- ^ [F.FInfo a] or [F.CPart a]
-partitionByConstraints f fi kvss = f fi icM iwM <$> js
-  where
-    js   = fst <$> jkvs                                -- groups
-    gc   = groupFun cM                                 -- (i, ci) |-> j
-    gk   = groupFun kM                                 -- k       |-> j
-
-    iwM  = groupMap (gk . fst) (M.toList (F.ws fi))    -- j |-> [w]
-    icM  = groupMap (gc . fst) (M.toList (F.cm fi))    -- j |-> [(i, ci)]
-
-    jkvs = zip [1..] kvss
-    kvI  = [ (x, j) | (j, kvs) <- jkvs, x <- kvs ]
-    kM   = M.fromList [ (k, i) | (KVar k, i) <- kvI ]
-    cM   = M.fromList [ (c, i) | (Cstr c, i) <- kvI ]
-
-mkPartition :: F.GInfo F.SubC a
-            -> M.HashMap Int [(Integer, c a)]
-            -> M.HashMap Int [(F.KVar, F.WfC a)]
-            -> Int
-            -> F.GInfo c a
-mkPartition fi icM iwM j
-  = fi { F.cm       = M.fromList $ M.lookupDefault [] j icM
-       , F.ws       = M.fromList $ M.lookupDefault [] j iwM
-       }
-
-mkPartition' :: F.FInfo a1
-             -> M.HashMap Int [(Integer, F.SubC a)]
-             -> M.HashMap Int [(F.KVar, F.WfC a)]
-             -> Int
-             -> CPart a
-mkPartition' _ icM iwM j
-  = CPart { pcm       = M.fromList $ M.lookupDefault [] j icM
-          , pws       = M.fromList $ M.lookupDefault [] j iwM
-          }
-
-groupFun :: (Show k, Eq k, Hashable k) => M.HashMap k Int -> k -> Int
-groupFun m k = safeLookup ("groupFun: " ++ show k) k m
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph/Reducible.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph/Reducible.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph/Reducible.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-{-# LANGUAGE ConstraintKinds   #-}
-{-# LANGUAGE OverloadedStrings #-}
-
--- | This module a test for whether the constraint dependencies form a
---   reducible graph.
-
-module Language.Fixpoint.Graph.Reducible ( isReducible ) where
-
-import qualified Data.Tree                            as T
-import qualified Data.HashMap.Strict                  as M
-import           Data.Graph.Inductive
-
-import           Language.Fixpoint.Misc         -- hiding (group)
-import qualified Language.Fixpoint.Types.Visitor      as V
-import qualified Language.Fixpoint.Types              as F
-
-
---------------------------------------------------------------------------------
-isReducible :: F.SInfo a -> Bool
---------------------------------------------------------------------------------
-isReducible fi = all (isReducibleWithStart g) vs
-  where
-    g  = convertToGraph fi
-    vs = {- trace (showDot $ fglToDotGeneric g show (const "") id) -} nodes g
-
-isReducibleWithStart :: Gr a b -> Node -> Bool
-isReducibleWithStart g x = all (isBackEdge domList) rEdges
-  where
-    dfsTree              = head $ dff [x] g --head because only care about nodes reachable from 'start node'?
-    rEdges               = [ e | e@(a,b) <- edges g, isDescendant a b dfsTree]
-    domList              = dom g x
-
-
-
-convertToGraph :: F.SInfo a -> Gr Int ()
-convertToGraph fi = mkGraph vs es
-  where
-    subCs        = M.elems (F.cm fi)
-    es           = lUEdge <$> concatMap (subcEdges' kvI $ F.bs fi) subCs
-    ks           = M.keys (F.ws fi)
-    kiM          = M.fromList $ zip ks [0..]
-    kvI k        = safeLookup ("convertToGraph: " ++ show k) k kiM
-    vs           = lNode . kvI <$> M.keys (F.ws fi)
-    lNode i      = (i, i)
-    lUEdge (i,j) = (i, j, ())
-
-isDescendant :: Node -> Node -> T.Tree Node -> Bool
-isDescendant x y (T.Node z f) | z == y    = f `contains` x
-                              | z == x    = False
-                              | otherwise = any (isDescendant x y) f
-
-contains :: [T.Tree Node] -> Node -> Bool
-contains t x = x `elem` concatMap T.flatten t
-
-isBackEdge :: [(Node, [Node])] -> Edge -> Bool
-isBackEdge t (u,v) = v `elem` xs
-  where
-    (Just xs) = lookup u t
-
-subcEdges' :: (F.KVar -> Node) -> F.BindEnv -> F.SimpC a -> [(Node, Node)]
-subcEdges' kvI be c = [(kvI k1, kvI k2) | k1 <- V.envKVars be c
-                                        , k2 <- V.kvars $ F.crhs c]
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Graph/Types.hs b/liquid-fixpoint/src/Language/Fixpoint/Graph/Types.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Graph/Types.hs
+++ /dev/null
@@ -1,184 +0,0 @@
-
--- | This module contains the types for representing dependency
---   graphs between kvars and constraints.
-
-{-# LANGUAGE ImplicitParams        #-}
-{-# LANGUAGE DeriveGeneric     #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-module Language.Fixpoint.Graph.Types (
-
-  -- * Graphs
-    CVertex (..)
-  , CEdge
-  , isRealEdge
-  , KVGraph (..)
-
-  -- * Components
-  , Comps
-  , KVComps
-
-  -- * Printing
-  , writeGraph
-  , writeEdges
-
-  -- * Constraints
-  , F.SubcId
-  , KVRead
-  , DepEdge
-
-  -- * Slice of relevant constraints
-  , Slice (..)
-
-  -- * Constraint Dependency Graphs
-  , CGraph (..)
-
-  -- * Alias for Constraint Maps
-  , F.CMap
-  , lookupCMap
-
-  -- * Ranks
-  , Rank (..)
-
-  -- * Constraint Dependencies
-  , CDeps (..)
-
-  -- * Solver Info
-  , SolverInfo (..)
-  )
-  where
-
-import           GHC.Generics              (Generic)
-import           Data.Hashable
-import           Text.PrettyPrint.HughesPJ
-
-import           Language.Fixpoint.Misc         -- hiding (group)
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Refinements -- Constraints
-import qualified Language.Fixpoint.Types.Solutions as F
--- import           Language.Fixpoint.Misc (safeLookup)
-import qualified Language.Fixpoint.Types   as F
-import qualified Data.HashMap.Strict       as M
-import qualified Data.HashSet              as S
-
-import GHC.Stack
---------------------------------------------------------------------------------
-
-data CVertex = KVar  !KVar    -- ^ real kvar vertex
-             | DKVar !KVar    -- ^ dummy to ensure each kvar has a successor
-             | Cstr  !Integer -- ^ constraint-id which creates a dependency
-               deriving (Eq, Ord, Show, Generic)
-
-instance PPrint CVertex where
-  pprintTidy _ (KVar k)  = doubleQuotes $ pprint $ kv k
-  pprintTidy _ (Cstr i)  = text "id_" <> pprint i
-  pprintTidy _ (DKVar k) = pprint k   <> text "*"
-
-
-instance Hashable CVertex
-
-data KVGraph    = KVGraph { kvgEdges :: [(CVertex, CVertex, [CVertex])] }
-type CEdge      = (CVertex, CVertex)
-type Comps a    = [[a]]
-type KVComps    = Comps CVertex
-
-instance PPrint KVGraph where
-  pprintTidy _ = pprint . kvgEdges
-
---------------------------------------------------------------------------------
-writeGraph :: FilePath -> KVGraph -> IO ()
---------------------------------------------------------------------------------
-writeGraph f = writeEdges f . graphEdges
-  where
-    graphEdges :: KVGraph -> [CEdge]
-    graphEdges (KVGraph g) = [ (v, v') | (v,_,vs) <- g, v' <- vs]
-
---------------------------------------------------------------------------------
-writeEdges :: FilePath -> [CEdge] -> IO ()
---------------------------------------------------------------------------------
-writeEdges f = writeFile f . render . ppEdges
-
-ppEdges :: [CEdge] -> Doc
-ppEdges             = vcat . wrap ["digraph Deps {"] ["}"]
-                           . map ppE
-                           . (if True then filter isRealEdge else txEdges)  -- RJ: use this to collapse "constraint" vertices
-  where
-    ppE (v, v')     = pprint v <+> "->" <+> pprint v'
-
-isRealEdge :: CEdge -> Bool
-isRealEdge (DKVar _, _)     = False
-isRealEdge (_, DKVar _)     = False
-isRealEdge (Cstr _, Cstr _) = False
-isRealEdge _                = True
-
-txEdges    :: [CEdge] -> [CEdge]
-txEdges es = concatMap iEs is
-  where
-    is     = [i | (Cstr i, Cstr _) <- es]
-    kvInM  = group [ (i, k) | (KVar k, Cstr i) <- es]
-    kvOutM = group [ (i, k') | (Cstr i, KVar k') <- es]
-    ins i  = M.lookupDefault [] i kvInM
-    outs i = M.lookupDefault [] i kvOutM
-    iEs i  = case (ins i, outs i) of
-                 (ks, [] ) -> [(KVar k, Cstr i ) | k  <- ks ]
-                 ([], ks') -> [(Cstr i, KVar k') | k' <- ks']
-                 (ks, ks') -> [(KVar k, KVar k') | k  <- ks, k' <- ks']
-
-
-
----------------------------------------------------------------------------
--- | Dramatis Personae
----------------------------------------------------------------------------
-type KVRead  = M.HashMap F.KVar [F.SubcId]
-type DepEdge = (F.SubcId, F.SubcId, [F.SubcId])
-
-data Slice = Slice { slKVarCs :: [F.SubcId]     -- ^ F.SubcIds that transitively "reach" below
-                   , slConcCs :: [F.SubcId]     -- ^ F.SubcIds with Concrete RHS
-                   , slEdges  :: [DepEdge] -- ^ Dependencies between slKVarCs
-                   } deriving (Eq, Show)
-
-data CGraph = CGraph { gEdges :: [DepEdge]
-                     , gRanks :: !(F.CMap Int)
-                     , gSucc  :: !(F.CMap [F.SubcId])
-                     , gSccs  :: !Int
-                     }
-
----------------------------------------------------------------------------
--- | CMap API -------------------------------------------------------------
----------------------------------------------------------------------------
-lookupCMap :: (?callStack :: CallStack) => F.CMap a -> F.SubcId -> a
-lookupCMap rm i = safeLookup err i rm
-  where
-    err      = "lookupCMap: cannot find info for " ++ show i
-
---------------------------------------------------------------------------------
--- | Constraint Dependencies ---------------------------------------------------
---------------------------------------------------------------------------------
-
-data CDeps = CDs { cSucc   :: !(F.CMap [F.SubcId]) -- ^ Constraints *written by* a SubcId
-                 , cPrev   :: !(F.CMap [F.KVar])   -- ^ (Cut) KVars *read by*    a SubcId
-                 , cRank   :: !(F.CMap Rank)       -- ^ SCC rank of a SubcId
-                 , cNumScc :: !Int                 -- ^ Total number of Sccs
-                 }
-
-
--- | Ranks ---------------------------------------------------------------------
-
-data Rank = Rank { rScc  :: !Int    -- ^ SCC number with ALL dependencies
-                 , rIcc  :: !Int    -- ^ SCC number without CUT dependencies
-                 , rTag  :: !F.Tag  -- ^ The constraint's Tag
-                 } deriving (Eq, Show)
-
-instance PPrint Rank where
-  pprintTidy _ = text . show
-
---------------------------------------------------------------------------------
--- | `SolverInfo` contains all the stuff needed to produce a result, and is the
---   the essential ingredient of the state needed by solve_
---------------------------------------------------------------------------------
-data SolverInfo a b = SI
-  { siSol     :: !(F.Sol b F.QBind)             -- ^ the initial solution
-  , siQuery   :: !(F.SInfo a)                   -- ^ the whole input query
-  , siDeps    :: !CDeps                         -- ^ dependencies between constraints/ranks etc.
-  , siVars    :: !(S.HashSet F.KVar)            -- ^ set of KVars to actually solve for
-  }
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Minimize.hs b/liquid-fixpoint/src/Language/Fixpoint/Minimize.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Minimize.hs
+++ /dev/null
@@ -1,132 +0,0 @@
--- | This module implements a "delta-debugging" based query minimizer.
---   Exported clients of that minimizer include one that attempts to
---   shrink UNSAT queries down to a minimal subset of constraints,
---   one that shrinks SAT queries down to a minimal subset of qualifiers,
---   and one that shrinks SAT queries down to a minimal subset of KVars
---   (replacing all others by True).
-
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module Language.Fixpoint.Minimize ( minQuery, minQuals, minKvars ) where
-
-import qualified Data.HashMap.Strict                as M
-import           Control.Monad                      (filterM)
-import           Language.Fixpoint.Types.Visitor    (mapKVars)
-import           Language.Fixpoint.Types.Config     (Config (..), queryFile)
-import           Language.Fixpoint.Types.Errors
-import           Language.Fixpoint.Misc             (safeHead)
-import           Language.Fixpoint.Utils.Files      hiding (Result)
-import           Language.Fixpoint.Graph
-import           Language.Fixpoint.Types
-import           Control.DeepSeq
-
----------------------------------------------------------------------------
--- polymorphic delta debugging implementation
----------------------------------------------------------------------------
-deltaDebug :: Bool -> Oracle a c -> Config -> Solver a -> FInfo a -> [c] -> [c] -> IO [c]
-deltaDebug min testSet cfg solve finfo set r = do
-  let (s1, s2) = splitAt (length set `div` 2) set
-  if length set == 1
-    then deltaDebug1 min testSet cfg solve finfo set r
-    else do
-      test1 <- testSet cfg solve finfo (s1 ++ r)
-      if test1
-        then deltaDebug min testSet cfg solve finfo s1 r
-        else do
-          test2 <- testSet cfg solve finfo (s2 ++ r)
-          if test2
-            then deltaDebug min testSet cfg solve finfo s2 r
-            else do
-              d1 <- deltaDebug min testSet cfg solve finfo s1 (s2 ++ r)
-              d2 <- deltaDebug min testSet cfg solve finfo s2 (d1 ++ r)
-              return (d1 ++ d2)
-
-deltaDebug1 :: Bool -> (a -> b -> c -> d -> IO Bool)
-            -> a -> b -> c -> [e] -> d
-            -> IO [e]
-deltaDebug1 True  _       _   _     _     set _ = return set
-deltaDebug1 False testSet cfg solve finfo set r = do
-  test <- testSet cfg solve finfo r
-  if test then return [] else return set
-
-type Oracle a c = (Config -> Solver a -> FInfo a -> [c] -> IO Bool)
-
-commonDebug :: (NFData a, Fixpoint a) => (FInfo a -> [c])
-                                      -> (FInfo a -> [c] -> FInfo a)
-                                      -> (Result (Integer, a) -> Bool)
-                                      -> Bool
-                                      -> Config
-                                      -> Solver a
-                                      -> FInfo a
-                                      -> Ext
-                                      -> (FInfo a -> [c] -> String)
-                                      -> IO (Result (Integer, a))
-commonDebug init updateFi checkRes min cfg solve fi ext formatter = do
-  let cs0 = init fi
-  let oracle = mkOracle updateFi checkRes
-  cs <- deltaDebug min oracle cfg solve fi cs0 []
-  let minFi = updateFi fi cs
-  saveQuery (addExt ext cfg) minFi
-  putStrLn $ formatter fi cs
-  return mempty
-
----------------------------------------------------------------------------
-minQuery :: (NFData a, Fixpoint a) => Config -> Solver a -> FInfo a
-         -> IO (Result (Integer, a))
----------------------------------------------------------------------------
-minQuery cfg solve fi = do
-  let cfg'  = cfg { minimize = False }
-  let fis   = partition' Nothing fi
-  failFis  <- filterM (fmap (not . isSafe) . solve cfg') fis
-  let failFi = safeHead "--minimize can only be called on UNSAT fq" failFis
-  let format _ cs = "Minimized Constraints: " ++ show (fst <$> cs)
-  let update fi cs = fi { cm = M.fromList cs }
-  commonDebug (M.toList . cm) update (not . isSafe) True cfg' solve failFi Min format
-
----------------------------------------------------------------------------
-minQuals :: (NFData a, Fixpoint a) => Config -> Solver a -> FInfo a
-         -> IO (Result (Integer, a))
----------------------------------------------------------------------------
-minQuals cfg solve fi = do
-  let cfg'  = cfg { minimizeQs = False }
-  let format fi qs = "Required Qualifiers: " ++ show (length qs)
-                  ++ "; Total Qualifiers: "  ++ show (length $ quals fi)
-  let update fi qs = fi { quals = qs }
-  commonDebug quals update isSafe False cfg' solve fi MinQuals format
-
----------------------------------------------------------------------------
-minKvars :: (NFData a, Fixpoint a) => Config -> Solver a -> FInfo a
-         -> IO (Result (Integer, a))
----------------------------------------------------------------------------
-minKvars cfg solve fi = do
-  let cfg'  = cfg { minimizeKs = False }
-  let format fi ks = "Required KVars: " ++ show (length ks)
-                  ++ "; Total KVars: "  ++ show (length $ ws fi)
-  commonDebug (M.keys . ws) removeOtherKs isSafe False cfg' solve fi MinKVars format
-
-removeOtherKs :: FInfo a -> [KVar] -> FInfo a
-removeOtherKs fi0 ks = fi1 { ws = ws', cm = cm' }
-  where
-    fi1 = mapKVars go fi0
-    go k | k `elem` ks = Nothing
-         | otherwise   = Just PTrue
-    ws' = M.filterWithKey (\k _ -> k `elem` ks) $ ws fi1
-    cm' = M.filter (isNonTrivial . srhs) $ cm fi1
-
----------------------------------------------------------------------------
--- Helper functions
----------------------------------------------------------------------------
-isSafe :: Result a -> Bool
-isSafe (Result Safe _ _) = True
-isSafe _                 = False
-
-addExt :: Ext -> Config -> Config
-addExt ext cfg = cfg { srcFile = queryFile ext cfg }
-
-mkOracle :: (NFData a, Fixpoint a) => (FInfo a -> [c] -> FInfo a)
-                                   -> (Result (Integer, a) -> Bool)
-                                   -> Oracle a c
-mkOracle updateFi checkRes cfg solve fi qs = do
-  let fi' = updateFi fi qs
-  res <- solve cfg fi'
-  return $ checkRes res
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Misc.hs b/liquid-fixpoint/src/Language/Fixpoint/Misc.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Misc.hs
+++ /dev/null
@@ -1,353 +0,0 @@
-{-# LANGUAGE CPP #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE OverloadedStrings         #-}
-{-# LANGUAGE ScopedTypeVariables       #-}
-{-# LANGUAGE TupleSections             #-}
-{-# LANGUAGE ConstraintKinds           #-}
-{-# LANGUAGE TypeOperators             #-}
-{-# LANGUAGE ImplicitParams            #-} -- ignore hlint
-
-module Language.Fixpoint.Misc where
-
--- import           System.IO.Unsafe            (unsafePerformIO)
-import           Control.Exception                (bracket_)
-import           Data.Hashable
--- import           Data.IORef
-import           Control.Arrow                    (second)
-import           Control.Monad                    (when, forM_)
-import qualified Data.HashMap.Strict              as M
-import qualified Data.List                        as L
-import           Data.Tuple                       (swap)
-import           Data.Maybe
-import           Data.Array                       hiding (indices)
-import           Data.Function                    (on)
-import qualified Data.Graph                       as G
-import qualified Data.Tree                        as T
-import           Data.Unique
-import           Debug.Trace                      (trace)
-import           System.Console.ANSI
-import           System.Console.CmdArgs.Verbosity (whenLoud)
-import           System.Process                   (system)
-import           System.Directory                 (createDirectoryIfMissing)
-import           System.FilePath                  (takeDirectory)
-import           Text.PrettyPrint.HughesPJ        hiding (first)
-import           System.IO                        (stdout, hFlush )
-import           System.Exit                      (ExitCode)
-import           Control.Concurrent.Async
-
-#ifdef MIN_VERSION_located_base
-import Prelude hiding (error, undefined)
-import GHC.Err.Located
-import GHC.Stack
-#endif
-
-type (|->) a b = M.HashMap a b
-
-firstMaybe :: (a -> Maybe b) -> [a] -> Maybe b
-firstMaybe f = listToMaybe . mapMaybe f
-
-
-asyncMapM :: (a -> IO b) -> [a] -> IO [b]
-asyncMapM f xs = mapM (async . f) xs >>= mapM wait
-
-traceShow     ::  Show a => String -> a -> a
-traceShow s x = trace ("\nTrace: [" ++ s ++ "] : " ++ show x)  x
-
-hashMapToAscList :: Ord a => M.HashMap a b -> [(a, b)]
-hashMapToAscList = L.sortBy (compare `on` fst) . M.toList
-
----------------------------------------------------------------
--- | Unique Int -----------------------------------------------
----------------------------------------------------------------
-
-getUniqueInt :: IO Int
-getUniqueInt = do
-  n1 <- hashUnique <$> newUnique
-  n2 <- hashUnique <$> newUnique
-  return (n1 * n2)
-
----------------------------------------------------------------
--- | Edit Distance --------------------------------------------
----------------------------------------------------------------
-
-editDistance :: Eq a => [a] -> [a] -> Int
-editDistance xs ys = table ! (m, n)
-    where
-    (m,n) = (length xs, length ys)
-    x     = array (1,m) (zip [1..] xs)
-    y     = array (1,n) (zip [1..] ys)
-
-    table :: Array (Int,Int) Int
-    table = array bnds [(ij, dist ij) | ij <- range bnds]
-    bnds  = ((0,0),(m,n))
-
-    dist (0,j) = j
-    dist (i,0) = i
-    dist (i,j) = minimum [table ! (i-1,j) + 1, table ! (i,j-1) + 1,
-        if x ! i == y ! j then table ! (i-1,j-1) else 1 + table ! (i-1,j-1)]
-
------------------------------------------------------------------------------------
------------- Support for Colored Logging ------------------------------------------
------------------------------------------------------------------------------------
-
-data Moods = Ok | Loud | Sad | Happy | Angry
-
-moodColor :: Moods -> Color
-moodColor Ok    = Black
-moodColor Loud  = Blue
-moodColor Sad   = Magenta
-moodColor Happy = Green
-moodColor Angry = Red
-
-wrapStars :: String -> String
-wrapStars msg = "\n**** " ++ msg ++ " " ++ replicate (74 - length msg) '*'
-
-withColor :: Color -> IO () -> IO ()
--- withColor _ act = act
-withColor c act
-   = do setSGR [ SetConsoleIntensity BoldIntensity, SetColor Foreground Vivid c]
-        act
-        setSGR [ Reset]
-
-colorStrLn :: Moods -> String -> IO ()
-colorStrLn c       = withColor (moodColor c) . putStrLn
-
-colorPhaseLn :: Moods -> String -> String -> IO ()
-colorPhaseLn c msg = colorStrLn c . wrapStars .  (msg ++)
-
-startPhase :: Moods -> String -> IO ()
-startPhase c msg   = colorPhaseLn c "START: " msg >> colorStrLn Ok " "
-
-doneLine   :: Moods -> String -> IO ()
-doneLine   c msg   = colorPhaseLn c "DONE:  " msg >> colorStrLn Ok " "
-
-donePhase :: Moods -> String -> IO ()
-donePhase c str
-  = case lines str of
-      (l:ls) -> doneLine c l >> forM_ ls (colorPhaseLn c "") >> hFlush stdout
-      _      -> return ()
-
-putBlankLn :: IO ()
-putBlankLn = putStrLn "" >> hFlush stdout
-
---------------------------------------------------------------------------------
-wrap :: [a] -> [a] -> [a] -> [a]
-wrap l r s = l ++ s ++ r
-
-repeats :: Int -> [a] -> [a]
-repeats n  = concat . replicate n
-
-#ifdef MIN_VERSION_located_base
-errorstar :: (?callStack :: CallStack) => String -> a
-#endif
-
-errorstar  = error . wrap (stars ++ "\n") (stars ++ "\n")
-  where
-    stars = repeats 3 $ wrapStars "ERROR"
-
-fst3 ::  (a, b, c) -> a
-fst3 (x,_,_) = x
-
-snd3 ::  (a, b, c) -> b
-snd3 (_,x,_) = x
-
-thd3 ::  (a, b, c) -> c
-thd3 (_,_,x) = x
-
-secondM :: Functor f => (b -> f c) -> (a, b) -> f (a, c)
-secondM act (x, y) = (x,) <$> act y
-
-#ifdef MIN_VERSION_located_base
-mlookup    :: (?callStack :: CallStack, Eq k, Show k, Hashable k) => M.HashMap k v -> k -> v
-safeLookup :: (?callStack :: CallStack, Eq k, Hashable k) => String -> k -> M.HashMap k v -> v
-mfromJust  :: (?callStack :: CallStack) => String -> Maybe a -> a
-#else
-mlookup    :: (Eq k, Show k, Hashable k) => M.HashMap k v -> k -> v
-safeLookup :: (Eq k, Hashable k) => String -> k -> M.HashMap k v -> v
-mfromJust  :: String -> Maybe a -> a
-#endif
-
-mlookup m k = fromMaybe err $ M.lookup k m
-  where
-    err     = errorstar $ "mlookup: unknown key " ++ show k
-
-safeLookup msg k m   = fromMaybe (errorstar msg) (M.lookup k m)
-mfromJust _ (Just x) = x
-mfromJust s Nothing  = errorstar $ "mfromJust: Nothing " ++ s
-
-inserts ::  (Eq k, Hashable k) => k -> v -> M.HashMap k [v] -> M.HashMap k [v]
-inserts k v m = M.insert k (v : M.lookupDefault [] k m) m
-
-removes ::  (Eq k, Hashable k, Eq v) => k -> v -> M.HashMap k [v] -> M.HashMap k [v]
-removes k v m = M.insert k (L.delete v (M.lookupDefault [] k m)) m
-
-count :: (Eq k, Hashable k) => [k] -> [(k, Int)]
-count = M.toList . fmap sum . group . fmap (, 1)
-
-group :: (Eq k, Hashable k) => [(k, v)] -> M.HashMap k [v]
-group = groupBase M.empty
-
-groupBase :: (Eq k, Hashable k) => M.HashMap k [v] -> [(k, v)] -> M.HashMap k [v]
-groupBase = L.foldl' (\m (k, v) -> inserts k v m)
-
-groupList :: (Eq k, Hashable k) => [(k, v)] -> [(k, [v])]
-groupList = M.toList . group
-
-groupMap   :: (Eq k, Hashable k) => (a -> k) -> [a] -> M.HashMap k [a]
-groupMap f = L.foldl' (\m x -> inserts (f x) x m) M.empty
-
-allMap :: (Eq k, Hashable k) => (v -> Bool) -> M.HashMap k v -> Bool
-allMap p = L.foldl' (\a v -> a && p v) True
-
-sortNub :: (Ord a) => [a] -> [a]
-sortNub = nubOrd . L.sort
-  where
-    nubOrd (x:t@(y:_))
-      | x == y    = nubOrd t
-      | otherwise = x : nubOrd t
-    nubOrd xs     = xs
-
-
-#ifdef MIN_VERSION_located_base
-safeZip :: (?callStack :: CallStack) => String -> [a] -> [b] -> [(a,b)]
-safeZipWith :: (?callStack :: CallStack) => String -> (a -> b -> c) -> [a] -> [b] -> [c]
-#endif
-
-safeZip msg xs ys
-  | nxs == nys
-  = zip xs ys
-  | otherwise
-  = errorstar $ "safeZip called on non-eq-sized lists (nxs = " ++ show nxs ++ ", nys = " ++ show nys ++ ") : " ++ msg
-  where
-    nxs = length xs
-    nys = length ys
-
-safeZipWith msg f xs ys
-  | nxs == nys
-  = zipWith f xs ys
-  | otherwise
-  = errorstar $ "safeZipWith called on non-eq-sized lists (nxs = " ++ show nxs ++ ", nys = " ++ show nys ++ ") : " ++ msg
-    where nxs = length xs
-          nys = length ys
-
-
-{-@ type ListNE a = {v:[a] | 0 < len v} @-}
-type ListNE a = [a]
-
-#ifdef MIN_VERSION_located_base
-safeHead   :: (?callStack :: CallStack) => String -> ListNE a -> a
-safeLast   :: (?callStack :: CallStack) => String -> ListNE a -> a
-safeInit   :: (?callStack :: CallStack) => String -> ListNE a -> [a]
-safeUncons :: (?callStack :: CallStack) => String -> ListNE a -> (a, [a])
-safeUnsnoc :: (?callStack :: CallStack) => String -> ListNE a -> ([a], a)
-#else
-safeHead   :: String -> ListNE a -> a
-safeLast   :: String -> ListNE a -> a
-safeInit   :: String -> ListNE a -> [a]
-safeUncons :: String -> ListNE a -> (a, [a])
-safeUnsnoc :: String -> ListNE a -> ([a], a)
-#endif
-
-
-safeHead _   (x:_) = x
-safeHead msg _     = errorstar $ "safeHead with empty list " ++ msg
-
-safeLast _ xs@(_:_) = last xs
-safeLast msg _      = errorstar $ "safeLast with empty list " ++ msg
-
-safeInit _ xs@(_:_) = init xs
-safeInit msg _      = errorstar $ "safeInit with empty list " ++ msg
-
-safeUncons _ (x:xs) = (x, xs)
-safeUncons msg _    = errorstar $ "safeUncons with empty list " ++ msg
-
-safeUnsnoc msg = swap . second reverse . safeUncons msg . reverse
-
-executeShellCommand :: String -> String -> IO ExitCode
-executeShellCommand phase cmd
-  = do writeLoud $ "EXEC: " ++ cmd
-       bracket_ (startPhase Loud phase) (donePhase Loud phase) $ system cmd
-
-applyNonNull :: b -> ([a] -> b) -> [a] -> b
-applyNonNull def _ [] = def
-applyNonNull _   f xs = f xs
-
-arrow, dcolon :: Doc
-arrow              = text "->"
-dcolon             = colon <> colon
-
-intersperse :: Doc -> [Doc] -> Doc
-intersperse d ds   = hsep $ punctuate d ds
-
-tshow :: (Show a) => a -> Doc
-tshow              = text . show
-
--- | If loud, write a string to stdout
-writeLoud :: String -> IO ()
-writeLoud s = whenLoud $ putStrLn s >> hFlush stdout
-
-ensurePath :: FilePath -> IO ()
-ensurePath = createDirectoryIfMissing True . takeDirectory
-
-singleton :: a -> [a]
-singleton x = [x]
-
-fM :: (Monad m) => (a -> b) -> a -> m b
-fM f = return . f
-
-whenM :: (Monad m) => m Bool -> m () -> m ()
-whenM cond act = do
-  b <- cond
-  when b act
-
-
-mapEither :: (a -> Either b c) -> [a] -> ([b], [c])
-mapEither _ []     = ([], [])
-mapEither f (x:xs) = case f x of
-                       Left y  -> (y:ys, zs)
-                       Right z -> (ys, z:zs)
-                     where
-                       (ys, zs) = mapEither f xs
-
-componentsWith :: (Ord c) => (a -> [(b, c, [c])]) -> a -> [[b]]
-componentsWith eF x = map (fst3 . f) <$> vss
-  where
-    (g,f,_)         = G.graphFromEdges . eF $ x
-    vss             = T.flatten <$> G.components g
-
-
-type EqHash a = (Eq a, Ord a, Hashable a)
-
--- >>> coalesce [[1], [2,1], [5], [5, 6], [5, 7], [9, 6], [10], [10,100]]
--- [[1,2],[5,7,6,9],[10,100]]
-
-coalesce :: (EqHash v) => [ListNE v] -> [ListNE v]
-coalesce = componentsWith coalesceEdges
-
-coalesceEdges :: (EqHash v) => [ListNE v] -> [(v, v, [v])]
-coalesceEdges vss = [ (u, u, vs) | (u, vs) <- groupList (uvs ++ vus) ]
-  where
-    vus           = swap <$> uvs
-    uvs           = [ (u, v) | (u : vs) <- vss, v <- vs ]
-
-{-
-exitColorStrLn :: Moods -> String -> IO ()
-exitColorStrLn c s = do
-  writeIORef pbRef Nothing --(Just pr)
-  putStrLn "\n"
-  colorStrLn c s
--}
-
-mapFst :: (a -> c) -> (a, b) -> (c, b)
-mapFst f (x, y) = (f x, y)
-
-mapSnd :: (b -> c) -> (a, b) -> (a, c)
-mapSnd f (x, y) = (x, f y)
-
-
-{-@ allCombinations :: xss:[[a]] -> [{v:[a]| len v == len xss}] @-}
-allCombinations :: [[a]] -> [[a]]
-allCombinations []          = [[]]
-allCombinations [[]]        = [[]]
-allCombinations ([]:_)     = []
-allCombinations ((x:xs):ys) = ((x:) <$> allCombinations ys) ++ allCombinations (xs:ys)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Parse.hs b/liquid-fixpoint/src/Language/Fixpoint/Parse.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Parse.hs
+++ /dev/null
@@ -1,1005 +0,0 @@
-{-# LANGUAGE FlexibleContexts          #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE TupleSections             #-}
-{-# LANGUAGE TypeSynonymInstances      #-}
-{-# LANGUAGE UndecidableInstances      #-}
-{-# LANGUAGE DeriveGeneric             #-}
-{-# LANGUAGE OverloadedStrings         #-}
-
-module Language.Fixpoint.Parse (
-
-  -- * Top Level Class for Parseable Values
-    Inputable (..)
-
-  -- * Top Level Class for Parseable Values
-  , Parser
-
-  -- * Lexer to add new tokens
-  , lexer
-
-  -- * Some Important keyword and parsers
-  , reserved, reservedOp
-  , parens  , brackets, angles, braces
-  , semi    , comma
-  , colon   , dcolon
-  , whiteSpace
-  , blanks
-  , pairP
-
-  -- * Parsing basic entities
-
-  --   fTyConP  -- Type constructors
-  , lowerIdP    -- Lower-case identifiers
-  , upperIdP    -- Upper-case identifiers
-  , infixIdP    -- String Haskell infix Id
-  , symbolP     -- Arbitrary Symbols
-  , constantP   -- (Integer) Constants
-  , integer     -- Integer
-  , bindP       -- Binder (lowerIdP <* colon)
-  , sortP       -- Sort
-  , mkQual      -- constructing qualifiers
-
-  -- * Parsing recursive entities
-  , exprP       -- Expressions
-  , predP       -- Refinement Predicates
-  , funAppP     -- Function Applications
-  , qualifierP  -- Qualifiers
-  , refaP       -- Refa
-  , refP        -- (Sorted) Refinements
-  , refDefP     -- (Sorted) Refinements with default binder
-  , refBindP    -- (Sorted) Refinements with configurable sub-parsers
-  , bvSortP     -- Bit-Vector Sort
-
-  -- * Some Combinators
-  , condIdP     --  condIdP  :: [Char] -> (Text -> Bool) -> Parser Text
-
-  -- * Add a Location to a parsed value
-  , locParserP
-  , locLowerIdP
-  , locUpperIdP
-
-  -- * Getting a Fresh Integer while parsing
-  , freshIntP
-
-  -- * Parsing Function
-  , doParse'
-  , parseFromFile
-  , remainderP
-
-  -- * Utilities
-  , isSmall
-
-  , initPState, PState
-
-  , Fixity(..), Assoc(..), addOperatorP
-
-  -- * For testing
-  , expr0P
-  ) where
-
-import qualified Data.HashMap.Strict         as M
-import qualified Data.HashSet                as S
-import qualified Data.Text                   as T
-import           Data.Maybe                  (fromJust, fromMaybe)
-import           Text.Parsec       hiding (State)
-import           Text.Parsec.Expr
-import qualified Text.Parsec.Token           as Token
--- import           Text.Printf                 (printf)
-import           GHC.Generics                (Generic)
-
-import           Data.Char                   (isLower)
-import           Language.Fixpoint.Smt.Bitvector
-import           Language.Fixpoint.Types.Errors
-import           Language.Fixpoint.Misc      (tshow, thd3)
-import           Language.Fixpoint.Smt.Types
--- import           Language.Fixpoint.Types.Names     (headSym)
--- import           Language.Fixpoint.Types.Visitor   (foldSort, mapSort)
-import           Language.Fixpoint.Types hiding    (mapSort)
-import           Text.PrettyPrint.HughesPJ         (text, nest, vcat, (<+>))
-
-import Control.Monad.State
-
-type Parser = ParsecT String Integer (State PState)
-type ParserT u a = ParsecT String u (State PState) a
-
-data PState = PState {fixityTable :: OpTable}
-
-
---------------------------------------------------------------------
-
-
-emptyDef :: Monad m => Token.GenLanguageDef String a m
-emptyDef    = Token.LanguageDef
-               { Token.commentStart   = ""
-               , Token.commentEnd     = ""
-               , Token.commentLine    = ""
-               , Token.nestedComments = True
-               , Token.identStart     = letter <|> char '_'
-               , Token.identLetter    = alphaNum <|> oneOf "_"
-               , Token.opStart        = Token.opLetter emptyDef
-               , Token.opLetter       = oneOf ":!#$%&*+./<=>?@\\^|-~'"
-               , Token.reservedOpNames= []
-               , Token.reservedNames  = []
-               , Token.caseSensitive  = True
-               }
-
-languageDef :: Monad m => Token.GenLanguageDef String a m
-languageDef =
-  emptyDef { Token.commentStart    = "/* "
-           , Token.commentEnd      = " */"
-           , Token.commentLine     = "//"
-           -- , Token.identStart      = satisfy (const False)
-           -- , Token.identLetter     = satisfy (const False)
-           , Token.reservedNames   = [ "SAT"
-                                     , "UNSAT"
-                                     , "true"
-                                     , "false"
-                                     , "mod"
-                                     , "data"
-                                     , "Bexp"
-                                     , "True"
-                                     , "Int"
-                                     , "import"
-                                     , "if", "then", "else"
-                                     , "func"
-
-                                     -- reserved words used in liquid haskell
-                                     , "forall"
-                                     , "exists"
-                                     , "module"
-                                     , "spec"
-                                     , "where"
-
-                                     , "decrease"
-                                     , "lazyvar"
-                                     , "LIQUID"
-                                     , "lazy"
-                                     , "local"
-                                     , "assert"
-                                     , "assume"
-                                     , "automatic-instances"
-                                     , "autosize"
-                                     , "axiomatize"
-                                     , "bound"
-                                     , "class"
-                                     , "data"
-                                     , "define"
-                                     , "defined"
-                                     , "embed"
-                                     , "expression"
-                                     , "import"
-                                     , "include"
-                                     , "infix"
-                                     , "infixl"
-                                     , "infixr"
-                                     , "inline"
-                                     , "instance"
-                                     , "invariant"
-                                     , "measure"
-                                     , "newtype"
-                                     , "predicate"
-                                     , "qualif"
-                                     , "reflect"
-                                     , "type"
-                                     , "using"
-                                     , "with"
-
-
-                                     ]
-           , Token.reservedOpNames = [ "+", "-", "*", "/", "\\", ":"
-                                     , "<", ">", "<=", ">=", "=", "!=" , "/="
-                                     , "mod", "and", "or"
-                                  --, "is"
-                                     , "&&", "||"
-                                     , "~", "=>", "==>", "<=>"
-                                     , "->"
-                                     , ":="
-                                     , "&", "^", "<<", ">>", "--"
-                                     , "?", "Bexp"
-                                     , "'"
-                                     , "_|_"
-                                     , "|"
-                                     , "<:"
-                                     , "|-"
-                                     , "::"
-                                     , "."
-                                     ]
-           }
-
-lexer :: Monad m => Token.GenTokenParser String u m
-lexer = Token.makeTokenParser languageDef
-
-
-reserved :: String -> Parser ()
-reserved      = Token.reserved      lexer
-
-reservedOp :: String -> Parser ()
-reservedOp    = Token.reservedOp    lexer
-
-parens, brackets, angles, braces :: ParserT u a -> ParserT u a
-parens        = Token.parens        lexer
-brackets      = Token.brackets      lexer
-angles        = Token.angles        lexer
-braces        = Token.braces        lexer
-
-semi, colon, comma, stringLiteral :: Parser String
-semi          = Token.semi          lexer
-colon         = Token.colon         lexer
-comma         = Token.comma         lexer
-stringLiteral = Token.stringLiteral lexer
-
-whiteSpace :: Parser ()
-whiteSpace    = Token.whiteSpace    lexer
-
-double :: Parser Double
-double        = Token.float         lexer
--- integer       = Token.integer       lexer
-
--- identifier = Token.identifier lexer
-
--- TODO:AZ: pretty sure there is already a whitespace eater in parsec,
-blanks :: Parser String
-blanks  = many (satisfy (`elem` [' ', '\t']))
-
--- | Integer
-integer :: Parser Integer
-integer = posInteger
-
---  try (char '-' >> (negate <$> posInteger))
---       <|> posInteger
-posInteger :: Parser Integer
-posInteger = toI <$> (many1 digit <* spaces)
-  where
-    toI :: String -> Integer
-    toI = read
-
-----------------------------------------------------------------
-------------------------- Expressions --------------------------
-----------------------------------------------------------------
-
-locParserP :: Parser a -> Parser (Located a)
-locParserP p = do l1 <- getPosition
-                  x  <- p
-                  l2 <- getPosition
-                  return $ Loc l1 l2 x
-
-
--- FIXME: we (LH) rely on this parser being dumb and *not* consuming trailing
--- whitespace, in order to avoid some parsers spanning multiple lines..
-
-condIdP  :: S.HashSet Char -> (String -> Bool) -> Parser Symbol
-condIdP chars f
-  = do c  <- letter <|> char '_'
-       cs <- many (satisfy (`S.member` chars))
-       blanks
-       if f (c:cs) then return (symbol $ c:cs) else parserZero
-
--- | Lower-case identifiers
-upperIdP :: Parser Symbol
-upperIdP = do
-  c <- upper
-  cs <- many (satisfy (`S.member` symChars))
-  blanks
-  return (symbol $ c:cs)
-
--- | Lower-case identifiers
-lowerIdP :: Parser Symbol
-lowerIdP = do
-  c <- satisfy (\c -> isLower c || c == '_' )
-  cs <- many (satisfy (`S.member` symChars))
-  blanks
-  return (symbol $ c:cs)
-
-symCharsP :: Parser Symbol
-symCharsP = condIdP symChars (`notElem` keyWordSyms)
-  where
-    keyWordSyms = ["if", "then", "else", "mod"]
-
--- | String Haskell infix Id
-infixIdP :: Parser String
-infixIdP = many (satisfy (`notElem` [' ', '.']))
-
-isSmall :: Char -> Bool
-isSmall c = isLower c || c == '_'
-
-locLowerIdP, locUpperIdP :: Parser LocSymbol
-locLowerIdP = locParserP lowerIdP
-locUpperIdP = locParserP upperIdP
-
--- | Arbitrary Symbols
-symbolP :: Parser Symbol
-symbolP = symbol <$> symCharsP
-
--- | (Integer) Constants
-constantP :: Parser Constant
-constantP =  try (R <$> double)
-         <|> I <$> integer
-
-symconstP :: Parser SymConst
-symconstP = SL . T.pack <$> stringLiteral
-
-expr0P :: Parser Expr
-expr0P
-  =  (fastIfP EIte exprP)
- <|> (ESym <$> symconstP)
- <|> (ECon <$> constantP)
- <|> (reservedOp "_|_" >> return EBot)
- <|> lamP
-  -- TODO:AZ get rid of these try, after the rest
- <|> try (parens exprP)
- <|> try (parens exprCastP)
- <|> (charsExpr <$> symCharsP)
-  where
-
-exprCastP :: Parser Expr
-exprCastP
-  = do e  <- exprP
-       (try dcolon) <|> colon
-       so <- sortP
-       return $ ECst e so
-
-charsExpr :: Symbol -> Expr
-charsExpr cs
-  | isSmall (headSym cs) = expr cs
-  | otherwise            = EVar cs
-
-fastIfP :: (Expr -> a -> a -> a) -> Parser a -> Parser a
-fastIfP f bodyP
-  = do reserved "if"
-       p <- predP
-       reserved "then"
-       b1 <- bodyP
-       reserved "else"
-       b2 <- bodyP
-       return $ f p b1 b2
-
-{-
-qmIfP f bodyP
-  = parens $ do
-      p  <- predP
-      reserved "?"
-      b1 <- bodyP
-      colon
-      b2 <- bodyP
-      return $ f p b1 b2
--}
-
--- | Used as input to @Text.Parsec.Expr.buildExpressionParser@ to create @exprP@
-expr1P :: Parser Expr
-expr1P
-  =  try funAppP
- <|> expr0P
-
--- | Expressions
-exprP :: Parser Expr
-exprP = (fixityTable <$> get) >>= (`buildExpressionParser` expr1P)
-
-data Fixity
-  = FInfix   {fpred :: Maybe Int, fname :: String, fop2 :: Maybe (Expr -> Expr -> Expr), fassoc :: Assoc}
-  | FPrefix  {fpred :: Maybe Int, fname :: String, fop1 :: Maybe (Expr -> Expr)}
-  | FPostfix {fpred :: Maybe Int, fname :: String, fop1 :: Maybe (Expr -> Expr)}
-
-
--- Invariant : OpTable has 10 elements
-type OpTable = OperatorTable String Integer (State PState) Expr
-
-addOperatorP :: Fixity -> Parser ()
-addOperatorP op
-  = modify $ \s -> s{fixityTable =  addOperator op (fixityTable s)}
-
-addOperator :: Fixity -> OpTable -> OpTable
-addOperator (FInfix p x f assoc) ops
- = insertOperator (makePrec p) (Infix (reservedOp x >> return (makeInfixFun x f)) assoc) ops
-addOperator (FPrefix p x f) ops
- = insertOperator (makePrec p) (Prefix (reservedOp x >> return (makePrefixFun x f))) ops
-addOperator (FPostfix p x f) ops
- = insertOperator (makePrec p) (Postfix (reservedOp x >> return (makePrefixFun x f))) ops
-
-makePrec :: Maybe Int -> Int
-makePrec = fromMaybe 9
-
-makeInfixFun :: String -> Maybe (Expr -> Expr -> Expr) -> Expr -> Expr -> Expr
-makeInfixFun x = fromMaybe (\e1 e2 -> EApp (EApp (EVar $ symbol x) e1) e2)
-
-makePrefixFun :: String -> Maybe (Expr -> Expr) -> Expr -> Expr
-makePrefixFun x = fromMaybe (EApp (EVar $ symbol x))
-
-insertOperator :: Int -> Operator String Integer (State PState) Expr -> OpTable -> OpTable
-insertOperator i op ops = go (9 - i) ops
-  where
-    go _ []       = die $ err dummySpan (text "insertOperator on empty ops")
-    go 0 (xs:xss) = (xs++[op]):xss
-    go i (xs:xss) = xs:go (i-1) xss
-
-initOpTable :: OpTable
-initOpTable = replicate 10 [] --  take 10 (repeat [])
-
-bops :: OpTable
-bops = foldl (flip addOperator) initOpTable buildinOps
-  where
--- Build in Haskell ops https://www.haskell.org/onlinereport/decls.html#fixity
-    buildinOps = [ FPrefix (Just 9) "-"   (Just ENeg)
-                 , FInfix  (Just 7) "*"   (Just $ EBin Times) AssocLeft
-                 , FInfix  (Just 7) "/"   (Just $ EBin Div)   AssocLeft
-                 , FInfix  (Just 6) "-"   (Just $ EBin Minus) AssocLeft
-                 , FInfix  (Just 6) "+"   (Just $ EBin Plus)  AssocLeft
-                 , FInfix  (Just 5) "mod" (Just $ EBin Mod)   AssocLeft -- Haskell gives mod 7
-                 ]
-
--- | Function Applications
-funAppP :: Parser Expr
-funAppP            =  litP <|> exprFunP <|> simpleAppP
-  where
-    exprFunP = mkEApp <$> funSymbolP <*> funRhsP
-    funRhsP  =  sepBy1 expr0P blanks
-            <|> parens innerP
-    innerP =   brackets (sepBy exprP semi)
-           <|> sepBy exprP comma
-
-    -- TODO:AZ the parens here should be superfluous, but it hits an infinite loop if removed
-    simpleAppP     = EApp <$> parens exprP <*> parens exprP
-    funSymbolP     = locParserP symbolP
-
-
--- TODO:AZ: The comment says BitVector literal, but it accepts any @Sort@
--- | BitVector literal: lit "#x00000001" (BitVec (Size32 obj))
-litP :: Parser Expr
-litP = do reserved "lit"
-          l <- stringLiteral
-          t <- sortP
-          return $ ECon $ L (T.pack l) t
-
--- parenBrackets :: Parser a -> Parser a
--- parenBrackets  = parens . brackets
-
--- eMinus     = EBin Minus (expr (0 :: Integer))
--- eCons x xs = EApp (dummyLoc consName) [x, xs]
--- eNil       = EVar nilName
-
-lamP :: Parser Expr
-lamP
-  = do reservedOp "\\"
-       x <- symbolP
-       colon
-       t <- sortP
-       reservedOp "->"
-       e  <- exprP
-       return $ ELam (x, t) e
-
-dcolon :: Parser String
-dcolon = string "::" <* spaces
-
-varSortP :: Parser Sort
-varSortP  = FVar  <$> parens intP
-
-funcSortP :: Parser Sort
-funcSortP = parens $ mkFFunc <$> intP <* comma <*> sortsP
-
-sortsP :: Parser [Sort]
-sortsP = brackets $ sepBy sortP semi
-
--- | Sort
-sortP    :: Parser Sort
-sortP    = sortP' (sepBy sortArgP blanks)
-
-sortArgP :: Parser Sort
-sortArgP = sortP' (return [])
-
-{-
-sortFunP :: Parser Sort
-sortFunP
-   =  try (string "@" >> varSortP)
-  <|> (fTyconSort <$> fTyConP)
--}
-
-sortP' :: Parser [Sort] -> Parser Sort
-sortP' appArgsP
-   =  parens sortP
-  <|> (reserved "func" >> funcSortP)
-  <|> (fAppTC listFTyCon . single <$> brackets sortP)
-  <|> bvSortP
-  <|> (fAppTC <$> fTyConP <*> appArgsP)
-  <|> (fApp   <$> tvarP   <*> appArgsP)
-
-single :: a -> [a]
-single x = [x]
-
-tvarP :: Parser Sort
-tvarP
-   =  (string "@" >> varSortP)
-  <|> (FObj . symbol <$> lowerIdP)
-
-
-fTyConP :: Parser FTycon
-fTyConP
-  =   (reserved "int"     >> return intFTyCon)
-  <|> (reserved "Integer" >> return intFTyCon)
-  <|> (reserved "Int"     >> return intFTyCon)
-  <|> (reserved "int"     >> return intFTyCon) -- TODO:AZ duplicate?
-  <|> (reserved "real"    >> return realFTyCon)
-  <|> (reserved "bool"    >> return boolFTyCon)
-  <|> (reserved "num"     >> return numFTyCon)
-  <|> (reserved "Str"     >> return strFTyCon)
-  <|> (symbolFTycon      <$> locUpperIdP)
-
--- | Bit-Vector Sort
-bvSortP :: Parser Sort
-bvSortP = mkSort <$> (bvSizeP "Size32" S32 <|> bvSizeP "Size64" S64)
-  where
-    bvSizeP ss s = do
-      parens (reserved "BitVec" >> reserved ss)
-      return s
-
-
---------------------------------------------------------------------------------
--- | Predicates ----------------------------------------------------------------
---------------------------------------------------------------------------------
-
-pred0P :: Parser Expr
-pred0P =  trueP
-      <|> falseP
-      <|> (reservedOp "??" >> makeUniquePGrad)
-      <|> kvarPredP
-      <|> (fastIfP pIte predP)
-      <|> try predrP
-      <|> (parens predP)
-      <|> (reservedOp "?" *> exprP)
-      <|> try funAppP
-      <|> (eVar <$> symbolP)
-      <|> (reservedOp "&&" >> pGAnds <$> predsP)
-      <|> (reservedOp "||" >> POr  <$> predsP)
-
-makeUniquePGrad :: Parser Expr 
-makeUniquePGrad
-  = do uniquePos <- getPosition
-       return $ PGrad (KV $ symbol $ show uniquePos) mempty mempty
-
--- qmP    = reserved "?" <|> reserved "Bexp"
-
-trueP, falseP :: Parser Expr
-trueP  = reserved "true"  >> return PTrue
-falseP = reserved "false" >> return PFalse
-
-kvarPredP :: Parser Expr
-kvarPredP = PKVar <$> kvarP <*> substP
-
-kvarP :: Parser KVar
-kvarP = KV <$> (char '$' *> symbolP <* spaces)
-
-substP :: Parser Subst
-substP = mkSubst <$> many (brackets $ pairP symbolP aP exprP)
-  where
-    aP = reservedOp ":="
-
-predsP :: Parser [Expr]
-predsP = brackets $ sepBy predP semi
-
-predP  :: Parser Expr
-predP  = buildExpressionParser lops pred0P
-  where
-    lops = [ [Prefix (reservedOp "~"    >> return PNot)]
-           , [Prefix (reservedOp "not " >> return PNot)]
-           , [Infix  (reservedOp "&&"   >> return (\x y -> pGAnd x y)) AssocRight]
-           , [Infix  (reservedOp "||"   >> return (\x y -> POr  [x,y])) AssocRight]
-           , [Infix  (reservedOp "=>"   >> return PImp) AssocRight]
-           , [Infix  (reservedOp "==>"  >> return PImp) AssocRight]
-           , [Infix  (reservedOp "<=>"  >> return PIff) AssocRight]]
-
-predrP :: Parser Expr
-predrP = do e1    <- exprP
-            r     <- brelP
-            e2    <- exprP
-            return $ r e1 e2
-
-brelP ::  Parser (Expr -> Expr -> Expr)
-brelP =  (reservedOp "==" >> return (PAtom Eq))
-     <|> (reservedOp "="  >> return (PAtom Eq))
-     <|> (reservedOp "~~" >> return (PAtom Ueq))
-     <|> (reservedOp "!=" >> return (PAtom Ne))
-     <|> (reservedOp "/=" >> return (PAtom Ne))
-     <|> (reservedOp "!~" >> return (PAtom Une))
-     <|> (reservedOp "<"  >> return (PAtom Lt))
-     <|> (reservedOp "<=" >> return (PAtom Le))
-     <|> (reservedOp ">"  >> return (PAtom Gt))
-     <|> (reservedOp ">=" >> return (PAtom Ge))
-
---------------------------------------------------------------------------------
--- | BareTypes -----------------------------------------------------------------
---------------------------------------------------------------------------------
-
--- | Refa
-refaP :: Parser Expr
-refaP =  try (pAnd <$> brackets (sepBy predP semi))
-     <|> predP
-
-
--- | (Sorted) Refinements with configurable sub-parsers
-refBindP :: Parser Symbol -> Parser Expr -> Parser (Reft -> a) -> Parser a
-refBindP bp rp kindP
-  = braces $ do
-      x  <- bp
-      t  <- kindP
-      reservedOp "|"
-      ra <- rp <* spaces
-      return $ t (Reft (x, ra))
-
-
--- bindP      = symbol    <$> (lowerIdP <* colon)
--- | Binder (lowerIdP <* colon)
-bindP :: Parser Symbol
-bindP = symbolP <* colon
-
-optBindP :: Symbol -> Parser Symbol
-optBindP x = try bindP <|> return x
-
--- | (Sorted) Refinements
-refP :: Parser (Reft -> a) -> Parser a
-refP       = refBindP bindP refaP
-
--- | (Sorted) Refinements with default binder
-refDefP :: Symbol -> Parser Expr -> Parser (Reft -> a) -> Parser a
-refDefP x  = refBindP (optBindP x)
-
----------------------------------------------------------------------
--- | Parsing Qualifiers ---------------------------------------------
----------------------------------------------------------------------
-
--- | Qualifiers
-qualifierP :: Parser Sort -> Parser Qualifier
-qualifierP tP = do
-  pos    <- getPosition
-  n      <- upperIdP
-  params <- parens $ sepBy1 (sortBindP tP) comma
-  _      <- colon
-  body   <- predP
-  return  $ mkQual n params body pos
-  where
-    sortBindP = pairP symbolP colon
-
-pairP :: Parser a -> Parser z -> Parser b -> Parser (a, b)
-pairP xP sepP yP = (,) <$> xP <* sepP <*> yP
-
--- mkParam :: Symbol -> Symbol
--- mkParam s       = unsafeTextSymbol ('~' `T.cons` toUpper c `T.cons` cs)
---  where
---    Just (c,cs) = T.uncons $ symbolSafeText s
-
-
----------------------------------------------------------------------
--- | Parsing Constraints (.fq files) --------------------------------
----------------------------------------------------------------------
-
--- Entities in Query File
-data Def a
-  = Srt !Sort
-  | Axm !Expr
-  | Cst !(SubC a)
-  | Wfc !(WfC a)
-  | Con !Symbol !Sort
-  | Dis !Symbol !Sort
-  | Qul !Qualifier
-  | Kut !KVar
-  | Pack !KVar !Int
-  | IBind !Int !Symbol !SortedReft
-  | Opt !String
-  deriving (Show, Generic)
-  --  Sol of solbind
-  --  Dep of FixConstraint.dep
-
-fInfoOptP :: Parser (FInfoWithOpts ())
-fInfoOptP = do ps <- many defP
-               return $ FIO (defsFInfo ps) [s | Opt s <- ps]
-
-fInfoP :: Parser (FInfo ())
-fInfoP = defsFInfo <$> {-# SCC "many-defP" #-} many defP
-
-defP :: Parser (Def ())
-defP =  Srt   <$> (reserved "sort"       >> colon >> sortP)
-    <|> Axm   <$> (reserved "axiom"      >> colon >> predP)
-    <|> Cst   <$> (reserved "constraint" >> colon >> {-# SCC "subCP" #-} subCP)
-    <|> Wfc   <$> (reserved "wf"         >> colon >> {-# SCC "wfCP"  #-} wfCP)
-    <|> Con   <$> (reserved "constant"   >> symbolP) <*> (colon >> sortP)
-    <|> Dis   <$> (reserved "distinct"   >> symbolP) <*> (colon >> sortP)
-    <|> Pack  <$> (reserved "pack"       >> kvarP)   <*> (colon >> intP)
-    <|> Qul   <$> (reserved "qualif"     >> qualifierP sortP)
-    <|> Kut   <$> (reserved "cut"        >> kvarP)
-    <|> IBind <$> (reserved "bind"       >> intP) <*> symbolP <*> (colon >> {-# SCC "sortedReftP" #-} sortedReftP)
-    <|> Opt   <$> (reserved "fixpoint"   >> stringLiteral)
-
-sortedReftP :: Parser SortedReft
-sortedReftP = refP (RR <$> (sortP <* spaces))
-
-wfCP :: Parser (WfC ())
-wfCP = do reserved "env"
-          env <- envP
-          reserved "reft"
-          r   <- sortedReftP
-          let [w] = wfC env r ()
-          return w
-
-subCP :: Parser (SubC ())
-subCP = do pos <- getPosition
-           reserved "env"
-           env <- envP
-           reserved "lhs"
-           lhs <- sortedReftP
-           reserved "rhs"
-           rhs <- sortedReftP
-           reserved "id"
-           i   <- integer <* spaces
-           tag <- tagP
-           pos' <- getPosition
-           return $ subC' env lhs rhs i tag pos pos'
-
-subC' :: IBindEnv
-      -> SortedReft
-      -> SortedReft
-      -> Integer
-      -> Tag
-      -> SourcePos
-      -> SourcePos
-      -> SubC ()
-subC' env lhs rhs i tag l l'
-  = case cs of
-      [c] -> c
-      _   -> die $ err sp $ "RHS without single conjunct at" <+> pprint l'
-    where
-       cs = subC env lhs rhs (Just i) tag ()
-       sp = SS l l'
-
-
-tagP  :: Parser [Int]
-tagP  = reserved "tag" >> spaces >> brackets (sepBy intP semi)
-
-envP  :: Parser IBindEnv
-envP  = do binds <- brackets $ sepBy (intP <* spaces) semi
-           return $ insertsIBindEnv binds emptyIBindEnv
-
-intP :: Parser Int
-intP = fromInteger <$> integer
-
-defsFInfo :: [Def a] -> FInfo a
-defsFInfo defs = {-# SCC "defsFI" #-} FI cm ws bs lts dts kts qs mempty mempty mempty mempty
-  where
-    cm         = M.fromList         [(cid c, c)         | Cst c       <- defs]
-    ws         = M.fromList         [(thd3 $ wrft w, w) | Wfc w       <- defs]
-    bs         = bindEnvFromList    [(n, x, r)          | IBind n x r <- defs]
-    lts        = fromListSEnv       [(x, t)             | Con x t     <- defs]
-    dts        = fromListSEnv       [(x, t)             | Dis x t     <- defs]
-    kts        = KS $ S.fromList    [k                  | Kut k       <- defs]
-    -- pks        = Packs $ M.fromList [(k, i)             | Pack k i    <- defs]
-    qs         =                    [q                  | Qul q       <- defs]
-    cid        = fromJust . sid
-    -- msg    = show $ "#Lits = " ++ (show $ length consts)
-
----------------------------------------------------------------------
--- | Interacting with Fixpoint --------------------------------------
----------------------------------------------------------------------
-
-fixResultP :: Parser a -> Parser (FixResult a)
-fixResultP pp
-  =  (reserved "SAT"   >> return Safe)
- <|> (reserved "UNSAT" >> Unsafe <$> brackets (sepBy pp comma))
- <|> (reserved "CRASH" >> crashP pp)
-
-crashP :: Parser a -> Parser (FixResult a)
-crashP pp = do
-  i   <- pp
-  msg <- many anyChar
-  return $ Crash [i] msg
-
-predSolP :: Parser Expr
-predSolP = parens (predP  <* (comma >> iQualP))
-
-iQualP :: Parser [Symbol]
-iQualP = upperIdP >> parens (sepBy symbolP comma)
-
-solution1P :: Parser (KVar, Expr)
-solution1P = do
-  reserved "solution:"
-  k  <- kvP
-  reservedOp ":="
-  ps <- brackets $ sepBy predSolP semi
-  return (k, simplify $ PAnd ps)
-  where
-    kvP = try kvarP <|> (KV <$> symbolP)
-
-solutionP :: Parser (M.HashMap KVar Expr)
-solutionP = M.fromList <$> sepBy solution1P whiteSpace
-
-solutionFileP :: Parser (FixResult Integer, M.HashMap KVar Expr)
-solutionFileP = (,) <$> fixResultP integer <*> solutionP
-
---------------------------------------------------------------------------------
-remainderP :: Parser a -> Parser (a, String, SourcePos)
-remainderP p
-  = do res <- p
-       str <- getInput
-       pos <- getPosition
-       return (res, str, pos)
-
-
-initPState :: PState
-initPState = PState {fixityTable = bops}
-
-doParse' :: Parser a -> SourceName -> String -> a
-doParse' parser f s
-  = case evalState (runParserT (remainderP (whiteSpace >> parser)) 0 f s) initPState of
-      Left e            -> die $ err (errorSpan e) (dErr e)
-      Right (r, "", _)  -> r
-      Right (_, r, l)   -> die $ err (SS l l) (dRem r)
-    where
-      dErr e = vcat [ "parseError"        <+> tshow e
-                    , "when parsing from" <+> text f ]
-      dRem r = vcat [ "doParse has leftover"
-                    , nest 4 (text r)
-                    , "when parsing from" <+> text f ]
-
-
-errorSpan :: ParseError -> SrcSpan
-errorSpan e = SS l l where l = errorPos e
-
-parseFromFile :: Parser b -> SourceName -> IO b
-parseFromFile p f = doParse' p f <$> readFile f
-
-freshIntP :: Parser Integer
-freshIntP = do n <- getState
-               updateState (+ 1)
-               return n
-
----------------------------------------------------------------------
--- Standalone SMTLIB2 commands --------------------------------------
----------------------------------------------------------------------
-commandsP :: Parser [Command]
-commandsP = sepBy commandP semi
-
-commandP :: Parser Command
-commandP
-  =  (reserved "var"      >> cmdVarP)
- <|> (reserved "push"     >> return Push)
- <|> (reserved "pop"      >> return Pop)
- <|> (reserved "check"    >> return CheckSat)
- <|> (reserved "assert"   >> (Assert Nothing <$> predP))
- <|> (reserved "distinct" >> (Distinct <$> brackets (sepBy exprP comma)))
-
-cmdVarP :: Parser Command
-cmdVarP = do
-  x <- bindP
-  t <- sortP
-  return $ Declare x [] t
-
----------------------------------------------------------------------
--- Bundling Parsers into a Typeclass --------------------------------
----------------------------------------------------------------------
-
-class Inputable a where
-  rr  :: String -> a
-  rr' :: String -> String -> a
-  rr' _ = rr
-  rr    = rr' ""
-
-instance Inputable Symbol where
-  rr' = doParse' symbolP
-
-instance Inputable Constant where
-  rr' = doParse' constantP
-
-instance Inputable Expr where
-  rr' = doParse' exprP
-
-instance Inputable (FixResult Integer) where
-  rr' = doParse' $ fixResultP integer
-
-instance Inputable (FixResult Integer, FixSolution) where
-  rr' = doParse' solutionFileP
-
-instance Inputable (FInfo ()) where
-  rr' = {-# SCC "fInfoP" #-} doParse' fInfoP
-
-instance Inputable (FInfoWithOpts ()) where
-  rr' = {-# SCC "fInfoWithOptsP" #-} doParse' fInfoOptP
-
-instance Inputable Command where
-  rr' = doParse' commandP
-
-instance Inputable [Command] where
-  rr' = doParse' commandsP
-
-{-
----------------------------------------------------------------
---------------------------- Testing ---------------------------
----------------------------------------------------------------
-
--- A few tricky predicates for parsing
--- myTest1 = "((((v >= 56320) && (v <= 57343)) => (((numchars a o ((i - o) + 1)) == (1 + (numchars a o ((i - o) - 1)))) && (((numchars a o (i - (o -1))) >= 0) && (((i - o) - 1) >= 0)))) && ((not (((v >= 56320) && (v <= 57343)))) => (((numchars a o ((i - o) + 1)) == (1 + (numchars a o (i - o)))) && ((numchars a o (i - o)) >= 0))))"
---
--- myTest2 = "len x = len y - 1"
--- myTest3 = "len x y z = len a b c - 1"
--- myTest4 = "len x y z = len a b (c - 1)"
--- myTest5 = "x >= -1"
--- myTest6 = "(bLength v) = if n > 0 then n else 0"
--- myTest7 = "(bLength v) = (if n > 0 then n else 0)"
--- myTest8 = "(bLength v) = (n > 0 ? n : 0)"
-
-
-sa  = "0"
-sb  = "x"
-sc  = "(x0 + y0 + z0) "
-sd  = "(x+ y * 1)"
-se  = "_|_ "
-sf  = "(1 + x + _|_)"
-sg  = "f(x,y,z)"
-sh  = "(f((x+1), (y * a * b - 1), _|_))"
-si  = "(2 + f((x+1), (y * a * b - 1), _|_))"
-
-s0  = "true"
-s1  = "false"
-s2  = "v > 0"
-s3  = "(0 < v && v < 100)"
-s4  = "(x < v && v < y+10 && v < z)"
-s6  = "[(v > 0)]"
-s6' = "x"
-s7' = "(x <=> y)"
-s8' = "(x <=> a = b)"
-s9' = "(x <=> (a <= b && b < c))"
-
-s7  = "{ v: Int | [(v > 0)] }"
-s8  = "x:{ v: Int | v > 0 } -> {v : Int | v >= x}"
-s9  = "v = x+y"
-s10 = "{v: Int | v = x + y}"
-
-s11 = "x:{v:Int | true } -> {v:Int | true }"
-s12 = "y : {v:Int | true } -> {v:Int | v = x }"
-s13 = "x:{v:Int | true } -> y:{v:Int | true} -> {v:Int | v = x + y}"
-s14 = "x:{v:a  | true} -> y:{v:b | true } -> {v:a | (x < v && v < y) }"
-s15 = "x:Int -> Bool"
-s16 = "x:Int -> y:Int -> {v:Int | v = x + y}"
-s17 = "a"
-s18 = "x:a -> Bool"
-s20 = "forall a . x:Int -> Bool"
-
-s21 = "x:{v : GHC.Prim.Int# | true } -> {v : Int | true }"
-
-r0  = (rr s0) :: Pred
-r0' = (rr s0) :: [Refa]
-r1  = (rr s1) :: [Refa]
-
-
-e1, e2  :: Expr
-e1  = rr "(k_1 + k_2)"
-e2  = rr "k_1"
-
-o1, o2, o3 :: FixResult Integer
-o1  = rr "SAT "
-o2  = rr "UNSAT [1, 2, 9,10]"
-o3  = rr "UNSAT []"
-
--- sol1 = doParse solution1P "solution: k_5 := [0 <= VV_int]"
--- sol2 = doParse solution1P "solution: k_4 := [(0 <= VV_int)]"
-
-b0, b1, b2, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 :: BareType
-b0  = rr "Int"
-b1  = rr "x:{v:Int | true } -> y:{v:Int | true} -> {v:Int | v = x + y}"
-b2  = rr "x:{v:Int | true } -> y:{v:Int | true} -> {v:Int | v = x - y}"
-b4  = rr "forall a . x : a -> Bool"
-b5  = rr "Int -> Int -> Int"
-b6  = rr "(Int -> Int) -> Int"
-b7  = rr "({v: Int | v > 10} -> Int) -> Int"
-b8  = rr "(x:Int -> {v: Int | v > x}) -> {v: Int | v > 10}"
-b9  = rr "x:Int -> {v: Int | v > x} -> {v: Int | v > 10}"
-b10 = rr "[Int]"
-b11 = rr "x:[Int] -> {v: Int | v > 10}"
-b12 = rr "[Int] -> String"
-b13 = rr "x:(Int, [Bool]) -> [(String, String)]"
-
--- b3 :: BareType
--- b3  = rr "x:Int -> y:Int -> {v:Bool | ((v is True) <=> x = y)}"
-
-m1 = ["len :: [a] -> Int", "len (Nil) = 0", "len (Cons x xs) = 1 + len(xs)"]
-m2 = ["tog :: LL a -> Int", "tog (Nil) = 100", "tog (Cons y ys) = 200"]
-
-me1, me2 :: Measure.Measure BareType Symbol
-me1 = (rr $ intercalate "\n" m1)
-me2 = (rr $ intercalate "\n" m2)
--}
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Smt/Bitvector.hs b/liquid-fixpoint/src/Language/Fixpoint/Smt/Bitvector.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Smt/Bitvector.hs
+++ /dev/null
@@ -1,69 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-{-# LANGUAGE DeriveGeneric      #-}
-
-module Language.Fixpoint.Smt.Bitvector
-       ( -- * Constructor
-         Bv (..)
-
-         -- * Sizes
-       , BvSize (..)
-
-         -- * Operators
-       , BvOp (..)
-
-         -- * BitVector Sort Constructor
-       , mkSort
-
-         -- * BitVector Expression Constructor
-       , eOp
-
-         -- * BitVector Type Constructor
-       , bvTyCon
-
-       ) where
-
-import           Data.Generics           (Data)
-import qualified Data.Text               as T
-import           Data.Typeable           (Typeable)
-import           GHC.Generics            (Generic)
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types
-
-data Bv     = Bv !BvSize !String
-
-data BvSize = S32   | S64
-              deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-data BvOp   = BvAnd | BvOr
-              deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
--- | Construct the bitvector `Sort` from its `BvSize`
-mkSort :: BvSize -> Sort
-mkSort s = fApp (fTyconSort bvTyCon) [ fTyconSort (sizeTyCon s) ]
-
-bvTyCon :: FTycon
-bvTyCon = symbolFTycon $ dummyLoc bitVecName
-
-sizeTyCon    :: BvSize -> FTycon
-sizeTyCon    = symbolFTycon . dummyLoc . sizeName
-
-sizeName :: BvSize -> Symbol
-sizeName S32 = size32Name
-sizeName S64 = size64Name
-
--- | Construct an `Expr` using a raw string, e.g. (Bv S32 "#x02000000")
-instance Expression Bv where
-  expr (Bv sz v) = ECon $ L (T.pack v) (mkSort sz)
-
--- | Apply some bitvector operator to a list of arguments
-eOp :: BvOp -> [Expr] -> Expr
-eOp b es = foldl EApp (EVar $ opName b) es
-
-opName :: BvOp -> Symbol
-opName BvAnd = bvAndName
-opName BvOr  = bvOrName
-
-
--- sizeSort     = (`FApp` [fObj $ dummyLoc $ symbol "obj"]) . sizeTC
--- s32TyCon     = symbolFTycon $ dummyLoc size32Name
--- s64TyCon     = symbolFTycon $ dummyLoc size64Name
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Smt/Interface.hs b/liquid-fixpoint/src/Language/Fixpoint/Smt/Interface.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Smt/Interface.hs
+++ /dev/null
@@ -1,412 +0,0 @@
-{-# LANGUAGE BangPatterns              #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE OverloadedStrings         #-}
-{-# LANGUAGE RecordWildCards           #-}
-{-# LANGUAGE UndecidableInstances      #-}
-{-# LANGUAGE ScopedTypeVariables       #-}
-
--- | This module contains an SMTLIB2 interface for
---   1. checking the validity, and,
---   2. computing satisfying assignments
---   for formulas.
---   By implementing a binary interface over the SMTLIB2 format defined at
---   http://www.smt-lib.org/
---   http://www.grammatech.com/resource/smt/SMTLIBTutorial.pdf
-
-module Language.Fixpoint.Smt.Interface (
-
-    -- * Commands
-      Command  (..)
-
-    -- * Responses
-    , Response (..)
-
-    -- * Typeclass for SMTLIB2 conversion
-    , SMTLIB2 (..)
-
-    -- * Creating and killing SMTLIB2 Process
-    , Context (..)
-    , makeContext
-    , makeContextNoLog
-    , makeContextWithSEnv
-    , cleanupContext
-
-    -- * Execute Queries
-    , command
-    , smtWrite
-
-    -- * Query API
-    , smtDecl
-    , smtDecls
-    , smtAssert
-    , smtAssertAxiom
-    , smtCheckUnsat
-    , smtCheckSat
-    , smtBracket
-    , smtDistinct
-    , smtPush, smtPop
-
-    -- * Check Validity
-    , checkValid
-    , checkValid'
-    , checkValidWithContext
-    , checkValids
-    , makeSmtContext
-
-    ) where
-
-import           Language.Fixpoint.Types.Config ( SMTSolver (..)
-                                                , Config
-                                                , solver
-                                                , extensionality
-                                                , alphaEquivalence
-                                                , betaEquivalence
-                                                , normalForm
-                                                , stringTheory)
-import           Language.Fixpoint.Misc         (errorstar)
-import           Language.Fixpoint.Types.Errors
--- import           Language.Fixpoint.SortCheck    (elaborate)
-import           Language.Fixpoint.Utils.Files
-import           Language.Fixpoint.Types hiding (allowHO)
-import           Language.Fixpoint.Smt.Types
-import qualified Language.Fixpoint.Smt.Theories as Thy
-import           Language.Fixpoint.Smt.Serialize ()
-
-import           Control.Applicative      ((<|>))
-import           Control.Monad
-import           Control.Exception
-import           Data.Char
-import           Data.Monoid
-import qualified Data.Text                as T
-import           Data.Text.Format
-import qualified Data.Text.IO             as TIO
-import qualified Data.Text.Lazy           as LT
-import qualified Data.Text.Lazy.Builder   as Builder
-import qualified Data.Text.Lazy.IO        as LTIO
-import           System.Directory
-import           System.Console.CmdArgs.Verbosity
-import           System.Exit              hiding (die)
-import           System.FilePath
-import           System.IO                (Handle, IOMode (..), hClose, hFlush, openFile)
-import           System.Process
-import qualified Data.Attoparsec.Text     as A
-import qualified Data.HashMap.Strict      as M
-import           Data.Attoparsec.Internal.Types (Parser)
-import           Text.PrettyPrint.HughesPJ (text)
-{-
-runFile f
-  = readFile f >>= runString
-
-runString str
-  = runCommands $ rr str
-
-runCommands cmds
-  = do me   <- makeContext Z3
-       mapM_ (T.putStrLn . smt2) cmds
-       zs   <- mapM (command me) cmds
-       return zs
--}
-
-
--- TODO take makeContext's Bool from caller instead of always using False?
-makeSmtContext :: Config -> FilePath -> [(Symbol, Sort)] -> IO Context
-makeSmtContext cfg f xts = do
-  me <- makeContextWithSEnv cfg f $ fromListSEnv xts
-  smtDecls me theoryDecls
-  smtDecls me xts
-  return me
-
-theoryDecls :: [(Symbol, Sort)]
-theoryDecls = [ (x, tsSort ty) | (x, ty) <- M.toList Thy.theorySymbols, not (tsInterp ty)]
-
-checkValidWithContext :: Context -> [(Symbol, Sort)] -> Expr -> Expr -> IO Bool
-checkValidWithContext me xts p q =
-  smtBracket me "checkValidWithContext" $
-    checkValid' me xts p q
-
--- | type ClosedPred E = {v:Pred | subset (vars v) (keys E) }
--- checkValid :: e:Env -> ClosedPred e -> ClosedPred e -> IO Bool
-checkValid :: Config -> FilePath -> [(Symbol, Sort)] -> Expr -> Expr -> IO Bool
-checkValid cfg f xts p q = do
-  me <- makeContext cfg f
-  checkValid' me xts p q
-
-checkValid' :: Context -> [(Symbol, Sort)] -> Expr -> Expr -> IO Bool
-checkValid' me xts p q = do
-  smtDecls me xts
-  smtAssert me $ pAnd [p, PNot q]
-  smtCheckUnsat me
-
--- | If you already HAVE a context, where all the variables have declared types
---   (e.g. if you want to make MANY repeated Queries)
-
--- checkValid :: e:Env -> [ClosedPred e] -> IO [Bool]
-checkValids :: Config -> FilePath -> [(Symbol, Sort)] -> [Expr] -> IO [Bool]
-checkValids cfg f xts ps
-  = do me <- makeContext cfg f
-       smtDecls me xts
-       forM ps $ \p ->
-          smtBracket me "checkValids" $
-            smtAssert me (PNot p) >> smtCheckUnsat me
-
--- debugFile :: FilePath
--- debugFile = "DEBUG.smt2"
-
---------------------------------------------------------------------------
--- | SMT IO --------------------------------------------------------------
---------------------------------------------------------------------------
-
-
---------------------------------------------------------------------------
-command              :: Context -> Command -> IO Response
---------------------------------------------------------------------------
-command me !cmd       = say cmd >> hear cmd
-  where
-    say               = smtWrite me . Builder.toLazyText . runSmt2
-    hear CheckSat     = smtRead me
-    hear (GetValue _) = smtRead me
-    hear _            = return Ok
-
-
-smtWrite :: Context -> Raw -> IO ()
-smtWrite me !s = smtWriteRaw me s
-
-smtRead :: Context -> IO Response
-smtRead me = {-# SCC "smtRead" #-}
-    do ln  <- smtReadRaw me
-       res <- A.parseWith (smtReadRaw me) responseP ln
-       case A.eitherResult res of
-         Left e  -> errorstar $ "SMTREAD:" ++ e
-         Right r -> do
-           maybe (return ()) (\h -> hPutStrLnNow h $ format "; SMT Says: {}" (Only $ show r)) (ctxLog me)
-           -- when (verbose me) $ TIO.putStrLn $ format "SMT Says: {}" (Only $ show r)
-           return r
-
-type SmtParser a = Parser T.Text a
-
-responseP :: SmtParser Response
-responseP = {-# SCC "responseP" #-} A.char '(' *> sexpP
-         <|> A.string "sat"     *> return Sat
-         <|> A.string "unsat"   *> return Unsat
-         <|> A.string "unknown" *> return Unknown
-
-sexpP :: SmtParser Response
-sexpP = {-# SCC "sexpP" #-} A.string "error" *> (Error <$> errorP)
-     <|> Values <$> valuesP
-
-errorP :: SmtParser T.Text
-errorP = A.skipSpace *> A.char '"' *> A.takeWhile1 (/='"') <* A.string "\")"
-
-valuesP :: SmtParser [(Symbol, T.Text)]
-valuesP = A.many1' pairP <* A.char ')'
-
-pairP :: SmtParser (Symbol, T.Text)
-pairP = {-# SCC "pairP" #-}
-  do A.skipSpace
-     A.char '('
-     !x <- symbolP
-     A.skipSpace
-     !v <- valueP
-     A.char ')'
-     return (x,v)
-
-symbolP :: SmtParser Symbol
-symbolP = {-# SCC "symbolP" #-} symbol <$> A.takeWhile1 (not . isSpace)
-
-valueP :: SmtParser T.Text
-valueP = {-# SCC "valueP" #-} negativeP
-      <|> A.takeWhile1 (\c -> not (c == ')' || isSpace c))
-
-negativeP :: SmtParser T.Text
-negativeP
-  = do v <- A.char '(' *> A.takeWhile1 (/=')') <* A.char ')'
-       return $ "(" <> v <> ")"
-
-smtWriteRaw      :: Context -> Raw -> IO ()
-smtWriteRaw me !s = {-# SCC "smtWriteRaw" #-} do
-  -- whenLoud $ do LTIO.appendFile debugFile (s <> "\n")
-  --               LTIO.putStrLn ("CMD-RAW:" <> s <> ":CMD-RAW:DONE")
-  hPutStrLnNow (ctxCout me) s
-  maybe (return ()) (`hPutStrLnNow` s) (ctxLog me)
-
-smtReadRaw       :: Context -> IO T.Text
-smtReadRaw me    = {-# SCC "smtReadRaw" #-} TIO.hGetLine (ctxCin me)
-
-hPutStrLnNow     :: Handle -> LT.Text -> IO ()
-hPutStrLnNow h !s = LTIO.hPutStrLn h s >> hFlush h
-
---------------------------------------------------------------------------
--- | SMT Context ---------------------------------------------------------
---------------------------------------------------------------------------
-
---------------------------------------------------------------------------
-makeContext   :: Config -> FilePath -> IO Context
---------------------------------------------------------------------------
-makeContext cfg f
-  = do me   <- makeProcess cfg
-       pre  <- smtPreamble cfg (solver cfg) me
-       createDirectoryIfMissing True $ takeDirectory smtFile
-       hLog <- openFile smtFile WriteMode
-       let me' = me { ctxLog = Just hLog }
-       mapM_ (smtWrite me') pre
-       return me'
-    where
-       smtFile = extFileName Smt2 f
-
-makeContextWithSEnv :: Config -> FilePath -> SMTEnv -> IO Context
-makeContextWithSEnv cfg f env
-  = (\cxt -> cxt {ctxSmtEnv = env}) <$> makeContext cfg f
-  -- where msg = "makeContextWithSEnv" ++ show env
-
-makeContextNoLog :: Config -> IO Context
-makeContextNoLog cfg
-  = do me  <- makeProcess cfg
-       pre <- smtPreamble cfg (solver cfg) me
-       mapM_ (smtWrite me) pre
-       return me
-
-makeProcess :: Config -> IO Context
-makeProcess cfg
-  = do (hOut, hIn, _ ,pid) <- runInteractiveCommand $ smtCmd (solver cfg)
-       loud <- isLoud
-       return Ctx { ctxPid     = pid
-                  , ctxCin     = hIn
-                  , ctxCout    = hOut
-                  , ctxLog     = Nothing
-                  , ctxVerbose = loud
-                  , ctxExt     = extensionality cfg
-                  , ctxAeq     = alphaEquivalence cfg
-                  , ctxBeq     = betaEquivalence  cfg
-                  , ctxNorm    = normalForm       cfg
-                  , ctxSmtEnv  = Thy.theorySEnv
-                  }
-
---------------------------------------------------------------------------
-cleanupContext :: Context -> IO ExitCode
---------------------------------------------------------------------------
-cleanupContext (Ctx {..}) = do
-  hCloseMe "ctxCin"  ctxCin
-  hCloseMe "ctxCout" ctxCout
-  maybe (return ()) (hCloseMe "ctxLog") ctxLog
-  waitForProcess ctxPid
-
-hCloseMe :: String -> Handle -> IO ()
-hCloseMe msg h = hClose h `catch` (\(exn :: IOException) -> putStrLn $ "OOPS, hClose breaks: " ++ msg ++ show exn)
-
-{- "z3 -smt2 -in"                   -}
-{- "z3 -smtc SOFT_TIMEOUT=1000 -in" -}
-{- "z3 -smtc -in MBQI=false"        -}
-
-smtCmd         :: SMTSolver -> String --  T.Text
-smtCmd Z3      = "z3 -smt2 -in"
-smtCmd Mathsat = "mathsat -input=smt2"
-smtCmd Cvc4    = "cvc4 --incremental -L smtlib2"
-
--- DON'T REMOVE THIS! z3 changed the names of options between 4.3.1 and 4.3.2...
-smtPreamble :: Config -> SMTSolver -> Context -> IO [LT.Text]
-smtPreamble cfg Z3 me
-  = do smtWrite me "(get-info :version)"
-       v:_ <- T.words . (!!1) . T.splitOn "\"" <$> smtReadRaw me
-       checkValidStringFlag Z3 v cfg
-       if T.splitOn "." v `versionGreaterEq` ["4", "3", "2"]
-         then return $ z3_432_options ++ makeMbqi cfg ++ Thy.preamble cfg Z3
-         else return $ z3_options     ++ makeMbqi cfg ++ Thy.preamble cfg Z3
-smtPreamble cfg s _
-  = checkValidStringFlag s "" cfg >> return (Thy.preamble cfg s)
-
-checkValidStringFlag :: SMTSolver -> T.Text -> Config -> IO ()
-checkValidStringFlag smt v cfg
-  = when (noString smt v cfg) $
-      die $ err dummySpan (text "stringTheory is only supported by z3 version >=4.2.2")
-
-noString :: SMTSolver -> T.Text -> Config -> Bool
-noString smt v cfg
-  =  stringTheory cfg
-  && not (smt == Z3 && (T.splitOn "." v `versionGreaterEq` ["4", "4", "2"]))
-
-
-versionGreaterEq :: Ord a => [a] -> [a] -> Bool
-versionGreaterEq (x:xs) (y:ys)
-  | x >  y = True
-  | x == y = versionGreaterEq xs ys
-  | x <  y = False
-versionGreaterEq _  [] = True
-versionGreaterEq [] _  = False
-versionGreaterEq _ _ = errorstar "Interface.versionGreater called with bad arguments"
-
------------------------------------------------------------------------------
--- | SMT Commands -----------------------------------------------------------
------------------------------------------------------------------------------
-
-smtPush, smtPop   :: Context -> IO ()
-smtPush me        = interact' me Push
-smtPop me         = interact' me Pop
-
-smtDecls :: Context -> [(Symbol, Sort)] -> IO ()
-smtDecls = mapM_ . uncurry . smtDecl
-
-smtDecl :: Context -> Symbol -> Sort -> IO ()
-smtDecl me x t = interact' me (Declare x ins out)
-  where
-    (ins, out) = deconSort t
-
-deconSort :: Sort -> ([Sort], Sort)
-deconSort t = case functionSort t of
-                Just (_, ins, out) -> (ins, out)
-                Nothing            -> ([] , t  )
-
--- hack now this is used only for checking gradual condition.
-smtCheckSat :: Context -> Expr -> IO Bool
-smtCheckSat me p
- = smtAssert me p >> (ans <$> command me CheckSat)
- where
-   ans Sat = True
-   ans _   = False
-
-smtAssert :: Context -> Expr -> IO ()
-smtAssert me p  = interact' me (Assert Nothing p)
-
-
-smtAssertAxiom :: Context -> Triggered Expr -> IO ()
-smtAssertAxiom me p  = interact' me (AssertAxiom p)
-
-smtDistinct :: Context -> [Expr] -> IO ()
-smtDistinct me az = interact' me (Distinct az)
-
-smtCheckUnsat :: Context -> IO Bool
-smtCheckUnsat me  = respSat <$> command me CheckSat
-
-smtBracket :: Context -> String -> IO a -> IO a
-smtBracket me _msg a   = do
-  smtPush me
-  r <- a
-  smtPop me
-  return r
-
-respSat :: Response -> Bool
-respSat Unsat   = True
-respSat Sat     = False
-respSat Unknown = False
-respSat r       = die $ err dummySpan $ text ("crash: SMTLIB2 respSat = " ++ show r)
-
-interact' :: Context -> Command -> IO ()
-interact' me cmd  = void $ command me cmd
-
-makeMbqi :: Config -> [LT.Text]
-makeMbqi cfg
-  | extensionality cfg = [""]
-  | otherwise          = ["\n(set-option :smt.mbqi false)"]
-
--- DON'T REMOVE THIS! z3 changed the names of options between 4.3.1 and 4.3.2...
-z3_432_options :: [LT.Text]
-z3_432_options
-  = [ "(set-option :auto-config false)"
-    , "(set-option :model true)"
-    , "(set-option :model.partial false)"]
-
-z3_options :: [LT.Text]
-z3_options
-  = [ "(set-option :auto-config false)"
-    , "(set-option :model true)"
-    , "(set-option :model-partial false)"]
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Smt/Serialize.hs b/liquid-fixpoint/src/Language/Fixpoint/Smt/Serialize.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Smt/Serialize.hs
+++ /dev/null
@@ -1,175 +0,0 @@
-{-# LANGUAGE FlexibleInstances    #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-{-# LANGUAGE OverloadedStrings    #-}
-{-# LANGUAGE PatternGuards        #-}
-{-# LANGUAGE FlexibleContexts     #-}
-{-# LANGUAGE DoAndIfThenElse      #-}
-
--- | This module contains the code for serializing Haskell values
---   into SMTLIB2 format, that is, the instances for the @SMTLIB2@
---   typeclass. We split it into a separate module as it depends on
---   Theories (see @smt2App@).
-
-module Language.Fixpoint.Smt.Serialize () where
-
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Smt.Types
-import qualified Language.Fixpoint.Smt.Theories as Thy
-import           Data.Monoid
-import qualified Data.Text.Lazy.Builder         as Builder
-import           Data.Text.Format
-import           Language.Fixpoint.Misc (errorstar)
-import           Data.Maybe (fromMaybe)
-
--- instance SMTLIB2 Sort where
---   smt2 s@(FFunc _ _)           = errorstar $ "smt2 FFunc: " ++ showpp s
---   smt2 FInt                    = "Int"
---   smt2 FReal                   = "Real"
---   smt2 t
---     | t == boolSort            = "Bool"
---   smt2 t
---     | Just d <- Thy.smt2Sort t = d
---   smt2 _                       = "Int"
-
-instance SMTLIB2 (Symbol, Sort) where
-  smt2 c@(sym, t) = build "({} {})" (smt2 sym, smt2Sort c t)
-
-smt2Sort :: (PPrint a) => a -> Sort -> Builder.Builder
-smt2Sort msg = go
-  where
-    go s@(FFunc _ _)             = errorstar $ unwords ["smt2 FFunc:", showpp msg, showpp s]
-    go FInt                      = "Int"
-    go FReal                     = "Real"
-    go t
-      | t == boolSort            = "Bool"
-    go t
-      | Just d <- Thy.smt2Sort t = d
-    go _                         = "Int"
-
-instance SMTLIB2 Symbol where
-  smt2 s
-    | Just t <- Thy.smt2Symbol s = t
-  smt2 s                         = Builder.fromText $ symbolSafeText  s
-
-instance SMTLIB2 SymConst where
-  smt2 = smt2 . symbol
-
-instance SMTLIB2 Constant where
-  smt2 (I n)   = build "{}" (Only n)
-  smt2 (R d)   = build "{}" (Only d)
-  smt2 (L t _) = build "{}" (Only t)
-
-instance SMTLIB2 LocSymbol where
-  smt2 = smt2 . val
-
-instance SMTLIB2 Bop where
-  smt2 Plus   = "+"
-  smt2 Minus  = "-"
-  smt2 Times  = Builder.fromText $ symbolSafeText mulFuncName
-  smt2 Div    = Builder.fromText $ symbolSafeText divFuncName
-  smt2 RTimes = "*"
-  smt2 RDiv   = "/"
-  smt2 Mod    = "mod"
-
-instance SMTLIB2 Brel where
-  smt2 Eq    = "="
-  smt2 Ueq   = "="
-  smt2 Gt    = ">"
-  smt2 Ge    = ">="
-  smt2 Lt    = "<"
-  smt2 Le    = "<="
-  smt2 _     = errorstar "SMTLIB2 Brel"
-
--- NV TODO: change the way EApp is printed
-instance SMTLIB2 Expr where
-  smt2 (ESym z)         = smt2 z
-  smt2 (ECon c)         = smt2 c
-  smt2 (EVar x)         = smt2 x
-  smt2 e@(EApp _ _)     = smt2App e
-  smt2 (ENeg e)         = build "(- {})" (Only $ smt2 e)
-  smt2 (EBin o e1 e2)   = build "({} {} {})" (smt2 o, smt2 e1, smt2 e2)
-  smt2 (EIte e1 e2 e3)  = build "(ite {} {} {})" (smt2 e1, smt2 e2, smt2 e3)
-  smt2 (ECst e _)       = smt2 e
-  smt2 (PTrue)          = "true"
-  smt2 (PFalse)         = "false"
-  smt2 (PAnd [])        = "true"
-  smt2 (PAnd ps)        = build "(and {})"   (Only $ smt2s ps)
-  smt2 (POr [])         = "false"
-  smt2 (POr ps)         = build "(or  {})"   (Only $ smt2s ps)
-  smt2 (PNot p)         = build "(not {})"   (Only $ smt2  p)
-  smt2 (PImp p q)       = build "(=> {} {})" (smt2 p, smt2 q)
-  smt2 (PIff p q)       = build "(= {} {})"  (smt2 p, smt2 q)
-  smt2 (PExist [] p)    = smt2 p
-  smt2 (PExist bs p)    = build "(exists ({}) {})"  (smt2s bs, smt2 p)
-  smt2 (PAll   [] p)    = smt2 p
-  smt2 (PAll   bs p)    = build "(forall ({}) {})"  (smt2s bs, smt2 p)
-
-  smt2 (PAtom r e1 e2)  = mkRel r e1 e2
-  smt2 (ELam (x, _) e)  = smt2Lam x e
-  smt2  e               = errorstar ("smtlib2 Pred  " ++ show e)
-
-
-smt2Lam :: Symbol -> Expr -> Builder.Builder
-smt2Lam x e = build "({} {} {})" (smt2 lambdaName, smt2 x, smt2 e)
-
-smt2App :: Expr -> Builder.Builder
-smt2App e = fromMaybe (build "({} {})" (smt2 f, smt2s es)) $ Thy.smt2App (eliminate f) $ map smt2 es
-  where
-    (f, es) = splitEApp' e
-
-
-splitEApp' :: Expr -> (Expr, [Expr])
-splitEApp'            = go []
-  where
-    go acc (EApp f e) = go (e:acc) f
-    go acc (ECst e _) = go acc e
-    go acc e          = (e, acc)
-
-eliminate :: Expr -> Expr
-eliminate (ECst e _) = eliminate e
-eliminate e          = e
-
-mkRel :: Brel -> Expr -> Expr -> Builder.Builder
-mkRel Ne  e1 e2 = mkNe e1 e2
-mkRel Une e1 e2 = mkNe e1 e2
-mkRel r   e1 e2 = build "({} {} {})" (smt2 r, smt2 e1, smt2 e2)
-
-mkNe :: Expr -> Expr -> Builder.Builder
-mkNe  e1 e2              = build "(not (= {} {}))" (smt2 e1, smt2 e2)
-
-instance SMTLIB2 Command where
-  -- NIKI TODO: formalize this transformation
-  smt2 c@(Declare x ts t)  = build "(declare-fun {} ({}) {})"     (smt2 x, smt2many (smt2Sort c <$> ts), smt2Sort c t) -- HEREHEREHERE (smt2 x, smt2s ts, smt2 t)
-  smt2 c@(Define t)        = build "(declare-sort {})"            (Only $ smt2Sort c t)
-  smt2 (Assert Nothing p)  = build "(assert {})"                  (Only $ smt2 p)
-  smt2 (Assert (Just i) p) = build "(assert (! {} :named p-{}))"  (smt2 p, i)
-  smt2 (Distinct az)
-    -- Distinct must have at least 2 arguments
-    | length az < 2        = ""
-    | otherwise            = build "(assert (distinct {}))"       (Only $ smt2s az)
-  smt2 (AssertAxiom t)     = build "(assert {})"                  (Only $ smt2 t)
-  smt2 (Push)              = "(push 1)"
-  smt2 (Pop)               = "(pop 1)"
-  smt2 (CheckSat)          = "(check-sat)"
-  smt2 (GetValue xs)       = "(get-value (" <> smt2s xs <> "))"
-  smt2 (CMany cmds)        = smt2many (smt2 <$> cmds)
-
-instance SMTLIB2 (Triggered Expr) where
-  smt2 (TR NoTrigger e)       = smt2 e  
-  smt2 (TR _ (PExist [] p))   = smt2 p
-  smt2 t@(TR _ (PExist bs p)) = build "(exists ({}) (! {} :pattern({})))"  (smt2s bs, smt2 p, smt2s $ makeTriggers t)
-  smt2 (TR _ (PAll   [] p))   = smt2 p
-  smt2 t@(TR _ (PAll   bs p)) = build "(forall ({}) (! {} :pattern({})))"  (smt2s bs, smt2 p, smt2s $ makeTriggers t)
-  smt2 (TR _ e)               = smt2 e
-
-
-
-{-# INLINE smt2s #-}
-smt2s    :: SMTLIB2 a => [a] -> Builder.Builder
-smt2s as = smt2many (map smt2 as)
-
-smt2many :: [Builder.Builder] -> Builder.Builder
-smt2many []     = mempty
-smt2many [b]    = b
-smt2many (b:bs) = b <> mconcat [ " " <> b | b <- bs ]
-{-# INLINE smt2many #-}
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Smt/Theories.hs b/liquid-fixpoint/src/Language/Fixpoint/Smt/Theories.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Smt/Theories.hs
+++ /dev/null
@@ -1,417 +0,0 @@
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE OverloadedStrings         #-}
-{-# LANGUAGE UndecidableInstances      #-}
-{-# LANGUAGE PatternGuards             #-}
-
-module Language.Fixpoint.Smt.Theories
-     (
-       -- * Convert theory applications TODO: merge with smt2symbol
-       smt2App
-       -- * Convert theory sorts
-     , smt2Sort
-       -- * Convert theory symbols
-     , smt2Symbol
-       -- * Preamble to initialize SMT
-     , preamble
-
-       -- * Bit Vector Operations
-     , sizeBv
-     , toInt
-
-       -- * Theory Symbols
-     , theorySymbols
-     , theorySEnv
-
-     -- * String
-     -- , string
-     -- , genLen
-
-       -- * Theories
-     , setEmpty, setEmp, setCap, setSub, setAdd, setMem
-     , setCom, setCup, setDif, setSng, mapSel, mapSto
-
-      -- * Query Theories
-     , isSmt2App
-     , isConName
-     , axiomLiterals
-     ) where
-
-import           Prelude hiding (map)
-import           Language.Fixpoint.Types.Sorts
-import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Smt.Types
-import qualified Data.HashMap.Strict      as M
-import           Data.Maybe (catMaybes, isJust)
-import           Data.Monoid
-import qualified Data.Text.Lazy           as T
-import qualified Data.Text.Lazy.Builder   as Builder
-import           Data.Text.Format
-import qualified Data.Text
-import           Data.String                 (IsString(..))
-
---------------------------------------------------------------------------
--- | Set Theory ----------------------------------------------------------
---------------------------------------------------------------------------
-
-elt, set, map :: Raw
-elt  = "Elt"
-set  = "Set"
-map  = "Map"
-
-emp, add, cup, cap, mem, dif, sub, com, sel, sto :: Raw
-emp   = "smt_set_emp"
-add   = "smt_set_add"
-cup   = "smt_set_cup"
-cap   = "smt_set_cap"
-mem   = "smt_set_mem"
-dif   = "smt_set_dif"
-sub   = "smt_set_sub"
-com   = "smt_set_com"
-sel   = "smt_map_sel"
-sto   = "smt_map_sto"
-
-setEmpty, setEmp, setCap, setSub, setAdd, setMem, setCom, setCup, setDif, setSng, mapSel, mapSto :: Symbol
-setEmpty = "Set_empty"
-setEmp   = "Set_emp"
-setCap   = "Set_cap"
-setSub   = "Set_sub"
-setAdd   = "Set_add"
-setMem   = "Set_mem"
-setCom   = "Set_com"
-setCup   = "Set_cup"
-setDif   = "Set_dif"
-setSng   = "Set_sng"
-mapSel   = "Map_select"
-mapSto   = "Map_store"
-
-
-strLen, strSubstr, strConcat :: (IsString a) => a -- Symbol
-strLen    = "strLen"
-strSubstr = "subString"
-strConcat = "concatString"
--- NOPROP genLen :: Symbol
--- NOPROP genLen = "len"
-
--- NOPROP strlen, strsubstr, strconcat :: Raw
--- NOPROP strlen    = "strLen"
--- NOPROP strsubstr = "subString"
--- NOPROP strconcat = "concatString"
-
-z3strlen, z3strsubstr, z3strconcat :: Raw
-z3strlen    = "str.len"
-z3strsubstr = "str.substr"
-z3strconcat = "str.++"
-
-strLenSort, substrSort, concatstrSort :: Sort
-strLenSort    = FFunc strSort intSort
-substrSort    = mkFFunc 0 [strSort, intSort, intSort, strSort]
-concatstrSort = mkFFunc 0 [strSort, strSort, strSort]
-
-string :: Raw
-string = strConName
-
-z3Preamble :: Config -> [T.Text]
-z3Preamble u
-  = stringPreamble u ++
-    [ format "(define-sort {} () Int)"
-        (Only elt)
-    , format "(define-sort {} () (Array {} Bool))"
-        (set, elt)
-    , format "(define-fun {} () {} ((as const {}) false))"
-        (emp, set, set)
-    , format "(define-fun {} ((x {}) (s {})) Bool (select s x))"
-        (mem, elt, set)
-    , format "(define-fun {} ((s {}) (x {})) {} (store s x true))"
-        (add, set, elt, set)
-    , format "(define-fun {} ((s1 {}) (s2 {})) {} ((_ map or) s1 s2))"
-        (cup, set, set, set)
-    , format "(define-fun {} ((s1 {}) (s2 {})) {} ((_ map and) s1 s2))"
-        (cap, set, set, set)
-    , format "(define-fun {} ((s {})) {} ((_ map not) s))"
-        (com, set, set)
-    , format "(define-fun {} ((s1 {}) (s2 {})) {} ({} s1 ({} s2)))"
-        (dif, set, set, set, cap, com)
-    , format "(define-fun {} ((s1 {}) (s2 {})) Bool (= {} ({} s1 s2)))"
-        (sub, set, set, emp, dif)
-    , format "(define-sort {} () (Array {} {}))"
-        (map, elt, elt)
-    , format "(define-fun {} ((m {}) (k {})) {} (select m k))"
-        (sel, map, elt, elt)
-    , format "(define-fun {} ((m {}) (k {}) (v {})) {} (store m k v))"
-        (sto, map, elt, elt, map)
-    , format "(define-fun {} ((b Bool)) Int (ite b 1 0))"
-        (Only (boolToIntName :: T.Text))
-    , uifDef u (symbolText mulFuncName) ("*"   :: T.Text)
-    , uifDef u (symbolText divFuncName) "div"
-    ]
-
--- RJ: Am changing this to `Int` not `Real` as (1) we usually want `Int` and
--- (2) have very different semantics. TODO: proper overloading, post genEApp
-uifDef :: Config -> Data.Text.Text -> T.Text -> T.Text
-uifDef cfg f op
-  | linear cfg || Z3 /= solver cfg
-  = format "(declare-fun {} (Int Int) Int)" (Only f)
-  | otherwise
-  = format "(define-fun {} ((x Int) (y Int)) Int ({} x y))" (f, op)
-
-cvc4Preamble :: Config -> [T.Text]
-cvc4Preamble _ --TODO use uif flag u (see z3Preamble)
-  = [        "(set-logic ALL_SUPPORTED)"
-    , format "(define-sort {} () Int)"       (Only elt)
-    , format "(define-sort {} () Int)"       (Only set)
-    , format "(define-sort {} () Int)"       (Only string)
-    , format "(declare-fun {} () {})"        (emp, set)
-    , format "(declare-fun {} ({} {}) {})"   (add, set, elt, set)
-    , format "(declare-fun {} ({} {}) {})"   (cup, set, set, set)
-    , format "(declare-fun {} ({} {}) {})"   (cap, set, set, set)
-    , format "(declare-fun {} ({} {}) {})"   (dif, set, set, set)
-    , format "(declare-fun {} ({} {}) Bool)" (sub, set, set)
-    , format "(declare-fun {} ({} {}) Bool)" (mem, elt, set)
-    , format "(define-sort {} () (Array {} {}))"
-        (map, elt, elt)
-    , format "(define-fun {} ((m {}) (k {})) {} (select m k))"
-        (sel, map, elt, elt)
-    , format "(define-fun {} ((m {}) (k {}) (v {})) {} (store m k v))"
-        (sto, map, elt, elt, map)
-    , format "(define-fun {} ((b Bool)) Int (ite b 1 0))"
-        (Only (boolToIntName :: Raw))
-    ]
-
-smtlibPreamble :: Config -> [T.Text]
-smtlibPreamble _ --TODO use uif flag u (see z3Preamble)
-  = [       --  "(set-logic QF_AUFRIA)",
-      format "(define-sort {} () Int)"       (Only elt)
-    , format "(define-sort {} () Int)"       (Only set)
-    , format "(declare-fun {} () {})"        (emp, set)
-    , format "(declare-fun {} ({} {}) {})"   (add, set, elt, set)
-    , format "(declare-fun {} ({} {}) {})"   (cup, set, set, set)
-    , format "(declare-fun {} ({} {}) {})"   (cap, set, set, set)
-    , format "(declare-fun {} ({} {}) {})"   (dif, set, set, set)
-    , format "(declare-fun {} ({} {}) Bool)" (sub, set, set)
-    , format "(declare-fun {} ({} {}) Bool)" (mem, elt, set)
-    , format "(define-sort {} () Int)"       (Only map)
-    , format "(declare-fun {} ({} {}) {})"    (sel, map, elt, elt)
-    , format "(declare-fun {} ({} {} {}) {})" (sto, map, elt, elt, map)
-    , format "(declare-fun {} ({} {} {}) {})" (sto, map, elt, elt, map)
-    , format "(define-fun {} ((b Bool)) Int (ite b 1 0))" (Only (boolToIntName :: Raw))
-    ]
-
-
-stringPreamble :: Config -> [T.Text]
-stringPreamble cfg | stringTheory cfg
-  = [
-      format "(define-sort {} () String)" (Only string)
-    , format "(define-fun {} ((s {})) Int ({} s))"
-        (strLen :: Raw, string, z3strlen)
-    , format "(define-fun {} ((s {}) (i Int) (j Int)) {} ({} s i j))"
-        (strSubstr :: Raw, string, string, z3strsubstr)
-    , format "(define-fun {} ((x {}) (y {})) {} ({} x y))"
-        (strConcat :: Raw, string, string, string, z3strconcat)
-    ]
-stringPreamble _
-  = [
-      format "(define-sort {} () Int)" (Only string)
-    , format "(declare-fun {} ({}) Int)"
-        (strLen :: Raw, string)
-    , format "(declare-fun {} ({} Int Int) {})"
-        (strSubstr :: Raw, string, string)
-    , format "(declare-fun {} ({} {}) {})"
-        (strConcat :: Raw, string, string, string)
-    ]
-
-
-
--------------------------------------------------------------------------------
--- | Exported API -------------------------------------------------------------
--------------------------------------------------------------------------------
-smt2Symbol :: Symbol -> Maybe Builder.Builder
-smt2Symbol x = Builder.fromLazyText . tsRaw <$> M.lookup x theorySymbols
-
-smt2Sort :: Sort -> Maybe Builder.Builder
-smt2Sort (FApp (FTC c) _)
-  | isConName setConName c      = Just $ build "{}" (Only set)
-smt2Sort (FApp (FApp (FTC c) _) _)
-  | isConName mapConName c      = Just $ build "{}" (Only map)
-smt2Sort (FApp (FTC bv) (FTC s))
-  | isConName bitVecName bv
-  , Just n <- sizeBv s          = Just $ build "(_ BitVec {})" (Only n)
-smt2Sort s
-  | isString s                  = Just $ build "{}" (Only string)
-smt2Sort _                      = Nothing
-
-smt2App :: Expr -> [Builder.Builder] -> Maybe Builder.Builder
-smt2App (EVar f) [d]
-  | f == setEmpty = Just $ build "{}"             (Only emp)
-  | f == setEmp   = Just $ build "(= {} {})"      (emp, d)
-  | f == setSng   = Just $ build "({} {} {})"     (add, emp, d)
-smt2App (EVar f) (d:ds)
-  | Just s <- M.lookup f theorySymbols
-  = Just $ build "({} {})" (tsRaw s, d <> mconcat [ " " <> d | d <- ds])
-smt2App _ _           = Nothing
-
--- isSmt2App :: Expr -> [a] -> Bool
--- isSmt2App e xs = tracepp ("isSmt2App e := " ++ show e) (isSmt2App' e xs)
-
-isSmt2App :: Expr -> [a] -> Bool
-isSmt2App (EVar f) [_]
-  | f == setEmpty = True
-  | f == setEmp   = True
-  | f == setSng   = True
-isSmt2App (EVar f) _
-  =  isJust $ M.lookup f theorySymbols
-isSmt2App _ _
-  = False
-
-
-preamble :: Config -> SMTSolver -> [T.Text]
-preamble u Z3   = z3Preamble u
-preamble u Cvc4 = cvc4Preamble u
-preamble u _    = smtlibPreamble u
-
---------------------------------------------------------------------------------
--- | Converting Non-Int types to Int -------------------------------------------
---------------------------------------------------------------------------------
--- toInt :: Expr -> Sort -> Expr
--- toInt e s = tracepp msg (toInt' e s)
-  -- where
-    -- msg   = "toInt e = " ++ show e ++ ", t = " ++ show s
-
-toInt :: Expr -> Sort -> Expr
-toInt e s
-  |  (FApp (FTC c) _) <- s
-  , isConName setConName c
-  = castWith setToIntName e
-  | (FApp (FApp (FTC c) _) _) <- s
-  , isConName mapConName c
-  = castWith mapToIntName e
-  | (FApp (FTC bv) (FTC s)) <- s
-  , isConName bitVecName bv
-  , Just _ <- sizeBv s
-  = castWith bitVecToIntName e
-  | FTC c <- s
-  , c == boolFTyCon
-  = castWith boolToIntName e
-  | FTC c <- s
-  , c == realFTyCon
-  = castWith realToIntName e
-  | otherwise
-  = e
-
-castWith :: Symbol -> Expr -> Expr
-castWith s = eAppC intSort (EVar s)
-
---------------------------------------------------------------------------------
--- | Theory Symbols : `uninterpSEnv` should be disjoint from see `interpSEnv`
---   to avoid duplicate SMT definitions.  `uninterpSEnv` is for uninterpreted
---   symbols, and `interpSEnv` is for interpreted symbols.
---------------------------------------------------------------------------------
-theorySEnv :: SEnv Sort
-theorySEnv = fromListSEnv . M.toList . fmap tsSort $ theorySymbols
-
--- | `theorySymbols` contains the list of ALL SMT symbols with interpretations,
---   i.e. which are given via `define-fun` (as opposed to `declare-fun`)
-theorySymbols :: M.HashMap Symbol TheorySymbol
-theorySymbols = M.fromList $ uninterpSymbols ++ interpSymbols
-
--- isTheorySymbol :: Symbol -> Bool
--- isTheorySymbol x = M.member x theorySymbols
-
-interpSymbols :: [(Symbol, TheorySymbol)]
-interpSymbols =
-  [ interpSym setEmp   emp  (FAbs 0 $ FFunc (setSort $ FVar 0) boolSort)
-  , interpSym setEmpty emp  (FAbs 0 $ FFunc intSort (setSort $ FVar 0))
-  , interpSym setAdd   add   setBopSort
-  , interpSym setCup   cup   setBopSort
-  , interpSym setCap   cap   setBopSort
-  , interpSym setMem   mem   setMemSort
-  , interpSym setDif   dif   setBopSort
-  , interpSym setSub   sub   setCmpSort
-  , interpSym setCom   com   setCmpSort
-  , interpSym mapSel   sel   mapSelSort
-  , interpSym mapSto   sto   mapStoSort
-  , interpSym bvOrName "bvor"   bvBopSort
-  , interpSym bvAndName "bvand" bvBopSort
-  , interpSym strLen    strLen    strLenSort
-  , interpSym strSubstr strSubstr substrSort
-  , interpSym strConcat strConcat concatstrSort
-  , interpSym boolInt   boolInt   (FFunc boolSort intSort)
-  ]
-  where
-    boolInt    = boolToIntName
-    setBopSort = FAbs 0 $ FFunc (setSort $ FVar 0) $ FFunc (setSort $ FVar 0) (setSort $ FVar 0)
-    setMemSort = FAbs 0 $ FFunc (FVar 0) $ FFunc (setSort $ FVar 0) boolSort
-    setCmpSort = FAbs 0 $ FFunc (setSort $ FVar 0) $ FFunc (setSort $ FVar 0) boolSort
-    mapSelSort = FAbs 0 $ FAbs 1 $ FFunc (mapSort (FVar 0) (FVar 1)) $ FFunc (FVar 0) (FVar 1)
-    mapStoSort = FAbs 0 $ FAbs 1 $ FFunc (mapSort (FVar 0) (FVar 1))
-                                 $ FFunc (FVar 0)
-                                 $ FFunc (FVar 1)
-                                         (mapSort (FVar 0) (FVar 1))
-    bvBopSort  = FFunc bitVecSort $ FFunc bitVecSort bitVecSort
-
-
-interpSym :: Symbol -> Raw -> Sort -> (Symbol, TheorySymbol)
-interpSym x n t = (x, Thy x n t True)
-
-isConName :: Symbol -> FTycon -> Bool
-isConName s = (s ==) . val . fTyconSymbol
-
-sizeBv :: FTycon -> Maybe Int
-sizeBv tc
-  | s == size32Name = Just 32
-  | s == size64Name = Just 64
-  | otherwise       = Nothing
-  where
-    s               = val $ fTyconSymbol tc
-
-uninterpSymbols :: [(Symbol, TheorySymbol)]
-uninterpSymbols = [ (x, uninterpSym x t) | (x, t) <- uninterpSymbols']
-
-uninterpSym :: Symbol -> Sort -> TheorySymbol
-uninterpSym x t =  Thy x (lt x) t False
-  where
-    lt           = T.fromStrict . symbolSafeText
-
-uninterpSymbols' :: [(Symbol, Sort)]
-uninterpSymbols' =
-  [ (setToIntName,    FFunc (setSort intSort)   intSort)
-  , (bitVecToIntName, FFunc bitVecSort intSort)
-  , (mapToIntName,    FFunc (mapSort intSort intSort) intSort)
-  , (realToIntName,   FFunc realSort   intSort)
-  , (lambdaName   ,   FFunc intSort (FFunc intSort intSort))
-  ]
-  ++ concatMap makeApplies [1..maxLamArg]
-  ++ [(makeLamArg s i, s) | i <- [1..maxLamArg], s <- sorts]
-
--- THESE ARE DUPLICATED IN DEFUNCTIONALIZATION
-maxLamArg :: Int
-maxLamArg = 7
-
-sorts :: [Sort]
-sorts = [intSort]
-
--- NIKI TODO: allow non integer lambda arguments
--- sorts = [setSort intSort, bitVecSort intSort, mapSort intSort intSort, boolSort, realSort, intSort]
-
-makeLamArg :: Sort -> Int  -> Symbol
-makeLamArg _ = intArgName
-
-makeApplies :: Int -> [(Symbol, Sort)]
-makeApplies i =
-  [ (intApplyName i,    go i intSort)
-  , (setApplyName i,    go i (setSort intSort))
-  , (bitVecApplyName i, go i bitVecSort)
-  , (mapApplyName i,    go i $ mapSort intSort intSort)
-  , (realApplyName i,   go i realSort)
-  , (boolApplyName i,   go i boolSort)
-  ]
-  where
-    go 0 s = FFunc intSort s
-    go i s = FFunc intSort $ go (i-1) s
-
-axiomLiterals :: [(Symbol, Sort)] -> [Expr]
-axiomLiterals lts = catMaybes [ lenAxiom l <$> litLen l | (l, t) <- lts, isString t ]
-  where
-    lenAxiom l n  = EEq (EApp (expr (strLen :: Symbol)) (expr l)) (expr n `ECst` intSort)
-    litLen        = fmap (Data.Text.length .  symbolText) . unLitSymbol
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Smt/Types.hs b/liquid-fixpoint/src/Language/Fixpoint/Smt/Types.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Smt/Types.hs
+++ /dev/null
@@ -1,121 +0,0 @@
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE FlexibleContexts          #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE OverloadedStrings         #-}
-{-# LANGUAGE UndecidableInstances      #-}
-
--- | This module contains the types defining an SMTLIB2 interface.
-
-module Language.Fixpoint.Smt.Types (
-
-    -- * Serialized Representation
-      Raw
-    , symbolBuilder
-
-    -- * Commands
-    , Command  (..)
-
-    -- * Responses
-    , Response (..)
-
-    -- * Typeclass for SMTLIB2 conversion
-    , SMTLIB2 (..)
-    , runSmt2
-
-    -- * SMTLIB2 Process Context
-    , Context (..)
-
-    -- * Theory Symbol
-    , TheorySymbol (..)
-    , SMTEnv
-    ) where
-
-import           Language.Fixpoint.Types
--- import           Language.Fixpoint.Misc   (traceShow)
-import qualified Data.Text                as T
-import qualified Data.Text.Lazy           as LT
-import qualified Data.Text.Lazy.Builder   as LT
-import           Text.PrettyPrint.HughesPJ 
-
-import           System.IO                (Handle)
-import           System.Process
-
---------------------------------------------------------------------------------
--- | Types ---------------------------------------------------------------------
---------------------------------------------------------------------------------
-type Raw          = LT.Text
-
-symbolBuilder :: Symbol -> LT.Builder
-symbolBuilder = LT.fromText . symbolSafeText
-
--- | Commands issued to SMT engine
-data Command      = Push
-                  | Pop
-                  | CheckSat
-                  | Declare   !Symbol [Sort] !Sort
-                  | Define    !Sort
-                  | Assert    !(Maybe Int) !Expr
-                  | AssertAxiom  !(Triggered Expr)
-                  | Distinct  [Expr] -- {v:[Expr] | 2 <= len v}
-                  | GetValue  [Symbol]
-                  | CMany [Command]
-                  deriving (Eq, Show)
-
-instance PPrint Command where
-  pprintTidy _ = ppCmd
-
-ppCmd :: Command -> Doc
-ppCmd Push          = text "Push"
-ppCmd Pop           = text "Pop"
-ppCmd CheckSat      = text "CheckSat"
-ppCmd (Declare {})  = text "Declare ..."
-ppCmd (Define {})   = text "Define ..."
-ppCmd (Assert _ e)  = text "Assert" <+> pprint e
-ppCmd (AssertAxiom _) = text "AssertAxiom ..."
-ppCmd (Distinct {}) = text "Distinct ..."
-ppCmd (GetValue {}) = text "GetValue ..."
-ppCmd (CMany {})    = text "CMany ..."
-
--- | Responses received from SMT engine
-data Response     = Ok
-                  | Sat
-                  | Unsat
-                  | Unknown
-                  | Values [(Symbol, T.Text)]
-                  | Error !T.Text
-                  deriving (Eq, Show)
-
--- | Information about the external SMT process
-data Context = Ctx
-  { ctxPid     :: !ProcessHandle
-  , ctxCin     :: !Handle
-  , ctxCout    :: !Handle
-  , ctxLog     :: !(Maybe Handle)
-  , ctxVerbose :: !Bool
-  , ctxExt     :: !Bool              -- ^ flag to enable function extentionality axioms
-  , ctxAeq     :: !Bool              -- ^ flag to enable lambda a-equivalence axioms
-  , ctxBeq     :: !Bool              -- ^ flag to enable lambda b-equivalence axioms
-  , ctxNorm    :: !Bool              -- ^ flag to enable lambda normal form equivalence axioms
-  , ctxSmtEnv  :: !SMTEnv
-  }
-
-type SMTEnv = SEnv Sort
-
--- | Theory Symbol
-data TheorySymbol  = Thy
-  { tsSym    :: !Symbol    -- ^ name
-  , tsRaw    :: !Raw       -- ^ serialized SMTLIB2 name
-  , tsSort   :: !Sort      -- ^ sort
-  , tsInterp :: !Bool      -- ^ TRUE = defined (interpreted), FALSE = declared (uninterpreted)
-  }
-  deriving (Eq, Ord, Show)
-
---------------------------------------------------------------------------------
--- | AST Conversion: Types that can be serialized ------------------------------
---------------------------------------------------------------------------------
-
-class SMTLIB2 a where
-  smt2 :: a -> LT.Builder
-
-runSmt2 :: (SMTLIB2 a) => a -> LT.Builder
-runSmt2 = smt2
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver.hs
+++ /dev/null
@@ -1,235 +0,0 @@
--- | This module implements the top-level API for interfacing with Fixpoint
---   In particular it exports the functions that solve constraints supplied
---   either as .fq files or as FInfo.
-{-# LANGUAGE BangPatterns        #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-module Language.Fixpoint.Solver (
-    -- * Invoke Solver on an FInfo
-    solve, Solver
-
-    -- * Invoke Solver on a .fq file
-  , solveFQ
-
-    -- * Function to determine outcome
-  , resultExit
-
-    -- * Parse Qualifiers from File
-  , parseFInfo
-) where
-
-import           Control.Concurrent
-import           Data.Binary
-import           System.Exit                        (ExitCode (..))
-import           System.Console.CmdArgs.Verbosity   (whenNormal)
-import           Text.PrettyPrint.HughesPJ          (render)
-import           Control.Monad                      (when)
-import           Control.Exception                  (catch)
-import           Language.Fixpoint.Solver.Sanitize  (symbolEnv, sanitize)
-import           Language.Fixpoint.Solver.UniqifyBinds (renameAll)
-import           Language.Fixpoint.Defunctionalize (defunctionalize)
-import           Language.Fixpoint.SortCheck            (Elaborate (..))
-import           Language.Fixpoint.Solver.UniqifyKVars (wfcUniqify)
-import qualified Language.Fixpoint.Solver.Solve     as Sol
-import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.Types.Errors
-import           Language.Fixpoint.Utils.Files            hiding (Result)
-import           Language.Fixpoint.Misc
-import           Language.Fixpoint.Utils.Statistics (statistics)
-import           Language.Fixpoint.Graph
-import           Language.Fixpoint.Parse            (rr')
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Minimize (minQuery, minQuals, minKvars)
-import           Language.Fixpoint.Solver.Instantiate (instantiateFInfo)
-import           Language.Fixpoint.Smt.Interface (makeSmtContext, smtPush)
-import           Control.DeepSeq
-
----------------------------------------------------------------------------
--- | Solve an .fq file ----------------------------------------------------
----------------------------------------------------------------------------
-solveFQ :: Config -> IO ExitCode
----------------------------------------------------------------------------
-solveFQ cfg = do
-    (fi, opts) <- readFInfo file
-    cfg'       <- withPragmas cfg opts
-    let fi'     = ignoreQualifiers cfg' fi
-    r          <- solve cfg' fi'
-    let stat    = resStatus $!! r
-    -- let str  = render $ resultDoc $!! (const () <$> stat)
-    -- putStrLn "\n"
-    whenNormal $ colorStrLn (colorResult stat) (statStr $!! stat)
-    return $ eCode r
-  where
-    file    = srcFile      cfg
-    eCode   = resultExit . resStatus
-    statStr = render . resultDoc . fmap fst
-
-ignoreQualifiers :: Config -> FInfo a -> FInfo a
-ignoreQualifiers cfg fi
-  | eliminate cfg == All = fi { quals = [] }
-  | otherwise            = fi
-
-
---------------------------------------------------------------------------------
--- | Solve FInfo system of horn-clause constraints -----------------------------
---------------------------------------------------------------------------------
-solve :: (NFData a, Fixpoint a) => Solver a
---------------------------------------------------------------------------------
-solve cfg q
-  | parts cfg      = partition  cfg        $!! q
-  | stats cfg      = statistics cfg        $!! q
-  | minimize cfg   = minQuery   cfg solve' $!! q
-  | minimizeQs cfg = minQuals cfg solve'   $!! q
-  | minimizeKs cfg = minKvars cfg solve'   $!! q
-  | otherwise      = solve'     cfg        $!! q
-
-solve' :: (NFData a, Fixpoint a) => Solver a
-solve' cfg q = do
-  when (save cfg) $ saveQuery   cfg q
-  configSW  cfg     solveNative cfg q
-
-configSW :: (NFData a, Fixpoint a) => Config -> Solver a -> Solver a
-configSW cfg
-  | multicore cfg = solveParWith
-  | otherwise     = solveSeqWith
-
---------------------------------------------------------------------------------
-readFInfo :: FilePath -> IO (FInfo (), [String])
---------------------------------------------------------------------------------
-readFInfo f
-  | isBinary f = (,) <$> readBinFq f <*> return []
-  | otherwise  = readFq f
-
-readFq :: FilePath -> IO (FInfo (), [String])
-readFq file = do
-  str   <- readFile file
-  let q  = {-# SCC "parsefq" #-} rr' file str :: FInfoWithOpts ()
-  return (fioFI q, fioOpts q)
-
-readBinFq :: FilePath -> IO (FInfo ())
-readBinFq file = {-# SCC "parseBFq" #-} decodeFile file
-
---------------------------------------------------------------------------------
--- | Solve in parallel after partitioning an FInfo to indepdendant parts
---------------------------------------------------------------------------------
-solveSeqWith :: (Fixpoint a) => Solver a -> Solver a
-solveSeqWith s c fi0 = {- withProgressFI fi $ -} s c fi
-  where
-    fi               = slice c fi0
-
---------------------------------------------------------------------------------
--- | Solve in parallel after partitioning an FInfo to indepdendant parts
---------------------------------------------------------------------------------
-solveParWith :: (Fixpoint a) => Solver a -> Solver a
---------------------------------------------------------------------------------
-solveParWith s c fi0 = do
-  -- putStrLn "Using Parallel Solver \n"
-  let fi    = slice c fi0
-  mci      <- mcInfo c
-  let fis   = partition' (Just mci) fi
-  writeLoud $ "Number of partitions : " ++ show (length fis)
-  writeLoud $ "number of cores      : " ++ show (cores c)
-  writeLoud $ "minimum part size    : " ++ show (minPartSize c)
-  writeLoud $ "maximum part size    : " ++ show (maxPartSize c)
-  case fis of
-    []        -> errorstar "partiton' returned empty list!"
-    [onePart] -> s c onePart
-    _         -> inParallelUsing (f s c) $ zip [1..] fis
-    where
-      f s c (j, fi) = s (c {srcFile = queryFile (Part j) c}) fi
-
---------------------------------------------------------------------------------
--- | Solve a list of FInfos using the provided solver function in parallel
---------------------------------------------------------------------------------
-inParallelUsing :: (a -> IO (Result b)) -> [a] -> IO (Result b)
---------------------------------------------------------------------------------
-inParallelUsing f xs = do
-   setNumCapabilities (length xs)
-   rs <- asyncMapM f xs
-   return $ mconcat rs
-
---------------------------------------------------------------------------------
--- | Native Haskell Solver -----------------------------------------------------
---------------------------------------------------------------------------------
-solveNative, solveNative' :: (NFData a, Fixpoint a) => Solver a
---------------------------------------------------------------------------------
-solveNative !cfg !fi0 = (solveNative' cfg fi0)
-                          `catch`
-                             (return . result)
-
-result :: Error -> Result a
-result e = Result (Crash [] msg) mempty mempty
-  where
-    msg  = showpp e
-
-loudDump :: (Fixpoint a) => Int -> Config -> SInfo a -> IO ()
-loudDump i cfg si = writeLoud $ msg ++ render (toFixpoint cfg si)
-  where
-    msg           = "fq file after Uniqify & Rename " ++ show i ++ "\n"
-
-solveNative' !cfg !fi0 = do
-  -- writeLoud $ "fq file in: \n" ++ render (toFixpoint cfg fi)
-  -- rnf fi0 `seq` donePhase Loud "Read Constraints"
-  -- let qs   = quals fi0
-  -- whenLoud $ print qs
-  -- TODO: make this less of a hack
-  ctx <- makeSmtContext cfg (srcFile cfg ++ ".evals") []
-  smtPush ctx
-  fi1 <- instantiateFInfo cfg ctx $ fi0 { quals = remakeQual <$> quals fi0 }
-  -- whenLoud $ putStrLn $ showFix (quals fi1)
-  let si0   = {-# SCC "convertFormat" #-} convertFormat fi1
-  -- writeLoud $ "fq file after format convert: \n" ++ render (toFixpoint cfg si0)
-  -- rnf si0 `seq` donePhase Loud "Format Conversion"
-  let si1 = either die id $ {-# SCC "sanitize" #-} sanitize $!! si0
-  -- writeLoud $ "fq file after sanitize: \n" ++ render (toFixpoint cfg si1)
-  -- rnf si1 `seq` donePhase Loud "Validated Constraints"
-  graphStatistics cfg si1
-  let si2  = {-# SCC "wfcUniqify" #-} wfcUniqify $!! si1
-  let si3  = {-# SCC "renameAll"  #-} renameAll  $!! si2
-  rnf si3 `seq` donePhase Loud "Uniqify & Rename"
-  loudDump 1 cfg si3
-  let si4  = {-# SCC "defunction" #-} defunctionalize cfg $!! si3
-  -- putStrLn $ "AXIOMS: " ++ showpp (asserts si4)
-  loudDump 2 cfg si4
-  let si5  = {-# SCC "elaborate"  #-} elaborate "solver" (symbolEnv cfg si4) si4
-  loudDump 3 cfg si5
-  res <- {-# SCC "Sol.solve" #-} Sol.solve cfg $!! si5
-  -- rnf soln `seq` donePhase Loud "Solve2"
-  --let stat = resStatus res
-  saveSolution cfg res
-  -- when (save cfg) $ saveSolution cfg
-  -- writeLoud $ "\nSolution:\n"  ++ showpp (resSolution res)
-  -- colorStrLn (colorResult stat) (show stat)
-  return res
-
---------------------------------------------------------------------------------
--- | Extract ExitCode from Solver Result ---------------------------------------
---------------------------------------------------------------------------------
-resultExit :: FixResult a -> ExitCode
---------------------------------------------------------------------------------
-resultExit Safe        = ExitSuccess
-resultExit (Unsafe _)  = ExitFailure 1
-resultExit _           = ExitFailure 2
-
---------------------------------------------------------------------------------
--- | Parse External Qualifiers -------------------------------------------------
---------------------------------------------------------------------------------
-parseFInfo :: [FilePath] -> IO (FInfo a)
---------------------------------------------------------------------------------
-parseFInfo fs = mconcat <$> mapM parseFI fs
-
-parseFI :: FilePath -> IO (FInfo a)
-parseFI f = do
-  str   <- readFile f
-  let fi = rr' f str :: FInfo ()
-  return $ mempty { quals = quals  fi
-                  , gLits = gLits  fi
-                  , dLits = dLits  fi }
-
-saveSolution :: Config -> Result a -> IO ()
-saveSolution cfg res = when (save cfg) $ do
-  let f = queryFile Out cfg
-  putStrLn $ "Saving Solution: " ++ f ++ "\n"
-  ensurePath f
-  writeFile f $ "\nSolution:\n" ++ showpp (resSolution  res)
-                ++ (if (gradual cfg) then ("\n\n" ++ showpp (gresSolution res)) else mempty)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Eliminate.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Eliminate.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Eliminate.hs
+++ /dev/null
@@ -1,96 +0,0 @@
-{-# LANGUAGE FlexibleContexts     #-}
-
--- | This module exports a single function that computes the dependency
--- information needed to eliminate non-cut KVars, and then transitively
--- collapse the resulting constraint dependencies.
--- See the type of `SolverInfo` for details.
-
-module Language.Fixpoint.Solver.Eliminate (solverInfo) where
-
-import qualified Data.HashSet        as S
-import qualified Data.HashMap.Strict as M
-
-import           Language.Fixpoint.Types.Config    (Config)
-import qualified Language.Fixpoint.Types.Solutions as Sol
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Types.Visitor   (kvars, isConcC)
-import           Language.Fixpoint.Graph
-import           Language.Fixpoint.Misc            (safeLookup, group, errorstar)
-import           Language.Fixpoint.Solver.Sanitize
-
---------------------------------------------------------------------------------
--- | `solverInfo` constructs a `SolverInfo` comprising the Solution and various
---   indices needed by the worklist-based refinement loop
---------------------------------------------------------------------------------
-solverInfo :: Config -> SInfo a -> SolverInfo a b
---------------------------------------------------------------------------------
-solverInfo cfg sI = SI sHyp sI' cD cKs
-  where
-    cD             = elimDeps     sI es nKs
-    sI'            = cutSInfo     sI kI cKs
-    sHyp           = Sol.fromList sE mempty mempty kHyps kS
-    kHyps          = nonCutHyps   sI kI nKs
-    kI             = kIndex       sI
-    (es, cKs, nKs) = kutVars cfg  sI
-    kS             = kvScopes     sI es
-    sE             = symbolEnv   cfg sI
-
-
---------------------------------------------------------------------------------
-kvScopes :: SInfo a -> [CEdge] -> M.HashMap KVar IBindEnv
-kvScopes sI es = is2env <$> kiM
-  where
-    is2env = foldr1 intersectionIBindEnv . fmap (senv . getSubC sI)
-    kiM    = group $ [(k, i) | (Cstr i, KVar k) <- es ] ++
-                     [(k, i) | (KVar k, Cstr i) <- es ]
-
---------------------------------------------------------------------------------
-
-cutSInfo :: SInfo a -> KIndex -> S.HashSet KVar -> SInfo a
-cutSInfo si kI cKs = si { ws = ws', cm = cm' }
-  where
-    ws'   = M.filterWithKey (\k _ -> S.member k cKs) (ws si)
-    cm'   = M.filterWithKey (\i c -> S.member i cs || isConcC c) (cm si)
-    cs    = S.fromList      (concatMap kCs cKs)
-    kCs k = M.lookupDefault [] k kI
-
-kutVars :: Config -> SInfo a -> ([CEdge], S.HashSet KVar, S.HashSet KVar)
-kutVars cfg si   = (es, depCuts ds, depNonCuts ds)
-  where
-    (es, ds)     = elimVars cfg si
-
---------------------------------------------------------------------------------
--- | Map each `KVar` to the list of constraints on which it appears on RHS
---------------------------------------------------------------------------------
-type KIndex = M.HashMap KVar [Integer]
-
---------------------------------------------------------------------------------
-kIndex     :: SInfo a -> KIndex
---------------------------------------------------------------------------------
-kIndex si  = group [(k, i) | (i, c) <- iCs, k <- rkvars c]
-  where
-    iCs    = M.toList (cm si)
-    rkvars = kvars . crhs
-
-nonCutHyps :: SInfo a -> KIndex -> S.HashSet KVar -> [(KVar, Sol.Hyp)]
-nonCutHyps si kI nKs = [ (k, nonCutHyp kI si k) | k <- S.toList nKs ]
-
-
-nonCutHyp  :: KIndex -> SInfo a -> KVar -> Sol.Hyp
-nonCutHyp kI si k = nonCutCube <$> cs
-  where
-    cs            = getSubC   si <$> M.lookupDefault [] k kI
-
-nonCutCube :: SimpC a -> Sol.Cube
-nonCutCube c = Sol.Cube (senv c) (rhsSubst c) (subcId c) (stag c)
-
-rhsSubst :: SimpC a -> Subst
-rhsSubst             = rsu . crhs
-  where
-    rsu (PKVar _ su) = su
-    rsu _            = errorstar "Eliminate.rhsSubst called on bad input"
-
-getSubC :: SInfo a -> Integer -> SimpC a
-getSubC si i = safeLookup msg i (cm si)
-  where
-    msg = "getSubC: " ++ show i
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolution.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolution.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolution.hs
+++ /dev/null
@@ -1,420 +0,0 @@
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE TupleSections      #-}
-
-module Language.Fixpoint.Solver.GradualSolution
-  ( -- * Create Initial Solution
-    init
-
-    -- * Update Solution
-  , Sol.update
-
-  -- * Lookup Solution
-  , lhsPred
-  ) where
-
-import           Control.Parallel.Strategies
-import           Control.Arrow (second)
-import qualified Data.HashSet                   as S
-import qualified Data.HashMap.Strict            as M
-import qualified Data.List                      as L
-import           Data.Maybe                     (fromMaybe, maybeToList, isNothing, catMaybes)
-import           Data.Monoid                    ((<>))
-import           Language.Fixpoint.Types.PrettyPrint ()
-import           Language.Fixpoint.Types.Visitor      as V
-import qualified Language.Fixpoint.SortCheck          as So
-import           Language.Fixpoint.Misc
-import qualified Language.Fixpoint.Smt.Theories       as Thy
-import           Language.Fixpoint.Types.Config
-import qualified Language.Fixpoint.Types              as F
-import           Language.Fixpoint.Types                 ((&.&))
-import qualified Language.Fixpoint.Types.Solutions    as Sol
-import           Language.Fixpoint.Types.Constraints  hiding (ws, bs)
-import           Prelude                              hiding (init, lookup)
-import           Language.Fixpoint.Solver.Sanitize
-
-
---------------------------------------------------------------------------------
--- | Initial Gradual Solution (from Qualifiers and WF constraints) -------------
---------------------------------------------------------------------------------
-init :: Config -> F.SInfo a -> S.HashSet F.KVar -> Sol.GSolution
---------------------------------------------------------------------------------
-init cfg si ks = Sol.fromList senv geqs keqs [] mempty
-  where
-    keqs       = map (refine si qs genv)  ws `using` parList rdeepseq
-    geqs       = map (refineG si qs genv) gs `using` parList rdeepseq 
-    qs         = F.quals si
-    ws         = [ w | (k, w) <- ws0, k `S.member` ks]
-    gs         = snd <$> gs0
-    genv       = instConstants si
-    senv       = symbolEnv cfg si
-
-    (gs0,ws0)  = L.partition (isGWfc . snd) $ M.toList (F.ws si)
-
-
---------------------------------------------------------------------------------
-refineG :: F.SInfo a -> [F.Qualifier] -> F.SEnv F.Sort -> F.WfC a -> (F.KVar, (((F.Symbol,F.Sort), F.Expr), Sol.GBind))
-refineG fi qs genv w = (k, (((fst3 $ wrft w, snd3 $ wrft w), wexpr w), Sol.qbToGb qb))
-  where 
-    (k, qb) = refine fi qs genv w 
-
-refine :: F.SInfo a -> [F.Qualifier] -> F.SEnv F.Sort -> F.WfC a -> (F.KVar, Sol.QBind)
-refine fi qs genv w = refineK (allowHOquals fi) env qs $ F.wrft w
-  where
-    env             = wenv <> genv
-    wenv            = F.sr_sort <$> F.fromListSEnv (F.envCs (F.bs fi) (F.wenv w))
-
-instConstants :: F.SInfo a -> F.SEnv F.Sort
-instConstants = F.fromListSEnv . filter notLit . F.toListSEnv . F.gLits
-  where
-    notLit    = not . F.isLitSymbol . fst
-
-
-refineK :: Bool -> F.SEnv F.Sort -> [F.Qualifier] -> (F.Symbol, F.Sort, F.KVar) -> (F.KVar, Sol.QBind)
-refineK ho env qs (v, t, k) = (k, eqs')
-   where
-    eqs                     = instK ho env v t qs
-    eqs'                    = Sol.qbFilter (okInst env v t) eqs
-
---------------------------------------------------------------------------------
-instK :: Bool
-      -> F.SEnv F.Sort
-      -> F.Symbol
-      -> F.Sort
-      -> [F.Qualifier]
-      -> Sol.QBind
---------------------------------------------------------------------------------
-instK ho env v t = Sol.qb . unique . concatMap (instKQ ho env v t)
-  where
-    unique       = L.nubBy ((. Sol.eqPred) . (==) . Sol.eqPred)
-
-instKQ :: Bool
-       -> F.SEnv F.Sort
-       -> F.Symbol
-       -> F.Sort
-       -> F.Qualifier
-       -> [Sol.EQual]
-instKQ ho env v t q
-  = do (su0, v0) <- candidates senv [(t, [v])] qt
-       xs        <- match senv tyss [v0] (So.apply su0 <$> qts)
-       return     $ Sol.eQual q (reverse xs)
-    where
-       qt : qts   = snd <$> F.qParams q
-       tyss       = instCands ho env
-       senv       = (`F.lookupSEnvWithDistance` env)
-
-instCands :: Bool -> F.SEnv F.Sort -> [(F.Sort, [F.Symbol])]
-instCands ho env = filter isOk tyss
-  where
-    tyss      = groupList [(t, x) | (x, t) <- xts]
-    isOk      = if ho then const True else isNothing . F.functionSort . fst
-    xts       = F.toListSEnv env
-
-match :: So.Env -> [(F.Sort, [F.Symbol])] -> [F.Symbol] -> [F.Sort] -> [[F.Symbol]]
-match env tyss xs (t : ts)
-  = do (su, x) <- candidates env tyss t
-       match env tyss (x : xs) (So.apply su <$> ts)
-match _   _   xs []
-  = return xs
-
---------------------------------------------------------------------------------
-candidates :: So.Env -> [(F.Sort, [F.Symbol])] -> F.Sort -> [(So.TVSubst, F.Symbol)]
---------------------------------------------------------------------------------
-candidates env tyss tx = 
-    [(su, y) | (t, ys) <- tyss
-             , su      <- maybeToList $ So.unifyFast mono env tx t
-             , y       <- ys                                   ]
-  where
-    mono = So.isMono tx
-
---------------------------------------------------------------------------------
-okInst :: F.SEnv F.Sort -> F.Symbol -> F.Sort -> Sol.EQual -> Bool
---------------------------------------------------------------------------------
-okInst env v t eq = isNothing tc
-  where
-    sr            = F.RR t (F.Reft (v, p))
-    p             = Sol.eqPred eq
-    tc            = So.checkSorted env sr 
-
-
---------------------------------------------------------------------------------
--- | Predicate corresponding to LHS of constraint in current solution
---------------------------------------------------------------------------------
-lhsPred :: F.SolEnv -> Sol.GSolution -> F.SimpC a ->  [([(F.KVar, Sol.QBind)], F.Expr)]
-lhsPred be s c = gSelectToList (fst <$> applyGradual g s bs)
-  where
-    g                 = (ci, be, bs)
-    bs                = F.senv c
-    ci                = sid c
-
-type Cid         = Maybe Integer
-type CombinedEnv = (Cid, F.SolEnv, F.IBindEnv)
-type ExprInfo    = (F.Expr, KInfo)
-
-applyGradual        :: CombinedEnv -> Sol.GSolution -> F.IBindEnv -> GSelect ExprInfo
-applyGradual g s bs = mappendGSelect mappendExprInfo pks (applyKVarsGrad g s ks)
-  where
-    pgs           = allCombinations $ applyGVars g s gs
-    pks           = if null gs 
-                        then GNone (F.pAnd ps, mempty) 
-                        else GOpt [(fst (unzip l) , (F.pAnd (ps++snd (unzip l)), mempty)) | l <- pgs ]
-    (ps,  ks, gs) = envConcKVars g bs
-
-    mappendExprInfo (e1, i1) (e2, i2) = (F.pAnd [e1, e2], mappend i1 i2)
-
-
-envConcKVars :: CombinedEnv -> F.IBindEnv -> ([F.Expr], [F.KVSub], [F.KVSub])
-envConcKVars g bs = (concat pss, concat kss, L.nubBy (\x y -> F.ksuKVar x == F.ksuKVar y) $ concat gss)
-  where
-    (pss, kss, gss) = unzip3 [ F.sortedReftConcKVars x sr | (x, sr) <- xrs ]
-    xrs             = (\i -> F.lookupBindEnv i be) <$> is
-    is              = F.elemsIBindEnv bs
-    be              = F.soeBinds (snd3 g)
-
-applyGVars :: CombinedEnv -> Sol.GSolution -> [F.KVSub] -> [[((F.KVar, Sol.QBind), F.Expr)]]
-applyGVars g s = map (applyGVar g s)
-
-
-applyGVar :: CombinedEnv -> Sol.GSolution -> F.KVSub -> [((F.KVar, Sol.QBind), F.Expr)]
-applyGVar g s ksu = case Sol.glookup s (F.ksuKVar ksu) of
-  Right (Right (e,eqss)) -> [((F.ksuKVar ksu, eqs), F.pAnd ((F.subst su (snd e)):(fst <$> Sol.qbPreds msg s su eqs))) | eqs <- Sol.gbToQbs eqss]
-  _                      -> []
-  where
-    msg     = "applyGVar: " ++ show (fst3 g)
-    su      = F.ksuSubst ksu
-
-applyKVarsGrad :: CombinedEnv -> Sol.GSolution -> [F.KVSub] -> GSelect ExprInfo
-applyKVarsGrad g s xs = (f <$> (collapseGSelect $ map (applyKVarGrad g s) xs))
-  where
-    f xs = let (es, is) = unzip xs  in (F.pAnd es, mconcat is)
-
-applyKVarGrad :: CombinedEnv -> Sol.GSolution -> F.KVSub -> GSelect ExprInfo
-applyKVarGrad g s ksu = case Sol.glookup s (F.ksuKVar ksu) of
-  Left cs                -> hypPredGrad g s ksu cs
-  Right (Left eqs)       -> GNone (F.pAnd $ fst <$> Sol.qbPreds msg s (F.ksuSubst ksu) eqs, mempty)
-  Right (Right (e,eqss)) -> GOpt [([(F.ksuKVar ksu, eqs)]
-                                  , (, mempty) $ F.pAnd ((F.subst su (snd e)):(fst <$> Sol.qbPreds msg s su eqs))) 
-                                  | eqs <- Sol.gbToQbs eqss]
-  where
-    msg     = "applyKVar: " ++ show (fst3 g) 
-    su      = F.ksuSubst ksu
-
-
-hypPredGrad :: CombinedEnv -> Sol.GSolution -> F.KVSub -> Sol.Hyp  -> GSelect ExprInfo
-hypPredGrad g s ksu xs = f <$> (collapseGSelect $ map (cubePredGrad g s ksu) xs)
-  where
-    f xs = let (es, is) = unzip xs  in (F.pOr es, mconcatPlus is)
-
-
-{- | `cubePred g s k su c` returns the predicate for
-
-        (k . su)
-
-      defined by using cube
-
-        c := [b1,...,bn] |- (k . su')
-
-      in the binder environment `g`.
-
-        bs' := the subset of "extra" binders in [b1...bn] that are *not* in `g`
-        p'  := the predicate corresponding to the "extra" binders
-
- -}
-
-elabExist :: Sol.Sol a Sol.QBind -> [(F.Symbol, F.Sort)] -> F.Expr -> F.Expr
-elabExist s xts = F.pExist xts'
-  where
-    xts'        = [ (x, elab t) | (x, t) <- xts]
-    elab        = So.elaborate "elabExist" env
-    env         = Sol.sEnv s
-
-
-cubePredGrad :: CombinedEnv -> Sol.GSolution -> F.KVSub -> Sol.Cube -> GSelect ExprInfo
-cubePredGrad g s ksu c  = ((\((xts,psu,p), kI) -> (elabExist s xts (psu &.& p) , kI)) <$> cubePredExcGrad g s ksu c bs')
-  where
-    bs'               = delCEnv s k bs
-    bs                = Sol.cuBinds c
-    k                 = F.ksuKVar ksu
-
-
-type Binders = [(F.Symbol, F.Sort)]
-
--- | @cubePredExc@ computes the predicate for the subset of binders bs'.
---   The output is a tuple, `(xts, psu, p, kI)` such that the actual predicate
---   we want is `Exists xts. (psu /\ p)`.
-
-
-cubePredExcGrad :: CombinedEnv -> Sol.GSolution -> F.KVSub -> Sol.Cube -> F.IBindEnv
-            -> GSelect ((Binders, F.Pred, F.Pred), KInfo)
-cubePredExcGrad g s ksu c bs' 
-  = f <$> (applyGradual g' s bs')
-  where
-    f (p', kI)      = ((xts, psu, elabExist s yts' (p' &.& psu') ), extendKInfo kI (Sol.cuTag c))
-    yts'            = symSorts g bs'
-    g'              = addCEnv  g bs
-    
-    (_  , psu')     = substElim sEnv g' k su'
-    (xts, psu)      = substElim sEnv g  k su
-    su'             = Sol.cuSubst c
-    bs              = Sol.cuBinds c
-    k               = F.ksuKVar   ksu
-    su              = F.ksuSubst  ksu
-    sEnv            = F.insertSEnv (F.ksuVV ksu) (F.ksuSort ksu) (Sol.sEnv s)
-
-
--- TODO: SUPER SLOW! Decorate all substitutions with Sorts in a SINGLE pass.
-
-{- | @substElim@ returns the binders that must be existentially quantified,
-     and the equality predicate relating the kvar-"parameters" and their
-     actual values. i.e. given
-
-        K[x1 := e1]...[xn := en]
-
-     where e1 ... en have types t1 ... tn
-     we want to quantify out
-
-       x1:t1 ... xn:tn
-
-     and generate the equality predicate && [x1 ~~ e1, ... , xn ~~ en]
-     we use ~~ because the param and value may have different sorts, see:
-
-        tests/pos/kvar-param-poly-00.hs
-
-     Finally, we filter out binders if they are
-
-     1. "free" in e1...en i.e. in the outer environment.
-        (Hmm, that shouldn't happen...?)
-
-     2. are binders corresponding to sorts (e.g. `a : num`, currently used
-        to hack typeclasses current.)
- -}
-substElim :: F.SEnv F.Sort -> CombinedEnv -> F.KVar -> F.Subst -> ([(F.Symbol, F.Sort)], F.Pred)
-substElim sEnv g _ (F.Su m) = (xts, p)
-  where
-    p      = F.pAnd [ mkSubst x (substSort sEnv frees x t) e t | (x, e, t) <- xets  ]
-    xts    = [ (x, t)    | (x, _, t) <- xets, not (S.member x frees) ]
-    xets   = [ (x, e, t) | (x, e)    <- xes, t <- sortOf e, not (isClass t)]
-    xes    = M.toList m
-    env    = combinedSEnv g
-    frees  = S.fromList (concatMap (F.syms . snd) xes)
-    sortOf = maybeToList . So.checkSortExpr env
-
-substSort :: F.SEnv F.Sort -> S.HashSet F.Symbol -> F.Symbol -> F.Sort -> F.Sort
-substSort sEnv _frees x _t = fromMaybe (err x) $ F.lookupSEnv x sEnv
-  where
-    err x            = error $ "Solution.mkSubst: unknown binder " ++ F.showpp x
-
-mkSubst :: F.Symbol -> F.Sort -> F.Expr -> F.Sort -> F.Expr
-mkSubst x tx ey ty
-  | tx == ty    = F.EEq ex ey
-  | otherwise   = F.notracepp msg (F.EEq ex' ey')
-  where
-    msg         = "mkSubst-DIFF:" ++ F.showpp (tx, ty) ++ F.showpp (ex', ey')
-    ex          = F.expr x
-    ex'         = Thy.toInt ex tx
-    ey'         = Thy.toInt ey ty
-
-isClass :: F.Sort -> Bool
-isClass F.FNum  = True
-isClass F.FFrac = True
-isClass _       = False
-
---badExpr :: CombinedEnv -> F.KVar -> F.Expr -> a
---badExpr g@(i,_,_) k e
-  -- = errorstar $ "substSorts has a badExpr: "
-              -- ++ show e
-              -- ++ " in cid = "
-              -- ++ show i
-              -- ++ " for kvar " ++ show k
-              -- ++ " in env \n"
-              -- ++ show (combinedSEnv g)
-
--- substPred :: F.Subst -> F.Pred
--- substPred (F.Su m) = F.pAnd [ F.PAtom F.Eq (F.eVar x) e | (x, e) <- M.toList m]
-
-combinedSEnv :: CombinedEnv -> F.SEnv F.Sort
-combinedSEnv (_, se, bs) = F.sr_sort <$> F.fromListSEnv (F.envCs be bs)
-  where
-    be                   = F.soeBinds se
-
-addCEnv :: CombinedEnv -> F.IBindEnv -> CombinedEnv
-addCEnv (x, be, bs) bs' = (x, be, F.unionIBindEnv bs bs')
-
--- delCEnv :: F.IBindEnv -> CombinedEnv -> F.IBindEnv
--- delCEnv bs (_, _, bs')  = F.diffIBindEnv bs bs'
-
-delCEnv :: Sol.Sol a Sol.QBind -> F.KVar -> F.IBindEnv -> F.IBindEnv
-delCEnv s k bs  = F.diffIBindEnv bs _kbs
-                                                -- ORIG: bs'
-  where
-    _kbs = safeLookup "delCEnv" k (Sol.sScp s)
-
-symSorts :: CombinedEnv -> F.IBindEnv -> [(F.Symbol, F.Sort)]
-symSorts (_, se, _) bs = second F.sr_sort <$> F.envCs be  bs
-  where
-    be                 = F.soeBinds se
-
-_noKvars :: F.Expr -> Bool
-_noKvars = null . V.kvars
-
---------------------------------------------------------------------------------
--- | Information about size of formula corresponding to an "eliminated" KVar.
---------------------------------------------------------------------------------
-data KInfo = KI { kiTags  :: [Tag]
-                , kiDepth :: !Int
-                , kiCubes :: !Integer
-                } deriving (Eq, Ord, Show)
-
-instance Monoid KInfo where
-  mempty         = KI [] 0 1
-  mappend ki ki' = KI ts d s
-    where
-      ts         = appendTags (kiTags  ki) (kiTags  ki')
-      d          = max        (kiDepth ki) (kiDepth ki')
-      s          = (*)        (kiCubes ki) (kiCubes ki')
-
-mplus :: KInfo -> KInfo -> KInfo
-mplus ki ki' = (mappend ki ki') { kiCubes = kiCubes ki + kiCubes ki'}
-
-mconcatPlus :: [KInfo] -> KInfo
-mconcatPlus = foldr mplus mempty
-
-appendTags :: [Tag] -> [Tag] -> [Tag]
-appendTags ts ts' = sortNub (ts ++ ts')
-
-extendKInfo :: KInfo -> F.Tag -> KInfo
-extendKInfo ki t = ki { kiTags  = appendTags [t] (kiTags  ki)
-                      , kiDepth = 1  +            kiDepth ki }
-
-
---------------------------------------------------------------------------------
--- | Gradual Selection Interface -----------------------------------------------
---------------------------------------------------------------------------------
-data GSelect a = GNone a | GOpt [([(F.KVar, Sol.QBind)], a)] deriving (Show)
-
-
-gSelectToList :: GSelect a -> [([(F.KVar, Sol.QBind)], a)]
-gSelectToList (GNone a) = [([], a)]
-gSelectToList (GOpt xs) = xs 
-
-
-instance Functor GSelect where
-  fmap f (GNone a) = GNone  (f a)
-  fmap f (GOpt xs) = GOpt [(p, f a) | (p, a) <- xs]
-
-mappendGSelect :: (a -> a -> b) -> GSelect a -> GSelect a -> GSelect b 
-mappendGSelect f (GNone x) (GNone y) = GNone (f x y)
-mappendGSelect f (GNone x) (GOpt ys) = GOpt [(i, f x y) | (i, y) <- ys] 
-mappendGSelect f (GOpt xs) (GNone y) = GOpt [(i, f x y) | (i, x) <- xs]
-mappendGSelect f (GOpt xs) (GOpt ys) = GOpt $ concatMap (\y -> (catMaybes $ map (\x -> g x y) xs)) ys 
-  where
-    g (xs, x) (ys, y)
-      | null [ () | (k1, _) <- xs, (k2, _) <- ys, k1 == k2 ]  
-      =  Just (xs ++ ys, f x y)
-      | and [v1 == v2 | (k1, v1) <- xs, (k2, v2) <- ys, k1 == k2 ] 
-      = Just (xs ++ [(k, v) | (k, v) <- ys, not (k `elem` (fst <$> xs))], f x y)
-      | otherwise
-      = Nothing 
-
-collapseGSelect :: [GSelect a] -> GSelect [a]
-collapseGSelect = foldl (mappendGSelect (\x y -> (x ++ y))) (GNone []) . fmap (fmap (:[]))
-
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolve.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolve.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/GradualSolve.hs
+++ /dev/null
@@ -1,319 +0,0 @@
-{-# LANGUAGE PatternGuards     #-}
-{-# LANGUAGE TupleSections     #-}
-{-# LANGUAGE FlexibleContexts  #-}
-{-# LANGUAGE OverloadedStrings #-}
-
---------------------------------------------------------------------------------
--- | Solve a system of horn-clause constraints ---------------------------------
---------------------------------------------------------------------------------
-
-module Language.Fixpoint.Solver.GradualSolve (solveGradual) where
-
-import           Control.Monad (when, filterM, foldM)
-import           Control.Monad.State.Strict (lift)
-import           Language.Fixpoint.Misc
-import qualified Language.Fixpoint.Types           as F
-import qualified Language.Fixpoint.Types.Solutions as Sol
-import qualified Language.Fixpoint.SortCheck       as So
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Config hiding (stats)
-import qualified Language.Fixpoint.Solver.GradualSolution  as S
-import qualified Language.Fixpoint.Solver.Worklist  as W
-import qualified Language.Fixpoint.Solver.Eliminate as E
-import           Language.Fixpoint.Solver.Monad
-import           Language.Fixpoint.Utils.Progress
-import           Language.Fixpoint.Graph
-import           Text.PrettyPrint.HughesPJ
-import           Text.Printf
-import           System.Console.CmdArgs.Verbosity (whenNormal, whenLoud)
-import           Control.DeepSeq
-import qualified Data.HashMap.Strict as M
-import qualified Data.HashSet        as S
-
---------------------------------------------------------------------------------
--- | Progress Bar
---------------------------------------------------------------------------------
-withProgressFI :: SolverInfo a b -> IO b -> IO b
-withProgressFI = withProgress . fromIntegral . cNumScc . siDeps
---------------------------------------------------------------------------------
-
-printStats :: F.SInfo a ->  W.Worklist a -> Stats -> IO ()
-printStats fi w s = putStrLn "\n" >> ppTs [ ptable fi, ptable s, ptable w ]
-  where
-    ppTs          = putStrLn . showpp . mconcat
-
---------------------------------------------------------------------------------
-solverInfo :: Config -> F.SInfo a -> SolverInfo a b
---------------------------------------------------------------------------------
-solverInfo cfg fI
-  | useElim cfg = E.solverInfo cfg fI
-  | otherwise   = SI mempty fI cD (siKvars fI)
-  where
-    cD          = elimDeps fI (kvEdges fI) mempty
-
-siKvars :: F.SInfo a -> S.HashSet F.KVar
-siKvars = S.fromList . M.keys . F.ws
-
-
---------------------------------------------------------------------------------
--- | tidyResult ensures we replace the temporary kVarArg names introduced to
---   ensure uniqueness with the original names in the given WF constraints.
---------------------------------------------------------------------------------
-tidyResult :: F.Result a -> F.Result a
-tidyResult r = r { F.resSolution  =  tidySolution  (F.resSolution r)
-                 , F.gresSolution =  gtidySolution (F.gresSolution r) 
-                 }
-
-tidySolution :: F.FixSolution -> F.FixSolution
-tidySolution = fmap tidyPred
-
-gtidySolution :: F.GFixSolution -> F.GFixSolution
-gtidySolution = fmap tidyPred --  (\(e, es) -> (tidyPred e, tidyPred <$> es))
-
-tidyPred :: F.Expr -> F.Expr
-tidyPred = F.substf (F.eVar . F.tidySymbol)
-
-
-predKs :: F.Expr -> [(F.KVar, F.Subst)]
-predKs (F.PAnd ps)    = concatMap predKs ps
-predKs (F.PKVar k su) = [(k, su)]
-predKs _              = []
-
-
-
---------------------------------------------------------------------------------
-minimizeResult :: Config -> M.HashMap F.KVar F.Expr
-               -> SolveM (M.HashMap F.KVar F.Expr)
---------------------------------------------------------------------------------
-minimizeResult cfg s
-  | minimalSol cfg = mapM minimizeConjuncts s
-  | otherwise      = return s
-
-minimizeConjuncts :: F.Expr -> SolveM F.Expr
-minimizeConjuncts p = F.pAnd <$> go (F.conjuncts p) []
-  where
-    go []     acc   = return acc
-    go (p:ps) acc   = do b <- isValid (F.pAnd (acc ++ ps)) p
-                         if b then go ps acc
-                              else go ps (p:acc)
-
-
-
-showUnsat :: Bool -> Integer -> F.Pred -> F.Pred -> IO ()
-showUnsat u i lP rP = {- when u $ -} do
-  putStrLn $ printf   "UNSAT id %s %s" (show i) (show u)
-  putStrLn $ showpp $ "LHS:" <+> pprint lP
-  putStrLn $ showpp $ "RHS:" <+> pprint rP
-
---------------------------------------------------------------------------------
--- | Predicate corresponding to RHS of constraint in current solution
---------------------------------------------------------------------------------
-rhsPred :: F.SimpC a -> F.Expr
---------------------------------------------------------------------------------
-rhsPred c
-  | isTarget c = F.crhs c
-  | otherwise  = errorstar $ "rhsPred on non-target: " ++ show (F.sid c)
-
-isValid :: F.Expr -> F.Expr -> SolveM Bool
-isValid p q = (not . null) <$> filterValid p [(q, ())]
-
-
--------------------------------------------------------------------------------
--- | solve with edits to allow Gradual types ----------------------------------
--------------------------------------------------------------------------------
-
-solveGradual :: (NFData a, F.Fixpoint a) => Config -> F.SInfo a -> IO (F.Result (Integer, a))
-
-solveGradual cfg fi = do
-    (res, stat) <- withProgressFI sI $ runSolverM cfg sI n act
-    when (solverStats cfg) $ printStats fi wkl stat
-    return res
-  where
-    act  = solveGradual_ cfg fi s0 ks  wkl
-    sI   = solverInfo cfg fi
-    wkl  = W.init sI
-    n    = fromIntegral $ W.wRanks wkl
-    s0   = siSol  sI
-    ks   = siVars sI
-
---------------------------------------------------------------------------------
-solveGradual_ :: (NFData a, F.Fixpoint a)
-       => Config
-       -> F.SInfo a
-       -> Sol.GSolution 
-       -> S.HashSet F.KVar
-       -> W.Worklist a
-       -> SolveM (F.Result (Integer, a), Stats)
---------------------------------------------------------------------------------
-solveGradual_ cfg fi s0 ks wkl = do
-  let s1  = mappend s0 $ {-# SCC "sol-init" #-} S.init cfg fi ks
-  s2      <- {-# SCC "sol-local"  #-} filterLocal s1
-  s       <- {-# SCC "sol-refine" #-} refine s2 wkl
-  res     <- {-# SCC "sol-result" #-} result cfg wkl s
-  st      <- stats
-  let res' = {-# SCC "sol-tidy"   #-} tidyResult res
-  return $!! (res', st)
-
-filterLocal :: Sol.GSolution -> SolveM Sol.GSolution 
-filterLocal sol = do 
-  gs' <- mapM (initGBind sol) gs 
-  return $ Sol.updateGMap sol $ M.fromList gs'
-  where 
-    gs = M.toList $ Sol.gMap sol 
-
-initGBind :: Sol.GSolution -> (F.KVar, (((F.Symbol, F.Sort), F.Expr), Sol.GBind)) -> SolveM (F.KVar, (((F.Symbol, F.Sort), F.Expr), Sol.GBind))
-initGBind sol (k, (e, gb)) = do  
-   elems0  <- filterM (isLocal e) (Sol.gbEquals gb)
-   elems   <- sortEquals elems0 
-   lattice <- makeLattice [] (map (:[]) elems) elems
-   return $ ((k,) . (e,) . Sol.equalsGb) lattice
-  where
-    makeLattice acc new elems
-      | null new
-      = return acc 
-      | otherwise
-      = do let cands = [e:es |e<-elems, es<-new]
-           localCans <- filterM (isLocal e) cands
-           newElems  <- filterM (notTrivial (new ++ acc)) localCans 
-           makeLattice (acc ++ new) newElems elems
-
-    notTrivial [] _     = return True 
-    notTrivial (x:xs) p = do v <- isValid (mkPred x) (mkPred p)
-                             if v then return False 
-                                  else notTrivial xs p 
-
-    mkPred eq = So.elaborate "initBGind.mkPred" (Sol.sEnv sol) (F.pAnd (Sol.eqPred <$> eq))
-    isLocal (v, e) eqs = do 
-      let pp = So.elaborate "filterLocal" (Sol.sEnv sol) $ F.PExist [v] $ F.pAnd (e:(Sol.eqPred <$> eqs)) 
-      isValid mempty pp
-
-    root      = Sol.trueEqual
-    sortEquals xs = (bfs [0]) <$> makeEdges vs [] vs 
-      where 
-       vs        = zip [0..] (root:(head <$> xs))
-
-       bfs []     _  = [] 
-       bfs (i:is) es = (snd $ (vs!!i)) : bfs (is++map snd (filter (\(j,k) ->  (j==i && notElem k is)) es)) es
-
-       makeEdges _   acc []    = return acc
-       makeEdges vs acc (x:xs) = do ves  <- concat <$> mapM (makeEdgesOne x) vs
-                                    if any (\(i,j) -> elem (j,i) acc) ves 
-                                      then makeEdges (filter ((/= fst x) . fst) vs) (filter (\(i,j) -> ((i /= fst x) && (j /= fst x))) acc) xs 
-                                      else makeEdges vs (mergeEdges (ves ++ acc)) xs 
-
-    makeEdgesOne (i,_) (j,_) | i == j = return [] 
-    makeEdgesOne (i,x) (j,y) = do 
-      ij <- isValid (mkPred [x]) (mkPred [y])
-      return (if ij then [(j,i)] else [])
-
-    mergeEdges es = filter (\(i,j) -> (not (any (\k -> ((i,k) `elem` es && (k,j) `elem` es)) (fst <$> es)))) es
-
-
---------------------------------------------------------------------------------
-refine :: Sol.GSolution -> W.Worklist a -> SolveM Sol.GSolution
---------------------------------------------------------------------------------
-refine s w
-  | Just (c, w', newScc, rnk) <- W.pop w = do
-     i       <- tickIter newScc
-     (b, s') <- refineC i s c
-     lift $ writeLoud $ refineMsg i c b rnk
-     let w'' = if b then W.push c w' else w'
-     refine s' w''
-  | otherwise = return s
-  where
-    -- DEBUG
-    refineMsg i c b rnk = printf "\niter=%d id=%d change=%s rank=%d\n"
-                            i (F.subcId c) (show b) rnk
-
----------------------------------------------------------------------------
--- | Single Step Refinement -----------------------------------------------
----------------------------------------------------------------------------
-refineC :: Int -> Sol.GSolution -> F.SimpC a -> SolveM (Bool, Sol.GSolution)
----------------------------------------------------------------------------
-refineC _i s c
-  | null rhs  = return (False, s)
-  | otherwise = do be      <- getBinds
-                   let lhss = snd <$> S.lhsPred be s c
-                   kqs     <- filterValidGradual lhss rhs
-                   return   $ S.update s ks kqs
-  where
-    _ci       = F.subcId c
-    (ks, rhs) = rhsCands s c
-    -- msg       = printf "refineC: iter = %d, sid = %s, soln = \n%s\n"
-    --               _i (show (F.sid c)) (showpp s)
-    _msg ks xs ys = printf "refineC: iter = %d, sid = %s, s = %s, rhs = %d, rhs' = %d \n"
-                     _i (show _ci) (showpp ks) (length xs) (length ys)
-
-
-rhsCands :: Sol.GSolution -> F.SimpC a -> ([F.KVar], Sol.Cand (F.KVar, Sol.EQual))
-rhsCands s c    = (fst <$> ks, kqs)
-  where
-    kqs         = [ (p, (k, q)) | (k, su) <- ks, (p, q)  <- cnd k su ]
-    ks          = predKs . F.crhs $ c
-    cnd k su    = Sol.qbPreds msg s su (Sol.lookupQBind s k)
-    msg         = "rhsCands: " ++ show (F.sid c)
-
---------------------------------------------------------------------------------
--- | Gradual Convert Solution into Result ----------------------------------------------
---------------------------------------------------------------------------------
-result :: (F.Fixpoint a) => Config -> W.Worklist a -> Sol.GSolution
-       -> SolveM (F.Result (Integer, a))
---------------------------------------------------------------------------------
-result cfg wkl s = do
-  lift $ writeLoud "Computing Result"
-  stat    <- result_ wkl s 
-  lift $ whenNormal $ putStrLn $ "RESULT: " ++ show (F.sid <$> stat)
-  F.Result (ci <$> stat) <$> solResult cfg s <*> solResultGradual wkl cfg s 
-  where
-    ci c = (F.subcId c, F.sinfo c)
-
-result_ :: Fixpoint a =>  W.Worklist a -> Sol.GSolution -> SolveM (F.FixResult (F.SimpC a))
-result_  w s = res <$> filterM (isUnsat s) cs
-  where
-    cs       = W.unsatCandidates w
-    res []   = F.Safe
-    res cs'  = F.Unsafe cs'
-
-solResult :: Config -> Sol.GSolution -> SolveM (M.HashMap F.KVar F.Expr)
-solResult cfg
-  = minimizeResult cfg . Sol.result
-
-
-solResultGradual :: W.Worklist a -> Config -> Sol.GSolution -> SolveM F.GFixSolution
-solResultGradual w _cfg sol 
-  = F.toGFixSol . Sol.resultGradual <$> updateGradualSolution (W.unsatCandidates w) sol
-
---------------------------------------------------------------------------------
-updateGradualSolution :: [F.SimpC a] -> Sol.GSolution -> SolveM (Sol.GSolution)
---------------------------------------------------------------------------------
-updateGradualSolution cs sol = foldM f (Sol.emptyGMap sol) cs
-  where
-   f s c = do
-    be <- getBinds
-    let lpi = S.lhsPred be sol c 
-    let rp  = rhsPred c 
-    gbs    <- firstValid rp lpi 
-    return $ Sol.updateGMapWithKey gbs s 
-
-
-firstValid :: Monoid a =>  F.Expr -> [(a, F.Expr)] -> SolveM a 
-firstValid _   [] = return mempty 
-firstValid rhs ((y,lhs):xs) = do
-  v <- isValid lhs rhs
-  if v then return y else firstValid rhs xs 
-
-
---------------------------------------------------------------------------------
-isUnsat :: Fixpoint a => Sol.GSolution -> F.SimpC a -> SolveM Bool
---------------------------------------------------------------------------------
-isUnsat s c = do
-  -- lift   $ printf "isUnsat %s" (show (F.subcId c))
-  _     <- tickIter True -- newScc
-  be    <- getBinds
-  let lpi = S.lhsPred be s c
-  let rp = rhsPred        c
-  res   <- (not . or) <$> mapM (`isValid` rp) (snd <$> lpi)
-  lift   $ whenLoud $ showUnsat res (F.subcId c) (F.pOr (snd <$> lpi)) rp
-  return res
-
-
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Instantiate.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Instantiate.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Instantiate.hs
+++ /dev/null
@@ -1,533 +0,0 @@
-{-# LANGUAGE OverloadedStrings         #-}
-{-# LANGUAGE PartialTypeSignatures     #-}
-{-# LANGUAGE TupleSections             #-}
-{-# LANGUAGE BangPatterns              #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE ViewPatterns              #-}
-{-# LANGUAGE PatternGuards             #-}
-{-# LANGUAGE ExistentialQuantification #-}
-
---------------------------------------------------------------------------------
--- | Axiom Instantiation  ------------------------------------------------------
---------------------------------------------------------------------------------
-
-module Language.Fixpoint.Solver.Instantiate (
-
-  instantiateAxioms,
-  instantiateFInfo,
-
-  ) where
-
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Types.Config as FC
-import qualified Language.Fixpoint.Smt.Theories as FT
-import           Language.Fixpoint.Types.Visitor (eapps, kvars, mapMExpr)
-import           Language.Fixpoint.Misc          (mapFst)
-
-import Language.Fixpoint.Smt.Interface          ( smtPop, smtPush
-                                                , smtDecls, smtAssert
-                                                , checkValid', Context(..) )
-import Language.Fixpoint.Defunctionalize        (defuncAny, makeLamArg)
-import Language.Fixpoint.SortCheck              (elaborate)
-
-import Control.Monad.State
-
--- AT: I've inlined this, but we should have a more elegant solution
---     (track predicates instead of selectors!)
--- import           Language.Haskell.Liquid.GHC.Misc (dropModuleNames)
-import qualified Data.Text            as T
-import qualified Data.HashMap.Strict  as M
-import qualified Data.List            as L
-import           Data.Maybe           (catMaybes, fromMaybe)
-import           Data.Char            (isUpper)
-import           Data.Foldable        (foldlM)
--- import           Data.Monoid          ((<>))
-
-(~>) :: (Expr, String) -> Expr -> EvalST Expr
-(_e,_str) ~> e' = do
-    modify (\st -> st{evId = evId st + 1})
-    -- traceM $ showpp _str ++ " : " ++ showpp _e ++ showpp e'
-    return (η e')
-
----------------------
--- Instantiate Axioms
----------------------
-instantiateFInfo :: Config -> Context -> FInfo c -> IO (FInfo c)
-instantiateFInfo cfg ctx fi = do
-    cm' <- sequence $ M.mapWithKey instantiateOne (cm fi)
-    return $ fi { cm = cm' }
-  where instantiateOne = instantiateAxioms cfg ctx (bs fi) (gLits fi) (ae fi)
-
-instantiateAxioms :: Config -> Context -> BindEnv -> SEnv Sort -> AxiomEnv
-                     -> Integer -> SubC c
-                     -> IO (SubC c)
-instantiateAxioms _ _ _ _ aenv sid sub
-  | not (M.lookupDefault False sid (aenvExpand aenv))
-  = return sub
-instantiateAxioms cfg ctx bds fenv aenv sid sub
-  = flip strengthenLhs sub . pAnd . (is0 ++) .
-    (if arithmeticAxioms cfg then (is ++) else id) <$>
-    if rewriteAxioms cfg then evalEqs else return []
-  where
-    is0              = eqBody <$> L.filter (null . eqArgs) eqs
-    is               = instances maxNumber aenv initOccurences
-    evalEqs          =
-       map (uncurry (PAtom Eq)) .
-       filter (uncurry (/=)) <$>
-       evaluate cfg ctx ((vv Nothing, slhs sub):binds) fenv aenv initExpressions
-    initExpressions  = expr (slhs sub) : expr (srhs sub) : (expr <$> binds)
-    binds            = envCs bds (senv sub)
-    initOccurences   = concatMap (makeInitOccurences as eqs) initExpressions
-
-    eqs = aenvEqs aenv
-
-    -- fuel calculated and used only by `instances` arith rewrite method
-    fuelNumber = M.lookupDefault 0 sid (aenvFuel aenv)
-    as         = (,fuelNumber) . eqName <$> filter (not . null . eqArgs) eqs
-    maxNumber  = (length (aenvSyms aenv) * length initOccurences) ^ fuelNumber
-
-
-------------------------------
--- Knowledge (SMT Interaction)
-------------------------------
--- AT:@TODO: knSels and knEqs should reall just be the same thing. In this way,
--- we should also unify knSims and knAms, as well as their analogues in AxiomEnv
-data Knowledge
-  = KN { knSels    :: ![(Expr, Expr)]
-       , knEqs     :: ![(Expr, Expr)]
-       , knSims    :: ![Rewrite]
-       , knAms     :: ![Equation]
-       , knContext :: IO Context
-       , knPreds   :: !([(Symbol, Sort)] -> Expr -> Context -> IO Bool)
-       , knLams    :: [(Symbol, Sort)]
-       }
-
-emptyKnowledge :: IO Context -> Knowledge
-emptyKnowledge cxt = KN [] [] [] [] cxt (\_ _ _ -> return False) []
-
-lookupKnowledge :: Knowledge -> Expr -> Maybe Expr
-lookupKnowledge γ e
-  -- Zero argument axioms like `mempty = N`
-  | Just e' <- L.lookup e (knEqs γ)
-  = Just e'
-  | Just e' <- L.lookup e (knSels γ)
-  = Just e'
-  | otherwise
-  = Nothing
-
-isValid :: Knowledge -> Expr -> IO Bool
-isValid γ b = knPreds γ (knLams γ) b =<< knContext γ
-
-makeKnowledge :: Config -> Context -> AxiomEnv -> SEnv Sort
-                 -> [(Symbol, SortedReft)]
-                 -> ([(Expr, Expr)], Knowledge)
-makeKnowledge cfg ctx aenv fenv es = (simpleEqs,) $ (emptyKnowledge context)
-                                     { knSels   = sels
-                                     , knEqs    = eqs
-                                     , knSims   = aenvSimpl aenv
-                                     , knAms    = aenvEqs aenv
-                                     , knPreds  = \bs e c -> askSMT c bs e
-                                     }
-  where
-    (xv, sv) = (vv Nothing, sr_sort $ snd $ head es)
-    fbinds = toListSEnv fenv ++ [(x, s) | (x, RR s _) <- es]
-    senv = fromListSEnv fbinds
-
-    context :: IO Context
-    context = do
-      smtPop ctx
-      smtPush ctx
-      smtDecls ctx $ L.nub [(x, toSMT [] s) | (x, s) <- fbinds
-                                            , not (M.member x FT.theorySymbols)]
-      smtAssert ctx (pAnd ([toSMT [] (PAtom Eq e1 e2) | (e1, e2) <- simpleEqs]
-                           ++ filter (null.kvars) ((toSMT [] . expr) <$> es)
-                          ))
-      return ctx
-
-    -- This creates the rewrite rule e1 -> e2
-    -- when should I apply it?
-    -- 1. when e2 is a data con and can lead to further reductions
-    -- 2. when size e2 < size e1
-    -- @TODO: Can this be generalized?
-    atms = splitPAnd =<< (expr <$> filter isProof es)
-    simpleEqs = makeSimplifications (aenvSimpl aenv) =<<
-                L.nub (catMaybes [getDCEquality e1 e2 | PAtom Eq e1 e2 <- atms])
-    sels = (go . expr) =<< es
-    go e = let es   = splitPAnd e
-               su   = mkSubst [(x, EVar y)  | PAtom Eq (EVar x) (EVar y) <- es ]
-               sels = [(EApp (EVar s) x, e) | PAtom Eq (EApp (EVar s) x) e <- es
-                                            , isSelector s ]
-           in L.nub (sels ++ subst su sels)
-
-    eqs = [(EVar x, ex) | Equ a _ bd <- filter (null . eqArgs) $ aenvEqs aenv
-                        , PAtom Eq (EVar x) ex <- splitPAnd bd
-                        , x == a
-                        -- AT: no test needs this
-                        --, EVar x /= ex
-                        ]
-
-    toSMT xs = defuncAny cfg (insertSEnv xv sv senv) .
-               elaborate "symbolic evaluation"
-               (foldl (\env (x,s) -> insertSEnv x s (deleteSEnv x env))
-                      (insertSEnv xv sv senv)
-                      xs)
-
-    -- AT: Non-obvious needed invariant: askSMT True is always the
-    -- totality-effecting one
-    askSMT :: Context -> [(Symbol, Sort)] -> Expr -> IO Bool
-    askSMT cxt xss e
-      | isTautoPred  e = return True
-      | isContraPred e = return False
-      | null (kvars e) = do
-          smtPush cxt
-          b <- checkValid' cxt [] PTrue (toSMT xss e)
-          smtPop cxt
-          return b
-      | otherwise      = return False
-
-    -- TODO: Stringy hacks
-    isSelector :: Symbol -> Bool
-    isSelector  = L.isPrefixOf "select" . symbolString
-    isProof (_, RR s _) =  showpp s == "Tuple"
-
-
-makeSimplifications :: [Rewrite] -> (Symbol, [Expr], Expr) -> [(Expr, Expr)]
-makeSimplifications sis (dc, es, e)
- = go =<< sis
- where
-   go (SMeasure f dc' xs bd)
-     | dc == dc', length xs == length es
-     = [(EApp (EVar f) e, subst (mkSubst $ zip xs es) bd)]
-   go _
-     = []
-
-getDCEquality :: Expr -> Expr -> Maybe (Symbol, [Expr], Expr)
-getDCEquality e1 e2
-    | Just dc1 <- f1
-    , Just dc2 <- f2
-    = if dc1 == dc2
-         then Nothing
-         else error ("isDCEquality on" ++ showpp e1 ++ "\n" ++ showpp e2)
-    | Just dc1 <- f1
-    = Just (dc1, es1, e2)
-    | Just dc2 <- f2
-    = Just (dc2, es2, e1)
-    | otherwise
-    = Nothing
-  where
-    (f1, es1) = mapFst getDC $ splitEApp e1
-    (f2, es2) = mapFst getDC $ splitEApp e2
-
-    -- TODO: Stringy hacks
-    getDC (EVar x)
-      = if isUpper $ head $ symbolString $ dropModuleNames x
-           then Just x
-           else Nothing
-    getDC _
-      = Nothing
-
-    dropModuleNames = mungeNames (symbol . last) "."
-
-    mungeNames _ _ ""  = ""
-    mungeNames f d s'@(symbolText -> s)
-      | s' == tupConName = tupConName
-      | otherwise        = f $ T.splitOn d $ stripParens s
-
-    stripParens t = fromMaybe t ((T.stripPrefix "(" >=> T.stripSuffix ")") t)
-
-splitPAnd :: Expr -> [Expr]
-splitPAnd (PAnd es) = concatMap splitPAnd es
-splitPAnd e         = [e]
-
-------------------------
--- Creating Measure Info
-------------------------
--- AT@TODO do this for all reflected functions, not just DataCons
-
--- Insert measure info for every constructor
--- that appears in the expression e
--- required by PMEquivalence.mconcatChunk
-assertSelectors :: Knowledge -> Expr -> EvalST ()
-assertSelectors γ e = do
-   EvalEnv _ _ evaenv <- get
-   let sims = aenvSimpl evaenv
-   _ <- foldlM (\_ s -> mapMExpr (go s) e) e sims
-   return ()
-  where
-    go :: Rewrite -> Expr -> EvalST Expr
-    go (SMeasure f dc xs bd) e@(EApp _ _)
-      | (EVar dc', es) <- splitEApp e
-      , dc == dc', length xs == length es
-      = addSMTEquality γ (EApp (EVar f) e) (subst (mkSubst $ zip xs es) bd)
-      >> return e
-    go _ e
-      = return e
-
-addSMTEquality :: Knowledge -> Expr -> Expr -> EvalST (IO ())
-addSMTEquality γ e1 e2 =
-  return $ do ctx <- knContext γ
-              smtAssert ctx (PAtom Eq (makeLam γ e1) (makeLam γ e2))
-
--------------------------------
--- Symbolic Evaluation with SMT
--------------------------------
-data EvalEnv = EvalEnv { evId        :: Int
-                       , evSequence  :: [(Expr,Expr)]
-                       , _evAEnv     :: AxiomEnv
-                       }
-
-type EvalST a = StateT EvalEnv IO a
-
-evaluate :: Config -> Context -> [(Symbol, SortedReft)] -> SEnv Sort -> AxiomEnv
-            -> [Expr]
-            -> IO [(Expr, Expr)]
-evaluate cfg ctx facts fenv aenv einit
-  = (eqs ++) <$>
-    (fmap join . sequence)
-    (evalOne <$> L.nub (grepTopApps =<< einit))
-  where
-    (eqs, γ) = makeKnowledge cfg ctx aenv fenv facts
-    initEvalSt = EvalEnv 0 [] aenv
-    -- This adds all intermediate unfoldings into the assumptions
-    -- no test needs it
-    -- TODO: add a flag to enable it
-    evalOne :: Expr -> IO [(Expr, Expr)]
-    evalOne e = do
-      (e', st) <- runStateT (eval γ e) initEvalSt
-      if e' == e then return [] else return ((e, e'):evSequence st)
-
-grepTopApps :: Expr -> [Expr]
-grepTopApps (PAnd es) = concatMap grepTopApps es
-grepTopApps (PAtom _ e1 e2) = grepTopApps e1 ++ grepTopApps e2
-grepTopApps e@(EApp _ _) = [e]
-grepTopApps _ = []
--- POr    ![Expr]
--- PNot   !Expr
--- PImp   !Expr !Expr
--- PIff   !Expr !Expr
-
--- AT: I think makeLam is the adjoint of splitEApp?
-makeLam :: Knowledge -> Expr -> Expr
-makeLam γ e = foldl (flip ELam) e (knLams γ)
-
-eval :: Knowledge -> Expr -> EvalST Expr
-eval γ e | Just e' <- lookupKnowledge γ e
-   = (e, "Knowledge") ~> e'
-eval γ (ELam (x,s) e)
-  = do let x' = makeLamArg s (1+ length (knLams γ))
-       e'    <- eval γ{knLams = (x',s):knLams γ} (subst1 e (x, EVar x'))
-       return $ ELam (x,s) $ subst1 e' (x', EVar x)
-eval γ e@(EIte b e1 e2)
-  = do b' <- eval γ b
-       evalIte γ e b' e1 e2
-eval γ e@(EApp _ _)
-  = evalArgs γ e >>= evalApp γ e
-eval γ (PAtom r e1 e2)
-  = PAtom r <$> eval γ e1 <*> eval γ e2
-eval γ (ENeg e)
-  = ENeg <$> eval γ e
-eval γ (EBin o e1 e2)
-  = EBin o <$> eval γ e1 <*> eval γ e2
-eval γ (ETApp e t)
-  = flip ETApp t <$> eval γ e
-eval γ (ETAbs e s)
-  = flip ETAbs s <$> eval γ e
-eval γ (PNot e)
-  = PNot <$> eval γ e
-eval γ (PImp e1 e2)
-  = PImp <$> eval γ e1 <*> eval γ e2
-eval γ (PIff e1 e2)
-  = PIff <$> eval γ e1 <*> eval γ e2
-eval _ e = return e
-
-evalArgs :: Knowledge -> Expr -> EvalST (Expr, [Expr])
-evalArgs γ = go []
-  where
-    go acc (EApp f e)
-      = do f' <- eval γ f
-           e' <- eval γ e
-           go (e':acc) f'
-    go acc e
-      = (,acc) <$> eval γ e
-
-evalApp :: Knowledge -> Expr -> (Expr, [Expr]) -> EvalST Expr
-evalApp γ e (EVar f, [ex])
-  | (EVar dc, es) <- splitEApp ex
-  , Just simp <- L.find (\simp -> (smName simp == f) && (smDC simp == dc))
-                        (knSims γ)
-  , length (smArgs simp) == length es
-  = do e'    <- eval γ $ η $ substPopIf (zip (smArgs simp) es) (smBody simp)
-       (e, "Rewrite -" ++ showpp f) ~> e'
-evalApp γ _ (EVar f, es)
-  | Just eq <- L.find ((==f) . eqName) (knAms γ)
-  , Just bd <- getEqBody eq
-  , length (eqArgs eq) == length es
-  , f `notElem` syms bd -- not recursive
-  = eval γ $ η $ substPopIf (zip (eqArgs eq) es) bd
-evalApp γ _e (EVar f, es)
-  | Just eq <- L.find ((==f) . eqName) (knAms γ)
-  , Just bd <- getEqBody eq
-  , length (eqArgs eq) == length es  --  recursive
-  = evalRecApplication γ (eApps (EVar f) es) $
-    subst (mkSubst $ zip (eqArgs eq) es) bd
-evalApp _ _ (f, es)
-  = return $ eApps f es
-
-substPopIf :: [(Symbol, Expr)] -> Expr -> Expr
-substPopIf xes e = η $ foldl go e xes
-  where
-    go e (x, EIte b e1 e2) = EIte b (subst1 e (x, e1)) (subst1 e (x, e2))
-    go e (x, ex)           = subst1 e (x, ex)
-
-evalRecApplication :: Knowledge ->  Expr -> Expr -> EvalST Expr
-evalRecApplication γ e (EIte b e1 e2)
-  = do b' <- eval γ b
-       b'' <- liftIO (isValid γ b')
-       if b''
-          then addApplicationEq γ e e1 >>
-               assertSelectors γ e1 >>
-               eval γ e1 >>=
-               ((e, "App") ~>)
-          else do b''' <- liftIO (isValid γ (PNot b'))
-                  if b'''
-                     then addApplicationEq γ e e2 >>
-                          assertSelectors γ e2 >>
-                          eval γ e2 >>=
-                          ((e, "App") ~>)
-                     else return e
-evalRecApplication _ _ e
-  = return e
-
-addApplicationEq :: Knowledge -> Expr -> Expr -> EvalST ()
-addApplicationEq γ e1 e2 =
-  modify (\st -> st{evSequence = (makeLam γ e1, makeLam γ e2):evSequence st})
-
-evalIte :: Knowledge -> Expr -> Expr -> Expr -> Expr -> EvalST Expr
-evalIte γ e b e1 e2 = join $
-                      evalIte' γ e b e1 e2 <$>
-                      liftIO (isValid γ b) <*>
-                      liftIO (isValid γ (PNot b))
-
-evalIte' :: Knowledge -> Expr -> Expr -> Expr -> Expr -> Bool -> Bool
-            -> EvalST Expr
-evalIte' γ e _ e1 _ b _
-  | b
-  = do e' <- eval γ e1
-       (e, "If-True of:" ++ showpp b)  ~> e'
-evalIte' γ e _ _ e2 _ b'
-  | b'
-  = do e' <- eval γ e2
-       (e, "If-False") ~> e'
-evalIte' γ _ b e1 e2 _ _
-  = do e1' <- eval γ e1
-       e2' <- eval γ e2
-       return $ EIte b e1' e2'
-
--- normalization required by ApplicativeMaybe.composition
----------------------------------------------------------
-η :: Expr -> Expr
-η = snd . go
-  where
-    go (EIte b t f)
-      | isTautoPred t && isFalse f
-      = (True, b)
-    go (EIte b e1 e2)
-      = let (fb, b') = go b
-            (f1, e1') = go e1
-            (f2, e2') = go e2
-            in
-        (fb || f1 || f2, EIte b' e1' e2')
-    go (EApp (EIte b f1 f2) e)
-      = (True, EIte b (snd $ go $ EApp f1 e) (snd $ go $ EApp f2 e))
-    go (EApp f (EIte b e1 e2))
-      = (True, EIte b (snd $ go $ EApp f e1) (snd $ go $ EApp f e2))
-    go (EApp e1 e2)
-      = let (f1, e1') = go e1
-            (f2, e2') = go e2
-            in
-        if f1 || f2
-              then go $ EApp e1' e2'
-              else (False, EApp e1' e2')
-    go e = (False, e)
-
-
--- Fuel
--------
-type Fuel = Int
-type FuelMap = [(Symbol, Fuel)]
-
-goodFuelMap :: FuelMap -> Bool
-goodFuelMap = any ((>0) . snd)
-
-hasFuel :: FuelMap -> Symbol -> Bool
-hasFuel fm x = maybe True (\x -> 0 < x) (L.lookup x fm)
-
-makeFuelMap :: (Fuel -> Fuel) -> FuelMap -> Symbol -> FuelMap
-makeFuelMap f ((x, fx):fs) y
-  | x == y    = (x, f fx) : fs
-  | otherwise = (x, fx)   : makeFuelMap f fs y
-makeFuelMap _ _ _ = error "makeFuelMap"
-
-----------------------------
--- Naive evaluation strategy
-----------------------------
-data Occurence = Occ {_ofun :: Symbol, _oargs :: [Expr], ofuel :: FuelMap}
- deriving (Show)
-
-instances :: Int -> AxiomEnv -> [Occurence] -> [Expr]
-instances maxIs aenv !occs
-  = instancesLoop aenv maxIs eqs occs -- (eqBody <$> eqsZero) ++ is
-  where
-    eqs = filter (not . null . eqArgs) (aenvEqs  aenv)
-
--- Naively: Instantiation happens arbitrary times (in recursive functions it
--- diverges)
--- Step 1 [done] : Hack it so that instantiation of axiom A happens from an
--- occurences and its subsequent instances <= FUEL times
--- How? Hack expressions to contatin fuel info within eg Cst Step 2: Compute
--- fuel based on Ranjit's algorithm
-
-instancesLoop :: AxiomEnv ->  Int -> [Equation] -> [Occurence] -> [Expr]
-instancesLoop _ _ eqs = go 0 []
-  where
-    go :: Int -> [Expr] -> [Occurence] -> [Expr]
-    go !i acc occs
-       = let is      = concatMap (unfold eqs) occs
-             newIs   = findNewEqs is acc
-             newOccs = concatMap (grepOccurences eqs) newIs
-             in
-         if null newIs
-            then acc
-            else go (i + length newIs) ((fst <$> newIs) ++ acc) newOccs
-
-findNewEqs :: [(Expr, FuelMap)] -> [Expr] -> [(Expr, FuelMap)]
-findNewEqs [] _ = []
-findNewEqs ((e, f):xss) es
-  | e `elem` es = findNewEqs xss es
-  | otherwise   = (e,f):findNewEqs xss es
-
-makeInitOccurences :: [(Symbol, Fuel)] -> [Equation] -> Expr -> [Occurence]
-makeInitOccurences xs eqs e
-  = [Occ x es xs | (EVar x, es) <- splitEApp <$> eapps e
-                 , Equ x' xs' _ <- eqs, x == x'
-                 , length xs' == length es]
-
-grepOccurences :: [Equation] -> (Expr, FuelMap) -> [Occurence]
-grepOccurences eqs (e, fs)
-  = filter (goodFuelMap . ofuel)
-           [Occ x es fs | (EVar x, es) <- splitEApp <$> eapps e
-                        , Equ x' xs' _ <- eqs, x == x'
-                        , length xs' == length es]
-
-unfold :: [Equation] -> Occurence -> [(Expr, FuelMap)]
-unfold eqs (Occ x es fs)
-  = catMaybes [if hasFuel fs x
-                  then Just (subst (mkSubst $ zip  xs' es) e
-                            , makeFuelMap (\x -> x-1) fs x)
-                  else Nothing
-              | Equ x' xs' e <- eqs
-              , x == x'
-              , length xs' == length es]
-
-instance Expression (Symbol, SortedReft) where
-  expr (x, RR _ (Reft (v, r))) = subst1 (expr r) (v, EVar x)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Monad.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Monad.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Monad.hs
+++ /dev/null
@@ -1,307 +0,0 @@
-{-# LANGUAGE DeriveGeneric     #-}
-{-# LANGUAGE OverloadedStrings #-}
-
--- | This is a wrapper around IO that permits SMT queries
-
-module Language.Fixpoint.Solver.Monad
-       ( -- * Type
-         SolveM
-
-         -- * Execution
-       , runSolverM
-
-         -- * Get Binds
-       , getBinds
-
-         -- * SMT Query
-       , filterRequired
-       , filterValid
-       , filterValidGradual
-       , checkSat
-       , smtEnablembqi
-
-         -- * Debug
-       , Stats
-       , tickIter
-       , stats
-       , numIter
-       )
-       where
-
-import           Control.DeepSeq
-import           GHC.Generics
-import           Language.Fixpoint.Utils.Progress
-import           Language.Fixpoint.Misc    (mapSnd, groupList)
-import qualified Language.Fixpoint.Types.Config  as C
-import           Language.Fixpoint.Types.Config  (Config)
-import qualified Language.Fixpoint.Types   as F
-import qualified Language.Fixpoint.Types.Solutions as F
-import           Language.Fixpoint.Types   (pprint)
--- import qualified Language.Fixpoint.Types.Errors  as E
-import qualified Language.Fixpoint.Smt.Theories as Thy
-import           Language.Fixpoint.Smt.Types (tsInterp)
-import           Language.Fixpoint.Smt.Serialize ()
-import           Language.Fixpoint.Types.PrettyPrint ()
-import           Language.Fixpoint.Smt.Interface
-import           Language.Fixpoint.Solver.Sanitize
-import           Language.Fixpoint.SortCheck
-import           Language.Fixpoint.Graph.Types (SolverInfo (..))
--- import           Language.Fixpoint.Solver.Solution
--- import           Data.Maybe           (catMaybes)
-import           Data.List            (partition)
--- import           Data.Char            (isUpper)
-import           Text.PrettyPrint.HughesPJ (text)
-import           Control.Monad.State.Strict
-import qualified Data.HashMap.Strict as M
-import           Data.Maybe (catMaybes)
-import           Control.Exception.Base (bracket)
-
---------------------------------------------------------------------------------
--- | Solver Monadic API --------------------------------------------------------
---------------------------------------------------------------------------------
-
-type SolveM = StateT SolverState IO
-
-data SolverState = SS { ssCtx     :: !Context          -- ^ SMT Solver Context
-                      , ssBinds   :: !F.SolEnv         -- ^ All variables and types
-                      , ssStats   :: !Stats            -- ^ Solver Statistics
-                      }
-
-data Stats = Stats { numCstr :: !Int -- ^ # Horn Constraints
-                   , numIter :: !Int -- ^ # Refine Iterations
-                   , numBrkt :: !Int -- ^ # smtBracket    calls (push/pop)
-                   , numChck :: !Int -- ^ # smtCheckUnsat calls
-                   , numVald :: !Int -- ^ # times SMT said RHS Valid
-                   } deriving (Show, Generic)
-
-instance NFData Stats
-
-stats0    :: F.GInfo c b -> Stats
-stats0 fi = Stats nCs 0 0 0 0
-  where
-    nCs   = M.size $ F.cm fi
-
-
-instance F.PTable Stats where
-  ptable s = F.DocTable [ (text "# Constraints"         , pprint (numCstr s))
-                        , (text "# Refine Iterations"   , pprint (numIter s))
-                        , (text "# SMT Brackets"        , pprint (numBrkt s))
-                        , (text "# SMT Queries (Valid)" , pprint (numVald s))
-                        , (text "# SMT Queries (Total)" , pprint (numChck s))
-                        ]
-
---------------------------------------------------------------------------------
-runSolverM :: Config -> SolverInfo b c -> Int -> SolveM a -> IO a
---------------------------------------------------------------------------------
-runSolverM cfg sI _ act =
-  bracket acquire release $ \ctx -> do
-    res <- runStateT act' (s0 ctx)
-    smtWrite ctx "(exit)"
-    return $ fst res
-  where
-    s0 ctx   = SS ctx be (stats0 fi)
-    act'     = declare initEnv lts {- ess -} >> assumesAxioms (F.asserts fi) >> act
-    release  = cleanupContext
-    acquire  = makeContextWithSEnv cfg file initEnv
-    initEnv  = symbolEnv   cfg fi
-    lts      = F.toListSEnv (F.dLits fi)
-    -- ess   = distinctLiterals fi
-    be       = F.SolEnv (F.bs fi)
-    file     = C.srcFile cfg
-    -- only linear arithmentic when: linear flag is on or solver /= Z3
-    -- lar     = linear cfg || Z3 /= solver cfg
-    fi       = (siQuery sI) {F.hoInfo = F.HOI (C.allowHO cfg) (C.allowHOqs cfg)}
-
-
-
---------------------------------------------------------------------------------
-getBinds :: SolveM F.SolEnv
---------------------------------------------------------------------------------
-getBinds = ssBinds <$> get
-
---------------------------------------------------------------------------------
-getIter :: SolveM Int
---------------------------------------------------------------------------------
-getIter = numIter . ssStats <$> get
-
---------------------------------------------------------------------------------
-incIter, incBrkt :: SolveM ()
---------------------------------------------------------------------------------
-incIter   = modifyStats $ \s -> s {numIter = 1 + numIter s}
-incBrkt   = modifyStats $ \s -> s {numBrkt = 1 + numBrkt s}
-
---------------------------------------------------------------------------------
-incChck, incVald :: Int -> SolveM ()
---------------------------------------------------------------------------------
-incChck n = modifyStats $ \s -> s {numChck = n + numChck s}
-incVald n = modifyStats $ \s -> s {numVald = n + numVald s}
-
-withContext :: (Context -> IO a) -> SolveM a
-withContext k = (lift . k) =<< getContext
-
-getContext :: SolveM Context
-getContext = ssCtx <$> get
-
-modifyStats :: (Stats -> Stats) -> SolveM ()
-modifyStats f = modify $ \s -> s { ssStats = f (ssStats s) }
-
---------------------------------------------------------------------------------
--- | SMT Interface -------------------------------------------------------------
---------------------------------------------------------------------------------
--- | `filterRequired [(x1, p1),...,(xn, pn)] q` returns a minimal list [xi] s.t.
---   /\ [pi] => q
---------------------------------------------------------------------------------
-filterRequired :: F.Cand a -> F.Expr -> SolveM [a]
---------------------------------------------------------------------------------
-filterRequired = error "TBD:filterRequired"
-
-{-
-(set-option :produce-unsat-cores true)
-(declare-fun x () Int)
-(declare-fun y () Int)
-(declare-fun z () Int)
-
-; Z3 will only track assertions that are named.
-
-(assert (< 0 x))
-(assert (! (< 0 y)       :named b2))
-(assert (! (< x 10)      :named b3))
-(assert (! (< y 10)      :named b4))
-(assert (! (< (+ x y) 0) :named bR))
-(check-sat)
-(get-unsat-core)
-
-> unsat (b2 bR)
--}
-
---------------------------------------------------------------------------------
--- | `filterValid p [(x1, q1),...,(xn, qn)]` returns the list `[ xi | p => qi]`
---------------------------------------------------------------------------------
-filterValid :: F.Expr -> F.Cand a -> SolveM [a]
---------------------------------------------------------------------------------
-filterValid p qs = do
-  qs' <- withContext $ \me ->
-           smtBracket me "filterValidLHS" $
-             filterValid_ p qs me
-  -- stats
-  incBrkt
-  incChck (length qs)
-  incVald (length qs')
-  return qs'
-
-filterValid_ :: F.Expr -> F.Cand a -> Context -> IO [a]
-filterValid_ p qs me = catMaybes <$> do
-  smtAssert me p
-  forM qs $ \(q, x) ->
-    smtBracket me "filterValidRHS" $ do
-      smtAssert me (F.PNot q)
-      valid <- smtCheckUnsat me
-      return $ if valid then Just x else Nothing
-
-
-
---------------------------------------------------------------------------------
--- | `filterValidGradual ps [(x1, q1),...,(xn, qn)]` returns the list `[ xi | p => qi]`
--- | for some p in the list ps 
---------------------------------------------------------------------------------
-filterValidGradual :: [F.Expr] -> F.Cand a -> SolveM [a]
---------------------------------------------------------------------------------
-filterValidGradual p qs = do
-  qs' <- withContext $ \me ->
-           smtBracket me "filterValidGradualLHS" $
-             filterValidGradual_ p qs me
-  -- stats
-  incBrkt
-  incChck (length qs)
-  incVald (length qs')
-  return qs'
-
-filterValidGradual_ :: [F.Expr] -> F.Cand a -> Context -> IO [a]
-filterValidGradual_ ps qs me 
-  = (map snd . fst) <$> foldM partitionCandidates ([], qs) ps
-  where
-    partitionCandidates :: (F.Cand a, F.Cand a) -> F.Expr -> IO (F.Cand a, F.Cand a)
-    partitionCandidates (ok, candidates) p = do 
-      (valids', invalids')  <- partition snd <$> filterValidOne_ p candidates me 
-      let (valids, invalids) = (fst <$> valids', fst <$> invalids')
-      return (ok ++ valids, invalids)
-
-filterValidOne_ :: F.Expr -> F.Cand a -> Context -> IO [((F.Expr, a), Bool)]
-filterValidOne_ p qs me = do
-  smtAssert me p
-  forM qs $ \(q, x) ->
-    smtBracket me "filterValidRHS" $ do
-      smtAssert me (F.PNot q)
-      valid <- smtCheckUnsat me
-      return $ ((q, x), valid)
-
-smtEnablembqi :: SolveM ()
-smtEnablembqi
-  = withContext $ \me ->
-      smtWrite me "(set-option :smt.mbqi true)"
-
---------------------------------------------------------------------------------
-checkSat :: F.Expr -> SolveM  Bool
---------------------------------------------------------------------------------
-checkSat p
-  = withContext $ \me ->
-      smtBracket me "checkSat" $
-        smtCheckSat me p
-
---------------------------------------------------------------------------------
-declare :: F.SEnv F.Sort -> [(F.Symbol, F.Sort)] -> SolveM ()
---------------------------------------------------------------------------------
-declare env lts = withContext $ \me -> do
-  forM_ thyXTs $ uncurry $ smtDecl     me
-  forM_ qryXTs $ uncurry $ smtDecl     me
-  forM_ ess    $           smtDistinct me
-  forM_ axs    $           smtAssert   me
-  return ()
-  where
-    ess        = distinctLiterals  lts
-    axs        = Thy.axiomLiterals lts
-    thyXTs     =               filter (isKind 1) xts
-    qryXTs     = mapSnd tx <$> filter (isKind 2) xts
-    isKind n   = (n ==)  . symKind . fst
-    xts        = F.toListSEnv           env
-    tx         = elaborate    "declare" env
-
--- | symKind returns {0, 1, 2} where:
---   0 = Theory-Definition,
---   1 = Theory-Declaration,
---   2 = Query-Binder
-
-symKind :: F.Symbol -> Int
-symKind x = case M.lookup x Thy.theorySymbols of
-              Just t  -> if tsInterp t then 0 else 1
-              Nothing -> 2
-
-assumesAxioms :: [F.Triggered F.Expr] -> SolveM ()
-assumesAxioms es = withContext $ \me -> forM_  es $ smtAssertAxiom me
-
--- assumes :: [F.Expr] -> SolveM ()
--- assumes es = withContext $ \me -> forM_  es $ smtAssert me
-
--- | `distinctLiterals` is used solely to determine the set of literals
---   (of each sort) that are *disequal* to each other, e.g. EQ, LT, GT,
---   or string literals "cat", "dog", "mouse". These should only include
---   non-function sorted values.
-distinctLiterals :: [(F.Symbol, F.Sort)] -> [[F.Expr]]
-distinctLiterals xts = [ es | (_, es) <- tess ]
-   where
-    tess             = groupList [(t, F.expr x) | (x, t) <- xts, notFun t]
-    notFun           = not . F.isFunctionSortedReft . (`F.RR` F.trueReft)
-    -- _notStr          = not . (F.strSort ==) . F.sr_sort . (`F.RR` F.trueReft)
-
----------------------------------------------------------------------------
-stats :: SolveM Stats
----------------------------------------------------------------------------
-stats = ssStats <$> get
-
----------------------------------------------------------------------------
-tickIter :: Bool -> SolveM Int
----------------------------------------------------------------------------
-tickIter newScc = progIter newScc >> incIter >> getIter
-
-progIter :: Bool -> SolveM ()
-progIter newScc = lift $ when newScc progressTick
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Sanitize.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Sanitize.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Sanitize.hs
+++ /dev/null
@@ -1,425 +0,0 @@
--- | Validate and Transform Constraints to Ensure various Invariants -------------------------
---   1. Each binder must be associated with a UNIQUE sort
-{-# LANGUAGE TupleSections     #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-module Language.Fixpoint.Solver.Sanitize
-  ( -- * Transform FInfo to enforce invariants
-    sanitize
-
-    -- * Sorts for each Symbol (move elsewhere)
-  , symbolEnv
-
-    -- * Remove substitutions K[x := e] where `x` is not in dom(K)
-  , dropDeadSubsts
-  ) where
-
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Visitor (symConsts, isConcC, isKvarC, mapKVars, mapKVarSubsts)
-import           Language.Fixpoint.SortCheck     (isFirstOrder)
-import qualified Language.Fixpoint.Misc                            as Misc
-import qualified Language.Fixpoint.Types                           as F
-import           Language.Fixpoint.Types.Config (Config, allowHO)
-import qualified Language.Fixpoint.Types.Errors                    as E
-import qualified Language.Fixpoint.Smt.Theories                    as Thy
-import           Language.Fixpoint.Graph (kvEdges, CVertex (..))
-import qualified Data.HashMap.Strict                               as M
-import qualified Data.HashSet                                      as S
-import qualified Data.List                                         as L
-import qualified Data.Text                                         as T
-import           Data.Maybe          (isNothing, mapMaybe)
-import           Control.Monad       ((>=>))
-import           Text.PrettyPrint.HughesPJ
-
-type SanitizeM a = Either E.Error a
-
---------------------------------------------------------------------------------
-sanitize :: F.SInfo a -> SanitizeM (F.SInfo a)
---------------------------------------------------------------------------------
-sanitize =    -- banIllScopedKvars
-             Misc.fM dropFuncSortedShadowedBinders
-         >=> Misc.fM sanitizeWfC
-         >=> Misc.fM replaceDeadKvars
-         >=> Misc.fM (dropDeadSubsts . restrictKVarDomain)
-         >=>         banMixedRhs
-         >=>         banQualifFreeVars
-         >=>         banConstraintFreeVars
-         >=> Misc.fM addLiterals
-
-
---------------------------------------------------------------------------------
--- | `addLiterals` traverses the constraints to find (string) literals that
---   are then added to the `dLits` field.
---------------------------------------------------------------------------------
-addLiterals :: F.SInfo a -> F.SInfo a
---------------------------------------------------------------------------------
-addLiterals si = si { F.dLits = F.unionSEnv (F.dLits si) lits'
-                    , F.gLits = F.unionSEnv (F.gLits si) lits'
-                    }
-  where
-    lits'      = M.fromList [ (F.symbol x, F.strSort) | x <- symConsts si ]
-
---------------------------------------------------------------------------------
--- | See issue liquid-fixpoint issue #230. This checks that whenever we have,
---      G1        |- K.su1
---      G2, K.su2 |- rhs
---   then
---      G1 \cap G2 \subseteq wenv(k)
---------------------------------------------------------------------------------
-_banIllScopedKvars :: F.SInfo a ->  SanitizeM (F.SInfo a)
---------------------------------------------------------------------------------
-_banIllScopedKvars si = Misc.applyNonNull (Right si) (Left . badKs) errs
-  where
-    errs              = concatMap (checkIllScope si kDs) ks
-    kDs               = kvarDefUses si
-    ks                = filter notKut $ M.keys (F.ws si)
-    notKut            = not . (`F.ksMember` F.kuts si)
-
-badKs :: [(F.KVar, F.SubcId, F.SubcId, F.IBindEnv)] -> F.Error
-badKs = E.catErrors . map E.errIllScopedKVar
-
-type KvConstrM = M.HashMap F.KVar [Integer]
-type KvDefs    = (KvConstrM, KvConstrM)
-
-checkIllScope :: F.SInfo a -> KvDefs -> F.KVar -> [(F.KVar, F.SubcId, F.SubcId, F.IBindEnv)]
-checkIllScope si (inM, outM) k = mapMaybe (uncurry (isIllScope si k)) ios
-  where
-    ios                        = [(i, o) | i <- ins, o <- outs, i /= o ]
-    ins                        = M.lookupDefault [] k inM
-    outs                       = M.lookupDefault [] k outM
-
-isIllScope :: F.SInfo a -> F.KVar -> F.SubcId -> F.SubcId -> Maybe (F.KVar, F.SubcId, F.SubcId, F.IBindEnv)
-isIllScope si k inI outI
-  | F.nullIBindEnv badXs = Nothing
-  | otherwise            = Just (k, inI, outI, badXs)
-  where
-    badXs                = F.diffIBindEnv commonXs kXs
-    kXs                  = {- F.tracepp ("kvarBinds " ++ show k) $ -} kvarBinds si k
-    commonXs             = F.intersectionIBindEnv inXs outXs
-    inXs                 = subcBinds si inI
-    outXs                = subcBinds si outI
-
-subcBinds :: F.SInfo a -> F.SubcId -> F.IBindEnv
-subcBinds si i = F._cenv $ F.cm si M.! i
-
-kvarBinds :: F.SInfo a -> F.KVar -> F.IBindEnv
-kvarBinds si = F.wenv . (F.ws si M.!)
-
-kvarDefUses :: F.SInfo a -> KvDefs
-kvarDefUses si = (Misc.group ins, Misc.group outs)
-  where
-    es         = kvEdges si
-    outs       = [(k, o) | (KVar k, Cstr o) <- es ]
-    ins        = [(k, i) | (Cstr i, KVar k) <- es ]
-
---------------------------------------------------------------------------------
--- | `dropDeadSubsts` removes dead `K[x := e]` where `x` NOT in the domain of K.
---------------------------------------------------------------------------------
-dropDeadSubsts :: F.SInfo a -> F.SInfo a
-dropDeadSubsts si = mapKVarSubsts (F.filterSubst . f) si
-  where
-    kvsM          = M.mapWithKey (\k _ -> kvDom k) (F.ws si)
-    kvDom         = S.fromList . F.kvarDomain si
-    f k x _       = S.member x (M.lookupDefault mempty k kvsM)
-
---------------------------------------------------------------------------------
--- | `restrictKVarDomain` updates the kvar-domains in the wf constraints
---   to a subset of the original binders, where we DELETE the parameters
---   `x` which appear in substitutions of the form `K[x := y]` where `y`
---   is not in the env.
---------------------------------------------------------------------------------
-restrictKVarDomain :: F.SInfo a -> F.SInfo a
-restrictKVarDomain si = si { F.ws = M.mapWithKey (restrictWf kvm) (F.ws si) }
-  where
-    kvm               = safeKvarEnv si
-
--- | `restrictWf kve k w` restricts the env of `w` to the parameters in `kve k`.
-restrictWf :: KvDom -> F.KVar -> F.WfC a -> F.WfC a
-restrictWf kve k w = w { F.wenv = F.filterIBindEnv f (F.wenv w) }
-  where
-    f i            = S.member i kis
-    kis            = S.fromList [ i | (_, i) <- F.toListSEnv kEnv ]
-    kEnv           = M.lookupDefault mempty k kve
-
--- | `safeKvarEnv` computes the "real" domain of each kvar, which is
---   a SUBSET of the input domain, in which we KILL the parameters
---   `x` which appear in substitutions of the form `K[x := y]`
---   where `y` is not in the env.
-
-type KvDom     = M.HashMap F.KVar (F.SEnv F.BindId)
-type KvBads    = M.HashMap F.KVar [F.Symbol]
-
-safeKvarEnv :: F.SInfo a -> KvDom
-safeKvarEnv si = L.foldl' (dropKvarEnv si) env0 cs
-  where
-    cs         = M.elems  (F.cm si)
-    env0       = initKvarEnv si
-
-dropKvarEnv :: F.SInfo a -> KvDom -> F.SimpC a -> KvDom
-dropKvarEnv si kve c = M.mapWithKey (dropBadParams kBads) kve
-  where
-    kBads            = badParams si c
-
-dropBadParams :: KvBads -> F.KVar -> F.SEnv F.BindId -> F.SEnv F.BindId
-dropBadParams kBads k kEnv = L.foldl' (flip F.deleteSEnv) kEnv xs
-  where
-    xs                     = M.lookupDefault mempty k kBads
-
-badParams :: F.SInfo a -> F.SimpC a -> M.HashMap F.KVar [F.Symbol]
-badParams si c = Misc.group bads
-  where
-    bads       = [ (k, x) | (v, k, F.Su su) <- subcKSubs xsrs c
-                          , let vEnv = maybe sEnv (`S.insert` sEnv) v
-                          , (x, e)          <- M.toList su
-                          , badArg vEnv e
-                 ]
-    sEnv       = S.fromList (fst <$> xsrs)
-    xsrs       = F.envCs (F.bs si) (F.senv c)
-
-badArg :: S.HashSet F.Symbol -> F.Expr -> Bool
-badArg sEnv (F.EVar y) = not (y `S.member` sEnv)
-badArg _    _          = True
-
-type KSub = (Maybe F.Symbol, F.KVar, F.Subst)
-
-subcKSubs :: [(F.Symbol, F.SortedReft)] -> F.SimpC a -> [KSub]
-subcKSubs xsrs c = rhs ++ lhs
-  where
-    lhs          = [ (Just v, k, su) | (_, sr) <- xsrs
-                                     , let rs   = F.reftConjuncts (F.sr_reft sr)
-                                     , F.Reft (v, F.PKVar k su) <- rs
-                   ]
-    rhs          = [(Nothing, k, su) | F.PKVar k su <- [F.crhs c]]
-
-
-initKvarEnv :: F.SInfo a -> KvDom
-initKvarEnv si = initEnv si <$> F.ws si
-
-initEnv :: F.SInfo a -> F.WfC a -> F.SEnv F.BindId
-initEnv si w = F.fromListSEnv [ (bind i, i) | i <- is ]
-  where
-    is       = F.elemsIBindEnv $ F.wenv w
-    bind i   = fst (F.lookupBindEnv i be)
-    be       = F.bs si
-
---------------------------------------------------------------------------------
--- | check that no constraint has free variables (ignores kvars)
---------------------------------------------------------------------------------
-banConstraintFreeVars :: F.SInfo a -> SanitizeM (F.SInfo a)
-banConstraintFreeVars fi0 = Misc.applyNonNull (Right fi0) (Left . badCs) bads
-  where
-    fi = mapKVars (const $ Just F.PTrue) fi0
-    bads = [(c, fs) | c <- M.elems $ F.cm fi, Just fs <- [cNoFreeVars fi c]]
-
-cNoFreeVars :: F.SInfo a -> F.SimpC a -> Maybe [F.Symbol]
-cNoFreeVars fi c = if S.null fv then Nothing else Just (S.toList fv)
-  where
-    be   = F.bs fi
-    lits = fst <$> F.toListSEnv (F.gLits fi)
-    ids  = F.elemsIBindEnv $ F.senv c
-    cDom = [fst $ F.lookupBindEnv i be | i <- ids]
-    cRng = concat [S.toList . F.reftFreeVars . F.sr_reft . snd $ F.lookupBindEnv i be | i <- ids]
-    fv   = cRng `nubDiff` (lits ++ cDom ++ F.prims)
-
-badCs :: Misc.ListNE (F.SimpC a, [F.Symbol]) -> E.Error
-badCs = E.catErrors . map (E.errFreeVarInConstraint . Misc.mapFst F.subcId)
-
-
---------------------------------------------------------------------------------
--- | check that no qualifier has free variables
---------------------------------------------------------------------------------
-banQualifFreeVars :: F.SInfo a -> SanitizeM (F.SInfo a)
---------------------------------------------------------------------------------
-banQualifFreeVars fi = Misc.applyNonNull (Right fi) (Left . badQuals) bads
-  where
-    bads   = [ (q, xs) | q <- F.quals fi, let xs = free q, not (null xs) ]
-    lits   = fst <$> F.toListSEnv (F.gLits fi)
-    free q = S.toList $ F.syms (F.qBody q) `nubDiff` (lits ++ F.prims ++ F.syms (fst <$> F.qParams q))
-
-
-badQuals     :: Misc.ListNE (F.Qualifier, Misc.ListNE F.Symbol) -> E.Error
-badQuals bqs = E.catErrors [ E.errFreeVarInQual q xs | (q, xs) <- bqs]
-
--- Null if first is a subset of second
-nubDiff :: [F.Symbol] -> [F.Symbol] -> S.HashSet F.Symbol
-nubDiff a b = a' `S.difference` b'
-  where
-    a' = S.fromList a
-    b' = S.fromList b
-
---------------------------------------------------------------------------------
--- | check that each constraint has RHS of form [k1,...,kn] or [p]
---------------------------------------------------------------------------------
-banMixedRhs :: F.SInfo a -> SanitizeM (F.SInfo a)
---------------------------------------------------------------------------------
-banMixedRhs fi = Misc.applyNonNull (Right fi) (Left . badRhs) bads
-  where
-    ics        = M.toList $ F.cm fi
-    bads       = [(i, c) | (i, c) <- ics, not $ isOk c]
-    isOk c     = isKvarC c || isConcC c
-
-badRhs :: Misc.ListNE (Integer, F.SimpC a) -> E.Error
-badRhs = E.catErrors . map badRhs1
-
-badRhs1 :: (Integer, F.SimpC a) -> E.Error
-badRhs1 (i, c) = E.err E.dummySpan $ vcat [ "Malformed RHS for constraint id" <+> pprint i
-                                          , nest 4 (pprint (F.crhs c)) ]
-
---------------------------------------------------------------------------------
--- | symbol |-> sort for EVERY variable in the FInfo
---------------------------------------------------------------------------------
-symbolEnv :: Config -> F.SInfo a -> F.SEnv F.Sort
-symbolEnv cfg si = Thy.theorySEnv
-                   `mappend`
-                   F.fromListSEnv (symbolSorts cfg si)
-
-symbolSorts :: Config -> F.GInfo c a -> [(F.Symbol, F.Sort)]
-symbolSorts cfg fi = either E.die id $ symbolSorts' cfg fi
-
-symbolSorts' :: Config -> F.GInfo c a -> SanitizeM [(F.Symbol, F.Sort)]
-symbolSorts' cfg fi  = (normalize . compact . (defs ++)) =<< bindSorts fi
-  where
-    normalize       = fmap (map (unShadow txFun dm))
-    dm              = M.fromList defs
-    defs            = F.toListSEnv . F.gLits $ fi
-    txFun
-      | allowHO cfg = id
-      | otherwise   = defuncSort
-
-unShadow :: (F.Sort -> F.Sort) -> M.HashMap F.Symbol a -> (F.Symbol, F.Sort) -> (F.Symbol, F.Sort)
-unShadow tx dm (x, t)
-  | M.member x dm  = (x, t)
-  | otherwise      = (x, tx t)
-
-defuncSort :: F.Sort -> F.Sort
-defuncSort (F.FFunc {}) = F.funcSort
-defuncSort t            = t
-
-compact :: [(F.Symbol, F.Sort)] -> Either E.Error [(F.Symbol, F.Sort)]
-compact xts
-  | null bad  = Right [(x, t) | (x, [t]) <- ok ]
-  | otherwise = Left $ dupBindErrors bad'
-  where
-    bad'      = [(x, (, []) <$> ts) | (x, ts) <- bad]
-    (bad, ok) = L.partition multiSorted . binds $ xts
-    binds     = M.toList . M.map Misc.sortNub . Misc.group
-
---------------------------------------------------------------------------------
-bindSorts  :: F.GInfo c a -> Either E.Error [(F.Symbol, F.Sort)]
---------------------------------------------------------------------------------
-bindSorts fi
-  | null bad   = Right [ (x, t) | (x, [(t, _)]) <- ok ]
-  | otherwise  = Left $ dupBindErrors [ (x, ts) | (x, ts) <- bad]
-  where
-    (bad, ok)  = L.partition multiSorted . binds $ fi
-    binds      = symBinds . F.bs
-
-
-multiSorted :: (x, [t]) -> Bool
-multiSorted = (1 <) . length . snd
-
-dupBindErrors :: [(F.Symbol, [(F.Sort, [F.BindId] )])] -> E.Error
-dupBindErrors = foldr1 E.catError . map dbe
-  where
-   dbe (x, y) = E.err E.dummySpan $ vcat [ "Multiple sorts for" <+> pprint x
-                                         , nest 4 (pprint y) ]
-
---------------------------------------------------------------------------------
-symBinds  :: F.BindEnv -> [SymBinds]
---------------------------------------------------------------------------------
-symBinds  = {- THIS KILLS ELEM: tracepp "symBinds" . -}
-            M.toList
-          . M.map Misc.groupList
-          . Misc.group
-          . binders
-
-type SymBinds = (F.Symbol, [(F.Sort, [F.BindId])])
-
-binders :: F.BindEnv -> [(F.Symbol, (F.Sort, F.BindId))]
-binders be = [(x, (F.sr_sort t, i)) | (i, x, t) <- F.bindEnvToList be]
-
-
---------------------------------------------------------------------------------
--- | Drop func-sorted `bind` that are shadowed by `constant` (if same type, else error)
---------------------------------------------------------------------------------
-dropFuncSortedShadowedBinders :: F.SInfo a -> F.SInfo a
---------------------------------------------------------------------------------
-dropFuncSortedShadowedBinders fi = dropBinders f (const True) fi
-  where
-    f x t  = not (M.member x defs) || F.allowHO fi || isFirstOrder t
-    defs   = M.fromList $ F.toListSEnv $ F.gLits fi
-
---------------------------------------------------------------------------------
--- | Drop irrelevant binders from WfC Environments
---------------------------------------------------------------------------------
-sanitizeWfC :: F.SInfo a -> F.SInfo a
-sanitizeWfC si = si { F.ws = ws' }
-  where
-    ws'        = deleteWfCBinds drops <$> F.ws si
-    (_,drops)  = filterBindEnv keepF   $  F.bs si
-    keepF      = conjKF [nonConstantF si, nonFunctionF si, _nonDerivedLH]
-    -- drops   = F.tracepp "sanitizeWfC: dropping" $ L.sort drops'
-
-conjKF :: [KeepBindF] -> KeepBindF
-conjKF fs x t = and [f x t | f <- fs]
-
--- | `nonDerivedLH` keeps a bind x if it does not start with `$` which is used
---   typically for names that are automatically "derived" by GHC (and which can)
---   blow up the environments thereby clogging instantiation, etc.
---   NOTE: This is an LH specific hack and should be moved there.
-
-_nonDerivedLH :: KeepBindF
-_nonDerivedLH x _ = not . T.isPrefixOf "$" . last . T.split ('.' ==) . F.symbolText $ x
-
-nonConstantF :: F.SInfo a -> KeepBindF
-nonConstantF si = \x _ -> not (x `F.memberSEnv` cEnv)
-  where
-    cEnv        = F.gLits si
-
-nonFunctionF :: F.SInfo a -> KeepBindF
-nonFunctionF si
-  | F.allowHO si    = \_ _ -> True
-  | otherwise       = \_ t -> isNothing (F.functionSort t)
-
---------------------------------------------------------------------------------
--- | Generic API for Deleting Binders from FInfo
---------------------------------------------------------------------------------
-dropBinders :: KeepBindF -> KeepSortF -> F.SInfo a -> F.SInfo a
---------------------------------------------------------------------------------
-dropBinders f g fi  = fi { F.bs    = bs'
-                         , F.cm    = cm'
-                         , F.ws    = ws'
-                         , F.gLits = lits' }
-  where
-    discards        = diss
-    (bs', diss)     = filterBindEnv f $ F.bs fi
-    cm'             = deleteSubCBinds discards   <$> F.cm fi
-    ws'             = deleteWfCBinds  discards   <$> F.ws fi
-    lits'           = F.filterSEnv g (F.gLits fi)
-
-type KeepBindF = F.Symbol -> F.Sort -> Bool
-type KeepSortF = F.Sort -> Bool
-
-deleteSubCBinds :: [F.BindId] -> F.SimpC a -> F.SimpC a
-deleteSubCBinds bs sc = sc { F._cenv = foldr F.deleteIBindEnv (F.senv sc) bs }
-
-deleteWfCBinds :: [F.BindId] -> F.WfC a -> F.WfC a
-deleteWfCBinds bs wf = wf { F.wenv = foldr F.deleteIBindEnv (F.wenv wf) bs }
-
-filterBindEnv :: KeepBindF -> F.BindEnv -> (F.BindEnv, [F.BindId])
-filterBindEnv f be  = (F.bindEnvFromList keep, discard')
-  where
-    (keep, discard) = L.partition f' $ F.bindEnvToList be
-    discard'        = Misc.fst3     <$> discard
-    f' (_, x, t)    = f x (F.sr_sort t)
-
-
----------------------------------------------------------------------------
--- | Replace KVars that do not have a WfC with PFalse
----------------------------------------------------------------------------
-replaceDeadKvars :: F.SInfo a -> F.SInfo a
----------------------------------------------------------------------------
-replaceDeadKvars fi = mapKVars go fi
-  where
-    go k | k `M.member` F.ws fi = Nothing
-         | otherwise            = Just F.PFalse
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Solution.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Solution.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Solution.hs
+++ /dev/null
@@ -1,360 +0,0 @@
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE TupleSections      #-}
-
-module Language.Fixpoint.Solver.Solution
-  ( -- * Create Initial Solution
-    init
-
-    -- * Update Solution
-  , Sol.update
-
-  -- * Lookup Solution
-  , lhsPred
-  ) where
-
-import           Control.Parallel.Strategies
-import           Control.Arrow (second)
-import qualified Data.HashSet                   as S
-import qualified Data.HashMap.Strict            as M
-import qualified Data.List                      as L
-import           Data.Maybe                     (fromMaybe, maybeToList, isNothing)
-import           Data.Monoid                    ((<>))
-import           Language.Fixpoint.Types.PrettyPrint ()
-import           Language.Fixpoint.Types.Visitor      as V
-import qualified Language.Fixpoint.SortCheck          as So
-import           Language.Fixpoint.Misc
-import qualified Language.Fixpoint.Smt.Theories       as Thy
-import           Language.Fixpoint.Types.Config
-import qualified Language.Fixpoint.Types              as F
-import           Language.Fixpoint.Types                 ((&.&))
-import qualified Language.Fixpoint.Types.Solutions    as Sol
-import           Language.Fixpoint.Types.Constraints  hiding (ws, bs)
-import           Prelude                              hiding (init, lookup)
-import           Language.Fixpoint.Solver.Sanitize
-
--- DEBUG
--- import Text.Printf (printf)
--- import           Debug.Trace (trace)
-
-
---------------------------------------------------------------------------------
--- | Initial Solution (from Qualifiers and WF constraints) ---------------------
---------------------------------------------------------------------------------
-init :: Config -> F.SInfo a -> S.HashSet F.KVar -> Sol.Solution
---------------------------------------------------------------------------------
-init cfg si ks = Sol.fromList senv mempty keqs [] mempty
-  where
-    keqs       = map (refine si qs genv) ws `using` parList rdeepseq
-    qs         = F.quals si
-    ws         = [ w | (k, w) <- M.toList (F.ws si), not (isGWfc w) , k `S.member` ks]
-    genv       = instConstants si
-    senv       = symbolEnv cfg si
-
---------------------------------------------------------------------------------
-refine :: F.SInfo a -> [F.Qualifier] -> F.SEnv F.Sort -> F.WfC a -> (F.KVar, Sol.QBind)
-refine fi qs genv w = refineK (allowHOquals fi) env qs $ F.wrft w
-  where
-    env             = wenv <> genv
-    wenv            = F.sr_sort <$> F.fromListSEnv (F.envCs (F.bs fi) (F.wenv w))
-
-instConstants :: F.SInfo a -> F.SEnv F.Sort
-instConstants = F.fromListSEnv . filter notLit . F.toListSEnv . F.gLits
-  where
-    notLit    = not . F.isLitSymbol . fst
-
-
-refineK :: Bool -> F.SEnv F.Sort -> [F.Qualifier] -> (F.Symbol, F.Sort, F.KVar) -> (F.KVar, Sol.QBind)
-refineK ho env qs (v, t, k) = {- F.tracepp _msg -} (k, eqs')
-   where
-    eqs                     = instK ho env v t qs
-    eqs'                    = Sol.qbFilter (okInst env v t) eqs
-    -- _msg                    = printf "\n\nrefineK: k = %s, eqs = %s" (F.showpp k) (F.showpp eqs)
-
---------------------------------------------------------------------------------
-instK :: Bool
-      -> F.SEnv F.Sort
-      -> F.Symbol
-      -> F.Sort
-      -> [F.Qualifier]
-      -> Sol.QBind
---------------------------------------------------------------------------------
-instK ho env v t = Sol.qb . unique . concatMap (instKQ ho env v t)
-  where
-    unique       = L.nubBy ((. Sol.eqPred) . (==) . Sol.eqPred)
-
-instKQ :: Bool
-       -> F.SEnv F.Sort
-       -> F.Symbol
-       -> F.Sort
-       -> F.Qualifier
-       -> [Sol.EQual]
-instKQ ho env v t q
-  = do (su0, v0) <- candidates senv [(t, [v])] qt
-       xs        <- match senv tyss [v0] (So.apply su0 <$> qts)
-       return     $ Sol.eQual q (reverse xs)
-    where
-       qt : qts   = snd <$> F.qParams q
-       tyss       = instCands ho env
-       senv       = (`F.lookupSEnvWithDistance` env)
-
-instCands :: Bool -> F.SEnv F.Sort -> [(F.Sort, [F.Symbol])]
-instCands ho env = filter isOk tyss
-  where
-    tyss      = groupList [(t, x) | (x, t) <- xts]
-    isOk      = if ho then const True else isNothing . F.functionSort . fst
-    xts       = F.toListSEnv env
-
-match :: So.Env -> [(F.Sort, [F.Symbol])] -> [F.Symbol] -> [F.Sort] -> [[F.Symbol]]
-match env tyss xs (t : ts)
-  = do (su, x) <- candidates env tyss t
-       match env tyss (x : xs) (So.apply su <$> ts)
-match _   _   xs []
-  = return xs
-
---------------------------------------------------------------------------------
-candidates :: So.Env -> [(F.Sort, [F.Symbol])] -> F.Sort -> [(So.TVSubst, F.Symbol)]
---------------------------------------------------------------------------------
-candidates env tyss tx = -- traceShow _msg
-    [(su, y) | (t, ys) <- tyss
-             , su      <- maybeToList $ So.unifyFast mono env tx t
-             , y       <- ys                                   ]
-  where
-    mono = So.isMono tx
-    _msg  = "candidates tyss :=" ++ F.showpp tyss ++ "tx := " ++ F.showpp tx
-
---------------------------------------------------------------------------------
-okInst :: F.SEnv F.Sort -> F.Symbol -> F.Sort -> Sol.EQual -> Bool
---------------------------------------------------------------------------------
-okInst env v t eq = isNothing tc
-  where
-    sr            = F.RR t (F.Reft (v, p))
-    p             = Sol.eqPred eq
-    tc            = So.checkSorted env sr -- (F.tracepp _msg sr)
-    -- _msg          = printf "okInst: t = %s, eq = %s, env = %s" (F.showpp t) (F.showpp eq) (F.showpp env)
-
-
---------------------------------------------------------------------------------
--- | Predicate corresponding to LHS of constraint in current solution
---------------------------------------------------------------------------------
-lhsPred :: F.SolEnv -> Sol.Solution -> F.SimpC a -> F.Expr
-lhsPred be s c = F.notracepp _msg $ fst $ apply g s bs
-  where
-    g          = (ci, be, bs)
-    bs         = F.senv c
-    ci         = sid c
-    _msg       = "LhsPred for id = " ++ show (sid c)
-
-type Cid         = Maybe Integer
-type CombinedEnv = (Cid, F.SolEnv, F.IBindEnv)
-type ExprInfo    = (F.Expr, KInfo)
-
-apply :: CombinedEnv -> Sol.Sol a Sol.QBind -> F.IBindEnv -> ExprInfo
-apply g s bs      = (F.pAnd (pks:ps), kI)
-  where
-    (pks, kI)     = applyKVars g s ks  -- RJ: switch to applyKVars' to revert to old behavior
-    (ps,  ks, _)  = envConcKVars g bs
-
-
-envConcKVars :: CombinedEnv -> F.IBindEnv -> ([F.Expr], [F.KVSub], [F.KVSub])
-envConcKVars g bs = (concat pss, concat kss, L.nubBy (\x y -> F.ksuKVar x == F.ksuKVar y) $ concat gss)
-  where
-    (pss, kss, gss) = unzip3 [ F.notracepp ("sortedReftConcKVars" ++ F.showpp sr) $ F.sortedReftConcKVars x sr | (x, sr) <- xrs ]
-    xrs             = (\i -> F.notracepp  ("lookupBE i := " ++ show i) $ F.lookupBindEnv i be) <$> is
-    is              = F.elemsIBindEnv bs
-    be              = F.soeBinds (snd3 g)
-
-applyKVars :: CombinedEnv -> Sol.Sol a Sol.QBind -> [F.KVSub] -> ExprInfo
-applyKVars g s = mrExprInfos (applyKVar g s) F.pAnd mconcat 
-
-applyKVar :: CombinedEnv -> Sol.Sol a Sol.QBind -> F.KVSub -> ExprInfo
-applyKVar g s ksu = case Sol.lookup s (F.ksuKVar ksu) of
-  Left cs          -> hypPred g s ksu cs
-  Right eqs -> (F.pAnd $ fst <$> Sol.qbPreds msg s (F.ksuSubst ksu) eqs, mempty) -- TODO: don't initialize kvars that have a hyp solution
-  where
-    msg     = "applyKVar: " ++ show (fst3 g) 
-
-hypPred :: CombinedEnv -> Sol.Sol a Sol.QBind -> F.KVSub -> Sol.Hyp  -> ExprInfo
-hypPred g s ksu = mrExprInfos (cubePred g s ksu) F.pOr mconcatPlus
-
-{- | `cubePred g s k su c` returns the predicate for
-
-        (k . su)
-
-      defined by using cube
-
-        c := [b1,...,bn] |- (k . su')
-
-      in the binder environment `g`.
-
-        bs' := the subset of "extra" binders in [b1...bn] that are *not* in `g`
-        p'  := the predicate corresponding to the "extra" binders
-
- -}
-
-elabExist :: Sol.Sol a Sol.QBind -> [(F.Symbol, F.Sort)] -> F.Expr -> F.Expr
-elabExist s xts = F.pExist xts'
-  where
-    xts'        = [ (x, elab t) | (x, t) <- xts]
-    elab        = So.elaborate "elabExist" env
-    env         = Sol.sEnv s
-
-cubePred :: CombinedEnv -> Sol.Sol a Sol.QBind -> F.KVSub -> Sol.Cube -> ExprInfo
-cubePred g s ksu c    = (elabExist s xts (psu &.& p), kI)
-  where
-    ((xts,psu,p), kI) = cubePredExc g s ksu c bs'
-    bs'               = delCEnv s k bs
-    bs                = Sol.cuBinds c
-    k                 = F.ksuKVar ksu
-
-type Binders = [(F.Symbol, F.Sort)]
-
--- | @cubePredExc@ computes the predicate for the subset of binders bs'.
---   The output is a tuple, `(xts, psu, p, kI)` such that the actual predicate
---   we want is `Exists xts. (psu /\ p)`.
-
-cubePredExc :: CombinedEnv -> Sol.Sol a Sol.QBind -> F.KVSub -> Sol.Cube -> F.IBindEnv
-            -> ((Binders, F.Pred, F.Pred), KInfo)
-
-cubePredExc g s ksu c bs' = (cubeP, extendKInfo kI (Sol.cuTag c))
-  where
-    cubeP           = (xts, psu, elabExist s yts' (p' &.& psu') )
-    yts'            = symSorts g bs'
-    g'              = addCEnv  g bs
-    (p', kI)        = apply g' s bs'
-    (_  , psu')     = substElim sEnv g' k su'
-    (xts, psu)      = substElim sEnv g  k su
-    su'             = Sol.cuSubst c
-    bs              = Sol.cuBinds c
-    k               = F.ksuKVar   ksu
-    su              = F.ksuSubst  ksu
-    sEnv            = F.insertSEnv (F.ksuVV ksu) (F.ksuSort ksu) (Sol.sEnv s)
-
--- TODO: SUPER SLOW! Decorate all substitutions with Sorts in a SINGLE pass.
-
-{- | @substElim@ returns the binders that must be existentially quantified,
-     and the equality predicate relating the kvar-"parameters" and their
-     actual values. i.e. given
-
-        K[x1 := e1]...[xn := en]
-
-     where e1 ... en have types t1 ... tn
-     we want to quantify out
-
-       x1:t1 ... xn:tn
-
-     and generate the equality predicate && [x1 ~~ e1, ... , xn ~~ en]
-     we use ~~ because the param and value may have different sorts, see:
-
-        tests/pos/kvar-param-poly-00.hs
-
-     Finally, we filter out binders if they are
-
-     1. "free" in e1...en i.e. in the outer environment.
-        (Hmm, that shouldn't happen...?)
-
-     2. are binders corresponding to sorts (e.g. `a : num`, currently used
-        to hack typeclasses current.)
- -}
-substElim :: F.SEnv F.Sort -> CombinedEnv -> F.KVar -> F.Subst -> ([(F.Symbol, F.Sort)], F.Pred)
-substElim sEnv g _ (F.Su m) = (xts, p)
-  where
-    p      = F.pAnd [ mkSubst x (substSort sEnv frees x t) e t | (x, e, t) <- xets  ]
-    xts    = [ (x, t)    | (x, _, t) <- xets, not (S.member x frees) ]
-    xets   = [ (x, e, t) | (x, e)    <- xes, t <- sortOf e, not (isClass t)]
-    xes    = M.toList m
-    env    = combinedSEnv g
-    frees  = S.fromList (concatMap (F.syms . snd) xes)
-    sortOf = maybeToList . So.checkSortExpr env
-
-substSort :: F.SEnv F.Sort -> S.HashSet F.Symbol -> F.Symbol -> F.Sort -> F.Sort
-substSort sEnv _frees x _t = fromMaybe (err x) $ F.lookupSEnv x sEnv
-  where
-    err x            = error $ "Solution.mkSubst: unknown binder " ++ F.showpp x
-
-mkSubst :: F.Symbol -> F.Sort -> F.Expr -> F.Sort -> F.Expr
-mkSubst x tx ey ty
-  | tx == ty    = F.EEq ex ey
-  | otherwise   = F.notracepp msg (F.EEq ex' ey')
-  where
-    msg         = "mkSubst-DIFF:" ++ F.showpp (tx, ty) ++ F.showpp (ex', ey')
-    ex          = F.expr x
-    ex'         = Thy.toInt ex tx
-    ey'         = Thy.toInt ey ty
-
-isClass :: F.Sort -> Bool
-isClass F.FNum  = True
-isClass F.FFrac = True
-isClass _       = False
-
---badExpr :: CombinedEnv -> F.KVar -> F.Expr -> a
---badExpr g@(i,_,_) k e
-  -- = errorstar $ "substSorts has a badExpr: "
-              -- ++ show e
-              -- ++ " in cid = "
-              -- ++ show i
-              -- ++ " for kvar " ++ show k
-              -- ++ " in env \n"
-              -- ++ show (combinedSEnv g)
-
--- substPred :: F.Subst -> F.Pred
--- substPred (F.Su m) = F.pAnd [ F.PAtom F.Eq (F.eVar x) e | (x, e) <- M.toList m]
-
-combinedSEnv :: CombinedEnv -> F.SEnv F.Sort
-combinedSEnv (_, se, bs) = F.sr_sort <$> F.fromListSEnv (F.envCs be bs)
-  where
-    be                   = F.soeBinds se
-
-addCEnv :: CombinedEnv -> F.IBindEnv -> CombinedEnv
-addCEnv (x, be, bs) bs' = (x, be, F.unionIBindEnv bs bs')
-
--- delCEnv :: F.IBindEnv -> CombinedEnv -> F.IBindEnv
--- delCEnv bs (_, _, bs')  = F.diffIBindEnv bs bs'
-
-delCEnv :: Sol.Sol a Sol.QBind -> F.KVar -> F.IBindEnv -> F.IBindEnv
-delCEnv s k bs  = F.diffIBindEnv bs _kbs
-                                                -- ORIG: bs'
-  where
-    _kbs = safeLookup "delCEnv" k (Sol.sScp s)
-
-symSorts :: CombinedEnv -> F.IBindEnv -> [(F.Symbol, F.Sort)]
-symSorts (_, se, _) bs = second F.sr_sort <$> F.envCs be  bs
-  where
-    be                 = F.soeBinds se
-
-_noKvars :: F.Expr -> Bool
-_noKvars = null . V.kvars
-
---------------------------------------------------------------------------------
--- | Information about size of formula corresponding to an "eliminated" KVar.
---------------------------------------------------------------------------------
-data KInfo = KI { kiTags  :: [Tag]
-                , kiDepth :: !Int
-                , kiCubes :: !Integer
-                } deriving (Eq, Ord, Show)
-
-instance Monoid KInfo where
-  mempty         = KI [] 0 1
-  mappend ki ki' = KI ts d s
-    where
-      ts         = appendTags (kiTags  ki) (kiTags  ki')
-      d          = max        (kiDepth ki) (kiDepth ki')
-      s          = (*)        (kiCubes ki) (kiCubes ki')
-
-mplus :: KInfo -> KInfo -> KInfo
-mplus ki ki' = (mappend ki ki') { kiCubes = kiCubes ki + kiCubes ki'}
-
-mconcatPlus :: [KInfo] -> KInfo
-mconcatPlus = foldr mplus mempty
-
-appendTags :: [Tag] -> [Tag] -> [Tag]
-appendTags ts ts' = sortNub (ts ++ ts')
-
-extendKInfo :: KInfo -> F.Tag -> KInfo
-extendKInfo ki t = ki { kiTags  = appendTags [t] (kiTags  ki)
-                      , kiDepth = 1  +            kiDepth ki }
-
--- mrExprInfos :: (a -> ExprInfo) -> ([F.Expr] -> F.Expr) -> ([KInfo] -> KInfo) -> [a] -> ExprInfo
-mrExprInfos :: (a -> (b, c)) -> ([b] -> b1) -> ([c] -> c1) -> [a] -> (b1, c1)
-mrExprInfos mF erF irF xs = (erF es, irF is)
-  where
-    (es, is)              = unzip $ map mF xs
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Solve.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Solve.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Solve.hs
+++ /dev/null
@@ -1,244 +0,0 @@
-{-# LANGUAGE PatternGuards     #-}
-{-# LANGUAGE TupleSections     #-}
-{-# LANGUAGE FlexibleContexts  #-}
-{-# LANGUAGE OverloadedStrings #-}
-
---------------------------------------------------------------------------------
--- | Solve a system of horn-clause constraints ---------------------------------
---------------------------------------------------------------------------------
-
-module Language.Fixpoint.Solver.Solve (solve) where
-
-import           Control.Monad (when, filterM)
-import           Control.Monad.State.Strict (lift)
-import           Language.Fixpoint.Misc
-import qualified Language.Fixpoint.Types           as F
-import qualified Language.Fixpoint.Types.Solutions as Sol
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Config hiding (stats)
-import qualified Language.Fixpoint.Solver.Solution  as S
-import qualified Language.Fixpoint.Solver.Worklist  as W
-import qualified Language.Fixpoint.Solver.Eliminate as E
-import           Language.Fixpoint.Solver.Monad
-import           Language.Fixpoint.Utils.Progress
-import           Language.Fixpoint.Graph
-import           Text.PrettyPrint.HughesPJ
-import           Text.Printf
-import           System.Console.CmdArgs.Verbosity (whenNormal, whenLoud)
-import           Control.DeepSeq
-import qualified Data.HashMap.Strict as M
-import qualified Data.HashSet        as S
-
--- DEBUG
--- import           Debug.Trace (trace)
-
---------------------------------------------------------------------------------
-solve :: (NFData a, F.Fixpoint a) => Config -> F.SInfo a -> IO (F.Result (Integer, a))
---------------------------------------------------------------------------------
-solve cfg fi = do
-    -- donePhase Loud "Worklist Initialize"
-    (res, stat) <- withProgressFI sI $ runSolverM cfg sI n act
-    when (solverStats cfg) $ printStats fi wkl stat
-    -- print (numIter stat)
-    return res
-  where
-    act  = solve_ cfg fi s0 ks  wkl
-    sI   = solverInfo cfg fi
-    wkl  = W.init sI
-    n    = fromIntegral $ W.wRanks wkl
-    s0   = siSol  sI
-    ks   = siVars sI
-
-
---------------------------------------------------------------------------------
--- | Progress Bar
---------------------------------------------------------------------------------
-withProgressFI :: SolverInfo a b -> IO b -> IO b
-withProgressFI = withProgress . fromIntegral . cNumScc . siDeps
---------------------------------------------------------------------------------
-
-printStats :: F.SInfo a ->  W.Worklist a -> Stats -> IO ()
-printStats fi w s = putStrLn "\n" >> ppTs [ ptable fi, ptable s, ptable w ]
-  where
-    ppTs          = putStrLn . showpp . mconcat
-
---------------------------------------------------------------------------------
-solverInfo :: Config -> F.SInfo a -> SolverInfo a b
---------------------------------------------------------------------------------
-solverInfo cfg fI
-  | useElim cfg = E.solverInfo cfg fI
-  | otherwise   = SI mempty fI cD (siKvars fI)
-  where
-    cD          = elimDeps fI (kvEdges fI) mempty
-
-siKvars :: F.SInfo a -> S.HashSet F.KVar
-siKvars = S.fromList . M.keys . F.ws
-
---------------------------------------------------------------------------------
-solve_ :: (NFData a, F.Fixpoint a)
-       => Config
-       -> F.SInfo a
-       -> Sol.Solution
-       -> S.HashSet F.KVar
-       -> W.Worklist a
-       -> SolveM (F.Result (Integer, a), Stats)
---------------------------------------------------------------------------------
-solve_ cfg fi s0 ks wkl = do 
-  let s1  = mappend s0 $ {-# SCC "sol-init" #-} S.init cfg fi ks
-  s       <- {-# SCC "sol-refine" #-} refine s1 wkl
-  res     <- {-# SCC "sol-result" #-} result cfg wkl s
-  st      <- stats
-  let res' = {-# SCC "sol-tidy"   #-} tidyResult res
-  return $!! (res', st)
-
---------------------------------------------------------------------------------
--- | tidyResult ensures we replace the temporary kVarArg names introduced to
---   ensure uniqueness with the original names in the given WF constraints.
---------------------------------------------------------------------------------
-tidyResult :: F.Result a -> F.Result a
-tidyResult r = r { F.resSolution = tidySolution (F.resSolution r) }
-
-tidySolution :: F.FixSolution -> F.FixSolution
-tidySolution = fmap tidyPred
-
-tidyPred :: F.Expr -> F.Expr
-tidyPred = F.substf (F.eVar . F.tidySymbol)
-
---------------------------------------------------------------------------------
-refine :: Sol.Solution -> W.Worklist a -> SolveM Sol.Solution
---------------------------------------------------------------------------------
-refine s w
-  | Just (c, w', newScc, rnk) <- W.pop w = do
-     i       <- tickIter newScc
-     (b, s') <- refineC i s c
-     lift $ writeLoud $ refineMsg i c b rnk
-     let w'' = if b then W.push c w' else w'
-     refine s' w''
-  | otherwise = return s
-  where
-    -- DEBUG
-    refineMsg i c b rnk = printf "\niter=%d id=%d change=%s rank=%d\n"
-                            i (F.subcId c) (show b) rnk
-
----------------------------------------------------------------------------
--- | Single Step Refinement -----------------------------------------------
----------------------------------------------------------------------------
-refineC :: Int -> Sol.Solution -> F.SimpC a -> SolveM (Bool, Sol.Solution)
----------------------------------------------------------------------------
-refineC _i s c
-  | null rhs  = return (False, s)
-  | otherwise = do be     <- getBinds
-                   let lhs = S.lhsPred be s c
-                   kqs    <- filterValid lhs rhs
-                   return  $ S.update s ks kqs
-  where
-    _ci       = F.subcId c
-    (ks, rhs) = rhsCands s c
-    -- msg       = printf "refineC: iter = %d, sid = %s, soln = \n%s\n"
-    --               _i (show (F.sid c)) (showpp s)
-    _msg ks xs ys = printf "refineC: iter = %d, sid = %s, s = %s, rhs = %d, rhs' = %d \n"
-                     _i (show _ci) (showpp ks) (length xs) (length ys)
-
-rhsCands :: Sol.Solution -> F.SimpC a -> ([F.KVar], Sol.Cand (F.KVar, Sol.EQual))
-rhsCands s c    = (fst <$> ks, kqs)
-  where
-    kqs         = [ (p, (k, q)) | (k, su) <- ks, (p, q)  <- cnd k su ]
-    ks          = predKs . F.crhs $ c
-    cnd k su    = Sol.qbPreds msg s su (Sol.lookupQBind s k)
-    msg         = "rhsCands: " ++ show (F.sid c)
-
-predKs :: F.Expr -> [(F.KVar, F.Subst)]
-predKs (F.PAnd ps)    = concatMap predKs ps
-predKs (F.PKVar k su) = [(k, su)]
-predKs _              = []
-
---------------------------------------------------------------------------------
--- | Convert Solution into Result ----------------------------------------------
---------------------------------------------------------------------------------
-result :: (F.Fixpoint a) => Config -> W.Worklist a -> Sol.Solution
-       -> SolveM (F.Result (Integer, a))
---------------------------------------------------------------------------------
-result cfg wkl s = do
-  lift $ writeLoud "Computing Result"
-  stat    <- result_ wkl s 
-  lift $ whenNormal $ putStrLn $ "RESULT: " ++ show (F.sid <$> stat)
-  F.Result (ci <$> stat) <$> solResult cfg s <*> return mempty
-  where
-    ci c = (F.subcId c, F.sinfo c)
-
-solResult :: Config -> Sol.Solution -> SolveM (M.HashMap F.KVar F.Expr)
-solResult cfg = minimizeResult cfg . Sol.result 
-
-result_ :: W.Worklist a -> Sol.Solution -> SolveM (F.FixResult (F.SimpC a))
-result_  w s = res <$> filterM (isUnsat s) cs
-  where
-    cs       = W.unsatCandidates w
-    res []   = F.Safe
-    res cs'  = F.Unsafe cs'
-
---------------------------------------------------------------------------------
--- | `minimizeResult` transforms each KVar's result by removing
---   conjuncts that are implied by others. That is,
---
---      minimizeConjuncts :: ps:[Pred] -> {qs:[Pred] | subset qs ps}
---
---   such that `minimizeConjuncts ps` is a minimal subset of ps where no
---   is implied by /\_{q' in qs \ qs}
---   see: tests/pos/min00.fq for an example. 
---------------------------------------------------------------------------------
-minimizeResult :: Config -> M.HashMap F.KVar F.Expr
-               -> SolveM (M.HashMap F.KVar F.Expr)
---------------------------------------------------------------------------------
-minimizeResult cfg s
-  | minimalSol cfg = mapM minimizeConjuncts s
-  | otherwise      = return s
-
-minimizeConjuncts :: F.Expr -> SolveM F.Expr
-minimizeConjuncts p = F.pAnd <$> go (F.conjuncts p) []
-  where
-    go []     acc   = return acc
-    go (p:ps) acc   = do b <- isValid (F.pAnd (acc ++ ps)) p
-                         if b then go ps acc
-                              else go ps (p:acc)
-
---------------------------------------------------------------------------------
-isUnsat :: Sol.Solution -> F.SimpC a -> SolveM Bool
---------------------------------------------------------------------------------
-isUnsat s c = do
-  -- lift   $ printf "isUnsat %s" (show (F.subcId c))
-  _     <- tickIter True -- newScc
-  be    <- getBinds
-  let lp = S.lhsPred be s c
-  let rp = rhsPred        c
-  res   <- not <$> isValid lp rp
-  lift   $ whenLoud $ showUnsat res (F.subcId c) lp rp
-  return res
-
-showUnsat :: Bool -> Integer -> F.Pred -> F.Pred -> IO ()
-showUnsat u i lP rP = {- when u $ -} do
-  putStrLn $ printf   "UNSAT id %s %s" (show i) (show u)
-  putStrLn $ showpp $ "LHS:" <+> pprint lP
-  putStrLn $ showpp $ "RHS:" <+> pprint rP
-
---------------------------------------------------------------------------------
--- | Predicate corresponding to RHS of constraint in current solution
---------------------------------------------------------------------------------
-rhsPred :: F.SimpC a -> F.Expr
---------------------------------------------------------------------------------
-rhsPred c
-  | isTarget c = F.crhs c
-  | otherwise  = errorstar $ "rhsPred on non-target: " ++ show (F.sid c)
-
-isValid :: F.Expr -> F.Expr -> SolveM Bool
-isValid p q = (not . null) <$> filterValid p [(q, ())]
-
-
-{-
----------------------------------------------------------------------------
-donePhase' :: String -> SolveM ()
----------------------------------------------------------------------------
-donePhase' msg = lift $ do
-  threadDelay 25000
-  putBlankLn
-  donePhase Loud msg
--}
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/TrivialSort.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/TrivialSort.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/TrivialSort.hs
+++ /dev/null
@@ -1,176 +0,0 @@
-{-# LANGUAGE DeriveGeneric #-}
-
-module Language.Fixpoint.Solver.TrivialSort (nontrivsorts) where
-
-import           GHC.Generics        (Generic)
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Visitor
-import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.Types hiding (simplify)
-import           Language.Fixpoint.Utils.Files
-import           Language.Fixpoint.Misc
-import qualified Data.HashSet            as S
-import           Data.Hashable
-import qualified Data.HashMap.Strict     as M
-import           Data.List (foldl')
-import qualified Data.Graph              as G
-import           Data.Maybe
-import           Text.Printf
-import           Debug.Trace
-
--------------------------------------------------------------------------
-nontrivsorts :: (Fixpoint a) => Config -> FInfo a -> IO (Result a)
--------------------------------------------------------------------------
-nontrivsorts cfg fi = do
-  let fi' = simplify' cfg fi
-  writeFInfo cfg fi' $ queryFile Out cfg
-  return mempty
-
-simplify' :: Config -> FInfo a -> FInfo a
-simplify' _ fi = simplifyFInfo (mkNonTrivSorts fi) fi
-
---------------------------------------------------------------------
--- | The main data types
---------------------------------------------------------------------
-type NonTrivSorts = S.HashSet Sort
-type KVarMap      = M.HashMap KVar [Sort]
-data Polarity     = Lhs | Rhs
-type TrivInfo     = (NonTrivSorts, KVarMap)
---------------------------------------------------------------------
-
---------------------------------------------------------------------
-mkNonTrivSorts :: FInfo a -> NonTrivSorts
---------------------------------------------------------------------
-mkNonTrivSorts = {- tracepp "mkNonTrivSorts: " . -}  nonTrivSorts . trivInfo
-
---------------------------------------------------------------------
-nonTrivSorts :: TrivInfo -> NonTrivSorts
---------------------------------------------------------------------
-nonTrivSorts ti = S.fromList [s | S s <- ntvs]
-  where
-    ntvs        = [fst3 (f v) | v <- G.reachable g root]
-    (g, f, fv)  = G.graphFromEdges $ ntGraph ti
-    root        = fromMaybe err    $ fv NTV
-    err         = errorstar "nonTrivSorts: cannot find root!"
-
-ntGraph :: TrivInfo -> NTG
-ntGraph ti = [(v,v,vs) | (v, vs) <- groupList $ ntEdges ti]
-
-ntEdges :: TrivInfo -> [(NTV, NTV)]
-ntEdges (nts, kvm) = es ++ [(v, u) | (u, v) <- es]
-  where
-    es = [(NTV, S s) | s       <- S.toList nts         ]
-      ++ [(K k, S s) | (k, ss) <- M.toList kvm, s <- ss]
-
-type NTG = [(NTV, NTV, [NTV])]
-
-data NTV = NTV
-         | K !KVar
-         | S !Sort
-         deriving (Eq, Ord, Show, Generic)
-
-instance Hashable NTV
-
---------------------------------------------------------------------
-trivInfo :: FInfo a -> TrivInfo
---------------------------------------------------------------------
-trivInfo fi = updTISubCs (M.elems $ cm fi)
-            . updTIBinds (bs fi)
-            $ (S.empty, M.empty)
-
-updTISubCs :: [SubC a] -> TrivInfo -> TrivInfo
-updTISubCs cs ti = foldl' (flip updTISubC) ti cs
-
-updTISubC :: SubC a -> TrivInfo -> TrivInfo
-updTISubC c = updTI Lhs (slhs c) . updTI Rhs (srhs c)
-
-updTIBinds :: BindEnv -> TrivInfo -> TrivInfo
-updTIBinds be ti = foldl' (flip (updTI Lhs)) ti ts
-  where
-    ts           = [t | (_,_,t) <- bindEnvToList be]
-
---------------------------------------------------------------------
-updTI :: Polarity -> SortedReft -> TrivInfo -> TrivInfo
---------------------------------------------------------------------
-updTI p (RR t r) = addKVs t (kvars r) . addNTS p r t
-
-addNTS :: Polarity -> Reft -> Sort -> TrivInfo -> TrivInfo
-addNTS p r t ti
-  | isNTR p r = addSort t ti
-  | otherwise = ti
-
-addKVs :: Sort -> [KVar] -> TrivInfo -> TrivInfo
-addKVs t ks ti     = foldl' addK ti ks
-  where
-    addK (ts, m) k = (ts, inserts k t m)
-
-addSort :: Sort -> TrivInfo -> TrivInfo
-addSort t (ts, m) = (S.insert t ts, m)
-
---------------------------------------------------------------------
-isNTR :: Polarity -> Reft -> Bool
---------------------------------------------------------------------
-isNTR Rhs = not . trivR
-isNTR Lhs = not . trivOrSingR
-
-trivR :: Reft -> Bool
-trivR = all trivP . conjuncts . reftPred
-
-trivOrSingR :: Reft -> Bool
-trivOrSingR (Reft (v, p)) = all trivOrSingP $ conjuncts p
-  where
-    trivOrSingP p         = trivP p || singP v p
-
-trivP :: Expr -> Bool
-trivP (PKVar {}) = True
-trivP p          = isTautoPred p
-
-singP :: Symbol -> Expr -> Bool
-singP v (PAtom Eq (EVar x) _)
-  | v == x                    = True
-singP v (PAtom Eq _ (EVar x))
-  | v == x                    = True
-singP _ _                     = False
-
--------------------------------------------------------------------------
-simplifyFInfo :: NonTrivSorts -> FInfo a -> FInfo a
--------------------------------------------------------------------------
-simplifyFInfo tm fi = fi {
-     cm   = simplifySubCs   tm $ cm fi
-   , ws   = simplifyWfCs    tm $ ws fi
-   , bs   = simplifyBindEnv tm $ bs fi
-}
-
-simplifyBindEnv :: NonTrivSorts -> BindEnv -> BindEnv
-simplifyBindEnv tm = mapBindEnv (\_ (x, sr) -> (x, simplifySortedReft tm sr))
-
-simplifyWfCs :: NonTrivSorts -> M.HashMap KVar (WfC a) -> M.HashMap KVar (WfC a)
-simplifyWfCs tm = M.filter (isNonTrivialSort tm . snd3 . wrft)
-
-simplifySubCs :: (Eq k, Hashable k)
-              => NonTrivSorts -> M.HashMap k (SubC a) -> M.HashMap k (SubC a)
-simplifySubCs ti cm = trace msg cm'
-  where
-    cm' = tx cm
-    tx  = M.fromList . mapMaybe (simplifySubC ti) . M.toList
-    msg = printf "simplifySUBC: before = %d, after = %d \n" n n'
-    n   = M.size cm
-    n'  = M.size cm'
-
-simplifySubC :: NonTrivSorts -> (b, SubC a) -> Maybe (b, SubC a)
-simplifySubC tm (i, c)
- | isNonTrivial srhs' = Just (i, c { slhs = slhs' , srhs = srhs' })
- | otherwise          = Nothing
-  where
-    slhs'             = simplifySortedReft tm (slhs c)
-    srhs'             = simplifySortedReft tm (srhs c)
-
-simplifySortedReft :: NonTrivSorts -> SortedReft -> SortedReft
-simplifySortedReft tm sr
-  | nonTrivial = sr
-  | otherwise  = sr { sr_reft = mempty }
-  where
-    nonTrivial = isNonTrivialSort tm (sr_sort sr)
-
-isNonTrivialSort :: NonTrivSorts -> Sort -> Bool
-isNonTrivialSort tm t = S.member t tm
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyBinds.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyBinds.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyBinds.hs
+++ /dev/null
@@ -1,155 +0,0 @@
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE PatternGuards #-}
-
--- This module makes it so no binds with different sorts have the same name.
-
-module Language.Fixpoint.Solver.UniqifyBinds (renameAll) where
-
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Solver.Sanitize (dropDeadSubsts)
-import           Language.Fixpoint.Misc          (fst3, mlookup)
-
-import qualified Data.HashMap.Strict as M
-import qualified Data.HashSet        as S
-import qualified Data.List           as L
-import           Data.Foldable       (foldl')
-import           Data.Maybe          (catMaybes, fromJust, isJust)
-import           Data.Hashable       (Hashable)
-import           GHC.Generics        (Generic)
-import           Control.Arrow       (second)
-import           Control.DeepSeq     (NFData, ($!!))
--- import Debug.Trace (trace)
-
---------------------------------------------------------------------------------
-renameAll    :: SInfo a -> SInfo a
---------------------------------------------------------------------------------
-renameAll fi2 = fi6
-  where
-    fi6       = {-# SCC "dropDead"    #-} dropDeadSubsts  fi5
-    fi5       = {-# SCC "dropUnused"  #-} dropUnusedBinds fi4
-    fi4       = {-# SCC "renameBinds" #-} renameBinds fi3 $!! rnm
-    fi3       = {-# SCC "renameVars"  #-} renameVars fi2 rnm $!! idm
-    rnm       = {-# SCC "mkRenameMap" #-} mkRenameMap $!! bs fi2
-    idm       = {-# SCC "mkIdMap"     #-} mkIdMap fi2
-
-
---------------------------------------------------------------------------------
--- | `dropUnusedBinds` replaces the refinements of "unused" binders with "true".
---   see tests/pos/unused.fq for an example of why this phase is needed.
---------------------------------------------------------------------------------
-dropUnusedBinds :: SInfo a -> SInfo a
-dropUnusedBinds fi = fi {bs = filterBindEnv isUsed (bs fi)}-- { bs = mapBindEnv tx (bs fi) }
-  where
-    -- _tx i (x, r)
-    -- | isUsed i    = (x, r)
-    -- | otherwise   = (x, top r)
-    isUsed i _x r  = {- tracepp (unwords ["isUsed", show i, showpp _x]) $ -} memberIBindEnv i usedBinds || isTauto r
-    usedBinds      = L.foldl' unionIBindEnv emptyIBindEnv (cEnvs ++ wEnvs)
-    wEnvs          = wenv <$> M.elems (ws fi)
-    cEnvs          = senv <$> M.elems (cm fi)
-
-data Ref
-  = RB !BindId    -- ^ Bind identifier
-  | RI !Integer   -- ^ Constraint identifier?
-    deriving (Eq, Generic)
-
-instance NFData   Ref
-instance Hashable Ref
-
--- | An `IdMap` stores for each constraint and BindId the
---   set of other BindIds that it references, i.e. those
---   where it needs to know when their names gets changed
-type IdMap = M.HashMap Ref (S.HashSet BindId)
-
--- | A `RenameMap` maps an old name and sort to new name,
---   represented by a hashmap containing association lists.
---   `Nothing` as new name means the name is the same as the old.
-type RenameMap = M.HashMap Symbol [(Sort, Maybe Symbol)]
-
---------------------------------------------------------------------------------
-mkIdMap :: SInfo a -> IdMap
---------------------------------------------------------------------------------
-mkIdMap fi = M.foldlWithKey' (updateIdMap $ bs fi) M.empty $ cm fi
-
-updateIdMap :: BindEnv -> IdMap -> Integer -> SimpC a -> IdMap
-updateIdMap be m scId s = M.insertWith S.union (RI scId) refSet m'
-  where
-    ids                 = elemsIBindEnv (senv s)
-    nameMap             = M.fromList [(fst $ lookupBindEnv i be, i) | i <- ids]
-    m'                  = foldl' (insertIdIdLinks be nameMap) m ids
-    symSet              = S.fromList $ syms $ crhs s
-    refSet              = namesToIds symSet nameMap
-
-insertIdIdLinks :: BindEnv -> M.HashMap Symbol BindId -> IdMap -> BindId -> IdMap
-insertIdIdLinks be nameMap m i = M.insertWith S.union (RB i) refSet m
-  where
-    sr     = snd $ lookupBindEnv i be
-    symSet = reftFreeVars $ sr_reft sr
-    refSet = namesToIds symSet nameMap
-
-namesToIds :: S.HashSet Symbol -> M.HashMap Symbol BindId -> S.HashSet BindId
-namesToIds xs m = S.fromList $ catMaybes [M.lookup x m | x <- S.toList xs] --TODO why any Nothings?
-
---------------------------------------------------------------------------------
-mkRenameMap :: BindEnv -> RenameMap
---------------------------------------------------------------------------------
-mkRenameMap be = foldl' (addId be) M.empty ids
-  where
-    ids = fst3 <$> bindEnvToList be
-
-addId :: BindEnv -> RenameMap -> BindId -> RenameMap
-addId be m i
-  | M.member sym m = addDupId m sym t i
-  | otherwise      = M.insert sym [(t, Nothing)] m
-  where
-    (sym, t)       = second sr_sort $ lookupBindEnv i be
-
-addDupId :: RenameMap -> Symbol -> Sort -> BindId -> RenameMap
-addDupId m sym t i
-  | isJust $ L.lookup t mapping = m
-  | otherwise                   = M.insert sym ((t, Just $ renameSymbol sym i) : mapping) m
-  where
-    mapping = fromJust $ M.lookup sym m
-
---------------------------------------------------------------------------------
--- | `renameVars` seems to do the actual work of renaming all the binders
---   to use their sort-specific names.
---------------------------------------------------------------------------------
-renameVars :: SInfo a -> RenameMap -> IdMap -> SInfo a
---------------------------------------------------------------------------------
-renameVars fi rnMap idMap = M.foldlWithKey' (updateRef rnMap) fi idMap
-
-updateRef :: RenameMap -> SInfo a -> Ref -> S.HashSet BindId -> SInfo a
-updateRef rnMap fi rf bset = applySub (mkSubst subs) fi rf
-  where
-    symTList = [second sr_sort $ lookupBindEnv i $ bs fi | i <- S.toList bset]
-    subs     = catMaybes $ mkSubUsing rnMap <$> symTList
-
-mkSubUsing :: RenameMap -> (Symbol, Sort) -> Maybe (Symbol, Expr)
-mkSubUsing m (sym, t) = do
-  newName <- fromJust $ L.lookup t $ mlookup m sym
-  return (sym, eVar newName)
-
-applySub :: Subst -> SInfo a -> Ref -> SInfo a
-applySub sub fi (RB i) = fi { bs = adjustBindEnv go i (bs fi) }
-  where
-    go (sym, sr)       = (sym, subst sub sr)
-
-applySub sub fi (RI i) = fi { cm = M.adjust go i (cm fi) }
-  where
-    go c               = c { _crhs = subst sub (_crhs c) }
-
---------------------------------------------------------------------------------
-renameBinds :: SInfo a -> RenameMap -> SInfo a
---------------------------------------------------------------------------------
-renameBinds fi m = fi { bs = bindEnvFromList $ renameBind m <$> beList }
-  where
-    beList       = bindEnvToList $ bs fi
-
-renameBind :: RenameMap -> (BindId, Symbol, SortedReft) -> (BindId, Symbol, SortedReft)
-renameBind m (i, sym, sr)
-  | Just newSym <- mnewSym = (i, newSym, sr)
-  | otherwise              = (i, sym,    sr)
-  where
-    t                      = sr_sort sr
-    mnewSym                = fromJust $ L.lookup t $ mlookup m sym
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyKVars.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyKVars.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/UniqifyKVars.hs
+++ /dev/null
@@ -1,116 +0,0 @@
-{- | This module creates new bindings for each argument of each kvar.
-     It also makes sure that all arguments to each kvar are explicit.
-
-     For example,
-
-```
-bind 0 x
-bind 1 v
-constraint:
-  env [0; 1]
-  rhs $k_42 // implicit substitutions [x:=x], [v:=v]
-wf:
-  env [0]
-  reft {v : int | [$k_42]}
-```
-
-becomes
-
-```
-bind 0 x
-bind 1 v
-bind 2 lq_karg$x$k_42
-constraint:
-  env [0; 1]
-  rhs $k_42[lq_karg$x$k_42:=x][lq_karg$v$k_42:=v]
-
-wf:
-  env [2]
-  reft {lq_karg$v$k_42 : int | [$k_42]}
-```
-
--}
-
-module Language.Fixpoint.Solver.UniqifyKVars (wfcUniqify) where
-
-import           Language.Fixpoint.Types
-import           Language.Fixpoint.Types.Visitor (mapKVarSubsts)
-import qualified Data.HashMap.Strict as M
-import           Data.Foldable       (foldl')
-
---------------------------------------------------------------------------------
-wfcUniqify    :: SInfo a -> SInfo a
-wfcUniqify fi = updateWfcs $ remakeSubsts fi
-
-
-
--- mapKVarSubsts (\k su -> restrict table k su xs)
---------------------------------------------------------------------------------
-remakeSubsts :: SInfo a -> SInfo a
---------------------------------------------------------------------------------
-remakeSubsts fi = mapKVarSubsts (remakeSubst fi) fi
-
-remakeSubst :: SInfo a -> KVar -> Subst -> Subst
-remakeSubst fi k su = foldl' (updateSubst k) su (kvarDomain fi k)
-
-updateSubst :: KVar -> Subst -> Symbol -> Subst
-updateSubst k (Su su) sym
-  = case M.lookup sym su of
-      Just z  -> Su $ M.delete sym $ M.insert ksym z          su
-      Nothing -> Su $                M.insert ksym (eVar sym) su
-    where
-      kx      = kv k
-      ksym    = kArgSymbol sym kx
-
--- / | sym `M.member` su = Su $ M.delete sym $ M.insert ksym (su M.! sym) su
--- /  | otherwise         = Su $                M.insert ksym (eVar sym)   su
-
---------------------------------------------------------------------------------
-updateWfcs :: SInfo a -> SInfo a
---------------------------------------------------------------------------------
-updateWfcs fi = M.foldl' updateWfc fi (ws fi)
-
-updateWfc :: SInfo a -> WfC a -> SInfo a
-updateWfc fi w    = fi'' { ws = M.insert k w' (ws fi) }
-  where
-    w'            = updateWfCExpr (subst su) w'' 
-    w''           = w { wenv = insertsIBindEnv newIds mempty, wrft = (v', t, k) }
-    (_, fi'')     = newTopBind v' (trueSortedReft t) fi'
-    (fi', newIds) = foldl' (accumBindsIfValid k) (fi, []) (elemsIBindEnv $ wenv w)
-    (v, t, k)     = wrft w
-    v'            = kArgSymbol v (kv k)
-    su            = mkSubst ((v, EVar v'):[(x, eVar $ kArgSymbol x (kv k)) | x <- kvarDomain fi k])
-
-accumBindsIfValid :: KVar -> (SInfo a, [BindId]) -> BindId -> (SInfo a, [BindId])
-accumBindsIfValid k (fi, ids) i = if renamable then accumBinds k (fi, ids) i else (fi, i : ids)
-  where
-    (_, sr)                     = lookupBindEnv i      (bs fi)
-    renamable                   = isValidInRefinements (sr_sort sr)
-
-accumBinds :: KVar -> (SInfo a, [BindId]) -> BindId -> (SInfo a, [BindId])
-accumBinds k (fi, ids) i = (fi', i' : ids)
-  where
-    (oldSym, sr) = lookupBindEnv i (bs fi)
-    newSym       = {- tracepp "kArgSymbol" $ -}  kArgSymbol oldSym (kv k)
-    (i', fi')    = newTopBind newSym sr fi
-
--- | `newTopBind` ignores the actual refinements as they are not relevant
---   in the kvar parameters (as suggested by BLC.)
-newTopBind :: Symbol -> SortedReft -> SInfo a -> (BindId, SInfo a)
-newTopBind x sr fi = (i', fi {bs = be'})
-  where
-    (i', be')   = insertBindEnv x (top sr) (bs fi)
-
---------------------------------------------------------------
-
-isValidInRefinements :: Sort -> Bool
-isValidInRefinements FInt        = True
-isValidInRefinements FReal       = True
-isValidInRefinements FNum        = False
-isValidInRefinements FFrac       = False
-isValidInRefinements (FObj _)    = True
-isValidInRefinements (FVar _)    = True
-isValidInRefinements (FFunc _ _) = False
-isValidInRefinements (FAbs  _ t) = isValidInRefinements t
-isValidInRefinements (FTC _)     = True --TODO is this true? seems to be required for e.g. ResolvePred.hs
-isValidInRefinements (FApp _ _)  = True
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Solver/Worklist.hs b/liquid-fixpoint/src/Language/Fixpoint/Solver/Worklist.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Solver/Worklist.hs
+++ /dev/null
@@ -1,200 +0,0 @@
-{-# LANGUAGE BangPatterns          #-}
-{-# LANGUAGE TupleSections         #-}
-
-module Language.Fixpoint.Solver.Worklist
-       ( -- * Worklist type is opaque
-         Worklist, Stats
-
-         -- * Initialize
-       , init
-
-         -- * Pop off a constraint
-       , pop
-
-         -- * Add a constraint and all its dependencies
-       , push
-
-         -- * Constraints with Concrete RHS
-       , unsatCandidates
-
-         -- * Statistics
-       , wRanks
-       )
-       where
-
-import           Prelude hiding (init)
-import           Language.Fixpoint.Types.PrettyPrint
-import qualified Language.Fixpoint.Types   as F
-import           Language.Fixpoint.Graph.Types
-import           Language.Fixpoint.Graph   (isTarget)
-
-import           Control.Arrow             (first)
-import qualified Data.HashMap.Strict       as M
-import qualified Data.Set                  as S
-import qualified Data.List                 as L
-import           Text.PrettyPrint.HughesPJ (text)
-
--- | Worklist ------------------------------------------------------------------
-
-data Worklist a = WL { wCs     :: !WorkSet
-                     , wPend   :: !(CMap ())
-                     , wDeps   :: !(CMap [F.SubcId])
-                     , wCm     :: !(CMap (F.SimpC a))
-                     , wRankm  :: !(CMap Rank)
-                     , wLast   :: !(Maybe F.SubcId)
-                     , wRanks  :: !Int
-                     , wTime   :: !Int
-                     , wConcCs :: ![F.SubcId]
-                     }
-
-data Stats = Stats { numKvarCs  :: !Int
-                   , numConcCs  :: !Int
-                   , _numSccs   :: !Int
-                   } deriving (Eq, Show)
-
-instance PPrint (Worklist a) where
-  pprintTidy k = pprintTidy k . S.toList . wCs
-
-instance PTable Stats where
-  ptable s = DocTable [ (text "# Sliced Constraints", pprint (numKvarCs s))
-                      , (text "# Target Constraints", pprint (numConcCs s))
-                      ]
-
-instance PTable (Worklist a) where
-  ptable = ptable . stats
-
-
--- | WorkItems ------------------------------------------------------------
-
-type WorkSet  = S.Set WorkItem
-
-data WorkItem = WorkItem { wiCId  :: !F.SubcId   -- ^ Constraint Id
-                         , wiTime :: !Int   -- ^ Time at which inserted
-                         , wiRank :: !Rank  -- ^ Rank of constraint
-                         } deriving (Eq, Show)
-
-instance PPrint WorkItem where
-  pprintTidy _ = text . show
-
-instance Ord WorkItem where
-  compare (WorkItem i1 t1 r1) (WorkItem i2 t2 r2)
-    = mconcat [ compare (rScc r1) (rScc r2)   -- SCC
-              , compare t1 t2                 -- TimeStamp
-              , compare (rIcc r1) (rIcc r2)   -- Inner SCC
-              , compare (rTag r1) (rTag r2)   -- Tag
-              , compare i1         i2         -- Otherwise Set drops items
-              ]
-
---------------------------------------------------------------------------------
--- | Initialize worklist and slice out irrelevant constraints ------------------
---------------------------------------------------------------------------------
-init :: SolverInfo a b -> Worklist a
---------------------------------------------------------------------------------
-init sI    = WL { wCs     = items
-                , wPend   = addPends M.empty kvarCs
-                , wDeps   = cSucc cd
-                , wCm     = cm
-                , wRankm  = {- F.tracepp "W.init ranks" -} rankm
-                , wLast   = Nothing
-                , wRanks  = cNumScc cd
-                , wTime   = 0
-                , wConcCs = concCs
-                }
-  where
-    cm        = F.cm  (siQuery sI)
-    cd        = siDeps sI
-    rankm     = cRank cd
-    items     = S.fromList $ workItemsAt rankm 0 <$> kvarCs
-    concCs    = fst <$> ics
-    kvarCs    = fst <$> iks
-    (ics,iks) = L.partition (isTarget . snd) (M.toList cm)
-
----------------------------------------------------------------------------
--- | Candidate Constraints to be checked AFTER computing Fixpoint ---------
----------------------------------------------------------------------------
-unsatCandidates   :: Worklist a -> [F.SimpC a]
----------------------------------------------------------------------------
-unsatCandidates w = [ lookupCMap (wCm w) i | i <- wConcCs w ]
-
-
----------------------------------------------------------------------------
-pop  :: Worklist a -> Maybe (F.SimpC a, Worklist a, Bool, Int)
----------------------------------------------------------------------------
-pop w = do
-  (i, is) <- sPop $ wCs w
-  Just ( lookupCMap (wCm w) i
-       , popW w i is
-       , newSCC w i
-       , rank w i
-       )
-
-popW :: Worklist a -> F.SubcId -> WorkSet -> Worklist a
-popW w i is = w { wCs   = is
-                , wLast = Just i
-                , wPend = remPend (wPend w) i }
-
-
-newSCC :: Worklist a -> F.SubcId -> Bool
-newSCC oldW i = (rScc <$> oldRank) /= (rScc <$> newRank)
-  where
-    oldRank   = lookupCMap rankm <$> wLast oldW
-    newRank   = Just              $  lookupCMap rankm i
-    rankm     = wRankm oldW
-
-rank :: Worklist a -> F.SubcId -> Int
-rank w i = rScc $ lookupCMap (wRankm w) i
-
----------------------------------------------------------------------------
-push :: F.SimpC a -> Worklist a -> Worklist a
----------------------------------------------------------------------------
-push c w = w { wCs   = sAdds (wCs w) wis'
-             , wTime = 1 + t
-             , wPend = addPends wp is'
-             }
-  where
-    i    = F.subcId c
-    is'  = filter (not . isPend wp) $ M.lookupDefault [] i (wDeps w)
-    wis' = workItemsAt (wRankm w) t <$> is'
-    t    = wTime w
-    wp   = wPend w
-
-workItemsAt :: CMap Rank -> Int -> F.SubcId -> WorkItem
-workItemsAt !r !t !i = WorkItem { wiCId  = i
-                                , wiTime = t
-                                , wiRank = lookupCMap r i }
-
-
-
----------------------------------------------------------------------------
-stats :: Worklist a -> Stats
----------------------------------------------------------------------------
-stats w = Stats (kn w) (cn w) (wRanks w)
-  where
-    kn  = M.size . wCm
-    cn  = length . wConcCs
-
----------------------------------------------------------------------------
--- | Pending API
----------------------------------------------------------------------------
-
-addPends :: CMap () -> [F.SubcId] -> CMap ()
-addPends = L.foldl' addPend
-
-addPend :: CMap () -> F.SubcId -> CMap ()
-addPend m i = M.insert i () m
-
-remPend :: CMap () -> F.SubcId -> CMap ()
-remPend m i = M.delete i m
-
-isPend :: CMap () -> F.SubcId -> Bool
-isPend w i = M.member i w
-
----------------------------------------------------------------------------
--- | Set API --------------------------------------------------------------
----------------------------------------------------------------------------
-
-sAdds :: WorkSet -> [WorkItem] -> WorkSet
-sAdds = L.foldl' (flip S.insert)
-
-sPop :: WorkSet -> Maybe (F.SubcId, WorkSet)
-sPop = fmap (first wiCId) . S.minView
diff --git a/liquid-fixpoint/src/Language/Fixpoint/SortCheck.hs b/liquid-fixpoint/src/Language/Fixpoint/SortCheck.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/SortCheck.hs
+++ /dev/null
@@ -1,1015 +0,0 @@
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE TypeSynonymInstances  #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE TupleSections         #-}
-{-# LANGUAGE OverloadedStrings     #-}
-{-# LANGUAGE PatternGuards         #-}
-
--- | This module has the functions that perform sort-checking, and related
--- operations on Fixpoint expressions and predicates.
-
-module Language.Fixpoint.SortCheck  (
-  -- * Sort Substitutions
-    TVSubst
-  , Env
-
-  -- * Checking Well-Formedness
-  , checkSorted
-  , checkSortedReft
-  , checkSortedReftFull
-  , checkSortFull
-  , pruneUnsortedReft
-
-  -- * Sort inference
-  , sortExpr
-  , checkSortExpr
-  , exprSort
-
-  -- * Unify
-  , unifyFast
-  , unifySorts
-
-  -- * Apply Substitution
-  , apply
-
-  -- * Exported Sorts
-  , boolSort
-  , strSort
-
-  -- * Sort-Directed Transformations
-  , Elaborate (..)
-
-  -- * Predicates on Sorts
-  , isFirstOrder
-  , isMono
-  ) where
-
-
-import           Control.Monad
-import           Control.Monad.Except      (MonadError(..))
-import qualified Data.HashMap.Strict       as M
-import qualified Data.List                 as L
-import           Data.Maybe                (mapMaybe, fromMaybe)
-
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Misc
-import           Language.Fixpoint.Types hiding   (subst)
-import           Language.Fixpoint.Types.Visitor  (mapExpr, stripCasts, foldSort)
-import qualified Language.Fixpoint.Smt.Theories   as Thy
-import           Text.PrettyPrint.HughesPJ
-import           Text.Printf
-
--- import Debug.Trace
-
---------------------------------------------------------------------------------
--- | Predicates on Sorts -------------------------------------------------------
---------------------------------------------------------------------------------
-isMono :: Sort -> Bool
---------------------------------------------------------------------------------
-isMono             = null . foldSort fv []
-  where
-    fv vs (FVar i) = i : vs
-    fv vs _        = vs
-
-
---------------------------------------------------------------------------------
--- | Elaborate: make polymorphic instantiation explicit via casts,
---   make applications monomorphic for SMTLIB. This deals with
---   polymorphism by `elaborate`-ing all refinements except for
---   KVars. THIS IS NOW MANDATORY as sort-variables can be instantiated
---   to `int` and `bool`.
---------------------------------------------------------------------------------
-class Elaborate a where
-  elaborate :: String -> SEnv Sort -> a -> a
-
-instance Elaborate (SInfo a) where
-  elaborate x senv si = si
-    { cm      = elaborate x senv <$> cm      si
-    , bs      = elaborate x senv  $  bs      si
-    , asserts = elaborate x senv <$> asserts si
-    }
-
-instance (Elaborate e) => (Elaborate (Triggered e)) where
-  elaborate x env t = fmap (elaborate x env) t
-
-instance Elaborate Sort where
-  elaborate _ _ = go
-   where
-      go s | isString s = strSort
-      go (FAbs i s)    = FAbs i $ go s
-      go (FFunc s1 s2) = funSort (go s1) (go s2)
-      go (FApp s1 s2)  = FApp    (go s1) (go s2)
-      go s             = s
-      funSort :: Sort -> Sort -> Sort
-      funSort = FApp . FApp funcSort
-
-instance Elaborate Expr where
-  elaborate msg env = elabNumeric . elabApply . elabExpr msg env
-
-instance Elaborate (Symbol, Sort) where
-  elaborate msg env (x, s) = (x,) (elaborate msg env s)
-
-instance Elaborate a => Elaborate [a]  where
-  elaborate msg env xs = elaborate msg env <$> xs
-
-elabNumeric :: Expr -> Expr
-elabNumeric = mapExpr go
-  where
-    go (ETimes e1 e2)
-      | exprSort "txn1" e1 == FReal
-      , exprSort "txn2" e2 == FReal
-      = ERTimes e1 e2
-    go (EDiv   e1 e2)
-      | exprSort ("txn3: " ++ showpp e1) e1 == FReal
-      , exprSort "txn4" e2 == FReal
-      = ERDiv   e1 e2
-    go e
-      = e
-
-instance Elaborate SortedReft where
-  elaborate x env (RR s (Reft (v, e))) = RR s (Reft (v, e'))
-    where
-      e'   = elaborate x env' e
-      env' = insertSEnv v s env
-
-instance Elaborate BindEnv where
-  elaborate z env = mapBindEnv (\i (x, sr) -> (x, elaborate (z ++ msg i x sr) env sr))
-    where
-      msg i x sr  = unwords [" elabBE",  show i, show x, show sr]
-
-instance Elaborate (SimpC a) where
-  elaborate x env c = c {_crhs = elaborate x env (_crhs c) }
-
--- instance Elaborate Qualifier where
-  -- elaborate env q = q { qParams = elaborate env (qParams q)
-                      -- , qBody   = elaborate [env ++ qParams] (qBody q)
-                      -- }
-
-elabExpr :: String -> SEnv Sort -> Expr -> Expr
-elabExpr msg γ e
-  = case runCM0 $ elab f e of
-      Left msg -> die $ err dummySpan (d msg)
-      Right s  -> fst s
-    where
-      f   = (`lookupSEnvWithDistance` γ')
-      γ'  = γ `mappend` Thy.theorySEnv
-      d m = vcat [ "elaborate" <+> text msg <+> "failed on:"
-                 , nest 4 (pprint e)
-                 , "with error"
-                 , nest 4 (text m)
-                 , "in environment"
-                 , nest 4 (pprint $ subEnv γ' e)
-                 ]
-
-elabApply :: Expr -> Expr
-elabApply = go
-  where
-    go e                  = case splitArgs e of
-                             (e', []) -> step e'
-                             (f , es) -> defuncEApp (go f) (mapFst go <$> es)
-    step (PAnd [])        = PTrue
-    step (POr [])         = PFalse
-    step (ENeg e)         = ENeg (go  e)
-    step (EBin o e1 e2)   = EBin o (go e1) (go e2)
-    step (EIte e1 e2 e3)  = EIte (go e1) (go e2) (go e3)
-    step (ECst e t)       = ECst (go e) t
-    step (PAnd ps)        = PAnd (go <$> ps)
-    step (POr ps)         = POr  (go <$> ps)
-    step (PNot p)         = PNot (go p)
-    step (PImp p q)       = PImp (go p) (go q)
-    step (PIff p q)       = PIff (go p) (go q)
-    step (PExist bs p)    = PExist bs (go p)
-    step (PAll   bs p)    = PAll   bs (go p)
-    step (PAtom r e1 e2)  = PAtom r (go e1) (go e2)
-    step e@(EApp {})      = go e
-    step (ELam b e)       = ELam b (go e)
-    step (PGrad k su e)   = PGrad k su (go e)
-    step e@(PKVar {})     = e
-    step e@(ESym {})      = e
-    step e@(ECon {})      = e
-    step e@(EVar {})      = e
-    -- ELam, ETApp, ETAbs, PAll, PExist
-    step e                = error $ "TODO elabApply: " ++ showpp e
-
---------------------------------------------------------------------------------
--- | Sort Inference ------------------------------------------------------------
---------------------------------------------------------------------------------
-sortExpr :: SrcSpan -> SEnv Sort -> Expr -> Sort
-sortExpr l γ e = case runCM0 $ checkExpr f e of
-    Left msg -> die $ err l (d msg)
-    Right s  -> s
-  where
-    f   = (`lookupSEnvWithDistance` γ)
-    d m = vcat [ "sortExpr failed on expression:"
-               , nest 4 (pprint e)
-               , "with error:"
-               , nest 4 (text m)
-               , "in environment"
-               , nest 4 (pprint γ)
-               ]
-
-checkSortExpr :: SEnv Sort -> Expr -> Maybe Sort
-checkSortExpr γ e = case runCM0 $ checkExpr f e of
-    Left _   -> Nothing
-    Right s  -> Just s
-  where
-    f x  = case lookupSEnv x γ of
-            Just z  -> Found z
-            Nothing -> Alts []
-
-subEnv :: (Subable e) => SEnv a -> e -> SEnv a
-subEnv g e = intersectWithSEnv (\t _ -> t) g g'
-  where
-    g' = fromListSEnv $ (, ()) <$> syms e
-
-
---------------------------------------------------------------------------------
--- | Checking Refinements ------------------------------------------------------
---------------------------------------------------------------------------------
-
--- | Types used throughout checker
-
-type StateM = Int
-
-newtype CheckM a = CM {runCM :: StateM -> (StateM, Either String a)}
-
-type Env      = Symbol -> SESearch Sort
-
-
-instance Monad CheckM where
-  return x     = CM $ \i -> (i, Right x)
-  (CM m) >>= f = CM $ \i -> case m i of
-                             (j, Left s)  -> (j, Left s)
-                             (j, Right x) -> runCM (f x) j
-
-
-instance MonadError String CheckM where
-  throwError s = CM $ \i -> (i, Left s)
-  (CM m) `catchError` f = CM $ \i -> case m i of
-                                      (j, Left s) -> runCM (f s) j
-                                      (j, Right x) -> (j, Right x)
-
-withError :: CheckM a -> String -> CheckM a
-act `withError` e' = act `catchError` (\e -> throwError (e ++ "\n  because\n" ++ e'))
-
-instance Functor CheckM where
-  fmap f (CM m) = CM $ \i -> case m i of {(j, Left s) -> (j, Left s); (j, Right x) -> (j, Right $ f x)}
-
-instance Applicative CheckM where
-  pure x     = CM $ \i -> (i, Right x)
-  (CM f) <*> (CM m) = CM $ \i -> case m i of
-                             (j, Left s)  -> (j, Left s)
-                             (_, Right x) -> case f i of
-                                 (k, Left s)  -> (k, Left s)
-                                 (k, Right g) -> (k, Right $ g x)
-
-initCM :: StateM
-initCM = 42
-
-runCM0 :: CheckM a -> Either String a
-runCM0 act = snd $ runCM act initCM
-
-class Freshable a where
-  fresh   :: CheckM a
-  refresh :: a -> CheckM a
-  refresh _ = fresh
-
-instance Freshable Int where
-  fresh = CM (\n -> (n+1, Right n))
-
-instance Freshable [Int] where
-  fresh   = mapM (const fresh) [0..]
-  refresh = mapM refresh
-
---------------------------------------------------------------------------------
--- | Checking Refinements ------------------------------------------------------
---------------------------------------------------------------------------------
-checkSortedReft :: SEnv SortedReft -> [Symbol] -> SortedReft -> Maybe Doc
-checkSortedReft env xs sr = applyNonNull Nothing oops unknowns
-  where
-    oops                  = Just . (text "Unknown symbols:" <+>) . toFix
-    unknowns              = [ x | x <- syms sr, x `notElem` v : xs, not (x `memberSEnv` env)]
-    Reft (v,_)            = sr_reft sr
-
-checkSortedReftFull :: Checkable a => SEnv SortedReft -> a -> Maybe Doc
-checkSortedReftFull γ t
-  = case runCM0 $ check γ' t of
-      Left e  -> Just (text e)
-      Right _ -> Nothing
-    where
-      γ' = sr_sort <$> γ
-
-checkSortFull :: Checkable a => SEnv SortedReft -> Sort -> a -> Maybe Doc
-checkSortFull γ s t
-  = case runCM0 $ checkSort γ' s t of
-      Left e  -> Just (text e)
-      Right _ -> Nothing
-    where
-      γ' = sr_sort <$> γ
-
-checkSorted :: Checkable a => SEnv Sort -> a -> Maybe Doc
-checkSorted γ t
-  = case runCM0 $ check γ t of
-      Left e   -> Just (text e)
-      Right _  -> Nothing
-
-pruneUnsortedReft :: SEnv Sort -> SortedReft -> SortedReft
-pruneUnsortedReft γ (RR s (Reft (v, p))) = RR s (Reft (v, tx p))
-  where
-    tx   = pAnd . mapMaybe (checkPred' f) . conjuncts
-    f    = (`lookupSEnvWithDistance` γ')
-    γ'   = insertSEnv v s γ
-    -- wmsg t r = "WARNING: prune unsorted reft:\n" ++ showFix r ++ "\n" ++ t
-
-checkPred' :: Env -> Expr -> Maybe Expr
-checkPred' f p = res -- traceFix ("checkPred: p = " ++ showFix p) $ res
-  where
-    res        = case runCM0 $ checkPred f p of
-                   Left _err   -> {- trace (_wmsg _err p) -} Nothing
-                   Right _  -> Just p
-
-class Checkable a where
-  check     :: SEnv Sort -> a -> CheckM ()
-  checkSort :: SEnv Sort -> Sort -> a -> CheckM ()
-
-  checkSort γ _ = check γ
-
-instance Checkable Expr where
-  check γ e = void $ checkExpr f e
-   where f =  (`lookupSEnvWithDistance` γ)
-
-  checkSort γ s e = void $ checkExpr f (ECst e s)
-    where
-      f           =  (`lookupSEnvWithDistance` γ)
-
-instance Checkable SortedReft where
-  check γ (RR s (Reft (v, ra))) = check γ' ra
-   where
-     γ' = insertSEnv v s γ
-
---------------------------------------------------------------------------------
--- | Checking Expressions ------------------------------------------------------
---------------------------------------------------------------------------------
-checkExpr                  :: Env -> Expr -> CheckM Sort
-checkExpr _ (ESym _)       = return strSort
-checkExpr _ (ECon (I _))   = return FInt
-checkExpr _ (ECon (R _))   = return FReal
-checkExpr _ (ECon (L _ s)) = return s
-checkExpr f (EVar x)       = checkSym f x
-checkExpr f (ENeg e)       = checkNeg f e
-checkExpr f (EBin o e1 e2) = checkOp f e1 o e2
-checkExpr f (EIte p e1 e2) = checkIte f p e1 e2
-checkExpr f (ECst e t)     = checkCst f t e
-checkExpr f (EApp g e)     = checkApp f Nothing g e
-checkExpr f (PNot p)       = checkPred f p >> return boolSort
-checkExpr f (PImp p p')    = mapM_ (checkPred f) [p, p'] >> return boolSort
-checkExpr f (PIff p p')    = mapM_ (checkPred f) [p, p'] >> return boolSort
-checkExpr f (PAnd ps)      = mapM_ (checkPred f) ps >> return boolSort
-checkExpr f (POr ps)       = mapM_ (checkPred f) ps >> return boolSort
-checkExpr f (PAtom r e e') = checkRel f r e e' >> return boolSort
-checkExpr _ (PKVar {})     = return boolSort
-checkExpr f (PGrad _ _ e)  = checkPred f e >> return boolSort
-
-checkExpr f (PAll  bs e )  = checkExpr (addEnv f bs) e
-checkExpr f (PExist bs e)  = checkExpr (addEnv f bs) e
-checkExpr f (ELam (x,t) e) = FFunc t <$> checkExpr (addEnv f [(x,t)]) e
-checkExpr _ (ETApp _ _)    = error "SortCheck.checkExpr: TODO: implement ETApp"
-checkExpr _ (ETAbs _ _)    = error "SortCheck.checkExpr: TODO: implement ETAbs"
-
-addEnv :: Eq a => (a -> SESearch b) -> [(a, b)] -> a -> SESearch b
-addEnv f bs x
-  = case L.lookup x bs of
-      Just s  -> Found s
-      Nothing -> f x
-
---------------------------------------------------------------------------------
--- | Elaborate expressions with types to make polymorphic instantiation explicit.
---------------------------------------------------------------------------------
-elab :: Env -> Expr -> CheckM (Expr, Sort)
---------------------------------------------------------------------------------
-elab f e@(EBin o e1 e2) = do
-  (e1', s1) <- elab f e1
-  (e2', s2) <- elab f e2
-  s         <- checkExpr f e
-  return (EBin o (ECst e1' s1) (ECst e2' s2), s)
-
-elab f (EApp e1@(EApp _ _) e2) = do
-  (e1', _, e2', s2, s) <- elabEApp f e1 e2
-  return (eAppC s e1' (ECst e2' s2), s)
-
-elab f (EApp e1 e2) = do
-  (e1', s1, e2', s2, s) <- elabEApp f e1 e2
-  return (eAppC s (ECst e1' s1) (ECst e2' s2), s)
-
-elab _ e@(ESym _) =
-  return (e, strSort)
-
-elab _ e@(ECon (I _)) =
-  return (e, FInt)
-
-elab _ e@(ECon (R _)) =
-  return (e, FReal)
-
-elab _ e@(ECon (L _ s)) =
-  return (e, s)
-
-elab _ e@(PKVar _ _) =
-  return (e, boolSort)
-
-elab f (PGrad k su e) = 
-  ((, boolSort) . PGrad k su . fst) <$> elab f e 
-
-elab f e@(EVar x) =
-  (e,) <$> checkSym f x
-
-elab f (ENeg e) = do
-  (e', s) <- elab f e
-  return (ENeg e', s)
-
-elab f (EIte p e1 e2) = do
-  (p', _)  <- elab f p
-  (e1', _) <- elab f e1
-  (e2', _) <- elab f e2
-  s <- checkIte f p e1 e2
-  return (EIte p' e1' e2', s)
-
-elab f (ECst e t) = do
-  (e', _) <- elab f e
-  return (ECst e' t, t)
-
-elab f (PNot p) = do
-  (e', _) <- elab f p
-  return (PNot e', boolSort)
-
-elab f (PImp p1 p2) = do
-  (p1', _) <- elab f p1
-  (p2', _) <- elab f p2
-  return (PImp p1' p2', boolSort)
-
-elab f (PIff p1 p2) = do
-  (p1', _) <- elab f p1
-  (p2', _) <- elab f p2
-  return (PIff p1' p2', boolSort)
-
-elab f (PAnd ps) = do
-  ps' <- mapM (elab f) ps
-  return (PAnd (fst <$> ps'), boolSort)
-
-elab f (POr ps) = do
-  ps' <- mapM (elab f) ps
-  return (POr (fst <$> ps'), boolSort)
-
-elab f e@(PAtom Eq e1 e2) = do
-  t1        <- checkExpr f e1
-  t2        <- checkExpr f e2
-  (t1',t2') <- unite f e  t1 t2 `withError` (errElabExpr e)
-  e1'       <- elabAs f t1' e1
-  e2'       <- elabAs f t2' e2
-  return (PAtom Eq (ECst e1' t1') (ECst e2' t2'), boolSort)
-
-elab f (PAtom r e1 e2)
-  | r == Ueq || r == Une = do
-  (e1', _) <- elab f e1
-  (e2', _) <- elab f e2
-  return (PAtom r e1' e2', boolSort)
-
-elab f (PAtom r e1 e2) = do
-  e1' <- uncurry Thy.toInt <$> elab f e1
-  e2' <- uncurry Thy.toInt <$> elab f e2
-  return (PAtom r e1' e2', boolSort)
-
-elab f (PExist bs e) = do
-  (e', s) <- elab (addEnv f bs) e
-  let bs' = elaborate "PExist Args" mempty bs
-  return (PExist bs' e', s)
-
-elab f (PAll bs e) = do
-  (e', s) <- elab (addEnv f bs) e
-  let bs' = elaborate "PAll Args" mempty bs
-  return (PAll bs' e', s)
-
-elab f (ELam (x,t) e) = do
-  (e', s) <- elab (addEnv f [(x,t)]) e
-  let t' = elaborate "ELam Arg" mempty t
-  return (ELam (x,t') (ECst e' s), FFunc t s)
-
-elab _ (ETApp _ _) =
-  error "SortCheck.elab: TODO: implement ETApp"
-elab _ (ETAbs _ _) =
-  error "SortCheck.elab: TODO: implement ETAbs"
-
--- elabAs :: Env -> Sort -> Expr -> CheckM Expr
--- elabAs f t e = tracepp msg <$> elabAs' f t e
---  where
---    msg  = "elabAs: t = " ++ show t ++ " e = " ++ show e
-
-elabAs :: Env -> Sort -> Expr -> CheckM Expr
-elabAs f t (EApp e1 e2) = elabAppAs f t e1 e2
-elabAs f _ e            = fst <$> elab f e
-
-elabAppAs :: Env -> Sort -> Expr -> Expr -> CheckM Expr
-elabAppAs f t g e = do
-  gT       <- generalize =<< checkExpr f g
-  eT       <- checkExpr f e
-  (iT, oT, isu) <- checkFunSort gT
-  let ge    = Just (EApp g e)
-  su       <- unifyMany f ge isu [oT, iT] [t, eT]
-  let tg    = apply su gT
-  g'       <- elabAs f tg g
-  let te    = apply su eT
-  e'       <- elabAs f te e
-  return    $ EApp (ECst g' tg) (ECst e' te)
-
-elabEApp  :: Env -> Expr -> Expr -> CheckM (Expr, Sort, Expr, Sort, Sort)
-elabEApp f e1 e2 = do
-  (e1', s1) <- elab f e1
-  (e2', s2) <- elab f e2
-  s         <- elabAppSort f e1 e2 s1 s2
-  return      (e1', s1, e2', s2, s)
-
---------------------------------------------------------------------------------
--- | defuncEApp monomorphizes function applications.
---------------------------------------------------------------------------------
-defuncEApp :: Expr -> [(Expr, Sort)] -> Expr
-defuncEApp e es
-  | Thy.isSmt2App (stripCasts e) es
-  = eApps e (fst <$> es)
-  | otherwise
-  = L.foldl' makeApplication e es
-
--- e1 e2 => App (App runFun e1) (toInt e2)
-makeApplication :: Expr -> (Expr, Sort) -> Expr
-makeApplication e1 (e2, s) = ECst (EApp (EApp (EVar f) e1) e2') s
-  where
-    f                      = makeFunSymbol (spec s)
-    e2'                    = Thy.toInt e2 (exprSort "makeApplication" e2)
-    -- s                      = fromMaybe (resultType e1 e2) sO
-    spec                 :: Sort -> Sort
-    spec (FAbs _ s)      = spec s
-    spec s               = s
-
-makeFunSymbol :: Sort -> Symbol
-makeFunSymbol s
-  | (FApp (FTC c) _) <- s
-  , Thy.isConName setConName c
-  = setApplyName 1
-  | (FApp (FApp (FTC c) _) _) <- s
-  , Thy.isConName mapConName c
-  = mapApplyName 1
-  | (FApp (FTC bv) (FTC s))   <- s
-  , Thy.isConName bitVecName bv
-  , Just _ <- Thy.sizeBv s
-  = bitVecApplyName 1
-  | FTC c <- s, c == boolFTyCon
-  = boolApplyName 1
-  | s == FReal
-  = realApplyName 1
-  | otherwise
-  = intApplyName 1
-
-splitArgs :: Expr -> (Expr, [(Expr, Sort)])
-splitArgs = go []
-  where
-    go acc (ECst (EApp e1 e) s) = go ((e, s) : acc) e1
-    go _   e@EApp{}             = errorstar $ "UNEXPECTED: splitArgs: EApp without output type: " ++ showpp e
-    -- go acc (ECst e _)           = go acc e
-    go acc e                    = (e, acc)
-
---------------------------------------------------------------------------------
--- | Expressions sort  ---------------------------------------------------------
---------------------------------------------------------------------------------
-exprSort :: String -> Expr -> Sort
-exprSort msg = go
-  where
-    go (ECst _ s) = s
-    go (ELam (_, sx) e) = FFunc sx (go e)
-    go (EApp e ex)
-      | FFunc sx s <- genSort (go e)
-      = maybe s (`apply` s) $ unifySorts (go ex) sx
-    go e = errorstar ("\nexprSort [" ++ msg ++ "] on unexpected expressions " ++ show e)
-
-genSort :: Sort -> Sort
-genSort (FAbs _ t) = genSort t
-genSort t          = t
-
-unite :: Env -> Expr -> Sort -> Sort -> CheckM (Sort, Sort)
-unite f e t1 t2 = do
-  su <- unifys f (Just e) [t1] [t2]
-  return (apply su t1, apply su t2)
-
-
--- | Helper for checking symbol occurrences
-checkSym :: Env -> Symbol -> CheckM Sort
-checkSym f x
-  = case f x of
-     Found s -> return s
-     Alts xs -> throwError $ errUnboundAlts x xs
-
--- | Helper for checking if-then-else expressions
-checkIte :: Env -> Expr -> Expr -> Expr -> CheckM Sort
-checkIte f p e1 e2 = do
-  checkPred f p
-  t1 <- checkExpr f e1
-  t2 <- checkExpr f e2
-  ((`apply` t1) <$> unifys f e' [t1] [t2]) `withError` (errIte e1 e2 t1 t2)
-  where
-    e' = Just (EIte  p e1 e2)
-
--- | Helper for checking cast expressions
-checkCst :: Env -> Sort -> Expr -> CheckM Sort
-checkCst f t (EApp g e)
-  = checkApp f (Just t) g e
-checkCst f t e
-  = do t' <- checkExpr f e
-       ((`apply` t) <$> unifys f (Just e) [t] [t']) `withError` (errCast e t' t)
-
-elabAppSort :: Env -> Expr -> Expr -> Sort -> Sort -> CheckM Sort
-elabAppSort f e1 e2 s1 s2 = do
-  s1'  <- generalize s1
-  let e = Just (EApp e1 e2)
-  case s1' of
-    FFunc sx s -> (`apply` s) <$> unifys f e [sx] [s2]
-    FVar i     -> do j <- refresh 0 
-                     k <- refresh 0 
-                     (`apply` (FVar k)) <$> unifyMany f e (updateVar i (FFunc (FVar j) (FVar j)) emptySubst) [FVar j] [s2]
-    _          -> errorstar ("elabAppSort for expr" ++ showpp (EApp e1 e2) ++ " with sorts" ++ showpp s1  ++ " and " ++ showpp s2 )
-
-checkApp :: Env -> Maybe Sort -> Expr -> Expr -> CheckM Sort
-checkApp f to g es
-  = snd <$> checkApp' f to g es
-
-checkExprAs :: Env -> Sort -> Expr -> CheckM Sort
-checkExprAs f t (EApp g e)
-  = checkApp f (Just t) g e
-checkExprAs f t e
-  = do t' <- checkExpr f e
-       θ  <- unifys f (Just e) [t'] [t]
-       return $ apply θ t
-
--- | Helper for checking uninterpreted function applications
--- | Checking function application should be curried,
--- | consider checking
--- | fromJust :: Maybe a -> a, f :: Maybe (b -> b), x: c |- fromJust f x
-
-checkApp' :: Env -> Maybe Sort -> Expr -> Expr -> CheckM (TVSubst, Sort)
-checkApp' f to g e = do
-  gt       <- checkExpr f g >>= generalize
-  et       <- checkExpr f e
-  (it, ot, isu) <- checkFunSort gt
-  let ge    = Just (EApp g e)
-  θ        <- unifyMany f ge isu [it] [et]
-  let t     = apply θ ot
-  case to of
-    Nothing    -> return (θ, t)
-    Just t'    -> do θ' <- unifyMany f ge θ [t] [t']
-                     let ti = apply θ' et
-                     _ <- checkExprAs f ti e
-                     return (θ', apply θ' t)
-
-{-
-checkApp' f to g' e
-  = do gt           <- checkExpr f g
-       gt'          <- generalize gt
-       (its, ot)    <- sortFunction (length es) gt'
-       ets          <- mapM (checkExpr f) es
-       θ            <- unifys f its ets
-       let t         = apply θ ot
-       case to of
-         Nothing    -> return (θ, t)
-         Just t'    -> do θ' <- unifyMany f θ [t] [t']
-                          let ts = apply θ' <$> ets
-                          _ <- zipWithM (checkExprAs f) ts es
-                          return (θ', apply θ' t)
-  where
-    (g, es) = splitEApp $ EApp g' e
--}
-
--- | Helper for checking binary (numeric) operations
-checkNeg :: Env -> Expr -> CheckM Sort
-checkNeg f e = do
-  t <- checkExpr f e
-  checkNumeric f t >> return t
-
-checkOp :: Env -> Expr -> Bop -> Expr -> CheckM Sort
-checkOp f e1 o e2
-  = do t1 <- checkExpr f e1
-       t2 <- checkExpr f e2
-       checkOpTy f (EBin o e1 e2) t1 t2
-
-
-checkOpTy :: Env -> Expr -> Sort -> Sort -> CheckM Sort
-checkOpTy _ _ FInt FInt
-  = return FInt
-
-checkOpTy _ _ FReal FReal
-  = return FReal
--- Coercing int to real is somewhat suspicious, but z3 seems
--- to be ok with it
-checkOpTy _ _ FInt  FReal
-  = return FReal
-checkOpTy _ _ FReal FInt
-  = return FReal
-
-checkOpTy f _ t t'
-  | t == t'
-  = checkNumeric f t >> return t
-
-checkOpTy _ e t t'
-  = throwError $ errOp e t t'
-
-checkFractional :: Env -> Sort -> CheckM ()
-checkFractional f s@(FObj l)
-  = do t <- checkSym f l
-       unless (t == FFrac) (throwError $ errNonFractional s)
-checkFractional _ s
-  = unless (isReal s) (throwError $ errNonFractional s)
-
-checkNumeric :: Env -> Sort -> CheckM ()
-checkNumeric f s@(FObj l)
-  = do t <- checkSym f l
-       unless (t == FNum || t == FFrac) (throwError $ errNonNumeric s)
-checkNumeric _ s
-  = unless (isNumeric s) (throwError $ errNonNumeric s)
-
---------------------------------------------------------------------------------
--- | Checking Predicates -------------------------------------------------------
---------------------------------------------------------------------------------
-
-checkPred                  :: Env -> Expr -> CheckM ()
-checkPred f e = checkExpr f e >>= checkBoolSort e
-
-checkBoolSort :: Expr -> Sort -> CheckM ()
-checkBoolSort e s
- | s == boolSort = return ()
- | otherwise     = throwError $ errBoolSort e s
-
-
--- | Checking Relations
-checkRel :: Env -> Brel -> Expr -> Expr -> CheckM ()
-checkRel f Eq e1 e2 = do
-  t1 <- checkExpr f e1
-  t2 <- checkExpr f e2
-  su <- (unifys f (Just e) [t1] [t2]) `withError` (errRel e t1 t2)
-  _  <- checkExprAs f (apply su t1) e1
-  _  <- checkExprAs f (apply su t2) e2
-  checkRelTy f e Eq t1 t2
-  where
-    e = PAtom Eq e1 e2
-
-checkRel f r  e1 e2 = do
-  t1 <- checkExpr f e1
-  t2 <- checkExpr f e2
-  checkRelTy f (PAtom r e1 e2) r t1 t2
-
-checkRelTy :: Env -> Expr -> Brel -> Sort -> Sort -> CheckM ()
-checkRelTy _ _ Ueq _ _             = return ()
-checkRelTy _ _ Une _ _             = return ()
-checkRelTy f _ _ s1@(FObj l) s2@(FObj l') | l /= l'
-  = (checkNumeric f s1 >> checkNumeric f s2) `withError` (errNonNumerics l l')
-checkRelTy _ _ _ FReal FReal = return ()
-checkRelTy _ _ _ FInt  FReal = return ()
-checkRelTy _ _ _ FReal FInt  = return ()
-checkRelTy f _ _ FInt  s2    = checkNumeric    f s2 `withError` (errNonNumeric s2)
-checkRelTy f _ _ s1    FInt  = checkNumeric    f s1 `withError` (errNonNumeric s1)
-checkRelTy f _ _ FReal s2    = checkFractional f s2 `withError` (errNonFractional s2)
-checkRelTy f _ _ s1    FReal = checkFractional f s1 `withError` (errNonFractional s1)
-
--- checkRelTy _ e Eq t1 t2
---   | t1 == boolSort || t2 == boolSort = throwError $ errRel e t1 t2
--- checkRelTy _ e Ne t1 t2
---   | t1 == boolSort || t2 == boolSort = throwError $ errRel e t1 t2
-
-checkRelTy f e Eq t1 t2            = void (unifys f (Just e) [t1] [t2] `withError` (errRel e t1 t2))
-checkRelTy f e Ne t1 t2            = void (unifys f (Just e) [t1] [t2] `withError` (errRel e t1 t2))
-
-checkRelTy _ e _  t1 t2            = unless (t1 == t2) (throwError $ errRel e t1 t2)
-
---------------------------------------------------------------------------------
--- | Sort Unification
---------------------------------------------------------------------------------
-unify :: Env -> Maybe Expr -> Sort -> Sort -> Maybe TVSubst
---------------------------------------------------------------------------------
-unify f e t1 t2
-  = case runCM0 $ unify1 f e emptySubst t1 t2 of
-      Left _   -> Nothing
-      Right su -> Just su
-
---------------------------------------------------------------------------------
-unifySorts :: Sort -> Sort -> Maybe TVSubst
---------------------------------------------------------------------------------
-unifySorts   = unifyFast False emptyEnv
-  where
-    emptyEnv = const $ die $ err dummySpan "SortChecl: lookup in Empty Env "
-
---------------------------------------------------------------------------------
--- | Fast Unification; `unifyFast True` is just equality
---------------------------------------------------------------------------------
-unifyFast :: Bool -> Env -> Sort -> Sort -> Maybe TVSubst
---------------------------------------------------------------------------------
-unifyFast False f = unify f Nothing
-unifyFast True  _ = uMono
-  where
-    uMono t1 t2
-     | t1 == t2   = Just emptySubst
-     | otherwise  = Nothing
-
-
---------------------------------------------------------------------------------
-unifys :: Env -> Maybe Expr -> [Sort] -> [Sort] -> CheckM TVSubst
---------------------------------------------------------------------------------
-unifys f e = unifyMany f e emptySubst
-
-unifyMany :: Env -> Maybe Expr -> TVSubst -> [Sort] -> [Sort] -> CheckM TVSubst
-unifyMany f e θ ts ts'
-  | length ts == length ts' = foldM (uncurry . unify1 f e) θ $ zip ts ts'
-  | otherwise               = throwError $ errUnifyMany ts ts'
-
-
-unify1 :: Env -> Maybe Expr -> TVSubst -> Sort -> Sort -> CheckM TVSubst
-unify1 f e θ (FVar i) t
-  = unifyVar f e θ i t
-unify1 f e θ t (FVar i)
-  = unifyVar f e θ i t
-unify1 f e θ (FApp t1 t2) (FApp t1' t2')
-  = unifyMany f e θ [t1, t2] [t1', t2']
-unify1 _ _ θ (FTC l1) (FTC l2)
-  | isListTC l1 && isListTC l2
-  = return θ
-unify1 f e θ t1@(FAbs _ _) t2 = do
-  t1'<- generalize t1
-  unifyMany f e θ [t1'] [t2]
-unify1 f e θ t1 t2@(FAbs _ _) = do
-  t2' <- generalize t2
-  unifyMany f e θ [t1] [t2']
-unify1 _ _ θ s1 s2
-  | isString s1, isString s2
-  = return θ
-
-unify1 _ _ θ FInt  FReal = return θ
-
-unify1 _ _ θ FReal FInt  = return θ
-
-unify1 f e θ t FInt = do
-  checkNumeric f t `withError` (errUnify e t FInt)
-  return θ
-
-unify1 f e θ FInt t = do
-  checkNumeric f t `withError` (errUnify e FInt t)
-  return θ
-
-unify1 f e θ (FFunc t1 t2) (FFunc t1' t2') = do
-  unifyMany f e θ [t1, t2] [t1', t2']
-
-unify1 _ e θ t1 t2
-  | t1 == t2
-  = return θ
-  | otherwise
-  = throwError $ errUnify e t1 t2
-
-subst :: (Int, Sort) -> Sort -> Sort
-subst (j,tj) t@(FVar i)
-  | i == j    = tj
-  | otherwise = t
-subst su (FApp t1 t2)  = FApp (subst su t1) (subst su t2)
-subst _  (FTC l)       = FTC l
-subst su (FFunc t1 t2) = FFunc (subst su t1) (subst su t2)
-subst (j,tj) (FAbs i t)
-  | i == j    = FAbs i t
-  | otherwise = FAbs i $ subst (j,tj) t
-subst _  s             = s
-
-
-generalize :: Sort -> CheckM Sort
-generalize (FAbs i t) = do
-  v      <- refresh 0
-  let sub = (i, FVar v)
-  subst sub <$> generalize t
-generalize t =
-  return t
-
-unifyVar :: Env -> Maybe Expr -> TVSubst -> Int -> Sort -> CheckM TVSubst
-unifyVar _ _ θ i t@(FVar j)
-  = case lookupVar i θ of
-      Just t'       -> if t == t' then return θ else return $ updateVar j t' θ
-      Nothing       -> return $ updateVar i t θ
-
-unifyVar f e θ i t
-  = case lookupVar i θ of
-      Just (FVar j) -> return $ updateVar i t $ updateVar j t θ
-      Just t'       -> if t == t' then return θ else unify1 f e θ t t'
-      Nothing       -> return $ updateVar i t θ
-
---------------------------------------------------------------------------------
--- | Applying a Type Substitution ----------------------------------------------
---------------------------------------------------------------------------------
-apply :: TVSubst -> Sort -> Sort
---------------------------------------------------------------------------------
-apply θ          = sortMap f
-  where
-    f t@(FVar i) = fromMaybe t (lookupVar i θ)
-    f t          = t
-
---------------------------------------------------------------------------------
-sortMap :: (Sort -> Sort) -> Sort -> Sort
---------------------------------------------------------------------------------
-sortMap f (FAbs i t)    = FAbs i (sortMap f t)
-sortMap f (FFunc t1 t2) = FFunc (sortMap f t1) (sortMap f t2)
-sortMap f (FApp t1 t2)  = FApp  (sortMap f t1) (sortMap f t2)
-sortMap f t             = f t
-
---------------------------------------------------------------------------------
--- | Deconstruct a function-sort -----------------------------------------------
---------------------------------------------------------------------------------
-
-checkFunSort :: Sort -> CheckM (Sort, Sort, TVSubst)
-checkFunSort (FAbs _ t)    = checkFunSort t
-checkFunSort (FFunc t1 t2) = return (t1, t2, emptySubst)
-checkFunSort (FVar i)      = do j <- refresh 0 
-                                k <- refresh 0 
-                                return (FVar j, FVar k, updateVar i (FFunc (FVar j) (FVar k)) emptySubst)
-checkFunSort t             = throwError $ errNonFunction 1 t
-
-{-
-sortFunction :: Int -> Sort -> CheckM ([Sort], Sort)
-sortFunction i t
-  = case functionSort t of
-     Nothing          -> throwError $ errNonFunction i t
-     Just (_, ts, t') -> if length ts < i
-                          then throwError $ errNonFunction i t
-                          else let (its, ots) = splitAt i ts
-                               in return (its, foldl FFunc t' ots)
--}
-
---------------------------------------------------------------------------------
--- | API for manipulating Sort Substitutions -----------------------------------
---------------------------------------------------------------------------------
-
-newtype TVSubst = Th (M.HashMap Int Sort) deriving (Show)
-
-lookupVar :: Int -> TVSubst -> Maybe Sort
-lookupVar i (Th m)   = M.lookup i m
-
-updateVar :: Int -> Sort -> TVSubst -> TVSubst
-updateVar i t (Th m) = Th (M.insert i t m)
-
-emptySubst :: TVSubst
-emptySubst = Th M.empty
-
---------------------------------------------------------------------------------
--- | Error messages ------------------------------------------------------------
---------------------------------------------------------------------------------
-
-errElabExpr    :: Expr -> String
-errElabExpr e  = printf "Elaborate fails on %s" (showpp e)
-
-errUnify :: Maybe Expr -> Sort -> Sort -> String
-errUnify eo t1 t2 = printf "Cannot unify %s with %s %s"
-                      (showpp t1) (showpp t2) (unifyExpr eo)
-
-unifyExpr :: Maybe Expr -> String
-unifyExpr Nothing  = ""
-unifyExpr (Just e) = "in expression: " ++ showpp e
-
-errUnifyMany :: [Sort] -> [Sort] -> String
-errUnifyMany ts ts'  = printf "Cannot unify types with different cardinalities %s and %s"
-                         (showpp ts) (showpp ts')
-
-errRel :: Expr -> Sort -> Sort -> String
-errRel e t1 t2       = printf "Invalid Relation %s with operand types %s and %s"
-                         (showpp e) (showpp t1) (showpp t2)
-
-errOp :: Expr -> Sort -> Sort -> String
-errOp e t t'
-  | t == t'          = printf "Operands have non-numeric types %s in %s"
-                         (showpp t) (showpp e)
-  | otherwise        = printf "Operands have different types %s and %s in %s"
-                         (showpp t) (showpp t') (showpp e)
-
-errIte :: Expr -> Expr -> Sort -> Sort -> String
-errIte e1 e2 t1 t2   = printf "Mismatched branches in Ite: then %s : %s, else %s : %s"
-                         (showpp e1) (showpp t1) (showpp e2) (showpp t2)
-
-errCast :: Expr -> Sort -> Sort -> String
-errCast e t' t       = printf "Cannot cast %s of sort %s to incompatible sort %s"
-                         (showpp e) (showpp t') (showpp t)
-
-errUnboundAlts :: Symbol -> [Symbol] -> String
-errUnboundAlts x xs  = printf "Unbound Symbol %s\n Perhaps you meant: %s"
-                        (showpp x)
-                        (foldr1 (\w s -> w ++ ", " ++ s) (showpp <$> xs))
-
-errNonFunction :: Int -> Sort -> String
-errNonFunction i t   = printf "The sort %s is not a function with at least %s arguments\n" (showpp t) (showpp i)
-
-errNonNumeric :: Sort -> String
-errNonNumeric  l     = printf "The sort %s is not numeric" (showpp l)
-
-errNonNumerics :: Symbol -> Symbol -> String
-errNonNumerics l l'  = printf "FObj sort %s and %s are different and not numeric" (showpp l) (showpp l')
-
-errNonFractional :: Sort -> String
-errNonFractional  l  = printf "The sort %s is not fractional" (showpp l)
-
-errBoolSort :: Expr -> Sort -> String
-errBoolSort     e s  = printf "Expressions %s should have bool sort, but has %s" (showpp e) (showpp s)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types.hs b/liquid-fixpoint/src/Language/Fixpoint/Types.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types.hs
+++ /dev/null
@@ -1,18 +0,0 @@
--- | This module re-exports the data types, operations and
---   serialization functions for representing Fixpoint's
---   implication (i.e. subtyping) and well-formedness
---   constraints.
-
-module Language.Fixpoint.Types (module X) where
-
-import Language.Fixpoint.Types.PrettyPrint      as X
-import Language.Fixpoint.Types.Names            as X
-import Language.Fixpoint.Types.Errors           as X
-import Language.Fixpoint.Types.Spans            as X
-import Language.Fixpoint.Types.Sorts            as X
-import Language.Fixpoint.Types.Refinements      as X
-import Language.Fixpoint.Types.Substitutions    as X
-import Language.Fixpoint.Types.Environments     as X
-import Language.Fixpoint.Types.Constraints      as X
-import Language.Fixpoint.Types.Utils            as X
-import Language.Fixpoint.Types.Triggers         as X
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Config.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Config.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Config.hs
+++ /dev/null
@@ -1,200 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable        #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE UndecidableInstances      #-}
-{-# LANGUAGE DeriveGeneric             #-}
-
-module Language.Fixpoint.Types.Config (
-    Config  (..)
-  , defConfig
-  , withPragmas
-
-  , getOpts
-
-  -- * SMT Solver options
-  , SMTSolver (..)
-
-  -- * Eliminate options
-  , Eliminate (..)
-  , useElim
-
-  -- * parallel solving options
-  , defaultMinPartSize
-  , defaultMaxPartSize
-  , multicore
-
-  , queryFile
-) where
-
-import Data.Serialize                (Serialize (..))
-import Control.Monad
-import GHC.Generics
-import System.Console.CmdArgs
-import System.Console.CmdArgs.Explicit
-import System.Environment
-
-import Language.Fixpoint.Utils.Files
-
-
---------------------------------------------------------------------------------
-withPragmas :: Config -> [String] -> IO Config
---------------------------------------------------------------------------------
-withPragmas = foldM withPragma
-
-withPragma :: Config -> String -> IO Config
-withPragma c s = withArgs [s] $ cmdArgsRun
-          config { modeValue = (modeValue config) { cmdArgsValue = c } }
-
---------------------------------------------------------------------------------
--- | Configuration Options -----------------------------------------------------
---------------------------------------------------------------------------------
-
-defaultMinPartSize :: Int
-defaultMinPartSize = 500
-
-defaultMaxPartSize :: Int
-defaultMaxPartSize = 700
-
-
-data Config
-  = Config {
-      srcFile     :: FilePath            -- ^ src file (*.hs, *.ts, *.c, or even *.fq or *.bfq)
-    , cores       :: Maybe Int           -- ^ number of cores used to solve constraints
-    , minPartSize :: Int                 -- ^ Minimum size of a partition
-    , maxPartSize :: Int                 -- ^ Maximum size of a partition. Overrides minPartSize
-    , solver      :: SMTSolver           -- ^ which SMT solver to use
-    , linear      :: Bool                -- ^ not interpret div and mul in SMT
-    , stringTheory :: Bool               -- ^ interpretation of string theory by SMT
-    , defunction  :: Bool                -- ^ defunctionalize (use 'apply' for all uninterpreted applications)
-    , allowHO     :: Bool                -- ^ allow higher order binders in the logic environment
-    , allowHOqs   :: Bool                -- ^ allow higher order qualifiers
-    , eliminate   :: Eliminate           -- ^ eliminate non-cut KVars
-    , elimBound   :: Maybe Int           -- ^ maximum length of KVar chain to eliminate
-    , elimStats   :: Bool                -- ^ print eliminate stats
-    , solverStats :: Bool                -- ^ print solver stats
-    , metadata    :: Bool                -- ^ print meta-data associated with constraints
-    , stats       :: Bool                -- ^ compute constraint statistics
-    , parts       :: Bool                -- ^ partition FInfo into separate fq files
-    , save        :: Bool                -- ^ save FInfo as .bfq and .fq file
-    , minimize    :: Bool                -- ^ min .fq by delta debug (unsat with min constraints)
-    , minimizeQs  :: Bool                -- ^ min .fq by delta debug (sat with min qualifiers)
-    , minimizeKs  :: Bool                -- ^ min .fq by delta debug (sat with min kvars)
-    , minimalSol  :: Bool                -- ^ shrink final solution by pruning redundant qualfiers from fixpoint
-    , gradual     :: Bool                -- ^ solve "gradual" constraints
-    , extensionality   :: Bool           -- ^ allow function extensionality
-    , alphaEquivalence :: Bool           -- ^ allow lambda alpha equivalence axioms
-    , betaEquivalence  :: Bool           -- ^ allow lambda beta equivalence axioms
-    , normalForm       :: Bool           -- ^ allow lambda normal-form equivalence axioms
-    , autoKuts         :: Bool           -- ^ ignore given kut variables
-    , nonLinCuts       :: Bool           -- ^ Treat non-linear vars as cuts
-    , noslice          :: Bool           -- ^ Disable non-concrete KVar slicing
-    , rewriteAxioms    :: Bool           -- ^ allow axiom instantiation via rewriting
-    , arithmeticAxioms :: Bool           -- ^ allow axiom instantiation on arithmetic expressions
-    } deriving (Eq,Data,Typeable,Show,Generic)
-
-instance Default Config where
-  def = defConfig
-
----------------------------------------------------------------------------------------
-
-data SMTSolver = Z3 | Cvc4 | Mathsat
-                 deriving (Eq, Data, Typeable, Generic)
-
-instance Default SMTSolver where
-  def = Z3
-
-instance Show SMTSolver where
-  show Z3      = "z3"
-  show Cvc4    = "cvc4"
-  show Mathsat = "mathsat"
-
----------------------------------------------------------------------------------------
--- | Eliminate describes the number of KVars to eliminate:
---   None = use PA/Quals for ALL k-vars, i.e. no eliminate
---   Some = use PA/Quals for CUT k-vars, i.e. eliminate non-cuts
---   All  = eliminate ALL k-vars, solve cut-vars to TRUE
----------------------------------------------------------------------------------------
-data Eliminate
-  = None
-  | Some
-  | All
-  deriving (Eq, Data, Typeable, Generic)
-
-instance Serialize Eliminate
-
-instance Default Eliminate where
-  def = None
-
-instance Show Eliminate where
-  show None = "none"
-  show Some = "some"
-  show All  = "all"
-
-
-useElim :: Config -> Bool
-useElim cfg = eliminate cfg /= None
-
----------------------------------------------------------------------------------------
-
-defConfig :: Config
-defConfig = Config {
-    srcFile          = "out"   &= args    &= typFile
-  , defunction       = False   &= help "Allow higher order binders into fixpoint environment"
-  , solver           = def     &= help "Name of SMT Solver"
-  , linear           = False   &= help "Use uninterpreted integer multiplication and division"
-  , stringTheory     = False   &= help "Interpretation of String Theory by SMT"
-  , allowHO          = False   &= help "Allow higher order binders into fixpoint environment"
-  , allowHOqs        = False   &= help "Allow higher order qualifiers"
-  , eliminate        = None    &= help "Eliminate KVars [none = quals for all-kvars, cuts = quals for cut-kvars, all = eliminate all-kvars (TRUE for cuts)]"
-  , elimBound        = Nothing &= name "elimBound"  &= help "(alpha) Maximum eliminate-chain depth"
-  , elimStats        = False   &= help "(alpha) Print eliminate stats"
-  , solverStats      = False   &= help "Print solver stats"
-  , save             = False   &= help "Save Query as .fq and .bfq files"
-  , metadata         = False   &= help "Print meta-data associated with constraints"
-  , stats            = False   &= help "Compute constraint statistics"
-  , parts            = False   &= help "Partition constraints into indepdendent .fq files"
-  , cores            = def     &= help "(numeric) Number of threads to use"
-  , minPartSize      = defaultMinPartSize &= help "(numeric) Minimum partition size when solving in parallel"
-  , maxPartSize      = defaultMaxPartSize &= help "(numeric) Maximum partiton size when solving in parallel."
-  , minimize         = False &= help "Delta debug to minimize fq file (unsat with min constraints)"
-  , minimizeQs       = False &= help "Delta debug to minimize fq file (sat with min qualifiers)"
-  , minimizeKs       = False &= help "Delta debug to minimize fq file (sat with max kvars replaced by True)"
-  , minimalSol       = False &= help "Shrink fixpoint by removing implied qualifiers"
-  , gradual          = False &= help "Solve gradual-refinement typing constraints"
-  , extensionality   = False &= help "Allow function extensionality axioms"
-  , alphaEquivalence = False &= help "Allow lambda alpha equivalence axioms"
-  , betaEquivalence  = False &= help "Allow lambda alpha equivalence axioms"
-  , normalForm       = False  &= help "Allow lambda normal-form equivalence axioms"
-  , autoKuts         = False &= help "Ignore given Kut vars, compute from scratch"
-  , nonLinCuts       = False &= help "Treat non-linear kvars as cuts"
-  , noslice          = False &= help "Disable non-concrete KVar slicing"
-  , rewriteAxioms    = False &= help "allow axiom instantiation via rewriting"
-  , arithmeticAxioms = False &= help "Disable non-concrete KVar slicing"
-  }
-  &= verbosity
-  &= program "fixpoint"
-  &= help    "Predicate Abstraction Based Horn-Clause Solver"
-  &= summary "fixpoint Copyright 2009-15 Regents of the University of California."
-  &= details [ "Predicate Abstraction Based Horn-Clause Solver"
-             , ""
-             , "To check a file foo.fq type:"
-             , "  fixpoint foo.fq"
-             ]
-
-config :: Mode (CmdArgs Config)
-config = cmdArgsMode defConfig
-
-getOpts :: IO Config
-getOpts = do md <- cmdArgs defConfig
-             putStrLn banner
-             return md
-
-banner :: String
-banner =  "\n\nLiquid-Fixpoint Copyright 2013-15 Regents of the University of California.\n"
-       ++ "All Rights Reserved.\n"
-
-multicore :: Config -> Bool
-multicore cfg = cores cfg /= Just 1
-
-queryFile :: Ext -> Config -> FilePath
-queryFile e = extFileName e . srcFile
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Constraints.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Constraints.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Constraints.hs
+++ /dev/null
@@ -1,724 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveFunctor              #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE NoMonomorphismRestriction  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE UndecidableInstances       #-}
-{-# LANGUAGE MultiParamTypeClasses      #-}
-{-# LANGUAGE GADTs                      #-}
-{-# LANGUAGE PatternGuards              #-}
-
--- | This module contains the top-level QUERY data types and elements,
---   including (Horn) implication & well-formedness constraints and sets.
-
-module Language.Fixpoint.Types.Constraints (
-
-   -- * Top-level Queries
-    FInfo, SInfo, GInfo (..), FInfoWithOpts(..)
-  , convertFormat
-  , Solver
-
-   -- * Serializing
-  , toFixpoint
-  , writeFInfo
-  , saveQuery
-
-   -- * Constructing Queries
-  , fi
-
-  -- * Constraints
-  , WfC (..), isGWfc, updateWfCExpr
-  , SubC, SubcId
-  , mkSubC, subcId, sid, senv, slhs, srhs, stag, subC, wfC
-  , SimpC (..)
-  , Tag
-  , TaggedC, clhs, crhs
-  , strengthenLhs
-
-  -- * Accessing Constraints
-  , addIds
-  , sinfo
-  , shiftVV
-
-  -- * Qualifiers
-  , Qualifier (..)
-  , trueQual
-  , qualifier
-  , mkQual, remakeQual
-
-  -- * Results
-  , FixSolution
-  , GFixSolution, toGFixSol
-  , Result (..)
-  , unsafe, isUnsafe
-
-  -- * Cut KVars
-  , Kuts (..)
-  , ksMember
-
-  -- * Higher Order Logic
-  , HOInfo (..)
-  , allowHO
-  , allowHOquals
-
-  -- * Axioms
-  , AxiomEnv (..)
-  , Equation (..)
-  , Rewrite  (..)
-  , getEqBody
-  ) where
-
-import qualified Data.Binary as B
-import           Data.Generics             (Data)
-import           Data.Typeable             (Typeable)
-import           GHC.Generics              (Generic)
-import qualified Data.List                 as L -- (sort, nub, delete)
-import           Data.Maybe                (catMaybes)
-import           Control.DeepSeq
-import           Control.Monad             (void)
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Config hiding (allowHO)
-import           Language.Fixpoint.Types.Triggers
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.Errors
-import           Language.Fixpoint.Types.Spans
-import           Language.Fixpoint.Types.Sorts
-import           Language.Fixpoint.Types.Refinements
-import           Language.Fixpoint.Types.Substitutions
-import           Language.Fixpoint.Types.Environments
-import qualified Language.Fixpoint.Utils.Files as Files
-
-import           Language.Fixpoint.Misc
-import           Text.PrettyPrint.HughesPJ
-import qualified Data.HashMap.Strict       as M
-import qualified Data.HashSet              as S
-
---------------------------------------------------------------------------------
--- | Constraints ---------------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ type Tag = { v : [Int] | len v == 1 } @-}
-
-type Tag           = [Int]
-
-data WfC a  =  WfC  { wenv  :: !IBindEnv
-                    , wrft  :: (Symbol, Sort, KVar)
-                    , winfo :: !a
-                    }
-             | GWfC { wenv  :: !IBindEnv
-                    , wrft  :: !(Symbol, Sort, KVar)
-                    , winfo :: !a
-                    , wexpr :: !Expr
-                    }
-              deriving (Eq, Generic, Functor)
-
-
-updateWfCExpr :: (Expr -> Expr) -> WfC a -> WfC a
-updateWfCExpr _ w@(WfC {})  = w
-updateWfCExpr f w@(GWfC {}) = w{wexpr = f (wexpr w)}
-
-isGWfc :: WfC a -> Bool
-isGWfc (GWfC _ _ _ _) = True
-isGWfc (WfC _ _ _)    = False
-
-type SubcId = Integer
-
-data SubC a = SubC { _senv  :: !IBindEnv
-                   , slhs   :: !SortedReft
-                   , srhs   :: !SortedReft
-                   , _sid   :: !(Maybe SubcId)
-                   , _stag  :: !Tag
-                   , _sinfo :: !a
-                   }
-              deriving (Eq, Generic, Functor)
-
-data SimpC a = SimpC { _cenv  :: !IBindEnv
-                     , _crhs  :: !Expr
-                     , _cid   :: !(Maybe Integer)
-                     , _ctag  :: !Tag
-                     , _cinfo :: !a
-                     }
-              deriving (Generic, Functor)
-
-strengthenLhs :: Expr -> SubC a -> SubC a
-strengthenLhs e subc = subc {slhs = go (slhs subc)}
-  where
-    go (RR s (Reft(v, r))) = RR s (Reft (v, pAnd [r, e]))
-
-class TaggedC c a where
-  senv  :: c a -> IBindEnv
-  sid   :: c a -> Maybe Integer
-  stag  :: c a -> Tag
-  sinfo :: c a -> a
-  clhs  :: BindEnv -> c a -> [(Symbol, SortedReft)]
-  crhs  :: c a -> Expr
-
-instance TaggedC SimpC a where
-  senv      = _cenv
-  sid       = _cid
-  stag      = _ctag
-  sinfo     = _cinfo
-  crhs      = _crhs
-  clhs be c = envCs be (senv c)
-
-instance TaggedC SubC a where
-  senv      = _senv
-  sid       = _sid
-  stag      = _stag
-  sinfo     = _sinfo
-  crhs      = reftPred . sr_reft . srhs
-  clhs be c = sortedReftBind (slhs c) : envCs be (senv c)
-
-sortedReftBind :: SortedReft -> (Symbol, SortedReft)
-sortedReftBind sr = (x, sr)
-  where
-    Reft (x, _)   = sr_reft sr
-
-subcId :: (TaggedC c a) => c a -> SubcId
-subcId = mfromJust "subCId" . sid
-
----------------------------------------------------------------------------
--- | Solutions and Results
----------------------------------------------------------------------------
-
-type GFixSolution = GFixSol Expr
-
-type FixSolution  = M.HashMap KVar Expr
-newtype GFixSol e = GSol (M.HashMap KVar (e, [e]))
-  deriving (Generic, Monoid, Functor)
-
-toGFixSol :: M.HashMap KVar (e, [e]) -> GFixSol e
-toGFixSol = GSol
-
-
-data Result a = Result { resStatus    :: !(FixResult a)
-                       , resSolution  :: !FixSolution
-                       , gresSolution :: !GFixSolution }
-                deriving (Generic, Show)
-
-instance Monoid (Result a) where
-  mempty        = Result mempty mempty mempty
-  mappend r1 r2 = Result stat soln gsoln
-    where
-      stat      = mappend (resStatus r1)    (resStatus r2)
-      soln      = mappend (resSolution r1)  (resSolution r2)
-      gsoln     = mappend (gresSolution r1) (gresSolution r2)
-
-unsafe :: Result a 
-unsafe = mempty {resStatus = Unsafe []}
-
-isUnsafe :: Result a -> Bool
-isUnsafe r | Unsafe _ <- resStatus r 
-  = True
-isUnsafe _ = False
-
-instance (Ord a, Fixpoint a) => Fixpoint (FixResult (SubC a)) where
-  toFix Safe             = text "Safe"
-  -- toFix (UnknownError d) = text $ "Unknown Error: " ++ d
-  toFix (Crash xs msg)   = vcat $ [ text "Crash!" ] ++  pprSinfos "CRASH: " xs ++ [parens (text msg)]
-  toFix (Unsafe xs)      = vcat $ text "Unsafe:" : pprSinfos "WARNING: " xs
-
-pprSinfos :: (Ord a, Fixpoint a) => String -> [SubC a] -> [Doc]
-pprSinfos msg = map ((text msg <>) . toFix) . L.sort . fmap sinfo
-
-instance Fixpoint a => Show (WfC a) where
-  show = showFix
-
-instance Fixpoint a => Show (SubC a) where
-  show = showFix
-
-instance Fixpoint a => Show (SimpC a) where
-  show = showFix
-
-instance Fixpoint a => PPrint (SubC a) where
-  pprintTidy _ = toFix
-
-instance Fixpoint a => PPrint (SimpC a) where
-  pprintTidy _ = toFix
-
-instance Fixpoint a => PPrint (WfC a) where
-  pprintTidy _ = toFix
-
-instance Fixpoint a => Fixpoint (SubC a) where
-  toFix c     = hang (text "\n\nconstraint:") 2 bd
-     where bd =   toFix (senv c)
-              $+$ text "lhs" <+> toFix (slhs c)
-              $+$ text "rhs" <+> toFix (srhs c)
-              $+$ (pprId (sid c) <+> text "tag" <+> toFix (stag c))
-              $+$ toFixMeta (text "constraint" <+> pprId (sid c)) (toFix (sinfo c))
-
-instance Fixpoint a => Fixpoint (SimpC a) where
-  toFix c     = hang (text "\n\nsimpleConstraint:") 2 bd
-     where bd =   toFix (senv c)
-              $+$ text "rhs" <+> toFix (crhs c)
-              $+$ (pprId (sid c) <+> text "tag" <+> toFix (stag c))
-              $+$ toFixMeta (text "simpleConstraint" <+> pprId (sid c)) (toFix (sinfo c))
-
-instance Fixpoint a => Fixpoint (WfC a) where
-  toFix w     = hang (text "\n\nwf:") 2 bd
-    where bd  =   toFix (wenv w)
-              -- NOTE: this next line is printed this way for compatability with the OCAML solver
-              $+$ text "reft" <+> toFix (RR t (Reft (v, PKVar k mempty)))
-              $+$ toFixMeta (text "wf") (toFix (winfo w))
-              $+$ if (isGWfc w) then (toFixMeta (text "expr") (toFix (wexpr w))) else mempty
-          (v, t, k) = wrft w
-
-toFixMeta :: Doc -> Doc -> Doc
-toFixMeta k v = text "// META" <+> k <+> text ":" <+> v
-
-pprId :: Show a => Maybe a -> Doc
-pprId (Just i)  = "id" <+> tshow i
-pprId _         = ""
-
-instance PPrint GFixSolution where
-  pprintTidy k (GSol xs) = vcat $ punctuate "\n\n" (pprintTidyGradual k <$> M.toList xs)
-
-pprintTidyGradual :: Tidy -> (KVar, (Expr, [Expr])) -> Doc
-pprintTidyGradual _ (x, (e, es)) = ppLocOfKVar x <+> text ":=" <+> (ppNonTauto " && " e <> pprint es)
-
-ppLocOfKVar :: KVar -> Doc
-ppLocOfKVar = text. dropWhile (/='(') . symbolString .kv
-
-ppNonTauto :: Doc -> Expr -> Doc
-ppNonTauto d e
-  | isTautoPred e = mempty
-  | otherwise     = pprint e <> d
-
-instance Show   GFixSolution where
-  show = showpp
-
-----------------------------------------------------------------
-instance B.Binary Qualifier
-instance B.Binary Kuts
-instance B.Binary HOInfo
-instance B.Binary GFixSolution
-instance (B.Binary a) => B.Binary (SubC a)
-instance (B.Binary a) => B.Binary (WfC a)
-instance (B.Binary a) => B.Binary (SimpC a)
-instance (B.Binary (c a), B.Binary a) => B.Binary (GInfo c a)
-
-instance NFData Qualifier
-instance NFData Kuts
-instance NFData HOInfo
-instance NFData GFixSolution
-
-instance (NFData a) => NFData (SubC a)
-instance (NFData a) => NFData (WfC a)
-instance (NFData a) => NFData (SimpC a)
-instance (NFData (c a), NFData a) => NFData (GInfo c a)
-instance (NFData a) => NFData (Result a)
-
----------------------------------------------------------------------------
--- | "Smart Constructors" for Constraints ---------------------------------
----------------------------------------------------------------------------
-
-wfC :: (Fixpoint a) => IBindEnv -> SortedReft -> a -> [WfC a]
-wfC be sr x = if all isEmptySubst (sus ++ gsus)
-                then [WfC be (v, sr_sort sr, k) x | k <- ks] ++ [GWfC be (v, sr_sort sr, k) x e | (k, e) <- gs ]
-                else errorstar msg
-  where
-    msg             = "wfKvar: malformed wfC " ++ show sr
-    Reft (v, ras)   = sr_reft sr
-    (ks, sus)       = unzip $ go ras
-    (gs, gsus)      = unzip $ go' ras
-
-    go (PKVar k su) = [(k, su)]
-    go (PAnd es)    = [(k, su) | PKVar k su <- es]
-    go _            = []
-
-    go' (PGrad k su e) = [((k, e), su)]
-    go' (PAnd es)      = concatMap go' es
-    go' _              = []
-
-mkSubC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> SubC a
-mkSubC = SubC
-
-subC :: IBindEnv -> SortedReft -> SortedReft -> Maybe Integer -> Tag -> a -> [SubC a]
-subC γ sr1 sr2 i y z = [SubC γ sr1' (sr2' r2') i y z | r2' <- reftConjuncts r2]
-   where
-     RR t1 r1          = sr1
-     RR t2 r2          = sr2
-     sr1'              = RR t1 $ shiftVV r1  vv'
-     sr2' r2'          = RR t2 $ shiftVV r2' vv'
-     vv'               = mkVV i
-
-mkVV :: Maybe Integer -> Symbol
-mkVV (Just i)  = vv $ Just i
-mkVV Nothing   = vvCon
-
-shiftVV :: Reft -> Symbol -> Reft
-shiftVV r@(Reft (v, ras)) v'
-   | v == v'   = r
-   | otherwise = Reft (v', subst1 ras (v, EVar v'))
-
-addIds :: [SubC a] -> [(Integer, SubC a)]
-addIds = zipWith (\i c -> (i, shiftId i $ c {_sid = Just i})) [1..]
-  where -- Adding shiftId to have distinct VV for SMT conversion
-    shiftId i c = c { slhs = shiftSR i $ slhs c }
-                    { srhs = shiftSR i $ srhs c }
-    shiftSR i sr = sr { sr_reft = shiftR i $ sr_reft sr }
-    shiftR i r@(Reft (v, _)) = shiftVV r (intSymbol v i)
-
---------------------------------------------------------------------------------
--- | Qualifiers ----------------------------------------------------------------
---------------------------------------------------------------------------------
-
-data Qualifier = Q { qName   :: !Symbol          -- ^ Name
-                   , qParams :: [(Symbol, Sort)] -- ^ Parameters
-                   , qBody   :: !Expr            -- ^ Predicate
-                   , qPos    :: !SourcePos       -- ^ Source Location
-                   }
-               deriving (Eq, Show, Data, Typeable, Generic)
-
-trueQual :: Qualifier
-trueQual = Q (symbol ("QTrue" :: String)) [] mempty (dummyPos "trueQual")
-
-instance Loc Qualifier where
-  srcSpan q = SS l l
-    where
-      l     = qPos q
-
-instance Fixpoint Qualifier where
-  toFix = pprQual
-
-instance PPrint Qualifier where
-  pprintTidy k q = "qualif" <+> pprintTidy k (qName q) <+> "defined at" <+> pprintTidy k (qPos q)
-
-pprQual :: Qualifier -> Doc
-pprQual (Q n xts p l) = text "qualif" <+> text (symbolString n) <> parens args <> colon <+> parens (toFix p) <+> text "//" <+> toFix l
-  where
-    args              = intersperse comma (toFix <$> xts)
-
-qualifier :: SEnv Sort -> SourcePos -> SEnv Sort -> Symbol -> Sort -> Expr -> Qualifier
-qualifier lEnv l γ v so p   = Q "Auto" ((v, so) : xts) p l
-  where
-    xs  = L.delete v $ L.nub $ syms p
-    xts = catMaybes $ zipWith (envSort l lEnv γ) xs [0..]
-
-envSort :: SourcePos -> SEnv Sort -> SEnv Sort -> Symbol -> Integer -> Maybe (Symbol, Sort)
-envSort l lEnv tEnv x i
-  | Just t <- lookupSEnv x tEnv = Just (x, t)
-  | Just _ <- lookupSEnv x lEnv = Nothing
-  | otherwise                   = Just (x, ai)
-  where
-    ai  = {- trace msg $ -} fObj $ Loc l l $ tempSymbol "LHTV" i
-    -- msg = "unknown symbol in qualifier: " ++ show x
-
-remakeQual :: Qualifier -> Qualifier
-remakeQual q = {- traceShow msg $ -} mkQual (qName q) (qParams q) (qBody q) (qPos q)
-
--- | constructing qualifiers
-mkQual :: Symbol -> [(Symbol, Sort)] -> Expr -> SourcePos -> Qualifier
-mkQual n xts p = Q n ((v, t) : yts) (subst su p)
-  where
-    (v, t):zts = gSorts xts
-    -- yts        = first mkParam <$> zts
-    yts        = zts
-    su         = mkSubst $ zipWith (\(z,_) (y,_) -> (z, eVar y)) zts yts
-
-gSorts :: [(a, Sort)] -> [(a, Sort)]
-gSorts xts     = [(x, substVars su t) | (x, t) <- xts]
-  where
-    su         = (`zip` [0..]) . sortNub . concatMap (sortVars . snd) $ xts
-
-substVars :: [(Symbol, Int)] -> Sort -> Sort
-substVars su = mapSort' tx
-  where
-    tx (FObj x)
-      | Just i <- lookup x su = FVar i
-    tx t                      = t
-
-sortVars :: Sort -> [Symbol]
-sortVars = foldSort' go []
-  where
-    go b (FObj x) = x : b
-    go b _        = b
-
--- COPIED from Visitor due to cyclic deps
-mapSort' :: (Sort -> Sort) -> Sort -> Sort
-mapSort' f = step
-  where
-    step             = go . f
-    go (FFunc t1 t2) = FFunc (step t1) (step t2)
-    go (FApp t1 t2)  = FApp (step t1) (step t2)
-    go (FAbs i t)    = FAbs i (step t)
-    go t             = t
-
--- COPIED from Visitor due to cyclic deps
-foldSort' :: (a -> Sort -> a) -> a -> Sort -> a
-foldSort' f = step
-  where
-    step b t           = go (f b t) t
-    go b (FFunc t1 t2) = L.foldl' step b [t1, t2]
-    go b (FApp t1 t2)  = L.foldl' step b [t1, t2]
-    go b (FAbs _ t)    = go b t
-    go b _             = b
-
-
---------------------------------------------------------------------------------
--- | Constraint Cut Sets -------------------------------------------------------
---------------------------------------------------------------------------------
-
-newtype Kuts = KS { ksVars :: S.HashSet KVar }
-               deriving (Eq, Show, Generic)
-
-instance Fixpoint Kuts where
-  toFix (KS s) = vcat $ ((text "cut " <>) . toFix) <$> S.toList s
-
-ksMember :: KVar -> Kuts -> Bool
-ksMember k (KS s) = S.member k s
-
-instance Monoid Kuts where
-  mempty        = KS S.empty
-  mappend k1 k2 = KS $ S.union (ksVars k1) (ksVars k2)
-
-------------------------------------------------------------------------
--- | Constructing Queries
-------------------------------------------------------------------------
-fi :: [SubC a]
-   -> [WfC a]
-   -> BindEnv
-   -> SEnv Sort
-   -> SEnv Sort
-   -> Kuts
-   -> [Qualifier]
-   -> M.HashMap BindId a
-   -> Bool
-   -> Bool
-   -> [Triggered Expr]
-   -> AxiomEnv
-   -> GInfo SubC a
-fi cs ws binds ls ds ks qs bi aHO aHOq es axe
-  = FI { cm       = M.fromList $ addIds cs
-       , ws       = M.fromListWith err [(k, w) | w <- ws, let (_, _, k) = wrft w]
-       , bs       = binds
-       , gLits    = ls
-       , dLits    = ds
-       , kuts     = ks
-       , quals    = qs
-       , bindInfo = bi
-       , hoInfo   = HOI aHO aHOq
-       , asserts  = es
-       , ae       = axe
-       }
-  where
-    --TODO handle duplicates gracefully instead (merge envs by intersect?)
-    err = errorstar "multiple WfCs with same kvar"
-
-------------------------------------------------------------------------
--- | Top-level Queries
-------------------------------------------------------------------------
-
-data FInfoWithOpts a = FIO {fioFI :: FInfo a, fioOpts :: [String]}
-
-type FInfo a   = GInfo SubC a
-type SInfo a   = GInfo SimpC a
-
-data HOInfo = HOI { hoBinds :: Bool          -- ^ Allow higher order binds in the environemnt
-                  , hoQuals :: Bool          -- ^ Allow higher order quals
-                  }
-  deriving (Eq, Show, Generic)
-
-allowHO, allowHOquals :: GInfo c a -> Bool
-allowHO      = hoBinds . hoInfo
-allowHOquals = hoQuals . hoInfo
-
-data GInfo c a =
-  FI { cm       :: !(M.HashMap SubcId (c a)) -- ^ cst id |-> Horn Constraint
-     , ws       :: !(M.HashMap KVar (WfC a))  -- ^ Kvar  |-> WfC defining its scope/args
-     , bs       :: !BindEnv                   -- ^ Bind  |-> (Symbol, SortedReft)
-     , gLits    :: !(SEnv Sort)               -- ^ Global Constant symbols
-     , dLits    :: !(SEnv Sort)               -- ^ Distinct Constant symbols
-     , kuts     :: !Kuts                      -- ^ Set of KVars *not* to eliminate
-  --    , packs    :: !Packs                     -- ^ Pack-sets of related KVars
-     , quals    :: ![Qualifier]               -- ^ Abstract domain
-     , bindInfo :: !(M.HashMap BindId a)      -- ^ Metadata about binders
-     , hoInfo   :: !HOInfo                    -- ^ Higher Order info
-     , asserts  :: ![Triggered Expr]
-     , ae       :: AxiomEnv
-     }
-  deriving (Eq, Show, Functor, Generic)
-
-
-instance Monoid HOInfo where
-  mempty        = HOI False False
-  mappend i1 i2 = HOI { hoBinds = hoBinds i1 || hoBinds i2
-                      , hoQuals = hoQuals i1 || hoQuals i2
-                      }
-
-instance Monoid (GInfo c a) where
-  mempty        = FI M.empty mempty mempty mempty mempty mempty mempty mempty mempty mempty mempty
-  mappend i1 i2 = FI { cm       = mappend (cm i1)       (cm i2)
-                     , ws       = mappend (ws i1)       (ws i2)
-                     , bs       = mappend (bs i1)       (bs i2)
-                     , gLits    = mappend (gLits i1)    (gLits i2)
-                     , dLits    = mappend (dLits i1)    (dLits i2)
-                     , kuts     = mappend (kuts i1)     (kuts i2)
-                     -- , packs    = mappend (packs i1)    (packs i2)
-                     , quals    = mappend (quals i1)    (quals i2)
-                     , bindInfo = mappend (bindInfo i1) (bindInfo i2)
-                     , hoInfo   = mappend (hoInfo i1)   (hoInfo i2)
-                     , asserts  = mappend (asserts i1)  (asserts i2)
-                     , ae  = mappend (ae i1)  (ae i2)
-                     }
-
-instance PTable (SInfo a) where
-  ptable z = DocTable [ (text "# Sub Constraints", pprint $ length $ cm z)
-                      , (text "# WF  Constraints", pprint $ length $ ws z)
-                      ]
-
---------------------------------------------------------------------------
--- | Rendering Queries
---------------------------------------------------------------------------
-toFixpoint :: (Fixpoint a, Fixpoint (c a)) => Config -> GInfo c a -> Doc
---------------------------------------------------------------------------
-toFixpoint cfg x' =    cfgDoc   cfg
-                  $++$ qualsDoc x'
-                  $++$ kutsDoc  x'
-                --   $++$ packsDoc x'
-                  $++$ gConDoc   x'
-                  $++$ dConDoc   x'
-                  $++$ bindsDoc x'
-                  $++$ csDoc    x'
-                  $++$ wsDoc    x'
-                  $++$ binfoDoc x'
-                  $++$ text "\n"
-  where
-    cfgDoc cfg    = text ("// " ++ show cfg)
-    gConDoc       = sEnvDoc "constant"             . gLits
-    dConDoc       = sEnvDoc "distinct"             . dLits
-    csDoc         = vcat     . map toFix . M.elems . cm
-    wsDoc         = vcat     . map toFix . M.elems . ws
-    kutsDoc       = toFix    . kuts
-    -- packsDoc      = toFix    . packs
-    bindsDoc      = toFix    . bs
-    qualsDoc      = vcat     . map toFix . quals
-    metaDoc (i,d) = toFixMeta (text "bind" <+> toFix i) (toFix d)
-    mdata         = metadata cfg
-    binfoDoc
-      | mdata     = vcat     . map metaDoc . M.toList . bindInfo
-      | otherwise = \_ -> text "\n"
-
-($++$) :: Doc -> Doc -> Doc
-x $++$ y = x $+$ text "\n" $+$ y
-
-sEnvDoc :: Doc -> SEnv Sort -> Doc
-sEnvDoc d       = vcat . map kvD . toListSEnv
-  where
-    kvD (c, so) = d <+> toFix c <+> ":" <+> parens (toFix so)
-
-writeFInfo :: (Fixpoint a, Fixpoint (c a)) => Config -> GInfo c a -> FilePath -> IO ()
-writeFInfo cfg fq f = writeFile f (render $ toFixpoint cfg fq)
-
---------------------------------------------------------------------------
--- | Query Conversions: FInfo to SInfo
----------------------------------------------------------------------------
-convertFormat :: (Fixpoint a) => FInfo a -> SInfo a
----------------------------------------------------------------------------
-convertFormat fi = fi' { cm = subcToSimpc <$> cm fi' }
-  where
-    fi'          = M.foldlWithKey' blowOutVV fi $ cm fi
-
-subcToSimpc :: SubC a -> SimpC a
-subcToSimpc s = SimpC
-  { _cenv     = senv s
-  , _crhs     = reftPred $ sr_reft $ srhs s
-  , _cid      = sid s
-  , _ctag     = stag s
-  , _cinfo    = sinfo s
-  }
-
-blowOutVV :: FInfo a -> Integer -> SubC a -> FInfo a
-blowOutVV fi i subc = fi { bs = be', cm = cm' }
-  where
-    sr            = slhs subc
-    x             = reftBind $ sr_reft sr
-    (bindId, be') = insertBindEnv x sr $ bs fi
-    subc'         = subc { _senv = insertsIBindEnv [bindId] $ senv subc }
-    cm'           = M.insert i subc' $ cm fi
-
-
----------------------------------------------------------------------------
--- | Top level Solvers ----------------------------------------------------
----------------------------------------------------------------------------
-type Solver a = Config -> FInfo a -> IO (Result (Integer, a))
-
---------------------------------------------------------------------------------
-saveQuery :: Config -> FInfo a -> IO ()
---------------------------------------------------------------------------------
-saveQuery cfg fi = {- when (save cfg) $ -} do
-  let fi'  = void fi
-  saveBinaryQuery cfg fi'
-  saveTextQuery cfg   fi'
-
-saveBinaryQuery :: Config -> FInfo () -> IO ()
-saveBinaryQuery cfg fi = do
-  let bfq  = queryFile Files.BinFq cfg
-  putStrLn $ "Saving Binary Query: " ++ bfq ++ "\n"
-  ensurePath bfq
-  B.encodeFile bfq fi
-
-saveTextQuery :: Config -> FInfo () -> IO ()
-saveTextQuery cfg fi = do
-  let fq   = queryFile Files.Fq cfg
-  putStrLn $ "Saving Text Query: "   ++ fq ++ "\n"
-  ensurePath fq
-  writeFile fq $ render (toFixpoint cfg fi)
-
----------------------------------------------------------------------------
--- | Axiom Instantiation Information --------------------------------------
----------------------------------------------------------------------------
-data AxiomEnv = AEnv { aenvSyms    :: ![Symbol]
-                     , aenvEqs     :: ![Equation]
-                     , aenvSimpl   :: ![Rewrite]
-                     , aenvFuel    :: M.HashMap SubcId Int
-                     , aenvExpand  :: M.HashMap SubcId Bool
-                     }
-  deriving (Eq, Show, Generic)
-
-instance B.Binary AxiomEnv
-instance B.Binary Rewrite
-instance B.Binary Equation
-instance B.Binary SMTSolver
-instance B.Binary Eliminate
-instance NFData AxiomEnv
-instance NFData Rewrite
-instance NFData Equation
-instance NFData SMTSolver
-instance NFData Eliminate
-
-instance Monoid AxiomEnv where
-  mempty = AEnv [] [] [] (M.fromList []) (M.fromList [])
-  mappend a1 a2 = AEnv aenvSyms' aenvEqs' aenvSimpl' aenvFuel' aenvExpand'
-    where aenvSyms'    = mappend (aenvSyms a1) (aenvSyms a2)
-          aenvEqs'     = mappend (aenvEqs a1) (aenvEqs a2)
-          aenvSimpl'   = mappend (aenvSimpl a1) (aenvSimpl a2)
-          aenvFuel'    = mappend (aenvFuel a1) (aenvFuel a2)
-          aenvExpand'  = mappend (aenvExpand a1) (aenvExpand a2)
-
-data Equation = Equ { eqName :: Symbol
-                    , eqArgs :: [Symbol]
-                    , eqBody :: Expr
-                    }
-  deriving (Eq, Show, Generic)
-
--- eg  SMeasure (f D [x1..xn] e)
--- for f (D x1 .. xn) = e
-data Rewrite  = SMeasure  { smName  :: Symbol         -- eg. f
-                          , smDC    :: Symbol         -- eg. D
-                          , smArgs  :: [Symbol]       -- eg. xs
-                          , smBody  :: Expr           -- eg. e[xs]
-                          }
-  deriving (Eq, Show, Generic)
-
-getEqBody :: Equation -> Maybe Expr
-getEqBody (Equ  x xs (PAnd ((PAtom Eq fxs e):_)))
-  | (EVar f, es) <- splitEApp fxs
-  , f == x
-  , es == (EVar <$> xs)
-  = Just e
-getEqBody _
-  = Nothing
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Environments.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Environments.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Environments.hs
+++ /dev/null
@@ -1,317 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveFoldable             #-}
-{-# LANGUAGE DeriveFunctor              #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE DeriveTraversable          #-}
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE NoMonomorphismRestriction  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE UndecidableInstances       #-}
-{-# LANGUAGE MultiParamTypeClasses      #-}
-{-# LANGUAGE GADTs                      #-}
-
-module Language.Fixpoint.Types.Environments (
-
-  -- * Environments
-    SEnv, SESearch(..)
-  , emptySEnv, toListSEnv, fromListSEnv, fromMapSEnv
-  , mapSEnvWithKey, mapSEnv, mapMSEnv
-  , insertSEnv, deleteSEnv, memberSEnv, lookupSEnv, unionSEnv, unionSEnv'
-  , intersectWithSEnv
-  , differenceSEnv
-  , filterSEnv
-  , lookupSEnvWithDistance
-  , envCs
-
-  -- * Local Constraint Environments
-  , IBindEnv, BindId, BindMap
-  , emptyIBindEnv
-  , insertsIBindEnv
-  , deleteIBindEnv
-  , elemsIBindEnv
-  , memberIBindEnv
-  , unionIBindEnv
-  , diffIBindEnv
-  , intersectionIBindEnv
-  , nullIBindEnv
-  , filterIBindEnv
-
-  -- * Global Binder Environments
-  , BindEnv, beBinds
-  , emptyBindEnv
-  , insertBindEnv, lookupBindEnv
-  , filterBindEnv, mapBindEnv, mapWithKeyMBindEnv, adjustBindEnv
-  , bindEnvFromList, bindEnvToList, elemsBindEnv
-
-  -- * Information needed to lookup and update Solutions
-  , SolEnv (..)
-
-  -- * Groups of KVars (needed by eliminate)
-  , Packs (..)
-  , getPack
-  , makePack
-  ) where
-
--- import qualified Data.Binary as B
-import qualified Data.Binary as B
-import qualified Data.List   as L
-import           Data.Generics             (Data)
-import           Data.Typeable             (Typeable)
-import           GHC.Generics              (Generic)
-import           Data.Hashable
-import qualified Data.HashMap.Strict       as M
-import qualified Data.HashSet              as S
-import           Data.Maybe
-import           Data.Function             (on)
-import           Text.PrettyPrint.HughesPJ
-import           Control.DeepSeq
-
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.Refinements
-import           Language.Fixpoint.Types.Substitutions ()
-import           Language.Fixpoint.Misc
-
-type BindId        = Int
-type BindMap a     = M.HashMap BindId a
-
-newtype IBindEnv   = FB (S.HashSet BindId) deriving (Eq, Data, Typeable, Generic)
-
-instance PPrint IBindEnv where
-  pprintTidy _ = pprint . L.sort . elemsIBindEnv
-
-newtype SEnv a     = SE { seBinds :: M.HashMap Symbol a }
-                     deriving (Eq, Data, Typeable, Generic, Foldable, Traversable)
-
-data SizedEnv a    = BE { _beSize  :: !Int
-                        , beBinds :: !(BindMap a)
-                        } deriving (Eq, Show, Functor, Foldable, Generic, Traversable)
-
-instance PPrint a => PPrint (SizedEnv a) where
-  pprintTidy k (BE _ m) = pprintTidy k m
-
-type BindEnv       = SizedEnv (Symbol, SortedReft)
--- Invariant: All BindIds in the map are less than beSize
-
-data SolEnv        = SolEnv { soeBinds :: !BindEnv
-                            -- , soePacks :: !Packs
-                            } deriving (Eq, Show, Generic)
-
-instance PPrint a => PPrint (SEnv a) where
-  pprintTidy k = pprintKVs k . L.sortBy (compare `on` fst) . toListSEnv
-
-toListSEnv              ::  SEnv a -> [(Symbol, a)]
-toListSEnv (SE env)     = M.toList env
-
-fromListSEnv            ::  [(Symbol, a)] -> SEnv a
-fromListSEnv            = SE . M.fromList
-
-fromMapSEnv             ::  M.HashMap Symbol a -> SEnv a
-fromMapSEnv             = SE
-
-mapSEnv                 :: (a -> b) -> SEnv a -> SEnv b
-mapSEnv f (SE env)      = SE (fmap f env)
-
-mapMSEnv                :: (Monad m) => (a -> m b) -> SEnv a -> m (SEnv b)
-mapMSEnv f env          = fromListSEnv <$> mapM (secondM f) (toListSEnv env)
-
-mapSEnvWithKey          :: ((Symbol, a) -> (Symbol, b)) -> SEnv a -> SEnv b
-mapSEnvWithKey f        = fromListSEnv . fmap f . toListSEnv
-
-deleteSEnv :: Symbol -> SEnv a -> SEnv a
-deleteSEnv x (SE env)   = SE (M.delete x env)
-
-insertSEnv :: Symbol -> a -> SEnv a -> SEnv a
-insertSEnv x v (SE env) = SE (M.insert x v env)
-
-lookupSEnv :: Symbol -> SEnv a -> Maybe a
-lookupSEnv x (SE env)   = M.lookup x env
-
-emptySEnv :: SEnv a
-emptySEnv               = SE M.empty
-
-memberSEnv :: Symbol -> SEnv a -> Bool
-memberSEnv x (SE env)   = M.member x env
-
-intersectWithSEnv :: (v1 -> v2 -> a) -> SEnv v1 -> SEnv v2 -> SEnv a
-intersectWithSEnv f (SE m1) (SE m2) = SE (M.intersectionWith f m1 m2)
-
-differenceSEnv :: SEnv a -> SEnv w -> SEnv a
-differenceSEnv (SE m1) (SE m2) = SE (M.difference m1 m2)
-
-filterSEnv :: (a -> Bool) -> SEnv a -> SEnv a
-filterSEnv f (SE m)     = SE (M.filter f m)
-
-unionSEnv :: SEnv a -> M.HashMap Symbol a -> SEnv a
-unionSEnv (SE m1) m2    = SE (M.union m1 m2)
-
-unionSEnv' :: SEnv a -> SEnv a -> SEnv a
-unionSEnv' (SE m1) (SE m2)    = SE (M.union m1 m2)
-
-lookupSEnvWithDistance :: Symbol -> SEnv a -> SESearch a
-lookupSEnvWithDistance x (SE env)
-  = case M.lookup x env of
-     Just z  -> Found z
-     Nothing -> Alts $ symbol <$> alts
-  where
-    alts       = takeMin $ zip (editDistance x' <$> ss) ss
-    ss         = symbolString <$> fst <$> M.toList env
-    x'         = symbolString x
-    takeMin xs = [z | (d, z) <- xs, d == getMin xs]
-    getMin     = minimum . (fst <$>)
-
-
-data SESearch a = Found a | Alts [Symbol]
-
--- | Functions for Indexed Bind Environment
-
-
-instance Monoid IBindEnv where
-  mempty                  = emptyIBindEnv
-  mappend (FB e1) (FB e2) = FB (e1 `mappend` e2)
-
-emptyIBindEnv :: IBindEnv
-emptyIBindEnv = FB S.empty
-
-deleteIBindEnv :: BindId -> IBindEnv -> IBindEnv
-deleteIBindEnv i (FB s) = FB (S.delete i s)
-
-memberIBindEnv :: BindId -> IBindEnv -> Bool
-memberIBindEnv i (FB s) = S.member i s
-
-insertsIBindEnv :: [BindId] -> IBindEnv -> IBindEnv
-insertsIBindEnv is (FB s) = FB (foldr S.insert s is)
-
-elemsIBindEnv :: IBindEnv -> [BindId]
-elemsIBindEnv (FB s) = S.toList s
-
-
--- | Functions for Global Binder Environment
-insertBindEnv :: Symbol -> SortedReft -> BindEnv -> (BindId, BindEnv)
-insertBindEnv x r (BE n m) = (n, BE (n + 1) (M.insert n (x, r) m))
-
-emptyBindEnv :: BindEnv
-emptyBindEnv = BE 0 M.empty
-
-filterBindEnv   :: (BindId -> Symbol -> SortedReft -> Bool) -> BindEnv -> BindEnv
-filterBindEnv f (BE n be) = BE n (M.filterWithKey (\ n (x, r) -> f n x r) be)
-
-bindEnvFromList :: [(BindId, Symbol, SortedReft)] -> BindEnv
-bindEnvFromList [] = emptyBindEnv
-bindEnvFromList bs = BE (1 + maxId) be
-  where
-    maxId          = maximum $ fst3 <$> bs
-    be             = M.fromList [(n, (x, r)) | (n, x, r) <- bs]
-
-elemsBindEnv :: BindEnv -> [BindId]
-elemsBindEnv be = fst3 <$> bindEnvToList be
-
-bindEnvToList :: BindEnv -> [(BindId, Symbol, SortedReft)]
-bindEnvToList (BE _ be) = [(n, x, r) | (n, (x, r)) <- M.toList be]
-
-mapBindEnv :: (BindId -> (Symbol, SortedReft) -> (Symbol, SortedReft)) -> BindEnv -> BindEnv
-mapBindEnv f (BE n m) = BE n $ M.mapWithKey f m
--- (\i z -> tracepp (msg i z) $ f z) m
---  where
---    msg i z = "beMap " ++ show i ++ " " ++ show z
-
-mapWithKeyMBindEnv :: (Monad m) => ((BindId, (Symbol, SortedReft)) -> m (BindId, (Symbol, SortedReft))) -> BindEnv -> m BindEnv
-mapWithKeyMBindEnv f (BE n m) = (BE n . M.fromList) <$> mapM f (M.toList m)
-
-lookupBindEnv :: BindId -> BindEnv -> (Symbol, SortedReft)
-lookupBindEnv k (BE _ m) = fromMaybe err (M.lookup k m)
-  where
-    err                  = errorstar $ "lookupBindEnv: cannot find binder" ++ show k
-
-filterIBindEnv :: (BindId -> Bool) -> IBindEnv -> IBindEnv
-filterIBindEnv f (FB m) = FB (S.filter f m)
-
-unionIBindEnv :: IBindEnv -> IBindEnv -> IBindEnv
-unionIBindEnv (FB m1) (FB m2) = FB $ m1 `S.union` m2
-
-intersectionIBindEnv :: IBindEnv -> IBindEnv -> IBindEnv
-intersectionIBindEnv (FB m1) (FB m2) = FB $ m1 `S.intersection` m2
-
-nullIBindEnv :: IBindEnv -> Bool
-nullIBindEnv (FB m) = S.null m
-
-diffIBindEnv :: IBindEnv -> IBindEnv -> IBindEnv
-diffIBindEnv (FB m1) (FB m2) = FB $ m1 `S.difference` m2
-
-adjustBindEnv :: ((Symbol, SortedReft) -> (Symbol, SortedReft)) -> BindId -> BindEnv -> BindEnv
-adjustBindEnv f i (BE n m) = BE n $ M.adjust f i m
-
-instance Functor SEnv where
-  fmap = mapSEnv
-
-instance Fixpoint BindEnv where
-  toFix (BE _ m) = vcat $ map toFixBind $ hashMapToAscList m
-    where
-      toFixBind (i, (x, r)) = "bind" <+> toFix i <+> toFix x <+> ":" <+> toFix r
-
-instance (Fixpoint a) => Fixpoint (SEnv a) where
-   toFix (SE m)   = toFix (hashMapToAscList m)
-
-instance Fixpoint (SEnv a) => Show (SEnv a) where
-  show = render . toFix
-
-instance Monoid (SEnv a) where
-  mempty        = SE M.empty
-  mappend s1 s2 = SE $ M.union (seBinds s1) (seBinds s2)
-
-instance Monoid BindEnv where
-  mempty = BE 0 M.empty
-  mappend (BE 0 _) b = b
-  mappend b (BE 0 _) = b
-  mappend _ _        = errorstar "mappend on non-trivial BindEnvs"
-
-envCs :: BindEnv -> IBindEnv -> [(Symbol, SortedReft)]
-envCs be env = [lookupBindEnv i be | i <- elemsIBindEnv env]
-
-instance Fixpoint (IBindEnv) where
-  toFix (FB ids) = text "env" <+> toFix ids
-
---------------------------------------------------------------------------------
-
-instance NFData Packs
-instance NFData IBindEnv
-instance NFData BindEnv
-instance (NFData a) => NFData (SEnv a)
-
-instance B.Binary Packs
-instance B.Binary IBindEnv
-instance B.Binary BindEnv
-instance (B.Binary a) => B.Binary (SEnv a)
-instance (Hashable a, Eq a, B.Binary a) => B.Binary (S.HashSet a) where
-  put = B.put . S.toList
-  get = S.fromList <$> B.get
-
---------------------------------------------------------------------------------
--- | Constraint Pack Sets ------------------------------------------------------
---------------------------------------------------------------------------------
-
-newtype Packs = Packs { packm :: M.HashMap KVar Int }
-               deriving (Eq, Show, Generic)
-
-instance Fixpoint Packs where
-  toFix (Packs m) = vcat $ (("pack" <+>) . toFix) <$> kIs
-    where
-      kIs = L.sortBy (compare `on` snd) . M.toList $ m
-
-instance PPrint Packs where
-  pprintTidy _ = toFix
-
-instance Monoid Packs where
-  mempty        = Packs mempty
-  mappend m1 m2 = Packs $ M.union (packm m1) (packm m2)
-
-getPack :: KVar -> Packs -> Maybe Int
-getPack k (Packs m) = M.lookup k m
-
-makePack :: [S.HashSet KVar] -> Packs
-makePack kvss = Packs (M.fromList kIs)
-  where
-    kIs       = [ (k, i) | (i, ks) <- kPacks, k <- ks ]
-    kPacks    = zip [0..] . coalesce . fmap S.toList $ kvss
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Errors.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Errors.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Errors.hs
+++ /dev/null
@@ -1,208 +0,0 @@
-{-# LANGUAGE CPP                       #-}
-{-# LANGUAGE DeriveDataTypeable        #-}
-{-# LANGUAGE DeriveGeneric             #-}
-{-# LANGUAGE DeriveFoldable            #-}
-{-# LANGUAGE DeriveTraversable         #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE ScopedTypeVariables       #-}
-{-# LANGUAGE StandaloneDeriving        #-}
-{-# LANGUAGE OverloadedStrings         #-}
-
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-
-module Language.Fixpoint.Types.Errors (
-  -- * Concrete Location Type
-    SrcSpan (..)
-  , dummySpan
-  , sourcePosElts
-
-  -- * Result
-
-  , FixResult (..)
-  , colorResult
-  , resultDoc
-
-  -- * Abstract Error Type
-  , Error
-
-  -- * Constructor
-  , err
-
-  -- * Accessors
-  , errLoc
-  , errMsg
-
-  -- * Adding Insult to Injury
-  , catError
-  , catErrors
-
-  -- * Fatal Exit
-  , die
-  , exit
-
-  -- * Some popular errors
-  , errFreeVarInQual
-  , errFreeVarInConstraint
-  , errIllScopedKVar
-  ) where
-
-import           Control.Exception
--- import qualified Control.Monad.Error           as E
-import           Data.Serialize                (Serialize (..))
-import           Data.Generics                 (Data)
-import           Data.Typeable
-import           Control.DeepSeq
--- import           Data.Hashable
-import qualified Data.Binary                   as B
-import           GHC.Generics                  (Generic)
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Spans
-import           Language.Fixpoint.Misc
-import           Text.PrettyPrint.HughesPJ
--- import           Text.Printf
-import           Data.Function (on)
-
--- import           Debug.Trace
-
-#if MIN_VERSION_pretty(1,1,3)
-import qualified Text.PrettyPrint.Annotated.HughesPJ as Ann
-
-deriving instance Generic (Ann.AnnotDetails a)
-instance Serialize a => Serialize (Ann.AnnotDetails a)
-instance Serialize a => Serialize (Ann.Doc a)
-#endif
-
-instance Serialize Error1
--- FIXME: orphans are bad...
-instance Serialize TextDetails
-
-instance Serialize Doc
-instance Serialize Error
-instance Serialize (FixResult Error)
-
-instance (B.Binary a) => B.Binary (FixResult a)
-
---------------------------------------------------------------------------------
--- | A BareBones Error Type ----------------------------------------------------
---------------------------------------------------------------------------------
-
-newtype Error = Error [Error1]
-                deriving (Eq, Ord, Show, Typeable, Generic)
-
-data Error1 = Error1
-  { errLoc :: SrcSpan
-  , errMsg :: Doc
-  } deriving (Eq, Show, Typeable, Generic)
-
-instance Ord Error1 where
-  compare = compare `on` errLoc
-
-instance PPrint Error1 where
-  pprintTidy k (Error1 l msg) = (pprintTidy k l <> ": Error")
-                                $+$ nest 2 msg
-
-instance PPrint Error where
-  pprintTidy k (Error es) = vcat $ pprintTidy k <$> es
-
-instance Fixpoint Error1 where
-  toFix = pprint
-
-instance Exception Error
-instance Exception (FixResult Error)
-
-
----------------------------------------------------------------------
-catError :: Error -> Error -> Error
----------------------------------------------------------------------
-catError (Error e1) (Error e2) = Error (e1 ++ e2)
-
----------------------------------------------------------------------
-catErrors :: ListNE Error -> Error
----------------------------------------------------------------------
-catErrors = foldr1 catError
-
----------------------------------------------------------------------
-err :: SrcSpan -> Doc -> Error
----------------------------------------------------------------------
-err sp d = Error [Error1 sp d]
-
----------------------------------------------------------------------
-die :: Error -> a
----------------------------------------------------------------------
-die = throw
-
----------------------------------------------------------------------
-exit :: a -> IO a -> IO a
----------------------------------------------------------------------
-exit def act = catch act $ \(e :: Error) -> do
-  putDocLn $ vcat ["Unexpected Errors!", pprint e]
-  return def
-
-putDocLn :: Doc -> IO ()
-putDocLn = putStrLn . render
----------------------------------------------------------------------
--- | Result ---------------------------------------------------------
----------------------------------------------------------------------
-
-data FixResult a = Crash [a] String
-                 | Safe
-                 | Unsafe ![a]
-                   deriving (Data, Typeable, Foldable, Traversable, Show, Generic)
-
-instance (NFData a) => NFData (FixResult a)
-
-instance Eq a => Eq (FixResult a) where
-  Crash xs _ == Crash ys _        = xs == ys
-  Unsafe xs == Unsafe ys          = xs == ys
-  Safe      == Safe               = True
-  _         == _                  = False
-
-instance Monoid (FixResult a) where
-  mempty                          = Safe
-  mappend Safe x                  = x
-  mappend x Safe                  = x
-  mappend _ c@(Crash _ _)         = c
-  mappend c@(Crash _ _) _         = c
-  mappend (Unsafe xs) (Unsafe ys) = Unsafe (xs ++ ys)
-
-instance Functor FixResult where
-  fmap f (Crash xs msg)   = Crash (f <$> xs) msg
-  fmap f (Unsafe xs)      = Unsafe (f <$> xs)
-  fmap _ Safe             = Safe
-
-resultDoc :: (Fixpoint a) => FixResult a -> Doc
-resultDoc Safe             = text "Safe"
-resultDoc (Crash xs msg)   = vcat $ text ("Crash!: " ++ msg) : ((("CRASH:" <+>) . toFix) <$> xs)
-resultDoc (Unsafe xs)      = vcat $ text "Unsafe:"           : ((("WARNING:" <+>) . toFix) <$> xs)
-
-colorResult :: FixResult a -> Moods
-colorResult (Safe)      = Happy
-colorResult (Unsafe _)  = Angry
-colorResult (_)         = Sad
-
----------------------------------------------------------------------
--- | Catalogue of Errors --------------------------------------------
----------------------------------------------------------------------
-
-errFreeVarInQual :: (PPrint q, Loc q, PPrint x) => q -> x -> Error
-errFreeVarInQual q x = err sp $ vcat [ "Qualifier with free vars"
-                                     , pprint q
-                                     , pprint x ]
-  where
-    sp               = srcSpan q
-
-errFreeVarInConstraint :: (PPrint a) => (Integer, a) -> Error
-errFreeVarInConstraint (i, ss) = err dummySpan $
-  vcat [ "Constraint with free vars"
-       , pprint i
-       , pprint ss
-       , "Try using the --prune-unsorted flag"
-       ]
-
-errIllScopedKVar :: (PPrint k, PPrint bs) => (k, Integer, Integer, bs) -> Error
-errIllScopedKVar (k, inId, outId, xs) = err dummySpan $
-  vcat [ "Ill-scoped KVar" <+> pprint k
-       , "Missing common binders at def" <+> pprint inId <+> "and use" <+> pprint outId
-       , pprint xs
-       ]
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Names.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Names.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Names.hs
+++ /dev/null
@@ -1,588 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE ScopedTypeVariables        #-}
-{-# LANGUAGE StandaloneDeriving         #-}
-{-# LANGUAGE TypeSynonymInstances       #-}
-{-# LANGUAGE TypeFamilies               #-}
-{-# LANGUAGE ViewPatterns               #-}
-{-# LANGUAGE BangPatterns               #-}
-{-# LANGUAGE PatternGuards              #-}
-
-
--- | This module contains Haskell variables representing globally visible names.
---   Rather than have strings floating around the system, all constant names
---   should be defined here, and the (exported) variables should be used and
---   manipulated elsewhere.
-
-module Language.Fixpoint.Types.Names (
-
-  -- * Symbols
-    Symbol
-  , Symbolic (..)
-  , LocSymbol
-  , LocText
-  , symbolicString
-
-  -- * Conversion to/from Text
-  , symbolSafeText
-  , symbolSafeString
-  , symbolText
-  , symbolString
-
-  -- Predicates
-  , isPrefixOfSym
-  , isSuffixOfSym
-  , isNonSymbol
-  , isLitSymbol
-  , isNontrivialVV
-  , isDummy
-
-  -- * Destructors
-  , stripPrefix
-  , consSym
-  , unconsSym
-  , dropSym
-  , headSym
-  , lengthSym
-
-  -- * Transforms
-  , nonSymbol
-  , vvCon
-  , tidySymbol
-
-  -- * Widely used prefixes
-  , anfPrefix
-  , tempPrefix
-  , vv
-  , symChars
-
-  -- * Creating Symbols
-  , dummySymbol
-  , intSymbol
-  , tempSymbol
-
-  -- * Wrapping Symbols
-  , litSymbol
-  , renameSymbol
-  , kArgSymbol
-  , existSymbol
-  , suffixSymbol
-
-  -- * Unwrapping Symbols
-  , unLitSymbol
-
-  -- * Hardwired global names
-  , dummyName
-  , preludeName
-  , boolConName
-  , funConName
-  , listConName
-  , listLConName
-  , tupConName
-  , setConName
-  , mapConName
-  -- , propConName
-  -- , hpropConName
-  , strConName
-  , nilName
-  , consName
-  , vvName
-  , size32Name
-  , size64Name
-  , bitVecName
-  , bvAndName
-  , bvOrName
-  , prims
-  , mulFuncName
-  , divFuncName
-
-  -- * Casting function names
-  , setToIntName, bitVecToIntName, mapToIntName, boolToIntName, realToIntName
-  , setApplyName, bitVecApplyName, mapApplyName, boolApplyName, realApplyName, intApplyName
-
-  , lambdaName
-  , intArgName
-
-) where
-
-import           Control.DeepSeq             (NFData (..))
-import           Control.Arrow               (second)
-import           Data.Char                   (ord)
-import           Data.Maybe                  (fromMaybe)
-import           Data.Generics               (Data)
-import           Data.Hashable               (Hashable (..))
-import qualified Data.HashSet                as S
-import           Data.Interned
-import           Data.Interned.Internal.Text
-import           Data.String                 (IsString(..))
-import qualified Data.Text                   as T
-import           Data.Binary                 (Binary (..))
-import           Data.Typeable               (Typeable)
-import           GHC.Generics                (Generic)
-
-import           Text.PrettyPrint.HughesPJ   (text)
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Spans
-
----------------------------------------------------------------
--- | Symbols --------------------------------------------------
----------------------------------------------------------------
-
-deriving instance Data     InternedText
-deriving instance Typeable InternedText
-deriving instance Generic  InternedText
-
-{- type SafeText = {v: T.Text | IsSafe v} @-}
-type SafeText = T.Text
-
--- | Invariant: a `SafeText` is made up of:
---
---     ['0'..'9'] ++ ['a'...'z'] ++ ['A'..'Z'] ++ '$'
---
---   If the original text has ANY other chars, it is represented as:
---
---     lq$i
---
---   where i is a unique integer (for each text)
-
-data Symbol
-  = S { _symbolId      :: !Id
-      , symbolRaw     :: !T.Text
-      , symbolEncoded :: !T.Text
-      } deriving (Data, Typeable, Generic)
-
-instance Eq Symbol where
-  S i _ _ == S j _ _ = i == j
-
-instance Ord Symbol where
-  compare (S i _ _) (S j _ _) = compare i j
-
-instance Interned Symbol where
-  type Uninterned Symbol = T.Text
-  newtype Description Symbol = DT T.Text deriving (Eq)
-  describe = DT
-  identify i t = S i t (encode t)
-  cache = sCache
-
-instance Uninternable Symbol where
-  unintern (S _ t _) = t
-
-instance Hashable (Description Symbol) where
-  hashWithSalt s (DT t) = hashWithSalt s t
-
-instance Hashable Symbol where
-  -- NOTE: hash based on original text rather than id
-  hashWithSalt s (S _ t _) = hashWithSalt s t
-
-instance NFData Symbol where
-  rnf (S {}) = ()
-
-instance Binary Symbol where
-  get = textSymbol <$> get
-  put = put . symbolText
-
-sCache :: Cache Symbol
-sCache = mkCache
-{-# NOINLINE sCache #-}
-
-instance IsString Symbol where
-  fromString = textSymbol . T.pack
-
-instance Show Symbol where
-  show = show . symbolRaw
-
-mappendSym :: Symbol -> Symbol -> Symbol
-mappendSym s1 s2 = textSymbol $ mappend s1' s2'
-    where
-      s1'        = symbolText s1
-      s2'        = symbolText s2
-
-instance PPrint Symbol where
-  pprintTidy _ = text . symbolString
-
-instance Fixpoint T.Text where
-  toFix = text . T.unpack
-
--- RJ: Use `symbolSafeText` if you want it to machine-readable,
---     but `symbolText`     if you want it to be human-readable.
-
-instance Fixpoint Symbol where
-  toFix = toFix . checkedText -- symbolSafeText
-
-checkedText :: Symbol -> T.Text
-checkedText x
-  | Just (c, t') <- T.uncons t
-  , okHd c && T.all okChr t'   = t
-  | otherwise                  = symbolSafeText x
-  where
-    t     = symbolText x
-    okHd  = (`S.member` alphaChars)
-    okChr = (`S.member` symChars)
-
----------------------------------------------------------------------------
--- | Located Symbols -----------------------------------------------------
----------------------------------------------------------------------------
-
-type LocSymbol = Located Symbol
-type LocText   = Located T.Text
-
-isDummy :: (Symbolic a) => a -> Bool
-isDummy a = symbol a == symbol dummyName
-
-instance Symbolic a => Symbolic (Located a) where
-  symbol = symbol . val
-
----------------------------------------------------------------------------
--- | Decoding Symbols -----------------------------------------------------
----------------------------------------------------------------------------
-
-symbolText :: Symbol -> T.Text
-symbolText = symbolRaw
-
-symbolString :: Symbol -> String
-symbolString = T.unpack . symbolText
-
-symbolSafeText :: Symbol -> SafeText
-symbolSafeText = symbolEncoded
-
-symbolSafeString :: Symbol -> String
-symbolSafeString = T.unpack . symbolSafeText
-
----------------------------------------------------------------------------
--- | Encoding Symbols -----------------------------------------------------
----------------------------------------------------------------------------
-
--- INVARIANT: All strings *must* be built from here
-
-textSymbol :: T.Text -> Symbol
-textSymbol = intern
-
-encode :: T.Text -> SafeText
-encode t
-  | isFixKey t     = T.append "key$" t
-  | otherwise      = encodeUnsafe t
-
-isFixKey :: T.Text -> Bool
-isFixKey x = S.member x keywords
-
-encodeUnsafe :: T.Text -> T.Text
-encodeUnsafe = joinChunks . splitChunks . prefixAlpha
-
-prefixAlpha :: T.Text -> T.Text
-prefixAlpha t
-  | isAlpha0 t = t
-  | otherwise  = T.append "fix$" t
-
-isAlpha0 :: T.Text -> Bool
-isAlpha0 t = case T.uncons t of
-               Just (c, _) -> S.member c alphaChars
-               Nothing     -> False
-
-joinChunks :: (T.Text, [(Char, SafeText)]) -> SafeText
-joinChunks (t, [] ) = t
-joinChunks (t, cts) = T.concat $ padNull t : (tx <$> cts)
-  where
-    tx (c, ct)      = mconcat ["$", c2t c, "$", ct]
-    c2t             = T.pack . show . ord
-
-padNull :: T.Text -> T.Text
-padNull t
-  | T.null t  = "z$"
-  | otherwise = t
-
-splitChunks :: T.Text -> (T.Text, [(Char, SafeText)])
-splitChunks t = (h, go tl)
-  where
-    (h, tl)   = T.break isUnsafeChar t
-    go !ut    = case T.uncons ut of
-                  Nothing       -> []
-                  Just (c, ut') -> let (ct, utl) = T.break isUnsafeChar ut'
-                                   in (c, ct) : go utl
-
-isUnsafeChar :: Char -> Bool
-isUnsafeChar = not . (`S.member` okSymChars)
-
-
-keywords :: S.HashSet T.Text
-keywords   = S.fromList [ "env"
-                        , "id"
-                        , "tag"
-                        , "qualif"
-                        , "constant"
-                        , "cut"
-                        , "bind"
-                        , "constraint"
-                        , "lhs"
-                        , "rhs"
-                        , "NaN"
-                        , "min"
-                        , "map"
-                        ]
-
--- | RJ: We allow the extra 'unsafeChars' to allow parsing encoded symbols.
---   e.g. the raw string "This#is%$inval!d" may get encoded as "enc%12"
---   and serialized as such in the fq/bfq file. We want to allow the parser
---   to then be able to read the above back in.
-
-alphaChars :: S.HashSet Char
-alphaChars = S.fromList $ ['a' .. 'z'] ++ ['A' .. 'Z']
-
-numChars :: S.HashSet Char
-numChars = S.fromList ['0' .. '9']
-
-safeChars :: S.HashSet Char
-safeChars = alphaChars `mappend`
-            numChars   `mappend`
-            S.fromList ['_', '.']
-
-symChars :: S.HashSet Char
-symChars =  safeChars `mappend`
-            S.fromList ['%', '#', '$', '\'']
-
-okSymChars :: S.HashSet Char
-okSymChars = safeChars
-
-isPrefixOfSym :: Symbol -> Symbol -> Bool
-isPrefixOfSym (symbolText -> p) (symbolText -> x) = p `T.isPrefixOf` x
-
-isSuffixOfSym :: Symbol -> Symbol -> Bool
-isSuffixOfSym (symbolText -> p) (symbolText -> x) = p `T.isSuffixOf` x
-
-
-headSym :: Symbol -> Char
-headSym (symbolText -> t) = T.head t
-
-consSym :: Char -> Symbol -> Symbol
-consSym c (symbolText -> s) = symbol $ T.cons c s
-
-unconsSym :: Symbol -> Maybe (Char, Symbol)
-unconsSym (symbolText -> s) = second symbol <$> T.uncons s
-
--- singletonSym :: Char -> Symbol -- Yuck
--- singletonSym = (`consSym` "")
-
-lengthSym :: Symbol -> Int
-lengthSym (symbolText -> t) = T.length t
-
-dropSym :: Int -> Symbol -> Symbol
-dropSym n (symbolText -> t) = symbol $ T.drop n t
-
-stripPrefix :: Symbol -> Symbol -> Maybe Symbol
-stripPrefix p x = symbol <$> T.stripPrefix (symbolText p) (symbolText x)
-
-
---------------------------------------------------------------------------------
--- | Use this **EXCLUSIVELY** when you want to add stuff in front of a Symbol
---------------------------------------------------------------------------------
-suffixSymbol :: Symbol -> Symbol -> Symbol
-suffixSymbol  x y = x `mappendSym` symSepName `mappendSym` y
-
-vv                  :: Maybe Integer -> Symbol
--- vv (Just i)         = symbol $ symbolSafeText vvName `T.snoc` symSepName `mappend` T.pack (show i)
-vv (Just i)         = intSymbol vvName i
-vv Nothing          = vvName
-
-isNontrivialVV      :: Symbol -> Bool
-isNontrivialVV      = not . (vv Nothing ==)
-
-vvCon, dummySymbol :: Symbol
-vvCon       = vvName `suffixSymbol` "F"
-dummySymbol = dummyName
-
-litSymbol :: Symbol -> Symbol
-litSymbol s = litPrefix `mappendSym` s
-
-isLitSymbol :: Symbol -> Bool
-isLitSymbol = isPrefixOfSym litPrefix
-
-unLitSymbol :: Symbol -> Maybe Symbol
-unLitSymbol = stripPrefix litPrefix
-
-intSymbol :: (Show a) => Symbol -> a -> Symbol
-intSymbol x i = x `suffixSymbol` (symbol $ show i)
-
-tempSymbol :: Symbol -> Integer -> Symbol
-tempSymbol prefix = intSymbol (tempPrefix `mappendSym` prefix)
-
-renameSymbol :: Symbol -> Int -> Symbol
-renameSymbol prefix = intSymbol (renamePrefix `mappendSym` prefix)
-
-kArgSymbol :: Symbol -> Symbol -> Symbol
-kArgSymbol x k = (kArgPrefix `mappendSym` x) `suffixSymbol` k
-
-existSymbol :: Symbol -> Integer -> Symbol
-existSymbol prefix = intSymbol (existPrefix `mappendSym` prefix)
-
-
-tempPrefix, anfPrefix, renamePrefix, litPrefix  :: Symbol
-tempPrefix   = "lq_tmp$"
-anfPrefix    = "lq_anf$"
-renamePrefix = "lq_rnm$"
-litPrefix    = "lit$"
-
-kArgPrefix, existPrefix :: Symbol
-kArgPrefix   = "lq_karg$"
-existPrefix  = "lq_ext$"
-
--------------------------------------------------------------------------
-tidySymbol :: Symbol -> Symbol
--------------------------------------------------------------------------
-tidySymbol = unSuffixSymbol . unSuffixSymbol . unPrefixSymbol kArgPrefix
-
-unPrefixSymbol :: Symbol -> Symbol -> Symbol
-unPrefixSymbol p s = fromMaybe s (stripPrefix p s)
-
-unSuffixSymbol :: Symbol -> Symbol
-unSuffixSymbol s@(symbolText -> t)
-  = maybe s symbol $ T.stripSuffix symSepName $ fst $ T.breakOnEnd symSepName t
-
--- takeWhileSym :: (Char -> Bool) -> Symbol -> Symbol
--- takeWhileSym p (symbolText -> t) = symbol $ T.takeWhile p t
-
-
-nonSymbol :: Symbol
-nonSymbol = ""
-
-isNonSymbol :: Symbol -> Bool
-isNonSymbol = (== nonSymbol)
-
-------------------------------------------------------------------------------
--- | Values that can be viewed as Symbols
-------------------------------------------------------------------------------
-
-class Symbolic a where
-  symbol :: a -> Symbol
-
-symbolicString :: (Symbolic a) => a -> String
-symbolicString = symbolString . symbol
-
-instance Symbolic T.Text where
-  symbol = textSymbol
-
-instance Symbolic String where
-  symbol = symbol . T.pack
-
-instance Symbolic Symbol where
-  symbol = id
-
-----------------------------------------------------------------------------
---------------- Global Name Definitions ------------------------------------
-----------------------------------------------------------------------------
-
-lambdaName :: Symbol
-lambdaName = "smt_lambda"
-
-intArgName :: Int -> Symbol
-intArgName = intSymbol "lam_int_arg"
-
-setToIntName, bitVecToIntName, mapToIntName, realToIntName :: Symbol
-setToIntName    = "set_to_int"
-bitVecToIntName = "bitvec_to_int"
-mapToIntName    = "map_to_int"
-realToIntName   = "real_to_int"
-
-boolToIntName :: (IsString a) => a
-boolToIntName   = "bool_to_int"
-
-setApplyName, bitVecApplyName, mapApplyName, boolApplyName, realApplyName, intApplyName :: Int -> Symbol
-setApplyName    = intSymbol "set_apply_"
-bitVecApplyName = intSymbol "bitvec_apply"
-mapApplyName    = intSymbol "map_apply_"
-boolApplyName   = intSymbol "bool_apply_"
-realApplyName   = intSymbol "real_apply_"
-intApplyName    = intSymbol "int_apply_"
-
-
-preludeName, dummyName, boolConName, funConName :: Symbol
-preludeName  = "Prelude"
-dummyName    = "LIQUID$dummy"
-boolConName  = "Bool"
-funConName   = "->"
-
-listConName, listLConName, tupConName, _propConName, _hpropConName, vvName, setConName, mapConName :: Symbol
-listConName  = "[]"
-listLConName = "List"
-tupConName   = "Tuple"
-setConName   = "Set_Set"
-mapConName   = "Map_t"
-vvName       = "VV"
-_propConName  = "Prop"
-_hpropConName = "HProp"
-
-strConName  :: (IsString a) => a
-strConName   = "Str"
--- symSepName   :: Char
--- symSepName   = '#' -- DO NOT EVER CHANGE THIS
-
-symSepName   :: (IsString a) => a
-symSepName   = "##"
-
-nilName, consName, size32Name, size64Name, bitVecName, bvOrName, bvAndName :: Symbol
-nilName      = "nil"
-consName     = "cons"
-size32Name   = "Size32"
-size64Name   = "Size64"
-bitVecName   = "BitVec"
-bvOrName     = "bvor"
-bvAndName    = "bvand"
-
-mulFuncName, divFuncName :: Symbol
-mulFuncName  = "Z3_OP_MUL"
-divFuncName  = "Z3_OP_DIV"
-
-prims :: [Symbol]
-prims = [ _propConName
-        , _hpropConName
-        , vvName
-        , "Pred"
-        , "List"
-        , "[]"
-        , setConName
-        , "Set_sng"
-        , "Set_cup"
-        , "Set_cap"
-        , "Set_dif"
-        , "Set_emp"
-        , "Set_empty"
-        , "Set_mem"
-        , "Set_sub"
-        , mapConName
-        , "Map_select"
-        , "Map_store"
-        , size32Name
-        , size64Name
-        , bitVecName
-        , bvOrName
-        , bvAndName
-        , "FAppTy"
-        , nilName
-        , consName
-        ]
-
-{-
--------------------------------------------------------------------------------
--- | Memoized Decoding
--------------------------------------------------------------------------------
-
-{-# NOINLINE symbolMemo #-}
-symbolMemo :: IORef (M.HashMap Int T.Text)
-symbolMemo = unsafePerformIO (newIORef M.empty)
-
-{-# NOINLINE memoEncode #-}
-memoEncode :: T.Text -> Int
-memoEncode t = unsafePerformIO $
-                 atomicModifyIORef symbolMemo $ \m ->
-                    (M.insert i t m, i)
-  where
-    i        = internedTextId $ intern t
-
-{-# NOINLINE memoDecode #-}
-memoDecode :: Int -> T.Text
-memoDecode i = unsafePerformIO $
-                 safeLookup msg i <$> readIORef symbolMemo
-               where
-                 msg = "Symbol Decode Error: " ++ show i
-
--}
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/PrettyPrint.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/PrettyPrint.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/PrettyPrint.hs
+++ /dev/null
@@ -1,174 +0,0 @@
-{-# LANGUAGE CPP                #-}
-{-# LANGUAGE FlexibleContexts   #-}
-{-# LANGUAGE FlexibleInstances  #-}
-{-# LANGUAGE OverloadedStrings  #-}
-
-module Language.Fixpoint.Types.PrettyPrint where
-
-import           Debug.Trace               (trace)
-import           Text.PrettyPrint.HughesPJ
-import qualified Text.PrettyPrint.Boxes as B
-import qualified Data.HashMap.Strict as M
-import qualified Data.HashSet        as S
-import qualified Data.List           as L
-import           Language.Fixpoint.Misc
-import           Data.Hashable
-import qualified Data.Text as T
-
-
-traceFix     ::  (Fixpoint a) => String -> a -> a
-traceFix s x = trace ("\nTrace: [" ++ s ++ "] : " ++ showFix x) x
-
-------------------------------------------------------------------
-class Fixpoint a where
-  toFix    :: a -> Doc
-  simplify :: a -> a
-  simplify =  id
-
-showFix :: (Fixpoint a) => a -> String
-showFix =  render . toFix
-
-instance (Ord a, Hashable a, Fixpoint a) => Fixpoint (S.HashSet a) where
-  toFix xs = brackets $ sep $ punctuate ";" (toFix <$> L.sort (S.toList xs))
-  simplify = S.fromList . map simplify . S.toList
-
-instance Fixpoint () where
-  toFix _ = "()"
-
-instance Fixpoint a => Fixpoint (Maybe a) where
-  toFix    = maybe "Nothing" (("Just" <+>) . toFix)
-  simplify = fmap simplify
-
-instance Fixpoint a => Fixpoint [a] where
-  toFix xs = brackets $ sep $ punctuate ";" (fmap toFix xs)
-  simplify = map simplify
-
-instance (Fixpoint a, Fixpoint b) => Fixpoint (a,b) where
-  toFix   (x,y)  = toFix x <+> ":" <+> toFix y
-  simplify (x,y) = (simplify x, simplify y)
-
-instance (Fixpoint a, Fixpoint b, Fixpoint c) => Fixpoint (a,b,c) where
-  toFix   (x,y,z)  = toFix x <+> ":" <+> toFix y <+> ":" <+> toFix  z
-  simplify (x,y,z) = (simplify x, simplify y,simplify z)
-
-instance Fixpoint Bool where
-  toFix True  = "True"
-  toFix False = "False"
-  simplify z  = z
-
-instance Fixpoint Int where
-  toFix = tshow
-
-instance Fixpoint Integer where
-  toFix = integer
-
-instance Fixpoint Double where
-  toFix = double
-
-------------------------------------------------------------------
-
-data Tidy = Lossy | Full deriving (Eq, Ord)
-
--- | Implement either `pprintTidy` or `pprintPrec`
-class PPrint a where
-
-  pprintTidy :: Tidy -> a -> Doc
-  pprintTidy = pprintPrec 0
-
-  pprintPrec :: Int -> Tidy -> a -> Doc
-  pprintPrec _ = pprintTidy
-
--- | Top-level pretty printer
-pprint :: (PPrint a) => a -> Doc
-pprint = pprintPrec 0 Full
-
-showpp :: (PPrint a) => a -> String
-showpp = render . pprint
-
-showTable :: (PPrint k, PPrint v) => Tidy -> [(k, v)] -> String
-showTable k = render . pprintKVs k
-
-tracepp :: (PPrint a) => String -> a -> a
-tracepp s x = trace ("\nTrace: [" ++ s ++ "] : " ++ showpp x) x
-
-notracepp :: (PPrint a) => String -> a -> a
-notracepp _ x = x
-
-instance PPrint Doc where
-  pprintTidy _ = id
-
-instance PPrint a => PPrint (Maybe a) where
-  pprintTidy k = maybe "Nothing" (("Just" <+>) . pprintTidy k)
-
-instance PPrint a => PPrint [a] where
-  pprintTidy k = brackets . sep . punctuate comma . map (pprintTidy k)
-
-instance PPrint a => PPrint (S.HashSet a) where
-  pprintTidy k = pprintTidy k . S.toList
-
-instance (PPrint a, PPrint b) => PPrint (M.HashMap a b) where
-  pprintTidy k = pprintKVs k . M.toList
-
-pprintKVs   :: (PPrint k, PPrint v) => Tidy -> [(k, v)] -> Doc
-pprintKVs t = vcat . punctuate "\n" . map pp1
-  where
-    pp1 (x,y) = pprintTidy t x <+> ":=" <+> pprintTidy t y
-
-instance (PPrint a, PPrint b, PPrint c) => PPrint (a, b, c) where
-  pprintTidy k (x, y, z)  = parens $ pprintTidy k x <> "," <+>
-                                     pprintTidy k y <> "," <+>
-                                     pprintTidy k z
-
-
-instance (PPrint a, PPrint b) => PPrint (a,b) where
-  pprintTidy k (x, y)  = pprintTidy k x <+> ":" <+> pprintTidy k y
-
-instance PPrint Bool where
-  pprintTidy _ = text . show
-
-instance PPrint Float where
-  pprintTidy _ = text . show
-
-instance PPrint () where
-  pprintTidy _ = text . show
-
-#if !(defined(MIN_VERSION_GLASGOW_HASKELL) && (MIN_VERSION_GLASGOW_HASKELL(8,0,1,1)))
-instance PPrint String where
-  pprintTidy _ = text
-#endif
-
-instance PPrint Int where
-  pprintTidy _ = tshow
-
-instance PPrint Integer where
-  pprintTidy _ = integer
-
-instance PPrint T.Text where
-  pprintTidy _ = text . T.unpack
-
-newtype DocTable = DocTable [(Doc, Doc)]
-
-instance Monoid DocTable where
-  mempty                              = DocTable []
-  mappend (DocTable t1) (DocTable t2) = DocTable (t1 ++ t2)
-
-class PTable a where
-  ptable :: a -> DocTable
-
-instance PPrint DocTable where
-  pprintTidy _ (DocTable kvs) = boxDoc $ B.hsep 1 B.left [ks', cs', vs']
-    where
-      (ks, vs)                = unzip kvs
-      n                       = length kvs
-      ks'                     = B.vcat B.left  $ docBox <$> ks
-      vs'                     = B.vcat B.right $ docBox <$> vs
-      cs'                     = B.vcat B.left  $ replicate n $ B.text ":"
-
-boxHSep :: Doc -> Doc -> Doc
-boxHSep d1 d2 = boxDoc $ B.hcat B.top [docBox d1, docBox d2]
-
-boxDoc :: B.Box -> Doc
-boxDoc = text . B.render
-
-docBox :: Doc -> B.Box
-docBox = B.text . render
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Refinements.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Refinements.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Refinements.hs
+++ /dev/null
@@ -1,810 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveFoldable             #-}
-{-# LANGUAGE DeriveFunctor              #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE DeriveTraversable          #-}
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE NoMonomorphismRestriction  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE UndecidableInstances       #-}
-{-# LANGUAGE MultiParamTypeClasses      #-}
-{-# LANGUAGE GADTs                      #-}
-{-# LANGUAGE PatternGuards              #-}
-{-# LANGUAGE PatternSynonyms            #-}
-
--- | This module has the types for representing terms in the refinement logic.
-
-module Language.Fixpoint.Types.Refinements (
-
-  -- * Representing Terms
-    SymConst (..)
-  , Constant (..)
-  , Bop (..)
-  , Brel (..)
-  , Expr (..), Pred
-  , pattern PTrue, pattern PTop, pattern PFalse, pattern EBot
-  , pattern ETimes, pattern ERTimes, pattern EDiv, pattern ERDiv
-  , pattern EEq
-  , KVar (..)
-  , Subst (..)
-  , KVSub (..)
-  , Reft (..)
-  , SortedReft (..)
-
-  -- * Constructing Terms
-  , eVar, elit
-  , eProp
-  , pAnd, pOr, pIte
-  , (&.&), (|.|)
-  , pExist
-  , mkEApp
-  , mkProp
-  , intKvar
-  , vv_
-
-  -- * Generalizing Embedding with Typeclasses
-  , Expression (..)
-  , Predicate (..)
-  , Subable (..)
-  , Reftable (..)
-
-  -- * Constructors
-  , reft                    -- "smart
-  , trueSortedReft          -- trivial reft
-  , trueReft, falseReft     -- trivial reft
-  , exprReft                -- singleton: v == e
-  , notExprReft             -- singleton: v /= e
-  , uexprReft               -- singleton: v ~~ e
-  , symbolReft              -- singleton: v == x
-  , usymbolReft             -- singleton: v ~~ x
-  , propReft                -- singleton: v <=> p
-  , predReft                -- any pred : p
-  , reftPred
-  , reftBind
-
-  -- * Predicates
-  , isFunctionSortedReft, functionSort
-  , isNonTrivial
-  , isContraPred
-  , isTautoPred
-  , isSingletonReft
-  , isFalse
-
-  -- * Destructing
-  , flattenRefas
-  , conjuncts
-  , eApps
-  , eAppC
-  , splitEApp
-  , reftConjuncts
-
-  -- * Transforming
-  , mapPredReft
-  , pprintReft
-
-  , debruijnIndex
-
-  -- * Gradual Type Manipulation
-  , pGAnds, pGAnd
-  , isGradual
-
-  ) where
-
-import qualified Data.Binary as B
-import           Data.Generics             (Data)
-import           Data.Typeable             (Typeable)
-import           Data.Hashable
-import           GHC.Generics              (Generic)
-import           Data.List                 (foldl', partition) -- , sort, sortBy)
-import           Data.String
-import           Data.Text                 (Text)
-import qualified Data.Text                 as T
-import           Control.DeepSeq
-import           Data.Maybe                (isJust)
--- import           Text.Printf               (printf)
--- import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.PrettyPrint
--- import           Language.Fixpoint.Types.Errors
-import           Language.Fixpoint.Types.Spans
-import           Language.Fixpoint.Types.Sorts
-import           Language.Fixpoint.Misc
--- import           Text.Parsec.Pos
-import           Text.PrettyPrint.HughesPJ
--- import           Data.Array                hiding (indices)
-import qualified Data.HashMap.Strict       as M
--- import qualified Data.HashSet              as S
-
-instance NFData KVar
-instance NFData Subst
-instance NFData Constant
-instance NFData SymConst
-instance NFData Brel
-instance NFData Bop
-instance NFData Expr
-instance NFData Reft
-instance NFData SortedReft
-
-instance (Hashable k, Eq k, B.Binary k, B.Binary v) => B.Binary (M.HashMap k v) where
-  put = B.put . M.toList
-  get = M.fromList <$> B.get
-
-instance B.Binary KVar
-instance B.Binary Subst
-instance B.Binary Constant
-instance B.Binary SymConst
-instance B.Binary Brel
-instance B.Binary Bop
-instance B.Binary Expr
-instance B.Binary Reft
-instance B.Binary SortedReft
-
-reftConjuncts :: Reft -> [Reft]
-reftConjuncts (Reft (v, ra)) = [Reft (v, ra') | ra' <- ras']
-  where
-    ras'                     = if null ps then ks else ((pAnd ps) : ks)
-    (ks, ps)                 = partition (\p -> isKvar p || isGradual p) $ refaConjuncts ra
-
-isKvar :: Expr -> Bool
-isKvar (PKVar _ _) = True
-isKvar _           = False
-
-isGradual :: Expr -> Bool
-isGradual (PGrad _ _ _) = True
-isGradual _             = False
-
-refaConjuncts :: Expr -> [Expr]
-refaConjuncts p = [p' | p' <- conjuncts p, not $ isTautoPred p']
-
-
---------------------------------------------------------------------------------
--- | Kvars ---------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-newtype KVar = KV { kv :: Symbol }
-               deriving (Eq, Ord, Data, Typeable, Generic, IsString)
-
-intKvar :: Integer -> KVar
-intKvar = KV . intSymbol "k_"
-
-instance Show KVar where
-  show (KV x) = "$" ++ show x
-
-instance Hashable KVar
-instance Hashable Brel
-instance Hashable Bop
-instance Hashable SymConst
-instance Hashable Constant
-
---------------------------------------------------------------------------------
--- | Substitutions -------------------------------------------------------------
---------------------------------------------------------------------------------
-newtype Subst = Su (M.HashMap Symbol Expr)
-                deriving (Eq, Data, Typeable, Generic)
-
-instance Show Subst where
-  show = showFix
-
-instance Fixpoint Subst where
-  toFix (Su m) = case hashMapToAscList m of
-                   []  -> empty
-                   xys -> hcat $ map (\(x,y) -> brackets $ toFix x <> text ":=" <> toFix y) xys
-
-instance PPrint Subst where
-  pprintTidy _ = toFix
-
-data KVSub = KVS
-  { ksuVV    :: Symbol
-  , ksuSort  :: Sort
-  , ksuKVar  :: KVar
-  , ksuSubst :: Subst
-  } deriving (Eq, Data, Typeable, Generic, Show)
-
-instance PPrint KVSub where
-  pprintTidy k ksu = pprintTidy k (ksuVV ksu, ksuKVar ksu, ksuSubst ksu)
-
---------------------------------------------------------------------------------
--- | Expressions ---------------------------------------------------------------
---------------------------------------------------------------------------------
-
--- | Uninterpreted constants that are embedded as  "constant symbol : Str"
-
-data SymConst = SL !Text
-              deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-data Constant = I !Integer
-              | R !Double
-              | L !Text !Sort
-              deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-data Brel = Eq | Ne | Gt | Ge | Lt | Le | Ueq | Une
-            deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-data Bop  = Plus | Minus | Times | Div | Mod | RTimes | RDiv
-            deriving (Eq, Ord, Show, Data, Typeable, Generic)
-              -- NOTE: For "Mod" 2nd expr should be a constant or a var *)
-
-data Expr = ESym !SymConst
-          | ECon !Constant
-          | EVar !Symbol
-          | EApp !Expr !Expr
-          | ENeg !Expr
-          | EBin !Bop !Expr !Expr
-          | EIte !Expr !Expr !Expr
-          | ECst !Expr !Sort
-          | ELam !(Symbol, Sort)   !Expr
-          | ETApp !Expr !Sort
-          | ETAbs !Expr !Symbol
-          | PAnd   ![Expr]
-          | POr    ![Expr]
-          | PNot   !Expr
-          | PImp   !Expr !Expr
-          | PIff   !Expr !Expr
-          | PAtom  !Brel  !Expr !Expr
-          | PKVar  !KVar !Subst
-          | PAll   ![(Symbol, Sort)] !Expr
-          | PExist ![(Symbol, Sort)] !Expr
-          | PGrad  !KVar !Subst !Expr
-          deriving (Eq, Show, Data, Typeable, Generic)
-
-type Pred = Expr
-
-pattern PTrue         = PAnd []
-pattern PTop          = PAnd []
-pattern PFalse        = POr  []
-pattern EBot          = POr  []
-pattern EEq e1 e2     = PAtom Eq    e1 e2
-pattern ETimes e1 e2  = EBin Times  e1 e2
-pattern ERTimes e1 e2 = EBin RTimes e1 e2
-pattern EDiv e1 e2    = EBin Div    e1 e2
-pattern ERDiv e1 e2   = EBin RDiv   e1 e2
-
-
-mkEApp :: LocSymbol -> [Expr] -> Expr
-mkEApp = eApps . EVar . val
-
-eApps :: Expr -> [Expr] -> Expr
-eApps f es  = foldl' EApp f es
-
-splitEApp :: Expr -> (Expr, [Expr])
-splitEApp = go []
-  where
-    go acc (EApp f e) = go (e:acc) f
-    go acc e          = (e, acc)
-
-eAppC :: Sort -> Expr -> Expr -> Expr
-eAppC s e1 e2 = ECst (EApp e1 e2) s
-
-
-
-debruijnIndex :: Expr -> Int
-debruijnIndex = go
-  where
-    go (ELam _ e)      = 1 + go e
-    go (ECst e _)      = go e
-    go (EApp e1 e2)    = go e1 + go e2
-    go (ESym _)        = 1
-    go (ECon _)        = 1
-    go (EVar _)        = 1
-    go (ENeg e)        = go e
-    go (EBin _ e1 e2)  = go e1 + go e2
-    go (EIte e e1 e2)  = go e + go e1 + go e2
-    go (ETAbs e _)     = go e
-    go (ETApp e _)     = go e
-    go (PAnd es)       = foldl (\n e -> n + go e) 0 es
-    go (POr es)        = foldl (\n e -> n + go e) 0 es
-    go (PNot e)        = go e
-    go (PImp e1 e2)    = go e1 + go e2
-    go (PIff e1 e2)    = go e1 + go e2
-    go (PAtom _ e1 e2) = go e1 + go e2
-    go (PAll _ e)      = go e
-    go (PExist _ e)    = go e
-    go (PKVar _ _)     = 1
-    go (PGrad _ _ e)   = go e
-
-
--- | Parsed refinement of @Symbol@ as @Expr@
---   e.g. in '{v: _ | e }' v is the @Symbol@ and e the @Expr@
-newtype Reft = Reft (Symbol, Expr)
-               deriving (Eq, Data, Typeable, Generic)
-
-data SortedReft = RR { sr_sort :: !Sort, sr_reft :: !Reft }
-                  deriving (Eq, Data, Typeable, Generic)
-
-elit :: Located Symbol -> Sort -> Expr
-elit l s = ECon $ L (symbolText $ val l) s
-
-instance Fixpoint Constant where
-  toFix (I i)   = toFix i
-  toFix (R i)   = toFix i
-  toFix (L s t) = parens $ text "lit" <+> text "\"" <> toFix s <> text "\"" <+> toFix t
-
---------------------------------------------------------------------------------
--- | String Constants ----------------------------------------------------------
---------------------------------------------------------------------------------
-
--- | Replace all symbol-representations-of-string-literals with string-literal
---   Used to transform parsed output from fixpoint back into fq.
-
-instance Symbolic SymConst where
-  symbol = encodeSymConst
-
-encodeSymConst        :: SymConst -> Symbol
-encodeSymConst (SL s) = litSymbol $ symbol s
-
-_decodeSymConst :: Symbol -> Maybe SymConst
-_decodeSymConst = fmap (SL . symbolText) . unLitSymbol
-
-instance Fixpoint SymConst where
-  toFix  = toFix . encodeSymConst
-
-instance Fixpoint KVar where
-  toFix (KV k) = text "$" <> toFix k
-
-instance Fixpoint Brel where
-  toFix Eq  = text "="
-  toFix Ne  = text "!="
-  toFix Ueq = text "~~"
-  toFix Une = text "!~"
-  toFix Gt  = text ">"
-  toFix Ge  = text ">="
-  toFix Lt  = text "<"
-  toFix Le  = text "<="
-
-instance Fixpoint Bop where
-  toFix Plus   = text "+"
-  toFix Minus  = text "-"
-  toFix RTimes = text "*."
-  toFix Times  = text "*"
-  toFix Div    = text "/"
-  toFix RDiv   = text "/."
-  toFix Mod    = text "mod"
-
-instance Fixpoint Expr where
-  toFix (ESym c)       = toFix $ encodeSymConst c
-  toFix (ECon c)       = toFix c
-  toFix (EVar s)       = toFix s
-  toFix e@(EApp _ _)   = parens $ hcat $ punctuate " " $ toFix <$> (f:es) where (f, es) = splitEApp e
-  toFix (ENeg e)       = parens $ text "-"  <+> parens (toFix e)
-  toFix (EBin o e1 e2) = parens $ toFix e1  <+> toFix o <+> toFix e2
-  toFix (EIte p e1 e2) = parens $ text "if" <+> toFix p <+> text "then" <+> toFix e1 <+> text "else" <+> toFix e2
-  toFix (ECst e so)    = parens $ toFix e   <+> text " : " <+> toFix so
-  -- toFix (EBot)         = text "_|_"
-  -- toFix PTop           = text "???"
-  toFix PTrue          = text "true"
-  toFix PFalse         = text "false"
-  toFix (PNot p)       = parens $ text "~" <+> parens (toFix p)
-  toFix (PImp p1 p2)   = parens $ toFix p1 <+> text "=>" <+> toFix p2
-  toFix (PIff p1 p2)   = parens $ toFix p1 <+> text "<=>" <+> toFix p2
-  toFix (PAnd ps)      = text "&&" <+> toFix ps
-  toFix (POr  ps)      = text "||" <+> toFix ps
-  toFix (PAtom r e1 e2)  = parens $ toFix e1 <+> toFix r <+> toFix e2
-  toFix (PKVar k su)     = toFix k <> toFix su
-  toFix (PAll xts p)     = "forall" <+> (toFix xts
-                                        $+$ ("." <+> toFix p))
-  toFix (PExist xts p)   = "exists" <+> (toFix xts
-                                        $+$ ("." <+> toFix p))
-  toFix (ETApp e s)      = text "tapp" <+> toFix e <+> toFix s
-  toFix (ETAbs e s)      = text "tabs" <+> toFix e <+> toFix s
-  toFix (PGrad _ _ e)    = toFix e <+> text "&&" <+> text "??" -- <+> toFix k <+> toFix su
-  toFix (ELam (x,s) e)   = text "lam" <+> toFix x <+> ":" <+> toFix s <+> "." <+> toFix e
-
-  simplify (PAnd [])     = PTrue
-  simplify (POr  [])     = PFalse
-  simplify (PAnd [p])    = simplify p
-  simplify (POr  [p])    = simplify p
-
-  simplify (PGrad k su e)
-    | isContraPred e      = PFalse
-    | otherwise           = PGrad k su (simplify e)
-
-  simplify (PAnd ps)
-    | any isContraPred ps = PFalse
-    | otherwise           = PAnd $ filter (not . isTautoPred) $ map simplify ps
-
-  simplify (POr  ps)
-    | any isTautoPred ps = PTrue
-    | otherwise          = POr  $ filter (not . isContraPred) $ map simplify ps
-
-  simplify p
-    | isContraPred p     = PFalse
-    | isTautoPred  p     = PTrue
-    | otherwise          = p
-
-isContraPred   :: Expr -> Bool
-isContraPred z = eqC z || (z `elem` contras)
-  where
-    contras    = [PFalse]
-
-    eqC (PAtom Eq (ECon x) (ECon y))
-               = x /= y
-    eqC (PAtom Ueq (ECon x) (ECon y))
-               = x /= y
-    eqC (PAtom Ne x y)
-               = x == y
-    eqC (PAtom Une x y)
-               = x == y
-    eqC _      = False
-
-isTautoPred   :: Expr -> Bool
-isTautoPred z  = z == PTop || z == PTrue || eqT z
-  where
-    eqT (PAnd [])
-               = True
-    eqT (PAtom Le x y)
-               = x == y
-    eqT (PAtom Ge x y)
-               = x == y
-    eqT (PAtom Eq x y)
-               = x == y
-    eqT (PAtom Ueq x y)
-               = x == y
-    eqT (PAtom Ne (ECon x) (ECon y))
-               = x /= y
-    eqT (PAtom Une (ECon x) (ECon y))
-               = x /= y
-    eqT _      = False
-
-isEq  :: Brel -> Bool
-isEq r          = r == Eq || r == Ueq
-
-instance PPrint Constant where
-  pprintTidy _ = toFix
-
-instance PPrint Brel where
-  pprintTidy _ Eq = "=="
-  pprintTidy _ Ne = "/="
-  pprintTidy _ r  = toFix r
-
-instance PPrint Bop where
-  pprintTidy _  = toFix
-
-instance PPrint Sort where
-  pprintTidy _ = toFix
-
-instance PPrint KVar where
-  pprintTidy _ (KV x) = text "$" <> pprint x
-
-instance PPrint SymConst where
-  pprintTidy _ (SL x) = doubleQuotes $ text $ T.unpack x
-
--- | Wrap the enclosed 'Doc' in parentheses only if the condition holds.
-parensIf :: Bool -> Doc -> Doc
-parensIf True  = parens
-parensIf False = id
-
--- NOTE: The following Expr and Pred printers use pprintPrec to print
--- expressions with minimal parenthesization. The precedence rules are somewhat
--- fragile, and it would be nice to have them directly tied to the parser, but
--- the general idea is (from lowest to highest precedence):
---
--- 1 - if-then-else
--- 2 - => and <=>
--- 3 - && and ||
--- 4 - ==, !=, <, <=, >, >=
--- 5 - mod
--- 6 - + and -
--- 7 - * and /
--- 8 - function application
---
--- Each printer `p` checks whether the precedence of the context is greater than
--- its own precedence. If so, the printer wraps itself in parentheses. Then it
--- sets the contextual precedence for recursive printer invocations to
--- (prec p + 1).
-
-opPrec :: Bop -> Int
-opPrec Mod    = 5
-opPrec Plus   = 6
-opPrec Minus  = 6
-opPrec Times  = 7
-opPrec RTimes = 7
-opPrec Div    = 7
-opPrec RDiv   = 7
-
-instance PPrint Expr where
-  pprintPrec _ k (ESym c)        = pprintTidy k c
-  pprintPrec _ k (ECon c)        = pprintTidy k c
-  pprintPrec _ k (EVar s)        = pprintTidy k s
-  -- pprintPrec _ (EBot)          = text "_|_"
-  pprintPrec z k (ENeg e)        = parensIf (z > zn) $
-                                   "-" <> pprintPrec (zn + 1) k e
-    where zn = 2
-  pprintPrec z k (EApp f es)     = parensIf (z > za) $
-                                   pprintPrec za k f <+> pprintPrec (za+1) k es
-    where za = 8
-  pprintPrec z k (EBin o e1 e2)  = parensIf (z > zo) $
-                                   pprintPrec (zo+1) k e1 <+>
-                                   pprintTidy k o         <+>
-                                   pprintPrec (zo+1) k e2
-    where zo = opPrec o
-  pprintPrec z k (EIte p e1 e2)  = parensIf (z > zi) $
-                                   "if"   <+> pprintPrec (zi+1) k p  <+>
-                                   "then" <+> pprintPrec (zi+1) k e1 <+>
-                                   "else" <+> pprintPrec (zi+1) k e2
-    where zi = 1
-
-  -- pprintPrec _ k (ECst e so)     = parens $ pprint e <+> ":" <+> const (text "...") (pprintTidy k so)
-  pprintPrec z k (ECst e _)      = pprintPrec z k e
-  pprintPrec _ _ PTrue           = trueD
-  pprintPrec _ _ PFalse          = falseD
-  pprintPrec z k (PNot p)        = parensIf (z > zn) $
-                                   "not" <+> pprintPrec (zn+1) k p
-    where zn = 8
-  pprintPrec z k (PImp p1 p2)    = parensIf (z > zi) $
-                                   (pprintPrec (zi+1) k p1) <+>
-                                   "=>"                     <+>
-                                   (pprintPrec (zi+1) k p2)
-    where zi = 2
-  pprintPrec z k (PIff p1 p2)    = parensIf (z > zi) $
-                                   (pprintPrec (zi+1) k p1) <+>
-                                   "<=>"                    <+>
-                                   (pprintPrec (zi+1) k p2)
-    where zi = 2
-  pprintPrec z k (PAnd ps)       = parensIf (z > za) $
-                                   pprintBin (za + 1) k trueD andD ps
-    where za = 3
-  pprintPrec z k (POr  ps)       = parensIf (z > zo) $
-                                   pprintBin (zo + 1) k falseD orD ps
-    where zo = 3
-  pprintPrec z k (PAtom r e1 e2) = parensIf (z > za) $
-                                   pprintPrec (za+1) k e1 <+>
-                                   pprintTidy k r         <+>
-                                   pprintPrec (za+1) k e2
-    where za = 4
-  pprintPrec _ k (PAll xts p)    = pprintQuant k "forall" xts p
-  pprintPrec _ k (PExist xts p)  = pprintQuant k "exists" xts p
-  pprintPrec _ k (ELam (x,t) e)  = "lam" <+> toFix x <+> ":" <+> toFix t <+> text "." <+> pprintTidy k e
-  pprintPrec _ _ p@(PKVar {})    = toFix p
-  pprintPrec _ _ (ETApp e s)     = "ETApp" <+> toFix e <+> toFix s
-  pprintPrec _ _ (ETAbs e s)     = "ETAbs" <+> toFix e <+> toFix s
-  pprintPrec z k (PGrad _ _ e)   = pprintPrec z k e <+> "&&" <+> "??"
-
-pprintQuant :: Tidy -> Doc -> [(Symbol, Sort)] -> Expr -> Doc
-pprintQuant k d xts p = (d <+> toFix xts)
-                        $+$
-                        ("  ." <+> pprintTidy k p)
-
-trueD, falseD, andD, orD :: Doc
-trueD  = "true"
-falseD = "false"
-andD   = "&&"
-orD    = "||"
-
-pprintBin :: (PPrint a) => Int -> Tidy -> Doc -> Doc -> [a] -> Doc
-pprintBin _ _ b _ [] = b
-pprintBin z k _ o xs = vIntersperse o $ pprintPrec z k <$> xs
-
-vIntersperse :: Doc -> [Doc] -> Doc
-vIntersperse _ []     = empty
-vIntersperse _ [d]    = d
-vIntersperse s (d:ds) = vcat (d : ((s <+>) <$> ds))
-
-pprintReft :: Tidy -> Reft -> Doc
-pprintReft k (Reft (_,ra)) = pprintBin z k trueD andD flat
-  where
-    flat = flattenRefas [ra]
-    z    = if length flat > 1 then 3 else 0
-
-------------------------------------------------------------------------
--- | Generalizing Symbol, Expression, Predicate into Classes -----------
-------------------------------------------------------------------------
-
--- | Values that can be viewed as Constants
-
--- | Values that can be viewed as Expressions
-
-class Expression a where
-  expr   :: a -> Expr
-
--- | Values that can be viewed as Predicates
-
-class Predicate a where
-  prop   :: a -> Expr
-
-instance Expression SortedReft where
-  expr (RR _ r) = expr r
-
-instance Expression Reft where
-  expr (Reft(_, e)) = e
-
-instance Expression Expr where
-  expr = id
-
--- | The symbol may be an encoding of a SymConst.
-
-instance Expression Symbol where
-  expr s = eVar s
-
-instance Expression Text where
-  expr = ESym . SL
-
-instance Expression Integer where
-  expr = ECon . I
-
-instance Expression Int where
-  expr = expr . toInteger
-
-instance Predicate Symbol where
-  prop = eProp
-
-instance Predicate Expr where
-  prop = id
-
-instance Predicate Bool where
-  prop True  = PTrue
-  prop False = PFalse
-
-instance Expression a => Expression (Located a) where
-  expr   = expr . val
-
-eVar ::  Symbolic a => a -> Expr
-eVar = EVar . symbol
-
-eProp ::  Symbolic a => a -> Expr
-eProp = mkProp . eVar
-
-isSingletonExpr :: Symbol -> Expr -> Maybe Expr
-isSingletonExpr v (PAtom r e1 e2)
-  | e1 == EVar v && isEq r = Just e2
-  | e2 == EVar v && isEq r = Just e1
-isSingletonExpr _ _        = Nothing
-
-pAnd, pOr     :: ListNE Pred -> Pred
-pAnd          = simplify . PAnd
-pOr           = simplify . POr
-
-(&.&) :: Pred -> Pred -> Pred
-(&.&) p q = pAnd [p, q]
-
-(|.|) :: Pred -> Pred -> Pred
-(|.|) p q = pOr [p, q]
-
-pIte :: Pred -> Expr -> Expr -> Expr
-pIte p1 p2 p3 = pAnd [p1 `PImp` p2, (PNot p1) `PImp` p3]
-
-pExist :: [(Symbol, Sort)] -> Pred -> Pred
-pExist []  p = p
-pExist xts p = PExist xts p
-
-mkProp :: Expr -> Pred
-mkProp = id -- EApp (EVar propConName)
-
---------------------------------------------------------------------------------
--- | Predicates ----------------------------------------------------------------
---------------------------------------------------------------------------------
-
-isSingletonReft :: Reft -> Maybe Expr
-isSingletonReft (Reft (v, ra)) = firstMaybe (isSingletonExpr v) $ conjuncts ra
-
-relReft :: (Expression a) => Brel -> a -> Reft
-relReft r e   = Reft (vv_, PAtom r (eVar vv_)  (expr e))
-
-exprReft, notExprReft, uexprReft ::  (Expression a) => a -> Reft
-exprReft      = relReft Eq
-notExprReft   = relReft Ne
-uexprReft     = relReft Ueq
-
-propReft      ::  (Predicate a) => a -> Reft
-propReft p    = Reft (vv_, PIff (eProp vv_) (prop p))
-
-predReft      :: (Predicate a) => a -> Reft
-predReft p    = Reft (vv_, prop p)
-
-reft :: Symbol -> Expr -> Reft
-reft v p = Reft (v, p)
-
-mapPredReft :: (Expr -> Expr) -> Reft -> Reft
-mapPredReft f (Reft (v, p)) = Reft (v, f p)
-
----------------------------------------------------------------
--- | Refinements ----------------------------------------------
----------------------------------------------------------------
-
-isFunctionSortedReft :: SortedReft -> Bool
-isFunctionSortedReft = isJust . functionSort . sr_sort
-
-isNonTrivial :: Reftable r => r -> Bool
-isNonTrivial = not . isTauto
-
-reftPred :: Reft -> Expr
-reftPred (Reft (_, p)) = p
-
-reftBind :: Reft -> Symbol
-reftBind (Reft (x, _)) = x
-
-------------------------------------------------------------
--- | Gradual Type Manipulation  ----------------------------
-------------------------------------------------------------
-pGAnds :: [Expr] -> Expr
-pGAnds = foldl pGAnd PTrue
-
-pGAnd :: Expr -> Expr -> Expr
-pGAnd (PGrad k su p) q = PGrad k su (pAnd [p, q])
-pGAnd p (PGrad k su q) = PGrad k su (pAnd [p, q])
-pGAnd p q              = pAnd [p,q]
-
-------------------------------------------------------------
--- | Generally Useful Refinements --------------------------
-------------------------------------------------------------
-
-symbolReft    :: (Symbolic a) => a -> Reft
-symbolReft    = exprReft . eVar
-
-usymbolReft   :: (Symbolic a) => a -> Reft
-usymbolReft   = uexprReft . eVar
-
-vv_ :: Symbol
-vv_ = vv Nothing
-
-trueSortedReft :: Sort -> SortedReft
-trueSortedReft = (`RR` trueReft)
-
-trueReft, falseReft :: Reft
-trueReft  = Reft (vv_, PTrue)
-falseReft = Reft (vv_, PFalse)
-
-flattenRefas :: [Expr] -> [Expr]
-flattenRefas        = concatMap flatP
-  where
-    flatP (PAnd ps) = concatMap flatP ps
-    flatP p         = [p]
-
-conjuncts :: Expr -> [Expr]
-conjuncts (PAnd ps) = concatMap conjuncts ps
-conjuncts p
-  | isTautoPred p   = []
-  | otherwise       = [p]
-
-
--------------------------------------------------------------------------
--- | TODO: This doesn't seem to merit a TC ------------------------------
--------------------------------------------------------------------------
-
-class Falseable a where
-  isFalse :: a -> Bool
-
-instance Falseable Expr where
-  isFalse (PFalse) = True
-  isFalse _        = False
-
-instance Falseable Reft where
-  isFalse (Reft (_, ra)) = isFalse ra
-
--------------------------------------------------------------------------
--- | Class Predicates for Valid Refinements -----------------------------
--------------------------------------------------------------------------
-
-class Subable a where
-  syms   :: a -> [Symbol]
-  substa :: (Symbol -> Symbol) -> a -> a
-  -- substa f  = substf (EVar . f)
-
-  substf :: (Symbol -> Expr) -> a -> a
-  subst  :: Subst -> a -> a
-  subst1 :: a -> (Symbol, Expr) -> a
-  subst1 y (x, e) = subst (Su $ M.fromList [(x,e)]) y
-
-instance Subable a => Subable (Located a) where
-  syms (Loc _ _ x)   = syms x
-  substa f (Loc l l' x) = Loc l l' (substa f x)
-  substf f (Loc l l' x) = Loc l l' (substf f x)
-  subst su (Loc l l' x) = Loc l l' (subst su x)
-
-
-class (Monoid r, Subable r) => Reftable r where
-  isTauto :: r -> Bool
-  ppTy    :: r -> Doc -> Doc
-
-  top     :: r -> r
-  top _   =  mempty
-
-  bot     :: r -> r
-
-  meet    :: r -> r -> r
-  meet    = mappend
-
-  toReft  :: r -> Reft
-  ofReft  :: Reft -> r
-  params  :: r -> [Symbol]          -- ^ parameters for Reft, vv + others
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Solutions.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Solutions.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Solutions.hs
+++ /dev/null
@@ -1,387 +0,0 @@
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE NoMonomorphismRestriction  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE UndecidableInstances       #-}
-{-# LANGUAGE MultiParamTypeClasses      #-}
-{-# LANGUAGE TypeOperators              #-}
-{-# LANGUAGE GADTs                      #-}
-{-# LANGUAGE PatternGuards              #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE TupleSections              #-}
-
--- | This module contains the top-level SOLUTION data types,
---   including various indices used for solving.
-
-module Language.Fixpoint.Types.Solutions (
-
-  -- * Solution tables
-    Solution, GSolution
-  , Sol (gMap, sEnv), updateGMap, updateGMapWithKey
-  , sScp
-  , CMap
-
-  -- * Solution elements
-  , Hyp, Cube (..), QBind, GBind
-  , EQual (..)
-
-  -- * Equal elements
-  , eQual
-  , trueEqual
-
-  -- * Gradual Solution elements   
-  , qbToGb, gbToQbs, gbEquals, equalsGb, emptyGMap   
-
-  -- * Solution Candidates (move to SolverMonad?)
-  , Cand
-
-  -- * Constructor
-  , fromList
-
-  -- * Update
-  , update
-
-  -- * Lookup
-  , lookupQBind
-  , lookup, glookup
-
-  -- * Manipulating QBind
-  , qb
-  , qbPreds
-  , qbFilter
-
-  , gbFilterM
-
-  -- * Conversion for client
-  , result, resultGradual
-
-  -- * "Fast" Solver (DEPRECATED as unsound)
-  , Index  (..)
-  , KIndex (..)
-  , BindPred (..)
-  , BIndex (..)
-  ) where
-
-import           Prelude hiding (lookup)
-import           GHC.Generics
-import           Control.DeepSeq
-import           Data.Maybe (fromMaybe)
-import           Data.Hashable
-import qualified Data.HashMap.Strict       as M
-import qualified Data.List as L
-import           Data.Generics             (Data)
-import           Data.Typeable             (Typeable)
-import           Control.Monad (filterM)
--- import qualified Data.HashSet              as S
-import           Language.Fixpoint.Misc
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.Sorts
-import           Language.Fixpoint.Types.Refinements
-import           Language.Fixpoint.Types.Environments
-import           Language.Fixpoint.Types.Constraints
-import           Language.Fixpoint.Types.Substitutions
-import           Language.Fixpoint.SortCheck (elaborate)
-import           Text.PrettyPrint.HughesPJ
-
---------------------------------------------------------------------------------
--- | Update Solution -----------------------------------------------------------
---------------------------------------------------------------------------------
-update :: Sol a QBind -> [KVar] -> [(KVar, EQual)] -> (Bool, Sol a QBind)
---------------------------------------------------------------------------------
-update s ks kqs = {- tracepp msg -} (or bs, s')
-  where
-    kqss        = groupKs ks kqs
-    (bs, s')    = folds update1 s kqss
-    -- msg      = printf "ks = %s, s = %s" (showpp ks) (showpp s)
-
-folds   :: (a -> b -> (c, a)) -> a -> [b] -> ([c], a)
-folds f b = L.foldl' step ([], b)
-  where
-     step (cs, acc) x = (c:cs, x')
-       where
-         (c, x')      = f acc x
-
-groupKs :: [KVar] -> [(KVar, EQual)] -> [(KVar, QBind)]
-groupKs ks kqs = [ (k, QB eqs) | (k, eqs) <- M.toList $ groupBase m0 kqs ]
-  where
-    m0         = M.fromList $ (,[]) <$> ks
-
-update1 :: Sol a QBind -> (KVar, QBind) -> (Bool, Sol a QBind)
-update1 s (k, qs) = (change, updateK k qs s)
-  where
-    oldQs         = lookupQBind s k
-    change        = qbSize oldQs /= qbSize qs
-
---------------------------------------------------------------------------------
--- | The `Solution` data type --------------------------------------------------
---------------------------------------------------------------------------------
-type Solution  = Sol () QBind
-type GSolution = Sol (((Symbol, Sort), Expr), GBind) QBind
-newtype QBind = QB [EQual]   deriving (Show, Data, Typeable, Generic, Eq)
-newtype GBind = GB [[EQual]] deriving (Show, Data, Typeable, Generic)
-
-emptyGMap :: GSolution -> GSolution 
-emptyGMap sol = mapGMap sol (\(x,_) -> (x, GB []))
-
-updateGMapWithKey :: [(KVar, QBind)] -> GSolution -> GSolution
-updateGMapWithKey kqs sol = sol {gMap =  foldl (\m (k, (QB eq)) -> M.adjust (\(x, GB eqs) -> (x, GB (if eq `elem` eqs then eqs else eq:eqs))) k m) (gMap sol) kqs } 
-
-qb :: [EQual] -> QBind
-qb = QB
-
-qbEQuals :: QBind -> [EQual]
-qbEQuals (QB xs) = xs
-
-qbToGb :: QBind -> GBind
-qbToGb (QB xs) = GB $ map (:[]) xs
-
-gbToQbs :: GBind -> [QBind]
-gbToQbs (GB [])  = [QB [trueEqual]] 
-gbToQbs (GB ess) = QB <$> ess
-
-gbEquals :: GBind -> [[EQual]]
-gbEquals (GB eqs) = eqs 
-
-equalsGb :: [[EQual]] -> GBind
-equalsGb = GB 
-
-gbFilterM :: Monad m => ([EQual] -> m Bool) -> GBind -> m GBind
-gbFilterM f (GB eqs) = GB <$> filterM f eqs 
-
-qbSize :: QBind -> Int
-qbSize = length . qbEQuals
-
-qbFilter :: (EQual -> Bool) -> QBind -> QBind
-qbFilter f (QB eqs) = QB (filter f eqs)
-
-instance NFData QBind
-instance NFData GBind
-
-instance PPrint QBind where
-  pprintTidy k = pprintTidy k . qbEQuals
-
---------------------------------------------------------------------------------
--- | A `Sol` contains the various indices needed to compute a solution,
---   in particular, to compute `lhsPred` for any given constraint.
---------------------------------------------------------------------------------
-data Sol b a = Sol
-  { sEnv  :: !(SEnv Sort)                -- ^ Environment used to elaborate solutions
-  , sMap  :: !(M.HashMap KVar a)         -- ^ Actual solution (for cut kvar)
-  , gMap  :: !(M.HashMap KVar b)         -- ^ Solution for gradual variables 
-  , sHyp  :: !(M.HashMap KVar Hyp)       -- ^ Defining cubes  (for non-cut kvar)
-  -- , sBot  :: !(M.HashMap KVar ())        -- ^ set of BOT (cut kvars)
-  , sScp  :: !(M.HashMap KVar IBindEnv)  -- ^ set of allowed binders for kvar
-  }
-
-updateGMap :: Sol b a -> M.HashMap KVar b -> Sol b a 
-updateGMap sol gmap = sol {gMap = gmap}
-
-
-mapGMap :: Sol b a -> (b -> b) -> Sol b a 
-mapGMap sol f = sol {gMap = M.map f (gMap sol)}
-
-
-instance Monoid (Sol a b) where
-  mempty        = Sol mempty mempty mempty mempty mempty
-  mappend s1 s2 = Sol { sEnv  = mappend (sEnv s1) (sEnv s2)
-                      , sMap  = mappend (sMap s1) (sMap s2)
-                      , gMap  = mappend (gMap s1) (gMap s2)
-                      , sHyp  = mappend (sHyp s1) (sHyp s2)
-    --                , sBot  = mappend (sBot s1) (sBot s2)
-                      , sScp  = mappend (sScp s1) (sScp s2)
-                      }
-
-instance Functor (Sol a) where
-  fmap f (Sol e s m1 m2 m3) = Sol e (f <$> s) m1 m2 m3 
-
-instance (PPrint a, PPrint b) => PPrint (Sol a b) where
-  pprintTidy k = pprintTidy k . sMap
-
-
---------------------------------------------------------------------------------
--- | A `Cube` is a single constraint defining a KVar ---------------------------
---------------------------------------------------------------------------------
-type Hyp      = ListNE Cube
-
-data Cube = Cube
-  { cuBinds :: IBindEnv  -- ^ Binders       from defining Env
-  , cuSubst :: Subst     -- ^ Substitutions from cstrs    Rhs
-  , cuId    :: SubcId    -- ^ Id            of   defining Cstr
-  , cuTag   :: Tag       -- ^ Tag           of   defining Cstr (DEBUG)
-  }
-
-instance PPrint Cube where
-  pprintTidy _ c = "Cube" <+> pprint (cuId c)
-
-instance Show Cube where
-  show = showpp
---------------------------------------------------------------------------------
-result :: Sol a QBind -> M.HashMap KVar Expr
---------------------------------------------------------------------------------
-result s = sMap $ (pAnd . fmap eqPred . qbEQuals) <$> s
-
-
---------------------------------------------------------------------------------
-resultGradual :: GSolution -> M.HashMap KVar (Expr, [Expr])
---------------------------------------------------------------------------------
-resultGradual s = fmap go' (gMap s)
-  where 
-    go' ((_,e), GB eqss) 
-     = (e, [PAnd $ fmap eqPred eqs | eqs <- eqss])
-
-
---------------------------------------------------------------------------------
--- | Create a Solution ---------------------------------------------------------
---------------------------------------------------------------------------------
-fromList :: SEnv Sort -> [(KVar, a)] -> [(KVar, b)] -> [(KVar, Hyp)] -> M.HashMap KVar IBindEnv -> Sol a b
-fromList env kGs kXs kYs = Sol env kXm kGm kYm -- kBm
-  where
-    kXm              = M.fromList   kXs
-    kYm              = M.fromList   kYs
-    kGm              = M.fromList   kGs
- -- kBm              = const () <$> kXm
-
---------------------------------------------------------------------------------
-qbPreds :: String -> Sol a QBind -> Subst -> QBind -> [(Pred, EQual)]
---------------------------------------------------------------------------------
-qbPreds msg s su (QB eqs) = [ (elabPred eq, eq) | eq <- eqs ]
-  where
-    elabPred          = elaborate ("qbPreds:" ++ msg) env . subst su . eqPred
-    env               = sEnv s
-
---------------------------------------------------------------------------------
--- | Read / Write Solution at KVar ---------------------------------------------
---------------------------------------------------------------------------------
-lookupQBind :: Sol a QBind -> KVar -> QBind
---------------------------------------------------------------------------------
-lookupQBind s k = {- tracepp _msg $ -} fromMaybe (QB []) (lookupElab s k)
-  where
-    _msg        = "lookupQB: k = " ++ show k
-
---------------------------------------------------------------------------------
-glookup :: GSolution -> KVar -> Either Hyp (Either QBind (((Symbol, Sort), Expr), GBind))
---------------------------------------------------------------------------------
-glookup s k
-  | Just gbs <- M.lookup k (gMap s)
-  = Right (Right gbs)
-  | Just cs  <- M.lookup k (sHyp s) -- non-cut variable, return its cubes
-  = Left cs
-  | Just eqs <- lookupElab s k
-  = Right (Left eqs)                 -- TODO: don't initialize kvars that have a hyp solution
-  | otherwise
-  = errorstar $ "solLookup: Unknown kvar " ++ show k
-
-
-
---------------------------------------------------------------------------------
-lookup :: Sol a QBind -> KVar -> Either Hyp QBind
---------------------------------------------------------------------------------
-lookup s k
-  | Just cs  <- M.lookup k (sHyp s) -- non-cut variable, return its cubes
-  = Left cs
-  | Just eqs <- lookupElab s k
-  = Right eqs                 -- TODO: don't initialize kvars that have a hyp solution
-  | otherwise
-  = errorstar $ "solLookup: Unknown kvar " ++ show k
-
-lookupElab :: Sol b QBind -> KVar -> Maybe QBind
-lookupElab s k = M.lookup k (sMap s)
-
---------------------------------------------------------------------------------
-updateK :: KVar -> a -> Sol b a -> Sol b a
---------------------------------------------------------------------------------
-updateK k qs s = s { sMap = M.insert k qs (sMap s)
---                 , sBot = M.delete k    (sBot s)
-                   }
-
-
---------------------------------------------------------------------------------
--- | A `Cand` is an association list indexed by predicates
---------------------------------------------------------------------------------
-type Cand a   = [(Expr, a)]
-
-
---------------------------------------------------------------------------------
--- | Instantiated Qualifiers ---------------------------------------------------
---------------------------------------------------------------------------------
-data EQual = EQL
-  { _eqQual :: !Qualifier
-  , eqPred  :: !Expr
-  , _eqArgs :: ![Expr]
-  } deriving (Eq, Show, Data, Typeable, Generic)
-
-trueEqual :: EQual
-trueEqual = EQL trueQual mempty [] 
-
-instance PPrint EQual where
-  pprintTidy k = pprintTidy k . eqPred
-
-instance NFData EQual
-
-{- EQL :: q:_ -> p:_ -> ListX F.Expr {q_params q} -> _ @-}
-eQual :: Qualifier -> [Symbol] -> EQual
-eQual q xs = {- tracepp "eQual" $ -} EQL q p es
-  where
-    p      = subst su $  qBody q
-    su     = mkSubst  $  safeZip "eQual" qxs es
-    es     = eVar    <$> xs
-    qxs    = fst     <$> qParams q
-
---------------------------------------------------------------------------------
--- | A KIndex uniquely identifies each *use* of a KVar in an (LHS) binder
---------------------------------------------------------------------------------
-data KIndex = KIndex { kiBIndex :: !BindId
-                     , kiPos    :: !Int
-                     , kiKVar   :: !KVar
-                     }
-              deriving (Eq, Ord, Show, Generic)
-
-instance Hashable KIndex
-
-instance PPrint KIndex where
-  pprintTidy _ = tshow
-
---------------------------------------------------------------------------------
--- | A BIndex is created for each LHS Bind or RHS constraint
---------------------------------------------------------------------------------
-data BIndex    = Root
-               | Bind !BindId
-               | Cstr !SubcId
-                 deriving (Eq, Ord, Show, Generic)
-
-instance Hashable BIndex
-
-instance PPrint BIndex where
-  pprintTidy _ = tshow
-
---------------------------------------------------------------------------------
--- | Each `Bind` corresponds to a conjunction of a `bpConc` and `bpKVars`
---------------------------------------------------------------------------------
-data BindPred  = BP
-  { bpConc :: !Pred                  -- ^ Concrete predicate (PTrue o)
-  , bpKVar :: ![KIndex]              -- ^ KVar-Subst pairs
-  } deriving (Show)
-
-instance PPrint BindPred where
-  pprintTidy _ = tshow
-
-
---------------------------------------------------------------------------------
--- | A Index is a suitably indexed version of the cosntraints that lets us
---   1. CREATE a monolithic "background formula" representing all constraints,
---   2. ASSERT each lhs via bits for the subc-id and formulas for dependent cut KVars
---------------------------------------------------------------------------------
-data Index = FastIdx
-  { bindExpr   :: !(BindId |-> BindPred) -- ^ BindPred for each BindId
-  , kvUse      :: !(KIndex |-> KVSub)    -- ^ Definition of each `KIndex`
-  , kvDef      :: !(KVar   |-> Hyp)      -- ^ Constraints defining each `KVar`
-  , envBinds   :: !(CMap IBindEnv)       -- ^ Binders of each Subc
-  , envTx      :: !(CMap [SubcId])       -- ^ Transitive closure oof all dependent binders
-  , envSorts   :: !(SEnv Sort)           -- ^ Sorts for all symbols
-  -- , bindPrev   :: !(BIndex |-> BIndex)   -- ^ "parent" (immediately dominating) binder
-  -- , kvDeps     :: !(CMap [KIndex])       -- ^ List of (Cut) KVars on which a SubC depends
-  }
-
-type CMap a  = M.HashMap SubcId a
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Sorts.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Sorts.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Sorts.hs
+++ /dev/null
@@ -1,345 +0,0 @@
-{-# LANGUAGE TupleSections              #-}
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveGeneric              #-}
-{-# LANGUAGE FlexibleContexts           #-}
-{-# LANGUAGE FlexibleInstances          #-}
-{-# LANGUAGE GeneralizedNewtypeDeriving #-}
-{-# LANGUAGE NoMonomorphismRestriction  #-}
-{-# LANGUAGE OverloadedStrings          #-}
-{-# LANGUAGE UndecidableInstances       #-}
-{-# LANGUAGE MultiParamTypeClasses      #-}
-{-# LANGUAGE GADTs                      #-}
-
--- | This module contains the data types, operations and
---   serialization functions for representing Fixpoint's
---   implication (i.e. subtyping) and well-formedness
---   constraints in Haskell. The actual constraint
---   solving is done by the `fixpoint.native` which
---   is written in Ocaml.
-
-module Language.Fixpoint.Types.Sorts (
-
-  -- * Embedding to Fixpoint Types
-    Sort (..)
-  , Sub (..)
-  , FTycon, TCEmb
-  , sortFTycon
-  , intFTyCon, boolFTyCon, realFTyCon, numFTyCon, strFTyCon, setFTyCon  -- TODO: hide these
-
-  , intSort, realSort, boolSort, strSort, funcSort
-  , setSort, bitVecSort, mapSort
-  , listFTyCon
-  , isListTC
-  , isFirstOrder
-  , mappendFTC
-  , fTyconSymbol, symbolFTycon, fTyconSort, symbolNumInfoFTyCon
-  , fApp, fApp', fAppTC
-  , fObj
-
-  , sortSubst
-  , functionSort
-  , mkFFunc
-  , bkFFunc
-
-  , isNumeric, isReal, isString
-  ) where
-
-import qualified Data.Binary as B
-import           Data.Generics             (Data)
-import           Data.Typeable             (Typeable)
-import           GHC.Generics              (Generic)
-
-import           Data.Monoid               ()
-import           Data.Hashable
-import           Data.List                 (foldl')
-import           Control.DeepSeq
-import           Data.Maybe                (fromMaybe)
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Spans
-import           Language.Fixpoint.Misc
-import           Text.PrettyPrint.HughesPJ
-import qualified Data.HashMap.Strict       as M
-
-
-data FTycon   = TC LocSymbol TCInfo deriving (Ord, Show, Data, Typeable, Generic)
-type TCEmb a  = M.HashMap a FTycon
-
-
-instance Eq FTycon where
-  (TC s _) == (TC s' _) = val s == val s'
-
-data TCInfo = TCInfo { tc_isNum :: Bool, tc_isReal :: Bool, tc_isString :: Bool }
-  deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-mappendFTC :: FTycon -> FTycon -> FTycon
-mappendFTC (TC x i1) (TC _ i2) = TC x (mappend i1 i2)
-
-instance Monoid TCInfo where
-  mempty                                          = TCInfo defNumInfo defRealInfo defStrInfo
-  mappend (TCInfo i1 i2 i3)  (TCInfo i1' i2' i3') = TCInfo (i1 || i1') (i2 || i2') (i3 || i3')
-
-defTcInfo, numTcInfo, realTcInfo, strTcInfo :: TCInfo
-defTcInfo  = TCInfo defNumInfo defRealInfo defStrInfo
-numTcInfo  = TCInfo True       defRealInfo defStrInfo
-realTcInfo = TCInfo True       True        defStrInfo
-strTcInfo  = TCInfo defNumInfo defRealInfo True
-
-defNumInfo, defRealInfo, defStrInfo :: Bool
-defNumInfo  = False
-defRealInfo = False
-defStrInfo  = False
-
-charFTyCon, intFTyCon, boolFTyCon, realFTyCon, funcFTyCon, numFTyCon, strFTyCon, listFTyCon, setFTyCon :: FTycon
-intFTyCon  = TC (dummyLoc "int"      ) numTcInfo
-boolFTyCon = TC (dummyLoc "bool"     ) defTcInfo
-realFTyCon = TC (dummyLoc "real"     ) realTcInfo
-numFTyCon  = TC (dummyLoc "num"      ) numTcInfo
-funcFTyCon = TC (dummyLoc "function" ) defTcInfo
-strFTyCon  = TC (dummyLoc strConName ) strTcInfo
-listFTyCon = TC (dummyLoc listConName) defTcInfo
-charFTyCon = TC (dummyLoc "Char"     ) defTcInfo
-setFTyCon  = TC (dummyLoc setConName ) defTcInfo
-
-isListConName :: LocSymbol -> Bool
-isListConName x = c == listConName || c == listLConName --"List"
-  where
-    c           = val x
-
-isListTC :: FTycon -> Bool
-isListTC (TC z _) = isListConName z
-
-fTyconSymbol :: FTycon -> Located Symbol
-fTyconSymbol (TC s _) = s
-
-symbolNumInfoFTyCon :: LocSymbol -> Bool -> Bool -> FTycon
-symbolNumInfoFTyCon c isNum isReal
-  | isListConName c
-  = TC (fmap (const listConName) c) tcinfo
-  | otherwise
-  = TC c tcinfo
-  where
-    tcinfo = defTcInfo{tc_isNum = isNum, tc_isReal = isReal}
-
-
-
-symbolFTycon :: LocSymbol -> FTycon
-symbolFTycon c = symbolNumInfoFTyCon c defNumInfo defRealInfo
-
-fApp :: Sort -> [Sort] -> Sort
-fApp = foldl' FApp
-
-fAppTC :: FTycon -> [Sort] -> Sort
-fAppTC = fApp . fTyconSort
-
-fApp' :: Sort -> ListNE Sort
-fApp' = go []
-  where
-    go acc (FApp t1 t2) = go (t2 : acc) t1
-    go acc t            = t : acc
-
-fObj :: LocSymbol -> Sort
-fObj = fTyconSort . (`TC` defTcInfo)
-
-sortFTycon :: Sort -> Maybe FTycon
-sortFTycon FInt    = Just intFTyCon
-sortFTycon FReal   = Just realFTyCon
-sortFTycon FNum    = Just numFTyCon
-sortFTycon (FTC c) = Just c
-sortFTycon _       = Nothing
-
-
-functionSort :: Sort -> Maybe ([Int], [Sort], Sort)
-functionSort s
-  | null is && null ss
-  = Nothing
-  | otherwise
-  = Just (is, ss, r)
-  where
-    (is, ss, r) = go [] [] s
-    go vs ss (FAbs i t)    = go (i:vs) ss t
-    go vs ss (FFunc s1 s2) = go vs (s1:ss) s2
-    go vs ss t             = (reverse vs, reverse ss, t)
-
-----------------------------------------------------------------------
-------------------------------- Sorts --------------------------------
-----------------------------------------------------------------------
-
-data Sort = FInt
-          | FReal
-          | FNum                 -- ^ numeric kind for Num tyvars
-          | FFrac                -- ^ numeric kind for Fractional tyvars
-          | FObj  !Symbol        -- ^ uninterpreted type
-          | FVar  !Int           -- ^ fixpoint type variable
-          | FFunc !Sort !Sort    -- ^ function
-          | FAbs  !Int !Sort     -- ^ type-abstraction
-          | FTC   !FTycon
-          | FApp  !Sort !Sort    -- ^ constructed type
-              deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-
-isFirstOrder, isFunction :: Sort -> Bool
-
-isFirstOrder (FFunc sx s) = not (isFunction sx) && isFirstOrder s
-isFirstOrder (FAbs _ s)   = isFirstOrder s
-isFirstOrder (FApp s1 s2) = (not $ isFunction s1) && (not $ isFunction s2)
-isFirstOrder _            = True
-
-isFunction (FAbs _ s)  = isFunction s
-isFunction (FFunc _ _) = True
-isFunction _           = False
-
-isNumeric :: Sort -> Bool
-isNumeric FInt           = True
-isNumeric (FApp s _)     = isNumeric s
-isNumeric (FTC (TC _ i)) = tc_isNum i
-isNumeric (FAbs _ s)     = isNumeric s
-isNumeric _              = False
-
-isReal :: Sort -> Bool
-isReal FReal          = True
-isReal (FApp s _)     = isReal s
-isReal (FTC (TC _ i)) = tc_isReal i
-isReal (FAbs _ s)     = isReal s
-isReal _              = False
-
-
-isString :: Sort -> Bool
-isString (FApp l c)     = (isList l && isChar c) || isString l
-isString (FTC (TC c i)) = (val c == strConName || tc_isString i)
-isString (FAbs _ s)     = isString s
-isString _              = False
-
-isList :: Sort -> Bool
-isList (FTC c) = isListTC c
-isList _       = False
-
-isChar :: Sort -> Bool
-isChar (FTC c) = c == charFTyCon
-isChar _       = False
-
-{-@ FFunc :: Nat -> ListNE Sort -> Sort @-}
-
-mkFFunc :: Int -> [Sort] -> Sort
-mkFFunc i ss     = go [0..i-1] ss
-  where
-    go [] [s]    = s
-    go [] (s:ss) = FFunc s $ go [] ss
-    go (i:is) ss = FAbs i $ go is ss
-    go _ _       = error "cannot happen"
-
-   -- foldl (flip FAbs) (foldl1 (flip FFunc) ss) [0..i-1]
-
-bkFFunc :: Sort -> Maybe (Int, [Sort])
-bkFFunc t    = (maximum (0 : as),) <$> bkFun t'
-  where
-    (as, t') = bkAbs t
-
-bkAbs :: Sort -> ([Int], Sort)
-bkAbs (FAbs i t) = (i:is, t') where (is, t') = bkAbs t
-bkAbs t          = ([], t)
-
-bkFun :: Sort -> Maybe [Sort]
-bkFun z@(FFunc _ _)  = Just (go z)
-  where
-    go (FFunc t1 t2) = t1 : go t2
-    go t             = [t]
-bkFun _              = Nothing
-
-
-instance Hashable FTycon where
-  hashWithSalt i (TC s _) = hashWithSalt i s
-
-instance Hashable Sort
-
-newtype Sub = Sub [(Int, Sort)] deriving (Generic)
-
-instance Fixpoint Sort where
-  toFix = toFixSort
-
-toFixSort :: Sort -> Doc
-toFixSort (FVar i)     = text "@"   <> parens (toFix i)
-toFixSort FInt         = text "int"
-toFixSort FReal        = text "real"
-toFixSort FFrac        = text "frac"
-toFixSort (FObj x)     = toFix x
-toFixSort FNum         = text "num"
-toFixSort t@(FAbs _ _) = toFixAbsApp t
-toFixSort t@(FFunc _ _)= toFixAbsApp t
-toFixSort (FTC c)      = toFix c
-toFixSort t@(FApp _ _) = toFixFApp (fApp' t)
-
-toFixAbsApp :: Sort -> Doc
-toFixAbsApp t = text "func" <> parens (toFix n <> text ", " <> toFix ts)
-  where
-    Just (vs, ss, s) = functionSort t
-    n                = length vs
-    ts               = ss ++ [s]
-
-toFixFApp            :: ListNE Sort -> Doc
-toFixFApp [t]        = toFixSort t
-toFixFApp [FTC c, t]
-  | isListTC c       = brackets $ toFixSort t
-toFixFApp ts         = parens $ intersperse space (toFixSort <$> ts)
-
-instance Fixpoint FTycon where
-  toFix (TC s _)       = toFix s
-
--------------------------------------------------------------------------
--- | Exported Basic Sorts -----------------------------------------------
--------------------------------------------------------------------------
-
-boolSort, intSort, realSort, strSort, funcSort :: Sort
-boolSort = fTyconSort boolFTyCon
-strSort  = fTyconSort strFTyCon
-intSort  = fTyconSort intFTyCon
-realSort = fTyconSort realFTyCon
-funcSort = fTyconSort funcFTyCon
-
-setSort :: Sort -> Sort
-setSort    = FApp (FTC setFTyCon)
-
-bitVecSort :: Sort
-bitVecSort = FApp (FTC $ symbolFTycon' bitVecName) (FTC $ symbolFTycon' size32Name)
-
-mapSort :: Sort -> Sort -> Sort
-mapSort = FApp . FApp (FTC (symbolFTycon' mapConName))
-
-symbolFTycon' :: Symbol -> FTycon
-symbolFTycon' = symbolFTycon . dummyLoc
-
-fTyconSort :: FTycon -> Sort
-fTyconSort c
-  | c == intFTyCon  = FInt
-  | c == realFTyCon = FReal
-  | c == numFTyCon  = FNum
-  | otherwise       = FTC c
-
-------------------------------------------------------------------------
-sortSubst                  :: M.HashMap Symbol Sort -> Sort -> Sort
-------------------------------------------------------------------------
-sortSubst θ t@(FObj x)    = fromMaybe t (M.lookup x θ)
-sortSubst θ (FFunc t1 t2) = FFunc (sortSubst θ t1) (sortSubst θ t2)
-sortSubst θ (FApp t1 t2)  = FApp  (sortSubst θ t1) (sortSubst θ t2)
-sortSubst θ (FAbs i t)    = FAbs i (sortSubst θ t)
-sortSubst _  t            = t
-
-
-instance B.Binary FTycon
-instance B.Binary TCInfo
-instance B.Binary Sort
-instance B.Binary Sub
-
-instance NFData FTycon
-instance NFData TCInfo
-instance NFData Sort
-instance NFData Sub
-
-
-instance Monoid Sort where
-  mempty            = FObj "any"
-  mappend t1 t2
-    | t1 == mempty  = t2
-    | t2 == mempty  = t1
-    | t1 == t2      = t1
-    | otherwise     = errorstar $ "mappend-sort: conflicting sorts t1 =" ++ show t1 ++ " t2 = " ++ show t2
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Spans.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Spans.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Spans.hs
+++ /dev/null
@@ -1,189 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable        #-}
-{-# LANGUAGE DeriveGeneric             #-}
-{-# LANGUAGE FlexibleInstances         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE ScopedTypeVariables       #-}
-
-module Language.Fixpoint.Types.Spans (
-
-  -- * Concrete Location Type
-    SourcePos
-  , SrcSpan (..)
-
-  -- * Located Values
-  , Loc (..)
-  , Located (..)
-
-  -- * Constructing spans
-  , dummySpan
-  , locAt
-  , dummyLoc
-  , dummyPos
-  , atLoc
-
-  -- * Destructing spans
-  , sourcePosElts
-  ) where
-
--- import           Control.Exception
-import           Control.DeepSeq
--- import qualified Control.Monad.Error           as E
-import           Data.Serialize                (Serialize (..))
-import           Data.Generics                 (Data)
-import           Data.Hashable
-import           Data.Typeable
-import           Data.String
-import qualified Data.Binary                   as B
-import           GHC.Generics                  (Generic)
-import           Language.Fixpoint.Types.PrettyPrint
--- import           Language.Fixpoint.Misc
-import           Text.Parsec.Pos
-import           Text.PrettyPrint.HughesPJ
-import           Text.Printf
--- import           Debug.Trace
-
------------------------------------------------------------------------
--- | Located Values ---------------------------------------------------
------------------------------------------------------------------------
-
-class Loc a where
-  srcSpan :: a -> SrcSpan
-
------------------------------------------------------------------------
--- | Retrofitting instances to SourcePos ------------------------------
------------------------------------------------------------------------
-
-instance NFData SourcePos where
-  rnf = rnf . ofSourcePos
-
-instance B.Binary SourcePos where
-  put = B.put . ofSourcePos
-  get = toSourcePos <$> B.get
-
-instance Serialize SourcePos where
-  put = put . ofSourcePos
-  get = toSourcePos <$> get
-
-instance PPrint SourcePos where
-  pprintTidy _ = text . show
-
-instance Hashable SourcePos where
-  hashWithSalt i   = hashWithSalt i . sourcePosElts
-
-ofSourcePos :: SourcePos -> (SourceName, Line, Column)
-ofSourcePos p = (f, l, c)
-  where
-   f = sourceName   p
-   l = sourceLine   p
-   c = sourceColumn p
-
-toSourcePos :: (SourceName, Line, Column) -> SourcePos
-toSourcePos (f, l, c) = newPos f l c
-
-sourcePosElts :: SourcePos -> (SourceName, Line, Column)
-sourcePosElts s = (src, line, col)
-  where
-    src         = sourceName   s
-    line        = sourceLine   s
-    col         = sourceColumn s
-
-instance Fixpoint SourcePos where
-  toFix = text . show
-
-
-data Located a = Loc { loc  :: !SourcePos -- ^ Start Position
-                     , locE :: !SourcePos -- ^ End Position
-                     , val  :: !a
-                     } deriving (Data, Typeable, Generic)
-
-instance Loc (Located a) where
-  srcSpan (Loc l l' _) = SS l l'
-
-
-instance (NFData a) => NFData (Located a)
-
-instance Fixpoint a => Fixpoint (Located a) where
-  toFix = toFix . val
-
-instance Functor Located where
-  fmap f (Loc l l' x) =  Loc l l' (f x)
-
-
-instance Foldable Located where
-  foldMap f (Loc _ _ x) = f x
-
-instance Traversable Located where
-  traverse f (Loc l l' x) = Loc l l' <$> f x
-
-instance Show a => Show (Located a) where
-  show (Loc l l' x)
-    | l == l' && l == dummyPos "Fixpoint.Types.dummyLoc" = show x ++ " (dummyLoc)"
-    | otherwise  = show x ++ " defined from: " ++ show l ++ " to: " ++ show l'
-
-instance PPrint a => PPrint (Located a) where
-  pprintTidy k (Loc _ _ x) = pprintTidy k x
-
-instance Eq a => Eq (Located a) where
-  (Loc _ _ x) == (Loc _ _ y) = x == y
-
-instance Ord a => Ord (Located a) where
-  compare x y = compare (val x) (val y)
-
-instance (B.Binary a) => B.Binary (Located a)
-
-instance Hashable a => Hashable (Located a) where
-  hashWithSalt i = hashWithSalt i . val
-
-instance (IsString a) => IsString (Located a) where
-  fromString = dummyLoc . fromString
-
-
------------------------------------------------------------------------
--- | A Reusable SrcSpan Type ------------------------------------------
------------------------------------------------------------------------
-
-data SrcSpan = SS { sp_start :: !SourcePos
-                  , sp_stop  :: !SourcePos}
-                 deriving (Eq, Ord, Show, Data, Typeable, Generic)
-
-instance Serialize SrcSpan
-
-instance PPrint SrcSpan where
-  pprintTidy _ = ppSrcSpan
-
--- ppSrcSpan_short z = parens
---                   $ text (printf "file %s: (%d, %d) - (%d, %d)" (takeFileName f) l c l' c')
---   where
---     (f,l ,c )     = sourcePosElts $ sp_start z
---     (_,l',c')     = sourcePosElts $ sp_stop  z
-
-ppSrcSpan :: SrcSpan -> Doc
-ppSrcSpan z       = text (printf "%s:%d:%d-%d:%d" f l c l' c')
-                -- parens $ text (printf "file %s: (%d, %d) - (%d, %d)" (takeFileName f) l c l' c')
-  where
-    (f,l ,c )     = sourcePosElts $ sp_start z
-    (_,l',c')     = sourcePosElts $ sp_stop  z
-
-
-instance Hashable SrcSpan where
-  hashWithSalt i z = hashWithSalt i (sp_start z, sp_stop z)
-
-dummySpan :: SrcSpan
-dummySpan = SS l l
-  where l = initialPos ""
-
-atLoc :: Located a -> b -> Located b
-atLoc (Loc l l' _) = Loc l l'
-
-locAt :: String -> a -> Located a
-locAt s  = Loc l l
-  where
-    l    = dummyPos s
-
-dummyLoc :: a -> Located a
-dummyLoc = Loc l l
-  where
-    l    = dummyPos "Fixpoint.Types.dummyLoc"
-
-dummyPos   :: String -> SourcePos
-dummyPos s = newPos s 0 0
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Substitutions.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Substitutions.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Substitutions.hs
+++ /dev/null
@@ -1,283 +0,0 @@
--- | This module contains the various instances for Subable,
---   which (should) depend on the visitors, and hence cannot
---   be in the same place as the @Term@ definitions.
-module Language.Fixpoint.Types.Substitutions (
-    mkSubst
-  , isEmptySubst
-  , substExcept
-  , substfExcept
-  , subst1Except
-  , targetSubstSyms
-  , filterSubst
-  ) where
-
-import           Data.Maybe
-import qualified Data.HashMap.Strict       as M
-import qualified Data.HashSet              as S
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.Sorts
-import           Language.Fixpoint.Types.Refinements
-import           Language.Fixpoint.Misc
-import           Text.PrettyPrint.HughesPJ
-import           Text.Printf               (printf)
-
-instance Monoid Subst where
-  mempty  = emptySubst
-  mappend = catSubst
-
-filterSubst :: (Symbol -> Expr -> Bool) -> Subst -> Subst
-filterSubst f (Su m) = Su (M.filterWithKey f m)
-
-emptySubst :: Subst
-emptySubst = Su M.empty
-
-catSubst :: Subst -> Subst -> Subst
-catSubst (Su s1) θ2@(Su s2) = Su $ M.union s1' s2
-  where
-    s1'                     = subst θ2 <$> s1
-
-mkSubst :: [(Symbol, Expr)] -> Subst
-
-mkSubst = Su . M.fromList . reverse . filter notTrivial 
-  where
-    notTrivial (x, EVar y) = x /= y
-    notTrivial _           = True  
-
-isEmptySubst :: Subst -> Bool
-isEmptySubst (Su xes) = M.null xes
-
-targetSubstSyms :: Subst -> [Symbol]
-targetSubstSyms (Su ms) = syms $ M.elems ms
-
-instance Subable () where
-  syms _      = []
-  subst _ ()  = ()
-  substf _ () = ()
-  substa _ () = ()
-
-instance (Subable a, Subable b) => Subable (a,b) where
-  syms  (x, y)   = syms x ++ syms y
-  subst su (x,y) = (subst su x, subst su y)
-  substf f (x,y) = (substf f x, substf f y)
-  substa f (x,y) = (substa f x, substa f y)
-
-instance Subable a => Subable [a] where
-  syms   = concatMap syms
-  subst  = map . subst
-  substf = map . substf
-  substa = map . substa
-
-instance Subable a => Subable (M.HashMap k a) where
-  syms   = syms . M.elems
-  subst  = M.map . subst
-  substf = M.map . substf
-  substa = M.map . substa
-
-subst1Except :: (Subable a) => [Symbol] -> a -> (Symbol, Expr) -> a
-subst1Except xs z su@(x, _)
-  | x `elem` xs = z
-  | otherwise   = subst1 z su
-
-substfExcept :: (Symbol -> Expr) -> [Symbol] -> Symbol -> Expr
-substfExcept f xs y = if y `elem` xs then EVar y else f y
-
-substExcept  :: Subst -> [Symbol] -> Subst
--- substExcept  (Su m) xs = Su (foldr M.delete m xs)
-substExcept (Su xes) xs = Su $ M.filterWithKey (const . not . (`elem` xs)) xes
-
-instance Subable Symbol where
-  substa f                 = f
-  substf f x               = subSymbol (Just (f x)) x
-  subst su x               = subSymbol (Just $ appSubst su x) x -- subSymbol (M.lookup x s) x
-  syms x                   = [x]
-
-appSubst :: Subst -> Symbol -> Expr
-appSubst (Su s) x = fromMaybe (EVar x) (M.lookup x s)
-
-subSymbol :: Maybe Expr -> Symbol -> Symbol
-subSymbol (Just (EVar y)) _ = y
-subSymbol Nothing         x = x
-subSymbol a               b = errorstar (printf "Cannot substitute symbol %s with expression %s" (showFix b) (showFix a))
-
-substfLam :: (Symbol -> Expr) -> (Symbol, Sort) -> Expr -> Expr
-substfLam f s@(x, _) e =  ELam s (substf (\y -> if y == x then EVar x else f y) e)
-
-instance Subable Expr where
-  syms                     = exprSymbols
-  substa f                 = substf (EVar . f)
-  substf f (EApp s e)      = EApp (substf f s) (substf f e)
-  substf f (ELam x e)      = substfLam f x e
-  substf f (ENeg e)        = ENeg (substf f e)
-  substf f (EBin op e1 e2) = EBin op (substf f e1) (substf f e2)
-  substf f (EIte p e1 e2)  = EIte (substf f p) (substf f e1) (substf f e2)
-  substf f (ECst e so)     = ECst (substf f e) so
-  substf f (EVar x)        = f x
-  substf f (PAnd ps)       = PAnd $ map (substf f) ps
-  substf f (POr  ps)       = POr  $ map (substf f) ps
-  substf f (PNot p)        = PNot $ substf f p
-  substf f (PImp p1 p2)    = PImp (substf f p1) (substf f p2)
-  substf f (PIff p1 p2)    = PIff (substf f p1) (substf f p2)
-  substf f (PAtom r e1 e2) = PAtom r (substf f e1) (substf f e2)
-  substf _ p@(PKVar _ _)   = p
-  substf _  (PAll _ _)     = errorstar "substf: FORALL"
-  substf f (PGrad k su e)  = PGrad k su (substf f e)
-  substf _  p              = p
-
-
-  subst su (EApp f e)      = EApp (subst su f) (subst su e)
-  subst su (ELam x e)      = ELam x (subst (removeSubst su (fst x)) e)
-  subst su (ENeg e)        = ENeg (subst su e)
-  subst su (EBin op e1 e2) = EBin op (subst su e1) (subst su e2)
-  subst su (EIte p e1 e2)  = EIte (subst su p) (subst su e1) (subst su e2)
-  subst su (ECst e so)     = ECst (subst su e) so
-  subst su (EVar x)        = appSubst su x
-  subst su (PAnd ps)       = PAnd $ map (subst su) ps
-  subst su (POr  ps)       = POr  $ map (subst su) ps
-  subst su (PNot p)        = PNot $ subst su p
-  subst su (PImp p1 p2)    = PImp (subst su p1) (subst su p2)
-  subst su (PIff p1 p2)    = PIff (subst su p1) (subst su p2)
-  subst su (PAtom r e1 e2) = PAtom r (subst su e1) (subst su e2)
-  subst su (PKVar k su')   = PKVar k $ su' `catSubst` su
-  subst su (PGrad k su' e) = PGrad k (su' `catSubst` su)  (subst su e)
-  subst su (PAll bs p)
-          | disjoint su bs = PAll bs $ subst su p --(substExcept su (fst <$> bs)) p
-          | otherwise      = errorstar "subst: PAll (without disjoint binds)"
-  subst su (PExist bs p)
-          | disjoint su bs = PExist bs $ subst su p --(substExcept su (fst <$> bs)) p
-          | otherwise      = errorstar ("subst: EXISTS (without disjoint binds)" ++ show (bs, su))
-  subst _  p               = p
-
-removeSubst :: Subst -> Symbol -> Subst
-removeSubst (Su su) x = Su $ M.delete x su
-
-disjoint :: Subst -> [(Symbol, Sort)] -> Bool
-disjoint (Su su) bs = S.null $ suSyms `S.intersection` bsSyms
-  where
-    suSyms = S.fromList $ syms (M.elems su) ++ syms (M.keys su)
-    bsSyms = S.fromList $ syms $ fst <$> bs
-
-instance Monoid Expr where
-  mempty      = PTrue
-  mappend p q = pAnd [p, q]
-  mconcat     = pAnd
-
-instance Monoid Reft where
-  mempty  = trueReft
-  mappend = meetReft
-
-meetReft :: Reft -> Reft -> Reft
-meetReft (Reft (v, ra)) (Reft (v', ra'))
-  | v == v'          = Reft (v , ra  `mappend` ra')
-  | v == dummySymbol = Reft (v', ra' `mappend` (ra `subst1`  (v , EVar v')))
-  | otherwise        = Reft (v , ra  `mappend` (ra' `subst1` (v', EVar v )))
-
-instance Monoid SortedReft where
-  mempty        = RR mempty mempty
-  mappend t1 t2 = RR (mappend (sr_sort t1) (sr_sort t2)) (mappend (sr_reft t1) (sr_reft t2))
-
-instance Subable Reft where
-  syms (Reft (v, ras))      = v : syms ras
-  substa f (Reft (v, ras))  = Reft (f v, substa f ras)
-  subst su (Reft (v, ras))  = Reft (v, subst (substExcept su [v]) ras)
-  substf f (Reft (v, ras))  = Reft (v, substf (substfExcept f [v]) ras)
-  subst1 (Reft (v, ras)) su = Reft (v, subst1Except [v] ras su)
-
-instance Subable SortedReft where
-  syms               = syms . sr_reft
-  subst su (RR so r) = RR so $ subst su r
-  substf f (RR so r) = RR so $ substf f r
-  substa f (RR so r) = RR so $ substa f r
-
-instance Reftable () where
-  isTauto _ = True
-  ppTy _  d = d
-  top  _    = ()
-  bot  _    = ()
-  meet _ _  = ()
-  toReft _  = mempty
-  ofReft _  = mempty
-  params _  = []
-
-instance Reftable Reft where
-  isTauto  = all isTautoPred . conjuncts . reftPred
-  ppTy     = pprReft
-  toReft   = id
-  ofReft   = id
-  params _ = []
-  bot    _        = falseReft
-  top (Reft(v,_)) = Reft (v, mempty)
-
-pprReft :: Reft -> Doc -> Doc
-pprReft (Reft (v, p)) d
-  | isTautoPred p
-  = d
-  | otherwise
-  = braces (toFix v <+> colon <+> d <+> text "|" <+> ppRas [p])
-
-instance Reftable SortedReft where
-  isTauto  = isTauto . toReft
-  ppTy     = ppTy . toReft
-  toReft   = sr_reft
-  ofReft   = errorstar "No instance of ofReft for SortedReft"
-  params _ = []
-  bot s    = s { sr_reft = falseReft }
-  top s    = s { sr_reft = trueReft }
-
--- RJ: this depends on `isTauto` hence, here.
-instance PPrint Reft where
-  pprintTidy k r
-    | isTauto r        = text "true"
-    | otherwise        = pprintReft k r
-
-instance PPrint SortedReft where
-  pprintTidy k (RR so (Reft (v, ras)))
-    = braces
-    $ pprintTidy k v <+> text ":" <+> toFix so <+> text "|" <+> pprintTidy k ras
-
-instance Fixpoint Reft where
-  toFix = pprReftPred
-
-instance Fixpoint SortedReft where
-  toFix (RR so (Reft (v, ra)))
-    = braces
-    $ toFix v <+> text ":" <+> toFix so <+> text "|" <+> toFix (conjuncts ra)
-
-instance Show Reft where
-  show = showFix
-
-instance Show SortedReft where
-  show  = showFix
-
-pprReftPred :: Reft -> Doc
-pprReftPred (Reft (_, p))
-  | isTautoPred p
-  = text "true"
-  | otherwise
-  = ppRas [p]
-
-ppRas :: [Expr] -> Doc
-ppRas = cat . punctuate comma . map toFix . flattenRefas
-
---------------------------------------------------------------------------------
--- | TODO: Rewrite using visitor -----------------------------------------------
---------------------------------------------------------------------------------
-exprSymbols :: Expr -> [Symbol]
-exprSymbols = go
-  where
-    go (EVar x)           = [x]
-    go (EApp f e)         = go f ++ go e
-    go (ELam (x,_) e)     = filter (/= x) (go e)
-    go (ENeg e)           = go e
-    go (EBin _ e1 e2)     = go e1 ++ go e2
-    go (EIte p e1 e2)     = exprSymbols p ++ go e1 ++ go e2
-    go (ECst e _)         = go e
-    go (PAnd ps)          = concatMap go ps
-    go (POr ps)           = concatMap go ps
-    go (PNot p)           = go p
-    go (PIff p1 p2)       = go p1 ++ go p2
-    go (PImp p1 p2)       = go p1 ++ go p2
-    go (PAtom _ e1 e2)    = exprSymbols e1 ++ exprSymbols e2
-    go (PKVar _ (Su su))  = {- CUTSOLVER k : -} syms (M.elems su)
-    go (PAll xts p)       = (fst <$> xts) ++ go p
-    go _                  = []
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Triggers.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Triggers.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Triggers.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable         #-}
-{-# LANGUAGE DeriveFunctor              #-}
-{-# LANGUAGE DeriveGeneric              #-}
-
-module Language.Fixpoint.Types.Triggers (
-
-    Triggered (..), Trigger(..),
-
-    noTrigger, defaultTrigger,
-
-    makeTriggers
-
-    ) where
-
-import qualified Data.Binary as B
-import           Control.DeepSeq
-import           GHC.Generics              (Generic)
-
-import Language.Fixpoint.Types.Refinements
-import Language.Fixpoint.Misc              (errorstar)
-
-
-data Triggered a = TR Trigger a
-  deriving (Eq, Show, Functor, Generic)
-
-data Trigger = NoTrigger | LeftHandSide
-  deriving (Eq, Show, Generic)
-
-
-noTrigger :: e -> Triggered e
-noTrigger = TR NoTrigger
-
-defaultTrigger :: e -> Triggered e
-defaultTrigger = TR LeftHandSide
-
-makeTriggers :: Triggered Expr -> [Expr]
-makeTriggers (TR LeftHandSide e) = [getLeftHandSide e]
-makeTriggers (TR NoTrigger    _) = errorstar "makeTriggers on NoTrigger"
-
-
-getLeftHandSide :: Expr -> Expr
-getLeftHandSide (ECst e _)
-  = getLeftHandSide e
-getLeftHandSide (PAll _ e)
-  = getLeftHandSide e
-getLeftHandSide (PExist _ e)
-  = getLeftHandSide e
-getLeftHandSide (PAtom eq lhs _)
-  | eq == Eq || eq == Ueq
-  = lhs
-getLeftHandSide (PIff lhs _)
-  = lhs
-getLeftHandSide _
- = defaltPatter
-
--- NV TODO find out a valid, default pattern that does not instantiate the axiom
-defaltPatter :: Expr
-defaltPatter = PFalse
-
-instance B.Binary Trigger
-instance NFData   Trigger
-
-instance (B.Binary a) => B.Binary (Triggered a)
-instance (NFData a)   => NFData   (Triggered a)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Utils.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Utils.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Utils.hs
+++ /dev/null
@@ -1,57 +0,0 @@
--- | This module has various utility functions for accessing queries.
---   TODO: move the "clients" in Visitors into this module.
-
-module Language.Fixpoint.Types.Utils (
-  -- * Domain of a kvar
-    kvarDomain
-
-  -- * Free variables in a refinement
-  , reftFreeVars
-
-  -- * Deconstruct a SortedReft
-  , sortedReftConcKVars
-  ) where
-
-import qualified Data.HashMap.Strict                  as M
-import qualified Data.HashSet                         as S
-
-import           Language.Fixpoint.Misc
-import           Language.Fixpoint.Types.Names
-import           Language.Fixpoint.Types.Refinements
-import           Language.Fixpoint.Types.Environments
-import           Language.Fixpoint.Types.Constraints
-
---------------------------------------------------------------------------------
--- | Compute the domain of a kvar
---------------------------------------------------------------------------------
-kvarDomain :: SInfo a -> KVar -> [Symbol]
---------------------------------------------------------------------------------
-kvarDomain si k = domain (bs si) (getWfC si k)
-
-domain :: BindEnv -> WfC a -> [Symbol]
-domain be wfc = fst3 (wrft wfc) : map fst (envCs be $ wenv wfc)
-
-getWfC :: SInfo a -> KVar -> WfC a
-getWfC si k = ws si M.! k
-
---------------------------------------------------------------------------------
--- | Free variables of a refinement
---------------------------------------------------------------------------------
---TODO deduplicate (also in Solver/UniqifyBinds)
-reftFreeVars :: Reft -> S.HashSet Symbol
-reftFreeVars r@(Reft (v, _)) = S.delete v $ S.fromList $ syms r
-
---------------------------------------------------------------------------------
--- | Split a SortedReft into its concrete and KVar components
---------------------------------------------------------------------------------
-sortedReftConcKVars :: Symbol -> SortedReft -> ([Pred], [KVSub], [KVSub])
-sortedReftConcKVars x sr = go [] [] [] ves
-  where
-    ves                  = [(v, p `subst1` (v, eVar x)) | Reft (v, p) <- rs ]
-    rs                   = reftConjuncts (sr_reft sr)
-    t                    = sr_sort sr
-
-    go ps ks gs ((v, PKVar k su  ):xs) = go ps (KVS v t k su:ks) gs xs 
-    go ps ks gs ((v, PGrad k su _):xs) = go ps ks (KVS v t k su:gs) xs 
-    go ps ks gs ((_, p):xs)            = go (p:ps) ks gs xs 
-    go ps ks gs []                     = (ps, ks, gs)
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Types/Visitor.hs b/liquid-fixpoint/src/Language/Fixpoint/Types/Visitor.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Types/Visitor.hs
+++ /dev/null
@@ -1,349 +0,0 @@
-{-# LANGUAGE TupleSections #-}
-{-# LANGUAGE PatternGuards #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE FlexibleContexts #-}
-
-module Language.Fixpoint.Types.Visitor (
-  -- * Visitor
-     Visitor (..)
-  ,  Visitable (..)
-
-  -- * Extracting Symbolic Constants (String Literals)
-  ,  SymConsts (..)
-
-  -- * Default Visitor
-  , defaultVisitor
-
-  -- * Transformers
-  , trans
-
-  -- * Accumulators
-  , fold
-
-  -- * Clients
-  , stripCasts
-  , kvars, eapps
-  , size, lamSize
-  , envKVars
-  , envKVarsN
-  , rhsKVars
-  , mapKVars, mapKVars', mapKVarSubsts
-  , mapExpr, mapMExpr
-
-  -- * Predicates on Constraints
-  , isConcC , isKvarC
-
-  -- * Sorts
-  , foldSort, mapSort
-
-
-  ) where
-
-import           Control.Monad.Trans.State.Strict (State, modify, runState)
-import qualified Data.HashSet        as S
-import qualified Data.HashMap.Strict as M
-import qualified Data.List           as L
-import           Language.Fixpoint.Types hiding (mapSort)
-import           Language.Fixpoint.Misc (count, sortNub)
-
-data Visitor acc ctx = Visitor {
- -- | Context @ctx@ is built in a "top-down" fashion; not "across" siblings
-    ctxExpr :: ctx -> Expr -> ctx
-
-  -- | Transforms can access current @ctx@
-  , txExpr  :: ctx -> Expr -> Expr
-
-  -- | Accumulations can access current @ctx@; @acc@ value is monoidal
-  , accExpr :: ctx -> Expr -> acc
-  }
-
----------------------------------------------------------------------------------
-defaultVisitor :: Monoid acc => Visitor acc ctx
----------------------------------------------------------------------------------
-defaultVisitor = Visitor
-  { ctxExpr    = const -- \c _ -> c
-  , txExpr     = \_ x -> x
-  , accExpr    = \_ _ -> mempty
-  }
-
-
-------------------------------------------------------------------------
-
-fold         :: (Visitable t, Monoid a) => Visitor a ctx -> ctx -> a -> t -> a
-fold v c a t = snd $ execVisitM v c a visit t
-
-trans        :: (Visitable t, Monoid a) => Visitor a ctx -> ctx -> a -> t -> t
-trans v c _ z = fst $ execVisitM v c mempty visit z
-
-execVisitM :: Visitor a ctx -> ctx -> a -> (Visitor a ctx -> ctx -> t -> State a t) -> t -> (t, a)
-execVisitM v c a f x = runState (f v c x) a
-
-type VisitM acc = State acc
-
-accum :: (Monoid a) => a -> VisitM a ()
-accum = modify . mappend
-
-(<$$>) ::  (Traversable t, Applicative f) => (a -> f b) -> t a -> f (t b)
-f <$$> x = traverse f x
-
-------------------------------------------------------------------------------
-class Visitable t where
-  visit :: (Monoid a) => Visitor a c -> c -> t -> VisitM a t
-
-instance Visitable Expr where
-  visit = visitExpr
-
-instance Visitable Reft where
-  visit v c (Reft (x, ra)) = (Reft . (x, )) <$> visit v c ra
-
-instance Visitable SortedReft where
-  visit v c (RR t r) = RR t <$> visit v c r
-
-instance Visitable (Symbol, SortedReft) where
-  visit v c (sym, sr) = (sym, ) <$> visit v c sr
-
-instance Visitable BindEnv where
-  visit v c = mapM (visit v c)
-
----------------------------------------------------------------------------------
--- WARNING: these instances were written for mapKVars over GInfos only;
--- check that they behave as expected before using with other clients.
-instance Visitable (SimpC a) where
-  visit v c x = do
-    rhs' <- visit v c (_crhs x)
-    return x { _crhs = rhs' }
-
-instance Visitable (SubC a) where
-  visit v c x = do
-    lhs' <- visit v c (slhs x)
-    rhs' <- visit v c (srhs x)
-    return x { slhs = lhs', srhs = rhs' }
-
-instance (Visitable (c a)) => Visitable (GInfo c a) where
-  visit v c x = do
-    cm' <- mapM (visit v c) (cm x)
-    bs' <- visit v c (bs x)
-    return x { cm = cm', bs = bs' }
-
-
-
----------------------------------------------------------------------------------
-visitExpr :: (Monoid a) => Visitor a ctx -> ctx -> Expr -> VisitM a Expr
-visitExpr v = vE
-  where
-    vE c e = do {-# SCC "visitExpr.vE.accum" #-} accum acc
-                {-# SCC "visitExpr.vE.step" #-} step c' e'
-      where c'  = ctxExpr v c e
-            e'  = txExpr v c' e
-            acc = accExpr v c' e
-    step _ e@(ESym _)      = return e
-    step _ e@(ECon _)      = return e
-    step _ e@(EVar _)      = return e
-    step c (EApp f e)      = EApp        <$> vE c f  <*> vE c e
-    step c (ENeg e)        = ENeg        <$> vE c e
-    step c (EBin o e1 e2)  = EBin o      <$> vE c e1 <*> vE c e2
-    step c (EIte p e1 e2)  = EIte        <$> vE c p  <*> vE c e1 <*> vE c e2
-    step c (ECst e t)      = (`ECst` t)  <$> vE c e
-    step c (PAnd  ps)      = PAnd        <$> (vE c <$$> ps)
-    step c (POr  ps)       = POr         <$> (vE c <$$> ps)
-    step c (PNot p)        = PNot        <$> vE c p
-    step c (PImp p1 p2)    = PImp        <$> vE c p1 <*> vE c p2
-    step c (PIff p1 p2)    = PIff        <$> vE c p1 <*> vE c p2
-    step c (PAtom r e1 e2) = PAtom r     <$> vE c e1 <*> vE c e2
-    step c (PAll xts p)    = PAll   xts  <$> vE c p
-    step c (ELam (x,t) e)  = ELam (x,t)  <$> vE c e
-    step c (PExist xts p)  = PExist xts  <$> vE c p
-    step c (ETApp e s)     = (`ETApp` s) <$> vE c e
-    step c (ETAbs e s)     = (`ETAbs` s) <$> vE c e
-    step _ p@(PKVar _ _)   = return p
-    step c (PGrad k su e)  = PGrad k su <$> vE c e 
-
-mapKVars :: Visitable t => (KVar -> Maybe Expr) -> t -> t
-mapKVars f = mapKVars' f'
-  where
-    f' (kv', _) = f kv'
-
-mapKVars' :: Visitable t => ((KVar, Subst) -> Maybe Expr) -> t -> t
-mapKVars' f            = trans kvVis () []
-  where
-    kvVis              = defaultVisitor { txExpr = txK }
-    txK _ (PKVar k su)
-      | Just p' <- f (k, su) = subst su p'
-    txK _ (PGrad k su _)
-      | Just p' <- f (k, su) = subst su p'
-    txK _ p            = p
-
-mapExpr :: (Expr -> Expr) -> Expr -> Expr
-mapExpr f = trans (defaultVisitor {txExpr = const f}) () []
-
-
-mapMExpr :: (Monad m) => (Expr -> m Expr) -> Expr -> m Expr
-mapMExpr f = go
-  where
-    go e@(ESym _)      = f e
-    go e@(ECon _)      = f e
-    go e@(EVar _)      = f e
-    go e@(PKVar _ _)   = f e
-    go (PGrad k su e)  = f =<< (PGrad k su  <$>  go e                     )
-    go (ENeg e)        = f =<< (ENeg        <$>  go e                     )
-    go (PNot p)        = f =<< (PNot        <$>  go p                     )
-    go (ECst e t)      = f =<< ((`ECst` t)  <$>  go e                     )
-    go (PAll xts p)    = f =<< (PAll   xts  <$>  go p                     )
-    go (ELam (x,t) e)  = f =<< (ELam (x,t)  <$>  go e                     )
-    go (PExist xts p)  = f =<< (PExist xts  <$>  go p                     )
-    go (ETApp e s)     = f =<< ((`ETApp` s) <$>  go e                     )
-    go (ETAbs e s)     = f =<< ((`ETAbs` s) <$>  go e                     )
-    go (EApp g e)      = f =<< (EApp        <$>  go g  <*> go e           )
-    go (EBin o e1 e2)  = f =<< (EBin o      <$>  go e1 <*> go e2          )
-    go (PImp p1 p2)    = f =<< (PImp        <$>  go p1 <*> go p2          )
-    go (PIff p1 p2)    = f =<< (PIff        <$>  go p1 <*> go p2          )
-    go (PAtom r e1 e2) = f =<< (PAtom r     <$>  go e1 <*> go e2          )
-    go (EIte p e1 e2)  = f =<< (EIte        <$>  go p  <*> go e1 <*> go e2)
-    go (PAnd  ps)      = f =<< (PAnd        <$> (go <$$> ps)              )
-    go (POr  ps)       = f =<< (POr         <$> (go <$$> ps)              )
-
-mapKVarSubsts :: Visitable t => (KVar -> Subst -> Subst) -> t -> t
-mapKVarSubsts f          = trans kvVis () []
-  where
-    kvVis                = defaultVisitor { txExpr = txK }
-    txK _ (PKVar k su)   = PKVar k (f k su)
-    txK _ (PGrad k su e) = PGrad k (f k su) e
-    txK _ p              = p
-  
-newtype MInt = MInt Integer
-
-instance Monoid MInt where
-  mempty                    = MInt 0
-  mappend (MInt m) (MInt n) = MInt (m + n)
-
-size :: Visitable t => t -> Integer
-size t    = n
-  where
-    MInt n = fold szV () mempty t
-    szV    = (defaultVisitor :: Visitor MInt t) { accExpr = \ _ _ -> MInt 1 }
-
-
-lamSize :: Visitable t => t -> Integer
-lamSize t    = n
-  where
-    MInt n = fold szV () mempty t
-    szV    = (defaultVisitor :: Visitor MInt t) { accExpr = accum }
-    accum _ (ELam _ _) = MInt 1
-    accum _ _          = MInt 0
-
-eapps :: Visitable t => t -> [Expr]
-eapps                 = fold eappVis () []
-  where
-    eappVis              = (defaultVisitor :: Visitor [KVar] t) { accExpr = eapp' }
-    eapp' _ e@(EApp _ _) = [e]
-    eapp' _ _            = []
-
-kvars :: Visitable t => t -> [KVar]
-kvars                 = fold kvVis () []
-  where
-    kvVis             = (defaultVisitor :: Visitor [KVar] t) { accExpr = kv' }
-    kv' _ (PKVar k _)   = [k]
-    kv' _ (PGrad k _ _) = [k]
-    kv' _ _             = []
-
-envKVars :: (TaggedC c a) => BindEnv -> c a -> [KVar]
-envKVars be c = squish [ kvs sr |  (_, sr) <- clhs be c]
-  where
-    squish    = S.toList  . S.fromList . concat
-    kvs       = kvars . sr_reft
-
-envKVarsN :: (TaggedC c a) => BindEnv -> c a -> [(KVar, Int)]
-envKVarsN be c = tally [ kvs sr |  (_, sr) <- clhs be c]
-  where
-    tally      = count . concat
-    kvs        = kvars . sr_reft
-
-rhsKVars :: (TaggedC c a) => c a -> [KVar]
-rhsKVars = kvars . crhs -- rhsCs
-
-isKvarC :: (TaggedC c a) => c a -> Bool
-isKvarC = all isKvar . conjuncts . crhs
-
-isConcC :: (TaggedC c a) => c a -> Bool
-isConcC = all isConc . conjuncts . crhs
-
-isKvar :: Expr -> Bool
-isKvar (PKVar {}) = True
-isKvar (PGrad {}) = True 
-isKvar _          = False
-
-isConc :: Expr -> Bool
-isConc = null . kvars
-
-stripCasts :: Expr -> Expr
-stripCasts = mapExpr go
-  where
-    go (ECst e _) = e
-    go e          = e
-
----------------------------------------------------------------------------------
--- | Visitors over @Sort@
----------------------------------------------------------------------------------
-foldSort :: (a -> Sort -> a) -> a -> Sort -> a
-foldSort f = step
-  where
-    step b t           = go (f b t) t
-    go b (FFunc t1 t2) = L.foldl' step b [t1, t2]
-    go b (FApp t1 t2)  = L.foldl' step b [t1, t2]
-    go b (FAbs _ t)    = go b t
-    go b _             = b
-
-mapSort :: (Sort -> Sort) -> Sort -> Sort
-mapSort f = step
-  where
-    step             = go . f
-    go (FFunc t1 t2) = FFunc (step t1) (step t2)
-    go (FApp t1 t2)  = FApp (step t1) (step t2)
-    go (FAbs i t)    = FAbs i (step t)
-    go t             = t
-
----------------------------------------------------------------
--- | String Constants -----------------------------------------
----------------------------------------------------------------
-
--- symConstLits    :: FInfo a -> [(Symbol, Sort)]
--- symConstLits fi = [(symbol c, strSort) | c <- symConsts fi]
-
-class SymConsts a where
-  symConsts :: a -> [SymConst]
-
--- instance  SymConsts (FInfo a) where
-instance (SymConsts (c a)) => SymConsts (GInfo c a) where
-  symConsts fi = sortNub $ csLits ++ bsLits ++ qsLits
-    where
-      csLits   = concatMap symConsts $ M.elems  $  cm    fi
-      bsLits   = symConsts           $ bs                fi
-      qsLits   = concatMap symConsts $ qBody   <$> quals fi
-
-instance SymConsts BindEnv where
-  symConsts    = concatMap (symConsts . snd) . M.elems . beBinds
-
-instance SymConsts (SubC a) where
-  symConsts c  = symConsts (slhs c) ++
-                 symConsts (srhs c)
-
-instance SymConsts (SimpC a) where
-  symConsts c  = symConsts (crhs c)
-
-instance SymConsts SortedReft where
-  symConsts = symConsts . sr_reft
-
-instance SymConsts Reft where
-  symConsts (Reft (_, ra)) = getSymConsts ra
-
-
-instance SymConsts Expr where
-  symConsts = getSymConsts
-
-getSymConsts :: Visitable t => t -> [SymConst]
-getSymConsts         = fold scVis () []
-  where
-    scVis            = (defaultVisitor :: Visitor [SymConst] t)  { accExpr = sc }
-    sc _ (ESym c)    = [c]
-    sc _ _           = []
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Utils/Files.hs b/liquid-fixpoint/src/Language/Fixpoint/Utils/Files.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Utils/Files.hs
+++ /dev/null
@@ -1,210 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-
--- | This module contains Haskell variables representing globally visible
--- names for files, paths, extensions.
---
--- Rather than have strings floating around the system, all constant names
--- should be defined here, and the (exported) variables should be used and
--- manipulated elsewhere.
-
-module Language.Fixpoint.Utils.Files (
-
-  -- * Hardwired file extension names
-    Ext (..)
-  , extFileName
-  , extFileNameR
-  , tempDirectory
-  , extModuleName
-  , withExt
-  , isExtFile
-  , isBinary
-
-  -- * Hardwired paths
-  , getFixpointPath
-  , getZ3LibPath
-
-  -- * Various generic utility functions for finding and removing files
-  , getFileInDirs
-  , copyFiles
-
-) where
-
-import qualified Control.Exception      as Ex
-import           Control.Monad
-import           Data.List              hiding (find)
-import           Data.Maybe             (fromMaybe)
-import           System.Directory
-import           System.FilePath
-import           Language.Fixpoint.Misc (errorstar)
-
-------------------------------------------------------------
--- | Hardwired Paths and Files -----------------------------
-------------------------------------------------------------
-
-getFixpointPath :: IO FilePath
-getFixpointPath = fromMaybe msg . msum <$>
-                  sequence [ findExecutable "fixpoint.native"
-                           , findExecutable "fixpoint.native.exe"
-                             -- fallback for developing in-tree...
-                           , findFile ["external/fixpoint"] "fixpoint.native"
-                           ]
-  where
-    msg = errorstar "Cannot find fixpoint binary [fixpoint.native]"
-
-getZ3LibPath :: IO FilePath
-getZ3LibPath    = dropFileName <$> getFixpointPath
-
-
---checkM f msg p
---  = do ex <- f p
---       if ex then return p else errorstar $ "Cannot find " ++ msg ++ " at :" ++ p
-
-
- -----------------------------------------------------------------------------------
-
-data Ext = Cgi      -- ^ Constraint Generation Information
-         | Fq       -- ^ Input to constraint solving (fixpoint)
-         | Out      -- ^ Output from constraint solving (fixpoint)
-         | Html     -- ^ HTML file with inferred type annotations
-         | Annot    -- ^ Text file with inferred types
-         | Vim      -- ^ Vim annotation file
-         | Hs       -- ^ Haskell source
-         | HsBoot   -- ^ Haskell source
-         | LHs      -- ^ Literate Haskell source
-         | Js       -- ^ JavaScript source
-         | Ts       -- ^ Typescript source
-         | Spec     -- ^ Spec file (e.g. include/Prelude.spec)
-         | BinSpec  -- ^ Lifted-Spec file, containing automatically generated specifications 
-         | Hquals   -- ^ Qualifiers file (e.g. include/Prelude.hquals)
-         | Result   -- ^ Final result: SAFE/UNSAFE
-         | Cst      -- ^ HTML file with templates?
-         | Mkdn     -- ^ Markdown file (temporarily generated from .Lhs + annots)
-         | Json     -- ^ JSON file containing result (annots + errors)
-         | Saved    -- ^ Previous source (for incremental checking)
-         | Cache    -- ^ Previous output (for incremental checking)
-         | Dot      -- ^ Constraint Graph
-         | Part Int -- ^ Partition
-         | Auto Int -- ^ SMTLIB2 queries for automatically created proofs
-         | Pred
-         | PAss
-         | Dat
-         | BinFq    -- ^ Binary representation of .fq / FInfo
-         | Smt2     -- ^ SMTLIB2 query file
-         | Min      -- ^ filter constraints with delta debug
-         | MinQuals -- ^ filter qualifiers with delta debug
-         | MinKVars -- ^ filter kvars with delta debug
-         deriving (Eq, Ord, Show)
-
-extMap :: Ext -> FilePath
-extMap          = go
-  where
-    go Cgi      = ".cgi"
-    go Pred     = ".pred"
-    go PAss     = ".pass"
-    go Dat      = ".dat"
-    go Out      = ".fqout"
-    go Fq       = ".fq"
-    go Html     = ".html"
-    go Cst      = ".cst"
-    go Annot    = ".annot"
-    go Vim      = ".vim.annot"
-    go Hs       = ".hs"
-    go LHs      = ".lhs"
-    go HsBoot   = ".hs-boot"
-    go Js       = ".js"
-    go Ts       = ".ts"
-    go Mkdn     = ".markdown"
-    go Json     = ".json"
-    go Spec     = ".spec"
-    go BinSpec  = ".bspec"
-    go Hquals   = ".hquals"
-    go Result   = ".out"
-    go Saved    = ".bak"
-    go Cache    = ".err"
-    go Smt2     = ".smt2"
-    go (Auto n) = ".auto." ++ show n
-    go Dot      = ".dot"
-    go BinFq    = ".bfq"
-    go (Part n) = "." ++ show n
-    go Min      = ".minfq"
-    go MinQuals = ".minquals"
-    go MinKVars = ".minkvars"
-    -- go _      = errorstar $ "extMap: Unknown extension " ++ show e
-
-withExt         :: FilePath -> Ext -> FilePath
-withExt f ext   =  replaceExtension f (extMap ext)
-
-extFileName     :: Ext -> FilePath -> FilePath
-extFileName e f = path </> addExtension file ext
-  where
-    path        = tempDirectory f
-    file        = takeFileName  f
-    ext         = extMap e
-
-tempDirectory   :: FilePath -> FilePath
-tempDirectory f
-  | isTmp dir   = dir
-  | otherwise   = dir </> tmpDirName
-  where
-    dir         = takeDirectory f
-    isTmp       = (tmpDirName `isSuffixOf`)
-
-tmpDirName :: FilePath
-tmpDirName      = ".liquid"
-
-extFileNameR     :: Ext -> FilePath -> FilePath
-extFileNameR ext = (`addExtension` extMap ext)
-
-isExtFile ::  Ext -> FilePath -> Bool
-isExtFile ext = (extMap ext ==) . takeExtension
-
-extModuleName ::  String -> Ext -> FilePath
-extModuleName modName ext =
-  case explode modName of
-    [] -> errorstar $ "malformed module name: " ++ modName
-    ws -> extFileNameR ext $ foldr1 (</>) ws
-  where
-    explode = words . map (\c -> if c == '.' then ' ' else c)
-
-copyFiles :: [FilePath] -> FilePath -> IO ()
-copyFiles srcs tgt
-  = do Ex.catch (removeFile tgt) $ \(_ :: Ex.IOException) -> return ()
-       forM_ srcs (readFile >=> appendFile tgt)
-
-
-----------------------------------------------------------------------------------
-
--- getHsTargets p = mapM canonicalizePath =<< files
---   where
---     files
---       | hasTrailingPathSeparator p = getHsSourceFiles p
---       | otherwise                  = return [p]
-
--- getHsSourceFiles = find dirs hs
---   where hs   = extension ==? ".hs" ||? extension ==? ".lhs"
---         dirs = liftM (not . ("dist" `isSuffixOf`)) directory
-
----------------------------------------------------------------------------
-
-
-getFileInDirs :: FilePath -> [FilePath] -> IO (Maybe FilePath)
-getFileInDirs name = findFirst (testM doesFileExist . (</> name))
-
-testM :: (Monad m) => (a -> m Bool) -> a -> m [a]
-testM f x = do b <- f x
-               return [ x | b ]
-
-findFirst ::  Monad m => (t -> m [a]) -> [t] -> m (Maybe a)
-findFirst _ []     = return Nothing
-findFirst f (x:xs) = do r <- f x
-                        case r of
-                          y:_ -> return (Just y)
-                          []  -> findFirst f xs
-
--- findFileInDirs ::  FilePath -> [FilePath] -> IO FilePath
--- findFileInDirs file dirs
---   = liftM (fromMaybe err) (findFirst (find always (fileName ==? file)) dirs)
---     where err = errorstar $ "findFileInDirs: cannot find " ++ file ++ " in " ++ show dirs
-
-isBinary :: FilePath -> Bool
-isBinary = isExtFile BinFq
diff --git a/liquid-fixpoint/src/Language/Fixpoint/Utils/Statistics.hs b/liquid-fixpoint/src/Language/Fixpoint/Utils/Statistics.hs
deleted file mode 100644
--- a/liquid-fixpoint/src/Language/Fixpoint/Utils/Statistics.hs
+++ /dev/null
@@ -1,75 +0,0 @@
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE OverloadedStrings #-}
-
--- | This module implements functions that print out
---   statistics about the constraints.
-module Language.Fixpoint.Utils.Statistics (statistics) where
-
-import           Control.DeepSeq
-import           GHC.Generics
-import           Control.Arrow ((&&&))
-
-import           Language.Fixpoint.Misc                (donePhase, Moods(..), applyNonNull)
-import           Language.Fixpoint.Types.Config
-import           Language.Fixpoint.Types.PrettyPrint
-import           Language.Fixpoint.Graph (partition')
-import qualified Language.Fixpoint.Types        as F
-import qualified Data.HashMap.Strict            as M
-import           Data.List (sort,group)
-import           Text.PrettyPrint.HughesPJ
-
-statistics :: Config -> F.FInfo a -> IO (F.Result (Integer, a))
-statistics _ fi = do
-  let fis = partition' Nothing fi
-  putStrLn $ render $ pprint $ partitionStats fis
-  donePhase Loud "Statistics"
-  return mempty
-
-partitionStats :: [F.FInfo a] -> Maybe Stats
-partitionStats fis = info
-  where
-    css            = [M.keys $ F.cm fi | fi <- fis]
-    sizes          = fromIntegral . length <$> css
-    info           = applyNonNull Nothing (Just . mkStats) sizes
-
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------
-
-data Stats = Stats { cSizes  :: [Float]
-                   , cFreq   :: [(Float, Int)]
-                   , cTotal  :: !Float
-                   , cMean   :: !Float
-                   , cMax    :: !Float
-                   , cSpeed  :: !Float
-                   } deriving (Show, Generic)
-
-instance NFData Stats
-
-instance PPrint Stats where
-  pprintTidy _ s =
-    vcat [ "STAT: max/total =" <+> pprint (cMax   s) <+> "/" <+> pprint (cTotal s)
-         , "STAT: freqs     =" <+> pprint (cFreq  s)
-         , "STAT: average   =" <+> pprint (cMean  s)
-         , "STAT: speed     =" <+> pprint (cSpeed s)
-         ]
-
-mkStats :: [Float] -> Stats
-mkStats ns  = Stats {
-    cSizes  = ns
-  , cFreq   = frequency ns
-  , cTotal  = total
-  , cMean   = avg
-  , cMax    = maxx
-  , cSpeed  = total / maxx
-  }
-  where
-    maxx    = maximum ns
-    total   = sum  ns
-    avg     = mean ns
-
-frequency :: (Ord a) => [a] -> [(a, Int)]
-frequency = map (head &&& length) . group . sort
-
-mean :: [Float] -> Float
-mean ns  = sum ns / fromIntegral (length ns)
diff --git a/liquid-fixpoint/stack.yaml b/liquid-fixpoint/stack.yaml
deleted file mode 100644
--- a/liquid-fixpoint/stack.yaml
+++ /dev/null
@@ -1,12 +0,0 @@
-flags:
- liquid-fixpoint:
-  devel: True
-packages:
-- '.'
-extra-deps:
-- dotgen-0.4.2
-- fgl-visualize-0.1.0.1
-- intern-0.9.1.4
-- located-base-0.1.1.0
-
-resolver: nightly-2016-05-21
diff --git a/liquid-fixpoint/tests/crash/num00.fq b/liquid-fixpoint/tests/crash/num00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/crash/num00.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-
-qualif Zog(v:a) : (0 <= v)
-qualif Bog(v:a) : (0 <= 1)
-
-
-bind 0 zog : {v : int | true}
-
-constraint:
-  env [0]
-  lhs {v : alpha | (v = 10)}
-  rhs {v : alpha | $k0}
-  id 1 tag []
-
-constraint:
-  env [0]
-  lhs {v : alpha | $k0}
-  rhs {v : alpha | $k0}
-  id 2 tag []
-
-constraint:
-  env [0]
-  lhs {v : alpha | $k0}
-  rhs {v : alpha | 0 <= v}
-  id 3 tag []
-
-wf:
-  env [0]
-  reft {v: alpha | $k0}
diff --git a/liquid-fixpoint/tests/crash/sort00.fq b/liquid-fixpoint/tests/crash/sort00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/crash/sort00.fq
+++ /dev/null
@@ -1,12 +0,0 @@
-// for LH Issue 773
-
-constant foo : (func(0, [int; int]))
-
-bind 0 x     : {v: Str | true}
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | (foo x = 0)}
-  rhs {v : int | (3 = 1 + 2) }
-  id 1 tag []
-
diff --git a/liquid-fixpoint/tests/crash/sort01.fq b/liquid-fixpoint/tests/crash/sort01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/crash/sort01.fq
+++ /dev/null
@@ -1,13 +0,0 @@
-// for LH Issue 774
-
-constant foo : (func(0, [int; int]))
-
-bind 0 x     : {v: Str | true}
-bind 1 y     : {v: Str | true}
-
-constraint:
-  env [ 0; 1 ]
-  lhs {v : int | (foo x = foo y)}
-  rhs {v : int | (3 = 1 + 2) }
-  id 1 tag []
-
diff --git a/liquid-fixpoint/tests/cut/test00-tx.fq b/liquid-fixpoint/tests/cut/test00-tx.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test00-tx.fq
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 a : {v:int | (v = 10 || v = 20) }
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 
diff --git a/liquid-fixpoint/tests/cut/test00.fq b/liquid-fixpoint/tests/cut/test00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test00.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 a : {v: int | $k0}
-
-constraint:
-  env [ ]
-  lhs {v : int | (v = 10)}
-  rhs {v : int | $k0}
-  id 1 
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/cut/test00a-tx.fq b/liquid-fixpoint/tests/cut/test00a-tx.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test00a-tx.fq
+++ /dev/null
@@ -1,43 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-constraint:
-  env [z : {v : int | true}]
-  lhs {v : int | (z=10) \/ (z=20)}
-  rhs {v : int | 10 <= z}
-  id 3 
-
-/*
-
-Rewriting constraints as:
-
-    id 1
-    x:int, v:int |- x=10 /\ v=x => k0
-    
-    id 2
-    y:int, v:int |- y=20 /\ v=y => k0
-
-Projecting out all variables NOT in the WF of k0
-
-    id 1
-    v:int |- (exists x:int. x=10 /\ v=x) => k0
-           
-    id 2
-    v:int |- (exists y:int. y=20 /\ v=y) => k0
-
-Take the \/ of all constraints on k0
-
-     k0 = (exists x:int. x=10 /\ v=x) \/ (exists y:int. y=20 /\ v=y)
-     
-     k0[z/v]
-       = (\x. x=10 /\ v=x) \/ (\y. y=20 /\ v=y)[z/v]
-         = (\x. x=10 /\ z=x) \/ (\y. y=20 /\ z=y)
-
-So you get:
-
-     env [2]
-        lhs {v : int | (\x. x=10 /\ z=x) \/ (\y. y=20 /\ z=y)}
-     rhs {v : int | 10 <= z}
-     id 3 
-
-*/
diff --git a/liquid-fixpoint/tests/cut/test00a.fq b/liquid-fixpoint/tests/cut/test00a.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test00a.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | true}
-bind 1 y : {v : int | true}
-bind 2 z : {v : int | true}
-
-constraint:
-  env [0]
-  lhs {v : int | (x = 10)}
-  rhs {v : int | $k0[v:=x]}
-  id 1 
-
-constraint:
-  env [1]
-  lhs {v : int | y = 20}
-  rhs {v : int | $k0[v:=y]}
-  id 2 
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[v:=z]}
-  rhs {v : int | 10 <= z}
-  id 3 
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
diff --git a/liquid-fixpoint/tests/cut/test1-tx.fq b/liquid-fixpoint/tests/cut/test1-tx.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test1-tx.fq
+++ /dev/null
@@ -1,43 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-constraint:
-  env [a : {v : int | (exists x:int. x=10 /\ v=x) 
-                   \/ (exists y:int. y=20 /\ v=y) }]
-  lhs {v : int | v = a  }
-  rhs {v : int | 10 <= v}
-  id 3 
-
-/*
-
-Rewriting constraints as:
-
-    id 1
-    x:int, v:int |- (v=10)[x/v] /\ (v=x) => k0
-    x:int, v:int |- (x=10) /\ (v=x) => k0
-
-    id 2
-    y:int, v:int |- (v=20)[y/v] /\ (v=y) => k0
-    y:int, v:int |- (y=20) /\ (v=y) => k0
-
-Projecting out all variables NOT in the WF of k0
-
-    id 1
-    v:int |- (exists x:int. x=10 /\ v=x) => k0
-
-    id 2
-    v:int |- (exists y:int. y=20 /\ v=y) => k0
-
-Take the \/ of all constraints on k0
-
-    k0 = (exists x:int. x=10 /\ v=x) \/ (exists y:int. y=20 /\ v=y)
-     
-So you get:
-
-    env [a : {v : int | (exists x:int. x=10 /\ v=x) \/ (exists y:int. y=20 /\ v=y) }]
-      lhs {v : int | v = a  }
-    rhs {v : int | 10 <= v}
-    id 3
-
-*/
diff --git a/liquid-fixpoint/tests/cut/test1.fq b/liquid-fixpoint/tests/cut/test1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test1.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | v = 10}
-bind 1 y : {v : int | v = 20}
-bind 2 a : {v : int | $k0    }
-      
-constraint:
-  env [0]
-  lhs {v : int | v = x}
-  rhs {v : int | $k0   }
-  id 1 
-
-constraint:
-  env [1]
-  lhs {v : int | v = y}
-  rhs {v : int | $k0   }
-  id 2 
-
-constraint:
-  env [2]
-  lhs {v : int | v = a  }
-  rhs {v : int | 10 <= v}
-  id 3 
-
-wf:
-  env [ ]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/cut/test2-tx.fq b/liquid-fixpoint/tests/cut/test2-tx.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test2-tx.fq
+++ /dev/null
@@ -1,112 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a): (10 <= v)
-
-// But you may use this one
-qualif Pog(v:a): (0 <= v)
-
-
-
-
-/* 
-
--- Version 1 (eliminate k1) --
-
-Rewriting constraints as:
-
-    id 0
-    v:int |- (v=0) => k1
-
-    id 3
-    v:int |- k0 => k1
-
-Projecting out all variables NOT in the WF of k1
-
-    N/A
-
-Take the \/ of all constraints on k1
-
-    k1 = (v=0) \/ k0
-
-So you get:
-
-  bind 0 x: {v: int | v = 10      }
-  bind 1 a: {v: int | (v=0) \/ k0 }
-  bind 2 y: {v: int | v = 20      }
-  bind 3 b: {v: int | (v=0) \/ k0 }
-  bind 4 c: {v: int | k0          }
-
-  constraint:
-    env [ 0; 1]
-      lhs {v : int | v = x + a}
-    rhs {v : int | k0}
-    id 1 
-
-  constraint:
-    env [2; 3]
-      lhs {v : int | v = y + b}
-    rhs {v : int | k0}
-    id 2 
-
-  constraint:
-    env [4]
-      lhs {v : int | v = c  }
-    rhs {v : int | 10 <= v}
-    id 4 
-
-  wf:
-    env [ ]
-    reft {v: int | k1}
-
-
-
-
--- Version 2 (eliminate k0) --
-
-Rewriting constraints as:
-
-    id 1
-    x:int, a:int, v:int |- (v=10)[x/v] /\ k1[a/v] /\ (v=x+a) => k0
-    x:int, a:int, v:int |- (x=10) /\ k1[a/v] /\ (v=x+a) => k0
-
-    id 2
-    y:int, b:int, v:int |- (v=20)[y/v] /\ k1[b/v] /\ (v=y+b) => k0
-    y:int, b:int, v:int |- (y=20) /\ k1[b/v] /\ (v=y+b) => k0
-
-Projecting out all variables NOT in the WF of k0
-
-    id 1
-    v:int |- (exists x:int a:int. (x=10) /\ k1[a/v] /\ (v=x+a)) => k0
-    
-    id 2
-    v:int |- (exists y:int b:int. (y=20) /\ k1[b/v] /\ (v=y+b)) => k0
-
-Take the \/ of all constraints on k0
-
-    k0 = (exists x:int a:int. (x=10) /\ k1[a/v] /\ (v=x+a))
-      \/ (exists y:int b:int. (y=20) /\ k1[b/v] /\ (v=y+b))
-
-So you get:
-
-  bind 4 c: {v: int | (exists x:int a:int. (x=10) /\ k1[a/v] /\ (v=x+a))
-                   \/ (exists y:int b:int. (y=20) /\ k1[b/v] /\ (v=y+b))    }
-
-  constraint:
-    env [ ]
-      lhs {v : int | v = 0}
-    rhs {v : int | k1 }
-    id 0 
-
-
-  constraint:
-    env [ ]
-      lhs {v : int | (exists x:int a:int. (x=10) /\ k1[a/v] /\ (v=x+a))
-                \/ (exists y:int b:int. (y=20) /\ k1[b/v] /\ (v=y+b))}
-    rhs {v : int | k1}
-    id 3
-
-  constraint:
-    env [4]
-      lhs {v : int | v = c  }
-    rhs {v : int | 10 <= v}
-    id 4 
diff --git a/liquid-fixpoint/tests/cut/test2.fq b/liquid-fixpoint/tests/cut/test2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/cut/test2.fq
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a): (10 <= v)
-
-// But you may use this one
-qualif Pog(v:a): (0 <= v)
-
-bind 0 x: {v: int | v = 10}
-bind 1 a: {v: int | $k1    }
-bind 2 y: {v: int | v = 20}
-bind 3 b: {v: int | $k1    }
-bind 4 c: {v: int | $k0    }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 0}
-  rhs {v : int | $k1 }
-  id 0 
-
-
-constraint:
-  env [ 0; 1]
-  lhs {v : int | v = x + a}
-  rhs {v : int | $k0}
-  id 1 
-
-constraint:
-  env [2; 3]
-  lhs {v : int | v = y + b}
-  rhs {v : int | $k0}
-  id 2 
-
-constraint:
-  env [ ]
-  lhs {v : int | $k0}
-  rhs {v : int | $k1}
-  id 3
-
-constraint:
-  env [4]
-  lhs {v : int | v = c  }
-  rhs {v : int | 10 <= v}
-  id 4 
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
-wf:
-  env [ ]
-  reft {v: int | $k1}
diff --git a/liquid-fixpoint/tests/elim/div00.fq b/liquid-fixpoint/tests/elim/div00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/div00.fq
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// --eliminate should be able to solve this WITHOUT the qualifier
-// qualif Zog(v:int) : (v /= 0)
-
-bind 0 n : {v: int | true }
-bind 1 m : {v: int | true }
-bind 2 z : {v: int | $k0[n := m] }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 12 }
-  rhs {v : int | $k0    }
-  id 1 tag []
-
-constraint:
-  env [ 1; 2 ]
-  lhs {v : int | v  = z}
-  rhs {v : int | v /= 0}
-  id 2 tag []
-
-wf:
-  env [ 0 ]
-  reft {v: int | $k0 }
diff --git a/liquid-fixpoint/tests/elim/elim00.fq b/liquid-fixpoint/tests/elim/elim00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/elim00.fq
+++ /dev/null
@@ -1,1494 +0,0 @@
-fixpoint "--defunct"
-
-// qualif Cmp(v : @(0), x : @(0)): ((v > x)) // "tests/todo/elim00.hs.fq" (line 1, column 8)
-// qualif Cmp(v : @(0), x : @(0)): ((v = x)) // "tests/todo/elim00.hs.fq" (line 2, column 8)
-
-
-constant Control.Exception.Base.irrefutPatError##09 : (func(1, [int;
-                                                                @(0)]))
-constant GHC.Base..##r2C : (func(3, [func(0, [@(0); @(1)]);
-                                     func(0, [@(2); @(0)]);
-                                     @(2);
-                                     @(1)]))
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant GHC.Tuple.$40$$44$$44$$41$$35$$35$76 : (func(3, [@(0);
-                                                          @(1);
-                                                          @(2);
-                                                          (Tuple  @(0)  @(1)  @(2))]))
-constant GHC.Real.D$58$Integral$35$$35$rWH : (func(1, [func(0, [@(0);
-                                                                @(0);
-                                                                @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); (Tuple  @(0)  @(0))]);
-                                                       func(0, [@(0); @(0); (Tuple  @(0)  @(0))]);
-                                                       func(0, [@(0); int]);
-                                                       (GHC.Real.Integral  @(0))]))
-constant addrLen : (func(0, [int; int]))
-constant papp5 : (func(10, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4));
-                            @(5);
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            bool]))
-constant xsListSelector : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant Elim.foo##rlD : (func(0, [Elim.Foo; Elim.Foo]))
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant GHC.Integer.Type.smallInteger##0Z : (func(0, [int; int]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant GHC.Base.Just##r1e : (func(1, [@(0);
-                                        (GHC.Base.Maybe  @(0))]))
-constant Elim.xx##rlB : (func(0, [Elim.Foo; int]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant GHC.Prim.$43$$35$$35$$35$98 : (func(0, [int; int; int]))
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant GHC.Types.LT##6S : (GHC.Types.Ordering)
-constant GHC.Prim.$60$$35$$35$$35$9q : (func(0, [int; int; int]))
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(3));
-                           @(4);
-                           @(5);
-                           @(6);
-                           @(7);
-                           bool]))
-constant Elim.PP##rlx : (func(2, [@(0);
-                                  @(1);
-                                  (Elim.Pair  @(0)  @(1))]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant GHC.Types.GT##6W : (GHC.Types.Ordering)
-constant GHC.Prim.$45$$35$$35$$35$99 : (func(0, [int; int; int]))
-constant GHC.Types.$58$$35$$35$64 : (func(1, [@(0);
-                                              [@(0)];
-                                              [@(0)]]))
-constant autolen : (func(1, [@(0); int]))
-constant GHC.Types.I###6c : (func(0, [int; int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant xx : (func(0, [Elim.Foo; int]))
-constant null : (func(1, [[@(0)]; bool]))
-constant GHC.Num.$43$$35$$35$rt : (func(1, [@(0); @(0); @(0)]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$41$$35$$35$7a : (func(5, [@(0);
-                                                                  @(1);
-                                                                  @(2);
-                                                                  @(3);
-                                                                  @(4);
-                                                                  (Tuple  @(0)  @(1)  @(2)  @(3)  @(4))]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant GHC.Tuple.$40$$44$$41$$35$$35$74 : (func(2, [@(0);
-                                                      @(1);
-                                                      (Tuple  @(0)  @(1))]))
-constant Elim.yy##rlC : (func(0, [Elim.Foo; int]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant papp7 : (func(14, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            @(12);
-                            @(13);
-                            bool]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant GHC.Prim.$62$$35$$35$$35$9m : (func(0, [int; int; int]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant Elim.Emp##rly : (func(2, [(Elim.Pair  @(0)  @(1))]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$44$$44$$41$$35$$35$7e : (func(7, [@(0);
-                                                                          @(1);
-                                                                          @(2);
-                                                                          @(3);
-                                                                          @(4);
-                                                                          @(5);
-                                                                          @(6);
-                                                                          (Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6))]))
-constant papp6 : (func(12, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            bool]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant Data.Foldable.length##r1s : (func(2, [(@(0)  @(0)); int]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant xListSelector : (func(1, [[@(0)]; @(0)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant GHC.Tuple.$40$$44$$44$$44$$41$$35$$35$78 : (func(4, [@(0);
-                                                              @(1);
-                                                              @(2);
-                                                              @(3);
-                                                              (Tuple  @(0)  @(1)  @(2)  @(3))]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant GHC.Prim.$61$$61$$35$$35$$35$9o : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant Elim.Foo##rlA : (func(0, [int; int; Elim.Foo]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(2, [(Pred  @(0)); @(1); bool]))
-constant yy : (func(0, [Elim.Foo; int]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant GHC.Prim.$62$$61$$35$$35$$35$9n : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant lit$36$tests$47$pos$47$elim00.hs$58$14$58$5$45$30$124$PP$32$wink$32$cow : (Str)
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant GHC.Types.EQ##6U : (GHC.Types.Ordering)
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant GHC.Base.Nothing##r1d : (func(1, [(GHC.Base.Maybe  @(0))]))
-constant GHC.Num.$45$$35$$35$02B : (func(1, [@(0); @(0); @(0)]))
-constant GHC.Num.$42$$35$$35$ru : (func(1, [@(0); @(0); @(0)]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant GHC.Types.$91$$93$$35$$35$6m : (func(1, [[@(0)]]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant GHC.Prim.$60$$61$$35$$35$$35$9r : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant GHC.Real.D$58$Fractional$35$$35$rVU : (func(1, [func(0, [@(0);
-                                                                  @(0);
-                                                                  @(0)]);
-                                                         func(0, [@(0); @(0)]);
-                                                         func(0, [(GHC.Real.Ratio  int); @(0)]);
-                                                         (GHC.Real.Fractional  @(0))]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$44$$41$$35$$35$7c : (func(6, [@(0);
-                                                                      @(1);
-                                                                      @(2);
-                                                                      @(3);
-                                                                      @(4);
-                                                                      @(5);
-                                                                      (Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5))]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-constant GHC.Prim.void###0l : (GHC.Prim.Void#)
-
-
-bind 0 GHC.Prim.void###0l : {VV##180 : GHC.Prim.Void# | []}
-bind 1 Elim.Emp##rly : {VV : func(2, [(Elim.Pair  @(0)  @(1))]) | []}
-bind 2 GHC.Types.EQ##6U : {VV##185 : GHC.Types.Ordering | [(VV##185 = GHC.Types.EQ##6U)]}
-bind 3 GHC.Types.LT##6S : {VV##186 : GHC.Types.Ordering | [(VV##186 = GHC.Types.LT##6S)]}
-bind 4 GHC.Types.GT##6W : {VV##187 : GHC.Types.Ordering | [(VV##187 = GHC.Types.GT##6W)]}
-bind 5 Elim.Emp##rly : {VV : func(2, [(Elim.Pair  @(0)  @(1))]) | []}
-bind 6 GHC.Types.$91$$93$$35$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 7 GHC.Types.GT##6W : {VV##213 : GHC.Types.Ordering | [((cmp VV##213) = GHC.Types.GT##6W)]}
-bind 8 GHC.Types.LT##6S : {VV##214 : GHC.Types.Ordering | [((cmp VV##214) = GHC.Types.LT##6S)]}
-bind 9 GHC.Types.EQ##6U : {VV##215 : GHC.Types.Ordering | [((cmp VV##215) = GHC.Types.EQ##6U)]}
-bind 10 GHC.Base.Nothing##r1d : {VV : func(1, [(GHC.Base.Maybe  @(0))]) | []}
-bind 11 ds_dxd : {VV##222 : Elim.Foo | []}
-bind 12 lq_anf$##dxr : {lq_tmp$x##223 : Elim.Foo | [(lq_tmp$x##223 = ds_dxd)]}
-bind 13 lq_anf$##dxr : {lq_tmp$x##225 : Elim.Foo | [(lq_tmp$x##225 = ds_dxd)]}
-bind 14 xig##awy : {lq_tmp$x##233 : int | []}
-bind 15 yog##awz : {lq_tmp$x##234 : int | [(xig##awy < lq_tmp$x##234)]}
-bind 16 lq_anf$##dxr : {lq_tmp$x##225 : Elim.Foo | [(lq_tmp$x##225 = ds_dxd);
-                                                    ((yy lq_tmp$x##225) = yog##awz);
-                                                    ((xx lq_tmp$x##225) = xig##awy);
-                                                    (lq_tmp$x##225 = (Elim.Foo##rlA xig##awy yog##awz));
-                                                    ((yy lq_tmp$x##225) = yog##awz);
-                                                    ((xx lq_tmp$x##225) = xig##awy)]}
-bind 17 lq_anf$##dxs : {lq_tmp$x##242 : (Elim.Pair  int  int) | [(lq_tmp$x##242 = (Elim.PP##rlx xig##awy yog##awz))]}
-bind 18 lq_anf$##dxt : {lq_tmp$x##273 : (Elim.Pair  int  int) | [(lq_tmp$x##273 = lq_anf$##dxs)]}
-bind 19 lq_anf$##dxt : {lq_tmp$x##277 : (Elim.Pair  int  int) | [(lq_tmp$x##277 = lq_anf$##dxs)]}
-bind 20 wink##ax3 : {lq_tmp$x##275 : int | [$k_##248[lq_tmp$x##277:=lq_anf$##dxt][VV##247:=lq_tmp$x##275][lq_tmp$x##242:=lq_anf$##dxt][lq_tmp$x##271:=lq_tmp$x##275][lq_tmp$x##273:=lq_anf$##dxt][lq_tmp$x##245:=xig##awy][lq_tmp$x##246:=yog##awz][lq_tmp$x##250:=lq_tmp$x##275]]}
-bind 21 cow##ax4 : {lq_tmp$x##276 : int | [$k_##252[lq_tmp$x##277:=lq_anf$##dxt][lq_tmp$x##281:=wink##ax3][VV##251:=lq_tmp$x##276][lq_tmp$x##242:=lq_anf$##dxt][lq_tmp$x##254:=lq_tmp$x##276][lq_tmp$x##273:=lq_anf$##dxt][lq_tmp$x##245:=xig##awy][lq_tmp$x##246:=yog##awz][lq_tmp$x##272:=lq_tmp$x##276]]}
-bind 22 lq_anf$##dxt : {lq_tmp$x##277 : (Elim.Pair  int  int) | [(lq_tmp$x##277 = lq_anf$##dxs);
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4));
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4));
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4))]}
-bind 23 lq_tmp$x##307 : {VV##308 : int | []}
-bind 24 lq_anf$##dxt : {lq_tmp$x##313 : (Elim.Pair  int  int) | [(lq_tmp$x##313 = lq_anf$##dxs)]}
-bind 25 lq_anf$##dxt : {lq_tmp$x##313 : (Elim.Pair  int  int) | [(lq_tmp$x##313 = lq_anf$##dxs);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly)]}
-bind 26 ds_dxg : {VV##318 : GHC.Prim.Void# | [$k_##319]}
-bind 27 lq_anf$##dxu : {lq_tmp$x##335 : int | [(lq_tmp$x##335 ~~ lit$36$tests$47$pos$47$elim00.hs$58$14$58$5$45$30$124$PP$32$wink$32$cow);
-                                               ((strLen lq_tmp$x##335) = 39)]}
-bind 28 ds_dxh : {VV##268 : (Tuple  int  int) | [$k_##269]}
-bind 29 lq_anf$##dxw : {lq_tmp$x##368 : (Tuple  int  int) | [(lq_tmp$x##368 = ds_dxh)]}
-bind 30 lq_anf$##dxw : {lq_tmp$x##374 : (Tuple  int  int) | [(lq_tmp$x##374 = ds_dxh)]}
-bind 31 wink##ax3 : {lq_tmp$x##370 : int | [$k_##259[lq_tmp$x##368:=lq_anf$##dxw][VV##268:=lq_anf$##dxw][lq_tmp$x##364:=lq_tmp$x##370][VV##258:=lq_tmp$x##370][lq_tmp$x##374:=lq_anf$##dxw]]}
-bind 32 cow##Xxd : {lq_tmp$x##371 : int | [$k_##262[lq_tmp$x##368:=lq_anf$##dxw][VV##268:=lq_anf$##dxw][VV##261:=lq_tmp$x##371][lq_tmp$x##365:=lq_tmp$x##371][lq_tmp$x##379:=wink##ax3][lq_tmp$x##374:=lq_anf$##dxw];
-                                           $k_##266[lq_tmp$x##368:=lq_anf$##dxw][lq_tmp$x##373:=lq_tmp$x##371][VV##265:=lq_tmp$x##371][lq_tmp$x##264:=wink##ax3][lq_tmp$x##367:=lq_tmp$x##371][VV##268:=lq_anf$##dxw][lq_tmp$x##372:=wink##ax3][lq_tmp$x##366:=wink##ax3][lq_tmp$x##379:=wink##ax3][lq_tmp$x##374:=lq_anf$##dxw]]}
-bind 33 lq_anf$##dxw : {lq_tmp$x##374 : (Tuple  int  int) | [(lq_tmp$x##374 = ds_dxh);
-                                                             ((snd lq_tmp$x##374) = cow##Xxd);
-                                                             ((fst lq_tmp$x##374) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##374) = cow##Xxd);
-                                                             ((x_Tuple21 lq_tmp$x##374) = wink##ax3);
-                                                             (lq_tmp$x##374 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##Xxd));
-                                                             ((snd lq_tmp$x##374) = cow##Xxd);
-                                                             ((fst lq_tmp$x##374) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##374) = cow##Xxd);
-                                                             ((x_Tuple21 lq_tmp$x##374) = wink##ax3)]}
-bind 34 wink##ax3 : {VV##361 : int | [$k_##362]}
-// bind 45 wink##ax3 : {lq_tmp$x##452 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][VV##427:=lq_tmp$x##452][lq_tmp$x##426:=cow##ax4][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##430:=lq_tmp$x##452][lq_tmp$x##446:=lq_tmp$x##452][lq_tmp$x##422:=lq_anf$##dxy]]}
-
-bind 35 lq_anf$##dxv : {lq_tmp$x##398 : (Tuple  int  int) | [(lq_tmp$x##398 = ds_dxh)]}
-bind 36 lq_anf$##dxv : {lq_tmp$x##404 : (Tuple  int  int) | [(lq_tmp$x##404 = ds_dxh)]}
-bind 37 wink##ax3 : {lq_tmp$x##400 : int | [$k_##259[VV##268:=lq_anf$##dxv][lq_tmp$x##394:=lq_tmp$x##400][VV##258:=lq_tmp$x##400][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##404:=lq_anf$##dxv]]}
-bind 38 cow##ax4 : {lq_tmp$x##401 : int | [$k_##262[VV##268:=lq_anf$##dxv][VV##261:=lq_tmp$x##401][lq_tmp$x##409:=wink##ax3][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##395:=lq_tmp$x##401][lq_tmp$x##404:=lq_anf$##dxv];
-                                           $k_##266[lq_tmp$x##396:=wink##ax3][VV##265:=lq_tmp$x##401][lq_tmp$x##264:=wink##ax3][VV##268:=lq_anf$##dxv][lq_tmp$x##397:=lq_tmp$x##401][lq_tmp$x##409:=wink##ax3][lq_tmp$x##403:=lq_tmp$x##401][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##402:=wink##ax3][lq_tmp$x##404:=lq_anf$##dxv]]}
-bind 39 lq_anf$##dxv : {lq_tmp$x##404 : (Tuple  int  int) | [(lq_tmp$x##404 = ds_dxh);
-                                                             ((snd lq_tmp$x##404) = cow##ax4);
-                                                             ((fst lq_tmp$x##404) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##404) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##404) = wink##ax3);
-                                                             (lq_tmp$x##404 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##404) = cow##ax4);
-                                                             ((fst lq_tmp$x##404) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##404) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##404) = wink##ax3)]}
-bind 40 cow##ax4 : {VV##391 : int | [$k_##392]}
-bind 41 lq_tmp$x##438 : {VV##439 : int | []}
-bind 42 ds_dxi : {lq_tmp$x##422 : (Tuple  int  int) | [((snd lq_tmp$x##422) = cow##ax4);
-                                                       ((fst lq_tmp$x##422) = wink##ax3);
-                                                       ((x_Tuple22 lq_tmp$x##422) = cow##ax4);
-                                                       ((x_Tuple21 lq_tmp$x##422) = wink##ax3)]}
-bind 43 lq_anf$##dxy : {lq_tmp$x##450 : (Tuple  int  int) | [(lq_tmp$x##450 = ds_dxi)]}
-bind 44 lq_anf$##dxy : {lq_tmp$x##456 : (Tuple  int  int) | [(lq_tmp$x##456 = ds_dxi)]}
-bind 45 wink##ax3 : {lq_tmp$x##452 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][VV##427:=lq_tmp$x##452][lq_tmp$x##426:=cow##ax4][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##430:=lq_tmp$x##452][lq_tmp$x##446:=lq_tmp$x##452][lq_tmp$x##422:=lq_anf$##dxy]]}
-bind 46 cow##ax4 : {lq_tmp$x##453 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][lq_tmp$x##426:=cow##ax4][VV##431:=lq_tmp$x##453][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##447:=lq_tmp$x##453][lq_tmp$x##461:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxy][lq_tmp$x##434:=lq_tmp$x##453];
-                                           $k_##436[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][lq_tmp$x##426:=cow##ax4][lq_tmp$x##455:=lq_tmp$x##453][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##461:=wink##ax3][lq_tmp$x##438:=wink##ax3][lq_tmp$x##421:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxy][lq_tmp$x##434:=lq_tmp$x##453][lq_tmp$x##448:=wink##ax3][lq_tmp$x##449:=lq_tmp$x##453][VV##435:=lq_tmp$x##453][lq_tmp$x##454:=wink##ax3]]}
-bind 47 lq_anf$##dxy : {lq_tmp$x##456 : (Tuple  int  int) | [(lq_tmp$x##456 = ds_dxi);
-                                                             ((snd lq_tmp$x##456) = cow##ax4);
-                                                             ((fst lq_tmp$x##456) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##456) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##456) = wink##ax3);
-                                                             (lq_tmp$x##456 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##456) = cow##ax4);
-                                                             ((fst lq_tmp$x##456) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##456) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##456) = wink##ax3)]}
-bind 48 wink##awA : {VV##443 : int | [$k_##444]}
-
-bind 49 lq_anf$##dxx : {lq_tmp$x##480 : (Tuple  int  int) | [(lq_tmp$x##480 = ds_dxi)]}
-bind 50 lq_anf$##dxx : {lq_tmp$x##486 : (Tuple  int  int) | [(lq_tmp$x##486 = ds_dxi)]}
-bind 51 wink##ax3 : {lq_tmp$x##482 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][VV##427:=lq_tmp$x##482][lq_tmp$x##426:=cow##ax4][lq_tmp$x##476:=lq_tmp$x##482][lq_tmp$x##430:=lq_tmp$x##482][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##486:=lq_anf$##dxx]]}
-bind 52 cow##ax4 : {lq_tmp$x##483 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][lq_tmp$x##426:=cow##ax4][VV##431:=lq_tmp$x##483][lq_tmp$x##491:=wink##ax3][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##477:=lq_tmp$x##483][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##434:=lq_tmp$x##483][lq_tmp$x##486:=lq_anf$##dxx];
-                                           $k_##436[lq_tmp$x##425:=wink##ax3][lq_tmp$x##426:=cow##ax4][lq_tmp$x##491:=wink##ax3][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##479:=lq_tmp$x##483][lq_tmp$x##485:=lq_tmp$x##483][lq_tmp$x##438:=wink##ax3][lq_tmp$x##421:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##434:=lq_tmp$x##483][lq_tmp$x##484:=wink##ax3][lq_tmp$x##478:=wink##ax3][lq_tmp$x##486:=lq_anf$##dxx][VV##435:=lq_tmp$x##483]]}
-bind 53 lq_anf$##dxx : {lq_tmp$x##486 : (Tuple  int  int) | [(lq_tmp$x##486 = ds_dxi);
-                                                             ((snd lq_tmp$x##486) = cow##ax4);
-                                                             ((fst lq_tmp$x##486) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##486) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##486) = wink##ax3);
-                                                             (lq_tmp$x##486 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##486) = cow##ax4);
-                                                             ((fst lq_tmp$x##486) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##486) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##486) = wink##ax3)]}
-bind 54 cow##awB : {VV##473 : int | [$k_##474]}
-bind 55 ds_dxo : {VV##514 : Elim.Foo | []}
-bind 56 lq_anf$##dxz : {lq_tmp$x##515 : Elim.Foo | [(lq_tmp$x##515 = ds_dxo)]}
-bind 57 lq_anf$##dxz : {lq_tmp$x##517 : Elim.Foo | [(lq_tmp$x##517 = ds_dxo)]}
-bind 58 ds_dxp : {lq_tmp$x##525 : int | []}
-bind 59 ds_dxq : {lq_tmp$x##526 : int | [(ds_dxp < lq_tmp$x##526)]}
-bind 60 lq_anf$##dxz : {lq_tmp$x##517 : Elim.Foo | [(lq_tmp$x##517 = ds_dxo);
-                                                    ((yy lq_tmp$x##517) = ds_dxq);
-                                                    ((xx lq_tmp$x##517) = ds_dxp);
-                                                    (lq_tmp$x##517 = (Elim.Foo##rlA ds_dxp ds_dxq));
-                                                    ((yy lq_tmp$x##517) = ds_dxq);
-                                                    ((xx lq_tmp$x##517) = ds_dxp)]}
-bind 61 ds_dxl : {VV##537 : Elim.Foo | []}
-bind 62 lq_anf$##dxA : {lq_tmp$x##538 : Elim.Foo | [(lq_tmp$x##538 = ds_dxl)]}
-bind 63 lq_anf$##dxA : {lq_tmp$x##540 : Elim.Foo | [(lq_tmp$x##540 = ds_dxl)]}
-bind 64 ds_dxm : {lq_tmp$x##548 : int | []}
-bind 65 ds_dxn : {lq_tmp$x##549 : int | [(ds_dxm < lq_tmp$x##549)]}
-bind 66 lq_anf$##dxA : {lq_tmp$x##540 : Elim.Foo | [(lq_tmp$x##540 = ds_dxl);
-                                                    ((yy lq_tmp$x##540) = ds_dxn);
-                                                    ((xx lq_tmp$x##540) = ds_dxm);
-                                                    (lq_tmp$x##540 = (Elim.Foo##rlA ds_dxm ds_dxn));
-                                                    ((yy lq_tmp$x##540) = ds_dxn);
-                                                    ((xx lq_tmp$x##540) = ds_dxm)]}
-bind 67 VV##559 : {VV##559 : int | [(VV##559 = ds_dxm)]}
-bind 68 VV##561 : {VV##561 : int | [(VV##561 = ds_dxq)]}
-bind 69 VV##563 : {VV##563 : Elim.Foo | [((yy VV##563) = cow##awB);
-                                         ((xx VV##563) = wink##awA)]}
-bind 70 VV##565 : {VV##565 : int | [(VV##565 = cow##awB)]}
-bind 71 VV##567 : {VV##567 : int | [(VV##567 = wink##awA)]}
-bind 72 VV##569 : {VV##569 : int | [(VV##569 = cow##ax4)]}
-bind 73 VV##571 : {VV##571 : int | [(VV##571 = wink##ax3)]}
-bind 74 VV##573 : {VV##573 : int | [(VV##573 = cow##ax4)]}
-bind 75 VV##575 : {VV##575 : int | [(VV##575 = wink##ax3)]}
-bind 76 VV##577 : {VV##577 : int | [(VV##577 = cow##ax4)]}
-bind 77 VV##579 : {VV##579 : int | [(VV##579 = wink##ax3)]}
-bind 78 VV##581 : {VV##581 : (Tuple  int  int) | [$k_##333[VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 79 VV##583 : {VV##583 : int | [$k_##323[VV##322:=VV##583][VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 80 VV##585 : {VV##585 : int | [$k_##326[VV##325:=VV##585][VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 81 lq_tmp$x##264 : {VV##587 : int | []}
-bind 82 VV##588 : {VV##588 : int | [$k_##330[VV##332:=VV##581][VV##329:=VV##588][ds_dxg:=GHC.Prim.void###0l][lq_tmp$x##328:=lq_tmp$x##264]]}
-bind 83 VV##590 : {VV##590 : GHC.Prim.Void# | [(VV##590 = GHC.Prim.void###0l)]}
-bind 84 VV##592 : {VV##592 : (Tuple  int  int) | [$k_##351[lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##350:=VV##592]]}
-bind 85 VV##594 : {VV##594 : int | [$k_##341[lq_tmp$x##353:=VV##594][lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##340:=VV##594][VV##350:=VV##592]]}
-bind 86 VV##596 : {VV##596 : int | [$k_##344[lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##343:=VV##596][lq_tmp$x##354:=VV##596][VV##350:=VV##592]]}
-bind 87 lq_tmp$x##328 : {VV##598 : int | []}
-bind 88 VV##599 : {VV##599 : int | [$k_##348[lq_tmp$x##355:=lq_tmp$x##328][lq_tmp$x##356:=VV##599][VV##347:=VV##599][lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##346:=lq_tmp$x##328][lq_tmp$x##357:=VV##592][VV##350:=VV##592]]}
-bind 89 VV##601 : {VV##601 : int | [(VV##601 = lq_anf$##dxu)]}
-bind 90 VV##603 : {VV##603 : (Tuple  int  int) | [((snd VV##603) = cow##ax4);
-                                                  ((fst VV##603) = wink##ax3);
-                                                  ((x_Tuple22 VV##603) = cow##ax4);
-                                                  ((x_Tuple21 VV##603) = wink##ax3)]}
-bind 91 VV##605 : {VV##605 : int | [$k_##297[lq_tmp$x##295:=cow##ax4][lq_tmp$x##299:=VV##605][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##296:=VV##605]]}
-bind 92 VV##607 : {VV##607 : int | [$k_##301[lq_tmp$x##295:=cow##ax4][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##300:=VV##607][lq_tmp$x##303:=VV##607]]}
-bind 93 lq_tmp$x##264 : {VV##609 : int | []}
-bind 94 VV##610 : {VV##610 : int | [$k_##305[lq_tmp$x##295:=cow##ax4][lq_tmp$x##290:=lq_tmp$x##264][VV##304:=VV##610][lq_tmp$x##307:=lq_tmp$x##264][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##610]]}
-bind 95 VV##612 : {VV##612 : int | [(VV##612 = cow##ax4)]}
-bind 96 VV##614 : {VV##614 : int | [(VV##614 = wink##ax3)]}
-bind 97 VV##616 : {VV##616 : int | [(VV##616 = yog##awz)]}
-bind 98 VV##618 : {VV##618 : int | [(VV##618 = xig##awy)]}
-bind 99 VV##473 : {VV##473 : int | [$k_##474]}
-bind 100 VV##443 : {VV##443 : int | [$k_##444]}
-bind 101 VV##435 : {VV##435 : int | [$k_##436]}
-bind 102 VV##431 : {VV##431 : int | [$k_##432]}
-bind 103 VV##427 : {VV##427 : int | [$k_##428]}
-bind 104 VV##391 : {VV##391 : int | [$k_##392]}
-bind 105 VV##361 : {VV##361 : int | [$k_##362]}
-bind 106 VV##318 : {VV##318 : GHC.Prim.Void# | [$k_##319]}
-bind 107 VV##350 : {VV##350 : (Tuple  int  int) | [$k_##351]}
-bind 108 VV##340 : {VV##340 : int | [$k_##341]}
-bind 109 VV##343 : {VV##343 : int | [$k_##344]}
-bind 110 lq_tmp$x##346 : {VV##631 : int | []}
-bind 111 VV##347 : {VV##347 : int | [$k_##348]}
-bind 112 VV##332 : {VV##332 : (Tuple  int  int) | [$k_##333]}
-bind 113 VV##322 : {VV##322 : int | [$k_##323]}
-bind 114 VV##325 : {VV##325 : int | [$k_##326]}
-bind 115 lq_tmp$x##328 : {VV##636 : int | []}
-bind 116 VV##329 : {VV##329 : int | [$k_##330]}
-bind 117 VV##304 : {VV##304 : int | [$k_##305]}
-bind 118 VV##300 : {VV##300 : int | [$k_##301]}
-bind 119 VV##296 : {VV##296 : int | [$k_##297]}
-bind 120 VV##268 : {VV##268 : (Tuple  int  int) | [$k_##269]}
-bind 121 VV##258 : {VV##258 : int | [$k_##259]}
-bind 122 VV##261 : {VV##261 : int | [$k_##262]}
-bind 123 lq_tmp$x##264 : {VV##644 : int | []}
-bind 124 VV##265 : {VV##265 : int | [$k_##266]}
-bind 125 VV##251 : {VV##251 : int | [$k_##252]}
-bind 126 VV##247 : {VV##247 : int | [$k_##248]}
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48;
-       54 ]
-  lhs {VV##1 : int | [(VV##1 = cow##awB)]}
-  rhs {VV##1 : int | [(wink##awA < VV##1)]}
-  id 1 tag [1]
-  // META constraint id 1 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48;
-       49;
-       50;
-       51;
-       52;
-       53]
-  lhs {VV##2 : int | [(VV##2 = cow##ax4)]}
-  rhs {VV##2 : int | [$k_##474[VV##569:=VV##2][VV##F##2:=VV##2][VV##F:=VV##2][VV##473:=VV##2]]}
-  id 2 tag [1]
-  // META constraint id 2 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##18 : (Tuple  int  int) | [((snd VV##18) = cow##ax4);
-                                     ((fst VV##18) = wink##ax3);
-                                     ((x_Tuple22 VV##18) = cow##ax4);
-                                     ((x_Tuple21 VV##18) = wink##ax3)]}
-  rhs {VV##18 : (Tuple  int  int) | [$k_##269[VV##F##18:=VV##18][VV##268:=VV##18][VV##603:=VV##18][VV##F:=VV##18]]}
-  id 18 tag [1]
-  // META constraint id 18 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       43;
-       44;
-       45;
-       46;
-       47]
-  lhs {VV##3 : int | [(VV##3 = wink##ax3)]}
-  rhs {VV##3 : int | [$k_##444[VV##571:=VV##3][VV##F:=VV##3][VV##F##3:=VV##3][VV##443:=VV##3]]}
-  id 3 tag [1]
-  // META constraint id 3 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90]
-  lhs {VV##19 : int | [$k_##297[lq_tmp$x##295:=cow##ax4][VV##605:=VV##19][lq_tmp$x##299:=VV##19][lq_tmp$x##291:=VV##603][VV##F##19:=VV##19][lq_tmp$x##294:=wink##ax3][VV##F:=VV##19][VV##296:=VV##19]]}
-  rhs {VV##19 : int | [$k_##259[VV##605:=VV##19][VV##268:=VV##603][VV##258:=VV##19][VV##F##19:=VV##19][VV##F:=VV##19]]}
-  id 19 tag [1]
-  // META constraint id 19 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##4 : int | [(VV##4 = cow##ax4)]}
-  rhs {VV##4 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][VV##431:=VV##4][VV##573:=VV##4][lq_tmp$x##434:=VV##4][VV##F:=VV##4][VV##F##4:=VV##4]]}
-  id 4 tag [1]
-  // META constraint id 4 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90]
-  lhs {VV##20 : int | [$k_##301[lq_tmp$x##295:=cow##ax4][VV##607:=VV##20][VV##F##20:=VV##20][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##300:=VV##20][lq_tmp$x##303:=VV##20][VV##F:=VV##20]]}
-  rhs {VV##20 : int | [$k_##262[VV##268:=VV##603][VV##607:=VV##20][VV##F##20:=VV##20][VV##261:=VV##20][VV##F:=VV##20]]}
-  id 20 tag [1]
-  // META constraint id 20 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##5 : int | [(VV##5 = cow##ax4)]}
-  rhs {VV##5 : int | [$k_##436[lq_tmp$x##425:=wink##ax3][VV##F##5:=VV##5][VV##573:=VV##5][lq_tmp$x##438:=wink##ax3][lq_tmp$x##434:=VV##5][VV##F:=VV##5][VV##435:=VV##5]]}
-  id 5 tag [1]
-  // META constraint id 5 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90;
-       93]
-  lhs {VV##21 : int | [$k_##305[lq_tmp$x##295:=cow##ax4][lq_tmp$x##290:=lq_tmp$x##264][VV##304:=VV##21][VV##610:=VV##21][lq_tmp$x##307:=lq_tmp$x##264][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##21][VV##F##21:=VV##21][VV##F:=VV##21]]}
-  rhs {VV##21 : int | [$k_##266[VV##265:=VV##21][VV##610:=VV##21][VV##268:=VV##603][VV##F##21:=VV##21][VV##F:=VV##21]]}
-  id 21 tag [1]
-  // META constraint id 21 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##6 : int | [(VV##6 = wink##ax3)]}
-  rhs {VV##6 : int | [$k_##428[VV##F##6:=VV##6][VV##427:=VV##6][lq_tmp$x##430:=VV##6][VV##F:=VV##6][VV##575:=VV##6]]}
-  id 6 tag [1]
-  // META constraint id 6 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##22 : int | [(VV##22 = cow##ax4)]}
-  rhs {VV##22 : int | [$k_##301[VV##F##22:=VV##22][VV##612:=VV##22][lq_tmp$x##294:=wink##ax3][VV##300:=VV##22][lq_tmp$x##303:=VV##22][VV##F:=VV##22]]}
-  id 22 tag [1]
-  // META constraint id 22 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       35;
-       36;
-       37;
-       38;
-       39]
-  lhs {VV##7 : int | [(VV##7 = cow##ax4)]}
-  rhs {VV##7 : int | [$k_##392[VV##391:=VV##7][VV##F##7:=VV##7][VV##F:=VV##7][VV##577:=VV##7]]}
-  id 7 tag [1]
-  // META constraint id 7 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##23 : int | [(VV##23 = cow##ax4)]}
-  rhs {VV##23 : int | [$k_##305[VV##304:=VV##23][lq_tmp$x##307:=wink##ax3][VV##612:=VV##23][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##23][VV##F:=VV##23][VV##F##23:=VV##23]]}
-  id 23 tag [1]
-  // META constraint id 23 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       29;
-       30;
-       31;
-       32;
-       33]
-  lhs {VV##8 : int | [(VV##8 = wink##ax3)]}
-  rhs {VV##8 : int | [$k_##362[VV##579:=VV##8][VV##F##8:=VV##8][VV##361:=VV##8][VV##F:=VV##8]]}
-  id 8 tag [1]
-  // META constraint id 8 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##24 : int | [(VV##24 = wink##ax3)]}
-  rhs {VV##24 : int | [$k_##297[lq_tmp$x##299:=VV##24][VV##614:=VV##24][VV##F:=VV##24][VV##296:=VV##24][VV##F##24:=VV##24]]}
-  id 24 tag [1]
-  // META constraint id 24 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  lhs {VV##25 : int | [(VV##25 = yog##awz)]}
-  rhs {VV##25 : int | [$k_##252[VV##251:=VV##25][lq_tmp$x##254:=VV##25][lq_tmp$x##245:=xig##awy][VV##F:=VV##25][VV##616:=VV##25][VV##F##25:=VV##25]]}
-  id 25 tag [1]
-  // META constraint id 25 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  lhs {VV##26 : int | [(VV##26 = xig##awy)]}
-  rhs {VV##26 : int | [$k_##248[VV##618:=VV##26][VV##247:=VV##26][VV##F##26:=VV##26][VV##F:=VV##26][lq_tmp$x##250:=VV##26]]}
-  id 26 tag [1]
-  // META constraint id 26 : ()
-
-
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       115]
-  reft {VV##329 : int | [$k_##330]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25]
-  reft {VV##318 : GHC.Prim.Void# | [$k_##319]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       107]
-  reft {VV##343 : int | [$k_##344]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  reft {VV##427 : int | [$k_##428]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  reft {VV##247 : int | [$k_##248]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       41]
-  reft {VV##435 : int | [$k_##436]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42]
-  reft {VV##443 : int | [$k_##444]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  reft {VV##296 : int | [$k_##297]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       110]
-  reft {VV##347 : int | [$k_##348]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48]
-  reft {VV##473 : int | [$k_##474]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27]
-  reft {VV##350 : (Tuple  int  int) | [$k_##351]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34]
-  reft {VV##391 : int | [$k_##392]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26]
-  reft {VV##332 : (Tuple  int  int) | [$k_##333]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       120]
-  reft {VV##258 : int | [$k_##259]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       120]
-  reft {VV##261 : int | [$k_##262]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       107]
-  reft {VV##340 : int | [$k_##341]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       23]
-  reft {VV##304 : int | [$k_##305]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       112]
-  reft {VV##325 : int | [$k_##326]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28]
-  reft {VV##361 : int | [$k_##362]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       123]
-  reft {VV##265 : int | [$k_##266]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       112]
-  reft {VV##322 : int | [$k_##323]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  reft {VV##300 : int | [$k_##301]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17]
-  reft {VV##268 : (Tuple  int  int) | [$k_##269]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  reft {VV##431 : int | [$k_##432]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  reft {VV##251 : int | [$k_##252]}
-  // META wf : ()
diff --git a/liquid-fixpoint/tests/elim/kvparam00.fq b/liquid-fixpoint/tests/elim/kvparam00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/kvparam00.fq
+++ /dev/null
@@ -1,20 +0,0 @@
-bind 0 x : {v : int | []}
-
-bind 1 y : {v : int | []}
-
-constraint:
-  env [0; 1]
-  lhs {VV#F1 : int | []}
-  rhs {VV#F1 : int | [$k_0[v:=x]]}
-  id 1 tag [3]
-
-constraint:
-  env [0; 1]
-  lhs {VV#F2 : int | [$k_0[v:=y]]}
-  rhs {VV#F2 : int | [y = x]}
-  id 2 tag [4]
-
-wf:
-  env []
-  reft {v : int | [$k_0]}
-
diff --git a/liquid-fixpoint/tests/elim/len00.fq b/liquid-fixpoint/tests/elim/len00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/len00.fq
+++ /dev/null
@@ -1,23 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-//qualif ListZ(v : [@(0)]): (len v >= 0)
-
-constant len : (func(2, [(@(0)  @(1)); int]))
-
-bind 0 y : {v : [(Tuple int a)] | [len v >= 0]}
-
-constraint:
-  env [0]
-  lhs {v : [(Tuple int a)] | [v = y] }
-  rhs {v : [(Tuple int a)] | [$k0]   }
-  id 1 tag []
-
-constraint:
-  env []
-  lhs {v : [(Tuple int a)] | [$k0]             }
-  rhs {v : [(Tuple int a)] | [len v >= 0] }
-  id 2 tag []
-
-wf:
-  env [ ]
-  reft {v : [(Tuple int a)] | [$k0] }
diff --git a/liquid-fixpoint/tests/elim/test00-tx.fq b/liquid-fixpoint/tests/elim/test00-tx.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/test00-tx.fq
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 a : {v:int | (v = 10 || v = 20) }
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
diff --git a/liquid-fixpoint/tests/elim/test00.fq b/liquid-fixpoint/tests/elim/test00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/test00.fq
+++ /dev/null
@@ -1,26 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 a : {v: int | $k0}
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 10}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/elim/test00a.fq b/liquid-fixpoint/tests/elim/test00a.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/test00a.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | true}
-bind 1 y : {v : int | true}
-bind 2 z : {v : int | true}
-
-constraint:
-  env [0]
-  lhs {v : int | (x = 10)}
-  rhs {v : int | $k0[v:=x]}
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | y = 20}
-  rhs {v : int | $k0[v:=y]}
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[v:=z]}
-  rhs {v : int | 10 <= z}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/elim/test1.fq b/liquid-fixpoint/tests/elim/test1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/test1.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | v = 10}
-bind 1 y : {v : int | v = 20}
-bind 2 a : {v : int | $k0    }
-      
-constraint:
-  env [0]
-  lhs {v : int | v = x}
-  rhs {v : int | $k0   }
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | v = y}
-  rhs {v : int | $k0   }
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | v = a  }
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/elim/test2.fq b/liquid-fixpoint/tests/elim/test2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/test2.fq
+++ /dev/null
@@ -1,53 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-// qualif Zog(v:a): (10 <= v)
-
-// But you may use this one
-qualif Pog(v:a): (0 <= v)
-
-bind 0 x: {v: int | v = 10}
-bind 1 a: {v: int | $k1    }
-bind 2 y: {v: int | v = 20}
-bind 3 b: {v: int | $k1    }
-bind 4 c: {v: int | $k0    }
-
-cut $k1
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 0}
-  rhs {v : int | $k1 }
-  id 0 tag []
-
-
-constraint:
-  env [0; 1]
-  lhs {v : int | v = x + a}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [2; 3]
-  lhs {v : int | v = y + b}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k0}
-  rhs {v : int | $k1}
-  id 3 tag []
-
-constraint:
-  env [4]
-  lhs {v : int | v = c  }
-  rhs {v : int | 10 <= v}
-  id 4 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
-wf:
-  env [ ]
-  reft {v: int | $k1}
diff --git a/liquid-fixpoint/tests/elim/tuple00.fq b/liquid-fixpoint/tests/elim/tuple00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/tuple00.fq
+++ /dev/null
@@ -1,114 +0,0 @@
-
-bind 0 cat   : {v: int | v = 100 }
-bind 1 dog   : {v: int | v = 200 }
-bind 2 frog  : {v: int | v = 400 }
-bind 3 mouse : {v: int | v = 500 }
-bind 4 hippo : {v: int | v = 600 }
-bind 5 goose : {v: int | v = 700 }
-bind 6 crow  : {v: int | v = 800 }
-bind 7 pig   : {v: int | v = 900 }
-
-bind 20 x_1_1 : {v: int | $k_1_1 }
-bind 21 x_1_2 : {v: int | $k_1_2 }
-bind 22 x_2_1 : {v: int | $k_2_1 }
-bind 23 x_2_2 : {v: int | $k_2_2 }
-bind 24 x_3_1 : {v: int | $k_3_1 }
-bind 25 x_3_2 : {v: int | $k_3_2 }
-
-pack $k_1_1 : 1
-pack $k_1_2 : 1
-pack $k_2_1 : 2
-pack $k_2_2 : 2
-pack $k_3_1 : 3
-pack $k_3_2 : 3
-pack $k_4_1 : 4
-pack $k_4_2 : 4
-
-
-
-constraint:
-  env [ 0; 1; 2; 3; 4; 5; 6; 7 ]
-  lhs {v : int | v = 1}
-  rhs {v : int | $k_1_1}
-  id 1 tag []
-
-constraint:
-  env [ 0; 1; 2; 3; 4; 5; 6; 7 ]
-  lhs {v : int | v = 2}
-  rhs {v : int | $k_1_2}
-  id 2 tag []
-
-constraint:
-  env [ 20; 21 ]
-  lhs {v : int | v = x_1_1 }
-  rhs {v : int | $k_2_1    }
-  id 3 tag []
-
-constraint:
-  env [ 20; 21 ]
-  lhs {v : int | v = x_1_2 }
-  rhs {v : int | $k_2_2    }
-  id 4 tag []
-
-constraint:
-  env [ 22; 23 ]
-  lhs {v : int | v = x_2_1 }
-  rhs {v : int | $k_3_1    }
-  id 5 tag []
-
-constraint:
-  env [ 22; 23 ]
-  lhs {v : int | v = x_2_2 }
-  rhs {v : int | $k_3_2    }
-  id 6 tag []
-
-constraint:
-  env [ 24; 25 ]
-  lhs {v : int | v = x_3_1 }
-  rhs {v : int | $k_4_1    }
-  id 7 tag []
-
-constraint:
-  env [ 24; 25 ]
-  lhs {v : int | v = x_3_2 }
-  rhs {v : int | $k_4_2    }
-  id 8 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k_4_1 }
-  rhs {v : int | v = 1  }
-  id 9 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k_1_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_1_2}
-
-wf:
-  env [ ]
-  reft {v: int | $k_2_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_2_2}
-
-wf:
-  env [ ]
-  reft {v: int | $k_3_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_3_2}
-
-
-wf:
-  env [ ]
-  reft {v: int | $k_4_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_4_2}
diff --git a/liquid-fixpoint/tests/elim/tuple01.fq b/liquid-fixpoint/tests/elim/tuple01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/elim/tuple01.fq
+++ /dev/null
@@ -1,137 +0,0 @@
-// This test illustrates how you can get an exponential VC from nested tuples
-
-bind 0 cat   : {v: int | v = 100 }
-bind 1 dog   : {v: int | v = 200 }
-bind 2 frog  : {v: int | v = 400 }
-bind 3 mouse : {v: int | v = 500 }
-bind 4 hippo : {v: int | v = 600 }
-bind 5 goose : {v: int | v = 700 }
-bind 6 crow  : {v: int | v = 800 }
-bind 7 pig   : {v: int | v = 900 }
-
-bind 20 x_1_1 : {v: int | $k_1_1 }
-bind 21 x_1_2 : {v: int | $k_1_2 }
-bind 22 x_2_1 : {v: int | $k_2_1 }
-bind 23 x_2_2 : {v: int | $k_2_2 }
-bind 24 x_3_1 : {v: int | $k_3_1 }
-bind 25 x_3_2 : {v: int | $k_3_2 }
-bind 26 x_4_1 : {v: int | $k_4_1 }
-bind 27 x_4_2 : {v: int | $k_4_2 }
-
-// pack $k_1_1 : 1
-// pack $k_1_2 : 1
-// pack $k_2_1 : 2
-// pack $k_2_2 : 2
-// pack $k_3_1 : 3
-// pack $k_3_2 : 3
-// pack $k_4_1 : 4
-// pack $k_4_2 : 4
-// pack $k_5_1 : 5
-// pack $k_5_2 : 5
-
-constraint:
-  env [ 0; 1; 2; 3; 4; 5; 6; 7 ]
-  lhs {v : int | v = 1}
-  rhs {v : int | $k_1_1}
-  id 1 tag []
-
-constraint:
-  env [ 0; 1; 2; 3; 4; 5; 6; 7 ]
-  lhs {v : int | v = 2}
-  rhs {v : int | $k_1_2}
-  id 2 tag []
-
-constraint:
-  env [ 20; 21 ]
-  lhs {v : int | v = x_1_1 }
-  rhs {v : int | $k_2_1    }
-  id 3 tag []
-
-constraint:
-  env [ 20; 21 ]
-  lhs {v : int | v = x_1_2 }
-  rhs {v : int | $k_2_2    }
-  id 4 tag []
-
-constraint:
-  env [ 22; 23 ]
-  lhs {v : int | v = x_2_1 }
-  rhs {v : int | $k_3_1    }
-  id 5 tag []
-
-constraint:
-  env [ 22; 23 ]
-  lhs {v : int | v = x_2_2 }
-  rhs {v : int | $k_3_2    }
-  id 6 tag []
-
-constraint:
-  env [ 24; 25 ]
-  lhs {v : int | v = x_3_1 }
-  rhs {v : int | $k_4_1    }
-  id 7 tag []
-
-constraint:
-  env [ 24; 25 ]
-  lhs {v : int | v = x_3_2 }
-  rhs {v : int | $k_4_2    }
-  id 8 tag []
-
-constraint:
-  env [ 26; 27 ]
-  lhs {v : int | v = x_4_1 }
-  rhs {v : int | $k_5_1    }
-  id 9 tag []
-
-constraint:
-  env [ 26; 27 ]
-  lhs {v : int | v = x_4_2 }
-  rhs {v : int | $k_5_2    }
-  id 10 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k_5_1 }
-  rhs {v : int | v = 1  }
-  id 11 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k_1_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_1_2}
-
-wf:
-  env [ ]
-  reft {v: int | $k_2_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_2_2}
-
-wf:
-  env [ ]
-  reft {v: int | $k_3_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_3_2}
-
-
-wf:
-  env [ ]
-  reft {v: int | $k_4_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_4_2}
-
-wf:
-  env [ ]
-  reft {v: int | $k_5_1}
-
-wf:
-  env [ ]
-  reft {v: int | $k_5_2}
diff --git a/liquid-fixpoint/tests/minimize/two-cores.fq b/liquid-fixpoint/tests/minimize/two-cores.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/minimize/two-cores.fq
+++ /dev/null
@@ -1,30 +0,0 @@
-qualif Cmp(v:a): (v = 10)
-qualif Cmp(v:a): (v = 12)
-
-constraint:
-  env []
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [$k_0]}
-  id 1 tag [3]
-
-constraint:
-  env []
-  lhs {v : int | [$k_0]}
-  rhs {v : int | [v != 10]}
-  id 4 tag [4]
-
-constraint:
-  env []
-  lhs {v : int | [v = 12]}
-  rhs {v : int | [$k_0]}
-  id 2 tag [5]
-
-constraint:
-  env []
-  lhs {v : int | [$k_0]}
-  rhs {v : int | [v != 12]}
-  id 3 tag [6]
-
-wf:
-  env []
-  reft {v : int | [$k_0]}
diff --git a/liquid-fixpoint/tests/neg/NonLinear.fq b/liquid-fixpoint/tests/neg/NonLinear.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/NonLinear.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-
-bind 1 pig      : {v: int | []}
-bind 2 pigOut   : {v: int | [v = pig + 1]}
-
-bind 3 argAlice : {v: int | v = 10}
-bind 4 alice    : {v: int | [$k0[vk01 := argAlice][vk02 := v]] }
-
-bind 5 argBob   : {v: int | v = 20}
-bind 6 bob      : {v: int | [$k0[vk01 := argBob][vk02 := v]] }
-
-bind 10 vk01   : {v: int | []}
-
-constraint:
-  env [1; 2] 
-  lhs {v1 : int | [v1 = pigOut]} 
-  rhs {v1 : int | [$k0[vk01 := pig][vk02 := v1]]}
-  id 1 tag [2]
-
-constraint:
-  env [3; 4; 5; 6] 
-  lhs {v2 : int | []} 
-  rhs {v2 : int | [false]}
-  id 2 tag [2]
-
-wf:
-  env [10]
-  reft {vk02: int | [$k0]}
-
diff --git a/liquid-fixpoint/tests/neg/NonLinear.hs.fq b/liquid-fixpoint/tests/neg/NonLinear.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/NonLinear.hs.fq
+++ /dev/null
@@ -1,91 +0,0 @@
-
-bind 0 GHC.Num.$fNumInt##rlL : {VV##27 : (GHC.Num.Num  int) | []}
-bind 1 GHC.Types.EQ##6U : {VV##28 : GHC.Types.Ordering | [(VV##28 = GHC.Types.EQ##6U)]}
-bind 2 GHC.Types.LT##6S : {VV##29 : GHC.Types.Ordering | [(VV##29 = GHC.Types.LT##6S)]}
-bind 3 GHC.Types.GT##6W : {VV##30 : GHC.Types.Ordering | [(VV##30 = GHC.Types.GT##6W)]}
-bind 4 pig##amI : {VV##33 : int | []}
-bind 5 lq_anf$##dvQ : {lq_tmp$x##41 : int | [(lq_tmp$x##41 = (1  :  int))]}
-bind 6 zink##alG : {zink##0 : int | [(zink##0 = 5)]}
-bind 7 zonk##alH : {zonk##1 : int | [(zonk##1 = 67)]}
-bind 8 bob##alJ : {lq_tmp$x##65 : int | [$k_##38[VV##37:=lq_tmp$x##65][lq_tmp$x##67:=zonk##alH][pig##amI:=zonk##alH]]}
-bind 9 alice##alI : {lq_tmp$x##71 : int | [$k_##38[VV##37:=lq_tmp$x##71][pig##amI:=zink##alG][lq_tmp$x##73:=zink##alG]]}
-bind 10 VV##96 : {VV##96 : int | []}
-bind 11 zink##alG : {zink##0 : int | []}
-bind 12 VV##99 : {VV##99 : int | []}
-bind 13 lq_tmp$x##92 : {zonk##1 : int | []}
-bind 14 VV##102 : {VV##102 : int | []}
-bind 15 VV##104 : {VV##104 : int | []}
-bind 16 zonk##alH : {zonk##1 : int | []}
-bind 17 VV##107 : {VV##107 : int | []}
-bind 18 VV##109 : {VV##109 : int | [(VV##109 = (alice##alI + bob##alJ))]}
-bind 19 VV##111 : {VV##111 : int | [$k_##38[VV##37:=VV##111][lq_tmp$x##88:=VV##111][lq_tmp$x##67:=zonk##alH][lq_tmp$x##65:=VV##111][pig##amI:=zonk##alH];
-                                    (VV##111 = bob##alJ)]}
-bind 20 VV##113 : {VV##113 : int | [$k_##38[VV##37:=VV##113][lq_tmp$x##87:=VV##113][lq_tmp$x##71:=VV##113][pig##amI:=zink##alG][lq_tmp$x##73:=zink##alG];
-                                    (VV##113 = alice##alI)]}
-bind 21 VV##115 : {VV##115 : int | [(VV##115 = 5);
-                                    (VV##115 = zink##alG)]}
-bind 22 VV##117 : {VV##117 : int | [(VV##117 = 67);
-                                    (VV##117 = zonk##alH)]}
-bind 23 VV##119 : {VV##119 : int | [(VV##119 = (pig##amI + lq_anf$##dvQ))]}
-bind 24 VV##121 : {VV##121 : int | [(VV##121 = (1  :  int));
-                                    (VV##121 = lq_anf$##dvQ)]}
-bind 25 VV##123 : {VV##123 : int | [$k_##34[lq_tmp$x##57:=VV##123][VV##33:=VV##123];
-                                    (VV##123 = pig##amI)]}
-bind 26 VV##125 : {VV##125 : int | [(VV##125 = 1)]}
-bind 27 VV##33 : {VV##33 : int | [$k_##34]}
-bind 28 VV##37 : {VV##37 : int | [$k_##38]}
-
-
-
-
-constraint:
-  env [0; 1; 2; 3; 6; 7; 8; 9]
-  lhs {VV##F##1 : int | [(VV##F##1 = (alice##alI + bob##alJ))]}
-  rhs {VV##F##1 : int | [(VV##F##1 = 0)]}
-  id 1 tag [2]
-  // META constraint id 1 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 6; 7]
-  lhs {VV##F##2 : int | [(VV##F##2 = 5); (VV##F##2 = zink##alG)]}
-  rhs {VV##F##2 : int | [$k_##34[VV##115:=VV##F##2][lq_tmp$x##70:=VV##F##2][VV##F:=VV##F##2][VV##33:=VV##F##2]]}
-  id 2 tag [2]
-  // META constraint id 2 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 6; 7]
-  lhs {VV##F##3 : int | [(VV##F##3 = 67); (VV##F##3 = zonk##alH)]}
-  rhs {VV##F##3 : int | [$k_##34[lq_tmp$x##64:=VV##F##3][VV##117:=VV##F##3][VV##F:=VV##F##3][VV##33:=VV##F##3]]}
-  id 3 tag [2]
-  // META constraint id 3 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5]
-  lhs {VV##F##4 : int | [(VV##F##4 = (pig##amI + lq_anf$##dvQ))]}
-  rhs {VV##F##4 : int | [$k_##38[VV##37:=VV##F##4][VV##119:=VV##F##4][VV##F:=VV##F##4]]}
-  id 4 tag [1]
-  // META constraint id 4 : ()
-
-
-
-
-wf:
-  env [0; 1; 2; 3; 4]
-  reft {VV##37 : int | [$k_##38]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3]
-  reft {VV##33 : int | [$k_##34]}
-  // META wf : ()
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/neg/conj-rhs.fq b/liquid-fixpoint/tests/neg/conj-rhs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/conj-rhs.fq
+++ /dev/null
@@ -1,6 +0,0 @@
-constraint:
-  env []
-  lhs {v:int | true }
-  rhs {v:int | (0 = 1) && (1 = 0) }
-  id 1
-  tag [1]
diff --git a/liquid-fixpoint/tests/neg/elim-dep-00.fq b/liquid-fixpoint/tests/neg/elim-dep-00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/elim-dep-00.fq
+++ /dev/null
@@ -1,43 +0,0 @@
-
-qualif False(v:int) : (0 = 1)
-qualif Zero(v:int) : (0 = v)
-qualif One(v:int) : (1 = v)
-
-bind 1 x : {v:int | $k2 }
-
-// cut $k1 -- eliminating $k1 causes UNSOUNDNESS
-
-cut $k2
-
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 0 }
-  rhs {v : int | $k1   }
-  id 1 tag []
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | v = x + 1 }
-  rhs {v : int | $k1       }
-  id 2 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k1}
-  rhs {v : int | $k2}
-  id 3 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k2  }
-  rhs {v : int | 0 = v}
-  id 4 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k1}
-
-wf:
-  env [ ]
-  reft {v: int | $k2}
diff --git a/liquid-fixpoint/tests/neg/float-literal.fq b/liquid-fixpoint/tests/neg/float-literal.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/float-literal.fq
+++ /dev/null
@@ -1,6 +0,0 @@
-
-constraint:
-  env []
-  lhs {VV#F2 : a_aZU | []}
-  rhs {VV#F2 : a_aZU | [(VV#F2 >= 1.0)]}
-  id 2 tag [2]
diff --git a/liquid-fixpoint/tests/neg/float.fq b/liquid-fixpoint/tests/neg/float.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/float.fq
+++ /dev/null
@@ -1,11 +0,0 @@
-// adapted from LH test Propability.hs
-
-bind 50 x : {v1 : real | [(v1 = 0.2)]}
-bind 56 y : {v2 : real | [(v2 = 0.9 + x)]}
-
-constraint:
-  env [50;
-       56]
-  lhs {VV#F3 : real | []}
-  rhs {VV#F3 : real | [(y = 1.0)]}
-  id 3 tag [1]
diff --git a/liquid-fixpoint/tests/neg/literals.fq b/liquid-fixpoint/tests/neg/literals.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/literals.fq
+++ /dev/null
@@ -1,10 +0,0 @@
-//adapted from LH test Strings.hs
-
-constant lit#bar : (Str)
-constant lit#foo : (Str)
-
-constraint:
-  env []
-  lhs {VV#F1 : int | []}
-  rhs {VV#F1 : int | [(lit#bar = lit#foo)]}
-  id 1 tag [6]
diff --git a/liquid-fixpoint/tests/neg/pack00.fq b/liquid-fixpoint/tests/neg/pack00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/pack00.fq
+++ /dev/null
@@ -1,37 +0,0 @@
-
-bind 1 pig      : {v: int | []}
-
-bind 3 argAlice : {v: int | v = 10}
-bind 4 alice    : {v: int | [$k0[vk01 := argAlice][vk02 := v]] }
-
-bind 5 argBob   : {v: int | v = 20}
-bind 6 bob      : {v: int | [$k1[vk11 := argBob][vk12 := v]] }
-
-bind 10 vk01   : {v: int | []}
-bind 11 vk11   : {v: int | []}
-
-constraint:
-  env [1]
-  lhs {v1 : int | [v1 = pig + 1]}
-  rhs {v1 : int | [$k0[vk01 := pig][vk02 := v1]]}
-  id 1 tag [2]
-
-constraint:
-  env [1]
-  lhs {v2 : int | [v2 = pig + 1]}
-  rhs {v2 : int | [$k1[vk11 := pig][vk12 := v2]]}
-  id 2 tag [2]
-
-constraint:
-  env [3; 4; 5; 6]
-  lhs {v3 : int | [v3 = alice + bob]}
-  rhs {v3 : int | [v3 = 0]}
-  id 3 tag [2]
-
-wf:
-  env [10]
-  reft {vk02: int | [$k0]}
-
-wf:
-  env [11]
-  reft {vk12: int | [$k1]}
diff --git a/liquid-fixpoint/tests/neg/pack01.fq b/liquid-fixpoint/tests/neg/pack01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/pack01.fq
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-bind 1 pig      : {v: int | []}
-
-bind 3 argAlice : {v: int | v = 10}
-bind 4 alice    : {v: int | [$k0[vk01 := argAlice][vk02 := v]] }
-
-bind 5 argBob   : {v: int | v = 20}
-bind 6 bob      : {v: int | [$k1[vk11 := argBob][vk12 := v]] }
-
-bind 10 vk01   : {v: int | []}
-bind 11 vk11   : {v: int | []}
-
-// This is a version of the UNSAFE pack00.fq + the pack annotations,
-// which shouldn't magically make it safe.
-
-pack $k0 : 1
-pack $k1 : 1
-
-
-constraint:
-  env [1]
-  lhs {v1 : int | [v1 = pig + 1]}
-  rhs {v1 : int | [$k0[vk01 := pig][vk02 := v1]]}
-  id 1 tag [2]
-
-constraint:
-  env [1]
-  lhs {v2 : int | [v2 = pig + 1]}
-  rhs {v2 : int | [$k1[vk11 := pig][vk12 := v2]]}
-  id 2 tag [2]
-
-constraint:
-  env [3; 4; 5; 6]
-  lhs {v3 : int | [v3 = alice + bob]}
-  rhs {v3 : int | [v3 = 0]}
-  id 3 tag [2]
-
-wf:
-  env [10]
-  reft {vk02: int | [$k0]}
-
-wf:
-  env [11]
-  reft {vk12: int | [$k1]}
diff --git a/liquid-fixpoint/tests/neg/poly0.fq b/liquid-fixpoint/tests/neg/poly0.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/poly0.fq
+++ /dev/null
@@ -1,15 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(0, [int ; int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(1, [int; int; @(0)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 0 ]}
-
-constraint:
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV != x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/neg/poly1.fq b/liquid-fixpoint/tests/neg/poly1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/poly1.fq
+++ /dev/null
@@ -1,17 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(2, [int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(2, [int; @(0)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 ]}
-
-constraint: 
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV != x ] }
-  id 1 tag [1]
-
-
diff --git a/liquid-fixpoint/tests/neg/poly2.fq b/liquid-fixpoint/tests/neg/poly2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/poly2.fq
+++ /dev/null
@@ -1,15 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(0, [int ; int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(2, [@(0); int; int; @(0); @(1)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 0 0 0 ]}
-
-constraint:
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV != x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/neg/test00.fq b/liquid-fixpoint/tests/neg/test00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test00.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-
-qualif Zog(v:a) : (10 <= v)
-qualif Bog(v:a, x:a) : (x <= v)
-
-bind 0 a : {v: int | $k0}
-
-constraint:
-  env [ ]
-  lhs {v : int | (v = 9)}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0
-      ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/neg/test00.hs.fq b/liquid-fixpoint/tests/neg/test00.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test00.hs.fq
+++ /dev/null
@@ -1,286 +0,0 @@
-qualif Fst(v : @(1), y : @(0)): (v = fst([y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.spec" (line 29, column 8)
-qualif Snd(v : @(1), y : @(0)): (v = snd([y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.spec" (line 30, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) > 0)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 13, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) = 0)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 14, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) = 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 16, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) >= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 17, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) > 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 18, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) = len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 20, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) >= len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 21, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) > len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 22, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) <= len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 23, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) < len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 24, column 8)
-qualif EqLen(v : int, xs : [@(0)]): (v = len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 26, column 8)
-qualif LenEq(v : [@(0)], x : int): (x = len([v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 27, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x + 1)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 28, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x - 1)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 29, column 8)
-qualif LenAcc(v : int, xs : [@(0)], n : int): (v = (len([xs]) + n)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 30, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 3, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 4, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 5, column 8)
-qualif Bot(v : bool): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 6, column 8)
-qualif Bot(v : int): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 7, column 8)
-qualif CmpZ(v : @(0)): (v < 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 9, column 8)
-qualif CmpZ(v : @(0)): (v <= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 10, column 8)
-qualif CmpZ(v : @(0)): (v > 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 11, column 8)
-qualif CmpZ(v : @(0)): (v >= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 12, column 8)
-qualif CmpZ(v : @(0)): (v = 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 13, column 8)
-qualif CmpZ(v : @(0)): (v != 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 14, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v < x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 16, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v <= x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 17, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v > x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 18, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v >= x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 19, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v = x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 20, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v != x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 21, column 8)
-qualif One(v : int): (v = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 28, column 8)
-qualif True(v : bool): (? v) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 29, column 8)
-qualif False(v : bool): (~ ((? v))) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 30, column 8)
-qualif True1(v : GHC.Types.Bool): (? Prop([v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 31, column 8)
-qualif False1(v : GHC.Types.Bool): (~ ((? Prop([v])))) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 32, column 8)
-qualif Papp(v : @(0), p : (Pred  @(0))): (? papp1([p;
-                                                   v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 35, column 8)
-qualif Papp2(v : @(1), x : @(0), p : (Pred  @(1)  @(0))): (? papp2([p;
-                                                                    v;
-                                                                    x])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 38, column 8)
-qualif Papp3(v : @(2), x : @(0), y : @(1), p : (Pred  @(2)  @(0)  @(1))): (? papp3([p;
-                                                                                    v;
-                                                                                    x;
-                                                                                    y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 41, column 8)
-
-
-
-
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant addrLen : (func(0, [int; int]))
-constant xsListSelector : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant GHC.Types.False$35$68 : (GHC.Types.Bool)
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(6));
-                           @(3);
-                           @(4);
-                           @(5);
-                           @(7);
-                           bool]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant autolen : (func(1, [@(0); int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant null : (func(1, [[@(0)]; bool]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant xListSelector : (func(1, [[@(0)]; @(0)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(1, [(Pred  @(0)); @(0); bool]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant GHC.Types.I$35$$35$6c : (func(0, [int; int]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-constant GHC.Types.True$35$6u : (GHC.Types.Bool)
-
-
-bind 0 GHC.Types.False$35$68 : {VV$35$159 : GHC.Types.Bool | []}
-bind 1 GHC.Types.True$35$6u : {VV$35$161 : GHC.Types.Bool | []}
-bind 2 GHC.Classes.$36$fOrdInt$35$rni : {VV$35$166 : (GHC.Classes.Ord  int) | []}
-bind 3 GHC.Types.EQ$35$6U : {VV$35$167 : GHC.Types.Ordering | [(VV$35$167 = GHC.Types.EQ$35$6U)]}
-bind 4 GHC.Types.LT$35$6S : {VV$35$168 : GHC.Types.Ordering | [(VV$35$168 = GHC.Types.LT$35$6S)]}
-bind 5 GHC.Types.GT$35$6W : {VV$35$169 : GHC.Types.Ordering | [(VV$35$169 = GHC.Types.GT$35$6W)]}
-bind 6 GHC.Types.True$35$6u : {v$35$4 : GHC.Types.Bool | [(? Prop([v$35$4]))]}
-bind 7 GHC.Types.False$35$68 : {v$35$5 : GHC.Types.Bool | [(~ ((? Prop([v$35$5]))))]}
-bind 8 GHC.Types.False$35$68 : {v$35$5 : GHC.Types.Bool | [(~ ((? Prop([v$35$5]))))]}
-bind 9 GHC.Types.$91$$93$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 10 GHC.Types.True$35$6u : {v$35$4 : GHC.Types.Bool | [(? Prop([v$35$4]))]}
-bind 11 GHC.Types.GT$35$6W : {VV$35$214 : GHC.Types.Ordering | [(cmp([VV$35$214]) = GHC.Types.GT$35$6W)]}
-bind 12 GHC.Types.LT$35$6S : {VV$35$215 : GHC.Types.Ordering | [(cmp([VV$35$215]) = GHC.Types.LT$35$6S)]}
-bind 13 GHC.Types.EQ$35$6U : {VV$35$216 : GHC.Types.Ordering | [(cmp([VV$35$216]) = GHC.Types.EQ$35$6U)]}
-bind 14 GHC.Base.Nothing$35$r1d : {VV : func(1, [(GHC.Base.Maybe  @(0))]) | []}
-bind 15 z$35$a10N : {VV$35$221 : int | [$k_$35$222]}
-bind 16 lq_anf$36$_d116 : {lq_tmp$36$x$35$229 : int | [(lq_tmp$36$x$35$229 = (100  :  int))]}
-bind 17 lq_anf$36$_d117 : {lq_tmp$36$x$35$236 : GHC.Types.Bool | [((? Prop([lq_tmp$36$x$35$236])) <=> (z$35$a10N >= lq_anf$36$_d116))]}
-bind 18 lq_anf$36$_d118 : {lq_tmp$36$x$35$254 : int | [(lq_tmp$36$x$35$254 = (0  :  int))]}
-bind 19 Test0.x$35$rYP : {VV$35$250 : int | [$k_$35$251]}
-bind 20 lq_anf$36$_d119 : {lq_tmp$36$x$35$269 : int | [(lq_tmp$36$x$35$269 = (0  :  int))]}
-bind 21 lq_anf$36$_d11a : {lq_tmp$36$x$35$275 : GHC.Types.Bool | [((? Prop([lq_tmp$36$x$35$275])) <=> (Test0.x$35$rYP > lq_anf$36$_d119))]}
-bind 22 lq_anf$36$_d11b : {lq_tmp$36$x$35$291 : GHC.Types.Bool | [(lq_tmp$36$x$35$291 = lq_anf$36$_d11a)]}
-bind 23 lq_anf$36$_d11b : {lq_tmp$36$x$35$293 : GHC.Types.Bool | [(lq_tmp$36$x$35$293 = lq_anf$36$_d11a)]}
-bind 24 lq_anf$36$_d11b : {lq_tmp$36$x$35$293 : GHC.Types.Bool | [(lq_tmp$36$x$35$293 = lq_anf$36$_d11a);
-                                                                  (~ ((? Prop([lq_tmp$36$x$35$293]))));
-                                                                  (~ ((? Prop([lq_tmp$36$x$35$293]))));
-                                                                  (~ ((? Prop([lq_tmp$36$x$35$293]))))]}
-bind 25 lq_anf$36$_d11b : {lq_tmp$36$x$35$299 : GHC.Types.Bool | [(lq_tmp$36$x$35$299 = lq_anf$36$_d11a)]}
-bind 26 lq_anf$36$_d11b : {lq_tmp$36$x$35$299 : GHC.Types.Bool | [(lq_tmp$36$x$35$299 = lq_anf$36$_d11a);
-                                                                  (? Prop([lq_tmp$36$x$35$299]));
-                                                                  (? Prop([lq_tmp$36$x$35$299]));
-                                                                  (? Prop([lq_tmp$36$x$35$299]))]}
-bind 27 Test0.prop_abs$35$r10h : {VV$35$265 : GHC.Types.Bool | [$k_$35$266]}
-bind 28 VV$35$310 : {VV$35$310 : GHC.Types.Bool | [$k_$35$226[lq_tmp$36$x$35$307:=Test0.x$35$rYP][lq_tmp$36$x$35$305:=VV$35$310][VV$35$225:=VV$35$310][z$35$a10N:=Test0.x$35$rYP]]}
-bind 29 VV$35$310 : {VV$35$310 : GHC.Types.Bool | [$k_$35$226[lq_tmp$36$x$35$307:=Test0.x$35$rYP][lq_tmp$36$x$35$305:=VV$35$310][VV$35$225:=VV$35$310][z$35$a10N:=Test0.x$35$rYP]]}
-bind 30 VV$35$313 : {VV$35$313 : int | [(VV$35$313 = Test0.x$35$rYP)]}
-bind 31 VV$35$313 : {VV$35$313 : int | [(VV$35$313 = Test0.x$35$rYP)]}
-bind 32 VV$35$316 : {VV$35$316 : GHC.Types.Bool | [(VV$35$316 = GHC.Types.False$35$68)]}
-bind 33 VV$35$316 : {VV$35$316 : GHC.Types.Bool | [(VV$35$316 = GHC.Types.False$35$68)]}
-bind 34 VV$35$319 : {VV$35$319 : int | [(VV$35$319 = lq_anf$36$_d119)]}
-bind 35 VV$35$319 : {VV$35$319 : int | [(VV$35$319 = lq_anf$36$_d119)]}
-bind 36 VV$35$322 : {VV$35$322 : int | [(VV$35$322 = Test0.x$35$rYP)]}
-bind 37 VV$35$322 : {VV$35$322 : int | [(VV$35$322 = Test0.x$35$rYP)]}
-bind 38 VV$35$325 : {VV$35$325 : int | [(VV$35$325 = 0)]}
-bind 39 VV$35$325 : {VV$35$325 : int | [(VV$35$325 = 0)]}
-bind 40 VV$35$328 : {VV$35$328 : int | []}
-bind 41 VV$35$328 : {VV$35$328 : int | []}
-bind 42 VV$35$331 : {VV$35$331 : int | [(VV$35$331 = lq_anf$36$_d118)]}
-bind 43 VV$35$331 : {VV$35$331 : int | [(VV$35$331 = lq_anf$36$_d118)]}
-bind 44 VV$35$334 : {VV$35$334 : int | [(VV$35$334 = 0)]}
-bind 45 VV$35$334 : {VV$35$334 : int | [(VV$35$334 = 0)]}
-bind 46 VV$35$337 : {VV$35$337 : GHC.Types.Bool | [(? Prop([VV$35$337]))]}
-bind 47 VV$35$337 : {VV$35$337 : GHC.Types.Bool | [(? Prop([VV$35$337]))]}
-bind 48 VV$35$340 : {VV$35$340 : GHC.Types.Bool | [(VV$35$340 = lq_anf$36$_d117)]}
-bind 49 VV$35$340 : {VV$35$340 : GHC.Types.Bool | [(VV$35$340 = lq_anf$36$_d117)]}
-bind 50 VV$35$343 : {VV$35$343 : int | [(VV$35$343 = lq_anf$36$_d116)]}
-bind 51 VV$35$343 : {VV$35$343 : int | [(VV$35$343 = lq_anf$36$_d116)]}
-bind 52 VV$35$346 : {VV$35$346 : int | [(VV$35$346 = z$35$a10N)]}
-bind 53 VV$35$346 : {VV$35$346 : int | [(VV$35$346 = z$35$a10N)]}
-bind 54 VV$35$349 : {VV$35$349 : int | [(VV$35$349 = 100)]}
-bind 55 VV$35$349 : {VV$35$349 : int | [(VV$35$349 = 100)]}
-bind 56 VV$35$282 : {VV$35$282 : int | [$k_$35$283]}
-bind 57 VV$35$265 : {VV$35$265 : GHC.Types.Bool | [$k_$35$266]}
-bind 58 VV$35$250 : {VV$35$250 : int | [$k_$35$251]}
-bind 59 VV$35$221 : {VV$35$221 : int | [$k_$35$222]}
-bind 60 VV$35$225 : {VV$35$225 : GHC.Types.Bool | [$k_$35$226]}
-
-
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       19;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       8;
-       9;
-       25;
-       10;
-       26;
-       11;
-       12;
-       13;
-       14;
-       30]
-  lhs {VV$35$F2 : int | [(VV$35$F2 = Test0.x$35$rYP)]}
-  rhs {VV$35$F2 : int | [$k_$35$222[VV$35$221:=VV$35$F2][lq_tmp$36$x$35$304:=VV$35$F2][VV$35$313:=VV$35$F2][VV$35$F:=VV$35$F2]]}
-  id 2 tag [3]
-  // META constraint id 2 : tests/neg/test00.hs:8:30
-
-
-constraint:
-  env [0; 1; 2; 18; 3; 4; 5; 6; 7; 8; 40; 9; 10; 11; 12; 13; 14]
-  lhs {VV$35$F6 : int | []}
-  rhs {VV$35$F6 : int | [$k_$35$251[VV$35$328:=VV$35$F6][VV$35$250:=VV$35$F6][VV$35$F:=VV$35$F6]]}
-  id 6 tag [2]
-  // META constraint id 6 : tests/neg/test00.hs:6:1-12
-
-
-constraint:
-  env [0;
-       16;
-       48;
-       1;
-       17;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15]
-  lhs {VV$35$F8 : GHC.Types.Bool | [(VV$35$F8 = lq_anf$36$_d117)]}
-  rhs {VV$35$F8 : GHC.Types.Bool | [(? Prop([VV$35$F8]))]}
-  id 8 tag [1]
-  // META constraint id 8 : tests/neg/test00.hs:11:23-35
-
-
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14]
-  reft {VV$35$221 : int | [$k_$35$222]}
-  // META wf : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14]
-  reft {VV$35$250 : int | [$k_$35$251]}
-  // META wf : <no location info>
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/neg/test00a.fq b/liquid-fixpoint/tests/neg/test00a.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test00a.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-
-qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | true}
-bind 1 y : {v : int | true}
-bind 2 z : {v : int | true}
-
-constraint:
-  env [0]
-  lhs {v : int | (x = 9)}
-  rhs {v : int | $k0[v:=x]}
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | y = 20}
-  rhs {v : int | $k0[v:=y]}
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[v:=z]}
-  rhs {v : int | 10 <= z}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/neg/test1.fq b/liquid-fixpoint/tests/neg/test1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test1.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | v = 9}
-bind 1 y : {v : int | v = 20}
-bind 2 a : {v : int | $k0    }
-      
-constraint:
-  env [0]
-  lhs {v : int | v = x}
-  rhs {v : int | $k0   }
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | v = y}
-  rhs {v : int | $k0   }
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | v = a  }
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/neg/test2.fq b/liquid-fixpoint/tests/neg/test2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test2.fq
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-qualif Zog(v:a): (10 <= v)
-
-// But you may use this one
-qualif Pog(v:a): (0 <= v)
-
-bind 0 x: {v: int | v = 9 }
-bind 1 a: {v: int | $k1    }
-bind 2 y: {v: int | v = 20}
-bind 3 b: {v: int | $k1    }
-bind 4 c: {v: int | $k0    }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 0}
-  rhs {v : int | $k1 }
-  id 0 tag []
-
-
-constraint:
-  env [ 0; 1]
-  lhs {v : int | v = x + a}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [2; 3]
-  lhs {v : int | v = y + b}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k0}
-  rhs {v : int | $k1}
-  id 3 tag []
-
-constraint:
-  env [4]
-  lhs {v : int | v = c  }
-  rhs {v : int | 10 <= v}
-  id 4 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
-wf:
-  env [ ]
-  reft {v: int | $k1}
diff --git a/liquid-fixpoint/tests/neg/test3.fq b/liquid-fixpoint/tests/neg/test3.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/neg/test3.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-
-qualif Zog(v:a, z:b) : (v = z)
-
-bind 0 x : {v : int | true}
-bind 1 q : {v : int | true}
-bind 2 y : {v : int | v = 42}
-
-constraint:
-  env [1]
-  lhs {v : int | v = q}
-  rhs {v : int | $k0[x:=q] }
-  id 1 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[x:=y]}
-  rhs {v : int | v = 10}
-  id 2 tag []
-
-wf:
-  env [0]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/pos/LogicCurry1.hs.fq b/liquid-fixpoint/tests/pos/LogicCurry1.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/LogicCurry1.hs.fq
+++ /dev/null
@@ -1,245 +0,0 @@
-fixpoint "--allowho"
-
-qualif Fst(v : @(1), y : @(0)): ((v = (fst y))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.spec" (line 28, column 8)
-qualif Snd(v : @(1), y : @(0)): ((v = (snd y))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.spec" (line 29, column 8)
-qualif Auto(v##1 : int, n : int, x : int): ((v##1 = (ack n x))) // "/Users/rjhala/research/stack/liquidhaskell/tests/pos/LogicCurry1.hs" (line 10, column 1)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((v <=> ((len xs) > 0))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 13, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((v <=> ((len xs) = 0))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 14, column 8)
-qualif ListZ(v : [@(0)]): (((len v) = 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 16, column 8)
-qualif ListZ(v : [@(0)]): (((len v) >= 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 17, column 8)
-qualif ListZ(v : [@(0)]): (((len v) > 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 18, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) = (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 20, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) >= (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 21, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) > (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 22, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) <= (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 23, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) < (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 24, column 8)
-qualif EqLen(v : int, xs : [@(0)]): ((v = (len xs))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 26, column 8)
-qualif LenEq(v : [@(0)], x : int): ((x = (len v))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 27, column 8)
-qualif LenDiff(v : [@(0)], x : int): (((len v) = (x + 1))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 28, column 8)
-qualif LenDiff(v : [@(0)], x : int): (((len v) = (x - 1))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 29, column 8)
-qualif LenAcc(v : int, xs : [@(0)], n : int): ((v = ((len xs) + n))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/Base.hquals" (line 30, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 3, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 4, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 5, column 8)
-qualif Bot(v : bool): ((0 = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 6, column 8)
-qualif Bot(v : int): ((0 = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 7, column 8)
-qualif CmpZ(v : @(0)): ((v < 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 9, column 8)
-qualif CmpZ(v : @(0)): ((v <= 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 10, column 8)
-qualif CmpZ(v : @(0)): ((v > 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 11, column 8)
-qualif CmpZ(v : @(0)): ((v >= 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 12, column 8)
-qualif CmpZ(v : @(0)): ((v = 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 13, column 8)
-qualif CmpZ(v : @(0)): ((v != 0)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 14, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v < x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 16, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v <= x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 17, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v > x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 18, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v >= x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 19, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v = x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 20, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v != x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 21, column 8)
-qualif One(v : int): ((v = 1)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 28, column 8)
-qualif True1(v : GHC.Types.Bool): (v) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 29, column 8)
-qualif False1(v : GHC.Types.Bool): ((~ (v))) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 30, column 8)
-qualif Papp(v : @(0), p : (Pred  @(0))): ((papp1 p v)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 34, column 8)
-qualif Papp2(v : @(1), x : @(0), p : (Pred  @(1)  @(0))): ((papp2 p v x)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 37, column 8)
-qualif Papp3(v : @(2), x : @(0), y : @(1), p : (Pred  @(2)  @(0)  @(1))): ((papp3 p v x y)) // "/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2016-05-21/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.hquals" (line 39, column 8)
-
-
-
-
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant addrLen : (func(0, [Str; int]))
-constant papp5 : (func(10, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4));
-                            @(5);
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            bool]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant GHC.Types.False##68 : (bool)
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant GHC.Types.True##6u : (bool)
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant GHC.Types.LT##6S : (GHC.Types.Ordering)
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(3));
-                           @(4);
-                           @(5);
-                           @(6);
-                           @(7);
-                           bool]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant GHC.Types.GT##6W : (GHC.Types.Ordering)
-constant autolen : (func(1, [@(0); int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant head : (func(1, [[@(0)]; @(0)]))
-constant null : (func(1, [[@(0)]; bool]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant papp7 : (func(14, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            @(12);
-                            @(13);
-                            bool]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant ack : (func(0, [int; int; int]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant papp6 : (func(12, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            bool]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant GHC.Err.undefined##02v : (func(1, [@(0)]))
-constant strLen : (func(0, [[Char]; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(2, [(Pred  @(0)); @(1); bool]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant tail : (func(1, [[@(0)]; [@(0)]]))
-constant GHC.Types.EQ##6U : (GHC.Types.Ordering)
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant Main.ack##rjG : (func(0, [int; int; int]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-
-
-distinct GHC.Types.False##68 : (bool)
-distinct GHC.Types.True##6u : (bool)
-distinct GHC.Types.LT##6S : (GHC.Types.Ordering)
-distinct GHC.Types.GT##6W : (GHC.Types.Ordering)
-distinct GHC.Types.EQ##6U : (GHC.Types.Ordering)
-
-
-bind 0 GHC.Err.undefined##02v : {VV : func(1, [@(0)]) | []}
-bind 1 GHC.Types.True##6u : {VV##9 : bool | [(VV##9 = GHC.Types.True##6u)]}
-bind 2 GHC.Types.False##68 : {VV##10 : bool | [(VV##10 = GHC.Types.False##68)]}
-bind 3 GHC.Types.EQ##6U : {VV##11 : GHC.Types.Ordering | [(VV##11 = GHC.Types.EQ##6U)]}
-bind 4 GHC.Types.LT##6S : {VV##12 : GHC.Types.Ordering | [(VV##12 = GHC.Types.LT##6S)]}
-bind 5 GHC.Types.GT##6W : {VV##13 : GHC.Types.Ordering | [(VV##13 = GHC.Types.GT##6W)]}
-bind 6 Main.ack##rjG : {VV : func(0, [int; int; int]) | []}
-bind 7 Main.ack##rjG : {VV : func(0, [int; int; int]) | []}
-bind 8 m##alH : {VV##41 : int | []}
-bind 9 Main.bar##rlx : {VV : func(0, [int; int; int]) | []}
-bind 10 VV##55 : {VV##55 : int | []}
-bind 11 m##alH : {VV##57 : int | []}
-bind 12 VV##58 : {VV##58 : int | []}
-bind 13 lq_tmp$x##51 : {v : int | []}
-bind 14 VV##61 : {VV##61 : int | []}
-bind 15 VV##63 : {VV##63 : int | []}
-bind 16 lq_tmp$x##40 : {v : int | []}
-bind 17 VV##66 : {VV##66 : int | [(VV##66 = (ack m##alH lq_tmp$x##40))]}
-bind 18 VV##68 : {VV##68 : int | [(VV##68 = m##alH)]}
-bind 19 VV##70 : {VV##70 : int | []}
-bind 20 lq_tmp$x##17 : {VV##72 : int | []}
-bind 21 VV##73 : {VV##73 : int | []}
-bind 22 lq_tmp$x##19 : {VV##75 : int | []}
-bind 23 VV##76 : {VV##76 : int | [$k_##31[lq_tmp$x##22:=lq_tmp$x##17][VV##30:=VV##76][lq_tmp$x##26:=lq_tmp$x##19][lq_tmp$x##35:=VV##76]]}
-bind 24 VV##23 : {VV##23 : int | [$k_##24]}
-bind 25 lq_tmp$x##22 : {VV##23 : int | [$k_##24]}
-bind 26 VV##27 : {VV##27 : int | [$k_##28]}
-bind 27 lq_tmp$x##26 : {VV##27 : int | [$k_##28]}
-bind 28 VV##30 : {VV##30 : int | [$k_##31]}
-
-
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8]
-  lhs {VV##F##1 : func(0, [int; int]) | [(VV##F##1 = (ack m##alH))]}
-  rhs {VV##F##1 : func(0, [int; int]) | [(VV##F##1 = (ack m##alH))]}
-  id 1 tag [2]
-  // META constraint id 1 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6]
-  lhs {VV##F##2 : int | []}
-  rhs {VV##F##2 : int | [$k_##24[VV##70:=VV##F##2][VV##23:=VV##F##2][VV##F:=VV##F##2][lq_tmp$x##33:=VV##F##2]]}
-  id 2 tag [1]
-  // META constraint id 2 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 20]
-  lhs {VV##F##3 : int | []}
-  rhs {VV##F##3 : int | [$k_##28[lq_tmp$x##22:=lq_tmp$x##17][lq_tmp$x##34:=VV##F##3][VV##27:=VV##F##3][VV##73:=VV##F##3][VV##F:=VV##F##3]]}
-  id 3 tag [1]
-  // META constraint id 3 : ()
-
-
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 25]
-  reft {VV##27 : int | [$k_##28]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 25; 27]
-  reft {VV##30 : int | [$k_##31]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6]
-  reft {VV##23 : int | [$k_##24]}
-  // META wf : ()
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/pos/NonLinear-pack.fq b/liquid-fixpoint/tests/pos/NonLinear-pack.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/NonLinear-pack.fq
+++ /dev/null
@@ -1,40 +0,0 @@
-
-bind 1 pig      : {v: int | []}
-
-bind 3 argAlice : {v: int | v = 10}
-bind 4 alice    : {v: int | [$k0[vk01 := argAlice][vk02 := v]] }
-
-bind 5 argBob   : {v: int | v = 20}
-bind 6 bob      : {v: int | [$k1[vk11 := argBob][vk12 := v]] }
-
-bind 10 vk01   : {v: int | []}
-bind 11 vk11   : {v: int | []}
-
-pack $k0 : 1
-pack $k1 : 1
-
-constraint:
-  env [1]
-  lhs {v1 : int | [v1 = pig + 1]}
-  rhs {v1 : int | [$k0[vk01 := pig][vk02 := v1]]}
-  id 1 tag [2]
-
-constraint:
-  env [1]
-  lhs {v2 : int | [v2 = pig + 1]}
-  rhs {v2 : int | [$k1[vk11 := pig][vk12 := v2]]}
-  id 2 tag [2]
-
-constraint:
-  env [3; 4; 5; 6]
-  lhs {v3 : int | [v3 = alice + bob]}
-  rhs {v3 : int | [v3 = 32]}
-  id 3 tag [2]
-
-wf:
-  env [10]
-  reft {vk02: int | [$k0]}
-
-wf:
-  env [11]
-  reft {vk12: int | [$k1]}
diff --git a/liquid-fixpoint/tests/pos/bad-subst00.fq b/liquid-fixpoint/tests/pos/bad-subst00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bad-subst00.fq
+++ /dev/null
@@ -1,26 +0,0 @@
-qualif Zog(v:a) : (10 <= v)
-qualif Bog(v:a, x:a) : (x <= v)
-
-bind 0 a : {v: int | $k0[zogbert := pikachu] }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 10}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/bad-subst01.fq b/liquid-fixpoint/tests/pos/bad-subst01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bad-subst01.fq
+++ /dev/null
@@ -1,34 +0,0 @@
-// fixpoint "--eliminate=some"
-
-
-qualif Zog(v:a) : (10 <= v)
-qualif Bog(v:a, x:a) : (x <= v)
-
-bind 0 a : {v: int | $k0 }
-
-// this is a junk binder that adds a bogus [param := zogbert] substitution
-// at each USE of k0 causing eliminate to crash.
-
-bind 10 zogbert : {v : int | [] }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 10}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ 10 ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/bad-subst02.fq b/liquid-fixpoint/tests/pos/bad-subst02.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bad-subst02.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-fixpoint "--eliminate=none"
-
-qualif Eq(v:a, x:a): (v = x)
-
-bind 0 x0 : {v: a0 | true }
-bind 1 x1 : {v: a1 | true }
-
-constraint:
-  env [ 1 ]
-  lhs {v : a1 | v = x1 }
-  rhs {v : a1 | $k0[v0 := v][x0 := x1] }
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : a2 | $k0[v0 := v][x0 := x2] }
-  rhs {v : a2 | 2 < 3 + 4 }
-  id 2 tag []
-
-wf:
-  env [ 0 ]
-  reft {v0 : a0 | $k0 }
diff --git a/liquid-fixpoint/tests/pos/bool00.fq b/liquid-fixpoint/tests/pos/bool00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bool00.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-qualif Zog(v:a) : (10 <= v)
-qualif Bog(v:a, x:a) : (x <= v)
-
-bind 0 a  : {v: int  | $k0}
-bind 1 tt : {v: bool | v}
-
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 10}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/bool03.fq b/liquid-fixpoint/tests/pos/bool03.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bool03.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-
-//qualif LE(v:a, x:a): (bool_to_int x <= bool_to_int v)
-
-qualif LE(v:a, x:a): (x <= v)
-
-constant lit$36$not$45$the$45$hippopotamus : (Str)
-constant lit#cat : (Str)
-constant lit#dog : (Str)
-
-bind 1 bx : {v: bool | true }
-
-bind 2 zx : {v: bool | lit#cat /= lit#dog }
-
-constraint:
-  env [ 1 ]
-  lhs {v : bool | bx <= v }
-  rhs {v : bool | $k1     }
-  id 1 tag []
-
-constraint:
-  env [ 1; 2 ]
-  lhs {v : bool | $k1 }
-  rhs {v : bool | bx <= v }
-  id 2 tag []
-
-wf:
-  env [1]
-  reft {v : bool | $k1 }
diff --git a/liquid-fixpoint/tests/pos/bool04.fq b/liquid-fixpoint/tests/pos/bool04.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/bool04.fq
+++ /dev/null
@@ -1,20 +0,0 @@
-fixpoint "--eliminate=some"
-
-bind 1 bx : {v: int  | true }
-bind 2 by : {v: bool | true }
-
-constraint:
-  env [ 2 ]
-  lhs {v : int | true }
-  rhs {v : int | $k1[bx := by] }
-  id 1 tag []
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | $k1    }
-  rhs {v : int | v <= v + 1 }
-  id 2 tag []
-
-wf:
-  env [1]
-  reft {v : int | $k1 }
diff --git a/liquid-fixpoint/tests/pos/conj-rhs.fq b/liquid-fixpoint/tests/pos/conj-rhs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/conj-rhs.fq
+++ /dev/null
@@ -1,6 +0,0 @@
-constraint:
-  env []
-  lhs {v:int | true }
-  rhs {v:int | (0 < 1) && (1 > 0) }
-  id 1
-  tag [1]
diff --git a/liquid-fixpoint/tests/pos/cut-keyword.fq b/liquid-fixpoint/tests/pos/cut-keyword.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/cut-keyword.fq
+++ /dev/null
@@ -1,3 +0,0 @@
-
-cut $k__151
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
diff --git a/liquid-fixpoint/tests/pos/elim00.fq b/liquid-fixpoint/tests/pos/elim00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/elim00.fq
+++ /dev/null
@@ -1,1495 +0,0 @@
-fixpoint "--defunct"
-
-// trick is to do it without these
-qualif Cmp(v : @(0), x : @(0)): ((v > x)) // "tests/todo/elim00.hs.fq" (line 1, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v = x)) // "tests/todo/elim00.hs.fq" (line 2, column 8)
-
-
-constant Control.Exception.Base.irrefutPatError##09 : (func(1, [int;
-                                                                @(0)]))
-constant GHC.Base..##r2C : (func(3, [func(0, [@(0); @(1)]);
-                                     func(0, [@(2); @(0)]);
-                                     @(2);
-                                     @(1)]))
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant GHC.Tuple.$40$$44$$44$$41$$35$$35$76 : (func(3, [@(0);
-                                                          @(1);
-                                                          @(2);
-                                                          (Tuple  @(0)  @(1)  @(2))]))
-constant GHC.Real.D$58$Integral$35$$35$rWH : (func(1, [func(0, [@(0);
-                                                                @(0);
-                                                                @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); @(0)]);
-                                                       func(0, [@(0); @(0); (Tuple  @(0)  @(0))]);
-                                                       func(0, [@(0); @(0); (Tuple  @(0)  @(0))]);
-                                                       func(0, [@(0); int]);
-                                                       (GHC.Real.Integral  @(0))]))
-constant addrLen : (func(0, [int; int]))
-constant papp5 : (func(10, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4));
-                            @(5);
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            bool]))
-constant xsListSelector : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant Elim.foo##rlD : (func(0, [Elim.Foo; Elim.Foo]))
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant GHC.Integer.Type.smallInteger##0Z : (func(0, [int; int]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant GHC.Base.Just##r1e : (func(1, [@(0);
-                                        (GHC.Base.Maybe  @(0))]))
-constant Elim.xx##rlB : (func(0, [Elim.Foo; int]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant GHC.Prim.$43$$35$$35$$35$98 : (func(0, [int; int; int]))
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant GHC.Types.LT##6S : (GHC.Types.Ordering)
-constant GHC.Prim.$60$$35$$35$$35$9q : (func(0, [int; int; int]))
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(3));
-                           @(4);
-                           @(5);
-                           @(6);
-                           @(7);
-                           bool]))
-constant Elim.PP##rlx : (func(2, [@(0);
-                                  @(1);
-                                  (Elim.Pair  @(0)  @(1))]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant GHC.Types.GT##6W : (GHC.Types.Ordering)
-constant GHC.Prim.$45$$35$$35$$35$99 : (func(0, [int; int; int]))
-constant GHC.Types.$58$$35$$35$64 : (func(1, [@(0);
-                                              [@(0)];
-                                              [@(0)]]))
-constant autolen : (func(1, [@(0); int]))
-constant GHC.Types.I###6c : (func(0, [int; int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant xx : (func(0, [Elim.Foo; int]))
-constant null : (func(1, [[@(0)]; bool]))
-constant GHC.Num.$43$$35$$35$rt : (func(1, [@(0); @(0); @(0)]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$41$$35$$35$7a : (func(5, [@(0);
-                                                                  @(1);
-                                                                  @(2);
-                                                                  @(3);
-                                                                  @(4);
-                                                                  (Tuple  @(0)  @(1)  @(2)  @(3)  @(4))]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant GHC.Tuple.$40$$44$$41$$35$$35$74 : (func(2, [@(0);
-                                                      @(1);
-                                                      (Tuple  @(0)  @(1))]))
-constant Elim.yy##rlC : (func(0, [Elim.Foo; int]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant papp7 : (func(14, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            @(12);
-                            @(13);
-                            bool]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant GHC.Prim.$62$$35$$35$$35$9m : (func(0, [int; int; int]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant Elim.Emp##rly : (func(2, [(Elim.Pair  @(0)  @(1))]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$44$$44$$41$$35$$35$7e : (func(7, [@(0);
-                                                                          @(1);
-                                                                          @(2);
-                                                                          @(3);
-                                                                          @(4);
-                                                                          @(5);
-                                                                          @(6);
-                                                                          (Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6))]))
-constant papp6 : (func(12, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            bool]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant Data.Foldable.length##r1s : (func(2, [(@(0)  @(0)); int]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant xListSelector : (func(1, [[@(0)]; @(0)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant GHC.Tuple.$40$$44$$44$$44$$41$$35$$35$78 : (func(4, [@(0);
-                                                              @(1);
-                                                              @(2);
-                                                              @(3);
-                                                              (Tuple  @(0)  @(1)  @(2)  @(3))]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant GHC.Prim.$61$$61$$35$$35$$35$9o : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant Elim.Foo##rlA : (func(0, [int; int; Elim.Foo]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(2, [(Pred  @(0)); @(1); bool]))
-constant yy : (func(0, [Elim.Foo; int]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant GHC.Prim.$62$$61$$35$$35$$35$9n : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant lit$36$tests$47$pos$47$elim00.hs$58$14$58$5$45$30$124$PP$32$wink$32$cow : (Str)
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant GHC.Types.EQ##6U : (GHC.Types.Ordering)
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant GHC.Base.Nothing##r1d : (func(1, [(GHC.Base.Maybe  @(0))]))
-constant GHC.Num.$45$$35$$35$02B : (func(1, [@(0); @(0); @(0)]))
-constant GHC.Num.$42$$35$$35$ru : (func(1, [@(0); @(0); @(0)]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant GHC.Types.$91$$93$$35$$35$6m : (func(1, [[@(0)]]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant GHC.Prim.$60$$61$$35$$35$$35$9r : (func(0, [int;
-                                                     int;
-                                                     int]))
-constant GHC.Real.D$58$Fractional$35$$35$rVU : (func(1, [func(0, [@(0);
-                                                                  @(0);
-                                                                  @(0)]);
-                                                         func(0, [@(0); @(0)]);
-                                                         func(0, [(GHC.Real.Ratio  int); @(0)]);
-                                                         (GHC.Real.Fractional  @(0))]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant GHC.Tuple.$40$$44$$44$$44$$44$$44$$41$$35$$35$7c : (func(6, [@(0);
-                                                                      @(1);
-                                                                      @(2);
-                                                                      @(3);
-                                                                      @(4);
-                                                                      @(5);
-                                                                      (Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5))]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-constant GHC.Prim.void###0l : (GHC.Prim.Void#)
-
-
-bind 0 GHC.Prim.void###0l : {VV##180 : GHC.Prim.Void# | []}
-bind 1 Elim.Emp##rly : {VV : func(2, [(Elim.Pair  @(0)  @(1))]) | []}
-bind 2 GHC.Types.EQ##6U : {VV##185 : GHC.Types.Ordering | [(VV##185 = GHC.Types.EQ##6U)]}
-bind 3 GHC.Types.LT##6S : {VV##186 : GHC.Types.Ordering | [(VV##186 = GHC.Types.LT##6S)]}
-bind 4 GHC.Types.GT##6W : {VV##187 : GHC.Types.Ordering | [(VV##187 = GHC.Types.GT##6W)]}
-bind 5 Elim.Emp##rly : {VV : func(2, [(Elim.Pair  @(0)  @(1))]) | []}
-bind 6 GHC.Types.$91$$93$$35$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 7 GHC.Types.GT##6W : {VV##213 : GHC.Types.Ordering | [((cmp VV##213) = GHC.Types.GT##6W)]}
-bind 8 GHC.Types.LT##6S : {VV##214 : GHC.Types.Ordering | [((cmp VV##214) = GHC.Types.LT##6S)]}
-bind 9 GHC.Types.EQ##6U : {VV##215 : GHC.Types.Ordering | [((cmp VV##215) = GHC.Types.EQ##6U)]}
-bind 10 GHC.Base.Nothing##r1d : {VV : func(1, [(GHC.Base.Maybe  @(0))]) | []}
-bind 11 ds_dxd : {VV##222 : Elim.Foo | []}
-bind 12 lq_anf$##dxr : {lq_tmp$x##223 : Elim.Foo | [(lq_tmp$x##223 = ds_dxd)]}
-bind 13 lq_anf$##dxr : {lq_tmp$x##225 : Elim.Foo | [(lq_tmp$x##225 = ds_dxd)]}
-bind 14 xig##awy : {lq_tmp$x##233 : int | []}
-bind 15 yog##awz : {lq_tmp$x##234 : int | [(xig##awy < lq_tmp$x##234)]}
-bind 16 lq_anf$##dxr : {lq_tmp$x##225 : Elim.Foo | [(lq_tmp$x##225 = ds_dxd);
-                                                    ((yy lq_tmp$x##225) = yog##awz);
-                                                    ((xx lq_tmp$x##225) = xig##awy);
-                                                    (lq_tmp$x##225 = (Elim.Foo##rlA xig##awy yog##awz));
-                                                    ((yy lq_tmp$x##225) = yog##awz);
-                                                    ((xx lq_tmp$x##225) = xig##awy)]}
-bind 17 lq_anf$##dxs : {lq_tmp$x##242 : (Elim.Pair  int  int) | [(lq_tmp$x##242 = (Elim.PP##rlx xig##awy yog##awz))]}
-bind 18 lq_anf$##dxt : {lq_tmp$x##273 : (Elim.Pair  int  int) | [(lq_tmp$x##273 = lq_anf$##dxs)]}
-bind 19 lq_anf$##dxt : {lq_tmp$x##277 : (Elim.Pair  int  int) | [(lq_tmp$x##277 = lq_anf$##dxs)]}
-bind 20 wink##ax3 : {lq_tmp$x##275 : int | [$k_##248[lq_tmp$x##277:=lq_anf$##dxt][VV##247:=lq_tmp$x##275][lq_tmp$x##242:=lq_anf$##dxt][lq_tmp$x##271:=lq_tmp$x##275][lq_tmp$x##273:=lq_anf$##dxt][lq_tmp$x##245:=xig##awy][lq_tmp$x##246:=yog##awz][lq_tmp$x##250:=lq_tmp$x##275]]}
-bind 21 cow##ax4 : {lq_tmp$x##276 : int | [$k_##252[lq_tmp$x##277:=lq_anf$##dxt][lq_tmp$x##281:=wink##ax3][VV##251:=lq_tmp$x##276][lq_tmp$x##242:=lq_anf$##dxt][lq_tmp$x##254:=lq_tmp$x##276][lq_tmp$x##273:=lq_anf$##dxt][lq_tmp$x##245:=xig##awy][lq_tmp$x##246:=yog##awz][lq_tmp$x##272:=lq_tmp$x##276]]}
-bind 22 lq_anf$##dxt : {lq_tmp$x##277 : (Elim.Pair  int  int) | [(lq_tmp$x##277 = lq_anf$##dxs);
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4));
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4));
-                                                                 (lq_tmp$x##277 = (Elim.PP##rlx wink##ax3 cow##ax4))]}
-bind 23 lq_tmp$x##307 : {VV##308 : int | []}
-bind 24 lq_anf$##dxt : {lq_tmp$x##313 : (Elim.Pair  int  int) | [(lq_tmp$x##313 = lq_anf$##dxs)]}
-bind 25 lq_anf$##dxt : {lq_tmp$x##313 : (Elim.Pair  int  int) | [(lq_tmp$x##313 = lq_anf$##dxs);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly);
-                                                                 (lq_tmp$x##313 = Elim.Emp##rly)]}
-bind 26 ds_dxg : {VV##318 : GHC.Prim.Void# | [$k_##319]}
-bind 27 lq_anf$##dxu : {lq_tmp$x##335 : int | [(lq_tmp$x##335 ~~ lit$36$tests$47$pos$47$elim00.hs$58$14$58$5$45$30$124$PP$32$wink$32$cow);
-                                               ((strLen lq_tmp$x##335) = 39)]}
-bind 28 ds_dxh : {VV##268 : (Tuple  int  int) | [$k_##269]}
-bind 29 lq_anf$##dxw : {lq_tmp$x##368 : (Tuple  int  int) | [(lq_tmp$x##368 = ds_dxh)]}
-bind 30 lq_anf$##dxw : {lq_tmp$x##374 : (Tuple  int  int) | [(lq_tmp$x##374 = ds_dxh)]}
-bind 31 wink##ax3 : {lq_tmp$x##370 : int | [$k_##259[lq_tmp$x##368:=lq_anf$##dxw][VV##268:=lq_anf$##dxw][lq_tmp$x##364:=lq_tmp$x##370][VV##258:=lq_tmp$x##370][lq_tmp$x##374:=lq_anf$##dxw]]}
-bind 32 cow##Xxd : {lq_tmp$x##371 : int | [$k_##262[lq_tmp$x##368:=lq_anf$##dxw][VV##268:=lq_anf$##dxw][VV##261:=lq_tmp$x##371][lq_tmp$x##365:=lq_tmp$x##371][lq_tmp$x##379:=wink##ax3][lq_tmp$x##374:=lq_anf$##dxw];
-                                           $k_##266[lq_tmp$x##368:=lq_anf$##dxw][lq_tmp$x##373:=lq_tmp$x##371][VV##265:=lq_tmp$x##371][lq_tmp$x##264:=wink##ax3][lq_tmp$x##367:=lq_tmp$x##371][VV##268:=lq_anf$##dxw][lq_tmp$x##372:=wink##ax3][lq_tmp$x##366:=wink##ax3][lq_tmp$x##379:=wink##ax3][lq_tmp$x##374:=lq_anf$##dxw]]}
-bind 33 lq_anf$##dxw : {lq_tmp$x##374 : (Tuple  int  int) | [(lq_tmp$x##374 = ds_dxh);
-                                                             ((snd lq_tmp$x##374) = cow##Xxd);
-                                                             ((fst lq_tmp$x##374) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##374) = cow##Xxd);
-                                                             ((x_Tuple21 lq_tmp$x##374) = wink##ax3);
-                                                             (lq_tmp$x##374 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##Xxd));
-                                                             ((snd lq_tmp$x##374) = cow##Xxd);
-                                                             ((fst lq_tmp$x##374) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##374) = cow##Xxd);
-                                                             ((x_Tuple21 lq_tmp$x##374) = wink##ax3)]}
-bind 34 wink##ax3 : {VV##361 : int | [$k_##362]}
-// bind 45 wink##ax3 : {lq_tmp$x##452 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][VV##427:=lq_tmp$x##452][lq_tmp$x##426:=cow##ax4][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##430:=lq_tmp$x##452][lq_tmp$x##446:=lq_tmp$x##452][lq_tmp$x##422:=lq_anf$##dxy]]}
-
-bind 35 lq_anf$##dxv : {lq_tmp$x##398 : (Tuple  int  int) | [(lq_tmp$x##398 = ds_dxh)]}
-bind 36 lq_anf$##dxv : {lq_tmp$x##404 : (Tuple  int  int) | [(lq_tmp$x##404 = ds_dxh)]}
-bind 37 wink##ax3 : {lq_tmp$x##400 : int | [$k_##259[VV##268:=lq_anf$##dxv][lq_tmp$x##394:=lq_tmp$x##400][VV##258:=lq_tmp$x##400][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##404:=lq_anf$##dxv]]}
-bind 38 cow##ax4 : {lq_tmp$x##401 : int | [$k_##262[VV##268:=lq_anf$##dxv][VV##261:=lq_tmp$x##401][lq_tmp$x##409:=wink##ax3][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##395:=lq_tmp$x##401][lq_tmp$x##404:=lq_anf$##dxv];
-                                           $k_##266[lq_tmp$x##396:=wink##ax3][VV##265:=lq_tmp$x##401][lq_tmp$x##264:=wink##ax3][VV##268:=lq_anf$##dxv][lq_tmp$x##397:=lq_tmp$x##401][lq_tmp$x##409:=wink##ax3][lq_tmp$x##403:=lq_tmp$x##401][lq_tmp$x##398:=lq_anf$##dxv][lq_tmp$x##402:=wink##ax3][lq_tmp$x##404:=lq_anf$##dxv]]}
-bind 39 lq_anf$##dxv : {lq_tmp$x##404 : (Tuple  int  int) | [(lq_tmp$x##404 = ds_dxh);
-                                                             ((snd lq_tmp$x##404) = cow##ax4);
-                                                             ((fst lq_tmp$x##404) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##404) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##404) = wink##ax3);
-                                                             (lq_tmp$x##404 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##404) = cow##ax4);
-                                                             ((fst lq_tmp$x##404) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##404) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##404) = wink##ax3)]}
-bind 40 cow##ax4 : {VV##391 : int | [$k_##392]}
-bind 41 lq_tmp$x##438 : {VV##439 : int | []}
-bind 42 ds_dxi : {lq_tmp$x##422 : (Tuple  int  int) | [((snd lq_tmp$x##422) = cow##ax4);
-                                                       ((fst lq_tmp$x##422) = wink##ax3);
-                                                       ((x_Tuple22 lq_tmp$x##422) = cow##ax4);
-                                                       ((x_Tuple21 lq_tmp$x##422) = wink##ax3)]}
-bind 43 lq_anf$##dxy : {lq_tmp$x##450 : (Tuple  int  int) | [(lq_tmp$x##450 = ds_dxi)]}
-bind 44 lq_anf$##dxy : {lq_tmp$x##456 : (Tuple  int  int) | [(lq_tmp$x##456 = ds_dxi)]}
-bind 45 wink##ax3 : {lq_tmp$x##452 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][VV##427:=lq_tmp$x##452][lq_tmp$x##426:=cow##ax4][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##430:=lq_tmp$x##452][lq_tmp$x##446:=lq_tmp$x##452][lq_tmp$x##422:=lq_anf$##dxy]]}
-bind 46 cow##ax4 : {lq_tmp$x##453 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][lq_tmp$x##426:=cow##ax4][VV##431:=lq_tmp$x##453][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##447:=lq_tmp$x##453][lq_tmp$x##461:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxy][lq_tmp$x##434:=lq_tmp$x##453];
-                                           $k_##436[lq_tmp$x##425:=wink##ax3][lq_tmp$x##456:=lq_anf$##dxy][lq_tmp$x##426:=cow##ax4][lq_tmp$x##455:=lq_tmp$x##453][lq_tmp$x##450:=lq_anf$##dxy][lq_tmp$x##461:=wink##ax3][lq_tmp$x##438:=wink##ax3][lq_tmp$x##421:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxy][lq_tmp$x##434:=lq_tmp$x##453][lq_tmp$x##448:=wink##ax3][lq_tmp$x##449:=lq_tmp$x##453][VV##435:=lq_tmp$x##453][lq_tmp$x##454:=wink##ax3]]}
-bind 47 lq_anf$##dxy : {lq_tmp$x##456 : (Tuple  int  int) | [(lq_tmp$x##456 = ds_dxi);
-                                                             ((snd lq_tmp$x##456) = cow##ax4);
-                                                             ((fst lq_tmp$x##456) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##456) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##456) = wink##ax3);
-                                                             (lq_tmp$x##456 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##456) = cow##ax4);
-                                                             ((fst lq_tmp$x##456) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##456) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##456) = wink##ax3)]}
-bind 48 wink##awA : {VV##443 : int | [$k_##444]}
-
-bind 49 lq_anf$##dxx : {lq_tmp$x##480 : (Tuple  int  int) | [(lq_tmp$x##480 = ds_dxi)]}
-bind 50 lq_anf$##dxx : {lq_tmp$x##486 : (Tuple  int  int) | [(lq_tmp$x##486 = ds_dxi)]}
-bind 51 wink##ax3 : {lq_tmp$x##482 : int | [$k_##428[lq_tmp$x##425:=wink##ax3][VV##427:=lq_tmp$x##482][lq_tmp$x##426:=cow##ax4][lq_tmp$x##476:=lq_tmp$x##482][lq_tmp$x##430:=lq_tmp$x##482][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##486:=lq_anf$##dxx]]}
-bind 52 cow##ax4 : {lq_tmp$x##483 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][lq_tmp$x##426:=cow##ax4][VV##431:=lq_tmp$x##483][lq_tmp$x##491:=wink##ax3][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##477:=lq_tmp$x##483][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##434:=lq_tmp$x##483][lq_tmp$x##486:=lq_anf$##dxx];
-                                           $k_##436[lq_tmp$x##425:=wink##ax3][lq_tmp$x##426:=cow##ax4][lq_tmp$x##491:=wink##ax3][lq_tmp$x##480:=lq_anf$##dxx][lq_tmp$x##479:=lq_tmp$x##483][lq_tmp$x##485:=lq_tmp$x##483][lq_tmp$x##438:=wink##ax3][lq_tmp$x##421:=wink##ax3][lq_tmp$x##422:=lq_anf$##dxx][lq_tmp$x##434:=lq_tmp$x##483][lq_tmp$x##484:=wink##ax3][lq_tmp$x##478:=wink##ax3][lq_tmp$x##486:=lq_anf$##dxx][VV##435:=lq_tmp$x##483]]}
-bind 53 lq_anf$##dxx : {lq_tmp$x##486 : (Tuple  int  int) | [(lq_tmp$x##486 = ds_dxi);
-                                                             ((snd lq_tmp$x##486) = cow##ax4);
-                                                             ((fst lq_tmp$x##486) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##486) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##486) = wink##ax3);
-                                                             (lq_tmp$x##486 = (GHC.Tuple.$40$$44$$41$$35$$35$74 wink##ax3 cow##ax4));
-                                                             ((snd lq_tmp$x##486) = cow##ax4);
-                                                             ((fst lq_tmp$x##486) = wink##ax3);
-                                                             ((x_Tuple22 lq_tmp$x##486) = cow##ax4);
-                                                             ((x_Tuple21 lq_tmp$x##486) = wink##ax3)]}
-bind 54 cow##awB : {VV##473 : int | [$k_##474]}
-bind 55 ds_dxo : {VV##514 : Elim.Foo | []}
-bind 56 lq_anf$##dxz : {lq_tmp$x##515 : Elim.Foo | [(lq_tmp$x##515 = ds_dxo)]}
-bind 57 lq_anf$##dxz : {lq_tmp$x##517 : Elim.Foo | [(lq_tmp$x##517 = ds_dxo)]}
-bind 58 ds_dxp : {lq_tmp$x##525 : int | []}
-bind 59 ds_dxq : {lq_tmp$x##526 : int | [(ds_dxp < lq_tmp$x##526)]}
-bind 60 lq_anf$##dxz : {lq_tmp$x##517 : Elim.Foo | [(lq_tmp$x##517 = ds_dxo);
-                                                    ((yy lq_tmp$x##517) = ds_dxq);
-                                                    ((xx lq_tmp$x##517) = ds_dxp);
-                                                    (lq_tmp$x##517 = (Elim.Foo##rlA ds_dxp ds_dxq));
-                                                    ((yy lq_tmp$x##517) = ds_dxq);
-                                                    ((xx lq_tmp$x##517) = ds_dxp)]}
-bind 61 ds_dxl : {VV##537 : Elim.Foo | []}
-bind 62 lq_anf$##dxA : {lq_tmp$x##538 : Elim.Foo | [(lq_tmp$x##538 = ds_dxl)]}
-bind 63 lq_anf$##dxA : {lq_tmp$x##540 : Elim.Foo | [(lq_tmp$x##540 = ds_dxl)]}
-bind 64 ds_dxm : {lq_tmp$x##548 : int | []}
-bind 65 ds_dxn : {lq_tmp$x##549 : int | [(ds_dxm < lq_tmp$x##549)]}
-bind 66 lq_anf$##dxA : {lq_tmp$x##540 : Elim.Foo | [(lq_tmp$x##540 = ds_dxl);
-                                                    ((yy lq_tmp$x##540) = ds_dxn);
-                                                    ((xx lq_tmp$x##540) = ds_dxm);
-                                                    (lq_tmp$x##540 = (Elim.Foo##rlA ds_dxm ds_dxn));
-                                                    ((yy lq_tmp$x##540) = ds_dxn);
-                                                    ((xx lq_tmp$x##540) = ds_dxm)]}
-bind 67 VV##559 : {VV##559 : int | [(VV##559 = ds_dxm)]}
-bind 68 VV##561 : {VV##561 : int | [(VV##561 = ds_dxq)]}
-bind 69 VV##563 : {VV##563 : Elim.Foo | [((yy VV##563) = cow##awB);
-                                         ((xx VV##563) = wink##awA)]}
-bind 70 VV##565 : {VV##565 : int | [(VV##565 = cow##awB)]}
-bind 71 VV##567 : {VV##567 : int | [(VV##567 = wink##awA)]}
-bind 72 VV##569 : {VV##569 : int | [(VV##569 = cow##ax4)]}
-bind 73 VV##571 : {VV##571 : int | [(VV##571 = wink##ax3)]}
-bind 74 VV##573 : {VV##573 : int | [(VV##573 = cow##ax4)]}
-bind 75 VV##575 : {VV##575 : int | [(VV##575 = wink##ax3)]}
-bind 76 VV##577 : {VV##577 : int | [(VV##577 = cow##ax4)]}
-bind 77 VV##579 : {VV##579 : int | [(VV##579 = wink##ax3)]}
-bind 78 VV##581 : {VV##581 : (Tuple  int  int) | [$k_##333[VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 79 VV##583 : {VV##583 : int | [$k_##323[VV##322:=VV##583][VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 80 VV##585 : {VV##585 : int | [$k_##326[VV##325:=VV##585][VV##332:=VV##581][ds_dxg:=GHC.Prim.void###0l]]}
-bind 81 lq_tmp$x##264 : {VV##587 : int | []}
-bind 82 VV##588 : {VV##588 : int | [$k_##330[VV##332:=VV##581][VV##329:=VV##588][ds_dxg:=GHC.Prim.void###0l][lq_tmp$x##328:=lq_tmp$x##264]]}
-bind 83 VV##590 : {VV##590 : GHC.Prim.Void# | [(VV##590 = GHC.Prim.void###0l)]}
-bind 84 VV##592 : {VV##592 : (Tuple  int  int) | [$k_##351[lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##350:=VV##592]]}
-bind 85 VV##594 : {VV##594 : int | [$k_##341[lq_tmp$x##353:=VV##594][lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##340:=VV##594][VV##350:=VV##592]]}
-bind 86 VV##596 : {VV##596 : int | [$k_##344[lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##357:=VV##592][VV##343:=VV##596][lq_tmp$x##354:=VV##596][VV##350:=VV##592]]}
-bind 87 lq_tmp$x##328 : {VV##598 : int | []}
-bind 88 VV##599 : {VV##599 : int | [$k_##348[lq_tmp$x##355:=lq_tmp$x##328][lq_tmp$x##356:=VV##599][VV##347:=VV##599][lq_tmp$x##339:=lq_anf$##dxu][lq_tmp$x##346:=lq_tmp$x##328][lq_tmp$x##357:=VV##592][VV##350:=VV##592]]}
-bind 89 VV##601 : {VV##601 : int | [(VV##601 = lq_anf$##dxu)]}
-bind 90 VV##603 : {VV##603 : (Tuple  int  int) | [((snd VV##603) = cow##ax4);
-                                                  ((fst VV##603) = wink##ax3);
-                                                  ((x_Tuple22 VV##603) = cow##ax4);
-                                                  ((x_Tuple21 VV##603) = wink##ax3)]}
-bind 91 VV##605 : {VV##605 : int | [$k_##297[lq_tmp$x##295:=cow##ax4][lq_tmp$x##299:=VV##605][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##296:=VV##605]]}
-bind 92 VV##607 : {VV##607 : int | [$k_##301[lq_tmp$x##295:=cow##ax4][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##300:=VV##607][lq_tmp$x##303:=VV##607]]}
-bind 93 lq_tmp$x##264 : {VV##609 : int | []}
-bind 94 VV##610 : {VV##610 : int | [$k_##305[lq_tmp$x##295:=cow##ax4][lq_tmp$x##290:=lq_tmp$x##264][VV##304:=VV##610][lq_tmp$x##307:=lq_tmp$x##264][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##610]]}
-bind 95 VV##612 : {VV##612 : int | [(VV##612 = cow##ax4)]}
-bind 96 VV##614 : {VV##614 : int | [(VV##614 = wink##ax3)]}
-bind 97 VV##616 : {VV##616 : int | [(VV##616 = yog##awz)]}
-bind 98 VV##618 : {VV##618 : int | [(VV##618 = xig##awy)]}
-bind 99 VV##473 : {VV##473 : int | [$k_##474]}
-bind 100 VV##443 : {VV##443 : int | [$k_##444]}
-bind 101 VV##435 : {VV##435 : int | [$k_##436]}
-bind 102 VV##431 : {VV##431 : int | [$k_##432]}
-bind 103 VV##427 : {VV##427 : int | [$k_##428]}
-bind 104 VV##391 : {VV##391 : int | [$k_##392]}
-bind 105 VV##361 : {VV##361 : int | [$k_##362]}
-bind 106 VV##318 : {VV##318 : GHC.Prim.Void# | [$k_##319]}
-bind 107 VV##350 : {VV##350 : (Tuple  int  int) | [$k_##351]}
-bind 108 VV##340 : {VV##340 : int | [$k_##341]}
-bind 109 VV##343 : {VV##343 : int | [$k_##344]}
-bind 110 lq_tmp$x##346 : {VV##631 : int | []}
-bind 111 VV##347 : {VV##347 : int | [$k_##348]}
-bind 112 VV##332 : {VV##332 : (Tuple  int  int) | [$k_##333]}
-bind 113 VV##322 : {VV##322 : int | [$k_##323]}
-bind 114 VV##325 : {VV##325 : int | [$k_##326]}
-bind 115 lq_tmp$x##328 : {VV##636 : int | []}
-bind 116 VV##329 : {VV##329 : int | [$k_##330]}
-bind 117 VV##304 : {VV##304 : int | [$k_##305]}
-bind 118 VV##300 : {VV##300 : int | [$k_##301]}
-bind 119 VV##296 : {VV##296 : int | [$k_##297]}
-bind 120 VV##268 : {VV##268 : (Tuple  int  int) | [$k_##269]}
-bind 121 VV##258 : {VV##258 : int | [$k_##259]}
-bind 122 VV##261 : {VV##261 : int | [$k_##262]}
-bind 123 lq_tmp$x##264 : {VV##644 : int | []}
-bind 124 VV##265 : {VV##265 : int | [$k_##266]}
-bind 125 VV##251 : {VV##251 : int | [$k_##252]}
-bind 126 VV##247 : {VV##247 : int | [$k_##248]}
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48;
-       54 ]
-  lhs {VV##1 : int | [(VV##1 = cow##awB)]}
-  rhs {VV##1 : int | [(wink##awA < VV##1)]}
-  id 1 tag [1]
-  // META constraint id 1 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48;
-       49;
-       50;
-       51;
-       52;
-       53]
-  lhs {VV##2 : int | [(VV##2 = cow##ax4)]}
-  rhs {VV##2 : int | [$k_##474[VV##569:=VV##2][VV##F##2:=VV##2][VV##F:=VV##2][VV##473:=VV##2]]}
-  id 2 tag [1]
-  // META constraint id 2 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##18 : (Tuple  int  int) | [((snd VV##18) = cow##ax4);
-                                     ((fst VV##18) = wink##ax3);
-                                     ((x_Tuple22 VV##18) = cow##ax4);
-                                     ((x_Tuple21 VV##18) = wink##ax3)]}
-  rhs {VV##18 : (Tuple  int  int) | [$k_##269[VV##F##18:=VV##18][VV##268:=VV##18][VV##603:=VV##18][VV##F:=VV##18]]}
-  id 18 tag [1]
-  // META constraint id 18 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       43;
-       44;
-       45;
-       46;
-       47]
-  lhs {VV##3 : int | [(VV##3 = wink##ax3)]}
-  rhs {VV##3 : int | [$k_##444[VV##571:=VV##3][VV##F:=VV##3][VV##F##3:=VV##3][VV##443:=VV##3]]}
-  id 3 tag [1]
-  // META constraint id 3 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90]
-  lhs {VV##19 : int | [$k_##297[lq_tmp$x##295:=cow##ax4][VV##605:=VV##19][lq_tmp$x##299:=VV##19][lq_tmp$x##291:=VV##603][VV##F##19:=VV##19][lq_tmp$x##294:=wink##ax3][VV##F:=VV##19][VV##296:=VV##19]]}
-  rhs {VV##19 : int | [$k_##259[VV##605:=VV##19][VV##268:=VV##603][VV##258:=VV##19][VV##F##19:=VV##19][VV##F:=VV##19]]}
-  id 19 tag [1]
-  // META constraint id 19 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##4 : int | [(VV##4 = cow##ax4)]}
-  rhs {VV##4 : int | [$k_##432[lq_tmp$x##425:=wink##ax3][VV##431:=VV##4][VV##573:=VV##4][lq_tmp$x##434:=VV##4][VV##F:=VV##4][VV##F##4:=VV##4]]}
-  id 4 tag [1]
-  // META constraint id 4 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90]
-  lhs {VV##20 : int | [$k_##301[lq_tmp$x##295:=cow##ax4][VV##607:=VV##20][VV##F##20:=VV##20][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][VV##300:=VV##20][lq_tmp$x##303:=VV##20][VV##F:=VV##20]]}
-  rhs {VV##20 : int | [$k_##262[VV##268:=VV##603][VV##607:=VV##20][VV##F##20:=VV##20][VV##261:=VV##20][VV##F:=VV##20]]}
-  id 20 tag [1]
-  // META constraint id 20 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##5 : int | [(VV##5 = cow##ax4)]}
-  rhs {VV##5 : int | [$k_##436[lq_tmp$x##425:=wink##ax3][VV##F##5:=VV##5][VV##573:=VV##5][lq_tmp$x##438:=wink##ax3][lq_tmp$x##434:=VV##5][VV##F:=VV##5][VV##435:=VV##5]]}
-  id 5 tag [1]
-  // META constraint id 5 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       90;
-       93]
-  lhs {VV##21 : int | [$k_##305[lq_tmp$x##295:=cow##ax4][lq_tmp$x##290:=lq_tmp$x##264][VV##304:=VV##21][VV##610:=VV##21][lq_tmp$x##307:=lq_tmp$x##264][lq_tmp$x##291:=VV##603][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##21][VV##F##21:=VV##21][VV##F:=VV##21]]}
-  rhs {VV##21 : int | [$k_##266[VV##265:=VV##21][VV##610:=VV##21][VV##268:=VV##603][VV##F##21:=VV##21][VV##F:=VV##21]]}
-  id 21 tag [1]
-  // META constraint id 21 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  lhs {VV##6 : int | [(VV##6 = wink##ax3)]}
-  rhs {VV##6 : int | [$k_##428[VV##F##6:=VV##6][VV##427:=VV##6][lq_tmp$x##430:=VV##6][VV##F:=VV##6][VV##575:=VV##6]]}
-  id 6 tag [1]
-  // META constraint id 6 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##22 : int | [(VV##22 = cow##ax4)]}
-  rhs {VV##22 : int | [$k_##301[VV##F##22:=VV##22][VV##612:=VV##22][lq_tmp$x##294:=wink##ax3][VV##300:=VV##22][lq_tmp$x##303:=VV##22][VV##F:=VV##22]]}
-  id 22 tag [1]
-  // META constraint id 22 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       35;
-       36;
-       37;
-       38;
-       39]
-  lhs {VV##7 : int | [(VV##7 = cow##ax4)]}
-  rhs {VV##7 : int | [$k_##392[VV##391:=VV##7][VV##F##7:=VV##7][VV##F:=VV##7][VV##577:=VV##7]]}
-  id 7 tag [1]
-  // META constraint id 7 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##23 : int | [(VV##23 = cow##ax4)]}
-  rhs {VV##23 : int | [$k_##305[VV##304:=VV##23][lq_tmp$x##307:=wink##ax3][VV##612:=VV##23][lq_tmp$x##294:=wink##ax3][lq_tmp$x##303:=VV##23][VV##F:=VV##23][VV##F##23:=VV##23]]}
-  id 23 tag [1]
-  // META constraint id 23 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       29;
-       30;
-       31;
-       32;
-       33]
-  lhs {VV##8 : int | [(VV##8 = wink##ax3)]}
-  rhs {VV##8 : int | [$k_##362[VV##579:=VV##8][VV##F##8:=VV##8][VV##361:=VV##8][VV##F:=VV##8]]}
-  id 8 tag [1]
-  // META constraint id 8 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  lhs {VV##24 : int | [(VV##24 = wink##ax3)]}
-  rhs {VV##24 : int | [$k_##297[lq_tmp$x##299:=VV##24][VV##614:=VV##24][VV##F:=VV##24][VV##296:=VV##24][VV##F##24:=VV##24]]}
-  id 24 tag [1]
-  // META constraint id 24 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  lhs {VV##25 : int | [(VV##25 = yog##awz)]}
-  rhs {VV##25 : int | [$k_##252[VV##251:=VV##25][lq_tmp$x##254:=VV##25][lq_tmp$x##245:=xig##awy][VV##F:=VV##25][VV##616:=VV##25][VV##F##25:=VV##25]]}
-  id 25 tag [1]
-  // META constraint id 25 : ()
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  lhs {VV##26 : int | [(VV##26 = xig##awy)]}
-  rhs {VV##26 : int | [$k_##248[VV##618:=VV##26][VV##247:=VV##26][VV##F##26:=VV##26][VV##F:=VV##26][lq_tmp$x##250:=VV##26]]}
-  id 26 tag [1]
-  // META constraint id 26 : ()
-
-
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       115]
-  reft {VV##329 : int | [$k_##330]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25]
-  reft {VV##318 : GHC.Prim.Void# | [$k_##319]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       107]
-  reft {VV##343 : int | [$k_##344]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  reft {VV##427 : int | [$k_##428]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  reft {VV##247 : int | [$k_##248]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       41]
-  reft {VV##435 : int | [$k_##436]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42]
-  reft {VV##443 : int | [$k_##444]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  reft {VV##296 : int | [$k_##297]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       110]
-  reft {VV##347 : int | [$k_##348]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40;
-       42;
-       48]
-  reft {VV##473 : int | [$k_##474]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27]
-  reft {VV##350 : (Tuple  int  int) | [$k_##351]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34]
-  reft {VV##391 : int | [$k_##392]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26]
-  reft {VV##332 : (Tuple  int  int) | [$k_##333]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       120]
-  reft {VV##258 : int | [$k_##259]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       120]
-  reft {VV##261 : int | [$k_##262]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       27;
-       107]
-  reft {VV##340 : int | [$k_##341]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22;
-       23]
-  reft {VV##304 : int | [$k_##305]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       112]
-  reft {VV##325 : int | [$k_##326]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28]
-  reft {VV##361 : int | [$k_##362]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       123]
-  reft {VV##265 : int | [$k_##266]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       24;
-       25;
-       26;
-       112]
-  reft {VV##322 : int | [$k_##323]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       18;
-       19;
-       20;
-       21;
-       22]
-  reft {VV##300 : int | [$k_##301]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; 17]
-  reft {VV##268 : (Tuple  int  int) | [$k_##269]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15;
-       16;
-       17;
-       28;
-       34;
-       40]
-  reft {VV##431 : int | [$k_##432]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16]
-  reft {VV##251 : int | [$k_##252]}
-  // META wf : ()
diff --git a/liquid-fixpoint/tests/pos/float.fq b/liquid-fixpoint/tests/pos/float.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/float.fq
+++ /dev/null
@@ -1,11 +0,0 @@
-// adapted from LH test Propability.hs
-
-bind 50 x : {v1 : real | [(v1 = 0.2)]}
-bind 56 y : {v2 : real | [(v2 = 0.8 + x)]}
-
-constraint:
-  env [50;
-       56]
-  lhs {VV#F3 : int | []}
-  rhs {VV#F3 : int | [(y = 1.0)]}
-  id 3 tag [1]
diff --git a/liquid-fixpoint/tests/pos/func-arg.fq b/liquid-fixpoint/tests/pos/func-arg.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/func-arg.fq
+++ /dev/null
@@ -1,1 +0,0 @@
-bind 0 foo : {VV : func(0, [func(0, [int])]) | []}
diff --git a/liquid-fixpoint/tests/pos/func00.fq b/liquid-fixpoint/tests/pos/func00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/func00.fq
+++ /dev/null
@@ -1,9 +0,0 @@
-
-bind 0 f : {v: func(0, [int; int]) | []}
-
-constraint:
-  env [ ]
-  lhs {v : int | [f = f]}
-  rhs {v : int | [0 < 7]}
-  id 1 tag []
-
diff --git a/liquid-fixpoint/tests/pos/hex.ts.fq b/liquid-fixpoint/tests/pos/hex.ts.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/hex.ts.fq
+++ /dev/null
@@ -1,342 +0,0 @@
-qualif Bot(v : a): (0 = 1) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Bot(v : obj): (0 = 1) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Bot(v : Boolean): (0 = 1) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Bot(v : int): (0 = 1) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v < 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v <= 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v > 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v >= 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v = 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif CmpZ(v : int): (v != 0) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : int, x : int): (v < x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : int, x : int): (v <= x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : int, x : int): (v > x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : int, x : int): (v >= x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : a, x : a): (v ~~ x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Cmp(v : a, x : a): (v != x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif True1(v : Boolean): (? Prop([v])) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif False1(v : Boolean): (~ ((? Prop([v])))) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Tag(v : a, x : Str): (ttag([v]) = x) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-qualif Len(v : b, w : a): (v < len([w])) // "/Users/rjhala/research/stack/liquid/refscript/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/refscript-0.1.0.0/include/prelude.ts" (line 1, column 1)
-
-
-
-
-constant lit$36$Array : (Str)
-constant lit$36$PI : (Str)
-constant lit$36$documentElement : (Str)
-constant extends_class : (func(1, [@(0); Str; bool]))
-constant numeric_min_value : (int)
-constant numeric_positive_infinity : (int)
-constant lit$36$Document : (Str)
-constant lit$36$Console : (Str)
-constant lit$36$LOG10E : (Str)
-constant lit$36$MAX_VALUE : (Str)
-constant lit$36$Error : (Str)
-constant numeric_nan : (int)
-constant lit$36$Math : (Str)
-constant lit$36$LN2 : (Str)
-constant offset : (func(2, [@(0); Str; @(1)]))
-constant hasDirectProperty : (func(1, [Str; @(0); bool]))
-constant lit$36$Object : (Str)
-constant lit$36$StringConstructor : (Str)
-constant lit$36$object : (Str)
-constant lit$36$NEGATIVE_INFINITY : (Str)
-constant lit$36$BUBBLING_PHASE : (Str)
-constant ttag : (func(1, [@(0); Str]))
-constant lit$36$AT_TARGET : (Str)
-constant lit$36$LN10 : (Str)
-constant lit$36$Event : (Str)
-constant numeric_max_value : (int)
-constant lit$36$CAPTURING_PHASE : (Str)
-constant lit$36$NaN : (Str)
-constant lit$36$undefined : (Str)
-constant lit$36$Function : (Str)
-constant len : (func(2, [(Array  @(0)  @(1)); int]))
-constant extends_interface : (func(1, [@(0); Str; bool]))
-constant numeric_negative_infinity : (int)
-constant lit$36$SQRT1_2 : (Str)
-constant Prop : (func(1, [@(0); bool]))
-constant hasProperty : (func(1, [Str; @(0); bool]))
-constant lit$36$String : (Str)
-constant lit$36$E : (Str)
-constant lit$36$POSITIVE_INFINITY : (Str)
-constant lit$36$MIN_VALUE : (Str)
-constant lit$36$prototype : (Str)
-constant lit$36$SQRT2 : (Str)
-constant lit$36$LOG2E : (Str)
-constant lit$36$Number : (Str)
-constant lit$36$HTMLElement : (Str)
-constant lit$36$number : (Str)
-constant enumProp : (func(1, [Str; @(0); bool]))
-constant lit$36$boolean : (Str)
-constant lit$36$Window : (Str)
-
-
-bind 0 undefined : {v : Undefined | [(ttag([v]) = lit$36$undefined);
-                                     (~ ((? Prop([v]))))]}
-bind 1 Object : {VV$35$285 : Object | [(? Prop([VV$35$285]));
-                                       (ttag([VV$35$285]) = lit$36$object)]}
-bind 2 Object.prototype : {VV : (Object  Immutable) | [(? extends_interface([VV;
-                                                                             lit$36$Object]));
-                                                       (? Prop([VV]));
-                                                       (ttag([VV]) = lit$36$object);
-                                                       (VV ~~ offset([Object; lit$36$prototype]))]}
-bind 3 NaN : {v : int | [(ttag([v]) = lit$36$number);
-                         ((? Prop([v])) <=> (v != 0));
-                         (v = numeric_nan)]}
-bind 4 Number : {VV$35$325 : Object | [(? Prop([VV$35$325]));
-                                       (ttag([VV$35$325]) = lit$36$object)]}
-bind 5 Number.POSITIVE_INFINITY : {v : int | [(ttag([v]) = lit$36$number);
-                                              ((? Prop([v])) <=> (v != 0));
-                                              (v ~~ offset([Number; lit$36$POSITIVE_INFINITY]))]}
-bind 6 Number.MIN_VALUE : {v : int | [(ttag([v]) = lit$36$number);
-                                      ((? Prop([v])) <=> (v != 0));
-                                      (v ~~ offset([Number; lit$36$MIN_VALUE]))]}
-bind 7 Number.prototype : {VV : (Number  Immutable) | [(? extends_interface([VV;
-                                                                             lit$36$Number]));
-                                                       (? Prop([VV]));
-                                                       (ttag([VV]) = lit$36$object);
-                                                       (VV ~~ offset([Number; lit$36$prototype]))]}
-bind 8 Number.NaN : {v : int | [(ttag([v]) = lit$36$number);
-                                ((? Prop([v])) <=> (v != 0));
-                                (v ~~ offset([Number; lit$36$NaN]))]}
-bind 9 Number.NEGATIVE_INFINITY : {v : int | [(ttag([v]) = lit$36$number);
-                                              ((? Prop([v])) <=> (v != 0));
-                                              (v ~~ offset([Number; lit$36$NEGATIVE_INFINITY]))]}
-bind 10 Number.MAX_VALUE : {v : int | [(ttag([v]) = lit$36$number);
-                                       ((? Prop([v])) <=> (v != 0));
-                                       (v ~~ offset([Number; lit$36$MAX_VALUE]))]}
-bind 11 Math : {VV$35$387 : (Math  Immutable) | [(? extends_interface([VV$35$387;
-                                                                       lit$36$Math]));
-                                                 (? Prop([VV$35$387]));
-                                                 (ttag([VV$35$387]) = lit$36$object)]}
-bind 12 Math.SQRT2 : {v : int | [(ttag([v]) = lit$36$number);
-                                 ((? Prop([v])) <=> (v != 0));
-                                 (v ~~ offset([Math; lit$36$SQRT2]))]}
-bind 13 Math.LN2 : {v : int | [(ttag([v]) = lit$36$number);
-                               ((? Prop([v])) <=> (v != 0));
-                               (v ~~ offset([Math; lit$36$LN2]))]}
-bind 14 Math.PI : {v : int | [(ttag([v]) = lit$36$number);
-                              ((? Prop([v])) <=> (v != 0));
-                              (v ~~ offset([Math; lit$36$PI]))]}
-bind 15 Math.LOG10E : {v : int | [(ttag([v]) = lit$36$number);
-                                  ((? Prop([v])) <=> (v != 0));
-                                  (v ~~ offset([Math; lit$36$LOG10E]))]}
-bind 16 Math.LOG2E : {v : int | [(ttag([v]) = lit$36$number);
-                                 ((? Prop([v])) <=> (v != 0));
-                                 (v ~~ offset([Math; lit$36$LOG2E]))]}
-bind 17 Math.E : {v : int | [(ttag([v]) = lit$36$number);
-                             ((? Prop([v])) <=> (v != 0));
-                             (v ~~ offset([Math; lit$36$E]))]}
-bind 18 Math.SQRT1_2 : {v : int | [(ttag([v]) = lit$36$number);
-                                   ((? Prop([v])) <=> (v != 0));
-                                   (v ~~ offset([Math; lit$36$SQRT1_2]))]}
-bind 19 Math.LN10 : {v : int | [(ttag([v]) = lit$36$number);
-                                ((? Prop([v])) <=> (v != 0));
-                                (v ~~ offset([Math; lit$36$LN10]))]}
-bind 20 String : {VV$35$469 : (StringConstructor  Immutable) | [(? extends_interface([VV$35$469;
-                                                                                      lit$36$StringConstructor]));
-                                                                (? Prop([VV$35$469]));
-                                                                (ttag([VV$35$469]) = lit$36$object)]}
-bind 21 String.prototype : {VV : (String  Immutable) | [(? extends_interface([VV;
-                                                                              lit$36$String]));
-                                                        (? Prop([VV]));
-                                                        (ttag([VV]) = lit$36$object);
-                                                        (VV ~~ offset([String; lit$36$prototype]))]}
-bind 22 Array : {VV$35$727 : Object | [(? Prop([VV$35$727]));
-                                       (ttag([VV$35$727]) = lit$36$object)]}
-bind 23 Array.prototype : {VV : (Array  Mutable  Top) | [(? extends_interface([VV;
-                                                                               lit$36$Array]));
-                                                         (? Prop([VV]));
-                                                         (ttag([VV]) = lit$36$object);
-                                                         (VV ~~ offset([Array; lit$36$prototype]))]}
-bind 24 Function : {VV$35$762 : Object | [(? Prop([VV$35$762]));
-                                          (ttag([VV$35$762]) = lit$36$object)]}
-bind 25 Function.prototype : {VV : (Function  Immutable) | [(? extends_interface([VV;
-                                                                                  lit$36$Function]));
-                                                            (? Prop([VV]));
-                                                            (ttag([VV]) = lit$36$object);
-                                                            (VV ~~ offset([Function;
-                                                                           lit$36$prototype]))]}
-bind 26 Console : {VV$35$891 : Object | [(? Prop([VV$35$891]));
-                                         (ttag([VV$35$891]) = lit$36$object)]}
-bind 27 Console.prototype : {VV : (Console  Immutable) | [(? extends_interface([VV;
-                                                                                lit$36$Console]));
-                                                          (? Prop([VV]));
-                                                          (ttag([VV]) = lit$36$object);
-                                                          (VV ~~ offset([Console;
-                                                                         lit$36$prototype]))]}
-bind 28 console : {VV$35$893 : (Console  Immutable) | [(? extends_interface([VV$35$893;
-                                                                             lit$36$Console]));
-                                                       (? Prop([VV$35$893]));
-                                                       (ttag([VV$35$893]) = lit$36$object)]}
-bind 29 Error : {VV$35$983 : Object | [(? Prop([VV$35$983]));
-                                       (ttag([VV$35$983]) = lit$36$object)]}
-bind 30 Error.prototype : {VV : (Error  Immutable) | [(? extends_interface([VV;
-                                                                            lit$36$Error]));
-                                                      (? Prop([VV]));
-                                                      (ttag([VV]) = lit$36$object);
-                                                      (VV ~~ offset([Error; lit$36$prototype]))]}
-bind 31 Event : {VV$35$1025 : Object | [(? Prop([VV$35$1025]));
-                                        (ttag([VV$35$1025]) = lit$36$object)]}
-bind 32 Event.CAPTURING_PHASE : {v : int | [(ttag([v]) = lit$36$number);
-                                            ((? Prop([v])) <=> (v != 0));
-                                            (v ~~ offset([Event; lit$36$CAPTURING_PHASE]))]}
-bind 33 Event.AT_TARGET : {v : int | [(ttag([v]) = lit$36$number);
-                                      ((? Prop([v])) <=> (v != 0));
-                                      (v ~~ offset([Event; lit$36$AT_TARGET]))]}
-bind 34 Event.prototype : {VV : (Event  Immutable) | [(? extends_interface([VV;
-                                                                            lit$36$Event]));
-                                                      (? Prop([VV]));
-                                                      (ttag([VV]) = lit$36$object);
-                                                      (VV ~~ offset([Event; lit$36$prototype]))]}
-bind 35 Event.BUBBLING_PHASE : {v : int | [(ttag([v]) = lit$36$number);
-                                           ((? Prop([v])) <=> (v != 0));
-                                           (v ~~ offset([Event; lit$36$BUBBLING_PHASE]))]}
-bind 36 document : {VV$35$1027 : (Document  Immutable) | [(? extends_interface([VV$35$1027;
-                                                                                lit$36$Document]));
-                                                          (? Prop([VV$35$1027]));
-                                                          (ttag([VV$35$1027]) = lit$36$object)]}
-bind 37 document.documentElement : {VV : (HTMLElement  Immutable) | [(? extends_interface([VV;
-                                                                                           lit$36$HTMLElement]));
-                                                                     (? Prop([VV]));
-                                                                     (ttag([VV]) = lit$36$object);
-                                                                     (VV ~~ offset([document;
-                                                                                    lit$36$documentElement]))]}
-bind 38 window : {VV$35$1031 : (Window  Immutable) | [(? extends_interface([VV$35$1031;
-                                                                            lit$36$Window]));
-                                                      (? Prop([VV$35$1031]));
-                                                      (ttag([VV$35$1031]) = lit$36$object)]}
-bind 39 lq_tmp_nano_1 : {VV : (BitVec  Size32) | [(VV = (lit "#x00000008" (BitVec  Size32)))]}
-bind 40 a_SSA_0 : {VV : (BitVec  Size32) | [(VV ~~ lq_tmp_nano_1);
-                                            (VV = (lit "#x00000008" (BitVec  Size32)))]}
-bind 41 lq_tmp_nano_2 : {VV : (BitVec  Size32) | [(VV = (lit "#x00000008" (BitVec  Size32)))]}
-bind 42 b_SSA_1 : {VV : (BitVec  Size32) | [(VV ~~ lq_tmp_nano_2);
-                                            (VV = (lit "#x00000008" (BitVec  Size32)))]}
-bind 43 lq_tmp_nano_3 : {v : (BitVec  Size32) | [(v = bvor([a_SSA_0;
-                                                            a_SSA_0]))]}
-bind 44 lq_tmp_nano_6 : {v : Boolean | [(ttag([v]) = lit$36$boolean);
-                                        ((? Prop([v])) <=> (b_SSA_1 ~~ lq_tmp_nano_3))]}
-bind 45 lq_tmp_nano_9 : {VV$35$4 : Void | []}
-
-
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       42;
-       11;
-       27;
-       43;
-       12;
-       28;
-       44;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV$35$F1 : Boolean | [(ttag([VV$35$F1]) = lit$36$boolean);
-                             (VV$35$F1 ~~ lq_tmp_nano_6);
-                             (ttag([VV$35$F1]) = lit$36$boolean);
-                             ((? Prop([VV$35$F1])) <=> (b_SSA_1 ~~ lq_tmp_nano_3))]}
-  rhs {VV$35$F1 : Boolean | [(? Prop([VV$35$F1]))]}
-  id 1 tag [1]
-  // META constraint id 1 : /Users/rjhala/research/stack/liquid/refscript/tests/pos/simple/hex.ts:7:1-7:22
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       42;
-       11;
-       27;
-       43;
-       12;
-       28;
-       44;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV$35$F2 : Boolean | [(ttag([VV$35$F2]) = lit$36$boolean);
-                             (VV$35$F2 ~~ lq_tmp_nano_6);
-                             (ttag([VV$35$F2]) = lit$36$boolean);
-                             ((? Prop([VV$35$F2])) <=> (b_SSA_1 ~~ lq_tmp_nano_3))]}
-  rhs {VV$35$F2 : Boolean | [(? Prop([VV$35$F2]))]}
-  id 2 tag [1]
-  // META constraint id 2 : /Users/rjhala/research/stack/liquid/refscript/tests/pos/simple/hex.ts:7:1-7:22
-
-
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/pos/ho00.fq b/liquid-fixpoint/tests/pos/ho00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/ho00.fq
+++ /dev/null
@@ -1,21 +0,0 @@
-fixpoint "--allowho"
-fixpoint "--eliminate=all"
-
-bind 1 foo : {v : func(0, [Tuple; (MapReduce.List a)]) | []}
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | v = 12 }
-  rhs {v : int | $k0    }
-  id 1 tag [6]
-
-constraint:
-  env [ ]
-  lhs {v : int | $k0    }
-  rhs {v : int | 10 < v }
-  id 2 tag [6]
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
diff --git a/liquid-fixpoint/tests/pos/kvar-param-poly-00.fq b/liquid-fixpoint/tests/pos/kvar-param-poly-00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/kvar-param-poly-00.fq
+++ /dev/null
@@ -1,26 +0,0 @@
-
-// a kvar's params can be instantiated / substituted with values of a different
-// type. Here, K0(v:alpha, x:alpha) but is instantiated with int.
-
-qualif Bog(v:a, x:a) : (x = v)
-
-bind 1 x : {v: alpha | true}
-
-bind 2 a : {v: int | v = 10 }
-bind 3 b : {v: int | $k0[x:= a]}
-
-constraint:
-  env [ 1 ]
-  lhs {v : alpha  | v = x }
-  rhs {v : alpha  | $k0   } 
-  id 1 tag []
-
-constraint:
-  env [ 2; 3 ]
-  lhs {v : int | v = b  }
-  rhs {v : int | v = 10 }
-  id 2 tag []
-
-wf:
-  env [ 1 ]
-  reft {v: alpha | $k0}
diff --git a/liquid-fixpoint/tests/pos/len00-rename.fq b/liquid-fixpoint/tests/pos/len00-rename.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/len00-rename.fq
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-
-qualif ListZ(v : [@(0)]): (len v >= 0)
-
-constant len : (func(2, [(@(0)  @(1)); int]))
-
-bind 0 y : {v : [(Tuple int a)] | [len v >= 0]}
-
-constraint:
-  env [0]
-  lhs {v1 : [(Tuple int a)] | [v1 = y] }
-  rhs {v1 : [(Tuple int a)] | [$k0[v0 := v1]]   }
-  id 1 tag []
-
-constraint:
-  env []
-  lhs {v2 : [(Tuple int a)] | [$k0[v0 := v2]]             }
-  rhs {v2 : [(Tuple int a)] | [len v2 >= 0] }
-  id 2 tag []
-
-wf:
-  env [ ]
-  reft {v0 : [(Tuple int a)] | [$k0] }
diff --git a/liquid-fixpoint/tests/pos/len00.fq b/liquid-fixpoint/tests/pos/len00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/len00.fq
+++ /dev/null
@@ -1,24 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-
-qualif ListZ(v : [@(0)]): (len v >= 0)
-
-constant len : (func(2, [(@(0)  @(1)); int]))
-
-bind 0 yoink : {v : [(Tuple int a)] | [len v >= 0]}
-
-constraint:
-  env [0]
-  lhs {v : [(Tuple int a)] | [v = yoink] }
-  rhs {v : [(Tuple int a)] | [$k0]   }
-  id 1 tag []
-
-constraint:
-  env []
-  lhs {v : [(Tuple int a)] | [$k0]             }
-  rhs {v : [(Tuple int a)] | [len v >= 0] }
-  id 2 tag []
-
-wf:
-  env [ ]
-  reft {v : [(Tuple int a)] | [$k0] }
diff --git a/liquid-fixpoint/tests/pos/listqual.hs.fq b/liquid-fixpoint/tests/pos/listqual.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/listqual.hs.fq
+++ /dev/null
@@ -1,577 +0,0 @@
-qualif Append(v : [@(0)], xs : [@(0)], ys : [@(0)]): (len([v]) = (len([xs]) + len([ys]))) // "tests/pos/listqual.hs" (line 3, column 12)
-qualif Fst(v : @(1), y : @(0)): (v = fst([y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.spec" (line 29, column 8)
-qualif Snd(v : @(1), y : @(0)): (v = snd([y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.spec" (line 30, column 8)
-qualif Auto(v : [int]): (len([v]) = 2) // "tests/pos/listqual.hs" (line 10, column 1)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) > 0)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 13, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) = 0)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 14, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) = 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 16, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) >= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 17, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) > 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 18, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) = len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 20, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) >= len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 21, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) > len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 22, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) <= len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 23, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) < len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 24, column 8)
-qualif EqLen(v : int, xs : [@(0)]): (v = len([xs])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 26, column 8)
-qualif LenEq(v : [@(0)], x : int): (x = len([v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 27, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x + 1)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 28, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x - 1)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 29, column 8)
-qualif LenAcc(v : int, xs : [@(0)], n : int): (v = (len([xs]) + n)) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/GHC/Base.hquals" (line 30, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 3, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 4, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 5, column 8)
-qualif Bot(v : bool): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 6, column 8)
-qualif Bot(v : int): (0 = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 7, column 8)
-qualif CmpZ(v : @(0)): (v < 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 9, column 8)
-qualif CmpZ(v : @(0)): (v <= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 10, column 8)
-qualif CmpZ(v : @(0)): (v > 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 11, column 8)
-qualif CmpZ(v : @(0)): (v >= 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 12, column 8)
-qualif CmpZ(v : @(0)): (v = 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 13, column 8)
-qualif CmpZ(v : @(0)): (v != 0) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 14, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v < x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 16, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v <= x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 17, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v > x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 18, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v >= x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 19, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v = x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 20, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v != x) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 21, column 8)
-qualif One(v : int): (v = 1) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 28, column 8)
-qualif True(v : bool): (? v) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 29, column 8)
-qualif False(v : bool): (~ ((? v))) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 30, column 8)
-qualif True1(v : GHC.Types.Bool): (? Prop([v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 31, column 8)
-qualif False1(v : GHC.Types.Bool): (~ ((? Prop([v])))) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 32, column 8)
-qualif Papp(v : @(0), p : (Pred  @(0))): (? papp1([p;
-                                                   v])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 35, column 8)
-qualif Papp2(v : @(1), x : @(0), p : (Pred  @(1)  @(0))): (? papp2([p;
-                                                                    v;
-                                                                    x])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 38, column 8)
-qualif Papp3(v : @(2), x : @(0), y : @(1), p : (Pred  @(2)  @(0)  @(1))): (? papp3([p;
-                                                                                    v;
-                                                                                    x;
-                                                                                    y])) // "/Users/rjhala/research/stack/liquid/liquidhaskell/.stack-work/install/x86_64-osx/nightly-2015-09-24/7.10.2/share/x86_64-osx-ghc-7.10.2/liquidhaskell-0.5.0.2/include/Prelude.hquals" (line 41, column 8)
-
-
-cut $k__185
-cut $k__172
-cut $k__178
-cut $k__175
-cut $k__182
-cut $k__162
-cut $k__168
-cut $k__158
-cut $k__165
-
-
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant addrLen : (func(0, [int; int]))
-constant xsListSelector : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(6));
-                           @(3);
-                           @(4);
-                           @(5);
-                           @(7);
-                           bool]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant autolen : (func(1, [@(0); int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant null : (func(1, [[@(0)]; bool]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant GHC.Types.$91$$93$$35$6m : (func(1, [[@(0)]]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant GHC.Types.$58$$35$64 : (func(1, [@(0); [@(0)]; [@(0)]]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant xListSelector : (func(1, [[@(0)]; @(0)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(1, [(Pred  @(0)); @(0); bool]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant GHC.Types.I$35$$35$6c : (func(0, [int; int]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-
-
-bind 0 GHC.Types.$91$$93$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 1 GHC.Types.EQ$35$6U : {VV$35$125 : GHC.Types.Ordering | [(VV$35$125 = GHC.Types.EQ$35$6U)]}
-bind 2 GHC.Types.LT$35$6S : {VV$35$126 : GHC.Types.Ordering | [(VV$35$126 = GHC.Types.LT$35$6S)]}
-bind 3 GHC.Types.GT$35$6W : {VV$35$127 : GHC.Types.Ordering | [(VV$35$127 = GHC.Types.GT$35$6W)]}
-bind 4 GHC.Types.$91$$93$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 5 GHC.Types.GT$35$6W : {VV$35$150 : GHC.Types.Ordering | [(cmp([VV$35$150]) = GHC.Types.GT$35$6W)]}
-bind 6 GHC.Types.LT$35$6S : {VV$35$151 : GHC.Types.Ordering | [(cmp([VV$35$151]) = GHC.Types.LT$35$6S)]}
-bind 7 GHC.Types.EQ$35$6U : {VV$35$152 : GHC.Types.Ordering | [(cmp([VV$35$152]) = GHC.Types.EQ$35$6U)]}
-bind 8 GHC.Base.Nothing$35$r1d : {VV : func(1, [(GHC.Base.Maybe  @(0))]) | []}
-bind 9 ds_dwT : {VV$35$164 : [a_awA] | [$k__165;
-                                        (len([VV$35$164]) >= 0)]}
-bind 10 ys$35$awn : {VV$35$174 : [a_awA] | [$k__175[lq_tmp_x_187:=ds_dwT][lq_tmp_x_189:=ds_dwT][ds_dwT:=ds_dwT];
-                                            (len([VV$35$174]) >= 0)]}
-bind 11 lq_anf__dwU : {lq_tmp_x_195 : [a_awA] | [(lq_tmp_x_195 = ds_dwT);
-                                                 (len([lq_tmp_x_195]) >= 0)]}
-bind 12 lq_anf__dwU : {lq_tmp_x_198 : [a_awA] | [(lq_tmp_x_198 = ds_dwT);
-                                                 (len([lq_tmp_x_198]) >= 0);
-                                                 (len([lq_tmp_x_198]) >= 0)]}
-bind 13 lq_anf__dwU : {lq_tmp_x_198 : [a_awA] | [(lq_tmp_x_198 = ds_dwT);
-                                                 (len([lq_tmp_x_198]) >= 0);
-                                                 (len([lq_tmp_x_198]) = 0);
-                                                 ((? null([lq_tmp_x_198])) <=> true);
-                                                 (lq_tmp_x_198 = GHC.Types.$91$$93$$35$6m([]));
-                                                 (len([lq_tmp_x_198]) = 0);
-                                                 ((? null([lq_tmp_x_198])) <=> true);
-                                                 (len([lq_tmp_x_198]) >= 0)]}
-bind 14 lq_anf__dwU : {lq_tmp_x_208 : [a_awA] | [(lq_tmp_x_208 = ds_dwT);
-                                                 (len([lq_tmp_x_208]) >= 0);
-                                                 (len([lq_tmp_x_208]) >= 0)]}
-bind 15 x$35$awo : {VV : a_awA | [$k__158[VV$35$164:=lq_anf__dwU][lq_tmp_x_208:=lq_anf__dwU][lq_tmp_x_195:=lq_anf__dwU][VV$35$157:=VV]]}
-bind 16 xs$35$awp : {lq_tmp_x_218 : [a_awA] | [(len([lq_tmp_x_218]) >= 0)]}
-bind 17 lq_anf__dwU : {lq_tmp_x_208 : [a_awA] | [(lq_tmp_x_208 = ds_dwT);
-                                                 (len([lq_tmp_x_208]) >= 0);
-                                                 (len([lq_tmp_x_208]) = (1 + len([xs$35$awp])));
-                                                 ((? null([lq_tmp_x_208])) <=> false);
-                                                 (xsListSelector([lq_tmp_x_208]) = xs$35$awp);
-                                                 (xListSelector([lq_tmp_x_208]) = x$35$awo);
-                                                 (lq_tmp_x_208 = GHC.Types.$58$$35$64([x$35$awo;
-                                                                                       xs$35$awp]));
-                                                 (len([lq_tmp_x_208]) = (1 + len([xs$35$awp])));
-                                                 ((? null([lq_tmp_x_208])) <=> false);
-                                                 (xsListSelector([lq_tmp_x_208]) = xs$35$awp);
-                                                 (xListSelector([lq_tmp_x_208]) = x$35$awo);
-                                                 (len([lq_tmp_x_208]) >= 0)]}
-bind 18 lq_anf__dwV : {VV$35$184 : [a_awA] | [$k__185[lq_tmp_x_187:=xs$35$awp][lq_tmp_x_189:=xs$35$awp][ds_dwT:=xs$35$awp][lq_tmp_x_188:=ys$35$awn][ys$35$awn:=ys$35$awn][lq_tmp_x_190:=ys$35$awn];
-                                              (len([VV$35$184]) >= 0)]}
-bind 19 lq_tmp_x_259 : {VV : a_awA | []}
-bind 20 lq_anf__dwW : {lq_tmp_x_264 : int | [(lq_tmp_x_264 = (1  :  int))]}
-bind 21 lq_tmp_x_278 : {VV$35$279 : int | []}
-bind 22 lq_anf__dwX : {lq_tmp_x_270 : [int] | [(len([lq_tmp_x_270]) = 0);
-                                               ((? null([lq_tmp_x_270])) <=> true);
-                                               (len([lq_tmp_x_270]) >= 0)]}
-bind 23 lq_tmp_x_296 : {VV$35$297 : int | []}
-bind 24 lq_anf__dwY : {lq_tmp_x_284 : [int] | [(len([lq_tmp_x_284]) = (1 + len([lq_anf__dwX])));
-                                               ((? null([lq_tmp_x_284])) <=> false);
-                                               (xsListSelector([lq_tmp_x_284]) = lq_anf__dwX);
-                                               (xListSelector([lq_tmp_x_284]) = lq_anf__dwW);
-                                               (len([lq_tmp_x_284]) >= 0)]}
-bind 25 lq_anf__dwZ : {lq_tmp_x_305 : int | [(lq_tmp_x_305 = (2  :  int))]}
-bind 26 lq_tmp_x_319 : {VV$35$320 : int | []}
-bind 27 lq_anf__dx0 : {lq_tmp_x_311 : [int] | [(len([lq_tmp_x_311]) = 0);
-                                               ((? null([lq_tmp_x_311])) <=> true);
-                                               (len([lq_tmp_x_311]) >= 0)]}
-bind 28 lq_tmp_x_337 : {VV$35$338 : int | []}
-bind 29 lq_anf__dx1 : {lq_tmp_x_325 : [int] | [(len([lq_tmp_x_325]) = (1 + len([lq_anf__dx0])));
-                                               ((? null([lq_tmp_x_325])) <=> false);
-                                               (xsListSelector([lq_tmp_x_325]) = lq_anf__dx0);
-                                               (xListSelector([lq_tmp_x_325]) = lq_anf__dwZ);
-                                               (len([lq_tmp_x_325]) >= 0)]}
-bind 30 ListQual.boo$35$rlx : {v : [int] | [(len([v]) = 2);
-                                            (len([v]) >= 0)]}
-bind 31 VV$35$368 : {VV$35$368 : [int] | [$k__185[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1];
-                                          (len([VV$35$368]) >= 0)]}
-bind 32 VV$35$368 : {VV$35$368 : [int] | [$k__185[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1];
-                                          (len([VV$35$368]) >= 0)]}
-bind 33 VV$35$371 : {VV$35$371 : int | [$k__356[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_353:=lq_anf__dwY][VV$35$355:=VV$35$371][lq_tmp_x_350:=VV$35$368][lq_tmp_x_358:=VV$35$371];
-                                        $k__178[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$177:=VV$35$371][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][lq_tmp_x_358:=VV$35$371][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1]]}
-bind 34 VV$35$371 : {VV$35$371 : int | [$k__356[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_353:=lq_anf__dwY][VV$35$355:=VV$35$371][lq_tmp_x_350:=VV$35$368][lq_tmp_x_358:=VV$35$371];
-                                        $k__178[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$177:=VV$35$371][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][lq_tmp_x_358:=VV$35$371][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1]]}
-bind 35 fldList : {VV$35$374 : int | []}
-bind 36 VV$35$375 : {VV$35$375 : int | [$k__182[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$181:=VV$35$375][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][lq_tmp_x_180:=fldList][lq_tmp_x_349:=fldList][lq_tmp_x_358:=VV$35$375][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1]]}
-bind 37 VV$35$375 : {VV$35$375 : int | [$k__182[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$181:=VV$35$375][lq_tmp_x_350:=VV$35$368][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][lq_tmp_x_180:=fldList][lq_tmp_x_349:=fldList][lq_tmp_x_358:=VV$35$375][VV$35$184:=VV$35$368][lq_tmp_x_190:=lq_anf__dx1]]}
-bind 38 VV$35$378 : {VV$35$378 : [int] | [(VV$35$378 = lq_anf__dx1);
-                                          (len([VV$35$378]) >= 0)]}
-bind 39 VV$35$378 : {VV$35$378 : [int] | [(VV$35$378 = lq_anf__dx1);
-                                          (len([VV$35$378]) >= 0)]}
-bind 40 VV$35$381 : {VV$35$381 : int | [$k__331[lq_tmp_x_329:=lq_anf__dx0][lq_tmp_x_363:=VV$35$381][VV$35$330:=VV$35$381][lq_tmp_x_366:=VV$35$378][lq_tmp_x_328:=lq_anf__dwZ][lq_tmp_x_333:=VV$35$381][lq_tmp_x_325:=VV$35$378]]}
-bind 41 VV$35$381 : {VV$35$381 : int | [$k__331[lq_tmp_x_329:=lq_anf__dx0][lq_tmp_x_363:=VV$35$381][VV$35$330:=VV$35$381][lq_tmp_x_366:=VV$35$378][lq_tmp_x_328:=lq_anf__dwZ][lq_tmp_x_333:=VV$35$381][lq_tmp_x_325:=VV$35$378]]}
-bind 42 lq_tmp_x_347 : {VV$35$384 : int | []}
-bind 43 VV$35$385 : {VV$35$385 : int | [$k__335[lq_tmp_x_365:=VV$35$385][lq_tmp_x_329:=lq_anf__dx0][lq_tmp_x_324:=lq_tmp_x_347][lq_tmp_x_364:=lq_tmp_x_347][lq_tmp_x_366:=VV$35$378][lq_tmp_x_328:=lq_anf__dwZ][lq_tmp_x_333:=VV$35$385][lq_tmp_x_337:=lq_tmp_x_347][lq_tmp_x_325:=VV$35$378][VV$35$334:=VV$35$385]]}
-bind 44 VV$35$385 : {VV$35$385 : int | [$k__335[lq_tmp_x_365:=VV$35$385][lq_tmp_x_329:=lq_anf__dx0][lq_tmp_x_324:=lq_tmp_x_347][lq_tmp_x_364:=lq_tmp_x_347][lq_tmp_x_366:=VV$35$378][lq_tmp_x_328:=lq_anf__dwZ][lq_tmp_x_333:=VV$35$385][lq_tmp_x_337:=lq_tmp_x_347][lq_tmp_x_325:=VV$35$378][VV$35$334:=VV$35$385]]}
-bind 45 VV$35$388 : {VV$35$388 : [int] | [(VV$35$388 = lq_anf__dwY);
-                                          (len([VV$35$388]) >= 0)]}
-bind 46 VV$35$388 : {VV$35$388 : [int] | [(VV$35$388 = lq_anf__dwY);
-                                          (len([VV$35$388]) >= 0)]}
-bind 47 VV$35$391 : {VV$35$391 : int | [$k__290[VV$35$289:=VV$35$391][lq_tmp_x_288:=lq_anf__dwX][lq_tmp_x_292:=VV$35$391][lq_tmp_x_362:=VV$35$388][lq_tmp_x_359:=VV$35$391][lq_tmp_x_284:=VV$35$388][lq_tmp_x_287:=lq_anf__dwW]]}
-bind 48 VV$35$391 : {VV$35$391 : int | [$k__290[VV$35$289:=VV$35$391][lq_tmp_x_288:=lq_anf__dwX][lq_tmp_x_292:=VV$35$391][lq_tmp_x_362:=VV$35$388][lq_tmp_x_359:=VV$35$391][lq_tmp_x_284:=VV$35$388][lq_tmp_x_287:=lq_anf__dwW]]}
-bind 49 lq_tmp_x_345 : {VV$35$394 : int | []}
-bind 50 VV$35$395 : {VV$35$395 : int | [$k__294[lq_tmp_x_361:=VV$35$395][lq_tmp_x_288:=lq_anf__dwX][lq_tmp_x_360:=lq_tmp_x_345][VV$35$293:=VV$35$395][lq_tmp_x_292:=VV$35$395][lq_tmp_x_362:=VV$35$388][lq_tmp_x_296:=lq_tmp_x_345][lq_tmp_x_283:=lq_tmp_x_345][lq_tmp_x_284:=VV$35$388][lq_tmp_x_287:=lq_anf__dwW]]}
-bind 51 VV$35$395 : {VV$35$395 : int | [$k__294[lq_tmp_x_361:=VV$35$395][lq_tmp_x_288:=lq_anf__dwX][lq_tmp_x_360:=lq_tmp_x_345][VV$35$293:=VV$35$395][lq_tmp_x_292:=VV$35$395][lq_tmp_x_362:=VV$35$388][lq_tmp_x_296:=lq_tmp_x_345][lq_tmp_x_283:=lq_tmp_x_345][lq_tmp_x_284:=VV$35$388][lq_tmp_x_287:=lq_anf__dwW]]}
-bind 52 VV$35$398 : {VV$35$398 : [int] | [(VV$35$398 = lq_anf__dx0);
-                                          (len([VV$35$398]) >= 0)]}
-bind 53 VV$35$398 : {VV$35$398 : [int] | [(VV$35$398 = lq_anf__dx0);
-                                          (len([VV$35$398]) >= 0)]}
-bind 54 VV$35$401 : {VV$35$401 : int | [$k__313[lq_tmp_x_340:=VV$35$401][lq_tmp_x_343:=VV$35$398][VV$35$312:=VV$35$401][lq_tmp_x_311:=VV$35$398][lq_tmp_x_315:=VV$35$401]]}
-bind 55 VV$35$401 : {VV$35$401 : int | [$k__313[lq_tmp_x_340:=VV$35$401][lq_tmp_x_343:=VV$35$398][VV$35$312:=VV$35$401][lq_tmp_x_311:=VV$35$398][lq_tmp_x_315:=VV$35$401]]}
-bind 56 lq_tmp_x_322 : {VV$35$404 : int | []}
-bind 57 VV$35$405 : {VV$35$405 : int | [$k__317[lq_tmp_x_342:=VV$35$405][lq_tmp_x_343:=VV$35$398][lq_tmp_x_341:=lq_tmp_x_322][VV$35$316:=VV$35$405][lq_tmp_x_319:=lq_tmp_x_322][lq_tmp_x_311:=VV$35$398][lq_tmp_x_310:=lq_tmp_x_322][lq_tmp_x_315:=VV$35$405]]}
-bind 58 VV$35$405 : {VV$35$405 : int | [$k__317[lq_tmp_x_342:=VV$35$405][lq_tmp_x_343:=VV$35$398][lq_tmp_x_341:=lq_tmp_x_322][VV$35$316:=VV$35$405][lq_tmp_x_319:=lq_tmp_x_322][lq_tmp_x_311:=VV$35$398][lq_tmp_x_310:=lq_tmp_x_322][lq_tmp_x_315:=VV$35$405]]}
-bind 59 VV$35$408 : {VV$35$408 : int | [(VV$35$408 = lq_anf__dwZ)]}
-bind 60 VV$35$408 : {VV$35$408 : int | [(VV$35$408 = lq_anf__dwZ)]}
-bind 61 VV$35$411 : {VV$35$411 : int | [(VV$35$411 = 2)]}
-bind 62 VV$35$411 : {VV$35$411 : int | [(VV$35$411 = 2)]}
-bind 63 VV$35$414 : {VV$35$414 : [int] | [(VV$35$414 = lq_anf__dwX);
-                                          (len([VV$35$414]) >= 0)]}
-bind 64 VV$35$414 : {VV$35$414 : [int] | [(VV$35$414 = lq_anf__dwX);
-                                          (len([VV$35$414]) >= 0)]}
-bind 65 VV$35$417 : {VV$35$417 : int | [$k__272[lq_tmp_x_274:=VV$35$417][VV$35$271:=VV$35$417][lq_tmp_x_302:=VV$35$414][lq_tmp_x_299:=VV$35$417][lq_tmp_x_270:=VV$35$414]]}
-bind 66 VV$35$417 : {VV$35$417 : int | [$k__272[lq_tmp_x_274:=VV$35$417][VV$35$271:=VV$35$417][lq_tmp_x_302:=VV$35$414][lq_tmp_x_299:=VV$35$417][lq_tmp_x_270:=VV$35$414]]}
-bind 67 lq_tmp_x_281 : {VV$35$420 : int | []}
-bind 68 VV$35$421 : {VV$35$421 : int | [$k__276[lq_tmp_x_269:=lq_tmp_x_281][VV$35$275:=VV$35$421][lq_tmp_x_274:=VV$35$421][lq_tmp_x_301:=VV$35$421][lq_tmp_x_302:=VV$35$414][lq_tmp_x_300:=lq_tmp_x_281][lq_tmp_x_278:=lq_tmp_x_281][lq_tmp_x_270:=VV$35$414]]}
-bind 69 VV$35$421 : {VV$35$421 : int | [$k__276[lq_tmp_x_269:=lq_tmp_x_281][VV$35$275:=VV$35$421][lq_tmp_x_274:=VV$35$421][lq_tmp_x_301:=VV$35$421][lq_tmp_x_302:=VV$35$414][lq_tmp_x_300:=lq_tmp_x_281][lq_tmp_x_278:=lq_tmp_x_281][lq_tmp_x_270:=VV$35$414]]}
-bind 70 VV$35$424 : {VV$35$424 : int | [(VV$35$424 = lq_anf__dwW)]}
-bind 71 VV$35$424 : {VV$35$424 : int | [(VV$35$424 = lq_anf__dwW)]}
-bind 72 VV$35$427 : {VV$35$427 : int | [(VV$35$427 = 1)]}
-bind 73 VV$35$427 : {VV$35$427 : int | [(VV$35$427 = 1)]}
-bind 74 VV$35$430 : {VV$35$430 : [a_awA] | [(len([VV$35$430]) = (1 + len([lq_anf__dwV])));
-                                            ((? null([VV$35$430])) <=> false);
-                                            (xsListSelector([VV$35$430]) = lq_anf__dwV);
-                                            (xListSelector([VV$35$430]) = x$35$awo);
-                                            (len([VV$35$430]) >= 0)]}
-bind 75 VV$35$430 : {VV$35$430 : [a_awA] | [(len([VV$35$430]) = (1 + len([lq_anf__dwV])));
-                                            ((? null([VV$35$430])) <=> false);
-                                            (xsListSelector([VV$35$430]) = lq_anf__dwV);
-                                            (xListSelector([VV$35$430]) = x$35$awo);
-                                            (len([VV$35$430]) >= 0)]}
-bind 76 VV$35$253 : {VV$35$253 : a_awA | [$k__254[lq_tmp_x_252:=lq_anf__dwV][lq_tmp_x_248:=VV$35$430][lq_tmp_x_251:=x$35$awo]]}
-bind 77 lq_tmp_x_180 : {VV : a_awA | []}
-bind 78 VV$35$253 : {VV$35$253 : a_awA | [$k__257[lq_tmp_x_252:=lq_anf__dwV][VV$35$256:=VV$35$253][lq_tmp_x_248:=VV$35$430][lq_tmp_x_259:=lq_tmp_x_180][lq_tmp_x_247:=lq_tmp_x_180][lq_tmp_x_251:=x$35$awo]]}
-bind 79 VV$35$436 : {VV$35$436 : [a_awA] | [(VV$35$436 = lq_anf__dwV);
-                                            (len([VV$35$436]) >= 0)]}
-bind 80 VV$35$436 : {VV$35$436 : [a_awA] | [(VV$35$436 = lq_anf__dwV);
-                                            (len([VV$35$436]) >= 0)]}
-bind 81 VV$35$237 : {VV$35$237 : a_awA | [$k__238[lq_tmp_x_262:=VV$35$436][lq_tmp_x_189:=xs$35$awp][VV$35$184:=VV$35$436][lq_tmp_x_190:=ys$35$awn];
-                                          $k__178[lq_tmp_x_262:=VV$35$436][lq_tmp_x_187:=xs$35$awp][lq_tmp_x_189:=xs$35$awp][ds_dwT:=xs$35$awp][VV$35$177:=VV$35$237][lq_tmp_x_188:=ys$35$awn][ys$35$awn:=ys$35$awn][VV$35$184:=VV$35$436][lq_tmp_x_190:=ys$35$awn]]}
-bind 82 lq_tmp_x_245 : {VV : a_awA | []}
-bind 83 VV$35$237 : {VV$35$237 : a_awA | [$k__182[lq_tmp_x_262:=VV$35$436][lq_tmp_x_187:=xs$35$awp][lq_tmp_x_189:=xs$35$awp][ds_dwT:=xs$35$awp][VV$35$181:=VV$35$237][lq_tmp_x_261:=lq_tmp_x_245][lq_tmp_x_188:=ys$35$awn][ys$35$awn:=ys$35$awn][lq_tmp_x_180:=lq_tmp_x_245][VV$35$184:=VV$35$436][lq_tmp_x_190:=ys$35$awn]]}
-bind 84 VV : {VV : a_awA | [(VV = x$35$awo)]}
-bind 85 VV$35$443 : {VV$35$443 : [a_awA] | [(VV$35$443 = ys$35$awn);
-                                            (len([VV$35$443]) >= 0)]}
-bind 86 VV$35$443 : {VV$35$443 : [a_awA] | [(VV$35$443 = ys$35$awn);
-                                            (len([VV$35$443]) >= 0)]}
-bind 87 VV : {VV : a_awA | [$k__168[lq_tmp_x_187:=ds_dwT][VV$35$167:=VV][lq_tmp_x_189:=ds_dwT][ds_dwT:=ds_dwT][lq_tmp_x_243:=VV$35$443][VV$35$174:=VV$35$443]]}
-bind 88 lq_tmp_x_170 : {VV : a_awA | []}
-bind 89 VV : {VV : a_awA | [$k__172[lq_tmp_x_187:=ds_dwT][lq_tmp_x_189:=ds_dwT][lq_tmp_x_242:=lq_tmp_x_170][ds_dwT:=ds_dwT][lq_tmp_x_243:=VV$35$443][lq_tmp_x_170:=lq_tmp_x_170][VV$35$174:=VV$35$443][VV$35$171:=VV]]}
-bind 90 VV$35$449 : {VV$35$449 : [a_awA] | [(VV$35$449 = xs$35$awp);
-                                            (len([VV$35$449]) >= 0)]}
-bind 91 VV$35$449 : {VV$35$449 : [a_awA] | [(VV$35$449 = xs$35$awp);
-                                            (len([VV$35$449]) >= 0)]}
-bind 92 VV : {VV : a_awA | [$k__158[lq_tmp_x_215:=x$35$awo][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_208:=lq_anf__dwU][lq_tmp_x_241:=VV$35$449][lq_tmp_x_195:=lq_anf__dwU][VV$35$157:=VV];
-                            $k__162[lq_tmp_x_215:=x$35$awo][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_207:=x$35$awo][lq_tmp_x_208:=lq_anf__dwU][VV$35$161:=VV][lq_tmp_x_160:=x$35$awo][lq_tmp_x_241:=VV$35$449][lq_tmp_x_195:=lq_anf__dwU][lq_tmp_x_194:=x$35$awo]]}
-bind 93 lq_tmp_x_160 : {VV : a_awA | []}
-bind 94 VV : {VV : a_awA | [$k__162[lq_tmp_x_215:=x$35$awo][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_207:=lq_tmp_x_160][lq_tmp_x_208:=lq_anf__dwU][VV$35$161:=VV][lq_tmp_x_160:=lq_tmp_x_160][lq_tmp_x_241:=VV$35$449][lq_tmp_x_217:=lq_tmp_x_160][lq_tmp_x_195:=lq_anf__dwU][lq_tmp_x_240:=lq_tmp_x_160][lq_tmp_x_194:=lq_tmp_x_160]]}
-bind 95 VV$35$455 : {VV$35$455 : [a_awA] | [(VV$35$455 = ys$35$awn);
-                                            (len([VV$35$455]) >= 0)]}
-bind 96 VV$35$455 : {VV$35$455 : [a_awA] | [(VV$35$455 = ys$35$awn);
-                                            (len([VV$35$455]) >= 0)]}
-bind 97 VV : {VV : a_awA | [$k__168[lq_tmp_x_187:=ds_dwT][VV$35$167:=VV][lq_tmp_x_189:=ds_dwT][lq_tmp_x_206:=VV$35$455][ds_dwT:=ds_dwT][VV$35$174:=VV$35$455]]}
-bind 98 lq_tmp_x_180 : {VV : a_awA | []}
-bind 99 VV : {VV : a_awA | [$k__172[lq_tmp_x_187:=ds_dwT][lq_tmp_x_189:=ds_dwT][lq_tmp_x_206:=VV$35$455][ds_dwT:=ds_dwT][lq_tmp_x_205:=lq_tmp_x_180][lq_tmp_x_170:=lq_tmp_x_180][VV$35$174:=VV$35$455][VV$35$171:=VV]]}
-bind 100 VV$35$355 : {VV$35$355 : int | [$k__356]}
-bind 101 VV$35$334 : {VV$35$334 : int | [$k__335]}
-bind 102 VV$35$330 : {VV$35$330 : int | [$k__331]}
-bind 103 VV$35$316 : {VV$35$316 : int | [$k__317]}
-bind 104 VV$35$312 : {VV$35$312 : int | [$k__313]}
-bind 105 VV$35$293 : {VV$35$293 : int | [$k__294]}
-bind 106 VV$35$289 : {VV$35$289 : int | [$k__290]}
-bind 107 VV$35$275 : {VV$35$275 : int | [$k__276]}
-bind 108 VV$35$271 : {VV$35$271 : int | [$k__272]}
-bind 109 VV$35$164 : {VV$35$164 : [a_awA] | [$k__165;
-                                             (len([VV$35$164]) >= 0)]}
-bind 110 lq_tmp_x_160 : {VV : a_awA | []}
-bind 111 ds_dwT : {VV$35$164 : [a_awA] | [$k__165;
-                                          (len([VV$35$164]) >= 0)]}
-bind 112 VV$35$174 : {VV$35$174 : [a_awA] | [$k__175;
-                                             (len([VV$35$174]) >= 0)]}
-bind 113 lq_tmp_x_170 : {VV : a_awA | []}
-bind 114 ys$35$awn : {VV$35$174 : [a_awA] | [$k__175;
-                                             (len([VV$35$174]) >= 0)]}
-bind 115 VV$35$184 : {VV$35$184 : [a_awA] | [$k__185;
-                                             (len([VV$35$184]) >= 0)]}
-bind 116 lq_tmp_x_180 : {VV : a_awA | []}
-
-
-
-
-constraint:
-  env [0; 64; 1; 2; 3; 67; 4; 20; 68; 5; 6; 22; 7; 8]
-  lhs {VV$35$F16 : int | [$k__276[VV$35$421:=VV$35$F16][lq_tmp_x_269:=lq_tmp_x_281][VV$35$275:=VV$35$F16][lq_tmp_x_274:=VV$35$F16][lq_tmp_x_301:=VV$35$F16][VV$35$F:=VV$35$F16][lq_tmp_x_302:=VV$35$414][lq_tmp_x_300:=lq_tmp_x_281][lq_tmp_x_278:=lq_tmp_x_281][lq_tmp_x_270:=VV$35$414]]}
-  rhs {VV$35$F16 : int | [$k__294[VV$35$421:=VV$35$F16][lq_tmp_x_282:=VV$35$414][VV$35$F:=VV$35$F16][VV$35$293:=VV$35$F16][lq_tmp_x_292:=VV$35$F16][lq_tmp_x_296:=lq_tmp_x_281][lq_tmp_x_287:=lq_anf__dwW]]}
-  id 16 tag [2]
-  // META constraint id 16 : tests/pos/listqual.hs:10:1-3
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 7; 8; 24; 25; 27; 29; 31]
-  lhs {VV$35$F1 : [int] | [$k__185[lq_tmp_x_354:=lq_anf__dx1][lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$F:=VV$35$F1][lq_tmp_x_350:=VV$35$F1][VV$35$368:=VV$35$F1][lq_tmp_x_188:=lq_anf__dx1][ys$35$awn:=lq_anf__dx1][VV$35$184:=VV$35$F1][lq_tmp_x_190:=lq_anf__dx1];
-                           (len([VV$35$F1]) >= 0)]}
-  rhs {VV$35$F1 : [int] | [(len([VV$35$F1]) = 2)]}
-  id 1 tag [2]
-  // META constraint id 1 : tests/pos/listqual.hs:10:1-20
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 70; 7; 8]
-  lhs {VV$35$F17 : int | [(VV$35$F17 = lq_anf__dwW)]}
-  rhs {VV$35$F17 : int | [$k__290[VV$35$424:=VV$35$F17][VV$35$289:=VV$35$F17][VV$35$F:=VV$35$F17][lq_tmp_x_292:=VV$35$F17]]}
-  id 17 tag [2]
-  // META constraint id 17 : tests/pos/listqual.hs:10:15
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 91; 92; 14; 15]
-  lhs {VV$35$F33 : a_awA | [$k__158[lq_tmp_x_215:=x$35$awo][VV:=VV$35$F33][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_208:=lq_anf__dwU][lq_tmp_x_241:=VV$35$449][VV$35$F:=VV$35$F33][lq_tmp_x_195:=lq_anf__dwU][VV$35$157:=VV$35$F33];
-                            $k__162[lq_tmp_x_215:=x$35$awo][VV:=VV$35$F33][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_207:=x$35$awo][lq_tmp_x_208:=lq_anf__dwU][VV$35$161:=VV$35$F33][lq_tmp_x_160:=x$35$awo][lq_tmp_x_241:=VV$35$449][VV$35$F:=VV$35$F33][lq_tmp_x_195:=lq_anf__dwU][lq_tmp_x_194:=x$35$awo]]}
-  rhs {VV$35$F33 : a_awA | [$k__158[VV$35$164:=VV$35$449][VV$35$F:=VV$35$F33][VV$35$237:=VV$35$F33][VV$35$157:=VV$35$F33]]}
-  id 33 tag [1]
-  // META constraint id 33 : tests/pos/listqual.hs:6:31-32
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 38; 7; 8; 24; 25; 27; 29]
-  lhs {VV$35$F2 : [int] | [(VV$35$F2 = lq_anf__dx1);
-                           (len([VV$35$F2]) >= 0)]}
-  rhs {VV$35$F2 : [int] | [$k__175[lq_tmp_x_187:=lq_anf__dwY][lq_tmp_x_189:=lq_anf__dwY][lq_tmp_x_353:=lq_anf__dwY][ds_dwT:=lq_anf__dwY][VV$35$F:=VV$35$F2][lq_tmp_x_348:=VV$35$F2][VV$35$174:=VV$35$F2][VV$35$378:=VV$35$F2]]}
-  id 2 tag [2]
-  // META constraint id 2 : tests/pos/listqual.hs:10:18-20
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 18; 3; 4; 5; 6; 7; 8; 9; 10; 74; 11; 14; 15]
-  lhs {VV$35$F18 : [a_awA] | [(len([VV$35$F18]) = (1 + len([lq_anf__dwV])));
-                              ((? null([VV$35$F18])) <=> false);
-                              (xsListSelector([VV$35$F18]) = lq_anf__dwV);
-                              (xListSelector([VV$35$F18]) = x$35$awo);
-                              (len([VV$35$F18]) >= 0)]}
-  rhs {VV$35$F18 : [a_awA] | [$k__185[lq_tmp_x_187:=ds_dwT][lq_tmp_x_189:=ds_dwT][VV$35$430:=VV$35$F18][ds_dwT:=ds_dwT][VV$35$F:=VV$35$F18][lq_tmp_x_188:=ys$35$awn][ys$35$awn:=ys$35$awn][VV$35$184:=VV$35$F18][lq_tmp_x_190:=ys$35$awn]]}
-  id 18 tag [1]
-  // META constraint id 18 : tests/pos/listqual.hs:6:20-35
-
-
-constraint:
-  env [0;
-       16;
-       1;
-       17;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       93;
-       14;
-       94;
-       15]
-  lhs {VV$35$F34 : a_awA | [$k__162[lq_tmp_x_215:=x$35$awo][VV:=VV$35$F34][lq_tmp_x_218:=VV$35$449][VV$35$164:=lq_anf__dwU][lq_tmp_x_207:=lq_tmp_x_160][lq_tmp_x_208:=lq_anf__dwU][VV$35$161:=VV$35$F34][lq_tmp_x_160:=lq_tmp_x_160][lq_tmp_x_241:=VV$35$449][VV$35$F:=VV$35$F34][lq_tmp_x_217:=lq_tmp_x_160][lq_tmp_x_195:=lq_anf__dwU][lq_tmp_x_240:=lq_tmp_x_160][lq_tmp_x_194:=lq_tmp_x_160]]}
-  rhs {VV$35$F34 : a_awA | [$k__162[VV$35$164:=VV$35$449][VV$35$161:=VV$35$F34][VV$35$F:=VV$35$F34][VV$35$237:=VV$35$F34]]}
-  id 34 tag [1]
-  // META constraint id 34 : tests/pos/listqual.hs:6:31-32
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 95]
-  lhs {VV$35$F35 : [a_awA] | [(VV$35$F35 = ys$35$awn);
-                              (len([VV$35$F35]) >= 0)]}
-  rhs {VV$35$F35 : [a_awA] | [$k__185[lq_tmp_x_187:=ds_dwT][lq_tmp_x_189:=ds_dwT][ds_dwT:=ds_dwT][VV$35$F:=VV$35$F35][VV$35$455:=VV$35$F35][lq_tmp_x_188:=ys$35$awn][ys$35$awn:=ys$35$awn][VV$35$184:=VV$35$F35][lq_tmp_x_190:=ys$35$awn]]}
-  id 35 tag [1]
-  // META constraint id 35 : tests/pos/listqual.hs:5:20-21
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 7; 8; 24; 25; 27; 29; 45]
-  lhs {VV$35$F6 : [int] | [(VV$35$F6 = lq_anf__dwY);
-                           (len([VV$35$F6]) >= 0)]}
-  rhs {VV$35$F6 : [int] | [$k__165[VV$35$164:=VV$35$F6][VV$35$F:=VV$35$F6][lq_tmp_x_346:=VV$35$F6][VV$35$388:=VV$35$F6]]}
-  id 6 tag [2]
-  // META constraint id 6 : tests/pos/listqual.hs:10:14-16
-
-
-constraint:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 7; 8; 24; 25; 27; 29; 46; 47]
-  lhs {VV$35$F8 : int | [$k__290[VV$35$289:=VV$35$F8][lq_tmp_x_288:=lq_anf__dwX][VV$35$F:=VV$35$F8][lq_tmp_x_292:=VV$35$F8][lq_tmp_x_362:=VV$35$388][lq_tmp_x_359:=VV$35$F8][lq_tmp_x_284:=VV$35$388][VV$35$391:=VV$35$F8][lq_tmp_x_287:=lq_anf__dwW]]}
-  rhs {VV$35$F8 : int | [$k__158[VV$35$164:=VV$35$388][VV$35$F:=VV$35$F8][lq_tmp_x_346:=VV$35$388][VV$35$157:=VV$35$F8][lq_tmp_x_358:=VV$35$F8][VV$35$391:=VV$35$F8]]}
-  id 8 tag [2]
-  // META constraint id 8 : tests/pos/listqual.hs:10:14-16
-
-
-constraint:
-  env [0; 1; 49; 2; 50; 3; 4; 20; 5; 6; 22; 7; 8; 24; 25; 27; 29; 46]
-  lhs {VV$35$F9 : int | [$k__294[lq_tmp_x_361:=VV$35$F9][lq_tmp_x_288:=lq_anf__dwX][VV$35$F:=VV$35$F9][lq_tmp_x_360:=lq_tmp_x_345][VV$35$293:=VV$35$F9][lq_tmp_x_292:=VV$35$F9][VV$35$395:=VV$35$F9][lq_tmp_x_362:=VV$35$388][lq_tmp_x_296:=lq_tmp_x_345][lq_tmp_x_283:=lq_tmp_x_345][lq_tmp_x_284:=VV$35$388][lq_tmp_x_287:=lq_anf__dwW]]}
-  rhs {VV$35$F9 : int | [$k__162[VV$35$164:=VV$35$388][VV$35$161:=VV$35$F9][lq_tmp_x_160:=lq_tmp_x_345][VV$35$F:=VV$35$F9][lq_tmp_x_346:=VV$35$388][VV$35$395:=VV$35$F9][lq_tmp_x_358:=VV$35$F9]]}
-  id 9 tag [2]
-  // META constraint id 9 : tests/pos/listqual.hs:10:14-16
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 3; 4; 5; 85; 6; 7; 8; 9; 10; 11; 14; 15]
-  lhs {VV$35$F25 : [a_awA] | [(VV$35$F25 = ys$35$awn);
-                              (len([VV$35$F25]) >= 0)]}
-  rhs {VV$35$F25 : [a_awA] | [$k__175[lq_tmp_x_187:=xs$35$awp][lq_tmp_x_189:=xs$35$awp][ds_dwT:=xs$35$awp][VV$35$F:=VV$35$F25][VV$35$174:=VV$35$F25][VV$35$443:=VV$35$F25]]}
-  id 25 tag [1]
-  // META constraint id 25 : tests/pos/listqual.hs:6:34-35
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 3; 4; 5; 6; 7; 8; 9; 10; 90; 11; 14; 15]
-  lhs {VV$35$F29 : [a_awA] | [(VV$35$F29 = xs$35$awp);
-                              (len([VV$35$F29]) >= 0)]}
-  rhs {VV$35$F29 : [a_awA] | [$k__165[VV$35$164:=VV$35$F29][VV$35$F:=VV$35$F29][VV$35$449:=VV$35$F29]]}
-  id 29 tag [1]
-  // META constraint id 29 : tests/pos/listqual.hs:6:31-32
-
-
-constraint:
-  env [0; 64; 1; 65; 2; 3; 4; 20; 5; 6; 22; 7; 8]
-  lhs {VV$35$F14 : int | [$k__272[lq_tmp_x_274:=VV$35$F14][VV$35$271:=VV$35$F14][VV$35$F:=VV$35$F14][lq_tmp_x_302:=VV$35$414][VV$35$417:=VV$35$F14][lq_tmp_x_299:=VV$35$F14][lq_tmp_x_270:=VV$35$414]]}
-  rhs {VV$35$F14 : int | [$k__290[lq_tmp_x_282:=VV$35$414][VV$35$289:=VV$35$F14][VV$35$F:=VV$35$F14][VV$35$417:=VV$35$F14][lq_tmp_x_292:=VV$35$F14][lq_tmp_x_287:=lq_anf__dwW]]}
-  id 14 tag [2]
-  // META constraint id 14 : tests/pos/listqual.hs:10:1-3
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 3; 4; 5; 6; 7; 8; 9; 10; 90; 11; 14; 15]
-  lhs {VV$35$F30 : [a_awA] | [(VV$35$F30 = xs$35$awp);
-                              (len([VV$35$F30]) >= 0)]}
-  rhs {VV$35$F30 : [a_awA] | [(len([VV$35$F30]) < len([ds_dwT]))]}
-  id 30 tag [1]
-  // META constraint id 30 : tests/pos/listqual.hs:6:31-32
-
-
-constraint:
-  env [0; 64; 1; 65; 2; 3; 4; 20; 5; 6; 22; 7; 8]
-  lhs {VV$35$F15 : int | [$k__272[lq_tmp_x_274:=VV$35$F15][VV$35$271:=VV$35$F15][VV$35$F:=VV$35$F15][lq_tmp_x_302:=VV$35$414][VV$35$417:=VV$35$F15][lq_tmp_x_299:=VV$35$F15][lq_tmp_x_270:=VV$35$414]]}
-  rhs {VV$35$F15 : int | [$k__294[lq_tmp_x_282:=VV$35$414][VV$35$F:=VV$35$F15][VV$35$417:=VV$35$F15][VV$35$293:=VV$35$F15][lq_tmp_x_292:=VV$35$F15][lq_tmp_x_296:=lq_anf__dwW][lq_tmp_x_287:=lq_anf__dwW]]}
-  id 15 tag [2]
-  // META constraint id 15 : tests/pos/listqual.hs:10:1-3
-
-
-constraint:
-  env [0; 16; 1; 17; 2; 3; 4; 5; 6; 7; 8; 9; 10; 90; 11; 14; 15]
-  lhs {VV$35$F31 : [a_awA] | [(VV$35$F31 = xs$35$awp);
-                              (len([VV$35$F31]) >= 0)]}
-  rhs {VV$35$F31 : [a_awA] | [(len([VV$35$F31]) >= 0)]}
-  id 31 tag [1]
-  // META constraint id 31 : tests/pos/listqual.hs:6:31-32
-
-
-
-
-wf:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 7; 23; 8]
-  reft {VV$35$293 : int | [$k__294]}
-  
-  // META wf  : tests/pos/listqual.hs:10:1-3
-
-
-wf:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 22; 7; 8]
-  reft {VV$35$289 : int | [$k__290]}
-  
-  // META wf  : tests/pos/listqual.hs:10:1-3
-
-
-wf:
-  env [0; 1; 2; 3; 4; 20; 5; 21; 6; 7; 8]
-  reft {VV$35$275 : int | [$k__276]}
-  
-  // META wf  : tests/pos/listqual.hs:10:1-3
-
-
-wf:
-  env [0; 1; 2; 3; 4; 20; 5; 6; 7; 8]
-  reft {VV$35$271 : int | [$k__272]}
-  
-  // META wf  : tests/pos/listqual.hs:10:1-3
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8]
-  reft {VV$35$164 : [a_awA] | [$k__165]}
-  
-  // META wf  : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 109]
-  reft {VV$35$157 : a_awA | [$k__158]}
-  
-  // META wf  : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 110]
-  reft {VV$35$161 : a_awA | [$k__162]}
-  
-  // META wf  : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 111]
-  reft {VV$35$174 : [a_awA] | [$k__175]}
-  
-  // META wf  : <no location info>
-
-
-wf:
-  env [0; 1; 2; 114; 3; 4; 5; 6; 7; 8; 111]
-  reft {VV$35$184 : [a_awA] | [$k__185]}
-  
-  // META wf  : <no location info>
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/pos/literals.fq b/liquid-fixpoint/tests/pos/literals.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals.fq
+++ /dev/null
@@ -1,13 +0,0 @@
-//adapted from LH test Strings.hs
-
-constant lit#bar : (Str)
-constant lit#foo : (Str)
-
-distinct lit#bar : (Str)
-distinct lit#foo : (Str)
-
-constraint:
-  env []
-  lhs {VV#F1 : int | []}
-  rhs {VV#F1 : int | [(lit#bar != lit#foo)]}
-  id 1 tag [6]
diff --git a/liquid-fixpoint/tests/pos/literals01.fq b/liquid-fixpoint/tests/pos/literals01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals01.fq
+++ /dev/null
@@ -1,9 +0,0 @@
-
-constant lit$cat : (Str)
-distinct lit$cat : (Str)
-
-constraint:
-  env []
-  lhs {v : Str | v = lit$cat }
-  rhs {v : Str | strLen v = 3 }
-  id 1 tag [6]
diff --git a/liquid-fixpoint/tests/pos/literals02.fq b/liquid-fixpoint/tests/pos/literals02.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals02.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-constant strLen : (func(0, [[Char]; int]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-
-constant lit$cat : (Str)
-
-distinct lit$cat : (Str)
-
-
-bind 0 Data.Foldable.$36$fFoldable$91$$93$$35$$35$rlx : {VV##27 : (Data.Foldable.Foldable  fix$36$$91$$93$) | []}
-bind 1 GHC.Types.True##6u : {VV##28 : bool | [(VV##28 = GHC.Types.True##6u)]}
-bind 2 GHC.Types.False##68 : {VV##29 : bool | [(VV##29 = GHC.Types.False##68)]}
-bind 3 GHC.Types.EQ##6U : {VV##30 : GHC.Types.Ordering | [(VV##30 = GHC.Types.EQ##6U)]}
-bind 4 GHC.Types.LT##6S : {VV##31 : GHC.Types.Ordering | [(VV##31 = GHC.Types.LT##6S)]}
-bind 5 GHC.Types.GT##6W : {VV##32 : GHC.Types.Ordering | [(VV##32 = GHC.Types.GT##6W)]}
-bind 6 lq_anf$##1677724177##dFz : {lq_tmp$x##35 : Str | [(lq_tmp$x##35 = lit$cat)]}
-bind 7 lq_anf$##1677724178##dFA : {lq_tmp$x##41 : [Char] | [(lq_tmp$x##41 ~~ lq_anf$##1677724177##dFz);
-                                                            ((len lq_tmp$x##41) = (strLen lq_anf$##1677724177##dFz));
-                                                            ((len lq_tmp$x##41) >= 0)]}
-
-constraint:
-  env [0; 1; 2; 3; 4; 5; 6; 7]
-  lhs {VV##F##1 : int | [(VV##F##1 >= 0);
-                         (VV##F##1 = (len lq_anf$##1677724178##dFA))]}
-  rhs {VV##F##1 : int | [(VV##F##1 = 3)]}
-  id 1 tag [1]
-  // META constraint id 1 : ()
-
-
diff --git a/liquid-fixpoint/tests/pos/literals03.fq b/liquid-fixpoint/tests/pos/literals03.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals03.fq
+++ /dev/null
@@ -1,16 +0,0 @@
-constant lit$year     : (Str)
-constant lit$title    : (Str)
-constant lit$star     : (Str)
-constant lit$director : (Str)
-
-constant listElts : (func(0, [LLChar; (Set_Set Str)]))
-constant Set_sng : (func(1, [@(0); (Set_Set  @(0))]))
-
-bind 1 a  : {a : Str | a == "director" }
-bind 2 things : {v : LLChar | (listElts v == (Set_cup (Set_sng lit$year) (Set_cup (Set_sng lit$star) (Set_cup (Set_sng lit$director) (Set_sng lit$title)))))}
-
-constraint:
-  env [ 1; 2 ]
-  lhs {v : int | true }
-  rhs {v : int | Set_mem a (listElts things)} 
-  id 1 tag []
diff --git a/liquid-fixpoint/tests/pos/literals04.fq b/liquid-fixpoint/tests/pos/literals04.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals04.fq
+++ /dev/null
@@ -1,16 +0,0 @@
-constant lit$year     : (Str)
-constant lit$title    : (Str)
-constant lit$star     : (Str)
-constant lit$director : (Str)
-
-constant listElts : (func(0, [LLChar; (Set_Set Str)]))
-constant Set_sng : (func(1, [@(0); (Set_Set  @(0))]))
-
-bind 1 a  : {a : Str | a == "director" }
-bind 2 things : {v : LLChar | (listElts v ~~ (Set_cup (Set_sng lit$year) (Set_cup (Set_sng lit$star) (Set_cup (Set_sng lit$director) (Set_sng lit$title)))))}
-
-constraint:
-  env [ 1; 2 ]
-  lhs {v : int | true }
-  rhs {v : int | Set_mem a (listElts things)} 
-  id 1 tag []
diff --git a/liquid-fixpoint/tests/pos/literals05.fq b/liquid-fixpoint/tests/pos/literals05.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/literals05.fq
+++ /dev/null
@@ -1,14 +0,0 @@
-constant listElts : (func(0, [LLChar; (Set_Set Str)]))
-constant Set_sng : (func(1, [@(0); (Set_Set  @(0))]))
-
-bind 1 a  : {a : Str | a == "director" }
-bind 2 things : {v : LLChar | (listElts v == (Set_cup (Set_sng "year") 
-                                               (Set_cup (Set_sng "star") 
-                                                 (Set_cup (Set_sng "director") 
-                                                   (Set_sng "title"))))) }
-
-constraint:
-  env [ 1; 2 ]
-  lhs {v : int | true }
-  rhs {v : int | Set_mem a (listElts things)} 
-  id 1 tag []
diff --git a/liquid-fixpoint/tests/pos/meas00.fq b/liquid-fixpoint/tests/pos/meas00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/meas00.fq
+++ /dev/null
@@ -1,21 +0,0 @@
-qualif Sz(v: Tree): (0 < thinginess v)
-qualif Sz(v: Tree): (1 < 0)
-
-constant thinginess : func(0, [Tree; int])
-
-constraint:
-  env [ ]
-  lhs {v : Tree | 666 < thinginess v }
-  rhs {v : Tree | $k1  }
-  id 1 tag []
-
-
-constraint:
-  env [ ]
-  lhs {v : Tree | $k1  }
-  rhs {v : Tree | 0 < thinginess v }
-  id 2 tag []
-
-wf: 
-  env [ ]
-  reft { v: Tree | $k1 }
diff --git a/liquid-fixpoint/tests/pos/meas02.fq b/liquid-fixpoint/tests/pos/meas02.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/meas02.fq
+++ /dev/null
@@ -1,25 +0,0 @@
-
-qualif SumZ(v:[real]): (sumD v = 0.0)
-
-qualif SumZ(v:[real]): (((sumD v) / (sumD v)) = 1.0)
-
-constant sumD : (func(0, [[real]; real]))
-
-bind 0 zero    : {VV : real     | VV = 0.0 }
-bind 1 pumpkin : {VV : [real] | sumD VV = 0.0 }
-
-constraint:
-  env [ 0; 1 ]
-  lhs {v : [real] | v = pumpkin }
-  rhs {v : [real] | $k1 }
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : [real] | $k1 }
-  rhs {v : [real] | sumD v = 0.0 }
-  id 2 tag []
-
-wf:
-  env []
-  reft {v : [real] | $k1 }
diff --git a/liquid-fixpoint/tests/pos/min00.fq b/liquid-fixpoint/tests/pos/min00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/min00.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-
-qualif Zog(v:a) : (10 <= v)
-qualif Zog(v:a) : (9 <= v)
-qualif Zog(v:a) : (8 <= v)
-qualif Zog(v:a) : (99 <= v)
-
-constraint:
-  env []
-  lhs {v : int | (v = 100)}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env []
-  lhs {v : int | $k0}
-  rhs {v : int | (15 <= v) }
-  id 1 tag []
-
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/multi-sorts.fq b/liquid-fixpoint/tests/pos/multi-sorts.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/multi-sorts.fq
+++ /dev/null
@@ -1,10 +0,0 @@
-
-bind 0 x  : {VV : Tree | [] }
-bind 1 x  : {VV : List | [] }
-bind 2 x  : {VV : real | [] }
-
-constraint:
-  env [0]
-  lhs {VV : Tree | [ VV = x ] }
-  rhs {VV : Tree | [ VV = x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/pos/multiple-func-sorts.fq b/liquid-fixpoint/tests/pos/multiple-func-sorts.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/multiple-func-sorts.fq
+++ /dev/null
@@ -1,4 +0,0 @@
-// adapted from LH test vector2.hs
-
-constant foo :     func(1, [@(0); @(0)])
-bind 6 foo : {VV : func(1, [@(0); @(0)]) | []}
diff --git a/liquid-fixpoint/tests/pos/num00.fq b/liquid-fixpoint/tests/pos/num00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/num00.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-
-qualif Zog(v:a) : (0 <= v)
-
-bind 0 alpha : {v : num | true}
-
-constraint:
-  env [0]
-  lhs {v : alpha | (v = 10)}
-  rhs {v : alpha | $k0}
-  id 1 tag []
-
-constraint:
-  env [0]
-  lhs {v : alpha | $k0}
-  rhs {v : alpha | 0 <= v}
-  id 2 tag []
-
-wf:
-  env [0]
-  reft {v: alpha | $k0}
-
diff --git a/liquid-fixpoint/tests/pos/numoverload00.fq b/liquid-fixpoint/tests/pos/numoverload00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/numoverload00.fq
+++ /dev/null
@@ -1,23 +0,0 @@
-
-qualif Foo(v:real, xiggety:real): (v = xiggety * xiggety)
-qualif Bar(v:real): (v = 0.0)
-
-bind 0 zero  : {VV : real | VV = 0.0 }
-bind 1 one   : {VV : real | VV = (1.0 / 1.0) }
-bind 2 thing : {VV : real | VV = zero }
-
-constraint:
-  env [ 0; 1; 2 ]
-  lhs {v : real | v = thing }
-  rhs {v : real | $k1 }
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : real | $k1 }
-  rhs {v : real | v = 0.0 }
-  id 2 tag []
-
-wf:
-  env []
-  reft {v : real | $k1 }
diff --git a/liquid-fixpoint/tests/pos/overwrite-names.fq b/liquid-fixpoint/tests/pos/overwrite-names.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/overwrite-names.fq
+++ /dev/null
@@ -1,8 +0,0 @@
-constant Set_mem : (func(1, [@(0); FAppTy Set_Set  @(0); bool]))
-
-constraint:
-  env []
-  lhs {VV#F1 : int | [(VV#F1 > 10)]}
-  rhs {VV#F1 : int | [(VV#F1 > 10)]}
-  id 1 tag [1]
- 
diff --git a/liquid-fixpoint/tests/pos/poly0.fq b/liquid-fixpoint/tests/pos/poly0.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/poly0.fq
+++ /dev/null
@@ -1,15 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(0, [int ; int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(1, [int; int; @(0)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 0 ]}
-
-constraint:
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV = x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/pos/poly1.fq b/liquid-fixpoint/tests/pos/poly1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/poly1.fq
+++ /dev/null
@@ -1,17 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(2, [int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(2, [int; @(0)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 ]}
-
-constraint: 
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV = x ] }
-  id 1 tag [1]
-
-
diff --git a/liquid-fixpoint/tests/pos/poly2.fq b/liquid-fixpoint/tests/pos/poly2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/poly2.fq
+++ /dev/null
@@ -1,15 +0,0 @@
-fixpoint "--defunct"
-
-// This definition works fine ...
-// constant offset : (func(0, [int ; int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(2, [@(0); int; int; @(0); @(1)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 0 0 0 ]}
-
-constraint:
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV = x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/pos/qualif-inst.fq b/liquid-fixpoint/tests/pos/qualif-inst.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/qualif-inst.fq
+++ /dev/null
@@ -1,17 +0,0 @@
-// adapted from LH test eqelems.hs
-
-qualif Cmp(v : @(0), fix##126#X : @(0)): (v >= fix##126#X)
-
-constant elems : (func(1, [(Goo.T  @(0)); (Set_Set  @(0))]))
-
-bind 48 lq_anf__d14V : {lq_tmp_x_197 : (Set_Set  a_a14x) | []}
-
-constraint:
-  env []
-  lhs {VV#F4 : (Set_Set  a_a14x) | []}
-  rhs {VV#F4 : (Set_Set  a_a14x) | [$k__226[VV#225:=VV#F4]]}
-  id 4 tag [2]
-
-wf:
-  env [48]
-  reft {VV#225 : (Set_Set  a_a14x) | [$k__226]}
diff --git a/liquid-fixpoint/tests/pos/sets.fq b/liquid-fixpoint/tests/pos/sets.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/sets.fq
+++ /dev/null
@@ -1,7 +0,0 @@
-// constant Set_empty : (func(1, [int; Set_Set @(0)]))
-
-constraint:
-  env []
-  lhs {v : Set_Set a_aTp | [(? Set_emp([v]))]}
-  rhs {v : Set_Set a_aTp | [(v = Set_empty([0]))]}
-  id 3 tag [2]
diff --git a/liquid-fixpoint/tests/pos/test00-par.fq b/liquid-fixpoint/tests/pos/test00-par.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test00-par.fq
+++ /dev/null
@@ -1,37 +0,0 @@
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [v > 0]}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 20]}
-  rhs {v : int | [v > 0]}
-  id 2 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 20]}
-  rhs {v : int | [v > 0]}
-  id 3 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [v > 0]}
-  id 4 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 20]}
-  rhs {v : int | [v > 0]}
-  id 5 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 20]}
-  rhs {v : int | [v > 0]}
-  id 6 tag []
-
diff --git a/liquid-fixpoint/tests/pos/test00.fq b/liquid-fixpoint/tests/pos/test00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test00.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-qualif Zog(v:a) : (10 <= v)
-qualif Bog(v:a, x:a) : (x <= v)
-
-bind 0 a : {va: int | $k0[v := va][thing := thang] }
-bind 1 thing : {v: int | true }
-bind 2 thang : {v: int | true }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 10}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 20}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | v = a}
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ 2 ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/test00.hs.fq b/liquid-fixpoint/tests/pos/test00.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test00.hs.fq
+++ /dev/null
@@ -1,1021 +0,0 @@
-
-qualif IsEmp(v:GHC.Types.Bool, xs: [a]) : (Prop(v) <=> len([xs]) > 0)
-qualif IsEmp(v:GHC.Types.Bool, xs: [a]) : (Prop(v) <=> len([xs]) = 0)
-qualif ListZ(v: [a])          : len([v]) =  0 
-qualif ListZ(v: [a])          : len([v]) >= 0 
-qualif ListZ(v: [a])          : len([v]) >  0 
-qualif CmpLen(v:[a], xs:[b])  : len([v]) =  len([xs]) 
-qualif CmpLen(v:[a], xs:[b])  : len([v]) >= len([xs]) 
-qualif CmpLen(v:[a], xs:[b])  : len([v]) >  len([xs]) 
-qualif CmpLen(v:[a], xs:[b])  : len([v]) <= len([xs]) 
-qualif CmpLen(v:[a], xs:[b])  : len([v]) <  len([xs]) 
-qualif EqLen(v:int, xs: [a]): v = len([xs]) 
-qualif LenEq(v:[a], x: int) :  x = len([v]) 
-qualif LenDiff(v:[a], x:int): len([v]) = x + 1
-qualif LenDiff(v:[a], x:int): len([v]) = x - 1
-qualif LenAcc(v:int, xs:[a], n: int): (v = len([xs]) + n)
-
-qualif Bot(v:obj): 0 = 1 
-qualif Bot(v:a): 0 = 1 
-qualif Bot(v:bool): 0 = 1 
-qualif Bot(v:int): 0 = 1 
-qualif CmpZ(v:a): (v <  0)
-qualif CmpZ(v:a): (v <= 0)
-qualif CmpZ(v:a): (v >  0)
-qualif CmpZ(v:a): (v >= 0)
-qualif CmpZ(v:a): (v  = 0)
-qualif CmpZ(v:a): (v != 0)
-
-qualif Cmp(v:a, x:a): (v <  x)
-qualif Cmp(v:a, x:a): (v <= x)
-qualif Cmp(v:a, x:a): (v >  x)
-qualif Cmp(v:a, x:a): (v >= x)
-qualif Cmp(v:a, x:a): (v  = x)
-qualif Cmp(v:a, x:a): (v != x)
-
-qualif One(v:int)     : v = 1
-qualif True(v:bool)   : (? v) 
-qualif False(v:bool)  : ~ (? v) 
-qualif True1(v:GHC.Types.Bool): (Prop(v))
-qualif False1(v:GHC.Types.Bool): (~ Prop(v))
-qualif Papp(v:a, p:Pred a) : (papp1(p, v))
-
-constant papp1 : func(1, [Pred @(0); @(0); bool])
-
-qualif Papp2(v:a,x:b,p:Pred a b) : papp2(p, v, x)
-constant papp2 : func(4, [Pred @(0) @(1); @(2); @(3); bool])
-
-qualif Papp3(v:a,x:b, y:c, p:Pred a b c) : papp3(p, v, x, y)
-constant papp3 : func(6, [Pred @(0) @(1) @(2); @(3); @(4); @(5); bool])
-
-qualif Papp4(v:a,x:b, y:c, z:d, p:Pred a b c d) : papp4(p, v, x, y, z)
-constant papp4 : func(8, [Pred @(0) @(1) @(2) @(6); @(3); @(4); @(5); @(7); bool])
-
-
-
-constant Prop : func(0, [GHC.Types.Bool; bool])
-qualif Fst(v : @(1), fix##126#Y : @(0)): (v = fst([fix##126#Y])) // "/Users/rjhala/research/liquid/liquidhaskell/.cabal-sandbox/share/x86_64-osx-ghc-7.8.3/liquidhaskell-0.3.1.0/include/GHC/Base.spec" (line 26, column 8)
-qualif Snd(v : @(1), fix##126#Y : @(0)): (v = snd([fix##126#Y])) // "/Users/rjhala/research/liquid/liquidhaskell/.cabal-sandbox/share/x86_64-osx-ghc-7.8.3/liquidhaskell-0.3.1.0/include/GHC/Base.spec" (line 27, column 8)
-
-constant Prop : func(0, [GHC.Types.Bool; bool])
-constant x_Tuple54 : func(5, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4);
-                              @(3)])
-constant x_Tuple44 : func(4, [FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3);
-                              @(3)])
-constant xListSelector : func(1, [[@(0)]; @(0)])
-constant x_Tuple41 : func(4, [FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3);
-                              @(0)])
-constant x_Tuple76 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(5)])
-constant addrLen : func(0, [int; int])
-constant x_Tuple65 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(4)])
-constant x_Tuple52 : func(5, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4);
-                              @(1)])
-constant GHC.Types.False#68 : (GHC.Types.Bool)
-constant x_Tuple64 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(3)])
-constant x_Tuple33 : func(3, [FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2);
-                              @(2)])
-constant fst : func(2, [FAppTy (FAppTy fix##40##41#  @(0))  @(1);
-                        @(0)])
-constant x_Tuple31 : func(3, [FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2);
-                              @(0)])
-constant x_Tuple43 : func(4, [FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3);
-                              @(2)])
-constant x_Tuple71 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(0)])
-constant x_Tuple32 : func(3, [FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2);
-                              @(1)])
-constant x_Tuple72 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(1)])
-constant x_Tuple63 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(2)])
-constant x_Tuple75 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(4)])
-constant x_Tuple51 : func(5, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4);
-                              @(0)])
-constant len : func(1, [[@(0)]; int])
-constant xsListSelector : func(1, [[@(0)]; [@(0)]])
-constant null : func(1, [[@(0)]; bool])
-constant x_Tuple53 : func(5, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4);
-                              @(2)])
-constant x_Tuple22 : func(2, [FAppTy (FAppTy fix##40##41#  @(0))  @(1);
-                              @(1)])
-constant fromJust : func(1, [FAppTy Data.Maybe.Maybe  @(0); @(0)])
-constant snd : func(2, [FAppTy (FAppTy fix##40##41#  @(0))  @(1);
-                        @(1)])
-constant x_Tuple73 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(2)])
-constant x_Tuple62 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(1)])
-constant x_Tuple55 : func(5, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4);
-                              @(4)])
-constant x_Tuple74 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(3)])
-constant cmp : func(0, [GHC.Types.Ordering; GHC.Types.Ordering])
-constant x_Tuple42 : func(4, [FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3);
-                              @(1)])
-constant x_Tuple21 : func(2, [FAppTy (FAppTy fix##40##41#  @(0))  @(1);
-                              @(0)])
-constant x_Tuple61 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(0)])
-constant isJust : func(1, [FAppTy Data.Maybe.Maybe  @(0); bool])
-constant x_Tuple66 : func(6, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5);
-                              @(5)])
-constant GHC.Types.True#6u : (GHC.Types.Bool)
-constant x_Tuple77 : func(7, [FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy (FAppTy fix##40##41#  @(0))  @(1))  @(2))  @(3))  @(4))  @(5))  @(6);
-                              @(6)])
-bind 0 GHC.Types.False#68 : {VV#171 : GHC.Types.Bool | []}
-bind 1 GHC.Types.I##6c : {VV : func(0, [int; int]) | []}
-bind 2 GHC.Types.True#6u : {VV#173 : GHC.Types.Bool | []}
-bind 3 fix#GHC.Classes.#36#fOrdInt#35#rhx : {VV#175 : FAppTy GHC.Classes.Ord  int | []}
-bind 4 fix#GHC.Num.#36#fNumInt#35#rhy : {VV#176 : FAppTy GHC.Num.Num  int | []}
-bind 5 Language.Haskell.Liquid.Prelude.liquidAssertB#rpD : {VV : func(0, [GHC.Types.Bool;
-                                                                          GHC.Types.Bool]) | []}
-bind 6 Language.Haskell.Liquid.Prelude.choose#rpK : {VV : func(0, [int;
-                                                                   int]) | []}
-bind 7 GHC.Types.EQ#6U : {VV#179 : GHC.Types.Ordering | []}
-bind 8 GHC.Types.LT#6S : {VV#180 : GHC.Types.Ordering | []}
-bind 9 GHC.Types.GT#6W : {VV#181 : GHC.Types.Ordering | []}
-bind 10 GHC.Types.True#6u : {v : GHC.Types.Bool | [(? Prop([v]))]}
-bind 11 GHC.Types.False#68 : {v : GHC.Types.Bool | [(~ ((? Prop([v]))))]}
-bind 12 Language.Haskell.Liquid.Prelude.plus#rou : {VV : func(0, [int;
-                                                                  int;
-                                                                  int]) | []}
-bind 13 Language.Haskell.Liquid.Prelude.minus#rpv : {VV : func(0, [int;
-                                                                   int;
-                                                                   int]) | []}
-bind 14 Language.Haskell.Liquid.Prelude.times#rpw : {VV : func(0, [int;
-                                                                   int;
-                                                                   int]) | []}
-bind 15 Language.Haskell.Liquid.Prelude.eq#rpx : {VV : func(0, [int;
-                                                                int;
-                                                                GHC.Types.Bool]) | []}
-bind 16 Language.Haskell.Liquid.Prelude.neq#rpy : {VV : func(0, [int;
-                                                                 int;
-                                                                 GHC.Types.Bool]) | []}
-bind 17 Language.Haskell.Liquid.Prelude.leq#rpz : {VV : func(0, [int;
-                                                                 int;
-                                                                 GHC.Types.Bool]) | []}
-bind 18 Language.Haskell.Liquid.Prelude.geq#rpA : {VV : func(0, [int;
-                                                                 int;
-                                                                 GHC.Types.Bool]) | []}
-bind 19 Language.Haskell.Liquid.Prelude.lt#rpB : {VV : func(0, [int;
-                                                                int;
-                                                                GHC.Types.Bool]) | []}
-bind 20 Language.Haskell.Liquid.Prelude.gt#rpC : {VV : func(0, [int;
-                                                                int;
-                                                                GHC.Types.Bool]) | []}
-bind 21 Language.Haskell.Liquid.Prelude.liquidAssertB#rpD : {VV : func(0, [GHC.Types.Bool;
-                                                                           GHC.Types.Bool]) | []}
-bind 22 Language.Haskell.Liquid.Prelude.isEven#rpL : {VV : func(0, [int;
-                                                                    GHC.Types.Bool]) | []}
-bind 23 Language.Haskell.Liquid.Prelude.isOdd#rpM : {VV : func(0, [int;
-                                                                   GHC.Types.Bool]) | []}
-bind 24 GHC.Integer.Type.smallInteger#0Z : {VV : func(0, [int;
-                                                          int]) | []}
-bind 25 GHC.Types.I##6c : {VV : func(0, [int; int]) | []}
-bind 26 fix#GHC.Prim.#43##35##35#98 : {VV : func(0, [int;
-                                                     int;
-                                                     int]) | []}
-bind 27 fix#GHC.Prim.#45##35##35#99 : {VV : func(0, [int;
-                                                     int;
-                                                     int]) | []}
-bind 28 fix#GHC.Prim.#61##61##35##35#9o : {VV : func(0, [int;
-                                                         int;
-                                                         int]) | []}
-bind 29 fix#GHC.Prim.#62##61##35##35#9n : {VV : func(0, [int;
-                                                         int;
-                                                         int]) | []}
-bind 30 fix#GHC.Prim.#60##61##35##35#9r : {VV : func(0, [int;
-                                                         int;
-                                                         int]) | []}
-bind 31 fix#GHC.Prim.#60##35##35#9q : {VV : func(0, [int;
-                                                     int;
-                                                     int]) | []}
-bind 32 fix#GHC.Prim.#62##35##35#9m : {VV : func(0, [int;
-                                                     int;
-                                                     int]) | []}
-bind 33 GHC.Types.EQ#6U : {VV#220 : GHC.Types.Ordering | [(cmp([VV#220]) = GHC.Types.EQ#6U)]}
-bind 34 GHC.Types.LT#6S : {VV#222 : GHC.Types.Ordering | [(cmp([VV#222]) = GHC.Types.LT#6S)]}
-bind 35 GHC.Types.GT#6W : {VV#223 : GHC.Types.Ordering | [(cmp([VV#223]) = GHC.Types.GT#6W)]}
-bind 36 fix##36#dOrd_a165 : {VV#232 : FAppTy GHC.Classes.Ord  a_a164 | []}
-bind 37 fix##36#dNum_a166 : {VV#233 : FAppTy GHC.Num.Num  a_a164 | []}
-bind 38 a_a164 : {VV : num | []}
-bind 39 gooberding#a15N : {VV#234 : a_a164 | [$k_235]}
-bind 40 lq_anf__d16w : {lq_tmp_x241 : int | [(lq_tmp_x241 = 0)]}
-bind 41 lq_anf__d16x : {VV : a_a164 | [(VV = lq_anf__d16w)]}
-bind 42 lq_anf__d16y : {lq_tmp_x254 : GHC.Types.Bool | [((? Prop([lq_tmp_x254])) <=> (gooberding#a15N >= lq_anf__d16x))]}
-bind 43 lq_anf__d16z : {lq_tmp_x276 : int | [(lq_tmp_x276 = (0  :  int))]}
-bind 44 Test0.x#r12i : {VV#272 : int | [$k_273]}
-bind 45 lq_anf__d16A : {lq_tmp_x291 : int | [(lq_tmp_x291 = (0  :  int))]}
-bind 46 lq_anf__d16B : {lq_tmp_x297 : GHC.Types.Bool | [((? Prop([lq_tmp_x297])) <=> (Test0.x#r12i > lq_anf__d16A))]}
-bind 47 lq_anf__d16C : {lq_tmp_x313 : GHC.Types.Bool | [((? Prop([lq_tmp_x313])) <=> (Test0.x#r12i > lq_anf__d16A));
-                                                        (lq_tmp_x313 = lq_anf__d16B)]}
-bind 48 lq_anf__d16C : {lq_tmp_x315 : GHC.Types.Bool | [((? Prop([lq_tmp_x315])) <=> (Test0.x#r12i > lq_anf__d16A));
-                                                        (lq_tmp_x315 = lq_anf__d16B)]}
-bind 49 lq_anf__d16C : {lq_tmp_x315 : GHC.Types.Bool | [((? Prop([lq_tmp_x315])) <=> (Test0.x#r12i > lq_anf__d16A));
-                                                        (lq_tmp_x315 = lq_anf__d16B);
-                                                        (~ ((? Prop([lq_tmp_x315]))));
-                                                        (~ ((? Prop([lq_tmp_x315]))))]}
-bind 50 lq_anf__d16C : {lq_tmp_x321 : GHC.Types.Bool | [((? Prop([lq_tmp_x321])) <=> (Test0.x#r12i > lq_anf__d16A));
-                                                        (lq_tmp_x321 = lq_anf__d16B)]}
-bind 51 lq_anf__d16C : {lq_tmp_x321 : GHC.Types.Bool | [((? Prop([lq_tmp_x321])) <=> (Test0.x#r12i > lq_anf__d16A));
-                                                        (lq_tmp_x321 = lq_anf__d16B);
-                                                        (? Prop([lq_tmp_x321]));
-                                                        (? Prop([lq_tmp_x321]))]}
-bind 52 Test0.prop_abs#r12j : {VV#287 : GHC.Types.Bool | [$k_288]}
-bind 53 VV#343 : {VV#343 : GHC.Types.Bool | [$k_239[VV#238:=VV#343][fix##36#dOrd_a165:=fix#GHC.Classes.#36#fOrdInt#35#rhx][fix##36#dNum_a166:=fix#GHC.Num.#36#fNumInt#35#rhy][gooberding#a15N:=Test0.x#r12i][lq_tmp_x332:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x333:=fix#GHC.Num.#36#fNumInt#35#rhy][lq_tmp_x334:=Test0.x#r12i][lq_tmp_x328:=VV#343]]}
-bind 54 VV#343 : {VV#343 : GHC.Types.Bool | [$k_239[VV#238:=VV#343][fix##36#dOrd_a165:=fix#GHC.Classes.#36#fOrdInt#35#rhx][fix##36#dNum_a166:=fix#GHC.Num.#36#fNumInt#35#rhy][gooberding#a15N:=Test0.x#r12i][lq_tmp_x332:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x333:=fix#GHC.Num.#36#fNumInt#35#rhy][lq_tmp_x334:=Test0.x#r12i][lq_tmp_x328:=VV#343]]}
-bind 55 VV#346 : {VV#346 : int | [$k_273[VV#272:=VV#346][lq_tmp_x341:=VV#346];
-                                  (VV#346 = Test0.x#r12i)]}
-bind 56 VV#346 : {VV#346 : int | [$k_273[VV#272:=VV#346][lq_tmp_x341:=VV#346];
-                                  (VV#346 = Test0.x#r12i)]}
-bind 57 VV#349 : {VV#349 : GHC.Types.Bool | [(~ ((? Prop([VV#349]))));
-                                             (VV#349 = GHC.Types.False#68)]}
-bind 58 VV#349 : {VV#349 : GHC.Types.Bool | [(~ ((? Prop([VV#349]))));
-                                             (VV#349 = GHC.Types.False#68)]}
-bind 59 VV#352 : {VV#352 : int | [(VV#352 = (0  :  int));
-                                  (VV#352 = lq_anf__d16A)]}
-bind 60 VV#352 : {VV#352 : int | [(VV#352 = (0  :  int));
-                                  (VV#352 = lq_anf__d16A)]}
-bind 61 VV#355 : {VV#355 : int | [$k_273[VV#272:=VV#355][lq_tmp_x310:=VV#355];
-                                  (VV#355 = Test0.x#r12i)]}
-bind 62 VV#355 : {VV#355 : int | [$k_273[VV#272:=VV#355][lq_tmp_x310:=VV#355];
-                                  (VV#355 = Test0.x#r12i)]}
-bind 63 VV#358 : {VV#358 : int | [(VV#358 = 0)]}
-bind 64 VV#358 : {VV#358 : int | [(VV#358 = 0)]}
-bind 65 VV#361 : {VV#361 : int | []}
-bind 66 VV#361 : {VV#361 : int | []}
-bind 67 VV#364 : {VV#364 : int | [(VV#364 = (0  :  int));
-                                  (VV#364 = lq_anf__d16z)]}
-bind 68 VV#364 : {VV#364 : int | [(VV#364 = (0  :  int));
-                                  (VV#364 = lq_anf__d16z)]}
-bind 69 VV#367 : {VV#367 : int | [(VV#367 = 0)]}
-bind 70 VV#367 : {VV#367 : int | [(VV#367 = 0)]}
-bind 71 VV#370 : {VV#370 : GHC.Types.Bool | [(? Prop([VV#370]))]}
-bind 72 VV#370 : {VV#370 : GHC.Types.Bool | [(? Prop([VV#370]))]}
-bind 73 VV#373 : {VV#373 : GHC.Types.Bool | [((? Prop([VV#373])) <=> (gooberding#a15N >= lq_anf__d16x));
-                                             (VV#373 = lq_anf__d16y)]}
-bind 74 VV#373 : {VV#373 : GHC.Types.Bool | [((? Prop([VV#373])) <=> (gooberding#a15N >= lq_anf__d16x));
-                                             (VV#373 = lq_anf__d16y)]}
-bind 75 VV : {VV : a_a164 | [(VV = lq_anf__d16w);
-                             (VV = lq_anf__d16x)]}
-bind 76 VV#234 : {VV#234 : a_a164 | [$k_235;
-                                     (VV#234 = gooberding#a15N)]}
-bind 77 VV#378 : {VV#378 : int | [(VV#378 = 0);
-                                  (VV#378 = lq_anf__d16w)]}
-bind 78 VV#378 : {VV#378 : int | [(VV#378 = 0);
-                                  (VV#378 = lq_anf__d16w)]}
-bind 79 VV#304 : {VV#304 : int | [$k_305]}
-bind 80 VV#287 : {VV#287 : GHC.Types.Bool | [$k_288]}
-bind 81 VV#272 : {VV#272 : int | [$k_273]}
-bind 82 VV#238 : {VV#238 : GHC.Types.Bool | [$k_239]}
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       50;
-       3;
-       19;
-       35;
-       51;
-       4;
-       20;
-       5;
-       21;
-       53;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       14;
-       30;
-       46;
-       15;
-       31;
-       47]
-  lhs {VV#F1 : GHC.Types.Bool | [$k_239[VV#238:=VV#F1][fix##36#dOrd_a165:=fix#GHC.Classes.#36#fOrdInt#35#rhx][fix##36#dNum_a166:=fix#GHC.Num.#36#fNumInt#35#rhy][gooberding#a15N:=Test0.x#r12i][lq_tmp_x332:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x333:=fix#GHC.Num.#36#fNumInt#35#rhy][lq_tmp_x334:=Test0.x#r12i][lq_tmp_x328:=VV#F1][VV#343:=VV#F1][VV#F:=VV#F1]]}
-  rhs {VV#F1 : GHC.Types.Bool | [$k_288[VV#287:=VV#F1][VV#343:=VV#F1][VV#F:=VV#F1]]}
-  id 1 tag [3]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       50;
-       3;
-       19;
-       35;
-       51;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       55;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       14;
-       30;
-       46;
-       15;
-       31;
-       47]
-  lhs {VV#F2 : int | [$k_273[VV#272:=VV#F2][lq_tmp_x341:=VV#F2][VV#346:=VV#F2][VV#F:=VV#F2];
-                      (VV#F2 = Test0.x#r12i)]}
-  rhs {VV#F2 : int | [$k_235[fix##36#dOrd_a165:=fix#GHC.Classes.#36#fOrdInt#35#rhx][fix##36#dNum_a166:=fix#GHC.Num.#36#fNumInt#35#rhy][VV#234:=VV#F2][lq_tmp_x332:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x333:=fix#GHC.Num.#36#fNumInt#35#rhy][lq_tmp_x336:=VV#F2][VV#346:=VV#F2][VV#F:=VV#F2]]}
-  id 2 tag [3]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       48;
-       1;
-       17;
-       33;
-       49;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       57;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       14;
-       30;
-       46;
-       15;
-       31;
-       47]
-  lhs {VV#F3 : GHC.Types.Bool | [(~ ((? Prop([VV#F3]))));
-                                 (VV#F3 = GHC.Types.False#68)]}
-  rhs {VV#F3 : GHC.Types.Bool | [$k_288[VV#287:=VV#F3][VV#349:=VV#F3][VV#F:=VV#F3]]}
-  id 3 tag [3]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       59;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F4 : int | [(VV#F4 = (0  :  int)); (VV#F4 = lq_anf__d16A)]}
-  rhs {VV#F4 : int | [$k_305[VV#304:=VV#F4][lq_tmp_x301:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x302:=Test0.x#r12i][lq_tmp_x307:=VV#F4][VV#352:=VV#F4][VV#F:=VV#F4]]}
-  id 4 tag [3]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       61;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F5 : int | [$k_273[VV#272:=VV#F5][lq_tmp_x310:=VV#F5][VV#355:=VV#F5][VV#F:=VV#F5];
-                      (VV#F5 = Test0.x#r12i)]}
-  rhs {VV#F5 : int | [$k_305[VV#304:=VV#F5][lq_tmp_x301:=fix#GHC.Classes.#36#fOrdInt#35#rhx][lq_tmp_x307:=VV#F5][VV#355:=VV#F5][VV#F:=VV#F5]]}
-  id 5 tag [3]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       65;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       43;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F6 : int | []}
-  rhs {VV#F6 : int | [$k_273[VV#272:=VV#F6][VV#361:=VV#F6][VV#F:=VV#F6]]}
-  id 6 tag [2]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       71;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       42;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F7 : GHC.Types.Bool | [(? Prop([VV#F7]))]}
-  rhs {VV#F7 : GHC.Types.Bool | [$k_239[VV#238:=VV#F7][VV#370:=VV#F7][VV#F:=VV#F7]]}
-  id 7 tag [1]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       73;
-       10;
-       26;
-       42;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F8 : GHC.Types.Bool | [((? Prop([VV#F8])) <=> (gooberding#a15N >= lq_anf__d16x));
-                                 (VV#F8 = lq_anf__d16y)]}
-  rhs {VV#F8 : GHC.Types.Bool | [(? Prop([VV#F8]))]}
-  id 8 tag [1]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       11;
-       27;
-       75;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F9 : a_a164 | [(VV#F9 = lq_anf__d16w);
-                         (VV#F9 = lq_anf__d16x)]}
-  rhs {VV#F9 : a_a164 | [$k_262[lq_tmp_x258:=fix##36#dOrd_a165][lq_tmp_x259:=gooberding#a15N][VV#261:=VV#F9][VV#F:=VV#F9]]}
-  id 9 tag [1]
-
-
-constraint:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       76;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV#F10 : a_a164 | [$k_235[VV#234:=VV#F10][VV#F:=VV#F10];
-                          (VV#F10 = gooberding#a15N)]}
-  rhs {VV#F10 : a_a164 | [$k_262[lq_tmp_x258:=fix##36#dOrd_a165][VV#261:=VV#F10][VV#F:=VV#F10]]}
-  id 10 tag [1]
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       45;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#304 : int | [$k_305]}
-  
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       44;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#287 : GHC.Types.Bool | [$k_288]}
-  
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#272 : int | [$k_273]}
-  
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#234 : a_a164 | [$k_235]}
-  
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       40;
-       9;
-       25;
-       41;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#261 : a_a164 | [$k_262]}
-  
-
-
-wf:
-  env [0;
-       16;
-       32;
-       1;
-       17;
-       33;
-       2;
-       18;
-       34;
-       3;
-       19;
-       35;
-       4;
-       20;
-       36;
-       5;
-       21;
-       37;
-       6;
-       22;
-       38;
-       7;
-       23;
-       39;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       28;
-       13;
-       29;
-       14;
-       30;
-       15;
-       31]
-  reft {VV#238 : GHC.Types.Bool | [$k_239]}
-  
diff --git a/liquid-fixpoint/tests/pos/test000.hs.fq b/liquid-fixpoint/tests/pos/test000.hs.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test000.hs.fq
+++ /dev/null
@@ -1,489 +0,0 @@
-qualif Fst(v : @(1), y : @(0)): (v = fst([y])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.spec" (line 29, column 8)
-qualif Snd(v : @(1), y : @(0)): (v = snd([y])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.spec" (line 30, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) > 0)) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 13, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): ((? Prop([v])) <=> (len([xs]) = 0)) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 14, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) = 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 16, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) >= 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 17, column 8)
-qualif ListZ(v : [@(0)]): (len([v]) > 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 18, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) = len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 20, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) >= len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 21, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) > len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 22, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) <= len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 23, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (len([v]) < len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 24, column 8)
-qualif EqLen(v : int, xs : [@(0)]): (v = len([xs])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 26, column 8)
-qualif LenEq(v : [@(0)], x : int): (x = len([v])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 27, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x + 1)) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 28, column 8)
-qualif LenDiff(v : [@(0)], x : int): (len([v]) = (x - 1)) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 29, column 8)
-qualif LenAcc(v : int, xs : [@(0)], n : int): (v = (len([xs]) + n)) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/GHC/Base.hquals" (line 30, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 3, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 4, column 8)
-qualif Bot(v : @(0)): (0 = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 5, column 8)
-qualif Bot(v : bool): (0 = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 6, column 8)
-qualif Bot(v : int): (0 = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 7, column 8)
-qualif CmpZ(v : @(0)): (v < 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 9, column 8)
-qualif CmpZ(v : @(0)): (v <= 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 10, column 8)
-qualif CmpZ(v : @(0)): (v > 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 11, column 8)
-qualif CmpZ(v : @(0)): (v >= 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 12, column 8)
-qualif CmpZ(v : @(0)): (v = 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 13, column 8)
-qualif CmpZ(v : @(0)): (v != 0) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 14, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v < x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 16, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v <= x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 17, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v > x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 18, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v >= x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 19, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v = x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 20, column 8)
-qualif Cmp(v : @(0), x : @(0)): (v != x) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 21, column 8)
-qualif One(v : int): (v = 1) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 28, column 8)
-qualif True(v : bool): (? v) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 29, column 8)
-qualif False(v : bool): (~ ((? v))) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 30, column 8)
-qualif True1(v : GHC.Types.Bool): (? Prop([v])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 31, column 8)
-qualif False1(v : GHC.Types.Bool): (~ ((? Prop([v])))) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 32, column 8)
-qualif Papp(v : @(0), p : (Pred  @(0))): (? papp1([p;
-                                                   v])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 35, column 8)
-qualif Papp2(v : @(1), x : @(0), p : (Pred  @(1)  @(0))): (? papp2([p;
-                                                                    v;
-                                                                    x])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 38, column 8)
-qualif Papp3(v : @(2), x : @(0), y : @(1), p : (Pred  @(2)  @(0)  @(1))): (? papp3([p;
-                                                                                    v;
-                                                                                    x;
-                                                                                    y])) // "/Users/benjamin/UCSDrepos/liquidhaskell/include/Prelude.hquals" (line 41, column 8)
-
-
-
-
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant addrLen : (func(0, [int; int]))
-constant xsListSelector : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant GHC.Types.False$35$68 : (GHC.Types.Bool)
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(6));
-                           @(3);
-                           @(4);
-                           @(5);
-                           @(7);
-                           bool]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant autolen : (func(1, [@(0); int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant null : (func(1, [[@(0)]; bool]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant xListSelector : (func(1, [[@(0)]; @(0)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(1, [(Pred  @(0)); @(0); bool]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant GHC.Types.I$35$$35$6c : (func(0, [int; int]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-constant GHC.Types.True$35$6u : (GHC.Types.Bool)
-
-
-bind 0 GHC.Types.False$35$68 : {VV$35$170 : GHC.Types.Bool | []}
-bind 1 GHC.Types.True$35$6u : {VV$35$172 : GHC.Types.Bool | []}
-bind 2 GHC.Num.$36$fNumInt$35$rma : {VV$35$178 : (GHC.Num.Num  int) | []}
-bind 3 GHC.Classes.$36$fOrdInt$35$rni : {VV$35$179 : (GHC.Classes.Ord  int) | []}
-bind 4 GHC.Types.EQ$35$6U : {VV$35$180 : GHC.Types.Ordering | [(VV$35$180 = GHC.Types.EQ$35$6U)]}
-bind 5 GHC.Types.LT$35$6S : {VV$35$181 : GHC.Types.Ordering | [(VV$35$181 = GHC.Types.LT$35$6S)]}
-bind 6 GHC.Types.GT$35$6W : {VV$35$182 : GHC.Types.Ordering | [(VV$35$182 = GHC.Types.GT$35$6W)]}
-bind 7 GHC.Types.True$35$6u : {v_4 : GHC.Types.Bool | [(? Prop([v_4]))]}
-bind 8 GHC.Types.False$35$68 : {v_5 : GHC.Types.Bool | [(~ ((? Prop([v_5]))))]}
-bind 9 GHC.Types.False$35$68 : {v_5 : GHC.Types.Bool | [(~ ((? Prop([v_5]))))]}
-bind 10 GHC.Types.$91$$93$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 11 GHC.Types.True$35$6u : {v_4 : GHC.Types.Bool | [(? Prop([v_4]))]}
-bind 12 GHC.Types.GT$35$6W : {VV$35$227 : GHC.Types.Ordering | [(cmp([VV$35$227]) = GHC.Types.GT$35$6W)]}
-bind 13 GHC.Types.LT$35$6S : {VV$35$228 : GHC.Types.Ordering | [(cmp([VV$35$228]) = GHC.Types.LT$35$6S)]}
-bind 14 GHC.Types.EQ$35$6U : {VV$35$229 : GHC.Types.Ordering | [(cmp([VV$35$229]) = GHC.Types.EQ$35$6U)]}
-bind 15 GHC.Base.Nothing$35$r1d : {VV : func(1, [(GHC.Base.Maybe  @(0))]) | []}
-bind 16 lq_anf__d12p : {lq_tmp_x_238 : int | [(lq_tmp_x_238 = (0  :  int))]}
-bind 17 lq_anf__d12q : {lq_tmp_x_244 : int | []}
-bind 18 lq_anf__d12r : {lq_tmp_x_250 : int | [(lq_tmp_x_250 = (10  :  int))]}
-bind 19 Test0.toss$35$rYP : {VV$35$234 : GHC.Types.Bool | [$k__235]}
-bind 20 lq_anf__d12s : {lq_tmp_x_275 : GHC.Types.Bool | [(lq_tmp_x_275 = Test0.toss$35$rYP)]}
-bind 21 lq_anf__d12s : {lq_tmp_x_277 : GHC.Types.Bool | [(lq_tmp_x_277 = Test0.toss$35$rYP)]}
-bind 22 lq_anf__d12s : {lq_tmp_x_277 : GHC.Types.Bool | [(lq_tmp_x_277 = Test0.toss$35$rYP);
-                                                         (~ ((? Prop([lq_tmp_x_277]))));
-                                                         (~ ((? Prop([lq_tmp_x_277]))));
-                                                         (~ ((? Prop([lq_tmp_x_277]))))]}
-bind 23 lq_anf__d12s : {lq_tmp_x_283 : GHC.Types.Bool | [(lq_tmp_x_283 = Test0.toss$35$rYP)]}
-bind 24 lq_anf__d12s : {lq_tmp_x_283 : GHC.Types.Bool | [(lq_tmp_x_283 = Test0.toss$35$rYP);
-                                                         (? Prop([lq_tmp_x_283]));
-                                                         (? Prop([lq_tmp_x_283]));
-                                                         (? Prop([lq_tmp_x_283]))]}
-bind 25 lq_anf__d12t : {lq_tmp_x_288 : GHC.Types.Bool | [(lq_tmp_x_288 = lq_anf__d12s)]}
-bind 26 lq_anf__d12t : {lq_tmp_x_290 : GHC.Types.Bool | [(lq_tmp_x_290 = lq_anf__d12s)]}
-bind 27 lq_anf__d12t : {lq_tmp_x_290 : GHC.Types.Bool | [(lq_tmp_x_290 = lq_anf__d12s);
-                                                         (~ ((? Prop([lq_tmp_x_290]))));
-                                                         (~ ((? Prop([lq_tmp_x_290]))));
-                                                         (~ ((? Prop([lq_tmp_x_290]))))]}
-bind 28 lq_anf__d12t : {lq_tmp_x_296 : GHC.Types.Bool | [(lq_tmp_x_296 = lq_anf__d12s)]}
-bind 29 lq_anf__d12t : {lq_tmp_x_296 : GHC.Types.Bool | [(lq_tmp_x_296 = lq_anf__d12s);
-                                                         (? Prop([lq_tmp_x_296]));
-                                                         (? Prop([lq_tmp_x_296]));
-                                                         (? Prop([lq_tmp_x_296]))]}
-bind 30 Test0.prop_abs$35$r10h : {VV$35$272 : GHC.Types.Bool | [$k__273]}
-bind 31 x$35$a11A : {VV$35$307 : int | [$k__308]}
-bind 32 lq_anf__d12u : {lq_tmp_x_315 : int | [(lq_tmp_x_315 = (0  :  int))]}
-bind 33 lq_anf__d12v : {lq_tmp_x_321 : GHC.Types.Bool | [((? Prop([lq_tmp_x_321])) <=> (x$35$a11A > lq_anf__d12u))]}
-bind 34 lq_anf__d12w : {lq_tmp_x_345 : int | [$k__343[lq_tmp_x_340:=lq_anf__d12v][VV$35$342:=lq_tmp_x_345][lq_tmp_x_341:=x$35$a11A]]}
-bind 35 lq_anf__d12x : {lq_tmp_x_350 : int | [(lq_tmp_x_350 = (1  :  int))]}
-bind 36 lq_anf__d12y : {lq_tmp_x_373 : int | [(lq_tmp_x_373 = (12  :  int))]}
-bind 37 Test0.goo$35$r10j : {VV$35$369 : int | [$k__370]}
-bind 38 zzz$35$a11B : {VV$35$384 : int | [$k__385]}
-bind 39 lq_anf__d12z : {lq_tmp_x_392 : int | [(lq_tmp_x_392 = (1  :  int))]}
-bind 40 lq_anf__d12A : {lq_tmp_x_415 : int | [(lq_tmp_x_415 = (29  :  int))]}
-bind 41 Test0.zoo$35$r10l : {VV$35$411 : int | [$k__412]}
-bind 42 VV$35$426 : {VV$35$426 : int | [$k__389[lq_tmp_x_423:=lq_anf__d12A][lq_tmp_x_421:=VV$35$426][zzz$35$a11B:=lq_anf__d12A][VV$35$388:=VV$35$426]]}
-bind 43 VV$35$426 : {VV$35$426 : int | [$k__389[lq_tmp_x_423:=lq_anf__d12A][lq_tmp_x_421:=VV$35$426][zzz$35$a11B:=lq_anf__d12A][VV$35$388:=VV$35$426]]}
-bind 44 VV$35$429 : {VV$35$429 : int | [(VV$35$429 = lq_anf__d12A)]}
-bind 45 VV$35$429 : {VV$35$429 : int | [(VV$35$429 = lq_anf__d12A)]}
-bind 46 VV$35$432 : {VV$35$432 : int | [(VV$35$432 = 29)]}
-bind 47 VV$35$432 : {VV$35$432 : int | [(VV$35$432 = 29)]}
-bind 48 VV$35$435 : {VV$35$435 : int | [(VV$35$435 = (zzz$35$a11B + lq_anf__d12z))]}
-bind 49 VV$35$435 : {VV$35$435 : int | [(VV$35$435 = (zzz$35$a11B + lq_anf__d12z))]}
-bind 50 VV$35$438 : {VV$35$438 : int | [(VV$35$438 = lq_anf__d12z)]}
-bind 51 VV$35$438 : {VV$35$438 : int | [(VV$35$438 = lq_anf__d12z)]}
-bind 52 VV$35$441 : {VV$35$441 : int | [(VV$35$441 = zzz$35$a11B)]}
-bind 53 VV$35$441 : {VV$35$441 : int | [(VV$35$441 = zzz$35$a11B)]}
-bind 54 VV$35$444 : {VV$35$444 : int | [(VV$35$444 = 1)]}
-bind 55 VV$35$444 : {VV$35$444 : int | [(VV$35$444 = 1)]}
-bind 56 VV$35$447 : {VV$35$447 : int | [$k__312[VV$35$311:=VV$35$447][lq_tmp_x_381:=lq_anf__d12y][x$35$a11A:=lq_anf__d12y][lq_tmp_x_379:=VV$35$447]]}
-bind 57 VV$35$447 : {VV$35$447 : int | [$k__312[VV$35$311:=VV$35$447][lq_tmp_x_381:=lq_anf__d12y][x$35$a11A:=lq_anf__d12y][lq_tmp_x_379:=VV$35$447]]}
-bind 58 VV$35$450 : {VV$35$450 : int | [(VV$35$450 = lq_anf__d12y)]}
-bind 59 VV$35$450 : {VV$35$450 : int | [(VV$35$450 = lq_anf__d12y)]}
-bind 60 VV$35$453 : {VV$35$453 : int | [(VV$35$453 = 12)]}
-bind 61 VV$35$453 : {VV$35$453 : int | [(VV$35$453 = 12)]}
-bind 62 VV$35$456 : {VV$35$456 : int | [(VV$35$456 = (lq_anf__d12w + lq_anf__d12x))]}
-bind 63 VV$35$456 : {VV$35$456 : int | [(VV$35$456 = (lq_anf__d12w + lq_anf__d12x))]}
-bind 64 VV$35$459 : {VV$35$459 : int | [(VV$35$459 = lq_anf__d12x)]}
-bind 65 VV$35$459 : {VV$35$459 : int | [(VV$35$459 = lq_anf__d12x)]}
-bind 66 VV$35$462 : {VV$35$462 : int | [(VV$35$462 = lq_anf__d12w)]}
-bind 67 VV$35$462 : {VV$35$462 : int | [(VV$35$462 = lq_anf__d12w)]}
-bind 68 VV$35$465 : {VV$35$465 : int | [(VV$35$465 = 1)]}
-bind 69 VV$35$465 : {VV$35$465 : int | [(VV$35$465 = 1)]}
-bind 70 VV$35$468 : {VV$35$468 : int | [(VV$35$468 = x$35$a11A)]}
-bind 71 VV$35$468 : {VV$35$468 : int | [(VV$35$468 = x$35$a11A)]}
-bind 72 VV$35$471 : {VV$35$471 : GHC.Types.Bool | [(VV$35$471 = lq_anf__d12v)]}
-bind 73 VV$35$471 : {VV$35$471 : GHC.Types.Bool | [(VV$35$471 = lq_anf__d12v)]}
-bind 74 VV$35$474 : {VV$35$474 : int | [(VV$35$474 = lq_anf__d12u)]}
-bind 75 VV$35$474 : {VV$35$474 : int | [(VV$35$474 = lq_anf__d12u)]}
-bind 76 VV$35$477 : {VV$35$477 : int | [(VV$35$477 = x$35$a11A)]}
-bind 77 VV$35$477 : {VV$35$477 : int | [(VV$35$477 = x$35$a11A)]}
-bind 78 VV$35$480 : {VV$35$480 : int | [(VV$35$480 = 0)]}
-bind 79 VV$35$480 : {VV$35$480 : int | [(VV$35$480 = 0)]}
-bind 80 VV$35$483 : {VV$35$483 : GHC.Types.Bool | [(? Prop([VV$35$483]))]}
-bind 81 VV$35$483 : {VV$35$483 : GHC.Types.Bool | [(? Prop([VV$35$483]))]}
-bind 82 VV$35$486 : {VV$35$486 : GHC.Types.Bool | [(VV$35$486 = lq_anf__d12t)]}
-bind 83 VV$35$486 : {VV$35$486 : GHC.Types.Bool | [(VV$35$486 = lq_anf__d12t)]}
-bind 84 VV$35$489 : {VV$35$489 : GHC.Types.Bool | [(VV$35$489 = GHC.Types.False$35$68)]}
-bind 85 VV$35$489 : {VV$35$489 : GHC.Types.Bool | [(VV$35$489 = GHC.Types.False$35$68)]}
-bind 86 VV$35$492 : {VV$35$492 : GHC.Types.Bool | [(VV$35$492 = GHC.Types.False$35$68)]}
-bind 87 VV$35$492 : {VV$35$492 : GHC.Types.Bool | [(VV$35$492 = GHC.Types.False$35$68)]}
-bind 88 VV$35$495 : {VV$35$495 : GHC.Types.Bool | [((? Prop([VV$35$495])) <=> (lq_anf__d12q > lq_anf__d12r))]}
-bind 89 VV$35$495 : {VV$35$495 : GHC.Types.Bool | [((? Prop([VV$35$495])) <=> (lq_anf__d12q > lq_anf__d12r))]}
-bind 90 VV$35$498 : {VV$35$498 : int | [(VV$35$498 = lq_anf__d12r)]}
-bind 91 VV$35$498 : {VV$35$498 : int | [(VV$35$498 = lq_anf__d12r)]}
-bind 92 VV$35$501 : {VV$35$501 : int | [(VV$35$501 = lq_anf__d12q)]}
-bind 93 VV$35$501 : {VV$35$501 : int | [(VV$35$501 = lq_anf__d12q)]}
-bind 94 VV$35$504 : {VV$35$504 : int | [(VV$35$504 = 10)]}
-bind 95 VV$35$504 : {VV$35$504 : int | [(VV$35$504 = 10)]}
-bind 96 VV$35$507 : {VV$35$507 : int | [(VV$35$507 = lq_anf__d12p)]}
-bind 97 VV$35$507 : {VV$35$507 : int | [(VV$35$507 = lq_anf__d12p)]}
-bind 98 VV$35$510 : {VV$35$510 : int | [(VV$35$510 = 0)]}
-bind 99 VV$35$510 : {VV$35$510 : int | [(VV$35$510 = 0)]}
-bind 100 VV$35$411 : {VV$35$411 : int | [$k__412]}
-bind 101 VV$35$384 : {VV$35$384 : int | [$k__385]}
-bind 102 VV$35$388 : {VV$35$388 : int | [$k__389]}
-bind 103 VV$35$369 : {VV$35$369 : int | [$k__370]}
-bind 104 VV$35$307 : {VV$35$307 : int | [$k__308]}
-bind 105 VV$35$342 : {VV$35$342 : int | [$k__343]}
-bind 106 VV$35$328 : {VV$35$328 : int | [$k__329]}
-bind 107 VV$35$311 : {VV$35$311 : int | [$k__312]}
-bind 108 VV$35$272 : {VV$35$272 : GHC.Types.Bool | [$k__273]}
-bind 109 VV$35$263 : {VV$35$263 : int | [$k__264]}
-bind 110 VV$35$234 : {VV$35$234 : GHC.Types.Bool | [$k__235]}
-
-
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       19;
-       4;
-       36;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       58;
-       11;
-       12;
-       13;
-       14;
-       30;
-       15]
-  lhs {VV$35$F5 : int | [(VV$35$F5 = lq_anf__d12y)]}
-  rhs {VV$35$F5 : int | [$k__308[VV$35$307:=VV$35$F5][VV$35$F:=VV$35$F5][VV$35$450:=VV$35$F5][lq_tmp_x_378:=VV$35$F5]]}
-  id 5 tag [4]
-  // META constraint id 5 : tests/pos/test000.hs:16:11-12
-
-
-constraint:
-  env [0;
-       32;
-       1;
-       33;
-       2;
-       3;
-       19;
-       4;
-       5;
-       6;
-       7;
-       8;
-       72;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       30;
-       15;
-       31]
-  lhs {VV$35$F8 : GHC.Types.Bool | [(VV$35$F8 = lq_anf__d12v)]}
-  rhs {VV$35$F8 : GHC.Types.Bool | [(? Prop([VV$35$F8]))]}
-  id 8 tag [3]
-  // META constraint id 8 : tests/pos/test000.hs:14:23-29
-
-
-constraint:
-  env [0;
-       80;
-       1;
-       2;
-       3;
-       19;
-       4;
-       20;
-       5;
-       6;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       11;
-       12;
-       28;
-       13;
-       29;
-       14;
-       15]
-  lhs {VV$35$F11 : GHC.Types.Bool | [(? Prop([VV$35$F11]))]}
-  rhs {VV$35$F11 : GHC.Types.Bool | [$k__273[VV$35$272:=VV$35$F11][VV$35$F:=VV$35$F11][VV$35$483:=VV$35$F11]]}
-  id 11 tag [6]
-  // META constraint id 11 : tests/pos/test000.hs:10:33-50
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       82;
-       3;
-       19;
-       4;
-       20;
-       5;
-       6;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       11;
-       12;
-       28;
-       13;
-       29;
-       14;
-       15]
-  lhs {VV$35$F12 : GHC.Types.Bool | [(VV$35$F12 = lq_anf__d12t)]}
-  rhs {VV$35$F12 : GHC.Types.Bool | [(? Prop([VV$35$F12]))]}
-  id 12 tag [6]
-  // META constraint id 12 : tests/pos/test000.hs:10:47-50
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       19;
-       4;
-       20;
-       84;
-       5;
-       6;
-       7;
-       23;
-       8;
-       24;
-       9;
-       25;
-       10;
-       26;
-       11;
-       27;
-       12;
-       13;
-       14;
-       15]
-  lhs {VV$35$F13 : GHC.Types.Bool | [(VV$35$F13 = GHC.Types.False$35$68)]}
-  rhs {VV$35$F13 : GHC.Types.Bool | [$k__273[VV$35$272:=VV$35$F13][VV$35$489:=VV$35$F13][VV$35$F:=VV$35$F13]]}
-  id 13 tag [6]
-  // META constraint id 13 : tests/pos/test000.hs:10:57-61
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       19;
-       4;
-       20;
-       5;
-       21;
-       6;
-       22;
-       86;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15]
-  lhs {VV$35$F14 : GHC.Types.Bool | [(VV$35$F14 = GHC.Types.False$35$68)]}
-  rhs {VV$35$F14 : GHC.Types.Bool | [$k__273[VV$35$272:=VV$35$F14][VV$35$F:=VV$35$F14][VV$35$492:=VV$35$F14]]}
-  id 14 tag [6]
-  // META constraint id 14 : tests/pos/test000.hs:11:19-23
-
-
-constraint:
-  env [0;
-       16;
-       1;
-       17;
-       2;
-       18;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       88;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       15]
-  lhs {VV$35$F15 : GHC.Types.Bool | [((? Prop([VV$35$F15])) <=> (lq_anf__d12q > lq_anf__d12r))]}
-  rhs {VV$35$F15 : GHC.Types.Bool | [$k__235[VV$35$F:=VV$35$F15][VV$35$495:=VV$35$F15][VV$35$234:=VV$35$F15]]}
-  id 15 tag [5]
-  // META constraint id 15 : tests/pos/test000.hs:6:1-22
-
-
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15]
-  reft {VV$35$234 : GHC.Types.Bool | [$k__235]}
-  // META wf : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 19; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 30; 15]
-  reft {VV$35$307 : int | [$k__308]}
-  // META wf : <no location info>
-
-
-wf:
-  env [0; 1; 2; 3; 19; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15]
-  reft {VV$35$272 : GHC.Types.Bool | [$k__273]}
-  // META wf : tests/pos/test000.hs:(9,1)-(11,23)
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/pos/test00a.fq b/liquid-fixpoint/tests/pos/test00a.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test00a.fq
+++ /dev/null
@@ -1,28 +0,0 @@
-// This qualifier saves the day; solve constraints WITHOUT IT
-qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | true}
-bind 1 y : {v : int | true}
-bind 2 z : {v : int | true}
-
-constraint:
-  env [0]
-  lhs {v : int | (x = 10)}
-  rhs {v : int | $k0[v:=x]}
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | y = 20}
-  rhs {v : int | $k0[v:=y]}
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[v:=z]}
-  rhs {v : int | 10 <= z}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
diff --git a/liquid-fixpoint/tests/pos/test1.fq b/liquid-fixpoint/tests/pos/test1.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test1.fq
+++ /dev/null
@@ -1,29 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-qualif Zog(v:a) : (10 <= v)
-
-bind 0 x : {v : int | v = 10}
-bind 1 y : {v : int | v = 20}
-bind 2 a : {v : int | $k0    }
-      
-constraint:
-  env [0]
-  lhs {v : int | v = x}
-  rhs {v : int | $k0   }
-  id 1 tag []
-
-constraint:
-  env [1]
-  lhs {v : int | v = y}
-  rhs {v : int | $k0   }
-  id 2 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | v = a  }
-  rhs {v : int | 10 <= v}
-  id 3 tag []
-
-wf:
-  env [ ]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/pos/test2.fq b/liquid-fixpoint/tests/pos/test2.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test2.fq
+++ /dev/null
@@ -1,51 +0,0 @@
-
-// This qualifier saves the day; solve constraints WITHOUT IT
-qualif Zog(v:a): (10 <= v)
-
-// But you may use this one
-qualif Pog(v:a): (0 <= v)
-
-bind 0 x: {v: int | v = 10}
-bind 1 a: {v: int | $k1    }
-bind 2 y: {v: int | v = 20}
-bind 3 b: {v: int | $k1    }
-bind 4 c: {v: int | $k0    }
-
-constraint:
-  env [ ]
-  lhs {v : int | v = 0}
-  rhs {v : int | $k1 }
-  id 0 tag []
-
-
-constraint:
-  env [0; 1]
-  lhs {v : int | v = x + a}
-  rhs {v : int | $k0}
-  id 1 tag []
-
-constraint:
-  env [2; 3]
-  lhs {v : int | v = y + b}
-  rhs {v : int | $k0}
-  id 2 tag []
-
-constraint:
-  env [ ]
-  lhs {v : int | $k0}
-  rhs {v : int | $k1}
-  id 3 tag []
-
-constraint:
-  env [4]
-  lhs {v : int | v = c  }
-  rhs {v : int | 10 <= v}
-  id 4 tag []
-
-wf:
-  env [ ]
-  reft {v: int | $k0}
-
-wf:
-  env [ ]
-  reft {v: int | $k1}
diff --git a/liquid-fixpoint/tests/pos/test3.fq b/liquid-fixpoint/tests/pos/test3.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test3.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-
-qualif Zog(v:a, z:b) : (v = z)
-
-bind 0 x : {v : int | true}
-bind 1 q : {v : int | true}
-bind 2 y : {v : int | v = 10}
-
-constraint:
-  env [1]
-  lhs {v : int | v = q}
-  rhs {v : int | $k0[x:=q] }
-  id 1 tag []
-
-constraint:
-  env [2]
-  lhs {v : int | $k0[x:=y]}
-  rhs {v : int | v = 10}
-  id 2 tag []
-
-wf:
-  env [0]
-  reft {v : int | $k0}
diff --git a/liquid-fixpoint/tests/pos/test4.fq b/liquid-fixpoint/tests/pos/test4.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/test4.fq
+++ /dev/null
@@ -1,19 +0,0 @@
-qualif Auto(v_2 : a_ax6, A0 : a_ax6): (v_2 = A0)
-
-bind 20 ds_dxx : {VV263 : a_ax6 | []}
-
-constraint:
-  env [20]
-  lhs {VVF4 : a_ax6 | [$k__511[VV510:=VVF4]]}
-  rhs {VVF4 : a_ax6 | [(VVF4 = ds_dxx)]}
-  id 4 tag [3]
-
-constraint:
-  env [20]
-  lhs {VVF9 : a_ax6 | [(VVF9 = ds_dxx)]}
-  rhs {VVF9 : a_ax6 | [$k__511[VV510:=VVF9]]}
-  id 9 tag [3]
-
-wf:
-  env [20]
-  reft {VV510 : a_ax6 | [$k__511]}
diff --git a/liquid-fixpoint/tests/pos/unexpected-ge.fq b/liquid-fixpoint/tests/pos/unexpected-ge.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/unexpected-ge.fq
+++ /dev/null
@@ -1,2 +0,0 @@
-
-qualif Auto(v : int, x : int): (v = (if (x > 0) then 0 else 0))
diff --git a/liquid-fixpoint/tests/pos/unused.fq b/liquid-fixpoint/tests/pos/unused.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/unused.fq
+++ /dev/null
@@ -1,11 +0,0 @@
-constant len : func(0, [Tree; int])
-
-bind 0 x : {v : int  | true} 
-bind 1 x : {v : Tree | true} 
-bind 2 y : {v : int  | v = len x } 
-
-constraint:
-  env [ ]
-  lhs {v : Tree | 666 < len v }
-  rhs {v : Tree | 66  < len v }
-  id 1 tag []
diff --git a/liquid-fixpoint/tests/pos/wl00.fq b/liquid-fixpoint/tests/pos/wl00.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/wl00.fq
+++ /dev/null
@@ -1,50 +0,0 @@
-qualif Nat(v:int) : (0 <= v)
-qualif N10(v:int) : (10 = v)
-qualif N20(v:int) : (20 = v)
-
-bind 0 x0 : {v: int | [$k0]}
-
-bind 1 x1 : {v: int | [$k1]}
-
-cut $k0
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [$k0]}
-  id 1 tag [0]
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 20]}
-  rhs {v : int | [$k0]}
-  id 2 tag [0]
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | [v = x0 + 7]}
-  rhs {v : int | [$k1]}
-  id 3 tag [0]
-
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | [v = x1 + 9]}
-  rhs {v : int | [$k0]}
-  id 4 tag [0]
-
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | [v = x1]}
-  rhs {v : int | [0 <= v]}
-  id 5 tag [0]
-
-wf:
-  env [ ]
-  reft {v: int | [$k0]}
-
-
-wf:
-  env [ ]
-  reft {v: int | [$k1]}
diff --git a/liquid-fixpoint/tests/pos/wl01.fq b/liquid-fixpoint/tests/pos/wl01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/wl01.fq
+++ /dev/null
@@ -1,39 +0,0 @@
-qualif Nat(v:int) : (0 <= v)
-
-bind 0 x : {v: int | [$k0]}
-bind 1 y : {v: int | [$k0]}
-bind 2 z : {v: int | [$k1]}
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [$k0]}
-  id 1 tag [0]
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | [v = x + x]}
-  rhs {v : int | [$k0]}
-  id 2 tag [0]
-
-constraint:
-  env [ 0; 1 ]
-  lhs {v : int | [v = x + y ]}
-  rhs {v : int | [$k1]}
-  id 3 tag [0]
-
-
-constraint:
-  env [ 2 ]
-  lhs {v : int | [v =  z]}
-  rhs {v : int | [0 <= v]}
-  id 4 tag [0]
-
-wf:
-  env [ ]
-  reft {v: int | [$k0]}
-
-
-wf:
-  env [ ]
-  reft {v: int | [$k1]}
diff --git a/liquid-fixpoint/tests/pos/wl02.fq b/liquid-fixpoint/tests/pos/wl02.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/wl02.fq
+++ /dev/null
@@ -1,242 +0,0 @@
-qualif Nat(v:int) : (0 <= v)
-
-bind 0  x0  : {v: int | [$k0]}
-bind 1  x1  : {v: int | [$k1]}
-bind 2  x2  : {v: int | [$k2]}
-bind 3  x3  : {v: int | [$k3]}
-bind 4  x4  : {v: int | [$k4]}
-bind 5  x5  : {v: int | [$k5]}
-bind 6  x6  : {v: int | [$k6]}
-bind 7  x7  : {v: int | [$k7]}
-bind 8  x8  : {v: int | [$k8]}
-bind 9  x9  : {v: int | [$k9]}
-bind 10 x10 : {v: int | [$k10]}
-bind 11 x11 : {v: int | [$k11]}
-bind 12 x12 : {v: int | [$k12]}
-bind 13 x13 : {v: int | [$k13]}
-bind 14 x14 : {v: int | [$k14]}
-bind 15 x15 : {v: int | [$k15]}
-bind 16 x16 : {v: int | [$k16]}
-bind 17 x17 : {v: int | [$k17]}
-bind 18 x18 : {v: int | [$k18]}
-bind 19 x19 : {v: int | [$k19]}
-bind 20 x20 : {v: int | [$k20]}
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [$k0]}
-  id 0 tag [0]
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | [v = x0]}
-  rhs {v : int | [$k1]}
-  id 1 tag [0]
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | [v = x1]}
-  rhs {v : int | [$k2]}
-  id 2 tag [0]
-
-
-constraint:
-  env [ 2 ]
-  lhs {v : int | [v = x2]}
-  rhs {v : int | [$k3]}
-  id 3 tag [0]
-
-constraint:
-  env [ 3 ]
-  lhs {v : int | [v = x3]}
-  rhs {v : int | [$k4]}
-  id 4 tag [0]
-
-constraint:
-  env [ 4 ]
-  lhs {v : int | [v = x4]}
-  rhs {v : int | [$k5]}
-  id 5 tag [0]
-
-constraint:
-  env [ 5 ]
-  lhs {v : int | [v = x5]}
-  rhs {v : int | [$k6]}
-  id 6 tag [0]
-
-constraint:
-  env [ 6 ]
-  lhs {v : int | [v = x6]}
-  rhs {v : int | [$k7]}
-  id 7 tag [0]
-
-constraint:
-  env [ 7 ]
-  lhs {v : int | [v = x7]}
-  rhs {v : int | [$k8]}
-  id 8 tag [0]
-
-constraint:
-  env [ 8 ]
-  lhs {v : int | [v = x8]}
-  rhs {v : int | [$k9]}
-  id 9 tag [0]
-
-constraint:
-  env [ 9 ]
-  lhs {v : int | [v = x9]}
-  rhs {v : int | [$k10]}
-  id 10 tag [0]
-
-constraint:
-  env [ 10 ]
-  lhs {v : int | [v = x10]}
-  rhs {v : int | [$k11]}
-  id 11 tag [0]
-
-constraint:
-  env [ 11 ]
-  lhs {v : int | [v = x11]}
-  rhs {v : int | [$k12]}
-  id 12 tag [0]
-
-
-constraint:
-  env [ 12 ]
-  lhs {v : int | [v = x12]}
-  rhs {v : int | [$k13]}
-  id 13 tag [0]
-
-constraint:
-  env [ 13 ]
-  lhs {v : int | [v = x13]}
-  rhs {v : int | [$k14]}
-  id 14 tag [0]
-
-constraint:
-  env [ 14 ]
-  lhs {v : int | [v = x14]}
-  rhs {v : int | [$k15]}
-  id 15 tag [0]
-
-constraint:
-  env [ 15 ]
-  lhs {v : int | [v = x15]}
-  rhs {v : int | [$k16]}
-  id 16 tag [0]
-
-constraint:
-  env [ 16 ]
-  lhs {v : int | [v = x16]}
-  rhs {v : int | [$k17]}
-  id 17 tag [0]
-
-constraint:
-  env [ 17 ]
-  lhs {v : int | [v = x17]}
-  rhs {v : int | [$k18]}
-  id 18 tag [0]
-
-constraint:
-  env [ 18 ]
-  lhs {v : int | [v = x18]}
-  rhs {v : int | [$k19]}
-  id 19 tag [0]
-
-constraint:
-  env [ 19 ]
-  lhs {v : int | [v = x19]}
-  rhs {v : int | [$k20]}
-  id 20 tag [0]
-
-constraint:
-  env [ 20 ]
-  lhs {v : int | [v = x20]}
-  rhs {v : int | [0 <= v]}
-  id 100 tag [0]
-
-wf:
-  env [ ]
-  reft {v: int | [$k0]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k1]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k2]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k3]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k4]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k5]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k6]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k7]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k8]}
-
-
-wf:
-  env [ ]
-  reft {v: int | [$k9]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k10]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k11]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k12]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k13]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k14]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k15]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k16]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k17]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k18]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k19]}
-
-wf:
-  env [ ]
-  reft {v: int | [$k20]}
diff --git a/liquid-fixpoint/tests/pos/wrong-arity.fq b/liquid-fixpoint/tests/pos/wrong-arity.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/pos/wrong-arity.fq
+++ /dev/null
@@ -1,16 +0,0 @@
-// adapted from LH test vector2.hs
-
-constant foo : func(0, [int; int])
-
-// UNCOMMENT THIS FOR CRASH
-bind 1 foo : {v: func(0, [int; int]) | true }
-
-bind 2 foo : {v: func(0, [int; int]) | true }
-
-bind 3 z   : {v : int | [ v = foo 42 ]}
-
-constraint:
-  env [3]
-  lhs {VV : int | [(VV >= 0)]}
-  rhs {VV : int | [(VV >= 0)]}
-  id 107 tag [1]
diff --git a/liquid-fixpoint/tests/smt2/Smt.hs b/liquid-fixpoint/tests/smt2/Smt.hs
deleted file mode 100644
--- a/liquid-fixpoint/tests/smt2/Smt.hs
+++ /dev/null
@@ -1,28 +0,0 @@
--- just fire up ghci, :load Smt.hs and run `go file.smt2`
-
-module Smt where
-
-import qualified Data.Text.Lazy.IO as T
-
-import Language.Fixpoint.Types.Config (SMTSolver (..))
-import Language.Fixpoint.Parse
-import Language.Fixpoint.SmtLib2
-import System.Environment
-
-main    = do f:_ <- getArgs
-             _   <- go f
-             return ()
-
-runFile f
-  = readFile f >>= runString
-
-runString str
-  = runCommands $ rr str
-
-runCommands cmds 
-  = do me   <- makeContext Z3
-       mapM_ (T.putStrLn . smt2) cmds
-       zs   <- mapM (command me) cmds
-       return zs
-
-
diff --git a/liquid-fixpoint/tests/test.hs b/liquid-fixpoint/tests/test.hs
deleted file mode 100644
--- a/liquid-fixpoint/tests/test.hs
+++ /dev/null
@@ -1,251 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# OPTIONS_GHC -fno-warn-orphans #-}
-
-module Main where
-
-import Control.Applicative
-import System.Directory
-import System.Exit
-import System.FilePath
-import System.Environment
-import System.IO
-import System.IO.Error
-import System.Process
-import Test.Tasty
-import Test.Tasty.HUnit
-import Text.Printf
-
-main :: IO ()
-main = defaultMain =<< group "Tests" [unitTests]
-
-unitTests
-  = group "Unit" [
-      testGroup "native-pos" <$> dirTests nativeCmd "tests/pos"    skipNativePos  ExitSuccess
-    , testGroup "native-neg" <$> dirTests nativeCmd "tests/neg"    []             (ExitFailure 1)
-    , testGroup "elim-crash" <$> dirTests nativeCmd "tests/crash"  []             (ExitFailure 2)
-    , testGroup "elim-pos1"  <$> dirTests elimCmd   "tests/pos"    []             ExitSuccess
-    , testGroup "elim-pos2"  <$> dirTests elimCmd   "tests/elim"   []             ExitSuccess
-    , testGroup "elim-neg"   <$> dirTests elimCmd   "tests/neg"    []             (ExitFailure 1)
-    , testGroup "elim-crash" <$> dirTests elimCmd   "tests/crash"  []             (ExitFailure 2)
-   ]
-
-skipNativePos :: [FilePath]
-skipNativePos = ["NonLinear-pack.fq"]
-
----------------------------------------------------------------------------
-dirTests :: TestCmd -> FilePath -> [FilePath] -> ExitCode -> IO [TestTree]
----------------------------------------------------------------------------
-dirTests testCmd root ignored code
-  = do files    <- walkDirectory root
-       let tests = [ rel | f <- files, isTest f, let rel = makeRelative root f, rel `notElem` ignored ]
-       return    $ mkTest testCmd code root <$> tests
-
-isTest   :: FilePath -> Bool
-isTest f = takeExtension f `elem` [".fq"]
-
----------------------------------------------------------------------------
-mkTest :: TestCmd -> ExitCode -> FilePath -> FilePath -> TestTree
----------------------------------------------------------------------------
-mkTest testCmd code dir file
-  = testCase file $
-      if test `elem` knownToFail
-      then do
-        printf "%s is known to fail: SKIPPING" test
-        assertEqual "" True True
-      else do
-        createDirectoryIfMissing True $ takeDirectory log
-        bin <- binPath "fixpoint"
-        withFile log WriteMode $ \h -> do
-          let cmd     = testCmd bin dir file
-          (_,_,_,ph) <- createProcess $ (shell cmd) {std_out = UseHandle h, std_err = UseHandle h}
-          c          <- waitForProcess ph
-          assertEqual "Wrong exit code" code c
-  where
-    test = dir </> file
-    log  = let (d,f) = splitFileName file in dir </> d </> ".liquid" </> f <.> "log"
-
-binPath pkgName = do
-  testPath <- getExecutablePath
-  return    $ (takeDirectory $ takeDirectory testPath) </> pkgName </> pkgName
-
-knownToFail = []
----------------------------------------------------------------------------
-type TestCmd = FilePath -> FilePath -> FilePath -> String
-
-nativeCmd :: TestCmd
-nativeCmd bin dir file = printf "cd %s && %s %s" dir bin file
-
-elimCmd :: TestCmd
-elimCmd bin dir file = printf "cd %s && %s --eliminate=some %s" dir bin file
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
----------------------------------------------------------------------------
-
-{-
-
-quickCheckTests :: TestTree
-quickCheckTests
-  = testGroup "Properties"
-      [ testProperty "prop_pprint_parse_inv_expr" prop_pprint_parse_inv_expr
-      , testProperty "prop_pprint_parse_inv_pred" prop_pprint_parse_inv_pred
-      ]
-
-prop_pprint_parse_inv_pred :: Pred -> Bool
-prop_pprint_parse_inv_pred p = p == rr (showpp p)
-
-prop_pprint_parse_inv_expr :: Expr -> Bool
-prop_pprint_parse_inv_expr p = simplify p == rr (showpp $ simplify p)
-
-instance Arbitrary Sort where
-  arbitrary = sized arbSort
-
-arbSort 0 = oneof [return FInt, return FReal, return FNum]
-arbSort n = frequency
-              [(1, return FInt)
-              ,(1, return FReal)
-              ,(1, return FNum)
-              ,(2, fmap FObj arbitrary)
-              ]
-
-
-instance Arbitrary Pred where
-  arbitrary = sized arbPred
-  shrink = filter valid . genericShrink
-    where
-      valid (PAnd [])  = False
-      valid (PAnd [_]) = False
-      valid (POr [])   = False
-      valid (POr [_])  = False
-      valid (PBexp (EBin _ _ _)) = True
-      valid (PBexp _)  = False
-      valid _          = True
-
-arbPred 0 = elements [PTrue, PFalse]
-arbPred n = frequency
-              [(1, return PTrue)
-              ,(1, return PFalse)
-              ,(2, fmap PAnd  twoPreds)
-              ,(2, fmap POr   twoPreds)
-              ,(2, fmap PNot (arbPred (n `div` 2)))
-              ,(2, liftM2 PImp (arbPred (n `div` 2)) (arbPred (n `div` 2)))
-              ,(2, liftM2 PIff (arbPred (n `div` 2)) (arbPred (n `div` 2)))
-              ,(2, fmap PBexp (arbExpr (n `div` 2)))
-              ,(2, liftM3 PAtom arbitrary (arbExpr (n `div` 2)) (arbExpr (n `div` 2)))
-              -- ,liftM2 PAll arbitrary arbitrary
-              -- ,return PTop
-              ]
-  where
-    twoPreds = do
-      x <- arbPred (n `div` 2)
-      y <- arbPred (n `div` 2)
-      return [x,y]
-
-instance Arbitrary Expr where
-  arbitrary = sized arbExpr
-  shrink = filter valid . genericShrink
-    where valid (EApp _ []) = False
-          valid _           = True
-
-arbExpr 0 = oneof [fmap ESym arbitrary, fmap ECon arbitrary, fmap EVar arbitrary, return EBot]
-arbExpr n = frequency
-              [(1, fmap ESym arbitrary)
-              ,(1, fmap ECon arbitrary)
-              ,(1, fmap EVar arbitrary)
-              ,(1, return EBot)
-              -- ,liftM2 ELit arbitrary arbitrary -- restrict literals somehow
-              ,(2, choose (1,3) >>= \m -> liftM2 EApp arbitrary (vectorOf m (arbExpr (n `div` 2))))
-              ,(2, liftM3 EBin arbitrary (arbExpr (n `div` 2)) (arbExpr (n `div` 2)))
-              ,(2, liftM3 EIte (arbPred (max 2 (n `div` 2)) `suchThat` isRel)
-                               (arbExpr (n `div` 2))
-                               (arbExpr (n `div` 2)))
-              ,(2, liftM2 ECst (arbExpr (n `div` 2)) (arbSort (n `div` 2)))
-              ]
-  where
-    isRel (PAtom _ _ _) = True
-    isRel _             = False
-
-instance Arbitrary Brel where
-  arbitrary = oneof (map return [Eq, Ne, Gt, Ge, Lt, Le, Ueq, Une])
-
-instance Arbitrary Bop where
-  arbitrary = oneof (map return [Plus, Minus, Times, Div, Mod])
-
-instance Arbitrary SymConst where
-  arbitrary = fmap SL arbitrary
-
-instance Arbitrary Symbol where
-  arbitrary = fmap (symbol :: Text -> Symbol) arbitrary
-
-instance Arbitrary Text where
-  arbitrary = choose (1,4) >>= \n ->
-                fmap pack (vectorOf n char `suchThat` valid)
-    where
-      char = elements ['a'..'z']
-      valid x = x `notElem` fixpointNames && not (isFixKey x)
-
-instance Arbitrary FTycon where
-  arbitrary = do
-    c <- elements ['A'..'Z']
-    t <- arbitrary
-    return $ symbolFTycon $ dummyLoc $ symbol $ cons c t
-
-instance Arbitrary Constant where
-  arbitrary = oneof [fmap I (arbitrary `suchThat` (>=0))
-                    -- ,fmap R arbitrary
-                    ]
-  shrink = genericShrink
-
-instance Arbitrary a => Arbitrary (Located a) where
-  arbitrary = fmap dummyLoc arbitrary
-  shrink = fmap dummyLoc . shrink . val
-
--}
-
-----------------------------------------------------------------------------------------
--- Generic Helpers
-----------------------------------------------------------------------------------------
-
-group n xs = testGroup n <$> sequence xs
-
-----------------------------------------------------------------------------------------
-walkDirectory :: FilePath -> IO [FilePath]
-----------------------------------------------------------------------------------------
-walkDirectory root
-  = do (ds,fs) <- partitionM doesDirectoryExist . candidates =<< (getDirectoryContents root `catchIOError` const (return []))
-       (fs++) <$> concatMapM walkDirectory ds
-  where
-    candidates fs = [root </> f | f <- fs, not (isExtSeparator (head f))]
-
-partitionM :: Monad m => (a -> m Bool) -> [a] -> m ([a],[a])
-partitionM f = go [] []
-  where
-    go ls rs []     = return (ls,rs)
-    go ls rs (x:xs) = do b <- f x
-                         if b then go (x:ls) rs xs
-                              else go ls (x:rs) xs
-
--- isDirectory :: FilePath -> IO Bool
--- isDirectory = fmap Posix.isDirectory . Posix.getFileStatus
-
-concatMapM :: Applicative m => (a -> m [b]) -> [a] -> m [b]
-concatMapM _ []     = pure []
-concatMapM f (x:xs) = (++) <$> f x <*> concatMapM f xs
diff --git a/liquid-fixpoint/tests/testParser.hs b/liquid-fixpoint/tests/testParser.hs
deleted file mode 100644
--- a/liquid-fixpoint/tests/testParser.hs
+++ /dev/null
@@ -1,308 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-
-module Main where
-
-import Language.Fixpoint.Parse
-import Test.Tasty
-import Test.Tasty.HUnit
-
-main :: IO ()
-main = defaultMain $ parserTests
-
-parserTests :: TestTree
-parserTests =
-  testGroup "Tests"
-    [
-      testSortP
-    , testFunAppP
-    , testExpr0P
-    , testPredP
-    ]
-
--- ---------------------------------------------------------------------
-{-
-
-sort = '(' sort ')'
-     | 'func' funcSort
-     | '[' sort ']'
-     | bvsort
-     | fTyCon
-     | tVar
-
-sorts = '[' sortslist ']'
-
-sortslist = sort
-          | sort `;` sortslist
-
-funcSort = '(' int `,` sorts ')'
-
-     e.g.(func(1, [int; @(0)]))
-
-bvsort = '(' 'BitVec' 'Size32' ')'
-       | '(' 'BitVec' 'Size64' ')'
-
-fTyCon = 'int' | 'Integer' | 'Int' | 'real' | 'num' | 'Str'
-       | SYMBOL
-
-SYMBOL = upper case char or _, followed by many of '%' '#' '$' '\'
-
-tVar = '@' varSort
-     | LOWERID
-
-varSort = '(' INT ')'
--}
-
-testSortP :: TestTree
-testSortP =
-  testGroup "SortP"
-    [ testCase "FAbs" $
-        show (doParse' sortP "test" "(func(1, [int; @(0)]))") @?= "FAbs 0 (FFunc FInt (FVar 0))"
-
-    , testCase "(FAbs)" $
-        show (doParse' sortP "test" "((func(1, [int; @(0)])))") @?= "FAbs 0 (FFunc FInt (FVar 0))"
-
-    , testCase "FApp FInt" $
-        show (doParse' sortP "test" "[int]") @?=
-              "FApp (FTC (TC \"[]\" (dummyLoc) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False}))) FInt"
-
-    , testCase "bv32" $
-        show (doParse' sortP "test" "BitVec Size32") @?=
-              "FApp (FTC (TC \"BitVec\" defined from: \"test\" (line 1, column 1) to: \"test\" (line 1, column 8) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False}))) (FTC (TC \"Size32\" defined from: \"test\" (line 1, column 8) to: \"test\" (line 1, column 14) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False})))"
-
-    , testCase "bv64" $
-        show (doParse' sortP "test" "BitVec Size64") @?=
-              "FApp (FTC (TC \"BitVec\" defined from: \"test\" (line 1, column 1) to: \"test\" (line 1, column 8) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False}))) (FTC (TC \"Size64\" defined from: \"test\" (line 1, column 8) to: \"test\" (line 1, column 14) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False})))"
-
-    , testCase "FInt int" $
-        show (doParse' sortP "test" "int") @?= "FInt"
-
-    , testCase "FInt Integer" $
-        show (doParse' sortP "test" "Integer") @?= "FInt"
-
-    , testCase "FInt Int" $
-        show (doParse' sortP "test" "Int") @?= "FInt"
-
-    , testCase "FReal real" $
-        show (doParse' sortP "test" "real") @?= "FReal"
-
-    , testCase "FNum num" $
-        show (doParse' sortP "test" "num") @?= "FNum"
-
-    , testCase "FStr" $
-        show (doParse' sortP "test" "Str") @?=
-             "FTC (TC \"Str\" (dummyLoc) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = True}))"
-
-    , testCase "SYMBOL" $
-        show (doParse' sortP "test" "F#y") @?=
-             "FTC (TC \"F#y\" defined from: \"test\" (line 1, column 1) to: \"test\" (line 1, column 4) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False}))"
-
-    , testCase "FVar 3" $
-        show (doParse' sortP "test" "@(3)") @?= "FVar 3"
-
-    , testCase "FObj " $
-        show (doParse' sortP "test" "foo") @?= "FObj \"foo\""
-
-    , testCase "FObj " $
-        show (doParse' sortP "test" "_foo") @?= "FObj \"_foo\""
-    ]
-
--- ---------------------------------------------------------------------
-{-
-
-funApp = lit
-       | exprFunSpaces
-       | expFunSemis
-       | expFunCommas
-       | simpleApp
-
-lit = 'lit' stringLiteral sort
-
-exprFunSpaces =
-
-exprFunSemis =
-
-exprFunCommas =
-
-simpleApp = 
--}
-testFunAppP :: TestTree
-testFunAppP =
-  testGroup "FunAppP"
-    [ testCase "ECon (litP)" $
-        show (doParse' funAppP "test" "lit \"#x00000008\" (BitVec  Size32)") @?=
-          "ECon (L \"#x00000008\" (FApp (FTC (TC \"BitVec\" defined from: \"test\" (line 1, column 19) to: \"test\" (line 1, column 27) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False}))) (FTC (TC \"Size32\" defined from: \"test\" (line 1, column 27) to: \"test\" (line 1, column 33) (TCInfo {tc_isNum = False, tc_isReal = False, tc_isString = False})))))"
-
-    , testCase "ECon (exprFunSpacesP)" $
-        show (doParse' funAppP "test" "fooBar baz qux") @?= "EApp (EApp (EVar \"fooBar\") (EVar \"baz\")) (EVar \"qux\")"
-
-    , testCase "ECon (exprFunCommasP)" $
-        show (doParse' funAppP "test" "fooBar (baz, qux)") @?= "EApp (EApp (EVar \"fooBar\") (EVar \"baz\")) (EVar \"qux\")"
-
-    , testCase "ECon (exprFunSemisP)" $
-        show (doParse' funAppP "test" "fooBar ([baz; qux])") @?= "EApp (EApp (EVar \"fooBar\") (EVar \"baz\")) (EVar \"qux\")"
-
-    , testCase "ECon (simpleAppP)" $
-        show (doParse' funAppP "test" "fooBar (baz + 1)") @?= "EApp (EVar \"fooBar\") (EBin Plus (EVar \"baz\") (ECon (I 1)))"
-    ]
-
--- ---------------------------------------------------------------------
-{-
-expr0 = fastIf
-      | symconst
-      | constant
-      | '_|_'
-      | lam
-      | '(' expr ')'
-      | '(' exprCast ')'
-      | symChars
-
--}
-testExpr0P :: TestTree
-testExpr0P =
-  testGroup "expr0P"
-    [ testCase "EIte" $
-        show (doParse' expr0P "test" "if true then x else y") @?= "EIte (PAnd []) (EVar \"x\") (EVar \"y\")"
-
-    , testCase "ESym SL" $
-        show (doParse' expr0P "test" "\"foo\" ") @?= "ESym (SL \"foo\")"
-
-    , testCase "ECon R" $
-        show (doParse' expr0P "test" "0.0") @?= "ECon (R 0.0)"
-
-    , testCase "ECon I" $
-        show (doParse' expr0P "test" "0") @?= "ECon (I 0)"
-
-    , testCase "ECon I" $
-        show (doParse' expr0P "test" "0") @?= "ECon (I 0)"
-
-    , testCase "EBot / POr []" $
-        show (doParse' expr0P "test" "_|_") @?= "POr []" -- pattern for "EBot"
-
-    , testCase "ELam" $
-        show (doParse' expr0P "test" "\\ foo : Int -> true") @?= "ELam (\"foo\",FInt) (EVar \"true\")"
-
-    , testCase "Expr" $
-        show (doParse' expr0P "test" "(1)") @?= "ECon (I 1)"
-
-    , testCase "ECst dcolon" $
-        show (doParse' expr0P "test" "(1 :: Int)") @?= "ECst (ECon (I 1)) FInt"
-
-    , testCase "ECst colon" $
-        show (doParse' expr0P "test" "(1 : Int)") @?= "ECst (ECon (I 1)) FInt"
-
-    , testCase "charsExpr EVar" $
-        show (doParse' expr0P "test" "foo") @?= "EVar \"foo\""
-
-    , testCase "charsExpr ECon" $
-        show (doParse' expr0P "test" "1") @?= "ECon (I 1)"
-    ]
-
--- ---------------------------------------------------------------------
-{-
-
-pred = expressionParse (prefixOp++infixOp) pred0
-
-prefixOp = '~' | 'not'
-
-infixOp  = '&&' | '||' | '=>' | '==>' | '<=>'
-
--- terms are pred0
-pred0 = 'true' | 'false'
-      | '??'
-      | kvarPred
-      | fastIfP
-      | predr
-      | '(' pred ')'
-      | '?' expr
-      | funApp
-      | symbol
-      | '&&' preds
-      | '||' preds
-
-kvarPred = kvar substs
-
-kvar = '$' symbol
-
-substs = {- empty -}
-       | subst substs
-
-subst = '[' symbol ':=' expr ']'
-
-preds = '[' predslist ']'
-
-predslist = pred
-          | pred `;` predslist
-
-fastIf = 'if' pred 'then' pred 'else' pred
-
-predr = expr brel expr
-
-brelP = '==' | '=' | '~~' | '!=' | '/=' | '!~' | '<' | '<=' | '>' | '>='
-
--}
-
-testPredP :: TestTree
-testPredP =
-  testGroup "predP"
-    [ testCase "PTrue" $
-        show (doParse' predP "test" "true") @?= "PAnd []" -- pattern for PTrue
-
-    , testCase "PFalse" $
-        show (doParse' predP "test" "false") @?= "POr []" -- pattern for PFalse
-
-    , testCase "PGrad / ??" $
-        show (doParse' predP "test" "??") @?= "PGrad $\"\\\"test\\\" (line 1, column 3)\"  (PAnd [])"
-
-    , testCase "kvarPred empty" $
-        show (doParse' predP "test" "$foo") @?= "PKVar $\"foo\" "
-
-    , testCase "kvarPred one" $
-        show (doParse' predP "test" "$foo  [x := 1]") @?= "PKVar $\"foo\" [x:=1]"
-
-    , testCase "kvarPred two" $
-        show (doParse' predP "test" "$foo  [x := 1] [ y := true ]") @?= "PKVar $\"foo\" [x:=1][y:=true]"
-
-    , testCase "fastIf" $
-        show (doParse' predP "test" "if true then true else false" ) @?=
-          -- note conversion
-          "PAnd [PImp (PAnd []) (PAnd []),PImp (PNot (PAnd [])) (POr [])]"
-
-    , testCase "brel" $
-        show (doParse' predP "test" "1 == 2") @?= "PAtom Eq (ECon (I 1)) (ECon (I 2))"
-
-    , testCase "parens pred" $
-        show (doParse' predP "test" "((1 == 2))") @?= "PAtom Eq (ECon (I 1)) (ECon (I 2))"
-
-    , testCase "? expr" $
-        show (doParse' predP "test" "? (1+2)") @?= "EBin Plus (ECon (I 1)) (ECon (I 2))"
-
-    , testCase "funApp 1" $
-        show (doParse' predP "test" "f a b") @?= "EApp (EApp (EVar \"f\") (EVar \"a\")) (EVar \"b\")"
-
-    , testCase "funApp 2" $
-        show (doParse' predP "test" "f (a, b)") @?= "EApp (EApp (EVar \"f\") (EVar \"a\")) (EVar \"b\")"
-
-    , testCase "funApp 3" $
-        show (doParse' predP "test" "f ([a; b])") @?= "EApp (EApp (EVar \"f\") (EVar \"a\")) (EVar \"b\")"
-
-    , testCase "symbol" $
-        show (doParse' predP "test" "f") @?= "EVar \"f\""
-
-    , testCase "&& 0" $
-        show (doParse' predP "test" "&& []") @?= "PAnd []"
-
-    , testCase "&& 1" $
-        show (doParse' predP "test" "&& [x]") @?= "PAnd [EVar \"x\"]"
-
-    , testCase "&& 2" $
-        show (doParse' predP "test" "&& [x;y]") @?= "PAnd [EVar \"x\",EVar \"y\"]"
-
-    , testCase "|| 0" $
-        show (doParse' predP "test" "|| []") @?= "POr []"
-
-    , testCase "|| 1" $
-        show (doParse' predP "test" "|| [x]") @?= "POr [EVar \"x\"]"
-
-    , testCase "|| 2" $
-        show (doParse' predP "test" "|| [x;y]") @?= "POr [EVar \"x\",EVar \"y\"]"
-    ]
diff --git a/liquid-fixpoint/tests/todo/MergeSort.fq b/liquid-fixpoint/tests/todo/MergeSort.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/todo/MergeSort.fq
+++ /dev/null
@@ -1,3234 +0,0 @@
-qualif Fst(v : @(1), y : @(0)): ((v = (fst y))) // "tests/todo/MergeSort.new.min.fq" (line 1, column 8)
-qualif Snd(v : @(1), y : @(0)): ((v = (snd y))) // "tests/todo/MergeSort.new.min.fq" (line 2, column 8)
-qualif Auto(VV : @(0), fld##0 : @(0)): ((VV >= fld##0)) // "tests/todo/MergeSort.new.min.fq" (line 3, column 8)
-qualif Auto(VV : @(0), fld##0 : @(0)): ((VV >= fld##0)) // "tests/todo/MergeSort.new.min.fq" (line 4, column 8)
-qualif Auto(VV : [@(0)], xs : [@(0)], ys : [@(0)]): (((len VV) = ((len xs) + (len ys)))) // "tests/todo/MergeSort.new.min.fq" (line 5, column 8)
-qualif Auto(VV : @(0), fld##0 : @(0)): ((VV >= fld##0)) // "tests/todo/MergeSort.new.min.fq" (line 6, column 8)
-qualif Auto(VV : [@(0)], xs : [@(0)]): (((len VV) = (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 7, column 8)
-qualif Auto(VV : @(0), fld##0 : @(0)): ((VV >= fld##0)) // "tests/todo/MergeSort.new.min.fq" (line 8, column 8)
-qualif Auto(v##0 : (Tuple  [@(0)]  [@(0)]), xs : [@(0)]): ((((len (fst v##0)) + (len (snd v##0))) = (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 9, column 8)
-qualif Auto(v##0 : [@(0)], xs : [@(0)]): ((((len v##0) > 1) => ((len v##0) < (len xs)))) // "tests/todo/MergeSort.new.min.fq" (line 10, column 8)
-qualif Auto(v##0 : [@(0)], xs : [@(0)]): ((((len v##0) > 1) => ((len v##0) < (len xs)))) // "tests/todo/MergeSort.new.min.fq" (line 11, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): (((Prop v) <=> ((len xs) > 0))) // "tests/todo/MergeSort.new.min.fq" (line 12, column 8)
-qualif IsEmp(v : GHC.Types.Bool, xs : [@(0)]): (((Prop v) <=> ((len xs) = 0))) // "tests/todo/MergeSort.new.min.fq" (line 13, column 8)
-qualif ListZ(v : [@(0)]): (((len v) = 0)) // "tests/todo/MergeSort.new.min.fq" (line 14, column 8)
-qualif ListZ(v : [@(0)]): (((len v) >= 0)) // "tests/todo/MergeSort.new.min.fq" (line 15, column 8)
-qualif ListZ(v : [@(0)]): (((len v) > 0)) // "tests/todo/MergeSort.new.min.fq" (line 16, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) = (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 17, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) >= (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 18, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) > (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 19, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) <= (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 20, column 8)
-qualif CmpLen(v : [@(1)], xs : [@(0)]): (((len v) < (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 21, column 8)
-qualif EqLen(v : int, xs : [@(0)]): ((v = (len xs))) // "tests/todo/MergeSort.new.min.fq" (line 22, column 8)
-qualif LenEq(v : [@(0)], x : int): ((x = (len v))) // "tests/todo/MergeSort.new.min.fq" (line 23, column 8)
-qualif LenDiff(v : [@(0)], x : int): (((len v) = (x + 1))) // "tests/todo/MergeSort.new.min.fq" (line 24, column 8)
-qualif LenDiff(v : [@(0)], x : int): (((len v) = (x - 1))) // "tests/todo/MergeSort.new.min.fq" (line 25, column 8)
-qualif LenAcc(v : int, xs : [@(0)], n : int): ((v = ((len xs) + n))) // "tests/todo/MergeSort.new.min.fq" (line 26, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "tests/todo/MergeSort.new.min.fq" (line 27, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "tests/todo/MergeSort.new.min.fq" (line 28, column 8)
-qualif Bot(v : @(0)): ((0 = 1)) // "tests/todo/MergeSort.new.min.fq" (line 29, column 8)
-qualif Bot(v : bool): ((0 = 1)) // "tests/todo/MergeSort.new.min.fq" (line 30, column 8)
-qualif Bot(v : int): ((0 = 1)) // "tests/todo/MergeSort.new.min.fq" (line 31, column 8)
-qualif CmpZ(v : @(0)): ((v < 0)) // "tests/todo/MergeSort.new.min.fq" (line 32, column 8)
-qualif CmpZ(v : @(0)): ((v <= 0)) // "tests/todo/MergeSort.new.min.fq" (line 33, column 8)
-qualif CmpZ(v : @(0)): ((v > 0)) // "tests/todo/MergeSort.new.min.fq" (line 34, column 8)
-qualif CmpZ(v : @(0)): ((v >= 0)) // "tests/todo/MergeSort.new.min.fq" (line 35, column 8)
-qualif CmpZ(v : @(0)): ((v = 0)) // "tests/todo/MergeSort.new.min.fq" (line 36, column 8)
-qualif CmpZ(v : @(0)): ((v != 0)) // "tests/todo/MergeSort.new.min.fq" (line 37, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v < x)) // "tests/todo/MergeSort.new.min.fq" (line 38, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v <= x)) // "tests/todo/MergeSort.new.min.fq" (line 39, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v > x)) // "tests/todo/MergeSort.new.min.fq" (line 40, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v >= x)) // "tests/todo/MergeSort.new.min.fq" (line 41, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v = x)) // "tests/todo/MergeSort.new.min.fq" (line 42, column 8)
-qualif Cmp(v : @(0), x : @(0)): ((v != x)) // "tests/todo/MergeSort.new.min.fq" (line 43, column 8)
-qualif One(v : int): ((v = 1)) // "tests/todo/MergeSort.new.min.fq" (line 44, column 8)
-qualif True1(v : GHC.Types.Bool): ((Prop v)) // "tests/todo/MergeSort.new.min.fq" (line 45, column 8)
-qualif False1(v : GHC.Types.Bool): ((~ ((Prop v)))) // "tests/todo/MergeSort.new.min.fq" (line 46, column 8)
-qualif Papp(v : @(0), p : (Pred  @(0))): ((papp1 p v)) // "tests/todo/MergeSort.new.min.fq" (line 47, column 8)
-qualif Papp2(v : @(1), x : @(0), p : (Pred  @(1)  @(0))): ((papp2 p v x)) // "tests/todo/MergeSort.new.min.fq" (line 48, column 8)
-qualif Papp3(v : @(2), x : @(0), y : @(1), p : (Pred  @(2)  @(0)  @(1))): ((papp3 p v x y)) // "tests/todo/MergeSort.new.min.fq" (line 49, column 8)
-
-
-cut $k_##795
-cut $k_##1160
-cut $k_##1118
-cut $k_##753
-cut $k_##1115
-cut $k_##792
-cut $k_##750
-cut $k_##746
-cut $k_##1111
-cut $k_##1153
-cut $k_##788
-cut $k_##1157
-
-
-pack $k_##686 : 0
-pack $k_##671 : 0
-pack $k_##655 : 0
-pack $k_##679 : 0
-pack $k_##667 : 0
-pack $k_##659 : 0
-pack $k_##662 : 0
-pack $k_##674 : 0
-pack $k_##683 : 0
-pack $k_##572 : 1
-pack $k_##560 : 1
-pack $k_##556 : 1
-pack $k_##584 : 1
-pack $k_##575 : 1
-pack $k_##587 : 1
-pack $k_##563 : 1
-pack $k_##568 : 1
-pack $k_##580 : 1
-pack $k_##883 : 2
-pack $k_##907 : 2
-pack $k_##890 : 2
-pack $k_##914 : 2
-pack $k_##899 : 2
-pack $k_##902 : 2
-pack $k_##911 : 2
-pack $k_##895 : 2
-pack $k_##887 : 2
-pack $k_##314 : 3
-pack $k_##321 : 3
-pack $k_##318 : 3
-pack $k_##753 : 4
-pack $k_##750 : 4
-pack $k_##746 : 4
-pack $k_##1020 : 5
-pack $k_##1017 : 5
-pack $k_##540 : 6
-pack $k_##543 : 6
-pack $k_##639 : 7
-pack $k_##642 : 7
-pack $k_##971 : 8
-pack $k_##968 : 8
-pack $k_##168 : 9
-pack $k_##175 : 9
-pack $k_##172 : 9
-pack $k_##1118 : 10
-pack $k_##1115 : 10
-pack $k_##1111 : 10
-pack $k_##256 : 11
-pack $k_##259 : 11
-pack $k_##252 : 11
-pack $k_##1037 : 12
-pack $k_##1040 : 12
-pack $k_##237 : 13
-pack $k_##241 : 13
-pack $k_##244 : 13
-pack $k_##467 : 14
-pack $k_##470 : 14
-pack $k_##415 : 15
-pack $k_##418 : 15
-pack $k_##1160 : 16
-pack $k_##1153 : 16
-pack $k_##1157 : 16
-pack $k_##387 : 17
-pack $k_##390 : 17
-pack $k_##867 : 18
-pack $k_##864 : 18
-pack $k_##844 : 19
-pack $k_##841 : 19
-pack $k_##1076 : 20
-pack $k_##1080 : 20
-pack $k_##1083 : 20
-pack $k_##338 : 21
-pack $k_##335 : 21
-pack $k_##795 : 22
-pack $k_##792 : 22
-pack $k_##788 : 22
-
-
-constant runFun : (func(2, [(Arrow  @(0)  @(1)); @(0); @(1)]))
-constant addrLen : (func(0, [int; int]))
-constant lit$36$$47$Users$47$rjhala$47$research$47$stack$47$liquidhaskell$47$tests$47$pos$47$MergeSort.hs$58$$40$48$44$1$41$$45$$40$52$44$41$41$$124$function$32$merge : (Str)
-constant papp5 : (func(10, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4));
-                            @(5);
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            bool]))
-constant x_Tuple21 : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant GHC.Types.False##68 : (GHC.Types.Bool)
-constant x_Tuple65 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(4)]))
-constant x_Tuple55 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(4)]))
-constant x_Tuple33 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(2)]))
-constant x_Tuple77 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(6)]))
-constant papp3 : (func(6, [(Pred  @(0)  @(1)  @(2));
-                           @(3);
-                           @(4);
-                           @(5);
-                           bool]))
-constant GHC.Types.True##6u : (GHC.Types.Bool)
-constant x_Tuple63 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(2)]))
-constant x_Tuple41 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(0)]))
-constant GHC.Types.LT##6S : (GHC.Types.Ordering)
-constant papp4 : (func(8, [(Pred  @(0)  @(1)  @(2)  @(3));
-                           @(4);
-                           @(5);
-                           @(6);
-                           @(7);
-                           bool]))
-constant x_Tuple64 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(3)]))
-constant GHC.Types.GT##6W : (GHC.Types.Ordering)
-constant GHC.Types.$58$$35$$35$64 : (func(1, [@(0);
-                                              [@(0)];
-                                              [@(0)]]))
-constant autolen : (func(1, [@(0); int]))
-constant x_Tuple52 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(1)]))
-constant head : (func(1, [[@(0)]; @(0)]))
-constant MergeSort.split##rlx : (func(1, [[@(0)];
-                                          (Tuple  [@(0)]  [@(0)])]))
-constant null : (func(1, [[@(0)]; bool]))
-constant GHC.Classes.$60$$61$$35$$35$r4 : (func(1, [@(0);
-                                                    @(0);
-                                                    GHC.Types.Bool]))
-constant papp2 : (func(4, [(Pred  @(0)  @(1)); @(2); @(3); bool]))
-constant x_Tuple62 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(1)]))
-constant GHC.Tuple.$40$$44$$41$$35$$35$74 : (func(2, [@(0);
-                                                      @(1);
-                                                      (Tuple  @(0)  @(1))]))
-constant fromJust : (func(1, [(GHC.Base.Maybe  @(0)); @(0)]))
-constant papp7 : (func(14, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            @(12);
-                            @(13);
-                            bool]))
-constant MergeSort.sort##rjG : (func(1, [[@(0)]; [@(0)]]))
-constant x_Tuple53 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(2)]))
-constant x_Tuple71 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(0)]))
-constant x_Tuple74 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(3)]))
-constant len : (func(2, [(@(0)  @(1)); int]))
-constant papp6 : (func(12, [(Pred  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                            @(6);
-                            @(7);
-                            @(8);
-                            @(9);
-                            @(10);
-                            @(11);
-                            bool]))
-constant x_Tuple22 : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant x_Tuple66 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(5)]))
-constant x_Tuple44 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(3)]))
-constant strLen : (func(0, [int; int]))
-constant x_Tuple72 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(1)]))
-constant isJust : (func(1, [(GHC.Base.Maybe  @(0)); bool]))
-constant Prop : (func(0, [GHC.Types.Bool; bool]))
-constant x_Tuple31 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(0)]))
-constant x_Tuple75 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(4)]))
-constant papp1 : (func(2, [(Pred  @(0)); @(1); bool]))
-constant x_Tuple61 : (func(6, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5));
-                               @(0)]))
-constant x_Tuple43 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(2)]))
-constant tail : (func(1, [[@(0)]; [@(0)]]))
-constant GHC.Types.EQ##6U : (GHC.Types.Ordering)
-constant Control.Exception.Base.patError##0e : (func(1, [int;
-                                                         @(0)]))
-constant MergeSort.merge##rly : (func(1, [[@(0)]; [@(0)]; [@(0)]]))
-constant x_Tuple51 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(0)]))
-constant x_Tuple73 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(2)]))
-constant GHC.Types.$91$$93$$35$$35$6m : (func(1, [[@(0)]]))
-constant x_Tuple54 : (func(5, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4));
-                               @(3)]))
-constant cmp : (func(0, [GHC.Types.Ordering; GHC.Types.Ordering]))
-constant x_Tuple32 : (func(3, [(Tuple  @(0)  @(1)  @(2)); @(1)]))
-constant x_Tuple76 : (func(7, [(Tuple  @(0)  @(1)  @(2)  @(3)  @(4)  @(5)  @(6));
-                               @(5)]))
-constant snd : (func(2, [(Tuple  @(0)  @(1)); @(1)]))
-constant fst : (func(2, [(Tuple  @(0)  @(1)); @(0)]))
-constant x_Tuple42 : (func(4, [(Tuple  @(0)  @(1)  @(2)  @(3));
-                               @(1)]))
-constant GHC.Prim.void###0l : (GHC.Prim.Void#)
-
-
-bind 0 GHC.Prim.void###0l : {VV##84 : GHC.Prim.Void# | []}
-bind 1 GHC.Types.False##68 : {VV##86 : GHC.Types.Bool | []}
-bind 2 GHC.Types.$91$$93$$35$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 3 GHC.Types.True##6u : {VV##88 : GHC.Types.Bool | []}
-bind 4 GHC.Types.EQ##6U : {VV##91 : GHC.Types.Ordering | [(VV##91 = GHC.Types.EQ##6U)]}
-bind 5 GHC.Types.LT##6S : {VV##92 : GHC.Types.Ordering | [(VV##92 = GHC.Types.LT##6S)]}
-bind 6 GHC.Types.GT##6W : {VV##93 : GHC.Types.Ordering | [(VV##93 = GHC.Types.GT##6W)]}
-bind 7 GHC.Types.True##6u : {v##4 : GHC.Types.Bool | [(Prop v##4)]}
-bind 8 GHC.Types.False##68 : {v##5 : GHC.Types.Bool | [(~ ((Prop v##5)))]}
-bind 9 GHC.Types.False##68 : {v##5 : GHC.Types.Bool | [(~ ((Prop v##5)))]}
-bind 10 GHC.Types.$91$$93$$35$$35$6m : {VV : func(1, [[@(0)]]) | []}
-bind 11 GHC.Types.True##6u : {v##4 : GHC.Types.Bool | [(Prop v##4)]}
-bind 12 fix$36$$36$dOrd_azK : {VV##119 : (GHC.Classes.Ord  a_azo) | []}
-bind 13 xs##ayP : {VV##120 : [a_azo] | [((len VV##120) >= 0)]}
-bind 14 ds_dMl : {VV##121 : [a_azo] | [((len VV##121) >= 0)]}
-bind 15 lq_anf$##dMK : {lq_tmp$x##123 : [a_azo] | [((len lq_tmp$x##123) >= 0);
-                                                   (lq_tmp$x##123 = ds_dMl);
-                                                   ((len lq_tmp$x##123) >= 0)]}
-bind 16 lq_anf$##dMK : {lq_tmp$x##127 : [a_azo] | [((len lq_tmp$x##127) >= 0);
-                                                   (lq_tmp$x##127 = ds_dMl);
-                                                   ((len lq_tmp$x##127) >= 0);
-                                                   ((len lq_tmp$x##127) >= 0)]}
-bind 17 lq_anf$##dMK : {lq_tmp$x##127 : [a_azo] | [((len lq_tmp$x##127) >= 0);
-                                                   (lq_tmp$x##127 = ds_dMl);
-                                                   ((len lq_tmp$x##127) >= 0);
-                                                   ((len lq_tmp$x##127) = 0);
-                                                   ((null lq_tmp$x##127) <=> true);
-                                                   (lq_tmp$x##127 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##127) = 0);
-                                                   ((null lq_tmp$x##127) <=> true);
-                                                   ((len lq_tmp$x##127) >= 0)]}
-bind 18 lq_anf$##dMK : {lq_tmp$x##140 : [a_azo] | [((len lq_tmp$x##140) >= 0);
-                                                   (lq_tmp$x##140 = ds_dMl);
-                                                   ((len lq_tmp$x##140) >= 0);
-                                                   ((len lq_tmp$x##140) >= 0)]}
-bind 19 lq_anf$##dMU : {VV : a_azo | []}
-bind 20 lq_anf$##dMV : {lq_tmp$x##154 : [a_azo] | [((len lq_tmp$x##154) >= 0)]}
-bind 21 lq_anf$##dMK : {lq_tmp$x##140 : [a_azo] | [((len lq_tmp$x##140) >= 0);
-                                                   (lq_tmp$x##140 = ds_dMl);
-                                                   ((len lq_tmp$x##140) >= 0);
-                                                   ((len lq_tmp$x##140) = (1 + (len lq_anf$##dMV)));
-                                                   ((null lq_tmp$x##140) <=> false);
-                                                   ((tail lq_tmp$x##140) = lq_anf$##dMV);
-                                                   ((head lq_tmp$x##140) = lq_anf$##dMU);
-                                                   (lq_tmp$x##140 = (GHC.Types.$58$$35$$35$64 lq_anf$##dMU lq_anf$##dMV));
-                                                   ((len lq_tmp$x##140) = (1 + (len lq_anf$##dMV)));
-                                                   ((null lq_tmp$x##140) <=> false);
-                                                   ((tail lq_tmp$x##140) = lq_anf$##dMV);
-                                                   ((head lq_tmp$x##140) = lq_anf$##dMU);
-                                                   ((len lq_tmp$x##140) >= 0)]}
-bind 22 ds_dMr : {VV##163 : GHC.Prim.Void# | [$k_##164]}
-bind 23 lq_anf$##dML : {lq_tmp$x##178 : [a_azo] | [((len lq_tmp$x##178) >= 0);
-                                                   (lq_tmp$x##178 = xs##ayP);
-                                                   ((len lq_tmp$x##178) >= 0)]}
-bind 24 lq_anf$##dML : {lq_tmp$x##182 : [a_azo] | [((len lq_tmp$x##182) >= 0);
-                                                   (lq_tmp$x##182 = xs##ayP);
-                                                   ((len lq_tmp$x##182) >= 0);
-                                                   ((len lq_tmp$x##182) >= 0)]}
-bind 25 lq_anf$##dML : {lq_tmp$x##182 : [a_azo] | [((len lq_tmp$x##182) >= 0);
-                                                   (lq_tmp$x##182 = xs##ayP);
-                                                   ((len lq_tmp$x##182) >= 0);
-                                                   ((len lq_tmp$x##182) = 0);
-                                                   ((null lq_tmp$x##182) <=> true);
-                                                   (lq_tmp$x##182 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##182) = 0);
-                                                   ((null lq_tmp$x##182) <=> true);
-                                                   ((len lq_tmp$x##182) >= 0)]}
-bind 26 lq_anf$##dML : {lq_tmp$x##195 : [a_azo] | [((len lq_tmp$x##195) >= 0);
-                                                   (lq_tmp$x##195 = xs##ayP);
-                                                   ((len lq_tmp$x##195) >= 0);
-                                                   ((len lq_tmp$x##195) >= 0)]}
-bind 27 x##ayR : {VV : a_azo | []}
-bind 28 xs##ayS : {lq_tmp$x##209 : [a_azo] | [((len lq_tmp$x##209) >= 0)]}
-bind 29 lq_anf$##dML : {lq_tmp$x##195 : [a_azo] | [((len lq_tmp$x##195) >= 0);
-                                                   (lq_tmp$x##195 = xs##ayP);
-                                                   ((len lq_tmp$x##195) >= 0);
-                                                   ((len lq_tmp$x##195) = (1 + (len xs##ayS)));
-                                                   ((null lq_tmp$x##195) <=> false);
-                                                   ((tail lq_tmp$x##195) = xs##ayS);
-                                                   ((head lq_tmp$x##195) = x##ayR);
-                                                   (lq_tmp$x##195 = (GHC.Types.$58$$35$$35$64 x##ayR xs##ayS));
-                                                   ((len lq_tmp$x##195) = (1 + (len xs##ayS)));
-                                                   ((null lq_tmp$x##195) <=> false);
-                                                   ((tail lq_tmp$x##195) = xs##ayS);
-                                                   ((head lq_tmp$x##195) = x##ayR);
-                                                   ((len lq_tmp$x##195) >= 0)]}
-bind 30 lq_anf$##dMM : {lq_tmp$x##219 : [a_azo] | [((len lq_tmp$x##219) >= 0);
-                                                   (lq_tmp$x##219 = ds_dMl);
-                                                   ((len lq_tmp$x##219) >= 0)]}
-bind 31 lq_anf$##dMM : {lq_tmp$x##223 : [a_azo] | [((len lq_tmp$x##223) >= 0);
-                                                   (lq_tmp$x##223 = ds_dMl);
-                                                   ((len lq_tmp$x##223) >= 0);
-                                                   ((len lq_tmp$x##223) >= 0)]}
-bind 32 lq_anf$##dMM : {lq_tmp$x##223 : [a_azo] | [((len lq_tmp$x##223) >= 0);
-                                                   (lq_tmp$x##223 = ds_dMl);
-                                                   ((len lq_tmp$x##223) >= 0);
-                                                   ((len lq_tmp$x##223) = 0);
-                                                   ((null lq_tmp$x##223) <=> true);
-                                                   (lq_tmp$x##223 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##223) = 0);
-                                                   ((null lq_tmp$x##223) <=> true);
-                                                   ((len lq_tmp$x##223) >= 0)]}
-bind 33 ds_dMn : {VV##232 : GHC.Prim.Void# | [$k_##233]}
-bind 34 lq_anf$##dMN : {lq_tmp$x##246 : int | [(lq_tmp$x##246 ~~ lit$36$$47$Users$47$rjhala$47$research$47$stack$47$liquidhaskell$47$tests$47$pos$47$MergeSort.hs$58$$40$48$44$1$41$$45$$40$52$44$41$41$$124$function$32$merge);
-                                               ((strLen lq_tmp$x##246) = 95)]}
-bind 35 lq_anf$##dMM : {lq_tmp$x##266 : [a_azo] | [((len lq_tmp$x##266) >= 0);
-                                                   (lq_tmp$x##266 = ds_dMl);
-                                                   ((len lq_tmp$x##266) >= 0);
-                                                   ((len lq_tmp$x##266) >= 0)]}
-bind 36 y##ayT : {VV : a_azo | []}
-bind 37 ys##ayU : {lq_tmp$x##280 : [a_azo] | [((len lq_tmp$x##280) >= 0)]}
-bind 38 lq_anf$##dMM : {lq_tmp$x##266 : [a_azo] | [((len lq_tmp$x##266) >= 0);
-                                                   (lq_tmp$x##266 = ds_dMl);
-                                                   ((len lq_tmp$x##266) >= 0);
-                                                   ((len lq_tmp$x##266) = (1 + (len ys##ayU)));
-                                                   ((null lq_tmp$x##266) <=> false);
-                                                   ((tail lq_tmp$x##266) = ys##ayU);
-                                                   ((head lq_tmp$x##266) = y##ayT);
-                                                   (lq_tmp$x##266 = (GHC.Types.$58$$35$$35$64 y##ayT ys##ayU));
-                                                   ((len lq_tmp$x##266) = (1 + (len ys##ayU)));
-                                                   ((null lq_tmp$x##266) <=> false);
-                                                   ((tail lq_tmp$x##266) = ys##ayU);
-                                                   ((head lq_tmp$x##266) = y##ayT);
-                                                   ((len lq_tmp$x##266) >= 0)]}
-bind 39 lq_anf$##dMO : {lq_tmp$x##290 : GHC.Types.Bool | [((Prop lq_tmp$x##290) <=> (x##ayR <= y##ayT))]}
-bind 40 lq_anf$##dMP : {lq_tmp$x##302 : GHC.Types.Bool | [((Prop lq_tmp$x##302) <=> (x##ayR <= y##ayT));
-                                                          (lq_tmp$x##302 = lq_anf$##dMO)]}
-bind 41 lq_anf$##dMP : {lq_tmp$x##304 : GHC.Types.Bool | [((Prop lq_tmp$x##304) <=> (x##ayR <= y##ayT));
-                                                          (lq_tmp$x##304 = lq_anf$##dMO)]}
-bind 42 lq_anf$##dMP : {lq_tmp$x##304 : GHC.Types.Bool | [((Prop lq_tmp$x##304) <=> (x##ayR <= y##ayT));
-                                                          (lq_tmp$x##304 = lq_anf$##dMO);
-                                                          (~ ((Prop lq_tmp$x##304)));
-                                                          (~ ((Prop lq_tmp$x##304)));
-                                                          (~ ((Prop lq_tmp$x##304)))]}
-bind 43 ds_dMp : {VV##309 : GHC.Prim.Void# | [$k_##310]}
-bind 44 lq_tmp$x##340 : {VV : a_azo | []}
-bind 45 lq_anf$##dMQ : {lq_tmp$x##326 : [a_azo] | [((len lq_tmp$x##326) = (1 + (len xs##ayS)));
-                                                   ((null lq_tmp$x##326) <=> false);
-                                                   ((tail lq_tmp$x##326) = xs##ayS);
-                                                   ((head lq_tmp$x##326) = x##ayR);
-                                                   ((len lq_tmp$x##326) >= 0)]}
-bind 46 lq_anf$##dMR : {VV##374 : [a_azo] | [((len VV##374) = ((len lq_anf$##dMQ) + (len ys##ayU)));
-                                             ((len VV##374) >= 0)]}
-bind 47 lq_tmp$x##392 : {VV : a_azo | []}
-bind 48 lq_anf$##dMP : {lq_tmp$x##398 : GHC.Types.Bool | [((Prop lq_tmp$x##398) <=> (x##ayR <= y##ayT));
-                                                          (lq_tmp$x##398 = lq_anf$##dMO)]}
-bind 49 lq_anf$##dMP : {lq_tmp$x##398 : GHC.Types.Bool | [((Prop lq_tmp$x##398) <=> (x##ayR <= y##ayT));
-                                                          (lq_tmp$x##398 = lq_anf$##dMO);
-                                                          (Prop lq_tmp$x##398);
-                                                          (Prop lq_tmp$x##398);
-                                                          (Prop lq_tmp$x##398)]}
-bind 50 lq_tmp$x##420 : {VV : a_azo | []}
-bind 51 lq_anf$##dMS : {lq_tmp$x##406 : [a_azo] | [((len lq_tmp$x##406) = (1 + (len ys##ayU)));
-                                                   ((null lq_tmp$x##406) <=> false);
-                                                   ((tail lq_tmp$x##406) = ys##ayU);
-                                                   ((head lq_tmp$x##406) = y##ayT);
-                                                   ((len lq_tmp$x##406) >= 0)]}
-bind 52 lq_anf$##dMT : {VV##454 : [a_azo] | [((len VV##454) = ((len xs##ayS) + (len lq_anf$##dMS)));
-                                             ((len VV##454) >= 0)]}
-bind 53 lq_tmp$x##472 : {VV : a_azo | []}
-bind 54 ds_dMs : {VV##521 : [a_azx] | [((len VV##521) >= 0)]}
-bind 55 lq_anf$##dMW : {lq_tmp$x##523 : [a_azx] | [((len lq_tmp$x##523) >= 0);
-                                                   (lq_tmp$x##523 = ds_dMs);
-                                                   ((len lq_tmp$x##523) >= 0)]}
-bind 56 lq_anf$##dMW : {lq_tmp$x##527 : [a_azx] | [((len lq_tmp$x##527) >= 0);
-                                                   (lq_tmp$x##527 = ds_dMs);
-                                                   ((len lq_tmp$x##527) >= 0);
-                                                   ((len lq_tmp$x##527) >= 0)]}
-bind 57 lq_anf$##dMW : {lq_tmp$x##527 : [a_azx] | [((len lq_tmp$x##527) >= 0);
-                                                   (lq_tmp$x##527 = ds_dMs);
-                                                   ((len lq_tmp$x##527) >= 0);
-                                                   ((len lq_tmp$x##527) = 0);
-                                                   ((null lq_tmp$x##527) <=> true);
-                                                   (lq_tmp$x##527 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##527) = 0);
-                                                   ((null lq_tmp$x##527) <=> true);
-                                                   ((len lq_tmp$x##527) >= 0)]}
-bind 58 lq_tmp$x##545 : {VV : a_azx | []}
-bind 59 lq_anf$##dMX : {lq_tmp$x##537 : [a_azx] | [((len lq_tmp$x##537) = 0);
-                                                   ((null lq_tmp$x##537) <=> true);
-                                                   ((len lq_tmp$x##537) >= 0)]}
-bind 60 lq_tmp$x##589 : {VV##590 : [a_azx] | [((len VV##590) >= 0)]}
-bind 61 lq_anf$##dMW : {lq_tmp$x##598 : [a_azx] | [((len lq_tmp$x##598) >= 0);
-                                                   (lq_tmp$x##598 = ds_dMs);
-                                                   ((len lq_tmp$x##598) >= 0);
-                                                   ((len lq_tmp$x##598) >= 0)]}
-bind 62 x##ayC : {VV : a_azx | []}
-bind 63 ds_dMt : {lq_tmp$x##612 : [a_azx] | [((len lq_tmp$x##612) >= 0)]}
-bind 64 lq_anf$##dMW : {lq_tmp$x##598 : [a_azx] | [((len lq_tmp$x##598) >= 0);
-                                                   (lq_tmp$x##598 = ds_dMs);
-                                                   ((len lq_tmp$x##598) >= 0);
-                                                   ((len lq_tmp$x##598) = (1 + (len ds_dMt)));
-                                                   ((null lq_tmp$x##598) <=> false);
-                                                   ((tail lq_tmp$x##598) = ds_dMt);
-                                                   ((head lq_tmp$x##598) = x##ayC);
-                                                   (lq_tmp$x##598 = (GHC.Types.$58$$35$$35$64 x##ayC ds_dMt));
-                                                   ((len lq_tmp$x##598) = (1 + (len ds_dMt)));
-                                                   ((null lq_tmp$x##598) <=> false);
-                                                   ((tail lq_tmp$x##598) = ds_dMt);
-                                                   ((head lq_tmp$x##598) = x##ayC);
-                                                   ((len lq_tmp$x##598) >= 0)]}
-bind 65 lq_anf$##dMY : {lq_tmp$x##622 : [a_azx] | [((len lq_tmp$x##622) >= 0);
-                                                   (lq_tmp$x##622 = ds_dMt);
-                                                   ((len lq_tmp$x##622) >= 0)]}
-bind 66 lq_anf$##dMY : {lq_tmp$x##626 : [a_azx] | [((len lq_tmp$x##626) >= 0);
-                                                   (lq_tmp$x##626 = ds_dMt);
-                                                   ((len lq_tmp$x##626) >= 0);
-                                                   ((len lq_tmp$x##626) >= 0)]}
-bind 67 lq_anf$##dMY : {lq_tmp$x##626 : [a_azx] | [((len lq_tmp$x##626) >= 0);
-                                                   (lq_tmp$x##626 = ds_dMt);
-                                                   ((len lq_tmp$x##626) >= 0);
-                                                   ((len lq_tmp$x##626) = 0);
-                                                   ((null lq_tmp$x##626) <=> true);
-                                                   (lq_tmp$x##626 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##626) = 0);
-                                                   ((null lq_tmp$x##626) <=> true);
-                                                   ((len lq_tmp$x##626) >= 0)]}
-bind 68 lq_tmp$x##644 : {VV : a_azx | []}
-bind 69 lq_anf$##dMZ : {lq_tmp$x##636 : [a_azx] | [((len lq_tmp$x##636) = 0);
-                                                   ((null lq_tmp$x##636) <=> true);
-                                                   ((len lq_tmp$x##636) >= 0)]}
-bind 70 lq_tmp$x##688 : {VV##689 : [a_azx] | [((len VV##689) >= 0)]}
-bind 71 lq_anf$##dMY : {lq_tmp$x##697 : [a_azx] | [((len lq_tmp$x##697) >= 0);
-                                                   (lq_tmp$x##697 = ds_dMt);
-                                                   ((len lq_tmp$x##697) >= 0);
-                                                   ((len lq_tmp$x##697) >= 0)]}
-bind 72 y##ayD : {VV : a_azx | []}
-bind 73 zs##ayE : {lq_tmp$x##711 : [a_azx] | [((len lq_tmp$x##711) >= 0)]}
-bind 74 lq_anf$##dMY : {lq_tmp$x##697 : [a_azx] | [((len lq_tmp$x##697) >= 0);
-                                                   (lq_tmp$x##697 = ds_dMt);
-                                                   ((len lq_tmp$x##697) >= 0);
-                                                   ((len lq_tmp$x##697) = (1 + (len zs##ayE)));
-                                                   ((null lq_tmp$x##697) <=> false);
-                                                   ((tail lq_tmp$x##697) = zs##ayE);
-                                                   ((head lq_tmp$x##697) = y##ayD);
-                                                   (lq_tmp$x##697 = (GHC.Types.$58$$35$$35$64 y##ayD zs##ayE));
-                                                   ((len lq_tmp$x##697) = (1 + (len zs##ayE)));
-                                                   ((null lq_tmp$x##697) <=> false);
-                                                   ((tail lq_tmp$x##697) = zs##ayE);
-                                                   ((head lq_tmp$x##697) = y##ayD);
-                                                   ((len lq_tmp$x##697) >= 0)]}
-bind 75 ds_dMw : {v##0 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst v##0)) + (len (snd v##0))) = (len zs##ayE))]}
-bind 76 ds_dMw : {lq_tmp$x##762 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst lq_tmp$x##762)) + (len (snd lq_tmp$x##762))) = (len zs##ayE))]}
-bind 77 xs##aA4 : {lq_tmp$x##756 : [a_azx] | [(((len lq_tmp$x##756) > 1) => ((len lq_tmp$x##756) < (len zs##ayE)));
-                                              ((len lq_tmp$x##756) >= 0)]}
-bind 78 ys##XAl : {lq_tmp$x##758 : [a_azx] | [((len lq_tmp$x##758) >= 0)]}
-bind 79 ds_dMw : {lq_tmp$x##762 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst lq_tmp$x##762)) + (len (snd lq_tmp$x##762))) = (len zs##ayE));
-                                                               ((snd lq_tmp$x##762) = ys##XAl);
-                                                               ((fst lq_tmp$x##762) = xs##aA4);
-                                                               ((x_Tuple22 lq_tmp$x##762) = ys##XAl);
-                                                               ((x_Tuple21 lq_tmp$x##762) = xs##aA4);
-                                                               (lq_tmp$x##762 = (GHC.Tuple.$40$$44$$41$$35$$35$74 xs##aA4 ys##XAl));
-                                                               ((snd lq_tmp$x##762) = ys##XAl);
-                                                               ((fst lq_tmp$x##762) = xs##aA4);
-                                                               ((x_Tuple22 lq_tmp$x##762) = ys##XAl);
-                                                               ((x_Tuple21 lq_tmp$x##762) = xs##aA4)]}
-bind 80 xs##aA4 : {VV##752 : [a_azx] | [$k_##753;
-                                        ((len VV##752) >= 0)]}
-bind 81 ds_dMw : {lq_tmp$x##804 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst lq_tmp$x##804)) + (len (snd lq_tmp$x##804))) = (len zs##ayE))]}
-bind 82 xs##aA4 : {lq_tmp$x##798 : [a_azx] | [((len lq_tmp$x##798) >= 0)]}
-bind 83 ys##aA5 : {lq_tmp$x##800 : [a_azx] | [(((len lq_tmp$x##800) > 1) => ((len lq_tmp$x##800) < (len zs##ayE)));
-                                              ((len lq_tmp$x##800) >= 0)]}
-bind 84 ds_dMw : {lq_tmp$x##804 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst lq_tmp$x##804)) + (len (snd lq_tmp$x##804))) = (len zs##ayE));
-                                                               ((snd lq_tmp$x##804) = ys##aA5);
-                                                               ((fst lq_tmp$x##804) = xs##aA4);
-                                                               ((x_Tuple22 lq_tmp$x##804) = ys##aA5);
-                                                               ((x_Tuple21 lq_tmp$x##804) = xs##aA4);
-                                                               (lq_tmp$x##804 = (GHC.Tuple.$40$$44$$41$$35$$35$74 xs##aA4 ys##aA5));
-                                                               ((snd lq_tmp$x##804) = ys##aA5);
-                                                               ((fst lq_tmp$x##804) = xs##aA4);
-                                                               ((x_Tuple22 lq_tmp$x##804) = ys##aA5);
-                                                               ((x_Tuple21 lq_tmp$x##804) = xs##aA4)]}
-bind 85 ys##aA5 : {VV##794 : [a_azx] | [$k_##795;
-                                        ((len VV##794) >= 0)]}
-bind 86 lq_tmp$x##846 : {VV : a_azx | []}
-bind 87 lq_anf$##dN0 : {lq_tmp$x##832 : [a_azx] | [((len lq_tmp$x##832) = (1 + (len xs##aA4)));
-                                                   ((null lq_tmp$x##832) <=> false);
-                                                   ((tail lq_tmp$x##832) = xs##aA4);
-                                                   ((head lq_tmp$x##832) = x##ayC);
-                                                   ((len lq_tmp$x##832) >= 0)]}
-bind 88 lq_tmp$x##869 : {VV : a_azx | []}
-bind 89 lq_anf$##dN1 : {lq_tmp$x##855 : [a_azx] | [((len lq_tmp$x##855) = (1 + (len ys##aA5)));
-                                                   ((null lq_tmp$x##855) <=> false);
-                                                   ((tail lq_tmp$x##855) = ys##aA5);
-                                                   ((head lq_tmp$x##855) = y##ayD);
-                                                   ((len lq_tmp$x##855) >= 0)]}
-bind 90 lq_tmp$x##916 : {VV##917 : [a_azx] | [((len VV##917) >= 0)]}
-bind 91 fix$36$$36$dOrd_aAe : {VV##948 : (GHC.Classes.Ord  a_azJ) | []}
-bind 92 ds_dMB : {VV##949 : [a_azJ] | [((len VV##949) >= 0)]}
-bind 93 lq_anf$##dN2 : {lq_tmp$x##951 : [a_azJ] | [((len lq_tmp$x##951) >= 0);
-                                                   (lq_tmp$x##951 = ds_dMB);
-                                                   ((len lq_tmp$x##951) >= 0)]}
-bind 94 lq_anf$##dN2 : {lq_tmp$x##955 : [a_azJ] | [((len lq_tmp$x##955) >= 0);
-                                                   (lq_tmp$x##955 = ds_dMB);
-                                                   ((len lq_tmp$x##955) >= 0);
-                                                   ((len lq_tmp$x##955) >= 0)]}
-bind 95 lq_anf$##dN2 : {lq_tmp$x##955 : [a_azJ] | [((len lq_tmp$x##955) >= 0);
-                                                   (lq_tmp$x##955 = ds_dMB);
-                                                   ((len lq_tmp$x##955) >= 0);
-                                                   ((len lq_tmp$x##955) = 0);
-                                                   ((null lq_tmp$x##955) <=> true);
-                                                   (lq_tmp$x##955 = GHC.Types.$91$$93$$35$$35$6m);
-                                                   ((len lq_tmp$x##955) = 0);
-                                                   ((null lq_tmp$x##955) <=> true);
-                                                   ((len lq_tmp$x##955) >= 0)]}
-bind 96 lq_tmp$x##973 : {VV : a_azJ | []}
-bind 97 lq_anf$##dN2 : {lq_tmp$x##976 : [a_azJ] | [((len lq_tmp$x##976) >= 0);
-                                                   (lq_tmp$x##976 = ds_dMB);
-                                                   ((len lq_tmp$x##976) >= 0);
-                                                   ((len lq_tmp$x##976) >= 0)]}
-bind 98 x##ayy : {VV : a_azJ | []}
-bind 99 ds_dMC : {lq_tmp$x##990 : [a_azJ] | [((len lq_tmp$x##990) >= 0)]}
-bind 100 lq_anf$##dN2 : {lq_tmp$x##976 : [a_azJ] | [((len lq_tmp$x##976) >= 0);
-                                                    (lq_tmp$x##976 = ds_dMB);
-                                                    ((len lq_tmp$x##976) >= 0);
-                                                    ((len lq_tmp$x##976) = (1 + (len ds_dMC)));
-                                                    ((null lq_tmp$x##976) <=> false);
-                                                    ((tail lq_tmp$x##976) = ds_dMC);
-                                                    ((head lq_tmp$x##976) = x##ayy);
-                                                    (lq_tmp$x##976 = (GHC.Types.$58$$35$$35$64 x##ayy ds_dMC));
-                                                    ((len lq_tmp$x##976) = (1 + (len ds_dMC)));
-                                                    ((null lq_tmp$x##976) <=> false);
-                                                    ((tail lq_tmp$x##976) = ds_dMC);
-                                                    ((head lq_tmp$x##976) = x##ayy);
-                                                    ((len lq_tmp$x##976) >= 0)]}
-bind 101 lq_anf$##dN3 : {lq_tmp$x##1000 : [a_azJ] | [((len lq_tmp$x##1000) >= 0);
-                                                     (lq_tmp$x##1000 = ds_dMC);
-                                                     ((len lq_tmp$x##1000) >= 0)]}
-bind 102 lq_anf$##dN3 : {lq_tmp$x##1004 : [a_azJ] | [((len lq_tmp$x##1004) >= 0);
-                                                     (lq_tmp$x##1004 = ds_dMC);
-                                                     ((len lq_tmp$x##1004) >= 0);
-                                                     ((len lq_tmp$x##1004) >= 0)]}
-bind 103 lq_anf$##dN3 : {lq_tmp$x##1004 : [a_azJ] | [((len lq_tmp$x##1004) >= 0);
-                                                     (lq_tmp$x##1004 = ds_dMC);
-                                                     ((len lq_tmp$x##1004) >= 0);
-                                                     ((len lq_tmp$x##1004) = 0);
-                                                     ((null lq_tmp$x##1004) <=> true);
-                                                     (lq_tmp$x##1004 = GHC.Types.$91$$93$$35$$35$6m);
-                                                     ((len lq_tmp$x##1004) = 0);
-                                                     ((null lq_tmp$x##1004) <=> true);
-                                                     ((len lq_tmp$x##1004) >= 0)]}
-bind 104 lq_tmp$x##1022 : {VV : a_azJ | []}
-bind 105 lq_anf$##dN6 : {lq_tmp$x##1014 : [a_azJ] | [((len lq_tmp$x##1014) = 0);
-                                                     ((null lq_tmp$x##1014) <=> true);
-                                                     ((len lq_tmp$x##1014) >= 0)]}
-bind 106 lq_tmp$x##1042 : {VV : a_azJ | []}
-bind 107 lq_anf$##dN3 : {lq_tmp$x##1048 : [a_azJ] | [((len lq_tmp$x##1048) >= 0);
-                                                     (lq_tmp$x##1048 = ds_dMC);
-                                                     ((len lq_tmp$x##1048) >= 0);
-                                                     ((len lq_tmp$x##1048) >= 0)]}
-bind 108 lq_anf$##dN7 : {VV : a_azJ | []}
-bind 109 lq_anf$##dN8 : {lq_tmp$x##1062 : [a_azJ] | [((len lq_tmp$x##1062) >= 0)]}
-bind 110 lq_anf$##dN3 : {lq_tmp$x##1048 : [a_azJ] | [((len lq_tmp$x##1048) >= 0);
-                                                     (lq_tmp$x##1048 = ds_dMC);
-                                                     ((len lq_tmp$x##1048) >= 0);
-                                                     ((len lq_tmp$x##1048) = (1 + (len lq_anf$##dN8)));
-                                                     ((null lq_tmp$x##1048) <=> false);
-                                                     ((tail lq_tmp$x##1048) = lq_anf$##dN8);
-                                                     ((head lq_tmp$x##1048) = lq_anf$##dN7);
-                                                     (lq_tmp$x##1048 = (GHC.Types.$58$$35$$35$64 lq_anf$##dN7 lq_anf$##dN8));
-                                                     ((len lq_tmp$x##1048) = (1 + (len lq_anf$##dN8)));
-                                                     ((null lq_tmp$x##1048) <=> false);
-                                                     ((tail lq_tmp$x##1048) = lq_anf$##dN8);
-                                                     ((head lq_tmp$x##1048) = lq_anf$##dN7);
-                                                     ((len lq_tmp$x##1048) >= 0)]}
-bind 111 ds_dMJ : {VV##1071 : GHC.Prim.Void# | [$k_##1072]}
-bind 112 ds_dMD : {lq_tmp$x##1094 : (Tuple  [a_azJ]  [a_azJ]) | [(((len (fst lq_tmp$x##1094)) + (len (snd lq_tmp$x##1094))) = (len ds_dMB))]}
-bind 113 ds_dMD : {lq_tmp$x##1127 : (Tuple  [a_azJ]  [a_azJ]) | [(((len (fst lq_tmp$x##1127)) + (len (snd lq_tmp$x##1127))) = (len ds_dMB))]}
-bind 114 xs1##aAj : {lq_tmp$x##1121 : [a_azJ] | [(((len lq_tmp$x##1121) > 1) => ((len lq_tmp$x##1121) < (len ds_dMB)));
-                                                 ((len lq_tmp$x##1121) >= 0)]}
-bind 115 xs2##XAw : {lq_tmp$x##1123 : [a_azJ] | [((len lq_tmp$x##1123) >= 0)]}
-bind 116 ds_dMD : {lq_tmp$x##1127 : (Tuple  [a_azJ]  [a_azJ]) | [(((len (fst lq_tmp$x##1127)) + (len (snd lq_tmp$x##1127))) = (len ds_dMB));
-                                                                 ((snd lq_tmp$x##1127) = xs2##XAw);
-                                                                 ((fst lq_tmp$x##1127) = xs1##aAj);
-                                                                 ((x_Tuple22 lq_tmp$x##1127) = xs2##XAw);
-                                                                 ((x_Tuple21 lq_tmp$x##1127) = xs1##aAj);
-                                                                 (lq_tmp$x##1127 = (GHC.Tuple.$40$$44$$41$$35$$35$74 xs1##aAj xs2##XAw));
-                                                                 ((snd lq_tmp$x##1127) = xs2##XAw);
-                                                                 ((fst lq_tmp$x##1127) = xs1##aAj);
-                                                                 ((x_Tuple22 lq_tmp$x##1127) = xs2##XAw);
-                                                                 ((x_Tuple21 lq_tmp$x##1127) = xs1##aAj)]}
-bind 117 xs1##aAj : {VV##1117 : [a_azJ] | [$k_##1118;
-                                           ((len VV##1117) >= 0)]}
-bind 118 ds_dMD : {lq_tmp$x##1169 : (Tuple  [a_azJ]  [a_azJ]) | [(((len (fst lq_tmp$x##1169)) + (len (snd lq_tmp$x##1169))) = (len ds_dMB))]}
-bind 119 xs1##aAj : {lq_tmp$x##1163 : [a_azJ] | [((len lq_tmp$x##1163) >= 0)]}
-bind 120 xs2##aAk : {lq_tmp$x##1165 : [a_azJ] | [(((len lq_tmp$x##1165) > 1) => ((len lq_tmp$x##1165) < (len ds_dMB)));
-                                                 ((len lq_tmp$x##1165) >= 0)]}
-bind 121 ds_dMD : {lq_tmp$x##1169 : (Tuple  [a_azJ]  [a_azJ]) | [(((len (fst lq_tmp$x##1169)) + (len (snd lq_tmp$x##1169))) = (len ds_dMB));
-                                                                 ((snd lq_tmp$x##1169) = xs2##aAk);
-                                                                 ((fst lq_tmp$x##1169) = xs1##aAj);
-                                                                 ((x_Tuple22 lq_tmp$x##1169) = xs2##aAk);
-                                                                 ((x_Tuple21 lq_tmp$x##1169) = xs1##aAj);
-                                                                 (lq_tmp$x##1169 = (GHC.Tuple.$40$$44$$41$$35$$35$74 xs1##aAj xs2##aAk));
-                                                                 ((snd lq_tmp$x##1169) = xs2##aAk);
-                                                                 ((fst lq_tmp$x##1169) = xs1##aAj);
-                                                                 ((x_Tuple22 lq_tmp$x##1169) = xs2##aAk);
-                                                                 ((x_Tuple21 lq_tmp$x##1169) = xs1##aAj)]}
-bind 122 xs2##aAk : {VV##1159 : [a_azJ] | [$k_##1160;
-                                           ((len VV##1159) >= 0)]}
-bind 123 lq_anf$##dN4 : {VV##1213 : [a_azJ] | [((len VV##1213) = (len xs1##aAj));
-                                               ((len VV##1213) >= 0)]}
-bind 124 lq_anf$##dN5 : {VV##1233 : [a_azJ] | [((len VV##1233) = (len xs2##aAk));
-                                               ((len VV##1233) >= 0)]}
-bind 125 fix$36$$36$dOrd_aAe : {VV##1277 : (GHC.Classes.Ord  a_azJ) | []}
-bind 126 VV##1278 : {VV##1278 : [a_azJ] | [((len VV##1278) >= 0)]}
-bind 127 lq_tmp$x##945 : {VV : a_azJ | []}
-bind 128 lq_tmp$x##1270 : {VV##1281 : [a_azJ] | [((len VV##1281) >= 0)]}
-bind 129 VV##1282 : {VV##1282 : [a_azJ] | [((len VV##1282) >= 0)]}
-bind 130 lq_tmp$x##946 : {VV : a_azJ | []}
-bind 131 VV##1285 : {VV##1285 : [a_azJ] | [((len VV##1285) >= 0)]}
-bind 132 lq_tmp$x##945 : {VV : a_azJ | []}
-bind 133 ds_dMB : {VV##1288 : [a_azJ] | [((len VV##1288) >= 0)]}
-bind 134 VV##1289 : {VV##1289 : [a_azJ] | [((len VV##1289) >= 0)]}
-bind 135 lq_tmp$x##946 : {VV : a_azJ | []}
-bind 136 VV##1292 : {VV##1292 : [a_azJ] | [$k_##1083[VV##1082:=VV##1292][ds_dMJ:=GHC.Prim.void###0l];
-                                           ((len VV##1292) >= 0)]}
-bind 137 lq_tmp$x##946 : {VV : a_azJ | []}
-bind 138 VV##1295 : {VV##1295 : GHC.Prim.Void# | [(VV##1295 = GHC.Prim.void###0l)]}
-bind 139 VV##1297 : {VV##1297 : [a_azJ] | [((len VV##1297) = ((len lq_anf$##dN4) + (len lq_anf$##dN5)));
-                                           ((len VV##1297) >= 0)]}
-bind 140 lq_tmp$x##1078 : {VV : a_azJ | []}
-bind 141 VV##1300 : {VV##1300 : [a_azJ] | [((len VV##1300) = (len xs2##aAk));
-                                           ((len VV##1300) >= 0);
-                                           (VV##1300 = lq_anf$##dN5);
-                                           ((len VV##1300) >= 0)]}
-bind 142 lq_tmp$x##1250 : {VV : a_azJ | []}
-bind 143 VV##1303 : {VV##1303 : [a_azJ] | [((len VV##1303) = (len xs1##aAj));
-                                           ((len VV##1303) >= 0);
-                                           (VV##1303 = lq_anf$##dN4);
-                                           ((len VV##1303) >= 0)]}
-bind 144 lq_tmp$x##1249 : {VV : a_azJ | []}
-bind 145 VV##1306 : {VV##1306 : [a_azJ] | [$k_##1160[VV##1159:=VV##1306][lq_tmp$x##1231:=VV##1306];
-                                           ((len VV##1306) >= 0);
-                                           (VV##1306 = xs2##aAk);
-                                           ((len VV##1306) >= 0)]}
-bind 146 lq_tmp$x##945 : {VV : a_azJ | []}
-bind 147 VV##1309 : {VV##1309 : [a_azJ] | [$k_##1118[VV##1117:=VV##1309][lq_tmp$x##1211:=VV##1309];
-                                           ((len VV##1309) >= 0);
-                                           (VV##1309 = xs1##aAj);
-                                           ((len VV##1309) >= 0)]}
-bind 148 lq_tmp$x##945 : {VV : a_azJ | []}
-bind 149 VV##1312 : {VV##1312 : [a_azJ] | [(((len VV##1312) > 1) => ((len VV##1312) < (len ds_dMB)));
-                                           ((len VV##1312) >= 0);
-                                           (VV##1312 = xs2##aAk);
-                                           ((len VV##1312) >= 0)]}
-bind 150 lq_tmp$x##1155 : {VV : a_azJ | []}
-bind 151 VV##1315 : {VV##1315 : [a_azJ] | [(((len VV##1315) > 1) => ((len VV##1315) < (len ds_dMB)));
-                                           ((len VV##1315) >= 0);
-                                           (VV##1315 = xs1##aAj);
-                                           ((len VV##1315) >= 0)]}
-bind 152 lq_tmp$x##1113 : {VV : a_azJ | []}
-bind 153 VV##1318 : {VV##1318 : [a_azJ] | [((len VV##1318) >= 0);
-                                           (VV##1318 = ds_dMB);
-                                           ((len VV##1318) >= 0)]}
-bind 154 lq_tmp$x##1098 : {VV : a_azJ | []}
-bind 155 VV##1321 : {VV##1321 : [a_azJ] | [((len VV##1321) = (1 + (len lq_anf$##dN6)));
-                                           ((null VV##1321) <=> false);
-                                           ((tail VV##1321) = lq_anf$##dN6);
-                                           ((head VV##1321) = x##ayy);
-                                           ((len VV##1321) >= 0)]}
-bind 156 lq_tmp$x##946 : {VV : a_azJ | []}
-bind 157 VV##1324 : {VV##1324 : [a_azJ] | [((len VV##1324) = 0);
-                                           ((null VV##1324) <=> true);
-                                           ((len VV##1324) >= 0);
-                                           (VV##1324 = lq_anf$##dN6);
-                                           ((len VV##1324) >= 0)]}
-bind 158 lq_tmp$x##1034 : {VV : a_azJ | []}
-bind 159 VV##1327 : {VV##1327 : [a_azJ] | [((len VV##1327) = 0);
-                                           ((null VV##1327) <=> true);
-                                           ((len VV##1327) >= 0)]}
-bind 160 lq_tmp$x##946 : {VV : a_azJ | []}
-bind 161 VV##1330 : {VV##1330 : [a_azx] | [((len VV##1330) >= 0)]}
-bind 162 lq_tmp$x##515 : {VV : a_azx | []}
-bind 163 ds_dMs : {VV##1333 : [a_azx] | [((len VV##1333) >= 0)]}
-bind 164 VV##1334 : {VV##1334 : (Tuple  [a_azx]  [a_azx]) | []}
-bind 165 VV##1336 : {VV##1336 : [a_azx] | [((len VV##1336) >= 0)]}
-bind 166 lq_tmp$x##516 : {VV : a_azx | []}
-bind 167 VV##1339 : {VV##1339 : [a_azx] | [((len VV##1339) >= 0)]}
-bind 168 lq_tmp$x##517 : {VV : a_azx | []}
-bind 169 lq_tmp$x##519 : {VV##1342 : [a_azx] | [((len VV##1342) >= 0)]}
-bind 170 VV##1343 : {VV##1343 : [a_azx] | [((len VV##1343) >= 0)]}
-bind 171 lq_tmp$x##518 : {VV : a_azx | []}
-bind 172 VV##1346 : {VV##1346 : (Tuple  [a_azx]  [a_azx]) | [((snd VV##1346) = lq_anf$##dN1);
-                                                             ((fst VV##1346) = lq_anf$##dN0);
-                                                             ((x_Tuple22 VV##1346) = lq_anf$##dN1);
-                                                             ((x_Tuple21 VV##1346) = lq_anf$##dN0)]}
-bind 173 VV##1348 : {VV##1348 : [a_azx] | [$k_##890[VV##889:=VV##1348][lq_tmp$x##893:=VV##1348][lq_tmp$x##879:=lq_anf$##dN0][lq_tmp$x##880:=lq_anf$##dN1][lq_tmp$x##876:=VV##1346];
-                                           ((len VV##1348) >= 0)]}
-bind 174 lq_tmp$x##516 : {VV : a_azx | []}
-bind 175 VV##1351 : {VV##1351 : [a_azx] | [$k_##902[lq_tmp$x##879:=lq_anf$##dN0][lq_tmp$x##905:=VV##1351][lq_tmp$x##880:=lq_anf$##dN1][VV##901:=VV##1351][lq_tmp$x##876:=VV##1346];
-                                           ((len VV##1351) >= 0)]}
-bind 176 lq_tmp$x##517 : {VV : a_azx | []}
-bind 177 lq_tmp$x##519 : {VV##1354 : [a_azx] | [((len VV##1354) >= 0)]}
-bind 178 VV##1355 : {VV##1355 : [a_azx] | [$k_##914[lq_tmp$x##881:=lq_tmp$x##519][VV##913:=VV##1355][lq_tmp$x##879:=lq_anf$##dN0][lq_tmp$x##916:=lq_tmp$x##519][lq_tmp$x##905:=VV##1355][lq_tmp$x##880:=lq_anf$##dN1][lq_tmp$x##876:=VV##1346];
-                                           ((len VV##1355) >= 0)]}
-bind 179 lq_tmp$x##518 : {VV : a_azx | []}
-bind 180 VV##1358 : {VV##1358 : [a_azx] | [((len VV##1358) = (1 + (len ys##aA5)));
-                                           ((null VV##1358) <=> false);
-                                           ((tail VV##1358) = ys##aA5);
-                                           ((head VV##1358) = y##ayD);
-                                           ((len VV##1358) >= 0);
-                                           (VV##1358 = lq_anf$##dN1);
-                                           ((len VV##1358) >= 0)]}
-bind 181 lq_tmp$x##904 : {VV : a_azx | []}
-bind 182 VV##1361 : {VV##1361 : [a_azx] | [((len VV##1361) = (1 + (len xs##aA4)));
-                                           ((null VV##1361) <=> false);
-                                           ((tail VV##1361) = xs##aA4);
-                                           ((head VV##1361) = x##ayC);
-                                           ((len VV##1361) >= 0);
-                                           (VV##1361 = lq_anf$##dN0);
-                                           ((len VV##1361) >= 0)]}
-bind 183 lq_tmp$x##892 : {VV : a_azx | []}
-bind 184 VV##1364 : {VV##1364 : [a_azx] | [$k_##795[lq_tmp$x##872:=VV##1364][VV##794:=VV##1364];
-                                           ((len VV##1364) >= 0);
-                                           (VV##1364 = ys##aA5);
-                                           ((len VV##1364) >= 0)]}
-bind 185 lq_tmp$x##861 : {VV : a_azx | []}
-bind 186 VV##1367 : {VV##1367 : [a_azx] | [$k_##753[VV##752:=VV##1367][lq_tmp$x##849:=VV##1367];
-                                           ((len VV##1367) >= 0);
-                                           (VV##1367 = xs##aA4);
-                                           ((len VV##1367) >= 0)]}
-bind 187 lq_tmp$x##838 : {VV : a_azx | []}
-bind 188 VV##1370 : {VV##1370 : [a_azx] | [(((len VV##1370) > 1) => ((len VV##1370) < (len zs##ayE)));
-                                           ((len VV##1370) >= 0);
-                                           (VV##1370 = ys##aA5);
-                                           ((len VV##1370) >= 0)]}
-bind 189 lq_tmp$x##790 : {VV : a_azx | []}
-bind 190 VV##1373 : {VV##1373 : [a_azx] | [(((len VV##1373) > 1) => ((len VV##1373) < (len zs##ayE)));
-                                           ((len VV##1373) >= 0);
-                                           (VV##1373 = xs##aA4);
-                                           ((len VV##1373) >= 0)]}
-bind 191 lq_tmp$x##748 : {VV : a_azx | []}
-bind 192 VV##1376 : {VV##1376 : [a_azx] | [((len VV##1376) >= 0);
-                                           (VV##1376 = zs##ayE);
-                                           ((len VV##1376) >= 0)]}
-bind 193 lq_tmp$x##515 : {VV : a_azx | []}
-bind 194 VV##1379 : {VV##1379 : (Tuple  [a_azx]  [a_azx]) | [((snd VV##1379) = lq_anf$##dMZ);
-                                                             ((fst VV##1379) = ds_dMs);
-                                                             ((x_Tuple22 VV##1379) = lq_anf$##dMZ);
-                                                             ((x_Tuple21 VV##1379) = ds_dMs)]}
-bind 195 VV##1381 : {VV##1381 : [a_azx] | [$k_##662[lq_tmp$x##652:=lq_anf$##dMZ][lq_tmp$x##665:=VV##1381][lq_tmp$x##648:=VV##1379][lq_tmp$x##651:=ds_dMs][VV##661:=VV##1381];
-                                           ((len VV##1381) >= 0)]}
-bind 196 lq_tmp$x##516 : {VV : a_azx | []}
-bind 197 VV##1384 : {VV##1384 : [a_azx] | [$k_##674[lq_tmp$x##652:=lq_anf$##dMZ][VV##673:=VV##1384][lq_tmp$x##648:=VV##1379][lq_tmp$x##651:=ds_dMs][lq_tmp$x##677:=VV##1384];
-                                           ((len VV##1384) >= 0)]}
-bind 198 lq_tmp$x##517 : {VV : a_azx | []}
-bind 199 lq_tmp$x##519 : {VV##1387 : [a_azx] | [((len VV##1387) >= 0)]}
-bind 200 VV##1388 : {VV##1388 : [a_azx] | [$k_##686[lq_tmp$x##652:=lq_anf$##dMZ][lq_tmp$x##688:=lq_tmp$x##519][lq_tmp$x##648:=VV##1379][VV##685:=VV##1388][lq_tmp$x##651:=ds_dMs][lq_tmp$x##653:=lq_tmp$x##519][lq_tmp$x##677:=VV##1388];
-                                           ((len VV##1388) >= 0)]}
-bind 201 lq_tmp$x##518 : {VV : a_azx | []}
-bind 202 VV##1391 : {VV##1391 : [a_azx] | [((len VV##1391) = 0);
-                                           ((null VV##1391) <=> true);
-                                           ((len VV##1391) >= 0);
-                                           (VV##1391 = lq_anf$##dMZ);
-                                           ((len VV##1391) >= 0)]}
-bind 203 lq_tmp$x##676 : {VV : a_azx | []}
-bind 204 VV##1394 : {VV##1394 : [a_azx] | [((len VV##1394) >= 0);
-                                           (VV##1394 = ds_dMs);
-                                           ((len VV##1394) >= 0)]}
-bind 205 lq_tmp$x##664 : {VV : a_azx | []}
-bind 206 VV##1397 : {VV##1397 : (Tuple  [a_azx]  [a_azx]) | [((snd VV##1397) = lq_anf$##dMX);
-                                                             ((fst VV##1397) = ds_dMs);
-                                                             ((x_Tuple22 VV##1397) = lq_anf$##dMX);
-                                                             ((x_Tuple21 VV##1397) = ds_dMs)]}
-bind 207 VV##1399 : {VV##1399 : [a_azx] | [$k_##563[lq_tmp$x##553:=lq_anf$##dMX][lq_tmp$x##566:=VV##1399][lq_tmp$x##552:=ds_dMs][VV##562:=VV##1399][lq_tmp$x##549:=VV##1397];
-                                           ((len VV##1399) >= 0)]}
-bind 208 lq_tmp$x##516 : {VV : a_azx | []}
-bind 209 VV##1402 : {VV##1402 : [a_azx] | [$k_##575[VV##574:=VV##1402][lq_tmp$x##553:=lq_anf$##dMX][lq_tmp$x##578:=VV##1402][lq_tmp$x##552:=ds_dMs][lq_tmp$x##549:=VV##1397];
-                                           ((len VV##1402) >= 0)]}
-bind 210 lq_tmp$x##517 : {VV : a_azx | []}
-bind 211 lq_tmp$x##519 : {VV##1405 : [a_azx] | [((len VV##1405) >= 0)]}
-bind 212 VV##1406 : {VV##1406 : [a_azx] | [$k_##587[lq_tmp$x##554:=lq_tmp$x##519][lq_tmp$x##553:=lq_anf$##dMX][lq_tmp$x##589:=lq_tmp$x##519][lq_tmp$x##578:=VV##1406][VV##586:=VV##1406][lq_tmp$x##552:=ds_dMs][lq_tmp$x##549:=VV##1397];
-                                           ((len VV##1406) >= 0)]}
-bind 213 lq_tmp$x##518 : {VV : a_azx | []}
-bind 214 VV##1409 : {VV##1409 : [a_azx] | [((len VV##1409) = 0);
-                                           ((null VV##1409) <=> true);
-                                           ((len VV##1409) >= 0);
-                                           (VV##1409 = lq_anf$##dMX);
-                                           ((len VV##1409) >= 0)]}
-bind 215 lq_tmp$x##577 : {VV : a_azx | []}
-bind 216 VV##1412 : {VV##1412 : [a_azx] | [((len VV##1412) >= 0);
-                                           (VV##1412 = ds_dMs);
-                                           ((len VV##1412) >= 0)]}
-bind 217 lq_tmp$x##565 : {VV : a_azx | []}
-bind 218 fix$36$$36$dOrd_azK : {VV##1415 : (GHC.Classes.Ord  a_azo) | []}
-bind 219 VV##1416 : {VV##1416 : [a_azo] | [((len VV##1416) >= 0)]}
-bind 220 lq_tmp$x##115 : {VV : a_azo | []}
-bind 221 lq_tmp$x##495 : {VV##1419 : [a_azo] | [((len VV##1419) >= 0)]}
-bind 222 VV##1420 : {VV##1420 : [a_azo] | [((len VV##1420) >= 0)]}
-bind 223 lq_tmp$x##116 : {VV : a_azo | []}
-bind 224 lq_tmp$x##499 : {VV##1423 : [a_azo] | [((len VV##1423) >= 0)]}
-bind 225 VV##1424 : {VV##1424 : [a_azo] | [((len VV##1424) >= 0)]}
-bind 226 lq_tmp$x##117 : {VV : a_azo | []}
-bind 227 VV##1427 : {VV##1427 : [a_azo] | [((len VV##1427) >= 0)]}
-bind 228 lq_tmp$x##115 : {VV : a_azo | []}
-bind 229 xs##ayP : {VV##1430 : [a_azo] | [((len VV##1430) >= 0)]}
-bind 230 VV##1431 : {VV##1431 : [a_azo] | [((len VV##1431) >= 0)]}
-bind 231 lq_tmp$x##116 : {VV : a_azo | []}
-bind 232 lq_tmp$x##487 : {VV##1434 : [a_azo] | [((len VV##1434) >= 0)]}
-bind 233 VV##1435 : {VV##1435 : [a_azo] | [((len VV##1435) >= 0)]}
-bind 234 lq_tmp$x##117 : {VV : a_azo | []}
-bind 235 VV##1438 : {VV##1438 : [a_azo] | [((len VV##1438) >= 0)]}
-bind 236 lq_tmp$x##116 : {VV : a_azo | []}
-bind 237 ds_dMl : {VV##1441 : [a_azo] | [((len VV##1441) >= 0)]}
-bind 238 VV##1442 : {VV##1442 : [a_azo] | [((len VV##1442) >= 0)]}
-bind 239 lq_tmp$x##117 : {VV : a_azo | []}
-bind 240 VV##1445 : {VV##1445 : [a_azo] | [$k_##175[VV##174:=VV##1445][ds_dMr:=GHC.Prim.void###0l];
-                                           ((len VV##1445) >= 0)]}
-bind 241 lq_tmp$x##117 : {VV : a_azo | []}
-bind 242 VV##1448 : {VV##1448 : GHC.Prim.Void# | [(VV##1448 = GHC.Prim.void###0l)]}
-bind 243 VV##1450 : {VV##1450 : [a_azo] | [((len VV##1450) = (1 + (len lq_anf$##dMT)));
-                                           ((null VV##1450) <=> false);
-                                           ((tail VV##1450) = lq_anf$##dMT);
-                                           ((head VV##1450) = x##ayR);
-                                           ((len VV##1450) >= 0)]}
-bind 244 lq_tmp$x##170 : {VV : a_azo | []}
-bind 245 VV##1453 : {VV##1453 : [a_azo] | [((len VV##1453) = ((len xs##ayS) + (len lq_anf$##dMS)));
-                                           ((len VV##1453) >= 0);
-                                           (VV##1453 = lq_anf$##dMT);
-                                           ((len VV##1453) >= 0)]}
-bind 246 lq_tmp$x##464 : {VV : a_azo | []}
-bind 247 VV##1456 : {VV##1456 : [a_azo] | [((len VV##1456) = (1 + (len ys##ayU)));
-                                           ((null VV##1456) <=> false);
-                                           ((tail VV##1456) = ys##ayU);
-                                           ((head VV##1456) = y##ayT);
-                                           ((len VV##1456) >= 0);
-                                           (VV##1456 = lq_anf$##dMS);
-                                           ((len VV##1456) >= 0)]}
-bind 248 lq_tmp$x##116 : {VV : a_azo | []}
-bind 249 VV##1459 : {VV##1459 : [a_azo] | [((len VV##1459) >= 0);
-                                           (VV##1459 = xs##ayS);
-                                           ((len VV##1459) >= 0)]}
-bind 250 lq_tmp$x##115 : {VV : a_azo | []}
-bind 251 VV##1462 : {VV##1462 : [a_azo] | [((len VV##1462) >= 0);
-                                           (VV##1462 = ys##ayU);
-                                           ((len VV##1462) >= 0)]}
-bind 252 lq_tmp$x##412 : {VV : a_azo | []}
-bind 253 VV##1465 : {VV##1465 : [a_azo] | [$k_##321[VV##320:=VV##1465][ds_dMp:=GHC.Prim.void###0l];
-                                           ((len VV##1465) >= 0)]}
-bind 254 lq_tmp$x##170 : {VV : a_azo | []}
-bind 255 VV##1468 : {VV##1468 : GHC.Prim.Void# | [(VV##1468 = GHC.Prim.void###0l)]}
-bind 256 VV##1470 : {VV##1470 : [a_azo] | [((len VV##1470) = (1 + (len lq_anf$##dMR)));
-                                           ((null VV##1470) <=> false);
-                                           ((tail VV##1470) = lq_anf$##dMR);
-                                           ((head VV##1470) = y##ayT);
-                                           ((len VV##1470) >= 0)]}
-bind 257 lq_tmp$x##316 : {VV : a_azo | []}
-bind 258 VV##1473 : {VV##1473 : [a_azo] | [((len VV##1473) = ((len lq_anf$##dMQ) + (len ys##ayU)));
-                                           ((len VV##1473) >= 0);
-                                           (VV##1473 = lq_anf$##dMR);
-                                           ((len VV##1473) >= 0)]}
-bind 259 lq_tmp$x##384 : {VV : a_azo | []}
-bind 260 VV##1476 : {VV##1476 : [a_azo] | [((len VV##1476) >= 0);
-                                           (VV##1476 = ys##ayU);
-                                           ((len VV##1476) >= 0)]}
-bind 261 lq_tmp$x##116 : {VV : a_azo | []}
-bind 262 VV##1479 : {VV##1479 : [a_azo] | [((len VV##1479) = (1 + (len xs##ayS)));
-                                           ((null VV##1479) <=> false);
-                                           ((tail VV##1479) = xs##ayS);
-                                           ((head VV##1479) = x##ayR);
-                                           ((len VV##1479) >= 0);
-                                           (VV##1479 = lq_anf$##dMQ);
-                                           ((len VV##1479) >= 0)]}
-bind 263 lq_tmp$x##115 : {VV : a_azo | []}
-bind 264 VV##1482 : {VV##1482 : [a_azo] | [((len VV##1482) >= 0);
-                                           (VV##1482 = xs##ayS);
-                                           ((len VV##1482) >= 0)]}
-bind 265 lq_tmp$x##332 : {VV : a_azo | []}
-bind 266 VV##1485 : {VV##1485 : [a_azo] | [$k_##244[ds_dMn:=GHC.Prim.void###0l][VV##243:=VV##1485];
-                                           ((len VV##1485) >= 0)]}
-bind 267 lq_tmp$x##170 : {VV : a_azo | []}
-bind 268 VV##1488 : {VV##1488 : GHC.Prim.Void# | [(VV##1488 = GHC.Prim.void###0l)]}
-bind 269 VV##1490 : {VV##1490 : [a_azo] | [$k_##259[VV##258:=VV##1490][lq_tmp$x##262:=VV##1490][lq_tmp$x##250:=lq_anf$##dMN];
-                                           ((len VV##1490) >= 0)]}
-bind 270 lq_tmp$x##239 : {VV : a_azo | []}
-bind 271 VV##1493 : {VV##1493 : int | [(VV##1493 ~~ lit$36$$47$Users$47$rjhala$47$research$47$stack$47$liquidhaskell$47$tests$47$pos$47$MergeSort.hs$58$$40$48$44$1$41$$45$$40$52$44$41$41$$124$function$32$merge);
-                                       ((strLen VV##1493) = 95);
-                                       (VV##1493 = lq_anf$##dMN)]}
-bind 272 VV##1495 : {VV##1495 : [a_azo] | [((len VV##1495) >= 0);
-                                           (VV##1495 = ds_dMl);
-                                           ((len VV##1495) >= 0)]}
-bind 273 lq_tmp$x##170 : {VV : a_azo | []}
-bind 274 VV##1498 : {VV##1498 : [a_azo] | [((len VV##1498) >= 0);
-                                           (VV##1498 = xs##ayP);
-                                           ((len VV##1498) >= 0)]}
-bind 275 lq_tmp$x##117 : {VV : a_azo | []}
-bind 276 VV##1071 : {VV##1071 : GHC.Prim.Void# | [$k_##1072]}
-bind 277 VV##1159 : {VV##1159 : [a_azJ] | [$k_##1160;
-                                           ((len VV##1159) >= 0)]}
-bind 278 lq_tmp$x##1155 : {VV : a_azJ | []}
-bind 279 VV##1117 : {VV##1117 : [a_azJ] | [$k_##1118;
-                                           ((len VV##1117) >= 0)]}
-bind 280 lq_tmp$x##1113 : {VV : a_azJ | []}
-bind 281 VV##1082 : {VV##1082 : [a_azJ] | [$k_##1083;
-                                           ((len VV##1082) >= 0)]}
-bind 282 lq_tmp$x##1078 : {VV : a_azJ | []}
-bind 283 VV##913 : {VV##913 : [a_azx] | [$k_##914;
-                                         ((len VV##913) >= 0)]}
-bind 284 lq_tmp$x##909 : {VV : a_azx | []}
-bind 285 VV##901 : {VV##901 : [a_azx] | [$k_##902;
-                                         ((len VV##901) >= 0)]}
-bind 286 lq_tmp$x##897 : {VV : a_azx | []}
-bind 287 VV##889 : {VV##889 : [a_azx] | [$k_##890;
-                                         ((len VV##889) >= 0)]}
-bind 288 lq_tmp$x##885 : {VV : a_azx | []}
-bind 289 VV##794 : {VV##794 : [a_azx] | [$k_##795;
-                                         ((len VV##794) >= 0)]}
-bind 290 lq_tmp$x##790 : {VV : a_azx | []}
-bind 291 VV##752 : {VV##752 : [a_azx] | [$k_##753;
-                                         ((len VV##752) >= 0)]}
-bind 292 lq_tmp$x##748 : {VV : a_azx | []}
-bind 293 VV##685 : {VV##685 : [a_azx] | [$k_##686;
-                                         ((len VV##685) >= 0)]}
-bind 294 lq_tmp$x##681 : {VV : a_azx | []}
-bind 295 VV##673 : {VV##673 : [a_azx] | [$k_##674;
-                                         ((len VV##673) >= 0)]}
-bind 296 lq_tmp$x##669 : {VV : a_azx | []}
-bind 297 VV##661 : {VV##661 : [a_azx] | [$k_##662;
-                                         ((len VV##661) >= 0)]}
-bind 298 lq_tmp$x##657 : {VV : a_azx | []}
-bind 299 VV##586 : {VV##586 : [a_azx] | [$k_##587;
-                                         ((len VV##586) >= 0)]}
-bind 300 lq_tmp$x##582 : {VV : a_azx | []}
-bind 301 VV##574 : {VV##574 : [a_azx] | [$k_##575;
-                                         ((len VV##574) >= 0)]}
-bind 302 lq_tmp$x##570 : {VV : a_azx | []}
-bind 303 VV##562 : {VV##562 : [a_azx] | [$k_##563;
-                                         ((len VV##562) >= 0)]}
-bind 304 lq_tmp$x##558 : {VV : a_azx | []}
-bind 305 VV##163 : {VV##163 : GHC.Prim.Void# | [$k_##164]}
-bind 306 VV##309 : {VV##309 : GHC.Prim.Void# | [$k_##310]}
-bind 307 VV##320 : {VV##320 : [a_azo] | [$k_##321;
-                                         ((len VV##320) >= 0)]}
-bind 308 lq_tmp$x##316 : {VV : a_azo | []}
-bind 309 VV##232 : {VV##232 : GHC.Prim.Void# | [$k_##233]}
-bind 310 VV##258 : {VV##258 : [a_azo] | [$k_##259;
-                                         ((len VV##258) >= 0)]}
-bind 311 lq_tmp$x##254 : {VV : a_azo | []}
-bind 312 VV##243 : {VV##243 : [a_azo] | [$k_##244;
-                                         ((len VV##243) >= 0)]}
-bind 313 lq_tmp$x##239 : {VV : a_azo | []}
-bind 314 VV##174 : {VV##174 : [a_azo] | [$k_##175;
-                                         ((len VV##174) >= 0)]}
-bind 315 lq_tmp$x##170 : {VV : a_azo | []}
-
-
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       80;
-       82;
-       83;
-       84]
-  lhs {VV##50 : [a_azx] | [(((len VV##50) > 1) => ((len VV##50) < (len zs##ayE)));
-                           ((len VV##50) >= 0);
-                           (VV##50 = ys##aA5);
-                           ((len VV##50) >= 0)]}
-  rhs {VV##50 : [a_azx] | [$k_##795[VV##794:=VV##50][VV##1370:=VV##50][VV##F:=VV##50][VV##F##50:=VV##50]]}
-  id 50 tag [2]
-  // META constraint id 50 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       77;
-       78;
-       79]
-  lhs {VV##53 : [a_azx] | [(((len VV##53) > 1) => ((len VV##53) < (len zs##ayE)));
-                           ((len VV##53) >= 0);
-                           (VV##53 = xs##aA4);
-                           ((len VV##53) >= 0)]}
-  rhs {VV##53 : [a_azx] | [$k_##753[VV##752:=VV##53][VV##1373:=VV##53][VV##F##53:=VV##53][VV##F:=VV##53]]}
-  id 53 tag [2]
-  // META constraint id 53 : ()
-
-
-constraint:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89]
-  lhs {VV##30 : (Tuple  [a_azx]  [a_azx]) | [((snd VV##30) = lq_anf$##dN1);
-                                             ((fst VV##30) = lq_anf$##dN0);
-                                             ((x_Tuple22 VV##30) = lq_anf$##dN1);
-                                             ((x_Tuple21 VV##30) = lq_anf$##dN0)]}
-  rhs {VV##30 : (Tuple  [a_azx]  [a_azx]) | [(((len (fst VV##30)) + (len (snd VV##30))) = (len ds_dMs))]}
-  id 30 tag [2]
-  // META constraint id 30 : ()
-
-
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       70]
-  reft {VV##685 : [a_azx] | [$k_##686]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       49]
-  reft {VV##414 : a_azo | [$k_##415]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 302]
-  reft {VV##571 : a_azx | [$k_##572]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       296]
-  reft {VV##670 : a_azx | [$k_##671]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       86]
-  reft {VV##843 : a_azx | [$k_##844]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 19; 20; 21]
-  reft {VV##163 : GHC.Prim.Void# | [$k_##164]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       287]
-  reft {VV##882 : a_azx | [$k_##883]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80]
-  reft {VV##794 : [a_azx] | [$k_##795]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 304]
-  reft {VV##559 : a_azx | [$k_##560]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 303]
-  reft {VV##555 : a_azx | [$k_##556]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117;
-       122;
-       123]
-  reft {VV##1226 : a_azJ | [$k_##1227]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       90;
-       283]
-  reft {VV##906 : a_azx | [$k_##907]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       307]
-  reft {VV##313 : a_azo | [$k_##314]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       297]
-  reft {VV##654 : a_azx | [$k_##655]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33;
-       312]
-  reft {VV##236 : a_azo | [$k_##237]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117]
-  reft {VV##1159 : [a_azJ] | [$k_##1160]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112]
-  reft {VV##1117 : [a_azJ] | [$k_##1118]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89]
-  reft {VV##889 : [a_azx] | [$k_##890]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75]
-  reft {VV##752 : [a_azx] | [$k_##753]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       88]
-  reft {VV##866 : a_azx | [$k_##867]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33;
-       34;
-       311]
-  reft {VV##255 : a_azo | [$k_##256]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 60; 300]
-  reft {VV##583 : a_azx | [$k_##584]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       90]
-  reft {VV##913 : [a_azx] | [$k_##914]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110]
-  reft {VV##1071 : GHC.Prim.Void# | [$k_##1072]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 62; 63; 64; 67]
-  reft {VV##638 : a_azx | [$k_##639]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       280]
-  reft {VV##1114 : a_azJ | [$k_##1115]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       290]
-  reft {VV##791 : a_azx | [$k_##792]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59]
-  reft {VV##574 : [a_azx] | [$k_##575]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       314]
-  reft {VV##167 : a_azo | [$k_##168]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87]
-  reft {VV##863 : a_azx | [$k_##864]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 60]
-  reft {VV##586 : [a_azx] | [$k_##587]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42]
-  reft {VV##309 : GHC.Prim.Void# | [$k_##310]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32]
-  reft {VV##232 : GHC.Prim.Void# | [$k_##233]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       292]
-  reft {VV##749 : a_azx | [$k_##750]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       291]
-  reft {VV##745 : a_azx | [$k_##746]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       49;
-       51]
-  reft {VV##444 : a_azo | [$k_##445]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       103;
-       105]
-  reft {VV##1036 : a_azJ | [$k_##1037]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       49;
-       51;
-       52]
-  reft {VV##466 : a_azo | [$k_##467]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74]
-  reft {VV##738 : a_azx | [$k_##739]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117;
-       122;
-       123;
-       124]
-  reft {VV##1252 : a_azJ | [$k_##1253]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       49;
-       50]
-  reft {VV##417 : a_azo | [$k_##418]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59]
-  reft {VV##562 : [a_azx] | [$k_##563]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 62; 63; 64; 67; 68]
-  reft {VV##641 : a_azx | [$k_##642]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       279]
-  reft {VV##1110 : a_azJ | [$k_##1111]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43]
-  reft {VV##320 : [a_azo] | [$k_##321]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       286]
-  reft {VV##898 : a_azx | [$k_##899]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       44]
-  reft {VV##337 : a_azo | [$k_##338]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       70;
-       293]
-  reft {VV##678 : a_azx | [$k_##679]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       45]
-  reft {VV##364 : a_azo | [$k_##365]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       281]
-  reft {VV##1075 : a_azJ | [$k_##1076]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       103;
-       104]
-  reft {VV##1019 : a_azJ | [$k_##1020]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       49;
-       51;
-       52;
-       53]
-  reft {VV##469 : a_azo | [$k_##470]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 301]
-  reft {VV##567 : a_azx | [$k_##568]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89]
-  reft {VV##901 : [a_azx] | [$k_##902]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38]
-  reft {VV##297 : a_azo | [$k_##298]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22]
-  reft {VV##174 : [a_azo] | [$k_##175]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33;
-       34]
-  reft {VV##258 : [a_azo] | [$k_##259]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117;
-       277]
-  reft {VV##1152 : a_azJ | [$k_##1153]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       90;
-       284]
-  reft {VV##910 : a_azx | [$k_##911]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       282]
-  reft {VV##1079 : a_azJ | [$k_##1080]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57]
-  reft {VV##539 : a_azx | [$k_##540]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111]
-  reft {VV##1103 : a_azJ | [$k_##1104]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       315]
-  reft {VV##171 : a_azo | [$k_##172]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       45;
-       46]
-  reft {VV##386 : a_azo | [$k_##387]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117;
-       122]
-  reft {VV##1206 : a_azJ | [$k_##1207]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       285]
-  reft {VV##894 : a_azx | [$k_##895]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       295]
-  reft {VV##666 : a_azx | [$k_##667]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       103]
-  reft {VV##1016 : a_azJ | [$k_##1017]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 91; 92; 95; 96]
-  reft {VV##970 : a_azJ | [$k_##971]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85;
-       87;
-       89;
-       288]
-  reft {VV##886 : a_azx | [$k_##887]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 91; 92; 95]
-  reft {VV##967 : a_azJ | [$k_##968]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       289]
-  reft {VV##787 : a_azx | [$k_##788]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33;
-       313]
-  reft {VV##240 : a_azo | [$k_##241]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       308]
-  reft {VV##317 : a_azo | [$k_##318]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       298]
-  reft {VV##658 : a_azx | [$k_##659]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33]
-  reft {VV##243 : [a_azo] | [$k_##244]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 58]
-  reft {VV##542 : a_azx | [$k_##543]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 62; 63; 64; 67; 69]
-  reft {VV##661 : [a_azx] | [$k_##662]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111;
-       112;
-       117;
-       278]
-  reft {VV##1156 : a_azJ | [$k_##1157]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43;
-       45;
-       46;
-       47]
-  reft {VV##389 : a_azo | [$k_##390]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       108;
-       109;
-       110;
-       111]
-  reft {VV##1082 : [a_azJ] | [$k_##1083]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 57; 59; 60; 299]
-  reft {VV##579 : a_azx | [$k_##580]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       91;
-       92;
-       98;
-       99;
-       100;
-       103;
-       105;
-       106]
-  reft {VV##1039 : a_azJ | [$k_##1040]}
-  // META wf : ()
-
-
-wf:
-  env [0; 1; 2; 3; 4; 5; 6; 7; 8; 9; 10; 11; 54; 62; 63; 64; 67; 69]
-  reft {VV##673 : [a_azx] | [$k_##674]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       36;
-       37;
-       38;
-       39;
-       42;
-       43]
-  reft {VV##334 : a_azo | [$k_##335]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       72;
-       73;
-       74;
-       75;
-       80;
-       85]
-  reft {VV##840 : a_azx | [$k_##841]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       54;
-       62;
-       63;
-       64;
-       67;
-       69;
-       70;
-       294]
-  reft {VV##682 : a_azx | [$k_##683]}
-  // META wf : ()
-
-
-wf:
-  env [0;
-       1;
-       2;
-       3;
-       4;
-       5;
-       6;
-       7;
-       8;
-       9;
-       10;
-       11;
-       12;
-       13;
-       14;
-       19;
-       20;
-       21;
-       22;
-       27;
-       28;
-       29;
-       32;
-       33;
-       34;
-       310]
-  reft {VV##251 : a_azo | [$k_##252]}
-  // META wf : ()
-
-
-
-
-
-
-
diff --git a/liquid-fixpoint/tests/todo/baz.fq b/liquid-fixpoint/tests/todo/baz.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/todo/baz.fq
+++ /dev/null
@@ -1,22 +0,0 @@
-// Uncommenting the WF renders the constraints "unsafe" but right now its SAFE
-// which is bad. We should fail with "missing WF" or somesuch.
-
-
-bind 0 x : {v: int | $k1 }
-
-constraint:
-  env []
-  lhs {v : int | [v = 6] }
-  rhs {v : int | $k1      }
-  id 0 tag []
-
-constraint:
-  env [0]
-  lhs {v : int | [v = x] }
-  rhs {v : int | v = 0   }
-  id 0 tag []
-
-// wf:
-//  env []
-//  reft {v: int | $k1 }
-
diff --git a/liquid-fixpoint/tests/todo/poly.fq b/liquid-fixpoint/tests/todo/poly.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/todo/poly.fq
+++ /dev/null
@@ -1,14 +0,0 @@
-
-// This definition works fine ...
-// constant offset : (func(0, [int ; int ; (BitVec Size32) ]))
-
-// But this crashes as 'offset 0' is embedded as int not bv...
-constant offset : (func(1, [int; int; @(0)]))
-
-bind 0 x  : {VV : (BitVec  Size32) | [ VV = offset 0 0 ]}
-
-constraint:
-  env [0]
-  lhs {VV : (BitVec Size32) | [ VV = x ] }
-  rhs {VV : (BitVec Size32) | [ VV = x ] }
-  id 1 tag [1]
diff --git a/liquid-fixpoint/tests/todo/wl01.fq b/liquid-fixpoint/tests/todo/wl01.fq
deleted file mode 100644
--- a/liquid-fixpoint/tests/todo/wl01.fq
+++ /dev/null
@@ -1,39 +0,0 @@
-qualif Nat(v:int) : (0 <= v)
-
-bind 0 x : {v: int | [$k0]}
-bind 1 y : {v: int | [$k0]}
-bind 2 z : {v: int | [$k1]}
-
-constraint:
-  env [ ]
-  lhs {v : int | [v = 10]}
-  rhs {v : int | [$k0]}
-  id 1 tag [0]
-
-constraint:
-  env [ 0 ]
-  lhs {v : int | [v = x + x]}
-  rhs {v : int | [$k0]}
-  id 2 tag [0]
-
-constraint:
-  env [ 0; 1 ]
-  lhs {v : int | [v = x + y ]}
-  rhs {v : int | [$k1]}
-  id 3 tag [0]
-
-
-constraint:
-  env [ 1 ]
-  lhs {v : int | [v =  z]}
-  rhs {v : int | [0 <= v]}
-  id 4 tag [0]
-
-wf:
-  env [ ]
-  reft {v: int | [$k0]}
-
-
-wf:
-  env [ ]
-  reft {v: int | [$k1]}
diff --git a/liquid-fixpoint/unix/Language/Fixpoint/Utils/Progress.hs b/liquid-fixpoint/unix/Language/Fixpoint/Utils/Progress.hs
deleted file mode 100644
--- a/liquid-fixpoint/unix/Language/Fixpoint/Utils/Progress.hs
+++ /dev/null
@@ -1,55 +0,0 @@
--- | Progress Bar API
-module Language.Fixpoint.Utils.Progress (
-      withProgress
-    , progressInit
-    , progressTick
-    , progressClose
-    ) where
-
-import           Control.Monad                    (when)
-import           System.IO.Unsafe                 (unsafePerformIO)
-import           System.Console.CmdArgs.Verbosity (isNormal)
-import           Data.IORef
-
-
-import           System.Console.AsciiProgress
-
-{-# NOINLINE pbRef #-}
-pbRef :: IORef (Maybe ProgressBar)
-pbRef = unsafePerformIO (newIORef Nothing)
-
-withProgress :: Int -> IO a -> IO a
-withProgress n act = displayConsoleRegions $ do
-  -- putStrLn $ "withProgress: " ++ show n
-  progressInit n
-  r <- act
-  progressClose
-  return r
-
-progressInit :: Int -> IO ()
-progressInit n = do
-  normal <- isNormal 
-  when normal $ do
-    pr <- mkPB n
-    writeIORef pbRef (Just pr)
-
-mkPB   :: Int -> IO ProgressBar
-
-mkPB n = newProgressBar def { pgWidth       = 80
-                            , pgTotal       = toInteger n
-                            , pgFormat      = "Working :percent [:bar]"
-                            , pgPendingChar = '.'
-                            , pgOnCompletion = Just "Done solving." --  :percent."
-                            }
-
-progressTick :: IO ()
-progressTick    = go =<< readIORef pbRef
-  where
-   go (Just pr) = tick pr
-   go _         = return ()
-
-progressClose :: IO ()
-progressClose = go =<< readIORef pbRef
-  where
-    go (Just p) = complete p
-    go _        = return ()
diff --git a/liquid-fixpoint/win/Language/Fixpoint/Utils/Progress.hs b/liquid-fixpoint/win/Language/Fixpoint/Utils/Progress.hs
deleted file mode 100644
--- a/liquid-fixpoint/win/Language/Fixpoint/Utils/Progress.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- | Progress Bar API
-module Language.Fixpoint.Utils.Progress (
-      withProgress
-    , progressInit
-    , progressTick
-    , progressClose
-    ) where
-
-withProgress :: Int -> IO a -> IO a
-withProgress _ x = x
-
-progressInit :: Int -> IO ()
-progressInit _ = return ()
-
-progressTick :: IO ()
-progressTick = return ()
-
-progressClose :: IO ()
-progressClose = return ()
diff --git a/liquidhaskell.cabal b/liquidhaskell.cabal
--- a/liquidhaskell.cabal
+++ b/liquidhaskell.cabal
@@ -1,5 +1,5 @@
 Name:                liquidhaskell
-Version:             0.8.0.0
+Version:             0.8.0.1
 Copyright:           2010-17 Ranjit Jhala & Niki Vazou, University of California, San Diego.
 build-type:          Simple
 Synopsis:            Liquid Types for Haskell
@@ -54,13 +54,13 @@
   Default:     False
   Manual:      True
 
-Flag include
-  Description: use in-tree include directory
-  Default:     False
+--Flag include
+--  Description: use in-tree include directory
+--  Default:     False
 
 Executable liquid
   default-language: Haskell98
-  build-depends:     base >=4.8.1.0 && <5
+  Build-Depends: base
                , ghc
                , ghc-boot
                , cmdargs
@@ -81,13 +81,13 @@
 executable target
   default-language: Haskell2010
   main-is:        src/Target.hs
-  build-depends:     base >=4.8.1.0 && <5
-                  , hint,
+  build-depends:  base,
+                  hint,
                   liquidhaskell
 
 Library
    Default-Language: Haskell98
-   build-depends: base >=4.8.1.0 && <5
+   Build-Depends: base >= 4.9 && < 5
                 , ghc == 8.0.2 
                 , ghc-boot == 8.0.2
                 , template-haskell >= 2.9
@@ -227,9 +227,11 @@
                     Test.Target.Util
 
    ghc-options: -W -fwarn-missing-signatures
-   if flag(include)
-     hs-source-dirs: devel
-   ghc-prof-options: -fprof-auto
+   if flag(devel)
+     ghc-options: -Werror
+--   if flag(include)
+--     hs-source-dirs: devel
+   --ghc-prof-options: -fprof-auto
    Default-Extensions: PatternGuards
 
 test-suite test
@@ -240,7 +242,7 @@
   if flag(devel)
     ghc-options: -Werror
   main-is:           test.hs
-  build-depends:     base >=4.8.1.0 && <5
+  build-depends:     base
                ,     containers >= 0.5
                ,     directory >= 1.2
                ,     filepath >= 1.3
@@ -263,7 +265,8 @@
   hs-source-dirs: tests
   ghc-options: -W
   main-is: Parser.hs
-  build-depends:     base >=4.8.1.0 && <5
+  build-depends:
+                     base
                ,     containers >= 0.5
                ,     parsec
                ,     tasty >= 0.10
diff --git a/resources/icon.png b/resources/icon.png
deleted file mode 100644
Binary files a/resources/icon.png and /dev/null differ
diff --git a/resources/icon.svg b/resources/icon.svg
deleted file mode 100644
--- a/resources/icon.svg
+++ /dev/null
@@ -1,115 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="29.703594mm"
-   height="39.899921mm"
-   viewBox="0 0 105.24896 141.37768"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="icon.svg"
-   inkscape:export-filename="C:\Users\mdsmt\Downloads\lh_revised2.png"
-   inkscape:export-xdpi="235.685"
-   inkscape:export-ydpi="235.685">
-  <defs
-     id="defs4">
-    <clipPath
-       id="clip1">
-      <path
-         inkscape:connector-curvature="0"
-         d="m 0,340.15625 481.89062,0 L 481.89062,0 0,0 0,340.15625 Z m 0,0"
-         id="path4220" />
-    </clipPath>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath7186">
-      <g
-         id="g7188">
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 84.794583,521.06991 14.010237,0 23.34623,40.52476 -21.34623,40.52194 -16.010237,0 21.346227,-40.52194 z"
-           id="path7190"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ccccccc" />
-        <path
-           sodipodi:nodetypes="ccccccccc"
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 102.14081,517.01175 8.01023,-10.84724 54.69249,95.9521 -16.01024,0 -13.33999,-25.32586 -13.34225,25.32586 -16.01024,0 21.34846,-40.52194 z"
-           id="path7192"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 139.94069,548.53025 38.40551,0 0,12.60994 -30.72442,0 -7.68109,-12.60994 z"
-           id="path7194"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 150.61272,567.44386 26.90505,0 0,12.60732 -19.78966,0 z"
-           id="path7196"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ccccc" />
-      </g>
-    </clipPath>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="1"
-     inkscape:cx="420.32985"
-     inkscape:cy="245.30718"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1057"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     fit-margin-top="3"
-     fit-margin-left="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-81.531717,-469.11796)">
-    <path
-       style="fill:#0264c0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 59.990234,10.630859 C 54.173316,21.067707 46.657394,32.271636 39.59375,43.375 l 45.373047,79.60352 c 4.666674,-3.15931 8.700176,-7.21939 11.673828,-12.04493 l -13.078125,0 -7.115234,-12.607418 24.998044,0 c 0.26827,-1.521339 0.44649,-3.086134 0.52344,-4.69336 0.0194,-0.528607 0.008,-1.068833 -0.004,-1.609374 l -28.507809,0 -7.68164,-12.609376 33.716797,0 C 92.505251,58.605472 72.389306,32.877514 59.990234,10.630859 Z M 32.216797,55.351562 c -0.968127,1.637942 -1.900951,3.264431 -2.806641,4.88086 L 47.986328,92.478516 32.779297,121.34766 c 1.252735,0.97118 2.556275,1.87737 3.910156,2.70703 L 53.324219,92.478516 32.216797,55.351562 Z m -9.798828,18.980469 c -2.902037,6.972944 -4.61497,13.505235 -4.402344,19.300781 0.291245,6.082803 2.013151,11.557818 4.751953,16.326168 L 31.976562,92.478516 22.417969,74.332031 Z m 38.910156,33.341799 -11.492187,21.81445 c 3.341504,0.80593 6.75804,1.24152 10.154296,1.25977 4.194017,-0.0225 8.421216,-0.67523 12.496094,-1.88867 L 61.328125,107.67383 Z"
-       id="path6853"
-       transform="translate(74.164662,469.11702)"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path7178"
-       d="m 134.15547,479.74694 c -15.42062,27.66803 -42.79313,60.73047 -41.975971,83.00381 1.085444,22.67002 21.923071,37.00723 41.975971,37.11498 20.05291,-0.10779 40.89193,-14.44496 41.97737,-37.11498 0.81718,-22.27334 -26.55672,-55.33578 -41.97737,-83.00381 z"
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       clip-path="url(#clipPath7186)" />
-  </g>
-</svg>
diff --git a/resources/logo.png b/resources/logo.png
deleted file mode 100644
Binary files a/resources/logo.png and /dev/null differ
diff --git a/resources/logo.svg b/resources/logo.svg
deleted file mode 100644
--- a/resources/logo.svg
+++ /dev/null
@@ -1,190 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!-- Created with Inkscape (http://www.inkscape.org/) -->
-
-<svg
-   xmlns:dc="http://purl.org/dc/elements/1.1/"
-   xmlns:cc="http://creativecommons.org/ns#"
-   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
-   xmlns:svg="http://www.w3.org/2000/svg"
-   xmlns="http://www.w3.org/2000/svg"
-   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
-   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
-   width="186.13966mm"
-   height="42.912865mm"
-   viewBox="0 0 659.55 152.05346"
-   id="svg2"
-   version="1.1"
-   inkscape:version="0.91 r13725"
-   sodipodi:docname="lh_revised2.svg"
-   inkscape:export-filename="C:\Users\mdsmt\Downloads\lh_revised2.png"
-   inkscape:export-xdpi="235.685"
-   inkscape:export-ydpi="235.685">
-  <defs
-     id="defs4">
-    <clipPath
-       id="clip1">
-      <path
-         inkscape:connector-curvature="0"
-         d="m 0,340.15625 481.89062,0 L 481.89062,0 0,0 0,340.15625 Z m 0,0"
-         id="path4220" />
-    </clipPath>
-    <clipPath
-       clipPathUnits="userSpaceOnUse"
-       id="clipPath7186">
-      <g
-         id="g7188">
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 84.794583,521.06991 14.010237,0 23.34623,40.52476 -21.34623,40.52194 -16.010237,0 21.346227,-40.52194 z"
-           id="path7190"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ccccccc" />
-        <path
-           sodipodi:nodetypes="ccccccccc"
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 102.14081,517.01175 8.01023,-10.84724 54.69249,95.9521 -16.01024,0 -13.33999,-25.32586 -13.34225,25.32586 -16.01024,0 21.34846,-40.52194 z"
-           id="path7192"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 139.94069,548.53025 38.40551,0 0,12.60994 -30.72442,0 -7.68109,-12.60994 z"
-           id="path7194"
-           inkscape:connector-curvature="0" />
-        <path
-           style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-           d="m 150.61272,567.44386 26.90505,0 0,12.60732 -19.78966,0 z"
-           id="path7196"
-           inkscape:connector-curvature="0"
-           sodipodi:nodetypes="ccccc" />
-      </g>
-    </clipPath>
-  </defs>
-  <sodipodi:namedview
-     id="base"
-     pagecolor="#ffffff"
-     bordercolor="#666666"
-     borderopacity="1.0"
-     inkscape:pageopacity="0.0"
-     inkscape:pageshadow="2"
-     inkscape:zoom="0.70710678"
-     inkscape:cx="512.42856"
-     inkscape:cy="361.49986"
-     inkscape:document-units="px"
-     inkscape:current-layer="layer1"
-     showgrid="false"
-     showguides="false"
-     inkscape:window-width="1920"
-     inkscape:window-height="1057"
-     inkscape:window-x="-8"
-     inkscape:window-y="-8"
-     inkscape:window-maximized="1"
-     fit-margin-top="3"
-     fit-margin-left="3"
-     fit-margin-right="3"
-     fit-margin-bottom="3" />
-  <metadata
-     id="metadata7">
-    <rdf:RDF>
-      <cc:Work
-         rdf:about="">
-        <dc:format>image/svg+xml</dc:format>
-        <dc:type
-           rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
-        <dc:title></dc:title>
-      </cc:Work>
-    </rdf:RDF>
-  </metadata>
-  <g
-     inkscape:label="Layer 1"
-     inkscape:groupmode="layer"
-     id="layer1"
-     transform="translate(-81.531688,-469.11796)">
-    <g
-       transform="translate(-121.00001,52.939233)"
-       id="text4830"
-       style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#00872a;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4877"
-         d="m 593.64984,533.48008 0,-32.97577 -28.38668,0 0,32.97577 -15.48364,0 0,-79.51602 15.48364,0 0,32.50802 28.38668,0 0,-32.50802 15.48364,0 0,79.51602 -15.48364,0 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4879"
-         d="m 658.99691,493.25432 0,24.32254 q 0.2244,2.80646 0.8976,3.97581 0.6732,1.05241 2.80501,1.52016 l -0.4488,11.81046 q -5.72222,0 -9.20043,-0.81855 -3.36601,-0.81854 -6.84422,-3.27419 -8.07842,4.09274 -16.49344,4.09274 -17.39105,0 -17.39105,-19.17739 0,-9.35482 4.82461,-13.21368 4.82462,-3.97581 14.81044,-4.67741 l 12.00544,-0.9355 0,-3.62499 q 0,-3.62498 -1.57081,-4.91128 -1.5708,-1.40322 -5.04901,-1.40322 l -21.09366,0.93548 -0.4488,-10.87498 q 12.00543,-3.39114 22.77666,-3.39114 10.88343,0 15.59584,4.67743 4.82462,4.6774 4.82462,14.96771 z m -25.24507,15.43546 q -6.28322,0.58469 -6.28322,7.01612 0,6.43145 5.49782,6.43145 4.26361,0 9.31262,-1.40323 l 1.68301,-0.46774 0,-12.51208 -10.21023,0.93548 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4881"
-         d="m 709.08473,489.62934 q -13.91284,-1.87097 -19.52285,-1.87097 -5.49782,0 -7.18082,1.05241 -1.57081,1.05243 -1.57081,3.39113 0,2.22176 2.13181,3.15725 2.24401,0.81854 11.22003,2.57258 9.08822,1.63709 12.90303,5.49596 3.81482,3.85886 3.81482,12.51207 0,18.94352 -22.55227,18.94352 -7.40522,0 -17.95204,-2.10483 l -3.59041,-0.70161 0.4488,-13.09676 q 13.91283,1.87097 19.29845,1.87097 5.49781,0 7.40522,-1.05242 2.0196,-1.16935 2.0196,-3.39113 0,-2.22177 -2.1318,-3.27419 -2.01961,-1.05242 -10.77123,-2.57256 -8.63942,-1.52016 -12.90304,-5.14515 -4.26361,-3.62501 -4.26361,-12.86291 0,-9.35482 6.05882,-14.03222 6.05882,-4.79436 15.59584,-4.79436 6.61982,0 18.06425,2.22177 l 3.70261,0.70162 -0.2244,12.97983 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4883"
-         d="m 729.10293,533.48008 -15.03484,0 0,-81.85472 15.03484,0 0,46.54025 5.72222,-1.05242 11.10783,-22.10077 16.83005,0 -14.58604,27.71366 15.37144,30.754 -16.94225,0 -11.33223,-22.80239 -6.17102,1.05241 0,21.74998 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4885"
-         d="m 776.89691,510.91156 q 0.1122,5.37902 2.69281,7.83466 2.69281,2.33871 7.62962,2.33871 10.43463,0 18.62525,-0.70161 l 3.14161,-0.35081 0.2244,11.57659 q -12.90304,3.27419 -23.33767,3.27419 -12.67863,0 -18.40084,-7.01612 -5.72222,-7.01611 -5.72222,-22.80238 0,-31.45561 24.79627,-31.45561 24.45966,0 24.45966,26.42739 l -1.122,10.87499 -32.98689,0 z m 19.29845,-11.9274 q 0,-7.01612 -2.1318,-9.70564 -2.13181,-2.80644 -7.51742,-2.80644 -5.27342,0 -7.51742,2.92337 -2.13181,2.80646 -2.24401,9.58871 l 19.41065,0 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4887"
-         d="m 816.19394,533.48008 0,-81.85472 15.03484,0 0,81.85472 -15.03484,0 z" />
-      <path
-         style="fill:#00872a;fill-opacity:1"
-         inkscape:connector-curvature="0"
-         id="path4889"
-         d="m 836.4169,533.48008 0,-81.85472 15.03484,0 0,81.85472 -15.03484,0 z" />
-    </g>
-    <path
-       style="fill:#0264c0;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       d="M 59.990234,10.630859 C 54.173316,21.067707 46.657394,32.271636 39.59375,43.375 l 45.373047,79.60352 c 4.666674,-3.15931 8.700176,-7.21939 11.673828,-12.04493 l -13.078125,0 -7.115234,-12.607418 24.998044,0 c 0.26827,-1.521339 0.44649,-3.086134 0.52344,-4.69336 0.0194,-0.528607 0.008,-1.068833 -0.004,-1.609374 l -28.507809,0 -7.68164,-12.609376 33.716797,0 C 92.505251,58.605472 72.389306,32.877514 59.990234,10.630859 Z M 32.216797,55.351562 c -0.968127,1.637942 -1.900951,3.264431 -2.806641,4.88086 L 47.986328,92.478516 32.779297,121.34766 c 1.252735,0.97118 2.556275,1.87737 3.910156,2.70703 L 53.324219,92.478516 32.216797,55.351562 Z m -9.798828,18.980469 c -2.902037,6.972944 -4.61497,13.505235 -4.402344,19.300781 0.291245,6.082803 2.013151,11.557818 4.751953,16.326168 L 31.976562,92.478516 22.417969,74.332031 Z m 38.910156,33.341799 -11.492187,21.81445 c 3.341504,0.80593 6.75804,1.24152 10.154296,1.25977 4.194017,-0.0225 8.421216,-0.67523 12.496094,-1.88867 L 61.328125,107.67383 Z"
-       id="path6853"
-       transform="translate(74.164662,469.11702)"
-       inkscape:connector-curvature="0" />
-    <path
-       inkscape:connector-curvature="0"
-       id="path7178"
-       d="m 134.15547,479.74694 c -15.42062,27.66803 -42.79313,60.73047 -41.975971,83.00381 1.085444,22.67002 21.923071,37.00723 41.975971,37.11498 20.05291,-0.10779 40.89193,-14.44496 41.97737,-37.11498 0.81718,-22.27334 -26.55672,-55.33578 -41.97737,-83.00381 z"
-       style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1.05262315px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
-       clip-path="url(#clipPath7186)" />
-    <g
-       transform="matrix(1.24667,0,0,1.24667,-75.199562,-49.505648)"
-       id="text4859"
-       style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1;stroke:none;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1">
-      <path
-         inkscape:connector-curvature="0"
-         id="path4864"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 245.99829,510.09816 -34.56,0 0,-61.65 9.99,0 0,52.74 24.57,0 0,8.91 z" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4866"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 249.55594,510.09816 0,-45 9.81,0 0,45 -9.81,0 z m 0,-52.65 0,-10.35 9.81,0 0,10.35 -9.81,0 z" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4868"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 280.56359,511.08816 q -9.27,0 -13.5,-5.22 -4.14,-5.22 -4.14,-18.27 0,-13.14 4.86,-18.27 4.95,-5.22 17.01,-5.22 4.41,0 13.5,0.81 l 2.97,0.27 0,64.26 -9.72,0 0,-21.06 q -6.03,2.7 -10.98,2.7 z m 4.23,-38.52 q -7.11,0 -9.63,3.6 -2.43,3.51 -2.43,11.52 0,8.01 2.16,11.34 2.25,3.33 6.84,3.33 4.23,0 8.46,-1.35 l 1.35,-0.45 0,-27.63 q -4.32,-0.36 -6.75,-0.36 z" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4870"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 332.54123,465.09816 9.72,0 0,45 -9.72,0 0,-2.79 q -6.57,3.78 -12.15,3.78 -9.27,0 -12.42,-4.95 -3.15,-5.04 -3.15,-17.55 l 0,-23.49 9.81,0 0,23.58 q 0,8.1 1.35,10.89 1.35,2.79 6.3,2.79 4.86,0 8.91,-1.8 l 1.35,-0.54 0,-34.92 z" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4872"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 345.81888,510.09816 0,-45 9.81,0 0,45 -9.81,0 z m 0,-52.65 0,-10.35 9.81,0 0,10.35 -9.81,0 z" />
-      <path
-         inkscape:connector-curvature="0"
-         id="path4874"
-         style="font-style:normal;font-variant:normal;font-weight:600;font-stretch:normal;font-size:90px;line-height:125%;font-family:'Titillium Web';-inkscape-font-specification:'Titillium Web, Semi-Bold';text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#0264c0;fill-opacity:1"
-         d="m 397.97652,446.37816 0,63.72 -9.72,0 0,-2.34 q -6.57,3.33 -12.06,3.33 -8.82,0 -12.96,-5.31 -4.05,-5.31 -4.05,-17.82 0,-12.51 4.5,-18.18 4.59,-5.67 14.22,-5.67 3.24,0 10.26,1.17 l 0,-18.9 9.81,0 z m -11.34,54.36 1.53,-0.63 0,-26.64 q -5.4,-0.9 -9.99,-0.9 -9.09,0 -9.09,15.12 0,8.28 2.07,11.52 2.16,3.15 6.75,3.15 4.59,0 8.73,-1.62 z" />
-    </g>
-  </g>
-</svg>
diff --git a/scripts/CountBinders.hs b/scripts/CountBinders.hs
deleted file mode 100644
--- a/scripts/CountBinders.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-# LANGUAGE FlexibleInstances #-}
-{-# LANGUAGE TypeSynonymInstances #-}
-module Main where
-
-
-import           Control.Applicative
-import           Data.Function
-import           Data.Generics
-import           Data.List
-import           System.Environment
-import           Text.Printf
-
-import           CoreMonad
-import           CoreSyn
-import           DynFlags
-import           GHC
-import           GHC.Paths
-import           HscTypes
-import qualified Outputable as Out
-import           Type
-import           Var
-
-import           Language.Haskell.Liquid.GhcMisc
-import           Language.Haskell.Liquid.Misc
-
-getCoreBinds :: FilePath -> IO [CoreBind]
-getCoreBinds target = runGhc (Just libdir) $ do
-  addTarget =<< guessTarget target Nothing
-  flags <- getSessionDynFlags
-  inc <- liftIO getIncludeDir
-  setSessionDynFlags $ updateDynFlags flags [inc]
-  load LoadAllTargets
-  modGraph <- getModuleGraph
-  case find ((== target) . msHsFilePath) modGraph of
-    Just modSummary -> do
-      mod_guts <- coreModule <$> (desugarModule =<< typecheckModule =<< parseModule modSummary)
-      return   $! mg_binds mod_guts
-    Nothing     -> error "Ghc Interface: Unable to get GhcModGuts"
-
-
-updateDynFlags :: DynFlags -> [FilePath] -> DynFlags
-updateDynFlags df ps
-  = df { importPaths  = ps ++ importPaths df
-       , libraryPaths = ps ++ libraryPaths df
-       , profAuto     = ProfAutoCalls
-       , ghcLink      = NoLink
-       , hscTarget    = HscInterpreted
-       , ghcMode      = CompManager
-       } `xopt_set` Opt_MagicHash
-         `dopt_set` Opt_ImplicitImportQualified
-
-
-allBinders :: [CoreBind] -> [CoreBind]
-allBinders cbs = cbs ++ map bind (concatMap (listify isBinder) cbs)
-  where
-    bind (Let x _)     = x
-    isBinder (Let _ _) = True
-    isBinder _         = False
-
-
-recsAndFuns :: [CoreBind] -> ([Var],[Var],[Var])
-recsAndFuns binds = (recs,recfuns,funs)
-  where
-    recs    = [v | Rec bs <- binds, (v,_)  <- bs]
-    recfuns = filter isFun recs
-    -- GHC does transforms recursive functions (at least with tyvars)
-    -- into a let binding that quantifies over the tyvar followed by a
-    -- letrec that defines the function, e.g.
-    --     let foo = \ @a -> { letrec foo = ... in foo }
-    -- but we don't want to count foo as rec and nonrec
-    funs    = nubBy ((==) `on` getOccName)
-            $ [v | NonRec v _ <- binds, isFun v]
-           ++ recfuns
-    isFun   = isFunTy . snd . splitForAllTys . varType
-
-
-main :: IO ()
-main = do
-  target <- head <$> getArgs
-  binds  <- allBinders <$> getCoreBinds target
-
-  let (recs,recfuns,funs) = recsAndFuns binds
-
-  printf "funs:     %d\n" (length funs)
-  printf "recs:     %d\n" (length recs)
-  printf "recsFuns: %d\n" (length recfuns)
-
-
-instance Show CoreBind where
-  show = showPpr
-
-instance Show (Expr CoreBndr) where
-  show = showPpr
diff --git a/scripts/haskell_count b/scripts/haskell_count
deleted file mode 100644
--- a/scripts/haskell_count
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/perl -w
-# haskell_count - count physical lines of code
-# Strips out {- .. -} and -- comments and counts the rest.
-# Pragmas, {-#...}, are counted as SLOC.
-# BUG: Doesn't handle strings with embedded block comment markers gracefully.
-#      In practice, that shouldn't be a problem.
-# Usage: haskell_count [-f file] [list_of_files]
-#  file: file with a list of files to count (if "-", read list from stdin)
-#  list_of_files: list of files to count
-#  -f file or list_of_files can be used, or both
-
-# This is part of SLOCCount, a toolsuite that counts
-# source lines of code (SLOC).
-# Copyright (C) 2001-2004 David A. Wheeler.
-# 
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-# 
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-# 
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-# 
-# To contact David A. Wheeler, see his website at:
-#  http://www.dwheeler.com.
-# 
-
-
-
-
-
-$total_sloc = 0;
-
-# Do we have "-f" (read list of files from second argument)?
-if (($#ARGV >= 1) && ($ARGV[0] eq "-f")) {
-  # Yes, we have -f
-  if ($ARGV[1] eq "-") {
-    # The list of files is in STDIN
-    while (<STDIN>) {
-      chomp ($_);
-      &count_file ($_);
-    }
-  } else {
-    # The list of files is in the file $ARGV[1]
-    open (FILEWITHLIST, $ARGV[1]) || die "Error: Could not open $ARGV[1]\n";
-    while (<FILEWITHLIST>) {
-      chomp ($_);
-      &count_file ($_);
-    }
-    close FILEWITHLIST;
-  }
-  shift @ARGV; shift @ARGV;
-}
-# Process all (remaining) arguments as file names
-while ($file = shift @ARGV) {
-  &count_file ($file);
-}
-
-print "Total:\n";
-print "$total_sloc\n";
-
-sub determine_lit_type {
-  my ($file) = @_;
-
-  open (FILE, $file);
-  while (<FILE>) {
-    if (m/^\\begin{code}/) { close FILE; return 2; }
-    if (m/^>\s/) { close FILE; return 1; }
-  }
-
-  return 0;
-}
-
-sub count_file {
-  my ($file) = @_;
-  my $sloc = 0;
-  my $incomment = 0;
-  my ($literate, $inlitblock) = (0,0);
-
-  $literate = 1 if $file =~ /\.lhs$/;
-  if($literate) { $literate = determine_lit_type($file) }
-
-  open (FILE, $file);
-  while (<FILE>) {
-    if ($literate == 1) {
-      if (!s/^>//) { s/.*//; }
-    } elsif ($literate == 2) {
-      if ($inlitblock) {
-        if (m/^\\end{code}/) { s/.*//; $inlitblock = 0; }
-      } elsif (!$inlitblock) {
-        if (m/^\\begin{code}/) { s/.*//; $inlitblock = 1; }
-        else { s/.*//; }
-      }
-    }
-
-    if ($incomment) {
-      if (m/\-\}/) { s/^.*?\-\}//;  $incomment = 0;}
-      else { s/.*//; }
-    }
-    if (!$incomment) {
-      s!{-[^#].*?-}!!g;
-      s/--.*//;
-      if (m/{-/ && (!m/{-#/)) {
-        s/{-.*//;
-	$incomment = 1;
-      }
-    }
-    if (m/\S/) {$sloc++;}
-  }
-  print "$sloc $file\n";
-  if ($incomment) {print "ERROR: ended in comment in $ARGV\n";}
-  $total_sloc += $sloc;
-  $sloc = 0;
-  $incomment = 0;
-  close (FILE);
-}
diff --git a/scripts/metrics.py b/scripts/metrics.py
deleted file mode 100644
--- a/scripts/metrics.py
+++ /dev/null
@@ -1,200 +0,0 @@
-#!/usr/bin/python
-
-from collections import defaultdict
-from datetime import datetime
-import os
-import re
-import string
-import subprocess
-import sys
-
-benchmarks = {
-    'benchmarks/text-0.11.2.3': [ 'Data/Text.hs'
-                                , 'Data/Text/Array.hs'
-                                , 'Data/Text/Encoding.hs'
-                                , 'Data/Text/Foreign.hs'
-                                , 'Data/Text/Fusion.hs'
-                                , 'Data/Text/Fusion/Size.hs'
-                                , 'Data/Text/Internal.hs'
-                                , 'Data/Text/Lazy.hs'
-                                , 'Data/Text/Lazy/Builder.hs'
-                                , 'Data/Text/Lazy/Encoding.hs'
-                                , 'Data/Text/Lazy/Fusion.hs'
-                                , 'Data/Text/Lazy/Internal.hs'
-                                , 'Data/Text/Lazy/Search.hs'
-                                , 'Data/Text/Private.hs'
-                                , 'Data/Text/Search.hs'
-                                , 'Data/Text/Unsafe.hs'
-                                , 'Data/Text/UnsafeChar.hs' ],
-
-    'benchmarks/bytestring-0.9.2.1': [ 'Data/ByteString.T.hs'
-                                     , 'Data/ByteString/Char8.hs'
-                                     , 'Data/ByteString/Fusion.T.hs'
-                                     , 'Data/ByteString/Internal.hs'
-                                     , 'Data/ByteString/Lazy.hs'
-                                     # , 'Data/ByteString/LazyZip.hs'
-                                     , 'Data/ByteString/Lazy/Char8.hs'
-                                     , 'Data/ByteString/Lazy/Internal.hs'
-                                     , 'Data/ByteString/Unsafe.hs' ],
-
-    'benchmarks/vector-algorithms-0.5.4.2': [ 'Data/Vector/Algorithms/AmericanFlag.hs'
-                                            , 'Data/Vector/Algorithms/Combinators.hs'
-                                            , 'Data/Vector/Algorithms/Common.hs'
-                                            , 'Data/Vector/Algorithms/Heap.hs'
-                                            , 'Data/Vector/Algorithms/Insertion.hs'
-                                            , 'Data/Vector/Algorithms/Intro.hs'
-                                            , 'Data/Vector/Algorithms/Merge.hs'
-                                            , 'Data/Vector/Algorithms/Optimal.hs'
-                                            , 'Data/Vector/Algorithms/Radix.hs'
-                                            , 'Data/Vector/Algorithms/Search.hs' ],
-
-    'benchmarks/esop2013-submission': [ 'Base.hs', 'Splay.hs' ],
-
-    'benchmarks/hscolour-1.20.0.0': [ 'Language/Haskell/HsColour.hs'
-                                    , 'Language/Haskell/HsColour/ACSS.hs'
-                                    , 'Language/Haskell/HsColour/Anchors.hs'
-                                    , 'Language/Haskell/HsColour/ANSI.hs'
-                                    , 'Language/Haskell/HsColour/Classify.hs'
-                                    , 'Language/Haskell/HsColour/ColourHighlight.hs'
-                                    , 'Language/Haskell/HsColour/Colourise.hs'
-                                    , 'Language/Haskell/HsColour/CSS.hs'
-                                    , 'Language/Haskell/HsColour/General.hs'
-                                    , 'Language/Haskell/HsColour/HTML.hs'
-                                    , 'Language/Haskell/HsColour/InlineCSS.hs'
-                                    , 'Language/Haskell/HsColour/LaTeX.hs'
-                                    , 'Language/Haskell/HsColour/MIRC.hs'
-                                    , 'Language/Haskell/HsColour/Options.hs'
-                                    , 'Language/Haskell/HsColour/Output.hs'
-                                    , 'Language/Haskell/HsColour/TTY.hs' ],
-
-    'benchmarks/xmonad': [ 'XMonad/StackSet.hs' ],
-
-    'include': [ 'GHC/List.lhs' ],
-
-    '.': [ 'benchmarks/base-4.5.1.0/Data/List.hs' ]
-}
-
-def time(fn):
-    start = datetime.now()
-    with open(fn+'.log', 'w') as out:
-        subprocess.call(['liquid', '--smtsolver', 'z3mem', fn], stdout=out, stderr=out)
-    return (datetime.now() - start).total_seconds()
-
-def errors(fn):
-    with open(fn+'.log') as fd:
-        log = fd.readlines()
-    unsafes = [l for l in log if l.startswith('**** UNSAFE:')]
-    return unsafes
-
-def sloc(scripts,fn):
-    return int(subprocess.check_output(
-        '%s/haskell_count %s | tail -n1' % (scripts, fn), shell=True))
-
-def lines(anns):
-    return sum(map(lambda x:(1+x.count('\n')), anns))
-
-def recs(fn):
-    out = subprocess.check_output('liquid-count-binders %s 2>/dev/null' % fn, shell=True)
-    return [int(n) for n in re.findall('(\d+)', out)]
-
-def find(rx, str):
-    return [(str[a.start():(3+string.find(str,"@-}", a.start()))])
-            for a in list(re.finditer(rx, str))]
-
-qualif_re = '{-@ qualif'
-other = 'import|include|invariant|embed|Decrease|LAZYVAR|Strict|Lazy'
-other_re = '{-@ (%s)' % other
-spec_re = '{-@ (?!(%s|qualif|LIQUID))' % other
-dec_re = '{-@ Decrease'
-div_re = '{-@ (Strict|Lazy)'
-wit_re = '{- LIQUID WITNESS'
-mod_re = '^module ([\w\.]+)'
-
-def combine(x, y):
-    return {k:x[k] + y[k] for k in y.keys()}
-
-def texify(fn, metrics):
-    return '\\texttt{%s} & %d & %d / %d & %d / %d & %d / %d & %d & %d & %d & %d & %d \\\\\n' % (
-        fn, metrics['sloc'], metrics['specs'], metrics['specs_lines'],
-        metrics['others'], metrics['others_lines'],
-        metrics['qualifs'], metrics['qualifs_lines'],
-        metrics['funs'], metrics['recfuns'], metrics['divs'],
-        metrics['hints'], metrics['time'])
-
-def texify_term(fn, metrics):
-    return '\\texttt{%s} & %d & %d & %d & %d & %d & %d & %d \\\\\n' % (
-        fn, metrics['sloc'], metrics['errs'],
-        metrics['funs'], metrics['recfuns'], metrics['divs'],
-        metrics['hints'], metrics['time'])
-
-def main():
-    if len(sys.argv) >= 2 and sys.argv[1] == '--only-term':
-        print 'ONLY COLLECTING TERMINATION DATA!'
-        colformat = '|l|rr|rrrr|r|'
-        headers = ['Module', 'LOC', 'Err', 'Fun', 'Rec', 'Div', 'Hint', 'Time']
-        pptex = texify_term
-    else:
-        colformat = '|l|rrrr|rrrr|r|'
-        headers = ['Module', 'LOC', 'Specs', 'Annot', 'Qualif',
-                   'Fun', 'Rec', 'Div', 'Hint', 'Time']
-        pptex = texify
-    results = {}
-    pwd = os.getcwd()
-    for d, fs in benchmarks.iteritems():
-        os.chdir(d)
-        results[d] = {}
-        for fn in fs:
-            print fn
-            f_res = {}
-            f_res['time'] = time(fn)
-            f_res['sloc'] = sloc(os.path.join(pwd,'scripts'),fn)
-            [fs,rs,rfs] = recs(fn)
-            f_res['funs'] = fs
-            f_res['recs'] = rs
-            f_res['recfuns'] = rfs
-
-            errs = set(errors(fn))
-            import pprint
-            pprint.pprint(errs)
-            f_res['errs'] = len(errs)
-
-            str = (open(fn, 'r')).read()
-            mod = re.search(mod_re, str, re.M).group(1)
-
-            specs = find(spec_re, str)
-            f_res['specs'] = len(specs)
-            f_res['specs_lines'] = lines(specs)
-
-            qualifs = find(qualif_re, str)
-            f_res['qualifs'] = len(qualifs)
-            f_res['qualifs_lines'] = lines(qualifs)
-
-            others = find(other_re, str)
-            f_res['others'] = len(others)
-            f_res['others_lines'] = lines(others)
-
-            f_res['divs'] = len(re.findall(div_re, str))
-            f_res['hints'] = len(re.findall(wit_re, str)) + len(re.findall(dec_re, str))
-            results[d][mod] = f_res
-
-        os.chdir(pwd)
-
-    with open('metrics.tex', 'w') as out:
-        out.write('\\begin{tabular}{%s}\n' % colformat)
-        out.write('\\hline\n')
-        out.write(' & '.join('\\textbf{%s}' % h for h in headers) + '\\\\\n')
-        out.write('\\hline\\hline\n')
-        totals = defaultdict(int)
-        for d, fs in results.iteritems():
-            dirtotals = defaultdict(int)
-            for fn, metrics in sorted(fs.iteritems()):
-                out.write(pptex(fn, metrics))
-                dirtotals = combine(dirtotals, metrics)
-            out.write(pptex(d, dirtotals))
-            out.write('\\hline\n\n')
-            totals = combine(totals, dirtotals)
-        out.write(pptex('Total', totals))
-        out.write('\\hline\n\\end{tabular}\n')
-
-if __name__ == '__main__':
-    main()
diff --git a/scripts/performance/cleanup.bash b/scripts/performance/cleanup.bash
deleted file mode 100644
--- a/scripts/performance/cleanup.bash
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-SCRIPT_DIR=`dirname $0`;
-SCRIPT_LOGS="$SCRIPT_DIR/logs";
-FAILURES_OCCURRED=false;
-
-function notify_if_failed {
-    local EXIT_CODE=$?;
-    if [ $EXIT_CODE != 0 ]
-    then
-        echo $1;
-        echo "Exit code was: $EXIT_CODE";
-        $FAILURES_OCCURRED=true;
-    fi
-}
-
-echo "Deleting $SCRIPT_LOGS...";
-rm -rf $SCRIPT_LOGS;
-notify_if_failed "Failed to delete $SCRIPT_LOGS...";
-
-if [ $FAILURES_OCCURRED = true ]
-then
-    echo "Cleanup failures occurred, please investigate...";
-else
-    echo "Cleanup completed successfully!";
-fi
diff --git a/scripts/performance/generate.bash b/scripts/performance/generate.bash
deleted file mode 100644
--- a/scripts/performance/generate.bash
+++ /dev/null
@@ -1,248 +0,0 @@
-#!/bin/bash
-
-GIT=`which git`;
-MAKE=`which make`;
-CABAL=`which cabal`;
-ALL_FOUND=true;
-
-SCRIPT_DIR=`dirname $0`;
-
-SCRIPT_LOGS="$SCRIPT_DIR/logs";
-SCRIPT_REPO="$SCRIPT_LOGS/repository";
-SCRIPT_FIXPOINT="$SCRIPT_REPO/liquid-fixpoint";
-REPO_TEST="$SCRIPT_REPO/dist/build/test/test";
-REPO_TEST_ARGS=" --timeout 10m";
-REPO_LOG="$SCRIPT_REPO/tests/logs/cur/summary.csv";
-
-ALL_GIT_TAGS="$GIT show-ref --tags | grep liquidhaskell | cut -c -40";
-ALL_GIT_HASHES="$GIT log --format=%H";
-
-START=0;
-END=0;
-FORCE=false;
-MAX_LOGS=-1;
-DONE_LOGS=0;
-
-START_FOUND=false;
-END_FOUND=false;
-
-function refresh_repo {
-    cd $SCRIPT_REPO;
-    abort_if_failed "Couldn't change to $SCRIPT_REPO...";
-
-    $GIT pull origin master;
-
-    if [ $END != 0 ]
-    then
-        $GIT checkout master;
-        $GIT submodule update;
-    fi
-
-    abort_if_failed "Couldn't pull Liquid Haskell from remote...";
-
-    $GIT reset;
-    abort_if_failed "Couldn't reset the the liquid-haskell repository...";
-
-    $GIT checkout .;
-    abort_if_failed "Couldn't discard changes to liquid-haskell...";
-
-    $GIT submodule foreach 'git reset ; git checkout . ;';
-    abort_if_failed "Couldn't reset and discard changes to submodules...";
-}
-
-function generate_log {
-    local HASH=$1;
-    local RESULT=$SCRIPT_LOGS/$HASH.csv;
-    local SHOULD_GEN=true;
-
-    if [ -e $RESULT ]
-    then
-        if [ $FORCE = false ]
-        then
-            SHOULD_GEN=false;
-        fi
-    fi
-
-    if [ $SHOULD_GEN = true ]
-    then
-        DONE_LOGS=`expr $DONE_LOGS + 1`
-        $GIT checkout $HASH;
-        $GIT submodule update;
-        $MAKE clean;
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-
-        rm -rf .cabal-sandbox;
-        rm cabal.sandbox.config;
-
-        $CABAL sandbox init;
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-
-        $CABAL sandbox add-source $SCRIPT_FIXPOINT;
-
-        $CABAL install --enable-tests;
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-
-        $CABAL configure --enable-tests --disable-library-profiling -O2;
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-
-        $CABAL build;
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-
-        $CABAL exec $REPO_TEST -- $REPO_TEST_ARGS;
-        # Not testing for failure; failed tests shouldn't prevent the site from
-        # being generated.
-
-        cp $REPO_LOG $RESULT
-        if [ $? != 0 ]
-        then
-            return 1;
-        fi
-    fi
-
-    return 0;
-}
-
-function abort_if_failed {
-    local EXIT_CODE=$?;
-    if [ $EXIT_CODE != 0 ]
-    then
-        echo $1;
-        exit $EXIT_CODE;
-    fi
-}
-
-function usage {
-    echo "$0 -s [START HASH] -e [END HASH] -f -n [MAX LOGS TO GENERATE]"
-    echo "   -s - hash to start generating logs at";
-    echo "   -e - hash to end generating logs at";
-    echo "   -f - If passed, will force re-creation of all logs. This will take an extremely long time!";
-    echo "   -n - Only generate n logs (useful for cron jobs and such)"
-    exit 1;
-}
-
-# Get options
-
-while getopts ":s:e:n:f" OPT; do
-    case $OPT in
-        s)
-            START=$OPTARG;;
-        e)
-            END=$OPTARG;;
-        f)
-            FORCE=true;;
-        n)
-            MAX_LOGS=$OPTARG;;
-        *)
-            usage;;
-    esac
-done
-
-# Check dependencies
-
-if [ $GIT = "" ]
-then
-    echo "Git not found...";
-    ALL_FOUND=false;
-fi
-
-if [ $MAKE = "" ]
-then
-    echo "Make not found...";
-    ALL_FOUND=false;
-fi
-
-if [ $CABAL = "" ]
-then
-    echo "Cabal not found...";
-    ALL_FOUND=false;
-else
-    cabal sandbox --help &> /dev/null;
-    if [ $? != 0 ]
-    then
-        echo "Cabal sandboxes not supported...";
-        CABAL_VER=`cabal --numeric-version`;
-        echo "Found Cabal version: $CABAL_VER, need 1.18 or greater..."
-        ALL_FOUND=false;
-    fi
-fi
-
-if [ $ALL_FOUND = true ]
-then
-    echo "All dependencies met...";
-else
-    echo "Some dependencies are unmet...";
-    exit 1;
-fi
-
-$CABAL update;
-abort_if_failed "Couldn't perform cabal update...";
-
-# generate logs
-
-if [ ! -e $SCRIPT_LOGS ]
-then
-    mkdir $SCRIPT_LOGS;
-    abort_if_failed "$SCRIPT_LOGS doesn't exist and couldn't be created...";
-fi
-
-# Refresh the repo prior to working
-refresh_repo;
-
-if [ $END = 0 ]
-then
-    END_FOUND=true;
-fi
-
-for CURR in `$ALL_GIT_HASHES`
-do
-    if [ $START_FOUND = false ]
-    then
-        if [ $END_FOUND = false ]
-        then
-            if [ $CURR = $END ]
-            then
-                END_FOUND=true;
-            fi
-        fi
-
-        if [ $END_FOUND = true ]
-        then
-            echo "Processing: $CURR";
-            generate_log $CURR;
-        fi
-
-        if [ ! $? = 0 ]
-        then
-            echo "Log generation for $CURR failed...";
-        fi
-
-        if [ $CURR = $START ]
-        then
-            START_FOUND=true;
-        fi
-
-        if [ $MAX_LOGS = $DONE_LOGS  ]
-        then
-            START_FOUND=true;
-        fi
-
-        rm -rf /tmp/ghc*;
-        rm -rf /tmp/cabal*;
-    fi
-
-done
diff --git a/scripts/performance/initialize.bash b/scripts/performance/initialize.bash
deleted file mode 100644
--- a/scripts/performance/initialize.bash
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/bin/bash
-
-GIT=`which git`;
-CABAL=`which cabal`;
-GHC=`which ghc`;
-ALL_FOUND=true;
-
-SCRIPT_DIR=`dirname $0`;
-SCRIPT_LOGS="$SCRIPT_DIR/logs";
-SCRIPT_REPO="$SCRIPT_LOGS/repository";
-
-LIQUID_URL="https://github.com/ucsd-progsys/liquidhaskell.git";
-
-function abort_if_failed {
-    local EXIT_CODE=$?;
-    if [ $EXIT_CODE != 0 ]
-    then
-        echo $1;
-        exit $EXIT_CODE;
-    fi
-}
-
-# Check dependencies
-
-if [ $GIT = "" ]
-then
-    echo "Git not found...";
-    ALL_FOUND=false;
-fi
-
-if [ $CABAL = "" ]
-then
-    echo "Cabal not found...";
-    ALL_FOUND=false;
-else
-    cabal sandbox --help &> /dev/null;
-    if [ $? != 0 ]
-    then
-        echo "Cabal sandboxes not supported...";
-        CABAL_VER=`cabal --numeric-version`;
-        echo "Found Cabal version: $CABAL_VER, need 1.18 or greater..."
-        ALL_FOUND=false;
-    fi
-fi
-
-if [ $GHC = "" ]
-then
-    echo "GHC not found...";
-    ALL_FOUND=false;
-fi
-
-if [ $ALL_FOUND = true ]
-then
-    echo "All dependencies met...";
-else
-    echo "Some dependencies are unmet...";
-    exit 1;
-fi
-
-if [ -e $SCRIPT_LOGS ]
-then
-    echo "$SCRIPT_LOGS already exists, aborting..."
-    exit 1;
-fi
-
-# clone repos
-
-$GIT clone $LIQUID_URL $SCRIPT_REPO
-abort_if_failed "Unable to clone Liquid Haskell...";
-
-cd $SCRIPT_REPO;
-abort_if_failed "Unable to change to $SCRIPT_REPO...";
-
-$GIT submodule update --init;
-abort_if_failed "Unable to initialize the git submodules...";
-
-echo "Initialization completed successfully!";
diff --git a/scripts/plot-benchmarks/README.md b/scripts/plot-benchmarks/README.md
deleted file mode 100644
--- a/scripts/plot-benchmarks/README.md
+++ /dev/null
@@ -1,51 +0,0 @@
-Plot-Benchmarks
-===============
-
-Overview
---------
-
-Plot-Benchmarks is a tool designed to ingest a directory full of LiquidHaskell test suite logs and generate graphs of performance data over time.
-
-Usage
------
-
-```
-  -l --logdir=ITEM            The directory that contains the logs
-  -o --outputdir=ITEM         The diretory to output graphs to
-     --plotcompare=ITEM,ITEM  Pairs of benchmarks to compare
-     --plot=ITEM              Benchmarks to plot
-  -? --help                   Display help message
-  -V --version                Print version information
-     --numeric-version        Print just the version number
-```
-
-* `logdir`: The directory that contains log files to be considered. Defaults to the current directory (`./`).
-
-* `outputdir`: The directory to write resulting graphs to. Defaults to the current directory (`./`).
-
-* `plot`: A benchmark to plot. This is drawn from the first column of the LiquidHaskell log file and takes the form of `/intermediate/suite/container/TestFile.hs`. For each benchmark, one .svg file will be produced in the output directory.
-
-* `plotcompare`: Two benchmarks to plot against each other. This is drawn from the first column of the LiquidHaskell log file and takes the form of `/intermediate/suite/container/TestFileLHS.hs,/some/other/suite/TestFileRHS.hs`. For each pair of benchmarks, one .svg file will be produced in the output directory.
-
-Prerequisites
--------------
-
-This program relies on a special header being present in the test suite output. This header is implemented in the master branch as of commit `29d72f62fd7f2d90574ad0d587185101ad960b23`. For any log file created prior to this commit, the following header can be prepended to the log file:
-
-```
-Epoch Timestamp: 1454554725
---------------------------------------------------------------------------------
-```
-
-This timestamp is required for plot-benchmarks to properly order each log. This time should be the *commiter* date of the git commit. An appropriate timestamp will be produced by git using the following command: `git show --format="%ct" --quiet`
-
-Examples
---------
-
-* `plot-benchmarks --plot Tests/Unit/pos/PointDist.hs --plotcompare Tests/Unit/pos/vector0.hs,Tests/Unit/neg/vector0.hs`
-
-This will produce two .svg files in the current directory: one that plots the results of `Tests/Unit/pos/PointDist.hs`, and one that plots both `Tests/Unit/pos/vector0.hs` and `Tests/Unit/neg/vector0.hs`.
-
-* `plot-benchmarks --logdir /tmp --plot Tests/Unit/pos/PointDist.hs --outputdir /tmp/results`
-
-This will read log data from `/tmp` and create one .svg file for `Tests/Unit/pos/PointDist.hs` in `/tmp/results`
diff --git a/scripts/plot-benchmarks/Setup.hs b/scripts/plot-benchmarks/Setup.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/Setup.hs
+++ /dev/null
@@ -1,2 +0,0 @@
-import Distribution.Simple
-main = defaultMain
diff --git a/scripts/plot-benchmarks/plot-benchmarks.cabal b/scripts/plot-benchmarks/plot-benchmarks.cabal
deleted file mode 100644
--- a/scripts/plot-benchmarks/plot-benchmarks.cabal
+++ /dev/null
@@ -1,36 +0,0 @@
--- Initial plot-benchmarks.cabal generated by cabal init.  For further
--- documentation, see http://haskell.org/cabal/users-guide/
-
-name:                plot-benchmarks
-version:             0.2.0.0
-synopsis:            Plot benchmarks in .csv format over time
-license:             BSD3
-license-file:        ../../LICENSE
-author:              Chris Tetreault
-maintainer:          ctetreau@ucsd.edu
-copyright:           University of California, San Diego.
-category:            Graphics
-build-type:          Simple
--- extra-source-files:
-cabal-version:       >=1.10
-
-executable plot-benchmarks
-  main-is:             Main.hs
-  -- other-modules:
-  -- other-extensions:
-  build-depends:       base
-                     , Chart
-                     , Chart-diagrams 
-                     , cassava
-                     , bytestring 
-                     , vector
-                     , containers 
-                     , time 
-                     , process 
-                     , directory 
-                     , unordered-containers
-                     , colour 
-                     , cmdargs 
-                     , filepath 
-  hs-source-dirs:      src
-  default-language:    Haskell2010
diff --git a/scripts/plot-benchmarks/src/Benchmark.hs b/scripts/plot-benchmarks/src/Benchmark.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/src/Benchmark.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE FlexibleInstances #-}
-
-module Benchmark where
-
-import Data.Csv
-import qualified Data.Map as Map
-import Data.Foldable
-import Data.Time.LocalTime
-
-data Benchmark =
-   Benchmark { benchName :: String,
-               benchTimestamp :: LocalTime,
-               benchTime :: Double,
-               benchPass :: Bool
-               }
-   deriving (Eq)
-
-instance Ord Benchmark where
-   compare lhs rhs = compare (benchTimestamp lhs) (benchTimestamp rhs)
-
-unionAppend :: Map.Map String [Benchmark]
-               -> Map.Map String Benchmark
-               -> Map.Map String [Benchmark]
-unionAppend l r = Map.unionWith (++) l r'
-   where
-      r' = fmap (\a -> [a]) r
-
-toBenchMap :: (Foldable f)
-              => f Benchmark
-              -> Map.Map String Benchmark
-toBenchMap f = foldl' fn Map.empty f
-   where
-      fn m b = Map.insert (benchName b) b m
-
-instance FromRecord Benchmark where
-   parseRecord r = Benchmark
-                   <$> r .! 0
-                   <*> pure (error ("Shouldn't be evaluated until after"
-                                    ++ " reassignment!"))
-                   <*> r .! 1
-                   <*> do asStr <- r .! 2
-                          return $ read asStr {- Since the test suite
-   generates this field by calling show, this read Should Be Safe (TM) -}
-
-csvOutName = "Name"
-csvOutDate = "Committer Date"
-csvOutTime = "Time (Seconds)"
-csvOutPass = "Success"
-
-instance ToNamedRecord (LocalTime, Benchmark) where
-   toNamedRecord (_, bm) = namedRecord [csvOutName .= benchName bm,
-                                   csvOutDate .= (show $ benchTimestamp bm),
-                                   csvOutTime .= (benchTime bm),
-                                   csvOutPass .= (show $ benchPass bm)]
diff --git a/scripts/plot-benchmarks/src/Config.hs b/scripts/plot-benchmarks/src/Config.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/src/Config.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-
-module Config where
-
-import System.Console.CmdArgs
-import System.Directory
-
-data OutputType =
-   Svg
-   | Csv
-     deriving (Eq, Data, Typeable, Show)
-
-data Config =
-   Config { logDir :: FilePath,
-            outputDir :: FilePath,
-            outputType :: OutputType,
-            plotCompare :: [(String, String)],
-            plot :: [String]
-          } deriving (Eq, Data, Typeable, Show)
-
-pwd :: FilePath
-pwd = "."
-
-instance Default Config where
-   def = Config { logDir = pwd,
-                  outputDir = pwd,
-                  outputType = Csv,
-                  plotCompare = def,
-                  plot = def
-                }
-
-config :: Config
-config = Config
-            { logDir = pwd &= help "The directory that contains the logs",
-              outputDir = pwd &= help "The diretory to output graphs to",
-              outputType = Csv &= help "The type of output to produce",
-              plotCompare = def &= help "Pairs of benchmarks to compare",
-              plot = def &= help "Benchmarks to plot"
-            }
-            &= program "plot-benchmarks"
-            &= summary ("plot-benchmarks - Copyright 2016 Regents of"
-                        ++ "the University of California.")
-            &= details ["Plot LiquidHaskell benchmarks over time"]
-
-getConfig :: IO Config
-getConfig = do
-   conf <- cmdArgs config
-   ld <- makeAbsolute $ logDir conf
-   od <- makeAbsolute $ outputDir conf
-   return $ conf {logDir = ld, outputDir = od}
diff --git a/scripts/plot-benchmarks/src/Main.hs b/scripts/plot-benchmarks/src/Main.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/src/Main.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Main where
-
-import Plot
-import Config
-import Parse
-
-main :: IO ()
-main = do
-   conf <- getConfig
-   case (outputType conf) of
-      Csv -> do
-         csvData <- getAllData
-                       (logDir conf)
-                       (plot conf)
-         dumpLogs
-            (outputDir conf)
-            csvData
-      Svg -> do
-         timeData <- getTimeData
-                        (logDir conf)
-                        (plot conf)
-         plotTimeData
-            (outputDir conf)
-            timeData
-         compareTimeData <- getCompareTimeData
-                               (logDir conf)
-                               (plotCompare conf)
-         plotCompareTimeData
-            (outputDir conf)
-            compareTimeData
diff --git a/scripts/plot-benchmarks/src/Parse.hs b/scripts/plot-benchmarks/src/Parse.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/src/Parse.hs
+++ /dev/null
@@ -1,80 +0,0 @@
-module Parse where
-
-import Benchmark
-import Data.Csv
-import Data.List
-import System.Directory
-import Data.Either
-import qualified Data.Vector as V
-import qualified Data.ByteString.Lazy.Char8 as BS
-import Data.Time.Clock.POSIX
-import Data.Time.LocalTime
-import System.FilePath
-
-gulpLogs :: FilePath -> IO [V.Vector Benchmark]
-gulpLogs f = do
-   conts <- getDirectoryContents f
-   let justCsv = filter (isSuffixOf ".csv") conts
-   let noHidden = filter (\a -> not (isPrefixOf "." a)) justCsv
-   let toGulp = fmap (\a -> f </> a) noHidden
-   logs <- sequence $ fmap parseLog toGulp
-   return $ rights logs
-
-parseLog :: FilePath -> IO (Either String (V.Vector Benchmark))
-parseLog p = do
-   file <- BS.readFile p
-   let (hdr, csv) = splitHeader file delimiter
-   timezone <- getCurrentTimeZone
-   case (getEpochTime hdr) of
-      Nothing -> return $ Left "missing timestamp!"
-      Just ts -> case (decode HasHeader csv) of
-         Right bm ->
-            return $ Right $ fmap
-               (\a -> a {benchTimestamp = utcToLocalTime
-                                             timezone
-                                             $ posixSecondsToUTCTime
-                                               $ realToFrac ts})
-               bm
-
-delimiter :: String
-delimiter = take 80 $ repeat '-'
-
-getEpochTime :: [String] -> Maybe Int
-getEpochTime s = do
-   elm <- find (isPrefixOf "Epoch Timestamp:") s
-   elm' <- stripPrefix "Epoch Timestamp:" elm
-   return (read elm' :: Int)
-
-splitHeader :: BS.ByteString -> String -> ([String], BS.ByteString)
-splitHeader msg delim = (hdr, BS.pack $ unlines csv)
-   where
-      (hdr, csv) = let ((hdrr, csvr), _) = foldl' foldFn initAcc lns in
-         (reverse hdrr, reverse csvr)
-      lns = lines $ BS.unpack msg
-      initAcc = (([],[]), False)
-      foldFn ((ls, rs), True) e = ((ls, e:rs), True)
-      foldFn ((ls, rs), False) e = if e == delim
-                                      then
-                                      ((ls, rs), True)
-                                      else
-                                      ((e:ls, rs), False)
-
-dumpLogs :: FilePath -> [(String, [(LocalTime, Benchmark)])] -> IO ()
-dumpLogs out dps = sequence_ $ fmap dumpLog dps
-   where
-      dumpLog :: (String, [(LocalTime, Benchmark)]) -> IO ()
-      dumpLog (n, dps') = do
-         let n' = specToUscore n
-         let dps'' = encodeByName
-                        (V.fromList [csvOutName,
-                                     csvOutDate,
-                                     csvOutTime,
-                                     csvOutPass])
-                        dps'
-         BS.writeFile (out </> n' ++ ".csv") dps''
-      specToUscore s = fmap mapper s
-         where
-            mapper c = case c of
-               '/' -> '_'
-               '.' -> '_'
-               c' -> c'
diff --git a/scripts/plot-benchmarks/src/Plot.hs b/scripts/plot-benchmarks/src/Plot.hs
deleted file mode 100644
--- a/scripts/plot-benchmarks/src/Plot.hs
+++ /dev/null
@@ -1,161 +0,0 @@
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE FlexibleContexts #-}
-
-module Plot where
-
-import Benchmark
-import Parse
-import qualified Data.Map as Map
-import Data.Foldable
-import Data.List
-import Graphics.Rendering.Chart.Easy
-import Graphics.Rendering.Chart.Backend.Diagrams
-import Data.Time.LocalTime
-import Data.Colour ()
-import Data.Colour.Names ()
-import System.FilePath
-
-fileOptions :: FileOptions
-fileOptions = def-- (def {_fo_size = (1024, 768)} :: FileOptions)
-
-lineColor1 :: AlphaColour Double
-lineColor1 = withOpacity darkred 0.5
-
-pointColor1 :: AlphaColour Double
-pointColor1 = opaque red
-
-lineColor2 :: AlphaColour Double
-lineColor2 = withOpacity darkgreen 0.5
-
-pointColor2 :: AlphaColour Double
-pointColor2 = opaque green
-
-plotData :: (Default r, ToRenderable r)
-            => FilePath
-            -> [(String, [(LocalTime, a)])]
-            -> (String -> [(LocalTime, a)] -> EC r ())
-            -> IO ()
-plotData out dps with = sequence_ $ fmap plotDp dps
-   where
-      plotDp (n, dps') = do
-         let n' = specToUscore n
-         let options = fileOptions
-         toFile options (out </> n' ++ ".svg") $ with n dps'
-      specToUscore s = fmap mapper s
-         where
-            mapper c = case c of
-               '/' -> '_'
-               '.' -> '_'
-               c' -> c'
-
-plotCompareData :: (Default r, ToRenderable r)
-                   => FilePath
-                   -> [((String, [(LocalTime, a)]),(String, [(LocalTime, a)]))]
-                   -> (String
-                       -> String
-                       -> ([(LocalTime, a)],[(LocalTime, a)]) -> EC r ())
-                   -> IO ()
-plotCompareData out dps with = sequence_ $ fmap plotDp dps
-   where
-      plotDp ((ln, ldps'), (rn, rdps')) = do
-         let ln' = specToUscore ln
-         let rn' = specToUscore rn
-         let dps' = (ldps', rdps')
-         let options = fileOptions
-         toFile
-            options
-            (out </> ln' ++ "_vs_" ++ rn' ++ ".svg")
-            $ with ln rn dps'
-      specToUscore s = fmap mapper s
-         where
-            mapper c = case c of
-               '/' -> '_'
-               '.' -> '_'
-               c' -> c'
-
-plotCompareTimeData :: FilePath
-                       -> [((String, [(LocalTime, Double)]),
-                            (String, [(LocalTime, Double)]))]
-                       -> IO ()
-plotCompareTimeData out dps = plotCompareData out dps with
-   where
-      with ln rn (ldps, rdps) = do
-         layoutlr_title .= ln ++ " vs. " ++ rn ++ " Times"
-         setColors [lineColor1, lineColor2, pointColor1, pointColor2]
-         setShapes [PointShapeCircle, PointShapeCircle]
-         plotLeft $ line "" [ldps]
-         plotRight $ line "" [rdps]
-         plotLeft $ points ln ldps
-         plotRight $ points rn rdps
-
-plotTimeData :: FilePath -> [(String, [(LocalTime, Double)])] -> IO ()
-plotTimeData out dps = plotData out dps with
-   where
-      with n' dps' = do
-            layout_title .= n' ++ " Times"
-            setColors [lineColor1, pointColor1]
-            plot $ line "" [dps']
-            plot $ points n' dps'
-
-getCompareData :: ([Benchmark] -> [(LocalTime, a)])
-                  -> FilePath
-                  -> [(String, String)]
-                  -> IO [((String, [(LocalTime, a)]),
-                          (String, [(LocalTime, a)]))]
-getCompareData mapper f bps = sequence $ fmap pairUp bps
-   where
-      pairUp (l, r) = do
-         [l'] <- getData mapper f [l]
-         [r'] <- getData mapper f [r]
-         return (l', r')
-
-getData :: ([Benchmark] -> [(LocalTime, a)])
-                -> FilePath
-                -> [String]
-                -> IO [(String, [(LocalTime, a)])]
-getData mapper f bs = do
-   logs <- gulpLogs f
-   let logMaps = fmap toBenchMap logs
-   let combined = foldl' unionAppend Map.empty logMaps
-   let onlyBs = Map.filterWithKey (\k _ -> k `elem` bs) combined
-   let dataPs = Map.toList $ fmap mapper onlyBs
-   let sorted =  fmap sortMapper dataPs
-   return sorted
-   where
-      comparator (tsl, _) (tsr, _) = compare tsl tsr
-      sortMapper (name, dps) = (name, sortBy comparator dps)
-
-getTimeData :: FilePath -> [String] -> IO [(String, [(LocalTime, Double)])]
-getTimeData = getData timeDataMapper
-
-
-getCompareTimeData :: FilePath
-                   -> [(String, String)]
-                   -> IO [((String, [(LocalTime, Double)]),
-                           (String, [(LocalTime, Double)]))]
-getCompareTimeData = getCompareData timeDataMapper
-
-timeDataMapper :: [Benchmark] -> [(LocalTime, Double)]
-timeDataMapper bs' = [(benchTimestamp x, benchTime x) | x <- bs' ]
-
-
-
-getSuccessData :: FilePath -> [String] -> IO [(String, [(LocalTime, Bool)])]
-getSuccessData = getData mapper
-   where
-      mapper bs' = [(benchTimestamp x, benchPass x) | x <- bs' ]
-
-plotSuccessData :: FilePath -> [(String, [(LocalTime, Bool)])] -> IO ()
-plotSuccessData out dps = plotData out dps with
-   where
-      dps'' v = fmap (\(l, r) -> case r of
-                                  True -> (l, (1 :: Integer))
-                                  False -> (l, 0)) v
-      with n' dps' = do
-         layout_title .= n' ++ " Test Result"
-         plot (line n' [dps'' dps'])
-
-getAllData :: FilePath -> [String] -> IO [(String, [(LocalTime, Benchmark)])]
-getAllData = getData mapper
-   where
-      mapper bs' = [(benchTimestamp x, x) | x <- bs']
diff --git a/scripts/plot-benchmarks/stack.yaml b/scripts/plot-benchmarks/stack.yaml
deleted file mode 100644
--- a/scripts/plot-benchmarks/stack.yaml
+++ /dev/null
@@ -1,11 +0,0 @@
-resolver: lts-4.0
-
-packages:
-- .
-
-extra-deps:
-- Chart-diagrams-1.5.4 
-- SVGFonts-1.5.0.0
-- tuple-0.3.0.2
-- OneTuple-0.2.1
-- lucid-svg-0.5.0.0
diff --git a/scripts/travis b/scripts/travis
deleted file mode 100644
--- a/scripts/travis
+++ /dev/null
@@ -1,162 +0,0 @@
-#!/bin/bash
-
-set -eu
-set -o pipefail
-
-## Helper Functions
-
-function loud {
-  echo "$ $@"
-  $@
-}
-
-function stack {
-  $HOME/.local/bin/stack --no-terminal "$@"
-}
-
-# Source: https://github.com/travis-ci/travis-build/blob/fc4ae8a2ffa1f2b3a2f62533bbc4f8a9be19a8ae/lib/travis/build/script/templates/header.sh#L104-L123
-RED="\033[31;1m"
-GREEN="\033[32;1m"
-RESET="\033[0m"
-function travis_retry {
-  local result=0
-  local count=1
-  while [ $count -le 3 ]; do
-    [ $result -ne 0 ] && {
-      echo -e "\n${RED}The command \"$@\" failed. Retrying, $count of 3.${RESET}\n" >&2
-    }
-    set +e
-    "$@"
-    result=$?
-    set -e
-    [ $result -eq 0 ] && break
-    count=$(($count + 1))
-    sleep 1
-  done
-
-  [ $count -eq 4 ] && {
-    echo "\n${RED}The command \"$@\" failed 3 times.${RESET}\n" >&2
-  }
-
-  return $result
-}
-
-function prevent_timeout {
-  local cmd="$@"
-
-  $cmd &
-  local cmd_pid=$!
-
-  poke_stdout &
-  local poke_pid=$!
-
-  wait $cmd_pid
-  exit_code=$?
-
-  kill $poke_pid
-  (wait $poke_pid 2>/dev/null) || true
-
-  return $exit_code
-}
-
-function poke_stdout {
-  # Print an invisible character every minute
-  while true; do
-    echo -ne "\xE2\x80\x8B"
-    sleep 60
-  done
-}
-
-function pastebin {
-  curl -s -F 'clbin=<-' https://clbin.com
-}
-
-## Setup Stages
-
-function install_smt {
-  local smt="$1"
-
-  mkdir -p "${HOME}/.local/bin"
-  loud curl "http://goto.ucsd.edu/~gridaphobe/$smt" -o "${HOME}/.local/bin/$smt"
-  loud chmod a+x "${HOME}/.local/bin/$smt"
-}
-
-function install_stack {
-  local stack_version="$1"
-
-  mkdir -p "${HOME}/.local/bin"
-  mkdir -p '/tmp/stack'
-
-  pushd '/tmp/stack'
-
-  local dir_name="stack-${stack_version}-x86_64-linux"
-  local archive_name="${dir_name}.tar.gz"
-  local stack_url="https://github.com/commercialhaskell/stack/releases/download/v${stack_version}/${archive_name}"
-
-  loud wget "${stack_url}"
-  loud tar -xzvf "./${archive_name}"
-  loud cp "./${dir_name}/stack" "${HOME}/.local/bin/stack"
-  loud chmod a+x "${HOME}/.local/bin/stack"
-
-  popd
-}
-
-function configure_stack {
-  local ghc_version="$1"
-
-  echo "Configuring stack.yaml for ${ghc_version}..."
-
-  cat << EOF > 'stack.yaml'
-resolver: ${ghc_version}
-
-packages:
-- ./liquid-fixpoint
-- .
-EOF
-
-  loud cat stack.yaml
-}
-
-function setup_ghc {
-  loud stack setup
-  loud stack ghc -- --version
-}
-
-function install_dependencies {
-  echo "Solving dependency constraints..."
-  loud stack update
-  loud stack solver --update-config
-
-  echo "Installing dependencies..."
-  loud stack build liquidhaskell --only-dependencies --test --no-run-tests --no-haddock-deps
-}
-
-## Building & Testing Stages
-
-function do_build {
-  loud stack build liquidhaskell --test --no-run-tests --haddock --no-haddock-deps --flag liquidhaskell:devel
-}
-
-function do_test {
-  local tests="$1"
-  local smt="$2"
-
-  local test_runner="$(stack path --dist-dir)/build/test/test"
-
-  loud prevent_timeout stack exec -- "${test_runner}" --pattern "$tests/" --smtsolver "$smt" -j2 +RTS -N2 -RTS
-}
-
-function dump_fail_logs {
-  find tests/logs/cur -type f -name '*log.fail' -print0 | while IFS= read -r -d $'\0' file; do
-    echo "${file}:"
-    echo "    $(pastebin < "${file}")"
-  done
-}
-
-## Run Test Stage
-
-stage="$1"
-shift
-
-$stage "$@"
-
diff --git a/shell.nix b/shell.nix
deleted file mode 100644
--- a/shell.nix
+++ /dev/null
@@ -1,27 +0,0 @@
-{ nixpkgs ? import <nixpkgs> {}, compiler ? "default", profiling ? false }:
-
-let
-
-  inherit (nixpkgs) pkgs;
-
-  liquid-fixpoint = import ./liquid-fixpoint { inherit (pkgs) fetchgitLocal; };
-  liquiddesugar = import ./liquiddesugar { inherit (pkgs) fetchgitLocal; };
-
-  f = import ./default.nix { inherit (pkgs) fetchgitLocal; };
-
-  haskellPackages = (if compiler == "default"
-                     then pkgs.haskellPackages
-                     else pkgs.haskell.packages.${compiler}
-                    ).override {
-                      overrides = self: super: {
-                        liquid-fixpoint = (self.callPackage liquid-fixpoint { inherit (pkgs) z3; }).overrideDerivation (drv: { doCheck = false; });
-
-                        mkDerivation = drv: super.mkDerivation (drv // { enableLibraryProfiling = profiling; });
-                      };
-                    };
-
-  drv = haskellPackages.callPackage f { inherit (pkgs) z3; };
-
-in
-
-  if pkgs.lib.inNixShell then drv.env else drv
diff --git a/src/LHi.hs b/src/LHi.hs
deleted file mode 100644
--- a/src/LHi.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-{-# LANGUAGE DeriveGeneric #-}
-{-# LANGUAGE OverloadedStrings #-}
-
-import           System.Environment      (getArgs)
-import           System.Daemon
-import           Control.Concurrent.MVar ( newMVar )
-import           Data.Default ( def )
-import           Language.Haskell.Liquid.Interactive.Types
-import qualified Language.Haskell.Liquid.Interactive.Handler as H
-import           Language.Haskell.Liquid.UX.CmdLine (getOpts)
-import           Language.Haskell.Liquid.UX.Config  (port)
-
-daemonName :: String
-daemonName = "lhi0"
-
-main :: IO ()
-main = do
-  st  <- newMVar H.initial
-  cmd <- command
-  ensureDaemonRunning daemonName (options cmd) (H.handler st)
-  res <- client cmd
-  print res
-
-options :: Command -> DaemonOptions
-options cmd = def { daemonPort = port cmd }
-
-client :: Command -> IO (Maybe Response)
-client cmd = runClient "localhost" (port cmd) cmd
-
----------------------------------------------------------------------------------
--- | Parsing Command Line -------------------------------------------------------
----------------------------------------------------------------------------------
-command :: IO Command
--------------------------------------------------------------------------------
-command = getOpts =<< getArgs
diff --git a/src/Language/Haskell/Liquid/Bare/GhcSpec.hs b/src/Language/Haskell/Liquid/Bare/GhcSpec.hs
deleted file mode 100644
--- a/src/Language/Haskell/Liquid/Bare/GhcSpec.hs
+++ /dev/null
@@ -1,592 +0,0 @@
-{-# LANGUAGE FlexibleContexts         #-}
-{-# LANGUAGE NoMonomorphismRestriction #-}
-{-# LANGUAGE RecordWildCards           #-}
-{-# LANGUAGE ViewPatterns              #-}
-
-module Language.Haskell.Liquid.Bare.GhcSpec (
-    GhcSpec(..)
-  , makeGhcSpec
-  ) where
-
--- import Debug.Trace (trace)
-import           Prelude                                    hiding (error)
-import           CoreSyn                                    hiding (Expr)
-import qualified CoreSyn
-import           HscTypes
-import           Id
-import           NameSet
-import           Name
-import           TyCon
-import           Var
-import           TysWiredIn
-import           DataCon                                    (DataCon)
-import           InstEnv
-
-import           Control.Monad.Reader
-import           Control.Monad.State
-import           Data.Bifunctor
-import           Data.Maybe
-
-
-import           Control.Monad.Except                       (catchError)
-import           TypeRep                                    (Type(TyConApp))
-
-import           Text.PrettyPrint.HughesPJ (text)
-
-import qualified Control.Exception                          as Ex
-import qualified Data.List                                  as L
-import qualified Data.HashMap.Strict                        as M
-import qualified Data.HashSet                               as S
-
-import           Language.Fixpoint.Misc                     (thd3, mapSnd)
-import           Language.Fixpoint.Types                    hiding (Error)
-
-import           Language.Haskell.Liquid.Types.Dictionaries
-import           Language.Haskell.Liquid.Misc               (concatMapM)
-import           Language.Haskell.Liquid.GHC.Misc           (dropModuleUnique, dropModuleNames, showPpr, getSourcePosE, getSourcePos, sourcePosSrcSpan, isDataConId)
-import           Language.Haskell.Liquid.Types.PredType     (makeTyConInfo)
-import           Language.Haskell.Liquid.Types.RefType
-import           Language.Haskell.Liquid.Types
-import           Language.Haskell.Liquid.WiredIn
-
-import qualified Language.Haskell.Liquid.Measure            as Ms
-
-import           Language.Haskell.Liquid.Bare.Check
-import           Language.Haskell.Liquid.Bare.DataType
-import           Language.Haskell.Liquid.Bare.Env
-import           Language.Haskell.Liquid.Bare.Existential
-import           Language.Haskell.Liquid.Bare.Measure
-import           Language.Haskell.Liquid.Bare.Axiom
-import           Language.Haskell.Liquid.Bare.Misc          (makeSymbols, mkVarExpr)
-import           Language.Haskell.Liquid.Bare.Plugged
-import           Language.Haskell.Liquid.Bare.RTEnv
-import           Language.Haskell.Liquid.Bare.Spec
-import           Language.Haskell.Liquid.Bare.Expand
-import           Language.Haskell.Liquid.Bare.SymSort
-import           Language.Haskell.Liquid.Bare.Lookup        (lookupGhcTyCon)
-
---------------------------------------------------------------------------------
-makeGhcSpec :: Config
-            -> ModName
-            -> [CoreBind]
-            -> Maybe [ClsInst]
-            -> [Var]
-            -> [Var]
-            -> NameSet
-            -> HscEnv
-            -> Either Error LogicMap
-            -> [(ModName, Ms.BareSpec)]
-            -> IO GhcSpec
---------------------------------------------------------------------------------
-makeGhcSpec cfg name cbs instenv vars defVars exports env lmap specs = do
-  sp <- throwLeft =<< execBare act initEnv
-  let renv = ghcSpecEnv sp
-  throwLeft . checkGhcSpec specs renv $ postProcess cbs renv sp
-  where
-    act       = makeGhcSpec' cfg cbs instenv vars defVars exports specs
-    throwLeft = either Ex.throw return
-    initEnv   = BE name mempty mempty mempty env lmap' mempty mempty axs
-    axs       = initAxSymbols name specs
-    lmap'     = case lmap of { Left e -> Ex.throw e; Right x -> x `mappend` listLMap}
-
-initAxSymbols :: ModName -> [(ModName, Ms.BareSpec)] -> M.HashMap Symbol LocSymbol
-initAxSymbols name = locMap . Ms.axioms . fromMaybe mempty . lookup name
-  where
-    locMap xs      = M.fromList [ (val x, x) | x <- S.toList xs]
-
-listLMap :: LogicMap
-listLMap  = toLogicMap [ (dummyLoc nilName , []     , hNil)
-                       , (dummyLoc consName, [x, xs], hCons (EVar <$> [x, xs])) ]
-  where
-    x     = symbol "x"
-    xs    = symbol "xs"
-    hNil  = mkEApp (dcSym nilDataCon ) []
-    hCons = mkEApp (dcSym consDataCon)
-    dcSym = dummyLoc . dropModuleUnique . symbol
-
-postProcess :: [CoreBind] -> SEnv SortedReft -> GhcSpec -> GhcSpec
-postProcess cbs specEnv sp@(SP {..})
-  = sp { gsTySigs     = mapSnd addTCI <$> sigs
-       , gsInSigs     = mapSnd addTCI <$> insigs
-       , gsAsmSigs    = mapSnd addTCI <$> assms
-       , gsInvariants = mapSnd addTCI <$> gsInvariants
-       , gsLits       = txSort        <$> gsLits
-       , gsMeas       = txSort        <$> gsMeas
-       , gsDicts      = dmapty addTCI'    gsDicts
-       , gsTexprs     = ts
-       }
-  where
-    (sigs,   ts')     = replaceLocBinds gsTySigs  gsTexprs
-    (assms,  ts'')    = replaceLocBinds gsAsmSigs ts'
-    (insigs, ts)      = replaceLocBinds gsInSigs  ts''
-    replaceLocBinds   = replaceLocalBinds allowHO gsTcEmbeds gsTyconEnv specEnv cbs
-    txSort            = mapSnd (addTCI . txRefSort gsTyconEnv gsTcEmbeds)
-    addTCI            = (addTCI' <$>)
-    addTCI'           = addTyConInfo gsTcEmbeds gsTyconEnv
-    allowHO           = higherOrderFlag gsConfig
-
-ghcSpecEnv :: GhcSpec -> SEnv SortedReft
-ghcSpecEnv sp        = fromListSEnv binds
-  where
-    emb              = gsTcEmbeds sp
-    binds            =  [(x,        rSort t) | (x, Loc _ _ t) <- gsMeas sp]
-                     ++ [(symbol v, rSort t) | (v, Loc _ _ t) <- gsCtors sp]
-                     ++ [(x,        vSort v) | (x, v) <- gsFreeSyms sp, isConLikeId v]
-    rSort            = rTypeSortedReft emb
-    vSort            = rSort . varRSort
-    varRSort         :: Var -> RSort
-    varRSort         = ofType . varType
-
-------------------------------------------------------------------------------------------------
-makeGhcSpec' :: Config -> [CoreBind] -> Maybe [ClsInst] -> [Var] -> [Var] -> NameSet -> [(ModName, Ms.BareSpec)] -> BareM GhcSpec
-------------------------------------------------------------------------------------------------
-makeGhcSpec' cfg cbs instenv vars defVars exports specs
-  = do name          <- modName <$> get
-       embs          <- makeNumericInfo instenv <$> (mconcat <$> mapM makeTyConEmbeds specs)
-       xils          <- concatMapM (makeHaskellInlines embs cbs name) specs
-       lmap          <- logic_map . logicEnv <$> get
-       makeRTEnv name xils specs lmap
-       (tycons, datacons, dcSs, recSs, tyi) <- makeGhcSpecCHOP1 cfg specs embs
-       makeBounds embs name defVars cbs specs
-       modify                                   $ \be -> be { tcEnv = tyi }
-       (cls, mts)                              <- second mconcat . unzip . mconcat <$> mapM (makeClasses name cfg vars) specs
-       (measures, cms', ms', cs', xs')         <- makeGhcSpecCHOP2 cbs specs dcSs datacons cls embs
-       (invs, ntys, ialias, sigs, asms)        <- makeGhcSpecCHOP3 cfg vars defVars specs name mts embs
-       quals   <- mconcat <$> mapM makeQualifiers specs
-       syms                                    <- makeSymbols (varInModule name) (vars ++ map fst cs') xs' (sigs ++ asms ++ cs') ms' (map snd invs ++ (snd <$> ialias))
-       let su  = mkSubst [ (x, mkVarExpr v) | (x, v) <- syms]
-       makeGhcSpec0 cfg defVars exports name (emptySpec cfg)
-         >>= makeGhcSpec1 vars defVars embs tyi exports name sigs (recSs ++ asms) cs' ms' cms' su
-         >>= makeGhcSpec2 invs ntys ialias measures su
-         >>= makeGhcSpec3 (datacons ++ cls) tycons embs syms
-         >>= makeSpecDictionaries embs vars specs
-         >>= makeGhcAxioms embs cbs name specs
-         >>= makeExactDataCons name (exactDC cfg) (snd <$> syms)
-         -- This step need the updated logic map, ie should happen AFTER makeGhcAxioms
-         >>= makeGhcSpec4 quals defVars specs name su
-         >>= addProofType
-         >>= addRTEnv
-
-addProofType :: GhcSpec -> BareM GhcSpec
-addProofType spec = do
-  tycon <- (Just <$> lookupGhcTyCon (dummyLoc proofTyConName)) `catchError` (\_ -> return Nothing)
-  return $ spec { gsProofType = (`TyConApp` []) <$> tycon }
-
-addRTEnv :: GhcSpec -> BareM GhcSpec
-addRTEnv spec = do
-  rt <- rtEnv <$> get
-  return $ spec { gsRTAliases = rt }
-
-
-makeExactDataCons :: ModName -> Bool -> [Var] -> GhcSpec -> BareM GhcSpec
-makeExactDataCons n flag vs spec
-  | flag      = return $ spec { gsTySigs = gsTySigs spec ++ xts}
-  | otherwise = return spec
-  where
-    xts       = makeExact <$> filter f vs
-    f v       = isDataConId v && varInModule n v
-
-varInModule :: (Show a, Show a1) => a -> a1 -> Bool
-varInModule n v = L.isPrefixOf (show n) $ show v
-
-makeExact :: Var -> (Var, LocSpecType)
-makeExact x = (x, dummyLoc . fromRTypeRep $ trep{ty_res = res, ty_binds = xs})
-  where
-    t    :: SpecType
-    t    = ofType $ varType x
-    trep = toRTypeRep t
-    xs   = zipWith (\_ i -> (symbol ("x" ++ show i))) (ty_args trep) [1..]
-
-    res  = ty_res trep `strengthen` MkUReft ref mempty mempty
-    vv   = vv_
-    x'   = symbol x --  simpleSymbolVar x
-    ref  = Reft (vv, PAtom Eq (EVar vv) eq)
-    eq   | null (ty_vars trep) && null xs = EVar x'
-         | otherwise = mkEApp (dummyLoc x') (EVar <$> xs)
-
-
-makeGhcAxioms :: TCEmb TyCon -> [CoreBind] -> ModName -> [(ModName, Ms.BareSpec)] -> GhcSpec -> BareM GhcSpec
-makeGhcAxioms tce cbs name bspecs sp = makeAxioms tce cbs sp spec
-  where
-    spec = fromMaybe mempty $ lookup name bspecs
-
-makeAxioms :: TCEmb TyCon -> [CoreBind] -> GhcSpec -> Ms.BareSpec -> BareM GhcSpec
-makeAxioms tce cbs spec sp = do
-  lmap             <- logicEnv <$> get
-  (msA, tysA, asA, smtA) <- L.unzip4 <$> mapM (makeAxiom tce lmap cbs spec sp) (S.toList $ Ms.axioms   sp)
-  (msR, tysR, asR, _   ) <- L.unzip4 <$> mapM (makeAxiom tce lmap cbs spec sp) (S.toList $ Ms.reflects sp)
-  lmap'            <- logicEnv <$> get
-  return $ spec { gsMeas     = msA ++ msR ++ gsMeas     spec
-                , gsAsmSigs  = concat tysA ++ concat tysR ++ gsAsmSigs  spec
-                , gsReflects = concat asA  ++ concat asR  ++ gsReflects spec
-                , gsAxioms   = smtA ++ gsAxioms spec 
-                , gsLogicMap = lmap' }
-
-emptySpec     :: Config -> GhcSpec
-emptySpec cfg = SP
-  { gsTySigs     = mempty
-  , gsAsmSigs    = mempty
-  , gsInSigs     = mempty
-  , gsCtors      = mempty
-  , gsLits       = mempty
-  , gsMeas       = mempty
-  , gsInvariants = mempty
-  , gsIaliases   = mempty
-  , gsDconsP     = mempty
-  , gsTconsP     = mempty
-  , gsFreeSyms   = mempty
-  , gsTcEmbeds   = mempty
-  , gsQualifiers = mempty
-  , gsTgtVars    = mempty
-  , gsDecr       = mempty
-  , gsTexprs     = mempty
-  , gsNewTypes   = mempty
-  , gsLvars      = mempty
-  , gsLazy       = mempty
-  , gsAutoInst   = mempty
-  , gsAutosize   = mempty
-  , gsConfig     = cfg
-  , gsExports    = mempty
-  , gsMeasures   = mempty
-  , gsTyconEnv   = mempty
-  , gsDicts      = mempty
-  , gsAxioms     = mempty
-  , gsReflects   = mempty 
-  , gsLogicMap   = mempty
-  , gsProofType  = Nothing
-  , gsRTAliases  = mempty
-  }
-
-
-
-
-
-
-makeGhcSpec0 :: Config
-             -> [Var]
-             -> NameSet
-             -> ModName
-             -> GhcSpec
-             -> BareM GhcSpec
-makeGhcSpec0 cfg defVars exports name sp
-  = do targetVars <- makeTargetVars name defVars $ checks cfg
-       return      $ sp { gsConfig  = cfg
-                        , gsExports = exports
-                        , gsTgtVars = targetVars }
-
-makeGhcSpec1 :: [Var]
-             -> [Var]
-             -> TCEmb TyCon
-             -> M.HashMap TyCon RTyCon
-             -> NameSet
-             -> ModName
-             -> [(Var,    LocSpecType)]
-             -> [(Var,    LocSpecType)]
-             -> [(Var,    LocSpecType)]
-             -> [(Symbol, Located (RRType Reft))]
-             -> [(Symbol, Located (RRType Reft))]
-             -> Subst
-             -> GhcSpec
-             -> BareM GhcSpec
-makeGhcSpec1 vars defVars embs tyi exports name sigs asms cs' ms' cms' su sp
-  = do tySigs      <- makePluggedSigs name embs tyi exports $ tx sigs
-       asmSigs     <- makePluggedAsmSigs embs tyi $ tx asms
-       ctors       <- makePluggedAsmSigs embs tyi $ tx cs'
-       return $ sp { gsTySigs   = filter (\(v,_) -> v `elem` vs) tySigs
-                   , gsAsmSigs  = filter (\(v,_) -> v `elem` vs) asmSigs
-                   , gsCtors    = filter (\(v,_) -> v `elem` vs) ctors
-                   , gsMeas     = measSyms
-                   , gsLits     = measSyms -- RJ: we will be adding *more* things to `meas` but not `lits`
-                   }
-    where
-      tx       = fmap . mapSnd . subst $ su
-      tx'      = fmap (mapSnd $ fmap uRType)
-      vs       = vars ++ defVars
-      measSyms = tx' $ tx $ ms' ++ varMeasures vars ++ cms'
-
-makeGhcSpec2 :: Monad m
-             => [(Maybe Var  , LocSpecType)]
-             -> [(TyCon      , LocSpecType)]
-             -> [(LocSpecType, LocSpecType)]
-             -> MSpec SpecType DataCon
-             -> Subst
-             -> GhcSpec
-             -> m GhcSpec
-makeGhcSpec2 invs ntys ialias measures su sp
-  = return $ sp { gsInvariants = mapSnd (subst su) <$> invs
-                , gsNewTypes   = mapSnd (subst su) <$> ntys
-                , gsIaliases   = subst su ialias
-                , gsMeasures   = subst su
-                                 <$> M.elems (Ms.measMap measures)
-                                  ++ Ms.imeas measures
-                }
-
-makeGhcSpec3 :: [(DataCon, DataConP)] -> [(TyCon, TyConP)] -> TCEmb TyCon -> [(t, Var)] -> GhcSpec -> BareM GhcSpec
-makeGhcSpec3 datacons tycons embs syms sp = do
-  tcEnv  <- tcEnv    <$> get
-  return  $ sp { gsTyconEnv = tcEnv
-               , gsDconsP   = datacons -- dcons'
-               , gsTconsP   = tycons
-               , gsTcEmbeds = embs
-               , gsFreeSyms = [(symbol v, v) | (_, v) <- syms]
-               }
-
-makeGhcSpec4 :: [Qualifier]
-             -> [Var]
-             -> [(ModName, Ms.Spec ty bndr)]
-             -> ModName
-             -> Subst
-             -> GhcSpec
-             -> BareM GhcSpec
-makeGhcSpec4 quals defVars specs name su sp
-  = do decr'   <- mconcat <$> mapM (makeHints defVars . snd) specs
-       gsTexprs' <- mconcat <$> mapM (makeTExpr defVars . snd) specs
-       lazies  <- mkThing makeLazy
-       autois  <- mkThing makeAutoInsts
-       lvars'  <- mkThing makeLVar
-       defs'   <- mkThing makeDefs
-       addDefs defs'
-       asize'  <- S.fromList <$> makeASize
-       hmeas   <- mkThing makeHMeas
-       hinls   <- mkThing makeHInlines
-       mapM_ (\(v, s) -> insertAxiom (val v) (val s)) $ S.toList hmeas
-       mapM_ (\(v, s) -> insertAxiom (val v) (val s)) $ S.toList hinls
-       mapM_ insertHMeasLogicEnv $ S.toList hmeas
-       mapM_ insertHMeasLogicEnv $ S.toList hinls
-       lmap'       <- logicEnv <$> get
-       isgs        <- expand $ strengthenHaskellInlines  (S.map fst hinls) (gsTySigs sp)
-       gsTySigs'   <- expand $ strengthenHaskellMeasures (S.map fst hmeas) isgs
-       gsMeasures' <- expand $ gsMeasures   sp
-       gsAsmSigs'  <- expand $ gsAsmSigs    sp
-       gsInSigs'   <- expand $ gsInSigs     sp
-       gsInvarnts' <- expand $ gsInvariants sp
-       gsCtors'    <- expand $ gsCtors      sp
-       gsIaliases' <- expand $ gsIaliases   sp
-       gsDconsP'   <- expand $ gsDconsP     sp
-       return   $ sp { gsQualifiers = subst su quals
-                     , gsDecr       = decr'
-                     , gsLvars      = lvars'
-                     , gsAutoInst   = M.fromList $ S.toList autois
-                     , gsAutosize   = asize'
-                     , gsLazy       = S.insert dictionaryVar lazies
-                     , gsLogicMap   = lmap'
-                     , gsTySigs     = gsTySigs'
-                     , gsTexprs     = gsTexprs'
-                     , gsMeasures   = gsMeasures'
-                     , gsAsmSigs    = gsAsmSigs'
-                     , gsInSigs     = gsInSigs'
-                     , gsInvariants = gsInvarnts'
-                     , gsCtors      = gsCtors'
-                     , gsIaliases   = gsIaliases'
-                     , gsDconsP     = gsDconsP'
-                     }
-    where
-       mkThing mk = S.fromList . mconcat <$> sequence [ mk defVars s | (m, s) <- specs, m == name ]
-       makeASize  = mapM lookupGhcTyCon [v | (m, s) <- specs, m == name, v <- S.toList (Ms.autosize s)]
-
-insertHMeasLogicEnv :: (Located Var, LocSymbol) -> BareM ()
-insertHMeasLogicEnv (x, s)
-  | isBool res
-  = insertLogicEnv "insertHMeasLogicENV" s (fst <$> vxs) $ mkProp $ mkEApp s ((EVar . fst) <$> vxs)
-  where
-    rep = toRTypeRep  t
-    res = ty_res rep
-    xs  = intSymbol (symbol ("x" :: String)) <$> [1..length $ ty_binds rep]
-    vxs = dropWhile (isClassType.snd) $ zip xs (ty_args rep)
-    t   = (ofType $ varType $ val x) :: SpecType
-insertHMeasLogicEnv _
-  = return ()
-
-makeGhcSpecCHOP1
-  :: Config -> [(ModName,Ms.Spec ty bndr)] -> TCEmb TyCon
-  -> BareM ( [(TyCon,TyConP)]
-           , [(DataCon,DataConP)]
-           , [Measure SpecType DataCon]
-           , [(Var, Located SpecType)]
-           , M.HashMap TyCon RTyCon     )
-makeGhcSpecCHOP1 cfg specs embs = do
-  (tcs, dcs)      <- mconcat <$> mapM makeConTypes specs
-  let tycons       = tcs        ++ wiredTyCons
-  let tyi          = makeTyConInfo tycons
-  datacons        <- makePluggedDataCons embs tyi (concat dcs ++ wiredDataCons)
-  let dcSelectors  = concatMap (makeMeasureSelectors (exactDC cfg) (not $ noMeasureFields cfg)) datacons
-  recSels         <- makeRecordSelectorSigs datacons
-  return             (tycons, second val <$> datacons, dcSelectors, recSels, tyi)
-
-makeGhcSpecCHOP3 :: Config -> [Var] -> [Var] -> [(ModName, Ms.BareSpec)]
-                 -> ModName -> [(ModName, Var, LocSpecType)]
-                 -> TCEmb TyCon
-                 -> BareM ( [(Maybe Var, LocSpecType)]
-                          , [(TyCon, LocSpecType)]
-                          , [(LocSpecType, LocSpecType)]
-                          , [(Var, LocSpecType)]
-                          , [(Var, LocSpecType)] )
-makeGhcSpecCHOP3 cfg vars defVars specs name mts embs
-  = do sigs'    <- mconcat <$> mapM (makeAssertSpec name cfg vars defVars) specs
-       asms'    <- mconcat <$> mapM (makeAssumeSpec name cfg vars defVars) specs
-       invs     <- mconcat <$> mapM makeInvariants specs
-       ialias   <- mconcat <$> mapM makeIAliases   specs
-       ntys     <- mconcat <$> mapM makeNewTypes   specs
-       let dms   = makeDefaultMethods vars mts
-       tyi      <- gets tcEnv
-       let sigs  = [ (x, txRefSort tyi embs $ fmap txExpToBind t) | (_, x, t) <- sigs' ++ mts ++ dms ]
-       let asms  = [ (x, txRefSort tyi embs $ fmap txExpToBind t) | (_, x, t) <- asms' ]
-       let hms   = concatMap (S.toList . Ms.hmeas . snd) (filter ((==name) . fst) specs)
-       let minvs = makeMeasureInvariants sigs hms
-       return     (invs ++ minvs, ntys, ialias, sigs, asms)
-
-
-symbol' :: Var -> Symbol
-symbol' = dropModuleNames . symbol . getName
-
-makeMeasureInvariants :: [(Var, LocSpecType)] -> [LocSymbol] -> [(Maybe Var, LocSpecType)]
-makeMeasureInvariants sigs xs = measureTypeToInv <$> [(x, (y, ty)) | x <- xs, (y, ty) <- sigs, val x == symbol' y]
-
-measureTypeToInv :: (LocSymbol, (Var, LocSpecType)) -> (Maybe Var, LocSpecType)
-measureTypeToInv (x, (v, t)) = (Just v, t {val = mtype})
-  where
-    trep = toRTypeRep $ val t
-    ts   = ty_args trep
-    mtype
-      | isBool $ ty_res trep
-      = uError $ ErrHMeas (sourcePosSrcSpan $ loc t) (pprint x)
-                          (text "Specification of boolean measures is not allowed")
-{-
-      | [tx] <- ts, not (isTauto tx)
-      = uError $ ErrHMeas (sourcePosSrcSpan $ loc t) (pprint x)
-                          (text "Measures' types cannot have preconditions")
--}
-      | [tx] <- ts
-      = mkInvariant (head $ ty_binds trep) tx $ ty_res trep
-      | otherwise
-      = uError $ ErrHMeas (sourcePosSrcSpan $ loc t) (pprint x)
-                          (text "Measures has more than one arguments")
-
-
-    mkInvariant :: Symbol -> SpecType -> SpecType -> SpecType
-    mkInvariant z t tr = strengthen (top <$> t) (MkUReft reft mempty mempty)
-      where
-        Reft (v, p) = toReft $ fromMaybe mempty $ stripRTypeBase tr
-        su    = mkSubst [(v, mkEApp x [EVar v])]
-        reft  = Reft (v, subst su p')
-
-        p'    = pAnd $ filter (\e -> z `notElem` syms e) $ conjuncts p
-
-makeGhcSpecCHOP2 :: [CoreBind]
-                 -> [(ModName, Ms.BareSpec)]
-                 -> [Measure SpecType DataCon]
-                 -> [(DataCon, DataConP)]
-                 -> [(DataCon, DataConP)]
-                 -> TCEmb TyCon
-                 -> BareM ( MSpec SpecType DataCon
-                          , [(Symbol, Located (RRType Reft))]
-                          , [(Symbol, Located (RRType Reft))]
-                          , [(Var,    LocSpecType)]
-                          , [Symbol] )
-makeGhcSpecCHOP2 cbs specs dcSelectors datacons cls embs
-  = do measures'   <- mconcat <$> mapM makeMeasureSpec specs
-       tyi         <- gets tcEnv
-       name        <- gets modName
-       hmeans      <- mapM (makeHaskellMeasures embs cbs name) specs
-       let measures = mconcat (measures':Ms.mkMSpec' dcSelectors:hmeans)
-       let (cs, ms) = makeMeasureSpec' measures
-       let cms      = makeClassMeasureSpec measures
-       let cms'     = [ (x, Loc l l' $ cSort t) | (Loc l l' x, t) <- cms ]
-       let ms'      = [ (x, Loc l l' t) | (Loc l l' x, t) <- ms, isNothing $ lookup x cms' ]
-       let cs'      = [ (v, txRefSort' v tyi embs t) | (v, t) <- meetDataConSpec cs (datacons ++ cls)]
-       let xs'      = val . fst <$> ms
-       return (measures, cms', ms', cs', xs')
-
-txRefSort' :: NamedThing a => a -> TCEnv -> TCEmb TyCon -> SpecType -> LocSpecType
-txRefSort' v tyi embs t = txRefSort tyi embs (atLoc' v t)
-
-atLoc' :: NamedThing a1 => a1 -> a -> Located a
-atLoc' v = Loc (getSourcePos v) (getSourcePosE v)
-
-data ReplaceEnv = RE { _re_env  :: M.HashMap Symbol Symbol
-                     , _re_fenv :: SEnv SortedReft
-                     , _re_emb  :: TCEmb TyCon
-                     , _re_tyi  :: M.HashMap TyCon RTyCon
-                     }
-
-type ReplaceState = ( M.HashMap Var LocSpecType
-                    , M.HashMap Var [Located Expr]
-                    )
-
-type ReplaceM = ReaderT ReplaceEnv (State ReplaceState)
-
--- RJ: WHAT DOES THIS FUNCTION DO?!!!!
-replaceLocalBinds :: Bool
-                  -> TCEmb TyCon
-                  -> M.HashMap TyCon RTyCon
-                  -> SEnv SortedReft
-                  -> CoreProgram
-                  -> [(Var, LocSpecType)]
-                  -> [(Var, [Located Expr])]
-                  -> ([(Var, LocSpecType)], [(Var, [Located Expr])])
-replaceLocalBinds allowHO emb tyi senv cbs sigs texprs
-  = (M.toList s, M.toList t)
-  where
-    (s, t) = execState (runReaderT (mapM_ (\x -> traverseBinds allowHO x (return ())) cbs)
-                                   (RE M.empty senv emb tyi))
-                       (M.fromList sigs, M.fromList texprs)
-
-traverseExprs :: Bool -> CoreSyn.Expr Var -> ReplaceM ()
-traverseExprs allowHO (Let b e)
-  = traverseBinds allowHO b (traverseExprs allowHO e)
-traverseExprs allowHO (Lam b e)
-  = withExtendedEnv allowHO [b] (traverseExprs allowHO e)
-traverseExprs allowHO (App x y)
-  = traverseExprs allowHO x >> traverseExprs allowHO y
-traverseExprs allowHO (Case e _ _ as)
-  = traverseExprs allowHO e >> mapM_ (traverseExprs allowHO . thd3) as
-traverseExprs allowHO (Cast e _)
-  = traverseExprs allowHO e
-traverseExprs allowHO (Tick _ e)
-  = traverseExprs allowHO e
-traverseExprs _ _
-  = return ()
-
-traverseBinds :: Bool -> Bind Var -> ReplaceM b -> ReplaceM b
-traverseBinds allowHO b k = withExtendedEnv allowHO (bindersOf b) $ do
-  mapM_ (traverseExprs allowHO) (rhssOfBind b)
-  k
-
--- RJ: this function is incomprehensible, what does it do?!
-withExtendedEnv :: Bool -> [Var] -> ReplaceM b -> ReplaceM b
-withExtendedEnv allowHO vs k = do
-  RE env' fenv' emb tyi <- ask
-  let env  = L.foldl' (\m v -> M.insert (varShortSymbol v) (symbol v) m) env' vs
-      fenv = L.foldl' (\m v -> insertSEnv (symbol v) (rTypeSortedReft emb (ofType $ varType v :: RSort)) m) fenv' vs
-  withReaderT (const (RE env fenv emb tyi)) $ do
-    mapM_ (replaceLocalBindsOne allowHO) vs
-    k
-
-varShortSymbol :: Var -> Symbol
-varShortSymbol = symbol . takeWhile (/= '#') . showPpr . getName
-
--- RJ: this function is incomprehensible, what does it do?!
-replaceLocalBindsOne :: Bool -> Var -> ReplaceM ()
-replaceLocalBindsOne allowHO v
-  = do mt <- gets (M.lookup v . fst)
-       case mt of
-         Nothing -> return ()
-         Just (Loc l l' (toRTypeRep -> t@(RTypeRep {..}))) -> do
-           (RE env' fenv emb tyi) <- ask
-           let f m k = M.lookupDefault k k m
-           let (env,args) = L.mapAccumL (\e (v, t) -> (M.insert v v e, substa (f e) t))
-                             env' (zip ty_binds ty_args)
-           let res  = substa (f env) ty_res
-           let t'   = fromRTypeRep $ t { ty_args = args, ty_res = res }
-           let msg  = ErrTySpec (sourcePosSrcSpan l) (pprint v) t'
-           case checkTy allowHO msg emb tyi fenv (Loc l l' t') of
-             Just err -> Ex.throw err
-             Nothing  -> modify (first $ M.insert v (Loc l l' t'))
-           mes <- gets (M.lookup v . snd)
-           case mes of
-             Nothing -> return ()
-             Just es -> do
-               let es'  = substa (f env) es
-               case checkTerminationExpr emb fenv (v, Loc l l' t', es') of
-                 Just err -> Ex.throw err
-                 Nothing  -> modify (second $ M.insert v es')
diff --git a/src/Language/Haskell/Liquid/GHC.hs b/src/Language/Haskell/Liquid/GHC.hs
deleted file mode 100644
--- a/src/Language/Haskell/Liquid/GHC.hs
+++ /dev/null
@@ -1,6 +0,0 @@
--- | This module re-exports the GHC API as a single blob.
-
-module Language.Haskell.Liquid.GHC (module X) where
-
-import Language.Haskell.Liquid.GHC.Interface as X
-import Language.Haskell.Liquid.GHC.Misc      as X
diff --git a/src/Language/Haskell/Liquid/Types/Annotations.hs b/src/Language/Haskell/Liquid/Types/Annotations.hs
deleted file mode 100644
--- a/src/Language/Haskell/Liquid/Types/Annotations.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-{-# LANGUAGE DeriveDataTypeable #-}
-
-module Language.Haskell.Liquid.Types.Annotations (
-  ) where
-
-import Data.Data
-import Data.Typeable
-
-import Language.Haskell.TH.Syntax
-
diff --git a/src/Language/Haskell/Liquid/UX/Server.hs b/src/Language/Haskell/Liquid/UX/Server.hs
deleted file mode 100644
--- a/src/Language/Haskell/Liquid/UX/Server.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-module Language.Haskell.Liquid.UX.Server (getType) where
-
-import           Prelude hiding (error)
-
--- import           Control.Monad ((<<))
-import           Language.Haskell.Liquid.Types (Output(..))
-import qualified Language.Haskell.Liquid.UX.ACSS as A
-import           Text.PrettyPrint.HughesPJ    hiding (Mode)
-import           Language.Fixpoint.Utils.Files
-import           System.Directory
-import           Data.Time.Clock (UTCTime)
-import qualified Control.Exception as Ex
-import           Data.Aeson
-import qualified Data.ByteString.Lazy   as B
-
--- data Time = TimeTodo deriving (Eq, Ord, Show)
-
-getType :: IO (Output Doc) -> FilePath -> Int -> Int -> IO String
-getType k srcF line col = do
-  act <- action srcF
-  case act of
-    Reuse    -> getTypeInfo line col <$>       getAnnMap srcF
-    Rebuild  -> getTypeInfo line col <$> (k >> getAnnMap srcF)
-    NoSource -> return "Missing Source"
-
---------------------------------------------------------------------------------
--- | How to Get Info
---------------------------------------------------------------------------------
-
-data Action = Rebuild | Reuse | NoSource
-
-action :: FilePath -> IO Action
-action srcF = timeAction <$> modificationTime srcF <*> modificationTime jsonF
-  where
-    jsonF   = extFileName Json srcF
-
-timeAction :: Maybe UTCTime -> Maybe UTCTime -> Action
-timeAction (Just srcT) (Just jsonT)
-  | srcT < jsonT  = Reuse
-timeAction (Just _) _ = Rebuild
-timeAction Nothing _  = NoSource
-
-modificationTime :: FilePath -> IO (Maybe UTCTime)
-modificationTime f = (Just <$> getModificationTime f) `Ex.catch` handler
-  where
-    handler :: IOError -> IO (Maybe UTCTime)
-    handler = const (return Nothing)
-
---------------------------------------------------------------------------------
-
-getTypeInfo :: Int -> Int -> Maybe A.AnnMap -> String
-getTypeInfo _ _ Nothing     = "ERROR: corrupt annotation info"
-getTypeInfo l c (Just info) = error "TODO: getTypeInfo"
-
-getAnnMap :: FilePath -> IO (Maybe A.AnnMap)
-getAnnMap srcF = decode <$> B.readFile jsonF
-  where
-    jsonF      = extFileName Json srcF
diff --git a/stack.yaml b/stack.yaml
deleted file mode 100644
--- a/stack.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-resolver: lts-8.9
-
-packages:
-- liquid-fixpoint/
-- '.'
-
-extra-deps:
-- aeson-0.11.3.0
-- csv-table-0.1.0.1
-- dotgen-0.4.2
-- fgl-visualize-0.1.0.1
-- intern-0.9.1.4
-- located-base-0.1.1.0
-
-flags: {}
-
-extra-package-dbs: []
diff --git a/syntax/hsannot.css b/syntax/hsannot.css
deleted file mode 100644
--- a/syntax/hsannot.css
+++ /dev/null
@@ -1,51 +0,0 @@
-
-.hs-keyglyph, .hs-layout {color: red;}
-.hs-keyword {color: blue;}
-.hs-comment, .hs-comment a {color: green;}
-.hs-str, .hs-chr {color: teal;}
-.hs-keyword,.hs-conid, .hs-varid, .hs-conop, .hs-varop, .hs-num, .hs-cpp, .hs-sel, .hs-definition {}
-
-/*
-a.annot{
-    position:relative; 
-    color:#000;
-    text-decoration:none
-  }
-
-a.annot:hover{z-index:25; background-color:#ff0}
-
-a.annot span{display: none}
-
-a.annot:hover span{ 
-    display:block;
-    position:absolute;
-    top:2em; 
-    left:2em; 
-    border:5px solid #b4eeb4; 
-    background-color: #b4eeb4;
-    color:#000;
-    text-align: left 
-  }
-*/
-
-.annot{
-    position:relative; 
-    color:#000;
-    text-decoration:none
-  }
-
-.annot:hover{z-index:25; background-color:#ff0}
-
-.anntitle {display: none}
-
-.annot:hover span{ /*the span will display just on :hover state*/
-    display:block;
-    position:absolute;
-    top:2em; 
-    left:2em; 
-    border:5px solid #b4eeb4; 
-    background-color: #b4eeb4;
-    color:#000;
-    text-align: left 
-  }
-
diff --git a/syntax/hscolour.css b/syntax/hscolour.css
deleted file mode 100644
--- a/syntax/hscolour.css
+++ /dev/null
@@ -1,46 +0,0 @@
-.hs-keyglyph, .hs-layout {color: red;}
-.hs-keyword {color: blue;}
-.hs-comment, .hs-comment a {color: green;}
-.hs-str, .hs-chr {color: teal;}
-.hs-keyword,.hs-conid, .hs-varid, .hs-conop, .hs-varop, .hs-num, .hs-cpp, .hs-sel, .hs-definition {}
-
-a.annot{
-    position:relative; 
-    color:#000;
-    text-decoration:none
-  }
-
-a.annot:hover{z-index:25; background-color:#ff0}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 2px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-/* 
-.classic { padding: 0.8em 1em; }
-.custom { padding: 0.5em 0.8em 0.8em 2em; }
-* html a:hover { background: transparent; }
-.classic {background: #FFFFAA; border: 1px solid #FFAD33; }
-.critical { background: #FFCCAA; border: 1px solid #FF3334;	}
-.help { background: #9FDAEE; border: 1px solid #2BB0D7;	}
-.info { background: #9FDAEE; border: 1px solid #2BB0D7;	}
-.warning { background: #FFFFAA; border: 1px solid #FFAD33; }
-*/
diff --git a/syntax/liquidBody.css b/syntax/liquidBody.css
deleted file mode 100644
--- a/syntax/liquidBody.css
+++ /dev/null
@@ -1,145 +0,0 @@
-html {
-    font-family: "helvetica";
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-/* pygments */
-
-pre {
-	background-color: #f0f0f0;
-	border-top: 1px solid #ccc;
-	border-bottom: 1px solid #ccc;
-	padding: 5px;
-	font-size: 13px;
-	font-family: Bitstream Vera Sans Mono,monospace;
-}
-
-/********************** Links **************************************/
-
-a:hover { 
-  color: black; /* #1d4c77; */
-  /* text-decoration:underline */
-}
-
-
-/********************** General Divs ********************************/
-
-div#navigation {
-    text-align: center;
-    border-bottom: 4px solid black;
-}
-
-div#navigation a {
-    color: white;
-    text-decoration: none;
-    background-color: black;
-    padding: 3px 10px 3px 10px;
-    margin: 0px 10px 0px 10px;
-}
-
-body {
-    width: 700px;
-    /* width: 900px; */
-    margin: 0px auto 0px auto;
-}
-
-div#header {
-    height: 32px;
-    padding: 20px 0px 20px 60px;
-}
-
-div#header img {
-    display: inline;
-    vertical-align: middle;
-}
-
-div#header h1 {
-    padding-left: 10px;
-    display: inline;
-    text-transform: uppercase;
-    vertical-align: middle;
-}
-
-div#main {
-    margin: 0px auto 0px auto;
-    width: 760px;
-}
-
-div#sidebar {
-    margin-right: 30px;
-    width: 160px;
-    float: left;
-    text-align: right;
-}
-
-div#sidebar a {
-    display: block;
-    font-size: 110%;
-    text-decoration: none;
-    margin-bottom: 10px;
-    text-transform: uppercase;
-}
-
-div#content {
-    width: 570px;
-    float: right;
-}
-
-div#footer {
-    padding-top: 30px;
-    clear: both;
-    font-size: 90%;
-    text-align: center;
-}
-
-
-h2 {
-    font-size: 120%;
-    text-transform: uppercase;
-}
-
-h3 {
-    font-size: 100%;
-    text-transform: uppercase;
-}
-
-div.column {
-    width: 50%;
-    float: left;
-}
-
-div.column p {
-    padding-right: 15px;
-}
-
-img {
-    display: block;
-    margin: 10px auto 10px auto;
-    border: none;
-}
-
-ul {
-    list-style-type: square;
-    padding-left: 1em;
-    margin-left: 1em;
-}
-
-
-
-p.caption {
-    display: none;
-}
-
-img {
-  border:0px;
-  margin-left:auto;
-  margin-right:auto;
-  display:block
-}
diff --git a/syntax/liquid_dark_blog.css b/syntax/liquid_dark_blog.css
deleted file mode 100644
--- a/syntax/liquid_dark_blog.css
+++ /dev/null
@@ -1,101 +0,0 @@
-.hs-linenum {
-  color: #666666; //CCCCCC;
-  font-style: italic;
-}
-
-.hs-error {
-  background-color: #B80000 ;
-}
-
-.hs-keyglyph, .hs-layout { /* color: red; */ 
-  color: white;
-}
-
-.hs-keyword {
-  color: #75D075 ; 
-  //font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: #7FFFD4;}
-
-.hs-conid { 
-  color: #00FFFF; 
-  //font-weight: bold; 
-}
-
-.hs-definition { 
-  color: #FFFFFF;   /* #ADFF2F; */
-  // font-weight: bold; 
-}
-
-.hs-varid, .hs-varop {
-  color: white; /* #BDDEFF; */
-}
-
-.hs-num, .hs-conop {
-  color: aquamarine;
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none;
-  white-space: pre; 
-}
-
-// a.annot:hover { 
-//   z-index:25; 
-//   background-color:#585858;
-//   /* background-color:#ff0  */
-// }
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre ;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 9999;
-  margin-left: 5; 
-  padding: 0.8em 1em;
-  border: 3px solid #6495ED ; // #5F9EA0; #FFAD33;
-  background: #EBF5FF; // #C3F6FA  #F7F8FD  #C1CDCD #FFFFAA; 
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  border-radius: 5px 5px;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  font-size: 100%;
-  // color: rgb(255, 255, 255);
-  // background-color: rgb(0, 0, 0);
-  // margin-bottom: 2em;
-  padding: 8px;
-  display: block;
-  overflow: visible; 
-}
-
diff --git a/syntax/liquid_light_blog.css b/syntax/liquid_light_blog.css
deleted file mode 100644
--- a/syntax/liquid_light_blog.css
+++ /dev/null
@@ -1,106 +0,0 @@
-.hs-linenum {
-  color: #CCCCCC;
-  font-style: italic;
-}
-
-
-.hs-error {
-  background-color: #FF8585 ;
-}
-
-.hs-keyglyph {
-  color: #007020
-}
-
-.hs-keyword {
-  color: #007020;
-  // font-weight: bold;
-}
-
-.hs-comment, .hs-comment a {color: green;}
-
-.hs-str, .hs-chr {color: teal;}
-
-.hs-conid { 
-  color: #902000;   /* color: #00FFFF; color: #0E84B5; */
-  //font-weight: bold;  
-}
-
-.hs-definition { 
-  color: #06287E 
-  /* font-weight: bold; */ 
-}
-
-.hs-varid, .hs-varop, .hs-layout {
-  color: black; 
-}
-
-.hs-num {
-  color: #40A070;
-}
-
-.hs-conop {
-  color: #902000; 
-}
-
-.hs-cpp {
-  color: orange;
-}
-
-.hs-sel  {}
-
-a.annot {
-  position:relative; 
-  color:#000;
-  text-decoration:none; 
-  white-space: pre; 
-}
-
-a.annot:hover { 
-  z-index:25; 
-  background-color: #D8D8D8;
-}
-
-a.annot span.annottext{display: none}
-
-a.annot:hover span.annottext{ 
-  
-  border-radius: 5px 5px;
-  
-  -moz-border-radius: 5px; 
-  -webkit-border-radius: 5px; 
-  
-  box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.1); 
-  -webkit-box-shadow: 5px 5px rgba(0, 0, 0, 0.1);
-  -moz-box-shadow: 5px 5px rgba(0, 0, 0, 0.1); 
-
-  white-space:pre;
-  display:block;
-  position: absolute; 
-  left: 1em; top: 2em; 
-  z-index: 99;
-  margin-left: 5; 
-  background: #FFFFAA; 
-  border: 3px solid #FFAD33;
-  padding: 0.8em 1em;
-}
-
-code {
-   /* font-weight: bold; */
-   background-color: rgb(250, 250, 250); 
-   border: 1px solid rgb(200, 200, 200);
-   padding-left: 4px;
-   padding-right: 4px;
-}
-
-pre {
-  background-color: #f0f0f0;
-  border-top: 1px solid #ccc;
-  border-bottom: 1px solid #ccc;
-  padding: 5px;
-  font-size: 120%;
-  // font-family: Bitstream Vera Sans Mono,monospace;
-  display: block;
-  overflow: visible;
-}
-
diff --git a/tests/TestCommits.hs b/tests/TestCommits.hs
deleted file mode 100644
--- a/tests/TestCommits.hs
+++ /dev/null
@@ -1,115 +0,0 @@
-#!/usr/bin/env runhaskell
-
-{- GeneralizedNewtypeDeriving -}
-
-import System.Environment   (getArgs)
-import System.Process       (system)
-import Text.Printf          (printf)
-import Data.List            (isSuffixOf, stripPrefix)
-import Data.Maybe           (fromMaybe)
-
-{- | Run this script as:
-
-     $ ./TestCommit.hs commits.txt
-
-     where commits.txt is a file with a single git commit on each line, OR
-
-     $ ./TestCommit.hs NUMBER
-
-     which will get the last N(UMBER) of commits from the `branch`
-
- -}
-
---------------------------------------------------------------------------------
--- | Configuration parameters
---------------------------------------------------------------------------------
-
-project :: String
-project = "liquidhaskell"
--- project = "liquidhaskell --fast --test-arguments=\"-p Peano\""
-
-branch :: String
-branch = "develop"
-
-tmpFile :: FilePath
-tmpFile = "/tmp/commits"
-
-summaryPath :: FilePath
-summaryPath = "/Users/rjhala/research/stack/lh-test/tests/logs/cur/summary.csv"
-
---------------------------------------------------------------------------------
-main :: IO ()
---------------------------------------------------------------------------------
-main = do
-  p <- strParam . head <$> getArgs
-  case p of
-    File f -> testCommits f
-    Size n -> makeCommits n
-
-makeCommits :: Int -> IO ()
-makeCommits n = do
-  system (genCommand n)
-  putStrLn $ "Wrote commits into: " ++ tmpFile
-
-testCommits :: FilePath -> IO ()
-testCommits f = do
-  is <- readCommits f
-  putStrLn "Generating test summaries for:"
-  mapM_ (putStrLn . ("  " ++)) is
-  runCmd setupCmd
-  mapM_ runCommit is
-  runCmd setupCmd
-
-strParam :: String -> Param
-strParam s
-  | ".txt" `isSuffixOf` s = File s
-  | otherwise             = Size (read s)
-
---------------------------------------------------------------------------------
--- | Types
---------------------------------------------------------------------------------
-data Param = File FilePath
-           | Size Int
-
-type CommitId = String
-type Command  = [String]
-
-
---------------------------------------------------------------------------------
-_commits :: Param -> IO [CommitId]
---------------------------------------------------------------------------------
-_commits (File f) = readCommits f
-_commits (Size n) = system (genCommand n) >> readCommits tmpFile
-
-genCommand :: Int -> String
-genCommand n = printf "git log -n %d --walk-reflogs %s | grep \"commit \" > %s"
-                 n branch tmpFile
-
-readCommits :: FilePath -> IO [CommitId]
-readCommits f = map strCommit . lines <$> readFile f
-
-strCommit :: String -> CommitId
-strCommit s = fromMaybe s (stripPrefix "commit " s)
-
-
---------------------------------------------------------------------------------
-runCommit :: CommitId -> IO ()
---------------------------------------------------------------------------------
-runCommit i = do
-  putStrLn ("Running commit: " ++ i)
-  runCmd (commitCmd i)
-
-runCmd :: Command -> IO ()
-runCmd = mapM_ system
-
-setupCmd :: Command
-setupCmd = [ printf "git checkout %s" branch ]
-
-commitCmd :: CommitId -> Command
-commitCmd i =
-  [ printf "git checkout %s"       i
-  ,        "git submodule update"
-  , printf "stack test %s"         project
-  , printf "cp %s ~/tmp/summary-%s.csv" summaryPath i
-  ]
-
diff --git a/tests/elim/Ackermann0.hs b/tests/elim/Ackermann0.hs
deleted file mode 100644
--- a/tests/elim/Ackermann0.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-
--- | Proving ackermann properties from
--- | http://www.cs.yorku.ca/~gt/papers/Ackermann-function.pdf
-
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-{- LIQUID "--maxparams=5"     @-}
-{-@ LIQUID "--eliminate"       @-}
-{- LIQUID "--scrape-internals" @-}
-
-
-module Ackermann where
-
-import Proves
--- import Helper
-
--- | First ackermann definition
-
-{-@ axiomatize ack @-}
-{-@ ack :: n:Nat -> x:Nat -> Nat / [n, x] @-}
-ack :: Int -> Int -> Int
-ack n x
-  | n == 0
-  = x + 2
-  | x == 0
-  = 2
-  | otherwise
-  = ack (n-1) (ack n (x-1))
-
--- | Second ackermann definition
-
-{-@ axiomatize iack @-}
-{-@ iack :: Nat -> Nat -> Nat -> Nat @-}
-{- measure iack :: Int -> Int -> Int -> Int @-}
-{- iack :: h:Nat -> n:Nat -> x:Nat -> {v:Nat | v == iack h n x && v == if h == 0 then x else ack n (iack (h-1) n x) } @-}
-iack :: Int -> Int -> Int -> Int
-iack h n x
-  = if h == 0 then x else ack n (iack (h-1) n x)
-
--- | Equivalence of definitions
-
-{-@ def_eq :: n:Nat -> x:Nat -> {v:Proof | ack (n+1) x == iack x n 2 }  / [x]@-}
-def_eq :: Int -> Int -> Proof
-def_eq n x
-  = undefined
-
-lemma3_eq :: Int -> Int -> Int -> Proof
-{-@ lemma3_eq :: n:Nat -> x:Nat -> y:{Nat | x <= y} -> {v:Proof | ack n x <= ack n y} / [y] @-}
-lemma3_eq n x y
-  = undefined
-
-
-
--- | Lemma 2.4
-{-@ type Pos = {v:Int | 0 < v } @-}
-
-lemma4 :: Int -> Int -> Proof
-{-@ lemma4 :: x:Pos -> n:Nat -> {v:Proof | ack n x < ack (n+1) x } @-}
-lemma4 x n
-  = undefined
-
-
-lemma4_eq     :: Int -> Int -> Bool
-{-@ lemma4_eq :: n:Nat -> x:Nat -> {v:Bool | ack n x <= ack (n+1) x } @-}
-lemma4_eq n x
-  = undefined
-
-
--- Lemma 2.7
-
-lemma7 :: Int -> Int -> Int -> Bool
-{-@ lemma7 :: h:Nat -> n:Nat -> x:Nat
-           -> {v:Bool | iack h n x <= iack h (n+1) x } @-}
-lemma7 h n x
-  | x == 0 , h == 0
-  = proof $
-     iack 0 n 0 ==! (0 :: Int)
-                ==! iack 0 (n+1) 0
-  | h == 0
-  = proof $
-      iack 0 n x ==! x
-                 ==! iack 0 (n+1) x
-  | h > 0
-  = proof $
-      iack h n x ==! ack n (iack (h-1) n x)
-                 <=! ack (n+1) (iack (h-1) n x)     ? lemma4_eq n (iack (h-1) n x)
-                 <=! ack (n+1) (iack (h-1) (n+1) x) ? (lemma7 (h-1) n x
-                                                     &&& lemma3_eq (n+1) (iack (h-1) n x) (iack (h-1) (n+1) x)
-                                                      )
-                 <=! iack h (n+1) x ? True
diff --git a/tests/elim/Ackermann0_inline.hs b/tests/elim/Ackermann0_inline.hs
deleted file mode 100644
--- a/tests/elim/Ackermann0_inline.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-
--- | Proving ackermann properties from
--- | http://www.cs.yorku.ca/~gt/papers/Ackermann-function.pdf
-
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-{- LIQUID "--maxparams=5"     @-}
-{-@ LIQUID "--eliminate"       @-}
-{- LIQUID "--scrape-internals" @-}
-
-
-module Ackermann where
-
-import Proves
--- import Helper
-
--- | First ackermann definition
-
-{-@ axiomatize ack @-}
-{-@ ack :: n:Nat -> x:Nat -> Nat / [n, x] @-}
-ack :: Int -> Int -> Int
-ack n x
-  | n == 0
-  = x + 2
-  | x == 0
-  = 2
-  | otherwise
-  = ack (n-1) (ack n (x-1))
-
--- | Second ackermann definition
-
-{-@ axiomatize iack @-}
-{-@ iack :: Nat -> Nat -> Nat -> Nat @-}
-{- measure iack :: Int -> Int -> Int -> Int @-}
-{- iack :: h:Nat -> n:Nat -> x:Nat -> {v:Nat | v == iack h n x && v == if h == 0 then x else ack n (iack (h-1) n x) } @-}
-iack :: Int -> Int -> Int -> Int
-iack h n x
-  = if h == 0 then x else ack n (iack (h-1) n x)
-
--- | Equivalence of definitions
-
-{-@ def_eq :: n:Nat -> x:Nat -> {v:Proof | ack (n+1) x == iack x n 2 }  / [x]@-}
-def_eq :: Int -> Int -> Proof
-def_eq n x
-  = undefined
-
-lemma3_eq :: Int -> Int -> Int -> Proof
-{-@ lemma3_eq :: n:Nat -> x:Nat -> y:{Nat | x <= y} -> {v:Proof | ack n x <= ack n y} / [y] @-}
-lemma3_eq n x y
-  = undefined
-
-
-
--- | Lemma 2.4
-{-@ type Pos = {v:Int | 0 < v } @-}
-
-lemma4 :: Int -> Int -> Proof
-{-@ lemma4 :: x:Pos -> n:Nat -> {v:Proof | ack n x < ack (n+1) x } @-}
-lemma4 x n
-  = undefined
-
-
-lemma4_eq     :: Int -> Int -> Bool
-{-@ lemma4_eq :: n:Nat -> x:Nat -> {v:Bool | ack n x <= ack (n+1) x } @-}
-lemma4_eq n x
-  = undefined
-
-
--- Lemma 2.7
-
-lemma7 :: Int -> Int -> Int -> Bool
-{-@ lemma7 :: h:Nat -> n:Nat -> x:Nat
-           -> {v:Bool | iack h n x <= iack h (n+1) x } @-}
-lemma7 h n x
-  | x == 0 , h == 0
-  = proof (
-     iack 0 n 0 ==! (0 :: Int)
-                ==! iack 0 (n+1) 0 )
-  | h == 0
-  = proof (
-      iack 0 n x ==! x
-                 ==! iack 0 (n+1) x )
-  | h > 0
-  = proof (
-      ((
-      iack h n x ==! ack n (iack (h-1) n x)
-                 <=! ack (n+1) (iack (h-1) n x) ) (lemma4_eq n (iack (h-1) n x))
-                 <=! ack (n+1) (iack (h-1) (n+1) x) ) (lemma7 (h-1) n x
-                                                     &&& lemma3_eq (n+1) (iack (h-1) n x) (iack (h-1) (n+1) x)
-                                                      )
-                 <=! iack h (n+1) x )
diff --git a/tests/elim/ElimApply.hs b/tests/elim/ElimApply.hs
deleted file mode 100644
--- a/tests/elim/ElimApply.hs
+++ /dev/null
@@ -1,40 +0,0 @@
--- | A simple depth test for `--eliminate`. The size of the max KInfo depth is
---   about 2x the number of calls to `incr`.
-module ElimMonad (prop) where
-
-{-@ prop :: x:Nat -> {v:Int | v = x + 30} @-}
-prop :: Int -> Int
-prop x = incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr
-       $ incr x
-
-{-@ incr :: dog:Int -> {v:Int | v == dog + 1} @-}
-incr :: Int -> Int
-incr cat = cat + 1
diff --git a/tests/elim/ElimMonad.hs b/tests/elim/ElimMonad.hs
deleted file mode 100644
--- a/tests/elim/ElimMonad.hs
+++ /dev/null
@@ -1,34 +0,0 @@
--- | A simple depth test for `--eliminate`. The size of the max KInfo depth is
---   about 2x the number of calls to `incr`.
-module ElimMonad (prop) where
-
-{-@ prop :: x:Nat -> IO {v:Int | v = x + 22} @-}
-prop :: Int -> IO Int
-prop x = do
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  x <- incr x
-  return x
-
-{-@ incr :: dog:Int -> IO {v:Int | v == dog + 1} @-}
-incr :: Int -> IO Int
-incr cat = return (cat + 1)
diff --git a/tests/elim/ElimMonad00.hs b/tests/elim/ElimMonad00.hs
deleted file mode 100644
--- a/tests/elim/ElimMonad00.hs
+++ /dev/null
@@ -1,20 +0,0 @@
--- | A simple depth test for `--eliminate`. The size of the max KInfo depth is
---   about 2x the number of calls to `incr`.
-module ElimMonad (prop) where
-
-{-@ prop :: x:Nat -> IO {v:Int | v = x + 3} @-}
-prop :: Int -> IO Int
-prop apple = do
-  banana  <- incr apple
-  cherry  <- incr banana
-  falafel <- incr cherry
-  return falafel 
-
-{-@ incr :: dog:Int -> IO {v:Int | v == dog + 1} @-}
-incr :: Int -> IO Int
-incr cat = return (cat + 1)
-
-
-{-@ zonk :: (Monad m) => Nat -> m Nat @-}
-zonk :: (Monad m) => Int -> m Int
-zonk mouse = return (mouse + 1)
diff --git a/tests/elim/ElimMonad2.hs b/tests/elim/ElimMonad2.hs
deleted file mode 100644
--- a/tests/elim/ElimMonad2.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- | A simple depth test for `--eliminate`. The size of the max KInfo depth is
---   about 2x the number of calls to `incr`.
-module ElimMonad (prop) where
-
-{-@ prop :: x:Nat -> IO {v:Int | v = x + 20} @-}
-prop :: Int -> IO Int
-prop x = do
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-  x <- if (x >= 0) then incr x else incr x
-
-  return x
-
-{-@ incr :: dog:Int -> IO {v:Int | v == dog + 1} @-}
-incr :: Int -> IO Int
-incr cat = return (cat + 1)
diff --git a/tests/elim/T658.hs b/tests/elim/T658.hs
deleted file mode 100644
--- a/tests/elim/T658.hs
+++ /dev/null
@@ -1,5 +0,0 @@
--- #658, fails if you comment out test1 (and test2?)
-
-{-@ test3 :: n:Nat -> lst:{ [a] | n < len lst} -> {v : [a] | len v = len lst } @-}
-test3 :: Int -> [a] -> [a]
-test3 n lst = a ++ b where (a, b) = splitAt n lst
diff --git a/tests/elim/fresh1-sel.hs b/tests/elim/fresh1-sel.hs
deleted file mode 100644
--- a/tests/elim/fresh1-sel.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Dummy (foo) where
-
-import GHC.ST (ST, runST)
-
-data Pair a b = Pair {pair1 :: a, pair2 :: b}
-
-{-@ foo :: Int -> Nat @-}
-foo :: Int -> Int
-foo b = y + z
-  where
-    y = pair1 blob
-    z = pair2 blob
-    blob = runST $ do yogurt      <- undefined
-                      (zag, zink) <- thing2 yogurt
-                      oink        <- thing1 zag
-                      return  (Pair oink zink)
-
-{-@ thing2 :: Int -> ST s (Int, Int) @-}
-thing2 :: Int -> ST s (Int, Int)
-thing2 = undefined
-
-{-@ thing1 :: Int -> ST s Int @-}
-thing1 :: Int -> ST s Int
-thing1 = undefined
diff --git a/tests/elim/fresh1.hs b/tests/elim/fresh1.hs
deleted file mode 100644
--- a/tests/elim/fresh1.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module Dummy (foo) where
-
-import GHC.ST (ST, runST)
-
-data Pair a b = Pair a b
-
-{-@ foo :: Int -> Nat @-}
-foo :: Int -> Int
-foo b = y + z
-  where
-    (Pair y z) = runST $ do yogurt      <- undefined
-                            (zag, zink) <- thing2 yogurt
-                            oink        <- thing1 zag
-                            return  (Pair oink zink)
-
-{-@ thing2 :: Int -> ST s (Int, Int) @-}
-thing2 :: Int -> ST s (Int, Int)
-thing2 = undefined
-
-{-@ thing1 :: Int -> ST s Int @-}
-thing1 :: Int -> ST s Int
-thing1 = undefined
diff --git a/tests/elim/fresh2.hs b/tests/elim/fresh2.hs
deleted file mode 100644
--- a/tests/elim/fresh2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Dummy (foo) where
-
-data Pair a b = Pair a b
-
-{-@ foo :: Nat -> Nat -> Nat -> Nat @-}
-foo :: Int -> Int -> Int -> Int
-foo a b c = x + y + z 
-  where
-    Pair x (Pair y z) = runList $ do xiggety <- return (a + 1)
-                                     yogurt  <- return (b + 1)
-                                     zagbert <- return (c + 1)
-                                     return  (Pair xiggety (Pair yogurt zagbert))
-
-runList :: [a] -> a
-runList = undefined
diff --git a/tests/elim/rwr0.hs b/tests/elim/rwr0.hs
deleted file mode 100644
--- a/tests/elim/rwr0.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Foo where
-
-moo :: Int -> Int
-moo n = x + y
-  where
-    (x, y) = (n, n + 1)
diff --git a/tests/elim/tup3-2.hs b/tests/elim/tup3-2.hs
deleted file mode 100644
--- a/tests/elim/tup3-2.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b} 
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z2 -> let y2  = fst t1
-                     y2' = snd t1
-                 in Pair y2 y2') ()
-
-    aga  = fst t2
-
-    maga = snd t2
-
-
diff --git a/tests/elim/tup3-3.hs b/tests/elim/tup3-3.hs
deleted file mode 100644
--- a/tests/elim/tup3-3.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b} 
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z2 -> let y2  = fst t1
-                     y2' = snd t1
-                 in Pair y2 y2') ()
-
-    t3 = (\z3 -> let y3  = fst t2
-                     y3' = snd t2
-                 in Pair y3 y3') ()
-
-    aga  = fst t3
-    maga = snd t3
-
-
diff --git a/tests/elim/tup3-4.hs b/tests/elim/tup3-4.hs
deleted file mode 100644
--- a/tests/elim/tup3-4.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b} 
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z2 -> let y2  = fst t1
-                     y2' = snd t1
-                 in Pair y2 y2') ()
-
-    t3 = (\z3 -> let y3  = fst t2
-                     y3' = snd t2
-                 in Pair y3 y3') ()
-
-    t4 = (\z4 -> let y4  = fst t3
-                     y4' = snd t3
-                 in Pair y4 y4') ()
-
-    aga  = fst t4
-    maga = snd t4
-
-{-
-bar :: Int -> Int
-bar n =
-  let e = (n, (n+1, n+2)) in
-  case e of
-    (x, (y, z)) -> x + y + z
--}
diff --git a/tests/elim/tup3-5.hs b/tests/elim/tup3-5.hs
deleted file mode 100644
--- a/tests/elim/tup3-5.hs
+++ /dev/null
@@ -1,30 +0,0 @@
-module Foo where
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in (y1, y1')) thing
-
-    t2 = (\z2 -> let y2  = fst t1
-                     y2' = snd t1
-                 in (y2, y2')) ()
-
-    t3 = (\z3 -> let y3  = fst t2
-                     y3' = snd t2
-                 in (y3, y3') ) ()
-
-    t4 = (\z4 -> let y4  = fst t3
-                     y4' = snd t3
-                 in (y4, y4')) ()
-
-    t5 = (\z5 -> let y5  = fst t4
-                     y5' = snd t4
-                 in (y5, y5')) ()
-
-    aga  = fst t5
-    maga = snd t5
-
diff --git a/tests/elim/tup3-6.hs b/tests/elim/tup3-6.hs
deleted file mode 100644
--- a/tests/elim/tup3-6.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-module Foo where
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in (y1, y1')) thing
-
-    t2 = (\z2 -> let y2  = fst t1
-                     y2' = snd t1
-                 in (y2, y2')) ()
-
-    t3 = (\z3 -> let y3  = fst t2
-                     y3' = snd t2
-                 in (y3, y3') ) ()
-
-    t4 = (\z4 -> let y4  = fst t3
-                     y4' = snd t3
-                 in (y4, y4')) ()
-
-    t5 = (\z5 -> let y5  = fst t4
-                     y5' = snd t4
-                 in (y5, y5')) ()
-
-    t6 = (\z5 -> let y6  = fst t5
-                     y6' = snd t5
-                 in (y6, y6')) ()
-
-    aga  = fst t6
-    maga = snd t6
-
diff --git a/tests/elim/tup4-1.hs b/tests/elim/tup4-1.hs
deleted file mode 100644
--- a/tests/elim/tup4-1.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    Pair aga maga = t1
diff --git a/tests/elim/tup4-2.hs b/tests/elim/tup4-2.hs
deleted file mode 100644
--- a/tests/elim/tup4-2.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z1 -> case t1 of 
-                   Pair y2 y2' -> Pair y2 y2'
-         ) () 
-
-    Pair aga maga = t2
diff --git a/tests/elim/tup4-3.hs b/tests/elim/tup4-3.hs
deleted file mode 100644
--- a/tests/elim/tup4-3.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z1 -> case t1 of 
-                   Pair y2 y2' -> Pair y2 y2')
-         () 
-
-    t3 = (\z1 -> case t2 of 
-                   Pair y3 y3' -> Pair y3 y3')
-         () 
-
-    Pair aga maga = t3
diff --git a/tests/elim/tup4-4.hs b/tests/elim/tup4-4.hs
deleted file mode 100644
--- a/tests/elim/tup4-4.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z1 -> case t1 of 
-                   Pair y2 y2' -> Pair y2 y2')
-         () 
-
-    t3 = (\z1 -> case t2 of 
-                   Pair y3 y3' -> Pair y3 y3')
-         () 
-
-    t4 = (\z1 -> case t3 of 
-                   Pair y4 y4' -> Pair y4 y4')
-         () 
-
-    Pair aga maga = t6
diff --git a/tests/elim/tup4-5.hs b/tests/elim/tup4-5.hs
deleted file mode 100644
--- a/tests/elim/tup4-5.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z1 -> case t1 of 
-                   Pair y2 y2' -> Pair y2 y2')
-         () 
-
-    t3 = (\z1 -> case t2 of 
-                   Pair y3 y3' -> Pair y3 y3')
-         () 
-
-    t4 = (\z1 -> case t3 of 
-                   Pair y4 y4' -> Pair y4 y4')
-         () 
-
-    t5 = (\z1 -> case t4 of 
-                   Pair y5 y5' -> Pair y5 y5')
-         () 
-
-    Pair aga maga = t6
diff --git a/tests/elim/tup4-6.hs b/tests/elim/tup4-6.hs
deleted file mode 100644
--- a/tests/elim/tup4-6.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Foo where
-
-import Prelude hiding (fst, snd)
-
-data Pair a b = Pair {fst :: a, snd :: b}
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int
-bar thing = aga + maga
-  where
-    t1 = (\z1 -> let mickey = z1
-                     y1      = mickey
-                     y1'     = mickey + 1
-                 in Pair y1 y1') thing
-
-    t2 = (\z1 -> case t1 of 
-                   Pair y2 y2' -> Pair y2 y2')
-         ) () 
-
-    t3 = (\z1 -> case t2 of 
-                   Pair y3 y3' -> Pair y3 y3')
-         ) () 
-
-    t4 = (\z1 -> case t3 of 
-                   Pair y4 y4' -> Pair y4 y4')
-         ) () 
-
-    t5 = (\z1 -> case t4 of 
-                   Pair y5 y5' -> Pair y5 y5')
-         ) () 
-
-    t6 = (\z1 -> case t5 of 
-                   Pair y6 y6' -> Pair y6 y6')
-         ) () 
-
-    Pair aga maga = t6
diff --git a/tests/equationalproofs/neg/Append.hs b/tests/equationalproofs/neg/Append.hs
deleted file mode 100644
--- a/tests/equationalproofs/neg/Append.hs
+++ /dev/null
@@ -1,93 +0,0 @@
-{-
-  A first example in equalional reasoning. 
-  From the definition of append we should be able to 
-  semi-automatically prove the three axioms.
- -}
-
-{-@ LIQUID "--no-termination" @-}
-
-module Append where
-
-data L a = N |  C a (L a) deriving (Eq)
-
-data Proof = Proof 
-
-
-append :: L a -> L a -> L a 
-append N xs        = xs
-append (C y ys) xs = C y (append ys xs) 
-
-
-{- All the followin will be autocatically generated by the definition of append
-  and a liquid annotation
-
-  axiomatize append
-
- -}
-
-{-@ measure append :: L a -> L a -> L a @-}
-{-@ assume append :: xs:L a -> ys:L a -> {v:L a | v == append xs ys } @-}
-
-{-@ assume axiom_append_nil :: xs:L a -> {v:Proof | append N xs == xs} @-} 
-axiom_append_nil :: L a -> Proof 
-axiom_append_nil xs = Proof
-
-{-@ assume axiom_append_cons :: x:a -> xs: L a -> ys: L a 
-          -> {v:Proof | append (C x xs) ys == C x (append xs ys) } @-} 
-axiom_append_cons :: a -> L a -> L a -> Proof 
-axiom_append_cons x xs ys = Proof
-
-
--- | Proof library: 
-
-{-@ toProof :: l:a -> r:{a|l = r} -> {v:Proof | l = r } @-}
-toProof :: a -> a -> Proof
-toProof x y = Proof
-
-{-@ eqProof :: l:a -> r:a -> {v:Proof | l = r} -> {v:a | v = l } @-}
-eqProof :: a -> a -> Proof -> a 
-eqProof x y _ = y 
-
-
-
--- | Proof 1: N is neutral element 
-
-{-@ prop_nil :: xs:L a -> {v:Proof | (append xs N == xs) <=> true } @-}
-prop_nil     :: Eq a => L a -> Proof
-prop_nil N   =  axiom_append_nil N 
-
-prop_nil (C x xs) = toProof e1 $ eqProof e1 (eqProof e2 e3 pr2) pr1
-   where
-   	e1  = append (C x xs) N
-   	pr1 = prop_nil xs
-   	e2  = C x (append xs N)
-   	pr2 = prop_nil xs
-   	e3  = C x xs
-
-
--- | Proof 2: append is associative
-
-
-{-@ prop_assoc :: xs:L a -> ys:L a -> zs:L a
-               -> {v:Proof | (append (append xs ys) zs == append N (append ys zs))} @-}
-prop_assoc :: Eq a => L a -> L a -> L a -> Proof
-prop_assoc N ys zs = toProof (append (append N ys) zs) $
-	                 eqProof (append (append N ys) zs) 
-                    (eqProof (append ys zs) 
-                             (append N (append ys zs))
-                             (axiom_append_nil (append ys zs))
-                    )(axiom_append_nil ys)     
-
-prop_assoc (C x xs) ys zs = 
-	toProof e1 $ 
-	eqProof e1 (eqProof e2 (eqProof e3 (eqProof e4 e5 pr4) pr3) pr2) pr1 
-  where
-  	e1  = append (append (C x xs) ys) zs
-  	pr1 = axiom_append_cons x xs ys
-  	e2  = append (C x (append xs ys)) zs
-  	pr2 = axiom_append_cons x (append xs ys) zs
-  	e3  = C x (append (append xs ys) zs)
-  	pr3 = prop_assoc xs ys zs
-  	e4  = C x (append xs (append ys zs))
-  	pr4 = axiom_append_cons x xs (append ys zs)
-  	e5  = append (C x xs) (append ys zs)
diff --git a/tests/equationalproofs/neg/Axiomatize.hs b/tests/equationalproofs/neg/Axiomatize.hs
deleted file mode 100644
--- a/tests/equationalproofs/neg/Axiomatize.hs
+++ /dev/null
@@ -1,119 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE QuasiQuotes #-}
-module Axiomatize where
-
-import Language.Haskell.TH
-import Language.Haskell.TH.Quote
-
-import Debug.Trace
-
-import Control.Applicative
-import Data.List ((\\))
-import Data.Maybe (fromMaybe)
-
-data Proof = Proof
-
-axiomatize :: Q [Dec] -> Q [Dec]
-axiomatize q = do d <- q
-                  let vts = [(x, t) | FunD x _ <- d, SigD y t <- d, x == y ]
-                  ds <- mapM (axiomatizeOne vts) d
-                  return $ trace (show d) $ concat ds
-
-axiomatizeOne :: [(Name, Type)] -> Dec -> Q [Dec]
-axiomatizeOne env f@(FunD name cs)
-  = do axioms <- makeAxioms (lookup name env) name cs
-       return $ f:axioms
-axiomatizeOne _ (SigD _ _)
-  = return []
-axiomatizeOne _ d
-  = error $ "axiomatizeOne: Cannot axiomatize" ++ show d
-
-makeAxioms :: Maybe Type -> Name -> [Clause] -> Q [Dec]
-makeAxioms t f cs = concat <$> mapM go cs
-  where
-    go :: Clause -> Q [Dec]
-    go (Clause ps (NormalB (CaseE e ms)) []) = mapM (makeAxiomMatch f ps e) ms
-    go (Clause ps (NormalB _) [])            = makeAxiomPattern t f ps
-    go d = error $ "makeAxioms: Cannot axiomatize\n" ++ show d
-
-
-
-makeAxiomPattern :: Maybe Type -> Name -> [Pat] -> Q [Dec]
-makeAxiomPattern t g ps
-  = do ifs <- mapM reify (fst <$> ds)
-       ff <- makeFun f xs <$> axiom_body
-       ft <- makeSigT t f ps
-       return $ [ff] ++ ft
-  where
-    f = mkName $ makeNamePattern g (fst <$> ds)
-    ds = [(n, dps) |  ConP n dps <- ps]
-    xs = [x | VarP x <- (ps ++ concat (snd <$> ds))]
-
-makeSigT Nothing _ _
-  = return []
-makeSigT (Just t) f ps
-  = do r <- [t|Proof|]
-       ifs <- mapM reify (fst . snd <$> ds)
-       let ts2 = concat $ zipWith makePTys ds ifs
-       return $ [SigD f $ mkUnivArrow (as, ts1 ++ ts2, r)]
-  where
-    (as, ts, _) = bkUnivFun t
-    ts1 = [t | (t, VarP _) <- zip ts ps]
-    ds  = [(t, (n, dps)) |  (t, ConP n dps) <- zip ts ps]
-
-makePTys :: (Type, (Name, [Pat])) -> Info -> [Type]
-makePTys (tr, (n, dps)) (DataConI m t _ _) | n == m
-  = (applySub θ <$> [t | (t, VarP _) <- zip ts dps])
-  where (as, ts, r) = bkUnivFun t
-        θ = unify r tr
-makePTys _ _ = error "makePTys: on invalid arguments"
-
-
-unify (VarT n) t = [(n,t)]
-unify t (VarT n) = [(n,t)]
-unify (AppT t1 t2) (AppT t1' t2') = unify t1 t1' ++ unify t2 t2'
-unify (ForallT _ _ t1) t2 = unify t1 t2
-unify t1 (ForallT _ _ t2) = unify t1 t2
-unify _ _  = []
-
-applySub :: [(Name, Type)] -> Type -> Type
-applySub θ t@(VarT v) = fromMaybe t (lookup v θ)
-applySub θ (AppT t1 t2) = AppT (applySub θ t1) (applySub θ t2)
-applySub θ (ForallT _ _ _) = error "applySub: TODO"
-applySub θ t = t
-
-
-bkUnivFun = go [] []
-  where
-    go as xs (ForallT vs _ t)   = go (as ++ vs) xs t
-    go as xs (AppT (AppT ArrowT tx) t) = go as (tx:xs) t
-    go as xs t                  = (as, reverse xs, t)
-
-mkUnivArrow (as, ts, r) = ForallT as [] $ mkArrow ts r
-  where
-    mkArrow []     r = r
-    mkArrow (t:ts) r = AppT (AppT ArrowT t) $ mkArrow ts r
-
-makeAxiomMatch :: Name -> [Pat] -> Exp -> Match -> Q Dec
-makeAxiomMatch g ps (VarE x) (Match (ConP dc dps) bd decs)
-  = makeFun f xs <$> axiom_body
-  where f  = mkName $ makeName g x dc
-        xs = [p | VarP p <- ps ++ dps] \\ [x]
-
-makeFun :: Name -> [Name] -> Exp -> Dec
-makeFun f xs bd = FunD f [Clause (VarP <$> xs) (NormalB bd) []]
-
-axiom_body :: Q Exp
-axiom_body = [|Proof|]
-
-sep = "_"
-mkSep :: [String] -> String
-mkSep []  = []
-mkSep [x] = x
-mkSep (x:xs) = x ++ sep ++ mkSep xs
-
-eq  = "is"
-makeName fname x dc
-  = mkSep ["axiom", nameBase fname, nameBase x, eq, nameBase dc]
-
-makeNamePattern fname dcs = mkSep $ ["axiom", nameBase fname] ++ (nameBase <$> dcs)
diff --git a/tests/equationalproofs/neg/Equational.hs b/tests/equationalproofs/neg/Equational.hs
deleted file mode 100644
--- a/tests/equationalproofs/neg/Equational.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-module Equational where
-
-
-import Language.Haskell.Liquid.Prelude
-import Axiomatize
-
-
-{-@ toProof :: l:a -> r:{a | l == r} -> {v:Proof | l == r } @-}
-toProof :: a -> a -> Proof
-toProof x y = Proof
-
-
-{-@ (===) :: l:a -> r:a -> {v:Proof | l = r} -> {v:a | v = l } @-}
-(===) :: a -> a -> Proof -> a
-(===) x y _ = y
-
-
-
-{-@ type Equal X Y = {v:Proof | X == Y} @-}
-
-{-@ bound chain @-}
-chain :: (Proof -> Bool) -> (Proof -> Bool) -> (Proof -> Bool)
-      -> Proof -> Proof -> Proof -> Bool
-chain p q r = \v1 v2 v3 -> p v1 ==> q v2 ==> r v3
-
-{-@  by :: forall <p :: Proof -> Prop, q :: Proof -> Prop, r :: Proof -> Prop>.
-                 {vp::Proof<p> |- Proof<q> <: Proof<r> }
-                 Proof<p> -> Proof<q> -> Proof<r>
-@-}
-by :: Proof -> Proof -> Proof
-by _ r = r
-
-{-@ refl :: x:a -> Equal x x @-}
-refl :: a -> Proof
-refl x = Proof
diff --git a/tests/equationalproofs/neg/Fibonacci.hs b/tests/equationalproofs/neg/Fibonacci.hs
deleted file mode 100644
--- a/tests/equationalproofs/neg/Fibonacci.hs
+++ /dev/null
@@ -1,67 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell      #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-{-# LANGUAGE FlexibleContexts     #-}
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-{-@ LIQUID "--no-prune"        @-}
-
-
-module FunctionAbstraction where
-import Axiomatize
-import Equational 
-
-
-{-@ measure fib :: Int -> Int @-}
-{-@ assume fib ::
-         n:Nat 
-      -> {v:Nat| v == fib n && if n == 0 then v == 0 else (if n == 1 then v == 1 else v == fib (n-1) + fib (n-2)) } @-}
-fib :: Int -> Int 
-fib n 
-  | n <  0    = error "cannot happen" 
-  | n == 0    = 0 
-  | n == 1    = 1
-  | otherwise = fib (n-1) + fib (n-2)
-
-infixr 2 `with`
-
-{-@ with :: forall <p :: Bool -> Prop, q::Bool -> Prop, r :: Bool -> Prop>. 
-                 {vp::Bool<p> |- Bool<q> <: Bool<r> }
-                 Bool<p> -> Bool<q> -> Bool<r> @-}
-
-with :: Bool -> Bool -> Bool
-with _ r = r
-
-fib_increasing0 :: Int -> Bool
-{-@ fib_increasing0 :: x:{Nat | x > 1} -> {v:Bool | fib x > 0} @-}
-fib_increasing0 x 
-  | x == 2
-  = fib 2 == fib 1 + fib 0 `with` fib x > 0 
-  | x > 2 
-  = fib_increasing0 (x-1) `with` 
-    fib (x-2) >= 0        `with` 
-    fib x > 0
-
-{-@ fib_increasing :: x:Nat -> y:{Nat | x < y} -> {v:Bool | fib x < fib y} / [x, y] @-} 
-fib_increasing :: Int -> Int -> Bool 
-fib_increasing x y 
-  | x == 0, y == 1
-  = fib y == 1 `with` fib x == 0
-  | x == 0
-  = fib_increasing0 y `with` fib x == 0 
-  | x == 1, y == 2
-  = fib x == 1 `with`
-    fib y == fib (y-1) + fib (y-2) 
-  | x == 1, 2 < y
-  = fib x == 1 `with` fib y == fib (y-1) + fib (y-2) `with`
-    2 < y `with` fib_increasing 1 (y-1) `with`
-    1 < fib (y-1) `with` 0 < fib (y-2) 
-  | otherwise
-  = fib x == fib (x-1) + fib (x-2) `with`
-    fib y == fib (y-1) + fib (y-2) `with`
-    fib_increasing (x-1) (y-1) `with`
-    fib (x-1) <= fib (y-1) `with` 
-    fib_increasing (x-2) (y-2) `with`
-    fib (x-2) <= fib (y-2) 
diff --git a/tests/equationalproofs/pos/AppendArrow.hs b/tests/equationalproofs/pos/AppendArrow.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/AppendArrow.hs
+++ /dev/null
@@ -1,106 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
--- |   A first example in equalional reasoning.
--- |  From the definition of append we should be able to
--- |  semi-automatically prove the two axioms.
-
--- | Note for soundness we need
--- | totallity: all the cases should be covered
--- | termination: we cannot have diverging things into proofs
-
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-
-data L a = N |  C a (L a)
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ axiomatize append @-}
-
-$(axiomatize
-  [d| append :: L a -> L a -> L a
-      append N xs        = xs
-      append (C y ys) xs = C y (append ys xs)
-    |])
-
-
-
-{-
-axiom_append_N :: xs: L a -> {v:Proof  |  append N xs == xs }
-axiom_append_N xs = Proof  
-
-axiom_append_C :: xs: L a -> y:a > ys: L a 
-                -> {v:Proof  |  append (C y ys) xs == C y (append ys xs) }
-axiom_append_C xs y ys  = Proof 
--}
-
-
-
--- | Proof 1: N is neutral element
-
-
--- | axiomatixation of append will not be a haskell function anymore,
--- | thus the user cannot directly access it.
--- | use a function called `use_axiom` to apply these axioms.
-
--- prop_app_nil :: Eq a => L a -> Proof
-
-{-@ prop_app_nil :: ys:L a -> {v:Proof | append ys N == ys} @-}
-prop_app_nil :: (Eq a) => L a -> Proof
-prop_app_nil N        = axiom_append_N N
-prop_app_nil (C x xs)
-    = 
-                                      -- (C x xs) ++ N
-           (axiom_append_C N x xs)
-                                      -- == C x (xs ++ N)
-      `by` (prop_app_nil xs)
-                                      -- == C x xs
-
-
-
-
--- | Proof 2: append is associative
-
-{-@ prop_assoc :: xs:L a -> ys:L a -> zs:L a
-               -> {v:Proof | append (append xs ys) zs == append xs (append ys zs) } @-}
-
-prop_assoc :: Eq a => L a -> L a -> L a -> Proof
-
-prop_assoc N ys zs  = auto 2 (append (append N ys) zs == append N (append ys zs))
--- =    refl (append (append N ys) zs) 
---           axiom_append_N ys             -- == append ys zs
---      `by` axiom_append_N (append ys zs) -- == append N (append ys zs)
-
-
-prop_assoc (C x xs) ys zs
-    = auto 2 (append (append (C x xs) ys) zs == append (C x xs) (append ys zs))
---      = refl e1
---        `by` pr1 `by` pr2 `by` pr3 `by` pr4
-  where
-    e1  = append (append (C x xs) ys) zs
-    pr1 = axiom_append_C ys x xs
-    e2  = append (C x (append xs ys)) zs
-    pr2 = axiom_append_C zs x (append xs ys)
-    e3  = C x (append (append xs ys) zs)
-    pr3 = prop_assoc xs ys zs
-    e4  = C x (append xs (append ys zs))
-    pr4 = axiom_append_C (append ys zs) x xs
-    e5  = append (C x xs) (append ys zs)
-
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen :: L a -> Int
-llen N = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/equationalproofs/pos/AppendAxiom.hs b/tests/equationalproofs/pos/AppendAxiom.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/AppendAxiom.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-
-{-@ LIQUID "--no-termination" @-}
-
-import Axiomatize
-
-data L a = N | C a (L a)
-
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a
-      append xs N = xs
-      append xs (C y ys) = xs
-    |])
-
-$(axiomatize
-      [d| appendCase xs ys = case xs of {N -> ys; C x xs -> C x (append xs ys)}
-    |])
-
-use_axiomN, use_axiomCaseN :: L a -> Proof
-use_axiomN xs = axiom_append_N xs
-use_axiomCaseN = axiom_appendCase_xs_is_N
-
-use_axiomC, use_axiomCaseC :: L a -> a -> L a -> Proof
-use_axiomC = axiom_append_C
-use_axiomCaseC = axiom_appendCase_xs_is_C
diff --git a/tests/equationalproofs/pos/AppendVerbose.hs b/tests/equationalproofs/pos/AppendVerbose.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/AppendVerbose.hs
+++ /dev/null
@@ -1,110 +0,0 @@
--- |   A first example in equalional reasoning.
--- |  From the definition of append we should be able to
--- |  semi-automatically prove the two axioms.
-
--- | Note for soundness we need
--- | totallity: all the cases should be covered
--- | termination: we cannot have diverging things into proofs
-
-{-@ LIQUID "--totality" @-}
-
-module Append where
-
-import Language.Haskell.Liquid.Prelude
-
-data L a = N |  C a (L a) deriving (Eq)
-
-{-@ N :: {v:L a | llen v == 0 && v == N } @-}
-{-@ C :: x:a -> xs:L a -> {v:L a | llen v == llen xs + 1 && v == C x xs } @-}
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen :: L a -> Int @-}
-llen :: L a -> Int
-llen N = 0
-llen (C x xs) = 1 + llen xs
-
-
-append :: L a -> L a -> L a
-append N xs        = xs
-append (C y ys) xs = C y (append ys xs)
-
-
--- | All the followin will be autocatically generated by the definition of append
--- |  and a liquid annotation
--- |
--- |  axiomatize append
--- |
-
-{-@ measure append :: L a -> L a -> L a @-}
-{-@ assume append :: xs:L a -> ys:L a -> {v:L a | v == append xs ys } @-}
-
-{-@ assume axiom_append_nil :: xs:L a -> {v:Proof | append N xs == xs} @-}
-axiom_append_nil :: L a -> Proof
-axiom_append_nil xs = Proof
-
-{-@ assume axiom_append_cons :: x:a -> xs: L a -> ys: L a
-          -> {v:Proof | append (C x xs) ys == C x (append xs ys) } @-}
-axiom_append_cons :: a -> L a -> L a -> Proof
-axiom_append_cons x xs ys = Proof
-
-
--- | Proof library:
-
-data Proof = Proof
-
-
-{-@ toProof :: l:a -> r:{a|l = r} -> {v:Proof | l = r } @-}
-toProof :: a -> a -> Proof
-toProof x y = Proof
-
-
-{-@ (===) :: l:a -> r:a -> {v:Proof | l = r} -> {v:a | v = l } @-}
-(===) :: a -> a -> Proof -> a
-(===) x y _ = y
-
--- | Proof 1: N is neutral element
-
-{-@ prop_nil :: xs:L a -> {v:Proof | (append xs N == xs) } @-}
-prop_nil     :: Eq a => L a -> Proof
-prop_nil N   =  axiom_append_nil N
-
-prop_nil (C x xs) = toProof e1 $ ((
-  e1 === e2) pr1
-     === e3) pr2
-   where
-   	e1  = append (C x xs) N
-   	pr1 = axiom_append_cons x xs N
-   	e2  = C x (append xs N)
-   	pr2 = prop_nil xs
-   	e3  = C x xs
-
--- | Proof 2: append is associative
-
-
-
-{-@ prop_assoc :: xs:L a -> ys:L a -> zs:L a
-               -> {v:Proof | (append (append xs ys) zs == append xs (append ys zs))} @-}
-prop_assoc :: Eq a => L a -> L a -> L a -> Proof
-prop_assoc N ys zs =
-  toProof (append (append N ys) zs) $ ((
-    append (append N ys) zs === append ys zs)             (axiom_append_nil ys)
-                            === append N (append ys zs))  (axiom_append_nil (append ys zs))
-
-prop_assoc (C x xs) ys zs =
-  toProof e1 $ ((((
-   e1  === e2) pr1
-       === e3) pr2
-       === e4) pr3
-       === e5) pr4
-  where
-    e1  = append (append (C x xs) ys) zs
-    pr1 = axiom_append_cons x xs ys
-    e2  = append (C x (append xs ys)) zs
-    pr2 = axiom_append_cons x (append xs ys) zs
-    e3  = C x (append (append xs ys) zs)
-    pr3 = prop_assoc xs ys zs
-    e4  = C x (append xs (append ys zs))
-    pr4 = axiom_append_cons x xs (append ys zs)
-    e5  = append (C x xs) (append ys zs)
diff --git a/tests/equationalproofs/pos/Arrow.hs b/tests/equationalproofs/pos/Arrow.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/Arrow.hs
+++ /dev/null
@@ -1,3 +0,0 @@
-module Arrow where
-
-data Arrow a b = Arr {runFun :: a -> b}
diff --git a/tests/equationalproofs/pos/Axiomatize.hs b/tests/equationalproofs/pos/Axiomatize.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/Axiomatize.hs
+++ /dev/null
@@ -1,136 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE QuasiQuotes     #-}
-
-module Axiomatize where
-
-import Language.Haskell.TH
-import Language.Haskell.TH.Quote
-import Language.Haskell.TH.Syntax
-
-import Debug.Trace
-
-import Control.Applicative
-import Data.List ((\\))
-import Data.Maybe (fromMaybe)
-
-data Proof = Proof
-
-
-{-@ auto :: Int -> b:{v:Bool |Prop v} -> Proof @-}
-auto :: Int -> Bool -> Proof
-auto _ _ = Proof
-
-
-{-@ rewrite :: Int -> b:{v:Bool |Prop v} -> Proof @-}
-rewrite :: Int -> Bool -> Proof
-rewrite _ _ = Proof
-
-{-@ cases :: Int -> b:{v:Bool |Prop v} -> Proof @-}
-cases :: Int -> Bool -> Proof
-cases _ _ = Proof
-
-
-axiomatize :: Q [Dec] -> Q [Dec]
-axiomatize q = do d <- q
-                  let vts = [(x, t) | FunD x _ <- d, SigD y t <- d, x == y ]
-                  ds <- mapM (axiomatizeOne vts) d
-                  return $ concat ds
-
-axiomatizeOne :: [(Name, Type)] -> Dec -> Q [Dec]
-axiomatizeOne env f@(FunD name cs)
-  = do axioms <- makeAxioms (lookup name env) name cs
-       return $ f:axioms
-axiomatizeOne _ (SigD _ _)
-  = return []
-axiomatizeOne _ d
-  = error $ "axiomatizeOne: Cannot axiomatize" ++ show d
-
-makeAxioms :: Maybe Type -> Name -> [Clause] -> Q [Dec]
-makeAxioms t f cs = concat <$> mapM go cs
-  where
-    go :: Clause -> Q [Dec]
-    go (Clause ps (NormalB (CaseE e ms)) []) = mapM (makeAxiomMatch f ps e) ms
-    go (Clause ps (NormalB _) [])            = makeAxiomPattern t f ps
-    go d = error $ "makeAxioms: Cannot axiomatize\n" ++ show d
-
-
-
-makeAxiomPattern :: Maybe Type -> Name -> [Pat] -> Q [Dec]
-makeAxiomPattern t g ps
-  = do ifs <- mapM reify (fst <$> ds)
-       ff <- makeFun f xs <$> axiom_body
-       ft <- makeSigT t f ps
-       return $ [ff] ++ ft
-  where
-    f = mkName $ makeNamePattern g (fst <$> ds)
-    ds = [(n, dps) |  ConP n dps <- ps]
-    xs = [x | VarP x <- (ps ++ concat (snd <$> ds))]
-
-makeSigT Nothing _ _
-  = return []
-makeSigT (Just t) f ps
-  = do r <- [t|Proof|]
-       ifs <- mapM reify (fst . snd <$> ds)
-       let ts2 = concat $ zipWith makePTys ds ifs
-       return [SigD f $ mkUnivArrow (as, ts1 ++ ts2, r)]
-  where
-    (as, ts, _) = bkUnivFun t
-    ts1 = [t | (t, VarP _) <- zip ts ps]
-    ds  = [(t, (n, dps)) |  (t, ConP n dps) <- zip ts ps]
-
-makePTys :: (Type, (Name, [Pat])) -> Info -> [Type]
-makePTys (tr, (n, dps)) (DataConI m t _ _) | n == m
-  = (applySub θ <$> [t | (t, VarP _) <- zip ts dps])
-  where (as, ts, r) = bkUnivFun t
-        θ = unify r tr
-makePTys _ _ = error "makePTys: on invalid arguments"
-
-
-unify (VarT n) t = [(n,t)]
-unify t (VarT n) = [(n,t)]
-unify (AppT t1 t2) (AppT t1' t2') = unify t1 t1' ++ unify t2 t2'
-unify (ForallT _ _ t1) t2 = unify t1 t2
-unify t1 (ForallT _ _ t2) = unify t1 t2
-unify _ _  = []
-
-applySub :: [(Name, Type)] -> Type -> Type
-applySub θ t@(VarT v) = fromMaybe t (lookup v θ)
-applySub θ (AppT t1 t2) = AppT (applySub θ t1) (applySub θ t2)
-applySub θ (ForallT _ _ _) = error "applySub: TODO"
-applySub θ t = t
-
-
-bkUnivFun = go [] []
-  where
-    go as xs (ForallT vs _ t)   = go (as ++ vs) xs t
-    go as xs (AppT (AppT ArrowT tx) t) = go as (tx:xs) t
-    go as xs t                  = (as, reverse xs, t)
-
-mkUnivArrow (as, ts, r) = ForallT as [] $ mkArrow ts r
-  where
-    mkArrow []     r = r
-    mkArrow (t:ts) r = AppT (AppT ArrowT t) $ mkArrow ts r
-
-makeAxiomMatch :: Name -> [Pat] -> Exp -> Match -> Q Dec
-makeAxiomMatch g ps (VarE x) (Match (ConP dc dps) bd decs)
-  = makeFun f xs <$> axiom_body
-  where f  = mkName $ makeName g x dc
-        xs = [p | VarP p <- ps ++ dps] \\ [x]
-
-makeFun :: Name -> [Name] -> Exp -> Dec
-makeFun f xs bd = FunD f [Clause (VarP <$> xs) (NormalB bd) []]
-
-axiom_body :: Q Exp
-axiom_body = [|Proof|]
-
-sep = "_"
-mkSep :: [String] -> String
-mkSep []  = []
-mkSep [x] = x
-mkSep (x:xs) = x ++ sep ++ mkSep xs
-
-eq  = "is"
-makeName fname x dc
-  = mkSep ["axiom", nameBase fname, nameBase x, eq, nameBase dc]
-
-makeNamePattern fname dcs = mkSep $ ["axiom", nameBase fname] ++ (nameBase <$> dcs)
diff --git a/tests/equationalproofs/pos/ConcatMap.hs b/tests/equationalproofs/pos/ConcatMap.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/ConcatMap.hs
+++ /dev/null
@@ -1,98 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--higherorder"     @-}
-{- LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-
-module ConcatMap where
-
-import Axiomatize
-import Equational 
-import Prelude hiding (map, concatMap, concat)
-
-data L a = N |  C a (L a)
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a 
-      append N ys        = ys 
-      append (C x xs) ys = C x (append xs ys)
-    |])
-
-{-@ axiomatize map @-}
-$(axiomatize
-  [d| map :: (a -> b) -> L a -> L b
-      map f N        = N
-      map f (C x xs) = f x `C` map f xs 
-    |])
-
-{-@ axiomatize concatMap @-}
-$(axiomatize
-  [d| concatMap :: (a -> L b) -> L a -> L b
-      concatMap f N        = N 
-      concatMap f (C x xs) = append (f x) (concatMap f xs)
-    |])
-
-
-{-@ axiomatize concatt @-}
-
-$(axiomatize
-  [d| concatt :: L (L a) -> L a 
-      concatt N        = N 
-      concatt (C x xs) = append x (concatt xs)
-     |])
-
-
---   "concat/map" forall f xs . concat $ map f xs = concatMap f xs
-
-{-@ prop_concatMap :: f:(a -> L (L a)) -> xs:L a
-                   -> {v:Proof | (concatt (map f xs) == concatMap f xs) }  @-}
-
-prop_concatMap :: Eq a => (a -> L (L a)) -> L a -> Proof  
-prop_concatMap f xs
-   = cases 2 (concatt (map f xs) == concatMap f xs)
-
-{- 
-prop_concatMap f (C x xs)
-   = auto 1 (concatt (map f (C x xs)) == concatMap f (C x xs))
--} 
--- prop_concatMap f N
---    = auto 1 (concatt (map f N) == concatMap f N)
---   = refl e1 `by` pr1 `by` pr2 `by` pr3 
-{- 
-  where
-    e1  = concatt (map f N)
-    pr1 = axiom_map_N f
-    e2  = concatt N
-    pr2 = axiom_concatt_N
-    e3  = N
-    pr3 = axiom_concatMap_N f 
-    e4  = concatMap f N
--}
-
--- prop_concatMap f (C x xs) 
---   = auto 2 (concatt (map f (C x xs)) == concatMap f (C x xs))
-{-
-  = refl e1 `by` pr1 `by` pr2 `by` pr3 `by` pr4 
-  where 
-    e1  = concatt (map f (C x xs)) 
-    pr1 = axiom_concatt_C (f x) (map f xs)
-    pr2 = axiom_concatMap_C f x xs 
-    pr3 = axiom_map_C f x xs 
-    pr4 = prop_concatMap f xs  
--}
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen          :: L a -> Int
-llen N        = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/equationalproofs/pos/Equational.hs b/tests/equationalproofs/pos/Equational.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/Equational.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-module Equational where
-
-
-import Language.Haskell.Liquid.Prelude
-import Axiomatize
-
-
-{-@ toProof :: l:a -> r:{a | l == r} -> {v:Proof | l == r } @-}
-toProof :: a -> a -> Proof
-toProof x y = Proof
-
-
-{-@ (===) :: l:a -> r:a -> {v:Proof | l = r} -> {v:a | v = l } @-}
-(===) :: a -> a -> Proof -> a
-(===) x y _ = y
-
-
-
-{-@ type Equal X Y = {v:Proof | X == Y} @-}
-
-{-@ bound chain @-}
-chain :: (Proof -> Bool) -> (Proof -> Bool) -> (Proof -> Bool)
-      -> Proof -> Proof -> Proof -> Bool
-chain p q r = \v1 v2 v3 -> p v1 ==> q v2 ==> r v3
-
-{-@  by :: forall <p :: Proof -> Prop, q :: Proof -> Prop, r :: Proof -> Prop>.
-                 {vp::Proof<p> |- Proof<q> <: Proof<r> }
-                 Proof<p> -> Proof<q> -> Proof<r>
-@-}
-by :: Proof -> Proof -> Proof
-by _ r = r
-
-{-@ refl :: x:a -> Equal x x @-}
-refl :: a -> Proof
-refl x = Proof
diff --git a/tests/equationalproofs/pos/MapAppend.hs b/tests/equationalproofs/pos/MapAppend.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/MapAppend.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-
-module Append where
-
-import Axiomatize
-import Equational 
-import Prelude hiding (map)
-
-data L a = N |  C a (L a)
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ axiomatize map @-}
-$(axiomatize
-  [d| map :: (a -> b) -> L a -> L b
-      map f N        = N
-      map f (C x xs) = C (f x) (map f xs) 
-    |])
-
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a 
-      append N ys        = ys 
-      append (C x xs) ys = C x (append xs ys)
-    |])
-
-
-
---   "map/append" forall f xs ys. map f (xs ++ ys) = map f xs ++ map f ys
-{-@ prop_map_append ::  f:(a -> a) -> xs:L a -> ys:L a 
-                    -> {v:Proof | map f (append xs ys) == append (map f xs) (map f ys) }
-  @-}
-prop_map_append :: Eq a => (a -> a) -> L a -> L a -> Proof
--- prop_map_append f N ys = auto 2 (map f (N `append` ys) == map f N `append` map f ys) 
--- prop_map_append f N ys = auto 2 (map f (N `append` ys) == map f N `append` map f ys) 
-prop_map_append f xs ys = cases 2 (map f (xs `append` ys) == map f xs `append` map f ys) 
-
-{- Generated axioms: 
-1. axiom_append_N (map f ys)
-2. axiom_append_N ys 
-3. axiom_map_N f 
--}  
-
-{-  
-prop_map_append f (C x xs) ys = 
-  auto 2  (map f (append (C x xs) ys) == append (map f (C x xs)) (map f ys))
-  -- refl (append (map f (C x xs)) (map f ys))
-  --   `by` pr1 `by` pr2 `by` pr3 `by` pr4 `by` pr5 
-    where
-      e1  = append (map f (C x xs)) (map f ys)
-      pr1 = axiom_map_C f x xs
-      e2  = append (C (f x) (map f xs)) (map f ys)
-      pr2 = axiom_append_C  (map f ys) (f x) (map f xs)
-      e3  = C (f x) (append (map f xs) (map f ys))
-      pr3 = prop_map_append f xs ys
-      e4 = C (f x) (map f (append xs ys))
-      pr4 = axiom_map_C f x (append xs ys)
-      e5  = map f (C x (append xs ys))
-      pr5 = axiom_append_C ys x xs
-      e6  = map f (append (C x xs) ys)
--}
-
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen          :: L a -> Int
-llen N        = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/equationalproofs/pos/MonadicLaws.hs b/tests/equationalproofs/pos/MonadicLaws.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/MonadicLaws.hs
+++ /dev/null
@@ -1,88 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--higherorder"      @-}
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-import Prelude hiding (return, (>>=))
-
-
-data L a = N |  C a (L a)
-
--- | Definition of the list monad
-
-{-@ axiomatize return @-}
-$(axiomatize
-  [d| return :: a -> L a
-      return x = C x N
-    |])
-
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a
-      append N ys        = ys
-      append (C x xs) ys = C x (append xs ys)
-    |])
-
-{-@ axiomatize bind @-}
-$(axiomatize
-  [d| bind :: L a -> (a -> L a) -> L a
-      bind N        f = N
-      bind (C x xs) f = append (f x) (xs `bind` f)
-    |])
-
-
--- NV TODO:
--- 2. check why failure to prove takes so long
-
--- | Left identity: return a >>= f ≡ f a
-
-prop_left_identity :: Eq a => a -> (a -> L a) -> Proof
-{-@ prop_left_identity :: x:a -> f:(a -> L a)
-                       -> {v:Proof | bind (return x) f == f x} @-}
-prop_left_identity x f = auto 2 (bind (return x) f == f x)
-{- 
-  where
-    e1  = bind (return x) f
-    pr1 = axiom_return x
-    e2  = bind (C x N) f
-    pr2 = axiom_bind_C f x N
-    e3  = append (f x) (bind N f)
-    pr3 = axiom_bind_N f
-    e4  = append (f x) N
-    pr4 = prop_app_nil (f x)
-    e5  = f x
--}
-
--- | Right Identity m >>= return ≡  m
-{-@ prop_right_identity :: Eq a => xs:L a -> {v:Proof | bind xs return == xs } @-}
-prop_right_identity :: Eq a => L a -> Proof
-prop_right_identity xs =  cases 2 (bind xs return == xs) 
-
-{-@ prop_app_nil :: ys:L a -> {v:Proof | append ys N == ys} @-}
-prop_app_nil :: (Eq a) => L a -> Proof
-prop_app_nil N        = auto 1 (append N N        == N     )
-prop_app_nil (C x xs) = auto 1 (append (C x xs) N == C x xs)
-
-
--- | List definition
-
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen :: L a -> Int
-llen N = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/equationalproofs/pos/MonadicLawsMaybe.hs b/tests/equationalproofs/pos/MonadicLawsMaybe.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/MonadicLawsMaybe.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--higherorder"      @-}
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-import Prelude hiding (Monad(..), Maybe (..))
-
-
-data Maybe a = Nothing | Just a deriving (Eq)
-
--- | Definition of the list monad
-
-{-@ axiomatize return @-}
-$(axiomatize
-  [d| return :: a -> Maybe a
-      return x = Just x 
-    |])
-
-{-@ axiomatize bind @-}
-$(axiomatize
-  [d| bind :: Maybe a -> (a -> Maybe b) -> Maybe b
-      bind Nothing  f = Nothing
-      bind (Just x) f = f x 
-    |])
-
--- | Left identity: return a >>= f ≡ f a
-
-{-@ prop_left_identity :: x:a -> f:(a -> Maybe a) -> {v:Proof | bind (return x) f == f x} @-}
-prop_left_identity :: Eq a => a -> (a -> Maybe a) -> Proof
-prop_left_identity x  f = rewrite 3 (bind (return x) f == f x)
-
-{- 
-prop_left_identity x  f = pr1 `by` pr2 
-  where
-    e1  = bind (return x) f 
-    pr1 = axiom_return x 
-    e2  = bind (Just x) f 
-    pr2 = axiom_bind_Just f x 
-    e3  = f x   
--}
-
-
--- | Right Identity m >>= return ≡  m
-{-@ prop_right_identity :: m:Maybe a -> {v:Proof | bind m return == m } @-}
-prop_right_identity :: Eq a => Maybe a -> Proof
-prop_right_identity Nothing  = rewrite 0 (bind Nothing  return == Nothing) 
-prop_right_identity (Just x) = rewrite 0 (bind (Just x) return == Just x)  
-
-{- 
-prop_right_identity Nothing = pr1 
-  where
-    e1  = bind Nothing return
-    pr1 = axiom_bind_Nothing return
-    e2  = Nothing
-
-prop_right_identity (Just x) = pr1 `by` pr2 
-  where
-    e1  = bind (Just x) return 
-    pr1 = axiom_bind_Just return x 
-    e2  = return x 
-    pr2 = axiom_return x 
-    e3  = Just x 
--}
-
-
--- | Left Associativity: (m >>= f) >>= g ≡  m >>= (\x -> f x >>= g)
-
-prop_left_associativity :: Eq a => Maybe a -> (a -> Maybe a) -> (a -> Maybe a) -> Proof 
-prop_left_associativity m f g = Proof
-
-
-
diff --git a/tests/equationalproofs/pos/MonadicLawsMaybeAssoc.hs b/tests/equationalproofs/pos/MonadicLawsMaybeAssoc.hs
deleted file mode 100644
--- a/tests/equationalproofs/pos/MonadicLawsMaybeAssoc.hs
+++ /dev/null
@@ -1,57 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--higherorder"      @-}
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-import Prelude hiding (Monad(..), Maybe (..))
-
-
-data Maybe a = Nothing | Just a deriving (Eq)
-
--- | Definition of the list monad
-
-{-@ axiomatize return @-}
-$(axiomatize
-  [d| return :: a -> Maybe a
-      return x = Just x 
-    |])
-
-{-@ axiomatize bind @-}
-$(axiomatize
-  [d| bind :: Maybe a -> (a -> Maybe b) -> Maybe b
-      bind Nothing  f = Nothing
-      bind (Just x) f = f x 
-    |])
-
-
--- HERE 
-
--- | Left Associativity: (m >>= f) >>= g ≡  m >>= (\x -> f x >>= g)
-
-{- prop_left_associativity :: m:Maybe a -> f:(a -> Maybe a) -> g:(a -> Maybe a) 
-                            -> {v: Proof |  bind (bind m f) g == bind m (\x:a -> (bind (f x) g ))} @-}
-prop_left_associativity :: Eq a => Maybe a -> (a -> Maybe a) -> (a -> Maybe a) ->  Proof 
-prop_left_associativity Nothing f g = pr1 `by` pr2 `by` pr3 
-  where
-  	h   =  \x -> (bind (f x) g)
-  	e1  = bind (bind Nothing f) g 
-  	pr1 = axiom_bind_Nothing f
-  	e2  = bind Nothing g 
-  	pr2 = axiom_bind_Nothing g 
-  	e3  = Nothing 
-  	pr3 = axiom_bind_Nothing h 
-  	e4  = bind Nothing h 
-
-{- prop_left_associativity :: m:Maybe a -> f:(a -> Maybe a) -> g:(a -> Maybe a) 
-                            -> {v: Proof |  bind (bind m f) g == bind m (\x:a -> (bind (f x) g ))} @-}
-prop_left_associativity (Just x) f g = undefined --  bind (bind m f) g == bind m (\x -> (bind (f x) g ))
-
-
-
diff --git a/tests/equationalproofs/todo/Helper.hs b/tests/equationalproofs/todo/Helper.hs
deleted file mode 100644
--- a/tests/equationalproofs/todo/Helper.hs
+++ /dev/null
@@ -1,72 +0,0 @@
-
--- | Proving ackermann properties from
--- | http://www.cs.yorku.ca/~gt/papers/Ackermann-function.pdf
-
-{-@ LIQUID "--higherorder"   @-}
-{-@ LIQUID "--autoproofs"    @-}
-{-@ LIQUID "--totality"      @-}
-{-@ LIQUID "--maxparams=10"  @-}
-{-@ LIQUID "--higherorderqs" @-}
-{-@ LIQUID "--eliminate"     @-}
-
-
-module Helper (
-
-  gen_increasing, gen_increasing2
-
-  , abstract
-
-  ) where
-
-import Proves
-
--- | Function abstractio: Can I prove this?
-
-{-@ assume abstract :: f:(a -> b) -> g:(a -> b) -> (x:a -> {v:Proof | f x == g x })
-             -> {v:Proof | f == g } @-}
-abstract :: (a -> b) -> (a -> b) -> (a -> Proof) -> Proof
-abstract _ _ _ = simpleProof
-
-
-
-
--- | forall f :: a -> a
--- |   if    forall x:Nat.   f x < f (x+1)
--- |   then  forall x,y:Nat.  x < y => f x < f y
-
-
-gen_increasing :: (Int -> Int) -> (Int -> Proof) -> (Int -> Int -> Proof)
-
-
-
-{-@ gen_increasing :: f:(Nat -> Int)
-                   -> (z:Nat -> {v:Proof | f z < f (z+1) })
-                   ->  x:Nat -> y:{Nat | x < y } -> {v:Proof | f x < f y } / [y] @-}
-gen_increasing f thm x y
-
-  | x + 1 == y
-  = proof $
-      f y ==! f (x + 1)
-           >! f x       ?  thm x
-
-  | x + 1 < y
-  = proof $
-      f x  <! f (y-1)   ?   gen_increasing f thm x (y-1)
-           <! f y       ?   thm (y-1)
-
-
-gen_increasing2 :: (Int -> a -> Int) -> (a -> Int -> Proof) -> (a -> Int -> Int -> Proof)
-{-@ gen_increasing2 :: f:(Nat -> a -> Int)
-                    -> (w:a -> z:Nat -> {v:Proof | f z w < f (z+1) w })
-                    ->  c:a -> x:Nat -> y:{Nat | x < y } -> {v:Proof | f x c < f y c } / [y] @-}
-gen_increasing2 f thm c x y
-  | x + 1 == y
-  = proof $
-      f y c ==! f (x + 1) c
-             >! f x c        ? thm c x
-
-  | x + 1 < y
-  = proof $
-      f x c <! f (y-1) c    ? gen_increasing2 f thm c x (y-1)
-            <! f y c        ? thm c (y-1)
-
diff --git a/tests/equationalproofs/todo/MapFusion.hs b/tests/equationalproofs/todo/MapFusion.hs
deleted file mode 100644
--- a/tests/equationalproofs/todo/MapFusion.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
--- |   A first example in equalional reasoning.
--- |  From the definition of append we should be able to
--- |  semi-automatically prove the two axioms.
-
--- | Note for soundness we need
--- | totallity: all the cases should be covered
--- | termination: we cannot have diverging things into proofs
-
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational 
-import Prelude hiding (map)
-
-data L a = N |  C a (L a)
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ axiomatize map @-}
-
-
-$(axiomatize
-  [d| map :: (a -> b) -> L a -> L b
-      map f N        = N
-      map f (C x xs) = f x `C` map f xs 
-    |])
-
--- axioms: 
--- axiom_map_N :: forall f. map f N == N
--- axiom_map_C :: forall f x xs. map f (C x xs) == C (f x) (map f xs) 
-
-{-@ axiomatize compose @-}
-
-$(axiomatize
-  [d| compose :: (b -> c) ->(a -> b) -> (a -> c)
-      compose f g x = f (g x) 
-    |])
-
-{-@ prop_fusion :: f:(a -> a) -> g:(a -> a) -> xs:L a
-                -> {v:Proof | map f (map g xs) ==  map (compose f g) xs }  @-}
-prop_fusion     :: Eq a => (a -> a) -> (a -> a) -> L a -> Proof
-
-prop_fusion f g N = 
---   refl e1 `by` pr1 `by` pr2 `by` pr3
-    auto 2 (map f (map g N)  ==  map (compose f g) N)
-{-
-  where
-    e1  = map f (map g N)
-    pr1 = axiom_map_N g
-    e2  = map f N
-    pr2 = axiom_map_N f
-    e3  = N
-    pr3 = axiom_map_N (compose f g)
-    e4  = map (compose f g) N
--}
-
-prop_fusion f g (C x xs) = 
-   auto 2 (map f (map g (C x xs)) == map (compose f g) (C x xs))
---    refl e1 `by` pr1 `by` pr2 `by` pr3 `by` pr4 `by` pr5
-{-
-  where
-    e1 = map f (map g (C x xs))
-    pr1 = axiom_map_C g x xs
-    e2 = map f (C (g x) (map g xs))
-    pr2 = axiom_map_C f (g x) (map g xs)
-    e3 = C (f (g x)) (map f (map g xs))
-    pr3 = prop_fusion f g xs
-    e4 = C (f (g x)) (map (compose f g) xs)
-    pr4 = axiom_compose f g x
-    e5 = C ((compose f g) x) (map (compose f g) xs)
-    pr5 = axiom_map_C (compose f g) x xs
-    e6 = map (compose f g) (C x xs)
--}
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen          :: L a -> Int
-llen N        = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/equationalproofs/todo/MonadicLawsAssoc.hs b/tests/equationalproofs/todo/MonadicLawsAssoc.hs
deleted file mode 100644
--- a/tests/equationalproofs/todo/MonadicLawsAssoc.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-{-@ LIQUID "--higherorder"      @-}
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-import Prelude hiding (return, (>>=))
-
-
-data L a = N |  C a (L a)
-
--- | Definition of the list monad
-
-{-@ axiomatize return @-}
-$(axiomatize
-  [d| return :: a -> L a
-      return x = C x N
-    |])
-
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a
-      append N ys        = ys
-      append (C x xs) ys = C x (append xs ys)
-    |])
-
-{-@ axiomatize bind @-}
-$(axiomatize
-  [d| bind :: L a -> (a -> L a) -> L a
-      bind N        f = N
-      bind (C x xs) f = append (f x) (xs `bind` f)
-    |])
-
--- | Left Associativity: (m >>= f) >>= g ≡  m >>= (\x -> f x >>= g)
-
-
-helper :: Eq a => a -> L a -> (a -> L a) -> (a -> L a) -> Proof
-{-@ helper ::  x:a -> xs:L a -> f:(a -> L a) -> g:(a -> L a) 
-            ->   {v: Proof| bind (append (f x) (bind N f)) g == append (bind (f x) g) (bind (bind N f) g)} @-}
-helper x xs f g 
---   = auto 2 (bind (append fx N) g == bind fx  g )
---     = refl (bind (append (f x) (bind N f)) g) `by` pr1 `by` pr2 `by` pr3 `by` pr4 `by` pr5 
-     = auto 2 (bind (append (f x) N) g ==  bind (f x) g ) 
-  where 
-{- 
-    e1  = bind (append (f x) (bind N f)) g
-    pr1 = axiom_bind_N f 
-    e2  = bind (append (f x) N) g
-    pr2 = prop_app_nil (f x)
-    e3  = bind (f x) g 
-    pr3 = prop_app_nil (bind (f x)  g)
-    e4  = append (bind (f x) g) N
-    pr4 = axiom_bind_N f     
-    e5  = append (bind (f x) g) (bind N f)
-    pr5 = axiom_bind_N g   
-    e6  = append (bind (f x) g) (bind (bind N f) g)
-
--}
-
-
-helper x xs f g 
-  = undefined -- auto 2 ((append (f x) (xs `bind` f)) `bind` g ==  append (f x `bind` g) ((xs `bind` f) `bind` g)) 
-
-
-{-@ prop_app_nil :: ys:L a -> {v:Proof | append ys N == ys} @-}
-prop_app_nil :: (Eq a) => L a -> Proof
-prop_app_nil N        = auto 1 (append N N        == N     )
-prop_app_nil (C x xs) = auto 1 (append (C x xs) N == C x xs)
-
-prop_left_assoc :: Eq a => L a -> (a -> L a) -> (a -> L a) -> Proof
-{-@ prop_left_assoc :: m: L a -> f:(a -> L a) -> g:(a -> L a) -> Proof @-}
-prop_left_assoc N f g 
-  = refl ((N `bind` f) `bind` g) `by` pr1 `by` pr2 `by` pr3 
-  where
-    e1  = (N `bind` f) `bind` g
-    pr1 = axiom_bind_N f 
-    e2  = N `bind` g
-    pr2 = axiom_bind_N g
-    e3  = N
-    pr3 = axiom_bind_N ((\x -> f x `bind` g))
-    e4  = N `bind` (\x -> f x `bind` g)
-
-
-prop_left_assoc (C x xs) f g 
-  = undefined -- refl ((C x xs `bind` f) `bind` g) 
-  where
-    e1  = (C x xs `bind` f) `bind` g
-
-    e2 = (append (f x) (xs `bind` f)) `bind` g 
-
-
-
-
-    ei =  append (f x `bind` g) ((xs `bind` f) `bind` g)
-    ej =  append ((\x -> f x `bind` g) x) ((xs `bind` f) `bind` g)
-
-
-
-    ek =  append ((\x -> f x `bind` g) x) (xs `bind` (\x -> f x `bind` g))
-    en =  C x xs `bind` (\x -> f x `bind` g)
-
--- | List definition
-
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-  (C x xs) == (C x' xs') = x == x' && xs == xs'
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen :: L a -> Int
-llen N = 0
-llen (C x xs) = 1 + llen xs
diff --git a/tests/error_messages/crash/TerminationExpr.hs b/tests/error_messages/crash/TerminationExpr.hs
deleted file mode 100644
--- a/tests/error_messages/crash/TerminationExpr.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module TerminationExpr where
-
-{-@ showSep :: _ -> xs:_ -> _ / [len ys] @-} -- use xs as reducing param
-showSep :: String -> [String] -> String
-showSep sep []     = ""
-showSep sep [x]    = x
-showSep sep (x:xs) = x ++ sep ++ showSep sep xs
-
diff --git a/tests/error_messages/crash/TerminationExpr1.hs b/tests/error_messages/crash/TerminationExpr1.hs
deleted file mode 100644
--- a/tests/error_messages/crash/TerminationExpr1.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module TerminationExpr where
-
-{-@ showSep :: _ -> xs:_ -> _ / [xs] @-} -- use xs as reducing param
-showSep :: String -> [String] -> String
-showSep sep []     = ""
-showSep sep [x]    = x
-showSep sep (x:xs) = x ++ sep ++ showSep sep xs
-
diff --git a/tests/error_messages/pos/TerminationExpr.hs b/tests/error_messages/pos/TerminationExpr.hs
deleted file mode 100644
--- a/tests/error_messages/pos/TerminationExpr.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module TerminationExpr where
-
-{-@ showSep :: _ -> xs:_ -> _ / [len xs] @-} -- use xs as reducing param
-showSep :: String -> [String] -> String
-showSep sep []     = ""
-showSep sep [x]    = x
-showSep sep (x:xs) = x ++ sep ++ showSep sep xs
-
diff --git a/tests/gradual/neg/Gradual.hs b/tests/gradual/neg/Gradual.hs
deleted file mode 100644
--- a/tests/gradual/neg/Gradual.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Gradual where
-
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-{-@ unsafe :: {v:Int | ?? } -> Int  -> (Int, Int) @-}
-unsafe :: Int -> Int -> (Int, Int)
-unsafe _ x = (bar1 x, bar2 x)
-
-
-{-@ bar1 :: {v:Int | v < 0} -> Int @-}
-bar1 :: Int -> Int 
-bar1 x = x 
-
-{-@ bar2 :: {v:Int | v = 0} -> Int @-}
-bar2 :: Int -> Int 
-bar2 x = x
diff --git a/tests/gradual/neg/Interpretations.hs b/tests/gradual/neg/Interpretations.hs
deleted file mode 100644
--- a/tests/gradual/neg/Interpretations.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- | Sec 4 from Gradual Refinement Types 
-
-module Interpretations where
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-{-@ g :: Int -> {v:Int | v == 0 && ?? } -> Int @-} 
-g :: Int -> Int -> Int 
-g = div 
-
-
-{-@ h :: {v:Int | ?? } -> {v:Int | ?? } -> {v:Int | v == 0 && ?? } -> Int @-} 
-h :: Int -> Int -> Int -> Int 
-h x y = div (x + y)
-
-
-{-@ f :: {v:Int | ?? } -> Int -> Int @-} 
-f :: Int -> Int -> Int 
-f = div
diff --git a/tests/gradual/neg/Intro.hs b/tests/gradual/neg/Intro.hs
deleted file mode 100644
--- a/tests/gradual/neg/Intro.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- | Sec 1 from Gradual Refinement Types 
-
-module Intro where
-
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-
-checkPos :: Int -> Int 
-{-@ checkPos :: {v:Int | 0 < v} -> {v:Int | 0 < v} @-}
-checkPos x = x 
-
-{-@ check :: {v:Int | true } -> {v:Bool | true } -} 
-check :: Int -> Bool 
-check x = undefined 
-
-safe x = if check x then checkPos x else checkPos (-x) 
-
-
-a :: Int -> Bool 
-{-@ a :: {v:Int | v < 0} -> Bool @-}
-a = undefined
-
-
-b :: Int -> Int 
-{-@ b :: {v:Int | v < 10} -> Int @-}
-b = undefined
-
-
-{-@ g0 :: {v:Int | true } -> Int @-} 
-g0 :: Int -> Int 
-g0 x = if a x then 1 `div` x else b x 
-
-{-@ g1 :: {v:Int | 0 < v && ?? } -> Int @-} 
-g1 :: Int -> Int 
-g1 x = if a x then 1 `div` x else b x 
diff --git a/tests/gradual/pos/Discussion.hs b/tests/gradual/pos/Discussion.hs
deleted file mode 100644
--- a/tests/gradual/pos/Discussion.hs
+++ /dev/null
@@ -1,33 +0,0 @@
--- | Sec 9 from Gradual Refinement Types 
-
-module Discussion where
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-{-@ get :: {v:Int | 0 <= v } -> Int @-} 
-get :: Int -> Int 
-get = undefined 
-
-{-@ check0 :: x:Int -> {v:Bool | ?? } @-} 
-check0 :: Int -> Bool 
-check0 = undefined 
-safe0 x = if check0 x then get x else get (-x)
-
-
-{-@ check1 :: x:Int -> {v:Bool | (v => 0 <= x) && (not v => x < 0) } @-} 
-check1 :: Int -> Bool 
-check1 = undefined 
-
-safe1 x = if check1 x then get x else get (-x)
-
-
-{-@ assume qual :: x:Int -> {v:Bool | (not v) => (x <= 0)} @-}
-qual :: Int -> Bool 
-qual = undefined 
-
-{-@ assume check2 :: x:Int -> {v:Bool | (v => (0 <= x)) && ?? } @-} 
-check2 :: Int -> Bool 
-check2 = undefined 
-
-safe2 :: Int -> Int 
-safe2 x = if check2 x then get x else get (-x)
diff --git a/tests/gradual/pos/Dynamic.hs b/tests/gradual/pos/Dynamic.hs
deleted file mode 100644
--- a/tests/gradual/pos/Dynamic.hs
+++ /dev/null
@@ -1,14 +0,0 @@
--- | Sec 5 from Gradual Refinement Types 
-
-module Interpretations where
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-{-@ f :: {v:Int | 0 < v } -> Int @-} 
-f :: Int -> Int 
-f = undefined  
-
-
-{-@ g :: x:{Int | ?? } -> y:{Int | x <= y } -> Int @-} 
-g :: Int -> Int -> Int 
-g x y = f y + x 
diff --git a/tests/gradual/pos/Gradual.hs b/tests/gradual/pos/Gradual.hs
deleted file mode 100644
--- a/tests/gradual/pos/Gradual.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module Gradual where
-
-{-@ LIQUID "--gradual"        @-}
-{-@ LIQUID "--savequery"      @-}
-
-{-@ safe :: {v:Int | ??  } -> Int @-}
-safe :: Int ->  Int
-safe x = if foo () then bar1 x else bar2 x
-
-{-@ foo :: () -> {v:Bool | true } @-} 
-foo :: () -> Bool 
-foo = undefined 
-
-{-@ bar1 :: {v:Int | v < 0 } -> Int @-}
-bar1 :: Int -> Int 
-bar1 x = x 
-
-{-@ bar2 :: {v:Int | v = 0} -> Int @-}
-bar2 :: Int -> Int 
-bar2 x = x
diff --git a/tests/gradual/pos/Interpretations.hs b/tests/gradual/pos/Interpretations.hs
deleted file mode 100644
--- a/tests/gradual/pos/Interpretations.hs
+++ /dev/null
@@ -1,19 +0,0 @@
--- | Sec 4 from Gradual Refinement Types 
-
-module Interpretations where
-{-@ LIQUID "--gradual"        @-}
-{-@ LIQUID "--savequery"      @-}
-{-@ LIQUID "--eliminate=none" @-}
-
-{-@ g :: Int -> {v:Int | ?? } -> Int @-} 
-g :: Int -> Int -> Int 
-g = div 
-
-
-{-@ h :: {v:Int | ?? } -> {v:Int | ?? } -> {v:Int |  ?? } -> Int @-} 
-h :: Int -> Int -> Int -> Int 
-h x y z = div (x + y) z
-
-{-@ f :: {v:Int | ?? } -> Int -> Int @-} 
-f :: Int -> Int -> Int 
-f = flip div
diff --git a/tests/gradual/pos/Intro.hs b/tests/gradual/pos/Intro.hs
deleted file mode 100644
--- a/tests/gradual/pos/Intro.hs
+++ /dev/null
@@ -1,36 +0,0 @@
--- | Sec 1 from Gradual Refinement Types 
-
-module Intro where
-
-{-@ LIQUID "--gradual"        @-}
-{-@ LIQUID "--savequery"      @-}
-
-
-checkPos :: Int -> Int 
-{-@ checkPos :: {v:Int | 0 < v} -> {v:Int | 0 < v} @-}
-checkPos x = x 
-
-{-@ check :: {v:Int | ?? } -> {v:Bool | ?? } @-} 
-check :: Int -> Bool 
-check x = undefined 
-
-safe x = if check x then checkPos x else checkPos (-x) 
-
-
-a :: Int -> Bool 
-{-@ a :: {v:Int | v < 0} -> Bool @-}
-a = undefined
-
-
-b :: Int -> Int 
-{-@ b :: {v:Int | v < 10} -> Int @-}
-b = undefined
-
-
-{-@ g0 :: {v:Int | ?? } -> Int @-} 
-g0 :: Int -> Int 
-g0 x = if a x then 1 `div` x else b x 
-
-{-@ g1 :: {v:Int | 0 < v && ?? } -> Int @-} 
-g1 :: Int -> Int 
-g1 x = if a (x-2) then 1 `div` x else b x 
diff --git a/tests/gradual/todo/Measures.hs b/tests/gradual/todo/Measures.hs
deleted file mode 100644
--- a/tests/gradual/todo/Measures.hs
+++ /dev/null
@@ -1,12 +0,0 @@
--- | Sec 8 from Gradual Refinement Types 
-
-module Measures where
-{-@ LIQUID "--gradual" @-}
-{-@ LIQUID "--extensionality" @-}
-{-@ LIQUID "--eliminate=none" @-}
-{-@ LIQUID "--scrape-used-imports" @-}
-
--- This does not work because I need the special locality treatment for measures
-{-@ f :: x:{v:[a] | ?? } -> {v:Int | ?? } -> a -> Bool @-}
-f :: Eq a => [a] -> Int -> a -> Bool  
-f xs i y= xs!!i == y 
diff --git a/tests/neg/ListRange.dat b/tests/neg/ListRange.dat
deleted file mode 100644
--- a/tests/neg/ListRange.dat
+++ /dev/null
@@ -1,1 +0,0 @@
-data List a << p:a (fld:a)>> = Nil | Cons x:a^True y:List a^p(x) << p(fld) >> --
diff --git a/tests/neg/Sumk.hquals b/tests/neg/Sumk.hquals
deleted file mode 100644
--- a/tests/neg/Sumk.hquals
+++ /dev/null
@@ -1,2 +0,0 @@
-qualif PPLUS0(v:int): v >= ~A + ~B
-qualif PPLUS1(v:int): v > ~A + ~B
diff --git a/tests/parser/pos/Parens.hs b/tests/parser/pos/Parens.hs
deleted file mode 100644
--- a/tests/parser/pos/Parens.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Parens where
-
-{-@ data Node a = Branch (BranchList a) @-}
-data Node a = Branch (BranchList a)
-data BranchList a = BL a
-
-{-@ test :: v:a -> (a, a) @-}
-test :: a -> (a,a)
-test x = (x,x)
-
-{-@
-measure listlen :: [a] -> Int
-listlen [] = 0
-listlen (x:xs) = 1 + listlen xs
-@-}
diff --git a/tests/parser/pos/TokensAsPrefixes.hs b/tests/parser/pos/TokensAsPrefixes.hs
deleted file mode 100644
--- a/tests/parser/pos/TokensAsPrefixes.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Fixme where
-
-{-@ instancesB :: Int -> Int @-}
-instancesB :: Int -> Int
-instancesB x = x
diff --git a/tests/pmap.py b/tests/pmap.py
deleted file mode 100644
--- a/tests/pmap.py
+++ /dev/null
@@ -1,30 +0,0 @@
-import itertools as it
-import threading, Queue
-
-class PMapWorker (threading.Thread):
-    def __init__ (self, f, q):
-        threading.Thread.__init__ (self)
-        self.results = list ()
-        self.f       = f
-        self.q       = q
-
-    def run(self):
-        while True:
-            try:
-                x = self.q.get_nowait ()
-                self.results.append (self.f (x))
-                self.q.task_done ()
-            except Queue.Empty:
-                return
-
-def map (threadcount, f, xs):
-    q = Queue.Queue ()
-    for x in xs:
-        q.put (x)
-
-    workers = [PMapWorker (f, q) for i in range (0, threadcount)]
-    for worker in workers:
-        worker.start ()
-    q.join ()
-
-    return it.chain (*[worker.results for worker in workers])
diff --git a/tests/pos/Deptup1.pred b/tests/pos/Deptup1.pred
deleted file mode 100644
--- a/tests/pos/Deptup1.pred
+++ /dev/null
@@ -1,1 +0,0 @@
-assumep mkPair :: forall a b. forAll p:b(fld:a). a -> b -> Pair a b <<p>>
diff --git a/tests/pos/GhcSort3.T.hs b/tests/pos/GhcSort3.T.hs
deleted file mode 100644
--- a/tests/pos/GhcSort3.T.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-module GhcSort () where
-
-{-@ type OList a =  [a]<{\fld v -> (v >= fld)}>  @-}
-
-{-@ assert sort3 :: (Ord a) => w:a -> [{v:a|v<=w}] -> OList a @-}
-sort3 :: (Ord a) => a -> [a] -> [a]
-sort3 w ls = qsort w ls [] (length ls) 0
-
-{-@ decrease qsort 5 6 @-}
-{-@ decrease rqsort 5 6 @-}
-{-@ decrease qpart 8 9 @-}
-{-@ decrease rqpart 8 9 @-}
-qsort :: (Ord a) =>  a -> [a] -> [a] -> Int -> Int -> [a]
-{-@ qsort, rqsort :: (Ord a) =>  w:a -> xs:[{v:a|v<=w}] -> OList {v:a|v>=w} -> {v:Int | v = (len xs) } -> {v:Int | v = 0 } -> OList a @-}
-qsort _ []     r _ _ = r
-qsort _ [x]    r _ _ = x:r
-qsort w (x:xs) r _ _ = qpart w x xs [] [] r (length xs) (length xs + 1)
-
-{-@ qpart, rqpart :: (Ord a) => w:a -> x:{v:a|v<=w} -> xs:[{v:a|v <= w}] -> lt:[{v:a|((v<=x) && (v<=w))}] -> ge:[{v:a|((v >= x) && (v<=w))}] -> rs:(OList {v:a|v >= w}) -> {v:Int | v = ((len xs) + (len lt) + (len ge))} -> {v:Int|v = (len xs) + 1} -> OList a @-}
-qpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> Int -> Int -> [a]
-qpart w x [] rlt rge r _ _ =
-    rqsort x rlt (x:rqsort w rge r (length rge) 0) (length rlt) 0
-qpart w x (y:ys) rlt rge r d1 d2 =
-    case compare x y of
-        GT -> qpart w x ys (y:rlt) rge r d1 (d2 - 1)
-        _  -> qpart w x ys rlt (y:rge) r d1 (d2 - 1)
-
-{- rqsort :: (Ord a) =>  w:a -> xs:[{v:a|v<=w}] -> OList {v:a|v>=w} -> {v:Int | v = (len xs) } -> {v:Int | v = 0 } -> OList a @-}
-rqsort :: (Ord a) => a -> [a] -> [a] -> Int -> Int -> [a]
-rqsort _ []     r _ _ = r
-rqsort _ [x]    r _ _ = x:r
-rqsort w (x:xs) r _ _ = rqpart w x xs [] [] r (length xs) (length xs + 1)
-
-rqpart :: (Ord a) => a -> a -> [a] -> [a] -> [a] -> [a] -> Int -> Int -> [a]
-rqpart w x [] rle rgt r _ _ =
-    qsort x rle (x:qsort w rgt r (length rgt) 0) (length rle) 0 
-rqpart w x (y:ys) rle rgt r d1 d2 =
-    case compare y x of
-        GT -> rqpart w x ys rle (y:rgt) r d1 (d2-1)
-        _  -> rqpart w x ys (y:rle) rgt r d1 (d2-1)
-
diff --git a/tests/pos/Termination.lhs b/tests/pos/Termination.lhs
deleted file mode 100644
--- a/tests/pos/Termination.lhs
+++ /dev/null
@@ -1,37 +0,0 @@
-\begin{code}
-module Termination where
-import Prelude hiding (sum)
-type Value = Int
-
-type Vec = Int -> Value
-
-{-@ sum :: Vec -> Nat -> Value @-}
-sum :: Vec -> Int -> Value
-sum a 0 = a 0
-sum a i = a i + sum a (i-1)
-
-{-@ sum' :: Vec -> Value -> n:Nat -> Value / [n] @-}
-sum' :: Vec -> Value -> Int -> Value
-sum' a acc 0 = acc + a 0 
-sum' a acc i = sum' a (acc + a i) (i-1)
-
-type Vec2D = Int -> Int -> Value
-
-{-@ sum2D :: Vec2D -> Nat -> Nat -> Value @-}
-sum2D :: Vec2D -> Int -> Int -> Value
-sum2D a n m = go n m
-  where 
-    {-@ go :: i:Nat -> j:Nat -> Value / [i, j] @-}
-    go 0 0        = a 0 0
-    go i j 
-      | j == 0    =  a i 0 + go (i-1) m
-      | otherwise =  a i j + go i (j-1)
-
-{-@ sumFromTo :: Vec -> lo:Nat -> hi:{v:Nat|v>=lo} -> Value @-}
-sumFromTo :: Vec -> Int -> Int ->  Value
-sumFromTo a lo hi = go lo hi
-  where 
-       {-@ go :: lo:Nat -> hi:{v:Nat|v>=lo} -> Value / [hi-lo] @-}
-        go lo hi | lo == hi  =  a lo
-                 | otherwise =  a lo + go (lo+1) hi
-\end{code}
diff --git a/tests/pos/sf/Basics.hs b/tests/pos/sf/Basics.hs
deleted file mode 100644
--- a/tests/pos/sf/Basics.hs
+++ /dev/null
@@ -1,390 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-{- NOTE:
-
-   1. See the TODO:trivial for cases where the instances seems to fail
-
-   2. Would be nice to have case-splitting combinatores,
-      e.g. for thmAndbCom,  thmAndbExch which are super boilerplate-y
-
-   3. For @minsheng: See the rewritten signature for `thmEqBeq`;
-      we don't really need `rewrite` as the SMT
-      does "congruence closure" automatically.
-
- -}
-
-module Basics where
-
-  -- (
-    -- -- * Booleans
-    -- Bool(..)
-  -- , negb, andb, orb
---
-    -- -- * Peano numerals
-  -- , Peano(..), toNat
-  -- , plus, mult
-  -- , beq, ble, blt
-  -- )
-  -- where
-
-import           Prelude (Char, Int)
-import qualified Prelude
-import           Language.Haskell.Liquid.ProofCombinators
-
-{-@ reflect incr @-}
-incr :: Int -> Int
-incr x = x Prelude.+ 1
-
---------------------------------------------------------------------------------
--- | Days ----------------------------------------------------------------------
---------------------------------------------------------------------------------
-
--- NOTE: clunky to have to redefine this ...
-
-{-@ data Day = Monday
-             | Tuesday
-             | Wednesday
-             | Thursday
-             | Friday
-             | Saturday
-             | Sunday
-  @-}
-
-data Day = Monday
-         | Tuesday
-         | Wednesday
-         | Thursday
-         | Friday
-         | Saturday
-         | Sunday
-
-{-@ reflect nextWeekDay @-}
-nextWeekDay :: Day -> Day
-nextWeekDay Monday    = Tuesday
-nextWeekDay Tuesday   = Wednesday
-nextWeekDay Wednesday = Thursday
-nextWeekDay Thursday  = Friday
-nextWeekDay Friday    = Monday
-nextWeekDay Saturday  = Monday
-nextWeekDay Sunday    = Monday
-
-
-{-@ testNextWeekDay :: { nextWeekDay (nextWeekDay Saturday) == Tuesday } @-}
-testNextWeekDay
-  = trivial
--- = nextWeekDay (nextWeekDay Saturday) ==. Tuesday *** QED
-
-
-
---------------------------------------------------------------------------------
--- | Booleans ------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ data Bool = True | False @-}
-data Bool = True | False
-
-{-@ reflect negb @-}
-negb :: Bool -> Bool
-negb True  = False
-negb False = True
-
-{-@ reflect orb @-}
-orb :: Bool -> Bool -> Bool
-orb False False = False
-orb _     _     = True
-
-{-@ testOr1 :: { orb True True == True } @-}
-testOr1 = trivial -- orb True True *** QED
-
-{-@ testOr2 :: { orb True False == True } @-}
-testOr2 = trivial -- orb True False *** QED
-
-{-@ testOr3 :: { orb False True == True } @-}
-testOr3 = trivial -- orb False True *** QED
-
-{-@ testOr4 :: { orb False False == False } @-}
-testOr4 = trivial -- orb False False *** QED
-
-{-@ reflect andb @-}
-andb :: Bool -> Bool -> Bool
-andb True True = True
-andb _    _    = False
-
-{-@ andbCom :: a:_ -> b:_ -> { andb a b = andb b a } @-}
-andbCom :: Bool -> Bool -> Proof
-andbCom a b = trivial
-
--- Exercise 1 ------------------------------------------------------------------
-
-{-@ reflect nandb @-}
-nandb :: Bool -> Bool -> Bool
-nandb a b = negb (andb a b)
-
-{-@ testNand1 :: { nandb True True == False }  @-}
-testNand1 = trivial
-
-{-@ testNand2 :: { nandb True False == True }  @-}
-testNand2 = trivial
-
-{-@ testNand3 :: { nandb False True == True }  @-}
-testNand3 = trivial
-
-{-@ testNand4 :: { nandb False False == True } @-}
-testNand4 = trivial
-
--- Exercise 2 ------------------------------------------------------------------
-
-{-@ reflect andb3 @-}
-andb3 :: Bool -> Bool -> Bool -> Bool
-andb3 a b c = andb (andb a b) c
-
-{-@ testAnd31 :: { andb3 True True True == True }  @-}
-testAnd31 = trivial
-
-{-@ testAnd32 :: { andb3 False True True == False }  @-}
-testAnd32 = trivial
-
-{-@ testAnd33 :: { andb3 True False True == False }  @-}
-testAnd33 = trivial
-
-{-@ testAnd34 :: { andb3 True True False == False }  @-}
-testAnd34 = trivial
-
---------------------------------------------------------------------------------
--- | Peano ---------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ data Peano [toNat] = O | S Peano @-}
-data Peano = O | S Peano
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat O     = 0
-toNat (S n) = 1 Prelude.+ toNat n
-
-{-@ reflect even @-}
-even :: Peano -> Bool
-even O         = True
-even (S O)     = False
-even (S (S n)) = even n
-
-{-@ test_Even0 :: { even O == True } @-}
-test_Even0 :: Proof
-test_Even0 = trivial
-
--- LH ISSUE #995
-{-@ test_Even4 :: { even (S (S (S (S O)))) == True } @-}
-test_Even4 :: Proof
-test_Even4
-  =   even (S (S (S (S O))))
-  ==. even (S (S O))
-  ==. even O
-  ==. True
-  *** QED
-
-{-@ test_Even5 :: { even (S (S (S (S (S O))))) = False } @-}
-test_Even5 :: Proof
-test_Even5
-  =   even (S (S (S (S (S O)))))
-  ==. even (((S (S (S O)))))
-  ==. even (((((S O)))))
-  ==. False
-  *** QED
-
--- | Plus & Mult ---------------------------------------------------------------
-
-{-@ reflect plus @-}
-plus :: Peano -> Peano -> Peano
-plus O     n = n
-plus (S m) n = S (plus m n)
-
-{-@ reflect mult @-}
-mult :: Peano -> Peano -> Peano
-mult n m = case n of
-  O    -> O
-  S O  -> m
-  S n' -> plus m (mult n' m)
-
-{- TODO:trivial testPlus1 :: { plus (S (S O)) O == (S (S O)) } @-}
-testPlus1 = trivial
-
-{- TODO:trivial testMult1 :: { mult (S (S O)) (S (S O)) == (S (S (S (S O)))) } @-}
-testMult1 = trivial
-
--- | Factorial -----------------------------------------------------------------
-
-{-@ reflect factorial @-}
-factorial :: Peano -> Peano
-factorial O     = O
-factorial (S O) = S O
-factorial (S n) = mult (S n) (factorial n)
-
-{- TODO:trivial testFactorial1 :: { factorial (S (S (S O)))  == S (S (S (S (S (S O))))) } @-}
-testFactorial1 = trivial
-
--- | Peano Comparisons ---------------------------------------------------------
-
-{-@ reflect beq @-}
-beq :: Peano -> Peano -> Bool
-beq O     O     = True
-beq (S m) (S n) = beq m n
-beq _     _     = False
-
-{-@ reflect ble @-}
-ble :: Peano -> Peano -> Bool
-ble O     _     = True
-ble (S m) O     = False
-ble (S m) (S n) = ble m n
-
-{-@ testBle1 :: { ble (S (S O)) (S (S O))  == True } @-} -- TODO:trivial
-testBle1
-  =   ble (S (S O)) (S (S O))
-  ==. ble ((S O)) ((S O))
-  ==. ble O O
-  *** QED
-
-{-@ testBle2 :: { ble (S (S O)) (S (S (S O)))  == True } @-} -- TODO:trivial
-testBle2
-  =   ble (S (S O)) (S (S (S O)))
-  ==. ble (S O) (S (S O))
-  ==. ble O (S O)
-  *** QED
-
-{-@ testBle3 :: { ble  (S (S (S O))) (S (S O)) == False } @-} -- TODO:trivial
-testBle3
-  =   ble (S (S (S O))) (S (S O))
-  ==. ble (S (S O)) (S O)
-  ==. ble (S O) O
-  *** QED
-
--- | Exercise blt --------------------------------------------------------------
-
-{-@ reflect blt @-}
-blt :: Peano -> Peano -> Bool
-blt O     O     = False
-blt O     (S n) = True
-blt (S m) O     = False
-blt (S m) (S n) = blt m n
-
-{-@ testBlt1 :: { blt (S (S O)) (S (S O))  == False } @-} -- TODO:trivial
-testBlt1
-  =   blt (S (S O)) (S (S O))
-  ==. blt ((S O)) ((S O))
-  ==. blt O O
-  *** QED
-
-{-@ testBlt2 :: { ble (S (S O)) (S (S (S O)))  == True } @-} -- TODO:trivial
-testBlt2
-  =   ble (S (S O)) (S (S (S O)))
-  ==. ble (S O) (S (S O))
-  ==. ble O (S O)
-  *** QED
-
-{-@ testBlt3 :: { ble  (S (S (S O))) (S (S O)) == False } @-} -- TODO:trivial
-testBlt3
-  =   ble (S (S (S O))) (S (S O))
-  ==. ble (S (S O)) (S O)
-  ==. ble (S O) O
-  *** QED
-
--- | Proof by Simplification ---------------------------------------------------
-
-{-@ thmPlus_O_l :: n:Peano -> { plus O n == n } @-}
-thmPlus_O_l :: Peano -> Proof
-thmPlus_O_l n = trivial
-
-{-@ thmPlus_1_N :: n:Peano -> { plus (S O) n = S n } @-}
-thmPlus_1_N :: Peano -> Proof
-thmPlus_1_N n = trivial
-
-{-@ thmMult_0_l :: n:Peano -> { mult O n = O } @-}
-thmMult_0_l :: Peano -> Proof
-thmMult_0_l n = trivial
-
--- | Proof by Simplification ---------------------------------------------------
-
-{-@ thmPlusId :: a:Peano -> b:Peano -> { a = b => plus a a = plus b b } @-}
-thmPlusId :: Peano -> Peano -> Proof
-thmPlusId a b = trivial
-
-{-@ thmPlusId' :: n:Peano -> m:Peano -> o:Peano -> { n = m => m = o => plus n m = plus m o } @-}
-thmPlusId' :: Peano -> Peano -> Peano -> Proof
-thmPlusId' n m o = trivial
-
-{-@ thmMultOPlus :: n: Peano -> m: Peano -> { mult (plus O n) m = mult n m } @-}
-thmMultOPlus :: Peano -> Peano -> Proof
-thmMultOPlus n m = trivial
-
-{-@ thmMultS1 :: m:Peano -> n:Peano -> { S n = m => mult m (S n) = mult m m } @-}
-thmMultS1 :: Peano -> Peano -> Proof
-thmMultS1 m n = trivial
-
--- | Proof by Case Analysis ----------------------------------------------------
-
-{-@ thmPlus1Neq0 :: n:Peano -> { beq (plus n (S O)) O = False } @-}
-thmPlus1Neq0 :: Peano -> Proof
-thmPlus1Neq0 O     = trivial
-thmPlus1Neq0 (S n) = trivial
-
-{-@ thmNegbInvolutive :: b:Bool -> { negb (negb b) == b} @-}
-thmNegbInvolutive :: Bool -> Proof
-thmNegbInvolutive True  = trivial
-thmNegbInvolutive False = trivial
-
-{-@ thmAndbCom :: a:Bool -> b:Bool -> {andb a b == andb b a} @-}
-thmAndbCom True  True  = trivial
-thmAndbCom True  False = trivial
-thmAndbCom False True  = trivial
-thmAndbCom False False = trivial
-
-{-@ thmAndbExch :: a:Bool -> b:Bool -> c:Bool
-                -> { andb (andb a b) c == andb (andb a c) b }
-  @-}
-thmAndbExch :: Bool -> Bool -> Bool -> Proof
-thmAndbExch True  True  True  = trivial
-thmAndbExch True  True  False = trivial
-thmAndbExch True  False True  = trivial
-thmAndbExch True  False False = trivial
-thmAndbExch False True  True  = trivial
-thmAndbExch False True  False = trivial
-thmAndbExch False False True  = trivial
-thmAndbExch False False False = trivial
-
-{-@ thmAndbTrueElim2 :: b:Bool -> c:Bool -> { andb b c = True => c = True } @-} -- TODO:trivial
-thmAndbTrueElim2 :: Bool -> Bool -> Proof
-thmAndbTrueElim2 False False = andb False False *** QED
-thmAndbTrueElim2 False True  = andb False True  *** QED
-thmAndbTrueElim2 True  False = andb True  False *** QED
-thmAndbTrueElim2 True  True  = andb True  True  *** QED
-
-{-@ thm0NeqPlus1 :: n:Peano -> { beq O (plus n (S O)) = False } @-}
-thm0NeqPlus1 :: Peano -> Proof
-thm0NeqPlus1 O     = trivial
-thm0NeqPlus1 (S n) = trivial
-
-
-{-@ thmIdTwice :: f:(x:Bool -> {v:Bool | v = x}) -> b:Bool -> { f (f b) = b } @-}
-thmIdTwice :: (Bool -> Bool) -> Bool -> Proof
-thmIdTwice f b
-  =   f (f b)
-  ==. b
-  *** QED
-
-{-@ thmNegTwice :: f:(x:Bool -> {v:Bool | v = negb x}) -> b:Bool -> { f (f b) = b } @-}
-thmNegTwice :: (Bool -> Bool) -> Bool -> Proof
-thmNegTwice f b
-  =   f (f b)
-  ==. b ? thmNegbInvolutive b
-  *** QED
-
--- RJ: You can rewrite
---   (m : Peano) -> (n : Peano) -> (eqProof : m = n) -> (beq m n = True)
-
-{-@ thmEqBeq :: m:Peano -> n:Peano -> { v : Proof |  m = n } -> { beq m n = True } @-}
-thmEqBeq :: Peano -> Peano -> Proof -> Proof
-thmEqBeq O O _         = trivial
-thmEqBeq (S m) (S n) _ = thmEqBeq m n trivial
diff --git a/tests/pos/sf/Induction.hs b/tests/pos/sf/Induction.hs
deleted file mode 100644
--- a/tests/pos/sf/Induction.hs
+++ /dev/null
@@ -1,133 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module Induction where
-
-import           Prelude (Char, Int, Bool(..))
-import qualified Prelude
-
-import Language.Haskell.Liquid.ProofCombinators
-
-{-@ data Peano [toNat] = O | S Peano @-}
-data Peano = O | S Peano
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat O     = 0
-toNat (S n) = 1 Prelude.+ toNat n
-
-{-@ reflect natPlus @-}
-{-@ natPlus :: Peano -> Peano -> Peano @-}
-natPlus :: Peano -> Peano -> Peano
-natPlus O     n = n
-natPlus (S m) n = S (natPlus m n)
-
-{-@ reflect natMult @-}
-{-@ natMult :: Peano -> Peano -> Peano @-}
-natMult :: Peano -> Peano -> Peano
-natMult n m = case n of
-  O    -> O
-  S n' -> natPlus m (natMult n' m)
-
-{-@ theorem_plus_n_O :: n : Peano -> { n == natPlus n O } @-}
-theorem_plus_n_O :: Peano -> Proof
-theorem_plus_n_O O     = ( natPlus O O ) *** QED
-theorem_plus_n_O (S n) = ( natPlus (S n) O
-                         , theorem_plus_n_O n
-                         ) *** QED
-
-{-@ theorem_mult_0_r :: n : Peano -> { natMult n O = O } @-}
-theorem_mult_0_r :: Peano -> Proof
-theorem_mult_0_r O     = natMult O O *** QED
-theorem_mult_0_r (S n) = ( natMult (S n) O
-                         , theorem_mult_0_r n
-                         , natPlus O O
-                         ) *** QED
-
-{-@ theorem_plus_n_Sm :: n : Peano -> m : Peano
-  -> { S (natPlus n m) = natPlus n (S m) }
-@-}
-theorem_plus_n_Sm :: Peano -> Peano -> Proof
-theorem_plus_n_Sm O     m = ( natPlus O m, natPlus O (S m) ) *** QED
-theorem_plus_n_Sm (S n) m = ( natPlus (S n) m
-                            , natPlus (S n) (S m)
-                            , theorem_plus_n_Sm n m
-                            ) *** QED
-
-{-@ theorem_plus_comm :: n : Peano -> m : Peano
-  -> { natPlus n m = natPlus m n }
-@-}
-theorem_plus_comm :: Peano -> Peano -> Proof
-theorem_plus_comm O     m = ( natPlus O m, theorem_plus_n_O m ) *** QED
-theorem_plus_comm (S n) m = ( natPlus (S n) m
-                            , theorem_plus_comm n m
-                            , theorem_plus_n_Sm m n
-                            ) *** QED
-
-{-@ theorem_plus_assoc :: n : Peano -> m : Peano -> p : Peano
-  -> { natPlus n (natPlus m p) = (natPlus (natPlus n m) p) }
-@-}
-theorem_plus_assoc :: Peano -> Peano -> Peano -> Proof
-theorem_plus_assoc O     m p = ( natPlus O (natPlus m p)
-                               , natPlus O m
-                               ) *** QED
-theorem_plus_assoc (S n) m p = ( natPlus (S n) (natPlus m p)
-                               , natPlus (S n) m
-                               , natPlus (S (natPlus n m)) p
-                               , theorem_plus_assoc n m p
-                               ) *** QED
-
-{-@ reflect double @-}
-{-@ double :: Peano -> Peano @-}
-double :: Peano -> Peano
-double O     = O
-double (S n) = S (S (double n))
-
-{-@ theorem_double_plus :: n : Peano -> { double n = natPlus n n } @-}
-theorem_double_plus :: Peano -> Proof
-theorem_double_plus O     = ( double O, natPlus O O ) *** QED
-theorem_double_plus (S n) = ( double (S n)
-                            , theorem_double_plus n
-                            , natPlus (S n) (S n)
-                            , theorem_plus_n_Sm n n
-                            ) *** QED
-
-{-@ theorem_plus_swap :: n : Peano -> m : Peano -> p : Peano
-  -> { natPlus n (natPlus m p) = natPlus m (natPlus n p) }
-@-}
-theorem_plus_swap :: Peano -> Peano -> Peano -> Proof
-theorem_plus_swap n m p = ( theorem_plus_assoc n m p
-                          , theorem_plus_comm n m
-                          , theorem_plus_assoc m n p
-                          ) *** QED
-
-{-@ lemma_mult_distrib_S_n :: m : Peano -> n : Peano
-  -> { natMult m (S n) = natPlus m (natMult m n) }
-@-}
-lemma_mult_distrib_S_n :: Peano -> Peano -> Proof
-lemma_mult_distrib_S_n O     n = ( natMult O (S n)
-                                 , natMult O n
-                                 , natPlus O O
-                                 ) *** QED
-lemma_mult_distrib_S_n (S m) n = ( natMult (S m) (S n)
-                                 , natPlus (S n) (natMult m (S n))
-                                 , natPlus (S m) (natMult (S m) n)
-                                 , natMult (S m) n
-                                 , lemma_mult_distrib_S_n m n
-                                 , theorem_plus_swap n m (natMult m n)
-                                 ) *** QED
-
-{-@ theorem_mult_comm :: m : Peano -> n : Peano
-                      -> { natMult m n = natMult n m }
-@-}
-theorem_mult_comm :: Peano -> Peano -> Proof
-theorem_mult_comm O     n = ( natMult O n
-                            , theorem_mult_0_r n
-                            ) *** QED
-theorem_mult_comm (S m) n = ( natMult (S m) n
-                            , theorem_mult_comm m n
-                            , lemma_mult_distrib_S_n n m
-                            ) *** QED
diff --git a/tests/pos/sf/InductionRJ.hs b/tests/pos/sf/InductionRJ.hs
deleted file mode 100644
--- a/tests/pos/sf/InductionRJ.hs
+++ /dev/null
@@ -1,196 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module Induction where
-
-import qualified Prelude
-import           Prelude (Char, Int, Bool (..))
-import Language.Haskell.Liquid.ProofCombinators
-
--- TODO:import Basics
-
-{-@ data Peano [toNat] = O | S Peano @-}
-data Peano = O | S Peano
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat O     = 0
-toNat (S n) = 1 Prelude.+ toNat n
-
-{-@ reflect plus @-}
-plus :: Peano -> Peano -> Peano
-plus O     n = n
-plus (S m) n = S (plus m n)
-
-{-@ reflect mult @-}
-mult :: Peano -> Peano -> Peano
-mult n m = case n of
-  O    -> O
-  S n' -> plus m (mult n' m)
-
-{-@ data BBool = BTrue | BFalse @-}
-data BBool = BTrue | BFalse
-
-{-@ reflect negb @-}
-negb :: BBool -> BBool
-negb BTrue  = BFalse
-negb BFalse = BTrue
-
-{-@ reflect even @-}
-even :: Peano -> BBool
-even O         = BTrue
-even (S O)     = BFalse
-even (S (S n)) = even n
-
---------------------------------------------------------------------------------
--- | Exercise : basic_induction ------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ thmPlusNO :: n:Peano -> { plus n O == n } @-}
-thmPlusNO       :: Peano -> Proof
-thmPlusNO O     = trivial
-thmPlusNO (S n) = thmPlusNO n
-
-{-@ thmMultOR :: n:Peano -> { mult n O == O } @-}
-thmMultOR :: Peano -> Proof
-thmMultOR O     = trivial
-thmMultOR (S n) = thmMultOR n
-
-{-@ thmPlusNSm :: n:Peano -> m:Peano -> {S (plus n m) == plus n (S m)} @-}
-thmPlusNSm :: Peano -> Peano -> Proof
-thmPlusNSm O     m = trivial
-thmPlusNSm (S n) m = thmPlusNSm n m
-
-{-@ thmPlusCom :: n:Peano -> m:Peano -> { plus n m == plus m n} @-}
-thmPlusCom :: Peano -> Peano -> Proof
-thmPlusCom O     m = thmPlusNO m
-thmPlusCom (S n) m = [ thmPlusCom n m, thmPlusNSm m n ] *** QED
-
-{-@ thmPlusAssoc :: a:Peano -> b:Peano -> c:Peano
-                 -> { plus a (plus b c) = (plus (plus a b) c) } @-}
-thmPlusAssoc :: Peano -> Peano -> Peano -> Proof
-thmPlusAssoc O     b c = trivial
-thmPlusAssoc (S a) b c = thmPlusAssoc a b c
-
-{- NOTE:Compare the above to:
-
-{-@ thmPlusAssoc :: a b c : Peano -> { plus a (plus b c) = (plus (plus a b) c)} @-}
-
-  x y z : s -> t
-  x:s -> y:s -> z:s -> t
-
-Theorem plus_assoc' : ∀n m p : nat,
-  n + (m + p) = (n + m) + p.
-Proof. intros n m p. induction n as [| n' IHn']. reflexivity.
-  simpl. rewrite → IHn'. reflexivity. Qed.
-
-Coq is perfectly happy with this. For a human, however, it is difficult to make much sense of it. We can use comments and bullets to show the structure a little more clearly...
-
-Theorem plus_assoc'' : ∀n m p : nat,
-  n + (m + p) = (n + m) + p.
-Proof.
-  intros n m p. induction n as [| n' IHn'].
-  - (* n = 0 *)
-    reflexivity.
-  - (* n = S n' *)
-    simpl. rewrite → IHn'. reflexivity. Qed.
-
- -}
-
---------------------------------------------------------------------------------
--- | Exercise : double_plus ----------------------------------------------------
---------------------------------------------------------------------------------
-{-@ reflect double @-}
-double :: Peano -> Peano
-double O     = O
-double (S n) = S (S (double n))
-
-{-@ thmDoublePlus :: n:Peano -> { double n == plus n n } @-}
-thmDoublePlus :: Peano -> Proof
-thmDoublePlus O     = trivial
-thmDoublePlus (S n) = [ -- double (S n)
-                        -- ==. S (S (double n)) ?
-                        thmDoublePlus n
-                        -- ==. S (S (plus n n)) ?
-                      , thmPlusNSm n n
-                        -- ==. S (plus n (S n))
-                        -- ==. plus (S n) (S n)
-                      ] *** QED
-
-{-@ thmEvenS :: n:Peano -> { even (S n) == negb (even n) } @-}
-thmEvenS :: Peano -> Proof
-thmEvenS O         = trivial
-thmEvenS (S O)     = trivial
-thmEvenS (S (S n)) = thmEvenS n
-
-                   -- =   negb (even (S (S n)))
-                   -- ==. negb (even n)
-                   -- ==. even (S n)       ? thmEvenS n
-                   -- *** QED
-
-{- NOTE: An interesting example of `trivial`: the following
-
-       Theorem mult_0_plus' : ∀n m : nat,
-         (0 + n) * m = n * m.
-       Proof.
-         intros n m.
-         assert (H: 0 + n = n). { reflexivity. }
-         rewrite → H.
-         reflexivity. Qed.
-
-   is simply trivial.
-
-  -}
-
-{-@ thmMultOPlus :: n:_ -> m:_ -> { mult (plus O n) m = mult n m } @-}
-thmMultOPlus :: Peano -> Peano -> Proof
-thmMultOPlus n m = trivial
-
-{-@ thmPlusRearrange :: n:Peano -> m:Peano -> p:Peano -> q:Peano
-                     -> { plus (plus n m) (plus p q) = plus (plus m n) (plus p q) }  @-}
-
-thmPlusRearrange :: Peano -> Peano -> Peano -> Peano -> Proof
-thmPlusRearrange n m p q = thmPlusCom n m
-
-{-@ thmPlusSwap :: n : Peano -> m : Peano -> p : Peano
-                -> { plus n (plus m p) = plus m (plus n p) }  @-}
-thmPlusSwap :: Peano -> Peano -> Peano -> Proof
-thmPlusSwap n m p = [ -- plus n (plus m p) ?
-                      thmPlusAssoc n m p
-                      -- ==. plus (plus n m) p ?
-                    , thmPlusCom n m
-                      -- ==. plus (plus m n) p ?
-                    , thmPlusAssoc m n p
-                      -- ==. plus m (plus n p)
-                    ] *** QED
-
-
-{-@ thmMultSR :: m:Peano -> n:Peano -> { plus m (mult m n) = mult m (S n) } @-}
-thmMultSR :: Peano -> Peano -> Proof
-thmMultSR O     n = trivial
-thmMultSR (S m) n = [ -- plus (S m) (mult (S m) n)
-                      -- ==. plus (S m) (plus n     (mult m n))
-                      -- ==. plus n     (plus (S m) (mult m n))  ?
-                      thmPlusSwap n (S m) (mult m n)
-                      -- ==. plus n     (S (plus m  (mult m n))) ?
-                    , thmPlusNSm n (plus m (mult m n))
-                      -- ==. S (plus n (plus m (mult m n)))
-                      -- ==. plus (S n) (plus m (mult m n))      ?
-                    , thmMultSR m n
-                      -- ==. plus (S n) (mult m (S n))
-                      -- ==. mult (S m) (S n)
-                    ] *** QED
-
-{-@ thmMultCom :: n:Peano -> m:Peano -> { mult n m = mult m n } @-}
-thmMultCom :: Peano -> Peano -> Proof
-thmMultCom O     m = thmMultOR m
-thmMultCom (S n) m = [ -- mult (S n) m
-                       -- ==. plus m (mult n m) ?
-                       thmMultCom n m
-                       -- ==. plus m (mult m n) ?
-                     , thmMultSR  m n
-                       -- ==. mult m (S n)
-                     ] *** QED
diff --git a/tests/pos/test00.old.hs b/tests/pos/test00.old.hs
deleted file mode 100644
--- a/tests/pos/test00.old.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Test0 () where
-
-import Language.Haskell.Liquid.Prelude
-
-x = choose 0
-
-prop_abs = if x `gt` 0 then baz x else False
-
-baz   :: Int -> Bool
-baz z = liquidAssertB (z `geq` 0)
-
diff --git a/tests/pos/test000.hs.hquals b/tests/pos/test000.hs.hquals
deleted file mode 100644
--- a/tests/pos/test000.hs.hquals
+++ /dev/null
@@ -1,1 +0,0 @@
-qualif Foo(v: Int): v = 10
diff --git a/tests/regrtest.py b/tests/regrtest.py
deleted file mode 100644
--- a/tests/regrtest.py
+++ /dev/null
@@ -1,176 +0,0 @@
-#!/usr/bin/python
-# Copyright (c) 2009 The Regents of the University of California. All rights reserved.
-#
-# Permission is hereby granted, without written agreement and without
-# license or royalty fees, to use, copy, modify, and distribute this
-# software and its documentation for any purpose, provided that the
-# above copyright notice and the following two paragraphs appear in
-# all copies of this software.
-#
-# IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
-# FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
-# ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN
-# IF THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY
-# OF SUCH DAMAGE.
-#
-# THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
-# INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
-# AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS
-# ON AN "AS IS" BASIS, AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION
-# TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
-
-import time, subprocess, optparse, sys, socket, os
-sys.path.append("../")
-import rtest as rtest
-
-solve         = "liquid ".split()
-null          = open("/dev/null", "w")
-now	          = (time.asctime(time.localtime(time.time()))).replace(" ","_")
-logfile       = "../tests/logs/regrtest_results_%s_%s" % (socket.gethostname (), now)
-argcomment    = "--! run with "
-liquidcomment = "{--! run liquid with "
-endcomment    = "-}"
-
-def logged_sys_call(args, out=None, err=None, dir=None):
-  print "exec: " + " ".join(args)
-  return subprocess.call(args, stdout=out, stderr=err, cwd=dir)
- 
-def solve_quals(dir,file,bare,time,quiet,flags,lflags):
-  if quiet: out = null
-  else: out = None
-  if time: time = ["time"]
-  else: time = []
-  if lflags: lflags = ["--" + f for f in lflags]
-  hygiene_flags = []
-  (dn, bn) = os.path.split(file)
-  try:
-    os.makedirs(os.path.join(dir,dn,".liquid"))
-  except OSError:
-    pass
-  out = open(os.path.join(dir,dn,".liquid",bn) + ".log", "w")
-  rv  = logged_sys_call(time + solve + flags + lflags + hygiene_flags + [file],
-                        out=None, err=subprocess.STDOUT, dir=dir)
-  out.close()
-  return rv
-
-def run_script(file,quiet):
-  if quiet: out = null
-  else: out = None
-  return logged_sys_call(file, out)
-
-def getfileargs(file):
-  f = open(file)
-  l = f.readline()
-  f.close()
-  if l.startswith(argcomment):
-    return l[len(argcomment):].strip().split(" ")
-  else:
-    return []
-
-def getliquidargs(file):
-  f = open(file)
-  l = f.readline()
-  f.close()
-  if l.startswith(liquidcomment):
-    return [arg for arg in l[len(liquidcomment):].strip().split(" ")
-                     if arg!=endcomment]
-  else:
-    return []
-
-
-class Config (rtest.TestConfig):
-  def __init__ (self, dargs, testdirs, logfile, threadcount):
-    rtest.TestConfig.__init__ (self, testdirs, logfile, threadcount)
-    self.dargs = dargs
-
-  def run_test (self, dir, file):
-    path = os.path.join(dir,file)
-    if self.is_test(file):
-      lflags = getliquidargs(path)
-      fargs  = getfileargs(path)
-      fargs  = self.dargs + fargs  
-      return solve_quals(dir, file, True, False, True, fargs, lflags)
-    elif file.endswith(".sh"):
-      return run_script(path, True)
-
-  def is_test (self, file):
-    return file.endswith(".hs") # or file.endswith(".lhs")
-
-#####################################################################################
-
-#DEFAULT
-
-textIgnored = { "Data/Text/Axioms.hs"
-              , "Data/Text/Encoding/Error.hs"
-              , "Data/Text/Encoding/Fusion.hs"
-              , "Data/Text/Encoding/Fusion/Common.hs"
-              , "Data/Text/Encoding/Utf16.hs"
-              , "Data/Text/Encoding/Utf32.hs"
-              , "Data/Text/Encoding/Utf8.hs"
-              , "Data/Text/Fusion/CaseMapping.hs"
-              , "Data/Text/Fusion/Common.hs"
-              , "Data/Text/Fusion/Internal.hs"
-              , "Data/Text/IO.hs"
-              , "Data/Text/IO/Internal.hs"
-              , "Data/Text/Lazy/Builder/Functions.hs"
-              , "Data/Text/Lazy/Builder/Int.hs"
-              , "Data/Text/Lazy/Builder/Int/Digits.hs"
-              , "Data/Text/Lazy/Builder/Internal.hs"
-              , "Data/Text/Lazy/Builder/RealFloat.hs"
-              , "Data/Text/Lazy/Builder/RealFloat/Functions.hs"
-              , "Data/Text/Lazy/Encoding/Fusion.hs"
-              , "Data/Text/Lazy/IO.hs"
-              , "Data/Text/Lazy/Read.hs"
-              , "Data/Text/Read.hs"
-              , "Data/Text/Unsafe/Base.hs"
-              , "Data/Text/UnsafeShift.hs"
-              , "Data/Text/Util.hs"
-              }
-
-demosIgnored = { "Composition.hs"
-               , "Eval.hs"
-               , "Inductive.hs"
-               , "Loop.hs"
-               , "TalkingAboutSets.hs"
-               , "refinements101reax.hs"
-               }
-
-regtestdirs  = [ ("pos", {}, 0)
-               , ("neg", {}, 1)
-               , ("crash", {}, 2)
-               , ("parser/pos", {}, 0)
-               , ("error_messages/pos", {}, 0)
-               , ("error_messages/crash", {}, 2)
-               ]
-
-benchtestdirs = [ ("../web/demos", demosIgnored, 0)
-                , ("../benchmarks/esop2013-submission", {"Base0.hs"}, 0)
-                , ("../benchmarks/bytestring-0.9.2.1", {}, 0)
-                , ("../benchmarks/text-0.11.2.3", textIgnored, 0)
-                , ("../benchmarks/vector-algorithms-0.5.4.2", {}, 0)
-                , ("../benchmarks/hscolour-1.20.0.0", {}, 0)
-                ]
-
-parser = optparse.OptionParser()
-parser.add_option("-a", "--all", action="store_true", dest="alltests", help="run all tests")
-parser.add_option("-t", "--threads", dest="threadcount", default=1, type=int, help="spawn n threads")
-parser.add_option("-o", "--opts", dest="opts", default=[], action='append', type=str, help="additional arguments to liquid")
-parser.disable_interspersed_args()
-options, args = parser.parse_args()
-
-print "options =", options
-print "args =", args
-
-def testdirs():
-  global testdirs
-  if options.alltests:
-    return regtestdirs + benchtestdirs
-  else:
-    return regtestdirs
-
-testdirs = testdirs()
-
-clean = os.path.abspath("../cleanup")
-[os.system(("cd %s; %s; cd ../" % (d,clean))) for (d,_,_) in testdirs]
-runner = rtest.TestRunner (Config (options.opts, testdirs, logfile, options.threadcount))
-sys.exit(runner.run())
diff --git a/tests/rtest.py b/tests/rtest.py
deleted file mode 100644
--- a/tests/rtest.py
+++ /dev/null
@@ -1,114 +0,0 @@
-import time, os, os.path
-import pmap
-import itertools as it
-import threading, Queue
-
-class LogWriter (threading.Thread):
-    def __init__ (self, logfile, q):
-        threading.Thread.__init__ (self)
-        self.log  = open (logfile, "w")
-        self.q    = q
-        self.halt = False
-        self.log.write("test, time(s), result \n")
-
-    def __del__ (self):
-        self.log.close ()
-
-    def run (self):
-        while not self.halt:
-            try:
-                file, runtime, ok = self.q.get (timeout=1)
-                self.log.write("%s, %f, %s \n" % (file, runtime, ok))
-                self.log.flush()
-                self.q.task_done ()
-            except Queue.Empty:
-                pass
-
-class TestConfig:
-    def __init__ (self, testdirs, logfile = None, threadcount = 1):
-        self.testdirs    = testdirs
-        self.valid_exits = [x for d, i, x in self.testdirs]
-        if logfile != None:
-            self.logq   = Queue.Queue ()
-            self.logger = LogWriter (logfile, self.logq)
-            self.logger.start ()
-        else:
-            self.logger = None
-        self.exceptions  = list()
-        self.threadcount = threadcount
-
-    def finalize (self):
-        if self.logger != None:
-            self.logger.halt = True
-
-    def is_test (self, file):
-        pass
-
-    def run_test (self, file):
-        pass
-
-    def log_test (self, file, runtime, ok):
-        if self.logger != None:
-            self.logq.put ((file, runtime, ok))
-
-        if ok not in self.valid_exits:
-            self.exceptions.append (file)
-  
-class TestRunner:
-    def __init__ (self, config):
-        self.config = config
-
-    def run_test (self, (dir, file, expected_statuses)):
-        path    = os.path.join(dir, file)
-        start   = time.time ()
-        status  = self.config.run_test (dir, file)
-        runtime = time.time () - start
-        print "%f seconds" % (runtime)
-
-        if hasattr (expected_statuses, '__iter__'):
-          ok = (status in expected_statuses) 
-        else:
-          ok = (status == expected_statuses)
-        if ok:
-            print "\033[1;32mSUCCESS!\033[1;0m (%s)\n" % (path)
-        else:
-            print "\033[1;31mFAILURE :(\033[1;0m (%s) \n" % (path)
-        self.config.log_test(path, runtime, ok)
-        
-        return (dir + "/" + file, ok, status not in self.config.valid_exits)
-
-    def run_tests (self, tests):
-        results   = pmap.map (self.config.threadcount, self.run_test, tests)
-        self.config.finalize()
-        failed    = sorted([(result[0], result[2]) for result in results if result[1] == False])
-        failcount = len(failed)
-        if failcount == 0:
-            print "\n\033[1;32mPassed all tests! :D\033[1;0m"
-        else:
-            failnames  = [fail[0] for fail in failed]
-            print "\n\033[1;31mFailed %d tests:\033[1;0m \n %s \n" % (failcount, ",\n  ".join(failnames))
-
-            exceptions = [fail[0] for fail in failed if fail[1]]
-            if exceptions != []:
-                print "\n\033[1;31mExceptions thrown on %d tests:\033[1;0m \n  %s \n" % (len(exceptions), ",\n  ".join(exceptions))
-
-        return (failcount != 0)
-
-    def directory_tests (self, dir, ignored, expected_status):
-        paths = [(dir, os.path.relpath(os.path.join(d, f), dir))
-                 for d,_,files in os.walk(dir)
-                 for f in files]
-        return it.chain([(dir, file, expected_status)
-                         for dir, file in paths
-                         if self.config.is_test (file) and file not in ignored])
-
-        # return it.chain(*[[(dir, os.path.relpath(os.path.join (dir_, file),dir),
-        #                     expected_status)
-        #                    for file in files
-        #                    if self.config.is_test (file) and file not in ignored]
-        #                   for dir_, _, files in os.walk(dir)])
-
-    def run (self):
-        return self.run_tests (it.chain (*[self.directory_tests (dir, ignored, expected_status)
-                                           for dir, ignored, expected_status
-                                           in self.config.testdirs]))
diff --git a/tests/strings/neg/StringIndexingStep1.hs b/tests/strings/neg/StringIndexingStep1.hs
deleted file mode 100644
--- a/tests/strings/neg/StringIndexingStep1.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--stringtheory"    @-}
-
-module StringIndexing where
-
-
-import GHC.TypeLits
-import Data.String 
-
-import Data.Proxy 
--- Structure that defines valid indeces of a type level target 
--- symbol in a value level string
-
-data MI (tagret :: Symbol) s where 
-  MI :: IsString s => s        -- input string
-                   -> [Int]    -- valid indeces of target in input
-                   -> MI target s
-
-{-@ MI :: input:s 
-       -> [{i:Int |	 subString input i (stringLen target)  == target }]
-       -> MI s @-}
-
-
--- STEP 1:    Verification of valid structures
--- CHALLENGE: String interepretations from SMT 
-
--- THESE SHOULD BE SAFE 
-misafe1 :: MI "cat" String 
-misafe1 = MI "catdogcatsdots" []
-
-misafe2 :: MI "cat" String
-misafe2 = MI "catdogcatsdots" [0]
-
-misafe3 :: MI "cat" String
-misafe3 = MI "catdogcatsdots" [0, 6]
-
-misafe4 :: MI "cat" String
-misafe4 = MI "catdogcatsdots" [6, 0]
-
-misafe5 :: MI "cat" String
-misafe5 = MI "catdogcatsdots" [6]
-
-
--- THIS SHOULD BE UNSAFE 
-miunsafe :: MI "dog" String
-miunsafe = MI "catdogcatsdots" [1]
diff --git a/tests/strings/pos/DivideAndQunquer.hs b/tests/strings/pos/DivideAndQunquer.hs
deleted file mode 100644
--- a/tests/strings/pos/DivideAndQunquer.hs
+++ /dev/null
@@ -1,315 +0,0 @@
-{-@ LIQUID "--higherorder"         @-}
-{-@ LIQUID "--totality"            @-}
-{-@ LIQUID "--exactdc"             @-}
-
-
-module DivideAndQunquer where 
-
-import Prelude hiding (mconcat, map, split, take, drop)
-import Language.Haskell.Liquid.ProofCombinators 
-
-
-{-@ divideAndQunquer
-     :: f:(List i -> List o)
-     -> thm:(x1:List i -> x2:List i -> {f (append x1 x2) == append (f x1) (f x2)} )
-     -> is:List i 
-     -> n:Int 
-     -> m:Int 
-     -> {f is == pmconcat m (map f (chunk n is))}
-     / [llen is] 
-  @-}
-
-divideAndQunquer 
-  :: (List i -> List o) 
-  -> (List i -> List i -> Proof)
-  -> List i -> Int -> Int -> Proof
-divideAndQunquer f thm is n m  
-  =   pmconcat m (map f (chunk n is))
-  ==. mconcat (map f (chunk n is))
-       ? pmconcatEquivalence m (map f (chunk n is))
-  ==. f is 
-       ? distributeInput f thm is n 
-  *** QED 
-
-{-@ distributeInput
-     :: f:(List i -> List o)
-     -> thm:(x1:List i -> x2:List i -> {f (append x1 x2) == append (f x1) (f x2)} )
-     -> is:List i 
-     -> n:Int 
-     -> {f is == mconcat (map f (chunk n is))}
-     / [llen is] 
-  @-}
-
-distributeInput 
-  :: (List i -> List o) 
-  -> (List i -> List i -> Proof)
-  -> List i -> Int -> Proof
-distributeInput f thm is n  
-  | llen is <= n || n <= 1
-  =   mconcat (map f (chunk n is))
-  ==. mconcat (map f (C is N))
-  ==. mconcat (f is `C` map f N)
-  ==. mconcat (f is `C` N)
-  ==. append (f is) (mconcat N)
-  ==. append (f is) N
-  ==. f is ? appendRightIdentity (f is)
-  *** QED 
-  | otherwise
-  =   mconcat (map f (chunk n is))
-  ==. mconcat (map f (C (take n is) (chunk n (drop n is)))) 
-  ==. mconcat (f (take n is) `C` map f (chunk n (drop n is)))
-  ==. append (f (take n is)) (mconcat (map f (chunk n (drop n is))))
-  ==. append (f (take n is)) (f (drop n is))
-       ? distributeInput f thm (drop n is) n  
-  ==. f (append (take n is) (drop n is))
-       ? thm (take n is) (drop n is)
-  ==. f is 
-       ? appendTakeDrop n is 
-  *** QED 
-
-pmconcatEquivalence ::Int -> List (List a) -> Proof
-{-@ pmconcatEquivalence :: i:Int -> is:List (List a) 
-    -> {pmconcat i is == mconcat is} 
-    / [llen is] @-}
-pmconcatEquivalence i is 
-  | i <= 1
-  = pmconcat i is ==. mconcat is *** QED 
-pmconcatEquivalence i N 
-  =   pmconcat i N 
-  ==. N 
-  ==. mconcat N 
-  *** QED 
-pmconcatEquivalence i (C x N) 
-  =   pmconcat i (C x N)
-  ==. x 
-  ==. append x N
-       ? appendRightIdentity x  
-  ==. mconcat (C x (mconcat N)) 
-  ==. mconcat (C x N) 
-  *** QED 
-pmconcatEquivalence i xs 
-  | llen xs <= i 
-  =   pmconcat i xs 
-  ==. pmconcat i (map mconcat (chunk i xs))
-  ==. pmconcat i (map mconcat (C xs N))
-  ==. pmconcat i (mconcat xs `C`  map mconcat N)
-  ==. pmconcat i (mconcat xs `C`  N)
-  ==. mconcat xs
-  *** QED 
-pmconcatEquivalence i xs
-  =   pmconcat i xs 
-  ==. pmconcat i (map mconcat (chunk i xs))
-  ==. mconcat (map mconcat (chunk i xs))
-       ? pmconcatEquivalence i (map mconcat (chunk i xs))
-  ==. mconcat xs
-       ? mconcatAssoc i xs
-  *** QED 
-
--------------------------------------------------------------------------------
------------  List Definition --------------------------------------------------
--------------------------------------------------------------------------------
-
-
-{-@ data List [llen] a = N | C {lhead :: a, ltail :: List a} @-}
-data List a = N | C a (List a)
-
-llen :: List a -> Int 
-{-@ measure llen @-}
-{-@ llen :: List a -> Nat @-}
-llen N        = 0 
-llen (C _ xs) = 1 + llen xs
-
--------------------------------------------------------------------------------
------------  List Manipulation ------------------------------------------------
--------------------------------------------------------------------------------
-
--- Distribution 
-
-{-@ reflect map @-}
-{-@ map :: (a -> b) -> xs:List a -> {v:List b | llen v == llen xs } @-}
-map :: (a -> b) -> List a -> List b
-map _  N       = N
-map f (C x xs) = f x `C` map f xs 
-
-{-@ reflect chunk @-}
-{-@ chunk :: i:Int -> xs:List a -> {v:List (List a) | if (i <= 1 || llen xs <= i) then (llen v == 1) else (llen v < llen xs) } / [llen xs] @-}
-chunk :: Int -> List a -> List (List a)
-chunk i xs 
-  | i <= 1 
-  = C xs N 
-  | llen xs <= i 
-  = C xs N 
-  | otherwise
-  = C (take i xs) (chunk i (drop i xs))
-
-{-@ reflect drop @-}
-{-@ drop :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == llen xs - i } @-} 
-drop :: Int -> List a -> List a 
-drop i N = N 
-drop i (C x xs)
-  | i == 0 
-  = C x xs  
-  | otherwise 
-  = drop (i-1) xs 
-
-{-@ reflect take @-}
-{-@ take :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == i} @-} 
-take :: Int -> List a -> List a 
-take i N = N 
-take i (C x xs)
-  | i == 0 
-  = N  
-  | otherwise 
-  = C x (take (i-1) xs)
-
--- Monoid
-
-{-@ reflect mconcat @-}
-mconcat :: List (List a) -> List a 
-mconcat N        = N 
-mconcat (C x xs) = append x (mconcat xs)
-
-
-{-@ reflect pmconcat @-}
-pmconcat :: Int -> List (List a) -> List a  
-{-@ pmconcat :: i:Int -> is:List (List a) -> List a  /[llen is] @-}
-
-pmconcat i xs
-  | i <= 1 
-  = mconcat xs 
-pmconcat i N   
-  = N 
-pmconcat i (C x N) 
-  = x
-pmconcat i xs 
-  = pmconcat i (map mconcat (chunk i xs))
-
-{-@ reflect append @-}
-append :: List a -> List a -> List a 
-append N        ys = ys  
-append (C x xs) ys = x `C` (append xs ys)
-
-
--------------------------------------------------------------------------------
------------  Helper Theorems --------------------------------------------------
--------------------------------------------------------------------------------
-
--- List is a Monoid 
-
-appendRightIdentity :: List a -> Proof 
-{-@ appendRightIdentity :: xs:List a -> { append xs N == xs } @-}
-
-appendRightIdentity N 
-  = append N N ==. N *** QED 
-appendRightIdentity (C x xs)
-  =   append (C x xs) N 
-  ==. C x (append xs N) ? appendRightIdentity xs 
-  ==. C x xs 
-  *** QED   
-
-appendAssoc :: List a -> List a -> List a -> Proof 
-{-@ appendAssoc :: x:List a -> y:List a -> z:List a 
-  -> {append (append x y) z == append x (append y z)} @-}
-appendAssoc N y z 
-  =   append (append N y) z 
- -- ==. append y z
-  ==. append N (append y z)
-  *** QED 
-appendAssoc (C x xs) y z 
-  =   append (append (C x xs) y) z 
-  ==. append (x `C` (append xs y)) z 
-  ==. x `C` (append (append xs y) z)
-  ==. x `C` (append xs (append y z))
-       ? appendAssoc xs y z
-  ==. append (C x xs) (append y z)
-  *** QED   
-
-
--- | Monoid implications 
-
-mconcatAssocOne :: Int -> List (List a) -> Proof 
-{-@ mconcatAssocOne :: i:Nat -> xs:{List (List a) | i <= llen xs} 
-     -> {mconcat xs == append (mconcat (take i xs)) (mconcat (drop i xs))}
-     /[i]
-  @-} 
-mconcatAssocOne i N 
-  =   append (mconcat (take i N)) (mconcat (drop i N)) 
-  ==. append (mconcat N) (mconcat N)
-  ==. append N N 
-      --  ? leftIdentity N 
-  ==. N 
-  ==. mconcat N 
-  *** QED 
-mconcatAssocOne i (C x xs)
-  | i == 0
-  =   append (mconcat (take i (C x xs))) (mconcat (drop i (C x xs))) 
-  ==. append (mconcat N) (mconcat (C x xs))
-  ==. append N (mconcat (C x xs))
-  ==. mconcat (C x xs)
-      -- ? leftIdentity (C x xs)
-  *** QED 
-  | otherwise    
-  =   append (mconcat (take i (C x xs))) (mconcat (drop i (C x xs))) 
-  ==. append (mconcat (C x (take (i-1) xs))) (mconcat (drop (i-1) xs))
-  ==. append (append x (mconcat (take (i-1) xs))) (mconcat (drop (i-1) xs))
-       ? appendAssoc x (mconcat (take (i-1) xs)) (mconcat (drop (i-1) xs))
-  ==. append x (append (mconcat (take (i-1) xs)) (mconcat (drop (i-1) xs)))
-       ? mconcatAssocOne (i-1) xs
-  ==. append x (mconcat xs)
-  ==. mconcat (C x xs)
-  *** QED 
-
--- Generalization to chunking  
-
-mconcatAssoc :: Int -> List (List a) -> Proof 
-{-@ mconcatAssoc :: 
-    i:Int -> xs:List (List a) 
-  -> { mconcat xs == mconcat (map mconcat (chunk i xs))}
-  /  [llen xs] @-}
-mconcatAssoc i xs 
-  | i <= 1 || llen xs <= i
-  =   mconcat (map mconcat (chunk i xs))
-  ==. mconcat (map mconcat (C xs N))
-  ==. mconcat (mconcat xs `C` map mconcat N)
-  ==. mconcat (mconcat xs `C` N)
-  ==. append (mconcat xs) (mconcat N)
-  ==. append (mconcat xs) N
-  ==. mconcat xs 
-       ? appendRightIdentity (mconcat xs)
-  *** QED  
-   | otherwise
-   =   mconcat (map mconcat (chunk i xs))
-   ==. mconcat (map mconcat (take i xs `C` chunk i (drop i xs)))
-   ==. mconcat (mconcat (take i xs) `C` map mconcat (chunk i (drop i xs)))
-   ==. append (mconcat (take i xs)) (mconcat (map mconcat (chunk i (drop i xs))))
-   ==. append (mconcat (take i xs)) (mconcat (drop i xs))
-        ? mconcatAssoc i (drop i xs)
-   ==. mconcat xs 
-        ? mconcatAssocOne i xs 
-   *** QED 
-
-
-
--- | For input Distribution 
-{-@ appendTakeDrop :: i:Nat -> xs:{List a | i <= llen xs} 
-  -> {xs == append (take i xs) (drop i xs) }  @-}
-
-appendTakeDrop :: Int -> List a -> Proof 
-appendTakeDrop i N 
-  =   append (take i N) (drop i N)
-  ==. append N N 
-  ==. N 
-  *** QED 
-appendTakeDrop i (C x xs)
-  | i == 0 
-  =   append (take 0 (C x xs)) (drop 0 (C x xs))
-  ==. append N (C x xs)
-  ==. C x xs 
-  *** QED 
-  | otherwise
-  =   append (take i (C x xs)) (drop i (C x xs))
-  ==. append (C x (take (i-1) xs)) (drop (i-1) xs)
-  ==. C x (append (take (i-1) xs) (drop (i-1) xs))
-  ==. C x xs ? appendTakeDrop (i-1) xs 
-  *** QED 
-
diff --git a/tests/strings/pos/Proves.hs b/tests/strings/pos/Proves.hs
deleted file mode 100644
--- a/tests/strings/pos/Proves.hs
+++ /dev/null
@@ -1,250 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-
-{-# LANGUAGE MultiParamTypeClasses #-}
-{-# LANGUAGE FlexibleInstances     #-}
-{-# LANGUAGE FlexibleContexts      #-}
-{-# LANGUAGE TypeFamilies          #-}
-{-# LANGUAGE IncoherentInstances   #-}
-module Proves (
-
-    (==:), (<=:), (<:), (>:)
-
-  , (==?)
-
-  , (==.), (<=.), (<.), (>.), (>=.)
-
-  -- Function Equality 
-  , Arg
-
-  , (=*=.)
-
-  , (?), (∵), (***)
-
-  , (==>), (&&&)
-
-  , proof, toProof, simpleProof
-
-  , QED(..)
-
-  , Proof
-
-  , byTheorem
-
-  , todo
-
-  ) where
-
-
--- | proof operators requiring proof terms
-infixl 3 ==:, <=:, <:, >:, ==?
-
--- | proof operators with optional proof terms
-infixl 3 ==., <=., <., >., >=., =*=.
-
--- provide the proof terms after ?
-infixl 3 ?
-infixl 3 ∵
-
-infixl 2 ***
-
-
-type Proof = ()
-
-
-byTheorem :: a -> Proof -> a
-byTheorem a _ = a
-
-(?) :: (Proof -> a) -> Proof -> a
-f ? y = f y
-
-(∵) :: (Proof -> a) -> Proof -> a
-f ∵ y = f y
-
-
-
-data QED = QED
-
-
-todo :: a
-{-@ assume todo :: {v:a | false} @-}
-todo = undefined
-
-(***) :: a -> QED -> Proof
-_ *** _ = ()
-
-{-@ measure proofBool :: Proof -> Bool @-}
-
--- | Proof combinators (are Proofean combinators)
-{-@ (==>) :: p:Proof
-          -> q:Proof
-          -> {v:Proof |
-          ((Prop (proofBool p)) && (Prop (proofBool p) => Prop (proofBool q)))
-          =>
-          ((Prop (proofBool p) && Prop (proofBool q)))
-          } @-}
-(==>) :: Proof -> Proof -> Proof
-p ==> q = ()
-
-
-{-@ (&&&) :: p:{Proof | Prop (proofBool p) }
-          -> q:{Proof | Prop (proofBool q) }
-          -> {v:Proof | Prop (proofBool p) && Prop (proofBool q) } @-}
-(&&&) :: Proof -> Proof -> Proof
-p &&& q = ()
-
-
--- | proof goes from Int to resolve types for the optional proof combinators
-proof :: Int -> Proof
-proof _ = ()
-
-toProof :: a -> Proof
-toProof _ = ()
-
-simpleProof :: Proof
-simpleProof = ()
-
--- | Comparison operators requiring proof terms
-
-(<=:) :: a -> a -> Proof -> a
-{-@ (<=:) :: x:a -> y:a -> {v:Proof | x <= y } -> {v:a | v == x } @-}
-(<=:) x y _ = x
-
-(<:) :: a -> a -> Proof -> a
-{-@ (<:) :: x:a -> y:a -> {v:Proof | x < y } -> {v:a | v == x } @-}
-(<:) x y _ = x
-
-
-(>:) :: a -> a -> Proof -> a
-{-@ (>:) :: x:a -> y:a -> {v:Proof | x >y } -> {v:a | v == x } @-}
-(>:) x _ _ = x
-
-
-(==:) :: a -> a -> Proof -> a
-{-@ (==:) :: x:a -> y:a -> {v:Proof| x == y} -> {v:a | v == x && v == y } @-}
-(==:) x _ _ = x
-
-
-
--- | Comparison operators requiring proof terms optionally
-
-
--- | ToProve is undefined and is only used to assume some equalities in
--- | the proof proccess. It is a cut, a la Coq
-
-class ToProve a r where
-  (==?) :: a -> a -> r
-
-
-instance (a~b) => ToProve a b where
-{-@ instance ToProve a b where
-  ==? :: x:a -> y:a -> {v:b | v ~~ x }
-  @-}
-  (==?)  = undefined
-
-instance (a~b) => ToProve a (Proof -> b) where
-{-@ instance ToProve a (Proof -> b) where
-  ==? :: x:a -> y:a -> Proof -> {v:b | v ~~ x  }
-  @-}
-  (==?) = undefined
-
-
-class OptEq a r where
-  (==.) :: a -> a -> r
-
-instance (a~b) => OptEq a (Proof -> b) where
-{-@ instance OptEq a (Proof -> b) where
-  ==. :: x:a -> y:a -> {v:Proof | x == y} -> {v:b | v ~~ x && v ~~ y}
-  @-}
-  (==.) x _ _ = x
-
-instance (a~b) => OptEq a b where
-{-@ instance OptEq a b where
-  ==. :: x:a -> y:{a| x == y} -> {v:b | v ~~ x && v ~~ y }
-  @-}
-  (==.) x _ = x
-
-
-class OptLEq a r where
-  (<=.) :: a -> a -> r
-
-
-instance (a~b) => OptLEq a (Proof -> b) where
-{-@ instance OptLEq a (Proof -> b) where
-  <=. :: x:a -> y:a -> {v:Proof | x <= y} -> {v:b | v ~~ x }
-  @-}
-  (<=.) x _ _ = x
-
-instance (a~b) => OptLEq a b where
-{-@ instance OptLEq a b where
-  <=. :: x:a -> y:{a | x <= y} -> {v:b | v ~~ x }
-  @-}
-  (<=.) x _ = x
-
-class OptGEq a r where
-  (>=.) :: a -> a -> r
-
-instance OptGEq a (Proof -> a) where
-{-@ instance OptGEq a (Proof -> a) where
-  >=. :: x:a -> y:a -> {v:Proof| x >= y} -> {v:a | v == x }
-  @-}
-  (>=.) x _ _ = x
-
-instance OptGEq a a where
-{-@ instance OptGEq a a where
-  >=. :: x:a -> y:{a| x >= y} -> {v:a | v == x  }
-  @-}
-  (>=.) x _ = x
-
-
-class OptLess a r where
-  (<.) :: a -> a -> r
-
-instance (a~b) => OptLess a (Proof -> b) where
-{-@ instance OptLess a (Proof -> b) where
-  <. :: x:a -> y:a -> {v:Proof | x < y} -> {v:b | v ~~ x  }
-  @-}
-  (<.) x _ _ = x
-
-instance (a~b) => OptLess a b where
-{-@ instance OptLess a b where
-  <. :: x:a -> y:{a| x < y} -> {v:b | v ~~ x  }
-  @-}
-  (<.) x _ = x
-
-
-class OptGt a r where
-  (>.) :: a -> a -> r
-
-instance (a~b) => OptGt a (Proof -> b) where
-{-@ instance OptGt a (Proof -> b) where
-  >. :: x:a -> y:a -> {v:Proof| x > y} -> {v:b | v ~~ x }
-  @-}
-  (>.) x _ _ = x
-
-instance (a~b) => OptGt a b where
-{-@ instance OptGt a b where
-  >. :: x:a -> y:{a| x > y} -> {v:b | v ~~ x  }
-  @-}
-  (>.) x y = x
-
-
-
--- | Function Equality 
-
-{- TO REFINE 
-class FunEq a b r where
-  (=*=.) :: (a -> b) -> (a -> b) -> r
-
-instance (c~(a -> b)) => FunEq a b ((a -> Proof) -> c) where
-  {-@ instance FunEq a b ((a -> Proof) -> a -> b) where
-   =*=. :: f:(a -> b) -> g:(a -> b) -> (r:a -> {f r == g r}) -> {v:_ | f == g && v ~~ f && v ~~ g}
-   @-} 
-   f =*=. g = undefined  
--}
-
-class Arg a where 
-
-
-{-@ assume (=*=.) :: Arg a => f:(a -> b) -> g:(a -> b) -> (r:a -> {f r == g r}) -> {v:(a -> b) | f == g} @-}
-(=*=.) :: Arg a => (a -> b) -> (a -> b) -> (a -> Proof) -> (a -> b)
-(=*=.) f g p = f
diff --git a/tests/strings/pos/String.hs b/tests/strings/pos/String.hs
deleted file mode 100644
--- a/tests/strings/pos/String.hs
+++ /dev/null
@@ -1,139 +0,0 @@
-{-# LANGUAGE OverloadedStrings   #-}
-
-{-@ LIQUID "--higherorder"         @-}
-{-@ LIQUID "--totality"            @-}
-{-@ LIQUID "--exactdc"             @-}
-
-module String where
-
-import qualified Data.ByteString as BS
-import qualified Data.String     as ST
-import Language.Haskell.Liquid.ProofCombinators 
-
-
-{-@ embed SMTString as Str @-}
-
-data SMTString = S BS.ByteString 
-  deriving (Eq, Show)
-
-------------------------------------------------------------------------------
----------------  SMTString Interface in Logic --------------------------------
-------------------------------------------------------------------------------
-
-
-{-@ invariant {s:SMTString | 0 <= stringLen s } @-}
-
-{-@ measure stringEmp    :: SMTString @-}
-{-@ measure stringLen    :: SMTString -> Int @-}
-{-@ measure subString    :: SMTString -> Int -> Int -> SMTString @-}
-{-@ measure concatString :: SMTString -> SMTString -> SMTString @-}
-{-@ measure fromString   :: String -> SMTString @-}
-{-@ measure takeString   :: Int -> SMTString -> SMTString @-}
-{-@ measure dropString   :: Int -> SMTString -> SMTString @-}
-
-------------------------------------------------------------------------------
----------------  SMTString operators -----------------------------------------
-------------------------------------------------------------------------------
-
-{-@ assume concatString :: x:SMTString -> y:SMTString 
-                 -> {v:SMTString | v == concatString x y && stringLen v == stringLen x + stringLen y } @-}
-concatString :: SMTString -> SMTString -> SMTString
-concatString (S s1) (S s2) = S (s1 `BS.append` s2)
-
-{-@ assume stringEmp :: {v:SMTString | v == stringEmp  && stringLen v == 0 } @-}
-stringEmp :: SMTString
-stringEmp = S (BS.empty)
-
-stringLen :: SMTString -> Int  
-{-@ assume stringLen :: x:SMTString -> {v:Nat | v == stringLen x} @-}
-stringLen (S s) = BS.length s 
-
-{-@ assume subString  :: s:SMTString -> offset:Int -> ln:Int -> {v:SMTString | v == subString s offset ln } @-}
-subString :: SMTString -> Int -> Int -> SMTString 
-subString (S s) o l = S (BS.take l $ BS.drop o s) 
-
-{-@ assume takeString :: i:Nat -> xs:{SMTString | i <= stringLen xs } -> {v:SMTString | stringLen v == i && v == takeString i xs } @-} 
-takeString :: Int -> SMTString -> SMTString
-takeString i (S s) = S (BS.take i s)
-
-{-@ assume dropString :: i:Nat -> xs:{SMTString | i <= stringLen xs } -> {v:SMTString | stringLen v == stringLen xs - i && v == dropString i xs } @-} 
-dropString :: Int -> SMTString -> SMTString
-dropString i (S s) = S (BS.drop i s)
-
-{-@ assume fromString :: i:String -> {o:SMTString | i == o && o == fromString i} @-}
-fromString :: String -> SMTString
-fromString = S . ST.fromString 
-
-{-@ assume isNullString :: i:SMTString -> {b:Bool | Prop b <=> stringLen i == 0 } @-} 
-isNullString :: SMTString -> Bool 
-isNullString (S s) = BS.length s == 0 
-
-------------------------------------------------------------------------------
----------------  Properties assumed for SMTStrings ---------------------------
-------------------------------------------------------------------------------
-
--- | Empty Strings 
-
-{-@ assume stringEmpProp :: x:SMTString  -> { stringLen x == 0 <=> x == stringEmp } @-}
-stringEmpProp :: SMTString -> Proof
-stringEmpProp _ = trivial 
- 
-concatStringNeutralLeft :: SMTString -> Proof
-{-@ assume concatStringNeutralLeft :: x:SMTString -> {concatString x stringEmp == x} @-}
-concatStringNeutralLeft _ = trivial
-
-concatStringNeutralRight :: SMTString -> Proof
-{-@ assume concatStringNeutralRight :: x:SMTString -> {concatString stringEmp x == x} @-}
-concatStringNeutralRight _ = trivial
-
-{-@ concatEmpLeft :: xi:{SMTString | stringLen xi == 0} -> yi:SMTString -> {concatString xi yi == yi} @-}
-concatEmpLeft :: SMTString -> SMTString -> Proof
-concatEmpLeft xi yi 
-  =   concatString xi yi 
-  ==. concatString stringEmp yi ? stringEmpProp xi 
-  ==. yi                        ? concatStringNeutralRight yi
-  *** QED 
-
-
-{-@ concatEmpRight :: xi:SMTString -> yi:{SMTString | stringLen yi == 0} -> {concatString xi yi == xi} @-}
-concatEmpRight :: SMTString -> SMTString -> Proof
-concatEmpRight xi yi 
-  =   concatString xi yi 
-  ==. concatString xi stringEmp ? stringEmpProp yi 
-  ==. xi                        ? concatStringNeutralLeft xi 
-  *** QED 
-
--- | Concat
-
-{-@ assume concatTakeDrop :: i:Nat -> xs:{SMTString | i <= stringLen xs} 
-    -> {xs == concatString (takeString i xs) (dropString i xs) }  @-}
-concatTakeDrop :: Int -> SMTString -> Proof 
-concatTakeDrop _ _ = trivial
-
-concatLen :: SMTString -> SMTString -> Proof
-{-@ assume concatLen :: x:SMTString -> y:SMTString -> { stringLen (concatString x y) == stringLen x + stringLen y } @-}
-concatLen _ _ = trivial
-
-concatStringAssoc :: SMTString -> SMTString -> SMTString -> Proof
-{-@ assume concatStringAssoc :: x:SMTString -> y:SMTString -> z:SMTString 
-     -> {concatString (concatString x y) z == concatString x (concatString y z) } @-}
-concatStringAssoc _ _ _ = trivial
-
-
--- | Substrings 
-
-{-@ assume subStringConcatBack :: input:SMTString -> input':SMTString -> j:Int -> i:{Int | i + j <= stringLen input }
-  -> { (subString input i j == subString (concatString input input') i j) 
-    && (stringLen input <= stringLen (concatString input input'))
-     } @-}
-subStringConcatBack :: SMTString -> SMTString -> Int -> Int -> Proof 
-subStringConcatBack _ _ _ _ = trivial  
-
-
-{-@ assume subStringConcatFront  
-  :: input:SMTString -> input':SMTString -> j:Int -> i:Int 
-  -> { (subString input i j == subString (concatString input' input) (stringLen input' + i) j)
-      && (stringLen (concatString input' input) == stringLen input + stringLen input')
-    } @-}
-subStringConcatFront :: SMTString -> SMTString -> Int -> Int -> Proof
-subStringConcatFront _ _ _ _ = trivial
diff --git a/tests/strings/pos/StringIndexing.hs b/tests/strings/pos/StringIndexing.hs
deleted file mode 100644
--- a/tests/strings/pos/StringIndexing.hs
+++ /dev/null
@@ -1,2266 +0,0 @@
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-
-
-{-@ LIQUID "--cores=10"            @-}
-{-@ LIQUID "--higherorder"         @-}
-{-@ LIQUID "--totality"            @-}
-{-@ LIQUID "--exactdc"             @-}
-
-module Main where
-
-import Prelude hiding ( mempty, mappend, id, mconcat, map
-                      , take, drop  
-                      , error, undefined
-                      )
-
-
-import System.Environment   
-import Data.String hiding (fromString)
-import GHC.TypeLits
-import Data.Maybe 
-
-import String
-import Language.Haskell.Liquid.ProofCombinators 
-
-import Data.Proxy 
-
-{-@ symbolVal :: forall n proxy. KnownSymbol n => x:proxy n 
-  -> {v:String | v == n && v == symbolVal x } @-}
-{-@ measure symbolVal :: p n -> String @-}
-
--------------------------------------------------------------------------------
------------- | String Matching Main Theorem  ----------------------------------
--------------------------------------------------------------------------------
-
-{-@ distributionOfStringMatching :: MI target -> is:SMTString  -> n:Int -> m:Int
-   -> {toMI is == pmconcat m (map toMI (chunkString n is))} @-}
-
-distributionOfStringMatching :: forall (target :: Symbol). (KnownSymbol target) => MI target -> SMTString -> Int -> Int -> Proof
-distributionOfStringMatching _ is n m  
-  =   (pmconcat m (map toMI (chunkString n is)) :: MI target)
-  ==. mconcat (map toMI (chunkString n is))
-       ? pmconcatEquivalence m (map toMI (chunkString n is) :: List (MI target))
-  ==. toMI is 
-       ? distributionOfMI (mempty :: MI target) is n 
-  *** QED 
-
-
--------------------------------------------------------------------------------
------------- | Interface ------------------------------------------------------
--------------------------------------------------------------------------------
-
-main :: IO ()
-main = 
-  do args      <- getArgs
-     case args of 
-       (i:fname:target:_) -> do input <- fromString <$> readFile fname 
-                                runMatching (read i :: Int) input target
-       _                -> putStrLn $ "Wrong input: You need to provide the chunksize," ++
-                                      "the input filename and the target string. For example:\n\n\n" ++ 
-                                      "./StringIndexing 10 input.txt abcab\n\n"
-     
-
-runMatching :: Int -> SMTString -> String -> IO ()
-runMatching chunksize input tg =
-  case someSymbolVal tg of 
-    SomeSymbol (_ :: Proxy target) -> do            
-      let mi1    = toMI input :: MI target 
-      let is1    = indicesMI mi1 
-      putStrLn   $ "Serial   Indices: " ++ show is1
-      let mi2    = toMIPar chunksize input :: MI target 
-      let is2    = indicesMI mi2 
-      putStrLn   $ "Parallel Indices: " ++ show is2
-      putStrLn   $ "Are equal? " ++ show (is1 == is2)
-
-test = indicesMI (toMI (fromString $ clone 100 "ababcabcab")  :: MI "abcab" )
-  where
-    clone i xs = concat (replicate i xs) 
-
-
-
-{-@ reflect toMI @-}
-toMI :: forall (target :: Symbol). (KnownSymbol target) => SMTString -> MI target 
-toMI input  
-  | stringLen input == 0 
-  = mempty
-  | otherwise          
-  = MI input (makeIndices input (fromString (symbolVal (Proxy :: Proxy target))) 0 (stringLen input - 1))
-
-toMIPar :: forall (target :: Symbol). (KnownSymbol target) => Int -> SMTString -> MI target  
-toMIPar chunksize input 
-  = pmconcat chunksize (map toMI (chunkString chunksize input))
-
--------------------------------------------------------------------------------
-----------  Indexing Structure Definition -------------------------------------
--------------------------------------------------------------------------------
-
-data MI (target :: Symbol) where 
-  MI :: SMTString       -- | input string
-     -> (List Int)      -- | valid indices of target in input
-     -> MI target
-  deriving (Show)
-
-{-@ data MI target 
-  = MI { input   :: SMTString
-       , indices :: List (GoodIndex input target)
-       } @-}
-
-{-@ type GoodIndex Input Target 
-  = {i:Int | IsGoodIndex Input Target i }
-  @-}
-
-{-@ type GoodIndexTwo Input X Target 
-  = {i:Int | (IsGoodIndex Input Target i)  && (IsGoodIndex (concatString Input X) Target i) }
-  @-}
-
-
-{-@ predicate IsGoodIndex Input Target I
-  =  (subString Input I (stringLen Target)  == Target)
-  && (I + stringLen Target <= stringLen Input)
-  && (0 <= I)
-  @-}
-
-{-@ measure indicesMI @-}
-indicesMI (MI _ is) = is 
-
-{-@ measure inputMI @-}
-inputMI (MI i _) = i 
-
--------------------------------------------------------------------------------
-----------  Monoid Operators on MI --------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ reflect mempty @-}
-mempty :: forall (target :: Symbol). (KnownSymbol target) =>  MI target
-mempty = MI stringEmp N
-
-{-@ reflect mconcat @-}
-mconcat :: forall (target :: Symbol). (KnownSymbol target) => List (MI target) -> MI target 
-mconcat N        = mempty
-mconcat (C x xs) = mappend x (mconcat xs)
-
-{-@ reflect pmconcat @-}
-pmconcat :: forall (target :: Symbol). (KnownSymbol target) => Int -> List (MI target) -> MI target 
-{-@ pmconcat :: forall (target :: Symbol). (KnownSymbol target) => 
-  Int -> is:List (MI target) -> MI target /[llen is] @-}
-
-pmconcat i xs
-  | i <= 1 
-  = mconcat xs 
-pmconcat i N   
-  = mempty
-pmconcat i (C x N) 
-  = x
-pmconcat i xs 
-  = pmconcat i (map mconcat (chunk i xs))
-
-
-
-{-@ reflect mappend @-}
-mappend :: forall (target :: Symbol).  (KnownSymbol target) => MI target -> MI target -> MI target
-mappend (MI i1 is1) (MI i2 is2)
-  = MI (concatString i1 i2)
-       ((castGoodIndexRightList (fromString (symbolVal (Proxy :: Proxy target))) i1 i2 is1
-          `append`
-        makeNewIndices i1 i2 (fromString (symbolVal (Proxy :: Proxy target)))
-       ) `append`
-       (map (shiftStringRight (fromString (symbolVal (Proxy :: Proxy target))) i1 i2) is2)) 
-
--- | Helpers 
-{-@ reflect shiftStringRight @-}
-shiftStringRight :: SMTString -> SMTString -> SMTString -> Int -> Int 
-{-@ shiftStringRight :: target:SMTString -> left:SMTString -> right:SMTString -> i:GoodIndex right target 
-  -> {v:(GoodIndex {concatString left right} target) | v == i + stringLen left } @-}
-shiftStringRight target left right i 
-  = cast (subStringConcatFront right left (stringLen target) i) (shift (stringLen left) i)
-
-{-@ reflect makeNewIndices @-}
-{-@ makeNewIndices :: s1:SMTString -> s2:SMTString -> target:SMTString -> List (GoodIndex {concatString s1 s2} target) @-}
-makeNewIndices :: SMTString -> SMTString -> SMTString -> List Int 
-makeNewIndices s1 s2 target
-  | stringLen target < 2 
-  = N
-  | otherwise
-  = makeIndices (concatString s1 s2) target
-                (maxInt (stringLen s1 - (stringLen target-1)) 0)
-                (stringLen s1 - 1)
-
-{-@ reflect maxInt @-}
-maxInt :: Int -> Int -> Int 
-maxInt x y = if x <= y then y else x 
-
-{-@ reflect shift @-}
-shift :: Int -> Int -> Int 
-shift x y = x + y 
-
--- | Casting good indices: the below operators are liquid casts and behave like id at runtime
-
--- NV: The recursion is required as there is no other way to (access &) cast _each_ element of the input list
-{-@ reflect castGoodIndexRightList @-}
-castGoodIndexRightList :: SMTString -> SMTString -> SMTString -> List Int -> List Int    
-{-@ castGoodIndexRightList :: target:SMTString -> input:SMTString -> x:SMTString -> is:List (GoodIndex input target) 
-    -> {v:List (GoodIndexTwo input x target) | v == is} @-}
-castGoodIndexRightList target input x N 
-  = N 
-castGoodIndexRightList target input x (C i is) 
-  = C (castGoodIndexRight target input x i) (castGoodIndexRightList target input x is)  
-
-
-{-@ reflect castGoodIndexRight @-}
-castGoodIndexRight :: SMTString -> SMTString -> SMTString -> Int -> Int  
-{-@ castGoodIndexRight :: target:SMTString -> input:SMTString -> x:SMTString -> i:GoodIndex input target 
-   -> {v:(GoodIndexTwo input x target)| v == i} @-}
-castGoodIndexRight target input x i  = cast (subStringConcatBack input x (stringLen target) i) i
-
-
--------------------------------------------------------------------------------
-----------  Indices' Generation -----------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ reflect makeIndices @-}
-makeIndices :: SMTString -> SMTString -> Int -> Int -> List Int 
-{-@ makeIndices :: input:SMTString -> target:SMTString -> lo:Nat -> hi:Int -> List (GoodIndex input target) 
-  / [hi - lo] @-}
-makeIndices input target lo hi 
-  | hi < lo 
-  = N
-  | lo == hi, isGoodIndex input target lo
-  = lo `C` N
-  | lo == hi 
-  = N
-makeIndices input target lo hi 
-  | isGoodIndex input target lo
-  = lo `C` (makeIndices input target (lo + 1) hi)
-  | otherwise 
-  =    makeIndices input target (lo + 1) hi 
-
-{-@ reflect isGoodIndex @-}
-isGoodIndex :: SMTString -> SMTString -> Int -> Bool 
-{-@ isGoodIndex :: input:SMTString -> target:SMTString -> i:Int 
-  -> {b:Bool | Prop b <=> IsGoodIndex input target i} @-}
-isGoodIndex input target i 
-  =  subString input i (stringLen target)  == target  
-  && i + stringLen target <= stringLen input
-  && 0 <= i    
-
-
--------------------------------------------------------------------------------
-----------  List Structure ----------------------------------------------------
--------------------------------------------------------------------------------
-   
-data List a = N | C a (List a) deriving (Show, Eq)
-{-@ data List [llen] a 
-  = N | C {lhead :: a , ltail :: List a} @-}
-
-
-{-@ measure llen @-}
-{-@ llen :: List a -> Nat @-} 
-llen :: List a -> Int 
-llen N        = 0 
-llen (C _ xs) = 1 + llen xs 
-
-{-@ reflect map @-}
-{-@ map :: (a -> b) -> is:List a -> {os:List b | llen is == llen os} @-}
-map :: (a -> b) -> List a -> List b
-map _ N        = N
-map f (C x xs) = C (f x) (map f xs)
-
-{-@ reflect append @-}
-append :: List a -> List a -> List a 
-append N        ys = ys 
-append (C x xs) ys = x `C` (append xs ys)
-
-
-{-@ reflect chunk @-}
-{-@ chunk :: i:Int -> xs:List a -> {v:List (List a) | if (i <= 1 || llen xs <= i) then (llen v == 1) else (llen v < llen xs) } / [llen xs] @-}
-chunk :: Int -> List a -> List (List a)
-chunk i xs 
-  | i <= 1
-  = C xs N 
-  | llen xs <= i 
-  = C xs N 
-  | otherwise
-  = C (take i xs) (chunk i (drop i xs))
-
-{-@ reflect drop @-}
-{-@ drop :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == llen xs - i } @-} 
-drop :: Int -> List a -> List a 
-drop i N = N 
-drop i (C x xs)
-  | i == 0 
-  = C x xs  
-  | otherwise 
-  = drop (i-1) xs 
-
-{-@ reflect take @-}
-{-@ take :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == i} @-} 
-take :: Int -> List a -> List a 
-take i N = N 
-take i (C x xs)
-  | i == 0 
-  = N  
-  | otherwise 
-  = C x (take (i-1) xs)
-
-
--------------------------------------------------------------------------------
-----------  String Chunking ---------------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ reflect chunkString @-}
-{-@ chunkString :: Int -> xs:SMTString -> List (SMTString) / [stringLen xs] @-}
-chunkString :: Int -> SMTString -> List (SMTString)
-chunkString i xs 
-  | i <= 1
-  = C xs N 
-  | stringLen xs <= i 
-  = C xs N 
-  | otherwise
-  = C (takeString i xs) (chunkString i (dropString i xs))
-
-
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
------------- Liquid Proofs Start HERE -----------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
--------------------------------------------------------------------------------
-
-
--------------------------------------------------------------------------------
-----------  Proof that toMI distributes ---------------------------------------
--------------------------------------------------------------------------------
-
-{-@ distributionOfMI :: MI target -> is:SMTString -> n:Int -> {toMI is == mconcat (map toMI (chunkString n is))} @-}
-
-distributionOfMI :: forall (target :: Symbol). (KnownSymbol target) => MI target -> SMTString -> Int -> Proof
-distributionOfMI _ is n = distributeInput (toMI :: SMTString -> MI target) (distributestoMI (mempty :: MI target)) is n 
-
-
-{-@ distributeInput
-     :: f:(SMTString -> MI target)
-     -> thm:(x1:SMTString -> x2:SMTString -> {f (concatString x1 x2) == mappend (f x1) (f x2)} )
-     -> is:SMTString
-     -> n:Int 
-     -> {f is == mconcat (map f (chunkString n is))}
-     / [stringLen is] 
-  @-}
-
-distributeInput :: forall (target :: Symbol). (KnownSymbol target) 
-  => (SMTString -> MI target)
-  -> (SMTString -> SMTString -> Proof)
-  -> SMTString -> Int -> Proof
-distributeInput f thm is n  
-  | stringLen is <= n || n <= 1
-  =   mconcat (map f (chunkString n is))
-  ==. mconcat (map f (C is N))
-  ==. mconcat (f is `C` map f N)
-  ==. mconcat (f is `C` N)
-  ==. mappend (f is) (mconcat N)
-  ==. mappend (f is) (mempty :: MI target)
-  ==. f is ? mempty_left (f is)
-  *** QED 
-  | otherwise
-  =   mconcat (map f (chunkString n is))
-  ==. mconcat (map f (C (takeString n is) (chunkString n (dropString n is)))) 
-  ==. mconcat (f (takeString n is) `C` map f (chunkString n (dropString n is)))
-  ==. mappend (f (takeString n is)) (mconcat (map f (chunkString n (dropString n is))))
-  ==. mappend (f (takeString n is)) (f (dropString n is))
-       ? distributeInput f thm (dropString n is) n  
-  ==. f (concatString (takeString n is) (dropString n is))
-       ? thm (takeString n is) (dropString n is)
-  ==. f is 
-       ? concatTakeDrop n is 
-  *** QED 
-
-
-
-distributestoMI :: forall (target :: Symbol). (KnownSymbol target) => MI target -> SMTString -> SMTString -> Proof 
-{-@ distributestoMI :: MI target -> x1:SMTString -> x2:SMTString -> {toMI (concatString x1 x2) == mappend (toMI x1) (toMI x2)} @-} 
-distributestoMI _ x1 x2
-  | stringLen x1 == 0, stringLen x2 == 0 
-  =   mappend (toMI x1) (toMI x2)
-  ==. mappend (mempty :: MI target) (mempty :: MI target)
-       ? mempty_left (mempty :: MI target) 
-  ==. (mempty :: MI target)
-  ==. toMI (concatString x1 x2)
-  *** QED 
-
-distributestoMI _ x1 x2
-  | stringLen x1 == 0 
-  =   mappend (toMI x1) (toMI x2)
-  ==. mappend (mempty :: MI target) (toMI x2 :: MI target)
-  ==. toMI x2 
-      ? mempty_right (toMI x2 :: MI target)
-  ==. toMI (concatString x1 x2)
-      ? concatEmpLeft x1 x2 
-  *** QED 
-
-distributestoMI _ x1 x2
-  | stringLen x2 == 0 
-  =   mappend (toMI x1) (toMI x2)
-  ==. mappend (toMI x1) (mempty :: MI target)
-  ==. (toMI x1 :: MI target)
-      ? mempty_left (toMI x1 :: MI target)
-  ==. toMI (concatString x1 x2)
-      ? concatEmpRight x1 x2 
-  *** QED 
-
-distributestoMI _ x1 x2 
-  | stringLen (fromString (symbolVal (Proxy :: Proxy target))) < 2 
-  =   let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend (toMI x1 :: MI target) (toMI x2 :: MI target)  
-  ==. mappend (MI x1 (makeIndices x1 tg 0 (stringLen x1 - 1)))
-              (MI x2 (makeIndices x2 tg 0 (stringLen x2 - 1)))
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeNewIndices x1 x2 tg
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           N
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         (castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-           `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-      ? appendNil (castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1)))
-  ==. MI (concatString x1 x2)
-         (castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-           `append`
-          (makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen x1 + stringLen x2 -1))) 
-      ? shiftIndexesRight' 0 (stringLen x2 - 1) x1 x2 tg 
-  ==. MI (concatString x1 x2)
-         ( (makeIndices (concatString x1 x2) tg 0 (stringLen x1 - 1))
-           `append`
-          (makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen x1 + stringLen x2 -1))) 
-      ? (concatmakeNewIndices 0 (stringLen x1 -1) tg x1 x2) 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 - 1)
-           `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen x1 + stringLen x2 -1)) 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 - 1)
-           `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen (concatString x1 x2) -1)) 
-  ==. MI (concatString x1 x2) 
-         (makeIndices (concatString x1 x2) tg 0 (stringLen (concatString x1 x2) - 1))
-      ? mergeIndices (concatString x1 x2) tg 0 (stringLen x1 -1) (stringLen (concatString x1 x2) - 1) 
-  ==. toMI (concatString x1 x2)
-  *** QED 
-
-distributestoMI _ x1 x2
-  | 0 <= stringLen x1 - stringLen (fromString (symbolVal (Proxy :: Proxy target))) 
-  =   let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend (toMI x1 :: MI target) (toMI x2:: MI target)  
-  ==. mappend (MI x1 (makeIndices x1 tg 0 (stringLen x1 - 1)))
-              (MI x2 (makeIndices x2 tg 0 (stringLen x2 - 1)))
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeNewIndices x1 x2 tg
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeIndices (concatString x1 x2) tg (maxInt (stringLen x1 - stringLen tg +1) 0) (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeIndices (concatString x1 x2) tg (stringLen x1 - stringLen tg +1) (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((makeIndices (concatString x1 x2) tg 0 (stringLen x1 - stringLen tg)
-          `append`
-           makeIndices (concatString x1 x2) tg (stringLen x1 - stringLen tg +1) (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-         ? catIndices x1 x2 tg 0 (stringLen x1 -1 ) -- HERE HERE requires stringLen tg <= stringLen x1
-  ==. MI (concatString x1 x2)
-         ((makeIndices (concatString x1 x2) tg 0 (stringLen x1 - stringLen tg)
-          `append`
-           makeIndices (concatString x1 x2) tg (stringLen x1 - stringLen tg +1) (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-         `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-          ? mergeIndices (concatString x1 x2) tg 0 (stringLen x1 -stringLen tg) (stringLen x1-1)
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-         `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen x1 + stringLen x2 - 1))
-          ? shiftIndexesRight' 0 (stringLen x2 -1) x1 x2 tg 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-         `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen (concatString x1 x2) - 1))
-  ==. MI (concatString x1 x2) 
-         (makeIndices (concatString x1 x2) tg 0 (stringLen (concatString x1 x2) - 1))
-          ? mergeIndices (concatString x1 x2) tg 0 (stringLen x1- 1) (stringLen (concatString x1 x2) - 1)
-  ==. toMI (concatString x1 x2)
-  *** QED 
-distributestoMI _ x1 x2
-  | stringLen x1 - stringLen (fromString (symbolVal (Proxy :: Proxy target))) < 0 
-  =   let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend (toMI x1 :: MI target) (toMI x2:: MI target)  
-  ==. mappend (MI x1 (makeIndices x1 tg 0 (stringLen x1 - 1)))
-              (MI x2 (makeIndices x2 tg 0 (stringLen x2 - 1)))
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeNewIndices x1 x2 tg
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeIndices (concatString x1 x2) tg (maxInt (stringLen x1 - stringLen tg +1) 0) (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         ((castGoodIndexRightList tg x1 x2 (makeIndices x1 tg 0 (stringLen x1 - 1))
-          `append`
-           makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-          
-  ==. MI (concatString x1 x2)
-         ((N
-          `append`
-           makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-          ) `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-         ? makeNewIndicesNullSmallInput x1 tg 0 (stringLen x1 - 1)  
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-           `append`
-          (map (shiftStringRight tg x1 x2) (makeIndices x2 tg 0 (stringLen x2 - 1)))) 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-         `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen x1 + stringLen x2 - 1))
-          ? shiftIndexesRight' 0 (stringLen x2 -1) x1 x2 tg 
-  ==. MI (concatString x1 x2)
-         (makeIndices (concatString x1 x2) tg 0 (stringLen x1 -1)
-         `append`
-          makeIndices (concatString x1 x2) tg (stringLen x1) (stringLen (concatString x1 x2) - 1))
-  ==. MI (concatString x1 x2) 
-         (makeIndices (concatString x1 x2) tg 0 (stringLen (concatString x1 x2) - 1))
-          ? mergeIndices (concatString x1 x2) tg 0 (stringLen x1- 1) (stringLen (concatString x1 x2) - 1)
-  ==. toMI (concatString x1 x2)
-  *** QED 
-
--------------------------------------------------------------------------------
-----------  Parallelization: pmconcat i is == mconcat is ----------------------
--------------------------------------------------------------------------------
-
-pmconcatEquivalence :: forall (target :: Symbol). (KnownSymbol target) => Int -> List (MI target) -> Proof
-{-@ pmconcatEquivalence :: i:Int -> is:List (MI target) -> {pmconcat i is == mconcat is} / [llen is] @-}
-pmconcatEquivalence i is 
-  | i <= 1
-  = pmconcat i is ==. mconcat is *** QED 
-pmconcatEquivalence i N 
-  =   pmconcat i N 
-  ==. (mempty :: MI target) 
-  ==. mconcat N 
-  *** QED 
-pmconcatEquivalence i (C x N) 
-  =   pmconcat i (C x N)
-  ==. x 
-  ==. mappend x mempty 
-      ? mempty_left x
-  ==. mappend x (mconcat N) 
-  ==. mconcat (C x N) 
-  *** QED 
-pmconcatEquivalence i xs 
-  | llen xs <= i 
-  =   pmconcat i xs 
-  ==. pmconcat i (map mconcat (chunk i xs))
-  ==. pmconcat i (map mconcat (C xs N))
-  ==. pmconcat i (mconcat xs `C`  map mconcat N)
-  ==. pmconcat i (mconcat xs `C`  N)
-  ==. mconcat xs
-  *** QED 
-pmconcatEquivalence i xs
-  =   pmconcat i xs 
-  ==. pmconcat i (map mconcat (chunk i xs))
-  ==. mconcat (map mconcat (chunk i xs))
-       ? pmconcatEquivalence i (map mconcat (chunk i xs))
-  ==. mconcat xs
-       ? mconcatAssoc i xs
-  *** QED 
-
--- | Monoid implications 
-
-mconcatAssocOne :: forall (target :: Symbol). (KnownSymbol target) => Int -> List (MI target) -> Proof 
-{-@ mconcatAssocOne :: i:Nat -> xs:{List (MI target) | i <= llen xs} 
-     -> {mconcat xs == mappend (mconcat (take i xs)) (mconcat (drop i xs))}
-     /[i]
-  @-} 
-mconcatAssocOne i N 
-  =   mappend (mconcat (take i N)) (mconcat (drop i N)) 
-  ==. mappend (mconcat N) (mconcat N)
-  ==. mappend (mempty :: MI target) (mempty :: MI target)
-  ==. (mempty :: MI target) 
-      ? mempty_left  (mempty :: MI target)
-  ==. mconcat N 
-  *** QED 
-
-mconcatAssocOne i (C x xs)
-  | i == 0
-  =   mappend (mconcat (take i (C x xs))) (mconcat (drop i (C x xs))) 
-  ==. mappend (mconcat N) (mconcat (C x xs))
-  ==. mappend mempty (mconcat (C x xs))
-  ==. mconcat (C x xs)
-      ? mempty_right (mconcat (C x xs))
-  *** QED 
-  | otherwise    
-  =   mappend (mconcat (take i (C x xs))) (mconcat (drop i (C x xs))) 
-  ==. mappend (mconcat (C x (take (i-1) xs))) (mconcat (drop (i-1) xs))
-  ==. mappend (mappend x (mconcat (take (i-1) xs))) (mconcat (drop (i-1) xs))
-       ? mappend_assoc x (mconcat (take (i-1) xs)) (mconcat (drop (i-1) xs))
-  ==. mappend x (mappend (mconcat (take (i-1) xs)) (mconcat (drop (i-1) xs)))
-       ? mconcatAssocOne (i-1) xs
-  ==. mappend x (mconcat xs)
-  ==. mconcat (C x xs)
-  *** QED 
-
--- Generalization to chunking  
-
-mconcatAssoc :: forall (target :: Symbol). (KnownSymbol target) => Int -> List (MI target) -> Proof 
-{-@ mconcatAssoc :: i:Int -> xs:List (MI target) 
-  -> { mconcat xs == mconcat (map mconcat (chunk i xs))}
-  /  [llen xs] @-}
-mconcatAssoc i xs  
-  | i <= 1 || llen xs <= i
-  =   mconcat (map mconcat (chunk i xs))
-  ==. mconcat (map mconcat (C xs N))
-  ==. mconcat (mconcat xs `C` map mconcat N)
-  ==. mconcat (mconcat xs `C` N)
-  ==. mappend (mconcat xs) (mconcat N)
-  ==. mappend (mconcat xs) (mempty :: MI target)
-  ==. mconcat xs 
-       ? mempty_left (mconcat xs)
-  *** QED  
-   | otherwise
-   =   mconcat (map mconcat (chunk i xs))
-   ==. mconcat (map mconcat (take i xs `C` chunk i (drop i xs)))
-   ==. mconcat (mconcat (take i xs) `C` map mconcat (chunk i (drop i xs)))
-   ==. mappend (mconcat (take i xs)) (mconcat (map mconcat (chunk i (drop i xs))))
-   ==. mappend (mconcat (take i xs)) (mconcat (drop i xs))
-        ? mconcatAssoc i (drop i xs)
-   ==. mconcat xs 
-        ? mconcatAssocOne i xs 
-   *** QED 
-
-
--------------------------------------------------------------------------------
-----------  Proof that MI is a Monoid -----------------------------------------
--------------------------------------------------------------------------------
-
-mempty_left :: forall (target :: Symbol). (KnownSymbol target) => MI target -> Proof
-{-@ mempty_left :: xs:MI target -> {mappend xs mempty == xs } @-}
-mempty_left (MI i1 is1) 
-  = let tg = fromString (symbolVal (Proxy :: Proxy target)) in 
-      mappend (MI i1 is1) (mempty :: MI target)
-  ==. mappend (MI i1 is1) (MI stringEmp N) 
-  ==. MI (concatString i1 stringEmp)
-         ((castGoodIndexRightList tg i1 stringEmp is1
-            `append`
-           makeNewIndices i1 stringEmp tg 
-         ) `append`
-         (map (shiftStringRight tg i1 stringEmp) N))
-      ? concatStringNeutralLeft i1 
-        -- NV ordering is important! 
-        -- concatString i1 stringEmp == i1 should come before application of MI
-  ==. MI i1
-         ((castGoodIndexRightList tg i1 stringEmp is1
-            `append`
-           makeNewIndices i1 stringEmp tg
-         ) `append`
-         (map (shiftStringRight tg i1 stringEmp) N))
-  ==. MI i1 ((is1 `append` N) `append` (map (shiftStringRight tg i1 stringEmp) N))
-      ? makeNewIndicesNullLeft i1 tg 
-  ==. MI i1 (is1 `append` map (shiftStringRight tg i1 stringEmp) N)
-      ? appendNil is1  
-  ==. MI i1 (is1 `append` N)
-      ? appendNil is1  
-  ==. MI i1 is1 
-  *** QED 
-
-mempty_right :: forall (target :: Symbol). (KnownSymbol target) => MI target -> Proof
-{-@ mempty_right :: xs:MI target -> {mappend mempty xs == xs } @-}
-mempty_right (MI i is)
-  =   let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend (mempty :: MI target) (MI i is) 
-  ==. mappend (MI stringEmp N) (MI i is) 
-  ==. MI (concatString stringEmp i)
-       ((castGoodIndexRightList tg stringEmp i N
-          `append`
-        makeNewIndices stringEmp i tg 
-       ) `append`
-       (map (shiftStringRight tg stringEmp i) is)) 
-       ? concatStringNeutralRight i
-  ==. MI i
-        ((N`append` makeNewIndices stringEmp i tg
-        ) `append`
-        (map (shiftStringRight tg stringEmp i) is)) 
-  ==. MI i
-       (makeNewIndices stringEmp i tg
-        `append`
-       (map (shiftStringRight tg stringEmp i) is)) 
-  ==. MI i (N `append` (map (shiftStringRight tg stringEmp i) is)) 
-       ? makeNewIndicesNullRight i tg
-  ==. MI i (map (shiftStringRight tg stringEmp i) is)
-       ? mapShiftZero tg i is 
-  ==. MI i is 
-  *** QED 
-
-{-@ mappend_assoc :: x:MI target -> y:MI target -> z:MI target
-  -> { mappend x (mappend y z) = mappend (mappend x y) z}
-  @-}
-mappend_assoc 
-     :: forall (target :: Symbol). (KnownSymbol target) 
-     => MI target ->  MI target ->  MI target -> Proof
-mappend_assoc x@(MI xi xis) y@(MI yi yis) z@(MI zi zis)
-  | stringLen (fromString (symbolVal (Proxy :: Proxy target))) <= stringLen yi 
-  = let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend x (mappend y z)
-  ==. mappend (MI xi xis) (mappend (MI yi yis) (MI zi zis))
-  ==. mappend (MI xi xis) 
-              (MI (concatString yi zi)
-                  ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis)))
-  ==. MI (concatString xi (concatString yi zi))
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-      ? concatStringAssoc xi yi zi 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ))
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-      ? mapAppend (shiftStringRight tg xi (concatString yi zi))
-                  (castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   )
-                   (map (shiftStringRight tg yi zi) zis)
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis)
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-      ? mapAppend (shiftStringRight tg xi (concatString yi zi))
-                  (castGoodIndexRightList tg yi zi yis)
-                  (makeNewIndices yi zi tg)
--- ((x1~x2) ~ (x3~x4)) ~ x5
--- == 
--- (x1~x2) ~ x3 ~ x4 ~ x5 
-
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis))
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-      ? appendReorder (castGoodIndexRightList tg xi (concatString yi zi) xis)
-                      (makeNewIndices xi (concatString yi zi) tg)
-                      (map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis))
-                      (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-                      (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis) 
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis))
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-      ? castConcat tg xi yi zi xis 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-           `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-          ) `append`
-          map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis))
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-      ? shiftIndexesLeft xi yi zi tg 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-           `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-          ) `append`
-          castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis))
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-         ? castEq3 tg xi yi zi yis 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-           `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-          ) `append`
-          castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis))
-            `append`
-           makeNewIndices (concatString xi yi) zi tg
-           )
-            `append`
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-         ? shiftIndexesRight xi yi zi tg 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-           `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-          ) `append`
-          castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis))
-            `append`
-           makeNewIndices (concatString xi yi) zi tg
-           )
-            `append`
-           map (shiftStringRight tg (concatString xi yi) zi) zis)
-         ? mapLenFusion tg xi yi zi zis 
-  ==. MI (concatString (concatString xi yi) zi)
-         (((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-              `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-           ) `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis)
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-          ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-        ? castAppend tg (concatString xi yi) zi 
-                     (castGoodIndexRightList tg xi yi xis)
-                     (makeNewIndices xi yi tg)
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis)
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-         ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-        ? castAppend tg (concatString xi yi) zi 
-             (castGoodIndexRightList tg xi yi xis
-              `append`
-             makeNewIndices xi yi tg
-             )
-             (map (shiftStringRight tg xi yi) yis)
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           (map (shiftStringRight tg xi yi) yis))
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-         ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-  ==. mappend (
-        MI (concatString xi yi)
-           ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           (map (shiftStringRight tg xi yi) yis))) (MI zi zis) 
-  ==. mappend (mappend (MI xi xis) (MI yi yis)) (MI zi zis)
-  *** QED 
-
-mappend_assoc x@(MI xi xis) y@(MI yi yis) z@(MI zi zis)
-  | stringLen yi < stringLen (fromString (symbolVal (Proxy :: Proxy target))) 
-  = let tg = (fromString (symbolVal (Proxy :: Proxy target))) in 
-      mappend x (mappend y z)
-  ==. mappend (MI xi xis) (mappend (MI yi yis) (MI zi zis))
-  ==. mappend (MI xi xis) 
-              (MI (concatString yi zi)
-                  ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis)))
-  ==. MI (concatString xi (concatString yi zi))
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-      ? concatStringAssoc xi yi zi 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) ((castGoodIndexRightList tg yi zi yis
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) ((castGoodIndexRightList tg yi zi N
-                     `append`
-                   makeNewIndices yi zi tg
-                   ) `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-        ? emptyIndices y yis
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) (
-                   makeNewIndices yi zi tg
-                   `append`
-                  (map (shiftStringRight tg yi zi) zis))))
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg xi (concatString yi zi) xis
-           `append`
-           makeNewIndices xi (concatString yi zi) tg
-          ) `append`
-          (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg) 
-             `append` 
-           map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis)))
-      ? mapAppend (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg) (map (shiftStringRight tg yi zi) zis)
-  ==. MI (concatString (concatString xi yi) zi)
-         (((castGoodIndexRightList tg xi (concatString yi zi) xis)
-           `append`
-           ((makeNewIndices xi (concatString yi zi) tg)
-           `append`
-           (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))))
-            `append`
-           (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis)))
-      ? appendGroupNew (castGoodIndexRightList tg xi (concatString yi zi) xis)
-                       (makeNewIndices xi (concatString yi zi) tg)
-                       (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-                       (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-  ==. MI (concatString (concatString xi yi) zi)
-         ( (castGoodIndexRightList tg xi (concatString yi zi) xis)
-           `append`
-           ((castGoodIndexRightList tg (concatString xi yi) zi ((makeNewIndices xi yi) tg))
-           `append`
-           (makeNewIndices (concatString xi yi) zi tg))
-            `append`
-           (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis)))
-      ? shiftNewIndices xi yi zi tg 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg xi (concatString yi zi) xis)
-           `append`
-           (castGoodIndexRightList tg (concatString xi yi) zi ((makeNewIndices xi yi) tg)))
-           `append`
-           (makeNewIndices (concatString xi yi) zi tg))
-            `append`
-           (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis)))
-      ? appendUnGroupNew (castGoodIndexRightList tg xi (concatString yi zi) xis)
-                         (castGoodIndexRightList tg (concatString xi yi) zi ((makeNewIndices xi yi) tg))
-                         (makeNewIndices (concatString xi yi) zi tg)
-                         (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis))
-  ==. MI (concatString (concatString xi yi) zi)
-         ((((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis))
-           `append`
-           (castGoodIndexRightList tg (concatString xi yi) zi ((makeNewIndices xi yi) tg)))
-           `append`
-           (makeNewIndices (concatString xi yi) zi tg))
-            `append`
-           (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis)))
-      ? castConcat tg xi yi zi xis 
-  ==. MI (concatString (concatString xi yi) zi)
-         ( ((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-            `append`
-             castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-           )
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-           ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-      ? mapLenFusion tg xi yi zi zis 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           )
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-           ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-      ? castAppend tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis) (makeNewIndices xi yi tg)
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           N)
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-         ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-         ? appendNil (castGoodIndexRightList tg xi yi xis `append` makeNewIndices xi yi tg)
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           (map (shiftStringRight tg xi yi) N))
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-         ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-  ==. MI (concatString (concatString xi yi) zi)
-         ((castGoodIndexRightList tg (concatString xi yi) zi ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           (map (shiftStringRight tg xi yi) yis))
-            `append`
-          makeNewIndices (concatString xi yi) zi tg
-         ) `append`
-         (map (shiftStringRight tg (concatString xi yi) zi) zis)) 
-         ? emptyIndices y yis 
-  ==. mappend (
-        MI (concatString xi yi)
-           ((castGoodIndexRightList tg xi yi xis
-              `append`
-            makeNewIndices xi yi tg
-           ) `append`
-           (map (shiftStringRight tg xi yi) yis))) (MI zi zis) 
-  ==. mappend (mappend (MI xi xis) (MI yi yis)) (MI zi zis)
-  *** QED 
-
--------------------------------------------------------------------------------
-----------  Lemmata on Casts --------------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ castAppend :: target:SMTString -> input:SMTString -> x:SMTString 
-     -> is1:List (GoodIndex input target) 
-     -> is2:List (GoodIndex input target) -> 
-   {castGoodIndexRightList target input x (append is1 is2) == append (castGoodIndexRightList target input x is1) (castGoodIndexRightList target input x is2)}
-    @-}
-castAppend :: SMTString -> SMTString -> SMTString -> List Int -> List Int -> Proof 
-castAppend target input x is1 is2 
-  =   castGoodIndexRightList target input x (append is1 is2)
-  ==. append is1 is2 
-  ==. append (castGoodIndexRightList target input x is1) (castGoodIndexRightList target input x is2)
-  *** QED 
-
-castConcat :: SMTString -> SMTString -> SMTString -> SMTString -> List Int -> Proof
-{-@ castConcat :: tg:SMTString -> xi:SMTString -> yi:SMTString -> zi:SMTString 
-             ->  xis:List (GoodIndex xi tg) 
-        -> {castGoodIndexRightList tg xi (concatString yi zi) xis == castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)} @-}
-castConcat tg xi yi zi xis 
-  =   castGoodIndexRightList tg xi (concatString yi zi) xis
-  ==. xis 
-  ==. castGoodIndexRightList tg xi yi xis
-  ==. castGoodIndexRightList tg (concatString xi yi) zi (castGoodIndexRightList tg xi yi xis)
-  *** QED 
-
-
-castEq3 :: SMTString -> SMTString -> SMTString -> SMTString -> List Int -> Proof
-{-@ castEq3 :: tg:SMTString -> xi:SMTString -> yi:SMTString -> zi:SMTString 
-             ->  yis:List (GoodIndex yi tg) 
-        -> {castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis) == map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis)} @-}
-castEq3 tg xi yi zi yis 
-  =   castGoodIndexRightList tg (concatString xi yi) zi (map (shiftStringRight tg xi yi) yis)
-  ==. map (shiftStringRight tg xi yi) yis 
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (castGoodIndexRightList tg yi zi yis)
-        ? mapShiftIndex tg xi yi zi yis 
-  *** QED 
-
-
--------------------------------------------------------------------------------
-----------  Lemmata on Lists --------------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ appendNil :: xs:List a -> { append xs N = xs } @-} 
-appendNil :: List a -> Proof 
-appendNil N 
-  =   append N N
-  ==. N
-  *** QED 
-appendNil (C x xs) 
-  =   append (C x xs) N
-  ==. C x (append xs N)
-  ==. C x xs ? appendNil xs 
-  *** QED 
-
--- (x1 ~ x2) ~ (x3 ~ x4)
--- == 
--- ((x1 ~ (x2 ~ x3)) ~ x4)
-
-
-appendGroupNew :: List a -> List a -> List a -> List a -> Proof
-{-@ appendGroupNew 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> {   (append (append x1 x2) (append x3 x4))
-      == (append (append x1 (append x2 x3)) x4)
-     } @-}
-appendGroupNew x1 x2 x3 x4 
-  =   (append (append x1 x2) (append x3 x4))
-  ==. (append (append (append x1 x2) x3) x4)
-      ? appendAssoc (append x1 x2) x3 x4  
-  ==. (append (append x1 (append x2 x3)) x4)
-      ? appendAssoc x1 x2 x3
-  *** QED 
-
-
-
--- (x1 ~ (x2 ~ x3)) ~ x4 == ((x1 ~ x2) ~ x3) ~ x4
-
-appendUnGroupNew :: List a -> List a -> List a -> List a -> Proof
-{-@ appendUnGroupNew 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> {   ((append (append (append x1 x2) x3) x4))
-      == (append (append x1 (append x2 x3)) x4)
-     } @-}
-appendUnGroupNew x1 x2 x3 x4 
-  =   append (append (append x1 x2) x3) x4
-  ==. append (append x1 (append x2 x3)) x4
-      ? appendAssoc x1 x2 x3 
-  *** QED 
-
-
-
-appendReorder :: List a -> List a -> List a -> List a -> List a -> Proof
-{-@ appendReorder 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> x5:List a 
-  -> {   (append (append x1 x2) (append (append x3 x4) x5))
-      == (append (append (append (append x1 x2) x3) x4) x5)
-     } @-}
-appendReorder x1 x2 x3 x4 x5 
-  =   append (append x1 x2) (append (append x3 x4) x5)
-  ==. append (append x1 x2) (append x3 (append x4 x5))
-       ? appendAssoc x3 x4 x5 
-  ==. append (append (append x1 x2) x3) (append x4 x5)
-      ? appendAssoc (append x1 x2) x3 (append x4 x5) 
-  ==. append ((append (append (append x1 x2) x3)) x4) x5
-      ? appendAssoc (append (append x1 x2) x3) x4 x5 
-  *** QED 
-
-{-@ appendAssoc :: x:List a -> y:List a -> z:List a 
-     -> {(append x (append y z)) == (append (append x y) z) } @-}
-appendAssoc :: List a -> List a -> List a -> Proof
-appendAssoc N y z 
-  =   append N (append y z)
-  ==. append y z
-  ==. append (append N y) z
-  *** QED 
-appendAssoc (C x xs) y z
-  =   append (C x xs) (append y z) 
-  ==. C x (append xs (append y z))
-  ==. C x (append (append xs y) z)
-        ? appendAssoc xs y z
-  ==. append (C x (append xs y)) z
-  ==. append (append (C x xs) y) z
-  *** QED 
-
-
-mapAppend :: (a -> b) -> List a -> List a -> Proof
-{-@ mapAppend 
-     :: f:(a -> b) -> xs:List a -> ys:List a 
-     -> {map f (append xs ys) == append (map f xs) (map f ys)}
-  @-}
-mapAppend f N ys 
-  =   map f (append N ys)
-  ==. map f ys 
-  ==. append N (map f ys)
-  ==. append (map f N) (map f ys)
-  *** QED 
-mapAppend f (C x xs) ys 
-  =   map f (append (C x xs) ys)
-  ==. map f (x `C` (append xs ys))
-  ==. f x `C` (map f (append xs ys))
-  ==. f x `C` (append (map f xs) (map f ys))
-      ? mapAppend f xs ys 
-  ==. append (f x `C` map f xs) (map f ys)
-  ==. append (map f (x `C` xs)) (map f ys)
-  *** QED 
-
-
--------------------------------------------------------------------------------
-----------  Lemmata on Empty Indices ------------------------------------------
--------------------------------------------------------------------------------
-
-emptyIndices :: forall (target :: Symbol). (KnownSymbol target) => MI target -> List Int  -> Proof
-{-@ emptyIndices :: mi:MI target
-                 -> is:{List (GoodIndex (inputMI mi) target) | is == indicesMI mi && stringLen (inputMI mi) < stringLen target}
-                 -> { is == N } @-}
-emptyIndices (MI _ _) N 
-  = trivial 
-emptyIndices (MI _ _) (C _ _)
-  = trivial 
-
-makeNewIndicesNullLeft :: SMTString -> SMTString -> Proof 
-{-@ makeNewIndicesNullLeft 
-  :: s:SMTString 
-  -> t:SMTString 
-  -> {makeNewIndices s stringEmp t == N } @-} 
-makeNewIndicesNullLeft s t 
-  | stringLen t < 2 
-  = makeNewIndices s stringEmp t ==. N *** QED 
-makeNewIndicesNullLeft  s t 
-  | 1 + stringLen s <= stringLen t
-  =   makeNewIndices s stringEmp t
-  ==. makeIndices (concatString s stringEmp) t
-                   (maxInt (1 + stringLen s - stringLen t)  0)
-                   (stringLen s - 1)
-  ==. makeIndices s t
-                   0
-                   (stringLen s - 1) 
-                   ? concatStringNeutralLeft s
-  ==. makeIndices s t
-                   0
-                   (stringLen s - 1)
-  ==. N ? makeNewIndicesNullSmallInput s t 0 (stringLen s - 1)
-  *** QED 
-makeNewIndicesNullLeft s t 
-  =   makeNewIndices s stringEmp t
-  ==. makeIndices (concatString s stringEmp) t
-                   (maxInt (1 + stringLen s - stringLen t)  0)
-                   (stringLen s - 1)
-  ==. makeIndices (concatString s stringEmp) t
-                   (1 + stringLen s - stringLen t)
-                   (stringLen s - 1)
-  ==. makeIndices s t
-                   (1 + stringLen s - stringLen t)
-                   (stringLen s - 1) ? concatStringNeutralLeft s 
-  ==. N ? makeNewIndicesNullSmallIndex s t (1 + stringLen s - stringLen t) (stringLen s - 1)
-  *** QED 
-
-makeNewIndicesNullSmallInput :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesNullSmallInput 
-  :: s:SMTString 
-  -> t:{SMTString | 1 + stringLen s <= stringLen t } 
-  -> lo:Nat 
-  -> hi:Int
-  -> {makeIndices s t lo hi == N } / [hi - lo] @-} 
-makeNewIndicesNullSmallInput s1 t lo hi
-  | hi < lo 
-  = makeIndices s1 t lo hi ==. N *** QED 
-  | lo == hi, not (isGoodIndex s1 t lo)
-  = makeIndices s1 t lo hi ==. N *** QED  
-  | not (isGoodIndex s1 t lo)
-  =   makeIndices s1 t lo hi
-  ==. makeIndices s1 t (lo + 1) hi 
-  ==. N ? makeNewIndicesNullSmallInput s1 t (lo+1) hi
-  *** QED 
-
-
-makeNewIndicesNullSmallIndex :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesNullSmallIndex 
-  :: s:SMTString 
-  -> t:{SMTString | stringLen t < 2 + stringLen s } 
-  -> lo:{Nat | 1 + stringLen s - stringLen t <= lo  } 
-  -> hi:{Int | lo <= hi}
-  -> {makeIndices s t lo hi == N } / [hi - lo] @-} 
-makeNewIndicesNullSmallIndex s1 t lo hi
-  | lo == hi, not (isGoodIndex s1 t lo)
-  = makeIndices s1 t lo hi ==. N *** QED  
-  | not (isGoodIndex s1 t lo)
-  =   makeIndices s1 t lo hi
-  ==. makeIndices s1 t (lo + 1) hi 
-  ==. N ? makeNewIndicesNullSmallIndex s1 t (lo+1) hi
-  *** QED 
-
-
-makeNewIndicesNullRight :: SMTString -> SMTString -> Proof 
-{-@ makeNewIndicesNullRight 
-  :: s1:SMTString 
-  -> t:SMTString 
-  -> {makeNewIndices stringEmp s1 t == N } @-} 
-makeNewIndicesNullRight s t 
-  | stringLen t < 2 
-  = makeNewIndices stringEmp s t  ==. N *** QED 
-makeNewIndicesNullRight s t 
-  =   makeNewIndices stringEmp s t
-  ==. makeIndices (concatString stringEmp s) t
-                   (maxInt (1 + stringLen stringEmp - stringLen t) 0)
-                   (stringLen stringEmp - 1)
-  ==. makeIndices s t
-                   (maxInt (1 - stringLen t) 0)
-                   (-1)
-      ? concatStringNeutralRight s 
-  ==. makeIndices s t 0 (-1)
-  ==. N  
-  *** QED
-
--------------------------------------------------------------------------------
-----------  Lemmata on Shifting Indices ---------------------------------------
--------------------------------------------------------------------------------
-
-mapLenFusion :: SMTString -> SMTString -> SMTString -> SMTString -> List Int -> Proof
-{-@ mapLenFusion :: tg:SMTString -> xi:SMTString -> yi:SMTString -> zi:SMTString 
-            -> zis:List (GoodIndex zi tg) 
-        -> {map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) zis) == map (shiftStringRight tg (concatString xi yi) zi) zis} 
-        / [llen zis ] @-}
-mapLenFusion tg xi yi zi N  
-  =   map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) N)
-  ==. map (shiftStringRight tg xi (concatString yi zi)) N 
-  ==. N 
-  ==. map (shiftStringRight tg (concatString xi yi) zi) N 
-  *** QED  
-mapLenFusion tg xi yi zi (C i is)  
-  =   map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) (C i is))
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (shiftStringRight tg yi zi i `C` map (shiftStringRight tg yi zi) is)
-  ==. shiftStringRight tg xi (concatString yi zi) (shiftStringRight tg yi zi i) `C` (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) is))
-  ==. shiftStringRight tg (concatString xi yi) zi i `C` (map (shiftStringRight tg xi (concatString yi zi)) (map (shiftStringRight tg yi zi) is))
-  ==. shiftStringRight tg (concatString xi yi) zi i `C` (map (shiftStringRight tg (concatString xi yi) zi) is)
-       ? mapLenFusion tg xi yi zi is 
-  ==. map (shiftStringRight tg (concatString xi yi) zi) (C i is)
-  *** QED  
-
-{-@ shiftIndexesRight
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen tg <= stringLen yi } 
-  -> { map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg) == makeNewIndices (concatString xi yi) zi tg }
-  @-}
-shiftIndexesRight :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesRight xi yi zi tg
-  | stringLen tg < 2 
-  =   makeNewIndices (concatString xi yi) zi tg 
-  ==. N
-  ==. map (shiftStringRight tg xi (concatString yi zi)) N
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-  *** QED 
-shiftIndexesRight xi yi zi tg
--- NV NV NV 
--- This is suspicious!!! it should require exactly the precondition 
--- || tg || <= || yi || 
---   | stringLen tg  <= stringLen yi + 1 
-  =   makeNewIndices (concatString xi yi) zi tg  
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (maxInt (stringLen (concatString xi yi) - (stringLen tg -1)) 0)
-                   (stringLen (concatString xi yi) - 1 )
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (stringLen (concatString xi yi) - (stringLen tg -1))
-                   (stringLen (concatString xi yi) - 1 )
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (stringLen xi + stringLen yi - stringLen tg + 1)
-                   (stringLen xi + stringLen yi - 1 )
-  ==. makeIndices (concatString xi (concatString yi zi)) tg 
-                   (stringLen xi + stringLen yi - stringLen tg + 1)
-                   (stringLen xi + stringLen yi - 1 )
-       ?concatStringAssoc xi yi zi
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (makeIndices (concatString yi zi) tg (stringLen yi - stringLen tg + 1) (stringLen yi - 1))
-       ? shiftIndexesRight' (stringLen yi - stringLen tg + 1)
-                            (stringLen yi - 1)
-                            xi 
-                            (concatString yi zi)
-                            tg 
-  ==. map (shiftStringRight tg xi (concatString yi zi)) 
-               (makeIndices (concatString yi zi) tg 
-                             (maxInt (stringLen yi - (stringLen tg -1)) 0)
-                             (stringLen yi -1))
-  ==. map (shiftStringRight tg xi (concatString yi zi)) 
-          (makeNewIndices yi zi tg)
-  *** QED
-
-{-@ shiftIndexesRight'
-  :: lo:Nat 
-  -> hi:Int  
-  -> x:SMTString 
-  -> input:SMTString 
-  -> target:SMTString
-  -> { map (shiftStringRight target x input) (makeIndices input target lo hi) == makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi) }
-  / [if hi < lo then 0 else  hi-lo]
-  @-}
-shiftIndexesRight' :: Int -> Int -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesRight' lo hi x input target
-  | hi < lo 
-  =   map (shiftStringRight target x input) (makeIndices input target lo hi)
-  ==. map (shiftStringRight target x input) N
-  ==. N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-  *** QED 
-  | lo == hi, isGoodIndex input target lo 
-  =   map (shiftStringRight target x input) (makeIndices input target lo hi)
-  ==. map (shiftStringRight target x input) (lo `C` N)
-  ==. (shiftStringRight target x input lo) `C` (map (shiftStringRight target x input) N)
-  ==. (stringLen x + lo) `C` N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? isGoodIndexConcatFront input x target lo  -- ( => IsGoodIndex (concatString x input) target (stringLen x + lo))
-  *** QED 
-  | lo == hi
-  =   map (shiftStringRight target x input) (makeIndices input target lo hi)
-  ==. map (shiftStringRight target x input) N
-  ==. N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-
-shiftIndexesRight' lo hi x input target
-  | isGoodIndex input target lo
-  =   map (shiftStringRight target x input) (makeIndices input target lo hi)
-  ==. map (shiftStringRight target x input) (lo `C` makeIndices input target (lo+1) hi)
-  ==. (shiftStringRight target x input lo) `C` (map (shiftStringRight target x input) (makeIndices input target (lo+1) hi))
-  ==. (shift (stringLen x) lo) `C` (makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi))
-      ? shiftIndexesRight' (lo+1) hi x input target
-  ==. (stringLen x + lo) `C` (makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi))
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-  | otherwise
-  =   map (shiftStringRight target x input) (makeIndices input target lo hi)
-  ==. map (shiftStringRight target x input) (makeIndices input target (lo + 1) hi)
-  ==. makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi)
-      ? shiftIndexesRight' (lo+1) hi x input target
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-
-
-{-@ shiftIndexesLeft
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen tg <= stringLen yi } 
-  -> {  makeNewIndices xi (concatString yi zi) tg == castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)}
-  @-}
-shiftIndexesLeft :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesLeft xi yi zi tg
-  | stringLen tg < 2 
-  =   makeNewIndices xi (concatString yi zi) tg 
-  ==. N
-  ==. makeNewIndices xi yi tg 
-  ==. castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-  *** QED 
-  | otherwise
-  =   makeNewIndices xi (concatString yi zi) tg 
-  ==. makeIndices (concatString xi (concatString yi zi)) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)
-     ?concatStringAssoc xi yi zi 
-  ==. makeIndices (concatString xi yi) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)                
-      ? concatmakeNewIndices (maxInt (stringLen xi - (stringLen tg-1)) 0) (stringLen xi - 1) tg (concatString xi yi) zi 
-  ==. makeNewIndices xi yi tg 
-  ==. castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)
-  *** QED 
-
-{-@ concatmakeNewIndices
-  :: lo:Nat -> hi:Int
-  -> target: SMTString
-  -> input : {SMTString | hi + stringLen target <= stringLen input } 
-  -> input': SMTString   
-  -> {  makeIndices (concatString input input') target lo hi == makeIndices input target lo hi }
-  / [hi - lo]  @-}
-concatmakeNewIndices :: Int -> Int -> SMTString -> SMTString -> SMTString  -> Proof
-concatmakeNewIndices lo hi target input input'
-  | hi < lo 
-  =   makeIndices input target lo hi
-  ==. N
-  ==. makeIndices (concatString input input') target lo hi 
-  *** QED 
-  | lo == hi, isGoodIndex input target lo
-  =   makeIndices input target lo hi
-  ==. lo `C` N
-  ==. makeIndices (concatString input input') target lo hi 
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-  | lo == hi
-  =  makeIndices input target lo hi 
-  ==. N
-  ==. makeIndices (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-concatmakeNewIndices lo hi target input input' 
-  | isGoodIndex input target lo
-  =   makeIndices input target lo hi
-  ==. lo `C` (makeIndices input target (lo + 1) hi)
-  ==. lo `C` (makeIndices (concatString input input') target (lo + 1) hi)
-       ? concatmakeNewIndices (lo+1) hi target input input'
-  ==. makeIndices  (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-  | otherwise 
-  =   makeIndices input target lo hi
-  ==. makeIndices input target (lo + 1) hi
-  ==. makeIndices (concatString input input') target (lo + 1) hi
-       ? concatmakeNewIndices (lo+1) hi target input input'
-  ==. makeIndices  (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-
-
-
-{-@ isGoodIndexConcatFront 
-  :: input:SMTString -> input':SMTString -> tg:SMTString -> i:Nat
-  -> {((isGoodIndex input tg i) <=> isGoodIndex (concatString input' input) tg (stringLen input' + i) )
-     } @-}
-isGoodIndexConcatFront :: SMTString -> SMTString -> SMTString -> Int -> Proof 
-isGoodIndexConcatFront input input' tg i 
-  =   isGoodIndex input tg i 
-  ==. (subString input i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input 
-      && 0 <= i)  
-  ==. (subString input i (stringLen tg)  == tg  
-      && (stringLen input' + i) + stringLen tg <= stringLen (concatString input' input) 
-      && 0 <= i)  
-  ==. (subString (concatString input' input) (stringLen input' + i) (stringLen tg)  == tg  
-      && (stringLen input' + i) + stringLen tg <= stringLen (concatString input' input) 
-      && 0 <= (stringLen input' + i))  
-      ? (subStringConcatFront input input' (stringLen tg) i *** QED)
-  ==. isGoodIndex (concatString input' input) tg (stringLen input' + i) 
-  *** QED 
-
-
-{-@ isGoodIndexConcatString 
-  :: input:SMTString -> input':SMTString -> tg:SMTString -> i:{Int | i + stringLen tg <= stringLen input }
-  -> {((isGoodIndex input tg i) <=> isGoodIndex (concatString input input') tg i)
-     } @-}
-isGoodIndexConcatString :: SMTString -> SMTString -> SMTString -> Int -> Proof 
-isGoodIndexConcatString input input' tg i 
-  =   isGoodIndex input tg i 
-  ==. (subString input i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input
-      && 0 <= i) 
-  ==. (subString (concatString input input') i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input 
-      && 0 <= i)   
-      ? (subStringConcatBack input input' (stringLen tg) i *** QED )
-  ==. (subString (concatString input input') i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen (concatString input input') 
-      && 0 <= i)   
-      ? (((stringLen input <= stringLen (concatString input input') *** QED ) &&& (concatLen input input') *** QED))
-  ==. isGoodIndex (concatString input input') tg i 
-  *** QED 
-
-
-mapShiftZero :: SMTString -> SMTString -> List Int -> Proof
-{-@ mapShiftZero :: target:SMTString -> i:SMTString -> is:List (GoodIndex i target) 
-  -> {map (shiftStringRight target stringEmp i) is == is } 
-  / [llen is] @-}
-mapShiftZero target i N
-  =   map (shiftStringRight target stringEmp i) N ==. N *** QED  
-mapShiftZero target i (C x xs)
-  =   map (shiftStringRight target stringEmp i) (C x xs) 
-  ==. shiftStringRight target stringEmp i x `C` map (shiftStringRight target stringEmp i) xs
-  ==. shift (stringLen stringEmp) x `C` map (shiftStringRight target stringEmp i) xs
-  ==. shift 0 x `C` map (shiftStringRight target stringEmp i) xs
-  ==. x `C` map (shiftStringRight target stringEmp i) xs
-  ==. x `C` xs ? mapShiftZero target i xs 
-  *** QED 
-
-
-{-@ mapShiftIndex :: tg:SMTString -> xi:SMTString -> yi:SMTString -> zi:SMTString -> xs:List (GoodIndex yi tg)
-  -> {map (shiftStringRight tg xi yi) xs == map (shiftStringRight tg xi (concatString yi zi)) xs} / [llen xs] @-}
-mapShiftIndex :: SMTString -> SMTString -> SMTString -> SMTString -> List Int -> Proof
-mapShiftIndex tg xi yi zi N 
-  = map (shiftStringRight tg xi yi) N ==. N ==. map (shiftStringRight tg xi (concatString yi zi)) N *** QED 
-  *** QED 
-mapShiftIndex tg xi yi zi zs@(C i0 is0)
-  =   let is = castGoodIndexRightList tg yi zi is0 
-          i  = castGoodIndexRight     tg yi zi i0  in 
-      map (shiftStringRight tg xi yi) (C i is) 
-  ==. C (shiftStringRight tg xi yi i) (map (shiftStringRight tg xi yi) is)
-  ==. C (shift (stringLen xi) i) (map (shiftStringRight tg xi yi) is)
-  ==. C (shiftStringRight tg xi (concatString yi zi) i) (map (shiftStringRight tg xi yi) is)
-  ==. C (shiftStringRight tg xi (concatString yi zi) i) (map (shiftStringRight tg xi (concatString yi zi)) is)
-       ? mapShiftIndex tg xi yi zi is
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (C i is)
-  *** QED 
-
-
-
-{-@ shiftNewIndices
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen yi < stringLen tg  } 
-  -> {  append (makeNewIndices xi (concatString yi zi) tg) (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)) == append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-     }
-  @-}
-shiftNewIndices :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftNewIndices xi yi zi tg 
-  | stringLen tg < 2 
-  =   append (makeNewIndices xi (concatString yi zi) tg) (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)) 
-  ==. append N (map (shiftStringRight tg xi (concatString yi zi)) N) 
-  ==. map (shiftStringRight tg xi (concatString yi zi)) N 
-  ==. N 
-  ==. append N N
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
-shiftNewIndices xi yi zi tg 
-  | stringLen xi == 0 
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-  ==. append (makeNewIndices stringEmp (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-  ? stringEmpProp xi 
-  ==. append (makeNewIndices stringEmp (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-  ? makeNewIndicesNullRight (concatString yi zi) tg
-  ==. append N
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-  ==. map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)
-       ? stringEmpProp xi
-  ==. map (shiftStringRight tg stringEmp (concatString yi zi)) (makeNewIndices yi zi tg)
-      ? mapShiftZero tg (concatString yi zi) (makeNewIndices yi zi tg)
-  ==. makeNewIndices yi zi tg
-  ==. makeNewIndices (concatString xi yi) zi tg
-        ? concatEmpLeft xi yi 
-  ==. append N (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (makeNewIndices stringEmp yi tg) (makeNewIndices (concatString xi yi) zi tg)
-       ? makeNewIndicesNullRight yi tg
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-      ? stringEmpProp xi
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-  | stringLen yi == 0 
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg))
-      ? (stringEmpProp yi &&& concatEmpLeft yi zi)
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shiftStringRight tg xi zi) (makeNewIndices stringEmp zi tg))
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shiftStringRight tg xi (concatString stringEmp zi)) N)
-      ? makeNewIndicesNullRight zi tg 
-  ==. append (makeNewIndices xi zi tg) 
-                  N
-  ==. makeNewIndices xi zi tg 
-       ? appendNil (makeNewIndices xi zi tg)
-  ==. makeNewIndices (concatString xi yi) zi tg
-       ? concatEmpRight xi yi
-  ==. append N (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (makeNewIndices xi stringEmp tg) (makeNewIndices (concatString xi yi) zi tg)
-       ? makeNewIndicesNullLeft xi tg 
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-       ? stringEmpProp yi
-  *** QED 
-  | stringLen yi - stringLen tg == -1 
-  = let minidx = maxInt (stringLen xi - stringLen tg + 1) 0 in 
-      append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt 0 0)
-                                          (stringLen yi -1)
-                            ))  
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi -1))
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ? mergeIndices (concatString (concatString xi yi) zi) tg 
-                     minidx -- maxInt (stringLen xi - stringLen tg + 1) 0
-                     (stringLen xi -1)
-                     (stringLen xi -1)
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  N
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ? appendNil (makeIndices (concatString (concatString xi yi) zi) tg
-                                    minidx
-                                    (stringLen xi + stringLen yi - stringLen tg))
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                ((stringLen xi))
-                                (stringLen xi + stringLen yi -1))
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen (concatString xi yi)  - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-      ? catIndices (concatString xi yi) zi tg minidx (stringLen xi-1)
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx 
-                                -- maxInt (stringLen xi - stringLen tg + 1) 0 && 2 <= stringLen tg
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi + stringLen yi - stringLen tg + 1) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-shiftNewIndices xi yi zi tg 
--- THIS ALWAYS HOLDS 
---   | stringLen yi + 1 <= stringLen tg
-  | 0 <= stringLen xi + stringLen yi - stringLen tg
- --  , 0 < stringLen xi 
-  = let minidx = maxInt (stringLen xi - stringLen tg + 1) 0 in 
-      append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                           0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi -1))
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ? mergeIndices (concatString (concatString xi yi) zi) tg 
-                     minidx -- maxInt (stringLen xi - stringLen tg + 1) 0
-                     (stringLen xi + stringLen yi - stringLen tg)
-                     (stringLen xi -1)
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                 (append
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg +1)
-                                (stringLen xi -1))
-
-                                
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) )
-      ? appendAssoc
-              (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-              (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg+1)
-                                (stringLen xi -1))
-              (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                ((stringLen xi + stringLen yi - stringLen tg+1))
-                                (stringLen xi + stringLen yi -1))
-     ? mergeIndices (concatString (concatString xi yi) zi) tg 
-                  ((stringLen xi + stringLen yi - stringLen tg+1))
-                  (stringLen xi-1)
-                  (stringLen xi + stringLen yi -1)
-
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen (concatString xi yi)  - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-      ? catIndices (concatString xi yi) zi tg minidx (stringLen xi-1)
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi + stringLen yi - stringLen tg + 1) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
---   | stringLen yi + 1 <= stringLen tg
-  | stringLen xi + stringLen yi < stringLen tg
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                0
-                                (stringLen xi -1)) 
-                  (map (shiftStringRight tg xi (concatString yi zi)) 
-                            (makeIndices (concatString yi zi) tg
-                                           0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                0
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-      ? mergeIndices (concatString (concatString xi yi) zi) tg 
-                    0 
-                    (stringLen xi-1) 
-                    (stringLen (concatString xi yi) -1)
-
-  ==. append N    (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                0
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-                  )
-      ? smallInput (concatString xi yi) tg 0 (stringLen xi -1)
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (castGoodIndexRightList tg (concatString xi yi) zi (makeNewIndices xi yi tg)) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
-
-smallInput :: SMTString -> SMTString -> Int -> Int -> Proof  
-{-@ smallInput :: input:SMTString -> target:{SMTString | stringLen input < stringLen target } -> lo:Nat -> hi:Int 
-           -> {makeIndices input target lo hi == N } 
-           / [hi -lo]
-  @-}
-smallInput input target lo hi 
-  | hi < lo 
-  = makeIndices input target lo hi 
-  ==. N
-  *** QED  
-  | lo == hi, not (isGoodIndex input target lo)
-  = makeIndices input target lo hi 
-  ==. N
-  *** QED  
-  | not (isGoodIndex input target lo)
-  = makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. N ? smallInput input target (lo+1) hi 
-  *** QED  
-
-maxIndices :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ maxIndices 
-  :: input:SMTString -> target:SMTString -> lo:{Nat | stringLen input < lo + stringLen target} -> hi:Int
-  -> {makeIndices input target lo hi = N}
-  / [hi - lo ] @-}
-maxIndices input target lo hi 
-  | hi < lo 
-  =   makeIndices input target lo hi  
-  ==. N
-  *** QED 
-  | lo == hi, not (isGoodIndex input target lo)
-  =   makeIndices input target lo hi  
-  ==. N
-  *** QED 
-  | not (isGoodIndex input target lo)
-  =   makeIndices input target lo hi
-  ==. N 
-  ==. makeIndices input target (lo+1) hi 
-      ? maxIndices input target (lo+1) hi 
-  *** QED 
-
-
-mergeIndices :: SMTString -> SMTString -> Int -> Int -> Int -> Proof
-{-@ mergeIndices 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> mid:{Int | lo <= mid} -> hi:{Int | mid <= hi} 
-  -> {makeIndices input target lo hi == append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)} 
-  / [mid] @-}
-mergeIndices input target lo mid hi 
-  | lo == mid, isGoodIndex input target lo 
-  =   append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)
-  ==. append (makeIndices input target lo lo)  (makeIndices input target (mid+1) hi)
-  ==. append (lo `C` N)  (makeIndices input target (mid+1) hi)
-  ==. lo  `C` (append N  (makeIndices input target (lo+1) hi))
-  ==. lo  `C` (makeIndices input target (lo+1) hi)
-  ==. makeIndices input target lo hi
-  *** QED 
-  | lo == mid, not (isGoodIndex input target lo)
-  =   append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)
-  ==. append (makeIndices input target lo lo)  (makeIndices input target (mid+1) hi)
-  ==. append (lo `C` N)  (makeIndices input target (mid+1) hi)
-  ==. (append N  (makeIndices input target (lo+1) hi))
-  ==. makeIndices input target lo hi
-  *** QED 
-  | lo < mid, not (isGoodIndex input target mid)
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target mid hi)
-       ? mergeIndices input target lo (mid-1) hi 
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target (mid+1) hi)
-
-  ==. append (makeIndices input target lo mid) 
-                  (makeIndices input target (mid+1) hi)
-      ?makeNewIndicesBadLast input target lo mid
-  *** QED 
-  | lo < mid, isGoodIndex input target mid
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target mid hi)
-       ? mergeIndices input target lo (mid-1) hi 
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (mid `C` makeIndices input target (mid+1) hi)
-
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (mid `C` (append N (makeIndices input target (mid+1) hi)))
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (append (C mid N) (makeIndices input target (mid+1) hi))
-
-  ==. append (append (makeIndices input target lo (mid-1)) (C mid N)) 
-                  (makeIndices input target (mid+1) hi)
-      ? appendAssoc (makeIndices input target lo (mid-1)) (C mid N) (makeIndices input target (mid+1) hi)
-
-  ==. append (makeIndices input target lo mid) 
-                  (makeIndices input target (mid+1) hi)
-      ?makeNewIndicesGoodLast input target lo mid
-  *** QED 
-
-
-makeNewIndicesGoodLast, makeNewIndicesBadLast 
-  :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesGoodLast 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> hi:{Int | lo <= hi && (isGoodIndex input target hi)}
-  -> {makeIndices input target lo hi == append (makeIndices input target lo (hi-1)) (C hi N)}
-  / [hi - lo] @-}
-makeNewIndicesGoodLast input target lo hi 
-  | lo == hi, (isGoodIndex input target lo)
-  =   makeIndices input target lo hi 
-  ==. hi `C` N 
-  ==. append (N) (C hi N)
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-  | not (isGoodIndex input target lo), isGoodIndex input target hi 
-  =   makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. append (makeIndices input target (lo+1) (hi-1)) (C hi N)
-       ? makeNewIndicesGoodLast input target (lo+1) hi  
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-  | isGoodIndex input target lo, isGoodIndex input target hi
-  =   makeIndices input target lo hi 
-  ==. lo `C` makeIndices input target (lo+1) hi
-  ==. lo `C` (append (makeIndices input target (lo+1) (hi-1)) (C hi N))
-       ? makeNewIndicesGoodLast input target (lo+1) hi  
-  ==. (append (lo `C` makeIndices input target (lo+1) (hi-1)) (C hi N))
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-
-{-@ makeNewIndicesBadLast 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> hi:{Int | lo <= hi && (not (isGoodIndex input target hi))}
-  -> {makeIndices input target lo hi == makeIndices input target lo (hi-1)}
-  / [hi - lo]
-@-}
--- NV sweet proof 
-makeNewIndicesBadLast input target lo hi 
-  | lo == hi, not (isGoodIndex input target lo)
-  =   makeIndices input target lo (hi-1) 
-  ==. N 
-  ==. makeIndices input target lo hi
-  *** QED 
-  | not (isGoodIndex input target lo), not (isGoodIndex input target hi) 
-  =   makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. makeIndices input target (lo+1) (hi-1)
-       ? makeNewIndicesBadLast input target (lo+1) hi   
-  ==. makeIndices input target lo (hi-1)
-  *** QED 
-  | isGoodIndex input target lo , not (isGoodIndex input target hi) 
-  =   makeIndices input target lo hi 
-  ==. lo `C` makeIndices input target (lo+1) hi
-  ==. lo `C` makeIndices input target (lo+1) (hi-1)
-       ? makeNewIndicesBadLast input target (lo+1) hi   
-  ==. makeIndices input target lo (hi-1)
-  *** QED 
-
-
-catIndices :: SMTString -> SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ catIndices 
-     :: input:SMTString -> x:SMTString 
-     -> target:{SMTString | 0 <= stringLen input - stringLen target + 1} 
-     -> lo:{Nat | lo <= stringLen input - stringLen target } 
-     -> hi:{Int | stringLen input - stringLen target <= hi}
-     -> { makeIndices input target lo hi == makeIndices (concatString input x) target lo (stringLen input - stringLen target) }
-  @-}
-catIndices input x target lo hi 
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (stringLen input - stringLen target))
-                  (makeIndices input target (stringLen input - stringLen target + 1) hi)
-       ? mergeIndices input target lo (stringLen input - stringLen target) hi
-  ==. append (makeIndices input target lo (stringLen input - stringLen target))
-                  N
-       ? maxIndices input target (stringLen input - stringLen target + 1) hi
-  ==. makeIndices input target lo (stringLen input - stringLen target)
-       ? appendNil (makeIndices input target lo (stringLen input - stringLen target))
-  ==. makeIndices (concatString input x) target lo (stringLen input - stringLen target)
-       ? concatmakeNewIndices lo (stringLen input - stringLen target) target input x 
-  *** QED 
-
diff --git a/tests/strings/pos/StringIndexingStep1.hs b/tests/strings/pos/StringIndexingStep1.hs
deleted file mode 100644
--- a/tests/strings/pos/StringIndexingStep1.hs
+++ /dev/null
@@ -1,44 +0,0 @@
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--stringtheory"    @-}
-
-module StringIndexing where
-
-
-import GHC.TypeLits
-import Data.String 
-
-import Data.Proxy 
--- Structure that defines valid indeces of a type level target 
--- symbol in a value level string
-
-data MI (tagret :: Symbol) s where 
-  MI :: IsString s => s        -- input string
-                   -> [Int]    -- valid indeces of target in input
-                   -> MI target s
-
-{-@ MI :: input:s 
-       -> [{i:Int |	 subString input i (stringLen target)  == target }]
-       -> MI s @-}
-
--- STEP 1:    Verification of valid structures
-
-misafe1 :: MI "cat" String 
-misafe1 = MI "catdogcatsdots" []
-
-misafe2 :: MI "cat" String
-misafe2 = MI "catdogcatsdots" [0]
-
-misafe3 :: MI "cat" String
-misafe3 = MI "catdogcatsdots" [0, 6]
-
-misafe4 :: MI "cat" String
-misafe4 = MI "catdogcatsdots" [6, 0]
-
-misafe5 :: MI "cat" String
-misafe5 = MI "catdogcatsdots" [6]
diff --git a/tests/strings/pos/StringIndexingStep2.hs b/tests/strings/pos/StringIndexingStep2.hs
deleted file mode 100644
--- a/tests/strings/pos/StringIndexingStep2.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-
-
-{-@ LIQUID "--totality"          @-}
-{-@ LIQUID "--stringtheory"      @-}
-
-module StringIndexing where
-
-
-import GHC.TypeLits
-import Data.String 
-
-import Data.Proxy 
--- Structure that defines valid indeces of a type level target 
--- symbol in a value level string
-
-data MI (tagret :: Symbol) s where 
-  MI :: IsString s => s        -- input string
-                   -> [Int]    -- valid indeces of target in input
-                   -> MI target s
-
-{-@ MI :: input:s 
-       -> [GoodIndex input target]
-       -> MI s @-}
-
-
-{-@ type GoodIndex Input Target 
-  = {i:Int |  IsGoodIndex Input Target i}
-  @-}
-
-{-@ predicate IsGoodIndex Input Target I
-  =  (subString Input I (stringLen Target)  == Target)
-  && (I + stringLen Target < stringLen Input)
-  && (0 <= I)
-  @-}
-
-{-@ measure stringLen    :: String -> Int @-}
-{-@ measure subString    :: String -> Int -> Int -> String @-}
-{-@ measure concatString :: String -> String -> String @-}
-
-mempty :: forall (target :: Symbol). MI target String
-mempty = MI "" []
-
-
-mappend :: forall (target :: Symbol). (KnownSymbol target) => MI target String -> MI target String -> MI target String
-mappend (MI i1 is1) (MI i2 is2)
-  = MI input (is ++ is1 ++ map ((length i1) +) is2)
-  where 
-    is     = filterIndex input target [(len1 - len) .. (len1 + len)]
-    input  = i1 `concatString` i2 
-    len1   = length i1 
-    len    = length target 
-    target = symbolVal (Proxy :: Proxy target)
-
-
-{-@ symbolVal :: forall n proxy. KnownSymbol n => proxy n -> {v:String | v == n} @-}
-
-filterIndex :: String -> String -> [Int] -> [Int]
-{-@ filterIndex :: input:String -> target:String -> is:[Int] -> [GoodIndex input target] / [len is] @-}
-filterIndex _ _ [] = []
-filterIndex input target (i:is)
-  | isGoodIndex input target i
-  = i:filterIndex input target is 
-  | otherwise 
-  =   filterIndex input target is 
-
-
-isGoodIndex :: String -> String -> Int -> Bool 
-{-@ isGoodIndex :: input:String -> target:String -> i:Int 
-  -> {b:Bool | Prop b <=> IsGoodIndex input target i} @-}
-isGoodIndex input target i 
-  =  subString input i (stringLen target)  == target  
-  && i + stringLen target < stringLen input
-  && 0 <= i
-
-{-@ concatString :: x:String -> y:String -> {v:String | v == concatString x y && stringLen v == stringLen x + stringLen y } @-}
-concatString :: String -> String -> String
-concatString = undefined 
-
-{-@ stringLen    :: s:String -> {v:Int | v == stringLen s} @-}
-stringLen :: String -> Int 
-stringLen = length 
-
-{-@ subString  :: s:String -> offset:Int -> ln:Int -> {v:String |v == subString s offset ln } @-}
-subString :: String -> Int -> Int -> String 
-subString = undefined 
diff --git a/tests/strings/pos/StringIndexingStep3.hs b/tests/strings/pos/StringIndexingStep3.hs
deleted file mode 100644
--- a/tests/strings/pos/StringIndexingStep3.hs
+++ /dev/null
@@ -1,1735 +0,0 @@
-{-
-NV TODO 
-1. refine data type
-2. connect it with Steps 1 & 2
-3. connect it with dyn programming 
--}
-
-
-
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-
-
-{-@ LIQUID "--higherorder"         @-}
-{-@ LIQUID "--totality"            @-}
-{-@ LIQUID "--exactdc"             @-}
-
-module Main where
-
-import Language.Haskell.Liquid.String
-import GHC.TypeLits
-import Data.String hiding (fromString)
-import Data.Proxy 
-import Prelude hiding (mempty, mappend, id, mconcat, map)
-import Language.Haskell.Liquid.ProofCombinators 
-
-import Data.Maybe 
-
--- | Interface 
-
-main :: IO ()
-main = 
-   do input     <- fromString <$> readFile "input.txt"
-      let mi1    = toMI input :: MI "abcab" SMTString
-      let is1    = getIndex mi1 
-      putStrLn ("Serial   Indices: " ++ show is1)
-      let mi2    = toMIPar input :: MI "abcab" SMTString
-      let is2    = getIndex mi2 
-      putStrLn ("Parallel Indices: " ++ show is2)
-      putStrLn ("Are equal? " ++ show (is1 == is2))
-
-{-
-main :: IO ()
-main = 
-  do input     <- fromString <$> readFile "input.txt"
-     case someSymbolVal "x" of 
-            SomeSymbol (_ :: Proxy y) ->            
-      let mi1    = toMI input :: MI y SMTString
-      let is1    = getIndex mi1 
-      putStrLn ("Serial   Indices: " ++ show is1)
-      let mi2    = toMIPar input :: MI "abcab" SMTString
-      let is2    = getIndex mi2 
-      putStrLn ("Parallel Indices: " ++ show is2)
-      putStrLn ("Are equal? " ++ show (is1 == is2))
-
-
--}
-
-test1   = indices input1 
-input1  = fromString $ clone 100 "ababcabcab"
-
-
-indices :: SMTString -> List Int 
-indices input 
-  = case toMI input :: MI "abcab" SMTString  of 
-      MI _ i -> i 
-
-
-{-
-
-
-
-  |
--}
-
-mconcatPar :: forall (target :: Symbol). (KnownSymbol target) =>  Int -> [MI target SMTString] -> MI target SMTString
-mconcatPar n xs = mconcat (mconcatPar' n xs)
-
-{-@ Lazy mconcatPar' @-}
--- Termination proof is terribly slow and will change... 
-{-@ mconcatPar' :: forall (target :: Symbol). (KnownSymbol target) =>  Int -> xs:[MI target SMTString] -> [MI target SMTString] @-}
-mconcatPar' :: forall (target :: Symbol). (KnownSymbol target) =>  Int -> [MI target SMTString] -> [MI target SMTString]
-mconcatPar' n xs | length xs <= n = [mconcat xs]  
-mconcatPar' n xs = let (x, r) = splitAt n xs 
-                   in mconcatPar' n (mconcat x:mconcatPar' n r)
-
-toMIPar :: forall (target :: Symbol). (KnownSymbol target) => SMTString -> MI target SMTString 
-toMIPar input = undefined 
-
-toMI :: forall (target :: Symbol). (KnownSymbol target) => SMTString -> MI target SMTString 
-toMI input = if isNullString input then mempty else  MI input (makeIndices input (fromString (symbolVal (Proxy :: Proxy target))) 0 (stringLen input - 1))
-
-getIndex :: forall (target :: Symbol).  MI target SMTString -> List Int 
-getIndex (MI _ i) = i 
-
-clone :: Int -> [a] -> [a]
-clone i xs | i <= 0 = [] 
-clone 1 xs = xs 
-clone n xs = xs ++ clone (n-1) xs
-
-mconcat :: forall (target :: Symbol). (KnownSymbol target) => [MI target SMTString] -> MI target SMTString
-mconcat []       = mempty 
-mconcat [x]      = x 
-mconcat [x1, x2] = mappend x1 x2 
-mconcat (x:xs)   = mappend x (mconcat xs)
-
-
--- | Indexing Structure Definition 
-
--- Structure that defines valid indeces of a type level target 
--- symbol in a value level string
-
-data MI (target :: Symbol) s where 
-  MI :: SMTString        -- input string
-     -> (List Int)      -- valid indeces of target in input
-     -> MI target s
-  deriving (Show)
-
-{-@ data MI target s 
-  = MI { input :: SMTString
-       , idxes   :: List Int 
-       } @-}
-
-
-{- data MI target s 
-  = MI { input :: SMTString
-       , List :: List (GoodIndex input target)
-       } @-}
-
-
-{-@ measure indixesMI @-}
-indixesMI (MI _ is) = is 
-{-@ measure inputMI @-}
-inputMI (MI i _) = i 
-
-
-
-{-@ type GoodIndex Input Target 
-  = {i:Int |  IsGoodIndex Input Target i}
-  @-}
-
-{-@ type GoodIndexTwo Input Input2 Target 
-  = {i:Int |  IsGoodIndex Input Target i && IsGoodIndex (concatString Input Input2) Target i }
-  @-}
-
-{-@ predicate IsGoodIndex Input Target I
-  =  (subString Input I (stringLen Target)  == Target)
-  && (I + stringLen Target <= stringLen Input)
-  && (0 <= I)
-  @-}
-
-
--- | Monoid methods 
-
-{-@ reflect mempty @-}
-mempty :: forall (target :: Symbol). MI target SMTString
-mempty = MI stringEmp N
-
-{-@ reflect mappend @-}
-mappend :: forall (target :: Symbol).  (KnownSymbol target) => MI target SMTString -> MI target SMTString -> MI target SMTString
-mappend (MI i1 is1) (MI i2 is2)
-  = MI (concatString i1 i2) -- (mappendMakeIndixes i1 i2 (fromString (symbolVal (Proxy :: Proxy target))) is1 is2)
-    ((is1 
-        `append` 
-      makeNewIndices i1 i2 (fromString (symbolVal (Proxy :: Proxy target))))
-        `append` 
-      map (shift (stringLen i1)) is2)            
- 
-
--------------------------------------------------------------------------------
---------------- PROOFS  -------------------------------------------------------
--------------------------------------------------------------------------------
-
-mempty_left :: forall (target :: Symbol). (KnownSymbol target) => MI target SMTString -> Proof
-{-@ mempty_left :: xs:MI target SMTString -> {mappend xs mempty == xs } @-}
-mempty_left (MI i1 is1)
-  =   mappend (MI i1 is1) (mempty :: MI target SMTString)
-  ==. mappend (MI i1 is1) (MI stringEmp N) 
-  ==. MI (concatString i1 stringEmp)  
-       (is1 `append` map (shift (stringLen i1)) N
-            `append` makeNewIndices i1 stringEmp (fromString (symbolVal (Proxy :: Proxy target))))
-  ==. MI (concatString i1 stringEmp)  
-       ((is1 `append` N)
-            `append` makeNewIndices i1 stringEmp (fromString (symbolVal (Proxy :: Proxy target))))
-  ==. MI (concatString i1 stringEmp)  
-       (is1 `append` makeNewIndices i1 stringEmp (fromString (symbolVal (Proxy :: Proxy target))))
-      ? appendEmp is1 
-  ==. MI (concatString i1 stringEmp)  
-       (is1 `append` N) 
-      ? makeNewIndicesNullLeft i1 (fromString (symbolVal (Proxy :: Proxy target)))
-  ==. MI (concatString i1 stringEmp) is1 
-      ? appendEmp is1 
-  ==. MI i1 is1 
-      ? concatStringNeutral i1 
-  *** QED 
-
-
-
-
-
-mempty_right :: forall (target :: Symbol). (KnownSymbol target) => MI target SMTString -> Proof
-{-@ mempty_right :: xs:MI target SMTString -> {mappend mempty xs == xs } @-}
-mempty_right (MI i is)
-  =   mappend (mempty :: MI target SMTString) (MI i is) 
-  ==. mappend (MI stringEmp N) (MI i is) 
-  ==. MI (concatString stringEmp i)  
-       (N `append` makeNewIndices stringEmp i (fromString (symbolVal (Proxy :: Proxy target)))
-               `append` map (shift (stringLen stringEmp)) is)
-  ==. MI (concatString stringEmp i)  
-       ( makeNewIndices stringEmp i (fromString (symbolVal (Proxy :: Proxy target)))
-        `append`
-         map (shift (stringLen stringEmp)) is)
-  ==. MI (concatString stringEmp i)  
-       ( makeNewIndices stringEmp i (fromString (symbolVal (Proxy :: Proxy target)))
-         `append` 
-         map (shift 0) is)
-  ==. MI (concatString stringEmp i)  
-       (makeNewIndices stringEmp i (fromString (symbolVal (Proxy :: Proxy target)))
-        `append` 
-        is)
-       ? mapShiftZero is 
-  ==. MI (concatString stringEmp i)  
-       (N `append` is) 
-      ? makeNewIndicesNullRight i (fromString (symbolVal (Proxy :: Proxy target)))
-  ==. MI (concatString stringEmp i) is 
-  ==. MI i is 
-      ? concatStringNeutralRight i
-  *** QED 
-
-{-@ mappend_assoc 
-  :: x:MI target SMTString -> y:MI target SMTString -> z:MI target SMTString
-  -> {v:Proof | mappend x (mappend y z) = mappend (mappend x y) z}
-  @-}
-mappend_assoc 
-     :: forall (target :: Symbol). (KnownSymbol target) 
-     => MI target SMTString ->  MI target SMTString ->  MI target SMTString -> Proof
-mappend_assoc x@(MI xi xis) y@(MI yi yis) z@(MI zi zis)
-  | stringLen (fromString (symbolVal (Proxy :: Proxy target))) <= stringLen yi 
-  =   mappend x (mappend y z)
-  ==. mappend (MI xi xis) (mappend (MI yi yis) (MI zi zis))
-  ==. mappend (MI xi xis) 
-              (MI (concatString yi zi)  
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis))
-  ==. MI (concatString xi (concatString yi zi))  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-      ? concatStringAssoc xi yi zi 
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  (
-                    (map (shift (stringLen xi)) (yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))))
-                    `append` 
-                    map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? map_append (shift (stringLen xi)) 
-                   (yis `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))) 
-                   (map (shift (stringLen yi)) zis)
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  (
-                    (map (shift (stringLen xi)) yis 
-                    `append` (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))))
-                    `append` 
-                    map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? map_append (shift (stringLen xi)) yis (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  (
-                    (map (shift (stringLen xi)) yis 
-                    `append` (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))))
-                    `append` 
-                    map (shift (stringLen (concatString xi yi))) zis)
-              )
-      ? map_len_fusion xi yi zis 
--- ((x1~x2) ~ ((x3~x4) ~ x5))
--- == 
---   ((((x1~x2) ~x3) ~x4) ~x5
-  ==. MI (concatString (concatString xi yi) zi)
-         (((( xis 
-               `append` 
-              makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))                      `append` map (shift (stringLen xi)) yis)
-               `append` 
-              map (shift (stringLen xi)) yis)
-               `append`
-              map (shift (stringLen (concatString xi yi))) zis)
-
-      ? appendReorder xis
-                      (makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-                      (map (shift (stringLen xi)) yis)
-                      (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))))
-                      (map (shift (stringLen (concatString xi yi))) zis)
--- ((((x1 ~ x2) ~ x3) ~ x4) ~ x5)
--- 
--- ((((x1 ~ x2) ~ x3) ~ x4) ~ x5)
-
-  ==. MI (concatString (concatString xi yi) zi)
-         (((( xis 
-               `append` 
-              makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-              map (shift (stringLen xi)) yis)
-               `append`
-              makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-              map (shift (stringLen (concatString xi yi))) zis 
-          )
-      ? shiftIndexes xi yi zi (fromString (symbolVal (Proxy :: Proxy target)))
-  ==. mappend (MI (concatString xi yi)  
-                  ( (xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                       `append` map (shift (stringLen xi)) yis
-                  )
-              ) (MI zi zis)
-  ==. mappend (mappend (MI xi xis) (MI yi yis)) (MI zi zis)
-  *** QED 
-
-
-
-mappend_assoc x@(MI xi xis) y@(MI yi yis) z@(MI zi zis)
-  | stringLen yi < stringLen (fromString (symbolVal (Proxy :: Proxy target))) 
-  =   mappend x (mappend y z)
-  ==. mappend (MI xi xis) (mappend (MI yi yis) (MI zi zis))
-  ==. mappend (MI xi xis) 
-              (MI (concatString yi zi)  
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis))
-  ==. MI (concatString xi (concatString yi zi))  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  ((yis 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-      ? concatStringAssoc xi yi zi 
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  ((N 
-                    `append` makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-        ? emptyIndexes y (assumeGoodIndex yi (fromString (symbolVal (Proxy :: Proxy target))) yis)
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  map (shift (stringLen xi)) 
-                  (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))
-                    `append` map (shift (stringLen yi)) zis)
-              )
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                  `append` map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? map_append (shift (stringLen xi)) 
-                   (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))) 
-                   (map (shift (stringLen yi)) zis)
-
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-               `append` 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target))))
-                  `append` map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? map_len_fusion xi yi zis 
--- ((x1~x2) ~ (x3~x4))
--- == 
--- (x1 ~ (x2~x3)) ~ x4
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               (makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target)))
-               `append` 
-                map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))))
-                  `append` map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? appendGroupNew xis
-                       (makeNewIndices xi (concatString yi zi) (fromString (symbolVal (Proxy :: Proxy target))))
-                       (map (shift (stringLen xi)) (makeNewIndices yi zi (fromString (symbolVal (Proxy :: Proxy target)))))
-                       (map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-
-
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               (makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target)))
-               `append` 
-                makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target))))
-                  `append` map (shift (stringLen xi)) (map (shift (stringLen yi)) zis))
-              )
-      ? shiftNewIndexes xi yi zi (fromString (symbolVal (Proxy :: Proxy target)))
-  ==. MI (concatString (concatString xi yi) zi)  
-         ((xis `append` 
-               (makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target)))
-               `append` 
-                makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target))))
-                  `append` map (shift (stringLen (concatString xi yi))) zis)
-              )
-      ? map_len_fusion xi yi zis 
-
--- (x1 ~ (x2 ~ x3)) ~ x4 == ((x1 ~ x2) ~ x3) ~ x4
-  ==. MI (concatString (concatString xi yi) zi)  
-         (((xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-         `append`
-            (makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target)))))
-         `append` 
-            map (shift (stringLen (concatString xi yi))) zis )
-      ? appendUnGroupNew xis 
-                         (makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                         (makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target))))
-                         (map (shift (stringLen (concatString xi yi))) zis)
-
-  ==. MI (concatString (concatString xi yi) zi)  
-        ((((xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                       `append` N
-                  )
-         `append`
-            (makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target)))))
-         `append` 
-            map (shift (stringLen (concatString xi yi))) zis )
-          ? appendEmp (xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-  ==. MI (concatString (concatString xi yi) zi)  
-        ((((xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                       `append` map (shift (stringLen xi)) N
-                  )
-         `append`
-            (makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target)))))
-         `append` 
-            map (shift (stringLen (concatString xi yi))) zis )
-  ==. MI (concatString (concatString xi yi) zi)  
-        ((((xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                       `append` map (shift (stringLen xi)) yis
-                  )
-         `append`
-            (makeNewIndices (concatString xi yi) zi (fromString (symbolVal (Proxy :: Proxy target)))))
-         `append` 
-            map (shift (stringLen (concatString xi yi))) zis )
-      ?emptyIndexes y (assumeGoodIndex yi (fromString (symbolVal (Proxy :: Proxy target))) yis)
-  ==. mappend (MI (concatString xi yi)  
-                  ( (xis `append` makeNewIndices xi yi (fromString (symbolVal (Proxy :: Proxy target))))
-                         `append` map (shift (stringLen xi)) yis
-                  )
-              ) (MI zi zis)
-  ==. mappend (mappend (MI xi xis) (MI yi yis)) (MI zi zis)
-  *** QED 
-
--------------------------------------------------------------------------------
------------------- Helper Proofs ----------------------------------------------
--------------------------------------------------------------------------------
-
-
-{-@ assumeGoodIndex :: input:SMTString -> target:SMTString -> is:List Int 
-                    -> {v:List (GoodIndex input target) | v == is} @-} 
-assumeGoodIndex :: SMTString -> SMTString -> List Int -> List Int 
-assumeGoodIndex input target is 
-  = if isJust (areGoodIndexes input target is) then fromJust (areGoodIndexes input target is) else error ""  
-
-
-{-@ areGoodIndexes :: input:SMTString -> target:SMTString -> is:List Int 
-                   -> Maybe ({v:List (GoodIndex input target) | v == is}) @-} 
-areGoodIndexes :: SMTString -> SMTString -> List Int -> Maybe (List Int) 
-areGoodIndexes input target N
-  = Just N
-areGoodIndexes input target (C x xs)
-  | isGoodIndex input target x 
-  = case areGoodIndexes input target xs of 
-       Nothing -> Nothing 
-       Just is -> Just (C x is) 
-  | otherwise
-  = Nothing 
-
-  
-emptyIndexes :: forall (target :: Symbol). (KnownSymbol target) => MI target SMTString -> List Int  -> Proof
-{-@ emptyIndexes :: mi:MI target SMTString
-                 -> is:{List (GoodIndex (inputMI mi) target) | is == indixesMI mi && stringLen (inputMI mi) < stringLen target}
-                 -> { is == N } @-}
-emptyIndexes (MI _ _) N 
-  = trivial 
-emptyIndexes (MI _ _) (C _ _)
-  = trivial 
-
-
-{-@ shiftIndexes
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen tg <= stringLen yi } 
-  -> {  (makeNewIndices xi (concatString yi zi) tg == makeNewIndices xi yi tg)  
-        && 
-        (map (shift (stringLen xi)) (makeNewIndices yi zi tg) == makeNewIndices (concatString xi yi) zi tg)
-     }
-  @-}
-shiftIndexes :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexes xi yi zi tg = shiftIndexesLeft xi yi zi tg &&& shiftIndexesRight xi yi zi tg 
-
-{-@ reflect chunkString @-}
-{-@ chunkString :: Int -> xs:SMTString -> List (SMTString) / [stringLen xs] @-}
-chunkString :: Int -> SMTString -> List (SMTString)
-chunkString i xs 
-  | i <= 0 
-  = C xs N 
-  | stringLen xs <= i 
-  = C xs N 
-  | otherwise
-  = C (takeString i xs) (chunkString i (dropString i xs))
-
-
-
-{-@ shiftIndexesLeft
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen tg <= stringLen yi } 
-  -> {  makeNewIndices xi (concatString yi zi) tg == makeNewIndices xi yi tg}
-  @-}
-shiftIndexesLeft :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesLeft xi yi zi tg
-  | stringLen tg < 2 
-  =   makeNewIndices xi (concatString yi zi) tg 
-  ==. N
-  ==. makeNewIndices xi yi tg 
-  *** QED 
-  | otherwise
-  =   makeNewIndices xi (concatString yi zi) tg 
-  ==. makeIndices (concatString xi (concatString yi zi)) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)
-     ?concatStringAssoc xi yi zi 
-  ==. makeIndices (concatString xi yi) tg 
-                   (maxInt (stringLen xi - (stringLen tg-1)) 0)
-                   (stringLen xi - 1)                
-      ? concatmakeNewIndices (maxInt (stringLen xi - (stringLen tg-1)) 0) (stringLen xi - 1) tg (concatString xi yi) zi 
-  ==. makeNewIndices xi yi tg 
-  *** QED 
-
-
-
-{-@ concatmakeNewIndices
-  :: lo:Nat -> hi:Int
-  -> target: SMTString
-  -> input : {SMTString | hi + stringLen target <= stringLen input } 
-  -> input': SMTString   
-  -> {  makeIndices (concatString input input') target lo hi == makeIndices input target lo hi }
-  / [hi - lo]  @-}
-concatmakeNewIndices :: Int -> Int -> SMTString -> SMTString -> SMTString  -> Proof
-concatmakeNewIndices lo hi target input input'
-  | hi < lo 
-  =   makeIndices input target lo hi
-  ==. N
-  ==. makeIndices (concatString input input') target lo hi 
-  *** QED 
-  | lo == hi, isGoodIndex input target lo
-  =   makeIndices input target lo hi
-  ==. lo `C` N
-  ==. makeIndices (concatString input input') target lo hi 
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-  | lo == hi
-  =  makeIndices input target lo hi 
-  ==. N
-  ==. makeIndices (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-concatmakeNewIndices lo hi target input input' 
-  | isGoodIndex input target lo
-  =   makeIndices input target lo hi
-  ==. lo `C` (makeIndices input target (lo + 1) hi)
-  ==. lo `C` (makeIndices (concatString input input') target (lo + 1) hi)
-       ? concatmakeNewIndices (lo+1) hi target input input'
-  ==. makeIndices  (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-  | otherwise 
-  =   makeIndices input target lo hi
-  ==. makeIndices input target (lo + 1) hi
-  ==. makeIndices (concatString input input') target (lo + 1) hi
-       ? concatmakeNewIndices (lo+1) hi target input input'
-  ==. makeIndices  (concatString input input') target lo hi
-      ? isGoodIndexConcatString input input' target lo  
-  *** QED 
-
-
-
-{-@ isGoodIndexConcatFront 
-  :: input:SMTString -> input':SMTString -> tg:SMTString -> i:Nat
-  -> {((isGoodIndex input tg i) <=> isGoodIndex (concatString input' input) tg (stringLen input' + i) )
-     } @-}
-isGoodIndexConcatFront :: SMTString -> SMTString -> SMTString -> Int -> Proof 
-isGoodIndexConcatFront input input' tg i 
-  =   isGoodIndex input tg i 
-  ==. (subString input i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input 
-      && 0 <= i)  
-  ==. (subString input i (stringLen tg)  == tg  
-      && (stringLen input' + i) + stringLen tg <= stringLen (concatString input' input) 
-      && 0 <= i)  
-  ==. (subString (concatString input' input) (stringLen input' + i) (stringLen tg)  == tg  
-      && (stringLen input' + i) + stringLen tg <= stringLen (concatString input' input) 
-      && 0 <= (stringLen input' + i))  
-      ? (subStringConcatFront input input' (stringLen tg) i *** QED)
-  ==. isGoodIndex (concatString input' input) tg (stringLen input' + i) 
-  *** QED 
-
-
-{-@ isGoodIndexConcatString 
-  :: input:SMTString -> input':SMTString -> tg:SMTString -> i:{Int | i + stringLen tg <= stringLen input }
-  -> {((isGoodIndex input tg i) <=> isGoodIndex (concatString input input') tg i)
-     } @-}
-isGoodIndexConcatString :: SMTString -> SMTString -> SMTString -> Int -> Proof 
-isGoodIndexConcatString input input' tg i 
-  =   isGoodIndex input tg i 
-  ==. (subString input i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input
-      && 0 <= i) 
-  ==. (subString (concatString input input') i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen input 
-      && 0 <= i)   
-      ? (subStringConcat input input' (stringLen tg) i *** QED )
-  ==. (subString (concatString input input') i (stringLen tg)  == tg  
-      && i + stringLen tg <= stringLen (concatString input input') 
-      && 0 <= i)   
-      ? (((stringLen input <= stringLen (concatString input input') *** QED ) &&& (lenConcat input input') *** QED))
-  ==. isGoodIndex (concatString input input') tg i 
-  *** QED 
-
-
-
-
-
-
-{-@ shiftIndexesRight
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen tg <= stringLen yi } 
-  -> { map (shift (stringLen xi)) (makeNewIndices yi zi tg) == makeNewIndices (concatString xi yi) zi tg }
-  @-}
-shiftIndexesRight :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesRight xi yi zi tg
-  | stringLen tg < 2 
-  =   makeNewIndices (concatString xi yi) zi tg 
-  ==. N
-  ==. map (shift (stringLen xi)) N
-  ==. map (shift (stringLen xi)) (makeNewIndices yi zi tg)
-  *** QED 
-shiftIndexesRight xi yi zi tg
--- NV NV NV 
--- This is suspicious!!! it should require exactly the precondition 
--- || tg || <= || yi || 
---   | stringLen tg  <= stringLen yi + 1 
-  =   makeNewIndices (concatString xi yi) zi tg  
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (maxInt (stringLen (concatString xi yi) - (stringLen tg -1)) 0)
-                   (stringLen (concatString xi yi) - 1 )
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (stringLen (concatString xi yi) - (stringLen tg -1))
-                   (stringLen (concatString xi yi) - 1 )
-  ==. makeIndices (concatString (concatString xi yi) zi) tg 
-                   (stringLen xi + stringLen yi - stringLen tg + 1)
-                   (stringLen xi + stringLen yi - 1 )
-  ==. makeIndices (concatString xi (concatString yi zi)) tg 
-                   (stringLen xi + stringLen yi - stringLen tg + 1)
-                   (stringLen xi + stringLen yi - 1 )
-       ?concatStringAssoc xi yi zi
-  ==. map (shift (stringLen xi)) (makeIndices (concatString yi zi) tg (stringLen yi - stringLen tg + 1) (stringLen yi - 1))
-       ? shiftIndexesRight' (stringLen yi - stringLen tg + 1)
-                            (stringLen yi - 1)
-                            xi 
-                            (concatString yi zi)
-                            tg 
-  ==. map (shift (stringLen xi)) 
-               (makeIndices (concatString yi zi) tg 
-                             (maxInt (stringLen yi - (stringLen tg -1)) 0)
-                             (stringLen yi -1))
-  ==. map (shift (stringLen xi)) 
-               (makeNewIndices yi zi tg)
-  *** QED
-
-{-@ shiftIndexesRight'
-  :: lo:Nat 
-  -> hi:Int  
-  -> x:SMTString 
-  -> input:SMTString 
-  -> tg:SMTString
-  -> { map (shift (stringLen x)) (makeIndices input tg lo hi) == makeIndices (concatString x input) tg (stringLen x + lo) (stringLen x + hi) }
-  / [if hi < lo then 0 else  hi-lo]
-  @-}
-shiftIndexesRight' :: Int -> Int -> SMTString -> SMTString -> SMTString -> Proof
-shiftIndexesRight' lo hi x input target
-  | hi < lo 
-  =   map (shift (stringLen x)) (makeIndices input target lo hi)
-  ==. map (shift (stringLen x)) N
-  ==. N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-  *** QED 
-  | lo == hi, isGoodIndex input target lo 
-  =   map (shift (stringLen x)) (makeIndices input target lo hi)
-  ==. map (shift (stringLen x)) (lo `C` N)
-  ==. ((shift (stringLen x)) lo) `C` (map (shift (stringLen x)) N)
-  ==. (stringLen x + lo) `C` N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? isGoodIndexConcatFront input x target lo  -- ( => IsGoodIndex (concatString x input) target (stringLen x + lo))
-  *** QED 
-  | lo == hi
-  =   map (shift (stringLen x)) (makeIndices input target lo hi)
-  ==. map (shift (stringLen x)) N
-  ==. N
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-
-shiftIndexesRight' lo hi x input target
-  | isGoodIndex input target lo
-  =   map (shift (stringLen x)) (makeIndices input target lo hi)
-  ==. map (shift (stringLen x)) (lo `C`(makeIndices input target (lo+1) hi))
-  ==. (shift (stringLen x) lo) `C` (map (shift (stringLen x)) (makeIndices input target (lo+1) hi))
-  ==. (shift (stringLen x) lo) `C` (makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi))
-      ? shiftIndexesRight' (lo+1) hi x input target
-  ==. (stringLen x + lo) `C` (makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi))
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-  | otherwise
-  =   map (shift (stringLen x)) (makeIndices input target lo hi)
-  ==. map (shift (stringLen x)) (makeIndices input target (lo + 1) hi)
-  ==. makeIndices (concatString x input) target (stringLen x + (lo+1)) (stringLen x + hi)
-      ? shiftIndexesRight' (lo+1) hi x input target
-  ==. makeIndices (concatString x input) target (stringLen x + lo) (stringLen x + hi)
-     ? (isGoodIndexConcatFront input x target lo *** QED)
-  *** QED 
-
-
-{-@ shiftNewIndexes
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zi:SMTString 
-  -> tg:{SMTString | stringLen yi < stringLen tg  } 
-  -> {  append (makeNewIndices xi (concatString yi zi) tg) (map (shift (stringLen xi)) (makeNewIndices yi zi tg)) == append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-     }
-  @-}
-shiftNewIndexes :: SMTString -> SMTString -> SMTString -> SMTString -> Proof
-shiftNewIndexes xi yi zi tg 
-  | stringLen tg < 2 
-  =   append (makeNewIndices xi (concatString yi zi) tg) (map (shift (stringLen xi)) (makeNewIndices yi zi tg)) 
-  ==. append N (map (shift (stringLen xi)) N) 
-  ==. map (shift (stringLen xi)) N 
-  ==. N 
-  ==. append N N
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
-shiftNewIndexes xi yi zi tg 
-  | stringLen xi == 0 
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-  ==. append (makeNewIndices stringEmp (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-  ? stringEmpProp xi 
-  ==. append (makeNewIndices stringEmp (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-  ? makeNewIndicesNullRight (concatString yi zi) tg
-  ==. append N
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-  ==. map (shift (stringLen xi)) (makeNewIndices yi zi tg)
-  ==. map (shift 0) (makeNewIndices yi zi tg)
-      ? mapShiftZero (makeNewIndices yi zi tg)
-  ==. makeNewIndices yi zi tg
-  ==. makeNewIndices (concatString xi yi) zi tg
-        ? concatEmpLeft xi yi 
-  ==. append N (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (makeNewIndices stringEmp yi tg) (makeNewIndices (concatString xi yi) zi tg)
-       ? makeNewIndicesNullRight yi tg
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-      ? stringEmpProp xi
-  *** QED 
-  | stringLen yi == 0 
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg))
-      ? concatEmpLeft yi zi 
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices stringEmp zi tg))
-      ? stringEmpProp yi
-  ==. append (makeNewIndices xi zi tg) 
-                  (map (shift (stringLen xi)) N)
-      ? makeNewIndicesNullRight zi tg 
-  ==. append (makeNewIndices xi zi tg) 
-                  N
-  ==. makeNewIndices xi zi tg 
-       ?appendEmp (makeNewIndices xi zi tg)
-  ==. makeNewIndices (concatString xi yi) zi tg
-       ? concatEmpRight xi yi
-  ==. append N (makeNewIndices (concatString xi yi) zi tg)
-  ==. append (makeNewIndices xi stringEmp tg) (makeNewIndices (concatString xi yi) zi tg)
-       ? makeNewIndicesNullLeft xi tg 
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-       ? stringEmpProp yi
-  *** QED 
-  | stringLen yi - stringLen tg == -1 
-  = let minidx = maxInt (stringLen xi - stringLen tg + 1) 0 in 
-      append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt 0 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi -1))
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ? mergeIndixes (concatString (concatString xi yi) zi) tg 
-                     minidx -- maxInt (stringLen xi - stringLen tg + 1) 0
-                     (stringLen xi -1)
-                     (stringLen xi -1)
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  N
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ?appendEmp (makeIndices (concatString (concatString xi yi) zi) tg
-                                    minidx
-                                    (stringLen xi + stringLen yi - stringLen tg))
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                ((stringLen xi))
-                                (stringLen xi + stringLen yi -1))
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen (concatString xi yi)  - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-      ? catIndixes (concatString xi yi) zi tg minidx (stringLen xi-1)
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx 
-                                -- maxInt (stringLen xi - stringLen tg + 1) 0 && 2 <= stringLen tg
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi + stringLen yi - stringLen tg + 1) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-shiftNewIndexes xi yi zi tg 
--- THIS ALWAYS HOLDS 
---   | stringLen yi + 1 <= stringLen tg
-  | 0 <= stringLen xi + stringLen yi - stringLen tg
- --  , 0 < stringLen xi 
-  = let minidx = maxInt (stringLen xi - stringLen tg + 1) 0 in 
-      append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                           0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. append (append 
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi -1))
-
-                                ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) 
-      ? mergeIndixes (concatString (concatString xi yi) zi) tg 
-                     minidx -- maxInt (stringLen xi - stringLen tg + 1) 0
-                     (stringLen xi + stringLen yi - stringLen tg)
-                     (stringLen xi -1)
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                 (append
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg +1)
-                                (stringLen xi -1))
-
-                                
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1)) )
-      ? appendAssoc
-              (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-              (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg+1)
-                                (stringLen xi -1))
-              (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx
-                                (stringLen xi + stringLen yi - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                ((stringLen xi + stringLen yi - stringLen tg+1))
-                                (stringLen xi + stringLen yi -1))
-     ? mergeIndixes (concatString (concatString xi yi) zi) tg 
-                  ((stringLen xi + stringLen yi - stringLen tg+1))
-                  (stringLen xi-1)
-                  (stringLen xi + stringLen yi -1)
-
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                minidx 
-                                (stringLen (concatString xi yi)  - stringLen tg))
-
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi + stringLen yi -1))
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (stringLen xi + stringLen yi - stringLen tg + 1)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-      ? catIndixes (concatString xi yi) zi tg minidx (stringLen xi-1)
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen xi + stringLen yi - stringLen tg + 1) 0)
-                                (stringLen xi + stringLen yi  - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                minidx
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
---   | stringLen yi + 1 <= stringLen tg
-  | stringLen xi + stringLen yi < stringLen tg
-  =   append (makeNewIndices xi (concatString yi zi) tg) 
-                  (map (shift (stringLen xi)) (makeNewIndices yi zi tg)) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                (maxInt (stringLen xi - stringLen tg + 1) 0)
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                          (maxInt (stringLen yi - stringLen tg +1) 0)
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                0
-                                (stringLen xi -1)) 
-                  (map (shift (stringLen xi)) 
-                            (makeIndices (concatString yi zi) tg
-                                           0
-                                          (stringLen yi -1)
-                            )) 
-  ==. append (makeIndices (concatString xi (concatString yi zi)) tg
-                                0
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString xi (concatString yi zi)) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? shiftIndexesRight' 0 (stringLen yi -1) xi (concatString yi zi) tg 
-  ==. append (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen xi -1)) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg 
-                                (stringLen xi) 
-                                (stringLen xi + stringLen yi -1)) 
-      ? concatStringAssoc xi yi zi 
-
-  ==. makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-      ?mergeIndixes (concatString (concatString xi yi) zi) tg 
-                    0 
-                    (stringLen xi-1) 
-                    (stringLen (concatString xi yi) -1)
-
-  ==. append N 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-                  )
-
-  ==. append (makeIndices (concatString xi yi) tg 
-                                0
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                0
-                                (stringLen (concatString xi yi) - 1)
-                  )
-      ? smallInput (concatString xi yi) tg 0 (stringLen xi -1)
-  ==. append (makeIndices (concatString xi yi) tg 
-                                (maxInt (stringLen xi - stringLen tg +1) 0)
-                                (stringLen xi-1)
-                  ) 
-                  (makeIndices (concatString (concatString xi yi) zi) tg
-                                (maxInt (stringLen (concatString xi yi) - stringLen tg + 1) 0)
-                                (stringLen (concatString xi yi) - 1)
-                  )
-  ==. append (makeNewIndices xi yi tg) (makeNewIndices (concatString xi yi) zi tg)
-  *** QED 
-
--- NIKI CHECK: Feels have done this proof before 
-maxIndixes 
-  :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ maxIndixes 
-  :: input:SMTString -> target:SMTString -> lo:{Nat | stringLen input < lo + stringLen target} -> hi:Int
-  -> {makeIndices input target lo hi = N}
-  / [hi - lo ] @-}
-maxIndixes input target lo hi 
-  | hi < lo 
-  =   makeIndices input target lo hi  
-  ==. N
-  *** QED 
-  | lo == hi, not (isGoodIndex input target lo)
-  =   makeIndices input target lo hi  
-  ==. N
-  *** QED 
-  | not (isGoodIndex input target lo)
-  =   makeIndices input target lo hi
-  ==. N 
-  ==. makeIndices input target (lo+1) hi 
-      ? maxIndixes input target (lo+1) hi 
-  *** QED 
-
-
-mergeIndixes :: SMTString -> SMTString -> Int -> Int -> Int -> Proof
-{-@ mergeIndixes 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> mid:{Int | lo <= mid} -> hi:{Int | mid <= hi} 
-  -> {makeIndices input target lo hi == append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)} 
-  / [mid] @-}
-mergeIndixes input target lo mid hi 
-  | lo == mid, isGoodIndex input target lo 
-  =   append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)
-  ==. append (makeIndices input target lo lo)  (makeIndices input target (mid+1) hi)
-  ==. append (lo `C` N)  (makeIndices input target (mid+1) hi)
-  ==. lo  `C` (append N  (makeIndices input target (lo+1) hi))
-  ==. lo  `C` (makeIndices input target (lo+1) hi)
-  ==. makeIndices input target lo hi
-  *** QED 
-  | lo == mid, not (isGoodIndex input target lo)
-  =   append (makeIndices input target lo mid) (makeIndices input target (mid+1) hi)
-  ==. append (makeIndices input target lo lo)  (makeIndices input target (mid+1) hi)
-  ==. append (lo `C` N)  (makeIndices input target (mid+1) hi)
-  ==. (append N  (makeIndices input target (lo+1) hi))
-  ==. makeIndices input target lo hi
-  *** QED 
-  | lo < mid, not (isGoodIndex input target mid)
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target mid hi)
-       ? mergeIndixes input target lo (mid-1) hi 
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target (mid+1) hi)
-
-  ==. append (makeIndices input target lo mid) 
-                  (makeIndices input target (mid+1) hi)
-      ?makeNewIndicesBadLast input target lo mid
-  *** QED 
-  | lo < mid, isGoodIndex input target mid
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (makeIndices input target mid hi)
-       ? mergeIndixes input target lo (mid-1) hi 
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (mid `C` makeIndices input target (mid+1) hi)
-
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (mid `C` (append N (makeIndices input target (mid+1) hi)))
-
-  ==. append (makeIndices input target lo (mid-1)) 
-                  (append (C mid N) (makeIndices input target (mid+1) hi))
-
-  ==. append (append (makeIndices input target lo (mid-1)) (C mid N)) 
-                  (makeIndices input target (mid+1) hi)
-      ? appendAssoc (makeIndices input target lo (mid-1)) (C mid N) (makeIndices input target (mid+1) hi)
-
-  ==. append (makeIndices input target lo mid) 
-                  (makeIndices input target (mid+1) hi)
-      ?makeNewIndicesGoodLast input target lo mid
-  *** QED 
-
-
-makeNewIndicesGoodLast, makeNewIndicesBadLast 
-  :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesGoodLast 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> hi:{Int | lo <= hi && (isGoodIndex input target hi)}
-  -> {makeIndices input target lo hi == append (makeIndices input target lo (hi-1)) (C hi N)}
-  / [hi - lo] @-}
-makeNewIndicesGoodLast input target lo hi 
-  | lo == hi, (isGoodIndex input target lo)
-  =   makeIndices input target lo hi 
-  ==. hi `C` N 
-  ==. append (N) (C hi N)
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-  | not (isGoodIndex input target lo), isGoodIndex input target hi 
-  =   makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. append (makeIndices input target (lo+1) (hi-1)) (C hi N)
-       ? makeNewIndicesGoodLast input target (lo+1) hi  
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-  | isGoodIndex input target lo, isGoodIndex input target hi
-  =   makeIndices input target lo hi 
-  ==. lo `C` makeIndices input target (lo+1) hi
-  ==. lo `C` (append (makeIndices input target (lo+1) (hi-1)) (C hi N))
-       ? makeNewIndicesGoodLast input target (lo+1) hi  
-  ==. (append (lo `C` makeIndices input target (lo+1) (hi-1)) (C hi N))
-  ==. append (makeIndices input target lo (hi-1)) (C hi N)
-  *** QED 
-
-{-@ makeNewIndicesBadLast 
-  :: input:SMTString -> target:SMTString -> lo:Nat -> hi:{Int | lo <= hi && (not (isGoodIndex input target hi))}
-  -> {makeIndices input target lo hi == makeIndices input target lo (hi-1)}
-  / [hi - lo]
-@-}
--- NV sweet proof 
-makeNewIndicesBadLast input target lo hi 
-  | lo == hi, not (isGoodIndex input target lo)
-  =   makeIndices input target lo (hi-1) 
-  ==. N 
-  ==. makeIndices input target lo hi
-  *** QED 
-  | not (isGoodIndex input target lo), not (isGoodIndex input target hi) 
-  =   makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. makeIndices input target (lo+1) (hi-1)
-       ? makeNewIndicesBadLast input target (lo+1) hi   
-  ==. makeIndices input target lo (hi-1)
-  *** QED 
-  | isGoodIndex input target lo , not (isGoodIndex input target hi) 
-  =   makeIndices input target lo hi 
-  ==. lo `C` makeIndices input target (lo+1) hi
-  ==. lo `C` makeIndices input target (lo+1) (hi-1)
-       ? makeNewIndicesBadLast input target (lo+1) hi   
-  ==. makeIndices input target lo (hi-1)
-  *** QED 
-
-
-catIndixes :: SMTString -> SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ catIndixes 
-     :: input:SMTString -> x:SMTString 
-     -> target:{SMTString | 0 <= stringLen input - stringLen target + 1} 
-     -> lo:{Nat | lo <= stringLen input - stringLen target } 
-     -> hi:{Int | stringLen input - stringLen target <= hi}
-     -> { makeIndices input target lo hi == makeIndices (concatString input x) target lo (stringLen input - stringLen target) }
-  @-}
-catIndixes input x target lo hi 
-  =   makeIndices input target lo hi
-  ==. append (makeIndices input target lo (stringLen input - stringLen target))
-                  (makeIndices input target (stringLen input - stringLen target + 1) hi)
-       ? mergeIndixes input target lo (stringLen input - stringLen target) hi
-  ==. append (makeIndices input target lo (stringLen input - stringLen target))
-                  N
-       ? maxIndixes input target (stringLen input - stringLen target + 1) hi
-  ==. makeIndices input target lo (stringLen input - stringLen target)
-       ? appendEmp (makeIndices input target lo (stringLen input - stringLen target))
-  ==. makeIndices (concatString input x) target lo (stringLen input - stringLen target)
-       ? concatmakeNewIndices lo (stringLen input - stringLen target) target input x 
-  *** QED 
-
-
-
-
-map_len_fusion :: SMTString -> SMTString -> List Int -> Proof
-{-@ map_len_fusion 
-  :: xi:SMTString 
-  -> yi:SMTString 
-  -> zis:List Int 
-  -> {  map (shift (stringLen (concatString xi yi))) zis == map (shift (stringLen xi)) (map (shift (stringLen yi)) zis) 
-     }
-  @-}
-map_len_fusion xi yi N 
-  =   map (shift (stringLen (concatString xi yi))) N
-  ==. N
-  ==. map (shift (stringLen xi)) N
-  ==. map (shift (stringLen xi)) (map (shift (stringLen yi)) N)
-  *** QED  
-map_len_fusion xi yi (C i is)
-  =   map (shift (stringLen (concatString xi yi))) (C i is)
-  ==. shift (stringLen (concatString xi yi)) i `C` map (shift (stringLen (concatString xi yi))) is 
-  ==. shift (stringLen xi + stringLen yi) i `C` map (shift (stringLen (concatString xi yi))) is 
-      ? concatLen xi yi 
-  ==. shift (stringLen xi) (shift (stringLen yi) i) `C` map (shift (stringLen (concatString xi yi))) is 
-      ? concatLen xi yi 
-  ==. shift (stringLen xi) (shift (stringLen yi) i) `C` map (shift (stringLen xi)) (map (shift (stringLen yi)) is)
-      ? map_len_fusion xi yi is 
-  ==. map (shift (stringLen xi)) (shift (stringLen yi) i `C` map (shift (stringLen yi)) is)
-  ==. map (shift (stringLen xi)) (map (shift (stringLen yi)) (i `C` is))
-  *** QED 
-
-smallInput :: SMTString -> SMTString -> Int -> Int -> Proof  
-{-@ smallInput :: input:SMTString -> target:{SMTString | stringLen input < stringLen target } -> lo:Nat -> hi:Int 
-           -> {makeIndices input target lo hi == N } 
-           / [hi -lo]
-  @-}
-smallInput input target lo hi 
-  | hi < lo 
-  = makeIndices input target lo hi 
-  ==. N
-  *** QED  
-  | lo == hi, not (isGoodIndex input target lo)
-  = makeIndices input target lo hi 
-  ==. N
-  *** QED  
-  | not (isGoodIndex input target lo)
-  = makeIndices input target lo hi 
-  ==. makeIndices input target (lo+1) hi
-  ==. N ? smallInput input target (lo+1) hi 
-  *** QED  
-
-
-
--------------------------------------------------------------------------------
-----------  Indexing ----------------------------------------------------------
--------------------------------------------------------------------------------
-
-   
-data List a = N | C a (List a) deriving (Show, Eq)
-{-@ data List [idxlen] a = N | C {idxhd :: a , idxtl :: List a} @-}
-
-
-{-@ measure idxlen @-}
-{-@ idxlen :: List a -> Nat @-} 
-idxlen :: List a -> Int 
-idxlen N = 0 
-idxlen (C _ xs) = 1 + idxlen xs 
-
-{-@ reflect map @-}
-map :: (a -> b) -> List a -> List b
-map _ N = N
-map f (C x xs) = C (f x) (map f xs)
-
-{-@ reflect append @-}
-append :: List a -> List a -> List a 
-append N xs = xs 
-append (C x xs) ys = C x (append xs ys)
-
-{-@ reflect shift @-}
-shift :: Int -> Int -> Int 
-shift x y = x + y 
-
-{-@ symbolVal :: forall n proxy. KnownSymbol n => x:proxy n 
-  -> {v:String | v == n && v == symbolVal x } @-}
-{-@ measure symbolVal :: p n -> String @-}
-
-{-@ reflect makeNewIndices @-}
-{-@ makeNewIndices :: s1:SMTString -> s2:SMTString -> target:SMTString -> List (GoodIndex {concatString s1 s2} target) @-}
-makeNewIndices :: SMTString -> SMTString -> SMTString -> List Int 
-makeNewIndices s1 s2 target
-  | stringLen target < 2 
-  = N
-  | otherwise
-  = makeIndices (concatString s1 s2) target
-                 (maxInt (stringLen s1 - (stringLen target-1)) 0)
-                 (stringLen s1 - 1)
-
-
-{-@ reflect maxInt @-}
-maxInt :: Int -> Int -> Int 
-maxInt x y = if x <= y then y else x 
-
-{-@ reflect makeIndices @-}
-
-makeIndices :: SMTString -> SMTString -> Int -> Int -> List Int 
-{-@ makeIndices :: input:SMTString -> target:SMTString -> lo:{Int | 0 <= lo} -> hi:Int -> List (GoodIndex input target) 
-  / [hi - lo] @-}
-makeIndices input target lo hi 
-  | hi < lo 
-  = N
-  | lo == hi, isGoodIndex input target lo
-  = lo `C` N
-  | lo == hi 
-  = N
-makeIndices input target lo hi 
-  | isGoodIndex input target lo
-  = lo `C` (makeIndices input target (lo + 1) hi)
-  | otherwise 
-  =    makeIndices input target (lo + 1) hi 
-
-{-@ reflect isGoodIndex @-}
-isGoodIndex :: SMTString -> SMTString -> Int -> Bool 
-{-@ isGoodIndex :: input:SMTString -> target:SMTString -> i:Int 
-  -> {b:Bool | Prop b <=> IsGoodIndex input target i} @-}
-isGoodIndex input target i 
-  =  subString input i (stringLen target)  == target  
-  && i + stringLen target <= stringLen input
-  && 0 <= i    
--------------------------------------------------------------------------------
-----------  Indexing Properties -----------------------------------------------
--------------------------------------------------------------------------------
-
-{-@ appendEmp :: xs:List a -> {append xs N = xs } @-} 
-appendEmp :: List a -> Proof 
-appendEmp N 
-  =   append N N
-  ==. N
-  *** QED 
-appendEmp (C x xs) 
-  =   append (C x xs) N
-  ==. C x (append xs N)
-  ==. C x xs ? appendEmp xs 
-  *** QED 
-
-
-{-@ appendAssoc :: x:List a -> y:List a -> z:List a 
-     -> {(append x (append y z)) == (append (append x y) z) } @-}
-appendAssoc :: List a -> List a -> List a -> Proof
-appendAssoc N y z 
-  =   append N (append y z)
-  ==. append y z
-  ==. append (append N y) z
-  *** QED 
-appendAssoc (C x xs) y z
-  =   append (C x xs) (append y z) 
-  ==. C x (append xs (append y z))
-  ==. C x (append (append xs y) z)
-        ? appendAssoc xs y z
-  ==. append (C x (append xs y)) z
-  ==. append (append (C x xs) y) z
-  *** QED 
-
-
-
-
-makeNewIndicesNullRight :: SMTString -> SMTString -> Proof 
-{-@ makeNewIndicesNullRight 
-  :: s1:SMTString 
-  -> t:SMTString 
-  -> {makeNewIndices stringEmp s1 t == N } @-} 
-makeNewIndicesNullRight s t 
-  | stringLen t < 2 
-  = makeNewIndices stringEmp s t  ==. N *** QED 
-makeNewIndicesNullRight s t 
-  =   makeNewIndices stringEmp s t
-  ==. makeIndices (concatString stringEmp s) t
-                   (maxInt (1 + stringLen stringEmp - stringLen t) 0)
-                   (stringLen stringEmp - 1)
-  ==. makeIndices s t
-                   (maxInt (1 - stringLen t) 0)
-                   (-1)
-      ? concatStringNeutralRight s 
-  ==. makeIndices s t 0 (-1)
-  ==. N ? makeNewIndicesNullRightEmp s t  
-  *** QED 
-
-
--- (x1 ~ x2) ~ (x3 ~ x4)
--- == 
--- ((x1 ~ (x2 ~ x3)) ~ x4)
-
-
-appendGroupNew :: List a -> List a -> List a -> List a -> Proof
-{-@ appendGroupNew 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> {   (append (append x1 x2) (append x3 x4))
-      == (append (append x1 (append x2 x3)) x4)
-     } @-}
-appendGroupNew x1 x2 x3 x4 
-  =   (append (append x1 x2) (append x3 x4))
-  ==. (append (append (append x1 x2) x3) x4)
-      ? appendAssoc (append x1 x2) x3 x4  
-  ==. (append (append x1 (append x2 x3)) x4)
-      ? appendAssoc x1 x2 x3
-  *** QED 
-
-
-
--- (x1 ~ (x2 ~ x3)) ~ x4 == ((x1 ~ x2) ~ x3) ~ x4
-
-appendUnGroupNew :: List a -> List a -> List a -> List a -> Proof
-{-@ appendUnGroupNew 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> {   ((append (append (append x1 x2) x3) x4))
-      == (append (append x1 (append x2 x3)) x4)
-     } @-}
-appendUnGroupNew x1 x2 x3 x4 
-  =   append (append (append x1 x2) x3) x4
-  ==. append (append x1 (append x2 x3)) x4
-      ? appendAssoc x1 x2 x3 
-  *** QED 
-
-
-appendReorder :: List a -> List a -> List a -> List a -> List a -> Proof
-{-@ appendReorder 
-  :: x1:List a 
-  -> x2:List a 
-  -> x3:List a 
-  -> x4:List a 
-  -> x5:List a 
-  -> {   (append (append x1 x2) (append (append x3 x4) x5))
-      == (append (append (append (append x1 x2) x3) x4) x5)
-     } @-}
-appendReorder x1 x2 x3 x4 x5 
-  =   append (append x1 x2) (append (append x3 x4) x5)
-  ==. append (append x1 x2) (append x3 (append x4 x5))
-       ? appendAssoc x3 x4 x5 
-  ==. append (append (append x1 x2) x3) (append x4 x5)
-      ? appendAssoc (append x1 x2) x3 (append x4 x5) 
-  ==. append ((append (append (append x1 x2) x3)) x4) x5
-      ? appendAssoc (append (append x1 x2) x3) x4 x5 
-  *** QED 
-
--- ((x1~x2) ~ ((x3~x4) ~ x5))
--- == 
---   ((((x1~x2) ~x3) ~x4) ~x5
-
-map_append :: (a -> b) -> List a -> List a -> Proof
-{-@ map_append 
-     :: f:(a -> b) -> xs:List a -> ys:List a 
-     -> {map f (append xs ys) == append (map f xs) (map f ys)}
-  @-}
-map_append f N ys 
-  =   map f (append N ys)
-  ==. map f ys 
-  ==. append N (map f ys)
-  ==. append (map f N) (map f ys)
-  *** QED 
-map_append f (C x xs) ys 
-  =   map f (append (C x xs) ys)
-  ==. map f (x `C` (append xs ys))
-  ==. f x `C` (map f (append xs ys))
-  ==. f x `C` (append (map f xs) (map f ys))
-      ? map_append f xs ys 
-  ==. append (f x `C` map f xs) (map f ys)
-  ==. append (map f (x `C` xs)) (map f ys)
-  *** QED 
-
-mapShiftZero :: List Int -> Proof
-{-@ mapShiftZero :: is:List Int -> {map (shift 0) is == is } @-}
-mapShiftZero N 
-  = map (shift 0) N ==. N *** QED
-mapShiftZero (C i is)
-  =   map (shift 0) (C i is)
-  ==. shift 0 i `C` map (shift 0) is 
-  ==. i `C` is ? mapShiftZero is  
-  *** QED 
-
-
-{-@ makeNewIndicesNullRightEmp :: s:SMTString -> t:SMTString -> {makeIndices s t 0 (-1) == N } @-}
-makeNewIndicesNullRightEmp :: SMTString -> SMTString -> Proof
-makeNewIndicesNullRightEmp s t 
-  =   makeIndices s t 0 (-1) 
-  ==. N
-  *** QED 
-
-makeNewIndicesNullLeft :: SMTString -> SMTString -> Proof 
-{-@ makeNewIndicesNullLeft 
-  :: s:SMTString 
-  -> t:SMTString 
-  -> {makeNewIndices s stringEmp t == N } @-} 
-makeNewIndicesNullLeft s t 
-  | stringLen t < 2 
-  = makeNewIndices s stringEmp t ==. N *** QED 
-makeNewIndicesNullLeft  s t 
-  | 1 + stringLen s <= stringLen t
-  =   makeNewIndices s stringEmp t
-  ==. makeIndices (concatString s stringEmp) t
-                   (maxInt (1 + stringLen s - stringLen t)  0)
-                   (stringLen s - 1)
-  ==. makeIndices s t
-                   0
-                   (stringLen s - 1) 
-                   ? concatStringNeutral s
-  ==. makeIndices s t
-                   0
-                   (stringLen s - 1)
-  ==. N ? makeNewIndicesNull1 s t 0 (stringLen s - 1)
-  *** QED 
-makeNewIndicesNullLeft s t 
-  =   makeNewIndices s stringEmp t
-  ==. makeIndices (concatString s stringEmp) t
-                   (maxInt (1 + stringLen s - stringLen t)  0)
-                   (stringLen s - 1)
-  ==. makeIndices (concatString s stringEmp) t
-                   (1 + stringLen s - stringLen t)
-                   (stringLen s - 1)
-  ==. makeIndices s t
-                   (1 + stringLen s - stringLen t)
-                   (stringLen s - 1) ? concatStringNeutral s 
-  ==. N ? makeNewIndicesNull2 s t (1 + stringLen s - stringLen t) (stringLen s - 1)
-  *** QED 
-
-
-makeNewIndicesNull1 :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesNull1 
-  :: s:SMTString 
-  -> t:{SMTString | 1 + stringLen s <= stringLen t } 
-  -> lo:Nat 
-  -> hi:Int
-  -> {makeIndices s t lo hi == N } / [hi - lo] @-} 
-makeNewIndicesNull1 s1 t lo hi
-  | hi < lo 
-  = makeIndices s1 t lo hi ==. N *** QED 
-  | lo == hi, not (isGoodIndex s1 t lo)
-  = makeIndices s1 t lo hi ==. N *** QED  
-  | not (isGoodIndex s1 t lo)
-  =   makeIndices s1 t lo hi
-  ==. makeIndices s1 t (lo + 1) hi 
-  ==. N ? makeNewIndicesNull1 s1 t (lo+1) hi
-  *** QED 
-
-
-makeNewIndicesNull2 :: SMTString -> SMTString -> Int -> Int -> Proof 
-{-@ makeNewIndicesNull2 
-  :: s:SMTString 
-  -> t:{SMTString | stringLen t < 2 + stringLen s } 
-  -> lo:{Int | -1 <= lo && 1 + stringLen s - stringLen t <= lo  } 
-  -> hi:{Int | lo <= hi}
-  -> {makeIndices s t lo hi == N } / [hi - lo] @-} 
-makeNewIndicesNull2 s1 t lo hi
-  | lo == hi, not (isGoodIndex s1 t lo)
-  = makeIndices s1 t lo hi ==. N *** QED  
-  | not (isGoodIndex s1 t lo)
-  =   makeIndices s1 t lo hi
-  ==. makeIndices s1 t (lo + 1) hi 
-  ==. N ? makeNewIndicesNull2 s1 t (lo+1) hi
-  *** QED 
- 
diff --git a/tests/strings/todo/Boyer_Moore.hs b/tests/strings/todo/Boyer_Moore.hs
deleted file mode 100644
--- a/tests/strings/todo/Boyer_Moore.hs
+++ /dev/null
@@ -1,232 +0,0 @@
-{-@ LIQUID "--higherorder"       @-}
-{-@ LIQUID "--totality"          @-}
-{-@ LIQUID "--exactdc"           @-}
-
-module BoyerMoore where
-
-import Prelude hiding 
-  (foldl, map, fst, snd, scanl, filter, length, compose, endsWith, inits, reverse, take, 
-  Bool(..))
-
-import Proves 
-
-target, input :: L Int 
-target = C 1 (C 2 (C 3 (C 1 (C 2 N))))
-
-input = C 1 (C 2 N) `append` target `append` (C 3 (C 1 (C 2 N)))
-
-
-{-@ reflect map @-}
-{-@ reflect foldl @-}
-{-@ reflect fstV @-}
-{-@ reflect sndV @-}
-{-@ reflect scanl @-}
-{-@ reflect filter @-}
-{-@ reflect endsWith @-}
-{-@ reflect inits @-}
-{-@ reflect reverse @-}
-{-@ reflect append @-}
-{-@ reflect take @-}
-{-@ reflect range @-}
-{-@ reflect fork @-}
-
-matches ws = map length `compose` filter (endsWith ws) `compose` inits
-
-
--- with map f `compose` filter p == map fst `compose` filter snd `compose` map (fork f p)
-
--- matches ws = map fst `compose` filter snd `compose` map (fork length (endsWith ws)) `compose` inits
-
--- with  map (fork length (endsWith ws)) `compose` inits == scanl step (P 0 N)
-
--- matches ws = map fst `compose` filter snd `compose` scanl step (P 0 N)
-
-
-matchesBM ws
-  =  map fstV 
-      `compose`
-     filter ((reverse ws `isSubString`) `compose` sndV) 
-      `compose`
-     scanl step (P 0 N)
-
-
-
-
-
-
--- Prop 16.1
-
-map_filter :: (a -> b) -> (a -> Bool) -> L a -> Proof 
-{-@ map_filter :: f:(a -> b) -> p:(a -> Bool) -> xs:L a 
-    ->  {map fstV (filter sndV (map (fork f p) xs)) == map f (filter p xs) }
-  @-}
-map_filter f p N 
-  =   map fstV (filter sndV (map (fork f p) N))
-  ==. map fstV (filter sndV N)
-  ==. map fstV N
-  ==. N
-  ==. map f N
-  ==. map f (filter p N) 
-  *** QED 
-
-map_filter f p (C x xs) | p x == True 
-  =   map fstV (filter sndV (map (fork f p) (C x xs)))
-  ==. map fstV (filter sndV ((fork f p x) `C` map (fork f p) xs))
-  ==. map fstV (filter sndV ((P (f x) (p x)) `C` map (fork f p) xs))
-       ? (sndV (P (f x) (p x)) ==. p x *** QED )  
-  ==. map fstV (P (f x) (p x) `C` filter sndV (map (fork f p) xs))
-  ==. fstV (P (f x) (p x)) `C` map fstV (filter sndV (map (fork f p) xs))
-  ==. (f x)  `C` map f (filter p xs) ? map_filter f p xs 
-  ==. map f (x `C` filter p xs) 
-  ==. map f (filter p (C x xs)) 
-  *** QED 
-
-map_filter f p (C x xs) 
-  =   map fstV (filter sndV (map (fork f p) (C x xs)))
-  ==. map fstV (filter sndV ((fork f p x) `C` map (fork f p) xs))
-  ==. map fstV (filter sndV ((P (f x) (p x)) `C` map (fork f p) xs))
-       ? (sndV (P (f x) (p x)) ==. p x *** QED )  
-  ==. map fstV (filter sndV (map (fork f p) xs))
-  ==. map f (filter p xs) ? map_filter f p xs 
-  ==. map f (filter p (C x xs)) 
-  *** QED 
-
-
-
-
-{-@ scan_lemma :: op:(b -> a -> b) -> e:b -> xs:L a 
-  -> {map (foldl op e) (inits xs) == scanl op e xs } @-}
-scan_lemma :: (b -> a -> b) -> b -> L a -> Proof
-scan_lemma op e N  
-  =   map (foldl op e) (inits N)
-  ==. map (foldl op e) (map (\i -> take i N) (range 0 (length N)))
-  ==. map (foldl op e) (map (\i -> take i N) (range 0 0))
-  ==. map (foldl op e) (map (\i -> take i N) (C 0 N))
-  ==. map (foldl op e) (take 0 N `C` map (\i -> take i N) N)
-  ==. map (foldl op e) (N `C` N)
-  ==. foldl op e N `C` N
-  ==. scanl op e N 
-  *** QED 
-
-scan_lemma op e xs  
-  =   map (foldl op e) (inits xs)
-  ==. scanl op e xs 
-  *** QED 
-
-step :: P Int (L a) -> a -> P Int (L a)
-step (P n sx) x = P (n+1) (x `C` sx)
-
--- with reverse xs = foldl (flip C) N xs 
-
-
-fork :: (a -> b) -> (a -> c) -> a -> P b c 
-fork f g x = P (f x) (g x) 
-
-fstV :: P a b -> a 
-fstV (P x y) = x 
-
-sndV :: P a b -> b 
-sndV (P x y) = y 
-
-isSubString :: L Int -> L Int -> Bool 
-isSubString (C x xs) (C y ys)
-  | x == y 
-  = isSubString xs ys 
-  | otherwise 
-  = False 
-isSubString N _ 
-  = True 
-isSubString _ _ 
-  = False  
-
-compose :: (b -> c) -> (a -> b) -> a -> c
-compose f g x = f (g x)
-
-
-{-@ endsWith :: L Int -> xs:L Int -> Bool / [length xs] @-}
-endsWith :: L Int -> L Int -> Bool 
-endsWith N        N = True 
-endsWith N  (C _ _) = False
-endsWith (C _ _)  N = False
-endsWith (C x xs) (C y ys)
-  | x == y 
-  = endsWith xs ys 
-  | otherwise 
-  = endsWith (C x xs) ys 
-
-
-foldl :: (b -> a -> b) -> b -> L a -> b 
-foldl f b N        = b 
-foldl f b (C x xs) = foldl f (f b x) xs
-
-
-inits :: L a -> L (L a)
-inits xs = map f rng -- (`take` xs) (range 0 (length xs))
-  where
-    {-@ rng :: L {v:Nat | v <= length xs} @-}
-    rng = range 0 (length xs)
-    {-@ f :: i:{Nat | i <= length xs} -> L a @-}
-    f i = take i xs
-
-{-@ range :: i:Nat -> j:{Nat | i <= j} 
-          -> L {v:Nat | i <= v && v <= j} / [j - i] 
-  @-}
-range :: Int -> Int -> L Int 
-range i j 
-  | i == j 
-  = C i N 
-  | i <= j 
-  = C i (range (i+1) j)
-  | otherwise
-  = N
-
-{-@ measure length @-}
-{-@ length :: L a -> Nat @-} 
-length :: L a -> Int 
-length N        = 0 
-length (C _ xs) = 1 + length xs
-
-{-@ take :: i:Nat -> {v:L a | i <= length v} -> L a @-} 
-take :: Int -> L a -> L a 
-take i N        = N 
-take i (C x xs) = if i == 0 then N else x `C` take (i-1) xs 
-
-filter :: (a -> Bool) -> L a -> L a 
-filter _ N = N 
-filter p (C x xs)
-  | p x == True 
-  = x `C` filter p xs 
-  | otherwise
-  = filter p xs 
-
-reverse :: L a -> L a 
-reverse N = N 
-reverse (C x xs) = reverse xs `append` C x N 
-
-append :: L a -> L a -> L a 
-append N        ys = ys 
-append (C x xs) ys = C x (append xs ys)
-
-map :: (a -> b) -> L a -> L b 
-map _ N = N 
-map f (C x xs) = f x `C` map f xs 
-
-
-scanl :: (b -> a -> b) -> b -> L a -> L b
-scanl f q ls  = q `C` (case ls of
-                         N      -> N
-                         C x xs -> scanl f (f q x) xs)
-
-
-{-@ data P a b = P {pFs :: a, pSnd :: b} @-} 
-
-{-@ data Bool = True | False @-} 
-data Bool = True | False 
-  deriving (Show, Eq)
-
-data P a b = P a b 
-  deriving (Show)
-
-{-@ data L [length] a = N | C {lhead :: a, lCons :: (L a)} @-}
-data L a = N | C a (L a)
-  deriving (Show)
diff --git a/tests/strings/todo/StringIndexing.hs b/tests/strings/todo/StringIndexing.hs
deleted file mode 100644
--- a/tests/strings/todo/StringIndexing.hs
+++ /dev/null
@@ -1,89 +0,0 @@
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE DataKinds           #-}
-{-# LANGUAGE OverloadedStrings   #-}
-{-# LANGUAGE RankNTypes          #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-{-# LANGUAGE GADTs               #-}
-{-@ LIQUID "--totality"        @-}
-
-module StringIndexing where
-
-
-import GHC.TypeLits
-import Data.String 
-
-import Data.Proxy 
--- Structure that defines valid indeces of a type level target 
--- symbol in a value level string
-
-data MI (tagret :: Symbol) s where 
-  MI :: IsString s => s        -- input string
-                   -> [Int]    -- valid indeces of target in input
-                   -> MI target s
-
-{-@ MI :: input:s 
-       -> [{i:Int |	 str.substr input i (str.len target)  == target }]
-       -> MI s @-}
-
--- STEP 1:    Verification of valid structures
--- CHALLENGE: String interepretations from SMT 
-
-
--- THESE SHOULD BE SAFE 
-misafe1 :: MI "cat" String 
-misafe1 = MI "catdogcatsdots" []
-
-misafe2 :: MI "cat" String
-misafe2 = MI "catdogcatsdots" [1]
-
-misafe3 :: MI "cat" String
-misafe3 = MI "catdogcatsdots" [1, 7]
-
-misafe4 :: MI "cat" String
-misafe4 = MI "catdogcatsdots" [7, 1]
-
-misafe5 :: MI "cat" String
-misafe5 = MI "catdogcatsdots" [7]
-
-
--- THIS SHOULD BE UNSAFE 
-miunsafe :: MI "dog" String
-miunsafe = MI "catdogcatsdots" [1]
-
-
--- STEP 2: Verify that mempty and mappend satisfy the invariants 
-{-@ axiomatize mempty @-}
-mempty :: forall (target :: Symbol). MI target String
-mempty = MI "" []
-
-{-@ axiomatize mappend @-}
-mappend :: forall (target :: Symbol). (KnownSymbol target) => MI target String -> MI target String -> MI target String
-mappend (MI i1 is1) (MI i2 is2)
-  = MI input (is1 ++ (map (+ length i1) is2) ++ is)
-  where 
-  	is     = filter (\i -> substr input i len  == target) [(len1 - len) .. (len1 + len)]
-  	input  = i1 ++ i2 
-  	len1   = length i1 
-  	len    = length target 
-  	target = symbolVal (Proxy :: Proxy target)
-
-
-substr :: IsString s => s -> Int -> Int -> s 
-substr = undefined 
-
-
--- STEP 3: Verify that mempty and mappend satisfy the monoid laws
-
-mempty_left      :: forall (target :: Symbol) s. IsString s => MI target s -> ()
-{-@ mempty_left  :: x:MI target s -> {mappend mempty x == x } @-}
-mempty_left _    = undefined 
-
-
-mempty_right     :: forall (target :: Symbol) s. IsString s => MI target s -> ()
-{-@ mempty_right :: x:MI target s -> {mappend x mempty == x } @-}
-mempty_right _   = undefined 
-
-mappend_assoc     :: forall (target :: Symbol) s. IsString s => MI target s -> MI target s -> MI target s -> ()
-{-@ mappend_assoc :: x:MI target s -> y:MI target s -> z:MI target s 
-                  -> {mappend x (mappend y z) == mappend (mappend x y) z } @-}
-mappend_assoc _ _ _ = undefined 
diff --git a/tests/tmp/Class2.hs b/tests/tmp/Class2.hs
deleted file mode 100644
--- a/tests/tmp/Class2.hs
+++ /dev/null
@@ -1,86 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-@ LIQUID "--no-termination" @-}
-module Class () where
-
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (sum, length, (!!), Functor(..))
-
-{- qualif Size(v:Int, xs:a): v = size xs @-}
-{- qualif Size(v:Int, xs:MList a): v = size xs @-}
-
-data MList a = Nil | Cons a (MList a)
-
-{-@ (!!) :: xs:MList a -> {v:Nat | v < sz xs} -> a @-}
-(!!) :: MList a -> Int -> a
-(Cons x _)  !! 0 = x
-(Cons _ xs) !! i = xs !! (i - 1)
-
-{-@ class measure sz :: forall a. a -> Int  @-}
-
-{-@ class Sized s where
-      size :: forall a. x:s a -> {v:Nat | v = sz x}
-  @-}
-class Sized s where
-  size :: s a -> Int
-
-instance Sized MList where
-  {-@ instance measure sz :: MList a -> Int
-      sz (Nil)       = 0
-      sz (Cons x xs) = 1 + sz xs
-    @-}
-  size = length
-
-{-@ length :: xs:MList a -> {v:Nat | v = sz xs} @-}
-length :: MList a -> Int
-length Nil         = 0
-length (Cons _ xs) = 1 + length xs
-
-{-@ bob :: xs:MList a -> {v:Nat | v = sz xs} @-}
-bob :: MList a -> Int
-bob = length
-
-
-instance Sized [] where
-  {-@ instance measure sz :: [a] -> Int
-      sz ([])   = 0
-      sz (x:xs) = 1 + (sz xs)
-    @-}
-  size [] = 0
-  size (_:xs) = 1 + size xs
-
-{-@ class (Sized s) => Indexable s where
-      index :: forall a. x:s a -> {v:Nat | v < sz x} -> a
-  @-}
-class (Sized s) => Indexable s where
-  index :: s a -> Int -> a
-
-
-
-instance Indexable MList where
-  index = (!!)
-
-{-@ sum :: Indexable s => s Int -> Int @-}
-sum :: Indexable s => s Int -> Int
-sum xs = go n 0
-  where
-    n = size xs
-    go (d::Int) i
-      | i < n     = index xs i + go (d-1) (i+1)
-      | otherwise = 0
-
-
-{-@ sumMList :: MList Int -> Int @-}
-sumMList :: MList Int -> Int
-sumMList xs = go max 0
-  where
-    max = size xs
-    go (d::Int) i
-      | i < max   = index xs i + go (d-1) (i+1)
-      | otherwise = 0
-
-
-{-@ mlist3 :: {v:MList Int | sz v = 3}  @-}
-mlist3 :: MList Int
-mlist3 = 1 `Cons` (2 `Cons` (3 `Cons` Nil))
-
-foo = liquidAssert $ size (Cons 1 Nil) == size [1]
diff --git a/tests/tmp/Class3.hs b/tests/tmp/Class3.hs
deleted file mode 100644
--- a/tests/tmp/Class3.hs
+++ /dev/null
@@ -1,16 +0,0 @@
--- | LH refuses to parse the `allPos` measure
-
-module Class3 where
-
-{-@ class Pos s where
-      allPos :: x:s Int -> {v:Bool | Prop v <=> allPos x}
-  @-}
-class Pos s where
-  allPos :: s Int -> Bool
-
-instance Pos [] where
-  {-@ instance measure allPos :: [Int] -> Bool
-      allPos ([])   = true
-      allPos (x:xs) = ((x > 0) && (allPos xs))          @-}
-  allPos []     = True
-  allPos (x:xs) = (x > 0) && (allPos xs)
diff --git a/tests/tmp/LiquidR.hs b/tests/tmp/LiquidR.hs
deleted file mode 100644
--- a/tests/tmp/LiquidR.hs
+++ /dev/null
@@ -1,328 +0,0 @@
--- The following file includes several refinements that have been
--- commented out, marked with 'UNCOMMENT'. As-is, running LiquidHaskell
--- on this file produces the message:
---    liquid: Prelude.head: empty list
--- The refinemnts marked with UNCOMMENT can be uncommented one-by-one,
--- each producing a different error.
-
-{-# LANGUAGE
-      Rank2Types,
-      TypeFamilies,
-      ExplicitForAll,
-      FlexibleInstances,
-      MultiParamTypeClasses,
-      ConstraintKinds,
-      FunctionalDependencies
- #-}
-
-module LiquidR
-  (array,
-   combine,
-   and,
-   add,
-   indexNullary,
-   indexUnary,
-   indexNAry) where
-
-import Prelude ()
--- UNCOMMENT this to avoid 'Not in scope' error
--- Note that `Char` isn't used anywhere in this file.
-import Data.Char
-import Data.Int
-import Data.Bool
-import Data.Ord
-import Data.Maybe
-
-import qualified Mode
-
-unimplemented :: a
-unimplemented = unimplemented
-
-------------------------------------------------------------------------
--- Container Types -----------------------------------------------------
-------------------------------------------------------------------------
-
-type Vector a = [a]
-
-data Array a = Array{
-    shape :: [Mode.Numeric],
-    elems :: [a]
-  }
-
-{-@ type ListN a N =
-      {v:[a] | (size v) = N}
-@-}
-
-{-@ measure product :: [Mode.Numeric] -> real
-      product([]) = 1
-      product(x:xs) = (fromJust x) * (product xs)
-@-}
-
-{-@ data Array a = Array{
-      shape :: (NonEmptyList PositiveNumeric),
-      elems :: (ListN a (product shape))
-    }
-@-}
-
-{-@ type NonEmptyList a =
-      {v:[a] | (size v) > 0}
-@-}
-
-{-@ type NonNegativeNumeric =
-      {v:Mode.Numeric |
-        (isJust v) =>
-          (fromJust v) >= 0 }
-@-}
-
-{-@ type PositiveNumeric =
-      {v:Mode.Numeric |
-        (isJust v) =>
-          (fromJust v) > 0 }
-@-}
-
-{-@ measure nonNegativeNumeric :: (Mode.Numeric) -> Bool @-}
-nonNegativeNumeric (Just a)  = a >= 0
-nonNegativeNumeric (Nothing) = True
-
-{-@ measure nonPositiveNumeric :: (Mode.Numeric) -> Bool @-}
-nonPositiveNumeric (Just a)  = a <= 0
-nonPositiveNumeric (Nothing) = True
-
-{-@ type NonPositiveNumeric =
-      {v:Mode.Numeric |
-        (isJust v) =>
-          (fromJust v) >= 0 }
-@-}
-
-{-@ class measure allNonNegative :: (R a) -> Bool @-}
-{-@ instance measure allNonNegative :: (Array a) -> Bool
-  allNonNegative (Array shape elems) = allNonNegative elems
-@-}
-
-{-@ instance measure allNonNegative :: [(Mode.Numeric)] -> Bool @-}
-allNonNegative ([])   = True
-allNonNegative (y:ys) = (nonNegativeNumeric y) && (allNonNegative ys)
-
-{-@ class measure allNonPositive :: (R a) -> Bool @-}
-{-@ instance measure allNonPositive :: (Array a) -> Bool
-  allNonPositive (Array shape elems) = allNonPositive elems
-@-}
-{-@ instance measure allNonPositive :: [(Mode.Numeric)] -> Bool @-}
-allNonPositive ([])   = True
-allNonPositive (y:ys) = (nonPositiveNumeric y) && (allNonPositive ys)
-
-{-@ instance measure size :: [a] -> Int
-    size ([])   = 0
-    size (x:xs) = 1 + (size xs)
-@-}
-
-{-@ instance measure size :: (Array a) -> Int
-  size (Array shape elems)   = len elems
-@-}
-
-class R m where
-  type Elem m
-  length :: m -> Int
-  length = unimplemented
-
-instance R (Vector a) where
-  type Elem (Vector a) = a
-
-instance R (Array a) where
-  type Elem (Array a) = a
-
-type ROf c m = (R c, Elem c ~ m)
-
-{-@ type RNonEmpty t m =
-      {v:(R t m) | (size v) > 0}
-  @-}
-
-{-@ type RNonEmptyOf t m =
-      {v:(ROf t m) | (size v) > 0}
-@-}
-
-
-------------------------------------------------------------------------
--- Container Constructors ----------------------------------------------
-------------------------------------------------------------------------
-
--- Constructor for vectors
-{-@ measure lsize :: [[a]] -> Int
-    lsize ([])   = 0
-    lsize (x:xs) = (size x) + (lsize xs)
-@-}
-
-{-@ combine ::
-     ys:([[_]]) ->
-     {v:([_]) | (size v) = (lsize ys)}
-@-}
-combine :: [[a]] ->  [a]
-combine = unimplemented
-
--- Constructor for arrays
-{- array :: forall t u m.(R t, R u, Mode.Mode m) =>
-    a:(RNonEmptyOf t NonNegativeNumeric) => t ->
-    b:(RNonEmptyOf u m)                  => u ->
-      (Array m)
-@-}
-array :: forall a b m.(R a, R b, Mode.Mode m) =>
-            (ROf b Mode.Numeric) => b
-         -> (ROf a m) => a
-         -> (Array m)
-array shape elems = unimplemented
-
-
--- x = array [Just 2.0 :: Mode.Numeric] [Just 2.0 :: Mode.Numeric]
-
-------------------------------------------------------------------------
--- Subscript -----------------------------------------------------------
-------------------------------------------------------------------------
--- UNCOMMENT; Produces error:
--- > Error: Bad Type Specification
--- > LiquidR.indexNullary :: (R a, Mode b) =>
--- >                         ((R a), (~ (Elem a) b)) -> a -> {VV : [b] | size a == size VV}
--- >     Sort Error in Refinement: {VV : [m_a17t] | size a == size VV}
--- >     Unbound Symbol a
--- > Perhaps you meant: VV
-
-{- indexNullary :: forall t m.(R t, Mode.Mode m) =>
-      a:(ROf t m) => t ->
-     {b:(Vector m) | (size a) = (size b) }
-@-}
-indexNullary :: forall t m.(R t, Mode.Mode m) =>
-  (ROf t m) => t -> (Vector m)
-indexNullary _ = unimplemented
-
-
-class (R a, R b, Mode.Mode c, (Elem b) ~ c)
-    => UnarySubscript a b c where
-  indexUnary :: a -> b -> (Vector (Elem a))
-  indexUnary = unimplemented
-
--- UNCOMMENT; produces error:
--- > liquid: <no location info>: Error: Uh oh.
--- >     This should never happen! If you are seeing this message,
--- > please submit a bug report at
--- > https://github.com/ucsd-progsys/liquidhaskell/issues
--- > with this message and the source file that caused this error.
--- >
--- > RefType.toType cannot handle: {v##0 : _ | allNonNegative a
--- >             || allNonPositive v##0}
-{- instance (R t, R u, _)
-      => UnarySubscript t u (Mode.Numeric) where
-  indexUnary ::
-    a:t ->
-    b:{v:_ |
-          (allNonNegative a)
-       || (allNonPositive v)} ->
-   {c:t | if (allNonNegative b)
-          then (size c) == (size b)
-          else if (allNonPositive b)
-          then (size c) <= (size b)
-          else false}
-@-}
-instance (R a, R b, (Elem b) ~ Mode.Numeric)
-    => UnarySubscript a b Mode.Numeric
-
-{- don't know how to say anything meaningful here yet -}
-instance (R a, R b, (Elem b) ~ Mode.Logical)
-    => UnarySubscript a b Mode.Logical
-
-
-class (R a, R b) => NarySubscript a b where
-  indexNAry :: (R c, Elem a ~ Elem c) => a -> [b] -> c
-  indexNAry = unimplemented
-
-instance (Mode.Mode a, R b) => NarySubscript (Array a) b
-
-
-
-------------------------------------------------------------------------
---Binary Operations ----------------------------------------------------
-------------------------------------------------------------------------
-
--- The length of the result of any numeric or logical binary operation
--- should be the length of the longest operand. The length of the
--- longest operand must be a multiple of the length of the shortest
--- operand. If either operand has length 0, the length of the result
--- is 0.
-{-@ predicate ArithmeticResult A B C =
-      if (size A) = 0 || (size B) = 0
-      then (size C) = 0
-      else if (size A) >= (size B)
-           && (size A) mod (size B) = 0
-        then (size C) = (size A)
-      else if (size A) < (size B)
-           && (size B) mod (size A) = 0
-        then (size C) = (size B)
-      else false
-@-}
-
--- UNCOMMENT; (error omitted for brevity)
-{- class (R t, R u, R v) => Addition t u v where
-    add :: a:t ->
-           b:u ->
-          {c:v | ArithmeticResult a b c }
-@-}
-class (R a, R b, R c) => Addition a b c | a b -> c  where
-  add  :: a -> b -> c
-  add  = unimplemented
-
--- Container type of binop result depends on
--- container type of arguments:
---    Vector `op` Vector = Array
---    Vector `op` Array  = Array
---    Array  `op` Vector = Array
---    Array  `op` Array  = Array
-
-instance (Mode.IntoNumeric a, Mode.IntoNumeric b)
-    => Addition (Vector a) (Vector b) (Vector Mode.Numeric)
-
-instance (Mode.IntoNumeric a, Mode.IntoNumeric b)
-    => Addition (Array a) (Vector b) (Array Mode.Numeric)
-
-instance (Mode.IntoNumeric a, Mode.IntoNumeric b)
-    => Addition (Vector a) (Array b) (Array Mode.Numeric)
-
-instance (Mode.IntoNumeric a, Mode.IntoNumeric b)
-    => Addition (Array a) (Array b) (Array Mode.Numeric)
-
--- UNCOMMENT; produces same error as previous class annotation
-{- class (R t, R u, R v) => Conjunction t u v where
-    and :: a:t ->
-           b:u ->
-          {c:v | ArithmeticResult a b c }
-@-}
-class (R a, R b, R c) => Conjunction a b c | a b -> c  where
-  and :: a -> b -> c
-  and = unimplemented
-
--- Alternatively, we can use instance refinements. These produce errors
--- as well, but note that the error changes between one being
--- uncommented vs. multiple being uncommented.
--- UNCOMMENT;
-{-@ instance (Mode.IntoLogical t, Mode.IntoLogical u)
-    => Conjunction (Vector t) (Vector u) (Vector Mode.Logical) where
-    and :: a:(Vector t) ->
-           b:(Vector u) ->
-          {c:(Vector Mode.Logical) | ArithmeticResult a b c }
-@-}
-instance (Mode.IntoLogical a, Mode.IntoLogical b)
-    => Conjunction (Vector a) (Vector b) (Vector Mode.Logical)
--- UNCOMMENT;
-{- instance (Mode.IntoLogical t, Mode.IntoLogical u)
-    => Conjunction (Array t) (Vector u) (Array Mode.Logical) where
-    and :: a:(Array t) ->
-           b:(Vector u) ->
-          {c:(Array Mode.Logical) | ArithmeticResult a b c }
-@-}
-instance (Mode.IntoLogical a, Mode.IntoLogical b)
-    => Conjunction (Array a) (Vector b) (Array Mode.Logical)
-
-instance (Mode.IntoLogical a, Mode.IntoLogical b)
-    => Conjunction (Vector a) (Array b) (Array Mode.Logical)
-
-instance (Mode.IntoLogical a, Mode.IntoLogical b)
-    => Conjunction (Array a) (Array b) (Array Mode.Logical)
-
--- and so on...
diff --git a/tests/tmp/LiquidR2.hs b/tests/tmp/LiquidR2.hs
deleted file mode 100644
--- a/tests/tmp/LiquidR2.hs
+++ /dev/null
@@ -1,150 +0,0 @@
-{-@ LIQUID "--prune-unsorted" @-}
-{-@ LIQUID "--total"          @-}
-
-{-# LANGUAGE TypeSynonymInstances #-}
-{-# LANGUAGE FlexibleInstances    #-}
-{-# LANGUAGE QuasiQuotes          #-}
-
-module LiquidR
-  ( array
-  , combine
-  , indexNullary
-   -- and,
-   -- add,
-   -- indexUnary,
-   -- indexNAry
-  ) where
-
-import Prelude hiding (product, length)
--- import LiquidHaskell
-
---------------------------------------------------------------------------------
--- Basic List Refinements ------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ class measure size :: forall a. a -> Int @-}
-
-{-@ instance measure size :: xs:[a] -> Int
-    size []     = 0
-    size (_:xs) = 1 + size xs   @-}
-
-{-@ listLength :: xs:[a] -> {v:Nat | v = size xs} @-}
-listLength :: [a] -> Int
-listLength []     = 0
-listLength (x:xs) = 1 + listLength xs
-
-{-@ type ListN a N = {v:[a] | size v = N} @-}
-{-@ type ListNE a = {v:[a] | size v > 0}  @-}
-{-@ type Pos      = {v:Int | 0 < v}       @-}
-
--- Generic R Container Types ---------------------------------------------------
-
-{-@ class R c where
-      index  :: forall a. c a -> Int -> a
-      length :: forall a. me:c a -> {v:Nat | v = size me}
-  @-}
-class R c where
-  index  :: c a -> Int -> a
-  length :: c a -> Int
-
--- A Generic Non-Empty Container -----------------------------------------------
-
-{-@ type RNE c a = {v:c a | 0 < size v} @-}
-
--- Vector Instance -------------------------------------------------------------
-
-newtype Vector a = V [a]
-
-{-@ instance measure size :: Vector a -> Int
-    size (V xs) = size xs
-  @-}
-
-instance R Vector where
-  index  (V xs) i = xs `at` i
-  length (V xs)   = listLength xs
-
-at :: [a] -> Int -> a
-at (x:_) 0  = x
-at (_:xs) n = at xs (n-1)
-at _      _ = undefined
-
--- Arrays ----------------------------------------------------------------------
-
-data Array a = Array {
-    shape :: [Int]
-  , elems :: [a]
-  }
-
-{-@ measure product @-}
-product :: [Int] -> Int
-product []     = 1
-product (x:xs) = x * product xs
-
-{-@ data Array a = Array {
-      shape :: ListNE Pos,
-      elems :: ListN a (product shape)
-    }                                     @-}
-
-instance R Array where
-  index  = undefined
-  length = undefined
-
--- Modes -----------------------------------------------------------------------
-
-class Mode a
-
-type Logical = Maybe Bool
-type Numeric = Maybe Int
-
--- | `Dim` is a refinement of `Numeric` where the values are defined
-
-type Dim = Numeric
-{-@ type Dim = {v:Numeric | isJust v} @-}
-
-instance Mode Logical
-instance Mode Numeric
-
-class (Mode a) => IntoNumeric a where
-  intoNumeric :: a -> Numeric
-
-instance IntoNumeric Numeric where
-  intoNumeric = id
-
-instance IntoNumeric Logical where
-  intoNumeric Nothing = Nothing
-  intoNumeric (Just True)  = Just 1 -- (1.0 :: Double)
-  intoNumeric (Just False) = Just 0 -- (0.0 :: Double)
-
--- Constructor for Arrays ------------------------------------------------------
-
-array :: (R sh, R el, Mode v) => sh Dim -> el v -> Array v
-
-{-@ array :: (R sh, R el, Mode v) => RNE sh Dim -> RNE el v -> Array v @-}
-array _shape _elems = undefined
-
--- IndexNullary ----------------------------------------------------------------
-{-@ type VectorN a N = {v:Vector a | size v = N} @-}
-
-{-@ indexNullary :: (R c) => a:(c m) -> VectorN m (size a) @-}
-indexNullary :: (R c) => c a -> (Vector a)
-indexNullary _ = undefined
-
---------------------------------------------------------------------------------
--- Container Constructors ------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ append :: xs:_ -> ys:_ -> ListN _ {size xs + size ys} @-}
-append :: [a] -> [a] -> [a]
-append []     ys = ys
-append (x:xs) ys = x : append xs ys
-
--- Constructor for vectors
-{-@ measure lsize :: [[a]] -> Int
-    lsize []     = 0
-    lsize (x:xs) = size x + lsize xs
-  @-}
-
-{-@ combine :: ys:[[a]] -> ListN a (lsize ys) @-}
-combine :: [[a]] ->  [a]
-combine []       = []
-combine (xs:xss) = append xs (combine xss)
diff --git a/tests/tmp/Mode.hs b/tests/tmp/Mode.hs
deleted file mode 100644
--- a/tests/tmp/Mode.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-{-# LANGUAGE FlexibleInstances #-}
-
-module Mode where
-
-type Logical = Maybe Bool
-type Numeric = Maybe Double
-
-class Mode a
-instance Mode Logical
-instance Mode Numeric
-
-
-class (Mode a) => IntoNumeric a where
-  intoNumeric :: a -> Numeric
-
-instance IntoNumeric Numeric where
-  intoNumeric = id
-
-instance IntoNumeric Logical where
-  intoNumeric Nothing = Nothing
-  intoNumeric (Just True)  = Just (1.0 :: Double)
-  intoNumeric (Just False) = Just (0.0 :: Double)
-
-
-class (Mode a) => IntoLogical a where
-  intoLogical :: a -> Logical
-
-instance IntoLogical Logical where
-  intoLogical = id
-
-instance IntoLogical Numeric where
-  intoLogical Nothing    = Nothing
-  intoLogical (Just 0.0) = Just False
-  intoLogical (Just   _) = Just True
-
-
-add :: (IntoNumeric a, IntoNumeric b) => a -> b -> Numeric
-add l r = case (intoNumeric l, intoNumeric r) of
-  ((Just l),(Just r)) -> Just (l + r)
-  (       _,       _) -> Nothing
-
-and :: (IntoLogical a, IntoLogical b) => a -> b -> Logical
-and l r = case (intoLogical l, intoLogical r) of
-  ((Just l),(Just r)) -> Just (l && r)
-  (       _,       _) -> Nothing
diff --git a/tests/tmp/T776.hs b/tests/tmp/T776.hs
deleted file mode 100644
--- a/tests/tmp/T776.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{- | There are 2 bugs here, that have to do with `--prune-unsorted`.
-
-     1. Why is the `prod` measure being used in the generic `size`
-        function where it doesn't fit?
-
-     2. Why are we getting such a meaningless error message?!
-
-        At the very least some mention of try `prune-unsorted` ?
-
-        Can we not put in a simple check in Bare for now:
-
-        The measure `prod` is not-polymorphic, please run with --prune-unsorted.
-        
- -}
-
-{-@ LIQUID "--prune-unsorted" @-}
-
-module LiquidR where
-
-{-@ measure size @-}
-size        :: [a] -> Int
-size []     = 0
-size (_:xs) = 1 + size xs
-
-{-@ measure prod @-}
-prod :: [Int] -> Int
-prod []     = 1
-prod (x:xs) = x + prod xs
diff --git a/tests/tmp/T777.hs b/tests/tmp/T777.hs
deleted file mode 100644
--- a/tests/tmp/T777.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Goo where 
-
-{-@ instance measure glub @-}
-glub :: [Int] -> Bool
-glub []     = True
-glub (x:xs) = ((x > 0) && (glub xs))
diff --git a/tests/todo/12-case-study-AVL.lhs b/tests/todo/12-case-study-AVL.lhs
deleted file mode 100644
--- a/tests/todo/12-case-study-AVL.lhs
+++ /dev/null
@@ -1,821 +0,0 @@
-Case Study: AVL Trees {#case-study-avltree}
-================================
-
-
-\begin{comment}
-\begin{code}
-{- Example of AVL trees by michaelbeaumont -}
-
-{-@ LIQUID "--diff"           @-}
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--totality"       @-}
-
-module AVL (AVL, empty, singleton, insert, insert', delete) where
-
-import qualified Data.Set as S
-import Prelude hiding (max)
--- import Language.Haskell.Liquid.Prelude (liquidAssume)
-
--- Test
-main = do
-    mapM_ print [a, b, c, d]
-  where
-    a = singleton 5
-    b = insert 2 a
-    c = insert 3 b
-    d = insert 7 c
-
--- | Height is actual height (will disappear with measure-generated-invariants) ------------
-
-{-@ invariant {v:AVL a | 0 <= realHeight v && realHeight v = getHeight v} @-}
-
-{-@ inv_proof  :: t:AVL a -> {v:_ | 0 <= realHeight t && realHeight t = getHeight t } @-}
-inv_proof Leaf           = True
-inv_proof (Node k l r n) = inv_proof l && inv_proof r
-
-{-@ node :: x:a -> l:AVLL a x -> r:{AVLR a x | isBal l r 1} -> {v:AVL a | realHeight v = nodeHeight l r} @-}
-node v l r = Node v l r (nodeHeight l r)
-
-balR0, balRL, balRR :: a -> AVL a -> AVL a -> AVL a
-insR :: a -> AVL a -> AVL a
-merge :: a -> AVL a -> AVL a -> AVL a
-member :: (Ord a) => a -> AVL a -> Bool
--- FIXME bigHt l r t  = if (realHeight l >= realHeight r) then (eqOrUp l t) else (eqOrUp r t)
-\end{code}
-\end{comment}
-
-
-One of the most fundamental abstractions in computing is that of a
-*collection* of values -- names, numbers, records -- into which we can
-rapidly `insert`, `delete` and check for `member`ship.
-
-\newthought{Trees} offer an an attractive means of implementing
-collections in the immutable setting. We can *order* the values
-to ensure that each operation takes time proportional to the
-*path* from the root to the datum being operated upon.
-If we additionally keep the tree *balanced* then each path
-is small (relative to the size of the collection), thereby
-giving us an efficient implementation for collections.
-
-\newthought{As in real life}
-maintaining order and balance is rather easier said than done.
-Often we must go through rather sophisticated gymnastics to ensure
-everything is in its right place. Fortunately, LiquidHaskell can help.
-Lets see a concrete example, that should be familiar from your introductory
-data structures class: the Georgy Adelson-Velsky and Landis' or [AVL Tree][avl-wiki].
-
-AVL Trees
----------
-
-An `AVL` tree is defined by the following Haskell datatype:^[This chapter is based on code by Michael Beaumont.]
-
-\begin{code}
-data AVL a =
-    Leaf
-  | Node { key :: a      -- value
-         , l   :: AVL a  -- left subtree
-         , r   :: AVL a  -- right subtree
-         , ah  :: Int    -- height
-         }
-    deriving (Show)
-\end{code}
-
-While the Haskell type signature describes any old binary tree, an
-`AVL` tree like that shown in Figure [auto](#fig:avl) actually satisfies
-two crucial invariants: it should be binary search ordered and
-balanced.
-
-<div class="marginfigure"
-     id="fig:avl"
-     height="150px"
-     file="img/avl.png"
-     caption="An AVL tree is an ordered, height-balanced tree.">
-</div>
-
-\newthought{A Binary Search Ordered} tree is one where at *each*
-`Node`, the values of the `left` and `right` subtrees are strictly
-less and greater than the values at the `Node`. In the
-tree in Figure [auto](#fig:avl) the root has value `50` while its left
-and right subtrees have values in the range `9-23` and `54-76`
-respectively.  This holds at all nodes, not just the root. For
-example, the node `12` has left and right children strictly less and
-greater than `12`.
-
-\newthought{A Balanced} tree is one where at *each* node, the *heights*
-of the left and right subtrees differ by at most `1`. In
-Figure [auto](#fig:avl), at the root, the heights of the left and right subtrees
-are the same, but at the node `72` the left subtree has height `2` which is
-one more then the right subtree.
-
-\newthought{The Invariants Lead To Fast Operations.}
-Order ensures that there is at most a single path of `left` and
-`right` moves from the root at which an element can be found; balance
-ensures that each such path in the tree is of size $O(\log\ n)$ where
-$n$ is the numbers of nodes. Thus, together they ensure that the
-collection operations are efficient: they take time logarithmic in the
-size of the collection.
-
-Specifying AVL Trees
---------------------
-
-The tricky bit is to ensure order and balance. Before we can ensure
-anything, lets tell LiquidHaskell what we mean by these terms, by
-defining legal or valid AVL trees.
-
-\newthought{To Specify Order} we just define two aliases `AVLL` and `AVLR`
--- read *AVL-left* and *AVL-right* -- for trees whose values are strictly less
-than and greater than some value `X`:
-
-\begin{code}
--- | Trees with value less than X
-{-@ type AVLL a X = AVL {v:a | v < X}  @-}
-
--- | Trees with value greater than X
-{-@ type AVLR a X = AVL {v:a | X < v}  @-}
-\end{code}
-
-
-\newthought{The Real Height} of a tree is defined recursively as `0`
-for `Leaf`s and one more than the larger of left and right subtrees
-for `Node`s.  Note that we cannot simply use the `ah` field because
-thats just some arbitrary `Int` -- there is nothing to prevent a buggy
-implementation from just filling that field with `0` everywhere.  In
-short, we need the ground truth: a measure that computes the *actual*
-height of a tree. ^[**FIXME** The `inline` pragma indicates that the
-Haskell functions can be directly lifted into and used inside the
-refinement logic and measures.]
-
-\begin{code}
-{-@ measure realHeight @-}
-realHeight                :: AVL a -> Int
-realHeight Leaf           = 0
-realHeight (Node _ l r _) = nodeHeight l r
-
-{-@ inline nodeHeight @-}
-nodeHeight l r = 1 + max hl hr
-  where
-    hl         = realHeight l
-    hr         = realHeight r
-
-{-@ inline max @-}
-max :: Int -> Int -> Int
-max x y = if x > y then x else y
-\end{code}
-
-\newthought{A Reality Check} predicate ensures that a value
-`v` is indeed the *real* height of a node with subtrees `l` and `r`:
-
-\begin{code}
-{-@ inline isReal @-}
-isReal v l r = v == nodeHeight l r
-\end{code}
-
-\newthought{A Node is $n$-Balanced} if its left and right subtrees
-have a (real) height difference of at most $n$. We can specify this
-requirement as a predicate `isBal l r n`
-
-\begin{code}
-{-@ inline isBal @-}
-isBal l r n = 0 - n <= d && d <= n
-  where
-    d       = realHeight l - realHeight r
-\end{code}
-
-\newthought{A Legal AVL Tree} can now be defined via the following
-[refined data type](#refineddatatypes), which states that each `Node`
-is $1$-balanced, and that the saved height field is indeed the *real* height:
-
-\begin{code}
-{-@ data AVL a = Leaf
-               | Node { key :: a
-                      , l   :: AVLL a key
-                      , r   :: {v:AVLR a key | isBal l v 1}
-                      , ah  :: {v:Nat        | isReal v l r}
-                      }                                  @-}
-\end{code}
-
-Smart Constructors
-------------------
-
-Lets use the type to construct a few small trees which will
-also be handy in a general collection API. First, lets write
-an alias for trees of a given height:
-
-\begin{code}
--- | Trees of height N
-{-@ type AVLN a N = {v: AVL a | realHeight v = N} @-}
-
--- | Trees of height equal to that of another T
-{-@ type AVLT a T = AVLN a {realHeight T} @-}
-\end{code}
-
-\newthought{An Empty} collection is represented by a `Leaf`,
-which has height `0`:
-
-\begin{code}
-{-@ empty :: AVLN a 0 @-}
-empty = Leaf
-\end{code}
-
-<div class="hwex" id="Singleton">
-Consider the function `singleton` that builds an `AVL`
-tree from a single element. Fix the code below so that
-it is accepted by LiquidHaskell.
-</div>
-
-\begin{code}
-{-@ singleton :: a -> AVLN a 1 @-}
-singleton x =  Node x empty empty 0
-\end{code}
-
-As you can imagine, it can be quite tedious to keep the saved height
-field `ah` *in sync* with the *real* height. In general in such
-situations, which arose also with [lazy queues](#lazyqueue), the right
-move is to eschew the data constructor and instead use a *smart
-constructor* that will fill in the appropriate values correctly. ^[Why
-bother to save the height anyway? Why not just recompute it instead?]
-
-\newthought{The Smart Constructor} `node` takes as input the node's value `x`,
-left and right subtrees `l` and `r` and returns a tree by filling in the right
-value for the height field.
-
-\begin{code}
-{-@ mkNode :: a -> l:AVL a -> r:AVL a
-           -> AVLN a {nodeHeight l r}
-  @-}
-mkNode v l r = Node v l r h
- where
-   h       = 1 + max hl hr
-   hl      = getHeight l
-   hr      = getHeight r
-\end{code}
-
-<div class="hwex" id="Constructor">Unfortunately, LiquidHaskell  rejects
-the above smart constructor `node`. Can you explain why? Can you fix the
-code (implementation or specification) so that the function is accepted?
-</div>
-
-\hint Think about the (refined) type of the actual constructor `Node`, and
-the properties it requires and ensures.
-
-
-Inserting Elements
-------------------
-
-Next, lets turn our attention to the problem of *adding* elements to
-an `AVL` tree. The basic strategy is this:
-
-1. *Find* the appropriate location (per ordering) to add the value,
-2. *Replace* the `Leaf` at that location with the singleton value.
-
-\noindent If you prefer the spare precision of code to the
-informality of English, here is a first stab at implementing
-insertion: ^[`node` is a fixed variant of the smart
-constructor `mkNode`. Do the exercise *without* looking at it.]
-
-
-\begin{code}
-{-@ insert0    :: (Ord a) => a -> AVL a -> AVL a @-}
-insert0 y t@(Node x l r _)
-  | y < x      = insL0 y t
-  | x < y      = insR0 y t
-  | otherwise  = t
-insert0 y Leaf = singleton y
-
-insL0 y (Node x l r _) = node x (insert0 y l) r
-insR0 y (Node x l r _) = node x l (insert0 y r)
-\end{code}
-
-
-\newthought{Unfortunately} `insert0` does not work.
-If you did the exercise above, you can replace it with `mkNode` and
-you will see that the above function is rejected by LiquidHaskell.
-The error message would essentially say that at the calls to the
-smart constructor, the arguments violate the balance requirement.
-
-\newthought{Insertion Increases The Height} of a sub-tree, making
-it *too large* relative to its sibling. For example, consider the
-tree `t0` defined as:
-
-~~~~~{.ghci}
-ghci> let t0 = Node { key = 'a'
-                    , l   = Leaf
-                    , r   = Node {key = 'd'
-                                 , l  = Leaf
-                                 , r  = Leaf
-                                 , ah = 1 }
-                    , ah = 2}
-~~~~~
-
-If we use `insert0` to add the key `'e'` (which goes after `'d'`) then we end up
-with the result:
-
-\vfill
-
-~~~~~{.ghci}
-ghci> insert0 'e' t0
-  Node { key = 'a'
-       , l   = Leaf
-       , r   = Node { key = 'd'
-                    , l   = Leaf
-                    , r   = Node { key = 'e'
-                                 , l   = Leaf
-                                 , r   = Leaf
-                                 , ah  = 1   }
-                    , ah = 2                 }
-       , ah = 3}
-~~~~~
-
-<div class="marginfigure"
-     height="150px"
-     file="img/avl-insert0.png"
-     id="fig:avl-insert0"
-     caption="Naive insertion breaks balancedness">
-</div>
-
-
-\noindent In the above, illustrated in Figure [auto](#fig:avl-insert0)
-the value `'e'` is inserted into the valid tree `t0`; it is inserted
-using `insR0`, into the *right* subtree of `t0` which already has
-height `1` and causes its height to go up to `2` which is too large
-relative to the empty left subtree of height `0`.
-
-\newthought{LiquidHaskell catches the imbalance} by rejecting `insert0`.
-The new value `y` is inserted into the right subtree `r`, which (may
-already be bigger than the left by a factor of `1`).
-As insert can return a tree with arbitrary height, possibly
-much larger than `l` and hence, LiquidHaskell rejects the call to
-the constructor `node` as the balance requirement does not hold.
-
-\newthought{Two lessons} can be drawn from the above exercise. First,
-`insert` may *increase* the height of a tree by at most `1`. So,
-second, we need a way to *rebalance* sibling trees where one has
-height `2` more than the other.
-
-Rebalancing Trees
------------------
-
-The brilliant insight of Adelson-Velsky and Landis was that we can,
-in fact, perform such a rebalancing with a clever bit of gardening.
-Suppose we have inserted a value into the *left* subtree `l` to
-obtain a new tree `l'` (the right case is symmetric.)
-
-\newthought{The relative heights} of `l'` and `r` fall under one of three cases:
-
-+ *(RightBig)* `r`  is two more than `l'`,
-+ *(LeftBig)*  `l'` is two more than `r`, and otherwise
-+ *(NoBig)*    `l'` and `r` are within a factor of `1`,
-
-\newthought{We can specify} these cases as follows.
-
-\begin{code}
-{-@ inline leftBig @-}
-leftBig l r = diff l r == 2
-
-{-@ inline rightBig @-}
-rightBig l r = diff r l == 2
-
-{-@ inline diff @-}
-diff s t = getHeight s - getHeight t
-\end{code}
-
-\noindent the function `getHeight` accesses the saved height field.
-
-\begin{code}
-{-@ measure getHeight @-}
-getHeight Leaf           = 0
-getHeight (Node _ _ _ n) = n
-\end{code}
-
-In `insL`, the *RightBig* case cannot arise as `l'` is at least as
-big as `l`, which was within a factor of `1` of `r` in the valid
-input tree `t`.  In *NoBig*, we can safely link  `l'` and `r` with
-the smart constructor as they satisfy the balance requirements.
-The *LeftBig* case is the tricky one: we need a way to shuffle
-elements from the left subtree over to the right side.
-
-\newthought{What is a LeftBig tree?} Lets split into the possible
-cases for `l'`, immediately ruling out the *empty* tree because
-its height is `0` which cannot be `2` larger than any other tree.
-
-+ *(NoHeavy)* the left and right subtrees of `l'` have the same height,
-+ *(LeftHeavy)* the left subtree of `l'` is bigger than the right,
-+ *(RightHeavy)* the right subtree of `l'` is bigger than the left.
-
-\newthought{The Balance Factor} of a tree can be used to make the above
-cases precise. Note that while the `getHeight` function returns the saved
-height (for efficiency), thanks to the invariants, we know it is in fact
-equal to the `realHeight` of the given tree.
-
-\begin{code}
-{-@ measure balFac @-}
-balFac Leaf           = 0
-balFac (Node _ l r _) = getHeight l - getHeight r
-\end{code}
-
-\newthought{Heaviness} can be encoded by testing the balance factor:
-
-\begin{code}
-{-@ inline leftHeavy @-}
-leftHeavy  t = balFac t > 0
-
-{-@ inline rightHeavy @-}
-rightHeavy t = balFac t < 0
-
-{-@ inline noHeavy @-}
-noHeavy    t = balFac t == 0
-\end{code}
-
-Adelson-Velsky and Landis observed that once you've drilled
-down  into these three cases, the shuffling suggests itself.
-
-<div class="figure"
-     id="fig:avl-balL0"
-     height="150px"
-     file="img/avl-balL0.png"
-     caption="Rotating when in the LeftBig, NoHeavy case.">
-</div>
-
-\newthought{In the NoHeavy} case, illustrated in
-Figure [auto](#fig:avl-balL0),
-the subtrees  `ll` and `lr` have the same height which is one more than that
-of `r`. Hence, we can link up `lr` and `r` and link the result with `l`.
-Here's how you would implement the rotation. Note how the preconditions
-capture the exact case we're in: the left subtree is *NoHeavy* and the right
-subtree is smaller than the left by `2`. Finally, the output type captures
-the exact height of the result, relative to the input subtrees.
-
-\begin{code}
-{-@ balL0 :: x:a
-          -> l:{AVLL a x | noHeavy l}
-          -> r:{AVLR a x | leftBig l r}
-          -> AVLN a {realHeight l + 1 }
-  @-}
-balL0 v (Node lv ll lr _) r = node lv ll (node v lr r)
-\end{code}
-
-<div class="figure"
-     height="150px"
-     file="img/avl-balLL.png"
-     caption="Rotating when in the LeftBig, LeftHeavy case."
-     id="fig:avl-balLL">
-</div>
-
-\newthought{In the LeftHeavy} case, illustrated in
-Figure [auto](#fig:avl-balLL), the subtree `ll` is larger than `lr`;
-hence `lr` has the same height as `r`, and again we can link up
-`lr` and `r` and link the result with `l`. As in the *NoHeavy* case,
-the input types capture the exact case, and the output the height of
-the resulting tree.
-
- \begin{code}
-{-@ balLL :: x:a
-          -> l:{AVLL a x | leftHeavy l}
-          -> r:{AVLR a x | leftBig l r}
-          -> AVLT a l
-  @-}
-balLL v (Node lv ll lr _) r = node lv ll (node v lr r)
-\end{code}
-
-<div class="figure"
-     height="150px"
-     file="img/avl-balLR.png"
-     caption="Rotating when in the LeftBig, RightHeavy case."
-     id="fig:avl-balLR">
-</div>
-
-\newthought{In the RightHeavy} case, illustrated in Figure [auto](#fig:avl-balLR),
-the subtree  `lr` is larger than  `ll`. We cannot directly link it with `r` as
-the result would again be too large. Hence, we split it further into its own
-subtrees `lrl` and `lrr` and link the latter with `r`. Again, the types capture
-the requirements and guarantees of the rotation.
-
-\begin{code}
-{-@ balLR :: x:a
-          -> l:{AVLL a x | rightHeavy l}
-          -> r:{AVLR a x | leftBig l r}
-          -> AVLT a l
-  @-}
-balLR v (Node lv ll (Node lrv lrl lrr _) _) r
-  = node lrv (node lv ll lrl) (node v lrr r)
-\end{code}
-
-
-The *RightBig* cases are symmetric to the above cases where the
-left subtree is the larger one.
-
-<div class="hwex" id="RightBig, NoHeavy">
-Fix the implementation of `balR0` so that it implements the given type.
-</div>
-
-\vspace{1.0in}
-\vspace*{\fill}
-
-\begin{code}
-{-@ balR0 :: x:a
-          -> l: AVLL a x
-          -> r: {AVLR a x | rightBig l r && noHeavy r}
-          -> AVLN a {realHeight r + 1}
-  @-}
-balR0 v l r = undefined
-\end{code}
-
-<div class="hwex" id="RightBig, RightHeavy">
-Fix the implementation of `balRR` so that it implements the given type.
-</div>
-
-
-\begin{code}
-{-@ balRR :: x:a
-          -> l: AVLL a x
-          -> r:{AVLR a x | rightBig l r && rightHeavy r}
-          -> AVLT a r
-  @-}
-balRR v l r = undefined
-\end{code}
-
-<div class="hwex" id="RightBig, LeftHeavy">
-Fix the implementation of `balRL` so that it implements the given type.
-</div>
-
-\begin{code}
-{-@ balRL :: x:a
-          -> l: AVLL a x
-          -> r:{AVLR a x | rightBig l r && leftHeavy r}
-          -> AVLT a r
-  @-}
-balRL v l r = undefined
-\end{code}
-
-
-\newthought{To Correctly Insert} an element, we recursively add it
-to the left or right subtree as appropriate and then determine which
-of the above cases hold in order to call the corresponding *rebalance*
-function which restores the invariants.
-
-\begin{code}
-{-@ insert :: a -> s:AVL a -> {t: AVL a | eqOrUp s t} @-}
-insert y Leaf = singleton y
-insert y t@(Node x _ _ _)
-  | y < x     = insL y t
-  | y > x     = insR y t
-  | otherwise = t
-\end{code}
-
-\noindent The refinement, `eqOrUp` says that the height of `t` is the same
-as `s` or goes *up* by atmost `1`.
-
-\begin{code}
-{-@ inline eqOrUp @-}
-eqOrUp s t = d == 0 || d == 1
-  where
-    d      = diff t s
-\end{code}
-
-\newthought{The hard work} happens inside `insL` and `insR`. Here's the
-first; it simply inserts into the left subtree to get `l'` and then determines
-which rotation to apply.
-
-\begin{code}
-{-@ insL :: x:a
-         -> t:{AVL a | x < key t && 0 < realHeight t}
-         -> {v: AVL a | eqOrUp t v}
-  @-}
-insL a (Node v l r _)
-  | isLeftBig && leftHeavy l'  = balLL v l' r
-  | isLeftBig && rightHeavy l' = balLR v l' r
-  | isLeftBig                  = balL0 v l' r
-  | otherwise                  = node  v l' r
-  where
-    isLeftBig                  = leftBig l' r
-    l'                         = insert a l
-\end{code}
-
-<div class="hwex" id="InsertRight"> \singlestar
-\noindent The code for `insR` is symmetric. To make sure you're
-following along, why don't you fill it in?
-</div>
-
-\begin{code}
-{-@ insR :: x:a
-         -> t:{AVL a  | key t < x && 0 < realHeight t }
-         -> {v: AVL a | eqOrUp t v}
-  @-}
-insR = undefined
-\end{code}
-
-Refactoring Rebalance
----------------------
-
-Next, lets write a function to `delete` an element from a tree.
-In general, we can apply the same strategy as `insert`:
-
-1. remove the element without worrying about heights,
-2. observe that deleting can *decrease* the height by at most `1`,
-3. perform a rotation to fix the imbalance caused by the decrease.
-
-\newthought{We painted ourselves into a corner} with `insert`: the code
-for actually inserting an element is intermingled with the code for
-determining and performing the rotation. That is, see how the code
-that determines which rotation to apply -- `leftBig`, `leftHeavy`, etc. --
-is *inside* the `insL` which does the insertion as well.
-This is correct, but it means we would have to *repeat* the case
-analysis when deleting a value, which is unfortunate.
-
-\newthought{Instead lets refactor} the rebalancing code into a
-separate function, that can be used by *both* `insert` and `delete`.
-It looks like this:
-
-\begin{code}
-{-@ bal :: x:a
-        -> l:AVLL a x
-        -> r:{AVLR a x | isBal l r 2}
-        -> {t:AVL a | reBal l r t}
-  @-}
-bal v l r
-  | isLeftBig  && leftHeavy l  = balLL v l r
-  | isLeftBig  && rightHeavy l = balLR v l r
-  | isLeftBig                  = balL0 v l r
-  | isRightBig && leftHeavy r  = balRL v l r
-  | isRightBig && rightHeavy r = balRR v l r
-  | isRightBig                 = balR0 v l r
-  | otherwise                  = node  v l r
-  where
-    isLeftBig                  = leftBig l r
-    isRightBig                 = rightBig l r
-\end{code}
-
-The `bal` function is a combination of the case-splits and rotation calls
-made by `insL` (and ahem, `insR`); it takes as input a value `x` and valid
-left and right subtrees for `x` whose heights are off by at most `2` because
-as we will have created them by inserting or deleting a value from a sibling
-whose height was at most `1` away. The `bal` function returns a valid `AVL` tree,
-whose height is constrained to satisfy the predicate `reBal l r t`, which says:
-
-+ (`bigHt`) The height of `t` is the same or one bigger than the larger of `l` and `r`, and
-+ (`balHt`) If `l` and `r` were already balanced (i.e. within `1`) then the height
-   of `t` is exactly equal to that of a tree built by directly linking `l`
-   and `r`.
-
-\begin{code}
-{-@ inline reBal @-}
-reBal l r t = bigHt l r t && balHt l r t
-
-{-@ inline balHt @-}
-balHt l r t = not (isBal l r 1) || isReal (realHeight t) l r
-
-{-@ inline bigHt @-}
-bigHt l r t = lBig && rBig
-  where
-    lBig    = not (hl >= hr) || (eqOrUp l t)
-    rBig    = (hl >= hr)     || (eqOrUp r t)
-    hl      = realHeight l
-    hr      = realHeight r
-\end{code}
-
-\newthought{Insert} can now be written very simply as the following function that
-recursively inserts into the appropriate subtree and then calls `bal` to fix any imbalance:
-
-\begin{code}
-{-@ insert' :: a -> s:AVL a -> {t: AVL a | eqOrUp s t} @-}
-insert' a t@(Node v l r n)
-  | a < v      = bal v (insert' a l) r
-  | a > v      = bal v l (insert' a r)
-  | otherwise  = t
-insert' a Leaf = singleton a
-\end{code}
-
-Deleting Elements
------------------
-
-Now we can write the `delete` function in a manner similar to `insert`:
-the easy cases are the recursive ones; here we just delete from the
-subtree and summon `bal` to clean up. Notice that the height of the
-output `t` is at most `1` *less* than that of the input `s`.
-
-\begin{code}
-{-@ delete    :: a -> s:AVL a -> {t:AVL a | eqOrDn s t} @-}
-delete y (Node x l r _)
-  | y < x     = bal x (delete y l) r
-  | x < y     = bal x l (delete y r)
-  | otherwise = merge x l r
-delete _ Leaf = Leaf
-
-{-@ inline eqOrDn @-}
-eqOrDn s t = eqOrUp t s
-\end{code}
-
-\newthought{The tricky case} is when we actually *find* the
-element that is to be removed. Here, we call `merge` to link
-up the two subtrees `l` and `r` after hoisting the smallest
-element from the right tree `r` as the new root which replaces
-the deleted element `x`.
-
-\begin{code}
-{-@ merge :: x:a -> l:AVLL a x -> r:{AVLR a x | isBal l r 1}
-          -> {t:AVL a | bigHt l r t}
-  @-}
-merge _ Leaf r = r
-merge _ l Leaf = l
-merge x l r    = bal y l r'
-  where
-   (y, r')     = getMin r
-\end{code}
-
-`getMin` recursively finds the smallest (i.e. leftmost) value
-in a tree, and returns the value and the remainder tree.  The height
-of each remainder `l'` may be lower than `l` (by at most `1`.) Hence,
-we use `bal` to restore the invariants when linking against the
-corresponding right subtree `r`.
-
-\begin{code}
-getMin (Node x Leaf r _) = (x, r)
-getMin (Node x l r _)    = (x', bal x l' r)
-  where
-    (x', l')             = getMin l
-\end{code}
-
-
-Functional Correctness
-----------------------
-
-We just saw how to implement some tricky data structure gynastics.
-Fortunately, with LiquidHaskell as a safety net we can be sure to have
-gotten all the rotation cases right and to have preserved the
-invariants crucial for efficiency and correctness.  However, there is
-nothing in the types above that captures "functional correctness",
-which, in this case, means that the operations actually implement a
-collection or set API, for example, as described [here](#mapapi).
-Lets use the techniques from that chapter to precisely specify
-and verify that our AVL operations indeed implement sets correctly, by:
-
-1. *Defining* the set of elements in a tree,
-2. *Specifying* the desired semantics of operations via types,
-3. *Verifying* the implemetation. ^[By adding [ghost operations](#lemmas), if needed.]
-
-We've done this [once before](#lemmas) already, so this is a good exercise
-to solidify your understanding of that material.
-
-\newthought{The Elements} of an `AVL` tree can be described via a measure
-defined as follows:
-
-\begin{code}
-{-@ measure elems @-}
-elems                :: (Ord a) => AVL a -> S.Set a
-elems (Node x l r _) = (S.singleton x) `S.union`
-                       (elems l)       `S.union`
-                       (elems r)
-elems Leaf           = S.empty
-\end{code}
-
-\noindent Let us use the above `measure` to specify and verify that our `AVL` library
-actually implements a `Set` or collection API.
-
-
-<div class="hwex" id="Membership">Complete the implementation of the implementation of
-`member` that checks if an element is in an `AVL` tree:
-</div>
-
-\begin{code}
--- FIXME https://github.com/ucsd-progsys/liquidhaskell/issues/332
-{-@ member :: (Ord a) => x:a -> t:AVL a -> {v: Bool | Prop v <=> hasElem x t} @-}
-member x t = undefined
-
-{-@ type BoolP P = {v:Bool | Prop v <=> Prop P} @-}
-
-{-@ inline hasElem @-}
-hasElem x t = True
--- FIXME hasElem x t = S.member x (elems t)
-\end{code}
-
-
-<div class="hwex" id="Insertion">Modify `insert'` to obtain
-a function `insertAPI` that states that the output tree
-contains the newly inserted element (in addition to the old elements):
-</div>
-
-\begin{code}
-{-@ insertAPI :: (Ord a) => a -> s:AVL a -> {t:AVL a | addElem x s t} @-}
-insertAPI x s = insert' x s
-
-{-@ inline addElem @-}
-addElem       :: Ord a => a -> AVL a -> AVL a -> Bool
-addElem x s t = True
--- FIXME addElem x s t = (elems t) == (elems s) `S.union` (S.singleton x)
-\end{code}
-
-
-<div class="hwex" id="Insertion">Modify `delete` to obtain
-a function `deleteAPI` that states that the output tree
-contains the old elements minus the removed element:
-</div>
-
-\begin{code}
-{-@ deleteAPI :: (Ord a) => a -> s:AVL a -> {t: AVL a | delElem x s t} @-}
-deleteAPI x s = delete x s
-
-{-@ inline delElem @-}
-delElem       :: Ord a => a -> AVL a -> AVL a -> Bool
-delElem x s t = True
--- FIXME delElem x s t = (elems t) == (elems s) `S.difference` (S.singleton x)
-\end{code}
diff --git a/tests/todo/2013-01-10-measuring-lists-I.lhs b/tests/todo/2013-01-10-measuring-lists-I.lhs
deleted file mode 100644
--- a/tests/todo/2013-01-10-measuring-lists-I.lhs
+++ /dev/null
@@ -1,299 +0,0 @@
----
-layout: post
-title: "Measuring Lists I"
-date: 2013-01-05 16:12
-author: Ranjit Jhala
-published: false 
-comments: true
-external-url:
-categories: basic
-demo: lenMapReduce.hs
----
-
-[Previously][vecbounds] we saw how liquid refinements can be pretty 
-handy for enforcing invariants about integers, for example the about 
-whether a `Vector` is being indexed within bounds. Now, lets see how
-they can be used to encode structural invariants about data types, in
-particular, lets see how to use the `measure` mechanism to talk about 
-the **size** of a list, and thereby write safe versions of potentially
-list manipulating functions.
-
-<!-- more -->
-
-\begin{code}
-module ListLengths where
-
-import Prelude hiding (length, map, filter, head, tail, foldl1)
--- import Language.Haskell.Liquid.Prelude (liquidError)
-import qualified Data.HashMap.Strict as M
-import Data.Hashable 
-
-liquidError = error 
-\end{code}
-
-Measuring the Length of a List
-------------------------------
-
-To begin, we need some instrument by which to measure the length of a list.
-[Recall][vecbounds] the auxiliary functions used to represent the number of 
-elements of a `Vector`. Lets reuse this mechanism, this time, providing a 
-[definition](https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/Base.spec)
-for the measure
-
-\begin{code}Specifying the length of a list 
-measure len :: forall a. [a] -> GHC.Types.Int
-len ([])     = 0
-len (y:ys)   = 1 + (len ys) 
-\end{code}
-
-The description of `len` above should be quite easy to follow. Underneath the 
-covers, LiquidHaskell transforms the above description into refined versions 
-of the types for the constructors `(:)` and `[]`,
-\begin{code}Something like 
-data [a] where 
-  []  :: forall a. {v: [a] | (len v) = 0 }
-  (:) :: forall a. y:a -> ys:[a] -> {v: [a] | (len v) = 1 + (len ys) } 
-\end{code}
-
-To appreciate this, note that we can now check that
-
-\begin{code}
-{-@ xs :: {v:[String] | (len v) = 1 } @-}
-xs = "dog" : []
-
-{-@ ys :: {v:[String] | (len v) = 2 } @-}
-ys = ["cat", "dog"]
-
-{-@ zs :: {v:[String] | (len v) = 3 } @-}
-zs = "hippo" : ys
-\end{code}
-
-Hover your mouse over the `:` and `[]` above to confirm their types!
-
-Dually, when we *de-construct* the lists, LiquidHaskell is able to relate
-the type of the outer list with its constituents. For example,
-
-\begin{code}
-{-@ zs' :: {v:[String] | (len v) = 2 } @-}
-zs' = case zs of 
-        h : t -> t
-\end{code}
-
-Here, from the use of the `:` in the pattern, LiquidHaskell can determine
-that `(len zs) = 1 + (len t)`; by combining this fact with the nugget
-that `(len zs) = 3` LiquidHaskell concludes that `t`, and hence, `zs'`
-contains two elements.
-
-Reasoning about Lengths
------------------------
-
-Great! Lets flex our new vocabulary by uttering types that describe the
-behavior of the usual list functions. 
-
-First up: a somewhat simplified version of the [standard library's][ghclist] 
-`length` from, slightly simplified for exposition.
-
-\begin{code}
-{-@ length :: xs:[a] -> {v: Int | v = (len xs)} @-}
-length :: [a] -> Int
-length []     = 0
-length (x:xs) = 1 + length xs
-\end{code}
-
-Similarly, we can speak and have confirmed, the types for the usual
-list-manipulators like
-
-\begin{code}
-{-@ map      :: (a -> b) -> xs:[a] -> {v:[b] | (len v) = (len xs)} @-}
-map _ []     = [] 
-map f (x:xs) = (f x) : (map f xs)
-\end{code}
-
-and
-
-\begin{code}
-{-@ filter :: (a -> Bool) -> xs:[a] -> {v:[a] | (len v) <= (len xs)} @-}
-filter _ []     = []
-filter f (x:xs) 
-  | f x         = x : filter f xs
-  | otherwise   = filter f xs
-\end{code}
-
-and, since, doubtless you are wondering,
-
-\begin{code}
-{-@ append :: xs:[a] -> ys:[a] -> {v:[a] | (len v) = (len xs) + (len ys)} @-}
-append [] ys     = ys 
-append (x:xs) ys = x : append xs ys
-\end{code}
-
-Warm Up: Safely Catching A List by The `head` (or `tail`)
----------------------------------------------------------
-
-Now, lets see how we can use these new incantations to banish, forever,
-certain irritating kinds of errors. To wit, recall how we always summon 
-functions like `head` and `tail` with a degree of trepidation, unsure
-whether the arguments are empty, which will awaken certain beasts
-
-```
-Prelude> head []
-*** Exception: Prelude.head: empty list
-```
-
-Well, now LiquidHaskell can allow us to use these functions with confidence
-and surety, once we type them as:
-
-\begin{code}
-{-@ head   :: {v:[a] | (len v) > 0} -> a @-}
-head (x:_) = x
-head []    = liquidError "Fear not! 'twill ne'er come to pass"
-\end{code}
-
-As with the case of [divide-by-zero][ref101], LiquidHaskell deduces that
-the second equation is *dead code* since the precondition (input) type
-states that the length of the input is strictly positive, which *precludes*
-the case where the parameter is `[]`.
-
-Similarly, we may write
-
-\begin{code}
-{-@ tail :: {v:[a] | (len v) > 0} -> [a] @-}
-tail (_:xs) = xs
-tail []     = liquidError "Relaxeth! this too shall ne'er be"
-\end{code}
-
-Once again, LiquidHaskell will use the precondition to verify that the 
-`liquidError` is never invoked. 
-
-Lets use the above to write a function that eliminates stuttering, that
-is which converts "ssstringssss liiiiiike thisss"` to "strings like this".
-
-\begin{code}
-{-@ eliminateStutter :: (Eq a) => [a] -> [a] @-}
-eliminateStutter xs = map head $ groupEq xs 
-\end{code}
-
-The heavy lifting is done by `groupEq`
-
-\begin{code}
-groupEq []     = []
-groupEq (x:xs) = (x:ys) : groupEq zs
-                 where (ys,zs) = span (x ==) xs
-\end{code}
-
-which gathers consecutive equal elements in the list into a single list.
-
- 
-By using the fact that *each element* in the output returned by 
-`groupEq` is in fact of the form `x:ys`, LiquidHaskell infers that
-`groupEq` returns a *list of non-empty lists*. 
-
-(Put your mouse over the `groupEq` identifier in the code above to see this.)
-
-Next, by automatically instantiating the type parameter for the `map` 
-in `eliminateStutter` to `(len v) > 0` LiquidHaskell deduces `head` 
-is only called on non-empty lists, thereby verifying the safety of 
-`eliminateStutter`.
-
-
-A Longer Example: MapReduce 
----------------------------
-
-The above examples of `head` and `tail` are simple, but non-empty lists pop
-up in many places, and it is rather convenient to have the type system
-track non-emptiness without having to make up special types. Here's a
-longer example.
-
-First, lets write a function `keyMap` that expands a list of inputs into a 
-list of key-value pairs:
-
-\begin{code}
-keyMap :: (a -> [(k, v)]) -> [a] -> [(k, v)]
-keyMap f xs = concatMap f xs
-\end{code}
-
-Next, lets write a function `group` that gathers the key-value pairs into a
-`Map` from *keys* to the lists of values with that same key.
-
-\begin{code}
-group kvs = foldr (\(k, v) m -> inserts k v m) M.empty kvs 
-\end{code}
-
-The function `inserts` simply adds the new value `v` to the list of 
-previously known values `lookupDefault [] k m` for the key `k`.
-
-\begin{code}
-inserts k v m = M.insert k (v : vs) m 
-  where vs    = M.lookupDefault [] k m
-\end{code}
-
-Finally, we can write a function that *reduces* the list of values for a given
-key in the table to a single value:
-
-\begin{code}
-reduce    :: (v -> v -> v) -> M.HashMap k [v] -> M.HashMap k v
-reduce op = M.map (foldl1 op)
-\end{code}
-
-where `foldl1` is a [left-fold over *non-empty* lists][foldl1]
-
-\begin{code}
-foldl1 f (x:xs) =  foldl f x xs
-foldl1 _ []     =  liquidError "will. never. happen."
-\end{code}
-
-We can put the whole thing together to write a (*very*) simple *Map-Reduce* library
-
-\begin{code}
-{-@ mapReduce   :: (Eq k, Hashable k) 
-                => (a -> [(k, v)]) -- ^ key-mapper
-                -> (v -> v -> v)   -- ^ reduction operator
-                -> [a]             -- ^ inputs
-                -> [(k, v)]        -- ^ output key-values
-  @-}
-
-mapReduce f op  = M.toList 
-                . reduce op 
-                . group 
-                . keyMap f
-\end{code}
-
-Now, if we want to compute the frequency of `Char` in a given list of words, we can write:
-
-\begin{code}
-{-@ charFrequency :: [String] -> [(Char, Int)] @-}
-charFrequency     :: [String] -> [(Char, Int)]
-charFrequency     = mapReduce wordChars (+)
-  where wordChars = map (\c -> (c, 1)) 
-\end{code}
-
-You can take it out for a spin like so:
-
-\begin{code}
-f0 = charFrequency [ "the", "quick" , "brown"
-                   , "fox", "jumped", "over"
-                   , "the", "lazy"  , "cow"   ]
-\end{code}
-
-
-LiquidHaskell will gobble the whole thing up, and verify that none of the
-undesirable `liquidError` calls are triggered. 
-
-Conveniently, we *needn't write down any types* for `mapReduce` and friends. 
-
-The main invariant, from which safety follows is that the `Map` 
-returned by the `group` function binds each key to a *non-empty* list 
-of values. LiquidHaskell deduces this invariant by inferring suitable 
-types for `group`, `inserts`, `foldl1` and `reduce`, thereby relieving 
-us of that tedium. 
-
-In short, by riding on the broad and high shoulders of SMT, LiquidHaskell 
-makes a little typing go a long way.
-
-
-
-[vecbounds]:  /blog/2012/01/05/bounding-vectors.lhs/ 
-[ghclist]  : https://github.com/ucsd-progsys/liquidhaskell/blob/master/include/GHC/List.lhs#L125
-[ref101]   :  /blog/2013/01/01/refinement-types-101.lhs/ 
-
-[foldl1]   : http://hackage.haskell.org/packages/archive/base/latest/doc/html/src/Data-List.html#foldl1
diff --git a/tests/todo/AVLTree.hs b/tests/todo/AVLTree.hs
deleted file mode 100644
--- a/tests/todo/AVLTree.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-module AVLTree where 
-
--- from: https://gist.github.com/gerard/109729
-
-data BT a = L 
-          | N { dep   :: !Int 
-              , value :: a   
-              , left  :: !(BT a)
-              , right :: !(BT a) 
-              }
-          deriving (Show, Eq)
-
-{-@ data BT a [dep] = L 
-                    | N (dep   :: !Int) 
-                        (value :: a   )
-                        (left  :: Bt a) 
-                        (right :: BT a) 
-  @-}
-
--- Nice, small and useful functions
-empty = L 
- 
--- You could say, depth L == Nothing depth (N v L L) == Just 0, but works for
--- me better this way:
-depth L = 0
-depth (N d _ _ _) = d 
-
-{-@ measure depth   :: BT a -> Int 
-    depth (L)         = 0
-    depth (N d x l r) = 1 + (if (depth l) <= (depth r) then (depth r) else (depth l)) 
-  @-}
-
-inorder             :: BT a -> [a]
-inorder L           = []
-inorder (N _ v l r) = inorder l ++ [v] ++ inorder r
- 
--- left (N _ t _) = t
--- right (N _ _ u) = u
--- value (N v _ _) = v
- 
-btmin = head . inorder
- 
--- FIXME: Could be cleaner BT -> Int using left and right of BT
-balFactor :: BT -> BT -> Int
-balFactor t u = (depth t) - (depth u)
- 
--- Tricky but easy: we return a binary list with the route to the node
-search :: BT -> Int -> Maybe [Int]
-search L s = Nothing
-search (N v t u) s 
-    | v == s                  = Just []
-    | (search t s) /= Nothing = fmap ((:) 0) (search t s)
-    | (search u s) /= Nothing = fmap ((:) 1) (search u s)
-    | otherwise               = Nothing
- 
--- Complementary to search: get the node with the path
-getelem :: BT -> [Int] -> Maybe Int
-getelem L _ = Nothing
-getelem (N v _ _) [] = Just v
-getelem (N v t u) (x:xs)
-    | x == 0    = getelem t xs
-    | otherwise = getelem u xs
- 
--- If you get confused (I do), check this nice picture:
--- http://en.wikipedia.org/wiki/Image:Tree_Rebalancing.gif
-balanceLL (N v (N vl tl ul) u)              = (N vl tl (N v ul u))
-balanceLR (N v (N vl tl (N vlr tlr ulr)) u) = (N vlr (N vl tl tlr) (N v ulr u))
-balanceRL (N v t (N vr (N vrl trl url) ur)) = (N vrl (N v t trl) (N vr url ur)) 
-balanceRR (N v t (N vr tr ur))              = (N vr (N v t tr) ur)
- 
--- Balanced insert
-insert :: BT -> Int -> BT
-insert L i = (N i L L)
-insert (N v t u) i
-    | i == v = (N v t u)
-    | i < v && (balFactor ti u) ==  2 && i < value t = balanceLL (N v ti u)
-    | i < v && (balFactor ti u) ==  2 && i > value t = balanceLR (N v ti u)
-    | i > v && (balFactor t ui) == -2 && i < value u = balanceRL (N v t ui)
-    | i > v && (balFactor t ui) == -2 && i > value u = balanceRR (N v t ui)
-    | i < v  = (N v ti u)
-    | i > v  = (N v t ui)
-        where ti = insert t i
-              ui = insert u i
- 
--- Balanced delete
-delete :: BT -> Int -> BT
-delete L d = L
-delete (N v L L) d = if v == d then L else (N v L L)
-delete (N v t L) d = if v == d then t else (N v t L)
-delete (N v L u) d = if v == d then u else (N v L u)
-delete (N v t u) d
-    | v == d                            = (N mu t dmin)
-    | v > d && abs (balFactor dt u) < 2 = (N v dt u)
-    | v < d && abs (balFactor t du) < 2 = (N v t du)
-    | v > d && (balFactor (left u) (right u)) < 0 = balanceRR (N v dt u) 
-    | v < d && (balFactor (left t) (right t)) > 0 = balanceLL (N v t du)
-    | v > d                                       = balanceRL (N v dt u)
-    | v < d                                       = balanceLR (N v t du)
-        where dmin = delete u mu
-              dt   = delete t d
-              du   = delete u d
-              mu   = btmin u
- 
--- Test Functions
-load :: BT -> [Int] -> BT
-load t []     = t
-load t (x:xs) = insert (load t xs) x
- 
-unload :: BT -> [Int] -> BT
-unload t []     = t
-unload t (x:xs) = delete (unload t xs) x
- 
-sort :: [Int] -> [Int]
-sort = inorder . (load empty)
- 
-isBalanced L = True
-isBalanced (N _ t u) = isBalanced t && isBalanced u && abs (balFactor t u) < 2
diff --git a/tests/todo/AbsRef.hs b/tests/todo/AbsRef.hs
deleted file mode 100644
--- a/tests/todo/AbsRef.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module AbsRef where
-
-data F a = F a
-{-@ data F a <p :: a -> Prop> = F (x :: a)@-}
-
-
-
-{-@ foo :: F <{\v -> true}, {\v -> true}> Int @-}
-foo :: F Int
-foo = F 5
diff --git a/tests/todo/AbsRefNameClash.hs b/tests/todo/AbsRefNameClash.hs
deleted file mode 100644
--- a/tests/todo/AbsRefNameClash.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-
------------------------------------------------------------------------
--- Weight-Biased Leftist Heap, verified using LiquidHaskell -----------
------------------------------------------------------------------------
--- ORIGINAL SOURCE ----------------------------------------------------
------------------------------------------------------------------------
--- Copyright: 2014, Jan Stolarek, Politechnika Łódzka                --
---                                                                   --
--- License: See LICENSE file in root of the repo                     --
--- Repo address: https://github.com/jstolarek/dep-typed-wbl-heaps-hs --
---                                                                   --
--- Basic implementation of weight-biased leftist heap. No proofs     --
--- and no dependent types. Uses a two-pass merging algorithm.        --
------------------------------------------------------------------------
-
-{-@ LIQUID "--no-termination" @-}
-
-module WBL where 
-
-type Priority = Int
-
-type Rank     = Int
-
-type Nat      = Int
-
-data Heap a   = Empty | Node { pri   :: a
-                             , rnk   :: Rank
-                             , left  :: Heap a
-                             , right :: Heap a
-                             }
-
-{-@ data Heap a <p :: a -> a -> Prop> =
-      Empty | Node { pri   :: a
-                   , rnk   :: Nat 
-                   , left  :: {v: Heap<p> (a<p pri>) | ValidRank v}
-                   , right :: {v: Heap<p> (a<p pri>) | ValidRank v}
-                   }
- @-}
-
-{-@ predicate ValidRank V = okRank V && realRank V = rank V  @-}
-{-@ type PHeap a = {v:OHeap a | ValidRank v}                 @-} 
-{-@ type OHeap a = Heap <{\root v -> root <= v}> a           @-}
-
-{-@ measure okRank        :: Heap a -> Prop
-    okRank (Empty)        = true
-    okRank (Node p k l r) = (realRank l >= realRank r && k = 1 + realRank l + realRank r  )
-  @-}
-
-{-@ measure realRank :: Heap a -> Int 
-    realRank (Empty)        = 0
-    realRank (Node p k l r) = (1 + realRank l + realRank r)
-  @-}
-
-{-@ measure rank @-}
-{-@ rank :: h:PHeap a -> {v:Nat | v = realRank h} @-}
-rank Empty          = 0 
-rank (Node _ r _ _) = r
-
-
--- Creates heap containing a single element with a given Priority
-{-@ singleton :: a -> PHeap a  @-}
-singleton p = Node p 1 Empty Empty
-
--- Note [Two-pass merging algorithm]
--- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
--- We use a two-pass implementation of merging algorithm. One pass,
--- implemented by merge, performs merging in a top-down manner. Second
--- one, implemented by makeT, ensures that rank invariant of weight
--- biased leftist tree is not violated after merging.
---
--- Notation:
---
---  h1, h2 - heaps being merged
---  p1, p2 - priority of root element in h1 and h2
---  l1     - left  subtree in the first  heap
---  r1     - right subtree in the first  heap
---  l2     - left  subtree in the second heap
---  r2     - right subtree in the second heap
---
--- Merge function analyzes four cases. Two of them are base cases:
---
---    a) h1 is empty - return h2
---
---    b) h2 is empty - return h1
---
--- The other two cases form the inductive definition of merge:
---
---    c) priority p1 is higher than p2 - p1 becomes new root, l1
---       becomes its one child and result of merging r1 with h2
---       becomes the other child:
---
---               p1
---              /  \
---             /    \
---            l1  r1+h2 -- here "+" denotes merging
---
---    d) priority p2 is higher than p2 - p2 becomes new root, l2
---       becomes its one child and result of merging r2 with h1
---       becomes the other child.
---
---               p2
---              /  \
---             /    \
---            l2  r2+h1
---
--- Note that there is no guarantee that rank of r1+h2 (or r2+h1) will
--- be smaller than rank of l1 (or l2). To ensure that merged heap
--- maintains the rank invariant we pass both childred - ie. either l1
--- and r1+h2 or l2 and r2+h1 - to makeT, which creates a new node by
--- inspecting sizes of children and swapping them if necessary.
-
--- makeT takes an element (Priority) and two heaps (trees). It
--- constructs a new heap with element at the root and two heaps as
--- children. makeT ensures that WBL heap rank invariant is maintained
--- in the newly created tree by reversing left and right subtrees when
--- necessary (note the inversed r and l in the False alternative of
--- case expression).
-{-@ makeT   :: p:a -> h1:PHeap {v:a | p <= v} -> h2:PHeap {v:a | p <= v}
-            -> {v:PHeap a | realRank v = 1 + realRank h1 + realRank h2} @-}
-makeT p l r = case rank l >= rank r of
-                True  ->  Node p (1 + rank l + rank r) l r
-                False ->  Node p (1 + rank l + rank r) r l
-
--- merge combines two heaps into one. There are two base cases and two
--- recursive cases - see [Two-pass Merging algorithm]. Recursive cases
--- call makeT to ensure that rank invariant is maintained after
--- merging.
-{-@ merge :: (Ord a) => h1:PHeap a -> h2:PHeap a -> {v:PHeap a | realRank v = realRank h1 + realRank h2}  @-}
-merge Empty h2 = h2
-merge h1 Empty = h1
-merge h1@(Node p1 k1 l1 r1) h2@(Node p2 k2 l2 r2) = case p1 < p2 of
-  True  -> makeT p1 l1 (merge r1 (Node p2 k2 l2 r2))
-  False -> makeT p2 l2 (merge (Node p1 k1 l1 r1) r2)
-
--- Inserting into a heap is performed by merging that heap with newly
--- created singleton heap.
-{-@ insert :: (Ord a) => a -> PHeap a -> PHeap a @-}
-insert p h = merge (singleton p) h
-
--- findMin returns element with highest priority, ie. root
--- element. Here we encounter first serious problem: we can't return
--- anything sensible for empty node.
-{-@ findMin :: PHeap a -> a @-}
-findMin Empty          = undefined
-findMin (Node p _ _ _) = p
-
--- and write a safer version of findMinM
-{-@ findMinM :: PHeap a -> Maybe a @-} 
-findMinM Empty          = Nothing
-findMinM (Node p _ _ _) = Just p
-
--- deleteMin removes the element with the highest priority by merging
--- subtrees of a root element. Again the case of empty heap is
--- problematic. We could give it semantics by returning Empty, but
--- this just doesn't feel right. Why should we be able to remove
--- elements from an empty heap?
-{-@ deleteMin :: (Ord a) => PHeap a -> PHeap a @-}
-deleteMin Empty          = undefined -- should we insert empty?
-deleteMin (Node _ _ l r) = merge l r
-
--- As a quick sanity check let's construct some examples. Here's a
--- heap constructed by inserting following priorities into an empty
--- heap: 3, 0, 1, 2.
-{-@ heap :: PHeap Int @-}
-heap = insert (2 :: Int) 
-      (insert 1 
-      (insert 0 
-      (insert 3 Empty)))
-
--- Example usage of findMin
-findMinInHeap :: Priority
-findMinInHeap = findMin heap
-
--- Example usage of deleteMin
-deleteMinFromHeap :: Heap Int
-deleteMinFromHeap = deleteMin heap
diff --git a/tests/todo/Aliases.hs b/tests/todo/Aliases.hs
deleted file mode 100644
--- a/tests/todo/Aliases.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Foo where
-
-{-@ type Foos = [Foo] @-}
-
-{-@ type Foo = {v:Int | vv > 0} @-}
-
-foo :: [Int]
-{-@ foo :: Foos @-}
-foo = []
diff --git a/tests/todo/AmortizedQueue.hs b/tests/todo/AmortizedQueue.hs
deleted file mode 100644
--- a/tests/todo/AmortizedQueue.hs
+++ /dev/null
@@ -1,159 +0,0 @@
-module AmortizedQueue where
-
-import Prelude hiding (head)
-
-data AbsQueue a = AQ { front :: [a]
-                     , rear  :: [a] }
-
-{-@ data AbsQueue a = AQ { front :: [a]
-                         , rear  :: {v:[a] | size v <= size front} }  @-}
-
-{-@ die :: {v:String | false} -> a @-}
-die :: String -> a
-die x = error x
-
-{-@ measure size @-}
-size        :: [a] -> Int
-size []     = 0
-size (x:xs) = 1 + size xs
-
-{-@ measure qsize @-}
-qsize            :: AbsQueue a -> Int
-qsize (AQ xs ys) = size xs + size ys
-
-{-@ invariant {v:[a]        | size v >=  0} @-}
-{-@ invariant {v:AbsQueue a | qsize v >= 0} @-}
-
-{-@ type NEList  a = {v:[a]        | size v > 0} @-}
-{-@ type NEQueue a = {v:AbsQueue a | qsize v > 0} @-}
-
-
-makeQueue            :: [a] -> [a] -> AbsQueue a
-makeQueue f b
-  | size b <= size f = AQ f b
-  | otherwise        = AQ (f ++ reverse b) []
-
-                       
-{- measure qhead @-}
-
-{-@ qhead      :: NEQueue a -> a @-}
-qhead (AQ f _) = head f
-qhead _        = die "never"
-
-{- measure head @-}
-
-{-@ head   :: NEList a -> a @-}
-head (x:_) = x
--- head _     = die "never"
-
-
-{- toList :: q:AbsQueue a -> {v:[a] | 0 < len v => head v = front q} @-}
-toList :: AbsQueue a -> [a]
-toList = undefined 
--- forall q :: AbsQueue a, xs:: [a], x::a.
---    not (isEmpty(q)) && asList(q) == xs =>                    
-{-
-import leon.lang._
-import leon.annotation._
-
-object AmortizedQueue {
-  sealed abstract class List
-  case class Cons(head : Int, tail : List) extends List
-  case object Nil extends List
-
-  sealed abstract class AbsQueue
-  case class Queue(front : List, rear : List) extends AbsQueue
-
-  def size(list : List) : Int = (list match {
-    case Nil => 0
-    case Cons(_, xs) => 1 + size(xs)
-  }) ensuring(_ >= 0)
-
-  def content(l: List) : Set[Int] = l match {
-    case Nil => Set.empty[Int]
-    case Cons(x, xs) => Set(x) ++ content(xs)
-  }
-  
-  def asList(queue : AbsQueue) : List = queue match {
-    case Queue(front, rear) => concat(front, reverse(rear))
-  }
-
-  def concat(l1 : List, l2 : List) : List = (l1 match {
-    case Nil => l2
-    case Cons(x,xs) => Cons(x, concat(xs, l2))
-  }) ensuring (res => size(res) == size(l1) + size(l2) && content(res) == content(l1) ++ content(l2))
-
-  def isAmortized(queue : AbsQueue) : Boolean = queue match {
-    case Queue(front, rear) => size(front) >= size(rear)
-  }
-
-  def isEmpty(queue : AbsQueue) : Boolean = queue match {
-    case Queue(Nil, Nil) => true
-    case _ => false
-  }
-
-  def reverse(l : List) : List = (l match {
-    case Nil => Nil
-    case Cons(x, xs) => concat(reverse(xs), Cons(x, Nil))
-  }) ensuring (content(_) == content(l))
-
-  def amortizedQueue(front : List, rear : List) : AbsQueue = {
-    if (size(rear) <= size(front))
-      Queue(front, rear)
-    else
-      Queue(concat(front, reverse(rear)), Nil)
-  } ensuring(isAmortized(_))
-
-  def enqueue(queue : AbsQueue, elem : Int) : AbsQueue = (queue match {
-    case Queue(front, rear) => amortizedQueue(front, Cons(elem, rear))
-  }) ensuring(isAmortized(_))
-
-  def tail(queue : AbsQueue) : AbsQueue = {
-    require(isAmortized(queue) && !isEmpty(queue))
-    queue match {
-      case Queue(Cons(f, fs), rear) => amortizedQueue(fs, rear)
-    }
-  } ensuring (isAmortized(_))
-
-  def front(queue : AbsQueue) : Int = {
-    require(isAmortized(queue) && !isEmpty(queue))
-    queue match {
-      case Queue(Cons(f, _), _) => f
-    }
-  }
-
-  @induct
-  def propFront(queue : AbsQueue, list : List) : Boolean = {
-    require(!isEmpty(queue) && isAmortized(queue))
-    if (asList(queue) == list) {
-      list match {
-        case Cons(x, _) => front(queue) == x
-      }
-    } else
-      true
-  } holds
-
-  def enqueueAndFront(queue : AbsQueue, elem : Int) : Boolean = {
-    if (isEmpty(queue))
-      front(enqueue(queue, elem)) == elem
-    else
-      true
-  } holds
-
-  def enqueueDequeueThrice(queue : AbsQueue, e1 : Int, e2 : Int, e3 : Int) : Boolean = {
-    if (isEmpty(queue)) {
-      val q1 = enqueue(queue, e1)
-      val q2 = enqueue(q1, e2)
-      val q3 = enqueue(q2, e3)
-      val e1prime = front(q3)
-      val q4 = tail(q3)
-      val e2prime = front(q4)
-      val q5 = tail(q4)
-      val e3prime = front(q5)
-      e1 == e1prime && e2 == e2prime && e3 == e3prime
-    } else
-      true
-  } holds
-}
-
--}
diff --git a/tests/todo/Append.hs b/tests/todo/Append.hs
deleted file mode 100644
--- a/tests/todo/Append.hs
+++ /dev/null
@@ -1,41 +0,0 @@
-{-
-  A first example in equalional reasoning. 
-  From the definition of append we should be able to 
-  semi-automatically prove the three axioms.
- -}
-
-{-@ LIQUID "--newcheck" @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Append where
-
-data L a = N |  C a (L a) deriving (Eq)
-
-{-@ measure append :: L a -> L a -> L a @-}
-append :: L a -> L a -> L a 
-append N xs        = xs
-append (C y ys) xs = C y (append ys xs) 
-
-
-{-@ type Valid = {v:Bool | Prop v <=> true } @-}
-
-{-@ prop_nil_left :: xs:L a -> Valid @-}
-prop_nil_left     :: Eq a => L a -> Bool
-prop_nil_left xs = let tmp1 = append N xs in 
-                   let tmp2 = axiom_nil_left tmp1 in 
-                   tmp2 == xs
-
-
-{-@ assume axiom_nil_left :: xs:L a ->  {v:L a | v == xs &&  append N v == v} @-}
-axiom_nil_left :: L a ->  L a
-axiom_nil_left xs = xs
-
-
-{- axiom_nil_right :: xs:L a ->  {v:L a | v == xs &&  append v N == v} @-}
-axiom_nil_right :: L a ->  L a
-axiom_nil_right xs = xs
-
-
-{- axiom_assoc :: xs:L a -> ys: L a ->  zs: L a -> {v: Bool | append xs (append ys zs) == append (append xs ys) zs } @-}
-axiom_assoc :: L a ->  L a -> L a -> Bool 
-axiom_assoc xs ys zs = True 
diff --git a/tests/todo/Append0.hs b/tests/todo/Append0.hs
deleted file mode 100644
--- a/tests/todo/Append0.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Reverse where
-
-{-@ LIQUID "--no-termination" @-}
-
-import Prelude hiding (reverse)
-
-data List a = N | C a (List a)
-
-{-@ measure reverse @-}
-
-reverse :: List a -> List a -> List a
-reverse zs N        = zs 
-reverse zs (C y ys) = C y (reverse zs ys)
diff --git a/tests/todo/ApplicativeMaybe0.hs b/tests/todo/ApplicativeMaybe0.hs
deleted file mode 100644
--- a/tests/todo/ApplicativeMaybe0.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-{- LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-{-@ LIQUID "--fuel=10" @-}
-
-{-# LANGUAGE IncoherentInstances   #-}
-{-# LANGUAGE FlexibleContexts #-}
-module ListFunctors where
-
-import MaybeReflect0 
-import Prelude hiding (Maybe(..))
-import Language.Haskell.Liquid.ProofCombinators
-
-
-{-
-
-liquid: liquid: panic! (the 'impossible' happened)
-  (GHC version 7.10.3 for x86_64-apple-darwin):
-  lookupRdrNameInModule
-
-Please report this as a GHC bug:  http://www.haskell.org/ghc/reportabug
-
--}
-
-
-{-@ composition :: x:Maybe (a -> a)
-                -> y:Maybe (a -> a)
-                -> z:Maybe a
-                -> { seq x (seq y z)  = seq x (seq y z) } @-}
-composition :: Maybe (a -> a) -> Maybe (a -> a) -> Maybe a -> Proof
-composition = undefined 
-
-
-
diff --git a/tests/todo/ApplicativeMaybe1.hs b/tests/todo/ApplicativeMaybe1.hs
deleted file mode 100644
--- a/tests/todo/ApplicativeMaybe1.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-{- LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-{-@ LIQUID "--fuel=10" @-}
-
-{-# LANGUAGE IncoherentInstances   #-}
-{-# LANGUAGE FlexibleContexts #-}
-module ListFunctors where
-
-import MaybeReflect1
-import Prelude hiding (Maybe(..))
-import Language.Haskell.Liquid.ProofCombinators
-
-
--- This is OK
-
-{-@ compositionOK :: x:Maybe (a -> a)
-                -> y:Maybe (a -> a)
-                -> z:Maybe a
-                -> { seqm x (seqm y z)  = seqm x (seqm y z) } @-}
-
-compositionOK :: Maybe (a -> a) -> Maybe (a -> a) -> Maybe a -> Proof
-compositionOK = undefined 
-
-
-
--- But the following says "unbound symbol seqm"
--- Which is weird as seqm is OK in the above signature
-
-{-
-
-
- /Users/niki/liquidtypes/liquidhaskell/tests/todo/ApplicativeMaybe1.hs:28:20: Error: Bad Type Specification
- ListFunctors.composition :: x:(Maybe (a -> a)) -> y:(Maybe (a -> a)) -> z:(Maybe a) -> {VV : () | seqm (seqm (seqm (purem composem) x) y) z == seqm x (seqm y z)}
-     Sort Error in Refinement: {VV : Tuple | seqm (seqm (seqm (purem composem) x) y) z == seqm x (seqm y z)}
-     Unbound Symbol seqm
- Perhaps you meant: head, len, snd
-
--}
-
-{-@ composition :: x:Maybe (a -> a)
-                -> y:Maybe (a -> a)
-                -> z:Maybe a
-                -> { (seqm (seqm (seqm (purem composem) x) y) z)  = seqm x (seqm y z) } @-}
-
-composition :: Maybe (a -> a) -> Maybe (a -> a) -> Maybe a -> Proof
-composition = undefined 
-
-
-
-
-
-
-
diff --git a/tests/todo/Ast.hs b/tests/todo/Ast.hs
deleted file mode 100644
--- a/tests/todo/Ast.hs
+++ /dev/null
@@ -1,69 +0,0 @@
--- FAILING TEST: this test SHOULD FAIL BUT DOESN'T
--- issue #519
-
-{-# LANGUAGE DeriveFunctor #-}
-module Main where
-
-data AstIndex = IxExpr | IxType
-
-{-@ measure isExprIndex @-}
-isExprIndex :: AstIndex -> Bool
-isExprIndex IxExpr = True
-isExprIndex _      = False
-
-{-@ measure isTypeIndex @-}
-isTypeIndex :: AstIndex -> Bool
-isTypeIndex IxType = True
-isTypeIndex _      = False
-
-data AstF f = Lit Int    AstIndex
-            | Var String AstIndex
-            | App f f
-            | Paren f
-
-{-@
-  data AstF f <ix :: AstIndex -> Prop>
-    = Lit Int    (i :: AstIndex<ix>)
-    | Var String (i :: AstIndex<ix>)
-    | App (fn :: f) (arg :: f)
-    | Paren (ast :: f)
-  @-}
-
-{-@ type AstFE = AstF <{\ix -> isExprIndex ix}> @-}
-{-@ type AstFT = AstF <{\ix -> isTypeIndex ix}> @-}
-
-
--- Now lets tie the knot!
-
-newtype Fix f = In { out :: f (Fix f) }
-
-{-@ In :: f (Fix f) -> Fix f @-}
-{- In :: f (Fix f) -> Fix f @-}
-
-type Ast = Fix AstF
-
-{-@ type AstE = Fix AstFE @-}
-{-@ type AstT = Fix AstFT @-}
-
-{-@ astExprF :: AstF <{\ix -> isExprIndex ix}> (Fix (AstF <{\ix -> isExprIndex ix}>)) @-}
-astExprF :: AstF Ast
-astExprF = Lit 10 IxExpr
-
-{-@ astExpr :: Fix (AstF <{\ix -> isExprIndex ix}>)  @-}
-astExpr :: Ast
-astExpr = In astExprF
-
-
-{-@ astType :: AstT @-}
-astType :: Ast 
-astType = In (Lit 10 IxType)
-
-{-@ app :: forall <p :: AstIndex -> Prop>. Fix (AstF <p>) -> Fix (AstF <p>) -> Fix (AstF <p>) @-}
-app f x = In $ App f x
-
-{-@ id1 :: forall <p :: AstIndex -> Prop>. Fix (AstF <p>) -> Fix (AstF <p>)  @-}
-id1 :: Fix AstF -> Fix AstF
-id1 z = z
-
-{-@ wrong :: AstT @-}
-wrong = id1 astExpr
diff --git a/tests/todo/AxiomBug.hs b/tests/todo/AxiomBug.hs
deleted file mode 100644
--- a/tests/todo/AxiomBug.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Nats where
-
-{-@ poo :: {v:Int | v == 0 } @-}
-poo :: Int
-poo = 1
-
-data Peano = Z
-
-{-@ axiomatize zero @-}
-zero :: Peano
-zero = Z
-
-goober :: String
-goober = "I am a cat"
diff --git a/tests/todo/Axiomatize.hs b/tests/todo/Axiomatize.hs
deleted file mode 100644
--- a/tests/todo/Axiomatize.hs
+++ /dev/null
@@ -1,131 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE QuasiQuotes     #-}
-
-module Axiomatize where
-
-import Language.Haskell.TH
-import Language.Haskell.TH.Quote
-import Language.Haskell.TH.Syntax
-
-import Debug.Trace
-
-import Control.Applicative
-import Data.List ((\\))
-import Data.Maybe (fromMaybe)
-
-data Proof = Proof
-
-
-{-@ auto :: Int -> b:{v:Bool |Prop v} -> Proof @-}
-auto :: Int -> Bool -> Proof
-auto _ _ = Proof
-
-{-@ cases :: Int -> b:{v:Bool |Prop v} -> Proof @-}
-cases :: Int -> Bool -> Proof
-cases _ _ = Proof
-
-
-axiomatize :: Q [Dec] -> Q [Dec]
-axiomatize q = do d <- q
-                  let vts = [(x, t) | FunD x _ <- d, SigD y t <- d, x == y ]
-                  ds <- mapM (axiomatizeOne vts) d
-                  return $ concat ds
-
-axiomatizeOne :: [(Name, Type)] -> Dec -> Q [Dec]
-axiomatizeOne env f@(FunD name cs)
-  = do axioms <- makeAxioms (lookup name env) name cs
-       return $ f:axioms
-axiomatizeOne _ (SigD _ _)
-  = return []
-axiomatizeOne _ d
-  = error $ "axiomatizeOne: Cannot axiomatize" ++ show d
-
-makeAxioms :: Maybe Type -> Name -> [Clause] -> Q [Dec]
-makeAxioms t f cs = concat <$> mapM go cs
-  where
-    go :: Clause -> Q [Dec]
-    go (Clause ps (NormalB (CaseE e ms)) []) = mapM (makeAxiomMatch f ps e) ms
-    go (Clause ps (NormalB _) [])            = makeAxiomPattern t f ps
-    go d = error $ "makeAxioms: Cannot axiomatize\n" ++ show d
-
-
-
-makeAxiomPattern :: Maybe Type -> Name -> [Pat] -> Q [Dec]
-makeAxiomPattern t g ps
-  = do ifs <- mapM reify (fst <$> ds)
-       ff <- makeFun f xs <$> axiom_body
-       ft <- makeSigT t f ps
-       return $ [ff] ++ ft
-  where
-    f = mkName $ makeNamePattern g (fst <$> ds)
-    ds = [(n, dps) |  ConP n dps <- ps]
-    xs = [x | VarP x <- (ps ++ concat (snd <$> ds))]
-
-makeSigT Nothing _ _
-  = return []
-makeSigT (Just t) f ps
-  = do r <- [t|Proof|]
-       ifs <- mapM reify (fst . snd <$> ds)
-       let ts2 = concat $ zipWith makePTys ds ifs
-       return [SigD f $ mkUnivArrow (as, ts1 ++ ts2, r)]
-  where
-    (as, ts, _) = bkUnivFun t
-    ts1 = [t | (t, VarP _) <- zip ts ps]
-    ds  = [(t, (n, dps)) |  (t, ConP n dps) <- zip ts ps]
-
-makePTys :: (Type, (Name, [Pat])) -> Info -> [Type]
-makePTys (tr, (n, dps)) (DataConI m t _ _) | n == m
-  = (applySub θ <$> [t | (t, VarP _) <- zip ts dps])
-  where (as, ts, r) = bkUnivFun t
-        θ = unify r tr
-makePTys _ _ = error "makePTys: on invalid arguments"
-
-
-unify (VarT n) t = [(n,t)]
-unify t (VarT n) = [(n,t)]
-unify (AppT t1 t2) (AppT t1' t2') = unify t1 t1' ++ unify t2 t2'
-unify (ForallT _ _ t1) t2 = unify t1 t2
-unify t1 (ForallT _ _ t2) = unify t1 t2
-unify _ _  = []
-
-applySub :: [(Name, Type)] -> Type -> Type
-applySub θ t@(VarT v) = fromMaybe t (lookup v θ)
-applySub θ (AppT t1 t2) = AppT (applySub θ t1) (applySub θ t2)
-applySub θ (ForallT _ _ _) = error "applySub: TODO"
-applySub θ t = t
-
-
-bkUnivFun = go [] []
-  where
-    go as xs (ForallT vs _ t)   = go (as ++ vs) xs t
-    go as xs (AppT (AppT ArrowT tx) t) = go as (tx:xs) t
-    go as xs t                  = (as, reverse xs, t)
-
-mkUnivArrow (as, ts, r) = ForallT as [] $ mkArrow ts r
-  where
-    mkArrow []     r = r
-    mkArrow (t:ts) r = AppT (AppT ArrowT t) $ mkArrow ts r
-
-makeAxiomMatch :: Name -> [Pat] -> Exp -> Match -> Q Dec
-makeAxiomMatch g ps (VarE x) (Match (ConP dc dps) bd decs)
-  = makeFun f xs <$> axiom_body
-  where f  = mkName $ makeName g x dc
-        xs = [p | VarP p <- ps ++ dps] \\ [x]
-
-makeFun :: Name -> [Name] -> Exp -> Dec
-makeFun f xs bd = FunD f [Clause (VarP <$> xs) (NormalB bd) []]
-
-axiom_body :: Q Exp
-axiom_body = [|Proof|]
-
-sep = "_"
-mkSep :: [String] -> String
-mkSep []  = []
-mkSep [x] = x
-mkSep (x:xs) = x ++ sep ++ mkSep xs
-
-eq  = "is"
-makeName fname x dc
-  = mkSep ["axiom", nameBase fname, nameBase x, eq, nameBase dc]
-
-makeNamePattern fname dcs = mkSep $ ["axiom", nameBase fname] ++ (nameBase <$> dcs)
diff --git a/tests/todo/BadArguments.hs b/tests/todo/BadArguments.hs
deleted file mode 100644
--- a/tests/todo/BadArguments.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-import Prelude hiding (init)
-
-data List a = Emp               -- Nil
-            | (:::) a (List a)  -- Cons
-
-
-{-@ init :: (Int -> a) -> n:Nat -> List a n @-}
-init :: (Int -> a) -> Int -> List a
-init _ 0 = Emp
-init f n = f n ::: init f (n-1)
diff --git a/tests/todo/Box.hs b/tests/todo/Box.hs
deleted file mode 100644
--- a/tests/todo/Box.hs
+++ /dev/null
@@ -1,67 +0,0 @@
-module Box (Box, get, put, emp) where
-
-import Data.Dynamic
-
---------------------------------------------------------------------------------
-type Key    = Int 
-newtype Box = Box [(Key, Dynamic)]
-
---------------------------------------------------------------------------------
-emp :: Box
---------------------------------------------------------------------------------
-emp = Box []
-
-
---------------------------------------------------------------------------------
--- put :: k:Key -> v -> b:Box -> {bb:Box | bb = upd b k (Just 't)}   
-put :: (Typeable v) => Key -> v -> Box -> Box
---------------------------------------------------------------------------------
-put k v (Box kvs) = Box ((k, toDyn v) : kvs) 
-
-
---------------------------------------------------------------------------------
--- get :: k:Key -> {b:Box | sel b k = Just 'v} -> v   
-get :: (Typeable v) => Key -> Box -> v 
---------------------------------------------------------------------------------
-get k (Box kvs) = fromJust k $ fromDynamic =<< lookup k kvs
-
-
---------------------------------------------------------------------------------
--- | Helpers
---------------------------------------------------------------------------------
-
-{-@ fromJust :: Key -> {v: Maybe a | isJust v} -> a @-}
-fromJust     :: Key -> Maybe a -> a
-fromJust _ (Just x) = x
-fromJust k Nothing  = safeError $ "Error on key: " ++ show k
-
-{-@ safeError :: {v:_ | false} -> a @-}
-safeError = error
-
---------------------------------------------------------------------------------
--- | Unit Test 
---------------------------------------------------------------------------------
-
-b0 :: Box
-b0 = put 0 "Apple"
-   $ put 1 (4.5 :: Double)
-   $ put 2 ([1,2,3] :: [Int])
-   $ emp
-
-okFruit  :: String
-okFruit  = get 0 b0
-
-badFruit :: String
-badFruit = get 1 b0
-
-okPi     :: Double
-okPi     = get 1 b0
-
-badPi    :: Double
-badPi    = get 0 b0
-
----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------------------
-
--- Whats a good signature for CONCATENATING two `Box`?
diff --git a/tests/todo/CatMaybes.hs b/tests/todo/CatMaybes.hs
deleted file mode 100644
--- a/tests/todo/CatMaybes.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Fixme where
-
-
-import qualified Data.Set
-
-
-{-@ foo :: x:[a]  
-          -> {v:[a] | Set_sub (listElts v) (listElts x)}
-  @-}
-
-foo = catMaybes . map bar 
-  where
-    catMaybes [] = []
-    catMaybes (Nothing:xs) = catMaybes xs
-    catMaybes (Just x : xs) = x:catMaybes xs
-
-bar :: a -> Maybe a
-{-@ bar :: x:a -> Maybe {v:a | v = x } @-}
-bar x = if prop x then Nothing else Just x
-
-{-@ prop :: a -> Bool @-}
-prop :: a -> Bool
-prop = undefined
-
diff --git a/tests/todo/Class3.hs b/tests/todo/Class3.hs
deleted file mode 100644
--- a/tests/todo/Class3.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Class3 where
-
-{-@ class Pos s where
-      allPos :: x:s Int -> {v:Bool | Prop v <=> allPos x}
-  @-}
-class Pos s where
-  allPos :: s Int -> Bool
-
-instance Pos [] where
-  {-@ instance measure allPos :: [Int] -> Bool
-        allPos []     = (0 < 1)
-        allPos (x:xs) = (0 < 1)
-    @-}
-  allPos :: [a]
-  allPos []     = True
-  allPos (x:xs) = (x > 0) && (allPos xs)
diff --git a/tests/todo/Class4.hs b/tests/todo/Class4.hs
deleted file mode 100644
--- a/tests/todo/Class4.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Class3 where
-
-{-@ class Pos s where
-      allPos :: s a -> Bool
-  @-}
-class Pos s where
-  allPos :: s a -> Bool
diff --git a/tests/todo/Class4Import.hs b/tests/todo/Class4Import.hs
deleted file mode 100644
--- a/tests/todo/Class4Import.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-{-@ LIQUID "--no-termination" @-}
-
-module Class4Import where
-
-import Class4
-
-instance Frog () where
diff --git a/tests/todo/CmpBug.hs b/tests/todo/CmpBug.hs
deleted file mode 100644
--- a/tests/todo/CmpBug.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Fixme where
-
-zipWith :: (Char -> Char -> a) -> b -> b -> [a]
-zipWith f = zipWith' ((. w2c) . f . w2c)
-
-zipWith' :: (b -> b -> a) -> c -> c -> [a]
-zipWith' = undefined
-
-w2c :: a -> Char
-w2c = undefined
diff --git a/tests/todo/CountMonadMap.hs b/tests/todo/CountMonadMap.hs
deleted file mode 100644
--- a/tests/todo/CountMonadMap.hs
+++ /dev/null
@@ -1,138 +0,0 @@
-module Count () where
-
-import Prelude hiding (map)
-
-
-{-@ measure count :: Count a -> Int @-}
-
-data Count a = Count a
-
-instance Functor Count where
-	fmap = undefined
-instance Applicative Count where
-  pure  = undefined
-  (<*>) = undefined
-
-instance Monad Count where
-{-@
-instance Monad Count where
-  >>=    :: forall <r :: Count a -> Prop, p :: Count b -> Prop, q :: Count b -> Prop>.
-            {x::Count a <<r>>, y :: Count b <<p>>  |- {v:Count b | count v == count x + count y} <: Count b <<q>>}
-            Count a <<r>> -> (a -> Count b<<p>>) -> Count b <<q>> ;
-  >>     :: x:Count a -> y:Count b -> {v:Count b | count v == count x + count y};
-  return :: a -> {v:Count a | count v == 0 }
-@-}
-  return x        = let r = Count x in assertCount 0 (Count x)
-  (Count x) >>= f = let r = f x in assertCount (getCount (Count x) + getCount r) r
-  x >> y = assertCount (getCount x + getCount y) y
-  fail          = error
-
-
-
-{-@ assume assertCount :: i:Int -> x:Count a -> {v:Count a | v == x && count v == i } @-}
-assertCount :: Int -> Count a -> Count a
-assertCount _ x = x
-
-{-@ assume getCount :: x:Count a -> {v:Int | v == count x } @-}
-getCount :: Count a -> Int
-getCount _ = 0
-
-
-{-@ assume incr :: a -> {v:Count a | count v == 1 } @-}
-incr :: a -> Count a
-incr = Count
-
-{-@ assume unit :: {v:Count () | count v == 0 } @-}
-unit = Count ()
-
-
-type L a = [a]
-
-{-@  map :: forall <p :: Count b -> Prop, q :: Count [b] -> Prop, l :: L a  -> Prop >.
-            {x::a, xs::[a], y :: Count b <<p>>, ys :: {v:Count [b] | count v == len xs * count y} |- {v:Count [b] | count v == count y * (len xs + 1)} <: Count [b] <<q>>}
-            (a -> Count b <<p>>) -> xs:L a -> Count {v:[b] | len v == len xs } <<q>>
-@-}
-
-map :: (a -> Count b) -> [a] -> Count [b]
--- map f []     = return []
-
-
-{-
-
-y :: Count b 
-ys :: {c:Count {v:[b] | len v == len xs} | count c == (count y) * (len xs) }
-
--}
-
-map f (x:xs) = 
-  let y  = f x   
-      ys = map f xs          -- count v == len xs * count y 
-      -- g y ys = return (y:ys) -- count v == 0 
-      -- h z = ys >>= (g xs y ys z)       -- count v == (len xs * count y) +count y
-  in  y >>= (h xs y ys)
-
-
-{-@ g :: xs:[a] -> y:Count b -> {v:Count [b] | count v == len xs * count y} -> z:b -> zs:[b] -> {v:Count {v:[b] | len v == len zs + 1} | count v == 0 } @-}
-g :: [a] -> Count b -> Count [b] -> b -> [b] -> Count [b]
-g _ _ _ y ys = return (y:ys)
-
-
-{-@ h :: xs:[a] -> y:Count b -> ys:{v:Count [b] | count v == len xs * count y} -> z:b -> {v:Count [b] | count v == (len xs) * (count y)} @-}
-h :: [a] -> Count b -> Count [b] -> b ->  Count [b]
-h xs y ys z = ys >>= (g xs y ys z)
-
-
-{-
-  do y <- f x
-     ys <- map f xs 
-     -- {v: ??? | count v == len xs * count c }
-     return (y:ys)
-
--}
-
-{-
-map f (x:xs) = 
-  let y  = f x 
-      ys = map f xs
-  in y:ys     
-
--}
-
-
---             {xs :: L a <<l>>, ys:: {v:[a] | len v == 0 && v == xs}|- {v:Count [b] | count v == 0} <: Count [b] <<q>>}
-
-{-@ map' :: c:Count b -> xs:[a] -> {v:Count [b] | count v == (len xs) * (count c)} @-}
-map' :: Count b -> [a] -> Count [b]
-map' f []     = return []
-map' f (x:xs) = 
-  do y <- f 
-     ys <- map' f xs 
-     return (y:ys)
-
-
-{-@ foo :: a -> {v:Count a | count v == 0 }  @-}
-foo :: a -> Count a
-foo y = return y
-
-{-@ test1 :: {v:Count () | count v == 0 } @-}
-test1 :: Count ()
-test1 = do
-  unit
-  unit
-  unit
-
-{-@ test2 :: {v:Count () | count v == 1 } @-}
-test2 = do
-  unit
-  y <- incr ()
-  unit
-  foo y
-  unit
-
-{-@ test3 :: {v:Count () | count v == 2 } @-}
-test3 = do
-  unit
-  unit
-  incr ()
-  incr ()
-  unit
diff --git a/tests/todo/DB0.hs b/tests/todo/DB0.hs
deleted file mode 100644
--- a/tests/todo/DB0.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "totality" @-}
-
-module DataBase (values) where
-
-{-@ values :: forall <range :: key -> val -> Prop>.
-  k:key -> [Dict <range> key val]  -> [val<range k>] @-}
-values :: key -> [Dict key val]  -> [val]
-values k = map go
-  where
-    go (D _ f) = f k
-
-data Dict key val = D {ddom :: [key], dfun :: key -> val}
-{-@ ddom :: forall <range :: key -> val -> Prop>.
-           x:Dict <range> key val  -> [key]
-  @-}
-
-{-@ dfun :: forall <range :: key -> val -> Prop>.
-               x:Dict <range> key val
-            -> i:key -> val<range i>
-  @-}
-
-{-@ data Dict key val <range :: key -> val -> Prop>
-  = D ( ddom :: [key])
-      ( dfun :: i:key -> val<range i>)
-  @-}
diff --git a/tests/todo/DBMovies0.hs b/tests/todo/DBMovies0.hs
deleted file mode 100644
--- a/tests/todo/DBMovies0.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-module MovieClient where
-
-
-data Tag 
-data Value
-
-
-type Table t v = [Dict t v]
-
-data Dict key val = D {ddom :: [key], dfun :: key -> val}
-
-
-{-@ fromList :: forall <range :: key -> val -> Prop, p :: Dict key val -> Prop>.
-                x:[Dict <range> key val <<p>>] -> {v:[Dict <range> key val <<p>>] | x = v}
-  @-}
-fromList :: [Dict key val] -> Table key val
-fromList xs = xs
-
-
-{-@ data Dict key val <range :: key -> val -> Prop>
-  = D ( ddom :: [key])
-      ( dfun :: i:key -> val<range i>)
-  @-}
-
-
-{-@ type Movies      = [MovieScheme] @-}
-{-@ type MovieScheme = {v:Dict <{\t val -> (t ~~ "year")}> Tag Value | true } @-}
-
-type Movies    = Table Tag Value
-
-movies :: Movies
-{-@ movies :: Movies @-}
-movies = fromList []
-
-y = "year"
diff --git a/tests/todo/DerivingRead.hs b/tests/todo/DerivingRead.hs
deleted file mode 100644
--- a/tests/todo/DerivingRead.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-{-@ checkNat :: Nat -> Int @-} 
-checkNat :: Int -> Int 
-checkNat x = x
-
-unsound :: Int
-unsound = checkNat (-1)
-
-
-data TestBS = TestBS Int deriving (Read)
-
--- | Possible fixes
--- | 1. add trust-internals flag to ignore the deriving instances
--- | 2. delete the deriving (Read) instance
diff --git a/tests/todo/DiffCheck.hs b/tests/todo/DiffCheck.hs
deleted file mode 100644
--- a/tests/todo/DiffCheck.hs
+++ /dev/null
@@ -1,68 +0,0 @@
-{- TODO: We need an automated test for DiffCheck. That said, our current
-   testing infrastructure isn't set up to test internals, so I'd have to
-   jimmy-rig it to work. Meanwhile, it has been decided (rightfully) that
-   the mechanism I had planned on using was an affront to all that is good,
-   and was fixed as a bug. So this test is now pointless. That said, it
-   should serve as the basis for a good test in the future, so I think we
-   should perserve it for posterity. What follows is my original plan for
-   this test.
-
-   Test diffcheck. Has been rigged with a saved diff in .liquid in the
-   following ways:
-
-   1) goodFn has changed from the saved diff.
-   2) badFn has not changed from the saved diff.
-   3) badFn has violated the invariant of badDep.
-
-   What should happen is: LH will test this file, and will test the
-   goodFn and amazingAlgorithm binders. It will see that goodDep has
-   not changed and is protected by a liquid type signature, and not
-   check it. It will see that badFn has not changed, and is protected
-   by a liquid type signature and not check it. LH will return safe,
-   having checked only goodFn and amazingAlorithm if the diff logic
-   works. If something is broken, it will check badFn and return unsafe. -}
-
-{-@ LIQUID "--diffcheck" @-}
-
-module DiffCheck where
-
-{-@ type Zero = {v:Int | v == 0} @-}
-{-@ type One = {v:Int | v == 1} @-}
-{-@ type Two = {v:Int | v == 2} @-}
-{-@ type Three = {v:Int | v == 3} @-}
-
-{-@ badFn :: Zero -> Bool @-}
-badFn :: Int -> Bool
-badFn 0 = badDep 0
-badFn _ = False
-
-{-@ goodFn :: One -> Bool @-}
-goodFn :: Int -> Bool
-goodFn 1 = goodDep 2 -- I changed!
-goodFn _ = False
-
-{-@ goodDep :: Two -> Bool @-}
-goodDep :: Int -> Bool
-goodDep 2 = True
-goodDep _ = False
-
-{-@ badDep :: Three -> Bool @-}
-badDep :: Int -> Bool
-badDep 3 = True
-badDep _ = False
-
-amazingAlgorithm :: (Bool, Bool)
-amazingAlgorithm = (goodFn 1, badFn 0)
-
--- These guys aren't involved in the above, and should be ignored
--- by DiffCheck
-
-{-@ innocentBystander :: One -> Bool @-}
-innocentBystander :: Int -> Bool
-innocentBystander 1 = goodSamaritan 1
-innocentBystander _ = True
-
-{-@ goodSamaritan :: One -> Bool @-}
-goodSamaritan :: Int -> Bool
-goodSamaritan 1 = True
-goodSamaritan _ = False
diff --git a/tests/todo/Eff0.hs b/tests/todo/Eff0.hs
deleted file mode 100644
--- a/tests/todo/Eff0.hs
+++ /dev/null
@@ -1,16 +0,0 @@
--- | Trivial test for effects
-
-module Eff0 (test0) where
-
-import EffSTT
-
-
-{-@ type IntN N = {v:Int | v = N} @-}
-
-{-@ test0 :: STT (IntN {10}) @-}
-test0 :: STT Int
-test0 =
-  newPtr 0       `bind` \p  ->
-  writePtr p 10  `bind` \_  ->
-  readPtr p      `bind` \v1 ->
-  return v1
diff --git a/tests/todo/Eff1.hs b/tests/todo/Eff1.hs
deleted file mode 100644
--- a/tests/todo/Eff1.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- | Trivial test for effects
-
-module Eff0 (test0, test1) where
-
-import EffSTT
-
-{-@ type IntN N = {v:Int | v = N} @-}
-
-{-@ test0 :: STT (IntN {10}) @-}
-test0 :: STT Int
-test0 = do p  <- newPtr 0
-           _  <- writePtr p 10
-           v1 <- readPtr p
-           return v1
-
-{-@ test1 :: STT (IntN {0}, IntN {10}) @-}
-test1 :: STT (Int, Int)
-test1 = do p  <- newPtr   0
-           v0 <- readPtr  p
-           _  <- writePtr p 10
-           v1 <- readPtr  p
-           return (v0, v1)
diff --git a/tests/todo/Eff2.hs b/tests/todo/Eff2.hs
deleted file mode 100644
--- a/tests/todo/Eff2.hs
+++ /dev/null
@@ -1,22 +0,0 @@
--- | Trivial test for effects
-
-module Eff0 (test0, test1) where
-
-import Data.IORef
-
-{-@ type IntN N = {v:Int | v = N} @-}
-
-{-@ test0 :: IO (IntN {0}) @-}
-test0 :: IO Int
-test0 = do p  <- newIORef   0
-           _  <- writeIORef p 10
-           v1 <- readIORef  p
-           return v1
-
-{-@ test1 :: IO (IntN {0}, IntN {10}) @-}
-test1 :: IO (Int, Int)
-test1 = do p  <- newIORef   0
-           v0 <- readIORef  p
-           _  <- writeIORef p 10
-           v1 <- readIORef  p
-           return (v0, v1)
diff --git a/tests/todo/EffSTT.hs b/tests/todo/EffSTT.hs
deleted file mode 100644
--- a/tests/todo/EffSTT.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-module EffSTT (
-
-  -- * Basic STT type and instances
-    STT
-  , Ptr
-    
-  -- * Monadic operators
-  , ret
-  , bind
-
-  -- * Create a reference
-  , newPtr
- 
-  -- * Read a reference
-  , readPtr
-
-  -- * Write a reference
-  , writePtr
-    
-  )where
-
-import qualified Data.Map as M
-
-type State  = M.Map Int Int
-newtype Ptr = Ptr Int
-data STT a  = STT (State -> (a, State)) 
-
-----------------------------------------------------------------
--- | Accessing State via Ptr
-----------------------------------------------------------------
-
-{-@ newPtr :: forall <H :: HProp>.
-                 n:Int
-              -> STT <{H}, {\l -> H * l := n}> Ptr
-  @-} 
-newPtr   :: Int -> STT Ptr
-newPtr n = STT $ \m0 ->
-  let p  = M.size m0
-      m1 = M.insert p n m0
-  in
-      (Ptr p, m1)
-
-{-@ readPtr :: forall <p :: Int -> Prop, H :: HProp>.
-                  l:Ptr
-               -> STT <{H * l := Int<p>}, {\_ -> H * l := Int<p>}> Int<p>
-  @-}
-readPtr         :: Ptr -> STT Int
-readPtr (Ptr p) = STT $ \m0 ->
-  (M.findWithDefault (error "readPtr DIES") p m0, m0)
-
-
-{-@ writePtr :: forall <p :: Int -> Prop, H :: HProp>.
-                   l:Ptr
-                -> Int<p>
-                -> STT <{H * l := Int}, {\_ -> H * l := Int<p>}> () 
-  @-} 
-writePtr :: Ptr -> Int -> STT () 
-writePtr (Ptr p) n = STT $ \m0 ->
-  ((), M.insert p n m0)
-
-----------------------------------------------------------------
--- | Monad instance for STT
-----------------------------------------------------------------
-
-instance Monad STT where
-  return = ret
-  (>>=)  = bind
-
-ret   :: a -> STT a
-ret x = STT (\s0 -> (x, s0))
-
-bind :: STT a -> (a -> STT b) -> STT b
-bind (STT f) k = STT $ \s0 ->
-  let (x, s1) = f s0
-      STT fk  = k x
-  in
-      fk s1
-
-----------------------------------------------------------------
diff --git a/tests/todo/Ensure.hs b/tests/todo/Ensure.hs
deleted file mode 100644
--- a/tests/todo/Ensure.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Ensure where
-
-{-@ qualif Diff(v:int,l:int,d:int): v = l-d @-}
-
-{-@ encodeUtf8 :: Nat -> Nat @-}
-encodeUtf8 :: Int -> Int
-encodeUtf8 len = start 1 0
-  where
-    start size n0 = go (len-n0) n0
-      where
-        go :: Int -> Int -> Int
-        go d n
-          | n == len  = n
-          | otherwise = ensure 1 (\n -> go (d-1) (n+1))
-              where
-                ensure :: Int -> (Int -> Int) -> Int
-                ensure k cont
-                  | size-k >= n = cont n
-                  | otherwise   = start (size*2) n
diff --git a/tests/todo/EnumFromTo.hs b/tests/todo/EnumFromTo.hs
deleted file mode 100644
--- a/tests/todo/EnumFromTo.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Foo where
-
-new :: l -> [i] -> [sd] -> ([i], [(Int, sd)])
-new l wids m | not (null wids) && length m <= length wids && not (null m)
-  = (unseen, visi)
-  where (seen,unseen) = splitAt (length m) wids
-        (cur:visi)    = [ (s, sd) |  (s, sd) <- zip [0..(length m) ] m ]
-                -- now zip up visibles with their screen id
-new _ _ _ = error "non-positive argument to StackSet.new"
-
-foo :: Num a => a -> [a]
-foo = undefined
-{-@ assume foo :: Num a => x:a -> {v:[a] | (len v) = x} @-}
diff --git a/tests/todo/Equational.hs b/tests/todo/Equational.hs
deleted file mode 100644
--- a/tests/todo/Equational.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-module Equational where
-
-
-import Language.Haskell.Liquid.Prelude
-import Axiomatize
-
-
-{-@ toProof :: l:a -> r:{a | l == r} -> {v:Proof | l == r } @-}
-toProof :: a -> a -> Proof
-toProof x y = Proof
-
-
-{-@ (===) :: l:a -> r:a -> {v:Proof | l = r} -> {v:a | v = l } @-}
-(===) :: a -> a -> Proof -> a
-(===) x y _ = y
-
-
-
-{-@ type Equal X Y = {v:Proof | X == Y} @-}
-
-{-@ bound chain @-}
-chain :: (Proof -> Bool) -> (Proof -> Bool) -> (Proof -> Bool)
-      -> Proof -> Proof -> Proof -> Bool
-chain p q r = \v1 v2 v3 -> p v1 ==> q v2 ==> r v3
-
-{-@  by :: forall <p :: Proof -> Prop, q :: Proof -> Prop, r :: Proof -> Prop>.
-                 {vp::Proof<p> |- Proof<q> <: Proof<r> }
-                 Proof<p> -> Proof<q> -> Proof<r>
-@-}
-by :: Proof -> Proof -> Proof
-by _ r = r
-
-{-@ refl :: x:a -> Equal x x @-}
-refl :: a -> Proof
-refl x = Proof
diff --git a/tests/todo/FixCrash.hs b/tests/todo/FixCrash.hs
deleted file mode 100644
--- a/tests/todo/FixCrash.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Interpreter where 
-
-{- The following code crashes fixpoint see issue 
-https://github.com/ucsd-progsys/liquid-fixpoint/issues/77
--}
-
-data List a = Nil 
-
-{-@ measure progDenote :: List Int -> Maybe (List Int) @-}
-{-@ compile :: {v:Bool | (progDenote Nil) == Nothing } @-}
-compile :: Bool
-compile = undefined 
diff --git a/tests/todo/FldBug.hs b/tests/todo/FldBug.hs
deleted file mode 100644
--- a/tests/todo/FldBug.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Foo where
-
-{-@ data Foo = F { thing :: Nat } @-}
-data Foo = F { thing :: Int }
-
-
-{-@ bar :: Foo -> Nat @-}
-bar z = thing z
-
-
diff --git a/tests/todo/Foo.hs b/tests/todo/Foo.hs
deleted file mode 100644
--- a/tests/todo/Foo.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-{-@ LIQUID "--short-names" @-}
-{-@ LIQUID "--no-termination" @-}
-
-module Foo where
-
-import Prelude hiding (map, reverse)
-
-
-baz :: Int
-baz = 1
-
-{-@ poo :: ListN Int 1 @-}
-poo = [baz, baz]
-
-reverse :: [a] -> [a]
-
-{-@ measure size @-}
-size :: [a] -> Int
-size []     = 0
-size (_:xs) = size xs + 1
-
-{-@ type List  a    = [a]                    @-}
-{-@ type ListN a N  = {v:[a] | size v == N } @-}
-{-@ type ListX a Xs = ListN a {size Xs}      @-}
-
-{-@ reverse :: xs:List a -> ListN a {size xs} @-}
-reverse           = go []
-  where
-    {-@ go :: acc:_ -> xs:_ -> ListN a {1 + size acc + size xs} @-}
-    go acc []     = acc
-    go acc (x:xs) = go (x:acc) xs
diff --git a/tests/todo/GhcListSort.hs b/tests/todo/GhcListSort.hs
deleted file mode 100644
--- a/tests/todo/GhcListSort.hs
+++ /dev/null
@@ -1,101 +0,0 @@
-
----------------------------------------------------------------------------
----------------------------  Official GHC Sort ----------------------------
----------------------------------------------------------------------------
-
-sort1 = sortBy1 compare
-sortBy1 cmp = mergeAll . sequences
-  where
-    sequences (a:b:xs)
-      | a `cmp` b == GT = descending b [a]  xs
-      | otherwise       = ascending  b (a:) xs
-    sequences xs = [xs]
-
-    descending a as (b:bs)
-      | a `cmp` b == GT = descending b (a:as) bs
-    descending a as bs  = (a:as): sequences bs
-
-    ascending a as (b:bs)
-      | a `cmp` b /= GT = ascending b (\ys -> as (a:ys)) bs
-    ascending a as bs   = as [a]: sequences bs
-
-    mergeAll [x] = x
-    mergeAll xs  = mergeAll (mergePairs xs)
-
-    mergePairs (a:b:xs) = merge a b: mergePairs xs
-    mergePairs xs       = xs
-
-    merge as@(a:as') bs@(b:bs')
-      | a `cmp` b == GT = b:merge as  bs'
-      | otherwise       = a:merge as' bs
-    merge [] bs         = bs
-    merge as []         = as
-
----------------------------------------------------------------------------
-------------------- Mergesort ---------------------------------------------
----------------------------------------------------------------------------
-
-sort2 l = mergesort compare l
-sortBy2 cmp l = mergesort cmp l
-
-mergesort :: (a -> a -> Ordering) -> [a] -> [a]
-mergesort cmp = mergesort' cmp . map wrap
-
-mergesort' :: (a -> a -> Ordering) -> [[a]] -> [a]
-mergesort' _   [] = []
-mergesort' _   [xs] = xs
-mergesort' cmp xss = mergesort' cmp (merge_pairs cmp xss)
-
-merge_pairs :: (a -> a -> Ordering) -> [[a]] -> [[a]]
-merge_pairs _   [] = []
-merge_pairs _   [xs] = [xs]
-merge_pairs cmp (xs:ys:xss) = merge cmp xs ys : merge_pairs cmp xss
-
-merge :: (a -> a -> Ordering) -> [a] -> [a] -> [a]
-merge _   [] ys = ys
-merge _   xs [] = xs
-merge cmp (x:xs) (y:ys)
- = case x `cmp` y of
-        GT -> y : merge cmp (x:xs)   ys
-        _  -> x : merge cmp    xs (y:ys)
-
-wrap :: a -> [a]
-wrap x = [x]
-
-----------------------------------------------------------------------
--------------------- QuickSort ---------------------------------------
-----------------------------------------------------------------------
-
-sort3 = qsort compare
-
--- qsort is stable and does not concatenate.
-qsort :: (a -> a -> Ordering) -> [a] -> [a] -> [a]
-qsort _   []     r = r
-qsort _   [x]    r = x:r
-qsort cmp (x:xs) r = qpart cmp x xs [] [] r
-
--- qpart partitions and sorts the sublists
-qpart :: (a -> a -> Ordering) -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-qpart cmp x [] rlt rge r =
-    -- rlt and rge are in reverse order and must be sorted with an
-    -- anti-stable sorting
-    rqsort cmp rlt (x:rqsort cmp rge r)
-qpart cmp x (y:ys) rlt rge r =
-    case cmp x y of
-        GT -> qpart cmp x ys (y:rlt) rge r
-        _  -> qpart cmp x ys rlt (y:rge) r
-
--- rqsort is as qsort but anti-stable, i.e. reverses equal elements
-rqsort :: (a -> a -> Ordering) -> [a] -> [a] -> [a]
-rqsort _   []     r = r
-rqsort _   [x]    r = x:r
-rqsort cmp (x:xs) r = rqpart cmp x xs [] [] r
-
-rqpart :: (a -> a -> Ordering) -> a -> [a] -> [a] -> [a] -> [a] -> [a]
-rqpart cmp x [] rle rgt r =
-    qsort cmp rle (x:qsort cmp rgt r)
-rqpart cmp x (y:ys) rle rgt r =
-    case cmp y x of
-        GT -> rqpart cmp x ys rle (y:rgt) r
-        _  -> rqpart cmp x ys (y:rle) rgt r
-
diff --git a/tests/todo/ImportBound.hs b/tests/todo/ImportBound.hs
deleted file mode 100644
--- a/tests/todo/ImportBound.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module ImportBound where
-
-data Proof
-
-{-@ bound chain @-}
-chain :: (Proof -> Bool) -> (Proof -> Bool) -> (Proof -> Bool)
-      -> Proof -> Bool
-chain p q r = \v -> p v
-
-{-@  by :: forall <p :: Proof -> Prop, q :: Proof -> Prop, r :: Proof -> Prop>.
-                 (Chain p q r) => Proof<p> -> Proof<q> -> Proof<r>
-@-}
-by :: Proof -> Proof -> Proof
-by _ r = r
diff --git a/tests/todo/ImportedNumericInstances.hs b/tests/todo/ImportedNumericInstances.hs
deleted file mode 100644
--- a/tests/todo/ImportedNumericInstances.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module ImportedNumericInstances where
-
-{- embed System.Posix.Types.Fd as int @-}
-
-import System.Posix.Types (Fd)
--- Fd is a data type that is imported to be a num instance
-
-testToFix :: Maybe [a] -> Fd 
-testToFix =  maybe 0 (fromIntegral . getFoo)
-
-
-testOK :: Maybe [a] -> Boo 
-testOK =  maybe 0 (fromIntegral . getFoo)
-
-instance Num Boo where
-data Boo 
-
-{-@ getFoo :: {v:[a] | 0 <= len v}  -> Int @-} 
-getFoo :: [a] -> Int 
-getFoo = undefined 
diff --git a/tests/todo/Incr.hs b/tests/todo/Incr.hs
deleted file mode 100644
--- a/tests/todo/Incr.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Incr (incr) where 
-
-
-{-@ axiomatize incr @-}
-incr :: Int -> Int
-incr x = x + 1
diff --git a/tests/todo/InfiniteLists.hs b/tests/todo/InfiniteLists.hs
deleted file mode 100644
--- a/tests/todo/InfiniteLists.hs
+++ /dev/null
@@ -1,50 +0,0 @@
-module Fixme where
-
-import Prelude hiding (repeat, take, head)
-import Language.Haskell.Liquid.Prelude
-
-
-{-@ LIQUID "--no-termination" @-}
-
-{-@ measure inf :: [a] -> Prop 
-    inf([])   = false
-    inf(x:xs) = (inf xs)
-  @-}
-
-
--- or any pred *implied* by (inf v)
-{-@ repeat :: a -> {v:[a] | (inf v)} @-}
-repeat :: a -> [a]
-repeat x = x : repeat x
-
-{-@ repeat' :: l:Int -> a -> {v:[a] | (len v) = l} @-}
-repeat' :: Int -> a -> [a]
-repeat' k x = x : repeat' (k-1) x
-
-
-{-@ take :: xs:[a] -> {v:Nat|((inf xs) || (v < (len xs))) } -> [a] @-}
-take :: [a] -> Int -> [a]
-take [] _ = liquidError "take"
-take _ 0 = []
-take (x:xs) i = x : take xs (i-1)
-
-
-{-@ head :: {v:[a] | (((len v) > 0) || (inf v)) } -> a @-}
-head :: [a] -> a
-head (x:_) = x
-head _     = liquidError "head"
-
-
-
-good1 = let x = head (repeat 0) in liquidAssert (x == 0)
-good2 = let x = head ([0, 1]) in liquidAssert (True) -- x == 0
-bad1  = let x = head (repeat 0) in liquidAssert (x == 12)
-bad2  = let x = head [] in liquidAssert (x == 12)
-
-
-foo = take (repeat 0) 5
-
--- bar = (\x -> liquidAssert (False)) (repeat 0)
-
-
-
diff --git a/tests/todo/InlineMeasure.hs b/tests/todo/InlineMeasure.hs
deleted file mode 100644
--- a/tests/todo/InlineMeasure.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-
-module InlineMeasures where
-
-{-@ measure mmax @-}
-mmax       :: (Int, Int) -> Int
-mmax (x,y) = if x > y then x else y
-
-{-@ measure foo @-}
-foo        :: [Int] -> Int
-foo []     = 0
-foo (x:xs) = if (x > 0) then x else 0 
-
-{-@ measure bar @-}
-bar        :: [Int] -> Int
-bar []     = 0
-bar (x:xs) = y + z where y = x
-                         z = 10
-
-{-@ measure llen @-}
-llen        :: [a] -> Int
-llen []     = 0
-llen (x:xs) = 1 + z where z = llen xs
-
-{-@ goo :: _ -> xs:_ -> {v:_ | llen v = llen xs } @-}
-goo f []     = []
-goo f (x:xs) = f x : goo f xs 
diff --git a/tests/todo/IntInvariants.hs b/tests/todo/IntInvariants.hs
deleted file mode 100644
--- a/tests/todo/IntInvariants.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Invariant where
-
-
-{-@ invariant {v : Int | v > 0 } @-}
-
-
--- This is unsoundly safe
-
-{-@ bar :: Nat @-}
-bar :: Int
-bar = let x = -5 in x
-
--- but this is not
---
-{-@ foo :: Nat @-}
-foo :: Int
-foo = -5
-
diff --git a/tests/todo/Interpreter.hs b/tests/todo/Interpreter.hs
deleted file mode 100644
--- a/tests/todo/Interpreter.hs
+++ /dev/null
@@ -1,126 +0,0 @@
-module Interpreter where 
-{-@ LIQUID "--totality" @-}
-data BinOp a = Plus | Times
-
-data Exp a  = EConst Int | EBinOp (BinOp a) (Exp a) (Exp a)
-
-data Instr a = IConst Int | IBinOp (BinOp a)
-
-data List a = Nil | Cons a (List a)
-
-
-{-@ autosize Prog @-}
-data Prog a = Emp | PInst (Instr a) (Prog a)
-type Stack = List Int
-
-data SMaybe a = SNothing a | SJust a
-
-{-@ measure binOpDenote @-}
-binOpDenote :: Int -> Int -> BinOp a -> Int 
-binOpDenote x y Plus  = (x+y)
-binOpDenote x y Times = (x*y)
-
-{-@ measure expDenote @-}
-expDenote :: Exp a -> Int 
-expDenote (EConst n)       = n
-expDenote (EBinOp b e1 e2) = binOpDenote (expDenote e1) (expDenote e2) b
-
-{-@foo :: s:Stack -> {v:SMaybe Stack| v = SNothing s || v = SJust s } @-}
-foo :: Stack -> SMaybe Stack
-foo = undefined 
-
-{-@ measure instrDenote @-}
-instrDenote :: Stack -> Instr a -> SMaybe Stack
-{-@ instrDenote :: s:Stack -> i:{v:Instr a | isIBinOp v => lenL s >= 2} 
-                -> {v:SMaybe {st:Stack | if (isIBinOp i) then (lenL st = lenL s - 1) else (lenL st = lenL s + 1)} | v = instrDenote s i} @-}
-instrDenote s (IConst n) = SJust (Cons n s)
-instrDenote s (IBinOp b) = 
-	let x  = headL s in 
-	let s1 = tailL s in 
-	let y  = headL s1 in 
-	let s2 = tailL s1 in 
-	SJust (Cons (binOpDenote x y b) s2)
-
-
-{-@ invariant {v:Prog a | binOps v >= 0} @-}
-{-@ measure binOps @-}
-binOps :: Prog a -> Int 
-binOps Emp = 0 
-binOps (PInst x xs) = if isIBinOp x then 1 + (binOps xs) else binOps xs 
-
-
-
-{- measure progDenote :: Stack -> Prog -> SMaybe Stack @-}
-{-@ measure progDenote @-}
-{-@ Decrease progDenote 2 @-}
-progDenote :: Stack -> Prog a -> SMaybe Stack
-{-@ progDenote :: s:Stack -> p:{v:Prog a | lenL s >= 2 * binOps v }  -> {v: SMaybe Stack | v = progDenote s p} @-}
-progDenote s Emp = SJust s
-progDenote s (PInst x xs) = SNothing s 
-{-
-progDenote s (PInst x xs) | SJust s' <- instrDenote s x = progDenote s' xs
-                          | otherwise                   = SNothing s
--}
-
-{-
-{- compile :: e:Exp -> {v:Prog | (progDenote Nil v) == Nothing } @-}
-{- compile :: e:Exp -> {v:Prog | (progDenote Nil v) == Just (Cons (expDenote e) Nil)} @-}
-compile :: Exp -> Prog
-compile (EConst n)       = single (IConst n)  
-compile (EBinOp b e1 e2) = compile e2 `append` compile e1 `append` (single $ IBinOp b) 
-
--}
-
-
-
--- Hard Wire the measures so that I can provide exact types for Nil and Cons
-{-@ SNothing :: s:s -> {v:SMaybe s | v = SNothing s && not (isSJust v)} @-}
-{-@ SJust    :: s:s -> {v:SMaybe s | v = SJust s && (isSJust v) && (fromSJust v = s)} @-}
-{-@ Cons     :: x:a -> xs:List a -> {v:List a | v = Cons x xs && headL v = x && tailL v = xs && lenL v = 1 + lenL xs} @-}
-{-@ Nil      :: {v:List a | v = Nil  && lenL v = 0} @-}
-iconst = IConst
-
-
-{-@ measure isSJust :: SMaybe a -> Prop @-}
-{-@ isSJust :: x:SMaybe a -> {v:Bool | Prop v <=> isSJust x}  @-}
-isSJust (SJust _) = True 
-isSJust (SNothing _ ) = False
-
-{-@ measure fromSJust :: SMaybe a -> a @-}
-{-@ fromSJust :: x:{v:SMaybe a | isSJust v} -> {v:a | v = fromSJust x}  @-}
-fromSJust (SJust x) = x
-
-{-@ measure isIBinOp @-}
-isIBinOp (IBinOp _) = True
-isIBinOp _          = False
-
-{-@ measure headL :: List a -> a @-}
-{-@ headL :: xs:{v:List a | lenL v > 0} -> {v:a | v = headL xs} @-}
-headL :: List a -> a
-headL (Cons x _) = x
-
-{-@ measure tailL :: List a -> List a @-}
-{-@ tailL :: xs:{v:List a | lenL v > 0} -> {v: List a | v = tailL xs && lenL v = lenL xs - 1} @-}
-tailL :: List a -> List a
-tailL (Cons _ xs) = xs
-
-
-{-@ measure lenL :: List a -> Int @-}
-{-@ invariant {v:List a | lenL v >= 0 } @-}
-lenL :: List a -> Int 
-lenL (Cons _ xs) = 1 + lenL xs 
-lenL Nil         = 0 
-
-
-
--- List operations
-{-@ autosize Exp @-}
-{-@ data List [lenL] @-}
-
-(Cons x xs) `append` ys = cons x $ append xs ys
-Nil         `append` ys = ys 
-
-emp      = Nil
-single x = Cons x Nil
-cons x xs = Cons x xs
-
diff --git a/tests/todo/InvBug.hs b/tests/todo/InvBug.hs
deleted file mode 100644
--- a/tests/todo/InvBug.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Isort () where
-
-data F = F 
-
-{-@ measure lenF @-}
-lenF :: F -> Int
-lenF F = 0
-
-
-{- some interaction needed to check the def of lenF satisfies the invariant! -}
-
-{-@ using (F) as  {v: F | (lenF v > 0)} @-}
-
-{-
-
-Mt has type 
-
-  {v:F | lenF v == 0  }  -- from measure 
-  {v:F | lenF v > 0}  -- from invariant
-
-which is inconsistent !
--}
-
-{-@ insert :: F -> {v: F |  false }  @-}
-insert :: F -> F
-insert F = F
-
diff --git a/tests/todo/Invariants.hs b/tests/todo/Invariants.hs
deleted file mode 100644
--- a/tests/todo/Invariants.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Invariant where
-
-data F a = F {fx :: a, fy :: a, fzz :: a} 
-         | G {fx :: a, fy :: a}
-
-{-@ data F a = F {fx :: a, fy :: a, fz :: a}
-             | G {fx :: a, fy :: a} 
-  @-}
-
-{-@ invariant {v : F a | (fy v) = (fx v) } @-}
-
--- F :: x:a -> y:a -> z:a -> { prove this } -> F a
-
-
-bar :: a -> F a -> F a
-bar _ f@(F x y z) = f{fx = y}
diff --git a/tests/todo/Invariants1.hs b/tests/todo/Invariants1.hs
deleted file mode 100644
--- a/tests/todo/Invariants1.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Foo where
-
-{-@ invariant {v:[Nat] | (sum v) >= 0} @-}
-
-{-@ measure sum :: [Int] -> Int
-    sum([]) = 0
-    sum(x:xs) = x + (sum xs)
-  @-}
-
-{-@ bad :: [Int] -> {v:[Nat] | (sum v) >= 0} @-}
-bad :: [Int] -> [Int]
-bad x = x
-
diff --git a/tests/todo/Invariants2.hs b/tests/todo/Invariants2.hs
deleted file mode 100644
--- a/tests/todo/Invariants2.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Invariants where
-
-{-@ measure sum :: [Int] -> Nat
-    sum()     = 0
-    sum(x:xs) = x + (sum xs)
-  @-}
-
-
-{-@ good :: xs:[Int] -> {v:[Int] | (sum xs) >= 0} @-}
-good :: [Int] -> [Int]
-good x = x
diff --git a/tests/todo/InvariantsTermination.hs b/tests/todo/InvariantsTermination.hs
deleted file mode 100644
--- a/tests/todo/InvariantsTermination.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-module InvariantsTermination where
-
-
-data Inv  
-  = InvZero
-  |	InvOne Inv 
-  | InvTwo Inv Inv 
-
-{-@ data Inv [isize] @-}
-
-{-@ measure isize @-}
-{-@ isize :: Inv -> Nat @-}
-isize :: Inv -> Int
-isize d = 
-  case d of 
-  	InvZero      -> 0  
-  	InvOne i     -> 1 + isize i 
-  	InvTwo i1 i2 -> let s1 = isize i1 
-  	                    s2 = isize i2 
-  	                in 1 + s1 + s2  
-
-{-
-to prove both the invariant 
-
-   {v:Inv | invariant v }
-
-  invariant v <=> 0 <= isize v 
-
-and termination on isize 
-the environment is extended with 
- 
-   forall v. 
-      isize v < isize d => invariant v  
-   
-This is not good enought to prove the InvTwo case: 
-
-  isize i1 < isize d => 0 <= isize i1  
-  isize i2 < isize d => 0 <= isize i2 
-  isize d = isize i1 + isize i2
-  ------------------------------
-  0 <= isize i1 < isize d 
-
-
-
-  isize i1 < 1 + isize i1 + isize i2 => 0 <= isize i1  
-  isize i2 < 1 + isize i1 + isize i2 => 0 <= isize i2 
-  ------------------------------
-    0 <  1+ isize i1 
-
-
-
--}
diff --git a/tests/todo/LambdaDeBruijn.hs b/tests/todo/LambdaDeBruijn.hs
deleted file mode 100644
--- a/tests/todo/LambdaDeBruijn.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module LambdaDeBruijn where
-
-{-@ LIQUID "--native" @-}
-type Var = Int
-data Typ
-data Expr = EVar Var
-          | ELam Typ Expr
-          | EUnit
-          | EApp Expr Expr
-
-{-@ autosize Expr @-}
-
-{-@measure isVar @-}
-isVar :: Expr -> Bool
-isVar (EVar _) = True
-isVar _        = False
diff --git a/tests/todo/LambdaDeBruijn0.hs b/tests/todo/LambdaDeBruijn0.hs
deleted file mode 100644
--- a/tests/todo/LambdaDeBruijn0.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-module LambdaDeBruijn where
-
-{- Proving Termination of Parallel Substitutions,
-   see  § 3.2.2 of Dependent Types and Multi Monadic Effects in F*
- -}
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ LIQUID "--native"   @-}
-{-@ LIQUID "--totality" @-}
-
-type Var = Int
-{-@ type EVar = {v:Expr| isEVar v} @-}
-
-type Subst = [(Var,Expr)]
-{-@ type RenamingSubst = {su: [(Var,Expr)] | isRenaming su} @-}
-
-data Typ
-
-data Expr = EVar Var
-          | ELam Typ Expr
-          | EUnit
-          | EApp Expr Expr
-{-@ data Expr [elen] @-}
-
-{-@ type MEVar E SU = {e:Expr | if (isEVar E && isRenaming SU) then (isEVar e) else true } @-}
-
-{-@ sub :: su:Subst -> v:Var -> {v:Expr | if (isRenaming su) then (isEVar v) else true } @-}
-sub [] v                       = EVar v
-sub ((vx, x):su) v | v == vx   = x
-                   | otherwise = sub su v
-
-
-{-@ subst :: e:Expr -> su:Subst -> MEVar e su / [if (isEVar e) then 0 else 1, if (isRenaming su) then 0 else 1, elen e] @-}
-subst EUnit        su = EUnit
-subst (EVar v)     su = sub su v
-subst (EApp e1 e2) su = EApp (subst e1 su) (subst e2 su)
-
-subst (ELam t e)   su | isRenaming su =
-  let su' =  toRem $ (0, EVar 0): map (\i -> (i, subst (sub su (i-1)) $ incrsubst ())) [1..]
-  in ELam t $ subst e su'
-
-subst (ELam t e)   su = -- | not $ isRenaming su
-    let su' =  (0, EVar 0): map (\i -> (i, subst (sub su (i-1)) $ incrsubst ())) [1..]
-    in ELam t $ subst e su'
-
-
-
-
-{-@ incrsubst :: () -> RenamingSubst @-}
-incrsubst :: () -> Subst
-incrsubst _ = toRem $  map (\i -> (i, EVar $ i+1)) [0..]
-
-{-@ measure isEVar @-}
-isEVar :: Expr -> Bool
-isEVar (EVar _) = True
-isEVar _        = False
-
-
-
-toRem :: Subst -> Subst
-{-@ toRem :: [(Var, EVar)] -> RenamingSubst @-}
-toRem [] = []
-toRem ((x, y):sus) = (x, y):toRem sus
-
-
-{-@ measure isRenaming @-}
-isRenaming :: Subst -> Bool
-isRenaming (vx:sus) = isEVar (mysnd vx) && isRenaming sus
-isRenaming [] = True
-
-{-@ measure mysnd @-}
-mysnd (_,y) = y
-
-{-@ invariant {v:Expr | elen v >= 0 } @-}
-{-@ measure elen @-}
-elen :: Expr -> Int
-elen EUnit    = 0
-elen (EVar v) = 0
-elen (ELam _ e) = 1 + elen e
-elen (EApp e1 e2) = 1 + elen e1 + elen e2
diff --git a/tests/todo/LazyVar.hs b/tests/todo/LazyVar.hs
deleted file mode 100644
--- a/tests/todo/LazyVar.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module LazyVar where
-
-{-@ foo :: a -> Bool @-}
-foo :: a -> Bool
-foo = undefined
-
-{-@ bar :: [a] -> Nat -> a @-}
-bar :: [a] -> Int -> a
-bar xs i
-  | i < l && foo x = x
-  | otherwise      = undefined
-  where
-    l = length xs
-    {-@ LAZYVAR x @-}
-    x = xs !! i
diff --git a/tests/todo/ListDataCons-Neg.hs b/tests/todo/ListDataCons-Neg.hs
deleted file mode 100644
--- a/tests/todo/ListDataCons-Neg.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Fixme where
-
-data L a = N 
-
-
-{-@ lnil :: {v:L a | v == Fixme.N } @-} 
-lnil :: L a 
-lnil = N
-
-{-@ hnil :: {v:[Int] | v == []} @-} 
-hnil :: [Int] 
-hnil = [0] 
-
-{-@ hcons :: x:a -> a -> xs:[a] -> {v:[a] | v == x:xs} @-} 
-hcons :: a -> a -> [a] -> [a] 
-hcons _ = (:)
diff --git a/tests/todo/ListDataCons-Pos.hs b/tests/todo/ListDataCons-Pos.hs
deleted file mode 100644
--- a/tests/todo/ListDataCons-Pos.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Fixme where
-
-data L a = N 
-
-
-{-@ lnil :: {v:L a | v == Fixme.N } @-} 
-lnil :: L a 
-lnil = N
-
-{-@ hnil :: {v:[a] | v == []} @-} 
-hnil :: [a] 
-hnil = [] 
-
-{-@ hcons :: x:a -> xs:[a] -> {v:[a] | v == x:xs} @-} 
-hcons :: a -> [a] -> [a] 
-hcons = (:)
diff --git a/tests/todo/ListDataCons.hs b/tests/todo/ListDataCons.hs
deleted file mode 100644
--- a/tests/todo/ListDataCons.hs
+++ /dev/null
@@ -1,24 +0,0 @@
-module Fixme where
-
-
-{-@ hsig :: x:a -> {v:[a] | v == (x:[])} @-} 
-hsig :: a -> [a] 
-hsig x = [x] 
-
-
-{-
-
-This crashes with 
-
-(VV#F1 = fix#GHC.Types.#58##35#64([x#aJP; fix#GHC.Types.#91##93##35#6m([])]))
-
-z3Pred: error converting (VV#F1 = fix#GHC.Types.#58##35#64([x#aJP; fix#GHC.Types.#91##93##35#6m([])]))
-Fatal error: exception Failure("bracket hits exn: TpGen.MakeProver(SMT).Z3RelTypeError
-")
-
-Unless these edits
-
-https://github.com/ucsd-progsys/liquid-fixpoint/commit/63e1e1ccfbde4d7a26bd3e328ad111423172a7e9
-
-
--}
diff --git a/tests/todo/ListMem.hs b/tests/todo/ListMem.hs
deleted file mode 100644
--- a/tests/todo/ListMem.hs
+++ /dev/null
@@ -1,79 +0,0 @@
-module ListMem where
-
-
-import Data.Set hiding (partition)
-
-
-{-@ member' :: Eq a 
-           => x:a 
-           -> xs:[a] 
-           -> {v:([{vv:a|vv=x}], [{vv:a|vv!=x}]) | (PairEqElts xs v)}
-  @-}
-member' :: Eq a => a -> [a] -> ([a], [a])
-member' x ls = partition (cmp x) ls 
-
-{-@ member :: Eq a 
-           => x:a 
-           -> xs:[a] 
-           -> {v:Bool|((Prop v) <=> (ListElt x xs))}
-  @-}
-member :: Eq a => a -> [a] -> Bool
-member x ls 
-  = case partition (cmp x) ls of
-     ([], _) -> False -- can not prove this!
-     (_, _)  -> True
-
-{-@ predicate ListElt N LS =
-       (Set_mem N (listElts LS)) 
-  @-}
-
-{-@ predicate PairEqElts X P =
- ((listElts X) = (Set_cup (listElts (getFst P)) (listElts (getSnd P))))
-  @-}
-
-{-@ predicate UnionElts X Y Z W =
-       ((listElts X) = (Set_cup (listElts Y) (Set_cup (listElts Z) (listElts W)))) 
-  @-}
-
-{-@ measure getFst :: (a, b) -> a
-    getFst(a, b) = a 
-  @-}
-
-{-@ measure getSnd :: (a, b) -> b
-    getSnd(a, b) = b
-  @-}
-
-
-{-@ cmp :: Eq a 
-        => x:a 
-        -> y:a 
-        -> Either {v:a| ((v = y) && (v = x))} 
-                  {v:a| ((v != x) && (v = y))} 
-  @-}
-cmp :: Eq a => a -> a ->  Either a a
-cmp x y | x == y    = Left  y
-        | otherwise = Right y
-
-
-{-@ partition :: forall <p :: a -> Prop, q :: a -> Prop>.
-                 (x:a -> Either {v:a<p>|v = x} {v:a<q>|v=x})
-              -> xs:[a] 
-              -> {v:([a<p>], [a<q>]) | (PairEqElts xs v) }
-  @-}
-partition :: (a -> Either a a) -> [a] -> ([a], [a])
-partition f xs = partition' f xs xs ([], [])
-
-{-@ partition' :: forall <p :: a -> Prop, q :: a -> Prop>.
-                 (x:a -> Either {v:a<p>|v = x} {v:a<q>|v=x})
-              -> init:[a] 
-              -> xs:[a] 
-              -> ack:{v:([a<p>], [a<q>]) | ((listElts init) = (Set_cup (listElts xs) (Set_cup (listElts (getFst v)) (listElts (getSnd v))))) }
-              -> {v:([a<p>], [a<q>]) | (listElts init) = (Set_cup (listElts (getFst v)) (listElts (getSnd v)))}
-  @-}
-partition' :: (a -> Either a a) -> [a] -> [a] -> ([a], [a]) -> ([a], [a])
-partition' _ a [] (x, y) = (x, y)
-partition' f a (x:xs) (pos, neg) 
-  = case f x of
-    Left _  -> partition' f a xs (x:pos, neg) 
-    Right _ -> partition' f a xs (pos, x:neg) 
-
diff --git a/tests/todo/LocalRecursiveFuns.hs b/tests/todo/LocalRecursiveFuns.hs
deleted file mode 100644
--- a/tests/todo/LocalRecursiveFuns.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Blank where
-
-data Tree a = Tip | Node a (Tree a) (Tree a)
-
-tmap                :: (a -> b) -> Tree a -> Tree b
-tmap f Tip          = Tip
-tmap f (Node x l r) = Node (f x) (tmap f l) (tmap f r)
-
------------------------------------------------------------
-{-@ union :: t1:(Tree a) -> t2:(Tree a) -> (Tree a) /[(sz t1) + (sz t2)] @-}
--- union :: Tree a -> Tree a -> Tree a
-union Tip          t = t
-union (Node x a b) t = Node x taa tbb
-  where
-    taa              = union ta a
-    tbb              = union tb b
-    (ta,  tb)        = split x t
-
------------------------------------------------------------
-
-{-@ split :: a -> t:Tree a -> (TreeLe a t, TreeLe a t) @-}
-split :: a -> Tree a -> (Tree a, Tree a)
-split = undefined
-
-{-@ type TreeLe a T = {v:Tree a | (sz v) <= (sz T)} @-}
-
-{-@ data Tree [sz]  @-}
-
-{-@ measure sz      :: Tree a -> Int
-    sz (Tip)        = 0
-    sz (Node x l r) = 1 + (sz l) + (sz r)
-  @-}
-  
-{-@ invariant {v:(Tree a) | (sz v) >= 0} @-}
-
-{-@ qualif TreeLt(v:Tree a, t:Tree b): (sz v) < (sz t) @-}
-
diff --git a/tests/todo/LocalSpec.hs b/tests/todo/LocalSpec.hs
deleted file mode 100644
--- a/tests/todo/LocalSpec.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module LocalSpec () where
-
-import Language.Haskell.Liquid.Prelude (choose)
-
-
-prop = if x > 0 then bar x else foo x
-  where x = choose 0
-    {-@ Local bar :: Nat -> Nat @-}
-        bar :: Int -> Int
-        bar x = x
-    {-@ Local foo :: Nat -> Nat @-}
-        foo :: Int -> Int
-        foo x = x
-
-{-@ bar :: a -> {v:Int | v = 9} @-}
-bar :: a -> Int
-bar _ = 9
diff --git a/tests/todo/LocalSpec1.hs b/tests/todo/LocalSpec1.hs
deleted file mode 100644
--- a/tests/todo/LocalSpec1.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Foo where
-
-{-@ filterElts :: forall <p :: a -> Prop>. Eq a => [a<p>] -> [a] -> [a<p>] @-}
-filterElts :: Eq a => [a] -> [a] -> [a]
-filterElts xs ys = go xs xs ys
-
-
-{-@ go :: forall <p :: a -> Prop>. Eq a => xs:[a<p>] -> ws:[a<p>] -> zs:[a] -> [a<p>] /[(len zs), (len ws)] @-}
-go :: Eq a => [a] -> [a] -> [a] -> [a]
-go xs (w:ws) (z:zs) | w == z    = z : go xs xs zs
-                    | otherwise = go xs ws (z:zs)
-go xs []     (z:zs)             = go xs xs zs
-go xs ws     []                 = []
-
diff --git a/tests/todo/LocalSpecImport.hs b/tests/todo/LocalSpecImport.hs
deleted file mode 100644
--- a/tests/todo/LocalSpecImport.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module LocalSpecImport where
-
-import LocalSpec
-
-{-@ baz :: Nat -> Nat @-}
-baz :: Int -> Int
-baz x = x
diff --git a/tests/todo/LocalSpecTyVar.hs b/tests/todo/LocalSpecTyVar.hs
deleted file mode 100644
--- a/tests/todo/LocalSpecTyVar.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module LocalSpecTyVar where
-
-foo = go
-  where
-    {-@ go :: xs:[a] -> {v:[a] | (len v) > (len xs)} @-}
-    go []     = []
-    go (x:xs) = x : go xs
diff --git a/tests/todo/LocalTermExpr1.hs b/tests/todo/LocalTermExpr1.hs
deleted file mode 100644
--- a/tests/todo/LocalTermExpr1.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-module LocalTermExpr where
-
-{-@ assume (!!) :: xs:[a] -> {v:Nat | v < len xs} -> a @-}
-
-mysum xs = go 0 0
-  where
-    i = 0
-    n = length xs
-    {-@ go :: i:_ -> _ -> _ / [len xs - i] @-}
-    go i acc
-      | i >= n    = acc
-      | otherwise = go (i+1) (acc + xs !! i)
-
-myfoo = foo 5 True
-  where
-    n = False
-    {-@ foo :: n:_ -> b:{_ | n >= 0 && Prop b} -> {v:_ | n >= 0 && (Prop b)} / [n-0] @-}
-    foo :: Int -> Bool -> Bool
-    foo 0 _ = True
-    foo n b = foo (n-1) b
diff --git a/tests/todo/Machine.hs b/tests/todo/Machine.hs
deleted file mode 100644
--- a/tests/todo/Machine.hs
+++ /dev/null
@@ -1,145 +0,0 @@
-{-# LANGUAGE LambdaCase, DeriveDataTypeable, OverloadedStrings, GeneralizedNewtypeDeriving #-}
-
-{-@ LIQUID "--no-case-expand" @-}
-{-@ LIQUID "--trustinternals" @-}
-
-import qualified Data.Map as Map
-import qualified Data.Generics as SYB
-import Data.String
-import Text.PrettyPrint
-
--- Syntax
-
-newtype Var = Var String
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable, IsString)
-
-newtype Con = Con String
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable, IsString)
-
-type Alts = [(Con, [Var], Expr)]
-
-data Expr
-  = EVar Var
-  | ELam Var Expr
-  | EApp Expr Var
-  | ELet [(Var, Expr)] Expr
-  | ECon Con [Var]
-  | ECase Expr Alts
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable)
-
-instance IsString Expr where
-  fromString = EVar . fromString
-
-isValue :: Expr -> Bool
-isValue = \case
-  ELam {} -> True
-  ECon {} -> True
-  _ -> False
-
--- Abstract machine
-type Heap = Map.Map Var Expr
-type Stack = [StackItem]
-data StackItem
-  = StackUpdate Var
-  | StackVar Var
-  | StackAlts Alts
-  deriving (Show, SYB.Data, SYB.Typeable)
-data Machine = Machine Heap Expr Stack
-  deriving (Show)
-
-step :: Machine -> Machine
-step (Machine heap e stack)
-  -- Lookup
-  | EVar x <- e =
-      let m = heap Map.! x
-      in Machine heap m (StackUpdate x : stack)
-  -- Update
-  | isValue e, StackUpdate v : stack' <- stack =
-      Machine (Map.insert v e heap) e stack'
-  -- Unwind
-  | EApp m x <- e = Machine heap m (StackVar x : stack)
-  -- Subst
-  | ELam x m <- e, StackVar y : stack' <- stack =
-      Machine heap (subst (Map.singleton x y) e) stack'
-  -- Case
-  | ECase m alts <- e = Machine heap m (StackAlts alts : stack)
-  -- Branch
-  | ECon con xs <- e, StackAlts alts : stack' <- stack =
-      let [(boundVars, body)] = [(boundVars, body) | (con', boundVars, body) <- alts, con == con']
-          e' = subst (Map.fromList $ zip boundVars xs) body
-      in Machine heap e' stack'
-  -- Letrec
-  | ELet binds body <- e = Machine (Map.union (Map.fromList binds) heap) body stack
-
-
--- Example refinements on Map.Map
-{-@ measure mlen :: Map.Map a b -> Int @-}
-{-@ invariant {v:Map.Map k v | (mlen v >= 0) } @-}
-{-@ assume Map.delete :: Ord k => x:k -> m:Map.Map k v -> {v:Map.Map k v |(melem x m) =>  mlen v < mlen m} @-}
-
-{-@ measure melem :: k -> Map.Map k v -> Prop @-}
--- 
-
--- Sizing Expressions:
--- TODO: define elen for the rest of the cases 
-
-{-@ invariant {v:Expr | elen v > 0} @-}
-{-@ measure elen :: Expr -> Int 
-    elen (ELam x e)   = 1 + (elen e)
-  @-}
-
-{-@ subst :: (Map.Map Var Var) -> e:Expr -> Expr / [elen e]  @-}
-subst :: Map.Map Var Var -> Expr -> Expr
-subst sm = \case
-  EVar x | Just y <- Map.lookup x sm -> EVar y
-  e@(ELam z body) -> ELam z (subst (Map.delete z sm) body)
-  e -> SYB.gmapT (SYB.mkT $ subst sm) e
-
-initMachine :: Expr -> Machine
-initMachine e = Machine Map.empty e []
-
-isFinished :: Machine -> Bool
-isFinished (Machine _ e stack) = isValue e && null stack
-
-run :: Machine -> Machine
-run m
-  | isFinished m = m
-  | otherwise = run $ step m
-
--- Pretty-printing
-ppVar (Var x) = text x
-ppCon (Con x) = text x
-ppExpr :: Expr -> Doc
-ppExpr = ppExpr' False
-ppExpr' :: Bool -> Expr -> Doc
-ppExpr' p e =
-  let maybeParens = if p then parens else id in
-  case e of
-    EVar x -> ppVar x
-    ELam x body -> maybeParens $
-      text "Î»" <> ppVar x <> text "." <> ppExpr' False body
-    EApp a b -> ppExpr' False a <+> ppVar b
-    ECon con xs -> sep $ ppCon con : map ppVar xs
-    ELet binds body ->
-      vcat
-        [ "let" $$ nest 2 (vcat (punctuate semi (map (\(v,e) -> ppVar v <+> hang "=" 2 (ppExpr e)) binds)))
-        , "in" $$ nest 2 (ppExpr body)
-        ]
-    ECase e alts ->
-      let ppAlt (con, vars, body) =
-            ppCon con <+> sep (map ppVar vars) <+> "->" <+> ppExpr body
-      in text "case" <+> ppExpr e <+> "of" $$ nest 2 (vcat (map ppAlt alts))
-
--- Some object-language programs
-nil, cons :: Expr
-nil = ECon "nil" []
-cons = ELam "x" $ ELam "y" $ ECon "cons" ["x", "y"]
-append = ELet [("append", appendBind)] "append"
-  where
-    appendBind =
-      ELam "a" $ ELam "b" $ ECase "a"
-        [("nil", [], "b")
-        ,("cons", ["x", "xs"],
-          ELet [("r", "append" `EApp` "xs" `EApp` "b")]
-            (cons `EApp` "x" `EApp` "r"))
-        ]
diff --git a/tests/todo/Map-strict.hs b/tests/todo/Map-strict.hs
deleted file mode 100644
--- a/tests/todo/Map-strict.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Data.Map.Base (Map(..), singleton) where
-
-data Map k a  = Bin {-# UNPACK #-} !Size !k a !(Map k a) !(Map k a)
-              | Tip
-
-type Size     = Int
-
-{-@ 
-  data Map k a <l :: root:k -> k -> Bool, r :: root:k -> k -> Bool>
-       = Bin (sz    :: Size) 
-             (key   :: k) 
-             (value :: a) 
-             (left  :: Map <l, r> (k <l key>) a) 
-             (right :: Map <l, r> (k <r key>) a) 
-       | Tip 
-  @-}
-
-{-@ type OMap k a = Map <{v:k | v < root}, {v:k | v > root}> k a @-}
-
-{-@ singleton :: k -> a -> OMap k a @-}
-singleton :: k -> a -> Map k a
-singleton k x = Bin 1 k x Tip Tip
-{-# INLINE singleton #-}
-
-
diff --git a/tests/todo/Map-wierd.hs b/tests/todo/Map-wierd.hs
deleted file mode 100644
--- a/tests/todo/Map-wierd.hs
+++ /dev/null
@@ -1,171 +0,0 @@
-module Map where
-
-import Language.Haskell.Liquid.Prelude
-
--- LIQUID: There is some bizarre interaction between the names in Map-pred
--- and Pair-pred -- because the error goes away if you remove "Pair"
--- altogether from the code.
-
-{-@ 
-  data Map k a <l :: x00:k -> x1:k -> Bool, r :: x00:k -> x1:k -> Bool>
-      = Tip 
-      | Bin (sz    :: Size) 
-            (key   :: k) 
-            (value :: a) 
-            (left  :: Map <l, r> (k <l key>) a) 
-            (right :: Map <l, r> (k <r key>) a) 
-  @-}
-
-{-@ type OMap k a = Map <{v:k | v < x00 }, {v:k | v > x00}> k a @-}
-
-data Map k a = Tip
-             | Bin Size k a (Map k a) (Map k a)
-
-type Size    = Int
-{-@
-data Pair k v <p :: x0:k -> x1:k -> Bool, l :: x0:k -> x1:k -> Bool, r :: x0:k -> x1:k -> Bool>
-  = P (fld0 :: k) (fld1 :: v) (tree :: Map <l, r> (k <p fld0>) v) 
-  @-}
-data Pair k v = P k v (Map k v)
-
-{-@ singleton :: k -> a -> OMap k a @-}
-singleton :: k -> a -> Map k a
-singleton k x
-  = Bin 1 k x Tip Tip
-
-{-@ insert :: Ord k => k -> a -> OMap k a -> OMap k a @-}
-insert :: Ord k => k -> a -> Map k a -> Map k a
-insert kx x t
-  = case t of 
-     Tip -> singleton kx x
-     Bin sz ky y l r
-         -> case compare kx ky of
-              LT -> balance ky y (insert kx x l) r
-              GT -> balance ky y l (insert kx x r)
-              EQ -> Bin sz kx x l r
-
-{-@ delete :: (Ord k) => k -> OMap k a -> OMap k a @-}
-delete :: Ord k => k -> Map k a -> Map k a
-delete k t 
-  = case t of 
-      Tip -> Tip
-      Bin _ kx x l r
-          -> case compare k kx of 
-               LT -> balance kx x (delete k l) r
-               GT -> balance kx x l (delete k r)
-               EQ -> glue kx l r 
-
-
-glue :: k -> Map k a -> Map k a -> Map k a
-glue k Tip r = r
-glue k l Tip = l
-glue k l r
-  | size l > size r = let P km1 vm lm = deleteFindMax l in balance km1 vm lm r
-  | otherwise       = let P km2 vm rm = deleteFindMin r in balance km2 vm l rm
-
-deleteFindMax :: Map k a -> Pair k a
-deleteFindMax t 
-  = case t of
-      Bin _ k x l Tip -> P k x l
-      Bin _ k x l r -> let P km3 vm rm = deleteFindMax r in P km3 vm (balance k x l rm) 
-      Tip             -> P (error ms) (error ms) Tip
-  where ms = "Map.deleteFindMax : can not return the maximal element of an empty Map"   
-
-
-deleteFindMin :: Map k a -> Pair k a
-deleteFindMin t 
-  = case t of
-      Bin _ k x Tip r -> P k x r
-      Bin _ k x l r -> let P km4 vm lm = deleteFindMin l in P km4 vm (balance k x lm r) 
-      Tip             -> P (error ms) (error ms) Tip
-  where ms = "Map.deleteFindMin : can not return the maximal element of an empty Map"   
-
-
--------------------------------------------------------------------------------
---------------------------------- BALANCE -------------------------------------
--------------------------------------------------------------------------------
-
-delta, ratio :: Int
-delta = 5
-ratio = 2
-
-balance :: k -> a -> Map k a -> Map k a -> Map k a 
-balance k x l r 
-  | sizeL + sizeR <= 1   = Bin sizeX k x l r
-  | sizeR >= delta*sizeL = rotateL k x l r
-  | sizeL >= delta*sizeR = rotateR k x l r
-  | otherwise            = Bin sizeX k x l r
-  where sizeL = size l
-        sizeR = size r
-        sizeX = sizeL + sizeR + 1
-
--- rotate
-rotateL :: a -> b -> Map a b -> Map a b -> Map a b
-rotateL k x l r@(Bin _ _ _ ly ry) 
-  | size ly < ratio*size ry  = singleL k x l r
-  | otherwise                = doubleL k x l r
-rotateL _ _ _ Tip = error "rotateL Tip"
-
-rotateR :: a -> b -> Map a b -> Map a b -> Map a b
-rotateR k x l@(Bin _ _ _ ly ry) r
-  | size ry < ratio*size ly  = singleR k x l r
-  | otherwise                = doubleR k x l r
-rotateR _ _ _ Tip = error "rotateR Tip"
-
--- basic rotations
-singleL, singleR :: a -> b -> Map a b -> Map a b -> Map a b
-singleL k1 x1 t1 (Bin _ k2 x2 t2 t3) = bin k2 x2 (bin k1 x1 t1 t2) t3
-singleL _  _  _ Tip = error "sinlgeL Tip"
-singleR k1 x1 (Bin _ k2 x2 t1 t2) t3 = Bin 0 k2 x2 t1 (Bin 0 k1 x1 t2 t3)
-singleR _  _  _ Tip = error "sinlgeR Tip"
-
-doubleL, doubleR :: a -> b -> Map a b -> Map a b -> Map a b
-doubleL k1 x1 t1 (Bin _ k2 x2 (Bin _ k3 x3 t2 t3) t4)
- =bin k3 x3 (bin k1 x1 t1 t2) (bin k2 x2 t3 t4)
-doubleL _ _ _ _ = error "doubleL" 
-doubleR k1 x1 (Bin _ k2 x2 t1 (Bin _ k3 x3 t2 t3)) t4 
-  = bin k3 x3 (bin k2 x2 t1 t2) (bin k1 x1 t3 t4)
-doubleR _ _ _ _ = error "doubleR" 
-
-bin :: k -> a -> Map k a -> Map k a -> Map k a
-bin k x l r 
-  = Bin (size l + size r + 1) k x l r
-
-size :: Map k a -> Int
-size t 
-  = case t of 
-      Tip            -> 0
-      Bin sz _ _ _ _ -> sz
-
-
-chkDel x Tip                = liquidAssertB True  
-chkDel x (Bin sz k v lt rt) = liquidAssertB (not (x == k)) && chkDel x lt && chkDel x rt
-
-chkMin x Tip                = liquidAssertB True  
-chkMin x (Bin sz k v lt rt) = liquidAssertB (x<k) && chkMin x lt && chkMin x rt
-
-chk Tip               = liquidAssertB True  
-chk (Bin s k v lt rt) = chk lt && chk rt && chkl k lt && chkr k rt
-		
-chkl k Tip              = liquidAssertB True
-chkl k (Bin _ kl _ _ _) = liquidAssertB (kl < k)
-
-chkr k Tip              = liquidAssertB True
-chkr k (Bin _ kr _ _ _) = liquidAssertB (k < kr)
-
-key, key1, val, val1 :: Int
-key = choose 0
-val = choose 1
-key1 = choose 0
-val1 = choose 1
-
-bst1 = insert key val Tip
-bst  = insert key val $ insert key1 val1 Tip
-
-mkBst = foldl (\t (k, v) -> insert k v t) Tip
-
-prop        = chk bst1
-prop1       = chk $ mkBst $ zip [1..] [1..]
-
-propDelete  = chk $ delete x bst
-   where x = choose 0
diff --git a/tests/todo/MaybeReflect0.hs b/tests/todo/MaybeReflect0.hs
deleted file mode 100644
--- a/tests/todo/MaybeReflect0.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-
-
-{-# LANGUAGE IncoherentInstances   #-}
-{-# LANGUAGE FlexibleContexts #-}
-module MaybeReflect0 where
-
-
-import Prelude hiding (Maybe(..))
-
-data Maybe a = Nothing | Just a
-{-@ data Maybe a = Nothing | Just a @-}
-
-
-{-@ reflect seq @-}
-seq :: Maybe (a -> b) -> Maybe a -> Maybe b
-seq (Just f) (Just x) = Just (f x)
-seq _         _       = Nothing
-
-{-@ reflect compose @-}
-compose :: (b -> c) -> (a -> b) -> a -> c
-compose f g x = f (g x)
-
-{-@ reflect pure @-}
-pure :: a -> Maybe a
-pure x = Just x
diff --git a/tests/todo/MaybeReflect1.hs b/tests/todo/MaybeReflect1.hs
deleted file mode 100644
--- a/tests/todo/MaybeReflect1.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-
-
-{-# LANGUAGE IncoherentInstances   #-}
-{-# LANGUAGE FlexibleContexts #-}
-module MaybeReflect1 where
-
-
-import Prelude hiding (Maybe(..))
-
-data Maybe a = Nothing | Just a
-{-@ data Maybe a = Nothing | Just a @-}
-
-
-{-@ reflect seqm @-}
-seqm :: Maybe (a -> b) -> Maybe a -> Maybe b
-seqm (Just f) (Just x) = Just (f x)
-seqm _         _       = Nothing
-
-{-@ reflect composem @-}
-composem :: (b -> c) -> (a -> b) -> a -> c
-composem f g x = f (g x)
-
-{-@ reflect purem @-}
-purem :: a -> Maybe a
-purem x = Just x
diff --git a/tests/todo/Means.hs b/tests/todo/Means.hs
deleted file mode 100644
--- a/tests/todo/Means.hs
+++ /dev/null
@@ -1,122 +0,0 @@
-{-# LANGUAGE TypeSynonymInstances #-}
-
-module Means where
-
-import Prelude hiding ((*))
-import qualified Prelude as Pr
-import Language.Haskell.Liquid.Prelude
-
-type Scalar = Double
-
-{-@ assume (*) :: x:Scalar -> y:Scalar -> {v:Scalar | v = (times x y)} @-}
-(*) :: Scalar -> Scalar -> Scalar
-(*) = (Pr.*)
-
-{-@ assume inverse :: x:{v:Scalar | v != 0} -> {v:Scalar | v = (inverse x)} @-}
-inverse :: Scalar -> Scalar
-inverse x | x == zero = error "inverse a zero value"
-          | otherwise = one / x
-
--- Double 1 does not take a singleton type
-{-@ assume one :: {v:Scalar | v = 1} @-}
-one :: Scalar
-one = 1
-
-{-@ assume two :: {v:Scalar | v = 2} @-}
-two :: Scalar
-two = 2
-
-{-@ assume zero :: {v:Scalar | v = 0} @-}
-zero :: Scalar
-zero = 0
-
-
-{-@
-  measure times :: Scalar -> Scalar -> Scalar
-  @-}
-
-{-@
-  measure inverse :: Scalar -> Scalar
-  @-}
-
--- Properties of multiplication
-
-{-@ mulNeutral :: x:Scalar -> {v:Bool | x = (times 1 x)} @-}
-mulNeutral :: Scalar -> Bool
-mulNeutral x | x == one * x = True
-      --        | otherwise  = error "mulNeutral fails"
-
-{-@ mulExpTwo :: x:Scalar -> {v:Bool | (times 2 x) = x + x } @-}
-mulExpTwo :: Scalar -> Bool
-mulExpTwo x  | two * x == x + x = True
-      --        | otherwise  = error "mulAssoc fails"
-
-{-@ mulTrans :: x:Scalar -> y:Scalar -> z:Scalar -> {v:Bool | (times (times x y) z) = (times x (times y z))} @-}
-mulTrans :: Scalar -> Scalar -> Scalar -> Bool
-mulTrans x y z | x * y * z == x * (y * z) = True
-      --        | otherwise  = error "mulAssoc fails"
-
-{-@ mulAssoc :: x:Scalar -> y:Scalar -> {v:Bool | (times x y) = (times y x)} @-}
-mulAssoc :: Scalar -> Scalar -> Bool
-mulAssoc x y | x * y == y * x = True
-      --        | otherwise  = error "mulAssoc fails"
-
-{-@ mulDivId :: x:{v:Scalar|v/= 0} -> {v:Bool | 1 = (times x (inverse x))} @-}
-mulDivId :: Scalar -> Bool
-mulDivId x | one == x * inverse x = True
-      --   | otherwise  = error "mulDivId fails"
-
--- Class Specifications
-class Vec a where
-  norm :: a -> Scalar
-  mean :: a -> a -> Scalar
-  {-@ dist :: Vec a => x:a -> y:a -> {v:Scalar | v = (dist x y) } @-}
-  dist :: a -> a -> Scalar
-
-{-@ class measure dist :: forall a . a -> a -> Scalar @-}
-
--- Assumptions:
--- Triangle Inequality
-
-{-@ triangleInequality :: Vec a => x:a -> y:a -> c:a ->
-      {v:Bool | ((((dist x c) + (dist c y)) >= (dist x y)))} @-}
-triangleInequality :: Vec a => a -> a -> a -> Bool
-triangleInequality x y c 
-  | (dist x c + dist c y) >= (dist x y) 
-  = True
-  | otherwise                           
-  = error "Vec.dist does not satisfy triangleInequality"            
-
-
-
-{-@ foo :: x:Scalar -> {v:Scalar |  v= x} @-}
-foo :: Scalar -> Scalar
-foo x = liquidAssume (mulNeutral x) $ one * x 
-
-
-{-@ type Valid = {v:Bool | ((Prop v) <=> true)} @-}
-
-{-@ prop1 :: Vec a => a -> a -> a -> Valid @-}
-prop1 :: Vec a => a -> a -> a -> Bool
-prop1 x y c = liquidAssume ( triangleInequality x y c 
-                          && mulNeutral dxy 
-                          && mulDivId two
-                          && mulTrans two itwo dxy
-                          && mulExpTwo itwo_dxy
-                           ) $ 
-              (dist x c) + (dist c y) >= (itwo_dxy + itwo_dxy')
-  where c'  = mean x y
-        dxy = dist x y
-        itwo = inverse two
-        itwo_dxy = itwo * dxy              -- = dist (y, mean x y)
-        itwo_dxy' = inverse two * dist x y -- = dist (x, mean x y)
-
-
--- Q: how do we enforce linear arithmetic now? tests/pos/mul.hs
--- Step 1: encode everything as Real and use nlsat tactick
---         (check-sat-using qfnra-nlsat)
---         http://rise4fun.com/Z3/1EYC
--- Step 2: encode class theorems, like triangleInequality
---         at every environment with 3 Vecs enforce the theorem
--- Step 3: "prove" the theorems for class instances
---           testing?
diff --git a/tests/todo/Measure.hs b/tests/todo/Measure.hs
deleted file mode 100644
--- a/tests/todo/Measure.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module Measure where
-
-
-
-data Foo a = F a 
-
-{-@ measure foo :: a -> Int @-}
-
-{-@ measure bar :: (Foo a) -> Bool
-    bar(F xs) = (foo xs)         @-}
diff --git a/tests/todo/NameClash.hs b/tests/todo/NameClash.hs
deleted file mode 100644
--- a/tests/todo/NameClash.hs
+++ /dev/null
@@ -1,68 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-
-{-@ LIQUID "--no-termination" @-}
-
-module LinSpace () where
-
-
-data PVector = PVector [Integer] [Integer] (Space PVector) -- { 
-
--- | Orthogonalized vector bn* and squared lattice determinant 
-data Space a = Null | Real a Integer
-
-{-@ data PVector = PVector { 
-      pec_  :: [Integer]   
-    , mu_   :: [Integer] 
-    , orth_ :: {v: (Space (PVectorN (len pec_))) | (dim v) = (len mu_)}
-    } 
-  @-}
-
-{-@ data Space [dim] @-}
-
-{-@ measure dim     :: (Space PVector) -> Int 
-    dim (Null)      = 0
-    dim (Real pv n) = 1 + (dim (orthSpace pv))
-  @-}
-
-{-@ measure spaceVec     :: (Space PVector) -> PVector
-    spaceVec (Real pv n) = pv
-  @-}
-
-{-@ measure vec :: PVector -> [Integer]
-    vec (PVector p m o) = p
-  @-}
-{-@ measure orthSpace :: PVector -> (Space PVector)
-    orthSpace (PVector v m o) = o
-  @-}
-
-{-@ measure muCoeff :: PVector -> [Integer]
-    muCoeff (PVector v m o) = m 
-  @-}
-
---  If the above v is renames to anything else the test is SAFE
--- this v creates a type for PVector
--- PVector :: v{} -> m {} -> o{}
--- and the argument bind v clashs with the special value v....
-
-{-@ invariant {v: PVector | (Inv v) }    @-}
-{-@ invariant {v: Space | (dim v) >= 0 } @-}
-
--- RJ: Helpers for defining properties
-
-{-@ predicate Inv V        = (dim (orthSpace V)) = (len (muCoeff V)) @-}
-{-@ predicate SameLen  X Y = ((len (vec X))  = (len (vec Y)))  @-}
-{-@ predicate SameOrth X Y = ((orthSpace X) = (orthSpace Y)) @-}
-
--- RJ: Useful type aliases for specs
-
-{-@ type SameSpace X       = {v:PVector | ((Inv v) && (SameLen X v) && (SameOrth X v))} @-}
-{-@ type PVectorN N        = {v: PVector | (len (vec v)) = N}   @-} 
-{-@ type PVectorP P        = {v: PVector | (SameLen v P)}       @-} 
-
---------------------
-
-
-{-@ orthSpace_ :: p:PVector -> (Space (PVectorP p))  @-} 
-orthSpace_ (PVector v m o) = o
-
-
diff --git a/tests/todo/NativeFixCrash.hs b/tests/todo/NativeFixCrash.hs
deleted file mode 100644
--- a/tests/todo/NativeFixCrash.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Interpreter where 
-
-data Instr = I
-
-data List a = Nil | Cons a (List a)
-
-type Prog  = List Instr
-type Stack = List Int
-
-{-@ measure progDenote :: Stack -> Prog -> Maybe Stack @-}
-progDenote :: Stack -> Prog -> Maybe Stack
-progDenote s Nil = Just s
-progDenote s (Cons x xs) | Just s' <- Just s  = progDenote s' xs
-
diff --git a/tests/todo/NeuralNetwork.hs b/tests/todo/NeuralNetwork.hs
deleted file mode 100644
--- a/tests/todo/NeuralNetwork.hs
+++ /dev/null
@@ -1,136 +0,0 @@
-#!/usr/bin/env stack
--- stack --resolver lts-5.15 --install-ghc runghc --package hmatrix --package MonadRandom
-
--- FROM: https://github.com/mstksg/inCode/blob/master/code-samples/dependent-haskell/NetworkUntyped.hs
-
-{-# LANGUAGE BangPatterns        #-}
-{-# LANGUAGE FlexibleContexts    #-}
-{-# LANGUAGE GADTs               #-}
-{-# LANGUAGE KindSignatures      #-}
-{-# LANGUAGE ScopedTypeVariables #-}
-
-import Control.Monad
-import Control.Monad.Random
-import Data.List
-import Data.Maybe
-import Numeric.LinearAlgebra
-import System.Environment
-import Text.Read
-
-data Weights = W { wBiases :: !(Vector Double)  -- n
-                 , wNodes  :: !(Matrix Double)  -- n x m
-                 }                              -- "m to n" layer
-
-data Network = Last !Weights
-             | Link !Weights Network
-
-logistic :: Floating a => a -> a
-logistic x = 1 / (1 + exp (-x))
-
-logistic' :: Floating a => a -> a
-logistic' x = logix * (1 - logix)
-  where
-    logix = logistic x
-
-runLayer :: Weights -> Vector Double -> Vector Double
-runLayer (W wB wN) v = wB + wN #> v
-
-runNet :: Network -> Vector Double -> Vector Double
-runNet (O w)      !v = logistic (runLayer w v)
-runNet (w :&~ n') !v = let v' = logistic (runLayer w v)
-                       in  runNet n' v'
-
-randomWeights :: MonadRandom m => Int -> Int -> m Weights
-randomWeights i o = do
-    seed1 :: Int <- getRandom
-    seed2 :: Int <- getRandom
-    let wB = randomVector  seed1 Uniform o * 2 - 1
-        wN = uniformSample seed2 o (replicate i (-1, 1))
-    return $ W wB wN
-
-randomNet :: MonadRandom m => Int -> [Int] -> Int -> m Network
-randomNet i []     o =     O <$> randomWeights i o
-randomNet i (h:hs) o = (:&~) <$> randomWeights i h <*> randomNet h hs o
-
-train :: Double           -- ^ learning rate
-      -> Vector Double    -- ^ input vector
-      -> Vector Double    -- ^ target vector
-      -> Network          -- ^ network to train
-      -> Network
-train rate x0 target = fst . go x0
-  where
-    go :: Vector Double    -- ^ input vector
-       -> Network          -- ^ network to train
-       -> (Network, Vector Double)
-    -- handle the output layer
-    go !x (O w@(W wB wN))
-        = let y    = runLayer w x
-              o    = logistic y
-              -- the gradient (how much y affects the error)
-              --   (logistic' is the derivative of logistic)
-              dEdy = logistic' y * (o - target)
-              -- new bias weights and node weights
-              wB'  = wB - scale rate dEdy
-              wN'  = wN - scale rate (dEdy `outer` x)
-              w'   = W wB' wN'
-              -- bundle of derivatives for next step
-              dWs  = tr wN #> dEdy
-          in  (O w', dWs)
-    -- handle the inner layers
-    go !x (w@(W wB wN) :&~ n)
-        = let y          = runLayer w x
-              o          = logistic y
-              -- get dWs', bundle of derivatives from rest of the net
-              (n', dWs') = go o n
-              -- the gradient (how much y affects the error)
-              dEdy       = logistic' y * dWs'
-              -- new bias weights and node weights
-              wB'  = wB - scale rate dEdy
-              wN'  = wN - scale rate (dEdy `outer` x)
-              w'   = W wB' wN'
-              -- bundle of derivatives for next step
-              dWs  = tr wN #> dEdy
-          in  (w' :&~ n', dWs)
-
-netTest :: MonadRandom m => Double -> Int -> m String
-netTest rate n = do
-    inps <- replicateM n $ do
-      s <- getRandom
-      return $ randomVector s Uniform 2 * 2 - 1
-    let outs = flip map inps $ \v ->
-                 if v `inCircle` (fromRational 0.33, 0.33)
-                      || v `inCircle` (fromRational (-0.33), 0.33)
-                   then fromRational 1
-                   else fromRational 0
-    net0 <- randomNet 2 [16,8] 1
-    let trained = foldl' trainEach net0 (zip inps outs)
-          where
-            trainEach :: Network -> (Vector Double, Vector Double) -> Network
-            trainEach nt (i, o) = train rate i o nt
-
-        outMat = [ [ render (norm_2 (runNet trained (vector [x / 25 - 1,y / 10 - 1])))
-                   | x <- [0..50] ]
-                 | y <- [0..20] ]
-        render r | r <= 0.2  = ' '
-                 | r <= 0.4  = '.'
-                 | r <= 0.6  = '-'
-                 | r <= 0.8  = '='
-                 | otherwise = '#'
-
-    return $ unlines outMat
-  where
-    inCircle :: Vector Double -> (Vector Double, Double) -> Bool
-    v `inCircle` (o, r) = norm_2 (v - o) <= r
-
-main :: IO ()
-main = do
-    args <- getArgs
-    let n    = readMaybe =<< (args !!? 0)
-        rate = readMaybe =<< (args !!? 1)
-    putStrLn "Training network..."
-    putStrLn =<< evalRandIO (netTest (fromMaybe 0.25   rate)
-                                     (fromMaybe 500000 n   )
-                            )
-
-(!!?) :: [a] -> Int -> Maybe a
-xs !!? i = listToMaybe (drop i xs)
diff --git a/tests/todo/NewType00.hs b/tests/todo/NewType00.hs
deleted file mode 100644
--- a/tests/todo/NewType00.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module NT where
-
-{- newtype Natural = Natural { toInt :: Nat } @-}
-newtype Natural = Natural { toInt :: Int }
-
-foo :: Int -> Maybe Natural
-foo n
-  | 0 <= n    = Just (Natural n)
-  | otherwise = Nothing
-
-{-@ bar :: Natural -> Nat @-}
-bar (Natural n) = n
diff --git a/tests/todo/NoInlines.hs b/tests/todo/NoInlines.hs
deleted file mode 100644
--- a/tests/todo/NoInlines.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Foo where
-
-foo :: IO ()
-foo =
-  if True 
-    then return ()
-    else return ()
diff --git a/tests/todo/NoInstance.hs b/tests/todo/NoInstance.hs
deleted file mode 100644
--- a/tests/todo/NoInstance.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module SClass where
-
-import qualified Data.Set
-
-data Stack a = S [a]
-
-data Foo a = F {stack :: Stack a}
-
-{-@ class measure elts  :: forall f a. f a -> Data.Set.Set a @-}
-
-{-@ measure  eltss :: [(Foo a)] -> (Data.Set.Set a)
-    eltss([]) = {v| (? (Set_emp v))}
-    eltss(x:xs) = (Set_cup (elts x) (eltss xs))
-  @-}
-
diff --git a/tests/todo/NotesOnProductivityTest.hs b/tests/todo/NotesOnProductivityTest.hs
deleted file mode 100644
--- a/tests/todo/NotesOnProductivityTest.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Fixme where
-
-import Prelude hiding (repeat, filter)
-
--- Checking productivity
---  1. Leino : syntactically ignore checks in syntactically productive locations
---  PLUS  fivesUp
-
-{-@ fivesUp :: n:Nat -> Int -> [Int] @-}
-fivesUp :: Int -> Int -> [Int]
-fivesUp n m | n == 0    = m : fivesUp 5 (m+1)
-            | otherwise = fivesUp (n-1) (m+1)
-
-
--- VS : Mini-adga: check that recursive calls return codata with *smaller* size
--- MINUS : fivesUp
--- PLUS  : depth preserving functions
-
-{-map :: f:(a -> b) -> xs:[a] -> {v : [a]| (len v) = (len xs)}
- -}
-bar (x:xs) = x : map id xs 
diff --git a/tests/todo/Parse.hs b/tests/todo/Parse.hs
deleted file mode 100644
--- a/tests/todo/Parse.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Fixme where
-
-
-data L a
-  = C {x :: a , xs :: L a} 
-
-{-@ data L a 
-   = C { x:: a , xs :: L a} 
- @-}
diff --git a/tests/todo/Parse1.hs b/tests/todo/Parse1.hs
deleted file mode 100644
--- a/tests/todo/Parse1.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module BadParse where
-
-
-{-@ test :: v:a -> (r:a, l:a) @-}
-test x = (x, x)
diff --git a/tests/todo/PartialAbsApplication.hs b/tests/todo/PartialAbsApplication.hs
deleted file mode 100644
--- a/tests/todo/PartialAbsApplication.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-module Fixme where
-
-data World = W Int
-{-@ data FIO a <pre :: World -> Prop, post :: World -> a -> World -> Prop>
-  = FIO (rs :: (x:World<pre> -> (a, World)<\y -> {v:World<post x y> | true}>))  @-}
-data FIO a  = FIO {runState :: World -> (a, World)}
-
-{-@ createFile :: forall <p :: Int -> World -> Prop,
-                          q :: Int -> World -> Int -> World -> Prop>.
-  {f::Int |- World<p f> <: World}
-  {f::Int, w::World<p f>,  x::Int |- World <: World<q f w x>}
-  a:Int -> FIO <p a, \x z -> {v:World<q a x z> | true}> Int @-}
-createFile :: Int -> FIO Int
-createFile = undefined
diff --git a/tests/todo/Plus.hs b/tests/todo/Plus.hs
deleted file mode 100644
--- a/tests/todo/Plus.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Plus where
-
-go :: Int -> Int -> Int -> Int
-{-@ go :: x:Int -> y:Int -> {v:Int|v = x-y+1} -> Int @-}
-go _ _ _ = undefined
-
-
-go' :: Int -> Int -> Int -> Int
-{-@ go' :: x:Int -> y:Int -> {v:Int|v = (x-y)+1} -> Int @-}
-go' _ _ _ = undefined
-
-
-bar x y z 
-  = if z then go x y (x-y+1) 
-         else go' x y (x-y+1)
diff --git a/tests/todo/QualifCheck.hs b/tests/todo/QualifCheck.hs
deleted file mode 100644
--- a/tests/todo/QualifCheck.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Foo where
-
-{-@ qualif Foo(v:a, x:List a) : (Set_mem v (listElts xs)) @-}
-
-{-@ foo :: Nat -> Nat @-}
-foo :: Int -> Int
-foo x = x
-
diff --git a/tests/todo/RG.hs b/tests/todo/RG.hs
deleted file mode 100644
--- a/tests/todo/RG.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-{- this is a test for the "bug" introduced in liquid-fixpoint by 
-   commit: 9608cb6e4dd33bf142b50db4630c629defceb91e             -}
-
-module RG where
-
-data RGRef a
-
-{-@ measure tv :: RGRef a -> a @-}
-
-{-@ qualif TERMINALVALUE(r:RGRef a): (tv r) @-}
-
-
diff --git a/tests/todo/RecordAccessors.hs b/tests/todo/RecordAccessors.hs
deleted file mode 100644
--- a/tests/todo/RecordAccessors.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module RecordAccessors where
-
-{-@ data Foo = F { thing :: Nat } @-}
-data Foo = F { thing :: Int }
-
-{-@ bar :: Foo -> Nat @-}
-bar = thing
diff --git a/tests/todo/Recursion.hs b/tests/todo/Recursion.hs
deleted file mode 100644
--- a/tests/todo/Recursion.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Rec where
-
-import Language.Haskell.Liquid.Prelude
-
-newtype Rec a = In { out :: Rec a -> a }
- 
-y :: (a -> a) -> a
-y = \f -> (\x -> f (out x x)) (In (\x -> f (out x x)))
-
-
-{-@ foo :: n:Nat -> {v:Nat | v < n} @-}
-foo :: Int -> Int
-foo = y go
-  where go f n =  if n > 0 then n-1 else f n
-
-
-prop = let x = 0 in
-       liquidAssert ((\n -> 0==1) (foo 0))
diff --git a/tests/todo/Recursion1.hs b/tests/todo/Recursion1.hs
deleted file mode 100644
--- a/tests/todo/Recursion1.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-module Rec1 where
-
-import Control.Monad.ST 
-import Data.IORef 
-
-import System.IO.Unsafe
-
--- recursion with references in ocaml
---
--- bar = 
---   let f = ref (fun _ => 0) in 
---   let foo f n = if n > 0 then n-1 else !f n
---   f := (foo f); !f
-
--- translation to Haskell
-
-f n = unsafePerformIO $ (unsafePerformIO bar) n
-
-bar :: IO (Int -> IO Int)
-bar  = do f <- newIORef (\_ -> return 0)
-          writeIORef f (foo f)
-          readIORef f
-
-foo     :: (IORef (Int -> IO Int)) -> Int -> IO Int
-foo f n  | n > 0     = return $ n-1 
-         | otherwise = readIORef f >>= \g -> g n
diff --git a/tests/todo/RedBlack.hs b/tests/todo/RedBlack.hs
deleted file mode 100644
--- a/tests/todo/RedBlack.hs
+++ /dev/null
@@ -1,90 +0,0 @@
-module RedBlack where
-
------------------------------------------------------------------------------------ 
--- From: http://www.mew.org/~kazu/proj/red-black-tree/ ----------------------------
------------------------------------------------------------------------------------ 
-
-data RBTree a = Leaf | Fork Color (RBTree a) a (RBTree a)
-data Color    = Red  | Black
-
-{-@
-inline measure cheight :: Color -> Int
-cheight (x) = if (x == Black) then 1 else 0
-@-}
-
-{-@ 
-measure height        :: RBTree a -> Int   
-height (Leaf)         = 0
-height (Fork c l x r) = (cheight c) + (height l)
-@-}
-
-{-@ 
-measure color        :: RBTree a -> Color 
-color (Leaf)         = Black
-color (Fork c l x r) = c
-@-}
-
-{-@ predicate isBlack X     = (X == Black)                                                 @-}
-{-@ predicate isRed X       = (X == Red)                                                   @-}
-{-@ predicate okRoot1 C L R = ((isRed C)  => ((isBlack (color L)) || (isBlack (color R)))) @-}
-{-@ predicate okRoot2 C L R = ((isRed C)  => ((isBlack (color L)) && (isBlack (color R)))) @-}
-{-@ predicate eqHeight  L R = ((height L) == (height R))                                   @-}
-
-{-@ 
-measure invKids2        :: RBTree a -> Prop 
-invKids2 (Leaf)         =  true
-invKids2 (Fork c l x r) =  (OkRoot2 c l r) && (invKids2 l) && (invKids2 r) 
-@-}
-
-{-@ 
-measure invKids1        :: RBTree a -> Prop 
-invKids1 (Leaf)         = true
-invKids1 (Fork c l x r) = (OkRoot1 c l r) && (invKids2 l) && (invKids2 r)
-@-}
-
-{-@ 
-measure invHeight        :: RBTree a -> Prop 
-invHeight (Leaf)         =  true
-invHeight (Fork c l x r) =  (eqHeight l r) && (invHeight l) && (invHeight r)
-@-}
-
-{-@ type RB1Tree a = {v: (RBTree a) | (invKids1 v) && (invHeight v)} @-}
-{-@ type RB2Tree a = {v: (RBTree a) | (invKids2 v) && (invHeight v)} @-}
-
------------------------------------------------------------------------------------ 
-
-{-@ empty :: IRBTree a @-}
-empty     = Leaf
-
-{-@ insert       :: Ord a => a -> RB2Tree a -> RB2Tree a @-}
-insert x t       = Fork Black d e f
-  where
-    Fork _ d e f = ins x t
-
-ins x Leaf             = Fork R Leaf x Leaf
-ins x t@(Fork c l y r) = case compare x y of
-                           LT -> balanceL c (ins x l) y r
-                           GT -> balanceR c l y (ins x r)
-                           EQ -> t
-
-{-@ balanceL :: c:Color 
-             -> l:(RB1Tree a) 
-             -> x:a 
-             -> r:{v : (RB2Tree a) | (eqHeight l v)} 
-             -> {v:(RB2Tree a) | (height v) = (cheight c) + (height l) } @-}
-balanceL :: Color -> RBTree a -> a -> RBTree a -> RBTree a
-balanceL B (Fork R (Fork R a x b) y c) z d = Fork R (Fork B a x b) y (Fork B c z d)
-balanceL B (Fork R a x (Fork R b y c)) z d = Fork R (Fork B a x b) y (Fork B c z d)
-balanceL k a x b                           = Fork k a x b
-
-{-@ balanceR :: c:Color 
-             -> l:(RB2Tree a) 
-             -> x:a 
-             -> r:{v : (RB1Tree a) | (eqHeight l v)} 
-             -> {v:(RB2Tree a) | (height v) = (cheight c) + (height l) } @-}
-balanceR :: Color -> RBTree a -> a -> RBTree a -> RBTree a
-balanceR B a x (Fork R b y (Fork R c z d)) = Fork R (Fork B a x b) y (Fork B c z d)
-balanceR B a x (Fork R (Fork R b y c) z d) = Fork R (Fork B a x b) y (Fork B c z d)
-balanceR k a x b                           = Fork k a x b
-
-
diff --git a/tests/todo/RefinedData.hs b/tests/todo/RefinedData.hs
deleted file mode 100644
--- a/tests/todo/RefinedData.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Foo where
-
-data F = F {f1 :: Int, f2 :: Bool}
-
-{-@ data F = F {f2 :: Bool, f1 :: Int} @-}
diff --git a/tests/todo/ReflImp.hs b/tests/todo/ReflImp.hs
deleted file mode 100644
--- a/tests/todo/ReflImp.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-{-@ LIQUID "--higherorder"     @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-{-@ LIQUID "--higherorderqs"   @-}
-
-module Peano where
-
-import ProofCombinators
-
-import Incr (incr)
-
-{-@ pf :: () -> { incr 2 == 3 }  @-}
-pf () = incr 2 *** QED
-
-
-
-
-pf :: () -> Proof
diff --git a/tests/todo/ReflectClient3.hs b/tests/todo/ReflectClient3.hs
deleted file mode 100644
--- a/tests/todo/ReflectClient3.hs
+++ /dev/null
@@ -1,14 +0,0 @@
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectClient3a where
-
-import Language.Haskell.Liquid.ProofCombinators
-
-import ReflectLib3a
-
-stupidity = [ undefined gapp ]
-
-{-@ test4 :: { gapp Nil = Nil } @-}
-test4 = gapp Nil ==. Nil *** QED 
diff --git a/tests/todo/ReflectClient3a.hs b/tests/todo/ReflectClient3a.hs
deleted file mode 100644
--- a/tests/todo/ReflectClient3a.hs
+++ /dev/null
@@ -1,58 +0,0 @@
-
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectClient3 where
-
-import Language.Haskell.Liquid.ProofCombinators
-import ReflectLib3
-
-forceImports = [ undefined next
-               , undefined llen
-               , undefined lDay
-               , undefined app
-               ]
-
-{-@ test2 :: { next Mon == Tue } @-}
-test2 = next Mon ==. Tue *** QED
-
-{-@ test4 :: { lDay Nil == Mon } @-}
-test4 = lDay Nil ==. Mon *** QED
-
-{-@ test3 :: { llen Nil == 0 } @-}
-test3 = trivial
--- {- thmAppSize :: xs:List a -> ys:List a ->
-      -- { lSize (app xs ys) == lSize xs + lSize ys}
-  -- -}
--- thmAppSize :: List a -> List a -> Proof
--- thmAppSize Nil ys
-  -- =   lSize (app Nil ys)
-  -- ==. lSize ys
-  -- ==. lSize Nil + lSize ys
-  -- *** QED
-
---  thmAppLen (Cons x xs) ys
-  --  =   llen (app (Cons x xs) ys)
-  --  ==. llen (Cons x (app xs ys))
-  --  ==. 1 + llen (app xs ys)
-      --  ? thmAppLen xs ys
-  --  ==. 1 + llen xs + llen ys
-  --  ==. llen (Cons x xs) + llen ys
-  --  *** QED
-
---
---------------------------------------------------------------------------------
--- Random Debug Stuff
---------------------------------------------------------------------------------
-
-{-@ zen :: xs:List a -> {v:Nat | v = llen xs} @-}
-zen :: List a -> Int
-zen Nil        = 0
-zen (Cons h t) = 1 + zen t
-
--- THIS FAILS
-{-@ zoo :: List a -> {v:Int | v == 0} @-}
-zoo :: List a -> Int
-zoo Nil         = llen Nil
-zoo (Cons x xs) = zoo xs
diff --git a/tests/todo/ReflectClient4.hs b/tests/todo/ReflectClient4.hs
deleted file mode 100644
--- a/tests/todo/ReflectClient4.hs
+++ /dev/null
@@ -1,64 +0,0 @@
-
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectClient4 where
-
-import Language.Haskell.Liquid.ProofCombinators
-
-import ReflectLib4
-
--- THIS IS NEEDED TO BRING THE NAMES INTO SCOPE FOR GHC ...
-forceImports = [ ]
-
-{-@ test1 :: {v:List a | v = Nil} @-}
-test1 :: List a
-test1 = Nil
-
-
-{-@ test2 :: {v:Proof | llen (Cons 1 Nil) = 1} @-}
-test2 :: Proof
-test2 =  llen (Cons 1 Nil)
-      ==. 1 + llen Nil
-      ==. 1
-      *** QED
-
-{-@ test3 :: {v:Proof | llen (Cons 1 (Cons 2 Nil)) = 2} @-}
-test3 :: Proof
-test3 =  llen (Cons 1 (Cons 2 Nil))
-      ==. 1 + llen (Cons 2 Nil)
-      ==. 1 + 1 + llen Nil
-      *** QED
-
-{-@ zen :: xs:List a -> {v:Nat | v = llen xs} @-}
-zen :: List a -> Int
-zen Nil        = 0
-zen (Cons h t) = 1 + zen t
-
-{-@ test5 :: { app (Cons 1 Nil) (Cons 2 (Cons 3 Nil)) = Cons 1 (Cons 2 (Cons 3 Nil)) } @-}
-test5 =   app (Cons 1 Nil) (Cons 2 (Cons 3 Nil))
-      ==. Cons 1 (app Nil (Cons 2 (Cons 3 Nil)))
-      ==. Cons 1 (Cons 2 (Cons 3 Nil))
-      *** QED
-
-{-@ thmAppLen :: xs:List a -> ys:List a ->
-      { llen (app xs ys) == llen xs + llen ys}
-  @-}
-
--- thmAppLen :: List a -> List a -> Proof
-
-thmAppLen Nil ys
-  =   llen (app Nil ys)
-  ==. llen ys
-  ==. llen Nil + llen ys
-  *** QED
-
-thmAppLen (Cons x xs) ys
-  =   llen (app (Cons x xs) ys)
-  ==. llen (Cons x (app xs ys))
-  ==. 1 + llen (app xs ys)
-      ? thmAppLen xs ys
-  ==. 1 + llen xs + llen ys
-  ==. llen (Cons x xs) + llen ys
-  *** QED
diff --git a/tests/todo/ReflectClient4a.hs b/tests/todo/ReflectClient4a.hs
deleted file mode 100644
--- a/tests/todo/ReflectClient4a.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectClient4a where
-
-import Language.Haskell.Liquid.ProofCombinators
-import ReflectLib3
-
-stupidity = [ undefined gapp ]
-
-{- test1 :: { llen Nil == 0 } @-}
-test1 = ()
-
-{- test2 :: { llen (Cons 2 Nil) == 1 } @-}
-test2 = ()
-
-{- test3 :: { llen (Cons 1 (Cons 2 Nil)) == 2 } @-}
-test3 = ()
-
-{- test4 :: { app Nil Nil == Nil } @-}
-
-{-@ test4 :: { gapp Nil = Nil } @-}
-test4 = ()
-
-
--- {- thmAppLen :: xs:List a -> ys:List a ->
-      -- { llen (app xs ys) == llen xs + llen ys}
-  -- @-}
--- thmAppLen :: List a -> List a -> Proof
--- thmAppLen Nil         ys = trivial
--- thmAppLen (Cons x xs) ys = thmAppLen xs ys
diff --git a/tests/todo/ReflectLib3.hs b/tests/todo/ReflectLib3.hs
deleted file mode 100644
--- a/tests/todo/ReflectLib3.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectLib3 where
-
-import Language.Haskell.Liquid.ProofCombinators
-
--- | Days ---------------------------------------------------------------------
-
-{-@ data Day = Mon | Tue @-}
-data Day = Mon | Tue
-
-{-@ reflect next @-}
-next :: Day -> Day
-next Mon = Tue
-next Tue = Mon
-
-{-@ reflect lDay @-}
-lDay :: List a -> Day
-lDay Nil      = Mon
-lDay (Cons x) = Tue
-
--- | Lists ---------------------------------------------------------------------
-
-{-@ data List  a = Nil | Cons {lHd :: a} @-}
-data List a = Nil | Cons a
-
-
-{-@ reflect gapp @-}
-gapp :: List a -> List a
-gapp Nil      = Nil
-gapp (Cons x) = Cons x
-
-{-@ test4 :: { gapp Nil = Nil } @-}
-test4 = ()
diff --git a/tests/todo/ReflectLib4.hs b/tests/todo/ReflectLib4.hs
deleted file mode 100644
--- a/tests/todo/ReflectLib4.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectLib4 where
-
--- | Lists ---------------------------------------------------------------------
-
-{-@ data List [llen] a = Nil | Cons {lHd :: a, lTl :: List a} @-}
-data List a = Nil | Cons a (List a)
-
-{-@ measure llen @-}
-{-@ llen :: List a -> Nat @-}
-llen :: List a -> Int
-llen Nil        = 0
-llen (Cons h t) = 1 + llen t
-
--- TODO: make this work WITHOUT the invariant
-{-@ invariant {v:List a | 0 <= llen v} @-}
-
-{-@ reflect app @-}
-app :: List a -> List a -> List a
-app Nil         ys = ys
-app (Cons x xs) ys = Cons x (app xs ys)
-
-{-@ reflect gapp @-}
-gapp :: List a -> List a
-gapp Nil         = Nil
-gapp (Cons x xs) = Nil
-
-{-@ test4 :: { gapp Nil = Nil } @-}
-test4 = ()
diff --git a/tests/todo/ReflectLib5.hs b/tests/todo/ReflectLib5.hs
deleted file mode 100644
--- a/tests/todo/ReflectLib5.hs
+++ /dev/null
@@ -1,66 +0,0 @@
-
-{-@ LIQUID "--exact-data-con"                      @-}
-{- LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module ReflectLib3 where
-
-import Language.Haskell.Liquid.ProofCombinators
-
--- | Lists ---------------------------------------------------------------------
-
-{-@ data Day = Mon | Tue @-}
-data Day = Mon | Tue
-
-{-@ reflect next @-}
-next :: Day -> Day
-next Mon = Tue
-next Tue = Mon
-
--- | Lists ---------------------------------------------------------------------
-
-{-@ data List [llen] a = Nil | Cons {lHd :: a, lTl :: List} @-}
-data List a = Nil | Cons a (List a)
-
-{-@ measure llen @-}
-{-@ llen :: xs:List a -> {v:Nat | v = llen xs} @-}
-llen :: List a -> Int
-llen Nil        = 0
-llen (Cons h t) = 1 + llen t
-
-{-@ reflect lSize @-}
-lSize :: List a -> Int
-lSize Nil        = 0
-lSize (Cons h t) = 1 + lSize t
-
-{-@ reflect lDay @-}
-lDay Nil         = Mon 
-lDay (Cons x xs) = Tue
-
--- TODO: NEEDED for the IMPORT to work.
-{-@ invariant { v:List a | 0 <= llen v } @-}
-
-{-@ reflect app @-}
-app :: List a -> List a -> List a
-app Nil         ys = ys
-app (Cons x xs) ys = Cons x (app xs ys)
-
---------------------------------------------------------------------------------
-{-@ thmAppLen :: xs:List a -> ys:List a ->
-      { llen (app xs ys) == llen xs + llen ys}
-  @-}
-thmAppLen :: List a -> List a -> Proof
-thmAppLen Nil ys
-  =   llen (app Nil ys)
-  ==. llen ys
-  ==. llen Nil + llen ys
-  *** QED
-thmAppLen (Cons x xs) ys
-  =   llen (app (Cons x xs) ys)
-  ==. llen (Cons x (app xs ys))
-  ==. 1 + llen (app xs ys)
-      ? thmAppLen xs ys
-  ==. 1 + llen xs + llen ys
-  ==. llen (Cons x xs) + llen ys
-  *** QED
diff --git a/tests/todo/SMTDiverge.hs b/tests/todo/SMTDiverge.hs
deleted file mode 100644
--- a/tests/todo/SMTDiverge.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Chunks where
-
-{-@ go :: Nat -> {v:Int | 1 < v} -> () @-}
-go :: Int -> Int -> ()
-go d n 
-  | d <= n    = ()
-  | otherwise = go (d `div` n) n 
diff --git a/tests/todo/SS.hs b/tests/todo/SS.hs
deleted file mode 100644
--- a/tests/todo/SS.hs
+++ /dev/null
@@ -1,464 +0,0 @@
-{-# LANGUAGE PatternGuards #-}
-
------------------------------------------------------------------------------
--- |
--- Module      :  XMonad.StackSet
--- Copyright   :  (c) Don Stewart 2007
--- License     :  BSD3-style (see LICENSE)
---
--- Maintainer  :  dons@galois.com
--- Stability   :  experimental
--- Portability :  portable, Haskell 98
---
-
-module XMonad.StackSet where
-
-import Prelude hiding (filter, reverse, (++), elem) -- LIQUID
-import Data.Maybe   (listToMaybe,isJust,fromMaybe)
-import qualified Data.List as L (deleteBy,find,splitAt,filter,nub)
-import Data.List ( (\\) )
-import qualified Data.Map  as M (Map,insert,delete,empty)
-import qualified Data.Set -- LIQUID
-
--------------------------------------------------------------------------------
------------------------------ Refinements on  Lists ---------------------------
--------------------------------------------------------------------------------
-
--- measures
-
-{-@
-  measure head :: [a] -> a
-  head([])   = {v | false}
-  head(x:xs) = {v | v = x} 
-  @-}
-
-{-@
-  measure listDup :: [a] -> (Data.Set.Set a)
-  listDup([]) = {v | (? Set_emp (v))}
-  listDup(x:xs) = {v | v = ((Set_mem x (listElts xs))?(Set_cup (Set_sng x) (listDup xs)):(listDup xs)) }
-  @-}
-
--- predicates 
-
-{-@ predicate EqElts X Y =
-       ((listElts X) = (listElts Y)) @-}
-
-{-@ predicate SubElts X Y =
-       (Set_sub (listElts X) (listElts Y)) @-}
-
-{-@ predicate UnionElts X Y Z =
-       ((listElts X) = (Set_cup (listElts Y) (listElts Z))) @-}
-
-{-@ predicate ListElt N LS =
-       (Set_mem N (listElts LS)) @-}
-
-{-@ predicate ListUnique LS =
-       (Set_emp (listDup LS)) @-}
-
-{-@ predicate ListUniqueDif LS X =
-       ((ListUnique LS) && (not (ListElt X LS))) @-}
-
-
-{-@ predicate ListDisjoint X Y =
-       (Set_emp (Set_cap (listElts X) (listElts Y))) @-}
-
-
--- types
-
-{-@ type UList a = {v:[a] | (ListUnique v)} @-}
-
-{-@ type UListDif a N = {v:[a] | ((not (ListElt N v)) && (ListUnique v))} @-}
-
-
-
--------------------------------------------------------------------------------
------------------------------ Refinements on Stacks ---------------------------
--------------------------------------------------------------------------------
-
-{-@
-data Stack a = Stack { focus :: a   
-                     , up    :: UListDif a focus
-                     , down  :: UListDif a focus }
-@-}
-
-{-@ type UStack a = {v:(Stack a) | (ListDisjoint (getUp v) (getDown v))}@-}
-
-{-@ measure getUp :: forall a. (Stack a) -> [a] 
-    getUp (Stack focus up down) = up
-  @-}
-
-{-@ measure getDown :: forall a. (Stack a) -> [a] 
-    getDown (Stack focus up down) = down
-  @-}
-
-{-@ measure getFocus :: forall a. (Stack a) -> a
-    getFocus (Stack focus up down) = focus
-  @-}
-
-{-@ predicate StackElt N S =
-       (((ListElt N (getUp S)) 
-       || (Set_mem N (Set_sng (getFocus S))) 
-       || (ListElt N (getDown S))))
-  @-}
-
-{-@ predicate StackSetVisibleElt N S = true @-}
-{-@ predicate StackSetHiddenElt N S = true @-}
-
-
--------------------------------------------------------------------------------
------------------------  Grap StackSet Elements -------------------------------
--------------------------------------------------------------------------------
-
-{-@ measure stackSetElts :: (StackSet i l a sid sd) -> (Data.Set.Set a)
-    stackSetElts(StackSet current visible hidden f) = (Set_cup (Set_cup (screenElts current) (screensElts visible)) (workspacesElts hidden))
-   @-}
-
-{-@ measure screensElts :: [(Screen i l a sid sd)] -> (Data.Set.Set a)
-    screensElts([])   = {v|(? (Set_emp v))} 
-    screensElts(x:xs) = (Set_cup (screenElt x) (screensElts xs))
-  @-}
-
-{-@ measure screenElts :: (Screen i l a sid sd) -> (Data.Set.Set a)
-    screenElts(Screen w s sd) = (workspaceElts w) @-}
-
-{-@ measure workspacesElts :: [(Workspace i l a)] -> (Data.Set.Set a)
-    workspacesElts([])   = {v|(? (Set_emp v))} 
-    workspacesElts(x:xs) = (Set_cup (workspaceElts x) (workspacesElts xs))
-  @-}
-
-{-@ measure workspaceElts :: (Workspace i l a) -> (Data.Set.Set a)
-    workspaceElts(Workspace t l s) = {v| (if (isJust s) then (stackElts (fromJust s)) else (? (Set_emp v)))} @-}
-
-{-@ measure stackElts :: (StackSet i l a sid sd) -> (Data.Set.Set a)
-    stackElts(Stack f up down) = (Set_cup (Set_sng f) (Set_cup (listElts up) (listElts down))) @-}
-
-{-@ predicate EmptyStackSet X = (? (Set_emp (stackSetElts X)))@-}
-
-
--------------------------------------------------------------------------------
------------------------  Talking about Tags --- -------------------------------
--------------------------------------------------------------------------------
-
-{-@ measure getTag :: (Workspace i l a) -> i
-    getTag(Workspace t l s) = t
-  @-}
-
-{-@ predicate IsCurrentTag X Y = 
-      (X = (getTag (getWorkspaceScreen (getCurrentScreen Y))))
-  @-}
-
--- $intro
---
--- The 'StackSet' data type encodes a window manager abstraction. The
--- window manager is a set of virtual workspaces. On each workspace is a
--- stack of windows. A given workspace is always current, and a given
--- window on each workspace has focus. The focused window on the current
--- workspace is the one which will take user input. It can be visualised
--- as follows:
---
--- > Workspace  { 0*}   { 1 }   { 2 }   { 3 }   { 4 }
--- >
--- > Windows    [1      []      [3*     [6*]    []
--- >            ,2*]            ,4
--- >                            ,5]
---
--- Note that workspaces are indexed from 0, windows are numbered
--- uniquely. A '*' indicates the window on each workspace that has
--- focus, and which workspace is current.
-
--- $zipper
---
--- We encode all the focus tracking directly in the data structure, with a 'zipper':
---
---    A Zipper is essentially an `updateable' and yet pure functional
---    cursor into a data structure. Zipper is also a delimited
---    continuation reified as a data structure.
---
---    The Zipper lets us replace an item deep in a complex data
---    structure, e.g., a tree or a term, without an  mutation.  The
---    resulting data structure will share as much of its components with
---    the old structure as possible.
---
---      Oleg Kiselyov, 27 Apr 2005, haskell\@, "Zipper as a delimited continuation"
---
--- We use the zipper to keep track of the focused workspace and the
--- focused window on each workspace, allowing us to have correct focus
--- by construction. We closely follow Huet's original implementation:
---
---      G. Huet, /Functional Pearl: The Zipper/,
---      1997, J. Functional Programming 75(5):549-554.
--- and:
---      R. Hinze and J. Jeuring, /Functional Pearl: The Web/.
---
--- and Conor McBride's zipper differentiation paper.
--- Another good reference is:
---
---      The Zipper, Haskell wikibook
-
--- $xinerama
--- Xinerama in X11 lets us view multiple virtual workspaces
--- simultaneously. While only one will ever be in focus (i.e. will
--- receive keyboard events), other workspaces may be passively
--- viewable.  We thus need to track which virtual workspaces are
--- associated (viewed) on which physical screens.  To keep track of
--- this, 'StackSet' keeps separate lists of visible but non-focused
--- workspaces, and non-visible workspaces.
-
--- $focus
---
--- Each stack tracks a focused item, and for tiling purposes also tracks
--- a 'master' position. The connection between 'master' and 'focus'
--- needs to be well defined, particularly in relation to 'insert' and
--- 'delete'.
---
-
-------------------------------------------------------------------------
--- |
--- A cursor into a non-empty list of workspaces.
---
--- We puncture the workspace list, producing a hole in the structure
--- used to track the currently focused workspace. The two other lists
--- that are produced are used to track those workspaces visible as
--- Xinerama screens, and those workspaces not visible anywhere.
-
-data StackSet i l a sid sd =
-    StackSet { current  :: !(Screen i l a sid sd)    -- ^ currently focused workspace
-             , visible  :: [Screen i l a sid sd]     -- ^ non-focused workspaces, visible in xinerama
-             , hidden   :: [Workspace i l a]         -- ^ workspaces not visible anywhere
-             , floating :: M.Map a RationalRect      -- ^ floating windows
-             } deriving (Show, Eq)
--- LIQUID             } deriving (Show, Read, Eq)
-
-{-@ 
-data StackSet i l a sid sd =
-    StackSet { current  :: (Screen i l a sid sd)   
-             , visible  :: [Screen i l a sid sd]   
-             , hidden   :: [Workspace i l a]       
-             , floating :: M.Map a RationalRect    
-             }
-@-}
-
-{- invariant {v:(StackSet i l a sid sd) | 
-     (((?(
-       Set_emp (Set_cap (screenElts (getCurrentScreen v)) 
-                        (screensElts (getVisible v))
-      ))) && (?(
-       Set_emp (Set_cap (screenElts (getCurrentScreen v)) 
-                        (workspacesElts (getHidden v))
-      )))) && (?(
-       Set_emp (Set_cap (workspacesElts (getHidden v)) 
-                        (screensElts (getVisible v))
-      ))))} @-}
-
-{-@ measure getCurrentScreen :: (StackSet i l a sid sd) -> (Screen i l a sid sd)
-    getCurrentScreen(StackSet current v h f) = current @-}
-
-{-@ measure getVisible :: (StackSet i l a sid sd) -> [(Screen i l a sid sd)]
-    getVisible(StackSet current v h f) = v @-}
-
-{-@ measure getHidden :: (StackSet i l a sid sd) -> [(Workspace i l a)]
-    getHidden(StackSet current v h f) = h @-}
-
-{-@ predicate StackSetCurrentElt N S = 
-      (ScreenElt N (getCurrentScreen S))
-  @-}
-
-{-@ current :: s:(StackSet i l a sid sd) 
-            -> {v:(Screen i l a sid sd) | v = (getCurrentScreen s)}
-  @-}
-
-{-@ stack :: w:(Workspace i l a) 
-          -> {v:(Maybe (UStack a)) | v = (getStackWorkspace w)}
-  @-}
-
-{-@ workspace :: s:(Screen i l a sid sd) 
-              -> {v:(Workspace i l a) | v = (getWorkspaceScreen s)}
-  @-}
-
-{-@ tag :: w:(Workspace i l a) -> {v:i|v = (getTag w)} @-}
-
--- | Visible workspaces, and their Xinerama screens.
-data Screen i l a sid sd = Screen { workspace :: !(Workspace i l a)
-                                  , screen :: !sid
-                                  , screenDetail :: !sd }
-    deriving (Show, Eq)
--- LIQUID    deriving (Show, Read, Eq)
-
-{-@ 
-data Screen i l a sid sd = Screen { workspace :: (Workspace i l a)
-                                  , screen :: sid
-                                  , screenDetail :: sd }
-@-}
-
-{-@ measure getWorkspaceScreen :: (Screen i l a sid sd) -> (Workspace i l a)
-    getWorkspaceScreen(Screen w screen s) = w @-}
-
-
-{-@ predicate ScreenElt N S = 
-      (WorkspaceElt N (getWorkspaceScreen S))
-  @-}
-
-
--- |
--- A workspace is just a tag, a layout, and a stack.
---
-data Workspace i l a = Workspace  { tag :: !i, layout :: l, stack :: Maybe (Stack a) }
-    deriving (Show, Eq)
---     deriving (Show, Read, Eq)
-
-{-@
-data Workspace i l a = Workspace  { tag :: i, layout :: l, stack :: Maybe (UStack a) }
-  @-}
-
-{-@ measure getStackWorkspace :: (Workspace i l a) -> (Maybe(Stack a))
-    getStackWorkspace(Workspace t l stack) = stack @-}
-
-{-@ predicate WorkspaceElt N W =
-  ((isJust (getStackWorkspace W)) && (StackElt N (fromJust (getStackWorkspace W)))) @-}
-
--- | A structure for window geometries
-data RationalRect = RationalRect Rational Rational Rational Rational
-    deriving (Show, Read, Eq)
-
--- |
--- A stack is a cursor onto a window list.
--- The data structure tracks focus by construction, and
--- the master window is by convention the top-most item.
--- Focus operations will not reorder the list that results from
--- flattening the cursor. The structure can be envisaged as:
---
--- >    +-- master:  < '7' >
--- > up |            [ '2' ]
--- >    +---------   [ '3' ]
--- > focus:          < '4' >
--- > dn +----------- [ '8' ]
---
--- A 'Stack' can be viewed as a list with a hole punched in it to make
--- the focused position. Under the zipper\/calculus view of such
--- structures, it is the differentiation of a [a], and integrating it
--- back has a natural implementation used in 'index'.
---
-data Stack a = Stack { focus  :: !a        -- focused thing in this set
-                     , up     :: [a]       -- clowns to the left
-                     , down   :: [a] }     -- jokers to the right
-     deriving (Show, Eq)
--- LIQUID      deriving (Show, Read, Eq)
-{-@ predicate IsTagInStackSet T ST = 
-    ((( (T = (getTag (getWorkspaceScreen (getCurrentScreen ST))))
-     )) || ((
-      (Set_mem T (getTagScreens (getVisible ST)))
-    ) || (false)))
-  @-}
-
---       (Set_mem T (getTagScreens (getVisible ST)))
-{-@ view :: (Eq s, Eq i) 
-         => t:i 
-         -> st: {v:(StackSet i l a s sd) | true}
-         -> {v:StackSet i l a s sd|((IsTagInStackSet t st) => (IsCurrentTag t v))} @-}
-view :: (Eq s, Eq i) => i -> StackSet i l a s sd -> StackSet i l a s sd
-view i s
-    | i == currentTag s = s  -- current
-
-    | Just x <- findTagInScreen i (visible s)
-    -- if it is visible, it is just raised
-    = s { current = x, visible = current s : L.deleteBy (equating screen) x (visible s) }
-
---     | Just x <- findTagInWorkspace i (hidden  s) -- must be hidden then
-    -- if it was hidden, it is raised on the xine screen currently used
---     = s { current = (current s) { workspace = x }
---         , hidden = workspace (current s) : L.deleteBy (equating tag) x (hidden s) }
-
---     | otherwise = s -- not a member of the stackset
-
-  where equating f = \x y -> f x == f y
-
-{-@ findTagInScreen :: (Eq i) 
-         => t:i 
-         -> s:([Screen i l a sid sd])
-         -> {v:(Maybe (Screen i l a sid sd)) | ( ((isJust v) =>  (t = (getTag (getWorkspaceScreen (fromJust v))))))}
-  @-}
-findTagInScreen :: (Eq i) => i -> [Screen i l a sid sd] -> Maybe (Screen i l a sid sd)
-findTagInScreen i []     = Nothing
-findTagInScreen i (x:xs) 
-  | i == (tag (workspace x)) = Just x
-  | otherwise                = findTagInScreen i xs
-
-{-@ findTagInWorkspace :: (Eq i) 
-         => t:i 
-         -> [Workspace i l a] 
-         -> {v:(Maybe (Workspace i l a)) | ((isJust v) => (t = (getTag (fromJust v))))}
-  @-}
-findTagInWorkspace :: (Eq i) => i -> [Workspace i l a] -> Maybe (Workspace i l a)
-findTagInWorkspace i []     = Nothing
-findTagInWorkspace i (x:xs) 
-  | i == (tag x) = Just x
-  | otherwise    = findTagInWorkspace i xs
-
-{-@ qview :: x:(Workspace i l a) -> {v:(Screen i l a sid sd)|(getWorkspaceScreen v) = x} @-}
-qview :: Workspace i l a -> Screen i l a sid sd 
-qview = undefined
-
-{-@ qview1 :: x:(Screen i l a sid sd) -> {v:(StackSet i l a sid sd)|(getCurrentScreen v) = x} @-}
-qview1 :: Screen i l a sid sd -> StackSet i l a sid sd 
-qview1 = undefined
-
-{-@ qview2 :: x:([Workspace i l a]) -> {v:(StackSet i l a sid sd)|(getHidden v) = x} @-}
-qview2 :: [Workspace i l a] -> StackSet i l a sid sd 
-qview2 = undefined
-
-{-@ qview3 :: x:([Screen i l a sid sd]) -> {v:(StackSet i l a sid sd)|(getVisible v) = x} @-}
-qview3 :: [Screen i l a sid sd] -> StackSet i l a sid sd 
-qview3 = undefined
-
-{-@ 
-qview4 :: x : (Screen i l a sid sd)
-       -> y : ([Screen i l a sid sd])
-       -> z : Workspace i l a
-       -> {v:(StackSet i l a sid sd)|(stackSetElts v) = 
-         (Set_cup (Set_cup (screenElts x) (screensElts y)) 
-                   (workspaceElts z))}
-@-}
-qview4 :: (Screen i l a sid sd)
-       -> [Screen i l a sid sd]
-       -> Workspace i l a
-       -> StackSet i l a sid sd
-qview4 = undefined
-
-    -- 'Catch'ing this might be hard. Relies on monotonically increasing
-    -- workspace tags defined in 'new'
-    --
-    -- and now tags are not monotonic, what happens here?
-
--- |
--- Set focus to the given workspace.  If that workspace does not exist
--- in the stackset, the original workspace is returned.  If that workspace is
--- 'hidden', then display that workspace on the current screen, and move the
--- current workspace to 'hidden'.  If that workspace is 'visible' on another
--- screen, the workspaces of the current screen and the other screen are
--- swapped.
-
-{-@ measure getTagWorkspace :: (Workspace i l a) -> (Data.Set.Set i)
-    getTagWorkspace(Workspace t l s) = (Set_sng t)
-  @-}
-
-{-@ measure getTagScreen :: (Screen i l a sid sd) -> (Data.Set.Set i)
-    getTagScreen(Screen w s sd) = (getTagWorkspace w)
-  @-}
-
-{-@ measure getTagScreens :: ([(Screen i l a sid sd)]) -> (Data.Set.Set i)
-    getTagScreens([])   = {v | (?(Set_emp v))}
-    getTagScreens(x:xs) = (Set_cap (getTagScreen x) (getTagScreens xs))
-  @-}
-
-
-{-@ currentTag :: s: StackSet i l a s sd -> {v:i|(IsCurrentTag v s)} @-}
-currentTag :: StackSet i l a s sd -> i
-currentTag = tag . workspace . current
-
--- LIQUID : qualifier missing for currentTag
-{-@ qcurrentTag :: s:(StackSet i l a s sd) 
-                -> {v:(Workspace i l a) | v = (getWorkspaceScreen (getCurrentScreen s))} @-}
-qcurrentTag :: StackSet i l a s sd -> Workspace i l a 
-qcurrentTag = workspace . current
-
-
diff --git a/tests/todo/SYB_Literals.hs b/tests/todo/SYB_Literals.hs
deleted file mode 100644
--- a/tests/todo/SYB_Literals.hs
+++ /dev/null
@@ -1,125 +0,0 @@
-{-@ LIQUID "--no-case-expand" @-}
-{-# LANGUAGE LambdaCase, DeriveDataTypeable, OverloadedStrings, GeneralizedNewtypeDeriving #-}
-
-import qualified Data.Map as Map
-import qualified Data.Generics as SYB
-import Data.String
-import Text.PrettyPrint
-
--- Syntax
-
-newtype Var = Var String
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable, IsString)
-
-newtype Con = Con String
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable, IsString)
-
-type Alts = [(Con, [Var], Expr)]
-
-data Expr
-  = EVar Var
-  | ELam Var Expr
-  | EApp Expr Var
-  | ELet [(Var, Expr)] Expr
-  | ECon Con [Var]
-  | ECase Expr Alts
-  deriving (Eq, Ord, Show, SYB.Data, SYB.Typeable)
-
-instance IsString Expr where
-  fromString = EVar . fromString
-
-isValue :: Expr -> Bool
-isValue = \case
-  ELam {} -> True
-  ECon {} -> True
-  _ -> False
-
--- Abstract machine
-type Heap = Map.Map Var Expr
-type Stack = [StackItem]
-data StackItem
-  = StackUpdate Var
-  | StackVar Var
-  | StackAlts Alts
-  deriving (Show, SYB.Data, SYB.Typeable)
-data Machine = Machine Heap Expr Stack
-  deriving (Show)
-
-step :: Machine -> Machine
-step (Machine heap e stack)
-  -- Lookup
-  | EVar x <- e =
-      let m = heap Map.! x
-      in Machine heap m (StackUpdate x : stack)
-  -- Update
-  | isValue e, StackUpdate v : stack' <- stack =
-      Machine (Map.insert v e heap) e stack'
-  -- Unwind
-  | EApp m x <- e = Machine heap m (StackVar x : stack)
-  -- Subst
-  | ELam x m <- e, StackVar y : stack' <- stack =
-      Machine heap (subst (Map.singleton x y) e) stack'
-  -- Case
-  | ECase m alts <- e = Machine heap m (StackAlts alts : stack)
-  -- Branch
-  | ECon con xs <- e, StackAlts alts : stack' <- stack =
-      let [(boundVars, body)] = [(boundVars, body) | (con', boundVars, body) <- alts, con == con']
-          e' = subst (Map.fromList $ zip boundVars xs) body
-      in Machine heap e' stack'
-  -- Letrec
-  | ELet binds body <- e = Machine (Map.union (Map.fromList binds) heap) body stack
-
-subst :: Map.Map Var Var -> Expr -> Expr
-subst sm = \case
-  EVar x | Just y <- Map.lookup x sm -> EVar y
-  e@(ELam z body) -> ELam z (subst (Map.delete z sm) body)
-  e -> SYB.gmapT (SYB.mkT $ subst sm) e
-
-initMachine :: Expr -> Machine
-initMachine e = Machine Map.empty e []
-
-isFinished :: Machine -> Bool
-isFinished (Machine _ e stack) = isValue e && null stack
-
-run :: Machine -> Machine
-run m
-  | isFinished m = m
-  | otherwise = run $ step m
-
--- Pretty-printing
-ppVar (Var x) = text x
-ppCon (Con x) = text x
-ppExpr :: Expr -> Doc
-ppExpr = ppExpr' False
-ppExpr' :: Bool -> Expr -> Doc
-ppExpr' p e =
-  let maybeParens = if p then parens else id in
-  case e of
-    EVar x -> ppVar x
-    ELam x body -> maybeParens $
-      text "λ" <> ppVar x <> text "." <> ppExpr' False body
-    EApp a b -> ppExpr' False a <+> ppVar b
-    ECon con xs -> sep $ ppCon con : map ppVar xs
-    ELet binds body ->
-      vcat
-        [ "let" $$ nest 2 (vcat (punctuate semi (map (\(v,e) -> ppVar v <+> hang "=" 2 (ppExpr e)) binds)))
-        , "in" $$ nest 2 (ppExpr body)
-        ]
-    ECase e alts ->
-      let ppAlt (con, vars, body) =
-            ppCon con <+> sep (map ppVar vars) <+> "->" <+> ppExpr body
-      in text "case" <+> ppExpr e <+> "of" $$ nest 2 (vcat (map ppAlt alts))
-
--- Some object-language programs
-nil, cons :: Expr
-nil = ECon "nil" []
-cons = ELam "x" $ ELam "y" $ ECon "cons" ["x", "y"]
-append = ELet [("append", appendBind)] "append"
-  where
-    appendBind =
-      ELam "a" $ ELam "b" $ ECase "a"
-        [("nil", [], "b")
-        ,("cons", ["x", "xs"],
-          ELet [("r", "append" `EApp` "xs" `EApp` "b")]
-            (cons `EApp` "x" `EApp` "r"))
-        ]
diff --git a/tests/todo/SearchTree.hs b/tests/todo/SearchTree.hs
deleted file mode 100644
--- a/tests/todo/SearchTree.hs
+++ /dev/null
@@ -1,157 +0,0 @@
--- ISSUE: 
--- This file takes nearly a MINUTE when automatic-instances is off,
--- and FOREVER when automatic-instances is on.
-
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-
-{- LIQUID "--automatic-instances=liquidinstances" @-}
-
-module SearchTree where
-
-import Language.Haskell.Liquid.ProofCombinators
-import Prelude hiding (max)
-
--- | Options -------------------------------------------------------------------
-
-{-@ data Option a = None | Some a @-}
-data Option a = None | Some a
-
--- | Maps ----------------------------------------------------------------------
-
-{-@ data Map [size] k v =
-      Leaf
-    | Node { mKey   :: k
-           , mVal   :: v
-           , mLeft  :: Map k v
-           , mRigsize :: Map k v }
-  @-}
-
-data Map k v
-  = Leaf
-  | Node k v (Map k v) (Map k v)
-
-{-@ measure size @-}
-{-@ size :: Map k v -> Nat @-}
-size :: Map k v -> Int
-size Leaf           = 0
-size (Node k v l r) = 1 + size l + size r     -- TODO: silly termination error
-
-{-@ invariant {v:Map k v | 0 <= size v } @-}
-
--- | Map Operations ------------------------------------------------------------
-
-{-@ reflect get @-}
-
-get :: (Ord k) => k -> Map k v -> Option v
-get key Leaf           = None
-get key (Node k v l r)
-  | key == k           = Some v
-  | key <  k           = get key l
-  | otherwise          = get key r
-
-
-{-@ reflect put @-}
-
-put :: (Ord k) => k -> v -> Map k v -> Map k v
-put key val Leaf       = Node key val Leaf Leaf
-put key val (Node k v l r)
-  | key == k           = Node key val l r
-  | key <  k           = Node k v (put key val l) r
-  | otherwise          = Node k v l (put key val r)
-
--- | Map Laws ------------------------------------------------------------------
-
-{-@ thmGetEq :: (Ord k) => key:k -> val:v -> m:Map k v ->
-      { get key (put key val m) = Some val }
-  @-}
-thmGetEq :: (Ord k) => k -> v -> Map k v -> Proof
-thmGetEq key val Leaf =   get key (put key val Leaf)
-                      ==. get key (Node key val Leaf Leaf)
-                      ==. Some val
-                      *** QED
-
-thmGetEq key val (Node k v l r)
-  | key == k          =   get key (put key val (Node k v l r))
-                      ==. get key (Node key val l r)
-                      ==. Some val
-                      *** QED
-
-  | key <  k          =   get key (put key val (Node k v l r))
-                      ==. get key (Node k v (put key val l) r)    -- THIS LINE IS NEEDED
-                      ==. get key (put key val l)
-                          ? thmGetEq key val l
-                      ==. Some val
-                      *** QED
-
-  | otherwise         =   get key (put key val (Node k v l r))
-                      ==. get key (Node k v l (put key val r))    -- THIS LINE IS NEEDED
-                      ==. get key (put key val r)
-                          ? thmGetEq key val r
-                      ==. Some val
-                      *** QED
-
-{-@ thmGetNeq :: (Ord k) => k1:k -> k2:{k | k1 /= k2} -> v2:v -> m:Map k v ->
-      { get k1 (put k2 v2 m) = get k1 m }
-  @-}
-thmGetNeq :: (Ord k) => k -> k -> v -> Map k v -> Proof
-thmGetNeq k1 k2 v2 Leaf
-  | k1 < k2             =   get k1 (put k2 v2 Leaf)
-                        ==. get k1 (Node k2 v2 Leaf Leaf)
-                        ==. get k1 Leaf
-                        *** QED
-
-  | otherwise           =   get k1 (put k2 v2 Leaf)
-                        ==. get k1 (Node k2 v2 Leaf Leaf)
-                        ==. get k1 Leaf
-                        *** QED
-
-thmGetNeq k1 k2 v2 (Node k v l r)
-  | k1 <  k, k <  k2    =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v l (put k2 v2 r))
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k1 <  k, k == k2    =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v2 l r)
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k1 == k, k <  k2    =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v l (put k2 v2 r))
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-
-  | k2 <  k, k <  k1    =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v (put k2 v2 l) r)
-                        ==. get k1 r
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k2 <  k, k == k1    =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v (put k2 v2 l) r)
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k2 == k, k < k1     =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v2 l r)
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k1 < k, k2 < k      =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v (put k2 v2 l) r)
-                        ==. get k1 (put k2 v2 l)
-                            ? thmGetNeq k1 k2 v2 l
-                        ==. get k1 l
-                        ==. get k1 (Node k v l r)
-                        *** QED
-
-  | k < k1, k < k2      =   get k1 (put k2 v2 (Node k v l r))
-                        ==. get k1 (Node k v l (put k2 v2 r))
-                        ==. get k1 (put k2 v2 r)
-                            ? thmGetNeq k1 k2 v2 r
-                        ==. get k1 r
-                        ==. get k1 (Node k v l r)
-                        *** QED
diff --git a/tests/todo/SelfRefPredicates.hs b/tests/todo/SelfRefPredicates.hs
deleted file mode 100644
--- a/tests/todo/SelfRefPredicates.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Fixme where
-
-{-@ bindST :: forall <p :: s -> Prop, q :: s -> a -> s -> Prop, r :: s -> b -> s -> Prop>.
-            (xm:s<p> -> (a, s)<q xm>) 
-         -> (xbind:a ->  xk:(exists[xxxa:a].exists[xxa:s<p>].s<q xxa xxxa>) -> (b, s)<r xk>) 
-         -> xr:s<p> -> exists[xa:a]. exists[xxx:s<q xr xa>]. (b, s)<r xxx>
- @-}
-bindST :: (s -> (a, s)) -> (a -> (s -> (b, s))) -> (s ->  (b, s))
-bindST m k s =  let (a, s') = m s in (k a) s'
-
-
-
-{-@ returnST :: forall <p :: s -> a -> s -> Prop>.
-                   xa:a -> xs:s<p v xa> -> (a,s)<p xs> @-}
-returnST :: a -> s -> (a, s)
-returnST x s = (x, s) 
diff --git a/tests/todo/Signal.hs b/tests/todo/Signal.hs
deleted file mode 100644
--- a/tests/todo/Signal.hs
+++ /dev/null
@@ -1,77 +0,0 @@
-
---
--- The MoCC of Signal in Haskell (clocked)
--- Jean-Pierre.Talpin@inria.fr 12/3/15
---
-
-Module Signals where
-
--- an event is (now) present with a value or (determined) absent
-
-data Event a = absent | now a
-
--- a signal is a (non empty?) lazy list of events 
--- type Signal a = {v: [Event a] | len(v) > 0}
-
-type Signal a = [Event a]
-
--- the clock of a signal 
-
-measure clk :: a Signal -> Bool
-clk (absent : _) = false
-clk ((now _) : _) = true
-
--- the value of a signal 
-
-measure val :: a Signal -> a
-val ((now v) : _) = v
-
--- not defined if absent ... how to say that val v => clk v ?
-
--- feedback: pre initially returns w and then the stored head of x
--- pre's, y's and w property should be a fixpoint p
---
---      {-@ pre :: forall <p :: Prop>. Signal a<p> -> a<p> -> Signal a<p> @-}
---
--- p should contain clk x = clk pre here just true
-
-pre :: Signal a -> a -> Signal a
-pre (x as ((now v) : _) w = (now w) : pre x v
-pre (x as (absent  : _) w =  absent : pre x w
-infix pre
-
--- synchronous sample à la Lustre
-
-{-@ sample :: x:Signal a -> y:Signal Bool -> {v:Signal a| clk v = clk x = clk y} @-}
-
-sample :: Signal a -> Signal Bool -> Signal a
-sample ((now v) : x) ((now True)  : y) = v : sample x y
-sample ((now _) : x) ((now False) : y) = absent : sample x y
-sample (absent  : x) (absent      : y) = absent : sample x y
-
--- synchronous merge à la Lustre
-
-{-@ merge :: x:Signal Bool -> y:Signal a -> z:Signal a -> {v:Signal a| clk v = clk x = clk y = clk z} @-}
-
-merge :: Signal Bool -> Signal a -> Signal a -> Signal a
-merge ((now True)  : x) ((now v) : y) ((now _) : z) = v : merge x y z
-merge ((now False) : x) ((now _) : y) ((now v) : z) = v : merge x y z
-merge (absent      : x) (absent  : y) (absent  : z) = absent : merge x y z
-
--- sample à la Signal
-
-{-@ when :: x:Signal a -> y:Signal Bool -> {v:Signal a| clk v = clk x and val y} @-}
-
-when :: Signal a -> Signal Bool -> Signal a
-when ((now v) : x) ((now True)  : y) = v : when x y
-when (_       : x) ((now False) : y) = absent : when x y
-when (_       : x) (absent      : y) = absent : when x y
-
--- merge à la Signal
-
-{-@ combine :: x:Signal Bool -> y:Signal a -> z:Signal a -> {v:Signal a| clk v = clk x or clk y} @-}
-
-combine :: Signal a -> Signal a -> Signal a
-combine ((now v) : x) (_ : y) = v : combine x y 
-combine (absent  : x) (v : y) = v : combine x y
-
diff --git a/tests/todo/SortedLists.lhs b/tests/todo/SortedLists.lhs
deleted file mode 100644
--- a/tests/todo/SortedLists.lhs
+++ /dev/null
@@ -1,58 +0,0 @@
-\begin{code}
-module SortedLists where
-\end{code}
-
-I want to prove that in a sorted list every element is `>=` than the head:
-
-\begin{code}
-{-@ type SL a = [a]<{\x v -> x <= v}> @-}
-
-{-@ measure head :: [a] -> a
-    head (x:xs) = x
-  @-}
-\end{code}
-
-
-Turns out that to prove it I have to compose the list using `:`
-(liquidHaskell only proves `proveOK`)
-\begin{code}
-{-@ propOKA, propOKB, propBADA, propBADB, propBADC :: 
-      Ord a => xs:(SL a)  -> [{v:a|v >= (head xs)}] 
-  @-}
-propOKA, propOKB, propBADA, propBADB, propBADC :: 
-      Ord a => [a] -> [a]
-\end{code}
-
-\begin{code}
-propOKA xxs@(x:xs) = x:xs
-propOKB xxs@(x:xs) = listID xxs
-
-listID (x:xs) = (x:xs)
-listID []     = []
-\end{code}
-
-We know that both `x` and `xs` satisfy the desired property 
-but polymorphism on `:` is the way to transfer this information to the result.
-Any attempt that doesn't use this information fails:
-\begin{code}
-propBADA xxs@(x:xs) = xxs
-propBADB xxs@(x:xs) = id xxs
-propBADC xxs@(x:xs) = listID' xxs
-
-{-@ listID' :: forall <p :: a -> a -> Prop> . [a]<p> -> [a]<p> @-}
-listID' :: [a] -> [a]
-listID' (x:xs) = (x:xs)
-listID' []     = []
-\end{code}
-
-So, the following version of `merge` fails:
-
-\begin{code}
-{-@ LIQUID "--no-termination" @-}
-{-@ merge :: Ord a => (SL a) -> (SL a) -> (SL a) @-}
-merge :: Ord a => [a] -> [a] -> [a]
-merge xxs@(x:xs) yys@(y:ys)
-  | x <= y    = x : merge xs yys
-  | otherwise = y : merge xxs ys
-\end{code}
-
diff --git a/tests/todo/StateConstraints.hs b/tests/todo/StateConstraints.hs
deleted file mode 100644
--- a/tests/todo/StateConstraints.hs
+++ /dev/null
@@ -1,109 +0,0 @@
-module Compose where
-
-
-
-
-data ST s a = ST {runState :: s -> (a,s)}
-
-{-@ data ST s a <p :: s -> Prop, q :: s -> s -> Prop, r :: s -> a -> Prop> 
-  = ST (runState :: x:s<p> -> (a<r x>, s<q x>)) @-}
-
- {-@ runState :: forall <p :: s -> Prop, q :: s -> s -> Prop, r :: s -> a -> Prop>. ST <p, q, r> s a -> x:s<p> -> (a<r x>, s<q x>) @-}
-
-
-
-{-
-cmp :: forall < pref :: s -> Prop, postf :: s -> s -> Prop
-              , pre  :: s -> Prop, postg :: s -> s -> Prop
-              , post :: s -> s -> Prop
-              , rg   :: s -> a -> Prop
-              , rf   :: s -> b -> Prop
-              , r    :: s -> b -> Prop
-              >. 
-       {xx:s<pre> -> w:s<postg xx> -> s<postf w> -> s<post xx>}
-       {ww:s<pre> -> s<postg ww> -> s<pref>}
-       (ST <pre, postg, rg> s a)
-    -> (ST <pref, postf, rf> s b)
-    -> (ST <pre, post, r> s b)
-@-}
-
-cmp :: (ST s a)
-    -> (ST s b)
-    -> (ST s b)
-
-cmp (ST g) (ST f) = ST (\x -> case g x of {(_, s) -> f s})    
-
-{-@ 
-bind :: forall < pref :: s -> Prop, postf :: s -> s -> Prop
-              , pre  :: s -> Prop, postg :: s -> s -> Prop
-              , post :: s -> s -> Prop
-              , rg   :: s -> a -> Prop
-              , rf   :: s -> b -> Prop
-              , r    :: s -> b -> Prop
-              , pref0 :: a -> Prop 
-              >. 
-       {x:s<pre> -> a<rg x> -> a<pref0>}      
-       {x:s<pre> -> y:s<postg x> -> b<rf y> -> b<r x>}
-       {xx:s<pre> -> w:s<postg xx> -> s<postf w> -> s<post xx>}
-       {ww:s<pre> -> s<postg ww> -> s<pref>}
-       (ST <pre, postg, rg> s a)
-    -> (a<pref0> -> ST <pref, postf, rf> s b)
-    -> (ST <pre, post, r> s b)
-@-}
-
-bind :: (ST s a)
-    -> (a -> ST s b)
-    -> (ST s b)
-
-bind (ST g) f = ST (\x -> case g x of {(y, s) -> (runState (f y)) s})    
-
-
-{-@ unit :: forall s a <p :: s -> Prop>. x:a -> ST <p, {\s v -> v == s}, {\s v -> x == v}> s a @-}
-unit :: a -> ST s a
-unit x = ST $ \s -> (x, s)
-
-{-@ incr :: ST <{\x -> x >= 0}, {\x v -> v = x + 1}, {\x v -> v = x}>  Nat Nat @-}
-incr :: ST Int Int
-incr = ST $ \x ->  (x, x + 1)
-
-{-@ incr' :: ST <{\x -> x >= 0}, {\x v -> v = x + 1}, {\w vw -> vw = w}>  Nat Nat @-}
-incr' :: ST Int Int
-incr' = bind incr (\x -> unit x)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/todo/Strings.hs b/tests/todo/Strings.hs
deleted file mode 100644
--- a/tests/todo/Strings.hs
+++ /dev/null
@@ -1,39 +0,0 @@
-module DBC where
-
-import GHC.CString  -- This import interprets Strings as constants!
-
-
-import Data.Set
-{-
-bar :: () -> String 
-{- bar :: () -> {x:String | x = unpack "foo" && len x >= 0} @-}
-bar _ = "foo"
-
-
-{- prop :: {v:Bool | Prop v <=> true} @-}
-prop :: Bool
-prop = foo1 == foo2 
-  where foo1 = "foo"
-        foo2 = "foo"
--}
-
-
-data Foo = FFFF | QQQQ deriving Eq
-
-{-@ prop2 :: {v:Bool | Prop v <=> true} @-}
-prop2 :: Bool
-prop2 = foo1 /= foo2 
-  where foo1 = FFFF
-        foo2 = QQQQ
-
-
--- one character strings seems to crash....
-{-@ prop3 :: {v:[String] | listElts v ~~ Set_sng "x"} @-}
-prop3 :: [String]
-prop3 = ["x"]
-
-{-@ prop1 :: {v:Bool | Prop v <=> true} @-}
-prop1 :: Bool
-prop1 = foo1 /= foo2 
-  where foo1 = "foo"
-        foo2 = "bar"
diff --git a/tests/todo/SubType.hs b/tests/todo/SubType.hs
deleted file mode 100644
--- a/tests/todo/SubType.hs
+++ /dev/null
@@ -1,22 +0,0 @@
-module HOSubtype where
-
-{-@ foo :: f:(x:{v:Int | false} -> {v:Int | v = x}) -> () @-}
-foo    :: (Int -> Int) -> ()
-foo pf = ()
-
-test0 :: ()
-test0  = foo useless_proof
-
-{-@ generic_accept_stable ::
-                    f:(x:a -> {v:a | (v = x)}) ->
-                    ()
-                    @-}
-generic_accept_stable :: (a -> a) -> ()
-generic_accept_stable pf = ()
-
-{-@ useless_proof :: x:{v:Int | v > 0} -> {v:Int | v > 0} @-}
-useless_proof :: Int -> Int
-useless_proof _ = 5
-
-test :: ()
-test = generic_accept_stable useless_proof
diff --git a/tests/todo/SuperClassBounds.hs b/tests/todo/SuperClassBounds.hs
deleted file mode 100644
--- a/tests/todo/SuperClassBounds.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Compose where
-
-import Prelude hiding (Functor, Monad)
-
-data ST s a = ST {runState :: s -> (a,s)}
-
-{-@ data ST s a <p :: s -> Prop, q :: s -> s -> Prop, r :: s -> a -> Prop> 
-  = ST (runState :: x:s<p> -> (a<r x>, s<q x>)) @-}
-
-{-@ runState :: forall <p :: s -> Prop, q :: s -> s -> Prop, r :: s -> a -> Prop>. ST <p, q, r> s a -> x:s<p> -> (a<r x>, s<q x>) @-}
-
-class Functor f where
-  fmap :: (a -> b) -> f a -> f b
-
-instance Functor (ST s) where
-  fmap f (ST g) = ST (\s -> let (a, s') = g s in (f a, s'))
-
-class Functor m => Monad m where
-  (>>) :: m a -> m b -> m b
-
-instance Monad (ST s) where
-  {-@ instance Monad ST s where
-    >>  :: forall s a b  < pref :: s -> Prop, postf :: s -> s -> Prop
-              , pre  :: s -> Prop, postg :: s -> s -> Prop
-              , post :: s -> s -> Prop
-              , rg   :: s -> a -> Prop
-              , rf   :: s -> b -> Prop
-              , r    :: s -> b -> Prop
-              >. 
-       {x::s<pre>, y::s<postg x> |- b<rf y> <: b<r x>}
-       {xx::s<pre>, w::s<postg xx> |- s<postf w> <: s<post xx>}
-       {ww::s<pre> |- s<postg ww> <: s<pref>}
-       (ST <pre, postg, rg> s a)
-    -> (ST <pref, postf, rf> s b)
-    -> (ST <pre, post, r> s b)
-    @-}
-  (ST g) >>  f = ST (\x -> case g x of {(y, s) -> (runState f) s})    
diff --git a/tests/todo/T658.hs b/tests/todo/T658.hs
deleted file mode 100644
--- a/tests/todo/T658.hs
+++ /dev/null
@@ -1,13 +0,0 @@
--- #658, fails if you comment out test1 (and test2?)
-
-{-@ test1 :: n: {v : Int | v >= 0} -> lst: {v : [a] | n < len v} -> {v : [a] | len v = len lst - n } @-}
-test1 :: Int -> [a] -> [a]
-test1 n lst = b where (_, b) = splitAt n lst
-
-{-@ test2 :: n: {v : Int | v >= 0} -> lst: {v : [a] | n < len v} -> {v : [a] | len v = n } @-}
-test2 :: Int -> [a] -> [a]
-test2 n lst = a where (a, _) = splitAt n lst
-
-{-@ test3 :: n: {v : Int | v >= 0} -> lst: {v : [a] | n < len v} -> {v : [a] | len v = len lst } @-}
-test3 :: Int -> [a] -> [a]
-test3 n lst = a ++ b where (a, b) = splitAt n lst
diff --git a/tests/todo/T765.hs b/tests/todo/T765.hs
deleted file mode 100644
--- a/tests/todo/T765.hs
+++ /dev/null
@@ -1,10 +0,0 @@
--- | issue #765 we get complete gibberish for inferred types
--- * nothing for 'gunk'
--- * {v = 1} for `z`
-
-module Bar where
-
-{-@ bar :: Nat -> Nat @-}
-bar :: Int -> Int 
-bar z = let gunk = z + 1 
-        in gunk
diff --git a/tests/todo/T770.hs b/tests/todo/T770.hs
deleted file mode 100644
--- a/tests/todo/T770.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-{- This fails with
-
-```
-/Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/lts-5.9/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/Prelude.spec:43:20: Error: GHC Error
-
-43 | type FF      = {v: Bool          | not (Prop v)}
-                        ^
-
-    Not in scope: type constructor or class `Bool'
-```
-
-if we UNCOMMENT import (1) then we get the error
-
-```
- /Users/rjhala/research/stack/liquidhaskell/.stack-work/install/x86_64-osx/lts-5.9/7.10.3/share/x86_64-osx-ghc-7.10.3/liquidhaskell-0.6.0.0/include/GHC/CString.spec:7:10: Error: GHC Error
-
- 7 |   -> {v:[Char] | v ~~ x && len v == strLen x}
-              ^
-
-     Not in scope: type constructor or class `Char'
-```
-
-if we UNCOMMENT import (2) then we get no errors
-
--}
-
-module Wrenn where
-
-import Prelude ()
-
-import Data.Int
-
--- (1) import Data.Bool
--- (2) import Data.Char
-
-incr :: Int
-incr = 1
diff --git a/tests/todo/T771.hs b/tests/todo/T771.hs
deleted file mode 100644
--- a/tests/todo/T771.hs
+++ /dev/null
@@ -1,20 +0,0 @@
-{- This fails with the error:
-
-```
- /Users/rjhala/research/stack/liquidhaskell/tests/todo/T771.hs:7:13: Error: Bad Type Specification
- Wrenn.incr :: (Num a) => a -> {VV : a | VV == thing}
-     Sort Error in Refinement: {VV : a_amT | VV == thing}
-     Unbound Symbol thing
-```
-
-which is accurate, but misleading, as the *real* problem is you can't have
-binders on typeclass constraints.
-
--}
-
-module Wrenn where
-
-{-@ incr :: thing:(Num a) => a -> {v:a | v = thing} @-}
-
-incr :: (Num a) => a -> a
-incr x = x
diff --git a/tests/todo/T772.hs b/tests/todo/T772.hs
deleted file mode 100644
--- a/tests/todo/T772.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}
-
-module LiquidR where
-
-class R m where
-
-class (R a, R b) => UnarySubscript a b where
-  indexUnary :: a -> b -> [a]
-
-{-@ instance (R t, R u) => UnarySubscript t u where
-      indexUnary :: a:t -> b:{v:_ | 1 + 2 = 3 } -> t
-  @-}
-instance (R a, R b) => UnarySubscript a b
-
--- Note this works:
---   indexUnary :: a:t -> b:{v:_ | 1 + 2 = 3 } -> [t]
-
-{-@ predicate Bloop A = (size A) = 0 @-}
-
--- UNCOMMENT; (error omitted for brevity)
-{-@ class (R t, R u, R v) => Addition t u v where
-    add :: a:t ->
-           b:u ->
-          {c:v | ArithmeticResult a b c }
-@-}
-class (R a, R b, R c) => Addition a b c | a b -> c  where
-  add  :: a -> b -> c
-  add  = unimplemented
diff --git a/tests/todo/T776.hs b/tests/todo/T776.hs
deleted file mode 100644
--- a/tests/todo/T776.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{- | There are 2 bugs here, that have to do with `--prune-unsorted`.
-
-     1. Why is the `prod` measure being used in the generic `size`
-        function where it doesn't fit?
-
-     2. Why are we getting such a meaningless error message?!
-
-        At the very least some mention of try `prune-unsorted` ?
-
-        Can we not put in a simple check in Bare for now:
-
-        The measure `prod` is not-polymorphic, please run with --prune-unsorted.
-        
- -}
-
-{-@ LIQUID "--prune-unsorted" @-}
-
-module LiquidR where
-
-{-@ measure size @-}
-size        :: [a] -> Int
-size []     = 0
-size (_:xs) = 1 + size xs
-
-{-@ measure prod @-}
-prod :: [Int] -> Int
-prod []     = 1
-prod (x:xs) = x + prod xs
diff --git a/tests/todo/T781.hs b/tests/todo/T781.hs
deleted file mode 100644
--- a/tests/todo/T781.hs
+++ /dev/null
@@ -1,88 +0,0 @@
--- | Issue 781: why the lame error message, even though we HAVE source information.
-
-{-# LANGUAGE ScopedTypeVariables #-}
-{-@ LIQUID "--no-termination" @-}
-module Class () where
-
-import Language.Haskell.Liquid.Prelude
-import Prelude hiding (sum, length, (!!), Functor(..))
-
-{- qualif Size(v:Int, xs:a): v = size xs @-}
-{- qualif Size(v:Int, xs:MList a): v = size xs @-}
-
-data MList a = Nil | Cons a (MList a)
-
-{-@ (!!) :: xs:MList a -> {v:Nat | v < size xs} -> a @-}
-(!!) :: MList a -> Int -> a
-(Cons x _)  !! 0 = x
-(Cons _ xs) !! i = xs !! (i - 1)
-
-{-@ class measure sz :: forall a. a -> Int  @-}
-
-{-@ class Sized s where
-      size :: forall a. x:s a -> {v:Nat | v = sz x}
-  @-}
-class Sized s where
-  size :: s a -> Int
-
-instance Sized MList where
-  {-@ instance measure size :: MList a -> Int
-      sz (Nil)       = 0
-      sz (Cons x xs) = 1 + sz xs
-    @-}
-  size = length
-
-{-@ length :: xs:MList a -> {v:Nat | v = sz xs} @-}
-length :: MList a -> Int
-length Nil         = 0
-length (Cons _ xs) = 1 + length xs
-
-{-@ bob :: xs:MList a -> {v:Nat | v = sz xs} @-}
-bob :: MList a -> Int
-bob = length
-
-
-instance Sized [] where
-  {-@ instance measure sz :: [a] -> Int
-      sz ([])   = 0
-      sz (x:xs) = 1 + (sz xs)
-    @-}
-  size [] = 0
-  size (_:xs) = 1 + size xs
-
-{-@ class (Sized s) => Indexable s where
-      index :: forall a. x:s a -> {v:Nat | v < sz x} -> a
-  @-}
-class (Sized s) => Indexable s where
-  index :: s a -> Int -> a
-
-
-
-instance Indexable MList where
-  index = (!!)
-
-{-@ sum :: Indexable s => s Int -> Int @-}
-sum :: Indexable s => s Int -> Int
-sum xs = go n 0
-  where
-    n = size xs
-    go (d::Int) i
-      | i < n     = index xs i + go (d-1) (i+1)
-      | otherwise = 0
-
-
-{-@ sumMList :: MList Int -> Int @-}
-sumMList :: MList Int -> Int
-sumMList xs = go max 0
-  where
-    max = size xs
-    go (d::Int) i
-      | i < max   = index xs i + go (d-1) (i+1)
-      | otherwise = 0
-
-
-{-@ x :: {v:MList Int | (sz v) = 3}  @-}
-x :: MList Int
-x = 1 `Cons` (2 `Cons` (3 `Cons` Nil))
-
-foo = liquidAssert $ size (Cons 1 Nil) == size [1]
diff --git a/tests/todo/T791.hs b/tests/todo/T791.hs
deleted file mode 100644
--- a/tests/todo/T791.hs
+++ /dev/null
@@ -1,23 +0,0 @@
-import Prelude hiding (null, head, tail, notElem, empty)
-
-import Data.Vector hiding (singleton, empty)
-import qualified Data.Vector.Mutable as M
-import qualified Data.Vector as V
-import Control.Monad.Primitive
-
-{-@ measure mvlen :: forall a. (MVector s a) -> Int @-}
-{-@ invariant {mv:MVector s a | 0 <= mvlen mv } @-}
-{-@ assume Data.Vector.Mutable.new :: PrimMonad m => n:Nat -> m ({vs:MVector (PrimState m) a | mvlen vs == n }) @-}
-
-{-@ minimal :: v:Vector a -> Vector a @-}
-minimal :: Vector a -> Vector a
-minimal v = create (M.new n >>= (\x -> go n x))
-  where
-    {-@ n :: {n:Nat | n == vlen v} @-}
-    n = V.length v
-    {-@ go :: n:Nat -> {mv:MVector (PrimState m) a | mvlen mv == n} -> m (MVector (PrimState m) a) @-}
-    go :: (PrimMonad m) => Int -> MVector (PrimState m) a -> m (MVector (PrimState m) a)
-    go _ mv = pure mv
-
-{-@ qualif EqLen(v:MVector s a, x:Vector b): (mvlen v == vlen x) @-}
-{-@ qualif MVLen(v:MVector s a, n:Int): (mvlen v == n) @-}
diff --git a/tests/todo/T791a.hs b/tests/todo/T791a.hs
deleted file mode 100644
--- a/tests/todo/T791a.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-import Prelude hiding (null, head, tail, notElem, empty)
-
-import Data.Vector hiding (singleton, empty)
-import qualified Data.Vector.Mutable as M
-import Control.Monad.Primitive
-import qualified Data.Vector as V
-
-minimal1 mickey = create (M.new 0 >>= go)
-
-{-@ go :: {v:MVector (PrimState m) a | false } -> m (MVector (PrimState m) a) @-}
-go :: (PrimMonad m) => MVector (PrimState m) a -> m (MVector (PrimState m) a)
-go mv = pure mv
diff --git a/tests/todo/T870.hs b/tests/todo/T870.hs
deleted file mode 100644
--- a/tests/todo/T870.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-
--- https://github.com/ucsd-progsys/liquidhaskell/issues/870 
--- the following succeeds normally, but fails if we switch on the higher-order 
-
-{- LIQUID "--higherorder" @-}
-
-import Prelude hiding (splitAt)
-
-
-data Vec a = Nil | Cons a (Vec a)
-
-{-@ invariant {v:Vec a | 0 <= vlen v} @-}
-
-{-@ measure vlen :: Vec a -> Int
-    vlen Nil         = 0
-    vlen (Cons x xs) = 1 + vlen xs
-  @-}
-
-
-{-@ splitAt :: n:Nat
-            -> a:{Vec t|vlen a >= n}
-            -> {b:(Vec t, Vec t)|vlen (snd b) = vlen a - n && n = vlen (fst b)} @-}
-
-splitAt :: Int -> Vec a -> (Vec a, Vec a)
-splitAt 0         as  = (Nil, as)
-splitAt n (Cons a as) = let (b1, b2) = splitAt (n - 1) as
-                        in (Cons a b1, b2)
-
diff --git a/tests/todo/T995.hs b/tests/todo/T995.hs
deleted file mode 100644
--- a/tests/todo/T995.hs
+++ /dev/null
@@ -1,42 +0,0 @@
-{-@ LIQUID "--exact-data-con" @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-module Basics
-  ( Peano(..)
-  , toNat
-  ) where
-
-import           Prelude (Char, Int)
-import qualified Prelude
-import           Language.Haskell.Liquid.ProofCombinators
-
---------------------------------------------------------------------------------
--- | Booleans ------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ data Bool = True | False @-}
-data Bool = True | False
-
---------------------------------------------------------------------------------
--- | Peano ---------------------------------------------------------------------
---------------------------------------------------------------------------------
-
-{-@ data Peano [toNat] = O | S Peano @-}
-data Peano = O | S Peano
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat O     = 0
-toNat (S n) = 1 Prelude.+ toNat n
-
-{-@ reflect natEven @-}
-natEven :: Peano -> Bool
-natEven O         = True
-natEven (S O)     = False
-natEven (S (S n)) = natEven n
-
--- fails
-{-@ test_Even4 :: { natEven (S (S (S (S O)))) == True } @-}
-test_Even4 :: Proof
-test_Even4 = trivial
diff --git a/tests/todo/T996.hs b/tests/todo/T996.hs
deleted file mode 100644
--- a/tests/todo/T996.hs
+++ /dev/null
@@ -1,35 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-
-module Induction where
-
-import qualified Prelude
-import           Prelude (Char, Int)
-import Language.Haskell.Liquid.ProofCombinators
-
-{-@ data Peano [toNat] = O | S Peano @-}
-data Peano = O | S Peano
-
-{-@ measure toNat @-}
-{-@ toNat :: Peano -> Nat @-}
-toNat :: Peano -> Int
-toNat O     = 0
-toNat (S n) = 1 Prelude.+ toNat n
-
-{-@ reflect plus @-}
-plus :: Peano -> Peano -> Peano
-plus O     n = n
-plus (S m) n = S (plus m n)
-
-{-@ data Bool = True | False @-}
-data Bool = True | False
-
-{-@ reflect even @-}
-even :: Peano -> Bool
-even O         = True
-even (S O)     = False
-even (S (S n)) = even n
-
-{-@ thmPlusCom :: n:Peano -> m:Peano -> { plus n m == plus m n} @-}
-thmPlusCom :: Peano -> Peano -> Proof
-thmPlusCom O     m = trivial
-thmPlusCom (S n) m = [ thmPlusCom n m ] *** QED
diff --git a/tests/todo/T997.hs b/tests/todo/T997.hs
deleted file mode 100644
--- a/tests/todo/T997.hs
+++ /dev/null
@@ -1,28 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-
-{-@ data List [llen] = Nil | Cons {lTl :: List} @-}
-data List = Nil | Cons List
-
-{-@ measure llen @-}
-{-@ llen :: List -> Nat @-}
-llen :: List -> Int
-llen Nil      = 0
-llen (Cons t) = 1 + llen t
-
-{-@ reflect sz @-}
-{-@ sz :: List -> Nat @-}
-sz :: List -> Int
-sz Nil      = 0
-sz (Cons t) = 1 + sz t
-
--- THIS IS OK
-{-@ ok :: { llen ((Cons Nil)) == 1 } @-}
-ok = ()
-
--- THIS IS NOT
-{-@ fails :: { sz (Cons Nil) == 1 } @-}
-fails = ()
- 
diff --git a/tests/todo/T997a.hs b/tests/todo/T997a.hs
deleted file mode 100644
--- a/tests/todo/T997a.hs
+++ /dev/null
@@ -1,33 +0,0 @@
-{-@ LIQUID "--exact-data-con"                      @-}
-{-@ LIQUID "--higherorder"                         @-}
-{-@ LIQUID "--totality"                            @-}
-{-@ LIQUID "--automatic-instances=liquidinstances" @-}
-{-@ LIQUID "--diff"                                @-}
-
-module Lists where
-
-import Language.Haskell.Liquid.ProofCombinators
-
-
-{-@ data List [llen] = Nil | Cons {lHd :: Int, lTl :: List} @-}
-data List = Nil | Cons Int List
-
-{-@ measure llen @-}
-{-@ llen :: List -> Nat @-}
-llen :: List -> Int
-llen Nil        = 0
-llen (Cons h t) = 1 Prelude.+ llen t
-
-{-@ reflect beqList @-}
-beqList :: List -> List -> Bool
-beqList (Cons x xs) (Cons y ys) = x == y && beqList xs ys
-beqList Nil         Nil         = True
-beqList Nil         (Cons y ys) = False
-beqList (Cons x xs) Nil         = False
-
-
-{-@ testBeqList2 :: { beqList (Cons 1 Nil) (Cons 1 Nil) } @-}
-testBeqList2  = trivial
-
-{-@ testBeqList3 :: { beqList (Cons 1 (Cons 2 Nil)) (Cons 1 (Cons 3 Nil)) == False } @-}
-testBeqList3  = trivial
diff --git a/tests/todo/Times.hs b/tests/todo/Times.hs
deleted file mode 100644
--- a/tests/todo/Times.hs
+++ /dev/null
@@ -1,61 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-module Times where
-
-import Foreign
-
-{-@ times :: forall <p :: Int -> a -> Prop>. 
-             n:Nat -> a<p 0> -> (m:{Nat | m <= n} -> a<p m> -> a<p (m+1)>) -> a<p n>
-  @-}
-times :: Int -> a -> (Int -> a -> a) -> a
-times n z f = go 0 z
-  where
-    go m z | m == n    = z
-           | otherwise = go (m+1) (f m z)
-
-{-@ predicate Btwn Lo N Hi = Lo <= N && N < Hi @-}
-{-@ predicate Uint8 N = Btwn 0 N 256 @-}
-
-
-{-@ assume addUint8 :: x:{Int | Uint8 x} -> y:{Int | Uint8 y && Uint8 (x+y)}
-                    -> {v:Int | Uint8 v && v = x + y}
-  @-}
-addUint8 :: Int -> Int -> Int
-addUint8 = (+)
-
-{-@ ten :: {v:Int | Uint8 v} @-}
-ten = times 10 0 (\n x -> add1 x)
-
-{-@ gt10 :: x:Int -> {v:Bool | Prop v <=> x >= 10} @-}
-gt10 :: Int -> Bool
-gt10 x = x >= 10
-
-{-@ add1 :: x:{Int | Btwn 0 x 255} -> {v:Int | Uint8 v && v = x + 1} @-}
-add1 x = addUint8 x 1
-
-{-@ qualif TimesTwo(v:int, x:int): v = x * 2 @-}
-{-@ qualif PlusTwo(v:int, x:int): v = x + 2 @-}
-
-timesM :: Int -> (Int -> IO ()) -> IO ()
-timesM n f = go 0
-  where
-    go m | m == n    = return ()
-         | otherwise = f m >> go (m+1)
-
-{-@ tenM :: Ptr <{\x -> x = 0}> Int -> IO () @-}
-tenM :: Ptr Int -> IO ()
-tenM p = timesM 10 $ \i -> do
-           x <- peek p
-           poke p $ x `addUint8` 1
-
-{-@ data Ptr a <p :: a -> Prop> = GHC.Ptr.Ptr (x::GHC.Base.Addr#) @-}
-
-{-@ poke :: forall <p :: a -> Prop>. (Storable a)
-         => Ptr <p> a
-         -> a<p>
-         -> (IO ())
-  @-}
-
-{-@ peek :: forall <p :: a -> Prop>. (Storable a)
-         => (Ptr <p> a)
-         -> (IO (a<p>))
-  @-}
diff --git a/tests/todo/TreeMap.hs b/tests/todo/TreeMap.hs
deleted file mode 100644
--- a/tests/todo/TreeMap.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-module Trees where
-
-{- LIQUID "--no-termination" @-}
-
-import Language.Haskell.Liquid.Prelude
-
-data Tree a = Leaf a | Node [Tree a] 
-
-{-@ data Tree a = Leaf (xx :: a) | Node (subtrees :: {vv : [{v:Tree a | size v < sizes vv}] | true}) @-}
-
-{-@ measure size  @-}
-{-@ measure sizes @-}
-
-{-@ invariant {v: [Tree a] | sizes v >= size (head v)} @-}
-{-@ invariant {v: [Tree a] | sizes v >= 0}             @-}
-{-@ invariant {v: Tree a   | size v >= 0}              @-}
-
-{-@ measure head :: [a] -> a 
-    head (x:xs) = x
-  @-}
-
-{-@ size           :: x:Tree a -> {v:Nat | v = size x} / [size x, 0] @-}
-size :: Tree a -> Int
-size (Leaf _)  = 1
-size (Node xs) = 1 + sizes xs
-
-{-@ sizes         :: xs:[Tree a] -> {v:Nat | v = sizes xs} / [sizes xs, len xs] @-}
-sizes :: [Tree a ] -> Int
-sizes []      = 0
-sizes (t:ts)  = size t + sizes ts
-
-{- data Tree a [sizes] @-}
-
-
-{-@ tmap :: _ -> tt:Tree a -> Tree b / [size tt, 1, 0] @-}
--- tmap f tt = case tt of
-tmap f (Leaf x) = Leaf (f x)
-tmap f tt@(Node ts) = Node (goo f (Node ts) (lemmasize ts (Node ts)))
-
-{-@ lemmasize :: ts:[Tree a] -> tt:{v:Tree a | ts = subtrees v} -> [{v:Tree a | size v < size tt}] @-}
-lemmasize :: [Tree a] -> Tree a  -> [Tree a]
-lemmasize _ (Node (t:ts)) = t : lemmasize ts (Node ts)
-
-
-{-@ goo :: (a -> b) -> tt:Tree a -> ts:[{v: Tree a | size v < size tt}] -> [Tree b] / [size tt, 0, len ts] @-}
-goo :: (a -> b) -> Tree a -> [Tree a] -> [Tree b]
-goo f tt [] = []
-goo f tt (t:ts) = tmap f t : goo f tt ts
-
-{-@ qualif SZ(v:Tree a, x:Tree a): size v < size x @-}
-
-{-@ qual :: xs:[Tree a] -> {v:Tree a | size v = 1 + sizes xs} @-}
-qual :: [Tree a] -> Tree a
-qual = undefined
-
diff --git a/tests/todo/TreeMap0.hs b/tests/todo/TreeMap0.hs
deleted file mode 100644
--- a/tests/todo/TreeMap0.hs
+++ /dev/null
@@ -1,54 +0,0 @@
-module Trees where
-
-{-@ LIQUID "--no-termination" @-}
-
-import Language.Haskell.Liquid.Prelude
-
-data Tree a = Leaf a | Node [Tree a] 
-
-{-@ data Tree a = Leaf (xx :: a) | Node (yy :: {mickeymouse : [{v:Tree a | size v < sizes mickeymouse}] | true}) @-}
-
-{-@ measure size  @-}
-{-@ measure sizes  @-}
-
-{-@ invariant {v: [Tree a] | sizes v >= 0  } @-}
-{-@ invariant {v: Tree a | size v >= 0  } @-}
-
-{-@ size           :: t:Tree a -> {v:Nat | v = size t} / [size t, 0] @-}
-size :: Tree a -> Int
-size (Leaf _)  = 1
-size (Node xs) = 1 + sizes xs
-
-{-@ sizes         :: xs:[Tree a] -> {v:Nat | v = sizes xs} / [sizes xs, len xs] @-}
-sizes :: [Tree a ] -> Int
-sizes []      = 0
-sizes (t:ts)  = size t + sizes ts
-
-{-@ test1 :: tt:Tree a -> Tree a / [size tt] @-}
-test1 tt = case tt of
-             Leaf x  -> Leaf x
-             Node ts -> liquidAssert (sizes ts < size tt) $ Node (goo tt ts)
-
-{-@ goo :: tt:Tree a -> [{v: Tree a | size v < size tt}] -> [Tree a] @-}
-goo :: Tree a -> [Tree a] -> [Tree a]
-goo _ []      = []
-goo tt (t:ts) = t : goo tt ts
-
-{-@ test2 :: tt:Tree a -> Tree a / [size tt] @-}
-test2 tt = case tt of
-             Leaf x  -> Leaf x
-             Node ts -> liquidAssert (sizes ts < size tt) $ Node (moo ts ts)
-
-{-@ moo :: ts:[Tree a] -> [{v: Tree a | size v < sizes ts}] -> [Tree a] @-}
-moo :: [Tree a] -> [Tree a] -> [Tree a]
-moo _  []      = []
-moo ts (t:ts') = t : moo ts ts'
-
-
-
-{-@ qualif SZ(v:a, x:b): size v < size x @-}
-
-foo tt = case tt of
-           Leaf x  -> () 
-           Node ts -> liquidAssert (1 + sizes ts == size tt) ()
-
diff --git a/tests/todo/TypeError.hs b/tests/todo/TypeError.hs
deleted file mode 100644
--- a/tests/todo/TypeError.hs
+++ /dev/null
@@ -1,60 +0,0 @@
-{-# LANGUAGE TemplateHaskell #-}
-{-# LANGUAGE ExtendedDefaultRules #-}
-
-
-{-@ LIQUID "--autoproofs"      @-}
-{-@ LIQUID "--totality"        @-}
-{-@ LIQUID "--exact-data-cons" @-}
-module Append where
-
-import Axiomatize
-import Equational
-import Prelude hiding (return, (>>=))
-
-
-data L a = N 
-
--- | Definition of the list monad
-
-{-@ axiomatize return @-}
-$(axiomatize
-  [d| return :: a -> L a
-      return x = N
-    |])
-
-{-@ axiomatize append @-}
-$(axiomatize
-  [d| append :: L a -> L a -> L a
-      append N ys        = ys
-    |])
-
-{-@ axiomatize bind @-}
-$(axiomatize
-  [d| bind :: L a -> (a -> L a) -> L a
-      bind N        f = N
-    |])
-
-
--- | Right Identity m >>= return ≡  m
-{-@ prop_right_identity :: Eq a => L a -> {v:Proof | bind N return == N } @-}
-prop_right_identity :: Eq a => L a -> Proof
-prop_right_identity N =  refl (bind N return) `by` pr1 
-  where
-    e1  = bind N return
-    pr1 = axiom_bind_N return
-    e2  = N
-
-
-
--- | List definition
-
-
-instance Eq a => Eq (L a) where
-  N == N                 = True
-
-{-@ data L [llen] @-}
-{-@ invariant {v: L a | llen v >= 0} @-}
-
-{-@ measure llen @-}
-llen :: L a -> Int
-llen N = 0
diff --git a/tests/todo/TypeFun.hs b/tests/todo/TypeFun.hs
deleted file mode 100644
--- a/tests/todo/TypeFun.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-{-# LANGUAGE DataKinds    #-}
-{-# LANGUAGE FlexibleContexts    #-}
-{-# LANGUAGE FlexibleInstances    #-}
-{-# LANGUAGE FunctionalDependencies    #-}
-{-# LANGUAGE MultiParamTypeClasses    #-}
-{-# LANGUAGE RankNTypes   #-}
-{-# LANGUAGE TypeFamilies #-}
-{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE UndecidableInstances #-}
-module TypeFun where
-
-{-@ predicate Btwn Lo N Hi = Lo <= N && N < Hi @-}
-
-{-@ addUint8 :: x:_ -> y:{_ | Btwn 0 (x+y) 256} -> {v:_ | v = x + y} @-}
-addUint8 :: Int -> Int -> Int
-addUint8 = (+)
-
-{-@ double :: Def (Arr (Cons {v:Int | Btwn 0 v 128} Nil) Int) @-}
-double = proc body
-  where 
-    {-@ body :: {v:Int | Btwn 0 v 128} -> _ @-}
-    body x = Body $ x `addUint8` x
-
-type Arr = (:->)
-
-type Cons = '(:)
-type Nil = '[]
-
-data Proc k = [k] :-> k
-
-proc :: forall proc impl. IvoryProcDef proc impl => impl -> Def proc
-proc x = Def
-
-data Def (proc :: Proc *)
-  = Def
-
-data Body r = Body r
-
-class IvoryProcDef (proc :: Proc *) impl | impl -> proc where
-
-instance IvoryProcDef ('[] :-> a) (Body a) where
-
-instance IvoryProcDef (args :-> ret) k
-      => IvoryProcDef ((a ': args) :-> ret) (a -> k) where
-
diff --git a/tests/todo/TypeSynonyms.hs b/tests/todo/TypeSynonyms.hs
deleted file mode 100644
--- a/tests/todo/TypeSynonyms.hs
+++ /dev/null
@@ -1,26 +0,0 @@
-{-# LANGUAGE DataKinds #-} -- Type level straings
-{-# LANGUAGE TypeOperators #-}
-{-# LANGUAGE KindSignatures #-}
-
-module Foo where
-import GHC.TypeLits
-
-{-@ foo :: x:Int -> {v:Int | v > x } @-}
-
-foo :: x  ::: Int -> (v ::: Int || v > x) 
-bar :: xs ::: [a] -> (v ::: Int || v == length xs)
-
-
-
-bar xs = length xs
-foo x = x + 1
-
-infixr 7 :::
-infixr 6 ||
-
-type x ::: t = t
-type t || p  = t
-type x > y   = Bool
-type x == y   = Bool
--- type (x :: Symbol) > (y :: Symbol)   = Bool
-
diff --git a/tests/todo/UnboundSigs.hs b/tests/todo/UnboundSigs.hs
deleted file mode 100644
--- a/tests/todo/UnboundSigs.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module DependeTypes where
-
-
-
-data MI s
-  = Small { mi_input :: String  }
-
-
-{-@ Small :: forall s. {v:String | s == v } -> MI s @-}
diff --git a/tests/todo/UnfoldDataCons.hs b/tests/todo/UnfoldDataCons.hs
deleted file mode 100644
--- a/tests/todo/UnfoldDataCons.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-
-{-@ boo :: [{v:a | false }] -> {v:[a] | len v == 0 } @-}
-boo :: [a] -> [a]
-boo []     = [] 
-boo (x:xs) = (x:xs)
-
-
-{-@ foo :: [{v:a | false }] -> {v:[a] | len v == 0 } @-}
-foo :: [a] -> [a]
-foo x = x 
diff --git a/tests/todo/Unsound.hs b/tests/todo/Unsound.hs
deleted file mode 100644
--- a/tests/todo/Unsound.hs
+++ /dev/null
@@ -1,7 +0,0 @@
-module Unsound where
-
-{-@ assume magic :: {v:() | false} @-}
-magic :: ()
-magic = undefined 
-
-bar = head []
diff --git a/tests/todo/UnsoundMeasure.hs b/tests/todo/UnsoundMeasure.hs
deleted file mode 100644
--- a/tests/todo/UnsoundMeasure.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Blank where
-
--- This example is unsound due to non-recursive definition of llen 
-
-import Language.Haskell.Liquid.Prelude
-
-data L a = N | C a (L a)
-
-
-{-@ measure llen :: (L a) -> Int 
-    llen(N) = 0
-    llen(C x xs) = 1 + (llen (C x xs))
-  @-}
-  
-foo :: L a -> L a
-foo (C _ xs) = liquidAssert (0==1) xs
diff --git a/tests/todo/Until.hs b/tests/todo/Until.hs
deleted file mode 100644
--- a/tests/todo/Until.hs
+++ /dev/null
@@ -1,52 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-module Until where
-
-import Prelude hiding (until)
-
-{-@ until :: forall <p :: a -> Prop, i :: a -> Prop>.
-             (a:a<i> -> {v:Bool | Prop v <=> papp1 p a})
-          -> ({v:a<i> | not (papp1 p v)} -> a<i>)
-          -> a<i>
-          -> a<p>
-  @-}
-until :: (a -> Bool) -> (a -> a) -> a -> a
-until p f = go
-  where
-    go x | p x          = x
-         | otherwise    = go (f x)
-
-{-@ predicate Btwn Lo N Hi = Lo <= N && N < Hi @-}
-{-@ predicate Uint8 N = Btwn 0 N 256 @-}
-
-
-{-@ assume addUint8 :: x:{Int | Uint8 x} -> y:{Int | Uint8 y && Uint8 (x+y)}
-                    -> {v:Int | Uint8 v && v = x + y}
-  @-}
-addUint8 :: Int -> Int -> Int
-addUint8 = (+)
-
-{-@ ten :: {v:Int | Uint8 v && v >= 10} @-}
-ten = until (\x -> gt10 x) (\x -> add1 x) 0 
-
-{-@ gt10 :: x:Int -> {v:Bool | Prop v <=> x >= 10} @-}
-gt10 :: Int -> Bool
-gt10 x = x >= 10
-
-{-@ add1 :: x:{Int | Btwn 0 x 255} -> {v:Int | Uint8 v && v = x +1} @-}
-add1 x = addUint8 x 1
-
-
-{-@ untilMono :: (x:{Int | Uint8 x && x <= 10} -> {v:Bool | Prop v <=> x >= 10})
-              -> ({v:Int | Uint8 v && v < 10} -> {v:Int | Uint8 v && v <= 10})
-              -> {v:Int | Uint8 v && v <= 10}
-              -> {v:Int | Uint8 v && v >= 10}
-  @-}
-untilMono :: (Int -> Bool) -> (Int -> Int) -> Int -> Int
--- untilMono p f x = until p f x
-untilMono p f = go
-  where
-    go x | p x          = x
-         | otherwise    = go (f x)
-
-{-@ tenMono :: {v:Int | Uint8 v && v >= 10} @-}
-tenMono = untilMono gt10 add1 0 
diff --git a/tests/todo/UseBound.hs b/tests/todo/UseBound.hs
deleted file mode 100644
--- a/tests/todo/UseBound.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module UseBound where
-
-import ImportBound
-
--- This crashes because the type of `by` has a bound Chain that
--- is unknown at import
-
-myby = by
diff --git a/tests/todo/VerifiedNum.hs b/tests/todo/VerifiedNum.hs
deleted file mode 100644
--- a/tests/todo/VerifiedNum.hs
+++ /dev/null
@@ -1,31 +0,0 @@
-module VerifiedNum where
-
--- Hiding numeric operations, because they get by default translated to SMT equivalent
-import Prelude hiding (Num(..))
-
-import qualified Prelude as Prelude 
-
-class VerifiedNum a where 
-  (+) :: a -> a -> a 
-  (-) :: a -> a -> a 
-
-{-@ predicate BoundInt X = 0 < X + 10000 && X < 10000 @-}
-
-{-@ type OkInt N = {v:Int | BoundInt N => v == N} @-}
-
-{-@ type ValidInt = {v:Int | BoundInt v} @-}
-
-
-instance VerifiedNum Int where
-{-@ instance VerifiedNum Int where 
-    + :: x:Int -> y:Int -> OkInt {x + y} 
-  @-}
-	x + y = (Prelude.+) x y  
-{-@ instance VerifiedNum Int where 
-    - :: x:Int -> y:Int -> OkInt {x - y} 
-  @-}
-	x - y = (Prelude.-) x y  
-
-
-
-
diff --git a/tests/todo/WBL-crash.hs b/tests/todo/WBL-crash.hs
deleted file mode 100644
--- a/tests/todo/WBL-crash.hs
+++ /dev/null
@@ -1,177 +0,0 @@
-
------------------------------------------------------------------------
--- Weight-Biased Leftist Heap, verified using LiquidHaskell -----------
------------------------------------------------------------------------
--- ORIGINAL SOURCE ----------------------------------------------------
------------------------------------------------------------------------
--- Copyright: 2014, Jan Stolarek, Politechnika Łódzka                --
---                                                                   --
--- License: See LICENSE file in root of the repo                     --
--- Repo address: https://github.com/jstolarek/dep-typed-wbl-heaps-hs --
---                                                                   --
--- Basic implementation of weight-biased leftist heap. No proofs     --
--- and no dependent types. Uses a two-pass merging algorithm.        --
------------------------------------------------------------------------
-
-{-@ LIQUID "--no-termination" @-}
-
-module WBL where
-
-type Priority = Int
-
-type Rank     = Int
-
-type Nat      = Int
-
-data Heap a   = Empty | Node { pri   :: a
-                             , rnk   :: Rank
-                             , left  :: Heap a
-                             , right :: Heap a
-                             }
-
-{-@ data Heap a <q :: a -> a -> Prop> =
-      Empty | Node { pri   :: a
-                   , rnk   :: Nat
-                   , left  :: {v: Heap<q> (a<q pri>) | ValidRank v}
-                   , right :: {v: Heap<q> (a<q pri>) | ValidRank v}
-                   }
- @-}
-
-{-@ predicate ValidRank V = okRank V && realRank V = rank V  @-}
-{-@ type PHeap a = {v:OHeap a | ValidRank v}                 @-}
-{-@ type OHeap a = Heap <{\root v -> root <= v}> a           @-}
-
-{-@ measure okRank @-}
-okRank :: Heap a -> Bool
-okRank (Empty)        = True
-okRank (Node p k l r) = realRank l >= realRank r && k == 1 + realRank l + realRank r
-
-{-@ measure realRank @-}
-realRank :: Heap a -> Int
-realRank (Empty)        = 0
-realRank (Node p k l r) = 1 + realRank l + realRank r
-
-{-@ measure rank @-}
-{-@ rank :: h:PHeap a -> {v:Nat | v = realRank h} @-}
-rank Empty          = 0
-rank (Node _ r _ _) = r
-
-
--- Creates heap containing a single element with a given Priority
-{-@ singleton :: a -> PHeap a  @-}
-singleton p = Node p 1 Empty Empty
-
--- Note [Two-pass merging algorithm]
--- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
--- We use a two-pass implementation of merging algorithm. One pass,
--- implemented by merge, performs merging in a top-down manner. Second
--- one, implemented by makeT, ensures that rank invariant of weight
--- biased leftist tree is not violated after merging.
---
--- Notation:
---
---  h1, h2 - heaps being merged
---  p1, p2 - priority of root element in h1 and h2
---  l1     - left  subtree in the first  heap
---  r1     - right subtree in the first  heap
---  l2     - left  subtree in the second heap
---  r2     - right subtree in the second heap
---
--- Merge function analyzes four cases. Two of them are base cases:
---
---    a) h1 is empty - return h2
---
---    b) h2 is empty - return h1
---
--- The other two cases form the inductive definition of merge:
---
---    c) priority p1 is higher than p2 - p1 becomes new root, l1
---       becomes its one child and result of merging r1 with h2
---       becomes the other child:
---
---               p1
---              /  \
---             /    \
---            l1  r1+h2 -- here "+" denotes merging
---
---    d) priority p2 is higher than p2 - p2 becomes new root, l2
---       becomes its one child and result of merging r2 with h1
---       becomes the other child.
---
---               p2
---              /  \
---             /    \
---            l2  r2+h1
---
--- Note that there is no guarantee that rank of r1+h2 (or r2+h1) will
--- be smaller than rank of l1 (or l2). To ensure that merged heap
--- maintains the rank invariant we pass both childred - ie. either l1
--- and r1+h2 or l2 and r2+h1 - to makeT, which creates a new node by
--- inspecting sizes of children and swapping them if necessary.
-
--- makeT takes an element (Priority) and two heaps (trees). It
--- constructs a new heap with element at the root and two heaps as
--- children. makeT ensures that WBL heap rank invariant is maintained
--- in the newly created tree by reversing left and right subtrees when
--- necessary (note the inversed r and l in the False alternative of
--- case expression).
-{-@ makeT   :: p:a -> h1:PHeap {v:a | p <= v} -> h2:PHeap {v:a | p <= v}
-            -> {v:PHeap a | realRank v = 1 + realRank h1 + realRank h2} @-}
-makeT p l r = case rank l >= rank r of
-                True  ->  Node p (1 + rank l + rank r) l r
-                False ->  Node p (1 + rank l + rank r) r l
-
--- merge combines two heaps into one. There are two base cases and two
--- recursive cases - see [Two-pass Merging algorithm]. Recursive cases
--- call makeT to ensure that rank invariant is maintained after
--- merging.
-{-@ merge :: (Ord a) => h1:PHeap a -> h2:PHeap a -> {v:PHeap a | realRank v = realRank h1 + realRank h2}  @-}
-merge Empty h2 = h2
-merge h1 Empty = h1
-merge h1@(Node p1 k1 l1 r1) h2@(Node p2 k2 l2 r2) = case p1 < p2 of
-  True  -> makeT p1 l1 (merge r1 (Node p2 k2 l2 r2))
-  False -> makeT p2 l2 (merge (Node p1 k1 l1 r1) r2)
-
--- Inserting into a heap is performed by merging that heap with newly
--- created singleton heap.
-{-@ insert :: (Ord a) => a -> PHeap a -> PHeap a @-}
-insert p h = merge (singleton p) h
-
--- findMin returns element with highest priority, ie. root
--- element. Here we encounter first serious problem: we can't return
--- anything sensible for empty node.
-{-@ findMin :: PHeap a -> a @-}
-findMin Empty          = undefined
-findMin (Node p _ _ _) = p
-
--- and write a safer version of findMinM
-{-@ findMinM :: PHeap a -> Maybe a @-}
-findMinM Empty          = Nothing
-findMinM (Node p _ _ _) = Just p
-
--- deleteMin removes the element with the highest priority by merging
--- subtrees of a root element. Again the case of empty heap is
--- problematic. We could give it semantics by returning Empty, but
--- this just doesn't feel right. Why should we be able to remove
--- elements from an empty heap?
-{-@ deleteMin :: (Ord a) => PHeap a -> PHeap a @-}
-deleteMin Empty          = undefined -- should we insert empty?
-deleteMin (Node _ _ l r) = merge l r
-
--- As a quick sanity check let's construct some examples. Here's a
--- heap constructed by inserting following priorities into an empty
--- heap: 3, 0, 1, 2.
-{-@ heap :: PHeap Int @-}
-heap = insert (2 :: Int)
-      (insert 1
-      (insert 0
-      (insert 3 Empty)))
-
--- Example usage of findMin
-findMinInHeap :: Priority
-findMinInHeap = findMin heap
-
--- Example usage of deleteMin
-deleteMinFromHeap :: Heap Int
-deleteMinFromHeap = deleteMin heap
diff --git a/tests/todo/When.hs b/tests/todo/When.hs
deleted file mode 100644
--- a/tests/todo/When.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module When (foo, fooOk) where
-
-{-@ assume div :: x:_ -> y:{_ | y /= 0} -> _ @-}
-
-{- when :: b:Bool -> {v:_ | ???} -> _ -}
-when b x = if b then x else return ()
-
-
-foo :: Int -> IO ()
-foo x = when (x > 0) $ print (1 `div` x)
-
-{-@ whenT :: b:_ -> ({v:_ | Prop b} -> _) -> _ @-}
-whenT :: Bool -> (() -> IO ()) -> IO ()
-whenT b k = if b then k () else return ()
-
-fooOk :: Int -> IO ()
-fooOk x = whenT (x > 0) $ \() -> print (1 `div` x)
diff --git a/tests/todo/absref-crash0.hs b/tests/todo/absref-crash0.hs
deleted file mode 100644
--- a/tests/todo/absref-crash0.hs
+++ /dev/null
@@ -1,34 +0,0 @@
-{-@ LIQUID "--short-names"    @-}
-module Foo where
-
-data List a = N | C a (List a)
-
-
-{-@ crashC :: forall a b <p :: List a -> b -> Prop>.
-               x:a -> xs: List a 
-               -> ys:b<p (C x xs)> 
-               -> b<p ys>                            @-}
-crashC :: a -> List a -> b -> b 
-crashC = undefined
-
-
-{-@ crashN :: forall a b <p :: List a -> b -> Prop>.
-               x:a -> xs: List a 
-               -> ys:b<p N> 
-               -> b<p ys>                            @-}
-crashN :: a -> List a -> b -> b 
-crashN = undefined
-
-
--- Currenlty the liternals are grapped only from the haskell code
--- and not from the types. 
--- Thus the above two specifications cash unless
--- N and C appear in the Haskell code, as below 
-
-{-
-cons :: a -> List a -> List a
-cons = C 
-
-nil :: List a 
-nil = N
--}
diff --git a/tests/todo/alias.hs b/tests/todo/alias.hs
deleted file mode 100644
--- a/tests/todo/alias.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Foo where
-
-{-@ type Pos = {v:Int | 0 < v} @-}
-type Pos = Int
-
--- If I add the explicit @-annotation then of course liquid marks this program
--- unsafe, but it would be nice if we could get the same result (i.e. unsafe)
--- directly by using the Haskell type. (This would be a step towards
--- @spindakin's summer project using TF).
-
-incr   :: Pos -> Pos
-incr x = x - 1
diff --git a/tests/todo/aliasConst.hs b/tests/todo/aliasConst.hs
deleted file mode 100644
--- a/tests/todo/aliasConst.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Foo where
-
--- TODO: Expressions inside applications of type and predicate aliases.
-
-{-@ predicate Rng Lo V Hi = (Lo <= V && V < Hi) @-}
-
-{-@ bog :: {v:Int | (Rng 0 v 10)} @-}
-bog :: Int
-bog = 5
diff --git a/tests/todo/aliasError.hs b/tests/todo/aliasError.hs
deleted file mode 100644
--- a/tests/todo/aliasError.hs
+++ /dev/null
@@ -1,16 +0,0 @@
-module Foo where
-
--- TODO: return a civilized error message about the line number with the
--- problematic predicate application, instead of just a groan about safeZip
--- failing.
-
-{-@ predicate Rng Lo V Hi = (Lo <= V && V < Hi) @-}
-{-@ type NNN a b  = {v:[(a, b)] | 0 <= 0} @-}
-
-{-@ bog :: {v:Int | (Rng 0 10 11)} @-}
-bog :: Int
-bog = 5
-
-{-@ foo :: NNN Int @-}
-foo :: [(Int, Char)]
-foo = [(1, 'c')]
diff --git a/tests/todo/appCheck.hs b/tests/todo/appCheck.hs
deleted file mode 100644
--- a/tests/todo/appCheck.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Foo where
-
-import Language.Haskell.Liquid.Prelude
-
-prop :: Bool
-prop = undefined
-
-{-@ app :: forall <p :: a -> Prop, q :: a -> Prop>. 
-   {x:a<q> -> a<p> -> {v:a | v <= x}}
-   {a<q> -> a<p>}
-   Num a => (a<p> -> b) -> a<q> -> b @-}
-app :: Num a => (a -> b) -> a -> b
-app f x = if prop then app f (x+1) else f x
-
-
-{-@ check :: Ord a => x:a ->  {v:a | x <= v} -> () @-}
-check :: Ord a => a ->  a -> ()
-check x y | x <= y = ()
-          | otherwise = liquidError ""
-
-main i = app (check i) i       
diff --git a/tests/todo/apply.hs b/tests/todo/apply.hs
deleted file mode 100644
--- a/tests/todo/apply.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module StateMonad where
-
-data ST a = S (Int -> (a, Int))
-{-@ data ST a <p1 :: old:Int -> a -> Prop,
-               p2 :: old:Int -> Int -> Prop> 
-     = S (x::(state:Int -> (a<p1 state>, Int<p2 state>))) 
-  @-}
-
-
-{-@
-apply :: forall a <p1 :: old:Int -> a -> Prop, 
-                   p2 :: old:Int -> Int -> Prop>.
-          instate:(ST a) <p1, p2> -> x:Int -> (a<p1 x>, Int<p2 x>)
-  @-}
-apply :: ST a -> Int -> (a, Int)
-apply (S f) x = f x
-
diff --git a/tests/todo/baderror.hs b/tests/todo/baderror.hs
deleted file mode 100644
--- a/tests/todo/baderror.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module DataBase   where
-
-import qualified Data.Set
-
-{-@ (\\) :: Eq a => forall<p :: a -> Prop>. xs:[a<p>] -> ys:[a] -> {v:[a<p>] | (listElts v)  = (Set_dif (listElts xs) (listElts ys))} @-}
-(\\) :: Eq a => [a] -> [a] -> [a]
-[]     \\ _ = []
-(x:xs) \\ ys = if x `elem` ys then xs \\ ys else x:(xs \\ ys)
-
diff --git a/tests/todo/baffled.hs b/tests/todo/baffled.hs
deleted file mode 100644
--- a/tests/todo/baffled.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{- LIQUID "--diffcheck"     @-}
-
-module AVL where
-
-main :: IO ()
-main = return ()
-
--- Source: https://gist.github.com/gerard/109729
-
--- | PORTED from: http://docs.camlcity.org/docs/godipkg/4.00/godi-ocaml/lib/ocaml/std-lib/map.ml
-
-
-data AVL k v = Leaf
-             | Node { key :: k
-                    , val :: v
-                    , lt  :: AVL k v
-                    , rt  :: AVL k v
-                    , ht  :: Int }
-               deriving (Show, Eq)
-
-{-@ data AVL k v = Leaf
-                 | Node { key :: k
-                        , val :: v
-                        , lt  :: AVLL k v key
-                        , rt  :: AVLR k v key
-                        , ht  :: AVLH lt rt 
-                        }
-  @-}
-
-{-@ type AVLL k v Key    = AVL {k:k | k < Key} v             @-}
-{-@ type AVLR k v Key    = AVL {k:k | Key < k} v             @-}
-{-@ type AVLH L R        = {v:Nat   | Ht v L R && Bal L R 2} @-}
-{-@ type AVLN k v N      = {v:AVL k v | tht v = N}           @-}
-
-{-@ predicate LeMax1 V X Y = V <= if X >= Y then 1+X else 1+Y   @-}
-{-@ predicate EqMax1 V X Y = V = if X >= Y then 1+X else 1+Y   @-}
-{-@ predicate Diff X Y N = 0 <= X - Y + N && X - Y <= N      @-}
-{-@ predicate Bal L R N  = Diff (tht L) (tht R) N      @-}
-{-@ predicate Ht V L R   = EqMax1 V (tht L) (tht R)      @-}
-
-{-@ invariant {v:AVL k v | 0 <= ht v} @-}
-
-{-@ measure tht          :: AVL k v -> Int
-    tht (Leaf)           = 0
-    tht (Node k v l r z) = if (tht l >= tht r) then (1 + tht l) else (1 + tht r)
-  @-}
-
-{-@ height              :: t:_ -> {v:Nat | v = tht t} @-}
-height (Leaf)           = 0 :: Int
-height (Node k v l r z) = if (height l >= height r) then (1 + height l) else (1 + height r)
- 
-                        
-empty = Leaf
-
-{-@ ht :: t:AVL k v -> {v:Nat | v = tht t}  @-}
-
-{-@ create     :: key:k -> v -> l:AVLL k v key -> r:{AVLR k v key | Bal l r 2} -> {v:AVL k v | Ht (tht v) l r} @-}
-create k v l r = Node k v l r (nodeHeight l r) 
-
-{-@ nodeHeight :: l:_ -> r:_ -> {v:Nat | Ht v l r} @-}
-nodeHeight l r = h
-  where
-   h           = if hl >= hr then hl + 1 else hr + 1
-   hl          = height l
-   hr          = height r 
-
-{-@ singleton  :: k -> v -> AVLN k v 1 @-}
-singleton k v  = Node k v Leaf Leaf 1 
-
-{-@ fox :: k -> v -> thing:AVL k v -> {v: AVL k v | tht thing - 1 <= tht v && tht v <= tht thing + 1} @-}
-fox :: k -> v -> AVL k v -> AVL k v
-fox key val tree = error "z"
-
-
-{-@ predicate HtDiff S T D = (tht S) - (tht T) == D @-}
-
-{-@ add :: k -> v -> t:AVL k v -> {v: AVL k v | (tht t - 1 <= tht v || tht t - 2 = tht v) && tht v <= tht t + 1} @-}
-add k' v' t@(Node k v l r h)
-  -- RJ: This case is obviously fine
-  
-  | k' == k     = Node k' v' l r h  
-
-  -- RJ: Maddeningly, this case is fine too
-                  
---   | k' <  k     = let mickey = fox k' v' l
---                   in
---                      bal k v mickey r   
-  -- NV: This is fine
---   | k < k', height l >= height r = let mouse = fox k' v' r  in
---                                   bal k v l mouse 
-
-  -- RJ: HEREHEREHERE this is the problem (I GIVE UP)
-  -- here it might be the case that 'tht t - 2 = tht v'
-     | k < k', height l < height r = let mouse = fox k' v' r  in
-                                   bal k v l mouse 
-
-
-
-add k' v' Leaf  = singleton k' v'
-
-{-@ bal         :: key:k -> v -> l:AVLL k v key -> r:{AVLR k v key | Bal l r 3} -> {v:AVL k v  | tht l <= tht v && tht r <= tht v && (tht l >= tht r => tht v <= 1 + tht l) && (tht r >= tht l => tht v <= 1 + tht r) } @-}
-bal :: k -> v -> AVL k v -> AVL k v -> AVL k v
-bal k v l r 
-  | hl > hr + 2 = balL   k v l r
-  | hr > hl + 2 = balR   k v l r 
-  | otherwise   = create k v l r 
-  where
-    hl          = height l
-    hr          = height r
-
-
-{-@ balL :: k:_ -> v:_ -> l:AVLL k v k -> r:AVLN {v:_ | k < v} v {(tht l) - 3} -> {v:AVL k v | tht l <= tht v && tht v <= 1 + tht l} @-}    
-balL k v l@(Node lk lv ll lr _) r
-  | height ll >= height lr = let tmp = create k v lr r in lAssert (height tmp <= height l) $ create lk lv ll tmp
-  | otherwise              = case lr of
-                               Node lrk lrv lrl lrr _ -> create lrk lrv (create lk lv ll lrl) (create k v lrr r)
-                               Leaf                   -> die  "all done" 
-
--- balL k v (Node lk lv ll lr@(Node lrk lrv lrl lrr _) _) r
---   | height ll < height lr  = create lrk lrv (create lk lv ll lrl) (create k v lrr r)
-
-{-@ balR :: k:_ -> v:_ -> l:AVLL k v k -> r:AVLN {v:_ | k < v} v {(tht l) + 3} -> {v: AVL k v | tht r <= tht v && tht v <= 1 + tht r} @-}    
-balR k v l r@(Node rk rv rl rr _) 
-  | height rr >= height rl = create rk rv (create k v l rl) rr
-  | otherwise              = case rl of 
-                              Node rlk rlv rll rlr _ -> create rlk rlv (create k v l rll) (create rk rv rlr rr)
-                              Leaf                   -> die "all done"
-                              
--- balR k v l r@(Node rk rv rl@(Node rlk rlv rll rlr _) rr _)
---   | height rr < height rl  = create rlk rlv (create k v l rll) (create rk rv rlr rr) 
-
-{-@ die :: {v:String | false } -> a @-}
-die x = error x
-
-{-@ lAssert    :: {v:Bool | Prop v} -> a -> a @-}
-lAssert True x = x
-lAssert _    z = z
-
diff --git a/tests/todo/binsearch.hs b/tests/todo/binsearch.hs
deleted file mode 100644
--- a/tests/todo/binsearch.hs
+++ /dev/null
@@ -1,32 +0,0 @@
-module BinSearch where
-
-import Language.Haskell.Liquid.Prelude
-import Data.Vector
-
-foobar = div
-
-gobble n lo hi 
-  | hi < lo   = True 
-  | otherwise = let mid = (hi - lo) `div` 2 
-                in assert (mid >= 0)
-
-z = gobble n 0 n
-    where n = choose 0
-
-
---binarySearch :: (Ord a) => Vector a -> a -> Int -> Int -> Maybe Int
---binarySearch haystack needle lo hi
---  | hi < lo	        = Nothing
---  | pivot > needle	= binarySearch haystack needle lo (mid - 1)
---  | pivot < needle	= binarySearch haystack needle (mid + 1) hi
---  | otherwise	    = Just mid
---  where mid	    = lo + ((hi - lo) `div` 2)
---        pivot	= haystack ! mid
---
---runBinarySearch haystack needle 
---  = binarySearch haystack needle 0 (Data.Vector.length haystack)
---
---pos = runBinarySearch vec val
---  where vec = fromList [0..siz]
---        siz = choose 0
---        val = choose 1
diff --git a/tests/todo/boolparse.hs b/tests/todo/boolparse.hs
deleted file mode 100644
--- a/tests/todo/boolparse.hs
+++ /dev/null
@@ -1,19 +0,0 @@
-module Goo where
-
-
--- It would be nice to parse the below: 
-
-{-@ type BoolP P = {v:Bool | Prop v <=> P} @-}
-
--- The below works fine (obviously)
-{- type BoolP P = {v:Bool | true } @-}
-
--- We can then write things like:
-
-{-@ inline gt @-}
-gt :: Int -> Int -> Bool
-gt x y = x > y
-
-{-@ isNat :: x:Int -> BoolP {gt x 0} @-}
-isNat :: Int -> Bool
-isNat x = x > 0
diff --git a/tests/todo/cases.hs b/tests/todo/cases.hs
deleted file mode 100644
--- a/tests/todo/cases.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Zoo where
-
-import Language.Haskell.Liquid.Prelude
-
-data L a = C a (L a) | N | C2 a a (L a)
-
-bob (C x _) = x
-bob _       = liquidError "asdasd"
diff --git a/tests/todo/cont.hs b/tests/todo/cont.hs
deleted file mode 100644
--- a/tests/todo/cont.hs
+++ /dev/null
@@ -1,25 +0,0 @@
-module Cont (funkyId, funkyIds) where
-
-------------------------------------------------------------------------------------------
-{-@ funkyId :: x:Int -> {v:Int | v = x} @-}
-funkyId :: Int -> Int
-funkyId n = cont (\_ -> n)
-
-
-{-@ cont :: forall <p :: Int -> Prop>. (() -> Int<p>) -> Int<p> @-}
-cont :: (() -> Int) -> Int
-cont f = f () 
-------------------------------------------------------------------------------------------
-
-{-@ funkyIds :: a -> n:Int -> {v:[a] | (len v) = n} @-}
-funkyIds :: a -> Int -> [a]
-funkyIds y n = conts y (\_ -> n)
-
-{-@ conts :: forall <p :: Int -> Prop>. a -> (() -> Int<p>) -> exists z:Int<p>. {v:[a] | z = (len v)} @-}
-{-@ conts :: forall <p :: Int -> Prop>. a -> (() -> Int<p>) -> {v:[a] | (p (len v))} @-}
-conts :: a -> (() -> Int) -> [a] 
-conts x f = clone (f ()) x 
-
-{-@ clone :: n:Int -> a -> {v:[a] | (len v) = n} @-}
-clone :: Int -> a -> [a]
-clone = undefined
diff --git a/tests/todo/contra.hs b/tests/todo/contra.hs
deleted file mode 100644
--- a/tests/todo/contra.hs
+++ /dev/null
@@ -1,68 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-
-module Foo () where
-
-import Language.Haskell.Liquid.Prelude (liquidAssert)
-import Data.IORef
-
-{-@ type Upto N = {v:Nat | v < N} @-} 
-
-{-@ job :: IO () @-}
-job = do
-  p <- newIORef (0 :: Int)
-  writeIORef p 10
-  v <- readIORef p
-  liquidAssert (v == 0) $ return ()
-  
-{-@ bob :: Nat -> IO () @-}
-bob n = do
-  t <- newIO (n+1) (\_ -> 0)
-  setIO t 0 100
-  r <- getIO t 0
-  liquidAssert (r == 0) $ return ()
-
- 
-data IOArr a = IOA { size :: Int
-                   , pntr :: IORef (Arr a)
-                   }
-
-data Arr a   = A { alen :: Int
-                 , aval :: Int -> a
-                 }
-
-
-
-{-@ data IOArr a <p :: Int -> a -> Prop>
-      = IOA { size :: Nat
-            , pntr :: IORef ({v:Arr<p> a | alen v = size})
-            }
-  @-}
-
-
-{-@ data Arr a <p :: Int -> a -> Prop>
-             = A { alen :: Nat 
-                 , aval :: i:Upto alen -> a<p i>
-                 }
-  @-}
-
-
-
-{-@ newIO :: forall <p :: Int -> a -> Prop>.
-               n:Nat -> (i:Upto n -> a<p i>) -> IO ({v: IOArr<p> a | size v = n})
-  @-}
-newIO :: Int -> (Int -> a) -> IO (IOArr a)
-newIO n f = undefined
-
-{-@ getIO :: forall <p :: Int -> a -> Prop>.
-              a:IOArr<p> a -> i:Upto (size a) -> IO (a<p i>)
-  @-}
-getIO :: IOArr a -> Int-> IO a
-getIO a@(IOA sz p) i = undefined
-
-{-@ setIO :: forall <p :: Int -> a -> Prop>.
-              a:IOArr<p> a -> i:Upto (size a) -> a<p i> -> IO ()
-  @-}
-setIO :: IOArr a -> Int -> a -> IO ()
-setIO a@(IOA sz p) i v = undefined
-
diff --git a/tests/todo/decr.hs b/tests/todo/decr.hs
deleted file mode 100644
--- a/tests/todo/decr.hs
+++ /dev/null
@@ -1,127 +0,0 @@
--- | The below gives a reasonable error message when
---   we REMOVE the liquid signature (with the termination metric)
---   but gives an incomprehensible "termination error" otherwise.
---   # Issue 1. Why?!
---
--- | The above error goes away if you give an explicit HS type
---   signature, which causes a different GHC core term to be analyzed.
---   I suppose this is because the refined-type is for the top-level
---   binder, not the inner-letrec. BUT THEN, we should produce
---   THE SAME ERROR as if there was NO refined-signature AND add to
---   the error message, "Please make sure you add a HS type signature too"
-
-module Blank  where
-
-{-@ spacePrefix :: _ -> s:_ -> _ / [len s] @-}
-
--- spacePrefix :: String -> String -> Bool
-spacePrefix str (c:cs)
-  | isSpace c   = spacePrefix str cs
-  | otherwise   = take (length str) (c:cs) == str
-spacePrefix _ _ = False
-
-isSpace :: Char -> Bool
-isSpace = undefined
-
-
-{- This is GHC core _without_ the signature:
-[ Blank.spacePrefix :: [GHC.Types.Char] -> [GHC.Types.Char] -> GHC.Types.Bool
- [LclIdX, Str=DmdType]
- Blank.spacePrefix =
-   let {
-     $dEq_a16t :: GHC.Classes.Eq [GHC.Types.Char]
-     [LclId, Str=DmdType]
-     $dEq_a16t =
-       GHC.Classes.$fEq[] @ GHC.Types.Char GHC.Classes.$fEqChar } in
-   letrec {
-     spacePrefix [Occ=LoopBreaker]
-       :: [GHC.Types.Char] -> [GHC.Types.Char] -> GHC.Types.Bool
-     [LclId, Str=DmdType]
-     spacePrefix =
-       \ (str :: [GHC.Types.Char]) (ds_d16X :: [GHC.Types.Char]) ->
-         case ds_d16X of lq_anf$_d172 {
-           [] ->
-             (\ _ [Occ=Dead, OS=OneShot] -> GHC.Types.False) GHC.Prim.void#;
-           : c cs ->
-             let {
-               lq_anf$_d173 :: GHC.Types.Bool
-               [LclId, Str=DmdType]
-               lq_anf$_d173 = Blank.isSpace c } in
-             case lq_anf$_d173 of lq_anf$_d174 {
-               GHC.Types.False ->
-                 (\ _ [Occ=Dead, OS=OneShot] ->
-                    let {
-                      lq_anf$_d175 :: GHC.Types.Int
-                      [LclId, Str=DmdType]
-                      lq_anf$_d175 =
-                        Data.Foldable.length
-                          @ [] Data.Foldable.$fFoldable[] @ GHC.Types.Char str } in
-                    let {
-                      lq_anf$_d176 :: [GHC.Types.Char]
-                      [LclId, Str=DmdType]
-                      lq_anf$_d176 = GHC.Types.: @ GHC.Types.Char c cs } in
-                    let {
-                      lq_anf$_d177 :: [GHC.Types.Char]
-                      [LclId, Str=DmdType]
-                      lq_anf$_d177 =
-                        GHC.List.take @ GHC.Types.Char lq_anf$_d175 lq_anf$_d176 } in
-                    GHC.Classes.== @ [GHC.Types.Char] $dEq_a16t lq_anf$_d177 str)
-                   GHC.Prim.void#;
-               GHC.Types.True -> spacePrefix str cs
-             }
-         }; } in
-   spacePrefix]
-
- -}
-
-{- This is GHC core _with_ the signature
-
-*************** Transform Rec Expr CoreBinds *****************
-[Blank.isSpace :: GHC.Types.Char -> GHC.Types.Bool
- [LclIdX, Str=DmdType]
- Blank.isSpace =
-   GHC.Err.undefined @ (GHC.Types.Char -> GHC.Types.Bool),
- $dEq_a16d :: GHC.Classes.Eq [GHC.Types.Char]
- [LclId, Str=DmdType]
- $dEq_a16d =
-   GHC.Classes.$fEq[] @ GHC.Types.Char GHC.Classes.$fEqChar,
- Blank.spacePrefix [Occ=LoopBreaker]
-   :: GHC.Base.String -> GHC.Base.String -> GHC.Types.Bool
- [LclIdX, Str=DmdType]
- Blank.spacePrefix =
-   \ (str :: GHC.Base.String) (ds_d16D :: [GHC.Types.Char]) ->
-     case ds_d16D of lq_anf$_d16I {
-       [] ->
-         (\ _ [Occ=Dead, OS=OneShot] -> GHC.Types.False) GHC.Prim.void#;
-       : c cs ->
-         let {
-           lq_anf$_d16J :: GHC.Types.Bool
-           [LclId, Str=DmdType]
-           lq_anf$_d16J = Blank.isSpace c } in
-         case lq_anf$_d16J of lq_anf$_d16K {
-           GHC.Types.False ->
-             (\ _ [Occ=Dead, OS=OneShot] ->
-                let {
-                  lq_anf$_d16L :: GHC.Types.Int
-                  [LclId, Str=DmdType]
-                  lq_anf$_d16L =
-                    Data.Foldable.length
-                      @ [] Data.Foldable.$fFoldable[] @ GHC.Types.Char str } in
-                let {
-                  lq_anf$_d16M :: [GHC.Types.Char]
-                  [LclId, Str=DmdType]
-                  lq_anf$_d16M = GHC.Types.: @ GHC.Types.Char c cs } in
-                let {
-                  lq_anf$_d16N :: [GHC.Types.Char]
-                  [LclId, Str=DmdType]
-                  lq_anf$_d16N =
-                    GHC.List.take @ GHC.Types.Char lq_anf$_d16L lq_anf$_d16M } in
-                GHC.Classes.== @ [GHC.Types.Char] $dEq_a16d lq_anf$_d16N str)
-               GHC.Prim.void#;
-           GHC.Types.True -> Blank.spacePrefix str cs
-         }
-     };]
-*************** Slicing Out Unchanged CoreBinds *****************
-
-
- -}
diff --git a/tests/todo/doubleError.hs b/tests/todo/doubleError.hs
deleted file mode 100644
--- a/tests/todo/doubleError.hs
+++ /dev/null
@@ -1,15 +0,0 @@
--- https://github.com/ucsd-progsys/liquidhaskell/issues/427
-
-module Blank where
-
-{-@ measure myprop @-} 
-myprop :: Double -> Bool
-myprop x = (fromIntegral (floor d) - d) == 0.0
-  where d = (x / 3.0)
-
-{-@ type Mytype = {v:Double | myprop v} @-}
-type Mytype = Double
-
-{-@ ok :: Mytype @-}
-ok :: Mytype
-ok = 6.0
diff --git a/tests/todo/dyn.hs b/tests/todo/dyn.hs
deleted file mode 100644
--- a/tests/todo/dyn.hs
+++ /dev/null
@@ -1,43 +0,0 @@
-module Dyn where
-
-import Data.Dynamic 
-import Data.Maybe
-
-b0    = put 0 ("cat" :: String) 
-      $ put 1 (12    :: Int) 
-      $ emp
-
-ok    = 10 `plus` (get 1 b0)
-
-bad   = 10 `plus` (get 0 b0)
-
--------------------------------------------------
-plus :: Int -> Int -> Int
-plus = (+)
-
-concat :: String -> String -> String
-concat = (++)
--------------------------------------------------
-
-type Field   = Int
-
-newtype DBox = DB [(Field, Dynamic)]
-
-emp :: DBox 
-emp = DB []
-
-put :: (Typeable a) => Field -> a -> DBox -> DBox 
-put k v (DB b) = DB ((k, toDyn v) : b)
-
-get :: (Typeable a) => Field -> DBox -> a 
-get k (DB kvs) = ofD $ fromMaybe err $ lookup k kvs 
-  where 
-    err        = error $ "NOT FOUND" ++ show k
-
-{-@ toD :: (Typeable a) => x:a -> {v:Dyn | (tag v) = (typeRep a)} @-}
-toD :: (Typeable a) => a -> Dynamic 
-toD = toDyn 
-
-{-@ ofD :: {v:Dyn | (tag v) = (typeRep a)} -> a @-}
-ofD :: (Typeable a) => Dynamic -> a
-ofD = fromMaybe (error "DYNAMIC ERROR") . fromDynamic 
diff --git a/tests/todo/empty-or.hs b/tests/todo/empty-or.hs
deleted file mode 100644
--- a/tests/todo/empty-or.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module EmptyOr where
-
-import GHC.Base
-import GHC.ForeignPtr
-import GHC.Ptr
-
-{-@ updPtr :: forall <q :: Ptr a -> Prop>.
-              (z:Ptr a -> (Ptr a)<q>) -> x:ForeignPtr a
-           -> exists [p:(Ptr a)<q>].{v:ForeignPtr a | (fpLen v) = (pLen p)}
-  @-}
-updPtr :: (Ptr a -> Ptr a) -> ForeignPtr a -> ForeignPtr a
-updPtr f (ForeignPtr p c) = case f (Ptr p) of { Ptr q -> ForeignPtr q c }
-{-# INLINE updPtr #-}
-
-{-@ measure addrLen :: Addr# -> Int @-}
-{-@ measure pLen :: Ptr a -> Int
-    pLen (Ptr a) = (addrLen a)
-  @-}
-{-@ measure fpLen :: ForeignPtr a -> Int
-    fpLen (ForeignPtr a c) = (addrLen a)
-  @-}
diff --git a/tests/todo/err0.hs b/tests/todo/err0.hs
deleted file mode 100644
--- a/tests/todo/err0.hs
+++ /dev/null
@@ -1,17 +0,0 @@
--- | Error Message Test: parse error in spec
-
-module Err0 where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ qualif Zog(v:FooBar, x:FooBar): v = x + @-}
-
-data FooBar = Foo Int
-
-
-x = choose 0
-
-prop_abs ::  Bool
-prop_abs = if x > 0 then baz x else False
-
-baz gooberding = liquidAssertB (gooberding >= 0)
diff --git a/tests/todo/err1.hs b/tests/todo/err1.hs
deleted file mode 100644
--- a/tests/todo/err1.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- | Error Message Test: ghc error
-
-module Err1 where
-
-import Language.Haskell.Liquid.Prelude
-
-toss :: Boo 
-toss = (choose 0) > 10
-
-prop_abs :: Bool
-prop_abs = if toss 
-             then (if toss then liquidAssertB toss else False) 
-             else False
-
-
-foo :: Int -> Int
-foo x = (liquidAssert (x > 0) x) + 1
-
-goo = foo 12
-
-incr :: Int -> Int
-incr zzz = zzz + 1
-
-zoo = incr 29
-
-
diff --git a/tests/todo/err10.hs b/tests/todo/err10.hs
deleted file mode 100644
--- a/tests/todo/err10.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-{--! run liquid with no-termination -}
-
-module Intro where
-
-import Language.Haskell.Liquid.Prelude  (liquidAssert)
-
--- doesn't work with WEB demo (just says "ERROR" with no message...
---
-{-@ Prelude.head :: {v:[a] | false} -> a @-}
-
-bob z = head z
diff --git a/tests/todo/err11.hs b/tests/todo/err11.hs
deleted file mode 100644
--- a/tests/todo/err11.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module ParsingErrorWoes where
-  
-{-@ measure vsize :: a -> Int                                   @-}
-{-@ type AOkIdx X          = {v:Nat | (OkRng v X (-1))}         @-}
-{-@ predicate InRng V L U  = (L <= V && V <= U)                 @-}
-{-@ predicate OkRng V X N  = (InRng V 0 ((vsize X) - (N + 1)))  @-}
-
-foo :: Int
-foo = 0
diff --git a/tests/todo/err12.hs b/tests/todo/err12.hs
deleted file mode 100644
--- a/tests/todo/err12.hs
+++ /dev/null
@@ -1,10 +0,0 @@
-module BareCrash where
-
-{-@ measure isReal :: Space -> Prop
-    isReal (Null)       = false
-    isReal (Rreal pv n) = true
- @-}
-
-
-data Space = Null | Real Int Int 
-  deriving (Show, Eq)
diff --git a/tests/todo/err13.hs b/tests/todo/err13.hs
deleted file mode 100644
--- a/tests/todo/err13.hs
+++ /dev/null
@@ -1,3 +0,0 @@
-{-@ plus :: x:a -> y:a -> {v:a | v = x} @-}
-plus :: a -> a -> a
-plus = undefined
diff --git a/tests/todo/err2.hs b/tests/todo/err2.hs
deleted file mode 100644
--- a/tests/todo/err2.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- | Error Message Test: liquid-ghc type divergence 
-
-module Err1 where
-
-import Language.Haskell.Liquid.Prelude
-
-{-@ toss :: Int @-}
-toss     = (choose 0) > 10
-
-prop_abs :: Bool
-prop_abs = if toss 
-             then (if toss then liquidAssertB toss else False) 
-             else False
-
-
-foo :: Int -> Int
-foo x = (liquidAssert (x > 0) x) + 1
-
-goo = foo 12
-
-incr :: Int -> Int
-incr zzz = zzz + 1
-
-zoo = incr 29
-
-
diff --git a/tests/todo/err3.hs b/tests/todo/err3.hs
deleted file mode 100644
--- a/tests/todo/err3.hs
+++ /dev/null
@@ -1,26 +0,0 @@
--- | Error Message Test: ghc parse error
-
-module Err1 where
-
-import Language.Haskell.Liquid.Prelude
-
-toss :: Boo 
-toss = (choose 0) > 10
-
-prop_abs :: Bool
-prop_abs = if toss 
-             then (if toss then liquidAssertB toss else False) 
-             els False
-
-
-foo :: Int -> Int
-foo x = (liquidAssert (x > 0) x) + 1
-
-goo = foo 12
-
-incr :: Int -> Int
-incr zzz = zzz + 1
-
-zoo = incr 29
-
-
diff --git a/tests/todo/err4.hs b/tests/todo/err4.hs
deleted file mode 100644
--- a/tests/todo/err4.hs
+++ /dev/null
@@ -1,9 +0,0 @@
--- | Error Message Test: liquid type error
-
-module Err0 where
-
-{-@ zonk :: {v:Int | v = 0} @-}
-zonk     = (12 :: Int)
-
-{-@ tonk :: {v:Int | v = 0} @-}
-tonk     = (45 :: Int)
diff --git a/tests/todo/err5.hs b/tests/todo/err5.hs
deleted file mode 100644
--- a/tests/todo/err5.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Test0 where
-
-import Language.Haskell.Liquid.Prelude
-
-x = choose 0
-
-prop_abs = if x > 0 then baz x else False
-
-gob z = liquidAssertB (z `geq` 10)
-
-baz z = liquidAssertB (z `geq` 100)
diff --git a/tests/todo/err6.hs b/tests/todo/err6.hs
deleted file mode 100644
--- a/tests/todo/err6.hs
+++ /dev/null
@@ -1,8 +0,0 @@
--- | Error Message Test: liquid type error
-
-module Err0 where
-
-{-@ zonk :: {v:Int | v = z} @-}
-zonk     = (12 :: Int)
-
-
diff --git a/tests/todo/err7.hs b/tests/todo/err7.hs
deleted file mode 100644
--- a/tests/todo/err7.hs
+++ /dev/null
@@ -1,7 +0,0 @@
--- | Error Message Test: liquid type error
-
-module Err0 where
-
-{-@ tonk :: {v:Int | (Prop v) = v } @-}
-tonk     = (12 :: Int)
-
diff --git a/tests/todo/err8.hs b/tests/todo/err8.hs
deleted file mode 100644
--- a/tests/todo/err8.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module Blank where
-
--- instead of "ERROR ERROR ERROR" fail GRACEFULLY when spec has unknown var
-
-{-@ zoo :: Nat @-}
-
-{-@ x :: Poo @-}
-x :: Int
-x = 12
diff --git a/tests/todo/err9.hs b/tests/todo/err9.hs
deleted file mode 100644
--- a/tests/todo/err9.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Blank where
-
-
-{-@ type ListN a N = {v:[a] | (len v) = N} @-}
-
--- TODO: extend parser to allow expressions, at the very least, 
---       literals as arguments! Currently, the below is rejected by the parser.
-
-{-@ xs :: (ListN Int 2) @-}
-xs :: [Int]
-xs = [1,2] 
diff --git a/tests/todo/existsAbs.hs b/tests/todo/existsAbs.hs
deleted file mode 100644
--- a/tests/todo/existsAbs.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-
-
-
-module Exists where
-
-import Prelude hiding (exists)
-
-
-
-{-
-exists :: forall <p :: Bool -> Prop, q :: a -> Bool -> Prop, r :: a -> Prop>.
-          (x:a -> Bool<q x>) -> [a<r>] -> Bool<p>
-
-1. The result is True
-    forall x::a, v :: Bool . r x => q x True  |- v = True => p v 
-2. The result is False
-    forall x::a, v :: Bool . r x /\ q x True => false  |- v = False => p v 
-
-Eg:
-1. If all the elements of the list satisfy q x True, then the result is true
-exists isPos ([1, 2]  :: [Pos])        :: {v = True}
-2. If all the elements of the list contradict q x True, then the result is false
-exists isPos ([0, -1] :: [NonPos]) :: {v = False}
-3. Otherwise, I have no info
-exists isPos ([1, 0]  :: [Nat])        :: {true}
-
--}
-
-
-
-
-
-
-{-@ exists :: forall <p :: Bool -> Prop, q :: a -> Bool -> Prop, r :: a -> Prop>.
-                  {x::a, flag:: {v:Bool<q x> | Prop v}, y::a<r>, bb::{v:Bool | x = y} |- {v:Bool | Prop v <=> Prop flag } <: Bool<p>}
-                  {x::a, flag:: {v:Bool<q x> | Prop v}, y::a<r>, bb::{v:Bool | x != y} |- {v:Bool | not (Prop v) <=> Prop flag } <: Bool<p>}
-                  (x:a -> Bool<q x>) -> [a<r>] -> Bool<p>
-  @-}
-
-
-exists :: (a -> Bool) -> [a] -> Bool
-exists f (x:xs)
-  | f x       = True
-  | otherwise = exists f xs 
-exists _ []   = False
-	
-{-@ isPos :: x:Int -> {v:Bool | Prop v <=> x > 0} @-}
-isPos :: Int -> Bool
-isPos n = n > 0
-
-
-{-@ isNeg :: x:Int -> {v:Bool | Prop v <=> x < 0} @-}
-isNeg :: Int -> Bool
-isNeg n = n < 0
-
-prop0 :: Bool
-{- prop0 :: {v:Bool | Prop v} @-}
-prop0 = exists isPos [0, 1]
-prop1 :: Bool
-{- prop1 :: {v:Bool | not (Prop v)} @-}
-prop1 = exists isPos [0, -1]
-
-{-
--- | `positives` works by instantiating:
--- p := \v   -> 0 < v
--- q := \x v -> Prop v <=> 0 < x  (NV ??)
-
-
-{- positives :: [Int] -> [{v:Int | v > 0}] @-}
-positives xs = filter isPos xs
-
-
--- | `negatives` works by instantiating:
--- p := \v   -> 0 > v
--- q := \x v -> Prop v <=> x < 0
-
-{- negatives :: [Int] -> [{v:Int | v < 0}] @-}
-negatives xs = filter isNeg xs
--}
diff --git a/tests/todo/false.hs b/tests/todo/false.hs
deleted file mode 100644
--- a/tests/todo/false.hs
+++ /dev/null
@@ -1,12 +0,0 @@
-module Foo where
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--native" @-}
-
-{-@ foo :: {v:a | false} @-}
-foo  = foo
-
-
-nat :: Int
-{-@ nat :: Nat @-}
-nat = 42
diff --git a/tests/todo/fft.hs b/tests/todo/fft.hs
deleted file mode 100644
--- a/tests/todo/fft.hs
+++ /dev/null
@@ -1,84 +0,0 @@
-{-# LANGUAGE BangPatterns #-}
-
-module FFT where
-
-import Prelude hiding ((++))
-import qualified Data.ByteString.Lazy.Char8      as BS
-import qualified Data.ByteString.Lex.Lazy.Double as BS
-import qualified Data.Vector as V
-import Data.Vector ((!),(++),Vector)
-import Data.List hiding ((++))
-import Data.Complex
-import System.Environment
-
-headerSize bs = (+) 4 (BS.length . BS.concat . Prelude.take 4 . BS.lines $ bs)  
- 
-dropHeader bs = BS.drop (headerSize bs) $ bs
-
-main = do
-   [f] <- getArgs
-   s   <- BS.readFile f
-   print . V.map (round. realPart) . ifft_CT. fft_CT . parse $ (dropHeader s)
-
-dft :: Vector (Double) -> Vector (Complex Double)
-dft xr = V.map (\k -> V.sum (V.imap (arg k) xr)) (numvec n)
- where
-   n = V.length xr
-   nf = fromIntegral n
-   numvec n = V.enumFromStepN 0 1 n
-   arg k i x = (x:+0) * exp (-2 * pi * kf * ifl * (0:+1)/nf)
-             where
-               kf = fromIntegral k
-               ifl = fromIntegral i
-     
-idft :: Vector (Complex Double) -> Vector (Complex Double)
-idft xs = V.map (\k ->(/) (V.sum (V.imap (arg k) xs)) nf) (numvec n)
- where
-   n = V.length xs
-   nf = fromIntegral n
-   numvec n = V.enumFromStepN 0 1 n
-   arg k i x = x * exp (2 * pi * kf * ifl * (0:+1)/nf)
-             where
-               kf = fromIntegral k
-               ifl = fromIntegral i
-
-fft_CT xs = if V.length xs == 1 then
-             dft xs
-           else
-             let xtop = V.zipWith3 fft_top (fft_CT xse) (fft_CT xso) (V.enumFromStepN 0 1 m)
-             
-                 xbottom = V.zipWith3 fft_bottom (fft_CT xse) (fft_CT xso) (V.enumFromStepN 0 1 m)
-                 xse = V.map (xs !) (V.enumFromStepN 0 2 m)
-                 xso = V.map (xs !) (V.enumFromStepN 1 2 m)
-                 n = V.length xs
-                 nf = fromIntegral n
-                 m = n `div` 2
-                 fft_top xe xo k = xe + xo * exp (-2 * (0:+1) * pi * k / nf)
-                 fft_bottom xe xo k = xe - xo * exp (-2 * (0:+1) * pi * k / nf)
-             in              
-                 xtop ++ xbottom
-
-ifft_CT xs = if V.length xs == 1 then
-              idft xs
-           else
-              let xtop = V.zipWith3 fft_top (ifft_CT xse) (ifft_CT xso) (V.enumFromStepN 0 1 m)
-                  xtop_scaled = V.map (/2) xtop
-                  xbottom = V.zipWith3 fft_bottom (ifft_CT xse) (ifft_CT xso) (V.enumFromStepN 0 1 m)
-                  xbottom_scaled = V.map (/2) xbottom
-                  xse = V.map (xs !) (V.enumFromStepN 0 2 m)
-                  xso = V.map (xs !) (V.enumFromStepN 1 2 m)
-                  n = V.length xs
-                  nf = fromIntegral n
-                  m = n `div` 2
-                  fft_top xe xo k = xe + xo * exp (2 * (0:+1) * pi * k / nf)
-                  fft_bottom xe xo k = xe - xo * exp (2 * (0:+1) * pi * k / nf)
-             in              
-                xtop_scaled ++ xbottom_scaled
-
-
--- Fill a new vector from a file containing a list of numbers.
-parse = V.unfoldr step
- where
-   step !s = case BS.readDouble s of
-     Nothing       -> Nothing
-     Just (!k, !t) -> Just (k, BS.tail t)
diff --git a/tests/todo/fio.hs b/tests/todo/fio.hs
deleted file mode 100644
--- a/tests/todo/fio.hs
+++ /dev/null
@@ -1,104 +0,0 @@
-module RIO where
-
-import Prelude hiding (read)
-
-{-@ data FIO a <pre :: World -> Prop, post :: World -> a -> World -> Prop> 
-  = FIO (rs :: (x:World<pre> -> (a, World)<\w -> {v:World<post x w> | true}>))
-  @-}
-data FIO a  = FIO {runState :: World -> (a, World)}
-
-{-@ runState :: forall <pre :: World -> Prop, post :: World -> a -> World -> Prop>. 
-                FIO <pre, post> a -> x:World<pre> -> (a, World)<\w -> {v:World<post x w> | true}> @-}
-
-data World  = W
-
-
--- | forall m k v k'. sel (upd m k v) k' = if (k == k') then v else sel m k'
-
-{-@ measure sel :: World -> FilePath -> Int          @-}
-{-@ measure upd :: World -> FilePath -> Int -> World @-}
-
-
-{-@ open :: fp:FilePath -> FIO <{\w0 -> true}, {\w0 r w1 -> w1 = w0  && sel w0 fp = 1}> () @-}
-open :: FilePath -> FIO () 
-open = undefined
-
-{-@ read :: fp:FilePath -> FIO <{\w0 -> sel w0 fp = 1}, {\w0 r w1 -> w1 = w0}> String @-}
-read :: FilePath -> FIO String
-read = undefined
-
---------------------------
-
-
-{-@
-bind :: forall < pre   :: World -> Prop 
-               , pre2  :: World -> Prop 
-               , p     :: a -> Prop
-               , post1 :: World -> a -> World -> Prop
-               , post2 :: World -> b -> World -> Prop
-               , post :: World -> b -> World -> Prop>.
-       {w:World<pre> -> x:a -> World<post1 w x> -> World<pre2>}        
-       {w:World<pre> -> y:a -> w2:World<post1 w y> -> x:b -> World<post2 w2 x> -> World<post w x>}        
-       FIO <pre, post1> a
-    -> (a -> FIO <pre2, post2> b)
-    -> FIO <pre, post> b 
-
-  @-}
-bind :: FIO a -> (a -> FIO b) -> FIO b
-bind (FIO g) f = FIO (\x -> case g x of {(y, s) -> (runState (f y)) s})    
-
-
--- is the precondition true or p?
-{-@ ret :: forall <p :: World -> Prop>.
-           x:a -> FIO <p, {\w0 y w1 -> w0 == w1 && y == x }> a @-}
-ret :: a -> FIO a
-ret w      = FIO $ \x -> (w, x)
-
-
-ok1 f = open f
-
-{-@ fail1 :: FilePath -> FIO String @-}
-fail1 :: FilePath -> FIO String
-fail1 f   = read f
-
-
-ok2 f = open f `bind` \_ -> read f
-
-instance Monad FIO where
-
-{-@ instance Monad FIO where
- >>= :: forall < pre   :: World -> Prop 
-               , pre2  :: World -> Prop 
-               , p     :: a -> Prop
-               , post1 :: World -> a -> World -> Prop
-               , post2 :: World -> b -> World -> Prop
-               , post :: World -> b -> World -> Prop>.
-       {w:World<pre> -> x:a -> World<post1 w x> -> World<pre2>}        
-       {w:World<pre> -> y:a -> w2:World<post1 w y> -> x:b -> World<post2 w2 x> -> World<post w x>}        
-       FIO <pre, post1> a
-    -> (a -> FIO <pre2, post2> b)
-    -> FIO <pre, post> b ;
- >>  :: forall < pre   :: World -> Prop 
-               , pre2  :: World -> Prop 
-               , p     :: a -> Prop
-               , post1 :: World -> a -> World -> Prop
-               , post2 :: World -> b -> World -> Prop
-               , post :: World -> b -> World -> Prop>.
-       {w:World<pre> -> x:a -> World<post1 w x> -> World<pre2>}        
-       {w:World<pre> -> y:a -> w2:World<post1 w y> -> x:b -> World<post2 w2 x> -> World<post w x>}        
-       FIO <pre, post1> a
-    -> FIO <pre2, post2> b
-    -> FIO <pre, post> b ;
- return :: forall <p :: World -> Prop>.
-           x:a -> FIO <p, {\w0 y w1 -> w0 == w1 && y == x }> a
-  @-}  
-  (FIO g) >>= f = FIO $ \x -> case g x of {(y, s) -> (runState (f y)) s} 
-  (FIO g) >>  f = FIO $ \x -> case g x of {(y, s) -> (runState f    ) s}    
-  return w      = FIO $ \x -> (w, x)
-  fail          = error
-
-
-{-@ ok3   :: FilePath -> FIO String @-}
-ok3 f = do open f
-           read f
-
diff --git a/tests/todo/fixme.lhs b/tests/todo/fixme.lhs
deleted file mode 100644
--- a/tests/todo/fixme.lhs
+++ /dev/null
@@ -1,9 +0,0 @@
-foo :: Int 
-foo = 1 
-
-bar :: Int 
-bar = 1 
-{-@ LIQUID "--higher-order" @-}
-{-@ unsound :: () -> {v:Bool |  foo == bar } @-}
-unsound :: () -> Bool
-unsound _ = foo == bar 
diff --git a/tests/todo/funrec.hs b/tests/todo/funrec.hs
deleted file mode 100644
--- a/tests/todo/funrec.hs
+++ /dev/null
@@ -1,5 +0,0 @@
-module Foo () where
-
-data F a = F { f :: Int -> a }
-
-{-@ data F a = F { f :: Nat -> a } @-}
diff --git a/tests/todo/gadtEval.hs b/tests/todo/gadtEval.hs
deleted file mode 100644
--- a/tests/todo/gadtEval.hs
+++ /dev/null
@@ -1,91 +0,0 @@
-
-module Eval () where 
-
-import Language.Haskell.Liquid.Prelude (liquidError)
-
--- "Classic" GADT 
--- 
--- data Expr a where
---   I :: Int -> Expr Int
---   B :: Bool -> Expr Bool
---   Eq :: Expr a -> Expr a -> Expr Bool
---   Pl :: Expr Int -> Expr Int -> Expr Int
--- 
--- eval :: Expr a -> a
--- eval (I i)      = i
--- eval (B b)      = b
--- eval (Eq e1 e2) = (eval e1) == (eval e2)
--- eval (Pl e1 e2) = (eval e1) + (eval e2)
-
-data Ty   = TInt 
-          | TBool
-
-data Expr = I     Int
-          | B     Bool
-          | Equal Expr Expr
-          | Plus  Expr Expr
-          deriving (Eq, Show)
-
-
-{-@ check          :: e:ValidExpr  -> {v:Ty | (v = (eType e))} @-}
-check (I _)        = TInt
-check (B _)        = TBool
-check (Plus e1 e2) = TInt
-check (Equal _ _)  = TBool
-
-{-@ Strict eval @-}
-
-{-@ eval           :: e:ValidExpr  -> {v:ValidExpr | ((isValue v) && (((eType e) = (eType v))))} @-}
-eval e@(I _)       = e
-eval e@(B _)       = e
-eval (Plus e1 e2)  = (eval e1) `plus` (eval e2)
-eval (Equal e1 e2) = (eval e1) `equal` (eval e2)
-
-plus (I i) (I j)   = I (i + j)
-plus _       _     = liquidError "don't worry, its impossible" 
-
-equal (I i) (I j)  = B (i == j)
-equal (B x) (B y)  = B (x == y)
-equal _       _    = liquidError "don't worry, its impossible" 
-
--- | The next two are silly, for scraping quals. Yuck. Should scrape from measure-DEFS etc.
-
-{-@ toInt :: IntExpr -> Int @-}
-toInt (I i) = i
-toInt _     = liquidError "impossible"
-
-{-@ toBool :: BoolExpr -> Bool @-}
-toBool (B b) = b
-toBool _     = liquidError "impossible"
-
-
-{-@ predicate TInt X   = ((eType X) = TInt)  @-}
-{-@ predicate TBool X  = ((eType X) = TBool) @-}
-
-
-{-@ type ValidExpr     = {v: Expr | (isValid v)}                @-}
-{-@ type IntExpr       = {v: Expr | ((isValue v) && (TInt  v))} @-}
-{-@ type BoolExpr      = {v: Expr | ((isValue v) && (TBool v))} @-}
-
-
-{-@ measure isValue       :: Expr -> Prop
-    isValue (I i)         = true
-    isValue (B b)         = true
-    isValue (Equal e1 e2) = false 
-    isValue (Plus e1 e2)  = false
-  @-}  
-
-{-@ measure eType       :: Expr -> Ty 
-    eType (I i)         = TInt  
-    eType (Plus  e1 e2) = TInt 
-    eType (B b)         = TBool 
-    eType (Equal e1 e2) = TBool 
-  @-}
-
-{-@ measure isValid       :: Expr -> Prop
-    isValid (I i)         = true
-    isValid (B b)         = true
-    isValid (Equal e1 e2) = (((eType e1) = (eType e2)) && (isValid e1) && (isValid e2))
-    isValid (Plus e1 e2)  = ((TInt e1) && (TInt e2) && (isValid e1) && (isValid e2))
-  @-}
-
diff --git a/tests/todo/if.hs b/tests/todo/if.hs
deleted file mode 100644
--- a/tests/todo/if.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-module If where
-
--- what's a reasonable type to give to `if_` so that we can verify `bog` ? 
-
-{-@ type TT = {v: Bool |     (Prop v)} @-}
-{-@ type FF = {v: Bool | not (Prop v)} @-}
-
-
-{-@ if_  :: b:Bool -> x:a -> y:a -> a @-}
-if_ :: Bool -> a -> a -> a
-if_ True  x _ = x
-if_ False _ y = y
-
-
-{-@ bog :: Nat @-}
-bog :: Int
-bog =
-  let b  = (0 < 1)      -- :: TT
-      xs = [1 ,  2,  3] -- :: [Nat]
-      ys = [-1, -2, -3] -- :: [Int]
-      zs = if_ b xs ys  -- :: [Nat] 
-  in 
-      case xs of
-        h:_ -> h 
-        _   -> 0
-
-
diff --git a/tests/todo/inccheck0.hs b/tests/todo/inccheck0.hs
deleted file mode 100644
--- a/tests/todo/inccheck0.hs
+++ /dev/null
@@ -1,40 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-
-module Test0 () where
-
-{-@ decr :: x:Int -> {v:Int | v < x} @-}
-decr :: Int -> Int
-decr xo = xo - 100
-
-{-@ plus :: x:Int -> y:Int -> {v:Int | v = x + y} @-}
-plus :: Int -> Int -> Int
-plus x yo = x + yo
-
-{-@ goo :: Int -> Nat @-}
-goo :: Int -> Int
-goo x = x +  1
-
-{-@ incr :: x:Int -> {v:Int | v > x} @-}
-incr :: Int -> Int
-incr xoo = xoo  `plus` zaa
-  where
-     zaa = a00 - b00
-     a00 = 300
-     b00 = 2
-
-{-@ jog :: x:Int -> {v:Int | v = x} @-}
-jog  :: Int -> Int
-jog x = x `plus` z
-  where 
-    z = a - b
-    a = 2
-    b = 2
-
-{-@ ping, pong :: n:Int -> {v:Int | v > n} @-}
-ping, pong :: Int -> Int
-ping 0 = 1
-ping n = 1 `plus` pong (n-1)
-
-pong 0 = 1 
-pong n = 1 `plus` ping (n-1)
diff --git a/tests/todo/intP.hs b/tests/todo/intP.hs
deleted file mode 100644
--- a/tests/todo/intP.hs
+++ /dev/null
@@ -1,6 +0,0 @@
-module Qoo where
-
-{-@ intid :: forall <r :: y0: Int -> Bool>. i: Int<r> -> Int<r> @-}
-intid :: Int -> Int
-intid i = i
-
diff --git a/tests/todo/kmpMonad.hs b/tests/todo/kmpMonad.hs
deleted file mode 100644
--- a/tests/todo/kmpMonad.hs
+++ /dev/null
@@ -1,180 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--short-names"    @-}
-{- LIQUID "--diff"           @-}
-
-module KMP (search) where
-
-import Language.Haskell.Liquid.Prelude (liquidError, liquidAssert)
-import Data.IORef
-import Control.Applicative ((<$>))
-import qualified Data.Map as M
-import Prelude hiding (map)
-
-{-@ type Upto N = {v:Nat | v < N} @-}
-
----------------------------------------------------------------------------
-{-@ search :: pat:String -> str:String -> IO (Maybe (Upto (len str))) @-}
----------------------------------------------------------------------------
-search :: String -> String -> IO (Maybe Int)
-search pat str = do
-  p <- ofListIO pat
-  s <- ofListIO str
-  kmpSearch p s
-
----------------------------------------------------------------------------
--- | Do the Search --------------------------------------------------------
----------------------------------------------------------------------------
-
-kmpSearch p@(IOA m _) s@(IOA n _) = do
-  t <- kmpTable p
-  find p s t 0 0
-
-find p@(IOA m _) s@(IOA n _) t = go
-  where
-    go i j
-      | i >= n    = return $ Nothing
-      | j >= m    = return $ Just (i - m)
-      | otherwise = do si <- getIO s i
-                       pj <- getIO p j
-                       tj <- getIO t j
-                       case () of
-                        _ | si == pj  -> go (i+1) (j+1)
-                          | j == 0    -> go (i+1) j
-                          | otherwise -> go i     tj
-
----------------------------------------------------------------------------
--- | Make Table -----------------------------------------------------------
----------------------------------------------------------------------------
-
--- BUG WHAT's going on?
-{-@ bob :: Nat -> IO () @-}
-bob n = do
-  t <- newIO (n + 1) (\_ -> 0)
-  setIO t 0 100
-  r <- getIO t 0
-  liquidAssert (r == 0) $ return ()
-
-
-kmpTable p@(IOA m _) = do
-  t <- newIO m (\_ -> 0)
-  fill p t 1 0
-  return t
-
-fill p t@(IOA m _) = go
-  where
-    go i j
-      | i < m - 1  = do
-          pi <- getIO p (id i)
-          pj <- getIO p j
-          case () of
-            _ | pi == pj -> do
-                  let i' = i + 1
-                  let j' = j + 1
-                  setIO t i' j'
-                  go i' j'
-              | j == 0 -> do
-                  let i' = i + 1
-                  setIO t i' 0
-                  go i' j
-              | otherwise -> do
-                  j' <- getIO t j
-                  go i j'
-      | otherwise = return t
-
-
--------------------------------------------------------------------------------
--- | An Imperative Array ------------------------------------------------------
--------------------------------------------------------------------------------
-
-data IOArr a = IOA { size :: Int
-                   , pntr :: IORef (Arr a)
-                   }
-
-{-@ data IOArr a <p :: Int -> a -> Prop>
-      = IOA { size :: Nat
-            , pntr :: IORef ({v:Arr<p> a | alen v = size})
-            }
-  @-}
-
-
-{-@ newIO :: forall <p :: Int -> a -> Prop>.
-               n:Nat -> (i:Upto n -> a<p i>) -> IO ({v: IOArr<p> a | size v = n})
-  @-}
-newIO n f = IOA n <$> newIORef (new n f)
-
-{-@ getIO :: forall <p :: Int -> a -> Prop>.
-              a:IOArr<p> a -> i:Upto (size a) -> IO (a<p i>)
-  @-}
-getIO a@(IOA sz p) i
-  = do arr   <- readIORef p
-       return $ (arr ! i)
-
-{-@ setIO :: forall <p :: Int -> a -> Prop>.
-              a:IOArr<p> a -> i:Upto (size a) -> a<p i> -> IO ()
-  @-}
-setIO a@(IOA sz p) i v
-  = do arr     <- readIORef p
-       let arr' = set arr i v
-       writeIORef p arr'
-
-
-{-@ ofListIO :: xs:[a] -> IO ({v:IOArr a | size v = len xs}) @-}
-ofListIO xs  = newIO n f
-  where
-    n        = length xs
-    m        = M.fromList $ zip [0..] xs
-    f i      = (M.!) m i
-
-
-{-@ mapIO :: (a -> b) -> a:IOArr a -> IO ({v:IOArr b | size v = size a}) @-}
-mapIO f (IOA n p)
-  = do a <- readIORef p
-       IOA n <$> newIORef (map f a)
-
-
-
--------------------------------------------------------------------------------
--- | A Pure Array -------------------------------------------------------------
--------------------------------------------------------------------------------
-
-data Arr a   = A { alen :: Int
-                 , aval :: Int -> a
-                 }
-
-{-@ data Arr a <p :: Int -> a -> Prop>
-             = A { alen :: Nat
-                 , aval :: i:Upto alen -> a<p i>
-                 }
-  @-}
-
-
-{-@ new :: forall <p :: Int -> a -> Prop>.
-             n:Nat -> (i:Upto n -> a<p i>) -> {v: Arr<p> a | alen v = n}
-  @-}
-new n v = A { alen = n
-            , aval = \i -> if (0 <= i && i < n)
-                             then v i
-                             else liquidError "Out of Bounds!"
-            }
-
-{-@ (!) :: forall <p :: Int -> a -> Prop>.
-             a:Arr<p> a -> i:Upto (alen a) -> a<p i>
-  @-}
-
-(A _ f) ! i = f i
-
-{-@ set :: forall <p :: Int -> a -> Prop>.
-             a:Arr<p> a -> i:Upto (alen a) -> a<p i> -> {v:Arr<p> a | alen v = alen a}
-  @-}
-set a@(A _ f) i v = a { aval = \j -> if (i == j) then v else f j }
-
-
-{-@ ofList :: xs:[a] -> {v:Arr a | alen v = len xs} @-}
-ofList xs = new n f
-  where
-    n     = length xs
-    m     = M.fromList $ zip [0..] xs
-    f i   = (M.!) m i
-
-{-@ map :: (a -> b) -> a:Arr a -> {v:Arr b | alen v = alen a} @-}
-map f a@(A n z) = A n (f . z)
diff --git a/tests/todo/liftbug.hs b/tests/todo/liftbug.hs
deleted file mode 100644
--- a/tests/todo/liftbug.hs
+++ /dev/null
@@ -1,9 +0,0 @@
-module AVL where
-
-data Tree = Nil | Tree Int Tree Tree
-
-{-@ measure height @-}
-height :: Tree -> Int
-height Nil          = 0 :: Int
-height (Tree _ l r) = (if height l > height r then 1 + height l else 1 + height r)
-
diff --git a/tests/todo/linspace-crash.hs b/tests/todo/linspace-crash.hs
deleted file mode 100644
--- a/tests/todo/linspace-crash.hs
+++ /dev/null
@@ -1,207 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-
-{-@ LIQUID "--no-termination" @-}
-{-@ LIQUID "--diff" @-}
-
-module LinSpace (dotPV, sameSpace, enumCVP) where
-
-import Language.Haskell.Liquid.Prelude (liquidAssert, liquidError)
-import Prelude hiding (zipWith)
-
-data PVector = PVector { 
-    vec       :: [Integer]      -- vector coordinates
-  , muCoeff   :: [Integer]      -- <vec,bn*>det^2(b[1..n-1]) : ... 
-  , orthSpace :: Space PVector  -- lattice basis
-  } deriving (Show, Eq)
-
--- | Orthogonalized vector bn* and squared lattice determinant 
-data Space a = Null | Real a Integer
-  deriving (Show, Eq)
-
-{-@ data PVector = PVector { 
-      vec_  :: [Integer]   
-    , mu_   :: [Integer] 
-    , orth_ :: {v: (Space (PVectorN (len vec_))) | dim v = (len mu_)}
-    } 
-  @-}
-
-{-@ measure dim     :: (Space PVector) -> Int 
-    dim (Null)      = 0
-    dim (Real pv n) = 1 + (dim (orthSpace pv))
-  @-}
-
-{-@ measure spaceVec     :: (Space PVector) -> PVector
-    spaceVec (Real pv n) = pv
-  @-}
-
-{-@ measure vec :: PVector -> [Integer]
-    vec (PVector v m o) = v 
-  @-}
-
-{-@ measure muCoeff :: PVector -> [Integer]
-    muCoeff (PVector v m o) = m 
-  @-}
-
-{-@ measure orthSpace :: PVector -> (Space PVector)
-    orthSpace (PVector p m o) = o
-  @-}
-
-{-@ invariant {v: PVector | (Inv v) }    @-}
-{-@ invariant {v: Space PVector | (dim v) >= 0 } @-}
-
--- RJ: Helpers for defining properties
-
-{-@ predicate Inv V        = (dim (orthSpace V)) = (len (muCoeff V)) @-}
-{-@ predicate SameLen  X Y = ((len (vec X))  = (len (vec Y)))  @-}
-{-@ predicate SameOrth X Y = ((orthSpace X) = (orthSpace Y)) @-}
-
--- RJ: Useful type aliases for specs
-
-{-@ type SameSpace X       = {v:PVector | ((Inv v) && (SameLen X v) && (SameOrth X v))} @-}
-{-@ type PVectorN N        = {v: PVector | (len (vec v)) = N}   @-} 
-{-@ type PVectorP P        = {v: PVector | (SameLen v P)}       @-} 
-
---------------------
-
-{-@ dim         :: s:(Space PVector) -> {v:Int | v = (dim s)} @-}
-dim Null        = (0 :: Int)
-dim (Real pv _) = 1 + dim (orthSpace_ pv)
-
-sameSpace         :: PVector -> PVector -> Bool
-sameSpace pv1 pv2 = (length (vec pv1) == length (vec pv2)) && (orthSpace pv1 == orthSpace pv2)
-
-
-{-@ muCoeff_   :: p:PVector -> {v:[Integer] | v = (muCoeff p) }            @-}
-muCoeff_ (PVector v m o) = m
-
-{-@ orthSpace_ :: p:PVector -> {v:(Space (PVectorP p)) | v = (orthSpace p)} @-} 
-orthSpace_ (PVector v m o) = o
-
-{-@ vec_       :: p:PVector -> {v:[Integer] | v = (vec p)}                  @-}
-vec_     (PVector v m o) = v
-
---------------------
-
--- squared determinant of orthSpace
-detPV :: PVector -> Integer 
-detPV (PVector _ _ Null)       = 1
-detPV (PVector _ _ (Real _ n)) = n
-
-
-{-@ liftPV :: pv:PVector -> {v:(PVectorP pv) | ((orthSpace v) = (orthSpace (spaceVec (orthSpace pv))) && ((dim (orthSpace v)) = (dim (orthSpace pv)) - 1))} @-}
-liftPV (PVector v (m:mu) (Real pv _)) = PVector v mu (orthSpace_ pv)
-
-{-@ dot :: (Num a) => xs:[a] -> {v:[a] | (len v) = (len xs)} -> a @-}
-dot xs ys = sum (zipWith (*) xs ys)
-
--- scaled dot product of two projected vectors: output is <v*,w*>det^2(orthSpace) 
-{-@ dotPV :: pv1:PVector -> pv2:(SameSpace pv1) -> Integer @-}
-dotPV (PVector v1 [] _) (PVector v2 [] _) 
-  = dot v1 v2
-dotPV pv1@(PVector _ mu1 _) pv2@(PVector _ mu2 _) 
-  = liquidAssert (length mu1 == length mu2) q
-  where
-    dd          = dotPV (liftPV pv1) (liftPV pv2)
-    Real pv0 rr = orthSpace_ pv1       -- same as orthSpace v2
-    x           = dd * rr - (head mu1) * (head mu2)
-    (q, 0)      = divMod x (detPV pv0) -- check remainder is 0
-
--- ASSERT: (x .+. y) ==> sameSpace x y
-{-@ (.+.) :: x:PVector -> (SameSpace x) -> (SameSpace x) @-}
-(PVector v1 m1 o) .+. (PVector v2 m2 _) = PVector (zipWith  (+) v1 v2) (zipWith (+) m1 m2) o
-
--- ASSERT: (x .-. y) ==> sameSpace x y
-{-@ (.-.) :: x:PVector -> (SameSpace x) -> (SameSpace x) @-}
-(PVector v1 m1 o) .-. (PVector v2 m2 _) = PVector (zipWith  (-) v1 v2) (zipWith (-) m1 m2) o
-
-{-@ (*.) :: Integer -> x:PVector -> (SameSpace x) @-}
-(*.) :: Integer -> PVector -> PVector
-x *. (PVector v m o) = PVector (map (x *)  v) (map (x *) m) o
-
--- Some auxiliary functions
-
-{-@ space2vec :: n:Int -> s:(Space (PVectorN n)) -> {v: (PVectorN n) | (orthSpace v) = s} @-}
-space2vec (n :: Int) sp@(Real bn r) = PVector (vec_ bn) (r : muCoeff_ bn) sp
-
-{-@ makeSpace :: p:PVector -> (Space (PVectorP p)) @-}
-makeSpace pvec = Real pvec (dotPV pvec pvec)
-
-{-@ makePVector :: vs:[Integer] -> s:(Space (PVectorN (len vs))) -> {v: (PVectorN (len vs)) | (orthSpace v) = s} @-}
-makePVector :: [Integer] -> Space PVector -> PVector
-makePVector v s@Null = PVector v [] s 
-makePVector v s@(Real s1 _) = 
-  let v1 = makePVector v (orthSpace_ s1) 
-  in PVector v (dotPV v1 s1 : muCoeff_ v1)  s
-
-{-@ gramSchmidt :: n:Nat -> [(List Integer n)] -> (Space (PVectorN n)) @-}
-gramSchmidt (n :: Int) = foldl (\sp v -> makeSpace (makePVector v sp)) Null 
-
-{-@ getBasis :: n:Nat -> Space (PVectorN n) -> [(List Integer n)] @-}
-getBasis (n::Int) s = worker s [] 
-  where
-    worker Null bs = bs
-    worker (Real pv _) bs = worker (orthSpace_ pv) (vec pv : bs)
-
-{-@ qualif EqMu(v:PVector, x:PVector): (len (muCoeff v)) = (len (muCoeff x)) @-}
-
-sizeReduce1 :: PVector -> PVector
-sizeReduce1 pv@(PVector v (m:_) sn@(Real _ r)) = 
-  let c  = div (2*m + r) (2*r) -- division with rounded remainder
-      n  = length v    
-  in  pv  .-.  (c *. (space2vec n sn))
-
--- ASSERT: sameSpace (sizeReduce x) x
-{-@ sizeReduce :: x:PVector -> (SameSpace x) @-}
-sizeReduce pv@(PVector v [] Null) = pv
-sizeReduce pv@(PVector _ _ sp@(Real _ _)) = 
-  let pv1 = sizeReduce1 pv
-      (PVector v mu _) = sizeReduce (liftPV pv1)
-  in PVector v (head (muCoeff_ pv1) : mu) sp
-
--- Two example algorithms using the library: enumCVP and lll
-
-enumCVP :: PVector -> Integer -> Maybe [Integer]
-enumCVP (PVector v mu Null) r 
-  | dot v v < r = Just v 
-  | otherwise   = Nothing 
-enumCVP t@(PVector _ (_:_) (Real bn _)) r = 
-  let t0 = sizeReduce1  t
-      cs = if (head (muCoeff_ t0) < 0) 
-           then 0 : concat [[x,negate x] | x <- [1,2..]]
-           else 0 : concat [[negate x,x] | x <- [1,2..]]
-      branch :: (Integer, Maybe [Integer]) -> [PVector] -> (Integer, Maybe [Integer])
-      branch (r,v) (t:ts) = 
-        if (dotPV t t >= r * detPV t) then (r,v)
-        else case enumCVP t r of
-          Nothing -> branch (r,v) ts
-          Just w  -> branch (dot w w, Just w) ts
-  in snd $ branch (r,Nothing) [liftPV t0 .+. (c *. bn) | c <- cs]
-
--- make this parametric on n
-{- Fraction free LLL Algorithm with exact arithmetic and delta=99/100 -}
-{-@ lll :: n:Nat -> [(List Integer n)] -> [(List Integer n)] @-}
-lll :: Int -> [[Integer]] -> [[Integer]]
-lll n = getBasis n . lll_worker n Null Nothing
-
-{-@ lll_worker :: n:Nat -> (Space (PVectorN n)) -> (Maybe (PVectorN n)) -> [(List Integer n)] -> (Space (PVectorN n)) @-}
-lll_worker (n :: Int) bs Nothing [] = bs
-lll_worker n bs Nothing (v:vs)      = lll_worker n bs (Just (makePVector v bs)) vs
-lll_worker n Null (Just pv) vs      = lll_worker n (makeSpace pv) Nothing vs
-lll_worker n (Real bn r) (Just pv) vs = 
-    let pv1 = sizeReduce pv
-        pv2 = liftPV pv1
-    in if (100*(dotPV pv2 pv2) < 99*r)
-       then lll_worker n (orthSpace_ bn) (Just pv2) (vec bn : vs)
-       else lll_worker n (makeSpace pv1) Nothing vs
-
-------------------------------------------------------------------------------------
--- RJ: Included for illustration...
-------------------------------------------------------------------------------------
-
-{-@ type List a N = {v : [a] | (len v) = N} @-}
-
-{-@ zipWith :: (a -> b -> c) -> xs:[a] -> (List b (len xs)) -> (List c (len xs)) @-}
-zipWith f (a:as) (b:bs) = f a b : zipWith f as bs
-zipWith _ [] []         = []
-zipWith _ (_:_) []      = liquidError "Dead Code"
-zipWith _ [] (_:_)      = liquidError "Dead Code"
diff --git a/tests/todo/linspace.hs b/tests/todo/linspace.hs
deleted file mode 100644
--- a/tests/todo/linspace.hs
+++ /dev/null
@@ -1,210 +0,0 @@
-{-# LANGUAGE ScopedTypeVariables #-}
-
-{-@ LIQUID "--no-termination" @-}
-
-module LinSpace (dotPV, sameSpace, enumCVP) where
-
-import Language.Haskell.Liquid.Prelude (liquidAssume, liquidAssert, liquidError)
-import Prelude hiding (zipWith)
-
-data PVector = PVector { 
-    vec       :: [Integer]      -- vector coordinates
-  , muCoeff   :: [Integer]      -- <vec,bn*>det^2(b[1..n-1]) : ... 
-  , orthSpace :: Space PVector  -- lattice basis
-  } deriving (Show, Eq)
-
--- | Orthogonalized vector bn* and squared lattice determinant 
-data Space a = Null | Real a Integer
-  deriving (Show, Eq)
-
-{-@ data PVector = PVector { 
-      vec_  :: [Integer]   
-    , mu_   :: [Integer] 
-    , orth_ :: {v: (Space (PVectorN (len vec_))) | (dim v) = (len mu_)}
-    } 
-  @-}
-
-{-@ data Space [dim] @-}
-
-{-@ measure dim     :: (Space PVector) -> Int 
-    dim (Null)      = 0
-    dim (Real pv n) = 1 + (dim (orthSpace pv))
-  @-}
-
-{-@ measure spaceVec     :: (Space PVector) -> PVector
-    spaceVec (Real pv n) = pv
-  @-}
-
-{-@ measure vec :: PVector -> [Integer]
-    vec (PVector v m o) = v 
-  @-}
-
-{-@ measure muCoeff :: PVector -> [Integer]
-    muCoeff (PVector v m o) = m 
-  @-}
-
-{-@ measure orthSpace :: PVector -> (Space PVector)
-    orthSpace (PVector p m o) = o
-  @-}
-
-{-@ invariant {v: PVector | (Inv v) }    @-}
-{-@ invariant {v: Space PVector | (dim v) >= 0 } @-}
-
--- RJ: Helpers for defining properties
-
-{-@ predicate Inv V        = (dim (orthSpace V)) = (len (muCoeff V)) @-}
-{-@ predicate SameLen  X Y = ((len (vec X))  = (len (vec Y)))  @-}
-{-@ predicate SameOrth X Y = ((orthSpace X) = (orthSpace Y)) @-}
-
--- RJ: Useful type aliases for specs
-
-{-@ type SameSpace X       = {v:PVector | ((Inv v) && (SameLen X v) && (SameOrth X v))} @-}
-{-@ type PVectorN N        = {v: PVector | (len (vec v)) = N}   @-} 
-{-@ type PVectorP P        = {v: PVector | (SameLen v P)}       @-} 
-
---------------------
-
-{-@ dim         :: s:(Space PVector) -> {v:Int | v = (dim s)} @-}
-dim Null        = (0 :: Int)
-dim (Real pv _) = 1 + dim (orthSpace_ pv)
-
-sameSpace         :: PVector -> PVector -> Bool
-sameSpace pv1 pv2 = (length (vec pv1) == length (vec pv2)) && (orthSpace pv1 == orthSpace pv2)
-
-
-{-@ muCoeff_   :: p:PVector -> {v:[Integer] | v = (muCoeff p) }            @-}
-muCoeff_ (PVector v m o) = m
-
-{-@ orthSpace_ :: p:PVector -> {v:(Space (PVectorP p)) | v = (orthSpace p)} @-} 
-orthSpace_ (PVector v m o) = o
-
-{-@ vec_       :: p:PVector -> {v:[Integer] | v = (vec p)}                  @-}
-vec_     (PVector v m o) = v
-
---------------------
-
--- squared determinant of orthSpace
-detPV :: PVector -> Integer 
-detPV (PVector _ _ Null)       = 1
-detPV (PVector _ _ (Real _ n)) = n
-
-
-{-@ liftPV :: pv:PVector -> {v:(PVectorP pv) | ((orthSpace v) = (orthSpace (spaceVec (orthSpace pv))) && ((dim (orthSpace v)) = (dim (orthSpace pv)) - 1))} @-}
-liftPV (PVector v (m:mu) (Real pv _)) = PVector v mu (orthSpace_ pv)
-
-{-@ dot :: (Num a) => xs:[a] -> {v:[a] | (len v) = (len xs)} -> a @-}
-dot xs ys = sum (zipWith (*) xs ys)
-
--- scaled dot product of two projected vectors: output is <v*,w*>det^2(orthSpace) 
-{-@ dotPV :: pv1:PVector -> pv2:(SameSpace pv1) -> Integer @-}
-dotPV (PVector v1 [] _) (PVector v2 [] _) 
-  = dot v1 v2
-dotPV pv1@(PVector _ mu1 _) pv2@(PVector _ mu2 _) 
-  = liquidAssert (length mu1 == length mu2) q
-  where
-    dd          = dotPV (liftPV pv1) (liftPV pv2)
-    Real pv0 rr = orthSpace_ pv1                         -- same as orthSpace v2
-    x           = dd * rr - (head mu1) * (head mu2)
-    (q, 0)      = divMod x (liquidAssume (rem /= 0) rem) -- check remainder is 0
-    rem         = detPV pv0
-
--- ASSERT: (x .+. y) ==> sameSpace x y
-{-@ (.+.) :: x:PVector -> (SameSpace x) -> (SameSpace x) @-}
-(PVector v1 m1 o) .+. (PVector v2 m2 _) = PVector (zipWith  (+) v1 v2) (zipWith (+) m1 m2) o
-
--- ASSERT: (x .-. y) ==> sameSpace x y
-{-@ (.-.) :: x:PVector -> (SameSpace x) -> (SameSpace x) @-}
-(PVector v1 m1 o) .-. (PVector v2 m2 _) = PVector (zipWith  (-) v1 v2) (zipWith (-) m1 m2) o
-
-{-@ (*.) :: Integer -> x:PVector -> (SameSpace x) @-}
-(*.) :: Integer -> PVector -> PVector
-x *. (PVector v m o) = PVector (map (x *)  v) (map (x *) m) o
-
--- Some auxiliary functions
-
-{-@ space2vec :: n:Int -> s:(Space (PVectorN n)) -> {v: (PVectorN n) | (orthSpace v) = s} @-}
-space2vec (n :: Int) sp@(Real bn r) = PVector (vec_ bn) (r : muCoeff_ bn) sp
-
-{-@ makeSpace :: p:PVector -> (Space (PVectorP p)) @-}
-makeSpace pvec = Real pvec (dotPV pvec pvec)
-
-{-@ makePVector :: vs:[Integer] -> s:(Space (PVectorN (len vs))) -> {v: (PVectorN (len vs)) | (orthSpace v) = s} @-}
-makePVector :: [Integer] -> Space PVector -> PVector
-makePVector v s@Null = PVector v [] s 
-makePVector v s@(Real s1 _) = 
-  let v1 = makePVector v (orthSpace_ s1) 
-  in PVector v (dotPV v1 s1 : muCoeff_ v1)  s
-
-{-@ gramSchmidt :: n:Nat -> [(List Integer n)] -> (Space (PVectorN n)) @-}
-gramSchmidt (n :: Int) = foldl (\sp v -> makeSpace (makePVector v sp)) Null 
-
-{-@ getBasis :: n:Nat -> Space (PVectorN n) -> [(List Integer n)] @-}
-getBasis (n::Int) s = worker s [] 
-  where
-    worker Null bs = bs
-    worker (Real pv _) bs = worker (orthSpace_ pv) (vec pv : bs)
-
-{-@ qualif EqMu(v:PVector, x:PVector): (len (muCoeff v)) = (len (muCoeff x)) @-}
-
-sizeReduce1 :: PVector -> PVector
-sizeReduce1 pv@(PVector v (m:_) sn@(Real _ r)) = 
-  let c  = div (2*m + r) (liquidAssume (r2 /= 0) r2) -- division with rounded remainder
-      r2 = 2 * r
-      n  = length v    
-  in  pv  .-.  (c *. (space2vec n sn))
-
--- ASSERT: sameSpace (sizeReduce x) x
-{-@ sizeReduce :: x:PVector -> (SameSpace x) @-}
-sizeReduce pv@(PVector v [] Null) = pv
-sizeReduce pv@(PVector _ _ sp@(Real _ _)) = 
-  let pv1 = sizeReduce1 pv
-      (PVector v mu _) = sizeReduce (liftPV pv1)
-  in PVector v (head (muCoeff_ pv1) : mu) sp
-
--- Two example algorithms using the library: enumCVP and lll
-
-enumCVP :: PVector -> Integer -> Maybe [Integer]
-enumCVP (PVector v mu Null) r 
-  | dot v v < r = Just v 
-  | otherwise   = Nothing 
-enumCVP t@(PVector _ (_:_) (Real bn _)) r = 
-  let t0 = sizeReduce1  t
-      cs = if (head (muCoeff_ t0) < 0) 
-           then 0 : concat [[x,negate x] | x <- [1,2..]]
-           else 0 : concat [[negate x,x] | x <- [1,2..]]
-      branch :: (Integer, Maybe [Integer]) -> [PVector] -> (Integer, Maybe [Integer])
-      branch (r,v) (t:ts) = 
-        if (dotPV t t >= r * detPV t) then (r,v)
-        else case enumCVP t r of
-          Nothing -> branch (r,v) ts
-          Just w  -> branch (dot w w, Just w) ts
-  in snd $ branch (r,Nothing) [liftPV t0 .+. (c *. bn) | c <- cs]
-
--- make this parametric on n
-{- Fraction free LLL Algorithm with exact arithmetic and delta=99/100 -}
-{-@ lll :: n:Nat -> [(List Integer n)] -> [(List Integer n)] @-}
-lll :: Int -> [[Integer]] -> [[Integer]]
-lll n = getBasis n . lll_worker n Null Nothing
-
-{-@ lll_worker :: n:Nat -> (Space (PVectorN n)) -> (Maybe (PVectorN n)) -> [(List Integer n)] -> (Space (PVectorN n)) @-}
-lll_worker (n :: Int) bs Nothing [] = bs
-lll_worker n bs Nothing (v:vs)      = lll_worker n bs (Just (makePVector v bs)) vs
-lll_worker n Null (Just pv) vs      = lll_worker n (makeSpace pv) Nothing vs
-lll_worker n (Real bn r) (Just pv) vs = 
-    let pv1 = sizeReduce pv
-        pv2 = liftPV pv1
-    in if (100*(dotPV pv2 pv2) < 99*r)
-       then lll_worker n (orthSpace_ bn) (Just pv2) (vec bn : vs)
-       else lll_worker n (makeSpace pv1) Nothing vs
-
-------------------------------------------------------------------------------------
--- RJ: Included for illustration...
-------------------------------------------------------------------------------------
-
-{-@ type List a N = {v : [a] | (len v) = N} @-}
-
-{-@ zipWith :: (a -> b -> c) -> xs:[a] -> (List b (len xs)) -> (List c (len xs)) @-}
-zipWith f (a:as) (b:bs) = f a b : zipWith f as bs
-zipWith _ [] []         = []
-zipWith _ (_:_) []      = liquidError "Dead Code"
-zipWith _ [] (_:_)      = liquidError "Dead Code"
diff --git a/tests/todo/list-screen.hs b/tests/todo/list-screen.hs
deleted file mode 100644
--- a/tests/todo/list-screen.hs
+++ /dev/null
@@ -1,113 +0,0 @@
-{-@ LIQUID "--no-termination" @-}
-
-module ListDemo where
-
------------------------------------------------------------------------
--- 1. Lets define a List data-type
------------------------------------------------------------------------
-
-data List a = E | (:::) { h :: a, t :: List a }
-
--- We'll want to use the "cons" in an infix fashion
-
-infixr  9 ::: 
-
--- Ok, now here are some lists
-
-aList :: List Int
-aList = 0 ::: 2 ::: 7 ::: E
-
--- Lets define some simple refinements.
-
--- | The set of things  that are greater then `N`
-
-{-@ type Geq a N = {v:a | N <= v} @-}
-
--- | now we can define the *natural* and *positive* numbers as:
-
-{-@ type Nat   = Geq Int 0    @-}
-{-@ type Grand = Geq Int 1000 @-}
-
--- > Lets go back and see if we can refine our lists:
-
-{- up  :: List Grand @-}
-
--- Whoops, that didn't work of course, how about
-
-{- up  :: List Nat  @-}
-
------------------------------------------------------------------------
--- 2. Lets write a function that generates a sequence: n, n+1, n+2, ...
------------------------------------------------------------------------
-
-{-@ countUp :: n:Nat -> List Nat @-}
-countUp n  = n ::: countUp (n + 1)
-
--- > How shall we type it? Well, one option:
-
-{- countUp :: n:Nat -> List Nat @-}
-
--- So if you start with a `Nat` you get a list of `Nat`
-
--- > How about 
-
-{- countUp :: n:Nat -> List Grand @-}
-
--- Of course not! Lets see the error. Ah, so you can do:
-
-{- countUp :: n:Grand -> List Grand @-}
-
-
------------------------------------------------------------------------
--- 3. ORDERED sequences ...
------------------------------------------------------------------------
-
--- Now, really we want to say that `countUp` returns ORDERED sequences,
--- i.e. it returns an INCREASING list of numbers (starting at `n`).
-
--- Lets specify this by REFINING `List` to only allow INCREASING sequences ...
-
--- > Lets look at the data type.
--- > Key: INCREASING means `t` must ONLY contain values GREATER THAN head `h`.
-                                      
--- that is,
-
--- t :: List (Geq a h)
-
--- lets specify that in a REFINED definition of `List`
-
-{-@ data List a = E | (:::) { h :: a, t :: List (Geq a h) } @-}
-
--- Now lets look at some lists
-
-ups = 0 ::: 1 ::: 3 ::: E 
-
--- But how about
-
-downs = 7 ::: 2 ::: E
-
--- > Now lets go back and revisit `countUp` ... whoops there is an ERROR!
--- > This is because we only know the TAIL is a list of Nat, we ALSO need that
--- > the tail is greater than `n` and so ...
-
-{- countUp :: n:Nat -> List (Geq n) @-}
-
-
-insert x E          = x ::: E
-insert x (y ::: ys)
-  | x <= y          = x ::: y ::: ys
-  | otherwise       = y ::: insert x ys
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/todo/lit01.hs b/tests/todo/lit01.hs
deleted file mode 100644
--- a/tests/todo/lit01.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Nats (poo) where
-
-import Language.Haskell.Liquid.Prelude 
-
-poo :: () 
-poo = liquidAssert (alice /= bob) () 
-
--- && bob == charlie) ()
-
-alice :: String 
-alice = "I am a dog"
-
-bob :: String 
-bob = "I am a cat"
-
-charlie :: String 
-charlie = "I am a cat"
diff --git a/tests/todo/mapreduce.hs b/tests/todo/mapreduce.hs
deleted file mode 100644
--- a/tests/todo/mapreduce.hs
+++ /dev/null
@@ -1,140 +0,0 @@
-{-@ LIQUID "--higherorder"         @-}
-{-@ LIQUID "--totality"            @-}
-{-@ LIQUID "--exactdc"             @-}
-{-@ LIQUID "--no-measure-fields"   @-}
-
-
-module DivideAndQunquer where 
-
-import Prelude hiding (error, map, take, drop)
-import Language.Haskell.Liquid.ProofCombinators 
-
-{-@ reflect mapReduce @-}
-mapReduce :: Int -> (List a -> b) -> (b -> b -> b) -> List a -> b 
-mapReduce n f op N  = f N  
-mapReduce n f op is = reduce op (map f (chunk n is)) 
-
-chunk  :: Int -> List a -> List (List a)
-map    :: (a -> b) -> List a -> List b
-reduce :: (b -> b -> b) -> List b -> b  
-
-{-@ mapReduceTheorem :: n:Int -> f:(List a -> b) -> op:(b -> b -> b) -> is:List a
-      -> distributionThm:(is1:List a -> is2:List a -> {op (f is1) (f is2) == f (append is1 is2)} ) -> 
-      { f is == mapReduce n f op is } / [llen is] @-}
-mapReduceTheorem :: Int -> (List a -> b) -> (b -> b -> b) -> List a -> (List a -> List a -> Proof)  -> Proof 
-mapReduceTheorem n f op N _
-  =   mapReduce n f op N 
-  ==. f N 
-  *** QED 
-
-mapReduceTheorem n f op is _ 
-  | llen is <= n || n <= 1 
-  =   mapReduce n f op is 
-  ==. reduce op (map f (chunk n is))
-  ==. reduce op (map f (C is N))
-  ==. reduce op (f is `C` map f N)
-  ==. reduce op (f is `C` N)
-  ==. f is
-  *** QED 
-
-mapReduceTheorem n f op is distributionThm 
-  = undefined   
-{-  =   mapReduce n f op is 
-  ==. reduce op (map f (chunk n is))
-  ==. reduce op (map f (C (take n is) (chunk n (drop n is))))
-  ==. reduce op (f (take n is) `C` map f (chunk n (drop n is)))
-  ==. op (f (take n is)) (reduce op (map f (chunk n (drop n is))))
-  ==. op (f (take n is)) (mapReduce n f op (drop n is))
-  ==. op (f (take n is)) (f (drop n is))
-        ? mapReduceTheorem n f op (drop n is) distributionThm
-  ==. f (append (take n is) (drop n is))
-        ? distributionThm (take n is) (drop n is)
-  ==. f is 
-        ? appendTakeDrop n is
-  *** QED  
- -}
--------------------------------------------------------------------------------
------------  List Definition --------------------------------------------------
--------------------------------------------------------------------------------
-
-
-{-@ data List [llen] a = N | C {lhead :: a, ltail :: List a} @-}
-data List a = N | C a (List a)
-
-llen :: List a -> Int 
-{-@ measure llen @-}
-{-@ llen :: List a -> Nat @-}
-llen N        = 0 
-llen (C _ xs) = 1 + llen xs
-
--------------------------------------------------------------------------------
------------  List Manipulation ------------------------------------------------
--------------------------------------------------------------------------------
-{-@ reflect map @-}
-{-@ map :: (a -> b) -> xs:List a -> {v:List b | llen v == llen xs } @-}
-map _  N       = N
-map f (C x xs) = f x `C` map f xs 
-
-{-@ reflect append @-}
-append :: List a -> List a -> List a 
-append N        ys = ys  
-append (C x xs) ys = x `C` (append xs ys)
-
-{-@ reflect reduce @-}
-{-@ reduce :: (b -> b -> b) -> is:{List b | 1 <= llen is } -> b @-}  
-reduce _  (C x N)  = x 
-reduce op (C x xs) = op x (reduce op xs)
-
-{-@ reflect chunk @-}
-{-@ chunk :: i:Int -> xs:List a -> {v:List (List a) | (1 <= llen v) &&  (if (i <= 1 || llen xs <= i) then (llen v == 1) else (llen v < llen xs)) } / [llen xs] @-}
-chunk i xs 
-  | i <= 1 
-  = C xs N 
-  | llen xs <= i 
-  = C xs N 
-  | otherwise
-  = C (take i xs) (chunk i (drop i xs))
-
-{-@ reflect drop @-}
-{-@ drop :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == llen xs - i } @-} 
-drop :: Int -> List a -> List a 
-drop i N = N 
-drop i (C x xs)
-  | i == 0 
-  = C x xs  
-  | otherwise 
-  = drop (i-1) xs 
-
-{-@ reflect take @-}
-{-@ take :: i:Nat -> xs:{List a | i <= llen xs } -> {v:List a | llen v == i} @-} 
-take :: Int -> List a -> List a 
-take i N = N 
-take i (C x xs)
-  | i == 0 
-  = N  
-  | otherwise 
-  = C x (take (i-1) xs)
-
--- | Helper Theorem 
-{-@ appendTakeDrop :: i:Nat -> xs:{List a | i <= llen xs} 
-  -> {xs == append (take i xs) (drop i xs) }  @-}
-
-appendTakeDrop :: Int -> List a -> Proof 
-appendTakeDrop i N 
-  =   append (take i N) (drop i N)
-  ==. append N N 
-  ==. N 
-  *** QED 
-appendTakeDrop i (C x xs)
-  | i == 0 
-  =   append (take 0 (C x xs)) (drop 0 (C x xs))
-  ==. append N (C x xs)
-  ==. C x xs 
-  *** QED 
-  | otherwise
-  =   append (take i (C x xs)) (drop i (C x xs))
-  ==. append (C x (take (i-1) xs)) (drop (i-1) xs)
-  ==. C x (append (take (i-1) xs) (drop (i-1) xs))
-  ==. C x xs ? appendTakeDrop (i-1) xs 
-  *** QED 
-
diff --git a/tests/todo/maps.hs b/tests/todo/maps.hs
deleted file mode 100644
--- a/tests/todo/maps.hs
+++ /dev/null
@@ -1,36 +0,0 @@
-module Maps where
-
-import Prelude hiding (lookup)
-import Data.Map
-
-{-@ prop0   :: _ -> x:_ -> y:{_ | y == x} -> TT @-}
-prop0       :: Map Int Int -> Int -> Int -> Bool
-prop0 m x y = (a == b)
-  where
-    a       = m ! x 
-    b       = m ! y 
-
-{-@ prop1   :: _ -> x:_ -> y:{_ | y /= x} -> TT @-}
-prop1       :: Map Int Int -> Int -> Int -> Bool
-prop1 m x y = (z == 10)
-  where
-    m1      = insert x 10 m 
-    m2      = insert y 20 m1
-    z       = m2 ! x 
-
-{-@ prop2   :: _ -> x:_ -> y:{_ | y == x} -> TT @-}
-prop2 m x y = (z == 20)
-  where
-    m1      = insert x 10 m 
-    m2      = insert y 20 m1
-    z       = m2 ! x
-
------------------------------------------------------------------------
-
-{-@ embed Map as Map_t @-}
-{-@ measure Map_select :: Map k v -> k -> v @-}
-{-@ measure Map_store  :: Map k v -> k -> v -> Map k v @-}
-{-@ assume (!)         :: (Ord k) => m:Map k v -> k:k -> {v:v | v = Map_select m k} @-}
-{-@ assume insert      :: (Ord k) => key:k -> value:v -> m:Map k v -> {n:Map k v | n = Map_store m key value} @-}
-
------------------------------------------------------------------------
diff --git a/tests/todo/maybe0.hs b/tests/todo/maybe0.hs
deleted file mode 100644
--- a/tests/todo/maybe0.hs
+++ /dev/null
@@ -1,45 +0,0 @@
-module Foo where
-
--- remove the ! and it is safe...
-data MaybeS a = NothingS | JustS !a
-
-{-@ measure isJustS :: forall a. MaybeS a -> Bool 
-    isJustS (JustS x)  = true
-    isJustS (NothingS) = false
-  @-}
-
-{-@ measure fromJustS :: forall a. MaybeS a -> a
-    fromJustS (JustS x) = x 
-  @-}
-
-gloop = poop True
-
-{-@ poop :: z:a -> {v: MaybeS a | fromJustS(v) = z} @-}
-poop z = JustS z
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/todo/maybe0000.hs b/tests/todo/maybe0000.hs
deleted file mode 100644
--- a/tests/todo/maybe0000.hs
+++ /dev/null
@@ -1,55 +0,0 @@
-module Foo where
-
-data MaybeS a = NothingS | JustS a
-
--- crashes with : 
--- Fixpoint: Testing Solution 
--- z3Pred: error converting && [ (isJust(lq_anf__ddc) <=> false)
---                             ; (lq_anf__ddc = ds_dd9)
---                             ; (fromJustS([gloop#r9K]) = True#6u)
---                             ; (Bexp True#6u)
---                             ; (~ ((Bexp False#68)))]
---
--- Fatal error: exception Failure("Z3: type error")
-
-
-myisJust :: Maybe a -> Bool
-myisJust Nothing  = True
-myisJust (Just x) = False
-
-{-@ measure fromJustS :: MaybeS a -> a
-    fromJustS (JustS x) = x 
-  @-}
-
-gloop :: MaybeS Bool
-gloop = poop True
-
-{- poop :: z:a -> {v: MaybeS a | fromJustS(v) = z} @-}
-poop z = JustS z
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/todo/maybe4.hs b/tests/todo/maybe4.hs
deleted file mode 100644
--- a/tests/todo/maybe4.hs
+++ /dev/null
@@ -1,17 +0,0 @@
-module Foo where
-
-
-moo = poo z z 
-  where z       = blerg True 
-        blerg True = Nothing
-
-{-@ poo :: x:Maybe a -> {v: Maybe a | v = x } -> Bool @-}
-poo :: Maybe a -> Maybe a -> Bool
-poo x y = True
-
-
-
-
-
-
-
diff --git a/tests/todo/measbug.hs b/tests/todo/measbug.hs
deleted file mode 100644
--- a/tests/todo/measbug.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module MeasureBug where
-
-data Heap a   = Empty | Node { pri   :: a
-                             , rnk   :: Int 
-                             , left  :: Heap a
-                             , right :: Heap a
-                             }
-{-@ data Heap [zoo] @-}
-
-{-@ invariant {v:Heap a| (zoo v) >=0} @-}
-
-{-@ measure zoo @-}
-zoo :: Heap a -> Int
-zoo (Empty)        = 0
-zoo (Node _ _ l r) = 1 + zoo l + zoo r
diff --git a/tests/todo/measfield.hs b/tests/todo/measfield.hs
deleted file mode 100644
--- a/tests/todo/measfield.hs
+++ /dev/null
@@ -1,11 +0,0 @@
-module Goo (Vec (..)) where
-
-data Vec a = V { vsz :: Int, velems :: [a] }
-
-{-@ data Vec a  = V { vsz :: Int, velems :: {v:[a] | len v = vsz} } @-}
-
-{-@ foo :: x:Vec a -> {v:[a] | len v = vsz x} @-}
-foo v = velems v 
-
-{-@ bar :: x:Vec a -> {v:[a] | len v = vsz x} @-}
-bar (V _ ys) = ys 
diff --git a/tests/todo/overload.hs b/tests/todo/overload.hs
deleted file mode 100644
--- a/tests/todo/overload.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Overload where
-
-import Data.Monoid
-
-bar1, bar2 :: List Int
-
-type List a = [a]
-
-{-@ type ListN a N = { v:[a] | len v == N } @-}
-
-{-@ instance Monoid (List a) where
-      mempty  :: ListN a 0
-      mappend :: xs:[a] -> ys:[a] -> ListN a {len xs + len ys}
-      mconcat :: List (List a) -> List a
-  @-}
-
-{-@ bar1 :: ListN Int 6 @-}
-bar1 = [1,2,3] ++ [4,5,6]
-
-{-@ bar2 :: ListN Int 6 @-}
-bar2 = [1,2,3] <> [4,5,6]
diff --git a/tests/todo/partialmeasureOld.hs b/tests/todo/partialmeasureOld.hs
deleted file mode 100644
--- a/tests/todo/partialmeasureOld.hs
+++ /dev/null
@@ -1,21 +0,0 @@
-module Head where
-
-{-@ measure hd :: [a] -> a
-    hd (x:xs) = x
-  @-}
-
--- Strengthened constructors
---   data [a] where
---     []  :: [a]    -- as before
---     (:) :: x:a -> xs:[a] -> {v:[a] | hd v = x}
-
-{-@ cons :: x:a -> _ -> {v:[a] | hd v = x} @-}
-cons x xs = x : xs
-
-{-@ test :: {v:_ | hd v = 0} @-}
-test     :: [Int]
-test     =  cons 0 [1,2,3,4]
-
-
-
-
diff --git a/tests/todo/ptr.hs b/tests/todo/ptr.hs
deleted file mode 100644
--- a/tests/todo/ptr.hs
+++ /dev/null
@@ -1,195 +0,0 @@
-{--! run liquid with idirs=../../benchmarks/bytestring-0.9.2.1 idirs=../../include no-termination -}
-{-# OPTIONS_GHC -cpp -fglasgow-exts -fno-warn-orphans #-}
-
--- GET THIS TO WORK WITHOUT THE "base" measure and realated theorem,
--- but with raw pointer arithmetic. I.e. give plusPtr the right signature:
---   (v = base + off)
--- Can do so now, by:
---
---   embed Ptr as int 
---
--- but the problem is that then it throws off all qualifier definitions like
---  
---   qualif EqPLen(v: ForeignPtr a, x: Ptr a): (fplen v) = (plen x)
---   qualif EqPLen(v: Ptr a, x: ForeignPtr a): (plen v) = (fplen x) 
--- 
--- because there is no such thing as Ptr a by the time we get to Fixpoint. yuck.
--- Meaning we have to rewrite the above to the rather lame:
-
---   qualif EqPLenPOLY2(v: a, x: b): (plen v) = (fplen x)           
-
-
-module Data.ByteString (
-        ByteString,            -- abstract, instances: Eq, Ord, Show, Read, Data, Typeable, Monoid
-        foldl                  -- :: (a -> Word8 -> a) -> a -> ByteString -> a
-  ) where
-
-import Language.Haskell.Liquid.Prelude
-
-import qualified Prelude as P
-import Prelude hiding           (reverse,head,tail,last,init,null
-                                ,length,map,lines,foldl,foldr,unlines
-                                ,concat,any,take,drop,splitAt,takeWhile
-                                ,dropWhile,span,break,elem,filter,maximum
-                                ,minimum,all,concatMap,foldl1,foldr1
-                                ,scanl,scanl1,scanr,scanr1
-                                ,readFile,writeFile,appendFile,replicate
-                                ,getContents,getLine,putStr,putStrLn,interact
-                                ,zip,zipWith,unzip,notElem)
-
-import Data.ByteString.Internal
-import Data.ByteString.Unsafe
-import Data.ByteString.Fusion
-
-import qualified Data.List as List
-
-import Data.Word                (Word8)
-import Data.Maybe               (listToMaybe)
-import Data.Array               (listArray)
-import qualified Data.Array as Array ((!))
-
--- Control.Exception.bracket not available in yhc or nhc
-#ifndef __NHC__
-import Control.Exception        (bracket, assert)
-import qualified Control.Exception as Exception
-#else
-import IO			(bracket)
-#endif
-import Control.Monad            (when)
-
-import Foreign.C.String         (CString, CStringLen)
-import Foreign.C.Types          (CSize)
-import Foreign.ForeignPtr
-import Foreign.Marshal.Alloc    (allocaBytes, mallocBytes, reallocBytes, finalizerFree)
-import Foreign.Marshal.Array    (allocaArray)
-import Foreign.Ptr
-import Foreign.Storable         (Storable(..))
-
--- hGetBuf and hPutBuf not available in yhc or nhc
-import System.IO                (stdin,stdout,hClose,hFileSize
-                                ,hGetBuf,hPutBuf,openBinaryFile
-                                ,Handle,IOMode(..))
-
-import Data.Monoid              (Monoid, mempty, mappend, mconcat)
-
-#if !defined(__GLASGOW_HASKELL__)
-import System.IO.Unsafe
-import qualified System.Environment
-import qualified System.IO      (hGetLine)
-#endif
-
-#if defined(__GLASGOW_HASKELL__)
-
-import System.IO                (hGetBufNonBlocking)
-import System.IO.Error          (isEOFError)
-
-import GHC.Handle
-import GHC.Prim                 (Word#, (+#), writeWord8OffAddr#)
-import GHC.Base                 (build)
-import GHC.Word hiding (Word8)
-import GHC.Ptr                  (Ptr(..))
-import GHC.ST                   (ST(..))
-import GHC.IOBase
-
-#endif
-
--- An alternative to Control.Exception (assert) for nhc98
-#ifdef __NHC__
-#define assert  assertS "__FILE__ : __LINE__"
-assertS :: String -> Bool -> a -> a
-assertS _ True  = id
-assertS s False = error ("assertion failed at "++s)
-#endif
-
--- LIQUID
-import GHC.IO.Buffer
-import Language.Haskell.Liquid.Prelude (intCSize)
-import qualified Data.ByteString.Lazy.Internal 
-import qualified Data.ByteString.Fusion
-import qualified Data.ByteString.Internal
-import qualified Data.ByteString.Unsafe
-import qualified Foreign.C.Types
-
-{-@ memcpy_ptr_baoff :: p:(Ptr a) 
-                     -> RawBuffer b 
-                     -> Int 
-                     -> {v:CSize | (OkPLen v p)} -> IO (Ptr ())
-  @-}
-memcpy_ptr_baoff :: Ptr a -> RawBuffer b -> Int -> CSize -> IO (Ptr ())
-memcpy_ptr_baoff = error "LIQUIDCOMPAT"
-
-readCharFromBuffer :: RawBuffer b -> Int -> IO (Char, Int)
-readCharFromBuffer x y = error "LIQUIDCOMPAT"
-
-wantReadableHandleLIQUID :: String -> Handle -> (Handle__ -> IO a) -> IO a
-wantReadableHandleLIQUID x y f = error $ show $ liquidCanaryFusion 12 -- "LIQUIDCOMPAT"
-
-{-@ qualif Gimme(v:a, n:b, acc:a): (len v) = (n + 1 + (len acc)) @-}
-{-@ qualif Zog(v:a, p:a)         : (plen p) <= (plen v)          @-}
-{-@ qualif Zog(v:a)              : 0 <= (plen v)                 @-}
-
-{- type ByteStringNE   = {v:ByteString | (bLength v) > 0} @-}
-{- type ByteStringSZ B = {v:ByteString | (bLength v) = (bLength B)} @-}
--- -----------------------------------------------------------------------------
---
--- Useful macros, until we have bang patterns
---
-
-#define STRICT1(f) f a | a `seq` False = undefined
-#define STRICT2(f) f a b | a `seq` b `seq` False = undefined
-#define STRICT3(f) f a b c | a `seq` b `seq` c `seq` False = undefined
-#define STRICT4(f) f a b c d | a `seq` b `seq` c `seq` d `seq` False = undefined
-#define STRICT5(f) f a b c d e | a `seq` b `seq` c `seq` d `seq` e `seq` False = undefined
-
--- -----------------------------------------------------------------------------
-
-{-@ foldl :: (a -> Word8 -> a) -> a -> ByteString -> a @-}
-foldl :: (a -> Word8 -> a) -> a -> ByteString -> a
-foldl f v (PS x s l) = inlinePerformIO $ withForeignPtr x $ \ptr ->
-        lgo v (ptr `plusPtr` s) (ptr `plusPtr` (s+l))
-    where
-        STRICT3(lgo)
-        lgo z p q | eqPtr p q    = return z
-                  | otherwise = do c <- peek p
-                                   lgo (f z c) (p `plusPtr` 1) q
-{-# INLINE foldl #-}
-
-{- liquid_thm_ptr_cmp :: p:PtrV a
-                       -> q:{v:(PtrV a) | ((plen v) <= (plen p) && v != p && (pbase v) = (pbase p))} 
-                       -> {v: (PtrV a)  | ((v = p) && ((plen q) < (plen p))) } 
-  @-}
-liquid_thm_ptr_cmp :: Ptr a -> Ptr a -> Ptr a
-liquid_thm_ptr_cmp p q = p 
-
--- | 'foldl\'' is like 'foldl', but strict in the accumulator.
--- Though actually foldl is also strict in the accumulator.
-foldl' :: (a -> Word8 -> a) -> a -> ByteString -> a
-foldl' = foldl
-{-# INLINE foldl' #-}
-
-
--- | Perform an operation with a temporary ByteString
-withPtr :: ForeignPtr a -> (Ptr a -> IO b) -> b
-withPtr fp io = inlinePerformIO (withForeignPtr fp io)
-{-# INLINE withPtr #-}
-
--- Common up near identical calls to `error' to reduce the number
--- constant strings created when compiled:
-{-@ errorEmptyList :: {v:String | false} -> a @-}
-errorEmptyList :: String -> a
-errorEmptyList fun = moduleError fun "empty ByteString"
-{-# NOINLINE errorEmptyList #-}
-
-moduleError :: String -> String -> a
-moduleError fun msg = error ("Data.ByteString." ++ fun ++ ':':' ':msg)
-{-# NOINLINE moduleError #-}
-
--- LIQUID -- -- Find from the end of the string using predicate
--- LIQUID -- findFromEndUntil :: (Word8 -> Bool) -> ByteString -> Int
--- LIQUID -- STRICT2(findFromEndUntil)
--- LIQUID -- findFromEndUntil f ps@(PS x s l) =
--- LIQUID --     if null ps then 0
--- LIQUID --     else if f (last ps) then l
--- LIQUID --          else findFromEndUntil f (PS x s (l-1))
-
-
diff --git a/tests/todo/ptr2.hs b/tests/todo/ptr2.hs
deleted file mode 100644
--- a/tests/todo/ptr2.hs
+++ /dev/null
@@ -1,146 +0,0 @@
-{-@ LIQUID "--idirs=../../benchmarks/bytestring-0.9.2.1/" @-}
-{-@ LIQUID "--idirs=../../include" @-}
-{-@ LIQUID "--no-termination" @-}
-{-# OPTIONS_GHC -cpp -fglasgow-exts -fno-warn-orphans #-}
-
--- look for `n0` and `n1` below. Why does this work with `n1` but not `n0` or `0-1` ?
--- the latter is likely some wierd qualifier issue.
-
-
-module Data.ByteString (
-        ByteString,            -- abstract, instances: Eq, Ord, Show, Read, Data, Typeable, Monoid
-        foldr                  -- :: (a -> Word8 -> a) -> a -> ByteString -> a
-  , wantReadableHandleLIQUID
-  ) where
-
-
-import qualified Prelude as P
-import Prelude hiding           (reverse,head,tail,last,init,null
-                                ,length,map,lines,foldl,foldr,unlines
-                                ,concat,any,take,drop,splitAt,takeWhile
-                                ,dropWhile,span,break,elem,filter,maximum
-                                ,minimum,all,concatMap,foldl1,foldr1
-                                ,scanl,scanl1,scanr,scanr1
-                                ,readFile,writeFile,appendFile,replicate
-                                ,getContents,getLine,putStr,putStrLn,interact
-                                ,zip,zipWith,unzip,notElem)
-
-import Data.ByteString.Internal
-import Data.ByteString.Unsafe
-import Data.ByteString.Fusion
-
-import qualified Data.List as List
-
-import Data.Word                (Word8)
-import Data.Maybe               (listToMaybe)
-import Data.Array               (listArray)
-import qualified Data.Array as Array ((!))
-
--- Control.Exception.bracket not available in yhc or nhc
-#ifndef __NHC__
-import Control.Exception        (bracket, assert)
-import qualified Control.Exception as Exception
-#else
-import IO			(bracket)
-#endif
-import Control.Monad            (when)
-
-import Foreign.C.String         (CString, CStringLen)
-import Foreign.C.Types          (CSize)
-import Foreign.ForeignPtr
-import Foreign.Marshal.Alloc    (allocaBytes, mallocBytes, reallocBytes, finalizerFree)
-import Foreign.Marshal.Array    (allocaArray)
-import Foreign.Ptr
-import Foreign.Storable         (Storable(..))
-
--- hGetBuf and hPutBuf not available in yhc or nhc
-import System.IO                (stdin,stdout,hClose,hFileSize
-                                ,hGetBuf,hPutBuf,openBinaryFile
-                                ,Handle,IOMode(..))
-
-import Data.Monoid              (Monoid, mempty, mappend, mconcat)
-
-#if !defined(__GLASGOW_HASKELL__)
-import System.IO.Unsafe
-import qualified System.Environment
-import qualified System.IO      (hGetLine)
-#endif
-
-#if defined(__GLASGOW_HASKELL__)
-
-import System.IO                (hGetBufNonBlocking)
-import System.IO.Error          (isEOFError)
-
-import GHC.Handle
-import GHC.Prim                 (Word#, (+#), writeWord8OffAddr#)
-import GHC.Base                 (build)
-import GHC.Word hiding (Word8)
-import GHC.Ptr                  (Ptr(..))
-import GHC.ST                   (ST(..))
-import GHC.IOBase
-
-#endif
-
--- An alternative to Control.Exception (assert) for nhc98
-#ifdef __NHC__
-#define assert  assertS "__FILE__ : __LINE__"
-assertS :: String -> Bool -> a -> a
-assertS _ True  = id
-assertS s False = error ("assertion failed at "++s)
-#endif
-
--- LIQUID
-import GHC.IO.Buffer
-import Language.Haskell.Liquid.Foreign (intCSize, eqPtr) 
-import qualified Data.ByteString.Lazy.Internal 
-import qualified Data.ByteString.Fusion
-import qualified Data.ByteString.Internal
-import qualified Data.ByteString.Unsafe
-import qualified Foreign.C.Types
-
-{-@ memcpy_ptr_baoff :: p:(Ptr a) 
-                     -> RawBuffer b 
-                     -> Int 
-                     -> {v:CSize | (OkPLen v p)} -> IO (Ptr ())
-  @-}
-memcpy_ptr_baoff :: Ptr a -> RawBuffer b -> Int -> CSize -> IO (Ptr ())
-memcpy_ptr_baoff = error "LIQUIDCOMPAT"
-
-readCharFromBuffer :: RawBuffer b -> Int -> IO (Char, Int)
-readCharFromBuffer x y = error "LIQUIDCOMPAT"
-
-wantReadableHandleLIQUID :: String -> Handle -> (Handle__ -> IO a) -> IO a
-wantReadableHandleLIQUID x y f = error $ show $ liquidCanaryFusion 12 -- "LIQUIDCOMPAT"
-
-{-@ qualif Gimme(v:a, n:b, acc:a): (len v) = (n + 1 + (len acc)) @-}
-{-@ qualif Zog(v:a, p:a)         : (plen p) <= (plen v)          @-}
-{-@ qualif Zog(v:a)              : 0 <= (plen v)                 @-}
-
-{- type ByteStringNE   = {v:ByteString | (bLength v) > 0} @-}
-{- type ByteStringSZ B = {v:ByteString | (bLength v) = (bLength B)} @-}
--- -----------------------------------------------------------------------------
---
--- Useful macros, until we have bang patterns
---
--- -----------------------------------------------------------------------------
-{-@ foldr :: (Word8 -> a -> a) -> a -> ByteString -> a @-}
-foldr :: (Word8 -> a -> a) -> a -> ByteString -> a
-foldr k v (PS x s l) = inlinePerformIO $ withForeignPtr x $ \ptr ->
-        ugo k v (ptr `plusPtr` (s+l-1)) (ptr `plusPtr` (s-1))
-
-{-@ ugo :: (Word8 -> a -> a) -> a -> p:(PtrV Word8) -> {v:Ptr Word8 | ((pbase v) = (pbase p) &&  (plen v) >= (plen p)) } -> IO a @-}
-ugo :: (Word8 -> a -> a) -> a -> Ptr Word8 -> Ptr Word8 -> IO a
-ugo k z p q | eqPtr q p   = return z
-            | otherwise = do c  <- peek p
-                             let n0  = -1               -- BAD  
-                             let n1  = 0 - 1            -- OK
-                             let p' = p `plusPtr` n1 {- BAD (0 - 1) -}
-                             ugo k (c `k` z) p' q -- tail recursive
-
-
-{- liquid_thm_ptr_cmp' :: p:PtrV a
-                        -> q:{v:(PtrV a) | ((plen v) >= (plen p) && v != p && (pbase v) = (pbase p))} 
-                        -> {v: (PtrV a)  | ((v = p) && ((plen v) > 0) && ((plen q) > (plen p))) } 
-  @-}
-liquid_thm_ptr_cmp' :: Ptr a -> Ptr a -> Ptr a
-liquid_thm_ptr_cmp' p q = undefined 
diff --git a/tests/todo/ptr3.hs b/tests/todo/ptr3.hs
deleted file mode 100644
--- a/tests/todo/ptr3.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{--! run liquid with idirs=../../benchmarks/bytestring-0.9.2.1 idirs=../../include no-termination -}
-{-# OPTIONS_GHC -cpp -fglasgow-exts -fno-warn-orphans #-}
-
--- look for `n0` and `n1` below. Why does this work with `n1` but not `n0` or `0-1` ?
--- the latter is likely some wierd qualifier issue.
-
-
-module Data.ByteString (
-        ByteString,            -- abstract, instances: Eq, Ord, Show, Read, Data, Typeable, Monoid
-  ) where
-
-import Language.Haskell.Liquid.Prelude
-
-import qualified Prelude as P
-import Prelude hiding           (reverse,head,tail,last,init,null
-                                ,length,map,lines,foldl,foldr,unlines
-                                ,concat,any,take,drop,splitAt,takeWhile
-                                ,dropWhile,span,break,elem,filter,maximum
-                                ,minimum,all,concatMap,foldl1,foldr1
-                                ,scanl,scanl1,scanr,scanr1
-                                ,readFile,writeFile,appendFile,replicate
-                                ,getContents,getLine,putStr,putStrLn,interact
-                                ,zip,zipWith,unzip,notElem)
-
-import Data.ByteString.Internal
-import Data.ByteString.Unsafe
-import Data.ByteString.Fusion
-
-import qualified Data.List as List
-
-import Data.Word                (Word8)
-import Data.Maybe               (listToMaybe)
-import Data.Array               (listArray)
-import qualified Data.Array as Array ((!))
-
--- Control.Exception.bracket not available in yhc or nhc
-#ifndef __NHC__
-import Control.Exception        (bracket, assert)
-import qualified Control.Exception as Exception
-#else
-import IO			(bracket)
-#endif
-import Control.Monad            (when)
-
-import Foreign.C.String         (CString, CStringLen)
-import Foreign.C.Types          (CSize)
-import Foreign.ForeignPtr
-import Foreign.Marshal.Alloc    (allocaBytes, mallocBytes, reallocBytes, finalizerFree)
-import Foreign.Marshal.Array    (allocaArray)
-import Foreign.Ptr
-import Foreign.Storable         (Storable(..))
-
--- hGetBuf and hPutBuf not available in yhc or nhc
-import System.IO                (stdin,stdout,hClose,hFileSize
-                                ,hGetBuf,hPutBuf,openBinaryFile
-                                ,Handle,IOMode(..))
-
-import Data.Monoid              (Monoid, mempty, mappend, mconcat)
-
-#if !defined(__GLASGOW_HASKELL__)
-import System.IO.Unsafe
-import qualified System.Environment
-import qualified System.IO      (hGetLine)
-#endif
-
-#if defined(__GLASGOW_HASKELL__)
-
-import System.IO                (hGetBufNonBlocking)
-import System.IO.Error          (isEOFError)
-
-import GHC.Handle
-import GHC.Prim                 (Word#, (+#), writeWord8OffAddr#)
-import GHC.Base                 (build)
-import GHC.Word hiding (Word8)
-import GHC.Ptr                  (Ptr(..))
-import GHC.ST                   (ST(..))
-import GHC.IOBase
-
-#endif
-
--- An alternative to Control.Exception (assert) for nhc98
-#ifdef __NHC__
-#define assert  assertS "__FILE__ : __LINE__"
-assertS :: String -> Bool -> a -> a
-assertS _ True  = id
-assertS s False = error ("assertion failed at "++s)
-#endif
-
--- LIQUID
-import GHC.IO.Buffer
-import Language.Haskell.Liquid.Prelude (intCSize) 
-import qualified Data.ByteString.Lazy.Internal 
-import qualified Data.ByteString.Fusion
-import qualified Data.ByteString.Internal
-import qualified Data.ByteString.Unsafe
-import qualified Foreign.C.Types
-
--- WHY ON EARTH IS THAT LIQUIDASSERT NEEDED?!!!!
-
-{-@ split :: Word8 -> ByteStringNE -> [ByteString] @-}
-split :: Word8 -> ByteString -> [ByteString]
--- split _ (PS _ _ 0) = []
-split w (PS xanadu s l) = inlinePerformIO $ withForeignPtr xanadu $ \pz -> do
-    let p   = liquidAssert (fpLen xanadu == pLen pz) pz
-    let ptr = p `plusPtr` s
-        loop n =
-            let q = inlinePerformIO $ memchr (ptr `plusPtr` n)
-                                           w (fromIntegral (l-n))
-            in if isNullPtr q {- LIQUID q == nullPtr -}
-                then [PS xanadu (s+n) (l-n)]
-                else let i' = q `minusPtr` ptr 
-                         i  = liquidAssert (i < l) i'       -- LIQUID MYSTERY: why is assert NEEDED HERE (it is!)
-                     in PS xanadu (s+n) (i-n) : loop (i+1)
-
-    return (loop 0)
-
-
diff --git a/tests/todo/read.hs b/tests/todo/read.hs
deleted file mode 100644
--- a/tests/todo/read.hs
+++ /dev/null
@@ -1,8 +0,0 @@
-module Read where
-
-import Language.Haskell.Liquid.Prelude
-
-data Foo = Foo deriving Read
-
-bad  = liquidAssertB (0 == 1)
-bad' = liquidAssert  (0 == 1) True
diff --git a/tests/todo/satsolver.hs b/tests/todo/satsolver.hs
deleted file mode 100644
--- a/tests/todo/satsolver.hs
+++ /dev/null
@@ -1,56 +0,0 @@
-module SatSolver where
-
--- | Formula
-
-type Var     = Int
-data Lit     = Pos Var | Neg Var
-type Clause  = [Lit]
-type Formula = [Clause]
-
--- | Assignment
-
-type Asgn = [(Var, Bool)]
-
--- | Top-level "solver"
-
-{-@ solve :: f:_ -> Maybe {a:Asgn | sat a f} @-}
-solve   :: Formula -> Maybe Asgn
-solve f = find (\a -> sat a f) (asgns f) 
-
-find :: (a -> Bool) -> [a] -> Maybe a
-find f [] = Nothing
-find f (x:xs) | f x       = Just x 
-              | otherwise = Nothing 
--- | Generate all assignments
-
-asgns :: Formula -> [Asgn] -- generates all possible T/F vectors
-asgns = undefined
- 
-
--- | Satisfaction
-
-{-@ measure sat @-}
-sat :: Asgn -> Formula -> Bool
-sat a []         = True
-sat a (c:cs)     = satCls a c && sat a cs
-
-{-@ measure satCls @-}
-satCls :: Asgn -> Clause -> Bool
-satCls a []      = False
-satCls a (l:ls)  = satLit a l || satCls a ls
-
-{-@ measure satLit @-}
-satLit :: Asgn -> Lit -> Bool
-satLit a (Pos x) = isTrue x a 
-satLit a (Neg x) = isFalse x a
-
-{-@ measure isTrue @-}
-isTrue           :: Var -> Asgn -> Bool
-isTrue x ((y, v):as)  = if x == y then v else isTrue x as 
-isTrue _ []           = False 
-
-{-@ measure isFalse @-}
-isFalse          :: Var -> Asgn -> Bool
-isFalse x ((y, v):as) = if x == y then not v else isFalse x as 
-isFalse _ []          = False 
-
diff --git a/tests/todo/satsolver0.hs b/tests/todo/satsolver0.hs
deleted file mode 100644
--- a/tests/todo/satsolver0.hs
+++ /dev/null
@@ -1,62 +0,0 @@
-module SatSolver where
-
-{-@ LIQUID "--no-termination" @-}
-
--- | Formula
-
-type Var     = Int
-data Lit     = Pos Var | Neg Var
-type Clause  = [Lit]
-type Formula = [Clause]
-
--- | Assignment
-
-type Asgn = [(Var, Bool)]
-
--- | Top-level "solver"
-
-{-@ solve :: f:_ -> Maybe {a:Asgn | Prop (sat a f)} @-}
-solve   :: Formula -> Maybe Asgn
-solve f = go (asgns f)
-  where
-  	go []     = Nothing
-  	go (x:xs) | sat x f = Just x
-  	          | otherwise = go xs 
-
--- | Generate all assignments
-
-asgns :: Formula -> [Asgn] -- generates all possible T/F vectors
-asgns = undefined
- 
-
--- | Satisfaction
-
-{-@ measure sat :: Asgn -> Formula -> Bool @-}
-sat :: Asgn -> Formula -> Bool
-{-@ sat :: a:Asgn -> f:Formula -> {v:Bool | Prop (sat a f)} @-}
-sat a []         = True
-sat a (c:cs)     = satCls a c && sat a cs
-
-{- measure satCls @-}
-satCls :: Asgn -> Clause -> Bool
-satCls a []      = False
-satCls a (l:ls)  = satLit a l || satCls a ls
-
-{- measure satLit @-}
-satLit :: Asgn -> Lit -> Bool
-satLit a (Pos x) = isTrue x a 
-satLit a (Neg x) = isFalse x a
-
-{- measure isTrue @-}
-isTrue           :: Var -> Asgn -> Bool
-isTrue x ((y, v):as)  = if x == y then v else isTrue x as 
-isTrue _ []           = False 
-
-{- measure isFalse @-}
-isFalse          :: Var -> Asgn -> Bool
-isFalse x ((y, v):as) = if x == y then not v else isFalse x as 
-isFalse _ []          = False
-
-
-
-
diff --git a/tests/todo/splash-total.hs b/tests/todo/splash-total.hs
deleted file mode 100644
--- a/tests/todo/splash-total.hs
+++ /dev/null
@@ -1,162 +0,0 @@
-{-@ LIQUID "--totality" @-}
-
-module SplashTotal where
-
-import Prelude hiding (foldr1, head)
-
-head       :: [a] -> a
-incr       :: Int -> Int
-average    :: [Int] -> Int
-group      :: (Eq a) => [a] -> [[a]]
-foldr1     :: (a -> a -> a) -> [a] -> a
-impossible :: String -> a
-merge      :: Ord a => [a] -> [a] ->  [a]
-fib        :: Int -> Int
-ups        :: [Int]
-insertSort :: (Ord a) => [a] -> [a]
-insert     :: (Ord a) => a -> [a] -> [a]
-
--- REPLACE `-` with `+`
-
-{-@ incr :: Nat -> Nat @-}
-incr x = x + 1
-
-{-@ impossible :: {v: String | False} -> a @-}
-impossible = error
-
---------------------------------------------------------------------------------
-
--- TOTALITY A 1
-{- type NonEmpty a = {v:[a] | 0 < len v } @-}
-
--- replace input with NonEmpty a
-
-
-
-
-
-
-
-{-@ type NonEmpty a = {v:[a] | 0 < len v} @-}
-
-{-@ head :: NonEmpty a -> a @-}
-head (x:_) = x
-
-
-
-
-
-
--- head []    = impossible "head on empty list"
-
-
-
-
-
-
-
-
-
-
--- TOTALITY A 2
-
--- replace output with NonEmpty a
-
-
--- >>> unstutter "ssslllyttthhherrrinnn"
--- "slytherin"
-unstutter :: String -> String
-unstutter = map head . group
-
-{-@ group :: (Eq a) => [a] -> [[a]] @-}
-group []      = []
-group (x:xs)  = (x:ys) : group zs
-  where
-    (ys, zs)  = span (x ==) xs
-
-
-
---------------------------------------------------------------------------------
--- replace input with NonEmpty a
--- ADD signature: foldr1 :: (a -> a -> a) -> {v:[a] | len v > 0} -> a
-
-
-{-@ foldr1 :: (a -> a -> a) -> [a] -> a @-}
-foldr1 op (x:xs) = foldr op x xs
-foldr1 _  _      = impossible "foldr1 on empty list"
-
-{-@ average :: [Int] -> Int @-}
-average xs = foldr1 (+) xs `div` length xs
-
-
---------------------------------------------------------------------------------
-
--- TERMINATION
--- ADD / [len xs + len ys]
-
-
-{-@ fib :: Nat -> Nat @-}
-fib 0 = 1
-fib 1 = 1
-fib n = fib (n-1) + fib (n-2)
-
-
-
-
-
-
-                                              -- .
-
-{-@ merge :: Ord a => xs:[a] -> ys:[a] -> [a]
-                    / [ len xs + len ys]  @-}
-merge xs []         = xs
-merge [] ys         = ys
-merge (x:xs) (y:ys)
-  | x <= y          = x : merge xs (y:ys)
-  | otherwise       = y : merge (x:xs) ys
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------------------------
-
--- type OrdList a = [a]<{\x v -> x <= v}>       .
--- USER DEFINED INVARIANTS
-
-{-@ type OrdList a = [a]<{\x v -> x <= v}> @-}
-
-
-{-@ ups :: OrdList Int @-}
-ups = [1, 2, 3, 4, 5]
-
-{-@ insertSort :: (Ord a) => [a] -> OrdList a @-}
-insertSort = foldr insert []
-
-{-@ insert :: (Ord a) => a -> OrdList a -> OrdList a @-}
-insert x []     = [x]
-insert x (y:ys)
-  | x <= y      = x : y : ys
-  | otherwise   = y : insert x ys
-
-
-
-
-
---------------------------------------------------------------------------------
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------------------------
diff --git a/tests/todo/splash-vector.hs b/tests/todo/splash-vector.hs
deleted file mode 100644
--- a/tests/todo/splash-vector.hs
+++ /dev/null
@@ -1,81 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-module SplashVector where
-
-import Prelude hiding (length)
-import Data.Vector (Vector, (!), length)
--- import qualified Data.Vector            as V
-import qualified Data.ByteString        as B
-import qualified Data.ByteString.Unsafe as B
-
-vectorSum :: (Num a) => Vector a -> a
-dotProduct :: (Num a) => Vector a -> Vector a -> a
-
--- vectorSum  :: `[0 .. n] ` with `[0 .. n - 1]`
--- dotProduct :: (Num a) => x:Vector a -> {y:Vector a | vlen y = vlen x} -> a
--- type VectorN a N = {v:Vector a | vlen v == N}
--- dotProduct :: (Num a) => x:Vector a -> VectorN a {vlen x} -> a
-
-
-
-{-@ vectorSum :: (Num a) => Vector a -> a @-}
-vectorSum x = sum [ x ! i | i <- [ 0 .. n - 1 ]]
-  where
-    n       = length x
-
-
-{-@ type VectorN a N = {v:Vector a | vlen v == N} @-}
-
-{- type VectorX a X = {v:Vector a | vlen v == vlen X} -}
-
-{-@ type VectorEq a X = {v:Vector a | vlen v == vlen X} @-}
-
-{-@ dotProduct :: (Num a) => x:Vector a -> VectorEq a x -> a @-}
-dotProduct x y = sum [ (x ! i) * (y ! i) | i <- [0 .. n - 1]]
-  where
-    n          = length x
-
-
-
-
-
-
--- 60
--- 6
--- 16
--- 14
-
-
-liquid :: B.ByteString
-liquid = B.unsafeTake 14 (pack "LiquidHaskell  ")
-
-
-
-{-@ assume pack :: s:String -> {v:B.ByteString | bslen v == len s} @-}
-pack :: String -> B.ByteString
-pack = undefined
-
-{-@ foo :: n:Int -> [{v:Nat | v <= n}] @-}
-foo :: Int -> [Int]
-foo n = [0 .. n]
-
-{-@ assume GHC.Enum.enumFromTo :: (Enum a) => lo:a -> hi:a -> [{v:a | lo <= v && v <= hi}] @-}
-
-{-@ assume B.unsafeTake
-    :: n : Nat
-    -> { i : B.ByteString | n <= bslen i }
-    -> { o : B.ByteString | bslen o == n }
-  @-}
-
-
-
-
-
-
-
-
-
-
-
-
-
---------------------------------------------------------------------------------
diff --git a/tests/todo/stacks1.hs b/tests/todo/stacks1.hs
deleted file mode 100644
--- a/tests/todo/stacks1.hs
+++ /dev/null
@@ -1,112 +0,0 @@
-module StackSet where
-
-import Data.Set (Set(..)) 
-
-data LL a = Nil | Cons { head :: a, tail :: LL a }
-
-{-@ data LL a = Nil | Cons { head :: a 
-                           , tail :: {v: LL a | not (Set_mem head (LLElts v))  } } 
-  @-}
-
-{-@ measure LLElts     :: LL a -> (Set a) 
-    LLElts (Nil)       = {v | (Set_emp v)}
-    LLElts (Cons x xs) = {v | v = (Set_cup (Set_sng x) (LLElts xs)) }
-  @-}
-
-{-@ predicate Disjoint x y   = (Set_emp (Set_cap x y))            @-}  
-{-@ predicate NotIn    x y = not (Set_mem x (LLElts y))           @-} 
-
-
----------------------------------------------------------------------------------------------
-
-{-@ measure StackElts    :: Stack a -> (Set a) 
-    StackElts (St f u d) = (Set_cup (Set_sng f) (Set_cup (LLElts u) (LLElts d)))
-  @-}
-
-{-@ data Stack a = St { focus  :: a    
-                      , up     :: {vu: LL a | (NotIn focus vu) } 
-                      , down   :: {vd: LL a | ((NotIn focus vd) && (Disjoint (LLElts up) (LLElts vd))) } 
-                      } 
-  @-}
-
-data Stack a = St { focus  :: !a    
-                  , up     :: !(LL a) 
-                  , down   :: !(LL a)
-                  } 
-
----------------------------------------------------------------------------------------------
-
---| Super Vanilla Operations on Stacks
-
-{-@ fresh :: a -> Stack a @-}
-fresh x = St x Nil Nil
-
-{-@ moveUp :: Stack a -> Stack a @-}
-moveUp (St x (Cons y ys) zs) = St y ys (Cons x zs)
-moveUp s                     = s 
-
-{-@ moveDn :: Stack a -> Stack a @-}
-moveDn (St x ys (Cons z zs)) = St z (Cons x ys) zs
-moveDn s                     = s 
-
-
----------------------------------------------------------------------------------------------
-
-{-@ measure MaybeStackElts :: Maybe (Stack a) -> (Set a) 
-    MaybeStackElts Nothing  = {v | (? Set_emp(v))  }
-    MaybeStackElts (Just s) = {v | v = StackElts s }
-  @-}
-
-{-@ measure WorkspaceElts :: Workspace i l a -> (Set a) 
-    WorkspaceElts (Workspace t l s) = (MaybeStackElts s) 
-  @-}
-
-data Workspace i l a = Workspace  { tag :: !i, layout :: l, stack :: Maybe (Stack a) }
-
----------------------------------------------------------------------------------------------
-
-{-@ measure ScreenElts :: Screen i l a sid sd -> (Set a) 
-    ScreenElts (ScreenElts w s d) = (WorkspaceElts w) 
-  @-}
-
-data Screen i l a sid sd = Screen { workspace :: !(Workspace i l a)
-                                  , screen :: !sid
-                                  , screenDetail :: !sd }
-
----------------------------------------------------------------------------------------------
-
-{-@ measure ListScreenElts :: [Screen i l a sid sd] -> (Set a) 
-    ListScreenElts ([])    =  {v | (Set_emp v)}
-    ListScreenElts (x:xs)  =  {v | v = (Set_cup (ScreenElts x) (ListScreenElts xs)) }
-  @-}
-
-
-{-@ measure ListWorkspaceElts :: [Workspace i l a] -> (Set a) 
-    ListWorkspaceElts ([])    =  {v | (Set_emp v)}
-    ListWorkspaceElts (x:xs)  =  {v | v = (Set_cup (WorkspaceElts x) (ListWorkspaceElts xs)) }
-  @-}
-
-data StackSet i l a sid sd =
-    StackSet { current  :: !(Screen i l a sid sd)    
-             , visible  :: {v : [Screen i l a sid sd] | (Disjoint  (ScreenElts current)     (ListScreenElts v)) }
-             , hidden   :: {v : [Workspace i l a]     | ((Disjoint (ScreenElts current)     (ListWorkspaceElts v)) && 
-                                                         (Disjoint (ListScreenElts visible) (ListWorkspaceElts v))) }        
-             , floating :: M.Map a RationalRect
-             } 
-
-data RationalRect = RationalRect Rational Rational Rational Rational
-
-----------------------------------------------------------------------------------------------------------------
-
-new :: (Integral s) => l -> [i] -> [sd] -> StackSet i l a s sd
-new l wids m 
-  | not (null wids) && length m <= length wids && not (null m)
-  = StackSet cur visi unseen M.empty
-  where (seen,unseen) = L.splitAt (length m) $ map (\i -> Workspace i l Nothing) wids
-        (cur:visi)    = [ Screen i s sd |  (i, s, sd) <- zip3 seen [0..] m ]
-                -- now zip up visibles with their screen id
-new _ _ _ = abort "non-positive argument to StackSet.new"
-
-
-abort :: {v: String | (0 = 1) } -> a
-abort x = error $ "xmonad: StackSet: " ++ x
diff --git a/tests/todo/state.hs b/tests/todo/state.hs
deleted file mode 100644
--- a/tests/todo/state.hs
+++ /dev/null
@@ -1,74 +0,0 @@
-module Compose where
-
-
-
-
-data ST s a = ST {runState :: s -> s}
-
-{-@ data ST s a <p :: s -> Prop, q :: s -> s -> Prop> = ST (runState :: x:s<p> -> s<q x>) @-}
-
-
-
-
-{-@ 
-cmp :: forall < pref :: s -> Prop, postf :: s -> s -> Prop
-              , pre  :: s -> Prop, postg :: s -> s -> Prop
-              , post :: s -> s -> Prop
-              >. 
-       {y:s -> s<postg y> -> s<pref>}
-       {x:s<pre> -> z:s<postg x> -> s<postf z> -> s<post x> }
-       f:(ST <pref, postf> s a)
-    -> g:(ST <pre , postg> s b)
-    ->   (ST <pre , post > s b)
-@-}
-
-cmp :: ST s a
-    -> ST s b
-    -> ST s b
-
-cmp (ST f) (ST g) = ST $ \s -> f (g s)
-
-
-{-@ incr :: ST <{\x -> x >= 0}, {\x v -> v = x + 1}> Nat Int @-}
-incr :: ST Int Int 
-incr = ST $ \x -> x + 1
-
-{-@ incr2 :: ST <{\x -> x >= 0}, {\x v -> v = x + 4}> Nat Int @-}
-incr2 :: ST Int Int 
-incr2 = cmp incr incr
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/tests/todo/tdb.hs b/tests/todo/tdb.hs
deleted file mode 100644
--- a/tests/todo/tdb.hs
+++ /dev/null
@@ -1,13 +0,0 @@
-module Main where
-
-zero' :: Int
-zero' = 0
-{-@ zero' :: {v: Int | false } @-}
-
--- Throws NASTY GHC error because "Int" is not a tycon * -> *
--- Should be some nicer error message that we can produce...
-{-@ print' :: Int {v: Int | true } -> IO () @-}
-print' :: Int -> IO ()
-print' = print
-
-main = print' zero'
diff --git a/tests/todo/trans.lhs b/tests/todo/trans.lhs
deleted file mode 100644
--- a/tests/todo/trans.lhs
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-module Tx where
-
-import Language.Haskell.Liquid.Prelude
-
-{- THIS IS A RANDOM COMMENT -}
-
-{-@ foo :: x: Int -> Int @-}
-foo :: Int -> Int
-foo x = x + 1
-
-{-@ transpose :: n:Int
-              -> m:{v:Int | v > 0} 
-              -> {v:[{v:[a] | len(v) = n}] | len(v) = m} 
-              -> {v:[{v:[a] | len(v) = m}] | len(v) = n} 
-  @-}
-transpose :: Int -> Int -> [[a]] -> [[a]]
-transpose 0 _ _              = []
-transpose n m ((x:xs) : xss) = (x : map head xss) : transpose (n - 1) m (xs : map tail xss)
-transpose n m ([] : _)       = liquidError "transpose1" 
-transpose n m []             = liquidError "transpose2"
-
--- NEEDS TAGS: map head xss = [ h | (h:_) <- xss]
--- NEEDS TAGS: map tail xss = [t | (_:t) <- xss]
-
-
diff --git a/tests/todo/tupleplus.hs b/tests/todo/tupleplus.hs
deleted file mode 100644
--- a/tests/todo/tupleplus.hs
+++ /dev/null
@@ -1,18 +0,0 @@
-module Goo where
-
-
-{-@ foo :: x:_ -> {v:_ | fst v + snd v = x} @-}
-foo :: Int -> (Int, Int)
-foo x = (2, x-2)
-
-
-{-@ test10 :: {v:_ | Prop v} @-}
-test10     = x + y == 10
-  where
-    (x, y) = foo 10
-
--- THESE are also in GHC.Base.Spec
-{-@ qualif Fst(v:a, y:b): v = fst y @-}
-{-@ qualif Snd(v:a, y:b): v = snd y @-}
-
-
diff --git a/tests/todo/txrec0.hs b/tests/todo/txrec0.hs
deleted file mode 100644
--- a/tests/todo/txrec0.hs
+++ /dev/null
@@ -1,27 +0,0 @@
-module Test where
-
-{-@ type OList a = [a]<{v: a | (v >= fld)}> @-}
-
-{-@ filterGt :: (Ord a) => Maybe a -> OList a -> OList a @-}
-
-filterGt ::  Ord a => Maybe a -> [a] -> [a]
-filterGt Nothing  xs = xs
-filterGt (Just x) xs = filter' x xs
--- The following works fine, because toplevel recs go through TXREC?
--- filterGt (Just x) xs = filter'' x xs
-  where filter' _  []     = [] 
-        filter' b' (x:xs) = case compare b' x of 
-                              GT -> x : filter' b' xs 
-                              LT -> x:xs 
-                              EQ -> xs 
-
-filter'' _  []     = [] 
-filter'' b' (x:xs) = case compare b' x of 
-                      GT -> x : filter'' b' xs 
-                      LT -> x:xs 
-                      EQ -> xs 
-
-
-
-
--- {- filter' :: (Ord a) => a -> OList a -> OList a @-}
diff --git a/tests/todo/vector2.hs b/tests/todo/vector2.hs
deleted file mode 100644
--- a/tests/todo/vector2.hs
+++ /dev/null
@@ -1,15 +0,0 @@
-module Vec0 where
-
-import qualified Data.Vector as V 
-
-propVec = (vs V.! 3) == 3
-  where xs    = [1,2,3,4] :: [Int]
-        vs    = V.fromList xs
-        
-{-@ unsafeLookup :: V.Vector a -> Int -> a @-}
-unsafeLookup x i = x V.! i
-
-{-@ safeLookup :: V.Vector a -> Int -> Maybe a @-}
-safeLookup x i 
-  | 0 <= i && i < V.length x = Just (x V.! i)
-  | otherwise                = Nothing 
